Sorry for posting again, but this time it's about event flags and other things
https://docs.google.com/spreadsheets/d/1zYLmhTzuoJj20F59IMrOObM3G8vSBPnw8na67ukxVCc/edit?usp=sharing
Notes: All in EWRAM
012F66 - # of clues obtained; curiously this affects the clue displayed when you grab one; say if you edited it to 1, and grabbed the first clue. The game will hand you the 2nd clue instead.
There are also flags for items regarding should they exist in the room (obtained or not) and another flag checking if you had grab them. As a consequence of the latter, even if you were to (for example) take a key or wrench from earlier and somehow not used it, it still won't let you use said tool in a later part.
Same with clues, so it means I still have to physically obtain them, or else it will pretend I never owned it.
The savefile does not save the stage you're on; only the room. So if you cheated/glitched to a room in a completely different stage and saved after a checkpoint, it will show up as the new stage.
Edit: Also improved room 0x0E by 197 frames. I'm going to retry the first stage again.
Oh, and I went and analyzed the room with the first stairs in room 0x11. Seems I'm unable to actually gain enough vertical speed to clip into it on the spots I am able to clip (by cheating the speed value), and when I do obtain enough speed I'm too far up the stairs. I'll say it's not possible to clip there for now.
Edit2: Just so I won't forget to implement it this time, this is the fastest time I managed to slow down starting from a speed of 560
| 0, 0, 0, 100,...R.......|560
| 0, 0, 0, 100,...........|560
| 0, 0, 0, 100,...........|490
| 0, 0, 0, 100,..L........|428
| 0, 0, 0, 100,...........|304
| 0, 0, 0, 100,...........|266
| 0, 0, 0, 100,...........|232
| 0, 0, 0, 100,..L........|203
| 0, 0, 0, 100,...........|107
| 0, 0, 0, 100,...........|93
| 0, 0, 0, 100,..L........|81
| 0, 0, 0, 100,U..........|0
The speeds are the numbers at the far right. The "U" is me pressing UP to open a hidden door.
The previous method I used was
| 0, 0, 0, 100,...R.......|560
| 0, 0, 0, 100,..L........|560
| 0, 0, 0, 100,..L........|420
| 0, 0, 0, 100,..L........|297
| 0, 0, 0, 100,..L........|189
| 0, 0, 0, 100,..L........|95
| 0, 0, 0, 100,...........|13
| 0, 0, 0, 100,...........|11
| 0, 0, 0, 100,...........|9
| 0, 0, 0, 100,...........|7
| 0, 0, 0, 100,...........|6
| 0, 0, 0, 100,...........|5
| 0, 0, 0, 100,...........|4
| 0, 0, 0, 100,...........|3
| 0, 0, 0, 100,...........|2
| 0, 0, 0, 100,U..........|1
| 0, 0, 0, 100,...........|0
Which takes 17 frames rather than 12
Edit 3: That method works even at the normal cap of 553, but it stops earlier. A somewhat comparable method for this speed would be
| 0, 0, 0, 100,..L........|-553
| 0, 0, 0, 100,...........|-553
| 0, 0, 0, 100,...........|-483
| 0, 0, 0, 100,...........|-422
| 0, 0, 0, 100,...........|-369
| 0, 0, 0, 100,...........|-322
| 0, 0, 0, 100,...R.......|-281
| 0, 0, 0, 100,...R.......|-175
| 0, 0, 0, 100,...R.......|-83
| 0, 0, 0, 100,...........|-2
| 0, 0, 0, 100,U..........|-1
| 0, 0, 0, 100,...........|0
Which is the same, but does not work at +/-560 speed.