Difference between revisions of "Notable Breakpoints"

From ProjectPokemon Wiki
Jump to: navigation, search
(Added BW PRNG)
Line 1: Line 1:
 +
=[http://ecacoraqosy.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=
 
This page contains RAM addresses to various interesting and useful processes of Pokemon DPP.  
 
This page contains RAM addresses to various interesting and useful processes of Pokemon DPP.  
  
Line 4: Line 5:
  
 
==Inspiration==
 
==Inspiration==
This page is inspired by tsanth's thread with the same name on GameFAQs: [http://boards.gamefaqs.com/gfaqs/genmessage.php?board=925602&topic=40532445]
+
This page is inspired by tsanth's thread with the same name on GameFAQs: [http://boards.gamefaqs.com/gfaqs/genmessage.php?board=925602&topic=40532445]
  
  
 
==Pokemon DPP (U)==
 
==Pokemon DPP (U)==
{|border="1" style="border: 1px solid #999; border-collapse: collapse;"
+
{|border="1" style="border: 1px solid #999; border-collapse: collapse;"
|-style="background: #ccc;" align="center"
+
|-style="background: #ccc;" align="center"
 
!DP RAM Address
 
!DP RAM Address
 
!Pl RAM Address
 
!Pl RAM Address
 
!Description
 
!Description
 
!Discovered by  
 
!Discovered by  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02000FB0
 
|02000FB0
 
|
 
|
 
|Begin Seed Calculation Routine
 
|Begin Seed Calculation Routine
 
|[[mingot]]
 
|[[mingot]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0201B9E0
 
|0201B9E0
 
|
 
|
 
|Set [[PRNG]] seed
 
|Set [[PRNG]] seed
 
|[[mingot]]
 
|[[mingot]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0201B9EC
 
|0201B9EC
 
|0201D2E8
 
|0201D2E8
 
|PRNG
 
|PRNG
 
|[[loadingNOW]], [[tsanth]]
 
|[[loadingNOW]], [[tsanth]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0201BA10
 
|0201BA10
 
|0201D30C
 
|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
 
|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]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0201BA1C
 
|0201BA1C
 
|
 
|
 
|Set [[IRNG]] Seed
 
|Set [[IRNG]] Seed
 
|[[mingot]]
 
|[[mingot]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02038B70
 
|02038B70
 
|0203E778
 
|0203E778
 
|Script Handler
 
|Script Handler
 
|[[loadingNOW]]
 
|[[loadingNOW]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|
 
|
 
|0203E7D2
 
|0203E7D2
 
|Loads address for a command then branches to that address
 
|Loads address for a command then branches to that address
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02042FB4
 
|02042FB4
 
|
 
|
 
|ARNG call for PID of Wondercard pokemon
 
|ARNG call for PID of Wondercard pokemon
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02042FBA
 
|02042FBA
 
|
 
|
 
|Loads PID from wondercard to r0
 
|Loads PID from wondercard to r0
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02042FC8
 
|02042FC8
 
|
 
|
 
|First Shiny Check call during the generation of some wondercard pokemon
 
|First Shiny Check call during the generation of some wondercard pokemon
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02042FD0
 
|02042FD0
 
|
 
|
 
|Beginning of loop that makes sure you do not get a shiny wondercard pokemon (in some cases)
 
|Beginning of loop that makes sure you do not get a shiny wondercard pokemon (in some cases)
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0204305E
 
|0204305E
 
|
 
|
 
|PRNG call for first set of Wondercard pokemon IVs
 
|PRNG call for first set of Wondercard pokemon IVs
 
|[[tsanth]]
 
|[[tsanth]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0204309C
 
|0204309C
 
|
 
|
 
|PRNG call for second set of Wondercard pokemon IVs
 
|PRNG call for second set of Wondercard pokemon IVs
 
|[[tsanth]]
 
|[[tsanth]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0205DED4
 
|0205DED4
 
|
 
|
 
|Create chain set (not sure about address in tsanth's thread it said 205DED
 
|Create chain set (not sure about address in tsanth's thread it said 205DED
 
|[[tsanth]], [[loadingNOW]]
 
|[[tsanth]], [[loadingNOW]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0205DF42
 
|0205DF42
 
|
 
|
 
|End of Create chain set routine
 
|End of Create chain set routine
 
|[[tsanth]], [[loadingNOW]]
 
|[[tsanth]], [[loadingNOW]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0205E40C
 
|0205E40C
 
|
 
|
 
|Pokeradar Routine
 
|Pokeradar Routine
 
|[[loadingNOW]], [[tsanth]]  
 
|[[loadingNOW]], [[tsanth]]  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02068AAC
 
|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.
 
|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]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|
 
|
 
|02078780
 
|02078780
 
|Begin Calculation of [[Pokemon ID]] for alternate forms.
 
|Begin Calculation of [[Pokemon ID]] for alternate forms.
 
|SCV
 
|SCV
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|020EBC80
 
|020EBC80
 
|020E1F6C
 
|020E1F6C
 
|Division routine; R0= R0 / R1, R1=R0%R1
 
|Division routine; R0= R0 / R1, R1=R0%R1
 
|[[tsanth]], [[SCV]]  
 
|[[tsanth]], [[SCV]]  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|
 
|
 
|020EAC58
 
|020EAC58
 
|Pointer to Begin Routine for Script Command 0000
 
|Pointer to Begin Routine for Script Command 0000
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|
 
|
 
|020EB974
 
|020EB974
 
|Pointer to Begin Routine for Script Command 0347
 
|Pointer to Begin Routine for Script Command 0347
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|021F4DA8
 
|021F4DA8
 
|
 
|
 
|Beginning of [[Honey Tree]] Routine
 
|Beginning of [[Honey Tree]] Routine
 
|[[SCV]]  
 
|[[SCV]]  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|021F4EE4
 
|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.
 
|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]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|021F4F44
 
|021F4F44
 
|
 
|
 
|Determines a number from 0-5 that represents which pokemon will be encountered in a honey tree.
 
|Determines a number from 0-5 that represents which pokemon will be encountered in a honey tree.
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|021F4F98
 
|021F4F98
 
|
 
|
 
|Determines which list will be used by  (value determined by 021F4EE4) - 1 (its not done this way, but is equivalent)
 
|Determines which list will be used by  (value determined by 021F4EE4) - 1 (its not done this way, but is equivalent)
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|021F4FAC
 
|021F4FAC
 
|
 
|
 
|Determines a number from 0-3 that represents how much a [[Honey Tree]] will shake
 
|Determines a number from 0-3 that represents how much a [[Honey Tree]] will shake
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|021F5138
 
|021F5138
 
|021EFF4C
 
|021EFF4C
 
|Returns 1 if the current tree being slathered is a [[Munchlax Tree]] and 0 otherwise.
 
|Returns 1 if the current tree being slathered is a [[Munchlax Tree]] and 0 otherwise.
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02211E60
 
|02211E60
 
|
 
|
 
|Set [[GTS protocol#Encryption|GRNG]] seed
 
|Set [[GTS protocol#Encryption|GRNG]] seed
 
|[[magical]]
 
|[[magical]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02211E70
 
|02211E70
 
|
 
|
 
|[[GTS protocol#Encryption|GRNG]]
 
|[[GTS protocol#Encryption|GRNG]]
 
|[[magical]]
 
|[[magical]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223C1EE  
 
|0223C1EE  
 
|
 
|
 
|Pokeball catching routine
 
|Pokeball catching routine
 
|[[tsanth]]  
 
|[[tsanth]]  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223BA10
 
|0223BA10
 
|
 
|
 
|Movement Handler Start
 
|Movement Handler Start
 
|[[tsanth]]
 
|[[tsanth]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223BA46
 
|0223BA46
 
|
 
|
|"Am I on grass?" check
+
|"Am I on grass?" check
 
|[[tsanth]]
 
|[[tsanth]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223BB2E
 
|0223BB2E
 
|
 
|
 
|Pair-battle (NPC partner) check
 
|Pair-battle (NPC partner) check
 
|[[tsanth]]
 
|[[tsanth]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223BAD4
 
|0223BAD4
 
|
 
|
 
|Wild Encounter Check
 
|Wild Encounter Check
 
|[[tsanth]]  
 
|[[tsanth]]  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223BD1C
 
|0223BD1C
 
|
 
|
 
|Movement Handler END
 
|Movement Handler END
 
|[[tsanth]]
 
|[[tsanth]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|
 
|
 
|022479E6
 
|022479E6
 
|Call to get ID routine (result in r0)
 
|Call to get ID routine (result in r0)
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|
 
|
 
|0224E920
 
|0224E920
 
|Start of Frozen Handler
 
|Start of Frozen Handler
 
|[[SCV]]
 
|[[SCV]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223C5B8
 
|0223C5B8
 
|
 
|
 
|Start of Encounter Table Lookup Handler
 
|Start of Encounter Table Lookup Handler
 
|[[mingot]]
 
|[[mingot]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223C66A
 
|0223C66A
 
|
 
|
 
|Start of Water (Sweet Scent/Surfing) Encounter Table Lookup Handler
 
|Start of Water (Sweet Scent/Surfing) Encounter Table Lookup Handler
 
|[[mingot]]
 
|[[mingot]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|0223C6A0
 
|0223C6A0
 
|
 
|
Line 216: Line 217:
  
 
==Pokémon HGSS (U)==
 
==Pokémon HGSS (U)==
{|border="1" style="border: 1px solid #999; border-collapse: collapse;"
+
{|border="1" style="border: 1px solid #999; border-collapse: collapse;"
|-style="background: #ccc;" align="center"
+
|-style="background: #ccc;" align="center"
 
!RAM Address
 
!RAM Address
 
!Description
 
!Description
 
!Discovered by  
 
!Discovered by  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|020F2998
 
|020F2998
 
|Signed divmod()
 
|Signed divmod()
 
|?
 
|?
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|020F2BA4
 
|020F2BA4
 
|Unsigned divmod()
 
|Unsigned divmod()
 
|?
 
|?
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|022440A0
 
|022440A0
 
|Pickup / Honey Gather handler
 
|Pickup / Honey Gather handler
 
|[[magical]]
 
|[[magical]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02247228
 
|02247228
 
|Pokéball catching routine
 
|Pokéball catching routine
 
|[[magical]]
 
|[[magical]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02246B24
 
|02246B24
|Start of Water (Fishing) Encounter Table Lookup Handler [http://www.smogon.com/forums/showpost.php?p=2564048&postcount=215]
+
|Start of Water (Fishing) Encounter Table Lookup Handler [http://www.smogon.com/forums/showpost.php?p=2564048&postcount=215]
 
|[[mingot]]
 
|[[mingot]]
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02247720
 
|02247720
|Start of Water (Sweet Scent/Surfing) Encounter Table Lookup Handler [http://www.smogon.com/forums/showpost.php?p=2564048&postcount=215]
+
|Start of Water (Sweet Scent/Surfing) Encounter Table Lookup Handler [http://www.smogon.com/forums/showpost.php?p=2564048&postcount=215]
 
|[[mingot]]
 
|[[mingot]]
 
|}
 
|}
  
 
==Pokémon BW (J)==
 
==Pokémon BW (J)==
{|border="1" style="border: 1px solid #999; border-collapse: collapse;"
+
{|border="1" style="border: 1px solid #999; border-collapse: collapse;"
|-style="background: #ccc;" align="center"
+
|-style="background: #ccc;" align="center"
 
!RAM Address
 
!RAM Address
 
!Description
 
!Description
 
!Discovered by  
 
!Discovered by  
|-style="background: #eee;" align="center"
+
|-style="background: #eee;" align="center"
 
|02216088
 
|02216088
 
|PRNG
 
|PRNG

Revision as of 05:37, 24 November 2010

UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY

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 Pokeball catching routine tsanth
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

Pokémon BW (J)

RAM Address Description Discovered by
02216088 PRNG Kazo