I guess I'll just have to rewatch the WIP frequently to check for desynchs ... sorry for derailing this thread, but nobody seems to browse the Mupen forum.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I think your problem may be game specific also, games like Turok, and from what I hear, JFG, have 0 desync problems. Games like Majora's Mask, and other games that utilize the expansion pack, do tend to have problems (last I checked Mukki was up to 51). I got lucky by choosing a game that likes to do what it's supposed to:)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
The list is of course much greater on both sides. Many other N64 games don't desynch, Like SM64, SF64, Kirby 64, etc., and then many do (even ones without the Exp Pak, like OoT). I should probably be compiling a list of ones that do desynch and incorporate that into the N64 wishlist. speaking of which, I need to update that with new N64 games I find to be good, and maybe a comprehensive list of "desynch, don't play yet". My suspicion is that desynchyness does have to do with the Exp Pak, but I'm not completely sure.
Joined: 8/26/2006
Posts: 1139
Location: United Kingdom
Desync could to do with how the Mupen reads the input.
You may notice that when you frame advance in some games the counter my jump by two eg. from frame 1001 to frame 1003. This would be because this particular game works at 30FPS and the graphics only refresh every two frames. Also, because of this, when input is entered it will only register one set of input per input frame ie. each set of two.
Other games (like Majora's Mask) work a little differently. MM works at 20FPS, however, if you were to frame advance on frame 1000 you would go 1000, 1001,1002, 1003 then graphics refreshment. That is just the way that the Mupen reads this particular game. For each of these three frames only one will be read as input and the others will not and if your input falls onto one of these 'dead' frames the movie will desync.
That is the new theory anyway...
Well, then the question becomes why the game would read input on a dead frame while recording when it doesn't during playback. But then, isn't that always the question?
put yourself in my rocketpack if that poochie is one outrageous dude
Frames per second correlates to what you see on screen. If it is not consistent at one point then there is either lag or it is variable. I don't think there are dead frames, just input ones (although there may have been a time in perfect dark where the frame counter DIDN'T go up for one frame but the input counter did, I'll have to check that). Example, going through the opening menu has the counter go from as low as 0? to 9+ and even the fairly obvious 300+. This does not happen in game even though the fps can get that high and is still variable. The counter seems to change in the menu and in game when loading seems to be occuring... so the 2:1 ratio might be just to load in some games without interruption.
I have noticed that after making a savestate, proceeding and then reloading that same state that I was not in the same exact spot as before. It wasn't a big difference but in a fast game it was too obvious to not notice that time. And lo and behold it desynced there leading me to believe it has to do with savestates saving data that is just not right; perhaps only with games that push the limits of the N64 hardware with using a lot of the memory or cpu. I could try to make a video of it but if it was something I knew how to replicate I would have a better answer. :(
Yeah, good point bag of magic food, why does that happen when the movie is played back from start when loading from a 'bad' savestate that makes the game not desync at all?
Yeah, usually the cause is savestates that don't save everything correctly. Hopefully it's just a matter of it storing the wrong frame number rather than not storing all the memory contents it's supposed to. But yeah, if you can find lots of evidence of where a savestate changes something, go ahead and show it on some coder board, and maybe somebody will figure it out.
put yourself in my rocketpack if that poochie is one outrageous dude
Perfect Dark only takes ~2.77mb/savestate so far so it shouldn't be taxing the system ram wise since there should be 8 total. Maybe it's just mupen because Project 64 actually takes ALL 8mb of the ram and stores it. Goldeneye is 4 so it always takes the maximum used.
yeah, that might be it.. it would be bad if it is because mupen would need a new version to solve it. Here's what I was talking about before, notice that the frame counter is paused but the input counter continues.
edit: mupen takes the packed size of the ram, my mistake, still could be causing errors while compressing though
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
That is weird, should be the other way around... maybe you've slipped into an alternate universe where you can create all the input you want, but you'll never see any of it! Freaky....
This is getting weirder ... when I playback my movie in non read-only mode, loading a savestate should initiate a re-record. However, when I load the savestate Mupen actually plays back the movie using the input from the beginning, but inserting it into the savestate.
For example, if in the very beginning I press the start button rapidly to skip cutscenes, and my current savestate is in the middle of a heated battle, when I load the savestate in non read-only mode, instead of re-recording it will show me pressing start rapidly in the middle of the heated battle.
Anybody encounter this problem before or know of a solution?
EDIT: Another major problem: while I'm making the movie, if I save and load states frequently, Mupen will just stop recording. This has never happened in Snes9x or VBA or any other emulator I've used.
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Yes, I have had this happen to me before where it'd be doing the beginning input of the movie file in the middle of a battle like you describe. when going from read only mode to recording, and vice versa, I always just replay the movie file, which makes the ROM reload. This is slower to do, but I never experience problems doing it this way.
I have not experienced the second problem. You basically mentioned your own solution: don't make/load savestates so fast.
Never mind about the second problem, I was just a dumbass. It turns out that I thought a button was right strafe when I had actually bound it to "stop recording".
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I've managed to get stuck in the wall directly below the 2nd key of level 2 (the third level in my run), however it seems to be that I'm getting stuck between two polygons that create a horizontal seam. All the previous seams that have allowed me to wall jump have been vertical, which means so far I've been able to get stuck, but anything I do after that results in me getting shot downward at super human speeds. (I have literally been about a full body length below the key, and when I jump I'm to the death cutscene in like 8 frames). If I can make this work, it's obviously a major sequence break, and I'll save around 1000 frames. I'll keep playing with it.
EDIT: Yeah, this isn't looking like it's possible. After analyzing the other places in the game where wall jumping is do-able, there is usually a graphical representation on the in-game map of where the polygons don't line up. There are none of these for any of the keys in level 2, and the horizontal seam has proven to be less than useful.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Well, after getting distracted by a couple other runs (ie Spiderman and Vectorman), it's time to return my attention to Turokman! Err... Turok. So I gave up on trying to skip the cave leading to the second key, since I tried wall jumping it for a long, long loooong while and nothing ever materialized. And since no one has shown me any proof that it can actually be done, I'm finished with trying to get it. So here's a long overdue WIP up to the second key in The Jungle, almost 2 months since I last updated. How time flies.
http://dehacked.2y.net/microstorage.php/info/4771/L3%2C%202nd%20Key%20%28-1878%29.m64
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Umm... I don't. I strafe swim under water. Unless you meant the emphasis of your sentence to be "hold down", implying that by tapping the buttons at a certain rate I can achieve faster swim speed. In that case, I didn't test it explicitly, but I'm nearly positive that Turok doesn't get a speed boost by repeatedly going into his swimming animation (sure would be a nice place for a RAM viewer for N64), however if you have some evidence I'd sure take a look at it.
yeah, i mean that you have to "tap C forward at a specific rate". it's like in mario 64. mario swims slower if you just hold down A.
it's not so obvious in mario 64, but in turok it's so obvious that i think even Assholes could see it.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Thanks for being a dick about it, it's nice to see such constructive criticism of a part I did 2 months ago and hadn't looked at since. Some things like speed aren't nearly as obvious using frame advance, and the the fact that I was within 9 frames of your underwater time was good enough for me back when I didn't have as much experience TASing as I do now. So I'll redo it, but try and be a little nicer in the future.
no you totally misunderstand me, i didn't mean you were an asshole or that i want you to redo it, i just wrote it because it sounded so funny. don't take it so seriously :(
sorry, i write so weird things sometimes. and i don't actually know if it saves so much time.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Oh, ok, thought you were calling me one since I had missed that part before. I'll do some retesting to see how much it saves before I carry on to the next sections.
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Mario swims slower if you spam A actually, I've tested this with memory addresses.
mmbossman, you're vectorman runs are done, nfq's run was rejected (becauses yours is faster) despite the game being "accepted" .... are you going to complete this?
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
If you would give me some pointers on memory watching Turok's speed I would be much, MUCH more inclined to finish this. I am not competent at all with programming languages (as evidenced by just getting Gocha's memory watcher for SNES9x to work thanks in large part to Randil), so I haven't even tried working with L-spiros tool. It's just a hunch that I wouldn't understand much of what he's talking about. But if you'd like to give me some pointers about how to work it, and if possible find addresses for horizontal and vertical speed, I would love to finish this movie off. It's my marathon, and I'm perennially stuck on mile 9 for months now, because I just don't have the patience to trial and error every single different angle to jump at a wall, how long to hold jump, etc. I'm very willing to make it as optimal as possible, but it felt like I was not working really hard, and not very smart. PM me if you're interested or need to know more information. It is good to see some more interest in this though:)