ColecoVision Donkey Kong - 16K and 24K Versions
Started by ColecoFan1981, Feb 11 2009 3:10 AM
11 replies to this topic
#1
Posted Wed Feb 11, 2009 3:10 AM
In regards to the ColecoVision version of Donkey Kong, which was the pack-in cartridge for said system, there were versions of it produced with both 16K and 24K ROM chips. The 24K ROM version was known to be the earliest, and then Coleco programmers decided to cut 8K of this to 16K sometime during 1983.
There are notable differences between the 16K and 24K ROM versions of DK:
The broken ladder glitch on the girder board does the following:
*24K ROM version - Mario disappears after execution of the glitch and then re-appears after about 15 seconds on the top girder next to DK. However, Mario may lose a life when this is done because sometimes DK may throw a barrel the very instant Mario lands on DK's girder.
*16K ROM version - Executing this glitch causes Mario to fall down the girder and instantly go on to the rivets board.
Other notable differences:
*24K ROM version has a maximum time limit of 8000 bonus points.
*16K ROM version pushes this maximum to 99900 bonus points. But if this counter turns over at 00000 points, Mario will die instantly.
*24K ROM version - when Mario dies, the background music continues playing for a few timer ticks.
*16K ROM version - when Mario dies, the background music cuts out instantly when the death fanfare plays (timer's still ticking, though).
*24K ROM version - place Mario next to Pauline's hat, seen on the right side of the rivets board, and jump up from below and the hat magically disappears.
MODERATOR NOTE: Move this topic if necessary.
~Ben
There are notable differences between the 16K and 24K ROM versions of DK:
The broken ladder glitch on the girder board does the following:
*24K ROM version - Mario disappears after execution of the glitch and then re-appears after about 15 seconds on the top girder next to DK. However, Mario may lose a life when this is done because sometimes DK may throw a barrel the very instant Mario lands on DK's girder.
*16K ROM version - Executing this glitch causes Mario to fall down the girder and instantly go on to the rivets board.
Other notable differences:
*24K ROM version has a maximum time limit of 8000 bonus points.
*16K ROM version pushes this maximum to 99900 bonus points. But if this counter turns over at 00000 points, Mario will die instantly.
*24K ROM version - when Mario dies, the background music continues playing for a few timer ticks.
*16K ROM version - when Mario dies, the background music cuts out instantly when the death fanfare plays (timer's still ticking, though).
*24K ROM version - place Mario next to Pauline's hat, seen on the right side of the rivets board, and jump up from below and the hat magically disappears.
MODERATOR NOTE: Move this topic if necessary.
~Ben
#2
Posted Wed Feb 11, 2009 8:51 AM
Neat! I always love reading about this stuff. 
Tempest
Tempest
#3
Posted Fri Feb 13, 2009 3:09 PM
Tempest, on Wed Feb 11, 2009 9:51 AM, said:
Neat! I always love reading about this stuff. 
Tempest
Tempest
I agree with you Tempest I love this kind of stuff. Speaking of Donkey Kong. Has anyone ever discovered a dsk image of the Adam version of Donkey Kong?
Edited by TwiliteZoner, Fri Feb 13, 2009 3:16 PM.
#4
Posted Fri Feb 13, 2009 3:53 PM
I have a .dsk image of the ADAM in-house 5 screen Donkey Kong Jr., but I've never seen one for Donkey Kong.
#5
Posted Sat Feb 14, 2009 4:26 PM
doubledown, on Fri Feb 13, 2009 3:53 PM, said:
I have a .dsk image of the ADAM in-house 5 screen Donkey Kong Jr., but I've never seen one for Donkey Kong.
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. They were like $10 each to convert and you had to send the tapecase cover as proof of ownership of the original game. These days, I don't have any Adam floppies or a Adam Floppy drive left even. I'm surprised no one has this out there, even the TOSEC set of Adam stuff is missing it. I'll let ya know if I can find it-- I think I still have the original DDP.
#6
Posted Mon Feb 16, 2009 12:24 AM
Murph74, on Sat Feb 14, 2009 4:26 PM, said:
doubledown, on Fri Feb 13, 2009 3:53 PM, said:
I have a .dsk image of the ADAM in-house 5 screen Donkey Kong Jr., but I've never seen one for Donkey Kong.
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. They were like $10 each to convert and you had to send the tapecase cover as proof of ownership of the original game. These days, I don't have any Adam floppies or a Adam Floppy drive left even. I'm surprised no one has this out there, even the TOSEC set of Adam stuff is missing it. I'll let ya know if I can find it-- I think I still have the original DDP.
Sent a quick email to a fellow Adamite, and came up with this... enjoy!
Attached Files
#7
Posted Tue Mar 3, 2009 7:41 PM
Now what emulator will run this properly? MESS make a "mess" of it.
#9
Posted Sat Mar 7, 2009 10:59 PM
Works fine on a real ADAM too!
#11
Posted Sat Nov 14, 2009 11:09 AM
Seeing as the CV used a Z-80A processor, as did the original arcade Donkey Kong machine, here's all my thoughts about the game timer on the 24K ROM version:
The instructions would be thus, that on the 24K ROM version, the timer never goes past 8000 bonus points. The game timer on both the 24K and 16K versions starts at 4000 bonus points (although the game timer does go past 8000 points on the 16K ROM version if you manage to get to level 6), which is achieved by taking the level number and multiplying that by 10 ($0A hex), and then adding 30 ($1E hex) to the result.
Level 1 = (1 * 10) + 30 = 4000 bonus points
Level 2 = (2 * 10) + 30 = 5000 bonus points
Level 3 = (3 * 10) + 30 = 6000 bonus points
Level 4 = (4 * 10) + 30 = 7000 bonus points
Level 5 = (5 * 10) + 30 = 8000 bonus points
For the 24K ROM version, the Z-80 logic would then check to make sure if the value stored in register A is 80 (#50 hex) in the ROM, and if it exceeds said value, to force it back down to 80.
Level 6 = (6 * 10) + 30 = 9000 bonus points (truncated to 8000 on 24K version)
Level 23 = (23 * 10) + 30 = 400 bonus points (the 8-bit byte exceeds 255)
On the arcade version, the infamous kill screen is arrived at because after you reach level 22, the ROM recognizes that as a large-enough number to lose the Carry flag, making said result mod 256 of it. The Carry flag deliberately clears each time before a number is doubled, and the calculation is (22 * 10) + 40 = 260, which is greater than 256 by 4 (no 8-bit hex code number goes past 255, or #FF hex), to give level 22 a very short starting bonus of 400 points.
I believe the kill screen for the 16K ROM version of the CV Donkey Kong occurs at level 97 (for all those who managed to get there) because it having a five-digit game timer, it can never go past 99,000 points, for which I believe is instant death. As I said before, the 24K ROM version never has the game timer going past 8000 points.
~Ben
The instructions would be thus, that on the 24K ROM version, the timer never goes past 8000 bonus points. The game timer on both the 24K and 16K versions starts at 4000 bonus points (although the game timer does go past 8000 points on the 16K ROM version if you manage to get to level 6), which is achieved by taking the level number and multiplying that by 10 ($0A hex), and then adding 30 ($1E hex) to the result.
Level 1 = (1 * 10) + 30 = 4000 bonus points
Level 2 = (2 * 10) + 30 = 5000 bonus points
Level 3 = (3 * 10) + 30 = 6000 bonus points
Level 4 = (4 * 10) + 30 = 7000 bonus points
Level 5 = (5 * 10) + 30 = 8000 bonus points
For the 24K ROM version, the Z-80 logic would then check to make sure if the value stored in register A is 80 (#50 hex) in the ROM, and if it exceeds said value, to force it back down to 80.
Level 6 = (6 * 10) + 30 = 9000 bonus points (truncated to 8000 on 24K version)
Level 23 = (23 * 10) + 30 = 400 bonus points (the 8-bit byte exceeds 255)
On the arcade version, the infamous kill screen is arrived at because after you reach level 22, the ROM recognizes that as a large-enough number to lose the Carry flag, making said result mod 256 of it. The Carry flag deliberately clears each time before a number is doubled, and the calculation is (22 * 10) + 40 = 260, which is greater than 256 by 4 (no 8-bit hex code number goes past 255, or #FF hex), to give level 22 a very short starting bonus of 400 points.
I believe the kill screen for the 16K ROM version of the CV Donkey Kong occurs at level 97 (for all those who managed to get there) because it having a five-digit game timer, it can never go past 99,000 points, for which I believe is instant death. As I said before, the 24K ROM version never has the game timer going past 8000 points.
~Ben
Edited by ColecoFan1981, Sat Nov 14, 2009 11:29 AM.
#12
Posted Tue Oct 12, 2010 2:03 AM
OK, so I've used dZ80 to disassemble both cartridge version ROMs, but I would like to consult whether or not I can have these ASM files distributed to all of you here who are interested, as I do not want to be seen as a copyright infringer?
What I would like for you to figure out in both ASMs are what each and every instruction/argument listed does so that I can change the part of the code that's causing Mario to fall through the up elevator from his starting position after jumping (24K ROM only) on the elevator board (on the 24K version, he also falls through the up elevator if you run to the up elevator from the second girder).
I'd also like to know if there is a possible instruction/argument that may trigger a kill screen like that of the arcade version (both 16K and 24K).
Thank you,
Ben
What I would like for you to figure out in both ASMs are what each and every instruction/argument listed does so that I can change the part of the code that's causing Mario to fall through the up elevator from his starting position after jumping (24K ROM only) on the elevator board (on the 24K version, he also falls through the up elevator if you run to the up elevator from the second girder).
I'd also like to know if there is a possible instruction/argument that may trigger a kill screen like that of the arcade version (both 16K and 24K).
Thank you,
Ben
Edited by ColecoFan1981, Tue Oct 12, 2010 2:11 AM.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users















