Site cover image

🐾 flag3

RAM Writer in Pokémon Gold/Silver (JP) SRAM Glitch

This is a translation of the original article:

📄Arrow icon of a page linkポケットモンスター 金・銀 バイナリエディタ レポートバグあり

The RAM Writer is the ultimate arbitrary code execution tool for first-generation Pokémon games. The RAM Writer introduced here is a version ported for the second-generation games. With this writer, you can read and write any value to any memory address. You can even write and execute entire programs, making it a powerful tool for installing and playing games.

RAM Writer Installation Procedure

Environment

This guide only works with the Japanese versions of Pokémon Gold, and Silver. It does not work with Pokémon Crystal or non-Japanese versions. It also does not work with Pokémon Stadium 2's GB Tower or some emulators. This guide assumes starting a new game and uses the SRAM Glitch, which involves hard resetting at specific timings when saving. This is an advanced guide as it requires doing a hard reset with a 1-1.5 frame twice. The guide that do not use the SRAM Glitch, and RAM Writer installation in Pokémon Crystal, please refer to the following articles.

📄Arrow icon of a page linkRAM Writer in Pokémon Gold/Silver (JP)

📄Arrow icon of a page linkRAM Writer in Pokémon Crystal (JP)

Step 1: Progress to the National Park

  1. Set the player's name to "えてびま". If you are having trouble with the Japanese input method, please refer to the following page.
  2. You will use the starter later, but any starter works.
  3. Catch one Pokémon and nickname it "クグ".
  4. Defeat Falkner, obtain TM31, and get a Togepi Egg.

It's good to buy Mail from the Violet City Poké Mart.

Step 2: Duplicate Pokémon in your party to the Box

  1. Save the game.
  2. Deposit Pokémon from your party into the Box.
  3. Select "ボックスをかえる (Change Box)".
  4. When saving to switch to another box, do a hard reset while "ポケモンレポートに かきこんでいます" is displaying.

By following the above steps, the Pokémon you deposited in the box will be duplicated. Please prepare two or more "クグ" caught in Step 1. To ensure a larger timing for the hard reset, it is recommended to have 18-25 Pokémon deposited in the box.

Step 3: Obtain a Level 0 Glitched Pokémon

  1. Put your starter Pokémon in your party and save.
  2. Deposit your starter Pokémon. Select "ボックスせいり/メールはずしてね", press "はい (Yes)" to "、レポートにうえからかいてもいいですか? (Overwrite report?)", and do a hard reset immediately after "でんげんをきらないでください (Do not turn off the power)" is fully displayed.
  3. Confirm that the deposited starter Pokémon is a Level 0 female with a blank nickname. If not, retry 2. If the Pokémon is not deposited, the reset was too early. If the Pokémon is deposited correctly, the reset was too late.
    • The timing for a successful hard reset to obtain a Level 0 glitched Pokémon is 1-1.5 frames, 149 frames after pressing "Yes".
  4. If the Level 0 female Pokémon with a blank nickname shows "000" in its status screen, it's a success. If not, retry 2.

Note that in this step, do not let the number of Pokémon in the box reach 30. If it's about to get 30, release some Pokémon to reduce the number.

Step 4: Make the 30th Pokémon in the box a glitched Pokémon

Withdraw the Level 0 starter Pokémon and teach it Mud-Slap using TM31. Duplicate Pokémon in your party using the method in Step 2 to increase the number of Pokémon so that the 30th Pokémon in the box becomes the glitched Pokémon that knows Mud-Slap.
After confirming that the 30th Pokémon in the box is the glitched Pokémon that knows Mud-Slap, release Pokémon in the box to reduce the number of Pokémon in the box to 28 or fewer.

Step 5: Hatch the Glitched Pokémon from an Egg

  1. Put an Egg in your party and save.
  2. Deposit the Egg. Select "ボックスせいり/メールはずしてね", press "はい (Yes)" to "レポートにうえからかいてもいいですか? (Overwrite report?)", and do a hard reset immediately after "でんげんをきらないでください (Do not turn off the power)" is fully displayed.
  3. Confirm that the deposited Egg has a blank name. If not, retry 2. If the Egg is not deposited, the reset was too early. If the Egg is deposited correctly, the reset was too late.
    • The timing for a successful hard reset to obtain an Egg with a blank name is 1-1.5 frames, 149 frames after pressing "Yes".
  4. If the Egg's status screen shows "もうすぐうまれそう (It's about to hatch)", it's a success. If not, retry 2.
  5. Hatch the Egg. A glitched Pokémon will hatch if a glitched Pokémon does not hatch. Retry 2.

Note that in this step, do not let the number of Pokémon in the box reach 30. If it's about to get 30, release some Pokémon to reduce the number.

Image in a image block

