User:TimoVM/International GS RAM Writer setups

From Glitch City Wiki
Jump to navigation Jump to search

This page serves as a repository for RAM writer setups specifically intended for the German, French, Italian and Spanish versions of Pokémon Gold & Silver.

These setups are designed for two main purposes:

  • Provide a way to set up an ACE environment by providing ways to fill the TM/HM pocket with x255 of every TM, along with a way to execute code from the TM/HM pocket.
  • Provide a program, building on this ACE environment, that allows the user to easily change any RAM value in memory, along with providing a graphical user interface to do so.

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

General overview

In this guide, we will steadily be building an advanced ACE program through the following process:

  1. Obtain a bad clone.
  2. Use the bad clone to obtain two additional bicycles. then use duplicate key items glitch to place TM17 (an ACE item) in the ball pocket.
  3. Use a box name code to set all TMs to x255.
  4. Sell TMs in specific quantities in order to write a program in the TM/HM pocket using TM quantities.
  5. Use another box name code to execute this program, which will allow us to write the full RAM writer.
  6. Execute the RAM writer, running the RAM writer for the first time will also fix the side effects caused by Duplicate Key Item Glitch.

Alternatively, you can skip step 1 and step 2 if you have another game that has an ACE setup. This can be done by trading two pokémon, each holding a bicycle, from the game that already has an ACE setup.

Preferably, make sure that you've used the Clear Save Data feature (^ress SELECT + UP + B on the title screen) at least once since owning the game. This will zero out all of the SRAM data, which is needed to create a bad clone.

Requirements for this guide

  • The only hard requirement is reaching Goldenrod City to access the Day Care, along with having access to GoldenRod Dept. Store.
  • Ensure that you catch an Unown. Any Unown will do, but to be usable it must never haved gained experience in battle or levelled up in any way.
  • For every language except German, ensure that you catch a Wooper.
  • All other requirements can be obtained in the vicinity of Goldenrod City, we'll go over these in their respective parts of the guide.

Step 1: Obtaining a bad clone

A bad clone is created when you reset the game at a very specific time frame where:

  • The game has saved that additional pokémon were deposited in the active box.
  • The game has not yet saved the data of the deposited pokémon

In combination with the Day Care, we can turn this bad clone into a glitch pokémon that we'll be using to perform a variety of glitches.

Requirements

  • A box that has never been full at any point in the past.
  • Fill this box with 15 pokémon. You can use cloning glitch to obtain the required pokémon.
  • A male pokémon (make sure that the species can be both male and female) that you can deposit to the PC.

Obtaining the bad clone

  1. Deposit any party pokémon to the current active box.
  2. Go to switch the current active box, you will get a prompt to save the game.
  3. Reset the game shortly after the Yes/No box disappears (Gold/Silver).
  4. If successfull, upon restarting the game you will find a level 0 female version of the deposited pokémon with a glitched name. This pokémon can be safely withdrawn to your party.

Please note that the timing of this is very strict (around frame perfect).

  • If nothing was saved, the reset was too early. Wait a little bit longer to reset.
  • If the pokémon was successfully cloned, the reset was too late. reset a little bit earlier.

Use these guidelines and keep retrying until you've obtained a bad clone.

Step 2: Obtaining additional bicycles and getting TM17 in the ball pocket

