User:TimoVM/RAM Writer setups

From Glitch City Wiki
Revision as of 23:53, 13 April 2023 by glitchcitywiki>TimoVM (Created page with "This page serves as a repository for various RAM writer setups intended for gen 1 or gen 2. the RAM writers used are inspired by various pre-existing RAM writers, especially ZZAZZGlitch's memory writer. Since the RAM writers described here are quite large, you will always be required to start with building a smaller, more limited RAM writer. These will then be used to build the larger RAM writer. At the moment of writing, these setups are only usable for EN versions....")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page serves as a repository for various RAM writer setups intended for gen 1 or gen 2. the RAM writers used are inspired by various pre-existing RAM writers, especially ZZAZZGlitch's memory writer.

Since the RAM writers described here are quite large, you will always be required to start with building a smaller, more limited RAM writer. These will then be used to build the larger RAM writer.

At the moment of writing, these setups are only usable for EN versions.

Red/Blue

Gold/Silver

General installation overview:

  1. Use a box name code to set every TM quantity to 255.
  2. Write out a mail writer program by changing TM quantities. Use a box name code to use the mail writer.
  3. Enter a series of mail codes in order to install the full RAM writer.
  4. Use the full RAM writer to finalize the setup.

Requirements

In order to install the RAM writer, you need to have an ACE setup that redirects execution to the 1st or 2nd character of box name 1. Available options are either:

  • Wrong Pocket TM17 ACE using a Quagsire holding TM01 and with Return as first move.
  • Coin Case ACE which uses a pokémon's EVs to redirect to the last read mail, which fixes the stack and then redirects to the start of box names. (see Glitch City Discord for details, will add more info later)

Install locations

This guides includes two possible install locations, each with advantages and disadvantages. Please note that, in both cases, you'll have to sacrifice the usage of box 14.

Installation at $DD55 (enemy party data)

Advantage:

  • Able to view and edit all four sram banks.

Disadvantage:

  • Can not be used during an enemy battle.
  • Need to keep a copy in box data and adjust the ACE bootstrap in order to copy over the RAM writer to enemy party data.

Installation at sram bank 03, $B9E1 (Box 14)

Advantage:

  • Able to use during enemy battle.

Disadvantage:

  • Only able to view and edit sram bank 03, other sram banks are inaccessible during execution.
  • Need to adjust ACE bootstrap to open sram bank 03 prior to executing the RAM writer.

Step 1: Setting all TM quantities to 255

Enter the following box names, then execute ACE.

Box 1: A p 'v C é 2 2 5
Box 2: 'v j 'v u é 1 2 5
Box 3: 'v ♂ é 5 2 p 'v 9
Box 4: é 4 2 p é 6 2 5
Box 5: 'v u é 8 2 'v {space} 5
Box 6: é 7 2 'v : é 9 2
Box 7: 0 9 ♀ 5 ♀ 5 5 5
Box 8: 5 5 5 5 5 5 x 'd

This will set the quantities of all 50 TMs to 255.

Step 2: Tossing TMs to form a mail writer

Toss TMs such that you get the following quantities:

TM	|Final Quantity	|Amount to Toss
------------------------------------------------
TM01	|x17		|x238
TM02	|x85 OR x224	|x170 OR x31	*first option if install to $DD55, second if install to $B9E1
TM03	|x221 OR x185	|x34 OR 70	*first option if install to $DD55, second if install to $B9E1
TM04	|x213		|x42
TM05	|x213		|x42
TM06	|x17		|x238
TM07	|x04		|x251
TM08	|x226		|x29
TM09	|x213		|x42
TM10	|x123		|x132
TM11	|x33		|x222
TM12	|x66		|x189
TM13	|x98		|x157
TM14	|x207		|x48
TM15	|x225		|x30
TM16	|x209		|x46
TM17	|x42		|x213
TM18	|x135		|x120
TM19	|x48		|x207
TM20	|x08		|x247
TM21	|x134		|x121
TM22	|x18		|x237
TM23	|x19		|x236
TM24	|x35		|x220
TM25	|x129		|x126
TM26	|x79		|x176
TM27	|x18		|x237
TM28	|x124		|x131
TM29	|x39		|x216
TM30	|x32		|x223
TM31	|x241		|x14
TM32	|x04		|x251
TM33	|x104		|x151
TM34	|x41		|x214
TM35	|x72		|x183
TM36	|x205		|x50
TM37	|x240		|x15
TM38	|x58		|x197
TM39	|x27		|x228
TM40	|x240		|x15
TM41	|x165		|x90
TM42	|x184		|x71
TM43	|x40		|x215
TM44	|x216		|x39
TM45	|x56		|x199
TM46	|x249		|x06
TM47	|x07		|x248
TM48	|x216		|x39
TM49	|x225		|x30
TM50	|x201		|x54

Once you've finished tossing TMs, set up box names according to the following codes. Make sure to pick the correct code for your installation:

Option 1: installing to $DD55 	|Option 2: Installing to $B9E1
---------------------------------------------------------------
Box 1: A p 'v C é 'd 2 5	|Box 1: A p 'v 'd é 's 2 p
Box 2: 5 5 5 5 5 5 h 'm		|Box 2: 'v C é 'v 2 p 'v 7
Box 3: ♀			|Box 3: h 's pk 5 'm 5 ♀

Other box names can be left as they are.

Once everything has been double checked, you can use your ACE item in order to start up the mail writer.

Step 3: Using the mail writer

Controls

The mail writer will open a screen that asks you to write the contents of a mail. This is where you'll need to enter mail codes. Once done, use the "END" option to finish the mail.

This will cause the mail writer to convert the newly written code into assembly. It will also print a checksum (sum of all written values) on the screen just to the right of the lower row. This can be used to verify if a code was entered correctly.

Alongside these actions, the mail writer will now request user input:

  • Press A to open a new mail and continue writing data
  • Press DOWN to immediately jump to and start executing the newly written program
  • Press any other button to safely exit the program.

Building the full RAM writer

We will be installing the full RAM writer using a series of mail codes. Please ensure you are entering the mail codes that are appropriate for the location you're installing the program to.

Mail codes for $DD55

mail #1         (59 button presses)		
 B n o ' ; g ; : z p o e ♂ 6 6 't 'v 9 0 * 1 1 u j i i h r t t 'd u
mail #2         (60 button presses)
 v / i r p o o e f g h q z p O N W X X ] ] d d é é 3 'l 2 U v w 'm
mail #3         (59 button presses)
 - w w w 'r 's 6 't 't $ $ 7 $ ) / ! / u U v w 'm W x w w w o e F F Q
mail #4         (59 button presses)
 U v [ 4 's 's o n N 3 3 L k k r r R 8 8 & & 5 5 5 o 's w v u . . ,
mail #5         (60 button presses)
 [ 4 4 3 W v w m W W v L L v 'l V b L L L U v c n c c m x X Y e o
mail #6         (57 button presses)
 o 's w W X Y 't 'v : é é ♀ ♂ ♂ 7 7 $ 7 Z Z 's x y y w W V X Y Z Z Z
mail #7         (55 button presses)
 'd x y y o o q p o 's o f d d c m k k B B a a k k / - q p o 's z y
mail #8         (54 button presses)
 b d c m n e e F Z p o 's 't : ♂ ♂ 7 7 7 - t j i . r q q p o 's o f
mail #9         (64 button presses)
 i / - s . t k / U 3 'm m M m [ 4 3 4 x v / ! / u U v w m d c a b
mail #10        (59 button presses)
 A po X x w 'm m n w v k j t ! T j i R R h q p o 's Y 'r 'r n y o o e
mail #11        (51 button presses)
 T / / - / ! / k k - q Q P N n x o e o e e n n n o 's o f o x n n
mail #12        (60 button presses)
 ) 4 X 'r x n n n o 's Y 'r x d c m k l n n o 's X 's y o q q q R R h
<\pre>

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

Mail codes for $B9E1

mail #1         (61 button presses)
 N 4 ] ké 'r W V w V m w v l k T u / ! ) 0 T U 1 1 u j i i h r t t
mail #2         (56 button presses)
 'd u v / l l l w v W w v L V W X w 'm 's 's : é ♂ : ♂ ♂ Z & & . - v
mail #3         (60 button presses)
 L x x n C w w 'm W x w w Y é ♂ ♂ Z & & . q 'v 's 's o n N 3 3 L k k
mail #4         (57 button presses)
 b 'l v w X x w v l 4 3 'm [ 4 4 3 W v w m M v v L L v 'l V L x w w
mail #5         (53 button presses)
 J i i b c c m x X Y e o o 's w W X Y 't 'v ; . / - / ! ! U U S ? 9
mail #6         (59 button presses)
 u 1 X 4 w W V X Y Z Z Z o 5 y y o f g ; ; 't Z 8 ( & 8 & 't : ♂ ♂
mail #7         (62 button presses)
 ! U T U U ! u 'd 'd 『 [ 'r 'm M X 'r y 'r 'r 'm 'd - s - w v u . . , h .
mail #8         (61 button presses)
 a m w x M v u t J i s u u A A pk 'd 'd / - q p o 's Y 'r 'r n y o o e
mail #9         (51 button presses)
 T / / - / ! / k k - q Q P N n x o e o e e n n n o 's o f o x n n
mail #10        (60 button presses)
 ) 4 X 'r x n n n o 's Y 'r x d c m k l n n o 's X 's y o q q q R R h
<\pre>

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

Step 4: Using the full RAM writer

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

Full Writer Controls

View 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 progam    
A: toggle write mode

* When installed at B9E1
select: start executing at current address

* When installed at DD55
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
<\pre>

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
<\pre>