Jump to content

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

m
>ISSOtm
(/)
 
(26 intermediate revisions by 6 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.
 
 
==Uses==
Line 9 ⟶ 8:
* Each of these values change to another fixed value.
* Not every byte can be changed this way.
 
 
==General pattern==
Line 18 ⟶ 16:
 
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==
Line 32 ⟶ 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 38 ⟶ 35:
# The player should stand here : [[File:GCRM_entry_point.png|frame|right]]
# The RAM City can be accessed by walking left until the player is standing on water ; the player will be at coordinates ($DC ; $63).
 
 
==Reaching the correct place==
Here is a relative map of data in the Glitch City :
[[File:Ram-grid.png|frame|right]]
 
Each method place the player at different coordinates ; any coordinates correspond to a 2x2 tiles block, which correspond to a byte in RAM. Here is the formula :
 
Line 59 ⟶ 52:
# Your destination coordinates are (C*2 ; E*2) !
<pre>Actually, these aren't the optimal coordinates... you can sometimes save some walking left by going one less time up. Oh well.</pre>
 
Here is a relative map of data in the Glitch City : (each square is a 2x2 tile block)
 
[[File:Ram-grid.png|frame|right]]
 
==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. All values in the following table are hexadecimal. Refer to [[The Big HEX List]] for corresponding Pokémon, Items and Attacks.
 
Here is a conversion table for hex value <-> 2x2 tile block, called the TileBlockDex:
 
[[File:TileBlockDex.png]]
 
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 86 ⟶ 92:
|6E
|}
Refer to [[The Big HEX List]] for corresponding Pokémon, Items and Attacks.
 
Decimal conversion table :
{| class="wikitable"
|Value...
Line 105 ⟶ 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 117 ⟶ 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 156 ⟶ 198:
 
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====
Line 186 ⟶ 225:
 
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).
 
 
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.
== Resources ==
[https://www.youtube.com/watch?v=KSWob-e6i5U Video by TheZZAZZGlitch that started it all]
 
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.
[https://www.youtube.com/watch?v=F5UsRh6rNBQ Demonstration video by ChickasaurusGL]
 
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).
[http://www.prama-initiative.com/index.php?page=glitch-world-ram-manipulation French resource page]
 
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).
[http://forums.glitchcity.info/index.php?topic=7353.0.html Topic on the GCL forums (contains less info but in English)]
 
==External links==
{{Youtube|KSWob-e6i5U|TheZZAZZGlitch}}
{{Youtube|F5UsRh6rNBQ|ChickasaurusGL}}
* [http://www.prama-initiative.com/index.php?page=glitch-world-ram-manipulation French resource page]
* [httphttps://forums.glitchcity.info/index.php?topic=7353.0.html Topic on the GCL forums (contains less info but in English)]
 
[[Category:Generation_I_glitchesGeneration I glitches]]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.