High score
The best score a machine has seen, kept and shown to later players, alone or in a ranked table.
On this page
A high score is the best score the machine has seen, kept for the next player to chase. Space Invaders and Pac-Man keep one number and no name1,2. Donkey Kong keeps five ranked places and asks a player who places for initials3. Asteroids keeps 10 scores in the table4, each with three initials, where Donkey Kong keeps five3.
- SingleSpace Invaders (1978). One four-digit high score, updated when a player's game ends.1Pac-Man (1980). One six-digit high score, checked after every score change.2
- TableAsteroids (1979). Ten scores with three initials each.4Donkey Kong (1981). Five ranked places, with initials entered on a NAME REGISTRATION screen.3
Games
| Game | Year | How | Note |
|---|---|---|---|
| Space Invaders | 1978 | Single | one four-digit high score, updated when a player's game ends |
| Pac-Man | 1980 | Single | one six-digit high score, checked after every score change |
| Asteroids | 1979 | Table | ten scores with three initials each |
| Donkey Kong | 1981 | Table | five ranked places, with initials entered on a NAME REGISTRATION screen |
Every claim about this mechanic, by game (5)
References
- ^ abSpace Invaders keeps one high score, four BCD digits at
$20F4–$20F5. When a player's game ends, it compares that player's score with it, upper digits first, and copies the score over it if the score is higher.CodeComputer Archeology, Space InvadersHow we know
3304166E: CD 8B 1A CALL $1A8B ; {} Print ZERO ships remain 33051671: CD 10 19 CALL $1910 ; {code.CurPlyAlive} Get active-flag ptr for current player 33061674: 36 00 LD (HL),$00 ; Flag player is dead 33071676: CD CA 09 CALL $09CA ; {} Get score descriptor for current player 33081679: 23 INC HL ; Point to high two digits 3309167A: 11 F5 20 LD DE,$20F5 ; Current high score upper two digits 3310167D: 1A LD A,(DE) ; Is player score greater ... 3311167E: BE CP (HL) ; ... than high score? 3312167F: 1B DEC DE ; Point to LSB 33131680: 2B DEC HL ; Point to LSB 33141681: 1A LD A,(DE) ; Go ahead and fetch high score lower two digits 33151682: CA 8B 16 JP Z,$168B ; {} Upper two are the same ... have to check lower two ⋮
content/Arcade/SpaceInvaders/Code.md lines 3303–3327 at 1adc2a7 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-25.
Checked by a second AI model, 2026-10-21.
Checked by a second AI model, 2026-10-25.
- ^ abPac-Man keeps one high score, three BCD bytes at
$4E88. After every change to a player's score it compares the score with it from the top byte down and, if the score is higher, copies the 3 bytes over and redraws it.Codemburkley/pacman-crevisedHow we know
12392 /* Get Ptr to MSD of high score */ 12393 uint8_t *highScore = HIGH_SCORE; ⋮ 12405 if (score[b] < highScore[b]) 12406 return; ⋮ 12424 return; ⋮ 12434 highScore = HIGH_SCORE; ⋮ 12440 memcpy (highScore, score, 3);
pacman.c lines 12389–12440 at 3277e56 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
- ^ abcDonkey 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.Codefurrykef/dkdasmHow we know
132401DF CD0702 CALL #0207 ; set all dip switch settings and create default high score table from ROMdkong.asm line 1324 at 4d296c5 · upstream ↗ 1404025A 216535 LD HL,#3565 ; source = #3565 = default high score table 1405025D 110061 LD DE,#6100 ; dest = #6100 = high score RAM 14060260 01AA00 LD BC,#00AA ; byte counter = #AA 14070263 EDB0 LDIR ; copy high score table into RAM
dkong.asm lines 1404–1407 at 4d296c5 · upstream ↗ 104223565: 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 104233587: 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 1042435A9: 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 1042535CB: 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 1042635EE: 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 76
dkong.asm lines 10422–10426 at 4d296c5 · upstream ↗ 4547142D 211C61 LD HL,#611C ; load HL with high score entry indicator 45481430 112200 LD DE,#0022 ; offset to add is #22 45491433 0605 LD B,#05 ; for B = 1 to 5 45501435 3E01 LD A,#01 ; A := 1 = code for a new high score for player 1 ⋮ 45521437 BE CP (HL) ; compare (HL) to 1 . equal ? 45531438 CA5914 JP Z,#1459 ; yes, jump to high score entry for player 1 ⋮ 4568144C C37514 JP #1475 ; skip ahead, no high score was achieved ⋮ 45821465 210A60 LD HL,GameMode2 ; load HL with game mode2 address 45831468 34 INC (HL) ; increase game mode2 to #15 45841469 110D03 LD DE,#030D ; load task data for text #D "NAME REGISTRATION"
dkong.asm lines 4547–4584 at 4d296c5 · upstream ↗ 104823710: 24 24 1F 1E 3F 27 76 20 25 23 18 3F 06 77 1E 11 TTON...PUSH...NA 104833720: 1D 15 10 22 15 17 19 23 24 22 11 24 19 1F 1E 3F ME.REGISTRATION.
dkong.asm lines 10482–10483 at 4d296c5 · upstream ↗ 2363072C 86 14 ; (15) #1486 ; player enters initials in high score tabledkong.asm line 2363 at 4d296c5 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-25.
Checked by a second AI model, 2026-10-21.
Checked by a second AI model, 2026-10-25.
- ^ abcAsteroids keeps a table of ten high scores, two BCD bytes each, with three initials apiece (computed from the 20-byte and 30-byte tables), and tells a player who makes it "YOUR SCORE IS ONE OF THE TEN BEST".CodeComputer Archeology, Asteroids
How we know
38| 1D:30 | highScores | High Score Table (Scores) 2 Byte Format In Decimal. Byte 1 Tens, Byte 2 Thousands (In Decimal) |content/Arcade/Asteroids/RAMUse.md lines 38–42 at 1adc2a7 · upstream ↗ LDY #$02 ; Offset For "YOUR SCORE IS ONE OF THE TEN BEST" … LDY #$03 ; Offset For "PLEASE ENTER YOUR INITIALS"
content/Arcade/Asteroids/Code.md#L721-L723 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
- ^Computer Archeology credits Mikael Agren with patching the original Space Invaders ROMs to add a high-score table.Code notesComputer Archeology, Space Invaders
How we know
Mikael Agren patched the original ROMs to add a [high-score table]
content/Arcade/SpaceInvaders/README.md#L31-L35 · upstream ↗ The quote matches our archived copy.
Checked by a second AI model, 2026-10-21.
Sources
Code
- Cantrell, Christopher. 2026. “Computer Archeology: Space Invaders.” Commit 1adc2a7. topherCantrell/computerarcheology @ 1adc2a7 · licence, all uses
- Burkley, Mark. 2025. “pacman-c: a C translation of the Pac-Man ROM.” Commit 3277e56. mburkley/pacman-c @ 3277e56 · licence, all uses
- Willms, Jeff and Kef Schecter. 2014. “dkdasm: Donkey Kong hacking kit.” Commit 4d296c5. furrykef/dkdasm @ 4d296c5 · licence, all uses
- Howell, Lonnie, Mark McDougall, and Christopher Cantrell. 2026. “Computer Archeology: Asteroids.” Commit 1adc2a7. topherCantrell/computerarcheology @ 1adc2a7 · licence, all uses