ItemDex/RB:000: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
No edit summary
Line 19: Line 19:


==Advanced use==
==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.
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 pointers, 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.
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.