Jump to content


Popular Content

Showing content with the highest reputation since 04/26/20 in Files

  1. Version 1.0.0


    This is a shareware version of Petscii Robots. It only includes 2 maps. It also lacks SNES controls and the cheat-code. It is also only presented in "color PETSCII" mode, as there hasn't been a version made yet with custom graphics and sound. The music routine is a direct port from the PET, which only uses 1 square-wave voice. PETFONT.PRG
    17 points
  2. Version 1.3.0


    Raycaster demo (written in c and assembly) This version is a big improvement in performance: it now runs at 10+ fps! I am quite happy with the speed. The demo plays quite nicely now. See below description of version 1.3.0 for details. --- This is a raycaster demo written in c and assembly for the Commander x16. I've been trying out the x16 and thought it would be a cool idea to start working on a raycaster. Ultimately it would be great if "Wolfenstein 3D" can somehow be ported to the x16. That would be a BIG challenge though! This is how it looks now: Speed improvements in 1.3.0: Now running at 10+ fps! - Using zero page addresses for pretty much all my variables - Using fast multipliers that use "square" tables: https://codebase64.org/doku.php?id=base:seriously_fast_multiplication - Inlined the fast multipliers, so less copying of values, no jsr and rts - Re-using the somewhat "static" parts of the multiplications, so it won't be re-loaded/calculate each ray (this was harder than it sounds, quite of bit of refactoring done) - Cosine and Sine fractions are player-related, and even though they are negated sometimes, they (that is their squares) could be reused for (almost) each ray - The (square of the) fraction of the tile the player is standing in -to be used for calculating the initial x/y interception for each ray- could be reused - Cleaned up the main loop and several other parts - Replaced the 16-bit slow divider with a 512-entry table: distance2height (major improvement!!) New in this version 1.2.0: - draw functions have been ported to assembly. Much faster! - dda casting functions have been ported to assembly. Much faster! - drawing textures! - automatic generation of routine to draw ceiling and floor (only 4 cycles per plain pixel) - automatic generation of around 512 routines for drawing textures (only 8 cycles per textures pixel) - using joystick controls (you can use arrow keys and alt to control, you can hold down keys) - a few textures from Wolfenstein 3D (shareware version) have been added (loaded at startup) - changed the map to look like the first level in Wolfenstein 3D - added a border around the render area, just like Wolfenstein 3D Usage Unpack the zip. Make sure you have the .BIN files in the same folder as the source files. To compile: (this assumes cc65 is installed) cl65 -t cx16 -o RAY.PRG ray.c ray_asm.asm -O3 To run: x16emu.exe -prg RAY.PRG -run To play: up - move forwards down - move backwards left - turn left right - turn right alt-left - strafe left alt-right - strafe right To debug: p - turn on log screen o - turn off log screen t - turn on test ray l - rotate test ray left j - rotate test ray right Known issues (1.2.0) - Sometimes there is a corner of a wall not drawn correctly - Since there is no real V-sync you get "shearing" in the screen (requires double buffering) Next up: - Lots of speed improvements - Lots of cleanup of code (its messy now) - Add a time-per-frame indicator (using a vsync interrupt counter) - Mooaarr wall-textures! - Double buffer to prevent shearing - Show a map on the screen - Bigger map (limit is now 16x16) - Opening doors - Add (scaled) "sprites" - Lamps (scaled) hanging from ceiling - Stats in lower part, gun visible - AI, enemies Having fun! Jeffrey
    15 points
  3. Version 1.0.1


    This is a simple voxel demo written in 65c02 assembly. It has been tested in the r38 emulator. Press W A S D to move around. Press SPACE to quit.
    12 points
  4. Version 0.5


    I had been lurking on the forums for a few months when I found Prog8 and though this looked interesting. I.e. I could learn a new language and test out the emulator. I recently saw some good demos using C64 emulator but just based on PETSCII graphics and I though this looked surprisingly cool. Then I remembered the old Galaga game on the C64, the one using just (a few) petscii chars. I thought making something similar would be a nice challenge. The game is continuing to move toward what I consider a complete (but short) game. There are now 12 levels at which point the game will end in victory (bonus points for lives remaning). I am currently inclined to thinking that it's ok to end up with a fairly short and "completable" game. I still need to add some sort of simple high score handling. And there are always places that could use a bit of extra polishing but perhaps it would be better to spend that effort on another game. If anyone want to have a look at the code, it's here : https://github.com/cyborgar/Petaxian
    12 points
  5. Version 0.7.1


    This is a space invaders inspired game. Use the mouse or joystick to control the player ship. The shield segments can take 2 hits each. If enemies get too close you retreat back to the last level. You lose when all your lives are gone or you fall back to earth level again. Now with 7 playable levels Requires emulator R38! Roadmap: more diverse enemy formations enemy attack raids over the sides power ups (shields, double cannon, disruptors etc.) boss enemy joystick control done music done Different enemy sprites. done Sprite animations. done for player sprite and enemies fade in/out of palettes and backgrounds. done more levels with more backgrounds (all planets of the solar system), done sound effects basics done title screen How to use with the local emulator: Unpack ZIP file into the same directory as the emulator. Start the emulator, then enter LOAD"INVADERZ.PRG" RUN
    12 points
  6. Version 1.0.0


    Another small intro. Sadly still no audio. If only it wasn't so painful to debug audio and if I had any sort of musical talent... Thanks for looking! Spinner.zip
    12 points
  7. Version r41 ("Marrakech")


    Precompiled emulators for Windows, Mac, and Linux. This is the latest version. Older versions can be downloaded from the GitHub releases page. (Note: To run on Mac use "Ctrl-click/Right-click > Open" instead of "Double-click" due to security protocols)
    11 points
  8. Version 0.9


    Modplayer Plays audio files that are stored in Amiga tracker module format. Usage when running via emulator, increase the audio buffers by starting it with: x16emu -abufs 32 LOAD "MODPLAYER.PRG" RUN type file name, e.g. "D1.MOD" (you can change or correct it by using the "del" key) press "enter" enjoy! Features supports standard 4 channel mod files supports mod files with size up to 504 KB or higher depending on CX16 memory configuration user interface shows each channel with tone, instrument number and effect mod file name can be set via keyboard Known issues and limitations sample rate is set to about 18 kHz, 8 bit, stereo to fix timing issues with channel mixer volume is reduced by half to avoid clipping no finetune for instruments only supported effects are: "slide up/down", "set volume", "pattern break" and "set speed" "set speed" effect doesn't support BPM setting player speed can be slightly off as it is based on 60 Hz vsync signal wheras many mod files are based on 50 Hz PAL signal first 2 letters of song name are missing due to the way how the kernal load routine is implemented no control unit yet License Some sample mod files from different composers are included with this application. All included mod files were downloaded from [The Mod Archive](https://modarchive.org) and are licensed under Public Domain or Creative Commons. The original file names were changed to work around file name problems. List of included mod files and its original file names: D1.mod source: [songerson_-_dog39.mod](https://api.modarchive.org/downloads.php?moduleid=189675#songerson_-_dog39.mod) by [Songerson](https://modarchive.org/member.php?90970) is licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/) D2.mod source: [musix-retrospective.mod](https://api.modarchive.org/downloads.php?moduleid=65133#musix-retrospective.mod) by [m0d](https://modarchive.org/member.php?69141) is licensed under Public Domain D3.mod source: [music-jump.mod](https://api.modarchive.org/downloads.php?moduleid=53213#music-jump.mod) by [m0d](https://modarchive.org/member.php?69141) is licensed under Public Domain D4.mod source: [evil_minded.mod](https://api.modarchive.org/downloads.php?moduleid=170000#evil_minded.mod) by [Zilly Mike](https://modarchive.org/member.php?69027) is licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
    10 points
  9. Version 1.2.0


    This is a minesweeper clone for the Commander X16. It allows custom minefield sizes up to 38x24, with almost any amount of mines. To start, load and run MINEX16.PRG. Controls: Main Game Left click to reveal a tile Right click to flag a tile Click on the face to reset Press space to open the configuration screen (will reset the minefield) To exit, reset the machine (Ctrl-R on the emulator) Configuration Space to open and close Use the + and - buttons next to each digit to change the width, height, and number of mines Numbers are capped to a specific range; attempting to select an invalid value will set the number to its maximum or minimum value Click any of the presets to set all of the numbers at once Note: The game uses kernal functions to handle the mouse, so any weirdness is most likely caused by the emulator.
    10 points
  10. Version 0.5.1


    X16 Edit is a text editor for the Commander X16 platform. Design goals: Use plain text files Store text buffer in banked RAM (512KB to 2 MB) Handle large text buffers efficiently Simple modeless user interface inspired by GNU Nano Implement basic editing functions well - refrain from making the program too feature-rich Support both ISO and PETSCII modes Emulator and Kernal requirements: X16 Edit versions 0.0.1-0.3.6 are tested with the official R38 X16 Edit versions 0.4.0-0.4.5 are tested with an emulator and Kernal compiled from the Github master branch (Kernal commit 7bfa81a to f62e25a). X16 Edit version 0.5.0 is tested with the official R39 and R40 Run with the following command: x16emu -sdcard sdcard.img -prg X16EDIT-x.x.x.PRG -run (rom version < R40) where x.x.x is the program version. The above method doesn't work in ROM version R40. Instead you need to store the X16EDIT-.x.x.x.PRG file on the SD card. Start the emulator with x16emu -sdcard sdcard.img. In the emulator type LOAD"X16EDIT-x.x.x.PRG" to load the program, and then RUN to start it. Please read the attached file romnotes.pdf if you want to try the ROM version. Source files available at https://github.com/stefan-b-jakobsson/x16-edit Released under GNU General Public License v 3 or later. manual.pdf romnotes.pdf
    9 points
  11. Version 0.5.0-alpha


    This is an old video (hopefully I'll be able to make a new one soon): The CONCERTO synthesizer is what I intend to be the sound generating side of a music making software for the Commander X16. It uses the 16 voices of the VERA and the 8 voices of the YM2151 and aims to get the very maximum out of them. It is not quite there yet but has a lot of strengths already. The main features: 32 synth timbres (i.e. sounds) 16 monophonic channels, each playing a dynamically assigned synth timbre up to 4 PSG oscillators and 1 YM2151 voice per timbre up to 3 envelopes and 1 LFO per timbre pitch, volume and pulse width modulation vibrato volume control per voice ("velocity") pitchbend, volume and vibrato automation save and load presets / banks (a bank is the entirety of all 32 loaded timbres) comes with one bank of "factory" sounds The whole sound engine is exposed via an API that can be used by other applications. Concerto also comes with a player. If you have problems with the audio quality in the "Try it now", download and run in the offline emulator with the command line option "-abufs 12" or more. To use file loading and saving, you must use an SD card. For more information, look into the README and the source files and/or send me a PM. If you find bugs, please let me know, or post an issue on GitHub. https://github.com/biermanncarl/cx16-concerto Find the devlog here: https://www.commanderx16.com/forum/index.php?/topic/1079-concerto-dev-log/ Find m00dawgd's Command Tracker which will likely use Concerto: https://www.commanderx16.com/forum/index.php?/topic/978-command-tracker-dev-log/
    9 points
  12. Version 1.0.0


    This is the release of a STNICCC Demo Remake for the Commander X16! I have been (silently) working on this for the last couple of weeks/months. It is time to release it :). Let's just say: the Commander X16 is far more powerful than I had thought! Here is a video of it running: Enjoy! Regards, Jeffrey --- PS. There was an earlier attempt to remake this demo on the X16 (done by Oziphanto on youtube). Oziphanto did a very nice comparison video of the X16 with several other machines of the 8-bit and 16-era: He also re-created this demo, but (in my opinion) did not do such a good job extracting everything out of the X16: his demo ran in 2:32. The remake I made does it in 1:39! His benchmark comparison should therefore be updated: Keep in mind the Commander X16 only has: - An 8-bit 6502 cpu (8MHz) - No DMA - No Blitter Yet it keeps up with 16-bit machines like the Amiga! (actually its even faster right now) --- Extra notes: - This only works on the x16 emulator with 2MB of RAM - It uses the original data (but its split into 8kb blocks, so it can fit into banked ram) - Waaaayyy to much time is spend on the core-loop to make it perform *this* fast! - My estimate is that it can be improved by another 10-15 seconds (I have a design ready, but it requires a re-write of the core-loop) - It uses a "stream" of audio-file data and produces 24Khz mono sound (this will not work on the real x16, since loading the files that fast is a feature of the emulator only) Here is a version without audio (so this should run on a real x16): And it runs even faster (1:36:90)
    9 points
  13. Version 1.22


    This weekend, I decided to play with X16 BASIC using the emulator and wound up making an X16 adaptation/extension of a short program for the Plus/4 that appeared in 'The Transactor' journal decades ago. The program uses three parameters: "S" (squiggles/spokes/segments), "W" (wave factor), and "A" (amplitude). Using X16 BASIC's extensions in terms of bitmap drawing commands, it outputs a neat design with lots of color and a surprising amount of visual variety. The original Plus/4 program just plotted in black and white and had some built in limitations (and at least two bugs), but I decided to extend the program, add a menu, and upload it after I added color and decided these were fairly cool looking results from such a short simple BASIC routine. It strikes me as a cool demo because with just three core parameters, you can get an astonishing range of outputs. Of course, like many graphics demos based on stacking transcendental functions, there are combos of inputs where the functions will sort of fall apart and produce something akin to a kiddo scribbling with crayons , but there are also weird "islands" in the domain of possible parameter combinations where order re-asserts itself, both in terms of what gets drawn and (because colors are picked by an AND mask over one of the function variables) how the colors play out. Note that I included a sample screen shot about some weirdness you can get with very high numbers. Mostly that is the result of my simple use of .01745 to convert between degrees and radians, and is caused by amplifying that really simplified rounding of PI/180. There are 4 'modes' of operation you can pick from the menu. You can specify inputs for S, W and A manually; the program can run a sequence with fixed S and A while incrementing W; there is a mode that tries to picks random parameters within several domains where the program produces nice outputs; and there's one that just reads the inputs from some "presets" in DATA statements. (You can of course add your own 'best of' examples by adding data statements between lines 432 and 499). I always considered myself a passable BASIC programmer, but this weekend showed me I'm really sort of rusty so please go easy on me if I did something inefficiently or especially 'dumb' in my implementation. The main output routine is extremely crunched (sorry, not sorry) and I did some further things to optimize from the original program for purposes of getting a bit more performance out of the main routine. Although it absolutely crawled on the Plus4, I think its fairly impressive on the X16 especially if you look at the sheer amount of sines, cosines, multiplications, and variable fetches /updates that occur during an entire cycle through the primary output drawing loops. The X16's 40 column mode (SCREEN $00) was used to key this in and format it, so its probably best if listed/ displayed/reviewed in that mode, Tested on emulator r.38, and I don't see anything in the pending updates for the next emulator release that would break anything here. If there are questions about why/how I did something I'll be happy to answer. In fact, if there's any interest in a more detailed write-up of this short and fairly simple program (e.g., section by section, and line-by-line), I would be happy to give it a shot, especially if there are folks new to Commodore BASIC that might find it useful. It seems to me there are many highly advanced programmers for the X16 posting on this site who are using assembly, C, and even languages they are developing themselves. Its amazing! However, its surely the case that part of the mission of the X16 is to get some newbies involved, and from where I sit, that really does mean getting some more content up here written in BASIC. Keeping that in mind, I'll probably be diving back into more old issues of The Transactor to do more conversions for the X16 and will continue to upload as long as I'm still having fun with BASIC. Cheers.
    9 points
  14. Version 1.0.0


    This demo is made from original game assets and translating the VGM tune into YM2151 + VERA PSG. I made this demo because I think too many people forget just how great the graphics can be on the X16. I also think the FM music is vital to the 16-bit era of gaming, so this demo shows how the Commander X16 can deliver the goods if you like a 4th-gen experience.
    8 points
  15. Version 1.9.0


    FlappyX16 is a complete port of the original 2013 iOS Flappy Bird game by .GEARS Studios, using my own assets from scratch. While the main reason I made this game was to get experience in C programming for X16 using a real multi-file Makefile project, I also wanted to produce a completely finished, polished game for the X16 community to enjoy. I've learned a lot about using the various subsystems of the Commander X16. Features: Four selectible difficulty levels of play Fun, addictive gameplay - Always "just one more" point to earn Keyboard and joystick support FM sound effects Bright 4bpp graphics Secret "Dark Souls" difficulty level I have not yet tested the final version using SD card images, and will update the download file if I need to patch the game. Also, my project support R39 but I have not built that against the latest versions of the master repo on Github. I will upload an R39-compatible version once I update my copy of R39 and test the build. I've really enjoyed making this game, and I hope the community enjoys playing it. It's a VERY addictive game. Trust me, I've spent HOURS just playing it when I should be adding features / fixing up my code
    8 points
  16. Version 1.2.1


    This is a Breakout/Blockout/Arkanoid inspired game. . It is my very first try on the X16. You have to use a mouse or a joystick (cursor keys + enter on the emulator) It's only tested it on the emulator (R37, R38), so if anyone of the few with real hardware can give it a go, I'm eager to know the result. Available power ups (no keycodes, you have to catch the dropping badges): [L]: adds one live to player [M]: paddle is magnetic for 30 seconds. Can only hold one ball at a time. [C]: twin laser cannon for 15 seconds, 16 rounds in a row (if you are quick). [D]: Duplicates ball, so now you can have fun with 2... Keyboard commands: 's': sound on/off. 'p': pause game 'q': quit game. How to use with the local emulator: Unpack ZIP file into the same directory as the emulator. Start the emulator, then enter LOAD"BRIXX.PRG" RUN Or use the "Try now" button. Let me know what you think...
    8 points
  17. Version 1.0.0


    This demo features 3D rendering to a 256x240@8bpp surface with full transformation calculation, texture mapping and per-pixel depth buffering. The model is a decimated Spot test model with 512 vertices, 1020 triangles and a 256x64 texture. So, I wrote this just to get familiar with this system and figure out how to write and optimize a 3D math for it. Also, it would makes a nice reason for me to get up and do some coding streams, as shown here: Only runs on r39 since I can't find documents for older versions. There's still bunch of incorrect pixels due to depth buffer precision problems. Controls: A/D - Move camera left/right W/S - Move camera up/down Q/E - Move camera backward/forward (Z value should be an unsigned number but the UI only displays signed numbers) J/L - Rotate left/right (yaw) I/K - Rotate up/down (pitch) U/O - Tilt left/right (roll)
    8 points
  18. Version 1.0.0


    I played this game with my friends in grade school on the PET. Though unable to find the original, I found a stripped-down VIC-20 version -- which showed me the program's essential structure -- and the later 1986 version by Commodore, mainly designed for the Commodore 64. I used both to create this version, which retains the original algorithms, and tries to emulate the older PET version. It uses very little X16-specific code -- exactly, SCREEN and COLOR. It relies on the 40 x 25 screen, and it uses just about all 25 of those rows. The rest is all PETSCII and BASIC 2.
    8 points
  19. Version 0.9


    VTUI (Vera Text User Interface) library Can be used to create text user interfaces using VERA instead of relying on the KERNAL functions for writing to screen. The library is less than 1KB which means it can be loaded into Golden RAM at $400. As an alternative, include files are provided for Acme and CA65 assemblers. See https://github.com/JimmyDansbo/VTUIlib for documentation, examples and include files.
    8 points
  20. Version 0.8b


    XCI is a graphical adventure game engine for the Commander X16. It is inspired by past engines such as SCI and SCUMM, but designed to maximize the potential of the X16 and keep the games just small enough to run, and allow developers to create games without having to program in BASIC or Assembly. Learn more about XCI on the official GitHub page: https://github.com/SlithyMatt/x16-xci There you will find all the source code, documentation, and example code and templates. There is also a tutorial series currently in production on YouTube: In the downloadable ZIP file you will find the engine executable binary for the X16 (XCI.PRG) and two embedded archives of the Windows and Linux software development kits (xci.exe). The SDK is written in standard C and can be compiled to pretty much any modern platform, including Mac and Raspberry Pi. Stay up to date by watching the GitHub, and occasional builds will also be uploaded here.
    7 points
  21. 45 downloads

    Hope you enjoy this little intro! Best viewed on a local emulator. The web one doesn't seem to handle the audio too well. More on the audio player: Original mod by Archyx. See their other mods here: https://modarchive.org/index.php?request=view_artist_modules&query=69244 Thanks for looking. R38: Working R39+: Doesn't work (has bank switching)
    7 points
  22. Version 0.6b


    Chase Vault: a game for the Commander X16 by Matt Heffernan You are a pith-helmeted adventurer trying to collect artifacts from an ancient Caribbean crypt, haunted by the ghosts that want to keep their secrets. Collect all the artifacts in each room and try to make it to the end. There are many locked doors, so make sure to pick up any keys you find! If you collect each kind of native fruit, you will have more lives, so be on the lookout for them in each room. Also, the ghosts are vulnerable for a short amount of time after you collect each voodoo talisman, so you can chase them for a change. To play, load CHASVALT.PRG and run. You can use joystick 1 or the keyboard (cursor keys to move) if no joystick/controller is connected. Keep up to date with future releases on GitHub: https://github.com/SlithyMatt/x16-chasevault Enjoy and good luck!
    7 points
  23. Version 1.0.0


    Slideshow showing some of the progress of the Commander X16 project.
    7 points
  24. Version 1.0.3


    A Sokoban clone for the Commander x16. This started out, mainly to see if I could grasp the concepts behind the x16. No sounds or music, since this is a pure puzzle game. I have put in a fun level set called 'Sasquatch IV', publicly available at http://sneezingtiger.com/sokoban/levels.html. The code for this game can be found at https://github.com/envenomator/x16Sokoban.git Have fun!
    7 points
  25. Version 1.0.0


    What is double PETSCII? What is PETSCII you may ask first. PETSCII is the extended commodore text character set. This character set has been designed in such a way that it would enable simple graphics on the screen. Which would make it easy for would be programmers on the system, to make card games and so on. However easy to use, it is not easy to create very nice graphics with it.... But... This has changed somewhat. If you search for PETSCII art, you see people are trying to get cooler and cooler graphics out of PETSCII. Double Petscii is using the Commander 16's native graphics modes to overlay two layers of PETSCII graphics. This demo is an experiment in how that may be used. Tech info: -It was made with the cc65, in C. -The PETSCII mode used is lores text mode, with two layers. (40x30 chars) -All colors are standard colors. -1 Color is used as a color to be sacrificed for non black transparency, so there are 15 colors to work with, not 16. -Pictures drawn in hyperpetscii petscii online drawing program. https://hyperpyxel.com/?p=229
    7 points
  26. Version 1.0.1


    How many sprites does the Commander X16 have? Let's find out, shall we! Written in Prog8. Source code is here: https://github.com/irmen/prog8/blob/master/examples/cx16/bobs.p8
    7 points
  27. Version 1.0.0


    This is an early concept based upon the ideas and code shown here https://www.8bitcoding.com/p/tiles-in-assembly-ii-line-interrupt-for.html ============================================================ The PARA.PRG is my first attempt recreating the psudo parallax seen in games from the 16bit and 8 bit era. This is all on the same layer the same as in the above mentioned blog. The difference here was to make the background reactive to the foreground movement. Although this is hardcoded to move 1 pixel per frame forward all the slower sections are all based on how fast the foreground is moving. I'm hoping to expand upon this to also support vertical perspective tricks. ============================================================ Instructions: copy the PARA.PRG file to your emulator location or run the x16emu from the files location. run x16emu and type the following commands LOAD"PARA.PRG" RUN
    7 points
  28. Version 1.0.0


    Vertical "raster" bars, also known as "kefren bars" from the old school demo scene. Written in Prog8. No sprites used, it's bitmap graphics (with a trick...). Source is here https://github.com/irmen/prog8/blob/master/examples/cx16/kefrenbars.p8
    7 points
  29. Version 0.6a


    A game where you have to visit all fields in a maze with your "block". For the latest version and to see the source, go to https://github.com/JimmyDansbo/cx16-maze
    6 points
  30. Version 1.0.0


    Commander X16 Sprite Editor This is a screen snapshot and the executable file of a Commander X16 Sprite Editor which is built from "C" source files I’ve been developing that currently runs on Release 37 of the emulator. Features The sprite editor supports all combinations of sprite height and width dimensions up to 64x64. The sprite editor is currently limited to 4 color bits per pixel, but provides the ability to edit the RGB values of the first 16 entries of the color palette. The sprite editor supports a pen mode which reduces the keystrokes required to assign colors to sprite pixels, and the ability to shift the design of the sprite to make more room near the edge of the sprite. The sprite editor provides the ability to export color palette data as well as sprite data to the terminal in a BASIC program format and also in a format more amenable to importing into a C program. The BASIC program allows the sprite to be rendered and moved around a bit using the W/A/S/D keys. This export capability requires the -echo option when starting the emulator. Operation Cursor Movement The arrow keys are used to move the cursor around the sprite pixel edit grid. When width=64 the edit grid can be paged left and right using the less-than and greater-than keys ("<" and ">"), and when height=64 the edit grid can be paged up and down using the comma and period keys ("," and "."). Assigning Colors to Sprite Pixels The 0-9/A-F keys are used to assign a color to the sprite bit corresponding to the current edit grid cursor position. When pen mode is turned on using the P key, the color at the current edit grid cursor position is assigned to the pen, and this color is automatically assigned to pixels as the edit cursor is moved. The pen color can be changed by selecting a new color via the 0-9/A-F keys. Pen mode is manually turned off by pressing the P key a second time, and is automatically turned off when the cursor is moved past the edge of the edit grid and when the edit grid is paged when height=64 or width=64. The fill command (F5 key) fills the entire sprite with the color at the current edit grid cursor position. RGB Edit Mode RGB edit mode provides the ability to edit the RGB values of the first 16 entries of the color palette. RGB edit mode is entered and exited by pressing the F6 key. In RGB edit mode, a right arrow appears to the left of the selected color, and selected color is changed by using the up/down cursor keys. The red, green, and blue components of the selected color are changed by using the R/shift-R, G/shift-G, and B/shift-B keys. Sprite Design Shifting The sprite design can be shifted up or down one pixel row using the U and shift-U keys, and can be shifted right or left one pixel column using the R and shift-R keys. This feature is useful when a sprite design is not centered correctly when started and one runs out of space near an edge. The sprite design can be shifted to make more room near the edge which avoids having to start the sprite design over again at a new location. Sprite Options V-flip and H-flip (V and H keys) affect the display of the actual sprite but not the sprite edit grid. The palette offset (+/- keys) also only affects the display of the actual sprite (the edit grid colors and remainder of the screen colors are not affected). Screen Options The BG and FG options (F3 and F4 keys) provide the ability to change the screen background color and the color of the text on the screen. There's an anomaly associated with color 0 which is black in the standard color palette. Color 0 is shown as black on the screen and edit grid but is transparent when used in sprites, so the edit grid doesn't match the sprite with respect to color 0. Exported BASIC Program The exported BASIC program between line 10 and the DATA statements is constant. Line 10 varies with the height and width of the sprite and the DATA statements vary with the color palette data and design of the sprite. The SA7 value is based on the enumerated values of the height and width dimensions (0 for 8, 1 for 16, 2 for 32, and 3 for 64) and places these values into the proper position to be populated in the most significant nibble of the last sprite attribute register which has an offset of 7. The least significant nibble of this register is the palette offset which I assumed to be 0. The SA7 value is computed in the C program, but it could have been computed in the BASIC program since the enumerated values can be determined from the height and width which are exported on line 10 and palette offset is assumed to be 0. I deferred support for saving/loading palette and sprite data because I'm under the impression the emulator currently doesn't support file I/O, but the BASIC program provides a near-term workaround. The palette and sprite data exported in the BASIC program format can be reloaded into the sprite editor via the following steps: (1) start the emulator using the -echo option; (2) paste the BASIC program into the emulator; (3) execute the RUN command; (4) push the Esc key to quit the running program; (5) execute the NEW command; (6) load the sprite editor; and (7) execute the RUN command. The sprite editor will then pick up the palette data that was loaded into the color palette and sprite data that was loaded into the VERA sprite attribute registers and VRAM by the BASIC program. The following two steps are an alternative to step (2) above: (2a) paste the BASIC program into a text file; and (2b) use the emulator -bas option to load the program from the text file when starting the emulator. This alternative approach is recommended if you're having problems with the emulator corrupting lines when pasting the BASIC program directly into the emulator. The palette and sprite data are automatically exported when exiting the sprite editor to avoid accidental loss of data. The exported data can be recovered before reloading and restarting the sprite editor as described above. Potential Future Enhancements I'm considering enhancements including support for 8 color bits per pixel, saving/loading of palette and sprite data, rotation of sprites, and undo/redo of changes to the sprite graphics data in VRAM.
    6 points
  31. Version 1.0.1


    I needed a test program for the graphics routines in Prog8 that now also work in highres 4 color screen mode. I thought it would be fun to replicate a classic Amiga Workbench desktop screen, using just the graphics drawing commands. Note that the text font is actually the built-in iso charset. It is fairly similar to the Amiga's topaz font, so I just went with it and didn't bother to replicate the font pixel-perfect. Also I didn't bother to make a nice white/red sprite mouse cursor, maybe I'll try to add this in a later version. Here is a screenshot of a real Amiga Workbench 3.1 in action:
    6 points
  32. Version 1.0.0


    I just started assembly programming last week and this is my first project after about three days of work. I hope you enjoy it! The effect isn't quite complete yet but for now its all I'm able to get working.
    6 points
  33. Version 1.0.0


    This is my second "Double PETSCII" demo. But this time around, the screen resolution is higher, and it is not hand designed PETSCII pictures, but instead it is an imported picture. Besides PETSCII, there is also a scrolling effect, and a wavey effect. The demo is written in KickC, and the PETSCII editor is once more the alfa version of HyperPetscii. The link to this can be found here: https://hyperpyxel.com/?p=229 Note: It is still pretty unstable and does not work well on a browser in the MAC for some reason. If you cannot run it on an emulator, you can see it on youtube here: https://youtu.be/kwLtU9fACpE Keep cool, and keep it PETSCII.
    6 points
  34. Version v1.0


    I was curious how well the 65C02 could handle modern encryption, so I wrote this program to test it. The program loads the 8bpp image from the old Mode7 demo and repeatedly encrypts then decrypts the bitmap data in VRAM using AES encryption. This provides a nice visual as to how quickly it's able to process the data. The download includes PRG files for 128, 192, and 256 bit key AES, with the Try It Now button using the 128 bit key version. To run it locally, make sure that the two .BIN files are available to the emulator in "drive 8" (either copied to the working directory, which is usually the folder with the emulator executable, or in the disk image used with the -sdcard option). The image was taken from the Commander X16 Mode7 Demo. Copyright David "The 8-Bit Guy" Murray and/or Michael "mist64" Steil. The implementation of AES is based on byte-oriented-aes ( https://code.google.com/archive/p/byte-oriented-aes/ ) by Karl Malbrain. Released into the public domain by the author. The source code is available on Github: https://github.com/LRFLEW/AES-X16
    6 points
  35. Version 1.1.1


    6 points
  36. Version 1.0.0


    Just a fun small intro put together to play around with the X16 emulator. I'm looking forward to the next iteration of the hardware and emulation, especially around the audio. Thanks for looking!
    6 points
  37. Version 0.0.0


    I've since removed the external file dependencies for building the UI which means folks can finally try Command Tracker out more directly in the emulator. A very basic song exists to start. There is no loading and saving yet and, as noted in the dev log on the forums, it's buggy and, as of yet, no real sound engine (rather a very very basic one) but it does work and demonstrates what I'm trying to work towards in a full featured tracker. It is modeled loosely after Impulse Tracker on PC.
    6 points
  38. Version 0.1


    ux16vt is a UTF-8 and somewhat ANSI compatible terminal emulator for Commander X16. Currently the only useable "serial" port uses LOAD & SAVE to communicate between the X16 emulator and a glue process that moves data in and out of a POSIX pseudo-terminal. In the emulator LOAD "UX16VT.PRG" & RUN. On the host, compile and run emulator_glue.c. ## Unicode Support ux16vt supports up to 4096 1-bit 8x16 pixel glyphs selected at compile time from the Unicode Basic Multilingual Plane. Unknown characters are displayed as blank. Currently 672 of these glyphs are used covering 862 different code points. The following blocks are mapped: - Basic Latin (00-7f) - Latin-1 Supplement (80-ff) - Greek & Coptic (370-3ff) - Cyrillic (400-4ff) - Box Drawing (2500-257f) - Block Elements (2580-259f) Limitations: - no support for right-to-left text - characters are represented internally as 16-bit values, making any characters outside the basic multilingual plane complete inaccessible - completely mono-spaced text. full-width glyphs are not available ## ANSI Support Only sequences beginning with ^[[ are supported (Control Sequence Introducer). Only numeric parameters are read. A control sequence with more than four parameters will cause an unchecked buffer overflow. The following functions are available: A CUU Cursor Up B CUD Cursor Down C CUF Cursor Forward D CUB Cursor Back E CNL Cursor Next Line F CPL Cursor Previous Line G CHA Cursor Character Absolute [column] H CUP Cursor Position J ED Erase in Display K EL Erase in Line S SU Scroll Up T SD Scroll Down d VPA Vertical Position Absolute [row] f HVP Horizontal Vertical Position m SGR Select Graphics Rendition The only available modes for SGR are 31 to set foreground colour to red and 30,32-39 set the foreground colour to black.
    6 points
  39. Version 1.0.2b


    This program is written using kickc of Jesper Gravgaard. I'm helping him to create a framework encapsulating the CX16 vera in order to be able to quickly create graphical effects for games. This is a short demo and I hope you like it. This program uses the keyboard to progress through the program! So be sure to run this from the desktop, since the emulator on mobile phones do not have a keyboard!
    6 points
  40. Version 1.0.0


    3d animated Cobra MK3 ship from Elite! Uses 16 bits integer math and has hidden-line removal.. This is an almost 1-to-1 conversion of the same program I wrote for the C64, but it runs a lot faster on the CommanderX16 Here is the (prog8) source code https://github.com/irmen/prog8/blob/master/examples/cx16/cobramk3-gfx.p8 I haven't figured out how to wait for the Vertical blank yet, to reduce the flickering perhaps...
    6 points
  41. Version 1.0.0


    Written in "C", in 2014 for the Commodore 64 and ported to CX16 in 2020. I wanted to know how hard it would be to make a chess AI. I am not a great chess player, nor did I research chess engines, so I made things up as I went. The end result is this chess which by any standards of chess, is not a good AI opponent. However, it's there and it's playable. Use and keys The user controls an on-screen cursor. The cursor changes color to indicate a state. The colors for selection are: Green - the piece can be selected Red - The piece cannot be selected as it doesn't have valid moves Purple - Empty tile or piece on the other side Blue - The currently selected piece Cyan - A valid destination for the currently selected piece To move the cursor, use the cursor keys. To select a piece, press the RETURN key while the piece is selected. To deselect the piece, press RETURN on the same piece again, or press ESC. To bring up the menu, press the M key, or the ESC key when no piece is selected. Pressing ESC in a menu backs out of the menu, to the previous menu or back to the game. Press RETURN to select a menu item and use the up and down cursor keys to change the selection. While a side is under human control, there are a few more options. Press B to toggle on/off a state showing on every tile how many of both black and white's pieces can attack that tile. Pressing A will toggle a highlight of all of the pieces on the opposing side that attack the selected tile. Pressing D will toggle a highlight of all the pieces on the side currently playing's side that can defend the selected tile. All three of these options basically give a visual representation of the Game Database. The colors are: For attackers Cyan and for defenders Red. Lastly, the game has an Undo/Redo stack that tracks the last 254 moves. Pressing U will undo the last move and R will redo the last move. In an AI/Human game, the undo will undo the last AI and human player move, so the human player can make a different move.
    6 points
  42. Version 1.0.1


    While waiting for the X16 to get real, I started to design my own computer case. I want it to resemble the keyboard or wedge-shape cases of the 80ies era. I owned a TI-994A and a Atari ST back then and I wanted to have something similar where I can put the X16 board in. I've integrated a Xtrfy TKL K4 keyboard and integrated a MISTER, Raspberry Pi (and a KVM Switch). I've published the design on Thingivers, where you can find the latest versions (I won't update here): >>Link Assembly might be a challenge and you have to see what type screws to use to mount things together. LICENSE: Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA 3.0)
    5 points
  43. Version 0.0.7


    BASLOAD lets you write BASIC programs without line numbers in the editor of your choosing. BASLOAD runs natively on the X16. As it's name implies, BASLOAD loads BASIC programs stored on the SD card into RAM. While loading a file, it's tokenized so that it can be run by the X16's built-in BASIC interpreter. Source files are stored as plain text that can be edited in almost any editor on the X16 or on a modern computer. There are, however, special bindings for the text editor X16 Edit making the programming workflow more convenient. Instructions on how to use BASLOAD and source code may be found here: https://github.com/stefan-b-jakobsson/basload BASLOAD workflow.mov
    5 points
  44. 52 downloads

    As has been pointed out recently there is tooling for the X16, especially in terms of trackers. There have been a few great examples of music on the forums, either playing a Amiga\C64 mod, or via a X16 tracker. And these are great. That said, I did think maybe the community was missing a trick. If the goal is to make music for the X16 do we need to be able to run the tracker on it? Doesn't that make writing everything harder? If you have a modern machine, it would be easier and quicker to create a tracker on that. UIs are easy. MIDI keyboard integration is a mere nuget package away. Can hand edit json files if you want. IO is trivial. That's not to say writing a tracker for the X16 is wrong, it's just a different goal. So that's what I did. Apart from the emulation of the X16's PSG which took a while to get going, it wasn't so bad to do -- WPF aside. I've ended up with an application which lets me produce X16 music. It can export an .asm file which can be imported into ca65, making integration into a project really easy with just two calls. It only uses single digit worth of cpu lines and 32 bytes in the ZP, so is pretty lean. That said, it does not yet support PCM audio not commands. The music from file attached is sourced from part of a demo file that comes with FamiTracker. What did occur to me while doing this, is that VRC6 ( https://en.wikipedia.org/wiki/Memory_management_controller#VRC6 ) music is pretty damn good. In fact I'm sure a player for .ftm files could be written. (Given how long it took to get just the first 3rd of a demo file working, I might write a pattern importer myself..!) For me, the audio quality demonstrates that Vera's PSG and some form of PCM is all that's needed for audio on the X8/16. (Sharpen your pitchforks!) It just needs to be a bit louder! What next? Like all projects that have gone from 'Proof of Concept' to 'Production' in one step, has resulted in some of the code being a bit crap. Especially on the WPF side! If anyone is interested, I'll try to shore the code up and will post with an explanation of how it works soon. For now the display shows the four counters. Counters for Frame, Line, Pattern, and the Next Line. Source is the VRAM address (I use VERA to stream out the data for the patterns, as it makes life much easier. I can't understate how useful this feature is.) The bottom table is: VERA registers Address of the instrument data Instrument Position Command Note Number Instrument Repeat Command 2bytes Parameters
    5 points
  45. Version 1.0.0


    Matriculate was my first demo written for the X16 emulator, and an early version of it was featured in Dave's Building My Dream Computer - Part 2 video. It uses the default font, and emulates the Matrix rain of code. The source code for this can be found here: https://github.com/indigodarkwolf/x16-matriculate-text x16-matriculate-text.7z x16-matriculate-text.zip
    5 points
  46. Version 0.8


    Simon Snake has fallen down a hole, you must rescue him, by avoiding obstacles on his way down. Controls: Cursor Keys, for left and right. Space to start or continue the game. Falling snake was a game that I wrote on the C64 in Basic, but now converted to KickC, because I want to add more features to it, and was running on the limits of what I wanted to squeeze into Basic. All graphics, except player sprite are Petscii. "Cut Scenes", are in "Lores Double Petscii". The Basic version you can also find below as a tutorial "How to create a simple game in basic on the X16" This time the game is written in Kickc, allowing more features to be added. Current status: 90% of all Basic features have been converted to C. Extra features have been added that were easier to add in C, like "cut scenes". Sound and more game play elements are to be added still. Video below. (music added in post production)
    5 points
  47. Version 1.0.0


    Variation of the quick sort demo, but this one using the 320x240x8bpp mode, which uses double the memory, and is that much cooler to watch Tap any key to progress from: Random Slowed down sort Random Full speed sort Back to Basic Note: that band of "non random" pixels below the middle of the screen is the default location of character tiles at $0f800 = $0ffff. This gets moved to right after screen memory at $04000 - $047ff (which is probably where it *should* default to, if you ask me :))
    5 points
  48. Version 0.0.4


    This is a quick demo of a 2D graphics library I've been working on recently. It's written in assembler, and aims to make life a bit easier when it comes to drawing vector graphics. You can define individual polygons which can be moved about and rotated. The source code looks fairly daunting, but when it comes down to it, building, transforming and rendering the polygons is very straightforward. Hopefully this will form the basis of a game at some point soon. (Perhaps an Asteroids clone?) Once I sink my teeth into interrupt handling, I should be able to "vsync" everything so it's flicker-free. All comments and suggestions welcome! Short screen capture of this demo on YouTube (featuring my tunez!!): Commander X16 Demo - Vector Graphics in 6502 Assembly - YouTube WARNING: For those who are sensitive to flickering/strobing, please be aware that this may cause problems for you. -- See below for a quick preview of the game I'm working on, retro flickering and all!
    5 points
  49. Version 1.0.0


    A small intro/demo type thingy as the result of me trying to "dust off" and re-learn some 30 year old assembly. This took most of my Christmas break. Starting out I was really stumped by some of the VERA stuff: The registers, the layers, loading data, 4bpp colors, high bit addressing. But, eventually it started to make sense a bit. All this would have been impossible for me without the very helpful blogs at https://www.8bitcoding.com/ and https://justinbaldock.wordpress.com/category/retrocomputing/commander-x16/. The Vera Graphics Convertor was also very useful. I used KickAssembler for the code. I've uploaded the .asm file as well, just in case it's useful for anyone else learning this stuff. dust.asm
    5 points
  50. Version 1.0.0


    I wrote a library to enable BASIC programs play music in the background. It is compatible with Simplest Effects Sound library I released a while ago. To demo the library I included two BASIC programs: PLAY.BAS - Playing Twinkle Twinkle Little Star - it demonstrates the BASIC program doing other stuff including calling simple Effects HOUSE.BAS - Playing House of the Rising Sun - it demonstrates a bit more complex music Full Tutorial and source code is available from my blog: https://www.8bitcoding.com/p/music-player-library-for-basic-programs.html
    5 points
  • Create New...

Important Information

Please review our Terms of Use