Guides:TMless 0x1500 ACE (JP): Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
No edit summary
Line 21: Line 21:
# Obtain an [[Bad clone glitch|unterminated name pokémon]].
# Obtain an [[Bad clone glitch|unterminated name pokémon]].
# Set up the currently buffered memory in such a way that we can trigger 0x1500 ACE upon seeing the name of the unterminated name pokémon.
# Set up the currently buffered memory in such a way that we can trigger 0x1500 ACE upon seeing the name of the unterminated name pokémon.

Within these pages, you'll be able to find four different methods. These are ordered based on how early you'll be able to setup ACE:

*Methods that should be used when starting from a new game
*# Rival Name method- can be performed from Cherrygrove City onward, after acquiring poké balls. '''Requires a specific rival name to work'''. By far the fastest method.
*# Onix method - can be performed from Violet City onwards. '''Requires not yet having performed the NPC trade in Violet City for Onix.'''
*# Sandshrew method - can be performed from Goldenrod City onwards. '''Intended to be started at the Union Cave''', serves as a backup method in case the Onix method fails.
*# Wooper/Quagsire method - requires having obtained both Surf and Strenght. Requires access to TM18 RAIN DANCE, either from Slowpoke Well or from Celadon Dept. Store, second fasted methods, but best performed using older saves.


==Regarding PKHex==
==Regarding PKHex==
Line 26: Line 34:
At the moment, this guide is incompatible with saves exported from PKHex. Upon exporting a save, PKHex will fill all currently unused data for the OT name and nickname of all boxes with text terminators, making it impossible to obtain an unterminated name pokémon.
At the moment, this guide is incompatible with saves exported from PKHex. Upon exporting a save, PKHex will fill all currently unused data for the OT name and nickname of all boxes with text terminators, making it impossible to obtain an unterminated name pokémon.


=Rival Name method=
=Starting from a new game=

==Step 1: Preparing the Rival's name==

Start a new game, the starter you pick doesn't matter. '''Set the in-game clock either to morning or midday.'''

* Once you are giving the option to name your rival, give the rival the following name:

[[File:Box Japanese C Rival.png]]

* Once you acquire poké balls, catch a Spearow on route 46 (30% spawn odds, morning and midday).

==Step 2: Preparing the bad clone and remaining items==

# Use the bad clone glitch to obtain a pokémon with an unterminated name.
## For this, use a box that has never been full at any point in time. It’s recommended to start with an empty box.
## Deposit a single pokémon. Attempt to save the game using "Move Pokémon w/o mail" but reset the game a bit just after the game has fully printed "SAVING... DON'T TURN OFF THE POWER".
## After rebooting the game, '''open and close the item pack''', then check the newly deposited pokémon.
## If the newly deposited pokémon’s nickname was changed to a bunch of question marks, you can continue with the next step. If the pokémon wasn't saved, that means the reset too early. If the pokémon was cloned, this means the reset was too late.
## If the amount of pokémon in the box exceeds 15, release the cloned pokémon and save the game afterwards to set the amount of stored pokémon to 15 before repeating step 2.
# Now that you have an unterminated name pokémon, put it in box 1. Either release or move all other pokémon in the box so that the unterminated name pokémon is the only pokémon left in box 1.

===Setting up the Mail Writer===

Next, we're going to both finish the setup and use it install a Mail Writer program. The Mail Writer is a small program that is written using box name codes. This program will allow you to easily write arbitrary data in order to achieve numerous effects.

Rename all boxes to the following names:
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
|
[[File:Box Japanese C V2 Initial.png]]
|}

Upon using 0x1500 ACE, this box code will be executed and will replace the first item of the main item pocket with a TM15. Alongside that, it will install a setup so that using this TM15 will execute box name codes. Finally, it will write two values to the box #7 and box #9's names that will allow the Mail Writer to properly function.

Once that is done, you can use TM15 at any time to run the Mail Writer. More details on the Mail Writer can be found in the next guide.

==Step 3: Using the ACE setup==

Before executing ACE, arrange your party as follow:

* Slot 1 - Spearow, no held item
* Slots 2-6 aren't relevant for this setup.

In order to execute ACE, do the following actions:

{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
|
[[File:JP Rival Name ACE location.png]]
|}

# Stand in front of the PC on the second floor of any pokémon center. Take one step down, take seven steps to the right until you end up at the location indicated by the above screenshot. '''Save the game here and reset.'''
# After reloading the save, take seven steps to the left and take one step up. You should now be standing right in front of the PC.
# Open the start menu, then open the summary of Spearow and close it.
# Open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE. If the screen stays white, press "A" a couple of times until the box view reappears.

If the game doesn't crash, the setup was a success. You should now have a TM15 in the main item pocket, the names of box 7 and box 9 have now been changed.

==Step 4: Finishing the Mail Writer==

Lastly, rename the names of boxes #1 through #4 so that all box names fit the following image. '''Make sure to not change the names of box #7 and box #9.'''

