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.

Uses

Using this glitch, the player is able to edit arbitrary bytes in RAM. However, there are restrictions :

Only a few fixed values can be changed.

Each of these values change to another fixed value.

Not every byte can be changed this way.

General pattern

The glitch is essentially three steps :

Accessing the RAM City

Finding the correct place

Cutting the tree.

The only true requirement is the ability to CUT. The current methods of accessing the Glitch City currently require the player to access Fuchsia City, but a method only requiring Pewter City will maybe be developed.

Accessing the Glitch City

TheZZAZZGlitch's method

This method is simple to perform, and only requires the player to have enough money to access the Safari Zone and the ability to SURF. Its downsides are that the player has less options when it comes to choosing their RAM address, and also has to have beaten Koga and found the Secret House.

The player must perform the Safari Zone exit glitch, being called by the PA on Sea Route 20 (the place the player is when being recalled does not matter).

Upon exiting the Safari Zone gate, the player should be standing in the Sea Route 20 Glitch City.

The player should step south once, the go left until they are two steps above a cave. Going any further left will trap the player in a glitched area.

The player should be stuck. If so, press Up to face north.

Then, open the START menu. If done correctly, the map should be flooded with water.

The player should SURF, then move right.

The player will be in the RAM City, at coordinates ($6C ; $63)

Krys3000's method

This method offers a wide range of manipulable addresses, but it requires the player to perform Walk through walls.

Applications

WARNING : here, a $ prefixed to a number means hex:(that number). So $99 is not 99 dollars, it is hex:99.

Earning money

This is the simplest thing to do, and yet there is a quirk.
Money isn't stored the same way most other numbers are : it's stored in a BCD way : each hexadecimal digit corresponds to a decimal digit : basically, $63 <=> 63 ($3F), $99 <=> 99.

To say it in another way : an amount of $999999 corresponds to one million minus one.

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 ?

Capturing Pokémon

This one is more intricate, as you don't directly see the values you're going to manipulate.

See, Pokédex flags are grouped by 8 and stored as bytes. Thus, you can "trade" some flags for others.

Example : have Ivysaur and Venusaur captured, but not Bulbasaur, Charmander, Charmeleon, Charizard, Squirtle and Wartortle. This way, the first byte in the Pokédex will be $60. Cut the corresponding map block, and it will turn into a $6E, which means you will have "captured" Ivysaur, Venusaur, Charizard, Squirtle and Wartortle, but not Bulbasaur, Charmander and Charmeleon.

The method to get a conversion pattern is simple if you know a bit of the RAM map and Pokédex order. It won't be described here.

Manipulating items

When at this position, you will be facing a tile block that corresponds to the number of slots you can access in the corresponding item list.

The block to its right corresponds to the ID of the first item in that list, then there is the quantity, then the second item's ID then its quantity, and so forth.

Item mutations

This is not as interesting as you might imagine : items with ID 6C, 6D, 6E and 6F are glitch items that haven't been found a use yet (even though one of them executes code depending on tile data).

You can also turn a Revive into an Old Rod (side note : you can have multiple Old Rods in one stack this way, which won't work well with the PC), or Antidotes into Moon Stones.

Item duplications

Cutting a tree corresponding to a quantity will change it according to the above tables ; however, item underflow cannot be achieved this way. You can still turn your 50 X Accuracies into 109, then sell 59 of them, and repeat.

Pack / PC length manipulation

There are two applications : one usually useless, and one that was groundbreaking when it was found out.

The useless one :
If you have exactly 11 items in your pack / PC, you will find some CUTtable grass. Cut it and the last item in your inventory / PC will disappear.

The useful one :
If you have exactly 50 items in your PC (you filled it), you will find a tree. Cut it... and you will be allowed to access 109 slots in your item PC, which is a partial expanded item pack. You can then retrieve a stack of 255 items (Casino Chips are good for this) to perform a full expanded pack with your inventory.

Beware : depositing items has very high chances to corrupt some game data.

To fix the number of items in the PC, you can either retrieve 59 items from your PC (difficult) or use Arbitrary code execution (longer but 100% safe).

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

Go 66 steps left (68 in Yellow) and 123 steps up to reach the first byte of your 5th Pokémon's EXP. They are stored in a big-endian order ($01, $00, $00 equates to $10000 = 65536 EXP)

Right of EXP are EVs, followed by IVs, in this order :
HP EV, ATK EV, DEF EV, SPD EV, SPE EV, ATK/DEF IV, and SPD/SPE IV.
If you cannot edit them, at least you can visualize them, using the TileBlockDex.

If you modify IVs or EVs, the stats won't be re-calculated ; you must either deposit the Pokémon in the PC for the stats to be recalculated, or level up.

Changing stats

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 ths way, so having the game recalculate the Pokémon's stats (see end of previous section) will have your changes reverted.

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).