The C64DTV was the first one to be prodded (viewtopic.php?f=44&t=6938) and so far looks to be a strong contender; with 2MB RAM, higher colour graphics modes, a great little blitter/DMA, digital sound and a vastly sped up (as long as coded correctly) 6510 CPU, it should easily match the 68k machines feature-wise.
My thinking behind this project umbrella is that if I can bring each viable target platform to the same level - coding similar functionality for the incrementally added graphics/sound/input routines - it may be easier to remember the (generally similar) processes and not have to re-think them again for the next platform. (Thats if I can make sure I dont have to keep re-learning/confusing each architectures' assembly language! lol)
As I have a well documented 2D graphics engine, porting the components - or subsets of - over is fairly straightforward, once the architecture specifics are understood and interfaced with.
Anyway, this time, as I have recently had the fortune of spare time to set it up, the focus is on the Atari Mega ST, with the fairly recent NOVA v1 Megabus card built by Frank Lucas.
Well, I was pipped to the post for putting out some sort of graphics demo on the Atari+ET4k combo by @fenarinarsa. However, his detailed notes have allowed me to progress quicker and I have managed to knock up this quick preliminary game engine demo over the Xmas holiday week.
I call it Mortal Kombat remix. Id describe it as a proof of concept demo for game engine viability on the ET4000 GFX card with an ST and blitter.
Its a couple of characters from MK1 (one not enabled yet, but certainly included in the assets) with a background from MK3.
I have got as far as blitting a 320x240 background, overlaying a single (for now) combatant, with the relevant 3 blits - restore background/blit mask/blit character image and processing the joystick for L/R walking (U/D is for punch/kick).
And here is where we have a fork in the road with a question mark.
After adding the animation framework for the character(s) is where the issues arose.
So I am using the blitter in HOG mode and for the time being, the animation speed is fast, so I have disabled the character animation delay framework. Incidentally, the ET4000 card has an even quicker logical mask than the ST blitter, which *could* perhaps be harnessed to speed up two of the three blit processes (background restore and mask blit), but I havent quite managed to get it to work yet; there are so many unknowns with the ET4000 registers/modes, that I havent fully understood these yet.
However, the bigger problem is the less than straightforward way the ST joystick is read.
The ST joystick port needs the IKDB to be programmed to setup the joystick to be polled and this is then written via an interrupt vector to a memory location which holds the bitwise results of the joystick input.
This is fine, only the blitter in HOG mode is not allowing a big enough window for the CPU to process/service the interrupt; especially on what could end up a fairly busy game loop.
There are some options here which can solve the issue:
1. Shorten the loop to spend less time outside the joystick read.
2. Take the blitter out of HOG mode.
But being me, I always try to take advantage of the HW that is currently infront of me. And seeing that I have recently made inroads to having a H5 with a TF536 in it (oh, and I picked up a cheap Mach32 ISA card at Xmas, but thats another story!) soon on my desk, I have opted to try something else:
1. Use a printer port 2 player adapter to read the joystick (this could circumvent having to disable HOG mode, if the MFP is quicker to get the data from), but as HOG mode still...er...'HOG's the bus, I think we are heading for...
2. Use the TTRAM on the '030 card for most program data, which will allow the CPU to run in parallel with the ST bus hogging blitter AND possibly use the printer port joystick too.
But initially, Im still at the stage described further above.
So, what do you need to run the demo 'as is'?
A 4Mb Mega ST with a HDD to extract the zipped file to (file size is 166Kb zipped, ~3.2Mb uncompressed). (You will also need an ST based unzip utility).
A NOVA V1 from Frank Lucas together with an 8-bit colour (18bpp) ET4000 card with the KDA0476 DAC and the correct T0 drivers from Wolfgangs site.
An Atari compliant joystick in Port 1 (Mouse is normally in Port 0 FYI)
A screen setup that can run 320x240; any higher resolution and it will be run in the top left of the screen (Im still struggling to set a low res with this card. Hopefully Frank can guide me to getting a low res output/.bib profile, rather than a 640x480 mode set to double pixel output with virtual screen scroll).
If there is anyone out there with this exact setup, knock yourself out with the demo:
Considering the original MK ran on a Midway T board machine with a 400x254@15bpp GFX mode, it doesnt look too bad in 256 colours @ 320x240.
But remember, I dont give any warranties or guarantees for suitability on your equipment. i.e. If this program should somehow manage to re-program your IoT kitchen appliances to kill your cat, I am not responsible, etc, etc.
Also note that there are no advanced effects at this point; no frame sync, no background (or parallax) scrolling, no background animations, character only moves L/R, punch and kicks, no opponent, unoptimised/no compression of assets etc, etc. But remember its a quickly thrown together demo. This version also doesnt have the fully animated stance animation (for the reasons described above: build is HOG mode over frame animation optimised).
Im pretty sure you cant run this on HATARI, or anything but the above, but perhaps the PiStorm in a certain ET4000 config. can do it? Who knows? I will have to get hold of one to check at some point, unless someone wants to try.
For those looking to DIY and roll their own ET4000/KDA0476 demos for the NOVA v1:
ET Screen base: $a00000
ET Register base: $bc0000
You can look at fenarinarsas demo for more details. (Other than his VME/STE base addresses, which differ, the index/register details are the same).
More progress when I get the H5/TF536 combo working...probably
Also, if you want any more details just ask away.

