Site cover image

🐾flag3

RAM Writer Usage Guide in Pokémon Gold/Silver/Crystal (JP)

This is a translation of the original article:

📄Arrow icon of a page linkポケットモンスター 金・銀・クリスタル バイナリエディタ 使い方

It was mostly processed by Notion AI.

This article explains how to use the RAM Writer in Pokémon Gold, Silver, and Crystal. It assumes you have already installed a RAM Writer. Please refer to the following guides for RAM Writer installation. Note that operation is not guaranteed with RAM Writers installed through other methods.

Changing Value

Party Pokémon

Held Items

The held item of the first Pokémon in your party is stored in address D9F1 for Gold/Silver and DCA6 for Crystal. You can change the held item by changing these values. For example, setting the value to 01 will give the Pokémon a Master Ball.

Moves

The moves of the first Pokémon in your party are stored in addresses D9F2-D9F5 for Gold/Silver and DCA7-DCAA for Crystal. You can change the moves by changing these values. Note that PP will not change. For example, setting the values to 01 02 03 04 will give the Pokémon the moves Pound, Karate Chop, Double Slap, and Comet Punch.

Original Trainer ID (OT ID)

The Original Trainer ID of the first Pokémon in your party is stored in addresses D9F6 and D9F7 for Gold/Silver, DCAB and DCAC for Crystal. You can change the OT ID by changing these values. Convert any number between 00000-65535 to hexadecimal to set the desired ID. For example, setting the values to 59 0C will set the OT ID to 22796.

Stat Experience

The stat experience of the first Pokémon in your party is stored in addresses D9FB-DA04 for Gold/Silver and DCB0-DCB9 for Crystal. You can change the stat experience by changing these values. For example, setting all values to FF will maximize the stat experience. After changing the values, place the Pokémon in the PC to recalculate the stats. These 10 addresses store HP, Attack, Defense, Speed, and Special in two pairs.

DVs

The DVs of the first Pokémon in your party are stored in addresses DA05 and DA06 for Gold/Silver, DCBA and DCBB for Crystal. You can change the DVs by changing these values. For example, setting the values to FF FF will maximize the DVs. After changing the values, place the Pokémon in the PC to recalculate the stats. Setting the values to AA AA will make the Pokémon shiny.

Move PP

The first party Pokémon's move PP is stored in addresses DA07-DA0A for Gold/Silver and DCBC-DCBF for Crystal. For example, setting the values to C0 will maximize PP with three PP Ups.

Happiness/Egg Cycles

The first party Pokémon's happiness is stored in address DA0B for Gold/Silver and DCC0 for Crystal. You can change happiness by changing these values. For eggs, this address stores the egg cycle count, and setting it to 01 will make the egg hatch faster.

Pokérus

The first party Pokémon's Pokérus status is stored in address DA0C for Gold/Silver and DCC1 for Crystal. Setting the value to 73 will give the Pokémon Pokérus 3 days until immunity develops.

