Guides:TMless 0x1500 ACE (JP)

From Glitch City Wiki
Revision as of 13:44, 7 October 2023 by TimoVM (talk | contribs)
Jump to navigation Jump to search
This is a guide on how to execute and/or exploit a glitch. For a more technical overview of the glitch involved, see 0x1500 control code arbitrary code execution.

This page serves as an explanation on a 0x1500 ACE setup that redirects execution to the last read mail. This setup only requires a bad clone, Rocky the Onix with specific stat experience and 22 flower mails.

Please note that this setup is intended for the Japanese release of Pokémon Crystal and can be performed as soon as you reach Violet City. The guide is split up between guides applicable for players starting a new game or continuing from an old game.

The setup requires catching a Spearow during day time and fighting Spinarak during night time. It is recommended to set the in-game time at the start of the game somewhere between 5:00PM-5:30PM.

When playing on cartridge or emulator, it is required to have previously cleared an old save by pressing SELECT + UP + B simultaneously on the start screen at least once since obtaining the cart. Otherwise you will not be able to obtain a bad clone or an unterminated name pokémon.

If you encounter any issues when going through this guide or would like to provide feedback, please contact TimoVM on the Glitch City Research Institute Discord.

Starting from a new game

Step 1: Preparing the Onix

Start playing the game as you normally would, the starter doesn't matter. It is recommended that you don’t fight the bug catcher on route 31.

  1. Once you acquire poké balls, catch a Spearow on route 46 (30% spawn odds, morning and midday).
  2. Once you reach route 31, catch a bellsprout (20% spawn odds, all day).
  3. Proceed to Violet City. In the house to the left of the pokémon center, trade your Bellsprout for Rocky the Onix. In case you have already traded and used Onix prior to reading this guide, an alternative setup is provided further on in the page.
  4. With Onix, defeat the following Pokémon. It is imperative that Onix is the only pokémon that gains experience during these battles:
    • Spinarak (30% spawn odds on route 31, only during nighttime)
    • Spinarak (30% spawn odds on route 31, only during nighttime)
    • Spinarak (30% spawn odds on route 31, only during nighttime)
    • Caterpie (30% spawn odds on route 30, only during morning and midday. The trainer on route 31 has three Caterpie you can fight)
    • Caterpie (30% spawn odds on route 30, only during morning and midday. The trainer on route 31 has three Caterpie you can fight)
  5. Make sure Onix doesn’t hold any item, check that Tackle is set as its first move.
  6. Go to Violet City’s pokémon mart. Buy 22 flower mails. If you’re starting from a new save, make sure that you have at least one poké ball left in the ball pocket.

Step 2: Preparing the bad clone and remaining items

  1. Use the bad clone glitch to obtain a pokémon with an unterminated name.
    1. For this, use a box that has never been full at any point in time.
    2. Fill the box with 15 pokémon. To speed up this process, it's recommended to clone the pokémon you already have. Save the game.
    3. Deposit a single pokémon. Attempt to save the game using "Move Pokémon w/o mail" but reset the game a bit just after the game has fully printed SAVING... DON'T TURN OFF THE POWER.
    4. After rebooting the game, use a potion up to where the game brings up the party screen. the potion doesn't have to actually be used, you can cancel from here), then check the newly deposited pokémon.
    5. If the newly deposited pokémon’s nickname was changed to a bunch of ????????????, you can continue with the next step. If the pokémon wasn't saved, that means the reset too early. If the pokémon was cloned, this means the reset was too late. Make sure to release the cloned pokémon and save the game afterwards to set the amount of stored pokémon to 15 before repeating step 3.
  2. Now that you have an unterminated name pokémon, put it in box 1. Either release or move all other pokémon in the box so that the unterminated name pokémon is the only pokémon left in box 1.
  3. Finally, give Spearow a mail to hold with the following text:
Language Mail content
Japanese
ぼ ほ ほ セ ル が れ ぜ デ オ づ イ づ チ づ 0
ゥ キ リ よ ヌ ゥ モ ろ ゥ あ ろ ゅ の

Testing the setup

In order to be able to test the setup, rename box 1 to the following names:

Japanese

This box name code will be used to test the setup. It has no effect outside of safely exiting ACE and returning the game's state back to normal. Alongside that, the mail code included in its setup will also replace the first item of the main item pocket with a TM15 and install a setup so that using this TM15 will execute box name codes. This effect is not relevant at the moment, but will be used to set up the mail writer.

Step 3: using the ACE setup

Before executing ACE, arrange your party as follow:

  • Slot 1 - Spearow, holding mail
  • Slot 2 - Sandshrew, holding Lemonade
  • Slots 3-6 aren't relevant for this setup.

