What's new

Saves, etc.

Glenn

New member
When are saves committed to disk? It appears to be similar to most emulators: when the ROM is changed, or the emulator quits.
But systems crash too often for that; and it's a hassle to qiut and restart every time you save to make sure it gets written to disk. Write frequently.

Next: what's the point of releasing source a version behind? It defeats half of the point of releasing source at all. People can't contribute because they're always working on out-of-date source; there's no way of telling what's been changed in the newer version, especially on relatively new features. (The other half is sharing code, and that's slowed considerably--all of the new stuff gets delayed, and can't be reused until it's released.)
I can't think of anything gained by delaying code deliberately.
 
OP
G

Glenn

New member
Another problem: save states get corrupted very often. I use them exclusively in some games. (Necessity; it crashes after 10 minutes to two hours of play, all the time, and in-game saves aren't practical in games with limited saving.)

There are no hotkeys in the menus listed for anything but "save to current state", so it's not easy to do what I did in SNES emulators: save round-robin. How about control- and alt-number to save to that ID? Also, automatically saving backups of saves would be easy to do. (And would have saved me 3-4 hours of replaying over the last few days ...) Just add an option, "number of backups per save", and keep ie. game.sav0.backup{1,2,3,4...}.

(I'd do this myself--I doubt the high level code to open save state files is in an "optimized state"--but I can't, since the code has probably changed since the current source release ...)

Of course, save states not becoming corrupted would be nice, too. I have a copy of such a broken save; let me know if you want it.
 

Rice

Emulator Developer
Glenn

You can press digit 0 to 9 to select a slot, then press F5 to save and F7 to load. So there are 10 slots for every game. And you can save to different filename if you want to use save/load from menu.

It is very interesting for save got corrupted because I have never seen it myself. Can you provide more info about this.

I do have one thing need to mention that 1964 may not save at sometime even you press F5. You can tell if game is saved or is not saved by seeing if there is a short pausing when doing save. If you don't have a short pause in game play, then the save is not successful, you need to press F5 to save again.
 
OP
G

Glenn

New member
Cool. How about adding equivalent hotkeys to the menu, so it's obvious?

I'd still like to see automatic backups. It'd be simple to implement.

It's defiinitely saving; the emulator crashes when I reload them.
 
OP
G

Glenn

New member
No, not auto-save. (That would be nice, too, I suppose.)

I'm talking about automatically backing up existing saves before writing a new one.

Here:

void back_up(const char *fn, int num)
{
char *buf = alloca(strlen(fn) + 16);
char *buf2 = alloca(strlen(fn) + 16);
int i;

if(num == 0) return;

sprintf(buf, "%s.%-3.3i", fn, num);
unlink(buf); /* ignore errors */

for(i = num-1; i > 0; --i)
{
sprintf(buf2, "%s.%-3.3i", fn, i);
rename(buf2, buf); /* ignore errors */
strcpy(buf, buf2);
}
rename(fn, buf);
}

(Sorry, Unix function; replace unlink and rename if needed.)

That way, if a save gets corrupted, very little is lost. (At least for those of us who save state every two minutes.) It's possible to round-robin the saves manually, but that's easy to mess up.
 

Top