Jump to content
IGNORED

ColecoVision Donkey Kong - 16K and 24K Versions


ColecoFan1981

Recommended Posts

On 6/22/2021 at 4:50 AM, Tempest said:

Necro bump on this.  Did anyone ever figure out what if anything was cut out of the 16K version?  Was it just code optimization and bug fixes?

The original 24k version of Donkey Kong was implemented primarily in Pascal (it's the only Coleco game that makes use of the Pascal entry points in Coleco BIOS ROM). The 16k version was reimplemented in pure Z80 assembly to reduce the code size and save on manufacturing costs. 
 

It's likely that any differences in the gameplay between the two versions weren't intentional but were just a byproduct of porting the game from Pascal to assembly. 
 

 

  • Like 1
Link to comment
Share on other sites

12 minutes ago, NightStalker said:

The original 24k version of Donkey Kong was implemented primarily in Pascal (it's the only Coleco game that makes use of the Pascal entry points in Coleco BIOS ROM). The 16k version was reimplemented in pure Z80 assembly to reduce the code size and save on manufacturing costs. 
 

It's likely that any differences in the gameplay between the two versions weren't intentional but were just a byproduct of porting the game from Pascal to assembly.

The Colecovision BIOS had Pascal entry points?  So Pascal was used in some Colecovision development after all?  I remember hearing those rumors that the startup delay was due to the Pascal emulator having to boot up but of course that's was proven false decades ago.  :)

Link to comment
Share on other sites

I've verified that Donkey Kong does indeed use the Pascal vectors using a forensic tool I wrote called find-pascal:

https://github.com/tschak909/find-pascal

 

This was then run on my ColecoVision ROM collection, and interestingly enough, Smurfs, Rescue from Gargamel's Castle also turns up with a bunch of hits. I can do further code analysis to verify this, but:

thomc@TMA-2:~/Workspace/tnfs-backup/adam-apps.irata.online/tnfs/Games/ColecoVision$ find . -type f -exec find-pascal {} \;
./D/Donkey Kong (1982) (Coleco) [24K].rom:
	WRITE_REGISTERP
	REQUEST_SIGNALP
	TEST_SIGNALP
	WRITE_REGISTERP
	PLAY_ITP
	PLAY_ITP
	REQUEST_SIGNALP
	TEST_SIGNALP
	PLAY_ITP
	PLAY_ITP
	PLAY_ITP
	PLAY_ITP
	REQUEST_SIGNALP
	TEST_SIGNALP
	SOUND_INITP
	REQUEST_SIGNALP
	TEST_SIGNALP
	SOUND_INITP
	SOUND_INITP
	PUT_VRAMP
	INIT_WRITERP
	INIT_SPR_ORDERP
	WRITE_REGISTERP
	WRITE_REGISTERP
	INIT_TABLEP
	INIT_TABLEP
	INIT_TABLEP
	INIT_TABLEP
	INIT_TABLEP
	WRITE_REGISTERP
	WRITE_REGISTERP
	INIT_TIMERP
	WRITE_REGISTERP
	TEST_SIGNALP
	TEST_SIGNALP
	PUTOBJP
	TEST_SIGNALP
	REQUEST_SIGNALP
	PUTOBJP
	TEST_SIGNALP
	ACTIVATEP
	SOUND_INITP
	PLAY_ITP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	TEST_SIGNALP
	TEST_SIGNALP
	TEST_SIGNALP
	PUTOBJP
	PUTOBJP
	FREE_SIGNALP
	FREE_SIGNALP
	SOUND_INITP
	PLAY_ITP
	TEST_SIGNALP
	PLAY_ITP
	TEST_SIGNALP
	PUTOBJP
	ACTIVATEP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	PUTOBJP
	PLAY_ITP
	PUTOBJP
	PUTOBJP
	PLAY_ITP
	PUTOBJP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	PLAY_ITP
	PLAY_ITP
	PUTOBJP
	PUTOBJP
	PLAY_ITP
	PLAY_ITP
	PLAY_ITP

./Z/Zaxxon (1982) (Coleco).rom:
	WRITE_VRAMP

./S/Smurf Rescue in Gargamel's Castle (1982) (Coleco).rom:
	SOUND_INITP
	INIT_TIMERP
	REQUEST_SIGNALP
	REQUEST_SIGNALP
	SOUND_INITP
	PLAY_ITP
	PLAY_ITP
	REQUEST_SIGNALP
	TEST_SIGNALP
	TEST_SIGNALP
	SOUND_INITP
	WRITE_REGISTERP
	WRITE_REGISTERP
	INIT_TABLEP
	INIT_TABLEP
	INIT_TABLEP
	INIT_TABLEP
	INIT_TABLEP
	WRITE_REGISTERP
	INIT_TIMERP
	REQUEST_SIGNALP

Zaxxon also has a hit on WRITE_VRAMP which may suggest that it was written in Pascal at one point and at least partially rewritten in asm.

 

Studies of the OS7 ROM indicate that the Pascal entrypoints are literally compiler output from Pascal code for each of the given functions (They aren't just re-marshalling the parameters)

https://archive.org/details/coleco-adam-technical-manual-eos6-os7/mode/2up

 

1893037751_Screenshotfrom2022-05-0223-17-10.thumb.png.48047d3a66efa71a29d85b200a961b25.png

5619722_Screenshotfrom2022-05-0223-16-25.thumb.png.bf98d7071490d28d77858dc932e03904.png

2022647621_Screenshotfrom2022-05-0223-15-42.thumb.png.d7de9a76916fc63f9af8430ccdd2cee0.png

1029142755_Screenshotfrom2022-05-0223-13-28.thumb.png.af9dbff7b33afd75fe588d5d1a32be22.png

 

There was indeed a Pascal compiler for the Z80 target on the HP 64000,

http://hpmuseum.net/display_item.php?sw=515

 

so...

 

Food for thought,

-Thom

 

  • Like 2
Link to comment
Share on other sites

  • 11 months later...
On 2/14/2009 at 5:26 PM, Murph74 said:

 

Well, I think I confirm a SuperDK Disk version does exist, as I had all three (DKJ, DK, and Zaxxon) on floppy converted from DDP by NIAD back in the day.


Bumping this thread again as I was curious about the wording in the above post.

 

The Super DK and Super DK Junior “cartridge versions” have been around for decades now, and I love playing them on my system. But this is the first time I’ve heard of a “Super Zaxxon cartridge version”.

 

Does this really exist or am I misreading this guys wording? And if it does exist, where is the rom for it? I’d love to build my own cart of it.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...