Jump to content

Coin Case glitches: Difference between revisions

Work in progress to modernise page with new methods and clearer explanations. Later edits will add more details to causes while ordering ACE example to be less legacy-centric
No edit summary
(Work in progress to modernise page with new methods and clearer explanations. Later edits will add more details to causes while ordering ACE example to be less legacy-centric)
 
Line 6:
[[Image:Coin Case GD.png|frame|right|A glitch dimension caused by listening to Machop or Bellsprout's cry then viewing the Coin Case.]]
 
The '''Coin Case glitches''' are glitches that are exclusive to the English versions of Pokémon Gold and Silver. These glitches do not exist in any other localization of the game, such as the Japanese version, and it do not exist in Pokémon Crystal.
 
Coin Case glitches were previously thought to be relatively useless, with things like [[Glitch Dimension]]s, 'glitchy coin counts' and freezes, being the only effects found, however, after Sanky and TheZZAZZGlitch researched the glitch, it was found that is possible to executeperform [[Arbitrary code execution|execute arbitrary code execution]] with it to do many things which began with exploits such as causing a custom message to be displayed by the Coin Case, [http://tasvideos.org/4233S.html warping to Mt. Silver and enabling Red], and obtaining Celebi or a [[?????|????? (FF)]].
 
These began with exploits such as causing a custom message to be displayed by the Coin Case, [http://tasvideos.org/4233S.html warping to Mt. Silver and enabling Red], obtaining Celebi or a [[?????|????? (FF)]], but can be expanded to perform a wide variety of effects
==Arbitrary code execution exploits summary==
There are several known variations of Coin Case arbitrary code execution, such as arbitrary code execution through using box names and through using stored PC items.
 
=How to set up arbitrary code execution using the Coin Case=
Having a 'fresh' low level Pokémon (also known as a "slide Pokémon") in slot 3 and a special Quagsire in slot 4, making a specific movement pattern (such as four steps right from walking out of Cherrygrove Poké Mart or Professor Elm's lab), listening to Bellsprout or Machop's cry, switching item pockets (necessary) and using the Coin Case will lead to arbitrary code execution. It may be possible to use Wooper instead of Quagsire (as has been achieved in speedrunning), but Wooper requires the z flag is not set, so success is more likely with Quagsire.
 
The latest up-to-date guide on how to set up Coin Case ACE, along with ready-to-use codes for various applications, can be found on the [[Guides:Coin Case ACE|Coin Case ACE guide page]].
===Stored items===
The stored items exploit is the earliest exploit used, and requires specific items in the player's PC.
 
=ACE exploits summary=
In order to execute stored PC items as code the Quagsire must instead be holding a HP Up and know Sleep Talk as the first move (if the code starts at stored item 2's quantity), or be holding a Protein with Sleep Talk as the first move (if the code starts at stored item 3's item).
 
While using the Coin Case triggers ACE, setups are still required to ensure that the execution gets redirected to a location that we can safely manipulate, such as box names, last read mails or stored PC items.
===Box names===
In order to execute box names as code (beginning from the second character of the first box name) the Quagsire must be holding a TM02 with Return as its first move.
 
All known methods of redirecting the effects of Coin Case ACE require destabilising the [[stack]]. If the [[stack]] isn't fixed once arbitrary code execution finishes, the game will be guaranteed to crash. Due to this, all setups also need to provide a way to fix the [[stack]].
If the player wants to start the execution at the first character of the first box name the Quagsire must be holding a TM01 instead, however TM02 can be obtained multiple times while TM01 cannot and this will likely not be compatible with codes that expect the TM02 setup.
 
The Coin Case tends to be quite inconvenient to use. Setups often require specific movement patterns at specific locations to be used. Due to this inconvenience, most Coin Case ACE focus on enabling the use of other, more convenient ACE methods such as Wrong Pocket TM ACE.
===Replacement with wrong pocket TM/HM===
If the player uses arbitrary code execution to spawn a [[Wrong pocket TMs and HMs|wrong pocket TM/HM]] in the inventory, it can be used as an alternative to the Coin Case glitch, with the wrong pocket TM taking the place of the Coin Case. Advantages to this are that the player can use the item without having to move in a specific movement pattern, and codes are both often shorter/of aid to programmers because it is no longer necessary to fix the [[stack]].
 
Throughout the years, various known variations of Coin Case ACE setups were developed. These are listed below, roughly in chronological order.
[[TMHMDex/GS:208|TM17]] - Setup: Move the slide Pokémon to slot 1, and the specific Quagsire to slot 2.
 
==Radio Tower method==
As documented by Crystal_, the following box name Coin Case codes can be used to acquire TM17.
 
This setup can be executed once the player reaches Goldenrod City and will redirect the effects of the Coin Case to the start of box names with the help of the last read mail.
 
This setup was developed by TimoVM.
 
===Preparation===
 
* Obtain the Coin Case
* Make sure that the first digit of the total number of held coins equals "1". (for example, 100 coins)
* Buy a Flower Mail at the Goldenrod Dept. Store
* '''Make sure to set box 1 as the current active box.'''
* Always make sure to have a valid box name code set up. You can find an example of a valid box code a bit down below.
* Give this Flower Mail to a party pokémon with the following message:
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
|
[[File:Mail English GS V2.png]]
|}
 
===Execution===
 
In order to use ACE, always perform the following steps:
 
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
|
[[File:EN Coin Case ACE start.png]]
||
[[File:EN Coin Case ACE end.png]]
|}
 
* Go to the Goldenrod Radio Tower and take the stairs up to the second floor. Move to the spot indicated by the above screenshot on the left. '''Save the game while you're still standing on this spot and reset the game.'''
* After reloading, take the following steps until you reach the spot indicated by the above screenshot on the left:
*# 3 steps rightwards
*# 2 steps upwards
*# 1 step leftwards
* Open the start menu, open the pokédex, then listen to the cry of Bellsprout.
* Go to the Pokémon menu and read the previously written mail.
* Open the item bag, switch item pockets at least once, then use the Coin Case. This will execute ACE.
 
===Using the Radio Tower setup to switch to Wrong Pocket TM25 ACE===
 
If the player uses arbitrary code execution to spawn a [[Wrong pocket TMs and HMs|wrong pocket TM/HM]] in the inventory, it can be used as an alternative to the Coin Case glitch, with the wrong pocket TM taking the place of the Coin Case. The main advantages to this are that the player can use the item without having to move in a specific movement pattern, and codes are both often shorter/of aid to programmers because it is no longer necessary to fix the [[stack]].
 
When used outside the TM/HM pocket, [[TMHMDex/GS:216|TM25]] is able to execute ACE starting from address $DA6A, the stat experience data of the second party pokémon.
 
The following box name code can be used to change the first item in the main item pocket to [[TMHMDex/GS:216|TM25]], along with changing the stat experience data of the third party pokémon.
 
* Change the names of box names 1 through 3 to the following (credit to TimoVM):
<pre>
Box 1: A p 0 'm é ( 4 5
1. Ap0'déy♀Pk
Box 2: 'v 4 é y ♀ é : 4
2. 'v't'véé'l2h
Box 3: H 'v * é ) 4 h 'd
3. 'd'd2'v9.9't
4. é?2hhhhh
5. h'm♀♀
</pre>
* Put a pokémon in party slot #3. After being set up, this pokémon can never gain experience again without destroying the setup. Optionally, give it a nickname so you can recall that you will use it as part of the [[TMHMDex/GS:216|TM25]] setup.
* Follow the steps from the previous section to execute Coin Case ACE.
 
Once you are done, swap party pokémon #3 into the second party slot. As long as this pokémon is present in the second party slot, you can use [[TMHMDex/GS:216|TM25]] to execute box name codes. This pokémon can safely be deposited and withdrawn from the PC, but can never earn experience in battle again without destroying the setup.
 
The code used here is also compatible with Quagsire method Coin Case ACE and can be used to easily update older setups.
 
==Quagsire method==
 
This setup relies on a specific party composition. Execution will first be redirected to the third party pokémon. By ensuring that all remaining data of the third party pokémon are safe to execute (this is known as a "slide pokémon"), execution can continue until it encounters a Quagsire in slot 4. This Quagsire will then redirect execution to a secondary location based on its held item and first move.
 
Quagsire is chosen because its species ID corresponds with an unconditional jump instruction. Wooper is also elegible, but its species ID corresponds to a conditional jump instead. This means that Wooper's effectiveness depends on the exact stats of the used slide pokémon. Due to this general unreliability, Quagsire is preferred for the setup.
 
Due to the higher flexibility of box name codes, execution is often redirected to the second character of the first box name. Older setups will instead redirect to stored PC items.
 
===Preparation===
 
In its current form, it is recommended to have access to Fly so you can easily access both Cherrygrove City and Goldenrod City.
 
* Obtain the Coin Case
* Catch or evolve a Quagsire
* Catch a slide pokémon (see section after "Execution")
* Give the Quagsire a held item and first move depending on the place where code must be executed:
** (Recommended) to redirect to box names, give Quagsire a TM02 as a held item and teach it Return in the 1st move slot.
** To redirect to the second stored PC item, give Quagsire a HP Up as a held item and teach it Sleep Talk in the 1st move slot.
** To redirect to the third stored PC item, give Quagsire a Protein as a held item and teach it Sleep Talk in the 1st move slot.
* Put the slide pokémon in the third party slot, put the Quagsire in the fourth party slot.
* Make sure to set up a valid box name code or item name code (depending on the final location). You can find an example of a valid box code a bit down below.
 
===Execution===
 
* Fly to Cherrygrove City and enter the poké mart. Save and reset at the entrance of the poké mart.
* Exit the poké mart, walk exactly 4 steps to the right.
* Open the start menu, open the pokédex, then listen to the cry of Bellsprout or Machop.
* Open the item bag, switch item pockets at least once, then use the Coin Case. This will execute ACE.
 
===Catching a slide pokémon===
 
Slide pokémon are pokémon whose data doesn't contain any problematic opcode instructions, allowing execution to safely pass through the third party pokémon until it reaches Quagsire. Getting a slide pokémon is somewhat dependent on luck, but there are methods to ensure that a pokémon is usable as a slide pokémon.
 
====Rocky the Onix====
 
(credit to Crystal_ for the provided method)
 
In Violet City, in the house to the right of the pokémon center, an NPC will offer to trade you a Bellsprout for an Onix. This Onix, nicknamed "ROCKY", has set DVS and is guaranteed to work as a slide pokémon when obtained as follows:
 
* Catch any Bellsprout
* Raise it to lvl 5
* Trade it with ROCKY, since Bellsprout is lvl 5, ROCKY will also be lvl 5
 
This Onix can now be used as a slide pokémon as long as its happiness value isn't too high. It is recommended to either keep it stored in the PC as much as possible or to switch to another method of ACE, such as Wrong Pocket TM ACE.
 
====Low level Sentret====
 
(credit to TimoVM for the provided method)
 
This method requires a measure of luck to work and is meant as a backup in case ROCKY isn't available.
 
* Go to route 29. The time of day must be either morning or daytime, to be able to encounter Sentret.
* Encounter and catch a level 2 Sentret.
* Check its stats. If its Special Defense is either 6 or 8, it cannot be used. Otherwise, proceed to the next step.
* Encounter another Sentret (any level)
* Send out the Sentret you captured along with one other Pokémon (the goal is to divide the stat experience between the two Pokémon). Knock out the wild Sentret.
 
Doing this setup correctly will guarantee that your Sentret can be used as a slide Pokémon as long as its happiness value isn't too high. It is recommended to either keep it stored in the PC as much as possible or to switch to another method of ACE, such as Wrong Pocket TM ACE.
 
===Using the Quagsire setup to switch to Wrong Pocket TM17 ACE===
 
If the player uses arbitrary code execution to spawn a [[Wrong pocket TMs and HMs|wrong pocket TM/HM]] in the inventory, it can be used as an alternative to the Coin Case glitch, with the wrong pocket TM taking the place of the Coin Case. The main advantages to this are that the player can use the item without having to move in a specific movement pattern, and codes are both often shorter/of aid to programmers because it is no longer necessary to fix the [[stack]].
 
* Rename box codes 1 through 5 to the following box name codes (credit to Crystal_). This code will change the first item in the main item pocket to a [[TMHMDex/GS:208|TM17]].
<pre>
Box 1. A p 0 'd é y ♀ Pk
Box 2. 'v 't 'v é é 'l 2 h
Box 3. 'd 'd 2 'v 9 . 9 't
Box 4. é ? 2 h h h h h
Box 5. h 'm ♀ ♀
</pre>
* Once that is done, execute Coin Case ACE according to the previous sections.
* In order to use [[TMHMDex/GS:208|TM17]], put the slide pokémon in slot 1 and the Quagsire in slot 2. This will redirect TM17's effect to the location specified by the Quagsire's held item and first move.
 
Please note that Quagsire method box name codes are not compatible with wrong pocket TM17 box name codes.
 
===Quagsire method extension: TM/HM pocket quantities as code===
[[TMHMDex/GS:216|TM25]] - Setup: Move the slide Pokémon to slot 2, and the specific Quagsire to slot 3.
 
===TM/HM pocket quantities as code===
In this method, the quantities of the TM/HM pocket are used as the code. The Quagsire must be holding a Lucky Egg with Attract as its first move. If the player does not have a Lucky Egg, they can find one on a wild Chansey or get one in item slot 1 with the following box name codes, designed for TM17 (these codes will not work with the regular Coin Case method):
 
Line 95 ⟶ 216:
ret
</pre>
 
===Mail Pokémon===
This is another possible method in which Mail is attached to a party Pokémon, and the message within is used as the code (instead of for instance, box names).{{clarify}}
 
===Troubleshooting===
Line 118 ⟶ 236:
If a slide Pokémon was working in the past and suddenly stopped working the problem could be caused if the Pokémon gained experience (increasing its stat experience) or gained a bad happiness value. For this reason one should not walk too many steps with the slide Pokémon, and it is a good idea to faint the slide Pokémon if it previously worked but you can't get it to work anymore and didn't make it gain any experience.
 
Thankfully, there is a consistent setup (credit: TinoVM) that allows a working slide Pokémon to be obtained consistently and easily. The only requirement is that the time of day is either morning or daytime to encounter Sentret.
 
- Encounter and capture a level 2 Sentret.
 
- Check its stats. If its Special Defense is either 6 or 8, it cannot be used. Otherwise, proceed to the next step.
 
- Encounter another Sentret (any level)
 
- Send out the Sentret you captured along with one other Pokémon (the goal is to divide the stat experience between the two Pokémon). Knock out the wild Sentret.
 
Doing this setup correctly will guarantee that your Sentret can be used as a Slide Pokémon (provided the Happiness value is not problematic). If Coin Case is used in certain locations (e.g 4 steps to the right coming from Cherrygrove Mart), this setup will also leave the zero flag reset, meaning Wooper can be used as an alternative to Quagsire.
====Wrong box names/stored PC items====
It is very important for the box names (if using a box name method) to be exactly right. If they are wrong (even if it is a small mistake such as using a character without an apostrophe before it or the wrong "x" character) the glitch will most likely not work. For this reason be extra careful when entering the box names.
1,514

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.