Party Pokémon Addresses
Gold/Silver1st Pokémon2nd Pokémon3rd Pokémon4th Pokémon5th Pokémon6th Pokémon
Party CountD9E8
Party SpeciesD9E9D9EAD9EBD9ECD9EDD9EE
Party EndD9EF
SpeciesD9F0DA20DA50DA80DAB0DAE0
Held ItemD9F1DA21DA51DA81DAB1DAE1
Move 1D9F2DA22DA52DA82DAB2DAE2
Move 2D9F3DA23DA53DA83DAB3DAE3
Move 3D9F4DA24DA54DA84DAB4DAE4
Move 4D9F5DA25DA55DA85DAB5DAE5
OT ID UpperD9F6DA26DA56DA86DAB6DAE6
OT ID LowerD9F7DA27DA57DA87DAB7DAE7
Exp UpperD9F8DA28DA58DA88DAB8DAE8
Exp MiddleD9F9DA29DA59DA89DAB9DAE9
Exp LowerD9FADA2ADA5ADA8ADABADAEA
HP Exp UpperD9FBDA2BDA5BDA8BDABBDAEB
HP Exp LowerD9FCDA2CDA5CDA8CDABCDAEC
Attack Exp UpperD9FDDA2DDA5DDA8DDABDDAED
Attack Exp LowerD9FEDA2EDA5EDA8EDABEDAEE
Defense Exp UpperD9FFDA2FDA5FDA8FDABFDAEF
Defense Exp LowerDA00DA30DA60DA90DAC0DAF0
Speed Exp UpperDA01DA31DA61DA91DAC1DAF1
Speed Exp LowerDA02DA32DA62DA92DAC2DAF2
Special Exp UpperDA03DA33DA63DA93DAC3DAF3
Special Exp LowerDA04DA34DA64DA94DAC4DAF4
Attack/Defense DVsDA05DA35DA65DA95DAC5DAF5
Speed/Special DVsDA06DA36DA66DA96DAC6DAF6
Move 1 PPDA07DA37DA67DA97DAC7DAF7
Move 2 PPDA08DA38DA68DA98DAC8DAF8
Move 3 PPDA09DA39DA69DA99DAC9DAF9
Move 4 PPDA0ADA3ADA6ADA9ADACADAFA
Happiness/Egg CyclesDA0BDA3BDA6BDA9BDACBDAFB
Pokérus StatusDA0CDA3CDA6CDA9CDACCDAFC
Caught Time/LevelDA0DDA3DDA6DDA9DDACDDAFD
Caught Gender/LocationDA0EDA3EDA6EDA9EDACEDAFE
LevelDA0FDA3FDA6FDA9FDACFDAFF
Status ConditionDA10DA40DA70DAA0DAD0DB00
UnusedDA11DA41DA71DAA1DAD1DB01
Current HP UpperDA12DA42DA72DAA2DAD2DB02
Current HP LowerDA13DA43DA73DAA3DAD3DB03
Max HP UpperDA14DA44DA74DAA4DAD4DB04
Max HP LowerDA15DA45DA75DAA5DAD5DB05
Attack UpperDA16DA46DA76DAA6DAD6DB06
Attack LowerDA17DA47DA77DAA7DAD7DB07
Defense UpperDA18DA48DA78DAA8DAD8DB08
Defense LowerDA19DA49DA79DAA9DAD9DB09
Speed UpperDA1ADA4ADA7ADAAADADADB0A
Speed LowerDA1BDA4BDA7BDAABDADBDB0B
Special Attack UpperDA1CDA4CDA7CDAACDADCDB0C
Special Attack LowerDA1DDA4DDA7DDAADDADDDB0D
Special Defense UpperDA1EDA4EDA7EDAAEDADEDB0E
Special Defense LowerDA1FDA4FDA7FDAAFDADFDB0F
OT Name 1stDB10DB16DB1CDB22DB28DB2E
OT Name 2ndDB11DB17DB1DDB23DB29DB2F
OT Name 3rdDB12DB18DB1EDB24DB2ADB30
OT Name 4thDB13DB19DB1FDB25DB2BDB31
OT Name 5thDB14DB1ADB20DB26DB2CDB32
OT Name EndDB15DB1BDB21DB27DB2DDB33
Nickname 1stDB34DB3ADB40DB46DB4CDB52
Nickname 2ndDB35DB3BDB41DB47DB4DDB53
Nickname 3rdDB36DB3CDB42DB48DB4EDB54
Nickname 4thDB37DB3DDB43DB49DB4FDB55
Nickname 5thDB38DB3EDB44DB4ADB50DB56
Nickname EndDB39DB3FDB45DB4BDB51DB57
Crystal1st Pokémon2nd Pokémon3rd Pokémon4th Pokémon5th Pokémon6th Pokémon
Party CountDC9D
Party SpeciesDC9EDC9FDCA0DCA1DCA2DCA3
Party EndDCA4
SpeciesDCA5DCD5DD05DD35DD65DD95
Held ItemDCA6DCD6DD06DD36DD66DD96
Move 1DCA7DCD7DD07DD37DD67DD97
Move 2DCA8DCD8DD08DD38DD68DD98
Move 3DCA9DCD9DD09DD39DD69DD99
Move 4DCAADCDADD0ADD3ADD6ADD9A
OT ID UpperDCABDCDBDD0BDD3BDD6BDD9B
OT ID LowerDCACDCDCDD0CDD3CDD6CDD9C
Exp UpperDCADDCDDDD0DDD3DDD6DDD9D
Exp MiddleDCAEDCDEDD0EDD3EDD6EDD9E
Exp LowerDCAFDCDFDD0FDD3FDD6FDD9F
HP Exp UpperDCB0DCE0DD10DD40DD70DDA0
HP Exp LowerDCB1DCE1DD11DD41DD71DDA1
Attack Exp UpperDCB2DCE2DD12DD42DD72DDA2
Attack Exp LowerDCB3DCE3DD13DD43DD73DDA3
Defense Exp UpperDCB4DCE4DD14DD44DD74DDA4
Defense Exp LowerDCB5DCE5DD15DD45DD75DDA5
Speed Exp UpperDCB6DCE6DD16DD46DD76DDA6
Speed Exp LowerDCB7DCE7DD17DD47DD77DDA7
Special Exp UpperDCB8DCE8DD18DD48DD78DDA8
Special Exp LowerDCB9DCE9DD19DD49DD79DDA9
Attack/Defense DVsDCBADCEADD1ADD4ADD7ADDAA
Speed/Special DVsDCBBDCEBDD1BDD4BDD7BDDAB
Move 1 PPDCBCDCECDD1CDD4CDD7CDDAC
Move 2 PPDCBDDCEDDD1DDD4DDD7DDDAD
Move 3 PPDCBEDCEEDD1EDD4EDD7EDDAE
Move 4 PPDCBFDCEFDD1FDD4FDD7FDDAF
Happiness/Egg CyclesDCC0DCF0DD20DD50DD80DDB0
Pokérus StatusDCC1DCF1DD21DD51DD81DDB1
Caught Time/LevelDCC2DCF2DD22DD52DD82DDB2
Caught Gender/LocationDCC3DCF3DD23DD53DD83DDB3
LevelDCC4DCF4DD24DD54DD84DDB4
Status ConditionDCC5DCF5DD25DD55DD85DDB5
UnusedDCC6DCF6DD26DD56DD86DDB6
Current HP UpperDCC7DCF7DD27DD57DD87DDB7
Current HP LowerDCC8DCF8DD28DD58DD88DDB8
Max HP UpperDCC9DCF9DD29DD59DD89DDB9
Max HP LowerDCCADCFADD2ADD5ADD8ADDBA
Attack UpperDCCBDCFBDD2BDD5BDD8BDDBB
Attack LowerDCCCDCFCDD2CDD5CDD8CDDBC
Defense UpperDCCDDCFDDD2DDD5DDD8DDDBD
Defense LowerDCCEDCFEDD2EDD5EDD8EDDBE
Speed UpperDCCFDCFFDD2FDD5FDD8FDDBF
Speed LowerDCD0DD00DD30DD60DD90DDC0
Special Attack UpperDCD1DD01DD31DD61DD91DDC1
Special Attack LowerDCD2DD02DD32DD62DD92DDC2
Special Defense UpperDCD3DD03DD33DD63DD93DDC3
Special Defense LowerDCD4DD04DD34DD64DD94DDC4
OT Name 1stDDC5DDCBDDD1DDD7DDDDDDE3
OT Name 2ndDDC6DDCCDDD2DDD8DDDEDDE4
OT Name 3rdDDC7DDCDDDD3DDD9DDDFDDE5
OT Name 4thDDC8DDCEDDD4DDDADDE0DDE6
OT Name 5thDDC9DDCFDDD5DDDBDDE1DDE7
OT Name EndDDCADDD0DDD6DDDCDDE2DDE8
Nickname 1stDDE9DDEFDDF5DDFBDE01DE07
Nickname 2ndDDEADDF0DDF6DDFCDE02DE08
Nickname 3rdDDEBDDF1DDF7DDFDDE03DE09
Nickname 4thDDECDDF2DDF8DDFEDE04DE0A
Nickname 5thDDEDDDF3DDF9DDFFDE05DE0B
Nickname EndDDEEDDF4DDFADE00DE06DE0C