Step 6: Obtain two bicycles

  1. Arrange your party Pokémon in the following order:
    🐭

    Any non-EGG

    Any non-EGG

    Any non-EGG

    Glitched Pokémon obtained in Step 5

    Pokémon nicknamed クグ

    Pokémon nicknamed クグ

  2. From the PC, select "ボックスせいり/メールはずしてね" and add a non-egg Pokémon to the front of your party. Make sure to leave Pokémon with the original trainer name "えてびま" in the box.
  3. Swap the 1st and 6th Pokémon in your party.
  4. Swap the 1st and 7th Pokémon in your party.
  5. Swap the 1st and 7th Pokémon in your party again.
  6. Obtain a じてんしゃ (Bicycle) by taking an item from the 7th Pokémon in your party.
  7. Swap the 1st and 7th Pokémon in your party.
  8. Obtain another じてんしゃ (Bicycle) by taking an item from the 7th Pokémon in your party.

Step 7: Prepare the arbitrary code execution environment

  1. From the PC, select "ポケモンをあずける (Deposit Pokémon)" and deposit the top 2 Pokémon from your party. Then, take out the Pokémon in the box whose original trainer name is "えてびま".
  2. Swap the 4th and 6th Pokémon in your party to place the Pokémon with the original trainer name "えてびま" in the 4th position.
  3. Open the Ball Pocket and make sure you only have Poké Balls, and the quantity is 1, 2, 4, or 5.
  4. Open the Key Items Pocket, press SELECT on the first Bicycle, then press SELECT on the second Bicycle.
  5. Poké Balls with a quantity of 255 will appear in the Ball Pocket, so discard them until 17 remain.
  6. From the PC, select "どうぐをあずける (Deposit Item)" and deposit the 17 Poké Balls and Bicycles in order.
  7. Move the 17 Poké Balls in the 14th slot of the Ball Pocket to the 65th slot of the Ball Pocket.
    • The 64th slot of the Ball Pocket will have a non-zero number, so use this as a guide to move to the 65th slot.
    • After moving, confirm that the 65th slot has 17 Poké Balls.
  8. If the Pokégear disappears from the menu, the arbitrary code execution environment setup is complete.

Step 8: Simplified RAM Writer Setup

Change the Box names as follows:

📦
Box 1: ダだギョにヂだゾ

Box 2: ダだゲムよダだガ

Box 3: だじダムキづごぱ

Box 4: ヅまてへぎまぴよ

Box 5: へぎまボぷへぎま

Box 6: へォひひ はァリ

Box 7: どダれはリダだや

Box 8: ざダれ?よダリ

Box 9: だかがよぜ?だを

After changing the Box names, give a Pokémon the following Mail:

✉️
へロどて6リなひだへぜまちぼダメ
に0ぞ?ムぞボデのよなゥゅリだっ

If you are having trouble with the Japanese input method, please refer to the following page.

After creating the Mail, read its contents. Then, you can start the simplified RAM Writer by opening the Pokédex.

Simplified RAM Writer

From now on, you can start the simplified RAM Writer each time you read the above Mail and then open the Pokédex.

Image in a image block

D6E6 on the left is the memory address being written to, and 00 on the right is its content. Note that the display of A, B, and C is abnormal in this simplified RAM Writer. A is g, B is a horizontal line, and C is a phone icon.

🎮
Simplified RAM Writer Controls

B: Address -01

A: Address +01

↑: Value -01

↓: Value +01

←: Value -10

→: Value +10

START: Exit

SELECT: Execute code from D6E6 (be careful not to press this before entering a program)

Step 9: RAM Writer Setup

Use the simplified RAM Writer to input the RAM Writer program. Once input is complete, you can start the RAM Writer by pressing the Select button. It is recommended to press the Start button to exit the simplified RAM Writer and save before starting the RAM Writer.

