Quick update:
- I'm 83/500 levels into the TAS (although 50 were already done) and I've uploaded some of the coolest ones
on youtube
- the community on Discord is incredibly useful
- I've been able to reach out to every author of the original TASes runs, *except* Raif, the central person in most of them. He's been unreachable for a few years now and it's a bit of a problem because if we don't manage to reach him, I'd have to redo the 50 levels already done (as we don't know who did what)
- I've kept improving
the tooling. I now have lua scripts that draw the hitbox of important elements (doors, switches, ninja) and automatically finds x;y position in memory. I've made a PR to libTAS to add a ramsearch API in lua for this (waiting for review). I still have to figure out how speed actually is stored in memory
- I've just figured out there is subpixel precision to x position in the game that varies weirdly depending on air time (jumps). This adds a lot of complexity to find the optimal route for each level and means I may have to optimize levels already done to gain 1 or 2 frames here and there
- Someone one Discord called tetra is working on a neural-network-type AI that finishes level on a later game (N++). It starts having promising results and could probably be adapted to N 1.4. At that point it's not possible to know if that AI will barely manage to finish levels or completely maximize every run at a TAS level. More info
on the Discord channel. For the moment I'm waiting a little bit to see future developments of this project, because if this eventually avoids having to TAS the 417 remaining levels manually, well... good (every level takes me 15 minutes to 3 hours to TAS, with an average of ~1 hour)