Notable Breakpoints

From ProjectPokemon Wiki
Jump to navigation Jump to search

This page contains RAM addresses to various interesting and useful processes of Pokemon DPP.

Breakpoints can be set at these addresses.

Inspiration

This page is inspired by tsanth's thread with the same name on GameFAQs: [1]


Pokemon DPP (U)

DP RAM Address Pl RAM Address Description Discovered by
02000FB0 Begin Seed Calculation Routine mingot
0201B9E0 Set PRNG seed mingot
0201B9EC 0201D2E8 PRNG loadingNOW, tsanth
0201BA10 0201D30C Alternate RNG used in some cases: Examples, PID generation for mystery gift pokemon, recalculating a PID after a failed shiny check, number which determines swarm pokemon and great marsh pokemon SCV
0201BA1C Set IRNG Seed mingot
02038B70 0203E778 Script Handler loadingNOW
0203E7D2 Loads address for a command then branches to that address SCV
02042FB4 ARNG call for PID of Wondercard pokemon SCV
02042FBA Loads PID from wondercard to r0 SCV
02042FC8 First Shiny Check call during the generation of some wondercard pokemon SCV
02042FD0 Beginning of loop that makes sure you do not get a shiny wondercard pokemon (in some cases) SCV
0204305E PRNG call for first set of Wondercard pokemon IVs tsanth
0204309C PRNG call for second set of Wondercard pokemon IVs tsanth
0205DED4 Create chain set (not sure about address in tsanth's thread it said 205DED tsanth, loadingNOW
0205DF42 End of Create chain set routine tsanth, loadingNOW
0205E40C Pokeradar Routine loadingNOW, tsanth
02068AAC Shiny Check, used to decide what sprite to show for a pokemon and to make sure dynamic PID mystery gift pokemon are not shiny as well as preventing manaphy from hatching shiny in some cases. SCV
02078780 Begin Calculation of Pokemon ID for alternate forms. SCV
020EBC80 020E1F6C Division routine; R0= R0 / R1, R1=R0%R1 tsanth, SCV
020EAC58 Pointer to Begin Routine for Script Command 0000 SCV
020EB974 Pointer to Begin Routine for Script Command 0347
021F4DA8 Beginning of Honey Tree Routine SCV
021F4EE4 Determines a value from 0-3 to use to determine which list will be used and how the shake value is calculated. If 0, slathering fails and not pokemon will show up. SCV
021F4F44 Determines a number from 0-5 that represents which pokemon will be encountered in a honey tree. SCV
021F4F98 Determines which list will be used by (value determined by 021F4EE4) - 1 (its not done this way, but is equivalent) SCV
021F4FAC Determines a number from 0-3 that represents how much a Honey Tree will shake SCV
021F5138 021EFF4C Returns 1 if the current tree being slathered is a Munchlax Tree and 0 otherwise. SCV
02211E60 Set GRNG seed magical
02211E70 GRNG magical
0223C1EE 022377A2 Pokeball catching routine tsanth, arcee
0223BA10 Movement Handler Start tsanth
0223BA46 "Am I on grass?" check tsanth
0223BB2E Pair-battle (NPC partner) check tsanth
0223BAD4 Wild Encounter Check tsanth
0223BD1C Movement Handler END tsanth
022479E6 Call to get ID routine (result in r0) SCV
0224E920 Start of Frozen Handler SCV
0223C5B8 Start of Encounter Table Lookup Handler mingot
0223C66A Start of Water (Sweet Scent/Surfing) Encounter Table Lookup Handler mingot
0223C6A0 Start of Water (Fishing) Encounter Table Lookup Handler. There are 3 branches for each of the rods in this routine with different results for old and good/super. mingot

Pokémon HGSS (U)

RAM Address Description Discovered by
020F2998 Signed divmod() ?
020F2BA4 Unsigned divmod() ?
022440A0 Pickup / Honey Gather handler magical
02247228 Pokéball catching routine magical
02246B24 Start of Water (Fishing) Encounter Table Lookup Handler [2] mingot
02247720 Start of Water (Sweet Scent/Surfing) Encounter Table Lookup Handler [3] mingot
0201FD44 PRNG advancement routine Bond697

Pokémon BW (J)

RAM Address Description Discovered by
02216088 PRNG Kazo


Pokémon BW (U)

RAM Address Description Discovered by
0203F270 Initial Seed Creation Routine Omega Donut
02216248 PRNG state Bond697
020056EC PRNG advancement routine 1 Bond697
02005728 PRNG advancement routine 2 Bond697
02215374 Mersenne Twister Lookup Table Bond697
02215D34 Mersenne Twister Lookup Table Counter Bond697
023FFC3C Delay Omega Donut
02257030 Step Counter Bond697
02257034 Shaking patch step counter Bond697
021A9DB2 0x80000000 OR PID decision routine Bond697
02017EF4 Shiny check routine Bond697
02018788 Shiny prevention routine Bond697
02085D54 DSi Detection Routine Chiizu
0209C0C4 Signed divmod- r0/r1, result in r0; r0%r1, result in r1 Bond697
0209C2C8 Unsigned divmod- r0/r1, result in r0; r0%r1, result in r1 Bond697
021AA44C White Forest Battle Decision Routine- return 0 if no battle, 1 if there's a battle Bond697
02193914 White Forest Trainer # Counter- returns # of trainers in White Forest Bond697

(All offsets are White offsets. Black offsets are White offset minus 0x20)


Pokémon Emerald (U)

RAM Address Description Discovered by
03005D80 PRNG Mingot
020249C0 Frame counter Mingot
0806F5CC PRNG advancement routine Mingot
082E7BE0 Modulus routine- r0 % r1, return result in r0 Bond697
080B49F2 Feebas setup routine on finding a Feebas tile Bond697
02020000 Timer1 storage on TID creation Bond697


Pokémon Ruby/Sapphire (U)

RAM Address Description Discovered by
03004818 PRNG Multiple


Pokémon Fire Red/Leaf Green (U)

RAM Address Description Discovered by
03005000 PRNG Bond697
02020000 Timer1 storage on initial seed creation Bond697
08044EC8 PRNG advancement routine Bond697
08000558 Turn on Timer1 @ TM1CNT_H = 0x80 Bond697
08000564 Grab and return the value of Timer1 for use in seeding Bond697
08000570 Turn off Timer1 @ TM1CNT_H = 0x0 and store the grabbed value to 0x02020000 Bond697