User:TimoVM/JP Pikachu ACE Translation

From Glitch City Wiki
Jump to navigation Jump to search

This page is based on a translation/analysis of an ACE setup used in the Japanese version of Pokémon Yellow. The original article was written by flag3833753 and can be found [here].

Please note that you will be required to clear your saved data in order to follow this guide.

Introduction

in an [earlier article], a method to set up a RAM writer in the Japanese versions of Red/Green was explained. In this article we will install a ported version of that memory writer in the Japanese version of Yellow.

The original article made use of SRAM glitch in order to set up the RAM writer. A [later revision] demonstrated a method to install the RAM writer without SRAM glitch. because of this, we'll split the article in multiple sections.

Setting up the RAM writer using SRAM glitch

(note, add video link)

The installation of the RAM writer is divided into two parts:

  1. Make a compact, limited RAM writer
  2. Use this RAM writer to build the full, completed RAM writer.

Please note that the instructions included here are intended for JP Yellow V1.1 through V1.3. Make sure to look at the end of the article for how to install the RAM writer on V1.0

First, you will need to clear the save. hold SELECT + B + UP on the title screen to delete the current save.

Step 1: name your rival "て空んオオ"

Note that 空 represents an empty space. The player's name is not relevant for this setup.

Step 2: SRAM glitch

Hard reset at a very specific time during the saving process. If correctly performed, this will cause the game to think you have 255 party pokémon.

The specific timing is less than half a second after pressing "yes" when prompted if you'd like to save the game. There's no timing trick to it, just try again until you succeed.

If too early, the game isn't saved. If just a little late, the saved data will be corrupted. You'll need to try again from step 1 and clear the save again. If too late, the save will successfully complete. You'll need to try again from step 1 and clear the save again.

SRAM glitch was successful if, upon opening the start menu, the "Pokémon" menu option can be selected and the party screen successfully opens.

Step 3: Swap pokémon #6 and pokémon #9

This swap will set up inventory underflow, making the game think you're holding a total of 255 item stacks.

Step 4: Open the PC in your room to deposit items

Specifically, do the following:

  1. Deposit 1 "やめる" from slot #1 of your bag.
  2. Deposit a "カードキー" from slot #22 of your bag. repeat until you deposited 6 "カードキー" in total.
  3. Deposit 100 "ポケモン" from slot #23 of your bag.
  4. Deposit 1 "わざマシン22" from slot #24 of your bag.
  5. Swap the "ぬのヅ" in slot #25 with the item in slot #34 of your bag.

A few notes on the above:

  • If the item in slot #1 isn't "やめる", restart from step 1. Possibly something went wrong during SRAM glitch.
  • For the item in slot #23, you initially start with "ポケモン" x127. When selecting how many to deposit, simply press DOWN until you would deposit x99, then press UP to deposit x100. You need to deposit all 100 "ポケモン" all at once.
  • The item in slot #35 should be a "モンスターボール". to find item slot #34, simply look for item slot #35 and press up once from there.

Step 5: Warping to Eevee's room in Celadon Mansion

Exit your house. Thanks to the swap you performed in step 4, you'll end up in the room in Celadon Mansion where you can pick up Eevee.

Step 6: Activating Infinite Eevee mode

Change the game's settings as follows:

Text speed: Slow はなしのはやさ: おそい
Battle animations: On せんとうアニメ:じっくりみる
Battle style: Set しあいのルール:かちぬきタイプ
Sound: Head phone 2 サウンド:イヤホン2

This will change the item in slot #26 to a "はやぶさバッヂ".

Then, do the following (for safety, save beforehand):

  1. Pick up an Eevee, give it the nickname ヅずゆデの and use the "はやぶさバッヂ". This will cause Eevee's pokeball to reappear.
  2. Pick up a second Eevee, give it the nickname "ひでぶデョ" (small ョ) and use the "はやぶさバッヂ". This will cause Eevee's pokeball to reappear once more.
  3. Pick up a third Eevee, give it the nickname "ヅやゆョプ" (small ョ) and use the "はやぶさバッヂ" a final time.