Item Pocket

First Item ID and Quantity

The first item's ID is stored in address D5AB for Gold/Silver and D886 for Crystal. The quantity is stored at D5AC in Gold/Silver and D887 in Crystal. You can change these values to change the ID and quantity of the first item. For example, setting the values to 20 63 will give you 99 Rare Candies.

Item Pocket Addresses
Gold/SilverIDQuantity
Number of ItemsD5AA
1st ItemD5ABD5AC
2nd ItemD5ADD5AE
3rd ItemD5AFD5B0
4th ItemD5B1D5B2
5th ItemD5B3D5B4
6th ItemD5B5D5B6
7th ItemD5B7D5B8
8th ItemD5B9D5BA
9th ItemD5BBD5BC
10th ItemD5BDD5BE
11th ItemD5BFD5C0
12th ItemD5C1D5C2
13th ItemD5C3D5C4
14th ItemD5C5D5C6
15th ItemD5C7D5C8
16th ItemD5C9D5CA
17th ItemD5CBD5CC
18th ItemD5CDD5CE
19th ItemD5CFD5D0
20th ItemD5D1D5D2
Item EndD5D3
CrystalIDQuantity
Number of ItemsD885
1st ItemD886D887
2nd ItemD888D889
3rd ItemD88AD88B
4th ItemD88CD88D
5th ItemD88ED88F
6th ItemD890D891
7th ItemD892D893
8th ItemD894D895
9th ItemD896D897
10th ItemD898D899
11th ItemD89AD89B
12th ItemD89CD89D
13th ItemD89ED89F
14th ItemD8A0D8A1
15th ItemD8A2D8A3
16th ItemD8A4D8A5
17th ItemD8A6D8A7
18th ItemD8A8D8A9
19th ItemD8AAD8AB
20th ItemD8ACD8AD
Item EndD8AE