Address Value
D6E6 CD
D6E7 A8
D6E8 34
D6E9 CD
D6EA AE
D6EB 33
D6EC CD
D6ED 87
D6EE 0D
D6EF CD
D6F0 95
D6F1 0D
D6F2 11
D6F3 F2
D6F4 40
D6F5 21
D6F6 00
D6F7 96
D6F8 01
D6F9 19
D6FA 3E
D6FB CD
D6FC 5B
D6FD 0E
D6FE F0
D6FF 9F
D700 F5
D701 21
D702 00
D703 D0
D704 CD
D705 42
D706 D7
D707 E5
D708 11
D709 F8
D70A FF
D70B 19
D70C E5
D70D D1
D70E 21
D70F A9
D710 C3
D711 F0
D712 9F
D713 CD
D714 9D
D715 30
D716 CD
D717 8B
D718 D7
D719 01
D71A 0C
D71B 00
D71C 36
D71D 7C
D71E 23
D71F 7A
D720 CD
D721 8B
D722 D7
D723 7B
D724 CD
D725 8B
D726 D7
D727 36
D728 7F
D729 23
D72A 1A
D72B CD
D72C 8B
D72D D7
D72E 13
D72F 36
D730 7C
D731 09
D732 7C
D733 FE
D734 C6
D735 20
D736 E5
D737 CD
D738 AD
D739 30
D73A 3E
D73B ED
D73C EA
D73D 4B
D73E C4
D73F E1
D740 18
D741 C2
D742 CD
D743 F4
D744 36
D745 F0
D746 AB
D747 5F
D748 01
D749 01
D74A 00
D74B 07
D74C 38
D74D 18
D74E 0B
D74F 0B
D750 07
D751 38
D752 13
D753 0E
D754 F0
D755 07
D756 38
D757 0E
D758 01
D759 10
D75A 00
D75B 07
D75C 38
D75D 08
D75E 48
D75F 07
D760 30
D761 04
D762 E1
D763 F1
D764 D7
D765 C9
D766 7B
D767 0F
D768 30
D769 10
D76A 0F
D76B 0F
D76C 30
D76D 01
D76E E9
D76F F0
D770 9F
D771 CD
D772 9D
D773 30
D774 79
D775 86
D776 77
D777 C3
D778 AD
D779 30
D77A 0F
D77B 38
D77C 05
D77D 0F
D77E 38
D77F 06
D780 09
D781 C9
D782 79
D783 84
D784 67
D785 C9
D786 F0
D787 9F
D788 81
D789 D7
D78A C9
D78B F5
D78C CB
D78D 37
D78E CD
D78F 92
D790 D7
D791 F1
D792 E6
D793 0F
D794 C6
D795 F6
D796 F6
D797 60
D798 22
D799 C9

RAM Writer

From now on, you can start the RAM Writer each time you start the simplified RAM Writer and press the Select button.

Image in a image block

The 10 on the top of the screen is the current ROM bank and SRAM bank.

🎮
RAM Writer Controls

↑: Address -01

↓: Address +01

←: Address -10

→: Address +10

B+↑: Address -100

B+↓: Address +100

B+←: Address -1000

B+→: Address +1000

A+↑: Value -01

A+↓: Value +01

A+←: Value -10

A+→: Value +10

START: Exit

SELECT+↑: Bank -01

SELECT+↓: Bank +01

SELECT+←: Bank -10

SELECT+→: Bank +10

SELECT+A: Execute code from the current address (use with caution)

Use the RAM Writer to change the contents of addresses D418-D41A and DD90-DD9B as follows:

Address Value
D418 C3
D419 E6
D41A D6
DD90 3E
DD91 E1
DD92 EA
DD93 FC
DD94 CF
DD95 3E
DD96 03
DD97 21
DD98 31
DD99 56
DD9A CF
DD9B C9

After changing, put the cursor on address DD90 and press SELECT+A to obtain TM33 in the key items pocket. Each time you use this TM33, you can directly start the RAM Writer.

Image in a image block

Step 10: Restore Normal State

Various side effects occur from the RAM Writer setup.

  • Player's name
  • Ball pocket
  • PC Items
  • Pokégear
  • Pokédex
  • Box names
  • Party Pokémon
  • Box deposited Pokémon
Player's Name

Set the ROM bank to 01, move the cursor to address 6237, and press SELECT+A to set the player's name. After naming, press the START button once to exit the RAM Writer.

Ball Pocket

Set the contents of addresses D5EF to D5F4 to 02 A0 01 05 02 FF to normalize the Ball pocket.

PC Items

Set the content of address D60A to FF to restore the PC Items section.

Pokégear

Move the content of address D66D to address D66F and set the content of address D670 to 00 to restore it.

Pokédex

Set the content of address D671 to 00 to normalize the Pokédex.

Box Names

After setting up the RAM Writer with TM33, you can change Box names as you like.

Set the ROM bank to 01, move the cursor to address 5D16, and press SELECT+A to reset Box names to their defaults.

Party Pokémon

Set your first Pokémon as the party leader, set the content of address D9E8 to 01, and set the content of address D9EA to FF to make your party consist of only your first Pokémon.

Box deposited Pokémon

You can empty the contents of the boxes by setting the SRAM bank to 01 and changing the contents of addresses AD10 and AD11 to 00 FF.

OT Name

Use the RAM Writer to change the contents of addresses DDA0-DDAB as follows:

Address Value
DDA0 01
DDA1 06
DDA2 00
DDA3 11
DDA4 10
DDA5 DB
DDA6 21
DDA7 B5
DDA8 D1
DDA9 C3
DDAA D6
DDAB 30

After changing, move the cursor to address DDA0 and press SELECT+A to change the OT name of your first party Pokémon to the protagonist's name.

Usage Guide

Once you have installed a RAM Writer, see the following article to learn how to use it.

📄Arrow icon of a page linkRAM Writer Usage Guide in Pokémon Gold/Silver/Crystal (JP)

Precautions

Do not edit addresses D418-D41A, and D6E6-D799 with the RAM Writer.

Reference