{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
|
[[File:Box Japanese C After Setup.png]]
|}

Once this is done, you have completed the setup and have installed the Mail Writer.

Now that the ACE setup has been successfully tested and the Mail Writer program has been fully installed, we can use it to arbitrarily write data to achieve various effects. Instructions on how to activate and use the Mail Writer can be found in the following link: [[Guides/Mail Writer C (JP)|Mail writer C (JP)]]

=Onix method=


==Step 1: Preparing the Onix==
==Step 1: Preparing the Onix==
Line 73: Line 151:
Once that is done, you can use TM15 at any time to run the Mail Writer. More details on the Mail Writer can be found in the next guide.
Once that is done, you can use TM15 at any time to run the Mail Writer. More details on the Mail Writer can be found in the next guide.


==Step 3: using the ACE setup==
==Step 3: Using the ACE setup==


Before executing ACE, arrange your party as follow:
Before executing ACE, arrange your party as follow:
Line 90: Line 168:
# Open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE.
# Open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE.


If the game doesn't crash, the setup was a success and you can continue to the end of the page.
If the game doesn't crash, you have completed the setup and have installed the Mail Writer.


Now that the ACE setup has been successfully tested and the Mail Writer program has been fully installed, we can use it to arbitrarily write data to achieve various effects. Instructions on how to activate and use the Mail Writer can be found in the following link: [[Guides/Mail Writer C (JP)|Mail writer C (JP)]]
=Starting from an older save=

=Sandshrew method=


==Step 1: Preparing the Sandshrew==
==Step 1: Preparing the Sandshrew==
Line 104: Line 184:
#* Hoppip (15% spawn odds on route 33, only during morning and midday)
#* Hoppip (15% spawn odds on route 33, only during morning and midday)
# Talk to the guard in the gate between Ilex Forest and route 34 to obtain Kenya the Spearow. If Kenya is not available, it can be substituted by any other wild Spearow.
# Talk to the guard in the gate between Ilex Forest and route 34 to obtain Kenya the Spearow. If Kenya is not available, it can be substituted by any other wild Spearow.
# Once you reach Goldenrod City, go to the Goldenrod Dept. Store and buy 22 Flower Mails and one Lemonade (can be bought from the vending machines at the top floor).
# Once you reach Goldenrod City, go to the Goldenrod Dept. Buy one Flower Mail and one Lemonade (Lemonade can be bought from the vending machines at the top floor).
# Buy an additional Poké Ball and Great Ball. Ensure that the Poké Ball is at the bottom of the ball pocket item list.
# Buy an additional Poké Ball and Great Ball. Ensure that the Poké Ball is at the bottom of the ball pocket item list.
# Give Sandshrew the Lemonade as a held item, ensure it has Scratch as its first move.
# Give Sandshrew the Lemonade as a held item, ensure it has Scratch as its first move.
Line 137: Line 217:
Once that is done, you can use TM15 at any time to run the Mail Writer. More details on the Mail Writer can be found in the next guide.
Once that is done, you can use TM15 at any time to run the Mail Writer. More details on the Mail Writer can be found in the next guide.


