Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Krys3000

Pages: [1] 2
1
UPDATE: Many extra thanks to Couldntthinkofaname, spamviech and Evie for reviewing and contributing to this guide

Hello there! Welcome to the world of Pokémon ACE!

Lately, with the release of Gold and Silver in 3DS's Virtual Console, there has been a lot of people asking questions about Arbitrary Code Execution (mainly Coin Case), and with this came a lot of new ideas to use it as well as to perform it. Very talented people (luckytyphlosion, gifvex, Crystal_, ISSOtm to mention some...) have restarted working on it especially for non-english adaptation, and all of this resulted in the information being spread in a lot of different threads, videos, talks on Discord, etc.

I felt like it was the time for a collaborative guide that gathers all of the current knowledge on
- What are the different ways to make ACE in my language
- What can I do with ACE
- On the long term, an introduction to opcodes and how to make codes that go beyond basic memory editing (if you want to write this part, please don't hesitate)
In forms of summaries but also by giving the links to the different threads and videos about it.

Please don't hesitate to contribute to this guide, as I don't know everything about it, especially regarding english games!

TABLE OF CONTENT:
I. WHAT ARE THE DIFFERENT ACE TECHNIQUES IN G/S/C
II. COIN CASE VS. WRONG POCKET TM ACE
III. WRONG POCKET TM ACE EXPLAINED
   III.1: Obtain a Glitch Pokémon n°000
   III.2: Use the Glitch Pokémon n°000 to get Mystery Eggs
   III.3: Use Mystery Eggs to get TM17
   III.4: Prepare the Party setup
IV. WRITE AND EXECUTE A CODE, REGARDLESS OF THE METHOD
   IV.1: GET TM17 IN THE WRONG POCKET (Box)
   IV.2: GET ANY TM/HM x255 CODE (Box)
   IV.3: INCREASE/DECREASE THE QUANTITY OF AN ITEM CODE (Items)
   IV.4: GET ANY ITEM CODE (Items)
   IV.5: MEMORY EDITOR CODE, A.K.A. GAMESHARK SIMULATOR (Items or Box)
   IV.6: CHANGING ID CODE (Items)
   IV.7: MAKE THE SIXTH POKEMON IN PARTY SHINY CODE (Items)
   IV.8: GOTTA CATCH 'EM ALL CODE (Box)
   IV.9: MORE AND COMPETITIVE CODES (Box)
   IV.10: A WORD ON HOW TO WRITE COMPLEX CODES
ANNEX 1: GET TM ACE SETUP THROUGH A FIRST-GENERATION GAME
   ANNEX 1.1: Gather the needed items
   ANNEX 1.2: Create custom jump Pokémon
   ANNEX 1.3: Use Mystery Eggs to get TM25
ANNEX 2: GET ACCESS TO PC ITEMS THROUGH THE BAG
   ANNEX 2.1: Obtain a Glitch Pokémon n°000
   ANNEX 2.2: Use the Glitch Pokémon n°000 to get Machine Part and SecretPotion
   ANNEX 2.3: Trigger the Expanded Balls Pocket
GENERAL CONCLUSION
   
I. WHAT ARE THE DIFFERENT ACE TECHNIQUES IN G/S/C

Much like in first generation games, arbitrary code execution is about to give you the power to modify the RAM in order to make the game do pretty much everything you want, but also, if you feel like it, change the maps, create scripts, and even program another game inside your game.

A well-known method to perform ACE in G/S is the Coin Case Glitch. This very simple glitch is due a mistake done by the english localization team, who forgot in just one occasion to change the end-of-string terminator that was used in japanese games for the actual terminator of english and european games. This mistake is not a part of the original game, and that's why unfortunately, because the localization team of every other country was more rigorous, this glitch cannot be performed in all other languages. Lame.

So what are the other options to perform ACE, being either in english games or non-english european games? Well, there is, at least, 4 other ACE methods:

- ACE can be theorically be achieved using Glitch Pokédex Mode. I dont think this has been researched a lot so far, because it seems to be really hard to do during legit gameplay, and any method that could give access to a suitable Glitch Pokédex Mode wouldn't be much worth it compared to other ACE methods. We're not gonna mention it anymore, but don't hesitate to look into it, though!
* You'll find some informations about Glitch Pokédex modes following this link.

- There is also the Bad Clone ACE which used the properties of a Bad Clone to execute code from box names, much like Coin Case. However, this method uses code from the Mobile GB Adapter and therefore, is a Crystal-only glitch! In view to the release of VC's G/S, it was left aside to work on a method that would be compatible with Gold and Silver, and thus, we're not gonna mention it anymore.
* This method was first documented last year by the speedrunner Werster (although nobody seems to know where it comes from) and described in this thread by Torchickens and luckytyphlosion.
* Crystal_ also made this video showing how to use it in legit gameplay.

- Move 0x00 ACE (also known as 'Move 00 Type ACE' or 'Type 0xD0 move glitch') is another method found by luckytyphlosion that involves a Ditto traded from R/B in which he has been taught the infamous Cooltrainer move. It can also be performed with a Bad Clone. Originally made for speedrunning, it was adapted for legit gameplay by Torchickens, but as far as I know it has not been tested in non-english games. Until it does, we're not gonna mention it in this guide, but I always felt this ACE method deserved more attention, so please don't hesitate to work on it!
* The method is well explained here.
* You will find more on this glitch in the official thread by Torchickens.

- And we finish with the main topic of discussion, the Wrong Pocket TM ACE, which is about having a certain TM in another Pocket than the TM/HM Pocket of the bag and take advantage of it. This can be achieved by different sub-methods, so we're gonna explain this in a whole chapter!

II. COIN CASE VS. WRONG POCKET TM ACE

NOTE: These methods can be performed on original cartridge as well as Virtual Console (even if it's a shitty emulator), but if performed on an emulator, you must use one that supports ECHO RAM. VisualBoyAdvance doesn't (although VBA-RR and VBA-M do). BGB does. BGB loves you. Use BGB.

Coin Case Glitch is a ready-to-use ACE technique that has no complicated requirements, and there has been work done to exploit it directly, for example to get Celebi. However, Wrong Pocket TM ACE requires less steps and is easier to handle. Also, it doesn't corrupt the Stack, which is an annoying side-effect of Coin Case Glitch. Thus, it is a more efficient ACE source than Coin Case... as long as you have the good TM in the wrong Pocket, and that is precisely the catch.

Fortunately, it is possible to use Coin Case glitch to get this TM in that Pocket! This to say that nowadays, most people prefer to use Coin Case glitch just once, in order to setup Wrong Pocket TM ACE. Whether what you will be one of them or not is up to you, but if you stick with Coin Case, codes that are designed for Wrong Pocket TM won't work without a prior adaptation step. If you're playing a non-english game and thus don't have access to Coin Case, or if you're playing an english game but for some reason prefer not using Coin Case, you can directly jump to chapter III which explains the Wrong Pocket TM ACE.

This is basically how Coin Case works:

1 ) You need what we call a 'Slide Pokémon' in slot 3 of the party. Unlike Wrong Pocket TM ACE, for which any lvl2 Sentret without 6 in Sp. Def. would work, the 'Slide Pokémon' for Coin Case is less permissive. The perfect Pokémon for this is Rocky, the Onix you can trade for a lvl5 (this is important) Bellsprout in Violet City, or Muscle the Machop traded for a lvl13 Drowzee in Goldenrod Departement Store. If you don't have access to these trades, then you can use a lvl2 female Hoothoot (Route 29) but this has only 60% chance to work and you have no way to figure out if it will before you try. If it doesn't, you need to catch another Hoothoot. In all cases the 'Slide Pokémon' must never be trained of receive an EV-changing item, as well as never receive significant friendship, and must be fully healed (without status) every time you use the glitch.

2 ) You need a Quagsire with some specific requirements in slot 4 of the party. There is two sets of requirements, depending on if you want to write a code from your items, in a similar fashion that what was used in R/B/Y, or from box names. Both methods will be explained in this guide, and codes will be given for both. I actually suggest you prepare two Quagsire so you can use one or the other method at any time.
   For item codes, have Quagsire hold a Protein and know SLEEP TALK (TM35, basement of Goldenrod Store, requires Basement Key) as first move.
   For box codes, have Quagsire hold TM02 (giveaway at Ilex Forest, or bought at Goldenrod Store) and know RETURN (TM27, giveaway if your first Pokémon is happy at Goldenrod Store).
   
NOTE: If you can't or don't want to get these TMs, you can use a glitch called the Bad Clone Trick to get them. However, as this glitch is the entry (and hot) point of using Wrong Pocket TM ACE if you don't use Coin Case, doing it makes the whole Coin Case thing useless because you will now be able to use TM ACE. If you really want to learn about this, continue this guide and you'll find out how when we'll come to the part of preparing these Quagsire for Wrong Pocket TM ACE.

NOTE: Of course, you can setup only one ACE method for now, as you will learn from this guide how to use it to setup the other method.

3 ) Write whatever code you want using the method you chose. You will learn how to do this later in the guide, since it is exactly the same for Coin Case and Wrong Pocket TM ACE.

4 ) Enter Cherrygrove City's Pokémon Mart.

5 ) Exit it and take exactly 4 steps to the right.

6 ) Open Bellsprout or Machop's entry in the Pokédex.

7 ) Open the bag, switch Pocket at least once, then go to the Key Items Pocket.

8 ) Use Coin Case to launch the code.

Now before we explain how TM ACE works and how to make codes you will be able to use with one or the other method, here are some ressources you might want to look at:
* GCL's official page about the Coin Case Glitch which also gives some troubleshooting.
* Technical explanations about this glitch can be found in this thread
* Crystal_ made this video illustrating the glitch and explaining how to setup Wrong TM ACE with it (although this is detailed later in this guide).

III. WRONG POCKET TM ACE EXPLAINED

This technique relies on the fact that a TM or HM that is placed, using some glitch magic, in another Pocket than the TM/HM Pocket will execute code, instead of teaching a move. Unless you use the Coin Case ACE to do that, you will have to use one of the following techniques:
- The 'Withdraw Smash' technique, also known as Stack Corruption, is yet another ACE technique invented by Crystal_ and ISSOtm that I didn't mention before because it's not extremely relevant to use it for something else than setting up Wrong Pocket TM ACE. We won't detail this here because this technique is more complex and has more side-effect than the other one, but don't hesitate to watch this video if you want to learn it!
- The 'Expanded Balls Pocket' technique that is obsolete (although experienced users might want to still use it) but described in 'ANNEX 2: GET ACCESS TO PC ITEMS THROUGH THE BAG' in case you would want to use it.
- The 'Item Shifting' technique that is by far the most convenient, and is the one described below.

