Guides:SRAM Glitch ACE Setups (EN): Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
mNo edit summary
Line 1: Line 1:
This page serves as a repository for methods to quickly set up advanced ACE setups, starting from SRAM glitch. These methods can be used for the French, German, Italian and Spanish releases of Red & Blue.
This page serves as a repository for methods to quickly set up advanced ACE setups, starting from a fresh save file. These methods can be used for the English releases of Red & Blue.


The methods described here were heavily inspired by previous SRAM glitch setups developed by Evie (Chickasaurus GL), as well existing setups intended to be used for the Japanese releases. (TODO: add links later)
The methods described here were heavily inspired by previous SRAM glitch setups developed by Evie (Chickasaurus GL), as well existing setups intended to be used for the Japanese releases.


'''Please make sure to fully read every step of the guide before executing them.'''
'''Please make sure to fully read every step of the guide before executing them.'''
Line 7: Line 7:
If you encounter any issues when going through this guide or would like to provide feedback, please contact TimoVM on the [https://discord.gg/EA7jxJ6 Glitch City Research Institute Discord].
If you encounter any issues when going through this guide or would like to provide feedback, please contact TimoVM on the [https://discord.gg/EA7jxJ6 Glitch City Research Institute Discord].


=Setting up initial ACE=
(TODO: add intro and explanation)

When you use UP + SELECT + B on the title screen, the game will delete the save by filling the entirety of SRAM with $FF values. When you then interrupt the very first save process with specific timing, you can create a glitched save file that has a party consisting of 255 ($FF) pokémon. This is known as "SRAM glitch".

Within this glitched state, we can abuse the expanded party to affect memory areas that are normally unrelated to the party, with a wide variety of possible effects. In this guide, we will be abusing this to set up an ACE environment through the following process:

# Set up SRAM glitch
# Using SRAM glitch, access Celadon City so that we can assemble an item code that will allow us to write code using boxed pokémon's nicknames.
# Using an exploit known as "Map Script ACE", set up a method to quickly pick up an unlimited amount of Eevees
# Write code by repeatedly picking up and nicknaming Eevees. This will be used to build a program that allows you to more easily write arbitrary code.


==Step 1: Starting a new game and setting up SRAM glitch==
==Step 1: Starting a new game and setting up SRAM glitch==

First, we need to set up SRAM glitch.


* Clear all saved data by pressing UP + SELECT + B on the title screen and confirming that you want to erase all saved data. (This needs to be done even if no save data is present).
* Clear all saved data by pressing UP + SELECT + B on the title screen and confirming that you want to erase all saved data. (This needs to be done even if no save data is present).
* Start up the game and go through the intro. Name your character any name you want, name the rival "*******" (seven multiplication symbols).
* Start up the game and go through the intro. Name your character any name you want, name the rival "*******" (seven multiplication symbols).
* Open the start menu, and select "Save".
* Open the start menu, and select "Save".
* Select "Yes" in the "Yes/No" dialog box, but at a very precise moment, power off or reset the console.
* Select "Yes" in the "Yes/No" dialog box. At a very precise moment, power off or reset the console.
** [[Reset|Soft resetting]] (holding Start+Select+A+B) will not work, as the game prevents soft resets while it is saving.
** [[Reset|Soft resetting]] (holding Start+Select+A+B) will not work, as the game prevents soft resets while it is saving.
** The timing to power off or reset is after the "Yes/No" dialog box has disappeared, but before the text changes to "Now saving..." (Red/Blue) or "Saving..." (Yellow).
** The timing to power off or reset is after the "Yes/No" dialog box has disappeared, but before the text changes to "Now saving..." (Red/Blue) or "Saving..." (Yellow).
*** The time window between those two visual cues is around 20 frames (depending somewhat on the version and the circumstances), but the window to successfully perform this glitch is only 4 frames.
*** The time window between those two visual cues is around 20 frames (depending somewhat on the version and the circumstances), but the window to successfully perform this glitch is only 4 frames.
* Reload the game. If you can continue the game and can open the pokémon menu, you have successfully set up SRAM glitch and can continue with the guide. Otherwise, repeat the process from the start.
* Reload the game. If you can continue the game and can open the pokémon menu, you have successfully set up SRAM glitch and can continue with the guide. Otherwise, repeat the process from the start, erasing the save in the process.


===A quick note on the effects of SRAM glitch===
===A quick note on the effects of SRAM glitch===
Line 24: Line 35:
Thanks to clearing out the previous save using UP + SELECT + B, which fills saved data with $FF values, we will reload with a party consisting of 255 ($FF) pokémon. There are, however, quite a number of side effects due to this:
Thanks to clearing out the previous save using UP + SELECT + B, which fills saved data with $FF values, we will reload with a party consisting of 255 ($FF) pokémon. There are, however, quite a number of side effects due to this:


- Having 255 party pokémon makes us unable to enter battle without heavy side effects. Due to this, we will be avoiding battle completely.
* Having 255 party pokémon makes us unable to enter battle without heavy side effects. Due to this, we will be avoiding battle completely.
* It is heavily recommended to not look at the summary of any of the party pokémon, since they are made up of glitched data.
- Thanks to having 255 party pokémon, we are able to swap pokémon beyond the 6th party slot.
* Thanks to having 255 party pokémon, we are able to swap pokémon beyond the 6th party slot.
- Every few steps, the game will act as if at least one party pokémon is poisoned. This effect can be freely ignored.
* Every few steps, the game will act as if at least one party pokémon is poisoned. This effect can be freely ignored.


Throughout the guide, codes are provided that resolve these side effects and allow you to resume normal game progression.
Throughout the guide, codes are provided that resolve these side effects and allow you to resume normal game progression.


==Step 2: Reaching Celadon City and setting up Fly==
==Step 2: Reaching Celadon City and setting up Fly==

The main item code will be assembled in Celadon City. We will be abusing the extended party's properties to both obtain an expanded item pack and enable us to use Fly. The expanded item pack is a glitched state where the game thinks that we have 255 ($FF) items in the item pocket, even though the item pocket usually has a maximum size of only 20 items. This allows us to access areas of memory beyond the item pack and treat them as if they are items.


* Go downstairs and exit your house to Pallet Town. This registers Pallet Town as a Fly location, preventing a possible crash at a later point in the guide.
* Go downstairs and exit your house to Pallet Town. This registers Pallet Town as a Fly location, preventing a possible crash at a later point in the guide.
* Go back inside your house, swap the 2nd party pokémon with the 10th pokémon. This sets the amount of pokémon caught in the pokédex to 152, as well as setting the amount of items in the bag to 255.
* Go back inside your house, swap the 2nd party pokémon with the 10th pokémon. This sets the amount of pokémon caught in the pokédex to 152, as well as setting the amount of items in the bag to 255.
* Scroll down to the 36th item slot. This will be an item with quantity x0. Toss a total of 250 items from it for a final quantity of 6. When tossing, you can press down to underflow the amount of items to be tossed from 0 to 255, then press down 5 more times.
* Scroll down to the 36th item slot. This will be an item with quantity x0, as indicated on the above screenshot on the left.. Toss a total of 250 items from it for a final quantity of 6. When tossing, you can press down to underflow the amount of items to be tossed from 0 to 255, then press down 5 more times.
* Exit your house. Thanks to changing the item quantity, you will exit to Celadon City.
* Exit your house. Thanks to changing the item quantity, you will exit to Celadon City.
* Walk to the spot indicated by the screenshot. At this spot, the item in the 35th item slot will have turned into a Potion x0. Using Select, swap this potion to the 29th item slot. This will give you the Thunderbadge and the Soulbadge, allowing you to use both Surf and Fly.
* Walk to the spot indicated by the above screenshot on the right. At this spot, the item in the 35th item slot will have turned into a Potion x0. Using Select, swap this potion to the 29th item slot. This will give you the Thunderbadge and the Soulbadge, allowing you to use both Surf and Fly.
* Go to the 7th item slot. This will also be an item with quantity x0. Toss a total of 237 items from it for a final quantity of 19. This will alter party pokemon #11's data and allow it to use Fly.
* Go to the 7th item slot. This will also be an item with quantity x0. Toss a total of 237 items from it for a final quantity of 19. This will alter party pokemon #11's data and allow it to use Fly.
* Finally, open the party menu, select the 11th party pokémon and have it use fly. Fly directly to Celadon City.
* Finally, open the party menu, select the 11th party pokémon and have it use fly. Fly directly to Celadon City.
* (Optional) Only if you're playing on the virtual console releases, it is advised to enter the pokémon center and change the current active box any box other than box #2.
* (Optional) Only if you're playing on the virtual console releases, it is advised to enter the pokémon center and change the current active box any box other than box #2. This ensures that box #1, used to transfer pokémon to gen 7, remains empty for later use.


It is now safe to save the game.
It is now safe to save the game.