Claim set · data/claims/pokegold.yaml

Poké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
}
Codepokegold: disassembly of Pokémon Gold and Silver · 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, damage+⌊damage/2⌋, 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
}
Codepokegold: disassembly of Pokémon Gold and Silver · 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
 ]
}
Codepokegold: disassembly of Pokémon Gold and Silver · 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, ⌊32P/(⌊E/4⌋mod256)⌋ 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
}
Codepokegold: disassembly of Pokémon Gold and Silver · 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
}
Codepokegold: disassembly of Pokémon Gold and Silver · 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