Credits for it essentially goes to Paco81, for the initial discovery of the Bad Clone Trick (and all those who worked to make this glitch better), luckytyphlosion and gifvex (for the discovery of the Item Shifting Glitch that is currently used to get the TM) and Háčky (for its initial work discovering the Expanded Balls Pocket glitch).

NOTE: You can use 'ANNEX 1: GET TM ACE SETUP THROUGH A FIRST-GENERATION GAME' instead of this whole part.

If you have selected the 'Item Shifting', you will now need to use the Bad Clone Trick in a certain way to get two Mystery Eggs. The most reliable way to do this, that guarantees that it will work, has been invented by uckytyphlosion and gifvex and is described in this pastebin. Once you're done, jump to 'III.4: Prepare the Party setup'.
NOTE: You can also use another yet similar method that is quicker BUT it will NOT work if your Trainer ID is superior to 65280 or is equal to 255 modulo 256 (which means 511, 767, 1023, etc.). This variant is described below in III.1, III.2 and III.3, and requires:
- A Machop with Seismic Toss as first move (stored in the PC).
- 5 clones of a Pokémon obtained by trading with an NPC that has never been trained before. If this is impossible to you, use clones of any caught Pokémon that has never been trained before, but note that there is 3% chance it won't work.
- At least $200.
- Great Ball x1 and Poké Ball x2 as first and second items in the Balls Pocket (in this order). Any other balls must be stored in the PC.
- 1 Protein.

   III.1: Obtain a Glitch Pokémon n°000

Go to the Daycare, south of Goldenrod, and clone any Pokémon while making sure that you reset your game right after saying 'YES' to the question about save replacement. If it worked, the obtained clone will be level 0 and won't have a name; this is what we call a Bad Clone.
NOTE: Any clone without name but not at level 0 won't work.
NOTE: Getting a Bad Clone is easier when the box already contains 15 Pokémon, but never had more than 15 Pokémon.

Make a party of the Bad Clone and the 5 clones.

Give the Bad Clone to the Daycare lady and immediately take it back. It will now be a Glitch Pokémon with n°000.

   III.2: Use the Glitch Pokémon n°000 to get Mystery Eggs

Put the glitch Pokémon n°000 in front at the top of your party, and go to Bill's PC.

Choose 'MOVE PKMN W/O MAIL' and it will seem like your party is empty. Thanks to this, you can move the Machop at first slot (therefore you now have 7 Pokémon).

Exit the PC and give the glitch Pokémon n°000 to the Daycare lady again. Don't take it back this time.
NOTE: It is also possible to move it a slot 7 instead, and give it to the lady only after finishing this step.

Go back to Bill's PC and store Machop. It will now have a Mystery Egg attached.

Before taking the Egg from it, clone this Pokémon at least once, then take both Mystery Eggs.
NOTE: I recommend you do a backup clone also, in case you need other Eggs.

   III.3: Use Mystery Eggs to get TM17

Move the Mystery Eggs in the Key Items Pocket so that they are the last items in the Pocket (do not swap them together).
NOTE: For this trick to work, the Key Items Pocket must be full. If you don't have enough Key Items, you can keep cloning the Machop to get more Eggs in order to fill the Pocket.

Now, swap the first Mystery Egg with the second Mystery Egg (order is important). A S.S. Ticket will appear.

Move to the Balls Pocket. The Great Ball x1 and Poké Ball x2 should have turned into a Master Ball x5 and Ultra Ball x255 respectively (255 is indicated by a [tile]5).

Toss 47 Ultra Balls from the Ultra Ball x255 stack.

Swap the Master Ball x5 with the Ultra Ball x208.

Deposit the Mystery Egg in the Player's PC.

Withdraw the Mystery Egg from the Player's PC. In the Balls Pocket, the Ultra Ball x208 and Master Ball x5 should now have turned into a TM17 x1 and Poké Ball x255.

Store 255 (all) from the Poké Ball x255 stack in the Player's PC.

   III.4: Prepare the Party setup

Get TM02 (giveaway at Ilex Forest, or bought at Goldenrod Store), TM27 (giveaway if your first Pokémon is happy at Goldenrod Store) and TM35 (basement of Goldenrod Store, requires Basement Key).
NOTE: You can also use 'I.2: Use the Glitch Pokémon n°000 to get Mystery Eggs' again twice, with instead of Machop a Pokémon having ZAP CANNON (Magnemite for example) as first move the first time, and a Pokémon having ENCORE as first move (Clefairy, for example) the second time. These Pokémon will hold TM02 and TM35.
NOTE: In case you only have unhappy Pokémon and receive TM21 (FRUSTRATION) instead of TM27, you can perform 'I.2: Use the Glitch Pokémon n°000 to get Mystery Eggs' yet again with a Pokémon having FRUSTRATION as first move to get TM27.
   
To execute box codes, get the Quagsire to know RETURN as first move (using TM27), and give it TM02 to hold. To execute item codes, get the Quagsire to know SLEEP TALK as first move (using TM35), and give it a Protein to hold.
NOTE: I suggest you actually do both, and store the Quagsire you don't use when you don't.

You now need a 'Slide Pokémon'. Catch either a Bellsprout in Violet City that you raise at lvl5 then trade for Rocky the Onix with the NPC in Violet City, or a Drowzee that you raise at lvl13 then trade for Muscle the Machop with the NPC in Goldenrod Departement Store. This Pokémon must then never win any battle, or you won't be able to use it anymore.
NOTE: Instead, you can catch a lvl2 Sentret in Route 29, and make sure it doesn't have a 6 in its SP. DEF. stat (if so, catch another - this stat value appears in 31.25% of lvl2 Sentret). This Pokémon must then never win any battle, or you won't be able to use it anymore.

Place the 'Slide Pokémon' (fully healed, without status) in slot 1 of your party, and the good Quagsire in slot 2 in accordance with what you want to do.

IV. WRITE AND EXECUTE A CODE, REGARDLESS OF THE METHOD

At this point, you know how to have your setup ready to execute code and you just need to write it. We will review here some codes, either Item Codes and Box Codes, for use with either Coin Case or Wrong Pocket TM17, as well as explain how to make some of your own!

NOTE: Unfortunately, there is no way to use most, if not all, box codes in the German version.

   IV.1: GET TM17 IN THE WRONG POCKET (Box)
   This code is exclusively for Coin Case ACE.
   
