Re: Gen III: Access Pokémon beyond the sixth slot sub-glitches.
Posted by: Metarkrai
Date: 2014-06-26 15:30:48
Almost every element of Pokemon Emerald that uses data can be altered, as adresses for PC Pokemon are among the last ones on the RAM.
But because of the nature of the glitch ; on certain bytes, Bit N°6 or Bits N°0 and 2 are set to 1, doing this on a number which value is between 0 and 2^16 - 1 (stored in two bytes) has no clear use, as you will only know that two (or one) bits of this number are set to 1, and that's all.
So for numbers, the only useful ones are Money, Identifiants (for items or Pokemon), and quantities (for items), as corrupting Feebas tiles, or your number of Random Encountered Pokemon won't be of any help at all, since it has no effect, or since you cannot use this corruption to determine the value, and make something out of this knowledge.
The fact that one bit is set to 1 or not is useful for events, whose state only depends on a list of bits called flags.
And by testing (or knowing) which event is linked to the flags that are stored in Bits 0,2, and 6 of every Byte (only the ones who are linked to events), we would know the maximal influence we could manually have on the game.
After that, you have basically 1/16 chance that the byte you wanted to alter is altered (the space bewteen each corruption doesn't seem regular, but it's at least 16 bytes between each corruption), and you would also need the right corruption between the two possible.
Knowing the adress of the byte you want to corrupt gives you a timing to respect each reset, so corrupting a certain byte does seem doable.
So the data I'm searching in is : Badges, Symbols, Fly locations, Special events, Legendaries availability, story events, Last Pkmn Center visited.
The first ones were easy to see, but for the last ones, story events, and Last Pkmn Center, I haven't completed my search on them, as I made myself another couple of boxes of Bubble Relicanth, to see (and play with) Eggs.
I haven't read the posts about item corruption yet, but corrupting money, filling Bag slots with 99 of a certain item, and waiting for an identifiant corruption seems a good option (for Rare Candy especially, whose identifiant is 0x44, and the item with a 0x04 identifiant is the Poké Ball)(for MystikTicket, its TM18, and Old Sea Map, its TM24).
It is also possible to corrupt the Battle Pyramid Bag (corrupting the quantities would be great), but since tou have to enter back to see the effects of your corruption, it's not reliable at all.
And as for the normal Eggs I've obtained, non of them were on the 23th spot, box 2.
So to recap on what I tried :
Useful :
-Badges : 8th Badge (0x02026D7C)
-Fly Location : Ever Grande City (without Pkmn League) (0x02026D7E)
-Special Islands :
Navel Rock and Faraway Island unlocks (need the Tickets) (0x02026D8C)
Southern Island event (0x02026E1A)
-Contests : Master Contest Wins (may add a Trainer Card Star) (0x02028998)
-Altering Cave : Aipom (0x02026E18)
-Other events :
2nd Gen Starters at Birch Lab (0x02026F42)
Putting Latios in Southern Island (0x02026F46)
-PC and Bag items and quantities (0x02025E98)
Non useful :
-Fix Pokemon :
Losing Castform, Kyogre, or Rayquaza
-Chances of corrupting TM/HM Bag
-Lots of tiny thing that won't be of any use
Non tested :
Story events
Las Pkmn Center visited
I also didn't measure the time needed to go at these adresses, but since I know where they are, this won't be hard to do.
EDIT :
I confused myself a little bit with Aurora and Faraway Island, and the TM identifiants, and I also tested the bits.
So if these bits can be corrupted with the Pomeg Glitch, Navel Rock and Faraway Island will be accessible if you have the Maps in your bag. And these Maps can be obtained by corrupting TMs 18 (Rain Dance, 0x132) and 24 (Thunderbolt, 0x178).
EDIT 2 :
voltage, I have a question for you.
I've tried numerous times to alter the bytes linked to Faraway Island and Navel Rock, but I've encountered some kind of issue ; only half of the bytes seem to be able to be corrupted, and these bytes are the left bytes of every word when I use VBA's Memory Viewer in 16-bits, as you can see here :
[img]http://www.pixenli.com/images/1403/1403825312085360000.png[/img]
The strange fact is that the Mystery Card flag is on a byte at the right of a word, so I can't reach it.
But voltage was able to do it. So I'd like to know how you did the glitch, as I don't seem to be able to change the fact the I can only corrupt "left" bytes, and not the right ones.
And this annoys me, because the main things I wanted to changes were bits on "right" bytes, like items identifiants or these particular bits (I won't be able to alter some other useful bits as well).
Maybe this can't be done on emulator, my version of VBA is at fault, or my save (I have a somewhat stange save regarding RNG), I really don't know, but I'm glad that someone else was able to perform it ; at least its doable.
For those who want to try, I gave myself the Old Sea Map, and the MystikTicket, so I'm only checking if the bits unlocking the islands can be altered. To attain the 0x02026D8A area, you have to go up for 14 seconds.
The Delivery Man bit for Eon Ticket is in the same area, so it may be altered as well.
EDIT 3 :
That may sound stupid, but I didn't check how far I could go with the glitch, and I saw VBA freezing just after the area managing the events (around 0x02026CD2), which is under the Bag and PC data.
Is there a way to go further ?