Sorry, my English is terrible. Thus, I will be very brief.
About this run
- Manipulates Luck
- Aims for fastest time
- Colors adelikat
- Abuses programming errors in the game
- Contains speed/entertainment tradeoffs
- Uses warps
- Little fat people on Unis
- Avoids coins
- Is a few frames faster than the last Battle Chess submission
- Warpless
- Rerecords: 488711421
- Fan-TAS-tic!
I first starting playing Uniracers back in 1994. Although I'm relatively new to the game, I thought I'd make a try at a TAS, and if it turned out to be suboptimal, then at least it would serve as a stepping stone for other, harder, better, faster, stronger TASes that would not only bring glory and triumph to their creators, but also shame and disgrace to me and my family.
In order to avoid the prospect of eventually having to throw myself onto my Wiimote, I decided to contact Halamantariel, a recovering Canadian who specializes in TASing awesome but underplayed SNES games. He had previously been working on TASing Uniracers with a close friend, Spider-Waffle, but they ended up parting ways after being unable to decide on the most appropriate color for the Uni. It turns out that white is optimal both in that it is more aerodynamic and thus slightly faster, and that it doesn't show as bad when it gets dirty. As it turns out however, the color mattered little in the end.
Hala had a lua script that had been passed down in his family for generations, by the name of USJO, which I will abbreviate from here as "the stunt bot."
What those who may be unfamiliar with Uniracers need to understand, is that you can perform stunts in the game, which increase your boost. In a normal setting, people just do stunts and that's that. They are, for the most part, capped by how fast the screen moves. The reason for this is that boost depletes 5 times as fast when you are offscreen. Thus, the optimal strategy for a TAS is to manually manipulate your Uni, building up boost over the course of the track, before finally shooting off like a rocket at the climax of the race. We jacked around with this strategy for a bit, applying different strokes of genius as they came to us.
USJO really helped us out, though. Using USJO, we could automate what basically boils down to having an incredibly frame-precise jump every 60 frames. The code was old and musty, but with the help of the wizard Nitrodon and his rare gift as a 65816mouth, we were able to improve USJO to the point where it could beat Uniracers all by itself. However, this was not enough. I felt that there had to be a way to beat Uniracers even more quickly.
One night, I awoke from my slumber in the mountains in a cold sweat. The word "W-" was the only thing on my mind. Having no idea what that meant, I began to code my own rudimentary bot to "solve" Uniracers in the fastest time. After hours of painstaking work, it was complete. I was able to clean off enough of my blood from my keyboard to open up SNES9x and have it run the bot. I let the bot work for a little over three months on the problem. When I came back, I discovered there was a bug that simply reloaded the save state every frame.
At that point I did what any sane coder would do: I bought a pack of notecards, wrote each step of my algorithm on them, and then proceeded to process the code manually. The result from that is this work. I decided in the end that it would probably make for a faster run to use the Game Title code, also known in Uniracing circles as the "GT Code." This is a rare, and very sensitive exploit that absolutely breaks the game in half. The timing was harder to get down than any trick I've seen in any TAS before. But I'm sure you can agree, the results are worth it! NOTE: Use of the code results in a strange graphical glitch late in the movie. I'm sure it'll stick out right away.
Suggested screenshots:
[dead link removed]
IIIIII MMMMIIMM IIIIII::IIII IIHHIIIIIIHHHHIIII::::HHII IIMMHH::IIHHHHHHIIIIHHMMII II##MMHHIIHHMMMMMMMM##II IIMM############HH IIHHHH:::: ,,^^ ,,,,^^^^ ##^^:: HH::HHII HH::HH##II IIHHHHHHHHII HHHH::HH##II IIHHHHHHHHHHHHHHHH##HH::HHMMHH IIMMMMMM########MMMMHH::##HHMM IIMMMM##IIIIIIIIIIIIMMHHHHHH#### MMMM##II HH::HHMM##HH HHMM##II HH::::HH##MMHH MMMMII,, ##HH::::HHHHMMHHMMMM IIMMMM::,,....HHHHHHHHHH##IIIIMMMMII IIMMMM::IIIIMMHH..::HHMM^^ ::MMMMII IIMMMM::HHMM,,,,,,IIHHMM ::MMMMII II##MMIIIIIIIIMMHHHHHHMM ::MM##II ##MMII:: IIMMMM ::IIMM## HHMMMM:::: ,, ::::MMMMHH ##MMMM::,, ::::,,::MMMM## II##MMHHII,,,,::::IIHHMM##II II##MMMMHHHHHHHHMMMM##II IIHH############HHII IIHHMMMMHHII