Ball Pocket

First Ball ID and Quantity

The first ball's ID is stored in address D5F0 for Gold/Silver and D8CB for Crystal. The quantity is stored at D5F1 in Gold/Silver and D8CC in Crystal. You can change these values to change the ID and quantity of the first ball. For example, setting the values to 01 63 will give you 99 Master Balls.

Ball Pocket Addresses
Gold/SilverIDQuantity
Number of BallsD5EF
1st BallD5F0D5F1
2nd BallD5F2D5F3
3rd BallD5F4D5F5
4th BallD5F6D5F7
5th BallD5F8D5F9
6th BallD5FAD5FB
7th BallD5FCD5FD
8th BallD5FED5FF
9th BallD600D601
10th BallD602D603
11th BallD604D605
12th BallD606D607
Ball EndD608
CrystalIDQuantity
Number of BallsD8CA
1st BallD8CBD8CC
2nd BallD8CDD8CE
3rd BallD8CFD8D0
4th BallD8D1D8D2
5th BallD8D3D8D4
6th BallD8D5D8D6
7th BallD8D7D8D8
8th BallD8D9D8DA
9th BallD8DBD8DC
10th BallD8DDD8DE
11th BallD8DFD8E0
12th BallD8E1D8E2
Ball EndD8E3

Player Character

Player Gender (Crystal Only)

The player's gender is stored in address D463. Setting the value to 00 makes the player male, while 01 makes the player female. Note that this change does not affect the character's color palette. To save the gender change, you must also change the value in address A000 in SRAM bank 04 to 00 or 01.

Player ID

The player ID is stored in addresses D1B3 and D1B4 for Gold/Silver, D48C and D48D for Crystal. You can change these values to change the player ID. Convert any number between 00000 and 65535 to hexadecimal to set the desired ID. For example, setting the values to 59 0C will set the player ID to 22796.

Player Appearance

The player's appearance is stored in address D1F2 for Gold/Silver and D4CB for Crystal. You can change the appearance by setting the values in multiples of 0C, though the appearance depends on the current map. Setting the value to 00 will restore the default player appearance.

Player Color Palette

The player's color palette is stored in address D1F6 for Gold/Silver and D4CF for Crystal. You can change the color palette by setting the values between 00-07. Male characters use palette 00, while female characters use palette 01.

ValueColor Palette
00Red
01Blue
02Green
03Brown
04Pink
05Silver
06Wood
07Rock

Other Features

Money

Money is stored in addresses D566-D568 for Gold/Silver and D841-D843 for Crystal. For example, setting these values to 0F 42 3F will give you 999,999 yen.

Game Corner Coins

Game Corner coins are stored in addresses D56D and D56E for Gold/Silver, D848 and D849 for Crystal. For example, setting these values to 27 0F will give you 9,999 coins.

Badges

Johto region badges are stored in address D56F for Gold/Silver and D84A for Crystal. Setting this value to FF will give you all Johto badges, allowing you to use all field moves. Kanto region badges are stored in address D570 for Gold/Silver and D84B for Crystal.

Select Button

In Gold/Silver, setting addresses D673 and D674 to 80 E1 will register TM33 to the Select button. In Crystal, setting addresses D94E and D94F to 80 D0 will register TM17. Make sure the corresponding TM is in your Items pocket for this to work properly.

Fly Destinations

Fly destinations are stored in addresses D9B4-D9B7 for Gold/Silver and DC6B-DC6E for Crystal. Setting all these values to FF will unlock all Fly destinations.

