Jump to content

85 files

  1. Pirate Kingdoms

    A demonstration of the use of C, sprites, and banks to create a tiled map.
    Everything is quite primitive right now.  The scrolling is terrible.
    The map is 256 x 256 and stored in banks 10-17 (it's 64k).  My plan is of course to make it larger.
    Use the cursor keys to move about the map. 
     

    1228 downloads

       (0 reviews)

    Updated

  2. Mandelbrot Assembly Demo

    Here is the Mandelbrot version of my Julia Set program, coded in assembly. Again, many thanks to the forum users here for their guidance, as well as the many YouTubers with their excellent tutorials on 6502 assembly language. It's a lot faster than the BASIC version, but nevertheless, benefits from being run in warp mode.
    Now in colour, with thanks to: VERA Overview (8bitcoding.com)
    NEW VERSION NOW WITH MOUSE CONTROLS! 
    When the image has finished rendering, click the left mouse on the area of the screen you wish to zoom in to. 
    To change the detail settings (cycle between Low, Med, High) click the right mouse button.  
    Poke around in the old version...
    Try copying and pasting the following groups of POKEs to explore further (not all at once, just each paragraph in turn!):
    POKE $D6B,$19:POKE $D6A,$64:REM FX=6500
    POKE $D6D,$13:POKE $D6C,$54:REM FY=4948
    POKE $D6E,$00:POKE $D6F,$FF:REM FX=POS,FY=NEG
    POKE $D7B,$00:POKE $D7A,$01:REM STEP=1
    POKE $D7C,$FF:REM ITERATIONS=255
    SYS2061
    POKE $D6B,$0F:POKE $D6A,$A0:REM FX=4000
    POKE $D6D,$00:POKE $D6C,$00:REM FY=0
    POKE $D6E,$FF:POKE $D6F,$FF:REM FX=NEG,FY=NEG
    POKE $D7B,$01:POKE $D7A,$F4:REM STEP=500
    POKE $D7C,$FF:REM ITERATIONS=255
    SYS2061
    POKE $D6B,$0F:POKE $D6A,$878:REM FX=3960
    POKE $D6D,$03:POKE $D6C,$E8:REM FY=1000
    POKE $D6E,$FF:POKE $D6F,$FF:REM FX=NEG,FY=NEG
    POKE $D7B,$00:POKE $D7A,$32:REM STEP=50
    POKE $D7C,$FF:REM ITERATIONS=255
    SYS2061
    To use the POKES above in the web emulator, first click the X in the top right corner of the web emulator. Paste the POKES above that you want to use in to the text field to the left, replacing what's already in there, then click the Run button. 
    Individual addresses that can be poked:
    $D6A    30 75        .word 30000     ; FX
    $D6C    A8 61        .word 25000     ; FY
    $D6E    FF           .byte $ff  ; FX SIGN ff = negative
    $D6F    FF           .byte $ff  ; FY SIGN ff = negative
    $D7A    A8 61        .word 25000 ; STEP (lower=higher zoom)
    $D7C    10           .byte $10 ; ITERATIONS 
    Old poke codes for the colour PETSCII version:
    step: POKE $0D3D e.g. 50 for a step of 0.05
    (smaller number, higher zoom)
    iterations: POKE $0D3F e.g. 30 iterations about right, higher = slower
    start x: POKE $0D2F, normally 8 (for -0.8) - nicely centred at low zoom
    start y: POKE $0D31, normally 12 (for -1.2) - again centred at low zoom
    Old poke codes for the PETSCII version: 
    step: POKE $0cff e.g. 50 for a step of 0.05
    (smaller number, higher zoom)
    iterations: POKE $0d01 e.g. 30 iterations about right, higher = slower
    start x: POKE $0cf1, normally 8 (for -0.8) - nicely centred at low zoom
    start y: POKE $0cf3, normally 12 (for -1.2) - again centred at low zoom
    You Tube video of this in action:
    Commander X16 - 6502 assembly demo - Mandelbrot set - YouTube
    Commander X16 - Fractal Zoom Demo - 6502 Assembly - YouTube
     

    767 downloads

       (1 review)

    Updated

  3. STNICCC Commander X16 Demo Remake

    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) 😉 

    696 downloads

       (8 reviews)

    Updated

  4. Christmas 2020 Demo

    A sequel to my demo from Christmas 2019, but refactored to work with the R38 emulator and using new music and graphics.
    You can play it here, on your emulator, or just watch it on YouTube: 
    Also available on GitHub: https://github.com/SlithyMatt/x16-xmas/releases/tag/2020.0

    509 downloads

       (3 reviews)

    Submitted

  5. Matriculate

    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

    344 downloads

       (4 reviews)

    Updated

  6. Wolfenstein 3D - raycasting demo with textures

    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

    317 downloads

       (9 reviews)

    Updated

  7. Space Flight

    .

    316 downloads

       (1 review)

    Updated

  8. Sonic GHZ with raster lines and music

    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.

    214 downloads

       (4 reviews)

    Updated

  9. x16-spiral

    A quick demo making some sprites spiral in and out, powered with some LUT-based trig and multiplication functions I've been working on.
    Source code available at https://github.com/indigodarkwolf/x16-spiral/

    177 downloads

       (0 reviews)

    Updated

  10. Beginner 6502 Assembly Stuff

    This may be of interest to absolute 6502 assembly beginners like me, although advanced 6502 programmers may cringe at the way I've done things here! This program does very little, but it is a repository of useful assembly routines for things like printing different bytes of memory (useful for debugging) as well as some basic math operations. I will keep adding to this as I progress through my assembly journey (I'm aiming to write my fractal BASIC programs in assembly).
    Thanks to the following YouTubers for their excellent tutorials on all things 6502: 
    Ben Eater - YouTube
    Matt Heffernan - YouTube
    ChibiAkumas - YouTube (and also his excellent website: Assembly Tutorials: Learn 6502 Assembly Programming... With ChibiAkumas!)
    Function usage: (notation for cc65 assembler)
       jsr print
    .byte (list of PETSCII character codes to print, ending in a $0 byte)
       jsr println
    .byte (list of PETSCII character codes to print, ending in a $0 byte)
       jsr print_mem
    .word (start address of memory dump)
    Set MEMDUMPLEN to the number of addresses you wish print_mem to display. 

    176 downloads

       (0 reviews)

    Updated

  11. Assembly Vector Graphics Demo

    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! 

    175 downloads

       (0 reviews)

    Updated

  12. VERA Demo Screen written in assembly

    I have been playing with the VERA chip in assembly, and have come up with a cheeky little demo screen that is reminiscent of some 80s demos I can remember as a kid. No music or fancy interactive stuff, but some of you might find it amusing. 
    Warning: As a GP I feel I ought to point out this demo contains flashing / strobing effects! 
    Thanks to the excellent tutorials of SlithyMatt - Commander X16™ Community, especially the latest one demystifying the VERA chip. I have used a lot of his code from the latest tutorial to create this demo.  
     

    160 downloads

       (1 review)

    Updated

  13. 3d wire frame animated spaceship

    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...

    159 downloads

       (0 reviews)

    Updated

  14. Chonky Text in 6502 Assembly

    A little demo of rendering giant text in assembly. It takes the data from the Lower/Upper character set in ROM and renders it in a large, "LCD-style" font. You can use .asciiz in CC65 for letters, or use a zero-terminated array of bytes to reference the character codes, as below (thanks to https://www.commanderx16.com/forum/index.php?/profile/5-jimmydansbo/ for the character set reference). 
     

    150 downloads

       (0 reviews)

    Updated

  15. Basic Color Cycling Demo

    Playing with Color Cycling.  Only changes colors 7-14 in the palette to cycle a gradient for the sprite displayed on the screen. Inspired by games of old that used this trick to animate graphics.
     http://www.effectgames.com/demos/canvascycle/

    141 downloads

       (0 reviews)

    Updated

  16. MAD Program

    CX16 port of the "MAD-COMPUTER" program published in the October 1985 issues of Mad Magazine
    https://archive.org/details/mad-258
     

    136 downloads

       (0 reviews)

    Updated

  17. VOPL "Virtual OPL" Demo - realtime playback on OPM chip

    This demo uses the real music data from Wolfenstein3d to play back on the X16's YM2151 FM synth chip.
    Some features of the audio translation are not yet implemented, but the program now plays correct pitch in R38 of the emulator. I will update this posting to my R39 build when that is released officially.
    The "Try It Now" feature works, but at least for me, the playback is quite choppy - the emulator itself has no problem with the playback, though.
    Next update will be to make the songs selectable at runtime.

    136 downloads

       (0 reviews)

    Updated

  18. Many Sprites

    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

    132 downloads

       (6 reviews)

    Updated

  19. Super Castlevania 4 Tunnel Effect

    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.

    129 downloads

       (2 reviews)

    Updated

  20. C64 image file viewer (koala format)

    I wrote a program that loads Commodore-64 multicolor pixel art images in the "koala" file format, and displays them to a regular Commander X16  320x200 graphics screen.
    The C64 uses a fixed palette of 16 colors for all its graphics.
    I do find that the saturation of the default colors in de c64 palette in the Cx16 emulator is not very good though: when the images are displayed on a C64 or in an emulator like Vice for instance, they look much better in my opinion.
    So the program sets a custom palette (the "pepto" Vic-II colors) to make the images look closer like they would on a C64.
     
    This program has been integrated in a multi-format image viewer now, the source code of that is here https://github.com/irmen/prog8/tree/master/examples/cx16/imageviewer

    124 downloads

       (0 reviews)

    Updated

  21. 8BPP Cow

    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)

    114 downloads

       (1 review)

    Updated

  22. Voxel demo screen

    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.
     

    113 downloads

       (6 reviews)

    Updated

  23. BASIC Sprite Demo: Eating

    BASIC demo for using a sprite (now using R37 ROM) to eat all the text it goes over.
    As seen on YouTube:
     

    102 downloads

       (0 reviews)

    Updated

  24. BASIC Sprite Demo: Haunting

    BASIC demo for using a sprite (now using R37 ROM) to haunt all the text it goes over.
    As seen on YouTube:
     

    95 downloads

       (1 review)

    Updated

  25. Amiga Workbench highres 4colors

    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.
    Text is corrupted in the web emulator because it requires r41 to run properly.
     
    Here is a screenshot of a real Amiga Workbench 3.1 in action:

    88 downloads

       (1 review)

    Updated

×
×
  • Create New...

Important Information

Please review our Terms of Use