==Step 3: using the ACE setup==
==Step 3: Using the ACE setup==


Before executing ACE, arrange your party as follow:
Before executing ACE, arrange your party as follow:
Line 154: Line 234:
# Open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE.
# Open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE.


If the game doesn't crash, the setup was a success and you can now continue.
If the game doesn't crash, you have completed the setup and have installed the Mail Writer.


Now that the ACE setup has been successfully tested and the Mail Writer program has been fully installed, we can use it to arbitrarily write data to achieve various effects. Instructions on how to activate and use the Mail Writer can be found in the following link: [[Guides/Mail Writer C (JP)|Mail writer C (JP)]]
= What to do with this ACE setup =


=Wooper/Quagsire method=
Now that the ACE setup has been succesfully tested and the Mail Writer program has been fully installed, we can use it to arbitrarily write data to achieve various effects. Instructions on how to activate and use the Mail Writer can be found in the following link: [[User:TimoVM/Mail Writer C (JP)|Mail writer C (JP)]]

==Step 1: Preparing the Wooper/Quagsire==

This guide assumes you have at least access to Strength and Surf, having access to Fly is not required but will speed up the process.

# From Azalea Town, enter the Union cave. Surf on the nearest water and catch either a wild Quagsire or Wooper. (If you've previously already caught Wooper/Quagsire, you can use the old one instead)
# Obtain a TM18 RAIN DANCE using one of the following methods:
#* Go to Azalea Town's Slowpoke Well and pick up TM18. It can be found on B2F and requires the use of Surf and Strength to reach.
#* Go to the Celadon Dept. Store and buy a TM18
# Talk to the guard in the gate between Ilex Forest and route 34 to obtain Kenya the Spearow. If Kenya is not available, it can be substituted by any other wild Spearow.
# Use TM18 on Wooper/Quagsire. '''Ensure that Rain Dance is in Wooper/Quagsire's first move slot.''' Ensure that Wooper/Quagsire is not holding any item.

==Step 2: Preparing the bad clone and remaining items==

# Use the bad clone glitch to obtain a pokémon with an unterminated name.
## For this, use a box that has never been full at any point in time. It’s recommended to start with an empty box.
## Deposit a single pokémon. Attempt to save the game using "Move Pokémon w/o mail" but reset the game a bit just after the game has fully printed "SAVING... DON'T TURN OFF THE POWER".
## After rebooting the game, '''open and close the item pack''', then check the newly deposited pokémon.
## If the newly deposited pokémon’s nickname was changed to a bunch of question marks, you can continue with the next step. If the pokémon wasn't saved, that means the reset too early. If the pokémon was cloned, this means the reset was too late.
## If the amount of pokémon in the box exceeds 15, release the cloned pokémon and save the game afterwards to set the amount of stored pokémon to 15 before repeating step 2.
# Now that you have an unterminated name pokémon, put it in box 1. Either release or move all other pokémon in the box so that the unterminated name pokémon is the only pokémon left in box 1.
# Finally, give your '''Spearow''' (either Kenya or another Spearow) a mail to hold with the following text:
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
|
[[File:Mail Japanese C.png]]
|}

===Setting up the Mail Writer===

Next, we're going to both test the setup and install a Mail Writer program. The Mail Writer is a small program that is written using box name codes. This program will allow you to easily write arbitrary data in order to achieve numerous effects.

Rename all boxes to the following names:
{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"
|
[[File:Box Japanese C Setup.png]]
|}

Upon using 0x1500 ACE, the mail code included in the setup will be executed and will replace the first item of the main item pocket with a TM15. Alongside that, it will install a setup so that using this TM15 will execute box name codes. Finally, it will write two values to the box name area that will allow the Mail Writer to properly function.

