Posts for Alyosha
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Arc wrote:
I tried fighting the boss of The Ocean and was 5 frames faster. http://tasvideos.org/userfiles/info/26561776830838838
Yes there are several areas, this being one of them, that can be done faster. I believe The Ocean can be beaten ~ 15 frames faster, the problem is RNG. Any improvement in level 2 has to spawn a fairy correctly in the first part of level 3, for anyone interested in trying this means 07F9 should be a 2 when you start playing level 3 (in your file Arc it is a 3.) Also, you will need to get 07F9 to be a 1 in the third part of level 3. So any improvement will need to consider at least these factors. Good luck! vvvvvvv @samsara: I'm done, only speaking for myself though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
http://tasvideos.org/userfiles/info/26559500031674055 ok! please replace the movie file with this one. Finally killed the last boss with the fairy. Well that is some pretty amazing luck, it was already there staring me in the face. At least now another TAS mystery put to rest. : ) will update submission text accordingly.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
D: D: D: wait a minute, I already have a fairy spawning in the room where the pirate is, how could I have missed that!! I just tested it and I successfully killed the last boss with this fairy. Well I do feel stupid now,but expect a replacement file in an hour or so.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Oh good idea, I never even tested it before. Well I just did now and nope it won't save time, it simply takes too long to take damage. In level 1, the only thing dealing 2 damage is getting directly hit by the cat and chandelier, but since you get invulnerability frames after that it doesn't save time to just stand next to the cat. This adds up to 2.5 lost seconds, or 150 frames. Dying takes about 450 frames. So about 600 are used in this method. In the save minnie method, it adds up 1.5 seconds to lose minnie (and the time you would save using the minnie quick exit trick) plus another 430 frames to rescue minnie (from frame 6570 to 7000), so about 520 frames total. So nope, not faster, but close and worth it to check
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Heidman wrote:
Any updates?
At the moment I am out of leads. The most likely scenario is starting to seem like random hardware error. The thing is that flipping one bit at any time will end the level, and there are about 3 bits that would have this same effect as demonstrated in the movie, so a random error has 3 chances of success. But personally I'm not really comfortable with that explanation so the search continues, even though I have so far found nothing remotely interesting. To sum up what's been looked at so far: Object table corruption: Nothing interesting, gets reset on game reset Stack corruption: game uses stack memory for sound effects and some variables related to backpack guy, clears the stack up to about 01CF. Strange effects could result if the stack pointer got low enough, but doesn't even come close without hacking. Backpack guy generation edge case: nothing relevant. General glitch hunt: nothing interesting, the game seems to do things pretty carefully. If anyone has any theories, I'd be happy to hear them!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Oh yeah Minnie's star. I started out testing both getting and not getting the star. It costs an additional 200 frames to get it, mostly due to the animation on picking it up. I tested up through level 3, and recovered about 10 of those frames by having the star, so I concluded that there was no way I was going save time in the end, it mostly just generates lag. Yes it is possible to spawn a fairy to kill the last boss, but I susspect the setup will take longer then the time it saves, if anyone can do it though I'll be impressed!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
My opinion on this is that RFN games should focus a bit more heavily on newer games. The next generation of TASers probably grew up on N64 or even later, a run of Mega Man 2 for example will not be particularly interesting simply because its an old game on a console they may never have even played. I realize though that newer systems still have immature emulation, so the TASes to choose from are limited, just my two cents on what a new comer might be looking to see and how we might pick games accordingly. As an example I think the GC super monkey ball run would be a good choice.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
http://tasvideos.org/userfiles/info/26536987742402642 Much improved WIP closer to final version. I think everything up to the last level will be final now. I am about 20 frames down by the start of the last level, not too bad for struggling to get decent RNG the entire way. Just a mater of getting the last level in shape. If anyone wants to help / co-author this run I would appreciate the help, surely someone with a fresh perspective could save even more frames. Feel free to jump in!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
http://tasvideos.org/userfiles/info/26518553074730814 Once I realized I could sync the published run in FCEUX (it also syncs in bizhawk too with adding a few frames at the start) I made a bit of a breakthrough in understanding how RNG works. And was able to make some pretty rapid progress. This complete WIP is the result. It is 100 frames faster then the published run. After the warp trick in level 1 I am 300 frames ahead, so clearly this still needs some serious work, particularly the last level. So for side scrolling levels (2 and 3) the addresses of interest are 006C,006D,006E. These are modified by certain enemies on screen, the bears in level 3 for example. They cycle the RNG for when in a section of the level a fairy will appear. Once a randomizer function does its work, the result is stored in 07F9 when the next section loads. The value is 0-3, 0 being the start of the section, 3 being at the end. Keeping track of these variables makes the fairies in level 3 pretty easy to manipulate, it is still guess and check, but at least we know what to check now. I'm still working out RNG for the other levels. I expect the final submission to be about 4 seconds ahead of the published run, losing about 1 second of what the warp saves in trying to deal with lag and RNG. Also I don't think having minnie's weapon helps, it more often then not just makes extra lag, so I've stopped development of that run.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
FCM file format wrote:
Even if the header says "movie begins from reset", the file still contains a quicksave, and the quicksave is actually loaded.
What I mean to say is that the movie file contains a quicksave (savestate) which contains RAM values other then the power on initialization values. This state is apparently loaded by FCEU 0.98.15. This game does not clear RAM upon reset, so this is important for this particular game. EDIT: It looks like the quicksave in this case is made on frame 5 from power on. I just tested this, and it turns that if you convert Randil's FCM to FM2, then add 4 frames to the beginning of the file, it will correctly sync in FCEUX 2.2.2 So yes, the published run starts from a savestate, that state just happens to be frame 5. (Arc's ghost and goblins run had this same issue.) I'm sure many runs from that era suffer the same hiccup.
Post subject: Mickey Mousecapades
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
I've been working on this on and off for quite a while. I haven't made a lot of progress so I thought I'd post a WIP in case anyone else was interested in working on it too. http://tasvideos.org/userfiles/info/26476033887292740 So far I have a pretty optimized level 1 done. I think Minnie is captured in the optimal way. And I didn't lose a lot to RNG in the rest of the level. Recovering Minnie and using the warp trick saves about 5 seconds (if you don't get the second star.) If you do choose to get the star it costs 200 frames to do so. So having the star for minnie will need to save 200 frames throughout the remainder of the game for it to be worth while. I also have a file for the no star case I've been working on in tandem. I also tried the other smaller warp suggested by Tangent but it turns out to be slower by about 15 frames. I've been stuck on working with the RNG to get the correct fairy spawn in level 3. The WIP file doesn't sync past level 1 in its current form, but most of the inputs to beat level 2 are roughly in there. Having the second star for minnie to shoot in level 2 does seem to save some frames in lag reduction by killing additional enemies, I haven't done any firm calculations though, since its seems I need to do level 2 and 3 together to get that fairy to spawn. EDIT: oh yeah, also I'm pretty sure Randil's run starts from a savestate, so I didn't get the same spawns in room one. Seems it suffers from the same problem as Arc's ghosts and goblins run.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
http://tasvideos.org/userfiles/info/26408577789790762 Ok! I got a new 101% completion WIP up and running. This one includes some major updates, including the super jump in 3-3, the croctopus chase improvement, and the rolling in the air glitch in 6-1, as well as some other minor improvements. Things are really shaping up! I tried doing some more work in croctopus chase, but I moved a bit too far ahead at one point and made the game stop spawning objects, including the exit, even though the camera still eventually caught up to me. So definitely more work is needed in that one, its practically a ~1:30 TAS all by itself. Also at this point I'd like to invite anyone else interested in this game who wants to work on this TAS to pm me, or even just jump in and start working. I simply don't have the time I used to to put into this and I would hate to see it languish again in WIPs, especially now that about 90% of it is finished, by my estimation. EDIT: vvvvvv Awesome! For me this will be the last update for at least the next month. I'll probably do some work on croctopus chase, but not much else, so anything that might get done between now and then will be welcome!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
@tompa: yes I kept playing after it got stuck, but the camera never recovered. My working theory is that the camera behavior is closely linked to the current croctopus you are being chased by. For example if you are moving horizontally and the croctopus track requires you to go horizontally, the camera will move quickly horizontally too. This is as far as I have gotten. Similarly, the camera seems to break when it doesn't know what track you are on, could be by skipping a trigger? I didn't try expresso yet this was just a test run that I only spent a few hours on from scratch as proof of concept, much more research is needed. @jlun2: sorry I am unable to post videos at this time. However a simple to reproduce example is after the first set of blast barrels. You'll notice I go down to trigger a croctopus before going back up, if I just keep going up the camera gets stuck in a corner.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
I've been too busy to make a lot of progress, but today I was finally able to sit down and at least get a rough draft of croctopus chase done with my new script. http://tasvideos.org/userfiles/info/26369311450733872 I didn't resync the movie past 4-4, so it won't play the whole game, but the total time is an accurate representation of how long the run would be if submitted today. Overall, it was pretty easy to TAS the level once I could see what I was doing. The camera is quite difficult to work with though, and many of the big shortcuts I thought I could take turned out to be undoable since the camera simply got irreparably broken. The final level time of ~1:32 is about 18 seconds ahead of the previous complete attempt so that is progress at least. I don't know how it compares to the nico video ones. Anyway, with the techincal hurdle removed, its just a matter of time to get the run in shape now. Let's go! For Tompa and anyone else interesting in taking a stab at this, here's a link to my script and the file that contains the lines I used to outline the level. Maybe someone else can find a better route. https://www.dropbox.com/s/pcxokh5hytzyhz3/radar.zip?dl=0 I'm not a programmer, so I'm sure some clever person can improve the performance of that too, it does slow down emulation a bit.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Comicalflop wrote:
Couldn't you TAS through the camera hack version and record the x/y pixel position of the entire route and use it as guidelines for where you're supposed to go?
sounds like a workable idea, but I don't think I'll be using the camhack at all. So far I have a digitized version of the level outline and a working lua script to display it on the screen. It still needs some work and is pretty slow but should be fine for TASing. I'll be trying to get a rough draft of the level going in the coming days. Hopefully I'll learn something about how the camera works along the way.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Thanks for the new info. I admit I don't really have any leads at the moment. I think I will indeed try to look at super C and see if anything comes of it. It's unfortunate that there are no visual ques of any kind to go off of, and even if the glitch occurs, since you can't see the RAM in real time play you would never know. I haven't given up though. I am confident an invalid call to EAEA is causing this glitch, I just need to find a way to make it happen. Either that or it's a one time event hardware error, but I don't really think so. EDIT: well investigating Super C a bit, it does share the same vulnerability that Contra does, in that changing a single bit at any time will end the level. Once again though its not obvious how this might occur outside the normal pathway. The coding style is also extremely similar to contra, so a hypothetical glitch would probably function the same way.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Yikes, after watching your WIP I have no idea how you managed to get that far, let alone in snes9x. No wonder it was so demotivating. So the camera hack can cause desyncs, and I imagine in bizhawk it will be even more of a problem, hmmmm..... My first idea would be to create a lua hud that makes like a radar display of the terrain that is actually around diddy, regardless of where the camera is. That way we could TAS by looking at that, should be way easier then TASing blind. Of course this would mean a file of the outline of he entire level would be needed. Hmmm I wonder if I could write a LUA script to write points to a file as I hug the walls around the level, this would somewhat automate the process.... Well I'll give this some thought and maybe make a prototype, seems like an interesting challenge anyway. Let me know if you have any other ideas.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
^ Yup, that's the general plan. Once all the main improvements are implemented though I will be going back over each level individually and making final improvements. Currently I'm just roughing out the run. http://tasvideos.org/userfiles/info/26069510258273969 Ok, master Necky skip implemented. I also made some other improvements mostly in world 6. I guess the next big step is to work on 4-4. @Tompa: what exactly is needed for this and how does the glitch you mentioned work?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
http://tasvideos.org/userfiles/info/26015201639726183 Alright complete game WIP is finally here! It's not particularly good, but it is 101% complete and syncs on bizhawk 1.11.1 I've gotten a bit busy, so things will be moving even more slowly from here. I think my next step will be to implement the Master Necky skip. Then I'll re-sync the whole run and give worlds 5 and 6 a second pass of improvement since they are pretty poor at the moment.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
A few days late but congrats samsara!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
well the backpack guy is a long shot indeed. I looked through the second half of the code, and nothing seems to stick out that would make anything strange happen. But, I do have another lead. After looking back where 003B gets set again, I found out that a timer at 002A gets set to FF and counts down. There is no other indication that this has happened. Once it hits zero, the stage ends just the same. So this pushes back the timing for the initiation of the glitch by ~4.25 seconds. In the video, this corresponds to when much more is happening and more possibilities for glitches exist. So I will start investigating this as a real possibility. EDIT: This point seems to be where an item is appearing out of a grey wall box and a red gun guy is getting hit by a bullet, might really be something here! Another thing I found is that I can make a jump to $EAEA to set $003B to 1 and $002A to FF without breaking the game. This is convenient since you only need to do 20 EA EA, and EA is coincidentally NOP code. The problem is that this alone won't set the flags to run the subroutine to run the timer, so the stage won't end, and I can't currently run the complete routine at $E740 without a crash. EDIT 2: So looking at subroutine EAEA a bit, it seems that main input is the accumulator. It runs slightly different for different values, based on the level you are in I would suppose. It will always set 002A to FF and 003B to 1 though. But, if a boss isn't loaded into a table slot, 002A will never get a signal to decrement, and if it stays at FF will never do so. So the interesting thing is, a glitch that calls EAEA could actually be relatively common, and you would never know it happened under most circumstances of the accumulator. It might simply be a rare case of the glitch that actually causes the level to end. How this might occur though is still unresolved.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Wow that is really neat! I love seeing clever hardware related things. I hope you can get sound implemented somehow to get a true game/hardware state loaded. keep it up!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
I thought I might post some of my notes in case anyone else is also interested in this. By comparing the HQ video and my input file with 003B hex edited to 1, it seems like the glitch ending the stage occurs a few frames before the player hits the ground. This would seem to exclude the landing routine from playing a part in the glitch. So, this leaves not a lot happening. I so far have no way to effect the object table, no way to mess with the stack pointer, and even if I did no way to reproduce the glitch as demonstrated on the video. The stray values that didn't get reset when selecting 'end' seem only to be impacting sound effects and have no real impact. So I've focused in on the random backpack guy generation as the only likely candidate for something that can produce this glitch. This is about all I have to work with that involves random variables and nothing visually happening on screen. The basics of the code are that first, it checks the frame counter, it only attempts to generate a backpack guy every other frame. TIf it passes this check, it rolls the RNG 16 times, if it gets a value that sets a carry flag, 0079 is set to 2, indicating a backpack guy needs to be generated. Otherwise nothing happens. This doesn't necessarily create the enemy either though. The next frame, when 0079 is set to 2, another routine is executed that decides whether to create one or not and where to put him. This involves both random variables and the players Y coordinate. I haven't made it that far into this section though. So my working hypothesis is that an edge case of this generation code causes the glitch, possibly linked to your y location on screen. Basically because I have run out of any other viable alternative ideas. On a more optimistic note, this might mean that the reset isn't involved in the glitch, so might have a chance at being a time saver. Anyway anyone interested in looking into this can also find useful info here: http://acmlm.kafuka.org/board/thread.php?id=6035 The backpack guy generation can be found in bank 2 around $B5XX
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
http://tasvideos.org/userfiles/info/25838401702180223 Alright world 5 rough draft done. It's nothing optimized and even falls behind the published run in some spots, but at least its in there. @Tompa: yeah I know I need to put in the skip and the 4-4 glitch still, I just want to have a complete rough draft. Next step will be going back to world 1 and 2 and finalizing it. At that point I will work out everything in world 3. No rush, I expected this to be a slow paced developement. Definitely something that won't be done until 2016 sometime.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3602)
Joined: 11/30/2014
Posts: 2749
Location: US
Oh awesome! I would love to see a run of this game console verified. Unfortunately I don't have a 1.0 cart either, so I guess I won't be of much help. Hope one turns up though! I'm powering through the rest of world 5 and going to knock out world 6 in the next couple of days mainly following arne's run. It won't be optimal but a good start.