After the third execution, picking up Eevee's pokéball will cause the NPC next to it to disappear instead. This allows you to get an unlimited amount of Eevees. (Please note that you can not leave this room until you finished the setup, since leaving the room will cause Eevee's pokeball to disappear.)

Step 7: Obtaining Eevees and nicknaming them

We'll now install a small RAM writer program by picking up and nicknaming Eevees. Give them nicknames from the following table. Start at the **bottom** of the list and work your way up.

Nickname 23 がんぜクョ small ョ
Nickname 22 ぶづぜンづ
Nickname 21 よヅぜウづ
Nickname 20 にぽづがる
Nickname 19 ぜい空へパ 空 represents a blank space
Nickname 18 ううグ空だ 空 represents a blank space
Nickname 17 どグだギョ small ョ
Nickname 16 べへにんグ
Nickname 15 だゲぼダぞ
Nickname 14 空へにんグ 空 represents a blank space
Nickname 13 わとんヅー
Nickname 12 グリググだ
Nickname 11 ざグわねん
Nickname 10 ぱへふんぴ
Nickname 9 へふんボぷ
Nickname 8 へふんだし
Nickname 7 ぼヂキづご
Nickname 6 ョのなひだ small ョ
Nickname 5 へよんち空 空 represents a blank space
Nickname 4 ぼダメにぽ
Nickname 3 にュだガに small ュ
Nickname 2 にヂ空ギて 空 represents a blank space
Nickname 1 ボデの

Step 8: Starting the compact RAM writer

After filling in the nicknamed, use the "はやぶさバッヂ" again to start up the RAM writer. It should look something like this:

(TO DO: add image)

If it doesn't start, reset your game and redo the nicknamed. If it does start successfully, it might be a good idea to exit the program and save the game.

Step 9: Using the compact RAM writer

With the compact RAM writer, you can go through individual memory addresses and edit their values using the following controls:

A: Address +1
B: Address -1
DOWN: Value +1
UP: Value -1
RIGHT: Value +10h
LEFT: Value -10h
START: Exit

Using the compact RAM writer, we'll be adjusting the values of the addresses between $D9B4 through $DA5E to the following:

