Jump to content

Demos

Sign in to follow this  

65 files

  1. Black and White

    X16 Forum
    This is my third "Double PETSCII" demo.
    But this time around, the colors are gone. It is only black and white.
    This is a converted PETSCII picture,
    the trick was to see if with no colors still some nice effects could be done.
    Besides PETSCII, there are also a few effects.
    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/3x7OieGqQCg
    Keep cool, and keep it (DOUBLE) PETSCII.

    3 downloads

       (1 review)

    Updated

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

    33 downloads

       (0 reviews)

    Submitted

  3. Space Flight

    .

    225 downloads

       (1 review)

    Updated

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

    161 downloads

       (6 reviews)

    Updated

  5. AES X16

    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

    8 downloads

       (1 review)

    Updated

  6. Codename ChickenLips

    I leave this here mainly for me to play about with when not at home, and also to see if it works on the web emulator. It does not yet function as a game, but as development progresses, I will regularly update this to track its progress. 
    Controls: W, A, S, D to move. Hold down for running. 

    31 downloads

       (2 reviews)

    Updated

  7. DMS-250 Switch Operating System

    This is a pale imitation of the DMS-250 SOS command line.
    It's based on a somewhat more functional Perl script I wrote many years ago.  This one is a proof of concept.  Even so, it does have a little bit of training value -- you can set the boot files for a switch and then do a restart.  That's something you couldn't "practice" in the olden days without booking time on a switch.
    There is so little here, it's ridiculous but for nostalgia value.
    It does very, very little, and requires that you know DMS-250 SOS already -- there's no help facility.
    * you can do a restart reload, restart cold, and restart warm (that's how you log out)
    * you can enter DISKUTIL
    * from DISKUTIL, you can LV 0, LF S00DIMAGE, and do elementary CBF and SBF commands.
     

    12 downloads

       (0 reviews)

    Updated

  8. 8-BitCoin Miner

    The Commander X16 8-BitCoin Miner application supports the mining of a notional crypto currency which I refer to as 8-BitCoin which has no monetary value but perhaps you can gain a bit of notoriety by posting snapshots of rare results on the Commander X16 Facebook page, and perhaps this application will inspire those unfamiliar with BitCoin to learn a bit more about it.
    The Commander X16 8-BitCoin Miner application is based on Bitcoin Miner 64 by YTM/Elysium (https://github.com/ytmytm/c64-bitcoin-miner) which was inspired by stacksmasher's GameBoy miner (https://www.youtube.com/watch?v=4ckjr9x214c). Bitcoin Miner 64 supports a demo mode as well as a cooperative mining mode which interfaces to an eternal process running ntgbtminer (https://github.com/ytmytm/c64-ntgbtminer). I don't know of any way of communicating with an external process from an application running on the Commander X16 emulator, so I removed the cooperative mining mode and focused on enhancing the standalone demo mode in the port to the Commander X16. Enhancements include the ability to randomize the block data, keep track of total number of hashes and associated 8-BitCoin value earned, display the best and last hash results and associated nonces and 8-BitCoin values, and to load and save state which allows a user to restore their data between sessions.
    I've created and posted a C64 version as well as a CX16 version. For the CX16 version a single penny is earned for the first leading zero in the binary representation of the hash result and each subsequent leading zero increases in value by a 2x factor. When the first one is detected in the binary representation of the hash result, each subsequent zero decreases in value by a 2x factor until the value is less than a single penny. Since the CX16 clock rate is approximately 8x the C64 clock rate, the earned value for the C64 version is calculated by multiplying the earned value for the CX16 version by a factor of 8.
    When the 8-BitCoin Miner application is started a title screen is displayed at which point the user can press any key to advance to the main menu.
    At the main menu the user can randomize the block data, start mining, and save and load the mining state via the R, M, S, and L keys respectively. When the block data is randomized any previous best and current hash results are cleared but the total hash count and associated earned value are retained.
    The best and last hash results are cleared and the total hash count and associated earned value are initialized to zero when the 8-BitCoin Miner application is started, but loading a previously saved state will restore the best and last hash results and the total hash count and associated earned value. There's a single "BITMINER.DAT" save file, so be aware saving will overwrite any previous existing version of this file. Likewise when you perform a load command you will lose any results accumulated since the last save operation. If you want to save and load state you'll probably have to download the application because I doubt that these features will work properly with the online emulator associated with the "Try it now" feature (since there's the possibility of multiple simultaneous users and only a single save file which doesn't seem to be retained between on-line emulator sessions).
    When mining the user may return to the main menu by pressing the M key.
    I tested the CX16 version on the CX16 emulator revision R38 and I briefly tested the C64 version on the VICE C64 emulator and the C64 mini. The save and load functions seem to work on the VICE C64 emulator but not on the C64 mini. However, you can use the save and load functions provided by the C64 mini to save and restore the state between mining sessions.
    Here's some C source code which is equivalent to the implementation and intended to clarify calculation of the earned value from the hash result. The calculation of hashWord is not shown but occurs in the ... portion between the variable declaration and subsequent code.
        uint32_t hashWord, value, bitMask, deltaValue;
        .
        .
        .
            value=0;
            bitMask=0x80000000;
            deltaValue=1;
            while((bitMask!=0) && ((bitMask & hashWord)==0))
                {
                value+=deltaValue;
                bitMask=bitMask>>1;
                deltaValue=deltaValue<<1;
                }
            bitMask=bitMask>>1;
            deltaValue=deltaValue>>1;
            while((bitMask!=0) && (deltaValue!=0))
                {
                if ((bitMask & hashWord)==0)
                    value+=deltaValue;
                bitMask=bitMask>>1;
                deltaValue=deltaValue>>1;
                }
    #ifdef C64
            // multiply value by 8 for C64 version
            value=value<<3;
    #endif
     

    16 downloads

       (0 reviews)

    Updated

  9. MR TUTH - HIRES DOUBLE PETSCII DEMO

    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.

    22 downloads

       (2 reviews)

    Submitted

  10. 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.
    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 that I used as inspiration https://patric-sokoll.de/Museum/Computermuseum/Amiga_Kickstart/Amiga_Workbench_3.1_Vorschau.jpg

    51 downloads

       (0 reviews)

    Updated

  11. BASIC 'Twisted Transcendentals'

    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.   

    12 downloads

       (1 review)

    Updated

  12. BASIC x16 STARFIELD

    Continuing to re-acquaint myself with BASIC.   This is just a quick BASIC adaptation of a bitmap starfield, which also pops up the X16 logo that is included in the VERA typeface used by the "char" command in bitmap mode.   I messed with this about 10 years ago on a real Plus/4 and it was even slower!    I believe it was based off a C64 version that a friend had bundled with one of those extenders that added graphics commands as a wedge to C64 basic.     
    There's a probably an easy way to add some depth-cue for the logos, maybe use just a single pixel for the 10% of the center of the screen; then a lowercase 'x' for the next 20% and then pop the logo to fullsize for the rest of its range of travel, but even adding color and flipping back and forth between stars and logo characters slowed things down enough that I cannot imagine further extensions it being worthwhile for a simple little BASIC demo like this.  
    Usage:   Alter the combined number of stars/logos with the 'I' value in line 1.    Alter the ratio of stars/logos by changing the AND mask in line 2.   
    Use any key to exit back to the text screen.   

    13 downloads

       (0 reviews)

    Submitted

  13. Noise X16

    This program simulates TV static using the X16's bitmap mode.
    This program generates a 320x240@4bpp static effect at just over 26 fps. In other words, it generates just shy of 2 million pixels per second, or uses about 4 clock cycles per pixel.
    You can check out the source code here: https://github.com/LRFLEW/Noise-X16

    12 downloads

       (0 reviews)

    Updated

  14. Spinning Intro

    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

    35 downloads

       (4 reviews)

    Updated

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

    39 downloads

       (4 reviews)

    Updated

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

    72 downloads

       (0 reviews)

    Updated

  17. LORES DOUBLE PETSCII DEMO

    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

    12 downloads

       (2 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

    54 downloads

       (6 reviews)

    Updated

  19. Audio Demo - Invention 13 (used in Commodore promotions)

    I was missing Bach's "Invention 13", and so here's the first 13 bars that Commodore Business Machines used in the early 80s for Commodore product promotions.

    51 downloads

       (1 review)

    Updated

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

    239 downloads

       (9 reviews)

    Updated

  21. quick sort color demo

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

    35 downloads

       (0 reviews)

    Updated

  22. quick sort demo

    Kind of a fun demo of Quick Sort on the CX16, using the random "static" of the startup VERA memory and using the 640x480 bitmap screen.
    Tap any key to progress from:
    Initial static Slow sort, so you can see what's going on, kind of satisfying to watch Re-randomize Full speed sort, this is 37.5k, which the CX16 sorts in a couple seconds Back to Basic Written in assembly

    16 downloads

       (0 reviews)

    Updated

  23. Parallax Demo

    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

    26 downloads

       (0 reviews)

    Submitted

  24. Little Intro

    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!

    41 downloads

       (2 reviews)

    Submitted

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

    111 downloads

       (0 reviews)

    Updated

Sign in to follow this  
×
×
  • Create New...

Important Information

Please review our Terms of Use