ItemDex/RB:000: Difference between revisions
>Torchickens No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
'''[[File:RBItem00.png|link=]]''' (hex:00) is a [[glitch item]] in {{RB}}. |
'''[[File:RBItem00.png|link=]]''' (hex:00) is a [[glitch item]] in {{RB}}. |
||
Using [[File:RBItem00.png|link=]] will freeze the game both from inside and outside of battle. |
Using [[File:RBItem00.png|link=]] will typically freeze the game both from inside and outside of battle. |
||
It is a common item in the [[expanded item pack]]. |
It is a common item in the [[expanded item pack]]. |
||
The inventory can also be filled with this glitch item with the [[j. (0x00) inventory filling map script glitch]]. |
The inventory can also be filled with this glitch item with the [[j. (0x00) inventory filling map script glitch]]. |
||
==Advanced use== |
|||
More accurately, this glitch item runs in the middle of two byte map header pointers (these begin at 01AE) at 01D1; misaligned in between Route 6 and Route 7's header pointer (executed as instructions; not followed). When the code is in between Route 10 and Route 11's header, it represents call nc,BE42. The carry flag is not set; hence BE42 is executed. |
|||
SRAM may be locked resulting in the typical "[[game freeze|rst 38 freeze]]", but can be avoided if the player views the summary of a Pokémon from the party just before using the item, allowing for arbitrary code execution at 0:BE42. Using a pop hl at the end of the code, the stack can be manipulated to safely ret. |
|||
While theoretically possible, methods to write to 0:BE42 and use [[File:RBItem00.png|link=]] with the corrupted values have not been published yet. |
|||
{{clr}} |
{{clr}} |
||
Line 23: | Line 30: | ||
[[Category:Pokémon Red and Blue glitch items]] |
[[Category:Pokémon Red and Blue glitch items]] |
||
[[Category:ItemDex]] |
[[Category:ItemDex]] |
||
[[Category:Arbitrary code execution glitch items]] |
Revision as of 00:19, 14 December 2021
(↑ Back to the ItemDex index.)
Name (transcribed): #j. Identifier (HEX): 00 Identifier (DEC): 000 Effect pointer: 01D1 Unterminated name glitch item?: No Tossable/Sellable?: Yes Buy Price: 829850 Sell Price: 414925 Name bytes: {{{9}}}
|
(hex:00) is a glitch item in Pokémon Red and Blue.
Using will typically freeze the game both from inside and outside of battle.
It is a common item in the expanded item pack.
The inventory can also be filled with this glitch item with the j. (0x00) inventory filling map script glitch.
Advanced use
More accurately, this glitch item runs in the middle of two byte map header pointers (these begin at 01AE) at 01D1; misaligned in between Route 6 and Route 7's header pointer (executed as instructions; not followed). When the code is in between Route 10 and Route 11's header, it represents call nc,BE42. The carry flag is not set; hence BE42 is executed.
SRAM may be locked resulting in the typical "rst 38 freeze", but can be avoided if the player views the summary of a Pokémon from the party just before using the item, allowing for arbitrary code execution at 0:BE42. Using a pop hl at the end of the code, the stack can be manipulated to safely ret.
While theoretically possible, methods to write to 0:BE42 and use with the corrupted values have not been published yet.