Hello,
almost six months have elapsed since I converted the first AGD-engine routine to 6809 code. I began end of June, beginning of July.
Now all the ZX-Spectrum code has been converted except for the routines that work for the AY-sound chip. So, time to close the project!
With the help of Kees van Oss we began the tedious test period. Once solved the bugs/flaws we found out, we decided to add a few new
features that are being added today to the std AGD.
So now we can use normal sprites 16x16 and bigger ones 16x24. The sprites move two pixels at a time, this means that there are four
'frames' at offsets 0,2,4,6 pixels from the left to make a whole sequence. By now, AGD solves that creating four blocks of data for every sprite
(inside the compiler) and the final ASM program contains these four frames, so using 128 bytes instead of just 32 for each normal sprite.
There is a very clever developpment that, using four tables 256 bytes each, that contains the preshifted data values, is able to draw
the four frames reading only the base one.
This implies a bit of extra code and the tables themselves, but as many games use a lot of sprites, the overall result is really interesting.
That way some games that didn't fit in the lower 32K, now do! One step further and these four tables have been sent to higher RAM,
so freeing 1024 extra bytes that allow for any AGD game to run on the CoCo-Dragon.
And furthermore the code has some compile flags that help reduce to the minimum the size of the binary file, by hiding the not needed parts.
*** I will just remember that the AGD games *require* machines with 64K RAM (mandatory) ***
Well, the engine was the first part to be created. It contains the functions offered to the game designer who can call them from the
script program that creates the AGD program on the ZX-Spectrum.
Then with Kees, we modified a compiler that reads the script file and outputs an ASM file that contains 6809 code and the data for the game.
This compiler is a C program that we can run under Windows and is compiled under MinGW.
The suite is completed with another important tool, the converter that again is a C program that reads a Spectrum snapshot
of an AGD game and is able to extract the script with data to be compiled later.
With the converter, compiler and engine we could convert some 150 games or more.
To make things easier for us, I created a bunch of bat files that allow us to test scripts on a CoCo or Dragon emulation,
build the disks (DSK and VDK) and even create a folder with all the related intermediate files for each game.
To do so we are using tools from other people, for instance (listed alphabetically)
- ASM6809 from Ciaran Anscomb (Sixxie)
- DragonDos from Rolf Michelsen
- ImgTool from MAME/MESS
- XRoar from Ciaran Anscomb (Sixxie)
AGD stands for Arcade Game Designer and was created by Jonathan Cauldwell in 2008
What do we expect from this?
Well, the icing on the cake would be that WinAGD gives support to 6847 color features. I mean it should allow us to work in PMode4 or PMode3.
This is a very important point for anyone that wishes to make a PMode3 version of any game we will be releasing and most important,
we will be able to create NEW games from scratch!
cheers
pere
Ps You can learn more about the AGD project here
https://jonathan-cauldwell.itch.io/arcade-game-designer
http://www.worldofspectrum.org/infoseek ... id=0020176