In order to execute ACE, do the following actions:

  1. Stand in front of the PC on the second floor of any pokémon center. Save and reset the game.
  2. Take exactly one step down and open the start menu.
  3. Open the summary of Onix and close it.
  4. Read the mail you've previously given to Spearow.
  5. Take one step up and open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE. NOTE: If the name of the pokémon in the box ends with a decimal dot ".", you will need to exit the withdraw screen and open it again to trigger ACE.

If the game doesn't crash, the setup was a success and you can continue to the end of the page.

Starting from an older save

Step 1: Preparing the Sandshrew

Continue playing the game as you normally would.

  1. Once you reach Union Cave, catch a Sandshrew (30% spawn odds, only during morning and midday). It is recommended to use TM31 to teach it Mud-slap (Obtained by beating Falkner).
  2. With Sandshrew, defeat the following Pokémon. It is imperative that Sandshrew is the only pokémon that gains experience during these battles:
    • Geodude (30% spawn odds in Union Cave, 20% spawn odds on route 33, entire day)
    • Geodude (30% spawn odds in Union Cave, 20% spawn odds on route 33, entire day)
    • Hoppip (15% spawn odds on route 33, only during morning and midday)
  3. Talk to the guard in the gate between Ilex Forest and route 34 to obtain Kenya the Spearow. If Kenya is not available, it can be substituted by any other wild Spearow.
  4. Once you reach Goldenrod City, go to the Goldenrod Dept. Store and buy 22 Flower Mails and one Lemonade (can be bought from the vending machines at the top floor).
  5. Buy an additional Poké Ball and Great Ball. Ensure that the Poké Ball is at the bottom of the ball pocket item list.
  6. Give Sandshrew the Lemonade as a held item, ensure it has Scratch as its first move.

Step 2: Preparing the bad clone and remaining items

  1. Use the bad clone glitch to obtain a pokémon with an unterminated name.
    1. For this, use a box that has never been full at any point in time.
    2. Fill the box with 15 pokémon. To speed up this process, it's recommended to clone the pokémon you already have. Save the game.
    3. Deposit a single pokémon. Attempt to save the game using "Move Pokémon w/o mail" but reset the game a bit just after the game has fully printed SAVING... DON'T TURN OFF THE POWER.
    4. After rebooting the game, use a potion up to where the game brings up the party screen. the potion doesn't have to actually be used, you can cancel from here), then check the newly deposited pokémon.
    5. If the newly deposited pokémon’s nickname was changed to a bunch of ????????????, you can continue with the next step. If the pokémon wasn't saved, that means the reset too early. If the pokémon was cloned, this means the reset was too late. Make sure to release the cloned pokémon and save the game afterwards to set the amount of stored pokémon to 15 before repeating step 3.
  2. Now that you have an unterminated name pokémon, put it in box 1. Either release or move all other pokémon in the box so that the unterminated name pokémon is the only pokémon left in box 1.
  3. Finally, give your Spearow (either Kenya or another Spearow) a mail to hold with the following text:
Language Mail content
Japanese
ぼ ほ ほ セ ル が れ ぜ デ オ づ イ づ チ づ 0
ゥ キ リ よ ヌ ゥ モ ろ ゥ あ ろ ゅ の

Testing the setup

In order to be able to test the setup, rename box 1 to the following names:

Japanese

This box name code will be used to test the setup. It has no effect outside of safely exiting ACE and returning the game's state back to normal. Alongside that, the mail code included in its setup will also replace the first item of the main item pocket with a TM15 and install a setup so that using this TM15 will execute box name codes. This effect is not relevant at the moment, but will be used to set up the mail writer.

Step 3: using the ACE setup

Before executing ACE, arrange your party as follow:

  • Slot 1 - Spearow, holding mail
  • Slot 2 - Sandshrew, holding Lemonade
  • Slots 3-6 aren't relevant for this setup.

In order to execute ACE, do the following actions:

  1. Stand in front of the PC on the second floor of any pokémon center. Save and reset the game.
  2. Take exactly one step down and open the start menu.
  3. Open the summary of Sandshrew and close it.
  4. Take exactly one step up so you’re in front of the PC. Open the start menu again.
  5. Read the mail you've previously given to Spearow (the Spearow needs to be at the very top of your party list).
  6. Open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE.

If the game doesn't crash, the setup was a success and you can now continue.

What to do with this ACE setup

Now that the ACE setup has been succesfully tested, we can start expanding the setup to more easily write arbitrary data and be more convenient to use. This will be done by installing the Mail writer, a small program installed using a set of box name codes.

Use the following link to continue to the next guide: Mail writer C (JP)