Posts for Chrezm

Chrezm
He/Him
Experienced Forum User, Player (106)
Joined: 8/11/2017
Posts: 5
There seems to be some slight confusion over the specific nature of the Sonic & Knuckles corruption. We aren't exactly irreparably breaking the lock-on technology or otherwise disconnecting Sonic 3 from Sonic 3 & Knuckles, in fact a simple soft reset at any point will bring you back to Sonic 3 & Knuckles. The way we trick the game Sonic 3 & Knuckles into thinking it is the game Sonic & Knuckles is by taking the way the game internally decides whether it is locked on to Sonic 3 or not, which originally is set up by game code to think it is locked on to Sonic 3, and then exploiting that to trick the game into temporarily thinking it is not locked on to Sonic 3. On Sonic 3 & Knuckles startup, Sonic & Knuckles code is run, and part of it is what I call the "lock-on determination routine". This routine attempts to read the contents of ROM that would exist if a cartridge were to be locked on (in particular it is trying to read the header of a locked-on ROM). If it is convinced that such a locked-on ROM exists and that it seems to be a Sonic 3 cartridge, Sonic & Knuckles will be convinced it is running alongside Sonic 3 and thus set the value at address $FFAE-FFAF to 0000. If it is convinced that there is no such locked-on ROM, it will set the value to 0001 instead. The game will then refer to this value and this value only in order to make any decisions regarding whether to behave using a special Sonic 3 & Knuckles rule or a Sonic & Knuckles rule. In particular, it will assume that, if the value at that address is 0000, it must mean that previously it had decided that a Sonic 3 cartridge was locked on; and if it is anything other than that, then it must mean that it previously decided that there is no Sonic 3 cartridge locked on. Crucially, this decision is made not by acting differently if the value is 0000 or 0001, but whether it is 0000 or anything other than 0000. A few examples of such decisions of acting differently include: * On an act start, when showing the title card, whether to show a "Sonic 3 & Knuckles" text or a "Sonic & Knuckles" text on the red banner that appears. * Whether to attempt to save to SRAM or not. * Whether super emeralds are a thing or not. * Whether you can access the Sonic 3 stages, special stages and bonus stages; or not. * Critically for this TAS, whether to display the Sonic 3 & Knuckles title screen or the Sonic & Knuckles title screen. The TAS will start with Sonic 3 & Knuckles behaving as normal, setting $FFAE-FFAF to 0000 and thus thinking it is Sonic & Knuckles locked on to Sonic 3. At the very end of Hydrocity, the long setup that we do in the zone causes a buffer overflow at the KosinskiM decompression and DMA queue, which combined with the previous Angel Island 2.2 crash, will be such that we fill in $FFAE-FFAF with something other than 0000 (in this TAS, that value is hex value `beda`). That value is not 0000, so any further point where the game needs to act differently depending on whether it is locked on to Sonic 3 or not, it will think it is not and thus think it is Sonic & Knuckles. That means that this point, if we can make it to the title screen, the Sonic & Knuckles title screen will appear. Since we cannot soft reset (as that reruns the lock-on determination routine), we use the next fastest known way of making it to a title screen, which is getting a game over. Getting a game over, while at first glance seemingly restarting the game, does not actually rerun that routine. Therefore, once the game needs to decide it shows a Sonic 3 & Knuckles title screen or a Sonic & Knuckles title screen, since the value at FFAE-FFAF is non-zero beda in the TAS), it will think it is Sonic & Knuckles and thus show that title screen. I updated the submission text accordingly.
Post subject: RE: Possible New Improvement on CNZ2 S&T/SAlone Any%
Chrezm
He/Him
Experienced Forum User, Player (106)
Joined: 8/11/2017
Posts: 5
Hello, I'm back. Last time I showed a potential new route for Carnival Night 2 in Sonic's any% run. Unfortunately, due to it requiring obtaining and carrying wheel glitch through act 1, it lost a considerable amount of time when considering Act 1 and Act 2 together, thus not making it faster overall. However, I've recently came across a different method altogether thanks to an idea provided by sumerhays which even though gets wheel glitch in Act 1 (and thus loses some time compared to the current TAS), saves enough time in Act 2 to be faster overall: Link to video The example I show here is RTA-wise 150 frames faster than the current TAS (measured from the title cards of CN1 and IC1), and IGT-wise approximately 312 frames (approximately 0:37::30+0:30::08 = 1:07::38, compared to 0:32::28+0:40::22 = 1:12::50). Do note it is not extremely optimized, as I had spent most of my time looking for a humanly viable version of this; this just came as a sidenote. Some key places include the CN1 boss fight (which is definitely optimizable) and CN2 overall (as I have managed to obtain a high 0:29 before which can be seen here: https://youtu.be/IL_fP3KlKTk ), including the post-timer cannon portion where I didn't have Tails with me because I messed up his respawning time (it is possible to have him, as seen in that 0:29 vid). By the way, you may recognize the early portions of CN1 from the previous S3K TAS by nitsuja, Upthorn & marzojr ( http://tasvideos.org/1656M.html ), as I was too lazy to redo the super optimized version of wheel glitch (and I did not want to lose time that I already know can be saved). The movie files can be found here: https://drive.google.com/file/d/1JJwB2CE6uHPkC3BRaMXiEUtiW2rssgkP/view?usp=sharing . They contain the input file and a savestate that can be loaded after the movie starts to skip to the beginning of CN1, alternatively, one can also seek to frame 24600. The reason for such a high starting point is because I created this movie directly based on the aforementioned TAS so I could keep their optimal wheel glitch setup (and I did not know how to splice movie files); I just overwrote the inputs from CN1's 0:13 IGT onwards. Hopefully this will be useful.
Post subject: Possible New Improvement on CNZ2 S&T/SAlone Any%
Chrezm
He/Him
Experienced Forum User, Player (106)
Joined: 8/11/2017
Posts: 5
Hello. I know you guys are currently focusing a lot on ring attacks, but I wanted to share what I came up with for Carnival Night 2 in the Sonic Any% category. Link to video GMV File: http://dehacked.2y.net/microstorage.php/info/195977748/Sonic%203%20%26%20Knuckles%20CNZ2%20SubTAS%20Attempt%201.gmv (requires savestate at level select with CN1 highlighted and Sonic Alone selected because I need to carry wheel glitch from Act 1) The glitching into the ceiling bit uses the same idea as the Tails' route, although done now with the wheel glitch gravity directly as opposed to just regular flying. Other than that, it is just abusing wheel glitch in interesting new ways all the way up to the boss as opposed to getting rid of it in favor of taking a different path. I know I used Sonic Alone for this example, but I just wanted to show an unoptimized proof of concept of Sonic or Sonic&Tails taking the ceiling strat which RTA runners have recently started using (although through a much more simpler method), but now in a TAS setting, which in this case ended up being faster than the current S3K TAS time of 0:40. I am not sure this path is known in the TAS community, but I couldn't find any mentions of it, so I'm just hoping to see if anyone can find this useful, especially for a future S3K Any% attempt. I'm especially intrigued what Sonic&Tails could do together with this method, as based on the current TAS there are a lot of ways that Tails can be used to accelerate the path Sonic takes. Note: ignore the 1:00 time in Act 1, I just winged a quick RTA run for it
Post subject: Launch Base 2 skip
Chrezm
He/Him
Experienced Forum User, Player (106)
Joined: 8/11/2017
Posts: 5
Some hours ago, I stumbled across this: https://youtu.be/gAEM2h_HZdI (skip to 4 minutes). This is terribly unoptimized, but the whole idea is that (using a game file) you should beat both midbosses of Knuckles' LBZ as either Sonic&Tails or Tails in "different" acts (as in, beat one midboss, allow the transition from LBZ1 to LBZ2 to fully happen without dying, and then beat the second one) and after the second score tally, reset the game. The game file believes you are now in Mushroom Hill, effectively skipping the entirety of Launch Base 2. I couldn't really find anything similar (other than a mention of the skip to the next level transition after a score tally glitch, which would often only save some seconds in an RTA/RTA-TB setting), so I'd like some opinions on whether this would be viable for the S3&K TAS (as you could effectively clear LBZ2 in 0:00.something). Thank you!
Post subject: IceCap Underflow and Unintended Objects. New setup (?)
Chrezm
He/Him
Experienced Forum User, Player (106)
Joined: 8/11/2017
Posts: 5
Hello there. I know I'm reviving a six-year old discussion with this post, but I've been told to come here and discuss my recent findings with people more knowledgeable with the quirks and inner workings of S3&K. Almost two months ago, while I was practicing IceCap speedruns in Gens, I accidentally managed to crash the game as I had messed up the rolling down the slope speeds/angles/whatever around the area before the midboss. After messing with Debug, I noticed that right before the crash, I had activated the load IC2 trigger but both the camera and I had really high X-coordinates (FDE0, FF2A, etc.), which made me believe I had underflowed my X position by letting Sonic have an X-coordinate less than 6910 (I think?) after activating the trigger but before the actual displacement of the objects happened. If I went out of Debug at this point, the camera would attempt to scroll back to 0000, which would crash the game. However, further moving around with Debug mode allowed me to load basically almost any object from LB1 that I wanted (for example, enemies, big rings, or even the mid-boss) in basically the same way that the three users that made the Debug glitches series of videos did (go to roughly the area where those objects are supposed to spawn and hope for the best). Unfortunately, I was never quite able to replicate this setup (rolling down the slopes in a specific way) in any other emulator, nor get it to work by trying to replicate my inputs by hand in a fresh gmv file; although loading already underflowed savestates in other emulators did allow me to replicate part of this behavior. I guess splicing the rolling-down-the-slope section into a ICZ1 gmv with Debug mode activated normally would work, but I’m not familiar with the tools required to do such a thing. A video of how that setup looked like can be found here: https://youtu.be/DHI3TxMbXV4. A zip file with a gmv file and the required savestate can be found here: https://drive.google.com/file/d/0ByxmC6HngEDiYjFCbFl1UV9Ucnc (it requires activating Debug at about frame 3000 using Game Genie Code FFFFDA:0001 because back when I made this movie file, I was just practicing speedruns obviously without debug). A few days ago, I managed to find a relatively easier and definitely more sensible way of getting my X coordinates to underflow. A video of how this setup looks like can be found here: https://youtu.be/OHSUlzsIJRY. Unlike last time, trying to replicate this setup in Gens 11a, Fusion 3.64 and even Regen 0.972 proved to be successful, and I even managed to get the mid-boss to spawn in all three emulators by doing the same steps as the ones showed in the video, and even a bunch of objects from LB2 (including the first boss) and surprisingly enough even from HC2 (two fan propellers that push you upward, and the fan that pushes you to the boss at the end). Interestingly enough, trying to work with Regen turned out to be a challenge, as sometimes getting the wrong coordinates meant a crash to desktop. A zip file with a gmv file and the required savestate can be found here: https://drive.google.com/file/d/0ByxmC6HngEDicXR1UF92Sm9WeHM/view (no special requirements, skip to about frame 10,000 to see the actual underflow in action). Of course, I am aware that to get something useful out of the underflow you do need Debug for now. However, the main difference with the videos that were presented 6 years ago is that they don’t rely on “death tricks” and seem to work in different emulators. And yes, I have tried dying and switching to Debug to uncover more stuff, and indeed got a bunch of additional stuff. I am unable to try this on console, but my guess is that it works. In any case, I’d like to get your opinion on this, seeing that this doesn’t seem to be an emulation glitch and that the underflow can be performed without Debug. For now, it doesn’t seem to be that useful, but maybe getting an underflow in a different Y position could turn out to be more useful? Thank you