Well yeah, I've been thinking a bit about it and I'd like to attempt a run of it. Of course, you are free to do one as well, but I now have one problem. Both versions have the problem that causes them to freeze the game at random points of play and there is one solution, however, it is an AR code which only prevents them from freezing. And if I remember right, AR codes are not allowed to be used. Any suggestions?
If memory serves me correctly, a patch was made already that makes it playable on all emulators.
This may be a nice game to run with some heavy luck manipulation. Do you have a strategy in mind when you tackle this project?
Well, for the first bit of the game, I will go for an Adamant natured Totodile and progress on as normal. Should I get Geodude after getting the PokéBalls?
I've been doing some RAM search on this game. This is what I found (probably part of this was already known).
0x021D15A8 : PRNG address (encounters)
0x0211186C : Pointer address
Most of the values I found depends on the previous pointer:
- RNG (battles) : pointer + 0x53430
- Trainer ID address: pointer + 0xD064
- Secret ID address: pointer + 0xD066
- Lottery ID address: pointer + 0xDE4C
- Party's pokemon PID: pointer + 0xD088 + 0xEC * (pokemonslot - 1)
- Wild encounter PID: pointer + 0x38540
Enemies pokemon PID address is a bit more complex:
- Enemy pointer address = pointer + 0x37970
- Enemy pokemon PID = enemy pointer + 0x1C70 + 0xEC * (pokemonslot - 1)
After the PID, pokemon data is stored in RAM with the following structure: http://projectpokemon.org/wiki/Pokemon_NDS_Structure
(Thanks to Masterjun for linking me to this since I didn't know about it)
I made a lua script that shows all the information about a pokemon, I don't plan to release it yet though.
One thing I was trying to understand is when an encounter happens. I was checking the RNG address, but I couldn't figure out any formula about it. If somebody knows please let me now.
Is the battle RNG like in Black/White where it only advances when it needs to make a decision? If so, is it possible to manipulate better starting seeds before entering battle?
Yes.
Yes. Though a thing that's different to Gen 5 is that the starting seed of the battle does not depend on Input, which makes it harder (impossible?) to manipulate without losing frames.
Warning: Might glitch to creditsI will finish this ACE soon as possible
(or will I?)
This information is wrong though.
It is true there is a tweak to complete Azalea Gym before Slowpoke Well (which is the video jlun linked after this message). However, you still need to complete Slowpoke Well to trigger Rival 2 fight and Farfetch event inside Ilex Forest (only after that, you get the HM01). Which means this tweak only woud skip Slowpoke Well if you got a Pokemon with cut via trading.
I did some speedrun attempts and improve a few of the tweaking setups, so I thought I'd list some here:
(Running tweak being faster than biking tweak)
Link to video
(Fastest Slowpoke Well entry)
Link to video
(Route 29 tweak. Disables a bush and saves a few seconds)
Link to video
(Viridian tweak, comparison)
Link to video
(Goldenrod tweak, comparison)
Link to video
Ah, that would be my fault; I was trying to list an example of a sequence break possible with only running tweaking. Do you know of any actual ones then? If not then I'll fall back to being able to enable Mystery Gift before the first badge in DPP.
Do you know of any actual ones then? If not then I'll fall back to being able to enable Mystery Gift before the first badge in DPP.
Snorlax bypass in heartgold maybe? Anyway theres a biking tweak variant that works exactly the same way as running tweak, which is doing the same pattern with it than when you run. This method also creates a void but doesnt change the solidity of the map so its completely equivalente to the running tweak. So im guessing theres no such a thing as running only tweak.
By the way swimming tweak is equivalent to running tweak as well.