data/claims/pokeyellow.yamlPokémon Yellow (pret/pokeyellow)
Game: Pokémon Yellow.
Yellow keeps Red and Blue's CriticalHitTest line for line, so the attacker's base Speed still sets the chance, in 256 for most moves and 8 times that for the high-critical ones, and Focus Energy still cuts it to a quarter. pokeyellow/critical-chance
About: Pokémon Yellow Critical hit
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/core.asm#L4649-L4717CriticalHitTest:
…
ld a, [wMonHBaseSpeed]
ld b, a
srl b ; (effective (base speed/2))
…
sla b ; *4 for high critical move (effective (base speed/2)*8))
jr nc, .SkipHighCritical
ld b, $ffpokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L4478-L4546 — Red and Blue's routine; the two diff identical.Checked by claude-agent, 2026-10-21 — read CriticalHitTest at both pins and diffed the two routines; no line differs.Cited by: Critical hit, Pokémon Yellow
Yellow keeps Red and Blue's MoveHitTest and CalcHitChance unchanged, so a move still hits when a random byte is below its scaled accuracy byte, and even a 100% move misses 1 time in 256. pokeyellow/hit-test
About: Pokémon Yellow Hit chance
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/core.asm#L5506-L5508call BattleRandom
cp b
jr nc, .moveMissedpokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L5228-L5419 — Red and Blue's MoveHitTest and CalcHitChance; each diffs identical with Yellow's (L5410–L5601).Checked by claude-agent, 2026-10-21 — diffed MoveHitTest and CalcHitChance between the two pins; no line differs.Cited by: Hit chance, Pokémon Yellow
Yellow's type chart file is byte-for-byte Red and Blue's, the same 82 rows over 15 types, with Ghost still no effect on Psychic. pokeyellow/type-chart
About: Pokémon Yellow Type effectiveness
Codepokeyellow: disassembly of Pokémon Yellow ·data/types/type_matchups.asm#L1-L85TypeEffects:
…
db -1 ; endpokered: disassembly of Pokémon Red and Blue · data/types/type_matchups.asm#L1-L85 — Red and Blue's table; `diff` reports no difference.Checked by claude-agent, 2026-10-21 — diffed data/types/type_matchups.asm between the two pins; identical.Cited by: Pokémon Yellow, Type effectiveness
Yellow keeps Red and Blue's AdjustDamageForMoveType, so STAB is still before the type rows. pokeyellow/stab
About: Pokémon Yellow Same-type attack bonus
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/core.asm#L5287-L5288srl b
rr c ; bc = floor(0.5 * damage)pokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L5075-L5191 — Red and Blue's routine; it diffs identical with Yellow's (L5246–L5362).Checked by claude-agent, 2026-10-21 — diffed AdjustDamageForMoveType between the two pins; no line differs.Cited by: Same-type attack bonus
Yellow keeps Red and Blue's CalculateDamage and RandomizeDamage unchanged, so base damage is still capped at 997 plus 2 and scaled by a random 217–255 over 255. pokeyellow/damage
About: Pokémon Yellow Damage formula
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/core.asm#L5618-L5625; loop until a random number greater than or equal to 217 is generated
…
call Multiply ; multiply damage by the random number, which is in the range [217, 255]pokeyellow: disassembly of Pokémon Yellow · engine/battle/core.asm#L4559-L4621; Capped at MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE: 999 - 2 = 997.
…
.cap
ld a, HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE)
ld [hli], a
ld a, LOW(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE)
ld [hld], apokeyellow: disassembly of Pokémon Yellow · constants/battle_constants.asm#L55-L56DEF MIN_NEUTRAL_DAMAGE EQU 2
DEF MAX_NEUTRAL_DAMAGE EQU 999pokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L4299-L4466 — Red and Blue's CalculateDamage; it and RandomizeDamage (L5420–L5456) diff identical with Yellow's.Checked by claude-agent, 2026-10-25 — diffed CalculateDamage and RandomizeDamage between the two pins; no line differs. Read Yellow's cap (L4559-L4625), which stores 999 − 2 at .cap and adds 2 back after, and the two constants.Cited by: Damage formula
Yellow keeps Red and Blue's TwoToFiveAttacksEffect, 2 or 3 hits at 3/8 each and 4 or 5 at 1/8, and its damage loop, in which every hit after the first repeats it without a new damage calculation or accuracy test. pokeyellow/multi-hit
About: Pokémon Yellow Multi-hit attack
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/effects.asm#L987-L997; for TWO_TO_FIVE_ATTACKS_EFFECT 3/8 chance for 2 and 3 hits, and 1/8 chance for 4 and 5 hits
call BattleRandom
and $3pokeyellow: disassembly of Pokémon Yellow · engine/battle/core.asm#L3417-L3423bit ATTACKING_MULTIPLE_TIMES, [hl]
jr z, .executeOtherEffects
ld a, [wPlayerNumAttacksLeft]
dec a
ld [wPlayerNumAttacksLeft], a
jp nz, GetPlayerAnimationType ; for multi-hit moves, apply attack until PlayerNumAttacksLeft hits 0 or the enemy faints.
; damage calculation and accuracy tests only happen for the first hitpokered: disassembly of Pokémon Red and Blue · engine/battle/effects.asm#L925-L970 — Red and Blue's TwoToFiveAttacksEffect; it diffs identical with Yellow's (L961–L1006).pokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L3246-L3253 — Red and Blue's version of the same loop lines (pokered/multi-hit-repeat).Checked by claude-agent, 2026-10-21 — diffed TwoToFiveAttacksEffect between the two pins (identical), and read the player's multi-hit loop at pokeyellow L3417–L3423 against pokered L3246–L3253; the lines and pret's comment match.Cited by: Multi-hit attack
Yellow's TryDoWildEncounter tests the bottom-left tile of the player's half-block where Red and Blue test the bottom-right, so “left shore” half-blocks, such as Cinnabar Island's east coast, no longer load grass encounters; the rest of the routine is unchanged. pokeyellow/encounter-tile
About: Pokémon Yellow Random encounter
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/wild_encounters.asm#L27-L29; is the bottom left tile (8,9) of the half-block we're standing in a grass/water tile?
; note that by using the bottom left tile, this prevents the "left-shore" tiles from generating grass encounters
hlcoord 8, 9pokered: disassembly of Pokémon Red and Blue · engine/battle/wild_encounters.asm#L27-L37; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile?
hlcoord 9, 9
ld c, [hl]
ld a, [wGrassTile]
cp c
ld a, [wGrassRate]
jr z, .CanEncounter
ld a, $14 ; in all tilesets with a water tile, this is its id
cp c
ld a, [wWaterRate]
jr z, .CanEncounterpokered: disassembly of Pokémon Red and Blue · engine/battle/wild_encounters.asm#L64-L72ld hl, wGrassMons
lda_coord 8, 9
cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile?
jr nz, .gotWildEncounterType ; else, it's treated as a grass tile by default
ld hl, wWaterMons
; since the bottom right tile of a "left shore" half-block is $14 but the bottom left tile is not,
; "left shore" half-blocks (such as the one in the east coast of Cinnabar) load grass encounters.Checked by claude, 2026-10-25 — diffed TryDoWildEncounter between the two pins; the tile coordinate and these comments are the only differences. In Red the encounter test reads tile (9,9) and the grass-or-water choice reads (8,9), so a half-block whose (9,9) is water and (8,9) is not rolls at the water rate and loads the grass list; in Yellow both read (8,9).Cited by: Pokémon Yellow, Random encounter
Yellow keeps Red and Blue's escape formula, plus 30 for each earlier attempt against a random byte, and adds one battle type, BATTLE_TYPE_RUN, that always escapes. pokeyellow/run
About: Pokémon Yellow Fleeing
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/core.asm#L1535-L1653TryRunningFromBattle:
…
cp BATTLE_TYPE_RUN
jp z, .canEscape ; hurry, get away?
…
ld a, 32
…
ld b, 30pokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L1496-L1612TryRunningFromBattle:
…
ld a, 32
…
ld b, 30Checked by claude-agent, 2026-10-21 — diffed the whole TryRunningFromBattle routine between the two pins (Yellow L1535–L1653, Red L1496–L1612); the two-line BATTLE_TYPE_RUN check is the only difference.Cited by: Fleeing
Yellow keeps Red and Blue's turn order, Quick Attack first and Counter last unless both chose it, then the higher Speed, with a tie split evenly. pokeyellow/turn-order
About: Pokémon Yellow Turn order
Codepokeyellow: disassembly of Pokémon Yellow ·engine/battle/core.asm#L380-L419cp QUICK_ATTACK
…
cp COUNTER
…
.compareSpeed
…
call BattleRandom
cp 50 percent + 1pokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L371-L410 — Red and Blue's version of the same block.Checked by claude-agent, 2026-10-21 — diffed the move-order block (Quick Attack, Counter, Speed compare) between the two pins at these lines; no line differs.Cited by: Turn order