On this page
  1. Hearts
  2. Getting hit
  3. Related
  4. Mechanics
  5. References
  6. Sources

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

MechanicKindHow
Health upgradePiecesfour Pieces of Heart make a container, as in A Link to the Past
Damage formulaFixed tablea damage per monster health group; DX's Blue Tunic halves it
Invincibility framesFrame timer80 frames, counted down every frame
KnockbackFixed shove16 frames; in DX at a set speed away from the monster, with no steering
Status bar splitWindow layerthe inventory bar is the window at line 128, the bottom 16 lines
Every claim about this game, by concept (7)
Damage formulaA 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.Code
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 $50 in the invincibility counter.Code
Health upgradeLink'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 $40 of health, eight hearts' worth.Code
A heart container left by a boss adds a heart to Link's maximum and queues $FF of health, a full refill.Code
Invincibility framesA 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.Code
KnockbackA monster's touch starts a 16-frame countdown and picks a speed of $14 ($18 for 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.Code
Status bar splitThe inventory bar along the bottom of the screen is the window layer. Setting it up stores window Y $80 (line 128), which leaves the bar the bottom 16 lines, and window X 7 in DX (6 in the 1993 release, one pixel further left); each gameplay frame copies the stored Y to the window register.Code

References

  1. ^ 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.

    In the claim ledger

  2. ^A heart container left by a boss adds a heart to Link's maximum and queues $FF of health, a full refill.Codezladx/LADX-Disassembly · “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”revised
    How we know
    2768    ; Increase max health, and fully restore health
    
    src/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.

    In the claim ledger

  3. ^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 $40 of health, eight hearts' worth.Codezladx/LADX-Disassembly · spannerisms/usdasm · “Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)”revised
    How 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.

    In the claim ledger

  4. ^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 $50 in the invincibility counter.Code“Legend of Zelda, The - Link's Awakening (USA, Europe) (Rev 2)” · zladx/LADX-Disassemblyrevised
    How 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.

    In the claim ledger

  5. ^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)”revised
    How we know
    ld a, [wInvincibilityCounter] … jp nz, setCarryAndReturn
    src/code/entities/bank3.asm#L5300-L5307 · upstream ↗
    5347    ld   a, $50                                   ;; 03:6DB2 $3E $50
    
    src/code/entities/bank3.asm lines 5347–5348 at 2a5c2c0 · upstream ↗
    1500    ; If wInvincibilityCounter > 0, decrement it
    
    src/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.

    In the claim ledger

  6. ^A monster's touch starts a 16-frame countdown and picks a speed of $14 ($18 for 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)”revised
    How 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.

    In the claim ledger

Sources

Code