marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
The glitch death in HCZ1 requires you to zip out of the screen far enough so that the object that lets you walk on water gets deleted. Entering a special or bonus stage causes this object to be recreated as the level loads. Thus, you can't get an emerald and perform it unless you zip in between.
Marzo Junior
Active player (356)
Joined: 12/17/2013
Posts: 73
Location: Argentina
marzojr wrote:
The glitch death in HCZ1 requires you to zip out of the screen far enough so that the object that lets you walk on water gets deleted. Entering a special or bonus stage causes this object to be recreated as the level loads. Thus, you can't get an emerald and perform it unless you zip in between.
It might be difficult, but I'll try Emm ... If not possible, I will remove the special stage of this act and make the travel of his run in HCZ2, if you understand me Unless there is another way to go ... I think I have no other... :/
Current Projects: Snic & Knuckles 3 - Knuckles 100% - AIZ2 Future Proyects: Genesis games GBx - GBA games
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
TheYogWog wrote:
-- Macros for spindashing and climbing walls on the right
There is one special flags byte, which contains a bit indicating if your character is looking left or right. I found that byte by random lurking when I had to abuse complete brute-force for extremely precise positioning. In Sonic 2, it was the first (from the right) bit of the byte 0xFFB022. In Sonic 3, this seems to be something related with the character animation. If marzojr knows what byte/bit we can use as a direction indicator, it would allow to improve your script making it work in both directions.
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
It is bit 0 of byte 0xFFB02A (Sonic) or 0xFFB074 (Tails) in S3&K. For Tails in S2, it is 0xFFB062.
Marzo Junior
Joined: 5/9/2005
Posts: 748
TheYogWog wrote:
Well I'm pleased to say I finally found a way to get the rings inside the capsules in FBZ1.
Major grats. I know how much of a pain you found them in your IL wips.
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
Thank you, marzojr! TheYogWog, now you can extend your script… I am lazy to check what input is needed and to do everything myself, so I just give you a hint on how to check if the character is looking left or right (in assumption that Knuckles is using the same RAM address as Sonic)…
Language: lua

