[Coco] 6309 microprocessor project 01-16-2004

John Kowalski sock at axess.com
Fri Jan 16 15:59:12 EST 2004


At 02:26 PM 16/01/2004 -0500, John Collyer wrote:
>6309 microprocessor project.
>...
>I was still wondering what the emulator lacks in making the
>Sockmaster demos work?  Any insights will be appreciated.

Where could I download this emulator to check it out?

Here's a quick list of things that make 'Sockmaster demos' troublesome
to emulator:

1) Mid-frame (On-the-fly) palette updates.  This is how some demos, CoCoMax
   III and 64 palette color-charts display more than 16 colors on the screen.
   Emulating palette updates once per scan line is sufficient as I don't know
   of any programs that require mid-scanline palette updating (unless you want
   to go *all-the-way* authentic and emulate palette glitches as well :) )

2) Mid-frame video mode/resolution updates.  Some demos will change the video
   mode to different resolutions for different scanlines of the display.
   (A real CoCo is capable of mid-line video mode changes, but I can think of
   only one program that requires it - Dragonfire for the CoCo1/2, which
   switches between two color sets multiple times per line to display 8 colors
   in the otherwise 4 color PMODE3 screen.)

3) Undocumented video resolutions/modes.  Boink demo takes advantage of a
   video mode that repeats one scanline throughout the whole frame -
   essentially 320x1 resolution.  This is how the ball bounces up and down
   while still allowing stationary graphics at the bottom of the screen -
   the demo switches to 320x1 mode at specific scan lines to 'stretch' one
   line below and above the ball itself.  Other than offsetting the video left
   and right, what you see is technically a stationary graphics screen
   throughout the demo!
   Nick's Gate Crasher uses an undocumented video resolution which was/is not
   supported by Jeff's emulator.

4) Mid-frame horizontal offset updates.  (The horizontal smooth scrolling
   register)  This is used for wavy effects and multi-sectioned scrolling in
   some demos.
   *Mid-frame vertical (or video address updates) do not need to be emulated
   because even a real CoCo 3 does not support this.

5) Exact CPU cycle counts.  Some programs and demos count cycles to syncronize
   with the video raster.  The 6809 executes 57 cycles per scan line at .89Mhz
   and 114 cycles per scan line at 1.79Mhz.  The video display has 262 scan
   lines total.

6) Exact TIMER and interrupt timing.  Some games and programs use interrupts
   to syncronize with the video raster.  If the emulated timing is different
   from the real CoCo, things in the display can flicker or appear out of place.
   Even the minor differences between the 1986 and 1987 versions of the GIME
   were enough to break a few games - most notably the 64 color chart in
   CoCoMax III.   Emulating 1986 GIME timing is preferable.

7) Undocumented opcodes.  Not very important, but some programs, and the
   old/original versions of my demos used undocumented opcodes as half-NOPs,
   or 1.5 NOPs for timing purposes. (I patched my demos when I found out the
   6309 treated these opcodes differently from the 6809.)

8) ...What else?  There may be a few more things that I've forgotten.

                                         John Kowalski (Sock Master)
                                         http://www.axess.com/twilight/sock/




More information about the Coco mailing list