Joined: 11/13/2006
Posts: 2822
Location: Northern California
User movie #15601063153038125
The music in this game is way too good.
Just wanted to try my hand, but I couldn't get very far before I hit a roadblock with enemy manipulation. I don't think I'm going to work on a submittable movie any time soon, if at all, but as long as that Stage 1 track is going through my head I'll probably keep going with a test run. Or maybe I'll just optimize Stage 1 to the absolute best of my ability and stop there.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Somehow this thread got some major updates and my auto-notification didn't kick in. I admit that the glitches are a bit heartbreaking for me, because things like invincibility really destroy a lot of the important gameplay, but I'm thrilled to see major progress.
As before, totally count me in for looking over things from a less technical viewpoint. Good luck!
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically.
Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.)
Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html)
Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature!
Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Joined: 11/13/2006
Posts: 2822
Location: Northern California
I'm starting to feel like the final TAS time could be sub-20.
Couple things to report:
*I ended up redoing that test run I posted. There's a bit of inconsistency with water, it seems, where sometimes the oxygen bar appears a frame later and you start moving downward a frame later than usual, or vice versa. That and enemy manipulation are things I'm still trying to figure out. I think it just has to do with simple timing and when screen transitions happen, but I need to do some further testing to be sure.
*Speaking of testing, the invincibility glitch: From a quick test, health is located at RAM address 00F6 (1 byte, signed). It starts at 4, of course, and drops to 0 when the invincibility glitch is done. It decreases by 1 (0 to -1 to -2 and so forth) with each hit until it reaches -128, then the next hit wraps the value around to positive 127. Or, in other words, the invincibility glitch gives you 256 health.
*Adding on to the above, I did a full-game run with re-records, mostly at 50% speed, and I ended with a health value of 120, so there's absolutely no risk of running out of health even if you take as much damage as possible over the course of the run.
*Skipping the boots seems to save around 45 frames (from another quick test, could be more with precise optimization) on its own, plus the time saved from not having to switch to the bomb (looks like around 70 frames, so ~115 total frames), so if avoiding damage takes less time than that then it's most likely worth it to skip the boots.
EDIT: User movie #15704559200517787
From a quick test, skipping the boots is definitely the faster option, saving 80 frames over my WIP up to that point.
A few more things I tested/found out:
This actually ended up inputting slightly slower than the current prize code (likely due to the 0 and the H being almost as far apart as possible), so another one would have to be found.
*User movie #15704169183404063
I redid the WIP I posted earlier and continued it before testing skipping the boots. It's 31 frames faster than the WIP from 2011. There's mostly just minor movement optimizations in certain places (the most notable one being clipping into the conveyor belt right before using the second bomb, which saved 10 frames).
*One thing of note about that file: There is a trick I use on the way to getting the air canister that's worth mentioning. Jumping for more than 10 frames will cause a screen transition when jumping into the water where the air canister is, but holding A as soon as I reach the height of a normal 10 frame jump will slow my fall as if I had jumped for 12 frames, giving me some extra distance and saving 7 frames by cutting one jump out of the water.
Hopefully this can all be of some use.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 11/13/2006
Posts: 2822
Location: Northern California
I edited together these two files almost painlessly (encode only because I still have work to do on the input file):
Link to video
The last conveyor belt is moving the other way in the new movie, which loses a frame, but everything else is the same aside from skipping the boots at the beginning. The most noticeable change is the submarine section, which still uses the old input even though the shark positions have changed. This will be fixed by the time I put up the next WIP.
Apparently I'm dedicated to working on this, now. Whoops.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 11/13/2006
Posts: 2822
Location: Northern California
Stage One done: User movie #15769420923926888
Encode:
Link to video
203 frames ahead, mostly from skipping the boots but there are other small optimizations all throughout. This is still only a test/reference run. I don't know if I'm going to work on a more optimized run after this.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 11/13/2006
Posts: 2822
Location: Northern California
User movie #15821523096605510
Complete test run in 20:16. As much as I want to write a plethora of notes, I'm holding back until I get all my optimization done. The game's been really edit-friendly so far so it shouldn't take long at all to get things tested and implemented.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 4/17/2010
Posts: 11479
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
For some reason it only works inside taseditor for me.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/13/2006
Posts: 2822
Location: Northern California
Huh, that's odd. Probably something weird I did when saving it.
User movie #15838525573213727
Does this file have the same problem? If it syncs then it should be on the queue in a few hours.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 4/17/2010
Posts: 11479
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
This one works.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/13/2006
Posts: 2822
Location: Northern California
User movie #16056749041711739
I can't stay away from this game, no matter how hard I try. Since there were a lot of requests for it, I'll be working on a run that doesn't use the health underflow glitch. This WIP only goes up to using the remote for the submarine, and does so almost a second faster than the last WIP I uploaded where I still collect the boots. Despite collecting the boots and needing to switch over to the bomb, this is only a second slower than the published run up to the same point. The improvements come from rope boosting, of course, and using the boots to collect the bomb 11 frames faster by abusing the fact that Scooter's hitbox extends when using the boots.
I would have gone farther with it before posting, but there's a couple things I wanted to address... and I just didn't want to do the submarine section yet. First, I missed two obvious-in-retrospect rope boosts, so there's now two known improvements of a few frames in the published movie. I'm still debating on whether or not I want to go back through the published movie and implement these boosts (and test a couple other things in the process). If I did, it wouldn't be for a while.
Second, before I continue with the rest of the stage, I'd like some opinions: I'm considering making this run damageless to serve as a counterpart to the very... well, damage-full published run. The way I see it, a damageless run could have an entertainment advantage due to how insanely hard this game is and how it tries its best to hurt you at any given opportunity. The later levels especially would be fun to watch, with all the effortless dancing around enemies and bullets. The downside is that it would be quite a bit slower, likely minutes slower than a run that does use damage + death to save time. The hard hat deathwarp would be taken out, adding 20 seconds of slow swimming on its own, plus there's the obvious extra waiting around, and in a lot of cases there wouldn't be much I could do to make those waits entertaining.
So I'd like to know what the general opinion is here: Damageless or not damageless?
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Finish the no health underflow glitch run, then if you're still hungry go back and improve the any% TAS with everything new you've learned in one big go.
I think showing that the entire game can be beaten no damage/no death would be incredibly entertaining/remarkable.
Joined: 4/17/2010
Posts: 11479
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
No damage is boring as hell for most games where it can save time.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 11/13/2006
Posts: 2822
Location: Northern California
I've decided that due to how friendly the game is with editing (in fact I've been editing this run down from the published run's input), doing both runs could be feasible, though time-consuming. A damageless run would help me a lot more in planning a damage route, too, so it might really be worth it to do both.
User movie #16101113982230901
Goes up through collecting the hard hat and deathwarping. As far as I can tell, the Stage 1 damage route up to the deathwarp is optimized, so I don't think I'll do any testing on that until a later date. I saved 10 frames over the last WIP in the first part of the stage by taking a slightly different route after collecting the bomb, then the second part is almost exactly the same as the published run aside from some entertainment changes.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
I only just noticed these posts... somehow I'm not getting notified even though the site says I'm watching the topic.
First of all, I vote for "not damageless", though it seems you've already made that choice. Planning deathwarps with only a few lives makes a really interesting challenge. When micro5000 stopped putting up more progress, we were actually discussing how best to do a deathwarp in Stage 3 near the end.
Secondly, I watched this WIP. It looks good, but I have a suggestion for a possibly big improvement right at the start. Why don't you collect the Bomb before the radium-plated boots? If it works out, there would be two advantages:
(a) you'd double-back less
(b) you'd have the Bomb be the primary equipped item, so you wouldn't have to do an item switch to get the remote
The downside is that you'd have a harder time avoiding damage since you'd have to go along the top bridge twice, but since you'd be deathwarping at the hard hat area anyway, it probably pays off.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically.
Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.)
Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html)
Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature!
Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Joined: 11/13/2006
Posts: 2822
Location: Northern California
Ah, good catch! I did a quick test and it does look to be quite a bit faster that way. I'm not sure why I didn't test it before, probably because of the extra enemy avoiding and losing the rope boosts. Oddly enough, I'm very close to the published run even though I grab the boots and use a much slower route, due to the different enemy patterns. I'll have to do some more testing when I have the time, I've been busy as hell recently.
On top of that, I'm getting an odd glitch in Stage 2 where the platforms up to the rover don't appear even though I have the glasses. I'm thinking it's because I pick up the glasses with the boots to save some frames, but I'll have to save all that testing for later once I test, implement, optimize and resync the route change.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Glad to see the change works! Take your time with the experimenting. It wouldn't surprise me if the platforms are triggered by your position over the glasses and not by your actual inventory.
Maybe try a cheat where you remove the glasses from your inventory in the approach to the platforms? That would be a way to test this.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically.
Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.)
Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html)
Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature!
Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Joined: 11/13/2006
Posts: 2822
Location: Northern California
That's what I was thinking too, and since it was a quick and easy test I just confirmed it. You can stop a frame short of the glasses and turn back without collecting them, and the platforms will be there. It wouldn't save any time though since you'd still need to wait for the moving platform. Collecting the glasses "early" just barely allows for a 20+ frame improvement by not having to wait for the platform, so that's kind of a harsh loss. I'll see if I can save the couple frames necessary to get those ~20 frames saved.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Keep in mind that if you don't get the glasses, you have fewer inventory items, so it takes less time to scroll items. It's definitely worth skipping the glasses. Nice work!
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically.
Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.)
Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html)
Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature!
Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
The current iteration of the code is unfortunately too slow to cover the space in a reasonable time, but I am working on an FPGA version that should better cover speed issues. I also spent some time in developing inverters for some of the functions, but it's...messy. A lot of it is directly invertible, but there's a lot of control logic checks that make it tricky to deal with. The non-invertible functions depend on unknown bits, which pretty drastically increases the search space. I think it's still smaller than the initial 64-bit search space, but it will be an order of magnitude slower to find workable solutions. We also don't have the actual specific result either though, which limits the feasibility of inverting the function.
I'll post some performance metrics when my FPGA implementation is done and we can decide if it covers the search space efficiently enough.
I've figured out that after you finish world 5 the processed code is used to XOR a chunk of ROM into machine code. It then does a simple checksum on it, which if it comes back successful it attempts to run the code. I didn't see any other checks happening, which means we have to process the code all the way through before we can check it. We then need some kind of heuristics to decide if it looks like machine code or not. Omnigamer is taking a look at this processing from a more cryptography based standpoint, so I'm looking forward to seeing what he figures out. If it's still necessary we're thinking about doing the brute forcing on some FPGAs in the future.
One other semi-breakthrough that I'm not sure if I've mentioned yet is that a number of 8-byte payloads result in the same 128 byte output (a collision). I believe I saw around 8-10 payloads that are close to the known payload that return the same result. That means two things: one is that the password entry in the TAS be shortened further by picking a faster to enter payload in addition to wrapping it into a password that's faster to type (what I showed in a previous post). It also means that if we can prove that two payloads will return the same result before processing them all the way through we can save processing time by only processing one.
My current code is available here if anyone wants to look it over. I haven't touched it in a while, but it includes some optimizations for payload collisions. Similar processing is done 26 times throughout the game, so after every one of those steps I compare all of the working codes that are being processed and delete any that match. The more codes you process at once the more memory you need, but also the more likely you are to find collisions and be able to remove them. To give you an idea, I ran this code on a memory optimized EC2 instance which has ~240GB of ram, and did my best to fill that ram with codes to try. It took ~3 hours to do the first step to every code, and then IIRC ~85% of the codes were eliminated due to collisions.
I'm stuck now on how to determine if two codes will result in the same thing. The nature of the processing is such that it can be hard to predict the result of some steps without simply doing that step. In the mean time I have plans for 64-bit optimizations to my code for minor speed boosts.
Would anyone be interested in helping out via a distributed computing setup? It would involve you running a program in the background on your computer that would be processing codes. It would also communicate with a server to keep track of what has been done.
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
I'd be willing to run a background program, I think.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically.
Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.)
Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html)
Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature!
Thanks also to Samsara for finishing a Treasure Master run. From the submission comments: