Files posted by desertfish
This is a multi-format image viewer program. It supports IFF, PCX, BMP and Koala (c64). It supports full-screen 320x240x256 color bitmap mode and IFF Color Cycling !
Due to emulator restrictions (it seems) It only works when running from an sd-card file, so I've provided a zipped one that contains the program and a few sample images.
The source code is here https://github.com/irmen/cx16imageviewer
The video below shows the program in action!
File-based assembler. Work in progress.
requirements: patched v39 roms, sdcard image (no host filesystem passthrough)
requires ZeroByte's patched Kernal LOAD routine to deal with the HIRAM banks correctly! Using the default unpatched V39 kernal Rom will crash the commander X16, and can corrupt your sd-card image! due to remaining kernal / emulator bugs, the file loading mechanism only works on an attached sdcard image in the emulator. Host mounted filesystem doesn't work.
Source code and list of features is here https://github.com/irmen/cx16assem
The instructions are fairly self-explanatory, a simple manual will come later
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:
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
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
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
After seeing others post conversions of classic basic programs, I remembered this one where the computer plays an animal guessing game with you.
It tries to guess your secret animal by asking questions about it, and if it doesn't know the animal, it asks about your chosen animal so it knows about it the next round!
(It's basically building a binary search tree)
note: all knowledge is lost when the program exits. (maybe I'll make a future version where it can save/load the animals and questions)
Source code is here: https://github.com/irmen/prog8/blob/master/examples/animals.p8
I've recompiled my tetris clone to the Commander X16! Features: holding area, wall kick rotations, shows next piece, staged speed increase
It is functionally equivalent to the original C64 version except the sound effects are a bit simpler.
Controls are printed in the screen, note that you can also use the cursor keys for movement if that's more convenient for you (not printed)
Source code is here: https://github.com/irmen/prog8/blob/master/examples/cx16/tehtriz.p8
Imagine yourself, commander Jameson, in the cockpit of the Cobra MK-III with 100 Cr. in your bank and stationed on Lave, one of the more well known colonized planets. You're setting out to be a master trader and to get rich by exploiting commodity markets across the galaxy!
This simulation engine is very faithful to the original procedural universe algorithms found in the actual Elite game.
There are 8 galaxies to explore, each containing 256 totally different inhabited planets that you can travel to. Each planet is named, has certain government types and inhabiting species, and you can read a short description that characterizes the planet and what it is famous or notorious for. Of course every planet has a commodity trade market, and you have to exploit the various supplies or shortages and price differences to make your fortune!
A simple navigation star map of the local cluster and full galaxy is also available. You can save and reload your progress to continue at a later time.
Source code here https://github.com/irmen/prog8/blob/master/examples/textelite.p8 Written in Prog8, converted from original C source code obtained from http://www.elitehomepage.org/text/index.htm
(this game can also run on the C-64 if you recompile it for that machine target)
I learned about the various screen modes of the Vera chip.
As long as you reduce the number of colors to fit it all in the available video memory, high res 640x480 bitmap images are perfectly possible.
256 colors requires way too much memory though, so for simplicity sake, I reduced it all the way back to 2 colors black and white.
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
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...