state = memory.readbyte(0xFFB02A) if (state % 2 == 0) then -- Code for the first case else -- Code for the second case end
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
I would use "AND(state, 1)" instead of "state % 2) for clarity. YMMV. And yes, Knuckles uses the same RAM addresses as Sonic.
Marzo Junior
Editor, Active player (385)
Joined: 7/13/2013
Posts: 138
Paused wrote:
Major grats. I know how much of a pain you found them in your IL wips.
Major thanks. Yes, it was not easy. I'm just glad I found a way to incorporate it into my full game run. And as with so much of my TAS, I couldn't have done it without the help of Marzojr's SonicHUD.
WST wrote:
TheYogWog, now you can extend your script… I am lazy to check what input is needed and to do everything myself, so I just give you a hint on how to check if the character is looking left or right
Thank you. I will try messing with this soon to see if I can get it to work. In case anyone's interested, in this post I wanted to talk about the process I go through to prepare for each of the acts. I'm beginning work on Sandopolis 1 now. The first thing I do is study the map, for this I use both SonicZone0's maps as well as the map pack put together by Upthorn and Marzojr, IIRC (sorry if this is wrong). The latter is especially useful for its solidity displays which helps a lot when thinking about glitches I could potentially use, and it's also the one I'm going to be editing with my route path and linking to below (hope this is ok). Sometimes I'll actually go through and just circle all the spots I can find where a glitch can be used just to sort of make a list of where they are, and then go into debug mode and test the ones that seem most useful. Once I've determined what glitches are available to me, I'm able to begin piecing my route together. It's really a lot like solving a jigsaw puzzle, where you start with the pieces you know go along the edge and build from there. Likewise with my routes, I start with the areas I know I have to do a certain way or in a certain order, in order for the route to work (ie, not hit a dead end, avoid redundant motion as much as possible, etc), and go from there. So, that's what I'm going to do right now, and I'll post a "WIP" map of my route below to actually show what I mean (sorry for the shitty quality and my terrible MS Paint skills). http://oi59.tinypic.com/15oxnaq.jpg For now, I only have the beginning and ending paths mapped out, and one part in between that I know has to be done a certain way. The idea is to only mark the parts that I know for sure, so I don't rule out anything too soon and keep an open mind about what's possible. From here it gets more subjective and I basically just stare at the map for way too long until I think I've figured out the most efficient way to connect the initial paths. I may edit this post later as I flesh out the route more. Also, two things: First, about the path I marked in the middle. It's actually my method of getting the 3 rings stuck in the wall. It will look cool to watch because you'll see Knuckles bounce off the monitors and go off screen, which is where he'll stay for some time as he runs along the top of the structures in the sky, and then you'll see him suddenly falling a long way straight down to go into the floors and walls of the structure with the rings inside. Second, I'm wondering about a peculiarity on that map, I think there might be an error. I circled it in white, on the lower lefthand side, that landmass with some rings I don't think is actually there in the game. Anyway, once I have my route set, I might go through and do a ring count, manually counting each ring and making a note of how many I should have at various points along the way. This has been really helpful in making sure I don't lose track of any, say, "in the heat of the moment" as I'm busy TASing and trying different things, and might not notice that 1 stray ring that got thrown out of memory by the lightning shield until hours later or something. That kind of thing. In some cases though I haven't bothered to do this, mainly when my route is similar enough to the route I used in my IL's of the same act. Then it's easy because I can just refer to my own older recording to know exactly how many rings I should have at any given time. Rarely, I've done really sloppy, poorly optimized "trial runs" of the full route just to make sure they actually work before I spend thousands of rerecords on the real thing. MGZ1, for example. That's pretty much it. The only thing left to do after that is TAS. When it comes to the very short term goals or obstacles, such as finding the optimal way to get through a given area (as opposed to the best way to get from one area to another), I usually just mess around while I'm recording and test the different possibilities on the spot. Oh, I forgot to mention, at some point I almost always review other TASes of the same act (mostly Upthorn's 100% run since that seems to be the only published S3K TAS I can find featuring Knuckles) for reference, and also Orkal's videos on YT to check out some of the known glitches for the act. That's it I guess, so much for my dissertation on the subject. Hope anyone who read all this enjoyed my novel and found it fascinating as I do to talk about. Edit: Ok, here is what I've been able to work out. It's a really crude drawing but I will probably use some slight variation of this route. SOZ1 is a difficult act to plan a route for, it's a pretty complex map. There's a lot of "one way" areas to be aware of and work around, and a lot of different paths to take, and it's often not clear just judging by looking at it whether one is faster than another - a lot of them seem about equal with pros and cons they offer, and can be hard to test as doing so may require playing through a large portion of the level to see the results. The moving pillars don't help either, I think there might be a way to predict and account for their locations but if so that's beyond me right now so they're practically completely random for me. I figure I'll just deal with them as I come to them, there's not much I can do about that. http://oi57.tinypic.com/f2neac.jpg
Knuckles does, what Sonican't.
Joined: 5/9/2005
Posts: 748
Curious which takes longer, the routing or do the input itself? Though I guess that can change on a level to level basis. Which of the two do actually prefer?
TheYogWog wrote:
(mostly Upthorn's 100% run since that seems to be the only published S3K TAS I can find featuring Knuckles)
Now you are in the 2nd half of the game there is also this to look at; http://tasvideos.org/2494M.html Looking forward to the second, extended edition, novel of your submission comments for when you are done!
Editor, Active player (385)
Joined: 7/13/2013
Posts: 138
Paused wrote:
Curious which takes longer, the routing or do the input itself? Though I guess that can change on a level to level basis. Which of the two do actually prefer?
Thanks Paused, sorry it took so long to reply, been busy with work, etc. By far doing the input takes longer. With the exception of, maybe, Angel Island Zone. I remember spending like a month mostly just testing that level but then I was only just learning about a lot of basic things like the glide glitch and zips and stuff. Incidentally, AIZ happens to be a pretty complex route, especially for the first level of the game, so that was a factor too. But normally, even if there's a lot of testing to be done (MGZ1, LBZ2), all the prep work can be finished in 8-10 hours or so... compared to recording the inputs, it can take me that long just to get 20-30 seconds done. It's when I'm TASing that I get to solve a lot of the short term goals / gameplay puzzles which is really the most interesting part for me, so yes I tend to prefer doing that, although it can still be fun putting together route puzzles too.
Paused wrote:
Looking forward to the second, extended edition, novel of your submission comments for when you are done!
Ha. Thank you. I've been keeping notes as I go though and I can definitely say it's in danger of being TL;DR at this point. Of course I'll have to revise it first but you know, there are a lot of times where I'm not sure if I should bother to include an explanation about something or not. Like why I used a glitch or trick and how it works if it's particularly intricate. I like being detailed and all but then I wonder if it's not just too much info for most people after a certain point.
Knuckles does, what Sonican't.
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
I found numerous improvements for the currently published Sonic and Knuckles TAS, from the very beginning. This is one of them. I am not going to redo the run, since Qwerty is working on a much better full run of Sonic 3 and Knuckles, and I’m helping him, but I’m posting this image just to show what I mean.
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
Active player (356)
Joined: 12/17/2013
Posts: 73
Location: Argentina
My proyect of Sonic 100% (with WST) is in progress now I decided to make some routes of marzojr run as HC1 and HC2 So I find it easier to collect the emeralds
Current Projects: Snic & Knuckles 3 - Knuckles 100% - AIZ2 Future Proyects: Genesis games GBx - GBA games
Editor, Active player (385)
Joined: 7/13/2013
Posts: 138
Sandopolis 1: Link to video One thing I noticed that was unusual, my ring count went up by 70-80 rings, but it only lasted for a single frame before going back to normal. The amount seemed to be affected by my speed, if I slowed down I would get slightly less. I have no idea what caused this, just wondering if anybody knows more about it? It happened after I ejected out of a wall approaching the boss area, I'm pretty sure I was off screen at the time, and there were 10 "pending" rings from a monitor I destroyed but which hadn't been displayed to my total yet. If only there was some way to make them stay at 673, that would be amazing.
Knuckles does, what Sonican't.
Player (55)
Joined: 11/28/2013
Posts: 118
They just keep getting more impressive the further you go.
Projects: Tetris DS Genesis Toys: Let the Toy Wars Begin
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
TheYogWog wrote:
One thing I noticed that was unusual, my ring count went up by 70-80 rings, but it only lasted for a single frame before going back to normal. The amount seemed to be affected by my speed, if I slowed down I would get slightly less. I have no idea what caused this, just wondering if anybody knows more about it? It happened after I ejected out of a wall approaching the boss area, I'm pretty sure I was off screen at the time, and there were 10 "pending" rings from a monitor I destroyed but which hadn't been displayed to my total yet.
Can you OM me the GMV? I can use it to try to figure out what is causing this.
Marzo Junior
Editor, Active player (385)
Joined: 7/13/2013
Posts: 138
What is OM? Anyway, turns out you don't need my movie specifically. I just tested it some more and was able to make the same thing happen in LBZ1. So, it can probably be done anywhere you can terrain eject through a ring monitor. But I think it requires a place where you have room to get a decent distance going straight forward. It only happens at very high speeds (4,900-4,800), so I couldn't get it to work if there were upward slopes (not sure about downwards yet), enemies, or other monitors in the way. Also when I paused it right beforehand it changed the values even more. But I don't know what any of this means, and I appreciate you wanting to look into it, so for your convenience I've provided a short demo movie showing it being done so it should be fairly easy to test from there. http://dehacked.2y.net/microstorage.php/info/950953885/ktelevelselect.gmv
Knuckles does, what Sonican't.
Joined: 5/9/2005
Posts: 748
I imagine an OM is a personal message (PM), only typed by someone who has a tricky to use keyboard? WIP is looking great, not much more to go now.
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Paused is correct, that was a typo I missed: it should be PM instead of OM. Edit: ah, I see what is going on: this is not a real increase, but simply graphical corruption in the rings display due to the camera hack. There is no way to really keep this increase as it only exists temporarily because of the camera hack. This was the tl;dr version; here is the full explanation: To understand what is going on, you need to understand a bit about how the camera hack works: it first saves a state invisibly; then, it moves the camera to a position off-screen but close to the screen; it then emulates frames invisibly, while forcing all of object RAM to remain the same, until the camera is centered on the player; then, the camera hack forces an update to draw this frame; it then invisibly loads the state it had saved. The position the camera is moved to is chosen so that any objects that would appear on-screen have a chance to load in time to show up. Now, the key bits are "emulates frames invisibly" and "forcing all of object RAM to remain the same". The monitors have a delay between being broken and giving their bonus; and there comes a moment when the timer is about to expire in which you are off-screen. In this state, every frame emulated by the camera hack will see the timer expire, give the rings and update the display, then reset the object RAM to what it was on the start of the frame, so that the next frame will do this again. The faster you are moving, the further off-screen you will be when this happens; there is a limit to how much can be "gained" this way, but I won't bother tracking it down. In the end, this increase goes away because of the invisibly-loaded save state, which puts the game back on the correct state. So the increase is not real, but an unintended temporary consequence of the way the camera hack works.
Marzo Junior
Editor, Active player (385)
Joined: 7/13/2013
Posts: 138
scahfy wrote:
They just keep getting more impressive the further you go.
Paused wrote:
WIP is looking great, not much more to go now.
Very thanks guys!
marzojr wrote:
Paused is correct, that was a typo I missed: it should be PM instead of OM. Edit: ah, I see what is going on: this is not a real increase, but simply graphical corruption in the rings display due to the camera hack. There is no way to really keep this increase as it only exists temporarily because of the camera hack. This was the tl;dr version; here is the full explanation:
Ok, thanks for explaining everything. So, does that mean the effect won't occur whenever the video is played back in unhacked versions of the emulator? Also here is something I stumbled upon while working on my TAS for Sandopolis Act 2. It's not fully optimized but it is a small route improvement, saving 3-5 seconds over the current Knuckles TASes. I know there are some differences between S3K and S&K so maybe it won't work in S&K alone. Unfortunately I don't think I'll be able to use this short cut in my own TAS, but I think it will be useful in regular speedruns. Oh, and sorry about the sound, I fixed it in a different video but YouTube is stupid and rejected that submission, so I suggest just muting it. Link to video
Knuckles does, what Sonican't.
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
TheYogWog wrote:
saving 3-5 seconds over the current Knuckles TASes
Yep, I didn’t know about this particular one, but I already know very well that the weakness of my last TAS is not using glide-through trick where it’s possible. I started run of S3&K with Qwerty, however, it seems to take him really a long time to do Angel Island 2, which needs some quite hard maneurs to be done in the tube.
TheYogWog wrote:
I know there are some differences between S3K and S&K so maybe it won't work in S&K alone
It will
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
TheYogWog wrote:
Ok, thanks for explaining everything. So, does that mean the effect won't occur whenever the video is played back in unhacked versions of the emulator?
Correct; it also does not happen when you disable map hack with scroll lock. If you note, my HUD is also not affected by this.
Marzo Junior
Editor, Active player (385)
Joined: 7/13/2013
Posts: 138
So, basically, whoever figures out a way onto that one blue tile will make Sonic history because it's possible to glide from there onto the wall, and then climb up on top of the screen and run along the ceiling all the way back into Sonic's starting area. Which, to my knowledge, has never been done before with Knuckles. I've spent a lot of time testing different ways to get into Sonic's area and I'm fairly certain this is the best/only possible way of doing so while still being able to finish the level. And I'm not even sure if this will work, it's beginning to seem like a long shot. I've come close to reaching the tile, but not quite enough. This is as close as I've got: There seems to be only 3 ways of reaching it: 1. falling through the bottom step either by glide glitching or spindash jumping/the stair glitch (top pic); 2. falling through the top step to land in the wall next to it and jumping from there (bottom pic); 3. glide glitching through the thinnest part of the floor (by the breakable rocks near the steps) to land on top of the door object below and then jumping onto the tile (not pictured because I haven't managed to do it). But there's a problem with each of these. For 1, the glide glitch almost works but for some reason I get pushed directly back up onto the step instead of going through it. I don't know why I can glide glitch through the top step, but not the bottom one? As for the stairs glitch, it probably won't work because the ceiling of the corridor to the left of the stairs is so low that it messes up the timing of the jump. For 2, for some reason I can't jump from the very edge of the wall. I'm pretty sure there have been times in the past where I've been in similar situations to this - I'm zipping through a wall, get close to where the inner wall/floor tiles end, spindash, and then I'm able to safely inch my way towards the edge without being ejected from the terrain, and perform an ordinary jump from there. Why doesn't that work here? For 3, I know it's possible to glide glitch through very thin floors, however I'm not sure this floor is thin enough. I was able to glitch through the floors shown below in Sandopolis 2 and I didn't think I could do that at first, either, so maybe the same will work here. I think it might help a lot if I knew what the numbers mean, usually on 2x tile floors they're labeled "FFFF FFFF". Is that hex for the value of how thick they are? Would I be able to use that values to determine if getting through a given set of tiles is possible, without wasting hours testing it manually? Unfortunately they numbers aren't shown in the pic because I didn't have time to go into the game and take screenshots of each, these are just from the map packs, hopefully it's good enough.
Knuckles does, what Sonican't.
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
TheYogWog wrote:
For 2, for some reason I can't jump from the very edge of the wall. I'm pretty sure there have been times in the past where I've been in similar situations to this - I'm zipping through a wall, get close to where the inner wall/floor tiles end, spindash, and then I'm able to safely inch my way towards the edge without being ejected from the terrain, and perform an ordinary jump from there. Why doesn't that work here?
The spin dash is not actually a requirement — you need to be inside the rightmost 16 pixels of the wall to be able to «walk» there (though the spin dash may help you to align yourself). Can’t answer about the jump though, as I never managed to do it myself. In my TAS of Sonic and Knuckles, that small part was done by Aglar, and he certainly is the one who knows how to do it. I beleive it’s the question of positioning too. I apologize about almost-useless reply, just leaving it here to let you know that I am not ignoring your question — just feeling like it’s something I can’t answer…
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
TheYogWog wrote:
For 1, the glide glitch almost works but for some reason I get pushed directly back up onto the step instead of going through it. I don't know why I can glide glitch through the top step, but not the bottom one? As for the stairs glitch, it probably won't work because the ceiling of the corridor to the left of the stairs is so low that it messes up the timing of the jump.
Knuckles uses a different collision routine while gliding: this specific routine does not have the code path that allows falling through terrain ("stair clip"). Without this code path, the game recognizes that you are inside terrain and ejects you back up. Note also that the wall on the top step is thinner (as the step is thicker); ejection generally goes walls first, then up or down out of the wall (depending on the relative vertical to horizontal speed). This becomes especially relevant given that terrain ejection is limited to 16 pixels, and this wall is thinner than that.
TheYogWog wrote:
For 3, I know it's possible to glide glitch through very thin floors, however I'm not sure this floor is thin enough.
My theory regarding glide-glitching through floors is that it has the same cause as glide-glitching through objects -- it is a combination of factors that include perfect positioning (less so for objects), the additional 2 pixels/frame boost you gain when you are moving down and start gliding, plus the fact that when you stop gliding, Knuckles' collision box reverts from the smaller size used in gliding to his standing collision box without adjusting his Y position to compensate. The latter factor causes Knuckles "feet" to go down (19-10) = 9 pixels; if you were falling at a speed of at least 5 pixels/frame when you activate glide, you get boosted to 7 pixels/frame which then cause Knuckles to drop a full 16 pixels in the next frame as you stop gliding; with perfect positioning, you can get past "thin" floors which are that high. There is an additional constraint in that you need to activate glide 2 frames before you would hit the floor, and release it on the next, so these figures give a ballpark. With more speed, you may be able to fall through thicker floors; the issue is just getting enough speed -- I estimate you would need to be moving at least 13 pixels/frame to be able to glitch there (3328 subpixels/frame), and you need to fall for over 387 pixels to gather this speed; this would put you more-or-less at the spindash elevator above the steps, and there may not be enough space to get enough speed and position yourself properly.
TheYogWog wrote:
I was able to glitch through the floors shown below in Sandopolis 2 and I didn't think I could do that at first, either, so maybe the same will work here. I think it might help a lot if I knew what the numbers mean, usually on 2x tile floors they're labeled "FFFF FFFF". Is that hex for the value of how thick they are?
They are related to the slope of the tile; FF is equal to zero for the game.
Marzo Junior
Editor, Active player (385)
Joined: 7/13/2013
Posts: 138
WST and Marzojr, always appreciate your input. Thank you. That did clear up some confusion I was having and helped save me a lot of time testing stuff. Theoretically I believe Knuckles is able to get enough speed and proper positioning to get through the floor, which seems to be the best shot at reaching the tile, but it's really tricky to pull off... and unfortunately, I don't think it would work, anyway. Upon further testing in debug mode, I can see there's very low chance he would actually be able to reach either the door object or the tile, even if he did manage to glitch through that floor. It's a shame. In every other level there was always some way for him to get into where he isn't supposed to. I guess the developers really determined not to let that happen in LRZ for whatever reason. Unless someone figures out a way to active the slope glitch, which I kind of doubt as it probably already would have been discovered by now. So, in my opinion it just really is impossible for Knuckles to get in there. Oh well, on the bright side it's less work for me...
Knuckles does, what Sonican't.