Donkey Kong (Arcade)
Developers: Ikegami Tsushinki,
This game has a hidden developer message.
Donkey Kong is the story of a guy named Jumpman, the titular giant gorilla, a girl named Pauline, and an endlessly looping set of buildings which may or may not contain a "pie factory".
Every time a barrel object is destroyed, the game checks the "INTEND" portion of "NINTENDO" in the copyright string. If said portion has been altered in any way, the game freezes.
This is guaranteed to stop the game about four seconds in, as Donkey Kong's first barrel is always thrown directly downwards to ignite the oil can at the bottom.
This frame of the cement (or "pie") object is never used, and there's not really a place to use it since it never falls.
The logo for Ikegami Tsushinki Co., Ltd. can be found with the rest of the title graphics, but it's never used. ITC both developed the hardware and wrote the program code for Donkey Kong. Needless to say, they would later sue Nintendo for the next entry in the Donkey Kong series.
Both music and sounds can be played in the MAME debugger by launching MAME using mame -debug, then entering the following commands:
focus soundcpu next pc = 156; r0 = [ID]
Replace [ID] with the ID of the tune or sound, e.g. r0 = 12. After putting in these commands once, the first two can be skipped if you want to play another tune or sound. Once you've put in the commands, press F5 to resume execution and it should play the sound. This method is not perfect and the game will almost certainly play random music or garbage afterward. Use the command pc = 0 to reset the sound CPU and resume normal operation.
Pauline theme (ID 12)
This music would be played when you rescue Pauline. The first few notes are used in a different Pauline tune that is used in-game.
Cutscene theme #1 (ID 0F)
This sounds like it was meant for some kind of intro or intermission cutscene.
Cutscene theme #2 (ID 0C)
A shorter, more mischievous-sounding cutscene theme.
There are two unused voice samples. According to Miyamoto, they were removed and replaced with sound effects due to their unclear pronunciation.
Voice #1 (ID FA)
Pauline saying "Nice!", which would have been used when Mario jumped over a barrel.
Voice #2 (ID FC)
Pauline screaming "Help!", which would have been used in place of Donkey Kong's growl. Pauline makes a similar scream for help in the Game Boy Donkey Kong when played on a Super Game Boy.
Present at 0x3F00 in the main CPU. The complete text is in all board sets except US Set 1, which overwrites the first three lines with other code.
CONGRATULATION ! IF YOU ANALYSE DIFFICULT THIS PROGRAM,WE WOULD TEACH YOU.***** TEL.TOKYO-JAPAN 044(244)2151 EXTENTION 304 SYSTEM DESIGN IKEGAMI CO. LIM.
This message is immediately followed by this signature in 1BPP format. It reads out IKEGAMI, referring to Ikegami Tsushinki:
There are five official Donkey Kong boards in MAME:
- dkong (US Set 1)
- dkongo (US Set 2)
- dkongj (JP Set 1)
- dkongjo (JP Set 2)
- dkongjo1 (JP Set 3)
The following table lists all of these sets in chronological order:
|Title Screen||Level Order||Pre-Round Message||25m Jump Bug?||Safe Ladders?||High Score
|JP Set 3||No Trademark||Fixed||How High Can You Try ?||Yes||Yes||12 Characters||60 Seconds*|
|JP Set 1||No Trademark||Fixed||How High Can You Get ?||No*||Yes||12 Characters||60 Seconds|
|JP Set 2||No Trademark||Fixed||How High Can You Get ?||No||Yes||12 Characters||60 Seconds|
|US Set 2||No Trademark||Varies||How High Can You Get ?||No||Yes||3 Characters||30 Seconds|
|US Set 1||Trademark||Varies||How High Can You Get ?||No||No||3 Characters||30 Seconds|
US Set 1 was distributed as a speed-up kit with Nintendo Service Department Bulletin # TKG-02 12-11-81 and in all TKG4 board sets, designed to prevent extremely long play times.
|Pre-US Set 1||US Set 1|
US Set 1 adds a trademark symbol to the title screen and updates the copyright info. This code is what overwrites the first part of Ikegami's secret message.
All of the JP sets use a fixed level order. The US sets have a more complicated setup:
|Cycle||JP Sets||US Sets|
|Cycle 1||25m, 50m, 75m, 100m||25m, 100m|
|Cycle 2||25m, 50m, 75m, 100m||25m, 75m, 100m|
|Cycle 3||25m, 50m, 75m, 100m||25m, 50m, 75m, 100m|
|Cycle 4||25m, 50m, 75m, 100m||25m, 50m, 25m, 75m, 100m|
|25m, 50m, 75m, 100m||25m, 50m, 25m, 75m, 25m, 100m|
As the table shows, all of the Japan board sets do have a level order table, but it's just the 25-50-75-100 cycle copied five times.
|JP Set 3||JP Set 1 onward|
The intermission message is different in JP Set 3.
25m Jump Bug
In JP Set 3, there's a level-breaking bug on 25m. If Mario is at X position 207 and jumps to the right, he'll bounce off the right side of the screen and fall through the floor. If he falls through the lowest set of construction beams, his Y position overflows to 0, which counts as beating the level.
In JP Set 1, this bug was fixed by changing Mario's maximum X position from 234 to 229. While this does fix this problem, it also makes the game more difficult by giving Mario slightly less space to move around.
In JP Set 2 and all other sets, the previous change was reverted. Instead, the routine at 1BEF was changed from jp $1C05 to jp $1DA6, fixing the problem without creating an increase in difficulty.
This is a special check for the barrels' ladder behavior. If Mario's climbing a ladder, and he's within 16 pixels of a barrel above the ladder, the barrel will not roll down that same ladder.
In US Set 1, this was dropped from 16 pixels to 4 pixels, effectively making this check pointless - if the barrel is four pixels above Mario, he's going to get hit anyway.
High Score Entry
|JP Sets||US Sets|
The player can enter up to 12 characters per name in the Japan board sets. This was shortened to just three characters in the US sets. Additionally, the "Regi Time" decreased from 60 seconds to 30 seconds.
In JP Set 3, the timer reads 30 at the start. This is just a harmless display bug; it goes to 59 seconds soon after.
|JP Sets||US Sets|
The "NAME" header in the JP sets is center-aligned. Since high score names are shorter in the US sets, this header is now left-aligned.