This works in any language version on any generation 2 game, the method is based on a translation of a [blogpost from 任意コード]. When in the ball pocket, TM17 functions as a wrong pocket TM with its effect pointer at $DA47 (middle of the first party pokémon's data).

Requirements

Have the following items in the ball pocket:

  • Slot 1: Great Ball x2
  • Slot 2: Poké Ball xany
  • Slot 3 and beyond: empty

(Both can be bought in the Goldenrod Dept. Store if needed, make sure to store or sell everything else you have in the Ball pocket.)

Have the following items in the key item pocket:

  • All key items you've obtained in your save thus far (withdraw all key items (if any) you previously stored from the PC)
  • Bicycle at the bottom of the key item list

Have the following pokémon in the party:

  1. Bad clone
  2. Drowzee with Fire Punch in second move slot
  3. Drowzee with Fire Punch in second move slot
  4. Unwanted pokémon
  5. Unwanted pokémon
  6. Unwanted pokémon

(you can buy the TM for Fire Punch at the Goldenrod Dept. Store)

Have the following pokémon in the box:

  • 1 unwanted pokémon
  • 1 normal pokémon

Keep in mind that we'll be corrupting both the Drowzees and the unwanted pokémon. Make sure to only use pokémon you do not wish to keep. The normal pokémon will not be corrupted at all during this process.

Obtaining duplicate bicycles

  • Step 1: Deposit the bad clone in the daycare and retrieve it. It will now have turned into a glitch pokémon. Arrange your party as follows:
  1. Glitch pokémon
  2. Drowzee with Fire Punch in second move slot
  3. Drowzee with Fire Punch in second move slot
  4. Unwanted pokémon
  5. Unwanted pokémon
  6. Unwanted pokémon
  • Step 2: Using "move pokémon w/o mail", add the stored unwanted pokémon to the top of your party.
  • Step 3: Switch the party pokémon in the second slot (the glitch pokémon) with the pokémon in the fifth slot (an unwanted pokémon).
  • Step 4: Select "Deposit pokémon" from the PC and deposit the top two pokémon in your hand.
  • Step 5: Withdraw the normal pokémon from your box and add it to the party using "Withdraw pokémon".

The party will now contain two Drowzee that will both be holding a bicycle each. Take these held items to add them to the bottom of the Key Item list. It is now safe to save.

Obtaining TM17

  • Step 1: Go to the bottom of the key item list. The bottom of the list should consist of three separate bicycles.
  • Step 2: Press select on the second bicycle and swap it with the third bicycle. The number of bicycles will decrease, the "Cancel" button will change to a "Teru-Sama" item.
  • Step 3: Go to the ball pocket and toss 47 of the second item. The final quantity of the second item is a number ending in "8".
  • Step 4: Return to the Key Item pocket, press select on the upper bicycle and swap it with the bottommost item. This leaves you with a single bicycle, will turn the "Teru-Sama" into a "Paralyz Heal" and change the second item of the Ball pocket into a TM17. It is now safe to save.

Do not worry about the glitch pokémon that's still in your party or the key item list that lacks a cancel button, we'll fix both in the last step of the guide.

Step 3: obtaining x255 of every TM

Now that we have obtained TM17 outside of the TM/HM pocket, we'll need to set up everything needed to actually safely use it. TM17's effect is to execute code starting from $DA47, which is near the end of party pokémon #1's data. What we'd like to do is to redirect it such that box names get executed instead:

  • Prepare the party to ensure that code gets safely redirected to box names.
  • Prepare specific box names that will give you x255 of all TMs, along with safely returning to normal game operation.

Please note that this step heavily differs between languages. Make sure you follow the correct section for your language.

Every language except German: preparing a Wooper

  • Obtain the following TMs:

- TM02 HEADBUTT: buy at Goldenrod Dept Store. - TM27 RETURN: obtain on sundays1 from the female clerk at Goldenrod Dept. Store by showing a pokémon with high friendship2.

  • Teach Wooper TM27 and have it hold TM02. Arrange your party like this:
  1. Unown
  2. Wooper holding TM02 and knowing Return
  3. Any
  4. Any
  5. Any
  6. Glitch pokémon used in part 23

1 You can change the clock by using the date change exploit if necessary.

2 If you do not have a pokémon with sufficiently high friendship, use the alternative found below.

3 This pokémon is not needed for the setup, but is placed here in order to remove it from the party on first execution of the RAM writer. If you do not wish to remove it, replace with an unwanted pokémon.

All languages: preparing a Nidoran♂

  • Catch a Nidoran♂
  • Have it fight the following pokémon and defeat them by itself (order doesn't matter)
  1. Drowzee - Route 34, 50% odds to spawn at any time of the day
  2. Nidoran♀ - Route 35, 30% odds to spawn at any time of the day
  3. Oddish - Ilex forest, 60% odds to spawn, only at night1
  4. Oddish - Ilex forest, 60% odds to spawn, only at night1
  • Buy an Ice Heal and a Flower Mail, both can be bought in Goldenrod Dept. Store.
  • Give the Ice Heal to Nidoran♂ to hold. Arrange your party like this
  1. Unown
  2. Nidoran♂ that has defeated specific pokémon, holding Ice Heal
  3. Any
  4. Any
  5. Any
  6. Glitch pokémon used in part 22
  • Finally, give Unown a flower mail and prepare a specific language-dependent mail:
German French Spanish Italian
A A A A A A A A A A A A A A A A
A A ë R H é 8 2 ë 9 é ß 2 ä y 2 
A A A A A A A A A A A A A A A A
A A p û y 2 
A A A A A A A A A A A A A A A A
A A p ñ y 2 
A A A A A A A A A A A A A A A A
A A p ñ y 2 

1 You can change the clock by using the date change exploit if necessary.

2 This pokémon is not needed for the setup, but is placed here in order to remove it from the party on first execution of the RAM writer. If you do not wish to remove it, replace with an unwanted pokémon.

Setting up box codes and using TM17

Now that you have set up either a party with Wooper or a party with Nidoran♂, we'll rename box names to form a specific bit of code which we'll execute when we use TM17.

  • Rename box codes according to the following table. Make sure to use the box names compatible with your language:
German French Spanish Italian
Box 1: , 2 ö 8 2 W 5 5
Box 2: ö 8 2 W ö 8 2 o
Box 3: ö 8 2 w G ö 8 2
Box 4: G ö 8 2 G ö 8 2
Box 5: ö 8 2 w ä , 2
Box 6: any
Box 7: d J 5 T R w y 9
Box 8: A Ä
Box 1: A p u' c é 5 2
Box 2: ? P é 2 2 H u' 5
Box 3: é ♀ 2 u' ♂ é 6 2
Box 4: h u' 9 é 3 2 u' t
Box 5: é 0 2 ] p' ♀ 2
Box 6: any
Box 7: A A ♀ ♀ ♀ p'
Box 1: A p ° C é 0 2
Box 2: ? P é 2 2 H ° 5
Box 3: é ♀ 2 ° ♂ é 3 2
Box 4: È 9 é 6 2 p ° Q
Box 5: é 5 2 0 9 ñ ♀ 2
Box 6: any
Box 7: A A ♀ ♀ ♀ ñ
Box 1: A p ° C é 0 2
Box 2: ? P é 2 2 H ° 5
Box 3: é ♀ 2 ° ♂ é 3 2
Box 4: È 9 é 6 2 p ° P
Box 5: é 5 2 0 9 ñ ♀ 2
Box 6: any
Box 7: A A ♀ ♀ ♀ ñ
  • If you're using a Nidoran♂, make sure to re-read the mail you gave to Unown.
  • Use TM17 once. If the code was executed successfully, switch to the TM/HM pocket. It should now contain every TM at a quantity of x255.


NOTE: due to limitations, the German version of this box code can only be used once. If you need to use it again, either set box name 1's name to:

, 2 &

or reset box 7's name to:

d J 5 T R w y 9

(keep all other box names the same)

Step 4: Selling TMs to form a program in the TM/HM pocket

Now that we have obtained x255 of every TM, we'll be selling specific amounts of these in order to form a program. This program differs slightly depending on the specific language you're using. The following table displays how many TMs of each kind you need to end up with, along with the amount of money you gain by selling them.

TM Final amount Amount sold for
TM01 17 357000
TM02 85 170000
TM03 221 51000
TM04 213 42000
TM05 213 21000
TM06 213 63000
TM07 62 193000
TM08 04 125500
TM09 33 111000
TM10 LANGUAGE DEPENDENT SEE NEXT TABLE
TM11 98 157000
TM12 207 24000
TM13 225 15000
TM14 209 69000
TM15 42 319500
TM16 135 180000
TM17 48 310500
TM18 07 248000
TM19 134 181500
TM20 18 355500
TM21 19 118000
TM22 129 189000
TM23 79 264000
TM24 18 355500
TM25 42 213000
TM26 39 324000
TM27 32 111500
TM28 242 13000
TM29 33 222000
TM30 01 381000
TM31 196 88500
TM32 77 178000
TM33 205 75000
TM34 LANGUAGE DEPENDENT SEE NEXT TABLE
TM35 58 98500
TM36 27 114000
TM37 205 50000
TM38 LANGUAGE DEPENDENT SEE NEXT TABLE
TM39 55 200000
TM40 240 7500
TM41 171 126000
TM42 189 99000
TM43 40 107500
TM44 216 58500
TM45 56 298500
TM46 238 25500
TM47 07 372000
TM48 208 70500
TM49 24 346500
TM50 241 14000
TM German French Spanish Italian
Final amount Amount sold for Final amount Amount sold for Final amount Amount sold for Final amount Amount sold for
TM10 34 331500 43 318000 99 153000 118 205500
TM34 231 12000 90 55500 162 46500 223 16000
TM38 135 120000 59 196000 77 178000 127 128000