data/claims/pokegold.yamlPokémon Gold and Silver (pret/pokegold)
Game: Pokémon Gold and Silver.
Gold and Silver already use the staged critical hit that Crystal keeps line for line: Focus Energy (+1), a high-critical move (+2), and a Scope Lens (+1) add to a critical level, which reads 17, 32, 64, 85, or 128 in 256 from CriticalHitChances. Chansey holding a Lucky Punch and Farfetch'd holding a Stick get level 2 at once and skip the other bonuses. pokegold/critical-chance
About: Pokémon Gold and Silver Critical hit
Value
{
"byLevel": [
17,
32,
64,
85,
128
],
"of": 256
}engine/battle/effect_commands.asm#L1145-L1205cp CHANSEY
jr nz, .Farfetchd
ld a, [hl]
cp LUCKY_PUNCH
jr nz, .FocusEnergy
; +2 critical level
ld c, 2
jr .Tally
…
cp FARFETCH_D
jr nz, .FocusEnergy
ld a, [hl]
…pokegold: disassembly of Pokémon Gold and Silver · data/battle/critical_hit_chances.asm#L1-L8CriticalHitChances:
db 1 out_of 15 ; 0
db 1 out_of 8 ; +1
db 1 out_of 4 ; +2
db 1 out_of 3 ; +3
db 1 out_of 2 ; +4pokecrystal: disassembly of Pokémon Crystal · engine/battle/effect_commands.asm#L1120-L1213 — Crystal's BattleCommand_Critical; it and the chance table diff identical with Gold's.Checked by claude-agent, 2026-10-21 — read BattleCommand_Critical (L1123–L1216) and the table at the pokegold pin, computed `out_of` (`* $100 /`, macros/data.asm L26) for each row, and diffed both against pokecrystal; identical. The Lucky Punch and Stick branches jump straight to .Tally with c = 2.Cited by: Critical hit, Pokémon Crystal, Pokémon Gold and Silver
Gold and Silver's BattleCommand_CheckHit, which Crystal keeps unchanged, subtracts a target's BrightPowder value (20) from the stage-scaled accuracy byte, lets a byte of 255 always hit, and otherwise hits on a random byte below it. pokegold/hit-test
About: Pokémon Gold and Silver Hit chance
Codepokegold: disassembly of Pokémon Gold and Silver ·engine/battle/effect_commands.asm#L1595-L1614cp HELD_BRIGHTPOWDER
…
sub c
…
cp -1
jr z, .Hit
call BattleRandom
cp b
jr nc, .Misspokegold: disassembly of Pokémon Gold and Silver · data/items/attributes.asm#L15-L16; BRIGHTPOWDER
item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSEpokecrystal: disassembly of Pokémon Crystal · engine/battle/effect_commands.asm#L1546-L1850 — Crystal's BattleCommand_CheckHit; it diffs identical with Gold's (L1553–L1857).Checked by claude-agent, 2026-10-21 — read the BrightPowder and roll lines at the pokegold pin and diffed the whole command against pokecrystal; identical.Cited by: Held item, Hit chance
Gold and Silver's type chart file is the one Crystal ships, byte for byte, so the 17 types, Steel and Dark included, and Ghost's ×2 on Psychic date from Gold and Silver. pokegold/type-chart
About: Pokémon Gold and Silver Type effectiveness
Codepokegold: disassembly of Pokémon Gold and Silver ·data/types/type_matchups.asm#L1-L118TypeMatchups:
…
db -2 ; end (with Foresight)
…
db -1 ; endpokecrystal: disassembly of Pokémon Crystal · data/types/type_matchups.asm#L1-L118 — Crystal's table; `diff` reports no difference.Checked by claude-agent, 2026-10-21 — diffed data/types/type_matchups.asm between the pokegold and pokecrystal pins; identical.Cited by: Pokémon Crystal, Pokémon Gold and Silver, Type effectiveness
Gold and Silver's BattleCommand_Stab, which Crystal keeps unchanged, applies the weather and badge type boosts and then STAB, , before the type rows. pokegold/stab
About: Pokémon Gold and Silver Same-type attack bonus
Codepokegold: disassembly of Pokémon Gold and Silver ·engine/battle/effect_commands.asm#L1217-L1281BattleCommand_Stab:
; STAB = Same Type Attack Bonus
…
farcall DoWeatherModifiers
…
farcall DoBadgeTypeBoosts
…
srl bpokecrystal: disassembly of Pokémon Crystal · engine/battle/effect_commands.asm#L1214-L1397 — Crystal's command; it diffs identical with Gold's (L1217–L1400).Checked by claude-agent, 2026-10-21 — read the command at the pokegold pin and diffed it against pokecrystal; identical.Cited by: Same-type attack bonus
Gold and Silver's BattleCommand_DamageVariation leaves 0 or 1 damage alone and otherwise multiplies by a random byte, rotated, redrawn until it is at least 217 (85 percent + 1), and divides by 255 (100 percent); Crystal keeps the command unchanged. Their BattleCommand_DamageCalc differs from Crystal's only in comments and one doubling written sla a where Crystal has add a. pokegold/damage-variation
About: Pokémon Gold and Silver Damage formula
Codepokegold: disassembly of Pokémon Gold and Silver ·engine/battle/effect_commands.asm#L1503-L1543BattleCommand_DamageVariation:
; Modify the damage spread between 85% and 100%.
…
; No point in reducing 1 or 0 damage.
…
.loop
call BattleRandom
rrca
cp 85 percent + 1
jr c, .loop
…
ld a, 100 percent
…pokegold: disassembly of Pokémon Gold and Silver · macros/data.asm#L23-L23DEF percent EQUS "* $ff / 100"pokegold: disassembly of Pokémon Gold and Silver · engine/battle/effect_commands.asm#L3111-L3113; x2
ldh a, [hQuotient + 3]
sla apokecrystal: disassembly of Pokémon Crystal · engine/battle/effect_commands.asm#L3113-L3115; x2
ldh a, [hQuotient + 3]
add apokecrystal: disassembly of Pokémon Crystal · engine/battle/effect_commands.asm#L1496-L1545cp 85 percent + 1Checked by claude-agent, 2026-10-21 — read DamageVariation at the pokegold pin; 85 percent + 1 is 85 × 255 / 100 + 1 = 217 and 100 percent is 255. Diffed DamageVariation (identical) and DamageCalc (pokegold L2897–L3130, pokecrystal L2900–L3132) against pokecrystal; DamageCalc's only code difference is sla a against add a, both a left shift with the same carry.Cited by: Damage formula
Gold and Silver's BattleCommand_EndLoop, which Crystal keeps apart from a comment, loops back to the critical command for every hit of a 2–5-hit move, so each hit rolls its own critical and damage. pokegold/multi-hit
About: Pokémon Gold and Silver Multi-hit attack
Codepokegold: disassembly of Pokémon Gold and Silver ·engine/battle/effect_commands.asm#L5161-L5292BattleCommand_EndLoop:pokecrystal: disassembly of Pokémon Crystal · engine/battle/effect_commands.asm#L5203-L5335 — Crystal's command, which pokecrystal/multi-hit reads; the two differ only in a comment marking the Beat Up bug.Checked by claude-agent, 2026-10-21 — diffed BattleCommand_EndLoop between the pokegold and pokecrystal pins; one comment line differs.Cited by: Multi-hit attack, Pokémon Gold and Silver
On each step, Gold and Silver's TryWildEncounter reads the map's encounter rate for the current time of day (morning, day, or night), or its water rate, doubles it for the Pokémon March or Ruins of Alph radio, halves it for the Pokémon Lullaby or a Cleanse Tag, and starts a battle when Random is below it; Crystal keeps this unchanged. pokegold/encounter-rate
About: Pokémon Gold and Silver Random encounter
Codepokegold: disassembly of Pokémon Gold and Silver ·engine/overworld/wildmons.asm#L212-L251.EncounterRate:
call GetMapEncounterRate
call ApplyMusicEffectOnEncounterRate
call ApplyCleanseTagEffectOnEncounterRate
call Random
cp b
ret
GetMapEncounterRate:
ld hl, wMornEncounterRate
call CheckOnWater
ld a, wWaterEncounterRate - wMornEncounterRate
jr z, .ok
…pokecrystal: disassembly of Pokémon Crystal · engine/overworld/wildmons.asm#L176-L251 — Crystal's routine; TryWildEncounter through ChooseWildEncounter diff identical with Gold's.Checked by claude-agent, 2026-10-21 — read L193–L268 at the pokegold pin and diffed the block against pokecrystal; identical.Cited by: Pokémon Gold and Silver, Pokémon HeartGold and SoulSilver, Random encounter, Time of day
The time of day picks which of a grass area's three sets of 7 slots is used; a roll from 1 to 100 then picks a slot at 30, 30, 20, 10, 5, 4, and 1 percent, or one of 3 water slots at 60, 30, and 10 percent. Crystal's routine and table are the same. pokegold/encounter-slots
About: Pokémon Gold and Silver Random encounter
Value
{
"grass": [
30,
30,
20,
10,
5,
4,
1
],
"water": [
60,
30,
10
],
"of": 100
}engine/overworld/wildmons.asm#L283-L295ld a, [wTimeOfDay]
ld bc, NUM_GRASSMON * 2
call AddNTimes
ld de, GrassMonProbTable
…
.randomloop
call Random
cp 100
jr nc, .randomloop
inc a ; 1 <= a <= 100pokegold: disassembly of Pokémon Gold and Silver · data/wild/probabilities.asm#L6-L21GrassMonProbTable:
table_width 2
mon_prob 30, 0 ; 30% chance
mon_prob 60, 1 ; 30% chance
mon_prob 80, 2 ; 20% chance
mon_prob 90, 3 ; 10% chance
mon_prob 95, 4 ; 5% chance
mon_prob 99, 5 ; 4% chance
mon_prob 100, 6 ; 1% chance
…
mon_prob 60, 0 ; 60% chance
mon_prob 90, 1 ; 30% chance
…pokecrystal: disassembly of Pokémon Crystal · data/wild/probabilities.asm#L6-L21GrassMonProbTable:
…
mon_prob 100, 6 ; 1% chancepokecrystal: disassembly of Pokémon Crystal · engine/overworld/wildmons.asm#L252-L348 — Crystal's ChooseWildEncounter; it diffs identical with Gold's (L269–L365).Checked by claude-agent, 2026-10-21 — read ChooseWildEncounter's time-of-day offset and roll and the two tables at the pokegold pin; `diff` against pokecrystal's table file and routine reports no difference.Cited by: Pokémon Crystal, Random encounter
Gold and Silver set the time of day from the cartridge clock's hour, morning from 4:00 to 9:59, day from 10:00 to 17:59, and night from 18:00 to 3:59. pokegold/time-of-day
About: Pokémon Gold and Silver Time of day
Value
{
"morning": [
4,
10
],
"day": [
10,
18
],
"night": [
18,
4
]
}engine/rtc/rtc.asm#L25-L55GetTimeOfDay::
; get time of day based on the current hour
ldh a, [hHours] ; hour
ld hl, TimesOfDay
…
TimesOfDay:
; hours for the time of day
; 0400-0959 morn | 1000-1759 day | 1800-0359 nite
db MORN_HOUR, NITE_F
db DAY_HOUR, MORN_F
db NITE_HOUR, DAY_Fpokegold: disassembly of Pokémon Gold and Silver · constants/misc_constants.asm#L37-L39DEF MORN_HOUR EQU 4 ; 4 AM
DEF DAY_HOUR EQU 10 ; 10 AM
DEF NITE_HOUR EQU 18 ; 6 PMChecked by claude-agent, 2026-10-21 — read GetTimeOfDay, its table, and the hour constants at the pokegold pin.Cited by: Pokémon Gold and Silver, Time of day
Gold and Silver's escape formula is Red and Blue's, plus 30 for each earlier attempt against a random byte, with a held Smoke Ball that always escapes; Crystal adds two battle types, Celebi's and Suicune's, that block escape. pokegold/run
About: Pokémon Gold and Silver Fleeing
Codepokegold: disassembly of Pokémon Gold and Silver ·engine/battle/core.asm#L3504-L3564cp HELD_ESCAPE
…
ld a, 32
…
srl b
rr a
srl b
rr a
…
ld b, 30pokered: disassembly of Pokémon Red and Blue · engine/battle/core.asm#L1496-L1612TryRunningFromBattle:
…
ld a, 32
…
ld b, 30pokecrystal: disassembly of Pokémon Crystal · engine/battle/core.asm#L3689-L3694cp BATTLETYPE_CELEBI
jp z, .cant_escape
…
cp BATTLETYPE_SUICUNEChecked by claude-agent, 2026-10-21 — read the formula at the pokegold pin beside Red's (pokered L1528 ld a, 32; the divide by 4; L1557 ld b, 30), and diffed TryToRunAwayFromBattle against pokecrystal; besides the Celebi and Suicune checks, Crystal adds only mobile-adapter error handling.Cited by: Fleeing, Pokémon Gold and Silver
Gold and Silver order moves by priority, 3 for Protect and Endure, 2 for the priority-hit moves, 0 for Vital Throw and the force-switch, Counter, and Mirror Coat effects, and 1 for the rest; at equal priority a held Quick Claw goes first when a random byte is below its value, 60, about 23% of the time, and otherwise the higher Speed goes first, with a tie split evenly; Crystal keeps the routine. pokegold/turn-order
About: Pokémon Gold and Silver Turn order
Value
{
"quickClaw": 60,
"of": 256
}engine/battle/core.asm#L431-L452call CompareMovePriority
…
cp HELD_QUICK_CLAW
…
call BattleRandom
cp epokegold: disassembly of Pokémon Gold and Silver · engine/battle/core.asm#L781-L792GetMovePriority:
; Return the priority (0-3) of move a.
…
; Vital Throw goes last.
cp VITAL_THROWpokegold: disassembly of Pokémon Gold and Silver · data/moves/effects_priorities.asm#L1-L8MoveEffectPriorities:
db EFFECT_PROTECT, 3
db EFFECT_ENDURE, 3
db EFFECT_PRIORITY_HIT, 2
db EFFECT_FORCE_SWITCH, 0
db EFFECT_COUNTER, 0
db EFFECT_MIRROR_COAT, 0pokegold: disassembly of Pokémon Gold and Silver · data/items/attributes.asm#L155-L156; QUICK_CLAW
item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSEpokegold: disassembly of Pokémon Gold and Silver · engine/battle/core.asm#L485-L501.speed_check
ld de, wBattleMonSpeed
ld hl, wEnemyMonSpeed
ld c, 2
call CompareBytes
jr z, .speed_tie
jp nc, .player_first
jp .enemy_first
.speed_tie
…
call BattleRandom
cp 50 percent + 1Checked by claude-agent, 2026-10-21 — read DetermineMoveOrder, GetMovePriority, the priority table, and the Quick Claw attribute at the pokegold pin; DetermineMoveOrder and the table diff identical with pokecrystal's. 60/256 is 23.4%.Cited by: Held item, Pokémon Gold and Silver, Turn order
Each Gold and Silver item record carries a held effect and a parameter, which battle code reads from the item a Pokémon holds; Quick Claw's is 60, BrightPowder's 20, Leftovers' 10, and Scope Lens's HELD_CRITICAL_UP has 0. pokegold/held-items
About: Pokémon Gold and Silver Held item
Codepokegold: disassembly of Pokémon Gold and Silver ·data/items/attributes.asm#L155-L156; QUICK_CLAW
item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSEpokegold: disassembly of Pokémon Gold and Silver · data/items/attributes.asm#L289-L290; SCOPE_LENS
item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSEpokegold: disassembly of Pokémon Gold and Silver · data/items/attributes.asm#L302-L303; LEFTOVERS
item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSEChecked by claude-agent, 2026-10-21 — read the four item_attribute rows at the pokegold pin; the effects are read by the critical, hit, and move-order routines cited in pokegold/critical-chance, pokegold/hit-test, and pokegold/turn-order.Cited by: Held item, Pokémon Gold and Silver
Rain Dance and Sunny Day each set their weather for 5 turns; in rain, Water moves do ×1.5 and Fire moves ×½, in sun the reverse, and rain halves SolarBeam. pokegold/weather
About: Pokémon Gold and Silver Weather
Value
{
"turns": 5
}engine/battle/move_effects/rain_dance.asm#L1-L5BattleCommand_StartRain:
ld a, WEATHER_RAIN
ld [wBattleWeather], a
ld a, 5
ld [wWeatherCount], apokegold: disassembly of Pokémon Gold and Silver · data/battle/weather_modifiers.asm#L1-L10WeatherTypeModifiers:
db WEATHER_RAIN, WATER, MORE_EFFECTIVE
db WEATHER_RAIN, FIRE, NOT_VERY_EFFECTIVE
db WEATHER_SUN, FIRE, MORE_EFFECTIVE
db WEATHER_SUN, WATER, NOT_VERY_EFFECTIVE
…
db WEATHER_RAIN, EFFECT_SOLARBEAM, NOT_VERY_EFFECTIVEpokegold: disassembly of Pokémon Gold and Silver · engine/battle/move_effects/sunny_day.asm#L1-L5BattleCommand_StartSun:
ld a, WEATHER_SUN
ld [wBattleWeather], a
ld a, 5
ld [wWeatherCount], aChecked by claude-agent, 2026-10-21 — read the Rain Dance and Sunny Day commands and both weather tables at the pokegold pin; MORE_EFFECTIVE is 15 and NOT_VERY_EFFECTIVE 05 in the ×10 encoding (pokecrystal/multiplier-encoding).Cited by: Pokémon Gold and Silver, Weather