User:TimoVM/RAM Writer (JP)

From Glitch City Wiki
Jump to navigation Jump to search

Building the full RAM writer

We will be installing the full RAM writer using a series of mail codes. These mail codes will be assembled using Scotteh's mail code tool. Copy paste the entire code in the text box on the mail code tool's page, then press "Run".

Codes to be used with Scotteh's mail code tool
Gold & Silver Crystal
3E 03 CD 9D 30 06 00 21 D4 D5 34 3E E1 4E 09 22
AF 3D 22 4C 2E F2 32 32 3E D0 32 3E 01 32 21 E8 
D9 35 11 DC AF 21 FA DC CD D6 30 0E 27 11 0B D4 
D5 C3 D6 30 11 B2 4E 21 00 96 01 06 3E CD 76 0E 
26 DA CD 21 DF E5 11 F8 FF 19 54 5D 01 0C 00 F0 
FE 21 A9 C3 CD 9D 30 CD 60 CC 3E 7C 22 7A CD 60 
CC 7B CD 60 CC 3E E3 22 1A CD 60 CC 36 7C 09 13 
7D FE 13 20 E5 CD AD 30 21 50 C4 36 ED E1 18 C2 
F5 CB 37 CD 67 CC F1 E6 0F C6 F6 F6 60 22 C9 CD 
F4 36 F0 AB 11 00 00 07 30 01 13 07 30 01 1B 07 
30 03 11 F0 FF 07 30 02 1E 10 07 C9 FA DF CE FE 
E1 C0 FA F6 CE FE D4 C0 3E 0D EA 14 CF C9 CD 6F 
CC 38 41 07 30 0B 07 07 30 01 E9 F0 FE 83 E0 FE 
C9 07 30 03 53 1E 00 19 07 30 2A E5 F0 FE CD 9D 
30 46 CD 6F CC 07 07 30 01 43 07 38 0E 78 83 47 
21 50 C4 36 EC 23 CD 60 CC 18 E7 E1 70 E5 3E 05 
21 8F 4D CF E1 C9 C3 01 DF 3E 01 E0 D6 0E 78 11 
14 CC 21 DC AF 37 30 F1 D5 8F CD 9D 30 CD D6 30 
0E 5A 11 0F DF CD D6 30 0E 03 11 89 FF C3 D6 30 
3E 03 CD 9D 2F 06 00 21 AF D8 34 3E D0 4E 09 22 
AF 3D 22 0E D7 11 DC AF 21 D8 D2 CD F2 2F 0E 32 
11 17 DA D5 C3 F2 2F 11 C0 4D 26 96 01 06 3E CD 
87 0F 21 00 DA CD 21 C0 E5 11 F8 FF 19 54 5D 01 
0C 00 F0 FE 21 A9 C4 CD 9D 2F CD 60 CD 3E 7C 22 
7A CD 60 CD 7B CD 60 CD 3E E3 22 1A CD 60 CD 36 
7C 09 13 7D FE 13 20 E5 CD AD 2F 21 50 C5 36 ED 
E1 18 C2 F5 CB 37 CD 67 CD F1 E6 0F C6 F6 F6 60 
22 C9 CD 1B 35 F0 A9 11 00 00 07 30 01 13 07 30 
01 1B 07 30 03 11 F0 FF 07 30 02 1E 10 07 C9 FA 
68 CF FE D0 C0 FA 7F CF FE D4 C0 3E 0D EA 9D CF 
C9 CD 6F CD 38 41 07 30 0B 07 07 30 01 E9 F0 FE 
83 E0 FE C9 07 30 03 53 1E 00 19 07 30 2A E5 F0 
FE CD 9D 2F 46 CD 6F CD 07 07 30 01 43 07 38 0E 
78 83 47 21 50 C5 36 EC 23 CD 60 CD 18 E7 E1 70 
E5 3E 05 21 F5 4D CF E1 C9 20 8B C3 00 C0 3E 01 
E0 D4 0E 78 11 14 CD 21 DC AF D5 3E 03 CD 9D 2F 
CD F2 2F 0E 5A 11 0F C0 CD F2 2F 0E 05 11 F9 FF 
CD F2 2F 3E 70 E0 88 3E 18 E0 87 AF 6F C9 18 CE

After you press run, the tool will generate the mail codes that you need to enter in the mail writer.

After entering every code, a new number will appear to the right of the bottom mail row. This is a checksum and is used to verify that you've correctly entered every mail. If a checksum doesn't match the one given by the tool, that means that a code was incorrectly entered, meaning you will need to redo your mail by pressing DOWN enough times (16 times if you’ve entered a full mail code) to return to the starting byte of the last mail, then entering that same mail again.

After you're finished entering all mail codes, you can press B during the user input phase in order to start up the full RAM writer.

Using the full RAM writer

After you're finished and have verified that all checksums were valid, press B during the user input phase in order to start up the full RAM writer.

Running the RAM writer for the first time will activate the following single use effects:

  • Save the RAM writer to the contents of box 14.
  • Add TM33/TM17 to the key item pocket, along with restoring the cancel button.
  • Install setup to make sure that using TM33/TM17 from the item pack will start the RAM writer.
  • Automatically start the RAM writer.

For Gold & Silver, it will have the following additional single use effects:

  • Remove the last pokémon from the party.
  • Restore the CANCEL button of the key item pocket.
  • Reorganize the ball pocket to only contain TM17.

Starting the RAM writer, either automatically or through using wrong pocket TM33, will activate the following effects:

  • Copy the necessary data to memory to activate the RAM writer.
  • Deploy setup that will enable the use of TM33/TM17 during battle.
  • Start the RAM writer.

After the full RAM writer has successfully started, press START to quit the RAM writer and make sure to save your game.

After exiting the RAM writer, you can restart the RAM writer by using TM33 from the item pack. In battle, you can activate the RAM writer by using TM33 and selecting "QUIT". Please note that the setup to enable the use of TM33 during battle does not persist between resets, you can reenable this function by using the RAM writer outside of battle at least once.

As you can see in the screenshots below, the RAM writer will draw various values on the screen. The leftmost 4 columns describe the addresses that are currently in view. The rightmost two columns describe the values at each of these addresses. All values on screen are represented in hexadecimal format.

For example: DA01>05 means that the address $DA01 is currently holding the value of $05.

For a list of useful addresses and how to change them to achieve a desired effect, by visiting [Google Sheets document] and making a local copy, you can edit the values and determine what values you need to write at specific addresses to get that effect.

Let's go over the controls of the full RAM writer. By default, the RAM writer will open in Read mode.

Full Writer Controls

The RAM writer uses two modes of operation. In Read mode you are able to navigate memory and view the values at specific addresses. in Write mode you'll lock in a single address and manipulate the value at that address.

RAM writer in Read mode RAM writer in Write mode.

Read mode controls

up: address -1
down: address +1
left: address -10
right: address +10
    
B + up: address -1
B + down: address +1
B + left: address -10
B + right: address +10
    
start: exit program    
A: toggle write mode

select + up: sram bank -1
select + down: sram bank +1
select + left: sram bank -10
select + right: sram bank +10
select + A: start executing code from current address onwards (use with caution!)

Write mode controls

up: value -1
down: value +1
left: value -10
right: value +10
B: set current value to 0
A: exit write mode and load final value into the address