Ok this post is going to be a mess but here goes.
I found that the difference between FF04 and FF05 (the two RNG addresses) changes sometimes. At first I assumed it only does at the title screen but now it can change in subsequent levels if you insert delay frames.
What this means:
- The 5 hours of testing I did a while back is kind of meaningless since not all possibilities were tested. It isn't so bad though, since Hard mode can start whenever you want. With normal mode it's a different story, since you have to start out with the RNG you get at the beginning. Anyway:
- Just by testing for 10 mins, I saved 7 frames in normal mode by merely inserting delay frames
after the scoring process of 1-3. Not before and not during, just after it.
Normal mode is improvable.
- At first sight, there seem to be...
(amount of delay frames you want to test) ^ 13 possibilities
...as to how you can insert delay frames and that need testing in world 1. Explanation: If you were to insert delay frames by pausing and unpausing the game, you could do it anytime before the world 1 bonus game. But I found that it matters exactly when you do it. You have to check the difference between the two RNG addresses - It's fixed normally but it changes on the title screen and when you insert delay frames, which causes luck to be different*. Right now I'm considering 13 different places where you could insert delay frames, and each combination between those need to be tested.
(* Example: If you go as fast as possible and the difference in the next level is 80 but the bonus game luck is bad, you can try inserting 1 delay frame in the level and check if the next level's RNG difference changes. If it's still 80, try inserting the delay frame after finishing the level / during the scoring / after the scoring / try inserting more delay frames. You want to test the scenarios that have different differences.)
The 13 places are:
- Title screen
- In 1-1
- After 1-1
- During 1-1's time scoring
- After 1-1's time scoring
- In 1-2
- After 1-2
- During 1-2's time scoring
- After 1-2's time scoring
- In 1-3
- After 1-3
- During 1-3's time scoring
- After 1-3's time scoring
The current normal mode TAS:
I didn't check but to sum it up, it has 1 delay frame in title screen, no delay frames in 1-1 and 1-2 and quite a few delay frames during 1-3.
The improvement I found:
- Title screen
= 1 DELAY FRAME
- In 1-1
= 0 DELAY FRAMES
- After 1-1
= 0 DELAY FRAMES
- During 1-1's time scoring
= 0 DELAY FRAMES
- After 1-1's time scoring
= 0 DELAY FRAMES
- In 1-2
= 0 DELAY FRAMES
- After 1-2
= 0 DELAY FRAMES
- During 1-2's time scoring
= 0 DELAY FRAMES
- After 1-2's time scoring
= 0 DELAY FRAMES
- In 1-3
= 1 DELAY FRAMES
(by slowing down. I don't know to how much delay it actually amounts, i.e. taking pixel positioning and timers into account)
- After 1-3
= 0 DELAY FRAMES
- During 1-3's time scoring
= 0 DELAY FRAMES
- After 1-3's time scoring
= 3 DELAY FRAMES
(by pausing and unpausing)
You could possibly improve this further by doing what I suggested: Try to insert different amounts of delay frames elsewhere. Test all combinations. I think it would make sense to only test the same amount of delay frames that we already used, or less (5 or less). That means...
13 ^ 5 possibilities
... need testing, which is 371293 possibilities. I don't know how to bot this. We didn't even figure out how exactly RNG works and why the RNG difference changes sometimes but not at other times. It's possible that we can narrow down the places that matter, i.e. maybe it doesn't matter if you insert a delay frame "in a level" or "after the level but before the scoring".
Also, if we find a scenario with less than 5 delay frames, the calculation changes as there are now only 13 ^ 4 possibilities we need to test, etc. We will no longer look into combinations that use more than 4 delay frames. Then we might find one where it takes only 3 delay frames. So even though the huge number of possibilities above might be discouraging, I think we might find the best scenario soon even without botting.
EDIT:
I'm going to test with 1, then 2, then 3 etc. delay frames.
Feel free to check here to see my progress (although it may take me a few days before I feel like testing it).
https://docs.google.com/spreadsheets/d/1z7oI6oL9X-bIF0IPLcVdGEByk7U_ER2zwe6gxgz2XFI/pubhtml?gid=0&single=true