data/claims/donkey-kong.yamlDonkey Kong (dkdasm and Computer Archeology disassemblies)
Game: Donkey Kong.
Each board's bonus timer starts at 10 × level + 40, computed in 8 bits and capped at 80, and the readout shows 100 times the value: 5,000 on level 1, 6,000 on level 2, 7,000 on level 3, and 8,000 from level 4. The listings read MAME's dkong set (US set 1). donkey-kong/bonus-timer
About: Donkey Kong Difficulty ramp
Value
[ 50, 60, 70, 80 ]
dkong.asm#L3746-L3768; set up initial timer
; timer is either 5000, 6000, 7000 or 8000 depending on level
…
; load level number
…
; rotate A left (double again = 8x)
; add B into A (add once = 9x)
; add B into A (add again = 10x)
; add #28 (40 decimal) to A
; < #51 ?
; yes, skip next step
…
…Computer Archeology: Donkey Kong · content/Arcade/DonkeyKong/Code.md#L7>>> binary 0000:roms/c_5et_g.bin + roms/c_5ct_g.bin + roms/c_5bt_g.bin + roms/c_5at_g.binComputer Archeology: Donkey Kong · content/Arcade/DonkeyKong/Code.md#L3171-L3184LD A,($6229) ; {hard.workRam+229} the bonus scales with the level
…
ADD A,$28 ; plus 40; the readout shows 100 times this
CP $51
…
LD A,$50 ; clamped at 80Checked by claude, 2026-10-21 — read 0F7A-0F95 in dkdasm and the same addresses in the Computer Archeology listing; the instructions match, and both start from the level byte at $6229Cited by: Donkey Kong
On level 22 the bonus timer's start overflows: 10 × 22 + 40 = 260, which wraps in 8 bits to 4. Because 4 passes the "less than $51" test, the cap never applies, and the board's timer starts at 4 instead of 80. dkdasm's comment pairs the starts 50 to 80 with bonuses of 5,000 to 8,000, so 4 stands for a 400 bonus. donkey-kong/level-22
About: Donkey Kong Kill screen
Value: 4 bonus timer start (×100 points) on level 22
Codedkdasm: Donkey Kong hacking kit ·dkong.asm#L3746-L3768; set up initial timer
; timer is either 5000, 6000, 7000 or 8000 depending on level
…
LD A,(#6229) ; load level number
…
RLA ; rotate A left (double =2x)
…
ADD A,b ; add B into A (add once = 9x)
ADD A,b ; add B into A (add again = 10x)
ADD A,#28 ; add #28 (40 decimal) to A
CP #51 ; < #51 ?
JR c,#0F8E ; yes, skip next step
…dkdasm: Donkey Kong hacking kit · dkong.asm#L1321LD (#6229),A ; initialize level to 1Checked by claude, 2026-10-21 — computed the 8-bit result for level 22: 22 × 8 = 176 and 176 + 22 + 22 = 220 stay below 256, then 220 + 40 = 260 sets carry and leaves A = 4; `CP #51` gives carry, so the clamp at 0F8C is skipped. The ×100 reading comes from dkdasm's comment (50 to 80 for 5,000 to 8,000).What follows on screen, the timer running out before the board can be cleared, is the well-known kill screen, but the atlas has no source for it yet, nor for the bonus timer's tick period at this value (0F97-0FA0 sets it from 220 − 2 × start).
Cited by: Donkey Kong, Kill screen
Donkey Kong's internal difficulty, which the comments say sets the speed of fires and the behavior of wild barrels, is the level number plus a timer that steps once every 2,048 calls of its routine (256 × 8), capped at 5. donkey-kong/difficulty
About: Donkey Kong Difficulty ramp
Value
{
"max": 5,
"callsPerStep": 2048
}dkong.asm#L439; #6380 - Internal difficulty. Dictates speed of fires, wild barrel behavior, barrel steerability and other things. Ranges from 1 to 5.dkdasm: Donkey Kong hacking kit · dkong.asm#L1633-L1669; checks timers and increments difficulty if needed
…
; [timer_6384++ ; IF timer_6384 != 256 THEN RETURN ; timer_6384 := 0 ; ]
…
; [timer_6381++ ; IF (timer_6381/8) != INT(timer_6381/8) THEN RETURN]
…
; [ difficulty := (timer_6381 div 8) + level ; IF difficulty > 5 THEN difficulty := 5 ; RETURN]
…
LD (#6380),A ; store result into difficultyChecked by claude, 2026-10-21 — read 037F-03A1; the AND #07 tests the old value of $6381, so RRCA three times divides it by 8 exactlyWhen the timer at $6381 resets, and how often the routine runs, isn't read here.
Cited by: Difficulty ramp
Donkey Kong awards one extra life when the score reaches the DIP-switch setting: 7,000, 10,000, 15,000, or 20,000 points. A flag set on the award stops any further one for that player. donkey-kong/extra-life
About: Donkey Kong Extra life
Value
[ 7000, 10000, 15000, 20000 ]
dkong.asm#L1348-L13630214 79 LD A,C ; load A with original value of dip switches
0215 0F RRCA ;
0216 0F RRCA ; rotate right twice
0217 E603 AND #03 ; mask bits, now between 0 and 3
0219 47 LD B,A ; copy to B. used in minisub below for loop counter
021A 3E07 LD A,#07 ; A := 7 = default score for extra life
021C CA2602 JP Z,#0226 ; on zero, jump ahead and use 7
…
021F 3E05 LD A,#05 ; A : = 5
…
0221 C605 ADD A,#05 ; add 5
0223 27 DAA ; decimal adjust
…dkdasm: Donkey Kong hacking kit · dkong.asm#L54bit 2 : / 00 = 7000 01 = 10000 10 = 15000 11 = 20000dkdasm: Donkey Kong hacking kit · dkong.asm#L1600-L16290350 3A2D62 LD A,(#622D) ; load A with high score indicator
0353 A7 AND A ; has this player already been awarded extra life?
0354 C0 RET NZ ; yes, return
…
0361 7E LD A,(HL) ; load A with a byte of the player's score
0362 E6F0 AND #F0 ; mask bits
0364 47 LD B,A ; copy to B
0365 23 INC HL ; next score byte
0366 7E LD A,(HL) ; load A with byte of player's score
0367 E60F AND #0F ; mask bits
0369 B0 OR B ; mix together the 2 score bytes
…
…Checked by claude, 2026-10-25 — read 0207-0226: DSW1 bits 2-3 give B; B = 0 keeps 7, else 5 plus 5 per B with DAA, so BCD $10, $15, or $20; read 0350-037B: the thousands and ten-thousands digits of the player's score, nibbles swapped into one BCD byte, are compared with that threshold; on reaching it the flag at $622D is set and lives incremented, and a set flag returns firstTwo comments in the award routine misname what the code uses: L1600 calls $622D the "high score indicator" (the store at L1627 calls it the extra life indicator), and L1623 says the score is compared "to high score", where HL points at ExtraLifeThreshold.
Cited by: Extra life
Donkey Kong keeps a five-place high-score table in RAM at $6100, copied from a default table in ROM at power-on, each entry holding its place, its score, and room for a name. A player who places enters initials on a "NAME REGISTRATION" screen. donkey-kong/high-score-table
About: Donkey Kong High score
Value: 5 places
Codedkdasm: Donkey Kong hacking kit ·dkong.asm#L132401DF CD0702 CALL #0207 ; set all dip switch settings and create default high score table from ROMdkdasm: Donkey Kong hacking kit · dkong.asm#L1404-L1407025A 216535 LD HL,#3565 ; source = #3565 = default high score table
025D 110061 LD DE,#6100 ; dest = #6100 = high score RAM
0260 01AA00 LD BC,#00AA ; byte counter = #AA
0263 EDB0 LDIR ; copy high score table into RAMdkdasm: Donkey Kong hacking kit · dkong.asm#L10422-L10426 — five entries of $22 bytes; each holds its place (1 to 5), the score's digits, a run of $10 blanks, and the score again in BCD3565: 94 77 01 23 24 10 10 00 00 07 06 05 00 10 10 10 10 10 10 10 10 10 10 10 10 10 10 3F 00 50 76 00 F4 76
3587: 96 77 02 1E 14 10 10 00 00 06 01 00 00 10 10 10 10 10 10 10 10 10 10 10 10 10 10 3F 00 00 61 00 F6 76
35A9: 98 77 03 22 14 10 10 00 00 05 09 05 00 10 10 10 10 10 10 10 10 10 10 10 10 10 10 3F 00 50 59 00 F8 76
35CB: 9A 77 04 24 18 10 10 00 00 05 00 05 00 10 10 10 10 10 10 10 10 10 10 10 10 10 10 3F 00 50 50 00 FA 76
35EE: 9C 77 05 24 18 10 10 00 00 04 03 00 00 10 10 10 10 10 10 10 10 10 10 10 10 10 10 3F 00 00 43 00 FC 76dkdasm: Donkey Kong hacking kit · dkong.asm#L4547-L4584142D 211C61 LD HL,#611C ; load HL with high score entry indicator
1430 112200 LD DE,#0022 ; offset to add is #22
1433 0605 LD B,#05 ; for B = 1 to 5
1435 3E01 LD A,#01 ; A := 1 = code for a new high score for player 1
…
1437 BE CP (HL) ; compare (HL) to 1 . equal ?
1438 CA5914 JP Z,#1459 ; yes, jump to high score entry for player 1
…
144C C37514 JP #1475 ; skip ahead, no high score was achieved
…
1465 210A60 LD HL,GameMode2 ; load HL with game mode2 address
1468 34 INC (HL) ; increase game mode2 to #15
…dkdasm: Donkey Kong hacking kit · dkong.asm#L10482-L104833710: 24 24 1F 1E 3F 27 76 20 25 23 18 3F 06 77 1E 11 TTON...PUSH...NA
3720: 1D 15 10 22 15 17 19 23 24 22 11 24 19 1F 1E 3F ME.REGISTRATION.dkdasm: Donkey Kong hacking kit · dkong.asm#L2363072C 86 14 ; (15) #1486 ; player enters initials in high score tableChecked by claude, 2026-10-25 — read the power-on call at 01DF and the copy at 025A-0263 ($AA bytes from 3565 to 6100); the five $22-byte entries at 3565-35EE, whose third bytes are 1 to 5 and whose tile codes spell ST, ND, RD, TH; the scan at 142D-144C of the five entries' marker byte (+$1C) for a new score, which steps game mode 2 to $15, the initials-entry handler at 1486 in the mode table, and draws text $D, whose bytes at 371C spell NAME REGISTRATIONCited by: High score