Celebi Event (Crystal Only)

You can trigger the Celebi event by setting the values in addresses A000 and A083 in SRAM bank 05 to 0B. After changing these values, restart the game and go to the Goldenrod City Pokémon Center. When you try to leave, the GS Ball event will trigger.

Running Existing Programs

Time Change

You can set the time by changing the ROM bank to 08, moving the cursor to address 4027, and pressing SELECT+A. After "じかんをさいせっていしました!" appears, press START to end the program.

Name Changes

Player Name

You can change the player's name by setting the ROM bank to 01 and moving the cursor to address 6237 (Gold/Silver) or 6208 (Crystal), and then pressing SELECT+A. After naming, press START to exit the RAM Writer once.

The player's name can also be directly changed by changing values in addresses D1B5-D1BA for Gold/Silver and D48E-D493 for Crystal.

Rival Name

You can change the rival's name by setting the ROM bank to 03 and moving the cursor to address 43DF (Gold/Silver) or 4288 (Crystal), and then pressing SELECT+A. After naming, press START to exit the RAM Writer once.

The rival's name can also be directly changed by changing values in addresses D1C1-D1C6 for Gold/Silver and D49A-D49F for Crystal.

Box Names

You can reset box names to default by setting the ROM bank to 01 and moving the cursor to address 5D16 (Gold/Silver) or 5C95 (Crystal), and then pressing SELECT+A.

Box names can also be directly changed by changing values in addresses D8B2-D902 for Gold/Silver and DB68-DBB8 for Crystal.

Wild Pokémon

Disable Wild Encounters

You can disable wild encounters by setting the ROM bank to 25, moving the cursor to address 786A (Gold/Silver) or 79D2 (Crystal), then pressing SELECT+A. To re-enable encounters, use the following re-enable wild encounters program.

Re-enable Wild Encounters

You can re-enable wild encounters by setting the ROM bank to 25, moving the cursor to address 7870 (Gold/Silver) or 79D8 (Crystal), then pressing SELECT+A. This has no effect if wild encounters are not currently disabled.

Running Custom Programs

You can run custom programs with SELECT+A after creating them in the RAM Writer. Good addresses to use for programs are CF21-CF4A and DCC6-DE35 in Gold/Silver, or D002-D02B and D2B1-D420 in Crystal.

Party Pokémon

Original Trainer Name for First Party Pokémon

You can set the original trainer name for the first party Pokémon by creating and executing the following program:

Gold/Silver

06 01 11 10 DB 3E 04 21 3D 5A CF C9

Crystal

06 01 11 C5 DD 3E 04 21 51 56 CF C9

After naming, press START once to exit the binary editor. You can also directly change the original trainer name by changing values in addresses DB10-DB15 for Gold/Silver or DDC5-DDCA for Crystal.

Nickname for First Party Pokémon

You can set the nickname for the first party Pokémon by creating and executing the following program:

Gold/Silver

06 00 11 34 DB 3E 04 21 3D 5A CF C9

Crystal

06 00 11 E9 DD 3E 04 21 51 56 CF C9

After naming, press START once to exit the binary editor. You can also directly change the nickname by changing values in addresses DB34-DB39 for Gold/Silver or DDE9-DDEE for Crystal.

Pokémon Respawning

Lugia

You can make Lugia respawn by executing the following program:

Gold/Silver

21 0D D8 CB 86 C9

Crystal

21 C8 DA CB 86 C9

After execution, go to the Whirl Islands with the Silver Wing to battle Lugia again. This has no effect if you haven't battled Lugia before.

Ho-Oh

You can make Ho-Oh respawn by executing the following program:

Gold/Silver

21 0C D8 CB BE C9

Crystal

21 C7 DA CB BE C9

After execution, go to Tin Tower with the Rainbow Wing to battle Ho-Oh again. This has no effect if you haven't battled Ho-Oh before.

Pokémon Obtaining

You can obtain any Pokémon at any level by executing the following program and closing the menu. Make sure you have space in your party before execution. The values FB and 1E in the program correspond to the Pokémon's Pokédex number and level respectively, and can be changed to specify the desired Pokémon and level:

Gold/Silver

01 07 00 09 C3 F5 26 47 2D FB 1E 00 00 49 90

Crystal

01 07 00 09 C3 E2 25 47 2D FB 1E 00 00 49 90

Egg Obtaining

