It looks like an interesting new arbitrary code execution has been discovered, which with luck manipulation might be the fastest (and A-pressless) method so far. I don't know who discovered it though.

This method involves death-warping at the final Bug-Catcher in Viridian Forest. If you then return to the forest without pressing Start, it will trigger a battle with the Bug-Catcher again and activate meta-map script 06 (D618=06). Defeating him will trigger yet another battle, but if you win this one you're free to walk around with glitch script initiation active.

Then for some reason if you proceed to mash A in front of and defeat this Bug-Catcher;

The game will execute F8FF in Echo RAM, which falls through to F9AC (D9AC); a copy of your player's name. Then if your player's name is mMna.♀tF (ac e2 a0 f2 f5 b3 85 50), with some specific other requirements it is yet another way of entering the Hall of Fame.

Forgiveness is timeless, and moments we look back on humble the soul. Jesus said it best. You must be blind to see and must see to be blind metaphorically is said. I don't think there is one Messiah nor a definitive truth, because we find truths in relative moments. However, there may be unknowable truths and sometimes it feels we have got to embrace the mystery and what we don't know.

Very interesting! I'll work on this asap. There should be a way to use it smoothly. Ways to get the expanded item packs without MissingNo. are game changers for all those games who can't do it

Logged

Admin of the PRAMA Initiative, the main french Pokémon glitch websitehttp://www.prama-initiative.com“Anti-intellectualism has been a constant thread winding its way through our political and cultural life, nurtured by the false notion that democracy means that 'my ignorance is just as good as your knowledge.'” - Isaac Asimov

I analyzed how this works:- The deathwarp and the two trainer battles advance the map script index to 0x06 (three trainer encounters in total, each one advances the index twice; Crystal_ once did a nice video explaining how trainer battles affect the script index values).- Viridian Forest script 0x06 happens to point to $5180, bank 0x18.- At this address we have some accidental code, created by interpreting the trainer encounter text (ViridianForestText4) as CPU instructions:ViridianForestText4: ld ($5A21), sp ld d, c call TalkToTrainer jp TextScriptEndWhich triggers a glitch textbox, but thankfully, does nothing harmful to the game.- Then, we trigger another trainer battle in Viridian Forest, which advances the current map script to index 0x08.- Viridian Forest script 0x08 happens to point to $24F4.- Again some accidental code, but this time, it was sourced from the item pick up text (PickUpItemText):PickUpItemText: ld ($5C3E), sp call Predef jp TextScriptEndThis one however isn't so nice to the game, since it executes an invalid predefined function 0xF4 (calling Predef with A=0xF4).- Predef 0xF4 happens to execute code from $F808. Which is the echo RAM equivalent of $D808- Arbitrary code execution magic happens

Any trainer can be fought as the last one - I believe the only reason they chose the Bug Catcher closest to the entrance is because he would be the fastest to get to in a speedrun.

Adapting this exact method for general use is most likely impossible, since it requires insane levels of luck manipulation, and planning for it from the very beginning of the game. But a similar procedure can most likely be applied to any other map - so there should be a way to find a different route with different trainers, where the code execution happens from a more predictable location (like Pokemon boxes or inventory data).

Also, it's funny to look how a strategy originally meant for the A Button Challenge has inspired a new speedrun route, along with a new way of achieving arbitrary code execution.

Adapting this exact method for general use is most likely impossible, since it requires insane levels of luck manipulation, and planning for it from the very beginning of the game. But a similar procedure can most likely be applied to any other map - so there should be a way to find a different route with different trainers, where the code execution happens from a more predictable location (like Pokemon boxes or inventory data).

Thanks for your research TheZZAZZGlitch! I thought so too in regards to game completion, but turns out if you have a Link Cable and a game with the 61896 (F1C8) ID (available from item 30's quantity and item 31 in item underflow) you could in theory trade it over to the other game. The 61896 manip for a real console/BGB as well might not be too hard.

I don't understand the FFF1 (Charmander) and FEF0 (Bulbasaur) Spearow manips though. Maybe those aren't needed if you're not speedrunning and just give Spearow with high enough stats to survive the battles.

I did some tests on BGB and I was able to replicate what they did in the speedrun (without the manips and a cheat code to apply the right ID) and the glitch worked, sending me to the Hall of Fame. I think it's amazing how they could manipulate that with just two instances of the player's name and the F1C8.

When I tried the glitch on VBA though multiple times it didn't work, so maybe VBA doesn't emulate it correctly or I was just really unlucky.

Forgiveness is timeless, and moments we look back on humble the soul. Jesus said it best. You must be blind to see and must see to be blind metaphorically is said. I don't think there is one Messiah nor a definitive truth, because we find truths in relative moments. However, there may be unknowable truths and sometimes it feels we have got to embrace the mystery and what we don't know.

This was done on a version of VBA that supports Echo RAM. The problem may have been related to how the code changes HRAM and/or incorrect VRAM inaccessibility emulation (which apparently means the execution is done at F8FF instead of F80F according to entrpntr in the above video's comments).

Forgiveness is timeless, and moments we look back on humble the soul. Jesus said it best. You must be blind to see and must see to be blind metaphorically is said. I don't think there is one Messiah nor a definitive truth, because we find truths in relative moments. However, there may be unknowable truths and sometimes it feels we have got to embrace the mystery and what we don't know.

Let's just point out that VBA doesn't correctly emulate multi-byte read instructions, i.e. it reads sooner than it should. The implication here is that maybe the timing until VRAM locks is tight enough to be that.Also is VRAM locking emulated at all ?

I don't understand the FFF1 (Charmander) and FEF0 (Bulbasaur) Spearow manips though. Maybe those aren't needed if you're not speedrunning and just give Spearow with high enough stats to survive the battles.

Just to clarify, Spearow's purpose in the speedrun is indeed entirely unrelated to the ACE. It is the fastest Pokémon to beat the endgame bug catcher boss rush, and attack/speed/defense/HP are to make the fights as efficient/safe as can be. The bad special is to die to Pikachu faster, and Spearow's nickname is part of luck manipulation that yields a Pika Thundershock crit to OHKO Spearow. (EDIT: Successfully catching Spearow is also manipulated, but this requires different setups for Charmander vs Bulbasaur, which is why multiple manipulations were listed in the route document.)

Forgiveness is timeless, and moments we look back on humble the soul. Jesus said it best. You must be blind to see and must see to be blind metaphorically is said. I don't think there is one Messiah nor a definitive truth, because we find truths in relative moments. However, there may be unknowable truths and sometimes it feels we have got to embrace the mystery and what we don't know.