Address Value Opcode
WRA1:D9B4 21 00 D0 ld hl,D000
WRA1:D9B7 CD 0D DA call DA0D
WRA1:D9BA E5 push hl
WRA1:D9BB 54 ld d,h
WRA1:D9BC 5D ld e,l
WRA1:D9BD 3E F8 ld a,F8;de
WRA1:D9BF 83 add e
WRA1:D9C0 5F ld e,a
WRA1:D9C1 38 01 jr c,D9C4
WRA1:D9C3 15 dec d
WRA1:D9C4 06 12 ld b,12
WRA1:D9C6 21 AB C3 ld hl,C3AB
WRA1:D9C9 3E 7C ld a,7C
WRA1:D9CB 22 ldi (hl),a
WRA1:D9CC 7A ld a,d
WRA1:D9CD CD 01 DA call DA01
WRA1:D9D0 7A ld a,d
WRA1:D9D1 CD 03 DA call DA03
WRA1:D9D4 7B ld a,e
WRA1:D9D5 CD 01 DA call DA01
WRA1:D9D8 7B ld a,e
WRA1:D9D9 CD 03 DA call DA03
WRA1:D9DC 3E 7F ld a,7F
WRA1:D9DE 22 ldi (hl),a
WRA1:D9DF 1A ld a,(de)
WRA1:D9E0 CD 01 DA call DA01
WRA1:D9E3 1A ld a,(de)
WRA1:D9E4 CD 03 DA call DA03
WRA1:D9E7 3E 7C ld a,7C
WRA1:D9E9 22 ldi (hl),a
WRA1:D9EA 3E 0B ld a,0B
WRA1:D9EC 85 add l
WRA1:D9ED 6F ld l,a
WRA1:D9EE 30 01 jr nc,D9F1
WRA1:D9F0 24 inc h
WRA1:D9F1 1C inc e
WRA1:D9F2 20 01 jr nz,D9F5
WRA1:D9F4 14 inc d
WRA1:D9F5 05 dec b
WRA1:D9F6 20 D1 jr nz,D9C9
WRA1:D9F8 21 4B C4 ld hl,C44B
WRA1:D9FB 36 ED ld (hl)
WRA1:D9FD E1 pop hl
WRA1:D9FE C3 B7 D9 jp D9B7
WRA1:DA01 CB 37 swap a
WRA1:DA03 E6 0F and a,0F
WRA1:DA05 C6 F6 add a,F6
WRA1:DA07 30 02 jr nc,DA0B
WRA1:DA09 C6 60 add a,60
WRA1:DA0B 22 ldi (hl),a
WRA1:DA0C C9 ret
WRA1:DA0D CD 40 38 call 3840
WRA1:DA10 F0 B3 ld a
WRA1:DA12 CB 5F bit 3,a
WRA1:DA14 28 02 jr z,DA18
WRA1:DA16 C1 pop bc
WRA1:DA17 C9 ret
WRA1:DA18 CB 57 bit 2,a
WRA1:DA1A 28 06 jr z,DA22
WRA1:DA1C 01 B7 D9 ld bc,D9B7
WRA1:DA1F D1 pop de
WRA1:DA20 C5 push bc
WRA1:DA21 E9 jp hl
WRA1:DA22 47 ld b,a
WRA1:DA23 F0 B4 ld a,(ff00+B4)
WRA1:DA25 4F ld c,a
WRA1:DA26 CB 70 bit 6,b
WRA1:DA28 28 04 jr z,DA2E
WRA1:DA2A 3E FF ld a,FF
WRA1:DA2C 18 15 jr DA43
WRA1:DA2E CB 78 bit 7,b
WRA1:DA30 28 04 jr z,DA36
WRA1:DA32 3E 01 ld a,01
WRA1:DA34 18 0D jr DA43
WRA1:DA36 CB 60 bit 4,b
WRA1:DA38 28 04 jr z,DA3E
WRA1:DA3A 3E 10 ld a,10
WRA1:DA3C 18 05 jr DA43
WRA1:DA3E CB 68 bit 5,b
WRA1:DA40 C8 ret z
WRA1:DA41 3E F0 ld a,F0
WRA1:DA43 CB 41 bit 0,c
WRA1:DA45 28 03 jr z,DA4A
WRA1:DA47 86 add (hl)
WRA1:DA48 77 ld (hl),a
WRA1:DA49 C9 ret
WRA1:DA4A CB 49 bit 1,c
WRA1:DA4C 28 03 jr z,DA51
WRA1:DA4E 84 add h
WRA1:DA4F 67 ld h,a
WRA1:DA50 C9 ret
WRA1:DA51 CB 7F bit 7,a
WRA1:DA53 28 05 jr z,DA5A
WRA1:DA55 85 add l
WRA1:DA56 6F ld l,a
WRA1:DA57 D8 ret c
WRA1:DA58 25 dec h
WRA1:DA59 C9 ret
WRA1:DA5A 85 add l
WRA1:DA5B 6F ld l,a
WRA1:DA5C D0 ret nc
WRA1:DA5D 24 inc h
WRA1:DA5E C9 ret

After entering everything, it is advisable to save the game.

Next, change the game's settings as follows:

Text speed: Normal はなしのはやさ:ふつう
Battle animations: On せんとうアニメ:じっくりみる
Battle style: Set しあいのルール:かちぬきタイプ
Sound: Head phone 2 サウンド:イヤホン2

This will change the item in slot #26 to a "かいがらバッヂ". You can now start the full RAM writer by using the "かいがらバッヂ". When done, it looks like this:

(ADD IMAGE HERE)

Using the full RAM writer

Controls are as follows:

