Files posted by svenvandevelde
Please find below a new ROM flash utility that we ( @Wavicle and myself ) have created in preparation for the CX16 production release.
When you have the CX16 actual hardware, then this utility is to be used to update your CX16 ROM with a newly released ROM.BIN file, once such become available.
However, for those curious to try, you can run this tool on your emulator. Just deploy the PRG file and a newly ROM.BIN file onto an SD card image.
Start the emulator with the SD card image option, and load the CX16-ROM-FLASH.PRG, and run the program.
You'll see the flashing procedure in action, first loading the ROM.BIN completely into the internal memory first, and it will wait for a key press from the user.
Once you press the key, the ROM will be flashed. Once the ROM flashing process is completed, the CX16 will reset.
(Not sure that after reset, the rom will have the latest image then in the emulator, but it's worth to try ...).
This is the first release of this, and further release will be made. Also this tool will like make its way to the official production software stack.
The execution of this program, on official CX16 hardware, confirmed that the ROM upgrade process is feasible and that the ROMs are upgradable.
Find a first playable demo of Equinoxe, my Commander X16 shooter ...
I know it's not much yet, but I've come from very far making this.
To make this, I had to learn how to:
- implement a memory manager algorithm for vram on the vera
- implement a memory manager algorithm for bram
- implement a (fast) collision detection algorithm using spacial hashing technique
- implement a fast method to shoot bullets to an angle direction
- implement a fast method to calculate the angle between 2 coordinates (so calculate the unit vector)
- fixed point arithmetic
- sprite design using blender and spriter
- tile design
- implement a dynamic tile walking algorithm
- vera library with all kinds of functions to paint sprites and tiles and control the video ram
- dynamic level loading
- memory banking
- mouse control of the CX16
and more ...
So as this demo may not be much, I've really learned a lot on this path to make this.
And still continuing to develop this game as time floats...
Let me know in the comments if this is something you like or not ...
This demo must be downloaded as the emulator version on the web does not allow to load a card.
So unzip the cx16.zip and a cx16.vhd file will be created.
Load the game with x16emu -sdcard cx16.vhd
In the emulator, type load "equinoxe.prg", 8, 1
Find attached a small demo program that calculates the angle between the middle point of the sceen and the mouse pointer position.
This demo only runs on the R39 emulator version of the cx16.
The angle calculated is between 0 and 63, so each quadrant in the circle has 16 different angles (0 to 15).
Please comment to the following article that goes into details on this atan2() approach ...
A demo showing a heap memory manager being functional, dynamically allocating and freeing memory blocks of various sizes in banked memory of the CX16.
This demo program provides an overview of what the vera card can do in terms of the different configurations in text mode, tile mode, and bitmap modes.
The demo is nothing really fancy, but the workhorse underneath is the new API library (veralib.c and veralib.h, conio-cx16.c etc. ) that allows to configure and control the vera card of the CX16 using the kickc compiler of Jesper Gravgaard:
camelot / kickc · GitLab. The veralib library and source code of this demo program has become an integral part of the compiler and test programs, and can be downloaded also from src/test/kc/examples/cx16/cx16-vera.c · CX16_VERA · Sven Van de Velde / kickc · GitLab.
If you're a C-programmer, and you're interested in using this library, please beware that this is still work in progress. However, if you're motivated to try it out, i'm really interested to get feedback on this c-library to understand if the API is useful and clear. Feel free to try out the program, by running it in an emulator in windows; the mobile phone emulators won't be able to run this program properly because the keyboard is needed to run this. More features are planned to be added. One of the features planned is to provide mouse support, so it can be run using the android emulators too.
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!