I remember once upon a time when we only had rerecording NES emulators, and rerecording SNES emulators were still in the works. There still aren't rerecording emulators for many a platform, and I'm wondering why.
If I understand a save state correctly, it's just a RAM dump. So to save an exact moment of a game, you save every variable, and then you reload that. Of course, to do a RAM dump for every frame of a game would lead to a huge movie playback file filesize.
So movie playback files are just saved key presses and times. This has a small file size.
If my I'm not mistaken about the stuff I just typed above, shouldn't a rerecording emulator do the exact same thing as a non-rerecording emulator, except put markers and RAM dumps at the location of the last save? This seems very simple to me; yet, so many platforms don't have this feature. I assume it's more complicated than I figure it to be. If it is, can someone please explain the complexity that I'm missing?
Joined: 11/22/2004
Posts: 1468
Location: Rotterdam, The Netherlands
There's nothing complicated about rerecords. Like you say, the emulator just points to a certain point in the movie file where the emulator has to continue recording from, overwriting all data beyond that point.
I figure that a lot of emulators don't put in this feature because they don't even think about the possibility of superplay movies when they build their emulator. Also, those emulators might not be accurate enough for input sequence recordings to stay sync.
SNES9X does rerecording by including the whole movie file (keystroke-wise) in the save-state. Thus it has a snapshot of the current moment, and the keystrokes needed to restore it.
You can get away with only a frame counter as being another variable in the save-state, but then you risk destroying your movie if you load a savestate that has a higher frame counter from the current position. No such problem with snes9x, but I hear famtasia had trouble with out-of-order loading of states which could be triggering this problem.
Ultimately, rerecording needs more than rudimentary save-state handling. When you load state, you need to import the state, and also rewind the movie. The transition from playback to rerecording on load-state is also a minor complication, but shouldn't be too hard.
That'd be nice... It's just too bad that N64 processing is so piecemeal and not well supported.
I've been thinking about how one might go about perfecting a 3D adventure game play. See, with traditional 2D bitmap type games, you can see your character's exact position through the pixels. But in 3D, you're seeing everything from one of many possible points of view, and it would be difficult to see exactly how your character is lined up and which direction you need to push to reach a destination in minimum time. I imagine it might require some kind of hacky solution where a program plots the straightest line between your current position and your goal and figures out what directions to use at each moment, factoring in camera positions. It might not be out of the question to have to "wobble" the camera to get it just right.
put yourself in my rocketpack if that poochie is one outrageous dude
That aside, new console doesn't have to mean 3D.
Best examples: Symphony of the Night, Mischief Makers, Yoshi Story perhaps; also a ton of Saturn games. I'd love to see a perfect score run of Radiant Silvergun :D
I've been thinking about this. How would we go about finding the fastest route on a bumpy terrain? It would require some kind of calculus I don't know. bleh... Wouldn't we need to know the distances of all the bumps? How can we even measure that without hacking the hell out of the ROM? If there are any good mathematicians here, offer your wisdom.