FCE Ultra save states
When I save a game with FCE Ultra, it creates save state files like this one: "
Super Mario Bros. (JU) (PRG0) .e8630381e6534d7732b18fdf055ec4dd.fc0"
Now my questions: What's the sense or the logic in it? Why not simply "
Super Mario Bros. (JU) (PRG0) .fc0"? And what do I do with the save states of (since they only are named like "Game.fc0")?
I'm not sure why it's doing that honestly, but it looks like some sort of md5 hash. What version are you using?
EDIT: Oh yeah, as for the save states from Zophar's, just load them in when you have your game loaded. File -> Load State As... or whatever it is it says in the menu.
Alright, yeah it's a checksum that they use. I guess they just attach it in the file name for whatever version you're using. I found out while trying to load a .fcm. It's to compare to the dump of the
NES ROM you're using, compared to the one that was used to save state.... at least, that's what I make of it. Hope this helps.
Thank you for the information.
But loading a save state from Zophar still doesn't work, no matter if I press F7 or if I use the option in the menu. It says that the save state was loaded (so, no error message), but the game goes on normally as if nothing happened.
What's actually the sense in these checksums? To know the version of the game where the state was saved? That's rather stupid because then I'd always need the same version of the
NES ROM as the original person. And I still want to use the original "
Super Mario Bros. (JU) (PRG0) ".
Yeah, but unfortunately it's something that you just have to kind of deal with. One thing that helps alot is the . That tool renames all your
NES ROMs properly to what they should be. I'm not sure if it will actually help too much for the Zophar save states though, as I imagine that those
NES ROMs are pretty old and utilized alot of the DISKDUDE!
NES ROMs. That's about the best I got for you bro. Happy gaming :)
The GoodNES program doesn't work here because it is there for giving
NES ROMs their real names. But the files from Zophar are save states and thus, I need to know the ROM version that was used to create that save state.
By the way, what are DISKDUDE!
NES ROMs?
Well a hash can be ruined by a simple name change as far as I know... not really sure though. They check the integrity of a file.
DISKDUDE! was someone's bright idea to take the last nine bytes of the iNES header and stick their name in it. This ended up breaking some
NES ROMs in emulators. I think the guy was trying to get people to use his emu or something gay like that... can't remember what I heard for sure. Anyway, yeah, so if you open a ROM up in a hex editor and see the word DISKDUDE! spelled out, you want to change those to be all zeros. Most emus fixed that by working around the garbage in the header. But that's definitely something that can cause a hash to fail, as it's right in the file itself. As a matter of fact, the newest version of GoodNES has a header fix you can use even.
So, the next time you try and fire up a game it doesn't work, try opening it in a hex editor like frhed or something similar, just to see what I'm talking about. Some people go out of their way to make others lives miserable... damn DISKDUDE! crap.
I don't know if my games have the word DISKDUDE! in it, I have to see when I'm home again. However, does that actually have anything to do with the save states? Are they affected if the iNES header is broken?
By the way, I found out that if you remove the checksum in the name of a save state file, then you can also use it with other versions of the game (like US vs. European version). So, it's like with all the other emulators. But still the save states from Zophar don't work. I can create a save state of
Super Mario Bros. myself and use it with all versions of the game (US PRG0, US PRG1, Europe), but the downloaded save states still don't work.
Those are pretty old too, so it's plausible that the save state format was changed during one or more of the releases of FCE Ultra. I use FCE Ultra .98.15 right now (I think that's what it's called), and after testing, looks like there may be a different header in it. The body seems different too, as it doesn't tell certain addresses in ASCII. You probably need an old version of FCE Ultra to use those :/
O.k., I checked my files and 50 of circa 1000 games have DISKDUDE! in it. So, is the header supposed to have all zeros there or does it normally (when it's not overwritten) contain other information? Because I wonder: If the header per default has only zeros in that place, why can games crash when the word DISKDUDE! is written in it? (Since the emulator doesn't take any information from the zeros.)
Maybe it possibly DOES take info from there. Otherwise why would some output "Garbage in header?" Like I said though, some of the newer ones tend to work around it, but some don't. Weird, I know.
As for the header for the iNES format, it's 16 bytes long. The last 9 bytes are what need to be all zeroes (where you find DISKDUDE!). Unless you're dealing with games that utilize iNES 2.0, but there's really not that many of them, and support for that format hasn't been initialized yet into emus that have been released. It's about ready to be though. But don't worry about that, I'm jabbering.
Anyway, just use a hex editor and open up your
NES ROM (make sure it's not in a zip file or I'm not sure if it will work properly). Change the spaces that say DISKDUDE! to zeroes. Save. That's it.