This is a 13 frame improvement over the current publication. While that TAS used a brute force approach to identifying solutions to the puzzle, I instead chose to take a more methodical approach here (despite what the rerecord count may suggest) and in the process solved the same board in 2 fewer moves.
For some reason, I can't keep my hands off this game and was going back in originally with the aim of creating a minimum moves TAS. I had it in my head that there would be this incredible board that could be solved in under 15 moves if I just waited on the title screen for long enough, but some research showed that the board generated by pressing Start on frame 196 is very likely the best board you can get. It also showed that the memory address responsible for generating the board is $00B9 and it's on the fifth frame after pressing Start that is the deciding frame. For this TAS, board 156 is used. With the way the brute force script panned out while working on the current publication I quickly ended up skipping over trying to get the first available board, board 102, to work because it just could not find a solution and I was struggling to find any sort of viable solution in real time too. I made a TAS of this board after finishing up on this submission just to see what was possible and it came out to 26 frames slower. The execution can probably be cleaned up a bit and a move or two taken off but it did not seem possible to beat board 156.
The method I used for this submission was, I guess, a very partial breadth-first search which probably would have been better off with a programmed solution but I chose to do this manually instead, because this project started out as a 'what if?' rather than an actual attempt to make anything official or practical. My idea was to progress with the move that would open up the flood to as many new cells as possible. Sometimes this would produce clear results but if any were tied or if there was only a 1 point difference between 1st and 2nd, I'd perform the same calculations on all potential 2nd moves and add the square root of that result to the total result. I wasn't completely happy with my first attempt with this method which came out to 316 frames and so on the second attempt, for cases where counting the 2nd moves didn't produce a clear winner, I went to all the 3rd possible moves. If I really wanted, I could have gone to the 4th moves but that seems a bit excessive and I don't think it'd make much of a difference. This method does sort of fall apart towards the end when most cells stop blocking others and I ended up taking over for the last bit and I was very lucky to end up with pretty much being able to scroll down the side one colour at a time and finish it.
It's entirely possible this method was not the right approach or there's something crucial I was missing to make it even better but it's certainly a big improvement over my previous attempt and I felt like I did a good job of minimising the amount of times I had to take 3 up or down presses between 2 colours. So even ignoring the number of moves, I'm pretty happy with the optimisation of this run. That said, 30x is painfully close but I just couldn't find a way to squeeze out the remaining 3 frames.
nymx: Claiming for judging.