Monday, 14 April 2014

There are ports, and there are ports.

I thought I should point out that when I use the term 'port', I'm using it in the absolute strictest sense of the word.

What I will - in effect - be doing is translating the code line-for-line from 6502 assembler to Z80 & 6809. The result will be a pixel-perfect, 100% accurate rendition of the Apple II original on the target platform. All the graphics, all the game-play, all the AI will remain intact. Nothing less will suffice.

OK, technically I won't be translating line-for-line, but it won't be far off!

Sockmaster has proven that it is actually possible to take this approach; his port of Donkey Kong (arcade, Z80) to Coco 3 (6809) comprised literally that. Whilst he did have to modify the graphics slightly to accommodate hardware limitations on the Coco, the result is a completely authentic port of the arcade original. And nothing less than impressive!

As I've mentioned, I'm roughly 50% through porting arcade Donkey Kong to the Neo Geo and, although I'm taking a decidedly different approach to Sockmaster, the end result will be the same. I'm reverse-engineering the original Z80 code in order to understand exactly how it works, and then writing equivalent 68K code. And rather than waiting until the disassembly is complete, I'm writing each section as I reverse-engineer it.

So on the topic of pixel-perfect, 100% accurate ports - I'm not expecting to have any technical issues with either target platform. Perhaps the most limiting restriction will be the graphics bandwidth on the Model 4, although I'm sure the modest requirements for Lode Runner will not be an issue in the end.

The beauty of the Apple II original is that it was designed to be perfectly playable on both monochrome and colour monitors. In fact, I only ever played the Apple II version on a green-screen monitor back in the day. Lode Runner runs in 280x192 resolution, and sound is generated via the Apple II speaker.

For the TRS-80 Model 4/4P version, I'll be running it in 640x240 mode, and pixel-doubling horizontally, to utilise a 560x192 pixel area of the screen, which I'll ultimately center.

For the TRS-80 Color Computer (Coco) 3, I'll be running it in 320x192 mode, obviously utilising almost all of the screen. Initially I'll focus on a monochrome implementation, but ultimately I'll also support the Coco's 4-colour mode in order to replicate the Apple II's colour rendition.

That's about all I have to say on the matter of porting and accuracy.

I will add one last thought about a Neo Geo port, as it has been nagging at the back of my mind. There are plenty of ports of Lode Runner to tile-based systems, so it's obviously feasible. I'll reserve my final judgement until I know more about the game's rendering routines, but I strongly suspect that even the Apple II version emulates a tile-and-sprite system, and that porting to a ROM-based graphics system like the Neo Geo would be straightforward.

It's very, very tempting to set up a Neo Geo Lode Runner project right now...

No comments:

Post a Comment