Getting this star with 0.5 A-Presses has lowered the total count to 19.
You’ll...you’ll have to read the video description to see exactly how.
Pannenkoek wrote:I collect the star Get a Hand and re-enter Tick Tock Clock using 0.5 A presses. This strat can only be done on the Japanese version of the game. This is TAS. This improvement reduces the total A press count for collecting 120 stars from 20 to 19.
Previously, the optimal strat was to collect this star 0x and then re-enter the course using an A press. However, ds273 figured out that we could collect the star 0.5x and then use wall displacement from the pendulum to displace Mario in such a way that he ends up on the spinner (providing spawning displacement that lets us re-enter the course without another A press. ds273 figured out what pendulum movement was required to make this work, as well as how to get into position behind the wall using bob-ombs.
Here's a breakdown of what happens in the video. First in TTM, I set the HOLP. Then in TTC, I do instant release on the 2 bob-ombs so that I'll be able to activate them later. Then I ascend the spinners and ride the hand over to the Get a Hand cubby. From there, I do pendulum manipulation for 18 minutes in order to make the pendulum be near the swing index that we need. Then I activate one of the bob-ombs from earlier, grab it (which must be done using a ledge since A is held), activate the other bob-omb (who's fully bloated) to have it push me into the wall, use the pendulum to adjust Mario's height, and then navigate laterally over to the spot where I'll kick from. Once the pendulum swings into position, I kick the wall, line up just right to get 10 wall displacements at once, brush up against the hand to adjust Mario's position, and then ledge grab onto the lowest spinner. The spinner's rotational velocity triggers spawning displacement, allowing Mario to land on the top of the clock when exiting the course. From there, I'm able to re-enter the course without another A press.
Note that there are 2 critical pendulum angles that need to happen, which are (1) the angle where we walk on it to adjust Mario's height, and (2) the angle where the wall displacement happens. Note that the pendulum has to stop on (1) but has to swing through (2) with sufficient velocity. ds273 found pendulum swings that achieve these angles, but they weren't near each other in the swing graph. So I found the (1) angles, then also computed these angles ±65536k (for an int k) to get all the angles that work. Then I used code to branch out from each of these to see which ones were near an angle (2) that worked. In the end, I found a case where angle (1) and angle (2) are separated by 2 swings, and so I moved forward with that case.
Note that once we get into the wall, we can't manipulate RNG anymore. So I had to write a brute forcer that would calculate that ideal conditions would happen in the future, namely the pendulum swing, the hand being in position, and the spinner having the right angle/direction. However, I had to do movement during the scope of the brute forcer's solution, meaning that the brute forcer had to factor in all the RNG effects of my actions. So I investigated when RNG gets called for mario's dust and the bob-omb's fuse smoke/coin/blinking. Eventually, my brute forcer was complete, so I ran it and it produced potential solutions. Testing each solution took about 10 minutes, since I had to mimic the behavior that I told the brute forcer I would do (e.g. reactivating the bob-omb on an exact frame). On the 11th solution I tested, Mario successfully got the spawning displacement, and so I moved forward with that case.
Note that achieving the wall displacement requires an exact float position, since we have to line up with the vertex that all the walls have in common. Thus, I had to write a brute forcer to calculate the inputs to do while Mario was in the wall walking backwards with the bob-omb. I had to factor in both Mario's walking behavior and how the bob-omb pushed him backwards. Luckily, I also calculated that there were about 2000 valid float values to end up in, since the cubby wall hitbox would converge all of these to the same point. Unfortunately, this movement involved the HOLP, whose exact position depends on many things, including the camera angle, which is outside the scope of my brute forcer. So I approximated the HOLP, found solutions, and then tested about 20 until I found one that worked, and so I moved forward with that case.