Jump to content

73 files

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

    18 downloads

       (2 reviews)

    Updated

  2. 1160

    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.

    11 downloads

       (0 reviews)

    Updated

  3. 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 3.1 in action:

    55 downloads

       (0 reviews)

    Updated

  4. color gradients

    Early Amiga-demoscene inspired raster bars with color gradients.
    The color gradients are randomly generated.
    Written in Prog8 with a bit of inline assembly. Source code is available here https://github.com/irmen/prog8/blob/master/examples/cx16/colorbars.p8
     

    2 downloads

       (0 reviews)

    Updated

  5. Blinkenlights

    A simple file that graphically shows the values of several registers in the X16 which change regularly -- for example, the top of the accumulator stack, and some of the I/O registers.
    It's an attempt to replicate the "blinking lights" of systems that used to use big ol' LEDs to represent register contents, alarm bars, and whatnot.
    The C source is here: https://github.com/bobbyjim/x16-blinkenlights
     

    5 downloads

       (0 reviews)

    Updated

  6. Fancy Mandelbrot Set Zoomed Plot

    Got a day to kill with your X16? Run this BASIC program and generate this 256-color fractal plot. It's zoomed into a deep part of the Mandelbrot Set that is particularly pretty. This plot does up to 355 iterations and is within an area where all points require at least 100 iterations, so the whole 256-color palette is able to be represented, from white for 100 iterations to black for 355 iterations or more.
    For fastest results, run in "warp" mode with your emulator:
    x16emu -warp -bas x16-mandelbrot-vga-fancy.bas
    At 8Mhz, this will take literally all day, but if you have a beefy enough host for your emulator, it can be cranked out in a couple hours.
    Enjoy!
    From: https://github.com/SlithyMatt/multi-mandlebrot

    36 downloads

       (0 reviews)

    Submitted

  7. PSG Audio Test or Why We Only Need Vera.

    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

    37 downloads

       (1 review)

    Updated

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

    47 downloads

       (2 reviews)

    Updated

  9. Proteus

    This is a single program listing that contains three different versions of the Proteus Demo from my thread in HOWTOs on converting and optimizing BASIC programs.   
    Version .02  was from very early in the conversion/optimization process from that thread and, consequently, is quite slow.   Its also got the original author's bad scaling coefficients, which make the output look a little gnarly.   
    Version 1.0 was originally what I thought would be the 'fully optimized' version, with all sorts of things (documented in the thread) done to squeeze out better performance.   And of course the scaling is fixed so the output looks better.   This was supposed to be the end of the thread, except that... 
    Version 2.0 takes advantage of something I noticed about the calculations, which led to the idea to have the program start off by precomputing a table that allows us to avoid having BASIC redundantly performing a bunch of the most expensive operations in the program.   Even considering (and counting) the over minute-and-a-half it takes to initially compute the lookup table, the trick resulted in nearly halving the time to complete plotting the output compared to what was the previous fastest version.   (Of course, I now wonder if some of the better math and coding gurus have been rolling their eyes all along, just wondering when, if ever, I might figure this part out...).     
    Just RUN it and pick A, B or C from the menu.    When its done plotting and puts up the elapsed time (its in HHMMSS format) you can press any key, and it will 'LIST' the program lines that correspond to the version that just completed plotting. 
    I hope folks find it helpful having the three versions (and the howto thread) in terms of seeing how the thing evolved.  You will notice that the more tweaking you do for speed, the more opaque and confusing the program becomes in terms of ever expecting someone with fresh eyes to try and see what the heck is going on.   That 'early' version is included, in part, because its much easier to follow than the others. 
    More info at the thread here:   
     

    17 downloads

       (0 reviews)

    Updated

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

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

    9 downloads

       (2 reviews)

    Updated

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

    79 downloads

       (1 review)

    Submitted

  13. Space Flight

    .

    246 downloads

       (1 review)

    Updated

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

    334 downloads

       (7 reviews)

    Updated

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

    13 downloads

       (1 review)

    Updated

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

    39 downloads

       (3 reviews)

    Updated

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

    16 downloads

       (0 reviews)

    Updated

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

    20 downloads

       (0 reviews)

    Updated

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

    25 downloads

       (2 reviews)

    Submitted

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

    19 downloads

       (0 reviews)

    Submitted

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

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

    44 downloads

       (4 reviews)

    Updated

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

    49 downloads

       (4 reviews)

    Updated

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

    76 downloads

       (0 reviews)

    Updated

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

    16 downloads

       (2 reviews)

    Updated

×
×
  • Create New...

Important Information

Please review our Terms of Use