The Legend of Zelda: Link's Awakening
Nintendo's 1993 Game Boy Zelda and its 1998 Game Boy Color release, DX, read through the zladx disassembly of DX and checked against the Game Boy ROM.
The Legend of Zelda: Link’s Awakening is Nintendo’s 1993 Game Boy Zelda; its 1998 Game Boy Color release is Link’s Awakening DX. The atlas reads it through the zladx community’s disassembly of DX. That disassembly doesn’t build the 1993 game, so claims about the original cite its ROM. Nothing here has been measured in an emulator yet.
#Hearts
Link’s health counts in eighths of a heart1. A boss’s heart container adds a heart and refills his life2. Every fourth Piece of Heart adds another, the rule of A Link to the Past3.
#Getting hit
A monster’s touch costs the damage its health group lists, usually half a heart or a whole one1. In DX the Blue Tunic halves it. The Game Boy release has the same code without that test4. A hit starts an 80-frame invincibility counter5. It also starts a 16-frame knockback; in DX that pushes Link away at a set speed, and the player can’t steer6.
Mechanics
| Mechanic | Kind | How |
|---|---|---|
| Health upgrade | Pieces | four Pieces of Heart make a container, as in A Link to the Past |
| Damage formula | Fixed table | a damage per monster health group; DX's Blue Tunic halves it |
| Invincibility frames | Frame timer | 80 frames, counted down every frame |
| Knockback | Fixed shove | 16 frames; in DX at a set speed away from the monster, with no steering |
| Status bar split | Window layer | the inventory bar is the window at line 128, the bottom 16 lines |
Every claim about this game, by concept (7)
References
- ^ abA monster's touch costs Link the damage its health group lists, in eighths of a heart, mostly 4 or 8. In Link's Awakening DX the Blue Tunic halves it; the Guardian Acorn halves it too, and cancels a half-heart touch outright.Codezladx/LADX-Disassembly · “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”revised
How we know
5313 ld hl, wEntitiesHealthGroup ;; 03:6D89 $21 $D0 $C4 5314 add hl, bc ;; 03:6D8C $09 5315 ld d, b ;; 03:6D8D $50 5316 ld e, [hl] ;; 03:6D8E $5E ⋮ 5318 ld hl, EntityDamagesForGroup ;; 03:6D8F $21 $F1 $47 5319 add hl, de ;; 03:6D92 $19 5320 ld e, [hl] ;; 03:6D93 $5E ⋮ 5323 ld a, [wTunicType] ;; 03:6D94 $FA $0F $DC 5324 cp TUNIC_BLUE ;; 03:6D97 $FE $02 5325 jr z, .takeHalfDamages ;; 03:6D99 $28 $0E ⋮ 5328 ld a, [wActivePowerUp] ;; 03:6D9B $FA $7C $D4 5329 cp ACTIVE_POWER_UP_GUARDIAN_ACORN ;; 03:6D9E $FE $02 ⋮
src/code/entities/bank3.asm lines 5313–5341 at 2a5c2c0 · upstream ↗ 4EntityDamagesForGroup:: 5._00 db $04 6._01 db $04 7._02 db $08 8._03 db $08 9._04 db $18
src/data/entities/damages.asm lines 4–9 at 2a5c2c0 · upstream ↗ 5305 ld a, [wMaxHearts] ;; 02:6358 $FA $5B $DB ⋮ 5312 sla a ;; 02:6361 $CB $27 5313 sla a ;; 02:6363 $CB $27 5314 sla a ;; 02:6365 $CB $27 5315 ld e, a ;; 02:6367 $5F ⋮ 5317 ld a, [wHealth] ;; 02:6368 $FA $5A $DB 5318 cp e ;; 02:636B $BB 5319 jr nz, .incrementHealth ;; 02:636C $20 $06
src/code/bank2.asm lines 5305–5319 at 2a5c2c0 · upstream ↗ In the cartridge (“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”): the 1993 release's damage table, bank 3; its first 48 groups match DX's byte for byte. We don't reproduce the bytes.
Checked against the evidence by its author, an AI model, 2026-10-25.
Revised after a check by a second AI model, 2026-10-21.
Checked by a second AI model, 2026-10-25.
- ^A heart container left by a boss adds a heart to Link's maximum and queues
$FFof health, a full refill.Codezladx/LADX-Disassembly · “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”revisedHow we know
2768 ; Increase max health, and fully restore healthsrc/code/entities/bank3.asm lines 2766–2772 at 2a5c2c0 · upstream ↗ In the cartridge (“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”): the same `inc` of the maximum and `$FF` of health in the 1993 release, bank 3. We don't reproduce the bytes.
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.
- ^Link's Awakening keeps A Link to the Past's four Pieces of Heart per container. The fourth piece clears the count, adds a heart to Link's maximum, and queues
$40of health, eight hearts' worth.Codezladx/LADX-Disassembly · spannerisms/usdasm · “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”revisedHow we know
2922 ; If found 4 heart pieces… ⋮ 2929 ; Clear heart pieces count ⋮ 2935 ; Increase the maximum number of hearts
src/code/entities/bank3.asm lines 2922–2937 at 2a5c2c0 · upstream ↗ 20390|05F08A| LDA.l $7EF36B 20391|05F08E| INC A 20392|05F08F| AND.b #$03 20393|05F091| STA.l $7EF36B 20394|05F095| BNE .not_full_set ⋮ 20400|05F09C| LDY.b #$26 ; ITEMGET 26
bank_05.asm lines 20390–20402 at bcdd96e · upstream ↗ In the cartridge (“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”): the same count test, reset, `$40` of health, and `inc` of the maximum in the 1993 Game Boy release, bank 3. We don't reproduce the bytes.
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.
- ^The 1993 Game Boy release has the same hit code as DX without the tunic check. It reads the damage from its health-group table, applies the Guardian Acorn's rule, and stores the same
$50in the invincibility counter.Code“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)” · zladx/LADX-DisassemblyrevisedHow we know
In the cartridge (“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”): bank 3; from the counter test to the `$50` store, DX's bytes less the 7-byte tunic test. We don't reproduce the bytes.
5323 ld a, [wTunicType] ;; 03:6D94 $FA $0F $DC 5324 cp TUNIC_BLUE ;; 03:6D97 $FE $02 5325 jr z, .takeHalfDamages ;; 03:6D99 $28 $0E
src/code/entities/bank3.asm lines 5323–5325 at 2a5c2c0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-25.
Revised after a check by a second AI model, 2026-10-21.
Checked by a second AI model, 2026-10-25.
- ^A monster's touch does nothing while Link's invincibility counter is above 0; a hit sets it to
$50, and the main loop counts it down every frame, so the protection lasts 80 frames.Codezladx/LADX-Disassembly · “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”revisedHow we know
ld a, [wInvincibilityCounter] … jp nz, setCarryAndReturn
src/code/entities/bank3.asm#L5300-L5307 · upstream ↗ 5347 ld a, $50 ;; 03:6DB2 $3E $50src/code/entities/bank3.asm lines 5347–5348 at 2a5c2c0 · upstream ↗ 1500 ; If wInvincibilityCounter > 0, decrement itsrc/code/bank0.asm lines 1500–1505 at 2a5c2c0 · upstream ↗ In the cartridge (“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”): the same decrement in the 1993 release, bank 0 (ld hl,$DBC7; ld a,[hl]; and a; jr z; dec [hl]); the 1993 release's hit code, from the counter test to the `$50` store (game-boy-hit). We don't reproduce the bytes.
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.
- ^A monster's touch starts a 16-frame countdown and picks a speed of
$14($18for Moldorm), in both releases. In DX the speed goes along the line from the monster to Link, and while the countdown runs a routine at the top of Link's movement moves him by that speed and skips the rest, so the player can't steer.Codezladx/LADX-Disassembly · “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”revisedHow we know
ld a, $10 … ld [wIgnoreLinkCollisionsCountdown], a … cp ENTITY_MOLDORM … ld a, $14 … ld a, $18 … call func_003_7565
src/code/entities/bank3.asm#L5376-L5398 · upstream ↗ 6809func_003_7565::src/code/entities/bank3.asm lines 6809–6814 at 2a5c2c0 · upstream ↗ 588func_002_44C2::src/code/bank2.asm lines 588–614 at 2a5c2c0 · upstream ↗ In the cartridge (“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”): the 1993 release's knockback setup, bank 3, byte for byte DX's from the `$10` store to the Moldorm speed but for one jump address. We don't reproduce the bytes.
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.
Sources
Code
- zladx contributors. 2026. “LADX-Disassembly: Disassembly of Link's Awakening DX.” zladx. Commit 2a5c2c0. zladx/LADX-Disassembly @ 2a5c2c0 · licence, all uses
- n.d. “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2).” · licence, all uses
- (spannerisms), kan. 2026. “usdasm: A Link to the Past US Disassembly.” Commit bcdd96e. spannerisms/usdasm @ bcdd96e · licence, all uses