Jump to content

Glitch City RAM manipulation (Cut abuse): Difference between revisions

m
>Torchickens
 
(20 intermediate revisions by 4 users not shown)
Line 1:
{{Template:Major glitches}}
{{PRAMA|glitch-city-ram-manipulation}}
 
'''Glitch City RAM manipulation''' is a glitch that allows the player to edit RAM by cutting trees in a specific [[Glitch City]], named ''RAM City''. This allows the player to change a value in RAM from a specific set to another specific value.
 
Line 29:
# The player will be in the RAM City, at coordinates ($6C ; $63)
 
===KrysKrys3000's method===
This method offers a wide range of manipulable addresses, but it requires the player to perform [[Walk through walls]].
 
Line 56:
 
[[File:Ram-grid.png]]
 
==Combination with expanded inventory (alternative method)==
Instead of walking to the Glitch City by stepping out of bounds, the player can instead directly spawn the correct Glitch City with the the quantity of item 33 and the identifier of item 34 in the [[expanded inventory]]. See [[Valid source map Glitch City#Through manual editing of D35F-D360]] for more information.
 
==Cutting the tree==
The player should find a cuttable tree in one of the following coordinates : (C*2 ; E*2), (C*2+1 ; E*2), (C*2 ; E*2+1) and (C*2+1 ; E*2+1). Cutting it will change the byte in RAM, and that's it !
 
Side note : the player may find, instead of a cuttable tree, a patch of wild encounter grass. Did you know this grass can be CUT in Gen 1 ? Now you do.
 
==Possible values==
Obviously, we need the value of the byte we want to change to spawn a cuttable tree. Good news, there is a few values that do just that.
 
Here is a conversion table for hex value <-> 2x2 tile block, called the TileBlockDex :
 
[[File:TileBlockDex.png]]
Line 71 ⟶ 74:
You can see that a few blocks have CUTtable trees on them ; they are summarized in the tables below.
 
Hexadecimal conversion table :
{| class="wikitable"
|Value...
Line 91 ⟶ 94:
Refer to [[The Big HEX List]] for corresponding Pokémon, Items and Attacks.
 
Decimal conversion table :
{| class="wikitable"
|Value...
Line 109 ⟶ 112:
|110
|}
 
Additionally, there are three more conversions.
 
 
Hexadecimal conversion table:
 
{| class="wikitable"
|Value...
|3C
|3F
|3D
|-
|will become...
|35
|35
|36
|}
 
 
Decimal conversion table:
{| class="wikitable"
|Value...
|60
|63
|61
|-
|will become...
|53
|53
|54
|}
 
These last three conversions are used for Celadon Gym, which uses a different tileset, however it is possible to change the block regardless of the tileset by manipulating CFC6 (CFC5 in Yellow) (tile in front of the player) to be the grass/tree tile (0x52 or 0x50). This would be possible with [[:Category:Screen data saving glitch items|screen data saving]] and [[ItemDex|printing glitch items]], or [[arbitrary code execution]], but is not with the former two combined due to 0x52 and 0x50 being control characters. As 0x35 also becomes 0x4C, two conversions can be achieved in succession with the CFC6/5 exploit (using block 0x3C or 0x3F first, ending with block 0x4C as a result of the consecutive conversions).
 
Any other block can be converted into block 0x0E with the [[Card Key glitch]] (Japanese versions only).
 
==Applications==
Line 121 ⟶ 159:
Let's say you have 123456 money ; the game stores this internally as $123456, that is, the three following bytes : $12, then $34, then $56. You can "cut" the $34 to turn it into a $6F. You now have $126F56 money internally. How much is that ?
 
Strangely, emulators (at least VBA) and console seem to exhibit different behavior : VBA considers this as 126956 money (that's still a nice gain), but consoles consider this as 127556 money (1 * 100000 + 2 * 10000 + 6 * 1000 + 15 * 100 + 5 * 10 + 6 * 1), which should be the correct behavior. See [httphttps://forumsarchives.glitchcity.info/index.php?topic=forums/board-115/thread-7559/page-1.msg202826html#msg202826 this topic] for more.
 
===Capturing Pokémon===
Line 162 ⟶ 200:
 
===Manipulating Pokémon===
Ready for genetics ? Prof Oak will be mind-blown.
 
You can change about everything in a Pokémon's structure. Boy is it useful ! But you'll have to walk.
 
====Changing species====
This is more complicated than it seems, because you're going to create an [[unstable hybrid Pokémon]], with the original Pokémon as the donor, and the new Pokémon as the recipient. (Read the article if you don't understand these terms, as well as a method to fully obtain the desired Pokémon)
 
To change the species of your 5th party Pokémon, go 90 steps left (92 in Yellow) and 123 up. Refer to [[The Big HEX List]] to find out who can be converted into who. (Example : Lickitung into Exeggutor)
 
====Changing attacks====
Now it's time to reconfigure your beloved Pokémon's brains. Yup.
 
(Note : that may actually be between 14 and 16 steps. Testing required.)
To access the region representing your Pokémon's attacks, do 8 steps right.
 
Example of modification : turn Flamethrower into Solarbeam ! Gives a Fire Pokémon a good defense against Water-type Pokémon.
 
====Changing EXP====
Line 191 ⟶ 229:
Due to the way [[out of bounds]] works in this game, it is not possible to change your 5th Pokémon's stats.
 
But it is possible to change your 6th Pokémon's stats !
 
Simply go 36 steps left and 121 steps up, and you'll have reached the Max HP stat. All attacks are 2 bytes (2 blocks) wide, stored in a big-endian order, and the attacks are stored in the following order : Max HP, ATK, DEF, SPD, SPE.
 
Note that you don't affect your IVs nor your EVs thsthis way, so having the game recalculate the Pokémon's stats (see end of previous section) will have your changes reverted.
Simply go 36 steps left and 121 steps up, and you'll have reached the Max HP stat. All attacks are 2 bytes (2 blocks) wide, stored in a big-endian order, and the attacks are stored in the following order : Max HP, ATK, DEF, SPD, SPE.
 
Note that it is perfectly fine to switch Pokémon while in the Glitch City ; but the screen won't be refreshed, so you will have to either open the START menu (temporary) or move away, then back (permanent).
Note that you don't affect your IVs nor your EVs ths way, so having the game recalculate the Pokémon's stats (see end of previous section) will have your changes reverted.
 
Another use is changing a Pokémon's level to above Level 100; for example, changing a Level 51 Pokémon into a Level 108 Pokémon. Using Rare Candies, this is one of the ways of accessing the over Level 100 moves on [[glitch Pokémon]]'s learnpools in the [[GlitchDex]] for Levels 109-255 and 0 (256).
Note that it is perfectly fine to switch Pokémon while in the Glitch City ; but the screen won't be refreshed, so you will have to either open the START menu (temporary) or move away, then back (permanent).
 
==External links==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.