Yay, our first submission! Here is the result of our cooperative attempt of improving Qwerty’s recent TAS.
- Emulator used: Gens 11b + camera hack + solidity viewer + hitbox display + Sonic TAS tools
- Aims for in-game time instead of real-time
- Heavy glitch abuse
- Uses death to save time
- Takes damage to save time
- Ignores delays caused by bonus effects
|Level||New in-game time||Old Qwerty’s time||Frames saved||TASed by|
|Mushroom Hill 1||0:47.24||0:50.06||162 (0:02.42)||WST|
|Mushroom Hill 2||0:48.09||0:51.17||188 (0:03.08)||WST and feeuzz|
|Flying Battery 1||0:37.55||0:38.13||18 (0:00.18)||WST|
|Flying Battery 2||1:09.22||1:10.13||51 (0:00.51)||WST and feeuzz|
|Sandopolis 1||1:10.07||1:11.11||64 (0:01.04)||WST|
|Sandopolis 2||1:16.27||1:34.12||1065 (0:17.45)||WST|
|Lava Reef 1||0:43:44||0:44.37||53 (0:00.53)||WST|
|Lava Reef 2||0:21.39||0:21.44||5 (0:00.05)||WST|
|Hidden Palace||0:08.04||0:08.12||8 (0:00.08)||feeuzz|
|Sky Sanctuary||0:57.07||0:57.08||1 (0:00.01)||feeuzz|
Total in-game savings: 1615 frames (0:26.55)
Third-party input parts:
- DMTM in Flying Battery 1
- Aglar in Mushroom Hill 2 and Sandopolis 2
- marzojr in Sandopolis 1
- TheYogWog in Mushroom Hill 1
Stage by stage comments by WST
Mushroom Hill 1
I began TASing this level, because I had a feeling that proper positionong can allow making a better out-loop jump and save some frames. I was right: it saved about 10 frames. This inspired me to turn my WIP into a serious project. I managed to save about one second by pure optimization when I came to the point where I changed the route. The route change helped to advance the improvement. The final time is 3 in-game seconds faster than in Qwerty’s TAS.
Mushroom Hill 2
Abusing the monitor between the acts to switch into running state, which I suggested in the submission’s discussion, was actually nearly useless. However, I managed to find improvements further. First, making a jump at proper point allowed me not to bounce off the first enemy, and enter the zip point faster (an important part of this maneur was done by Aglar). Second, Aglar pointed out that the 32 pixel wall further may be skipped by proper alignment (the wall ejection speed itself would be not enough for this trick, but it becomes slightly higher because of the slopes there). These two maneurs saved about 2 seconds. Another second was saved in the very end of the act, right before the boss: taking the upper route is 47 frames faster than going like Qwerty did. This was found and performed by feeuzz.
Flying Battery 1
The almost-instant zip in this run was found by DMTM. DMTM recorded a gmv for me, but he used Sonic 3 and Knuckles ROM. I asked him if he was sure that the input would sync on pure Sonic and Knuckles, and he said this: «And it will work 100% on Sonic & Knuckles.bin».
I was unable to setup the zip faster, but it does not really mean that the zip cannot be set up faster — it only means that I did not try it hard enough. However, I was able to improve DMTM’s time (which was already better than Qwerty’s) later, during the level. It was enough to make the result one in-game second faster. The gravity glitch in the end was abused to die faster, which is important for TASing the next act.
Flying Battery 2
I got 2 gmv files for this level before I started to TAS it: Qwerty’s one and DMTM’s one. The funny fact about them is that in Qwerty’s run the horizontal underflow happened earlier than in DMTM’s; while DMTM’s run itself was faster. I did not notice the reason at first, and instead, started to TAS it myself. I was right: I came to the point of horizontal underflow 32 frames faster than DMTM (quite a much for such a short level). Then I finally realized the main difference between DMTM’s and Qwerty’s runs: DMTM found a way to give the boss an extra hit before it goes below the ground. The method is pretty simple: jumping from spindashing state makes Knuckles’s hitbox higher just enough to be able to make the first hit earlier enough to be able to make the second hit before the boss becomes unreachable. However, the final time was still slower than expected (remember that I mentioned I was 32 frames ahead?). Despite all my attempts to investagate into the issue, I was unable to find the reason. However, my further attempts on improving the time made me sure that the reason is actually the difference between the games (S3&K and pure S&K). Anyway, the result is 1 in-game second faster than in Qwerty’s run, which is good enough.
All the improvement comes from a faster route to the point of the zip, allowing to perform horizontal underflow more than a second faster. This trick was shown to me by marzojr, who learnt it from HDL (who also isn’t the trick’s inventor).
After the first act, I had to waste at least 244 frames for luck-manipulating the cylinder in the very beginning of the second act; there was no other way to get it out of my way. This could be avoided by saving some frames in earlier levels — just FYI.
The door switches in this level are a bit cunning: depending on your Y-subpixel position, you may loose 1 frame on them, because you will need 1 frame longer jump to reach their top. Jumping off the slope in the very beginning can be done from 2 different points. First of them gives you shorter trajectory, the second results in a better speed. However, in both cases you come to the switch at exactly the same moment, so I jumped from the second point just in order to manipulate my Y subpixel position (which is important for the switch, as I explained before).
But just like in most of the other levels, the main part of improvement came from major route changes. I took a route more similar to the route used in the currently published Tails run. It’s not the first time I TAS this level, though — I made a just-for-fun Amy TAS of it, which is also very fast, despite being just-for-fun and hence easilly improveable.
Lava reef 1
This was certainly the hardest of all levels (even harder than Sandopolis 2), and I have absolutely no idea if I did it in a right way. But to be happy, I still did it faster than Qwerty.
Lava reef 2
A small improvement here coming from better precision. However, I think that the improvement could be advanced by performing horizontal underflow a few frames earlier: proper vertical position management could allow entering terrain to the left from the tube and zipping right to the tube. I succeeded to do it once, but it did not result in any gainings, because I made another mistake (forgot about camera X position management — the camera was too close to the left edge, and went longer way than needed).
Nothing special but holding L+R in the beginning of the level.
Surprise =P only 1 frame saved here. Despite the fact that Y-subpixel management can let hit the boss earlier, it’s completely useless.
Suggested screenshot: frame 15544
Answerring the questions you may ask
Q: Why Sonic and Knuckles? Why not to TAS Sonic 3 and Knuckles, which includes the levels from Sonic and Knuckles?
A: Our goal was to make a submission, which could obsolete Qwerty’s TAS, as soon as possible. We may consider TASing the whole Sonic 3 and Knuckles in the close future, but there will be much more chance that we abandon our project.
Q: Is it really well optimized? When I was watching Qwerty’s run, I was deeply impressed and couldn’t even imagine that it can be improved that much
A: Well, Sonic the Hedgehog is not Super Mario Bros. The speed here is variable; you don’t have the handy «N-frame rule», which can «eat» your small mistakes; and the levels here have extremely complex layouts (exceptions are rare). If you look at the history of any Sonic TAS, you will notice that improvements of previous TASes of these games almost every time were very big. Obviously, it does not make *any* sense to classify Sonic TASes as «suboptimal» and «optimal» ones — it is not that kind of a game. Complexity of the game’s physics make the result dependant on consumed time, TASer’s experience and many other things. So, we are absolutely not sure that our run cannot be improved a lot as well. We were simply solving our task — proving Qwerty that next time he should consider TASing in a team.
Q: I want to improve your run. Can you guys give me some ideas?
A: deeper optimization may help to save frames in most of the levels; also we made almost no efforts to optimize non in-game time. There are also 2 levels in which the actual result is 1 frame worse than the expected (predicted) result, they are Sandopolis 1 and Flying Battery 2. The spindash before the high jump in Mushroom Hill 2 was useless — there was no significant difference in speed if I didn’t spindash (thanks to speed shoes). We are also still not sure that our routes are the best — Knuckles certainly needs deeper research. Finally, we may know a big shortcut in Sandopolis 2, but we are not sure (WST succeeded to perform it only once, and the gmv is lost).
Q: Where are the feeuzz’s comments?
A: Sadly, he wouldn’t like to write anything about the job he did.
Q: Is the number of rerecords true?
A: Yes, it should be close to.
Q: WST, aren’t you an Amy TASer? How are you Amy WIPs?
A: They are fine, but this stuff was more important, say hello to Qwerty.
Q: My question is not listed, wtf?
A: Just ask it. We will be glad to reply.
- Aglar and marzojr for expert consultation
- Qwerty for making the previous TAS
- DMTM and S3Kglitches for glitch discoveries
- LTRP and Joseph for the support
- TheYogWog for his amazing ring attacks
- AnS for patient waiting for our first submission for months
- Spikestuff for the quick encode
- Apple Bloom for her existence :3
- Our English
- TASing this instead of Sonic 3 and Knuckles
feos: Accepting as an improvement over #4110: qwerty's Genesis Sonic & Knuckles "Knuckles" in 11:57.29.
Spikestuff: This is for that tuna!