You can obtain an egg of any Pokémon by executing the following program and closing the menu. Make sure you have space in your party before execution. The value FB in the program corresponds to the Pokémon's Pokédex number and can be changed to specify the desired Pokémon:

Gold/Silver

01 07 00 09 C3 F5 26 2E FB 05 90

Crystal

01 07 00 09 C3 E2 25 2E FB 05 90

Trade Evolution

You can evolve Pokémon that normally require trading by executing the following program. This will bring up a Pokémon selection screen. Select a Pokémon that meets trade evolution conditions to evolve it. After evolution, press START to exit the binary editor:

Gold/Silver

AF C6 02 EA 3C D0 C8 3C 21 FC 71 CF AF 18 F4

Crystal

AF C6 02 EA DC C2 C8 3C 21 46 71 CF AF 18 F4

TMs

You can get 99 of all TMs by executing the following program:

Gold/Silver

3E 63 01 32 00 21 71 D5 C3 08 31

Crystal

3E 63 01 32 00 21 4C D8 C3 0D 30

You can also directly change TM quantities by changing values in addresses D571-D5A2 for Gold/Silver or D84C-D87D for Crystal.

Pokédex

You can complete your Pokédex by executing the following program. This will also register all Unown in alphabetical order and set the first seen Unown as alphabet A:

Gold/Silver

3E FF 01 3F 00 21 78 DB CD 08 31 3E 07 22 AF 0E
1A 3C 22 0D 20 FB 3E 01 23 22 2E 97 36 07 C9

Crystal

3E FF 01 3F 00 21 2D DE CD 0D 30 3E 07 22 AF 0E
1A 3C 22 0D 20 FB 3E 01 23 22 2E 4C 36 07 C9

You can also directly change Pokédex data by changing values at these addresses:

Gold/SilverCrystal
Caught PokémonDB78-DB97DE2D-DE4C
Seen PokémonDB98-DBB7DE4D-DE6C
Unown PokédexDBB8-DBD1DE6D-DE86
First seen UnownDBD3DE88

Decoration Items

You can obtain all decoration items by executing the following program:

Gold/Silver

01 34 01 C5 3E 09 21 D6 73 CF C1 0D 20 F5 C9

Crystal

01 34 01 C5 3E 09 21 FF 71 CF C1 0D 20 F5 C9

Persistent Effects

You can maintain certain effects by executing arbitrary code every frame. First, you need to perform the following setup.

Setup

The game executes address FF80 every frame, so we can change this with arbitrary code execution for setup.

First, change the contents of addresses D41B-D436 (Gold/Silver) or D6E9-D708 (Crystal) as follows:

Gold/Silver

D41B~D436:
                                 CD 22 D4 3E C3
18 83 AF DC 64 D8 AF DC CB D7 AF DC 7A D6 AF DC
89 D6 AF DC E3 D7 C9

Crystal

D6E9~D708:
                           F0 70 D6 F9 CC F4 D6
3E C4 18 83 AF DC 1F DB AF DC 86 DA AF DC 01 DA
AF DC 10 DA AF DC 9E DA C9

Next, change the contents of addresses D813-D826 (Gold/Silver) or DACE-DAE1 (Crystal) as shown below, then move the cursor to address D813 (Gold/Silver) or DACE (Crystal) and press SELECT+A to execute arbitrary code:

Gold/Silver

D813~D826:
         3E 18 21 80 FF 22 36 76 21 1B D4 11 F8
FF 01 07 00 C3 D6 30

Crystal

DACE~DAE1:
                                          3E 18
21 80 FF 22 36 72 21 E9 D6 11 F4 FF 01 0B 00 C3
F2 2F

If the arbitrary code execution succeeds without freezing and the address FF80's content changes to 18, the setup is successful. Note that persistent effects are lost when resetting the game, so you'll need to rerun this program after restarting if you want to use persistent effects again.

Wall Phasing

To phase through walls by ignoring collision detection, change the contents of addresses D864-D871 (Gold/Silver) or DB1F-DB2C (Crystal) as follows:

Gold/Silver

D864~D871:
F0 A6 CB 4F C8 AF 21 97 CE 22 22 22 77 C9

Crystal

DB1F~DB2C:
F0 A4 CB 4F C8 AF 21 3E D1 22 22 22 77 C9

Then execute the following program to enable wall phasing when pressing the B button:

Gold/Silver

21 22 D4 36 37 C9

Crystal

21 F4 D6 36 37 C9
Warning

