[Coco] 6809 Q [Mark Mc]

CoCoList for Color Computer Enthusiasts coco at maltedmedia.com
Thu May 15 20:03:28 EDT 2014


On 16/05/2014 5:00 AM, CoCoList for Color Computer Enthusiasts wrote:

> As someone that converted a lot of games from 6502 to 6809, you don't
> convert instruction by instruction.  You first figure out what the code is
> doing and then rewrite the whole block in 6809.

There are several different ways to skin a cat. I've found this (instruction 
by instruction) method quite straightforward and quite efficient (as a 
process), and it achieves exactly what I set out to achieve, which is to not 
only preserve the game play, but also the 'style' of the implementation 
itself (in effect, 'documenting' the 6502 code in a similar vein to MAME 
'documenting' arcade hardware). In fact, in a few cases I've purposefully 
ignored obvious 6809 optimisations.

That said, there are select blocks that I've rewritten for various reasons.

Granted, it could be done more efficiently as a native Coco3 program, but at 
this point, there's no need to put the extra effort into the port (plus it 
wouldn't suit my purpose - see above). It's also much simpler to debug the 
'original' code.

> It should be noted that while the CoCo 3 graphics system simpler than the
> Apple II, the CoCo 3 has 5 times the memory to update. (If you are using the
> 320 by 200, 16 color mode.)  You will need bit of speed in the code to make
> for extra graphics ram to update.

Because of the hardware differences, and the extra memory on the Coco3, I've 
converted the graphics format and re-written the low-level rendering 
routines on the 6809. Because of this and the vastly simpler video layout, 
the Coco requires at least one level of indirection less for the rendering, 
and less table lookups, so it should be significantly faster.

Right now I'm using 320x192 2-colour (sic) mode, so there's the same amount 
of graphics moving around. I do plan on implementing 4-colour mode though, 
so it will be moving more graphics but again, with more efficient rendering 
it shouldn't impact performance on the Coco.

Unfortunately I've hit the memory limit on the Coco right now when I didn't 
want to have to worry about loaders etc. But there's no way around it now; 
I'll have to bite the bullet and code that up before progressing any further.

I'm also toying with the idea of 'producing' a cartridge of the game. All 
the other retro platforms have new cartridges being released but our poor 
Coco hasn't seen one (AFAIK) for many years. Just thought it would be fun to 
have a new cartridge release for the Coco! The only stick-in-the-mud would 
be the plastics for the case... ideas anyone?

Regards,

-- 
|              Mark McDougall                | "Electrical Engineers do it
|  <http://members.iinet.net.au/~msmcdoug>   |   with less resistance!"



More information about the Coco mailing list