Posts for Alyosha

Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
A few days late but congrats samsara!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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 (3560)
Joined: 11/30/2014
Posts: 2744
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.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Alright Ice Climber is officially done! It will still need a revisit in the future, but for now time to move on. I will be working on double dragon next, it has known improvements already and I don't expect it to be really hard, but progress will likely be slow since it's not that interesting and Donkey Kong Country will occupy most of my attention.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/25770433474979414 ok got Tompa's WIP synced all the way up to the start of world 5. I think what I'll do at this point is complete the game to have a baseline and a file that actually has a complete run in bsnes. Obviously there will still be a lot to do after that, but I like to have a complete WIP, since the run only gets shorter from there! Quite a few seconds were added in the re-sync process, not surprisingly. It's about 75% loading time frames. EDIT: oops, just realized I quit a bonus too early in world 4. I will fix it in the complete WIP.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Resyncing Tompa's run is going pretty smoothly. I encountered more lag in world 2, especially in stop and go station, but I don't think there is much to be done about it. But now i have reached the first major decision of the run, the super jump in 2-5. In my testing so far it seems to be slightly faster to not use the super jump. The stutter rolling and general optimization seems to put the original route a bit ahead of the super jump route. But maybe I didn't optimize it enough, care to give it a try Tompa? So far I can't even get it to match the original route in the level, and it gets worse since you only have diddy and not donkey, so at some point even more time will be lost to get another barrel. Here is the version without the superjump (Tompa's 1.43 WIP resynced): http://tasvideos.org/userfiles/info/25710086525932007 Here is my attempt with it: http://tasvideos.org/userfiles/info/25710073228799523 Perhaps there is a substantially faster way to do the super jump, all I did was follow the tutorial video. Once this is resolved, my plan is to resync the run up to world 4, that way I can put markers in the project file so when I start hacking it up to do the Master Necky skip I know where to put things back together.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/25682262273489028 I probably should have done this from the start, but I started resyncing Tompa's 1.43 WIP that made it up to world 4. I resynced world 1 just as a test, it went pretty smoothly for the most part. It's about 1 second longer now of course due to longer loading times and a bit more lag, but it's a good baseline. I don't like reinventing the wheel, especially when Tompa put an incredible amount of effort into this, so I think this is a better approach. But I'm still glad I tried on my own, since now I know most of what I'm looking at and how things work. Hopefully things will move a bit quicker from here. I still need to look over world 1 and redo some lag management which is obviously a bit different in bizhawk then snes9x, but I think this is a much better strategy.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Since there are a couple high profile glitches out there right now that are not well understood, I figured I would list them here for reference. How does the contra wrong warp work? how does the SM64 upwarp work? I'm surprised these glitches both were discovered and had videos about them long before most people here became aware of them. Is anyone aware of any other glitches that are not yet understood?