Mechanic · resources & economy · action-adventure
Magic meter
A refillable gauge that pays for spells and magic items, separate from health.
On this page
A magic meter is a gauge that spells or magic items draw on, filled by pickups. Zelda II builds it from magic containers of 32 units each1. Each spell’s cost there falls with Link’s magic level2. A Link to the Past gives each magic item three costs, and one byte picks the column for every item3.
- Spell levelsZelda II: The Adventure of Link (1987). Each spell's cost falls with the magic level, from a table of eight levels.2,1
- Consumption levelThe Legend of Zelda: A Link to the Past (1991). A cost per item, from one of three columns that a single byte picks.3
Games
| Game | Year | How | Note |
|---|---|---|---|
| Zelda II: The Adventure of Link | 1987 | Spell levels | each spell's cost falls with the magic level, from a table of eight levels |
| The Legend of Zelda: A Link to the Past | 1991 | Consumption level | a cost per item, from one of three columns that a single byte picks |
Every claim about this mechanic, by game (3)
References
- ^ abA new game starts with four heart containers and four magic containers. Picking up a container adds one, and a full meter holds 32 units per container less one, so four containers fill to 127.CodeFiendsOfTheElements/z2disassembly
How we know
17AFF - Number of Magic Containers to begin game … 17B00 - Number of Heart Containers to begin game
src/prg5.asm#L7062-L7064 · upstream ↗ 6165 INC $0775,x ; 0x1e7dd $E7CD FE 75 07 ; 0E = Magic Containers, 0F = Heart Containerssrc/prg7.asm lines 6158–6165 at c4c3a4c · upstream ↗ 1823 LDA $0783,x ; 0x1cb28 $CB18 BD 83 07 ; Current number of Magic/Heart Containerssrc/prg7.asm lines 1815–1831 at c4c3a4c · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ abA spell's cost comes from an 8 × 8 table by spell and magic level, in meter units (32 per container). Shield costs 64 at magic level 1 and 32 from level 4; Life costs 140 at level 1 and 100 from level 5; Thunder costs 240 until level 7. Casting fails when the meter can't cover the cost.CodeFiendsOfTheElements/z2disassembly
How we know
Table_for_Magic_Needed_for_Spells: … 40 30 30 20 20 20 20 20 Shield … 8C 8C 78 78 64 64 64 64 Life … F0 F0 F0 F0 F0 F0 C8 80 Thunder
src/prg0.asm#L2161-L2177 · upstream ↗ 2200 ADC $0778 ; 0xdf8 $8DE8 6D 78 07 ; Add Magic Level to get magic usage (index) ⋮ 2205 BCC L8E3B ; 0xe03 $8DF3 90 46 ; if Carry Clear (not enough magic) goto $0E3B
src/prg0.asm lines 2196–2205 at c4c3a4c · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ abEach magic item's cost comes from a table with three columns, and one byte,
$7EF37B, picks the column for every item. The rods cost 16, 8, or 4; the medallions 32, 16, or 8; the powder 8, 4, or 2; the lamp 4, 2, or 2.Codespannerisms/usdasmrevisedHow we know
9964ItemMagicCost: ⋮ 9967|07B087| db $10, $08, $04 ; rod 9968|07B08A| db $20, $10, $08 ; medallion 9969|07B08D| db $08, $04, $02 ; powder ⋮ 9973|07B099| db $04, $02, $02 ; lamp
bank_07.asm lines 9964–9975 at bcdd96e · upstream ↗ 9990CheckMagicCost: ⋮ 9993|07B0AD| LDA.w ItemMagicCost.offset,X 9994|07B0B0| CLC 9995|07B0B1| ADC.l $7EF37B ⋮ 9998|07B0B6| LDA.w ItemMagicCost.cost,X ⋮ 10001|07B0BB| LDA.l $7EF36E
bank_07.asm lines 9990–10007 at bcdd96e · 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.
Sources
Code
- Trax and Entroper. 2023. “z2disassembly: Disassembly of Zelda II: The Adventure of Link for NES.” Commit c4c3a4c. FiendsOfTheElements/z2disassembly @ c4c3a4c · licence, all uses
- (spannerisms), kan. 2026. “usdasm: A Link to the Past US Disassembly.” Commit bcdd96e. spannerisms/usdasm @ bcdd96e · licence, all uses