ASLR: Difference between revisions

From Glitch City Wiki
Jump to navigation Jump to search
Content added Content deleted
>Torchickens
(Something if I remember CasualPokePlayer or maybe bbbbba (I can't remember how many bs your name has sorry) pointed out, somewhere; perhaps if not here the Discord or defunct GCL Forums.)
Line 1: Line 1:
{{Researchneeded|Research is needed into DMA in other games.}}{{clr}}
{{Researchneeded|Research is needed into DMA in other games.}}{{clr}}
''It has been proposed that an error in this article should be updated; "Dynamic Memory Allocation" is not the accurate term.''

'''Dynamic Memory Allocation''' or '''DMA''' is the name given for a mechanic in Pokémon games including {{FRLG}} and {{Emerald}}.
'''Dynamic Memory Allocation''' or '''DMA''' is the name given for a mechanic in Pokémon games including {{FRLG}} and {{Emerald}}.


In [[bp:Generation III|Generation III]], the DMA system will randomize the locations of specific cHunks of memory addresses (such as party and stored Pokémon data) to one of 64 possible locations every time the player performs an action such as entering/leaving a building, opening a menu or entering battle.
In [[bp:Generation III|Generation III]], the DMA system will randomize the locations of specific chunks of memory addresses (such as party and stored Pokémon data) to one of 64 possible locations every time the player performs an action such as entering/leaving a building, opening a menu or entering battle.


This offers a form of memory protection, however a [[cheating device]] may be used to circumvent the protection, for example a Game Boy Advance GameShark may be used to make a temporary patch of the game's ROM (similar to the Game Genie) which disables the DMA system. Codes to circumvent the system are commonly known as '''Anti-DMA''' codes.
This offers a form of memory protection, however a [[cheating device]] may be used to circumvent the protection, for example a Game Boy Advance GameShark may be used to make a temporary patch of the game's ROM (similar to the Game Genie) which disables the DMA system. Codes to circumvent the system are commonly known as '''Anti-DMA''' codes.

Revision as of 02:34, 24 February 2022

More research is needed for this article.

Reason given: Research is needed into DMA in other games.



It has been proposed that an error in this article should be updated; "Dynamic Memory Allocation" is not the accurate term.

Dynamic Memory Allocation or DMA is the name given for a mechanic in Pokémon games including Pokémon FireRed and LeafGreen and Pokémon Emerald.

In Generation III, the DMA system will randomize the locations of specific chunks of memory addresses (such as party and stored Pokémon data) to one of 64 possible locations every time the player performs an action such as entering/leaving a building, opening a menu or entering battle.

This offers a form of memory protection, however a cheating device may be used to circumvent the protection, for example a Game Boy Advance GameShark may be used to make a temporary patch of the game's ROM (similar to the Game Genie) which disables the DMA system. Codes to circumvent the system are commonly known as Anti-DMA codes.

In the Pomeg corruption glitch

In Pokémon FireRed and LeafGreen and Pokémon Emerald, the DMA system is abused in the Pomeg corruption glitch to randomly have a chance of setting bit 0 and 2 (+03h) or bit 6 (+40h) to a memory address which the player desires to corrupt, such as setting bit 6 of the most significant byte of DOTS or SEASOR's personality value (with the help of a corruption initiator) to convert it into another Pokémon based on its EVs.

Without the DMA system the player would only be able to create the same corruptions each iteration of the scrolling.

This article or section is a stub. You can help Glitch City Wiki by expanding it.