NOTE: Of course, this code is destined to Coin Case users willing to have TM17 on the Item Pocket to shift on Wrong Pocket TM ACE (the code is from Crystal_'s video linked in chapter II). It would, of course, be useless to do that with TM ACE, and since it contains a way to fix the Stack, doing it will not work.

Make that the first item in your Item Pocket is disposable, as it will be replaced by TM17.

Go to Bill's PC and use the CHANGE BOX option to rename Box 1 to 5 into as follows:
Ap0'déy♀Pk (Pk is an available symbol, not "P followed by k")
'v't'véé'l2h
'd'd2'v9.9't
é?2hhhhh
h'm♀♀

Follow step 4 to 8 in chapter II while making sure the 'Slide Pokémon' and Quagsire with RETURN and TM02 are placed in the right spots (3 and 4). TM17 will then appear in your Item Pocket.

   IV.2: GET ANY TM/HM x255 CODE (Box)

Go to Bill's PC and use the CHANGE BOX option to rename Box 1 into Ap09é_♀'d (english game), Ap09é_♀ì (italian and spanish game) or Ap09é_♀n' (french game) while replacing _ by the character corresponding to the TM in the following table:
(space) = TM02
A = TM03
B = TM04
C = TM05
D = TM06
E = TM07
F = TM08
G = TM09
H = TM10
I = TM11
J = TM12
K = TM13
L = TM14
M = TM15
N = TM16
O = TM17
P = TM18
Q = TM19
R = TM20
S = TM21
T = TM22
U = TM23
V = TM24
W = TM25
X = TM26
Y = TM27
Z = TM28
( = TM29
) = TM30
: = TM31
; = TM32
[ = TM33
] = TM34
a = TM35
b = TM36
c = TM37
d = TM38
e = TM39
f = TM40
g = TM41
h = TM42
i = TM43
j = TM44
k = TM45
l = TM46
m = TM47
n = TM48
o = TM49
p = TM50
q = HM01
r = HM02
s = HM03
t = HM04
u = HM05
v = HM06
w = HM07
NOTE: As of now, to my knowledge there is no equivalent to this for german games.

Use TM17 from the Wrong Pocket (or follow step 4 to 8 in chapter II if you use Coin Case) while making sure the 'Slide Pokémon' and Quagsire with RETURN and TM02 are placed in the right spots (1 and 2 for TM ACE, 3 and 4 for Coin Case). The TM/HM x255 will appear in the TM/HM Pocket.

   IV.3: INCREASE/DECREASE THE QUANTITY OF AN ITEM CODE (Items)

Use 'IV.2: GET ANY TM/HM x255 CODE' to get TM10 and TM23, unless you already have them in the necessary quantities below.
NOTE: TM10 can be bought.

Get (unless you already have), then store the following items in the PC, in that order:
Any Item x(any quantity)
Any item x(any quantity)
Fresh Water x44
Poké Ball x38
TM23 x52 (to increase) or x53 (to decrease)
[ONLY FOR COIN CASE: X Defense x1] (otherwise replace with Any item x(any quantity))
[ONLY FOR COIN CASE: X Speed + x1] (otherwise replace with Any item x(any quantity))
[ONLY FOR COIN CASE: TM06 x195 (use IV.2 and IV.3 to get them)] (otherwise replace with Any item x(any quantity))
[ONLY FOR COIN CASE: HM03 x18 (use IV.2 and IV.3 to get them)] (otherwise replace with Any item x(any quantity))
TM10 x(any quantity)
The item that must change x(any quantity)
Any other items in any quantities can go from here on

Use TM17 from the Wrong Pocket (or follow step 4 to 8 in chapter II if you use Coin Case) while making sure the 'Slide Pokémon' and Quagsire with SLEEP TALK and Protein are placed in the right spots (1 and 2 for TM ACE, 3 and 4 for Coin Case) and the 11th item will get or lose one unit.
NOTE: Decreasing the quantity is very useful if the item is x1; this way, using the code twice will set the quantity to x255, and then you can toss as many units as you want to reach the quantity you actually need.

   IV.4: GET ANY ITEM CODE (Items)

Use 'IV.2: GET ANY TM/HM x255 CODE' to get TM10 and TM23, unless you already have them in the necessary quantities below.
NOTE: TM10 can be bought.

Use this list: http://pastebin.com/raw/arPmsvYu to find an item that you have or can easily buy/get and is the closest possible (above or below) of the wanted item in the Item column. Get this selected item.

Get (unless you already have), then store the following items in the PC, in that order:
Any Item x(any quantity)
Any item x(any quantity)
Fresh Water x43
Poké Ball x38
TM23 x52 (if the wanted item is below the selected one) or x53 (if the wanted item is above the selected one)
[ONLY FOR COIN CASE: X Defense x1] (otherwise replace with Any item x(any quantity))
[ONLY FOR COIN CASE: X Speed + x1] (otherwise replace with Any item x(any quantity))
[ONLY FOR COIN CASE: TM06 x195 (use IV.2 and IV.3 to get them)] (otherwise replace with Any item x(any quantity))
[ONLY FOR COIN CASE: HM03 x18 (use IV.2 and IV.3 to get them)] (otherwise replace with Any item x(any quantity))
TM10 x(any quantity)
The selected item x(any quantity)
Any other items in any quantities can go from here on

Use TM17 from the Wrong Pocket (or follow step 4 to 8 in chapter II if you use Coin Case) while making sure the 'Slide Pokémon' and Quagsire with SLEEP TALK and Protein are placed in the right spots (1 and 2 for TM ACE, 3 and 4 for Coin Case) and the 11th item will become the one directly below or above in the list. Thus, use TM17 as many times as necessary to reach the wanted item.

   IV.5: MEMORY EDITOR CODE, A.K.A. GAMESHARK SIMULATOR (Items or Box)
   
The box version of this code is tricky and described in Crystal_'s videos. First use 'IV.2: GET ANY TM/HM x255 CODE' to get TM09 (unless you already have it) and make Quagsire hold it instead of TM02, then click here for english games (from 10:29) and click here for non-english games (from 9:41). For the items version of the code, do as follows.

If you want to simulate a G/S Gameshark code (which always is 01XXYYZZ):
- Use the Windows Calculator to convert XX into Decimal and note the value.
- Do the same with YY.
- Check in this table http://pastebin.com/raw/arPmsvYu the item that matches ZZ.
If you want to edit a WRAM address value instead:
- Use one of the two following sources to find the $ZZYY memory address that contains the data you want to edit. The first one is more convenient and easier to use, but less exhaustive than the second one.
* Datacrystal's G/S RAM MAP: https://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Gold_and_Silver:RAM_map
* Pokémon Gold(/Silver) disassembly project: https://github.com/PikalaxALT/pokegold/blob/master/wram.asm
- Determine the XX value you want to put in the address. For example, if the address is the one that controls the quantity of the first item in the Balls Pocket and you want it to be 5, then XX is 5. If the address controls what the first item is and you want it to be a Master Ball, use this table http://pastebin.com/raw/arPmsvYu to see that Master Ball's hex ID is 01. Therefore XX would be 01.
- Use the Windows Calculator to convert XX into Decimal and note the value.
- Do the same with YY.
- Check in the aforementioned table the item that matches ZZ.

Use 'IV.2: GET ANY TM/HM x255 CODE' to get TM10 and TM42, unless you already have them in the necessary quantities below. If ZZ matches a TM and you need it, use it also for this TM.
NOTE: TM10 can be bought.

Use 'IV.4: GET ANY ITEM CODE (Items)' to get PP Up, unless you already have one (or more). If ZZ doesn't match a TM and you need it, use it also for this item.

Get (unless you already have), then store the following items in the PC, in that order:
Any Item x(any quantity)
Any item x(any quantity)
PP Up x(decimal conversion of XX)
TM42 x(decimal conversion of YY)
Item that matches ZZ x3
[ONLY FOR COIN CASE: X Defense x1] (otherwise nothing)
[ONLY FOR COIN CASE: X Speed + x1] (otherwise nothing)
[ONLY FOR COIN CASE: TM06 x195 (use IV.2 and IV.3 to get them)] (otherwise nothing)
[ONLY FOR COIN CASE: HM03 x18 (use IV.2 and IV.3 to get them)] (otherwise nothing)
TM10 x(any quantity)
Any other items in any quantities can go from here on

Use TM17 from the Wrong Pocket (or follow step 4 to 8 in chapter II if you use Coin Case) while making sure the 'Slide Pokémon' and Quagsire with SLEEP TALK and Protein are placed in the right spots (1 and 2 for TM ACE, 3 and 4 for Coin Case) to edit the address.

   IV.6: CHANGING ID CODE (Items)
   Particular usage of 'IV.5: MEMORY EDITOR CODE, A.K.A. GAMESHARK SIMULATOR (Items or Box)'

Use 'IV.2: GET ANY TM/HM x255 CODE' to get TM10, TM42 and TM18, unless you already have them in the necessary quantities below.
NOTE: TM10 and TM18 can be bought.

Use 'IV.4: GET ANY ITEM CODE (Items)' to get PP Up, unless you already have one (or more).

Using the Windows Calculator, convert the ID you want into hexadecimal (example: 13579 translates into 350B). Then, split this hexadecimal ID number in two parts (example: in this case, you get '35' and '0B').

Use this list: http://pastebin.com/raw/arPmsvYu to find the number from the Decimal column corresponding to the SECOND part of the hexadecimal ID number (read in the Hexadecimal column) (example: in this case, 0B corresponds to 11).

Use 'IV.3: INCREASE/DECREASE THE QUANTITY OF AN ITEM CODE (Items)' on PP Up to give them the quantity corresponding to this previously obtained number.

Get (unless you already have), then store the following items in the PC, in that order:
Any Item x(any quantity)
Any item x(any quantity)
PP Up x(the obtained number)
TM42 x162
TM18 x3
[ONLY FOR COIN CASE: X Defense x1] (otherwise nothing)
[ONLY FOR COIN CASE: X Speed + x1] (otherwise nothing)
[ONLY FOR COIN CASE: TM06 x195 (use IV.2 and IV.3 to get them)] (otherwise nothing)
[ONLY FOR COIN CASE: HM03 x18 (use IV.2 and IV.3 to get them)] (otherwise nothing)
TM10 x(any quantity)
Any other items in any quantities can go from here on

Use TM17 from the Wrong Pocket (or follow step 4 to 8 in chapter II if you use Coin Case) while making sure the 'Slide Pokémon' and Quagsire with SLEEP TALK and Protein are placed in the right spots (1 and 2 for TM ACE, 3 and 4 for Coin Case).

Use this list: http://pastebin.com/raw/arPmsvYu to find the number from the Decimal column corresponding to the FIRST part of the hexadecimal ID number (read in the Hexadecimal column) (example: in this case, 35 corresponds to 53).

Use 'IV.3: INCREASE/DECREASE THE QUANTITY OF AN ITEM CODE (Items)' on PP Up to give them the quantity corresponding to this previously obtained number.

Toss or withdraw 1 TM42, so you now have TM42 x161 in the PC.

Use TM17 from the Wrong Pocket (or follow step 4 to 8 in chapter II if you use Coin Case) while making sure the 'Slide Pokémon' and Quagsire with SLEEP TALK and Protein are placed in the right spots (1 and 2 for TM ACE, 3 and 4 for Coin Case). You now have your wanted ID!

   IV.7: MAKE THE SIXTH POKEMON IN PARTY SHINY CODE (Items)
   Particular usage of 'IV.5: MEMORY EDITOR CODE, A.K.A. GAMESHARK SIMULATOR (Items or Box)'

Use 'IV.2: GET ANY TM/HM x255 CODE (Box)' to get TM10 and TM28, unless you already have them in the necessary quantities below.

Use 'IV.4: GET ANY ITEM CODE (Items)' to get Polkadot Bow and Metal Powder.
NOTE: You can also trade respectively Jigglypuff and Ditto from R/B/Y, they will hold these items.

Use 'IV.3: INCREASE/DECREASE THE QUANTITY OF AN ITEM CODE (Items)' on Polkadot Bow and Metal Powder to give them the quantity of x119.

Get (unless you already have), then store the following items in the PC, in that order:
Any Item x(any quantity)
Any item x(any quantity)
X Accuracy x47
TM28 x62
Polkadot Bow x119
Metal Powder x119
[ONLY FOR COIN CASE: X Defense x1] (otherwise nothing)
[ONLY FOR COIN CASE: X Speed + x1] (otherwise nothing)
[ONLY FOR COIN CASE: TM06 x195 (use IV.2 and IV.3 to get them)] (otherwise nothing)
[ONLY FOR COIN CASE: HM03 x18 (use IV.2 and IV.3 to get them)] (otherwise nothing)
TM10 x(any quantity)
Any other items in any quantities can go from here on

Use TM17 from the Wrong Pocket (or follow step 4 to 8 in chapter II if you use Coin Case) while making sure the 'Slide Pokémon' and Quagsire with SLEEP TALK and Protein are placed in the right spots (1 and 2 for TM ACE, 3 and 4 for Coin Case) and the sixth Pokémon will be Shiny.
   
   IV.8: GOTTA CATCH 'EM ALL CODE (Box)
   
The standard version of this code is easy and quick to perform:
- For English games, see this post for that gives it for Wrong Pocket TM ACE and Coin Case ACE (a video is also available here). This code also gives shiny Pokémon.
- For italian and spanish games, do the same as English Wrong Pocket TM but replace 'v with ° and 'd with ì in italian and spanish games. This code also gives shiny Pokémon.
- For french games, see this post.
- There doesn't seem to be a German adaptation to this so far.

NOTE: If you don't like this code, you can also apply another method that is significantly longer but uses one code for all Pokémon. This method is explained in Crystal_'s video here.

   IV.9: MORE AND COMPETITIVE CODES (Box)

More codes made by the members of GCLF can be found in this thread. Don't hesitate to read it, but pay attention to what they have been designed for (Coin Case, Wrong Pocket TM, or both).

This thread here by FMK gives more box codes and explain how to convert Coin Case box codes into Wrong Pocket TM box codes. It also gives a slightly different process with TM25 instead.

For some competitive battling codes, check this thread by Torchickens.

   IV.10: A WORD ON HOW TO WRITE COMPLEX CODES

As of now, you know how to create your own code to change a single value in the game's RAM. That's very cool, but you might want to do more complex codes that will affect several values at once or create your own scripts. To do that, you'll need to understand how ACE works.

In G/S, using TM17 in the wrong pocket makes the game read code from address $FA47, which is located in what we call Echo RAM. Starting at $E000, this Echo RAM is a duplicate of WRAM, the memory section going from $C000 to $DFFF which stores the game's data. $FA47 thus contains exactly the same value than $DA47, the caught data of your current first Pokémon. Registered inside two consecutive addresses ($DA47 and $DA48 in the case of ), caught data is an unused section of the Pokémon's data, so its value is always 00. If you ever heard about people using TM25 instead, well the concept is the same, but it reads from the Defense EV of the second Pokémon. Finally, using Coin Case is no different, but this time we read data from the third Pokémon!

In all these cases, writing useful code from Pokémon data is almost impossible because it would require specific stats, EV, sometimes even IV... so we need to get the hell out of this place to reach another section of WRAM in which we have more control (either items or box names). Now let's explain the theory with the case of TM17 and let's take a look at the RAM's data for party Pokémon 1 and 2 (you can see all of this using the RAM Map)

Pokémon 1
($DA2A to $DA46 are all the other datas that are not useful here)
$DA47 to $DA48 = Caught Data
$DA49 = Level
$DA4A to $DA4B = Status
$DA4C to $DA4D = HP
$DA4E to $DA4F = Max HP
$DA50 to $DA51 = Attack
$DA52 to $DA53 = Defense
$DA54 to $DA55 = Speed
$DA56 to $DA57 = Special Defense
$DA58 to $DA59 = Special Attack
Pokémon 2
$DA5A = Species
$DA5B = Item Held
$DA5C to $DA5F = Moves

Every address mentioned here has an hexadecimal value corresponding to the data of your Pokémon (for example, if the attack stat of Pokémon 1 is 21, the value of $DA51 is 15). You must now understand that when the game reads code from a point, it interprets the hexadecimal values into instructions called opcodes. In the corresponding list we've provided before for Hex/Dec/Items correspondance, you also have the opcode for each hex, and you can also find here on this more complete table. To take an example, 41 matches the instruction 'ld B,C'.

I don't want (and it's above my knowledge) to explain all opcodes here, but you can actually find a lot of useful ressources on the Internet (I'll link some later in this guide) but we're going to review some basics :
- nop (matching hexadecimal 00) means no operation. The game just continue reading.
- ld means load, in the way that a variable is loaded with ('becomes') a value.
- inc and dec command to increase or decrease the value of a given variable.
- add and sub means that a given value is added or substracted to the variable A (always).
- jp is a jump. It allows you to move to a given part of the WRAM, that can be either directly set by the user or contained in a duo of variable, HL.
- jr is also a jump, but a relative one. It jumps at a given distance of the current reading position.
- ret is mainly used, here, to end your code (in fact, it pops the top of the stack to the program counter).

At first, we want to jump at $D61B (third stored item) or $D8C0 (box 1 name, character two). In the latter case, that translates to "jp D8C0". We will then use the instruction coded by hexadecimal C3, which is a jump at the position given by the two following hexadecimals (reversed - to understand why, read Wikipedia's page about endianness). That means if the game reads C3 C0 D8, then it will jump at box name 1.

We can't easily control the data we have access to in Pokémon 1 when using TM17, but we could use the species (hex:C3 is Quagsire in the list), held item (hex:C0 is TM02) and first move of Pokémon 2 (hex:D8 is RETURN) because that is not a big requirement. Our best shot is then to make sure Pokémon 1's data matches 'unharmful opcodes' that won't jump or will only affect variables we don't care about to so it can 'slide' until Quagsire: this is why the first Pokémon is called 'Slide Pokémon'. The same goes for Pokémon 3 with Coin Case, although it reads more ot its data, so the 'Slide Pokémon' is less permissive. However, in the case of TM25, we can actually affect the EV of the Pokémon by training it until it reaches these values, so it's not mandatory to use a 'Slide Pokémon' (but then, it's longer to setup).

Let's now review the gameshark simulation/single-address value changing code (IV.5). Keep in mind what we want to do here is to put BB as the value of address $DDCC. PP Up's hex ID is 3E, TM42 is EA, and TM10 is C9. Remember that after the address of an item comes the address of its quantity, and only then we can proceed with item 2.
Code: [Select]
$D61B 3E ld A,XXAs mentioned in the table by the small '2' under this opcode, it takes two bytes: XX will be the value of the following address ($D61C, the quantity of item 3 - in our case, "BB"). This instruction thus says 'ld A,BB' and the variable A becomes BB. Therefore, $D61C is not read as an opcode, and we proceed.
Code: [Select]
$D61D EA ld XXXX,A (3 octets) This instruction takes 3 bytes so we need to consider the two following ones.
$D61E "CC"
$D61F "DD" → ld (DDCC),A The parenthesis indicates it's the value of XXXX that changes. Then, the value of $DDCC becomes A which is now BB!
$D620 03 inc BC Increase the duo of variable b and c. It's just a placeholder here, we don't use these variables.
The 4 following items in the code (instructions read from $D621 to $D628) are exclusive to Coin Case. This is because Coin Case has a major drawback compared to Wrong Pocket TM ACE which we mentioned before: it destroys the stack. This set of instructions is meant to fix it, and thus are not used with Wrong Pocket TM ACE. Let's finish this code:
Code: [Select]
$D629 C9 ret Code reading ends.
Isn't that easy? See this other example with the code that changes Stored Item 11 (IV.4). This item's address is $D62B. You should be able to understand that the code read by the game in this case is 2E 2B 05 26 D6 34 [Coin Case Set] C9.
Code: [Select]
$D61B 2E ld l,XX (2 bytes)
$D61C 2B → ld l,2B Variable l becomes 2B.
$D61D 05 dec b Variable b is decreased. This is still a placeholder.
$D61E 26 ld h,XX (2 bytes)
$D61F D6 → ld h,D6 Variable l becomes D6.
$D620 34 inc (hl) Value of address hl ($D62B) is increased. We're done!
$D621 to $D628 Coin Case set.
$D629 C9 ret Code reading ends.

Writing codes with items is easy in theory because you have access to almost all opcodes. However, it can be a bit unpractical when it comes to gathering items. Writing box codes is of course quicker and easier, but you won't have access to all opcodes because the first character, the space, has an hex ID of 7F (followed by A, which has an hex ID of 80). This is why box codes are longer than item codes, since it requires to spam add and sub to workaround the impossibility to use 2-bytes ld. Also, some characters are exclusive to languages, which means codes have to be translated for each language! It is rather easy in italian and spanish, very difficult in french (because of the lack of sub) and almost impossible in german because it doesn't even have 3-bytes ld.

This guide won't get into details for box codes, because it would require more lessons on opcodes and how to use flags. If you're new to this, you can stick to item codes, or ask here for specific help with your codes! We can always go further and ACE can be also used to program something, in the way TheZZAZZGlitch did a Pong game in R/B/Y! Everything cannot be included in this guide, but there is a lot for you to discover. Your very own ACE legend is about to unfold! A world of dreams and adventures with ACE awaits! Let's go!

Useful ressources:
* This website's guide to GB Programming
* A GameBoy opcode summary can be found here for basic understanding of what opcodes do.
* A more detailed guide with syntax is available on this website.

ANNEX 1: GET TM ACE SETUP THROUGH A FIRST-GENERATION GAME
   
You will need:
- A R/B/Y game in which you can perform code execution using either the 8F item, the wsl'm item, or the 4F item (this is NOT a guide to code execution in first generation games, it assumes you already have one of these items and a proper setup to use it. If you don't know what we're talking about here, please go back to the normal process).
- The following TMs (at least 1 of each): TM01, TM14, TM18, HM03.
- At least 1 of each of the following : Thunderstone, Max Revive, X Accuracy, Lemonade, Water Stone, Soda Pop.
- 34 Ice Heal stored in the PC.
- Some other things that can easily be bought in-game.

   ANNEX 1.1: Gather the needed items

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
Thunderstone x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have Thunderstone x0 instead of x1. Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
Max Revive x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have Max Revive x0 instead of x1. Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
X Accuracy x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have X Accuracy x0 instead of x1. Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
Lemonade x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have Lemonade x0 instead of x1. Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
Water Stone x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have Water Stone x0 instead of x1. Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
Soda Pop x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have Soda Pop x0 instead of x1. Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
HM03 x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have HM03 x0 instead of x1 (but you won't seen its number). Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
TM18 (TM17 in Yellow) x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have the TM x0 instead of x1. Store them in the PC.

Place the following items, in that order, in your pack:
8F (4F or wsl'm in Yellow)
TM14 x1
Poké Ball x45
Revive x3
TM01 x(any quantity)
Any other items in any quantities can go from here on

Use the 8F (4F or wsl'm in Yellow) item. You should now have TM14 x0 instead of x1. Store them in the PC.

   ANNEX 1.2: Create custom jump Pokémon
   
Make sure you have at least 2 Pokémon in the active box.
NOTE: If you're playing Yellow, these 2 Pokémon are part of your setup.

Withdrawing items from the x0 stacks in your PC, place the following items, in that order, in your pack:
Any item x(any quantity)
8F (4F or wsl'm in Yellow)
Thunderstone x190 in english R/B (x189 in english Yellow, x195 in non-english R/B, x194 in non-english Yellow)
TM18 x4
Max Revive x69
X Accuracy x205 in english R/B (x204 in english Yellow, x210 in non-english R/B, x209 in non-english Yellow)
Lemonade x195
Water Stone x12
TM14 x3
Ice Heal x34
HM03 x25
Soda Pop x119
TM01 x(any quantity)

Use the 8F (4F or wsl'm in Yellow) item.

Toss 33 Thunderstone.

Toss 33 X Accuracy.

Withdraw 165 TM14 from the PC.

Toss all HM03 and withdraw 188 HM03 from the PC (it takes time!).

Place the following items, in that order, in your pack:
Any item x(any quantity)
8F (4F or wsl'm in Yellow)
Thunderstone x157 in english R/B (x156 in english Yellow, x162 in non-english R/B, x161 in non-english Yellow)
TM18 x4
Max Revive x69
X Accuracy x172 in english R/B (x171 in english Yellow, x177 in non-english R/B, x176 in non-english Yellow)
Lemonade x195
Water Stone x12
TM14 x168
Ice Heal x34
HM03 x188
Soda Pop x119
TM01 x(any quantity)

Use the 8F (4F or wsl'm in Yellow) item.

Withdraw and trade the first two Pokémon in your active box to your G/S game: both will hold a Mystery Egg. They must NEVER win any battle, or you won't be able to use them anymore.

   ANNEX 1.3: Use Mystery Eggs to get TM25

Take both Mystery Eggs and place them in the Key Items Pocket so that they are the last items in the Pocket (do not swap them together).
NOTE: For this trick to work, the Key Items Pocket must be full. If you don't have enough Key Items, you can clone one or both Pokémon before taking the Egg, to get more Eggs in order to fill the Pocket.

Now, swap the first Mystery Egg with the second Mystery Egg (order is important). A S.S. Ticket will appear.

Move to the Balls Pocket. The Great Ball x1 and Poké Ball x2 should have turned into a Master Ball x5 and Ultra Ball x255 respectively (255 is indicated by a [tile]5).

Toss 39 Ultra Balls from the Ultra Ball x255 stack.

Swap the Master Ball x5 with the Ultra Ball x216.

Deposit the Mystery Egg in the Player's PC.

Withdraw the Mystery Egg from the Player's PC. In the Balls Pocket, the Ultra Ball x216 and Master Ball x5 should now have turned into a TM25 x1 and Poké Ball x255.

Store 255 (all) from the Poké Ball x255 stack in the Player's PC.
   
   ANNEX 1.4: Prepare the Party setup

Place the Pokémon that was FIRST in the R/B/Y's PC box at slot 2 of your party everytime you need to execute item codes during 'IV. WRITE AND EXECUTE A CODE' (instead of the Quagsire with SLEEP TALK and Protein), and place the Pokémon that was SECOND in the R/B/Y's PC box at slot 2 of your party everytime you need to execute box codes during 'IV. WRITE AND EXECUTE A CODE' (instead of the Quagsire with RETURN and TM02). In both cases, you won't need any 'Slide Pokémon' in slot 1.

Use TM25 from the Balls Pocket everytime you need to execute codes during 'IV. WRITE AND EXECUTE A CODE' (instead of TM17).

ANNEX 2: GET ACCESS TO PC ITEMS THROUGH THE BAG

You will need:
- A Pokémon with CLAMP (Shellder or Cloyster) as first move, and another with LOW KICK as first move (Machop for example), both stored in the PC.
- Some useless Pokémon.
- At least $200.
- TM17 stored in the PC.

   ANNEX 2.1: Obtain a Glitch Pokémon n°000

Go to the Daycare, south of Goldenrod, and clone any Pokémon while making sure that you reset your game right after saying 'YES' to the question about save replacement. If it worked, the obtained clone will be level 0 and won't have a name; this is what we call a Bad Clone.
NOTE: Any clone without name but not at level 0 won't work.
NOTE: Getting a Bad Clone is easier when the box already contains 15 Pokémon, but never had more than 15 Pokémon.

Make a party of the Bad Clone and 5 other useless Pokémon (or clones).

Give the Bad Clone to the Daycare lady and immediately take it back. It will now be a Glitch Pokémon with n°000.

   ANNEX 2.2: Use the Glitch Pokémon n°000 to get Machine Part and SecretPotion

Put the glitch Pokémon n°000 in front at the top of your party, and go to Bill's PC.

Choose 'MOVE PKMN W/O MAIL' and it will seem like your party is empty. Thanks to this, you can move the CLAMP Pokémon at first slot (therefore you now have 7 Pokémon).

Exit the PC and give the glitch Pokémon n°000 to the Daycare lady again. Don't take it back this time.

Go back to Bill's PC and store the CLAMP Pokémon. It will now have a Machine Part attached.

Before taking the Part from it, clone this Pokémon at least once, then take both Machine Part.

Redo the whole sub-step again with the other Pokémon to get 2 SecretPotion.

   ANNEX 2.3: Trigger the Expanded Balls Pocket

Place the obtained items in the last position of your Key Items Pocket, just like in this screenshot: http://www.prama-initiative.com/OAC/AAIDPCALPDPBDSEDMI.png

In your pack, make sure to have ABSOLUTELY NOTHING in your Balls Pocket (if so, toss them or store them). Now, go to the Key Items pocket, swap both Machine Part.

Normally, you should now see an Iron and a Apricorn in the pack. Swap the first SecretPotion with the Apricorn.

Swap the second SecretPotion with the Apricorn again. Both should now be at last position of your pack. Now swap both Secret Potion.

Go in the Balls Pocket of your pack, you should be able to go down, beyond the CANCEL button. If you keep going down, you will now see your PC items! This is useful because it gives you a direct vision of what's is in the PC when you want to execute a code, but also because everytime you will store a non-Ball item into the PC from the Balls Pocket, this item gets duplicated. However, you won't be able to buy/get any Balls without using 'II.3: GET ANY ITEM CODE (Items)'.

In case you want to remove this, use 'IV.4: GET ANY ITEM CODE (Items)', 'IV.3: INCREASE/DECREASE THE QUANTITY OF AN ITEM CODE (Items)' and 'IV.2: GET ANY TM/HM x255 CODE (Box)', to get PP Up x0, TM42, TM22 and TM10, unless you already have them. Then, have this in your PC, in that order, and use TM17.
PP Up x0
TM42 x252
TM22 x3
TM10 x(any quantity)
Any other items in any quantities

GENERAL CONCLUSION

Alright, I'mma stop here with this guide for now. I know I have to add some colours and more BBCodes, but please mention me any improvement, any mistake, any thread that gives more interesting codes, and don't hesitate to ask questions!
2
Hello everyone,

In this thread, asphere asked for assistance regarding using Silver ACE to change its Trainer ID to 13579. I've decided to help him and we've been talking by PM about the best method he could use to reach his goal, and I felt interesting to post the results of this discussion here... for science!

As you all know, 2G has a lot of different ACE methods. Since asphere plays an italian game, Coin Case ACE was therefore excluded. As of now, Glitch Pokédex ACE, Bad Clone ACE and Move 0x00 ACE have not been validated in european games, so I decided to put them aside also. Thanks to the work of the very talented Crystal_ and IssoTM, we now know yet another ACE method, Withdraw Smash ACE, which works in european games, but of course, it wasn't the case back then.

So that leaves only one ACE method, the horrible and very painful TM Code Execution, which by chance, happens to be a little bit less a pain in the ass in G/S games, since unlike in Crystal, you can technically do it without using another game if you're willing to do an insane amount of battles (and use the Bad Clone Trick). Since asphere mentions he has a Yellow, we will avoid any complications by designing a method that uses Item ACE in Yellow (in this case ws*l’||lm|| since he already knew how to do it, although I must insist that 4F is a better shot) to generate a proper TM ACE in Silver.

The process I wrote in this occasion starts from scratch. The point of it is not to be the most efficient way to do it, but to the most newbie-friendly possible. I chose not to use MissingNo. in any ways because it may be tricky in some localizations (but it can be used to get the ws*l’||lm||) but rather I will use ACE to generate the proper amount of every item I need for the glitch. This step-by-step whole process basically allows a player which has nothing more than a Yellow game, a Silver game, the ws*l’||lm|| item and some TMs to change its trainer ID.

As you will read, the result is an incredibly complex process (although by testing it I must say it's really not that long to do) that doesn't seem to make any sense and it's probably the most stupid thing you will read today... but it absolutely works. I'm not expecting anyone else to do such a thing, and I'm posting it "for the record". Asphere is doing it right now, and he's happy, because he will have his wanted ID of 13579... even if I have no idea why would someone want to do that!

Oh, and I'm pretty sure ISSOtm would want me to say that this process won't work with classic VBA, because of Echo RAM.

Before starting, you will need in Yellow:
- 2 different Tangela with 233 HP currently, and all the following Pokémon (1 of each): Nidoking, Metapod, Spectrum, Flareon, Parasect, Kadabra, Tentacool, Grimer.
- The ws*l’||lm|| item.
- The following TMs (at least 1 of each): TM01, TM14, TM50, TM11, TM34 and TM18.
- Some other things that can be easily bought ingame.
In Silver, you will need:
- The following TMs: TM10 x1, TM18 x3, TM23 x53, TM25 x1, TM42 x1. All those can be bought ingame (money or casino chips) except for TM23 that you get from Jasmine. Unfortunately you will have to clone it.
- Some other things that can be easily bought ingame.

STEP I: PREPARE POKEMON MODIFICATION IN YELLOW

Place the following Pokémon, in that order, in PC Box 1 and make sure this box is active (no extra Pokémon!).
Tangela (with 233 current HPs)
Nidoking
Metapod
Spectrum
Flareon
Parasect
Kadabra
Tentacool
Grimer
Any Pokémon

Place the following items, in that order, in your pack.
ws*l’||lm||
Carbos x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have Carbos x0 instead of x1. Click on it and toss precisely 38 Carbos. You should now have x218 Carbos, represented by a glitch number. Store them in the PC.

Place the following items, in that order, in your pack.
ws*l’||lm||
X Accuracy x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have X Accuracy x0 instead of x1. Click on it and toss precisely 80 X Accuracy. You should now have x176 X Accuracy, represented by a glitch number. Store them in the PC.

Place the following items, in that order, in your pack.
ws*l’||lm||
Any Item x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have Any Item x0 instead of x1. Click on it and toss precisely 99 of it, then toss 29 of it. You should now have x128 of this item, represented by a glitch number. Store them in the PC.

Place the following items, in that order, in your pack.
ws*l’||lm||
TM34 x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have TM34 x0 instead of x1. Click on it and toss precisely 95 TM34. You should now have x161 TM34, represented by a glitch number. Store them in the PC.

Place the following items, in that order, in your pack.
ws*l’||lm||
TM18 x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have TM18 x0 instead of x1. Click on it and toss precisely 55 TM18. You should now have x201 TM18, represented by a glitch number. Store them in the PC.

Place the following items, in that order, in your pack.
ws*l’||lm||
TM14 x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have TM14 x0 instead of x1. Click on it and toss precisely 99 TM14, then toss again 99 of it, and then toss 24 of it. You should now have x34 TM14. Store them in the PC.

Place the following items, in that order, in your pack.
ws*l’||lm||
TM50 x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have TM50 x0 instead of x1. Click on it and toss precisely 99 TM50, then toss again 99 of it, and then toss 21 of it. You should now have x37 TM50. Store them in the PC.

Buy 3 Full Heal, and place the following items, in that order, in your pack.
ws*l’||lm||
TM11 x1
Poké Ball x45
Full Heal x3
TM01 x1
Revive x3

Use the ws*l’||lm|| item three times in a row. You should now have TM11 x4 instead of x1. Store them in the PC, and toss all 3 Full Heal.

Place the following items, in that order, in your pack.
ws*l’||lm||
Lemonade x1
Poké Ball x45
Revive x3
TM01 x1

Use the ws*l’||lm|| item. You should now have Lemonade x0 instead of x1. Toss 99 Lemonade, then toss 35 Lemonade. You now have Lemonade x122, represented by a glitch number. Go to the PC, store 99 Lemonade and withdraw them back. Now, you will have two stacks of Lemonade, the first being x99, and the second being x23. Toss 98 Lemonade from the 99 pack. From now on, you can switch items to arrange your pack, but it is very important that you NEVER switch both Lemonade together, as it would combine them.

Place the following items, in that order, in your pack.
ws*l’||lm||
Lemonade x1
Poké Ball x45
Revive x3
TM01 x1
Lemonade x23

Use the ws*l’||lm|| item. You should now have Lemonade x0 instead of x1 as second item. Toss 61 Lemonade so this stack is now Lemonade x195.

Place the following items, in that order, in your pack. Remember not to switch both Lemonade together.
ws*l’||lm||
Water Stone x1
Poké Ball x45
Revive x3
TM01 x1
Lemonade x195
Lemonade x23

Use the ws*l’||lm|| item. You should now have Water Stone x0 instead of x1. Toss 2 of them, then store 99 of them, and withdraw them back. Now, you will have two stacks of Water Stone, the first being x99, and the second being x155, represented by a glitch number. Toss 93 Water Stone from the stack of Water Stone x155 (it now should be x62), and 94 Water Stone from the stack of Water Stone x99 (it now should be x5). As for Lemonade, it is very important that you NEVER switch both Water Stone together, as it would combine them.

STEP II: MODIFY THE 2 POKEMON

While keeping the Pokémon in your PC Box, place the following items, in that order, in your pack. Once again make sure you never switch both stack of Water Stone or both stack of Lemonade together.
ws*l’||lm||
Any Item x128
Lemonade x195
Carbos x218
X Accuracy x176
Water Stone x5
Lemonade x23
Water Stone x62
TM14 x34
TM50 x37
TM11 x4
TM34 x161
TM18 x201

Use ws*l’||lm||. Nothing will seem to occur.

Immediately go the PC and withdraw Tangela. THIS POKEMON MUST NEVER, EVER, BE IN A BATTLE AGAIN (nor receive an EV-changing item). Send it to the Silver game, and make sure it holds a Machine Part. Clone it with the item, and take the two Machine Part. Then, go back to your Yellow game.

Place another Tangela with 233 HP at the first position of the active PC Box 1, then go back to your pack, and toss 61 of the "Any Item" so you now have 67. The, use ws*l’||lm||. Immediately withdraw Tangela and send it to the silver game. This time, this Tangela should be holding a SecretPotion, and once again clone it with the item, and take the two SecretPotion.

The Yellow part (and the most annoying part) of the glitch is finished.

STEP III: INFINITE PC ITEMS TRICK AND ITEM GENERATION

Now in the silver game, place both Machine Part and both SecretPotion in the last position of your Rare Items, just like in this screenshot:


Place a Tangela at the second position of your party, but remember to never make it to fight or give it an EV-changing item.

In the PC, place the following items, in that order.
Fresh Water x42
Poké Ball x38
TM23 x53
TM10 x(any quantity)
TM25 x1
TM18 x3
PP Up x1
Any item x(any quantity)
Any item x(any quantity)
TM42 x1

In your pack, make sure to have ABSOLUTELY NOTHING in your Balls pocket (if so, toss them or store them after the TM42). Now, go to the Rare Items pocket, switch both Machine Part. Normally, you should now see an Iron and a Apricorn in the pack. Switch the first SecretPotion with the Apricorn. Switch the second SecretPotion with the Apricorn again. Both should now be at last position of your pack. Now switch both SecretPotion.

Go in the Balls pocket of your pack, you should be able to go down, beyond the CANCEL button. If you keep going down, you will now see your PC items! Go the the TM25 and use it. You should now have x0 TM42. Use again TM25, and you should now have x255 TM42.

Go in the PC, and arrange your items this way.
Fresh Water x42
Poké Ball x38
TM23 x53
TM10 x(any quantity)
TM25 x1
TM18 x3
TM42 x255
Any item x(any quantity)
Any item x(any quantity)
PP Up x1

Leave the PC and go back to your item pack, in the Balls Pocket, and slide down until finding the PC items. Use TM25. You should now have x0 PP Up. Use again TM25, and you should now have x255 PP Up.

STEP IV: CHANGING THE ID TO 13579

From the PC, toss 93 TM42 so you now have x162, represented by a glitch number. Toss also 99 PP Up, then again toss 99 PP Up, so you now have x57. Also toss all Fresh water, all Poké Ball, and all TM23.

Still in the PC, withdraw 46 PP Up, so you now have x11 in the PC. Then don't withdraw anything else in your pack as it may break the glitch, but while using the PC, arrange the remaining items this way.
PP Up x11
TM42 x162
TM18 x3
TM10 x(any quantity)
TM25 x1
You can place any other items in any quantity after the TM25.

Go back to your pack, in the Balls Pocket, and slide down until finding the PC items. Use TM25. Your ID starts changing, but still not is the wanted one.

Go back inside the PC and store 42 of the PP Up you still have. The quantity of stored PP Up shall now be x53. Now, toss 1 TM42.

Go back to your pack, in the Balls Pocket, and slide down until finding the PC items. Use TM25. You now have your wanted ID. Congratulations!
3
Hi folks,

Following my recent work on an easier Yellow ACE using the Day Care and the 4F item, I wanted to demonstrate that the not-so-well known Pikachu Off-Screen ACE can be improved to avoid the ~75 Pokémon battles.

If you don't know about POS Code Execution, see this video from Torchickens.

Anyway, instead of using the trained Pokémon, I suggest we use one of the three following configurations:

4 moves configuration

- 5th Pokémon would be a Nidorina or Nidorino. It has to have been traded to G/S/C, hold a Moon Stone there and then be traded back to Yellow.
- This Pokémon must have 2 'placeholder moves' (typically Bite and Fury Swipes, since it learns both) followed by Double Kick (also learned) and Bubblebeam (TM11).
- The 6th Pokémon can be anything but requires currently 3 PP on its first move (with 3 PP Up used), 33 PP on the second move, and 19 PP for the third move (with 3 PP Up used also).
- The code starts from item 3, so it is performed in a similar fashion than using 4F/wslm.

Code: [Select]
WRA1:D221 08 [cc execute]
WRA1:D222 2C inc l
WRA1:D223 9A sbc d
WRA1:D224 18 3D jr D263
WRA1:D263 C3 21 D3 jp D321

2 moves + HP/Box Level configuration

- 5th Pokémon would be a Nidorina or Nidorino. It has to have been traded to G/S/C, hold a Moon Stone there and then be traded back to Yellow.
- This Pokémon must have Double Kick (learned) as first move and Take Down (TM09) as second.
- The 6th Pokémon can be anything but must have 24 HP currently and also have been lvl24 last time it was stored in the PC.
- This Pokémon requires currently 3 PP on its first move (with 3 PP Up used), 33 PP on the second move, and 19 PP for the third move (with 3 PP Up used also).
- The code starts from item 3, so it is performed in a similar fashion than using 4F/wslm.

Code: [Select]
WRA1:D221 08 [cc execute]
WRA1:D222 18 24 jr D248
WRA1:D248 00 nop
WRA1:D249 18 18 jr D263
WRA1:D263 C3 21 D3 jp D321

4 moves + Glitch Pokémon configuration

- 5th Pokémon would the glitch Pokémon PKMN pゥぁ ゥぇ, that can be obtained via several glitches (although not the Ditto Trick - best is probably LOL Glitch), Equivalent Trade or Time Capsule Exploit.
- This Pokémon must have Ice Punch, DoubleSlap, Double Kick and BubbleBeam (all can be learned except Bubblebeam which is TM11)
- The 6th Pokémon can be anything but requires currently 3 PP on its first move (with 3 PP Up used), 33 PP on the second move, and 19 PP for the third move (with 3 PP Up used also).
- The code starts from item 3, so it is performed in a similar fashion than using 4F/wslm.

Code: [Select]
WRA1:D221 2D [not read]
WRA1:D222 08 [cc execute]
WRA1:D223 03 inc bc
WRA1:D224 18 3D jr D263
WRA1:D263 C3 21 D3 jp D321

Untrained Hitmonchan configuration

Since all previous setup require trading or glitching, here is the only tradeless/glitchless/trainless setup that will work most times.

- 5th Pokémon would be Hitmonchan
- This Pokémon must never have been trained, but must know Strength (HM), Agility, Fire Punch and Ice Punch. This requires rising it to lvl 38 with Rare Candies.
- This Pokémon must also have 00 PP currently at Strength, 24 at Agility, 14 at Fire Punch (Ice Punch doesn't matter)
- The 6th Pokémon can be anything but must be lvl25, requires currently 24 HP, 3 PP on its first move (with 3 PP Up used), 33 PP on the second move, and 19 PP for the third move (with 3 PP Up used also).
- The code starts from item 3, so it is performed in a similar fashion than using 4F/wslm.

The code can be broken at any time by Hitmonchan's IV. The best way is to reset the pick of Hitmonchan to make sure that yours work. For this setup to work, you must check that when converted into hexadecimal, Hitmonchan's trainer ID won't trigger invalid opcodes or many-bytes opcodes

Code: [Select]
WRA1:D221 2D [not read]
WRA1:D222 46 [not read]
WRA1:D223 61 [not read]
WRA1:D224 07 [not read]
WRA1:D225 08 [cc execute]
WRA1:D226 ?? depends on the trainer ID
WRA1:D227 ?? depends on the trainer ID
WRA1:D228-D234 00 nop
WRA1:D235 ?? depends on Hitmonchan's IV
WRA1:D236 ?? depends on Hitmonchan's IV
WRA1:D237 00 nop
WRA1:D238 18 0E jr D248
WRA1:D248 18 19 jr D263
WRA1:D263 C3 21 D3 jp D321

Underflow-based configuration

For informations about a way to use the expanded item pack for an easy setup, see here: http://forums.glitchcity.info/index.php?topic=8063.msg206641#msg206641

I wanted to adapt these to european non-english games, though the POS ACE does not seem to work in non-english games - or at least doesn't seem to read from $D221.
4
Well, here's a setup for english games that should do the job.

- Place/withdraw at the Day Care a Female Nidoran with Bite, Fury Swipes, Double Kick and Growl (the first two moves are placeholders and can be something else)

- Store :
1. Any lvl25 Pokémon with currently 24 HP, 33 PP currently for the first AND second move, 19 PP currently for the third move (3 PP Up used) and no fourth move or no PP currently on it
2. Clefairy, Male Nidoran or Spearow (among many possibilities) with 233 HP

Enjoy!
5
Hey there,

Here's an unusual setup for Yellow games only, using 2 Pokémon only (and a third one but temporarly and not in the PC), instead of 10.

You can use the celadon loop trick to get 4F / S3 (german) / P3 (italian) / 3EME ETAGE. You have to perform 4 steps less than for wslm. Original discovery of the behavior of the 4F item is from Tagada67 on PRAMA's board: http://forum.prama-initiative.com/viewtopic.php?f=3&t=680&p=6192#p6186

4F executes from Echo RAM $FA64. In English games, this is the catch rate of the last Pokémon that visited the Day Care (or the current one). In European non-english games, it's the first current HP byte of that Pokémon.

Note that if you never placed a Pokémon in the Day Care, this item nops until stored Pokémon, so it behaves EXACTLY like wslm, meaning the traditional setup works with 4F. Otherwise, placing (and immediately withdrawing) any lvl25 Pokémon (lvl29 in non-english games) with currently 24 HP will make it jump to stored Pokémon, so it will work also.

Now here's the setup:

English game

- Place and withdraw (or not) at the Day Care a Nidorina (that apparently should not be evolved from a Female Nidoran), with Bite, Fury Swipes, Double Kick and Growl (the first two moves are placeholders and can be something else, the last two are learned)

- Store in the active PC Box:
1. Any lvl25 Pokémon with currently 24 HP, 33 PP currently for the first AND second move, 19 PP currently for the third move (3 PP Up used) and no fourth move or no PP currently on it
2. Clefairy, Male Nidoran or Spearow (among many possibilities) with 233 HP

- Execute code with your items

Code: [Select]
WRA1:DA64 78 ld a,b
WRA1:DA65 2C inc l
WRA1:DA66 9A sbc d
WRA1:DA67 18 2E jr DA97
WRA1:DA97 18 19 jr DAB2
WRA1:DAB2 21 21 D3 ld hl,D321
WRA1:DAB5 00 nop
WRA1:DAB6 04 inc b
WRA1:DAB7 00 nop
WRA1:DAB8 E9 jp hl

European non-english game

- Place and withdraw (or not) a lvl80 Pokémon with currently 24 HP in the Day Care.

- Store in the active PC Box:
1. Any Pokémon with 33 PP currently for the first move, 38 PP currently for the second move, 19 PP currently for the third move (3 PP Up used) and no fourth move or no PP currently on it
2. Clefairy, Male Nidoran or Spearow (among many possibilities) with 233 HP

- Execute code with your items

Code: [Select]
WRA1:DA64 00 nop
WRA1:DA65 18 50 jr DAB7
WRA1:DAB7 21 26 D3 ld hl,D326
WRA1:DABA 00 nop
WRA1:DABB 04 inc b
WRA1:DABC 00 nop
WRA1:DABD E9 jp hl

This setup is still perfectible though so don't hesitate if you can improve it :D
6
Generation III Glitch Discussion / Hints in Gen III Trade Cloning
« on: May 29, 2017, 04:13:17 pm »
Hello everyone,

As you know, cloning by shutting down the console during a trade, which can be done in games from Generation I, II, IV, V and VI (still to be confirmed in VII, as far as I know) is largely considered to be not functional in Gen III, because of two reasons:
- GBA link cable can send and receive simultanously
- Data from unfinished trades are deleted

However, someone named Gary6318 now claims on PRAMA having successfully cloned by trade cloning under these conditions:
- Ruby and Firered
- Using the Game Boy Player (the GameCube thing)
- He didn't actually shut the game but the FR game froze for unknown reason right after the trade started, when you see the GBA on screen.

He has no video/picture proof as of now. Assuming he's not lying, could there be a frame where the trade is actually possible? Could this be related to the use of the Player, or the fact that it froze?

What do you think?
7
4G glitches are harder to explain because of we don't have the tools that we have in 1G/2G glitchology. However, I was wondering if someone has some explanations about the way the Rage Glitch and Acid Rain Glitch works.

I know that in 1G, the Rage move continues until the Pokémon faints, or until there is no opponent; and each time the attacker was hit, its ATK modifier rises up. From 2G on, Rage has to be reselected every turn and there is a specific Rage counter which has the same effect as if the ATK modifier was risen. Though, at this point, if you stop using Rage, the counter goes back to 0.

When this was developed, a specific routine had to be done. Probably there is a flaw in the 4G version of it; for some reason, this routine probably requires a "refreshing" of the attacker's moves (maybe to check out if Rage was still used? I can't find out) and since the Pokémon is morphed during the glitch, it just copies the wrong moves.

Do you have some clues about this? As for the Acid Rain Glitch, I have no clue at all.
8
It works for Darkrai. That's truely amazing, thanks!
9
Generation II Glitch Discussion / Call glitch?
« on: December 11, 2016, 08:43:25 am »
Hello guys,

A while back, I've been told that in Cristal only, if you call a friend then ask your Mom to change the hour, there are good chances that someone will randomly call you immediately.

Could this be a glitch in subroutines or somewhat?

Thanks!
10
Generation IV Glitch Discussion / Destiny Bond glitch ?
« on: November 06, 2016, 08:03:54 am »
Hi everyone,

A guy named Guilz contacted me on Facebook to share a glitch with Destiny Bond in HG/SS. Apparently, if you use the move, then keep using items, Destiny Bond stays active as long as you use items. That means if someone beat your Pokémon after 3 turns in which you used items, Destiny Bond will affect the opponent.

I wasn't able to test this on HG/SS but Haxel did it on OR/AS and it didn't work. Is this known to someone? Was it a normal feature in 4G?
11
Hello there!

As you all probably know, the Tweaking Trick is a 4G glitch with many utilities. It involves moving on loading lines to generate "voids", and is rather limited in Platinum, Heartgold and Soulsilver, being most known for allowing, in Diamond and Pearl, the player to cross the void to reach Fake versions of Sinnoh that you can use to catch Shaymin and Darkrai.

While the tweaking process may cause some problems to users, the major limitation of this glitch is the time you need to reach a Fake-Sinnoh. Depending on your luck, you will be able to use your first Fake-Sinnoh to get the Pokémon you want, or you will have to continue searching for a usable Fake-Sinnoh, which can take literally forever.

A few months ago, a tweaker called Ankeraout developed a lua script for DeSmume to make all of this a piece of cake. Originally, it only worked on french games. Now, it is compatible with other european, US, and japanese games. What PATH (standing for "PRAMA's Advanced Tweaking Heaven") can do is:
- Display a joypad, your X/Y coordinates, matrix, centerpiece and map ID ; load lines on top screen ; your current position in Sinnoh on the bottom screen (which is very cool when you're in Fake-Sinnoh, when combined with the berry map)
- Automatic tweaking, accordingly to the way you need to tweak a line to generate whatever you need.
- Instant warp to any Fake-Sinnoh/Johto/Kanto of your choice, which makes the whole process useless and allows you to check a lot of Fake-Sinnoh for the ability to work with Shaymin/Darkrai in just minutes.
- Automatic steps because you're too lazy to press keys so the script will do that for you.

PATH is user-friendly but is in french, currently. This is why I post a translation of the menus here, if this helps someone.
UPDATE: PATH now includes english language. You can change to english using the menu.. I'll just let the explanations anyway.

How to run the script

Load your game, then go to Tools > Lua Scripting > New Lua Script Window > Browse. You only have to load path.lua in the archive. Stuff displays on the top screen, and you can now use the script.

Press your keyboard key assigned to the L key of the DS to display PATH's menu on the bottom screen. You can now use the keys assigned to A and B to validate and return. L again to close the menu.



Displaying stuff

"Affichage" (display) contains stuff to display:
- Joypad (speaks for itself)
- "Infos du jeu" (game informations). This displays all that I've mentioned before, and also gives you the X/Y coordinates of your current (Fake-)Sinnoh. X increases when you go East and decreases when you go West, Y increases when you go South and decreases when you go North. That means Fake-Sinnoh South-South-East is X=1 Y=2.

"Lignes de chargement" = load lines

As you can guess, "FS Map" is the option displaying your position in Fake-Sinnoh. This cannot be used in Heartgold and Soulsilver games.

Automatic tweak

You must use "Tweak automatique" for that. It then displays all the available tweaks for your loaded game and you have to choose.



SLOW and FAST indicates whether you have to be on slow bike or fast bike (using B button).
"Bas" = Down
"Haut" = Up
"Droite" = Right
"Gauche" = Left

What you need to know here is where you need to move the chunk. For example, here in Jubilife, in the standard tweak used for Shaymin and Darkrai, to move Route 203 from the upper-right corner to the upper-left corner, you need to select "(SLOW) Haut-droite -> Haut-gauche".

Warping to Fake-Regions

This ultimate time-saving option is in the "Teleportation" menu. You then have two choices:
- "Retour à la position normale" (back to normal position) brings you back to Sinnoh/Kanto/Johto.
- "Bouger d'un Fake-région ou bâtiment" (move of one Fake-Region or building) allows you to move to the next Fake-Region in a wanted direction. "Aller au Nord" means go North, "Aller au Sud" means go South, "Aller à l'Est" means go East and "Aller à l'Ouest" means go West.

You then just have to jump from Fakes to Fakes. Aside from the obvious use in getting legendaries in D/P, HG/SS voids being impossible to cross without cheating, this is a quick way to visit Fake-Kanto and Fake-Johto.

Note that from all tests I have done on french games, it seems West-West-West-South Fake-Sinnoh always has a usable location for Newmoon Island (Jubilife or a Route). It seems to be also the case of WN, WWSS, ESS, EEESS, OOSSS and OSSS as long as you have the bike and the first two badges. All other tested FS can either have a good location or not. Remember, tweaking trick is safe as long as you don't f**k up. Once you're there, don't save: just do XABB to refresh the screen, and if it DBSoD, you can restart the game and try another FS.

Programming a path to perform

The last option, "Trajet Automatic", starts the execution of a pre-registered path. To edit it, you have to edit "run.lua" using a text editor (notepad). Find this line:


Write the number of steps, then the direction, then the following instruction. E = East, N = North, S = South, O = West. Save and reload the script and use the option to start the process. PATH automatically detects walls in the void and bypass them if possible. If PATH is not able to finish exactly where it's supposed to, it will tell you.

You can stop at any time using "Arrêter" (stop).

Download link

PATH v.1.2.2
Support (french) : http://forum.prama-initiative.com/viewtopic.php?f=28&t=566

Have fun!
12
Generation I Glitch Discussion / Anything about glitch types?
« on: March 24, 2016, 11:13:23 am »
Hey everyone,

As you know, gen 1 games had 15 types.

Normal     00
Fighting   01
Flying     02
Poison     03
Ground     04
Rock       05
Bug        07
Ghost      08
Fire       14
Water      15
Grass      16
Electric   17
Psychic    18
Ice        19
Dragon     1A

There are missing numbers in the list of hex IDs for types (no 06, 09->13) and I suddenly realize I don't know much about potential glitch types. When you change a Pokémon's type using Gameshark/Memory Viewer/ACE, the new type, while active, is not shown in the stat view. Do you guys know if every missing slot and everything from 1B to FF matches a "null type" with no effect at all or if someone has tested every slot against every real type to check for resistance and super-effectiveness?


Thanks
13
No, and that's the point of the glitch - when you receive
14
Generation I Glitch Discussion / Expanded Experience Underflow
« on: October 08, 2015, 03:07:55 am »
Hey there,

You probably know the Experience Underflow Glitch that allows Pokémon from the Medium-Slow Experience group to jump from Lvl 1 to Lvl 100 by gaining less than 54 xp.

I discovered this glitch may be used on any other Experience group - meaning any Pokémon. At first, I wanted to do that with the International DKD Glitch but it appeared to be a dead end. So instead, here's two methods that both work.

Super Glitch method:

1. Get a Medium-Slow Pokémon at level 1 (with either Ditto Trick, Cooltrainer/LOL, or any other method) and place it in 6th position of your team.

1. Get a Pokémon with 27 letters combined in the 3 first moves, and Super Glitch as 4th move. There are actual ways to get a normal Pokémon with a Super Glitch move. For example, trade a lvl48 Haunter to a G/S/C game (it will learn Destiny Bond) then send it back to get the hex:C2 Super Glitch move instead. You can also use a glitch Pokémon.

2. Go here:


R/B - Open/close the Pokémon menu once then get into a fight and open/close the attack menu several times until the corruption appears. Something like that must happen:

Leave the fight.

Yellow - Open the Pokémon menu then visualize the moves of your Pokémon with the Super Glitch move several times until the corruption appears:


This is also what you get in R/B after the fight, because you now have 16 Pokémon.

3. Talk to a Pokémon Center nurse, but refuse to heal your Pokémon. This is to fix text boxes.

4. Switch Pokémon 6 (medium-slow) and 10. The HPs of Pokémon 1 become the decimal ID of your medium-slow Pokémon (e.g. 21 for Mew). Use healing items/HP Up/Whatever to change that number to the decimal ID of the Pokémon you would like to perform the Experience Underflow on. For example, I set the first Pokémon's HP to 131 to get Mewtwo.

5. Then switch back both Pokémon. Your lvl1 medium-slow Pokémon is now the wanted Pokémon at level 1. Gain less than 54 exp points and you will gain the levels. HOWEVER, using this method, because it only changes the memory address for the Pokémon's ID in the "list of Pokémon" section but doesn't change the address for the Pokémon's ID in the data of the given Pokémon (which contains the exp group) you won't reach level 100:

- Slow Group (ex: Mewtwo) => 105
- Medium-Slow Group (normal group for the glitch) => 100
- Medium-Fast Group (ex: Caterpie) => 98
- Fast Group (ex: Clefairy) => 91

If you want to reach lvl 100 precisely you must use the other method.

6. To fix the game, Store/Release every Pokémon beyond the 6th. To get rid of the corruption that affected some of your Pokémon, use the daycare. If your name is messed up by Super Glitch, you can reset it (although not in Yellow) by going there:

And doing another corruption (open/close the Pokémon menu, Pokémon encounter, open/close the attack menu).

8F Method

Cleaner method, but of course, 8F allows you to change a Pokémon's level without this glitch. Put your Pokémon at first position, then use this code that changes both bytes to the value of the wanted Pokémon. Because of this, your new Pokémon will fit to its own experience group and you will reach level 100 by gaining less than 54 exp points.

Any Item
8F / ws*l’||lm||
ThunderStone x100
TM09 x82
Lemonade x(dec ID of the wanted Pokémon)
Ether x119
X Accuracy x107
X Attack x119
TM01 x(any quantity)

Have fun!
15
A WAY TO EXECUTE CODE USING THIS, REQUIRING NO MISSINGNO. AT ALL, HAS BEEN FOUND. SEE BEYOND THIS FIRST POST. I WILL THOUGH KEEP IT UPDATED

Hey guys. This is something I started following my previous thread in which I discuss and show an example of using Glitch City regions matching with RAM data to perform the Cooltrainer Trick (based on TheZZAZZGlitch's previous discovery of a region matching with the items).

I decided to explore a little more of this and to "map" this specific Out-of-Bounds Glitch City by matching it with RAM data. The results are, I think, worth the try.

More importantly, I decided to work on an English version, since RAM addresses are +5 in other European versions like the french one I normally use

What is this about?

You can view most, if not all, the values of the game's RAM addresses by going to a specific glitch city, in form of 4x4 tile blocks. By doing this, you are literally WALKING on RAM. Basically, having the item whose hex ID is 3C in first position will make the tile block matching with the first item in this glitch city to appear as the tile block whose hex ID is 3C.

This is a tileblockdex for which you must note that some characters are different in english versions so it might lead to differences in some blocks :
http://prama-initiative.com/RBJ/CTRAM1.png

It first was ISSOtm from our website PRAMA Initiative who developped a way to use the blocks generated by stored items to perform an item-custom cooltrainer as shown in the other thread.

Here I will explain how to visualise a lot more RAM data, so you can perform the Cooltrainer with, but also how to change the values directly through glitch city for other useful or entertaining purposes.

How to access to this Glitch City?

Using a glitch to walk through walls (e.g. the ledge method which is easy and doesn't require anything), you can access this OoB Glitch City by walking, starting from here (south of Fuschia City):

And walking 104 steps left then 95 steps up. This is an example entry point I use on my grid below:

Matching RAM with blocks



If you followed the steps above, you will be as indicated on a block matching with RAM address $D524. The GC is organized in rows of 56 blocks matching with 56 addresses, then you go back to block 1 of the following row for the following address. In this grid, I voluntarly skip the first three and last three addresses of each row.
You can visualize them but I don't recommand it, because their behaviour is random; they will turn into something else when you hit start (e.g. water, even though the value of this address does not match with water blocks). This makes them unusable for the Cooltrainer Trick, and also, you will not be able to manipulate their value anyway.

Here, I indicate which block match with which address using informations from datacrystal. As you can see, you can visualise the data from some Pokémon (stats, moves, names etc.), money, items, Pokédex, rival's name and much more. The big white space between player's ID and stored items is audio and tileset data. I don't know much on how to use them so I will not talk about this.

I personnally never went further the 5th Pokémon data but I assume you can continue to go up to find new data, such as you can go down and reach event flags or stored Pokémon.

If you intend to perform the cooltrainer trick, since you will need a block containing a tree below the block with the good tile for the Pokémon you want, the best thing is to use Pokémon data (since you can change stats) or stored items (using, for example, item 1 and 29 as I did in the video of the other thread). Of course, you can use "bag" items, and generate a tree from Badges data - this is what we did first at PRAMA before ISSOtm finds the stored items region.

Manipulating the data

Now what is really awesome here is that we can manipulate this data. This is very limited and certainly is not an in-game memory viewer. But you will be able to get 8F and ws||'lm|| with this, allowing you to execute code without MissingNo. or any form of corruption.

The only way for the player to change a tile block from one to another is this tile block having grass or a cuttable tree and cut it. There are 7 tiles block you can Cut (hex values 0B, 32, 33, 34, 35, 60, D5). This means if a value on ANY address you can reach is one of those, you can manipulate it.

- 0B is a grass block. Once cut, it will turn into block 0A. This lowers a value by 1, meaning if you wanted to have a special stat of 10 but unfortunately got 11, you can fix that.
- 32 is a block containing a cuttable tree in the upper right corner. Once cut, it becomes block 6D. This is a good way, for example, to turn a stat of 50 to 109.
- 33 has a cuttable tree in the down-right tile. Once cut, it becomes 6C.
- 34 has one in the upper-left corner and turns to 6F. This is the highest available value by GC RAM Manipulation.
- 35 has one in the upper-right corner too, and turns to 4C.
- 60 has one in the down-left corner and turns to 6E.
- 5D is a glitched block. Cutting the tree won't change anything to the tile, who will still have a tree and a hex value of 5D.

Outside from obvious uses of getting more money, more casino chips, or better stats for your Pokémon easily, this is also important because of hex value matching with items, moves and Pokémon.

Here is another excel table:


As you can see this is useless for player's name manipulation. So bad. About Pokémon, probably the only useful thing here is to change Lickitung for Exeggutor... and if you have the good MissingNo. I guess it's an easy way to get Poliwrath.
Then you can learn Solar Beam to any fire-type Pokémon which previously know Flamethrower. Considering this is a powerful attack you could use on a ground or rock-type foe.

But it becomes even more fun when you deal with items (besides having a whole lot of moon stones) as you can use this to get glitch items without the need for ACE or expanded item pack! Probably glitch items 6D and 6E are not realistic because you can't have the prototype PP Plus or 11F (floor) item in game.

Item 6C reads $3DED (ROM data) so it's probably useless, however using Item 6F execute code from $CDD1 which is inside a tile buffer ; this address particularly is a tile from the Start menu when it is open. The code here jumps to $9C60 which is a screen tile. I don't know is this can lead a code execution but I'll check that some day. It's not the most important part of this glitch.

Trigger a PC overflow and taking advantage of it

Now this is the most recent and maybe the major breakthrough here. You can have a maximum of 50 items inside the PC. 50 is hex:32, so it's a cuttable tile! If you cut the tree in it, it will turn into 6D... which is 109 stored items. You just activated an overflow.

Use the PC overflow to trigger an inventory underflow (and execute code)

The most complete form of using this is also very easy. You will have a lot of items x0 in this overflow. Just toss 1 item of one stack and withdraw the remaining x255. You don't need anything else to perform a regular dry underflow and get an expanded item pack.

Now you can use this to manipulate bytes and also get 8F / ws*l’||lm||. Click here to read more about 8F Code Execution.

Use the PC overflow to directly get glitch items such as ws*l’||lm||

If you play Yellow, you might wanna do this trick with 63 casino chips. Doing so, once the PC is at 109 items, your 52nd item will be ws*l’||lm||, which is the item you need to execute code. You don't even need to underflow your item menu anymore.

I'm working on a R/B adaptation of this but you can't have 5E (hex for the item 8F used in R/B code execution) chips. Maybe some addresses after can be used but they are indicated as "Missable Object Flags" and I don't know what that means.

Anyway, using the chips, you can get pretty much any item or glitch item whose hex value contains no letters. This includes a lot of "xF" and "x||lm||" items but I still need to watch if they are documented. Also Surfboard, Master Ball, etc. are easy to get.

Use the PC overflow to directly get the 8F item (or others items you could not get with the casino chips trick

From item 55 onwards, items match with the fact that you did or did not picked visible items on Routes (see posts below) with one address/item matching with the current status of 8 items (one per bit). Therefore, there is a way to use this to get some items, including the 8F item (hex:5D) for code execution.

if you have picked :
- Hp Up on Route 2
- TM04 on Route 4
- TM30 on Route 9
- TM16 on Route 12

But haven't picked :
- Moon Stone on Route 2
- Iron on Route 12

And the Snorlax in Route 12 is still sleeping, then 8F will appear as the 56th item in the PC.

Delete an item

Well this is a more a side trick but it can be useful if, for some reason, you wanna get rid of a rare, untossable item, or a glitch item. Then, just have 11 items (PC or held) with the last being this item. Then go to the number of items spot in Glitch City (the one according whether you chose to do that in the stored items or not) and cut the grass. The item will be deleted as the number of items drops to 10.

Sorry for the long post, I think it comes to an end now (for now). Next step is the dex. Don't hesitate to tell me what you think about all this!
Pages: [1] 2