Once that is done, you can use TM15 at any time to run the Mail Writer. More details on the Mail Writer can be found in the next guide.

==Step 3: Using the ACE setup==

Before executing ACE, arrange your party as follow:

* Slot 1 - Spearow, holding mail
* Slot 2 - Wooper/Quagsire
* Slots 3-6 aren't relevant for this setup.

In order to execute ACE, do the following actions:

# Stand in front of the PC on the second floor of any pokémon center. Save and reset the game.
# Take exactly one step down and open the start menu.
# Open the summary of Wooper/Quagsire and close it.
# Take exactly one step up so you’re in front of the PC. Open the start menu again.
# Read the mail you've previously given to Spearow (the Spearow needs to be at the very top of your party list).
# Open the PC. Open the withdraw screen so that the unterminated name pokémon's name would be displayed. Displaying this name will trigger ACE.

If the game doesn't crash, you have completed the setup and have installed the Mail Writer.

Now that the ACE setup has been successfully tested and the Mail Writer program has been fully installed, we can use it to arbitrarily write data to achieve various effects. Instructions on how to activate and use the Mail Writer can be found in the following link: [[Guides/Mail Writer C (JP)|Mail writer C (JP)]]


=Appendix: in-depth explanation of the setup=
=Appendix: in-depth explanation of the setup=

===Effect of the Rival Name===

Moving with the specific movement pattern that is used in the Rival Name method will place the following data at $CD46:

<pre>
D2 8B D4 jp nc, $D48B
</pre>

This address corresponds to the second character of the Rival's name. The specific name that was used in the method will place the following data from $D48A onward:

<pre>
E1 filler
E1 pop hl ; Entry point of execution
C3 88 DB jp nc, $DB88
</pre>

This address corresponds with the 6th character of box #4's name. Once it arrives here, the first 4 box names will be executed as follows:

<pre>
Box 1: $DB68
26 DA ld h, $DA ; .boxNameStart
2E 12 ld l, 12
3E DB ld a, $DB ; a = $DB
32 ldd (hl), a
C6 50 add $50 ; a = $2B

Box 2: $DB71
C6 3D add $3D ; a = $68
32 ldd (hl), a
3E C3 ld a, $C3 ; a = $C3
32 ldd (hl), a
C6 0B add $0B ; a = $CE
50 ld d, b

Box 3: $DB7A
EA 86 D8 ld(wItems), a
D6 96 sub $96 ; a = $38
EA A1 DB
50 ld d, b

Box 4: $DB83
EA B1 DB ld($DBB1), a
E1 pop hl
C9 ret
30 DE jr nc, .boxNameStart
50 ld d, b
</pre>

Box #5 through box #9 are not executed as part of 0x1500 ACE and are instead part of the standard Mail Writer program. These will be elaborated on in their own section.


===Effect of Onix===
===Effect of Onix===
Line 192: Line 383:


After the effect of 0x1500 ACE is triggered and execution is redirected to $D10E, execution jumps over move, OTID and experience data, followed by another jump to $F000, which is echo RAM for $D000 and is located two bytes before the last buffered mail.
After the effect of 0x1500 ACE is triggered and execution is redirected to $D10E, execution jumps over move, OTID and experience data, followed by another jump to $F000, which is echo RAM for $D000 and is located two bytes before the last buffered mail.

===Effect of Wooper/Quagsire===

Defeating the provided list of pokémon and viewing Sandshrew's summary will result in the following values starting from the buffered species ID at $D10E, assuming the pokémon is in party slot #2:

<pre>
C3 00 F0 jp $F000
</pre>

After the effect of 0x1500 ACE is triggered and execution is redirected to $D10E, execution immediately jumps to $F000, which is echo RAM for $D000 and is located two bytes before the last buffered mail.


===Effect of the mail===
===Effect of the mail===