Jump to content

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

→‎Applications: Giving examples of whaddya can do is attractive. I think. Also added a Resources (kinda "Credits", too) section.
>ISSOtm
m (→‎Possible values: Added a decimal conversion table. It's more useful.)
>ISSOtm
(→‎Applications: Giving examples of whaddya can do is attractive. I think. Also added a Resources (kinda "Credits", too) section.)
Line 105:
 
==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 ?
 
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 [http://forums.glitchcity.info/index.php?topic=7559.msg202826#msg202826 this topic] for more.
 
===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===
Accessing the pack : 34 left (36 in {{Y}}), 115 steps up.
Accessing the item PC : 60 left (62 in Yellow), 95 steps up.
 
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 :<br>
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 :<br>
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).
 
 
== Resources ==
[https://www.youtube.com/watch?v=KSWob-e6i5U Video by TheZZAZZGlitch that started it all]
 
[https://www.youtube.com/watch?v=F5UsRh6rNBQ Demonstration video by ChickasaurusGL]
 
[http://www.prama-initiative.com/index.php?page=glitch-world-ram-manipulation French resource page]
 
[http://forums.glitchcity.info/index.php?topic=7353.0.html Topic on the GCL forums (contains less info but in English)]
 
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.