Stamina
A count that actions or hits spend, which limits what a character can do until it recovers.
On this page
Stamina limits what a character can do. Little Mac’s hearts in Mike Tyson’s Punch-Out!! start each round at no less than a set count for the fight, and at zero he can’t punch1. In Harvest Moon 64, stamina is a daily budget: each tool use costs an amount set by the tool and its charge2, and a night in bed refills it to the maximum3.
- Action costMike Tyson's Punch-Out!! (1987). Hearts drop by 1 or 3; at zero Little Mac can't punch, and each round starts at no less than a set count.1
- DailyHarvest Moon 64 (1999). Each tool use costs 1 to 6 stamina by tool and charge, work in rain or at night adds fatigue, and a night in bed refills stamina.2,3
Games
| Game | Year | How | Note |
|---|---|---|---|
| Mike Tyson's Punch-Out!! | 1987 | Action cost | hearts drop by 1 or 3; at zero Little Mac can't punch, and each round starts at no less than a set count |
| Harvest Moon 64 | 1999 | Daily | each tool use costs 1 to 6 stamina by tool and charge, work in rain or at night adds fatigue, and a night in bed refills stamina |
Every claim about this mechanic, by game (3)
References
- ^ abLittle Mac's hearts in the NES Rev 1 are a two-digit decimal count. Glass Joe's fight data, in its comments, starts rounds 1, 2, and 3 at 20, 20, and 15 hearts, with normal recoveries of 15, 15, and 10 and reduced ones of 9, 9, and 5. The round setup routine, uncommented (it also loads the round's clock rate and starts the round timer), sets hearts to the table's value in round 1 and raises them to it in rounds 2 and 3 if they're lower, and it copies the two recovery values for the round. An uncommented routine at
$843Etakes hearts away, 1 or 3 at each of its six callers; when the count reaches zero or below it clears MacCanPunch, which the define reads as "Little Mac can't punch".Codenmikstas/mike-tysons-punch-out-disassemblyHow we know
1100;Glass Joe Fight data. Loaded into $05A0 through $05FF. ⋮ 1104L931C: .byte $20 ;Starting number of hearts, round 1(base 10). 1105L931D: .byte $15 ;Normal heart recovery, round 1(base 10). 1106L931E: .byte $09 ;Reduced heart recovery, round 1(base 10). 1107L931F: .byte $20 ;Starting number of hearts, round 2(base 10). 1108L9320: .byte $15 ;Normal heart recovery, round 2(base 10). 1109L9321: .byte $09 ;Reduced heart recovery, round 2(base 10). 1110L9322: .byte $15 ;Starting number of hearts, round 3(base 10). 1111L9323: .byte $10 ;Normal heart recovery, round 3(base 10). 1112L9324: .byte $05 ;Reduced heart recovery, round 3(base 10).
source_files/PRG_Bank000.asm lines 1100–1112 at 60b2fa0 · upstream ↗ 207.alias HeartTable $05A3 ;Table of heart values for this fight. (Indexing starts at 3)source_files/Mike_Tysons_Punchout_Defines.asm line 207 at 60b2fa0 · upstream ↗ 2733LB5A9: LDA #$01 2734LB5AB: STA MacCanPunch 2735LB5AD: LDA RoundNumber 2736LB5AF: CMP #$04 2737LB5B1: BCC $B5B6 2738LB5B3: JMP $B621 2739LB5B6: ASL 2740LB5B7: ADC RoundNumber 2741LB5B9: TAX 2742LB5BA: CMP #$03 2743LB5BC: BEQ $B5CB 2744LB5BE: LDA HeartTable,X ;($05A3) ⋮
source_files/PRG_BankDEF.asm lines 2733–2786 at 60b2fa0 · upstream ↗ 514L843E: TAX 515L843F: LDA CurHeartsLD 516L8442: ORA CurHeartsUD 517L8445: BEQ $849E 518L8447: TXA 519L8448: SEC 520L8449: STA $E7 521L844B: LDA CurHeartsLD 522L844E: SBC $E7 523L8450: BCS $8455 524L8452: ADC #$0A 525L8454: CLC ⋮
source_files/PRG_Bank007.asm lines 514–535 at 60b2fa0 · upstream ↗ 109L80D1: LDA #$01 110L80D3: JSR $843E
source_files/PRG_Bank007.asm lines 109–110 at 60b2fa0 · upstream ↗ 163L8143: LDA #$03 164L8145: JSR $843E
source_files/PRG_Bank007.asm lines 163–164 at 60b2fa0 · upstream ↗ 94.alias MacCanPunch $BC ;#$00=Little Mac can't punch, #$01=Little Mac can punch.source_files/Mike_Tysons_Punchout_Defines.asm line 94 at 60b2fa0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
- ^ abIn the US release,
toolToFatigueScoregives each tool a stamina cost per charge level: the sickle and hoe 2, 4, and 6; the ax and hammer 1, 2, and 3; the watering can 1, 2, and 6; the milker, bell, brush, clippers, the seed bags, and grass seeds 1; the rest 0. Releasing B subtracts the cost from stamina. If it is raining or snowing, or the hour is before 6:00 or from 18:00, and the player isn't in the greenhouse, the same cost is added to fatigue (out of 100), or half of it once a life-event flag the decompilers nameKAPPA_POWER_NUT_GIFTis set. Holding B raises the charge level each time a hold counter reaches 16, up to the tool's upgrade level, while stamina covers the next level's cost.Codeharvestwhisperer/hm64-decompHow we know
291 { 2, 4, 6 }, 292 { 2, 4, 6 },
src/game/player.c lines 289–318 at 9824b88 · upstream ↗ 61#define WATERING_CAN 5src/game/items.h lines 57–85 at 9824b88 · upstream ↗ 1635 if (((SUNNY < gWeather && gWeather < 4) || !(5 < gHour && gHour < 18)) && gBaseMapIndex != GREENHOUSE) {src/game/player.c lines 1629–1660 at 9824b88 · upstream ↗ 8#define SNOW 3src/game/weather.h lines 6–8 at 9824b88 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
- ^ abIn the US release, going to bed refills stamina to its maximum and, unless fatigue is at 100, takes 2 points of fatigue off for each hour of sleep before 6:00, 3 with the cushion (life event
HAVE_CUSHION): the hour taken is the bedtime, plus 24 if before 6:00, subtracted from 30. Staying up until 6:00 runs the next day's update by another path that doesn't touch stamina or fatigue. Food and drink add the item's stamina value and take off its fatigue value.Codeharvestwhisperer/hm64-decompHow we know
2531 gPlayer.fatigueCounter += adjustValue(gPlayer.fatigueCounter, -((30 - tempTime) * 2), 100);src/game/game.c lines 2520–2543 at 9824b88 · upstream ↗ 3254 handleExitLevel(8, END_OF_DAY_1);src/game/player.c lines 3252–3254 at 9824b88 · upstream ↗ 61 handleExitLevel(1, END_OF_DAY_2);src/game/time.c lines 56–61 at 9824b88 · upstream ↗ 2600 startNewDay();src/game/game.c lines 2559–2610 at 9824b88 · upstream ↗ 1791 gPlayer.currentStamina += adjustValue(gPlayer.currentStamina, getItemStaminaIncreaseValue(gPlayer.heldItem), gMaximumStamina);src/game/player.c lines 1788–1793 at 9824b88 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
Sources
Code
- (nmikstas), Nick Mikstas. 2020. “Mike Tyson's Punch-Out!! (NES), partial disassembly (nmikstas).” Commit 60b2fa0. nmikstas/mike-tysons-punch-out-disassembly @ 60b2fa0 · licence, all uses
- harvestwhisperer and hm64-decomp contributors. 2026. “hm64-decomp: a decompilation of Harvest Moon 64 (harvestwhisperer/hm64-decomp).” Commit 9824b88. harvestwhisperer/hm64-decomp @ 9824b88 · licence, all uses