The game will freeze if you cross map boundaries into undefined maps. Buildings use collision detection for exits, so be sure to release the B key before approaching exits.

Catching Trainer's Pokémon

To catch the trainer's Pokémon, change the contents of addresses D7CB-D7E2 (Gold/Silver) or DA86-DA9D (Crystal) as follows:

金・銀

D7CB~D7E2:
                                 21 08 D1 3E 02
96 C0 47 F0 A6 E6 04 C8 4F 35 11 07 CC 21 E3 D0
C3 D6 30

クリスタル

DA86~DA9D:
                  21 5E D2 3E 02 96 C0 47 F0 A4
E6 04 C8 4F 35 11 29 C7 21 39 D2 C3 F2 2F

Then execute the following program⁠1⁠. During trainer battles, pressing SELECT will turn the battle into a wild Pokémon encounter, allowing you to catch the trainer's current Pokémon:

Gold/Silver

21 26 D4 36 37 C9

Crystal

21 F8 D6 36 37 C9

The caught Pokémon will have a PP of 0, but will have the same move set as when the trainer used it. The battle ends when you catch or defeat the current Pokémon. While you won't receive any prize money, the trainer is considered defeated.

Warning

Be careful not to hold the SELECT button when starting a trainer battle.

Making Wild Pokémon Shiny

To make all wild Pokémon appear as shiny, change the contents of addresses D67A-D688 (Gold/Silver) or DA01-DA10 (Crystal) as follows:

Gold/Silver

D67A~D688:
21 08 D1 CB 46 C8 21 E7 D0 36 FA 23 36 AA C9

Crystal

DA01~DA10:
21 5E D2 CB 46 C8 21 3D D2 36 FA 23 36 AA C9

Then execute the following program to make wild Pokémon appear as shiny:

Gold/Silver

21 2A D4 36 37 C9

Crystal

21 FC D6 36 37 C9

The values FA and AA values in the program correspond to the Individual Values of appearing Pokémon, and can be changed to make Pokémon appear with specific IVs.

Encountering Specific Pokémon at Specific Levels

To make wild Pokémon appear as specific species at specific levels, change the contents of addresses D689-D698 (Gold/Silver) or DA10-DA1F (Crystal) as follows:

Gold/Silver

D689~D698:
21 08 D1 CB 4E C0 21 DF D0 36 FB 2E EE 36 1E C9

Crystal

DA10~DA1F:
21 5E D2 CB 4E C0 21 35 D2 36 FB 2E 44 36 1E C9

Then execute the following program to enable specific wild Pokémon encounters:

Gold/Silver

21 2E D4 36 37 C9

Crystal

21 00 D7 36 37 C9

The values FB and 1E values in the program correspond to the Pokédex number and level of appearing Pokémon respectively, and can be changed to specify which Pokémon should appear and at what level.

RAM Writer During Battle

The RAM Writer is normally started by using a TM. However, since TMs cannot be used during battle, you cannot normally start the RAM Writer during battle. You can change this by writing a program that starts the RAM Writer you select "やめる" after selecting a TM in battle. Change the contents of addresses D7E3-D7F4 (Gold/Silver) or DA9E-DAAF (Crystal) as follows:

Gold/Silver

D7E3~D7F4:
         FA DF CE FE E1 C0 FA F6 CE FE D4 C0 3E
0D EA 14 CF C9

Crystal

DA9E~DAAF:
                                          FA 68
CF FE D0 C0 FA 7F CF FE D4 C0 3E 0D EA 9D CF C9

Then execute the following program to enable using the binary editor during battle:

Gold/Silver

21 32 D4 36 37 C9

Crystal

21 04 D7 36 37 C9

Persistent Effect Control

To stop the persistent effects mentioned above, execute the following program:

Gold/SilverCrystal
Stop All Effects21 80 FF 36 3E 23 36 C3 C921 80 FF 36 3E 23 36 C4 C9
Wall Phasing21 22 D4 36 AF C921 F4 D6 36 AF C9
Catch Trainer's Pokémon21 26 D4 36 AF C921 F8 D6 36 AF C9
Shiny Wild Pokémon21 2A D4 36 AF C921 FC D6 36 AF C9
Specific Wild Encounters21 2E D4 36 AF C921 00 D7 36 AF C9
Battle Binary Editor21 32 D4 36 AF C921 04 D7 36 AF C9

To use persistent effects again, execute their respective activation programs.

References