User:CytricAcid/Beginner's Guide To ACE/US Red and Blue Guide

From Glitch City Wiki
Jump to navigation Jump to search

If you are a Wiki Contributor and would wish to edit this page, let me know on Discord. This is a collaborative effort!

This is a guide on how to obtain and/or exploit a glitch item. For a more technical overview of the glitch item involved, see 8F (Red/Blue).

WARNING

Certain steps in this guide will lead you to a game state where a mistake could crash the game, or worse, delete your save file. Make sure to double and triple check your setup and follow instructions properly before using any glitch items!

TL;DR

Get 8F

  1. Make sure the PC isn't filled with items (<50)
  2. Talk to the old man in Viridian and answer "no" to his question, to trigger the catching tutorial
  3. Have nothing but 5 useless items, and PP Up ×1 as the 6th item in the bag (or anything tossable ×1, in case you have no PP Ups)
    • Have a Tentacool with Surf/Double Team and Acid/Cut/Barrier as 3rd and 4th moves, respectively, in your party (if you don't, you can look for one on the way to Seafoam Islands; see next step)
  4. Fly to Fuchsia, get to Seafoam Islands and keep surfing up and down along the coast (next to the rightmost cave) until you encounter a MissingNo.
  5. After the encounter, you should have 129 PP Ups. Toss (or use) 2 PP Ups and encounter MissingNo. again. PP Up quantity should be 255
  6. Put PP Up ×255 1st in the bag, toss 3 useless items, then move PP Up to the 3rd slot
  7. Toss the 1st item
  8. Toss the 1st item again
  9. Toss 253 of the 1st item
  10. Swap item 1 with item 2
  11. Repeat step 9. If done correctly, the bag should now be corrupted
  12. Give 3 PP Ups to each of Tentacool's last 2 moves
  13. Surf to the northernmost part of the route, then keep going right until your 35th item (Cancel counts as an item) becomes 8F. Swap it with your PP Ups and fly away
  14. Deposit your new ACE item in the PC, then withdraw or buy any 3 items (warning: 1st item is lost) to restore your inventory back to normal

Appendix: If no PP Up is available, get ×255 of any tossable item, and after step 10, fly to Cerulean and walk 30 steps left. The 35th item should be PP Up. Give the required ones to Tentacool and fly back to Fuchsia.


Party Setup

2-5 Pokemon in current party:

  1. Tentacool with specific remaining PP (recommended moves: Constrict, Poison Sting, Surf/Double Team, Acid/Cut/Barrier):
    1. 33 for 1st move (0 PP Up used)
    2. 34 for 2nd move (0 PP Up used)
    3. 19 for 3rd move (3 PP Up used)
    4. 41 for 4th move (3 PP Up used)
  2. Onix
  3. Can be anything (or nothing)

8F will execute code from 3rd item in the bag.


First codes (all lists start from 1st item in the bag)

Increase/Decrease item quantity by 1:

- ACE item (recommended, but can be anything)
- Item you want +/- 1 of
- Antidote x43 (any item that corresponds to useless code will also work)
- Full Heal/Revive x2
- TM01 x(any)

Obtain any item:

- ACE item (recommended, but can be anything)
- Item you want to morph
- Lemonade x(ID you want)
- X Accuracy x32
- Water Stone x2
- TM01 x(any)

For more codes see Generation I item codes.

0. Preparations

This guide will assume that you have a normal save file with a certain amount of progress that you may care about.

  • You need to have access to the field moves Surf and Fly (which implies that you need to have beaten Koga and Lt. Surge).
    • If you really want, Teleport can replace Fly here as long as you remember to set some of your teleportation locations properly. However, acquiring HM02 Fly is just worth it in general due to how much time it saves, not only while following this guide but also when playing the game at all.

It does not matter whether you have completed the game by beating the Elite Four at least once, although your Hall of Fame may become corrupted in this process if you have already completed the game. The corruption will not affect any other aspect of the game and you can fix it with ACE if you really want.

Things to keep in mind

There are also a few later requirements that you may want to consider when performing the early steps.

  • You need to have a Tentacool with specific PP values (which also include the exact number of PP Ups applied).
    • In Generation I, PP Up is a rare item with only a limited number available, and we will need 6 for our Tentacool. Thankfully, you can either duplicate PP Ups as long as you have at least 1 still available, or obtain PP Ups through glitching later.
    • Most of the required PP values are also somewhat on the high side, meaning that we need to use moves with enough base PP. You can peek ahead at the exact requirements.
    • If you don't have a convenient Tentacool on hand, you can probably find one incidentally while Surfing towards Seafoam Islands.
    • You can even start to set up the exact PP values early, but remember that healing at a Pokémon Center will reset the PP values to the maximum.
  • You also need to have an Onix, although there is no specific requirement for the Onix, so this should not be a cause for concern.

1. Get 8F through dry underflow

In this section, we will be manipulating our item pack a lot in order to obtain 8F. To this end it is recommended to reduce the clutter in your inventory beforehand:

  • Have a small number of items in your item pack (but no less than 6).
    • More precisely, by "items" we mean "item stacks" here, which means e.g. Potion ×99 counts as a single item.
    • You can deposit any extras (including Key items) into your PC, and in case you don't have enough you can buy some cheap items from any shop.
  • Have at least one empty slot in your PC item storage to accommodate 8F, and preferably more, since when performing dry underflow we will be clearing out our item pack, but we will be able to store anything that might be useful later into the PC.

Once we get the ×255 item stack or the expanded item pack, manipulating items becomes less intuitive and can even be dangerous if you don't know what you are doing, so it is recommended to reduce the clutter before that happens in order to avoid trouble.

Get a ×255 item stack

Step 2: Just in case you don't remember, this NPC is the old man.
Step 5: PP Up ×129 and PP Up ×255 should look like these respectively.

The goal of this step is to get a stack of any item ×255 in the bag. Since the normal limit for an item stack is ×99, this goal will require a glitch. Namely, we will duplicate the 6th item in the bag by encountering either MissingNo. or 'M (00) through the old man glitch.

  1. Have any tossable item ×1[note 1] (you can toss or use any extras) as the 6th item in the bag.
    • A good candidate is PP Up ×1, which (as mentioned above) is a rare item that you will need to use on the Tentacool for the party setup.
  2. Go to Viridian City, and talk to the old man who shows you how to catch Pokémon. Watch his catch demonstration (by saying "No" when he asks if you are in a hurry).
  3. Immediately Fly to Fuchsia City[note 2] (without otherwise leaving Viridian City).
  4. From Fuchsia City, Surf down and then left to reach this location:
    • For safety, save the game now, since there is a possibility we may need to reset later.
  5. Surf along the shore for wild encounters. We are looking for the glitch Pokémon MissingNo. or 'M (00)[note 3], which looks like one of these:
    • If you encounter a normal Pokémon instead, just keep looking. If you encounter a Trainer or another glitch Pokémon (although the latter should be impossible on English games), immediately reset for safety.
    • To ensure that the glitch has worked, check the quantity of the 6th item in the bag, which should now be ×129 (since the game is not designed to display three-digit numbers as the quantity of an item, the number will look glitchy).
  6. You can now escape from the battle[note 4], then toss or use two of your 6th item so that you have ×127. (Now is a good time to make another safety save.)
  7. Repeat step 5, i.e. Surf along the shore for another wild encounter with a MissingNo. or 'M.
    • If you have done everything correctly, the encounter should increase the quantity of the 6th item to 255, which is the goal for this section. You can now escape from the battle and start the next section.

Perform dry underflow

Step 4: The classic setup for dry underflow. Make sure that at this point your item count is exactly 1.
Step 5: The item count is 0 now, so be extra careful here.
Step 6: You should be able to scroll down again, even past the 20th item.

Now that you have a ×255 item stack, you can save the game and experiment with it if you want to.

×255 item stacks and the item count

The most notable property of the ×255 item stack is its tendency to duplicate itself. For example, with PP Up ×255 as the 6th item in your bag, toss (or deposit into your PC) the entire stack of your 5th item. Your 5th item is now PP Up ×255 (as expected), but your 6th item is still PP Up ×255, meaning that you have two of those stacks now. However, if you only had 6 items to begin with, now you actually only have 5 items even though you can see PP Up ×255 as your 6th item. That 6th item will "act like the Cancel button", meaning that you won't be able to scroll past it, and if you press the A button on it, instead of bringing up the use/toss menu, you will exit the item menu.

This may be confusing at first, but just keep in mind that the game keeps track of your item count (which is supposed to be the number of item stacks you have) and your item list separately. Try not to decrease your item count too much prematurely (although you should be fine if you don't toss, use or deposit from your ×255 item stack unless instructed to). We will be performing item underflow, which means that eventually we will decrease the item count a lot — namely, decrease it to -1, but it takes some careful setup to avoid being stuck at 0.

In order to obtain 8F, we want to perform dry underflow, which involves a somewhat obscure functionality of the item menu: Pressing the Select button on two items allows you to swap items. Furthermore, if they are the same type of items, those item stacks are combined into one stack instead as long as the total number of items is not more than 99. This decreases the number of item stacks (i.e. decreases the item count) and we will ultimately use this to bring the item count to -1.

The below steps may cause you to lose some items from your inventory. In the grand scheme of things that is not that important since eventually you will be able to get any item in any quantity back with ACE, but you do need a few items later (or a bit of money to buy them) to get things going smoothly.

  1. Make sure to have at least two item stacks above your topmost ×255 item stack. Also make sure that you have access to your topmost ×255 item stack, and it is not "acting like the Cancel button" (i.e. make sure that pressing the A button on it brings up the use/toss menu, and does not exit the item menu).
  2. Get rid of all other items above your topmost ×255 item stack: Deposit all Key items and other things you want to keep into the PC, and toss all unimportant items.
    • Your ×255 item stack should duplicate itself and fill your inventory, so now you should have at least three ×255 item stacks.
  3. If necessary, start tossing the second ×255 item stack until your item count is 1. You will know that your item count is 1 when you are no longer able to toss your second ×255 item stack because it is acting like the Cancel button, and you are no longer able to scroll to your third item stack.
  4. Toss 253 from your first ×255 item stack, so that you have 2 left.
    • Your inventory should now look like this (the PP Up can be anything, as long as all three stacks are the same kind of item):
      • PP Up ×2
      • PP Up ×255
      • PP Up ×255
  5. Swap your first item stack (the ×2 stack) and second item stack (by pressing the Select button on the first item stack and then on the second item stack). They will combine into a ×1 item stack.
    • At this point, don't accidentally exit your item menu by pressing A or B. Otherwise you will be unable to proceed, and the best course of action is to reset the game to load your last save file and try again.
  6. Swap your first item stack (the ×1 stack) and second item stack again. They will combine into a ×0 item stack.
    • If you've done everything correctly, you should be able to scroll down again, even past the Cancel button and past the 20th item (normally the maximum number of items of your bag). What happened is that you have decreased your item count to -1, but since the game is not designed to handle a negative item count, it becomes 255 instead, giving you access to 255 items. You can now start the next section.


Obtain 8F

Once you have access to the expanded item pack, obtaining 8F, or indeed any item in the game, is quite easy. The reason is that the contents of the expanded item pack actually correspond to unrelated game data — such as your coordinate on the map — so they can be easily manipulated. On the other hand, that also means that messing with the contents of the expanded item pack may affect the game state, and can even be dangerous. Follow the below steps in order to obtain 8F safely.

  1. From Fuchsia City, Surf down and left again to reach this location, then go another two tiles to the left to reach the second:


  2. Scroll down to the 35th item in your expanded item pack. It should be 8F.[note 5]
  3. Swap this item with a useless item in your main inventory. (The ×0 stack at the top of your inventory you've just created in the previous section should work fine: You should have at least two ×255 stacks of the same item below, which can duplicate themselves if you somehow need more.)
  4. Immediately Fly away.[note 6]
  5. Deposit 8F into your PC. For simplicity and safety, we will only be using it after fixing our item pack.
    • If you did the previous steps correctly, you will notice that you still have 8F in your item pack. This is normal: The 8F you swapped into your main inventory is actually a stack of 8F ×0 (even though you cannot see the quantity because 8F is a Key item), which is equivalent to ×256, meaning that you can deposit 1 and still have ×255. Just treat the 8F remaining in your item pack as a useless item.
      • If this doesn't happen, that is fine too. That means that you obtained 8F ×1 instead of 8F ×0, probably because your Y coordinate was different from the screenshot. You would need to buy one more item to fix your item pack later.
  6. Optionally, repeat the previous steps, but with these other locations, to obtain some other potentially hard-to-obtain items. You will get a ×0 stack of each (equivalent to ×256). Ideally, don't use/sell/deposit the whole stack to avoid decreasing the item count.
    (TODO: Add screenshot) (PP Up; Rare Candy to level up Tentacool?; Something to sell for money?)
  7. Buy any two cheap items (that you don't already have in your main inventory) to fix the item pack. The first item you buy will be lost, and the second should become the first and only item in your main inventory, with a proper Cancel button below it.
    • Withdrawing useless items from the PC will also work if that's more convenient.
    • If the second item bought doesn't appear as the first item in your inventory, keep buying cheap items until the item pack is fixed.[note 7][note 8][note 9]

2. Party setup

Conceptually, this is the simplest step since it does not involve any glitches. Just edit your party so that the following are true:

  • You have 2–5 Pokémon in your party.
  • The first Pokémon is a Tentacool.
  • The second Pokémon is an Onix.
  • The Tentacool in the first slot of the party has four moves with the following amounts of remaining PP:
    • 33 for 1st move (0 PP Up used)
    • 34 for 2nd move (0 PP Up used)
    • 19 for 3rd move (3 PP Up used)
    • 41 for 4th move (3 PP Up used)
ASM translation
; Initial hl = 0xD163, a = 0x63, bc = 0x00B8
$D163 <- 02/03/04/05 || ld [bc], a / inc bc / inc b / dec b
$D164 <- 18 22       || jr 0x22       ; pc = $D166 + 0x22 = $D188
(...)
$D188 <- 21 22 D3    || ld hl, 0xD322
$D18B <- E9          || jp hl         ; pc = $D322

Here the register a was a temporary variable for reading out the jump destination $D163, and bc was the offset into ItemUsePtrTable (here (0x5D - 1) * 2, where 0x5D is the item ID of 8F).

  • If the party contains only 2 Pokémon (i.e. nothing other than Tentacool and Onix), then the first instruction will try to write 0x63 to the ROM address $00B8, which locks the SRAM instead.
    • This is generally not a bad thing (it makes things safer in case there is something wrong with the item code), but it might stop you from writing to the SRAM with a simple memory writer, so in that case you probably want to have more than 2 Pokémon in your party to avoid this.
  • The other possible first instructions do nothing as long as the item code jumped to does not make any assumption on the values of a and bc.

Just in case you are not familiar with the PP Up, it is an item that can permanently raise the maximum PP of a move. Up to three PP Ups can be used on the same move, each increasing the maximum PP by 1/5 of the base PP (as an exception, in Generation I, if the base PP is 40, it will only be increased by 7 each time instead of 8). The number of PP Ups used is stored in the same byte as the current PP value, so for the purpose of this setup, it is as important as the PP value itself.

To show a concrete example of the Tentacool PP setup: (TODO: Screenshot instead of text?)

Constrict     PP 33/35
Poison Sting  PP 34/35
Surf          PP 19/24
Cut           PP 41/48

The biggest problem with making this setup is to find moves with enough base PP. In particular, the 1st and 2nd moves need to have at least 35 base PP (note that, since the setup explicitly calls for 0 PP Ups, they cannot help here). As can be seen from Tentacool's Generation I learnset, the only options are three level-up moves: Poison Sting (level 18), Constrict (level 27), and Screech (level 40). Therefore you need to either catch the Tentacool at or raise it to at least level 27. Remember that you can switch moves around by using the Select button in a battle.

For the 3rd and 4th moves, there are more choices: They only need to have at least 15 and 30 base PP respectively, and preferably exactly 15 and 30 base PP since then the minimal amount of PP need to be used in order to get to the specified amounts. As shown above, you can always use the HM moves Surf and Cut for this purpose, but a lot of other level-up moves and TM moves also work. A strategy that might be useful is to use non-damaging moves such as Double Team and Barrier, so that you can spam them in wild battles without killing the opposing Pokémon.

Once you have double checked your party (don't forget the Onix) and Tentacool's PP values, you can move to the next and final section. As a final reminder, keep in mind that healing your party will mess up the PP values and thus the setup.

3. Setting up our first code

The final step is to spell out the arbitrary code you want to execute with items in your inventory. We will start with some simple codes both to verify that your party setup is correct, and to take full control of your inventory (i.e. get any item in any quantity) in order to facilitate making more complicated codes.

Get any item quantity

Arrange your items as follows, starting from the first item in your inventory:

ASM translation

Initially, hl = $D322, i.e. it points to the kind of the third item in the inventory (Antidote), which is also where the execution starts since we jumped here with a jp hl instruction.

Item slot Item stack Hex ASM Comments
3rd Antidote
×43
0B dec bc Filler
2B dec hl hl = $D321 (the quantity of the second item)
4th Full Heal
×3
34 inc [hl] Increases the quantity of the second item
03 inc bc Filler
5th TM01 C9 ret Returns control to the calling routine
  • If you ever start making your own codes, always remember to end it with a ret instruction. Otherwise the game will continue to execute the remainder of your inventory (and possibly more data following that) as assembly code, which is likely to cause a crash, and potentially worse.
    • That is, unless you know what you are doing and have a good reason not to (e.g. you ended the code with a jp to another function instead).
  • As can be seen above, the "Antidote" in "Antidote ×43" and the "×3" in "Full Heal ×3" are fillers, i.e. you can replace them with "(Something) ×43" and "Full Heal ×(some amount)" respectively as long as the replacement bytes correspond to useless assembly instructions that don't actively mess up the rest of the code.

After making sure everything is set up correctly, use 8F. The quantity of the second item should have increased by 1, even going over 99 (which eliminates the need to use MissingNo. to duplicate items in the future).

There is a slightly different variant of this code that you may find more convenient (depending on the quantities you need and/or your willingness to do some math): Replace Full Heal ×3 with Revive ×3, which will cause 8F to decrease the quantity of the second item by 1 instead of increasing it. At first glance this may not seem that useful, but the point is that this can decrease the quantity from 1 to 0 without deleting the item stack. As mentioned earlier, a ×0 item stack is equivalent to ×256, so you can then get any quantity n you want by tossing 256-n from the item stack.

Get any item

Arrange your items as follows, starting from the first item in your inventory:

  • 8F
  • (Any unimportant item)
  • Lemonade ×(the ID of the item you want)
  • X Accuracy ×32
  • Water Stone ×3
  • TM01 ×(any)

You can find out the ID of any item from The Big HEX List.

ASM translation

Again, initially hl = $D322.

Item slot Item stack Hex ASM Comments
3rd Lemonade
×<ID>
3E
<ID>
ld a, <ID> Loads <ID> into the register a
4th X Accuracy
×32
2E
20
ld l, 0x20 hl = $D320 (the kind of the second item)
5th Water Stone
×3
22 ld [hli], a Sets the value at $D320 to <ID>
03 inc bc Filler
6th TM01 C9 ret Returns control to the calling routine
  • Again, the "×3" in "Water Stone ×3" is a filler that can be replaced by anything that don't actively mess up the rest of the code (in particular, ×2 may work with some setups).

After making sure everything is set up correctly, use 8F. The second item should become the item you want.

More codes

At this point, you should have full control over your inventory, which would make it easy to spell out any future codes. See Generation I item codes for some examples of what you could do with ACE.

Notes

  1. Technically, it does not need to be ×1 right now; you only need to toss down to 127 after you have duplicated it once (increasing its quantity by 128). However, tossing down to 1 now will make later steps easier, in terms of having less math to worry about.
  2. The more well-known location to perform the old man glitch is the eastern coast of Cinnabar Island, but it actually works with any "eastern shore tiles" that can be reached from a Fly destination without going through an area with grass encounters. This guide will use the shore tiles on the east side of the Seafoam Islands because they are closer to a location that can help us get 8F easily later.
  3. As mentioned on the old man glitch page, the possible encounters depend on the player's name, but at least one of the glitch Pokémon we are looking for should always be available.
  4. If your 6th item was one that could be used in battle (e.g. a Potion), you can use two of them in battle instead, and then catch the MissingNo. or 'M, which will immediately duplicate your 6th item again, without needing a second encounter. However overall the added complexity is probably not worth it.
  5. The 35th item corresponds to your X coordinate on the current map (i.e. it decreases as you go left, and increases as you go right, as long as you don't leave the current map). This location is on the Route 20 map, which is the single widest map in the game, allowing you to obtain many useful items this way.
  6. By swapping the 35th item, you have corrupted your X coordinate, so trying to move around on the map may have unexpected and confusing effects. Depending on which item you swapped it may be possible to leave the map by Surfing and/or walking, but the safest option is to just Fly away. There is a technique named the Celadon looping map trick which makes use of such a X coordinate corruption to obtain items with too large an internal ID to be obtained on Route 20, but you won't really have a need for that since once you set up ACE you can obtain any item more easily.
  7. If you have been following everything perfectly, your item count would remain 255 (in other words, -1) after you got the expanded item pack, so you would need two items to increase your item count back to 1. If you have unnecessarily decreased your item count by using/selling/depositing a whole stack of items, your item count would be lower, so you would need to buy more items in this step.
  8. The first item you buy will occupy item slot 256, which are near the end of the list wWarpEntries (in the middle of list entry 28). This should be safe as no shop in the game has that many warps. Even if you have accidentally decreased your item count a few times, the items you buy should still be close to the bottom of wWarpEntries and remain safe.
  9. Don't worry about the cheap item existing in your expanded inventory, as the game will not look past the Cancel button when trying to find an existing stack of that item.
  10. Technically, 8F can be in any slot of your inventory, but this slot is the most convenient.
  11. In fact, this also works with Key items, but it would be harder to see the effect.
  12. An earlier version of this setup used ×2 instead of ×3, which corresponds to the assembly instruction ld [bc], a. That is not a universally safe filler (it depends on the value of bc), although with the Tentacool setup described on this page it should be safe (in the case of 5 Pokémon in the party, only barely safe thanks to the Antidote (dec bc) changing the address written from $FFB8 to $FFB7).

Attribution

  • RationalPsycho optimized the procedure and wrote the concise guide in the "TL;DR" section.