DOWN: 		address +1
UP: 		address -1
RIGHT: 		address +10
LEFT: 		address -10
B+DOWN: 	address +100
B+UP: 		address -100
B+RIGHT: 	address +1000
B+LEFT: 	address -1000
A+DOWN: 	value +1
A+UP: 		value -1
A+RIGHT: 	value +10
A+LEFT: 	value -10
SELECT: 	execute code starting from the current selected address (USE ONLY IF YOU KNOW WHAT YOU'RE DOING)
START: 		exit

You'll notice that this RAM writer is much more convenient to use compared to the compact RAM writer.

Be VERY careful when using SELECT. Using it without meaning to will likely crash the game.

Keep in mind that the memory editor occupies the range between $D9B4 and $DA5E. Do not edit the values within this range, otherwise you risk destroying the full RAM writer and crashing the game.

Repairing the effects of SRAM glitch

Due to the way we were messing with SRAM glitch, we've glitched normal game progression. Now that we have a fully functional RAM writer, we can fix these effects and continue the game from Pallet Town through the following edits:

  • Set $D123 to $00: this will set the number of party pokémon to 0.
  • Set $D2A1 to $01 and $D2A2 to $63: this will adjust your bag such that it only contains a "かいがらバッヂ". Please note that, when you exit the RAM writer, the cursor will still be at the 26th item slot. Just keep pressing UP until the cursor reaches the 1st item slot.
  • Set values at the range $D287 to $D28D to $00: this will set the number of caught pokémon to 0. This is necessary in order to receive the pokédex from Prof. Oak.
  • Set $D331 and $D335 to $00: this will cause you to return to Pallet Town when exiting Eevee's room.

Now, just exit to Pallet Town, you can now continue the game as you normally would.

Adjustments for V1.0

Due to version differences, there are a few slight adjustments that need to be made in order to install the RAM writer on V1.0. The process is mostly the same, the differences will be mentioned here.

  • Steps 2, 3, 5, 6 and 8 are exactly the same
  • Step 3: player name needs to be "ギるゾい", rival name can be anything as long as the 5th letter is "オ". e.g. "オオオオオ".
  • Step 4: the only thing you need to do is to swap the item in slot #25 with the item in slot #34 of your bag. Since you're only swapping, you can simply do this from the item bag instead of the PC. Please note that the item in slot #25 has a buggy name instead of "ぬのヅ".
  • Step 5: the nicknames are slightly different.
Nickname 23 がんぜクョ small ョ
Nickname 22 ぶづぜンづ
Nickname 21 よヅぜウづ
Nickname 20 にぽづにグ different compared to other version.
Nickname 19 づなゅへへ small ゅ, different compared to other version.
Nickname 18 ううグ空だ 空 represents a blank space
Nickname 17 どグだギョ small ョ
Nickname 16 べへにんグ
Nickname 15 だゲぼダぞ
Nickname 14 空へにんグ 空 represents a blank space
Nickname 13 わとんヅー
Nickname 12 グリググだ
Nickname 11 ざグわねん
Nickname 10 ぱへふんぴ
Nickname 9 へふんボぷ
Nickname 8 へふんだし
Nickname 7 ぼヂキづご
Nickname 6 ョのなひだ small ョ
Nickname 5 へよんち空 空 represents a blank space
Nickname 4 ぼダメにぽ
Nickname 3 にュだガに small ュ
Nickname 2 にヂ空ギて 空 represents a blank space
Nickname 1 ボデの
  • Step 9: The full RAM writer uses the same code, except the addresses from $DA0D through $DA0F should be changed to
CD 3F 38

Setting up the RAM writer without SRAM glitch

Since SRAM glitch requires a strict timing, an alternative is provided to set up the RAM writer without SRAM glitch. Please note that you will still need to reset your save even for this method.

Step 1: start a new game with player name "がんョぜレ"

Contains a small "ョ", rival's name doesn't matter.

Step 2: Head to Pewter City

Mkae sure to not fight the second bug catcher from the entrance of Viridian Forest.

Step 3: Stop by the Pewter City pokémon center and mart

Make sure to heal at the Pewter City pokémon center so that you can later use an Escape Rope to warp towards it.

In the mart, buy at least 19 poké balls ("モンスターボール") and one escape rope ("あなぬけのひも").

Step 4: Catch 19 pokémon, give them nicknames, then manually deposit them into box 1

The pokémon that you catch for this do not matter, make sure to lower their HP to 1/3rd of their maximum to increase catching odds. You need at least 19 poké balls to catch them and do not have access to a lot of money, so make sure you do not waste any of them.

Nicknames should be according to the following table in order:

Caption text
ヅクまプレ
ひでぼラデ
がふぜのョ small ョ
ひすづギぺ
ひだレレレ
ゾなレレレ Replace with ゾよひけレ if playing on V1.0
ひぢなの
Any
Any
Any
がやぜふレ
ぼんづぼギ
づぼてづョ
がめぜヨべ
づよヒづづ
ョぶづがん small ョ
ぜイの
Any
ゲてメん

If you're unsure fi you're on V1.0 or on a later revision, you might want to prepare both "ゾなレレレ" and "ゾよひけレ" nicknamed pokémon.

After finishing this step, Ensure that you are holding 5 party pokémon or less.

Step 5: use the Escape Row to set up Trainer Fly on the 2nd bug catcher of Viridian Forest

With the bug catcher offscreen, step towards the bug catcher so that they would be able to see you and start a battle. During the step, hold the START button to bring up the start menu, from which you can use the Escape Rope.

Step 6: Set up ACE

After using the Escape Rope, you should have warped to the Pewter City pokémon center. From there, do the following:

  • Open the PC and change the current active box from box 1 to box 1. This should cause the game to save, upon which you can reset the game. This will reenable the use of the START button.
  • Go to the NPC to the east of Pewter that guides you to the Pewter City Gym. Let him guide you towards the gym to clear away the expected trainer movement.
  • Go to a house in the southwest of Pewter City and check the town map on the wall. From now on until you go to Viridian Forest, you must not open the start menu.

Step 7: Go to Viridian Forest and check if ACE was successful

After arriving in Viridian Forest, the start menu will automatically open. Open the item bag. If ACE was successfully performed, it should now contain a "はやぶさバッヂ". Use it.

If everything went well, you should now get a message if you would like to nickname a Rattata.

If it didn't work, double check all nicknames and make sure you are holding 5 party pokémon or less. If it fails due to what might be a version difference, make sure to change the nicknames to fit the other version.

Step 8: Nickname Rattata's and deposit them to box 2

The current nickname code will allow you to obtain an infinite amount of Rattata's. We will now proceed to obtain and nickname a bunch of Rattata's and deposit them to box 2.

Before we begin, a few notes:

  • The ACE code will only work if Box 1 is the active box.
  • Obtain Rattata's, nickname them, deposit them to box 2, then change the box so that box 1 is the active box again.
  • Preferably, you'd be doing this starting with a party of just one pokémon, so you can deposit 5 Rattata's at a time. You can either release your other party pokémon or temporarily store them in box 3.
よヂづにぽ
づにゲレレ Replace with ゾよひけレ if playing on V1.0
づョがわレ small ョ
ぜゃダだグ small ゃ
ぼヂてツん
ダだグぼダ
ぞてツんダ
だガムキづ
ごぱへぬん
ぴへぬんボ
ぷへぬんへ
うううヅー
ひ空はうん 空 represents an empty space
どダれナん
ダめせんざ
ダれゃわダ
りだあなレ
ひだへむん
ちぼダメに
にルだガに
にヂ空ギて 空 represents an empty space
ボデの
Any
Any
Any
Any
Any
Any
Any
Any

Ensure that box 2 is completely filled with 30 pokémon.

Step 9: Start up the compact RAM writer

With box 2 selected as the active box, use the "はやぶさバッヂ" to start a compact RAM writer. We'll be using these to build the full RAM writer.

Controls:

A: Address +1h
B: Address -1h
DOWN: Value +1h
UP: Value -1h
RIGHT: Value +10h
LEFT: Value -10h
START: Exit
SELECT: Start execution from $DCE0 onward

'''Do not use SELECT until you've finished writing the full RAM writer.'''

==Step 10: using the compact RAM writer

Using the compact RAM writer, write the following values at the following addresses:

Caption text
Address Value Opcode
WRA1:DCE0 21 00 D0 ld hl,D000
WRA1:DCE3 CD 16 DD call DD16
WRA1:DCE6 E5 push hl
WRA1:DCE7 11 F8 FF ld de,FFF8
WRA1:DCEA 19 add hl,de
WRA1:DCEB 54 ld d,h
WRA1:DCEC 5D ld e,l
WRA1:DCED 21 AB C3 ld hl,C3AB
WRA1:DCF0 36 7C ld (hl),7C
WRA1:DCF2 23 inc hl
WRA1:DCF3 7A ld a,d
WRA1:DCF4 CD 56 DD call DD56
WRA1:DCF7 7B ld a,e
WRA1:DCF8 CD 56 DD call DD56
WRA1:DCFB 36 7F ld (hl),7F
WRA1:DCFD 23 inc hl
WRA1:DCFE 1A ld a,(de)
WRA1:DCFF CD 56 DD call DD56
WRA1:DD02 36 7C ld (hl),7C
WRA1:DD04 01 0C 00 ld bc,000C
WRA1:DD07 09 add hl,bc
WRA1:DD08 13 inc de
WRA1:DD09 7D ld a,l
WRA1:DD0A FE 13 cp a,13
WRA1:DD0C 20 E2 jr nz,DCF0
WRA1:DD0E 3E ED ld a,ED
WRA1:DD10 EA 4B C4 ld (C44B),a
WRA1:DD13 E1 pop hl
WRA1:DD14 18 CD jr DCE3
WRA1:DD16 CD 40 38 call 3840
WRA1:DD19 F0 B3 ld a,(ff00+B3)
WRA1:DD1B 07 rlca
WRA1:DD1C 30 04 jr nc,DD22
WRA1:DD1E 3E 01 ld a,01
WRA1:DD20 18 1C jr DD3E
WRA1:DD22 07 rlca
WRA1:DD23 30 03 jr nc,DD28
WRA1:DD25 9F sbc a
WRA1:DD26 18 16 jr DD3E
WRA1:DD28 07 rlca
WRA1:DD29 30 04 jr nc,DD2F
WRA1:DD2B 3E F0 ld a,F0
WRA1:DD2D 18 0F jr DD3E
WRA1:DD2F 07 rlca
WRA1:DD30 30 04 jr nc,DD36
WRA1:DD32 3E 10 ld a,10
WRA1:DD34 18 08 jr DD3E
WRA1:DD36 07 rlca
WRA1:DD37 30 02 jr nc,DD3B
WRA1:DD39 E1 pop hl
WRA1:DD3A C9 ret
WRA1:DD3B 07 rlca
WRA1:DD3C D0 ret nc
WRA1:DD3D E9 jp hl
WRA1:DD3E CB 43 bit 0,e
WRA1:DD40 28 03 jr z,DD45
WRA1:DD42 86 add (hl)
WRA1:DD43 77 ld (hl),a
WRA1:DD44 C9 ret
WRA1:DD45 CB 4B bit 1,e
WRA1:DD47 28 03 jr z,DD4C
WRA1:DD49 84 add h
WRA1:DD4A 67 ld h,a
WRA1:DD4B C9 ret
WRA1:DD4C 06 00 ld b,00
WRA1:DD4E CB 7F bit 7,a
WRA1:DD50 28 01 jr z,DD53
WRA1:DD52 05 dec b
WRA1:DD53 4F ld c,a
WRA1:DD54 09 add hl,bc
WRA1:DD55 C9 ret
WRA1:DD56 47 ld b,a
WRA1:DD57 CB 37 swap a
WRA1:DD59 CD 5D DD call DD5D
WRA1:DD5C 78 ld a,b
WRA1:DD5D E6 0F and a,0F
WRA1:DD5F C6 F6 add a,F6
WRA1:DD61 30 02 jr nc,DD65
WRA1:DD63 C6 60 add a,60
WRA1:DD65 22 ldi (hl),a
WRA1:DD66 C9 ret

Note: for V1.0, change the value of $DD17 to $3F instead of $40.

After rewriting these values, it might be a good idea to exit the program and save the game. Afterwards, start up the compact RAM writer and press SELECT to start the full RAM writer.