Cite as
Nathan-R-Og/mother
Original
https://github.com/Nathan-R-Og/mother
Pinned
Nathan-R-Og/mother @ e0b3e3f2463413aaf2915ae3264bfd00b782f5e4
Accessed
2026-10-21
Licence
none stated (no LICENSE file)
Credit
Nathan-R-Og and the repo's contributors, who disassembled and commented the Famicom game as cc65 source. Every label and comment quoted in mother1 claims comes from this repo.
Notes
ca65 source that builds MOTHER (J) and the English Earthbound Beginnings prototype (README, with MD5s); the build checks its output against those hashes. The README's NES 2.0 MD5 for the US prototype, 54387b6e68142d69083a38b437196450, is the atlas's EarthBound Beginnings (Virtual Console) ROM (earthbound-beginnings-nes-rom), so the 2015 release is that build. Not rebuilt here.

Cited on

Claims (9)

EarthBound (US release) keeps EarthBound Beginnings' order of a plain attack, with the "SMAAAASH!!" rolled before the dodge so it can't be dodged, but changes the numbers: the chance comes from the attacker's Guts alone (about Guts in 500) instead of Fight against Fight; the SMAAAASH deals 4 × Offense − Defense instead of the full Offense; a normal hit deals 2 × Offense − Defense instead of Offense − Defense ÷ 2; and the dodge comes from Speed instead of Fight.src/global/battle_data.asm L585–608src/global/prg/battle.asm L3137–3146src/global/prg/battle.asm L3399–3428src/global/prg/battle.asm L3483–3488Code
In EarthBound Beginnings (the English build that the 2015 Virtual Console release uses), a shared routine adds random spread to a value: it moves the value by a weight in percent drawn from a 128-entry table by a random byte, up or down at even odds. The weights run from 0 to 24, and 92 of the 128 entries are 10 or less, so most rolls move the value by a few percent. Damage and the turn-order Speed roll both use it.src/global/prg/constant.asm L9867–9918src/global/prg/constant.asm L9943–9970src/global/prg/battle.asm L5285–5290Code
In EarthBound Beginnings (English build), a normal attack deals the attacker's Offense less half the target's Defense; when the Offense is below the Defense it deals (3 × Offense − Defense) ÷ 4 instead, at least 1. The damage routine then applies the ±0–24% spread, halves the result for a shielded or guarding target, and deals at least 1.src/global/prg/battle.asm L3399–3427src/global/prg/battle.asm L3444–3448src/global/prg/battle.asm L4569–4572src/global/prg/battle.asm L5285–5290src/global/prg/battle.asm L4593–4610Code
In EarthBound Beginnings (English build), a plain attack is a "SMAAAASH!!" when a random byte is below max(0, ⌊(256 + attacker's Fight − target's Fight) ÷ 2⌋ − 102), about 26 in 256 at equal Fight. It is checked before the dodge roll, so it can't be dodged, and it deals the attacker's Offense, ignoring Defense. There is no SMAAAASH during the invincibility scripts, while the party fires the tank gun instead, or, 1 time in 2, from a blinded attacker.src/global/prg/battle.asm L3135–3149src/global/prg/battle.asm L3151–3162src/global/prg/battle.asm L3276–3295src/global/prg/battle.asm L2532–2533src/global/battle_data.asm L585–608src/global/prg/battle.asm L3483–3490Code
In EarthBound Beginnings (English build), the target of a plain attack dodges when a random byte is at most max(0, ⌊(256 + target's Fight − attacker's Fight) ÷ 2⌋ − 102), 27 in 256 at equal Fight; a paralyzed, sleeping, or petrified target can't dodge. The attacker has no accuracy stat of its own.src/global/prg/battle.asm L3106–3133src/global/prg/battle.asm L3276–3295Code
In EarthBound Beginnings (English build), the next combatant to act is picked one at a time: every combatant yet to act this round rolls its Speed through the ±0–24% spread, capped at 255, and the highest goes; the rest roll again for the next pick.src/global/prg/battle.asm L2305–2316src/global/prg/battle.asm L2349–2376src/global/prg/constant.asm L9972–9988Code
In EarthBound Beginnings (English build), running away works 1 time in 2 (the top bit of a random byte), with no stat in it, and never in a battle an event started.src/global/battle_data.asm L1474–1489src/global/prg/battle.asm L3219–3223src/global/prg/battle.asm L3243–3251Code
In EarthBound Beginnings (English build), each step in an area with encounters starts a fight when a random byte is below a rate from the table 32, 21, 16, 13, 10, 8, 6, 5 (in 256), indexed by the area's frequency class (1–7) plus a counter, capped at the eighth entry. The counter rises by 1 with each encounter, up to 2, so the rate drops after fights; it returns to 0 in areas without encounters and after a fade-out transition.src/global/prg/title.asm L560–594src/global/prg/title.asm L614–645src/global/prg/title.asm L694–696src/global/prg/constant.asm L2761–2771Code
In EarthBound Beginnings (English build), damage comes off the target's HP in one subtraction, and the target falls when it reaches 0 or below: there is no rolling meter.src/global/prg/battle.asm L4635–4646Code