The 2sf Overhaul Project by unknownfile at 11:23 AM EST on January 9, 2009
Time to get started on some major revisions to the format. As I can't upload the changes at the moment, you get to read this here.
__ begin 2sf_spec_revision.txt __
2SF specification revision as of 01/09/2009 written by unknownfile, 2009 part of the 2sf overhaul project
This file was written to address some long-overdue changes to the 2SF specification. Sorry this came so late, but it's kind of hard to do when people go off and make a billion rips while you're still trying to sort some issues out with the format.
Changes in brief: a. Removed Desmume savestates from the specification altogether due to possible incompatibility issues. b. Defined "NEW2SF!" header in reserved section. c. Created a custom savestate format for legacy rips. d. Removed _frames tag as it is no longer needed.
Part A. Desmume savestates are no longer valid.
Savestates in the Desmume format are no longer valid due to possible revisions in Desmume rendering certain savestates invalid. This is also to leave room for possible support across multiple emulators.
Part B. NEW2SF!
All 2sf files ripped after this format revision must contain the following 8-byte string to differentiate them from old-format 2sfs.
'N', 'E', 'W', '2', 'S', 'F', '!', 0
Part C. The 2sf savestate format.
This is a custom savestate format used on rips that require them. The header goes something like: 4 bytes '2', 'S', 'A', 'V' 4 bytes unsigned int size
The savestate is stored sparsely using the following command:
4 bytes 'C', H', 'N', 'K' 1 byte address map to write this data to (0 = ARM9, 1 = ARM7) 4 bytes size xx bytes data
At the end of every savestate is a 3 byte string, "EOF". This should be checked when the save is initially loaded. If EOF is not at the end of a savestate it can be considered invalid.
Part D. Removed _frames tag.
This is a needless hack that was used in early rips so that they would work in Highly Whatever. Now that vio2sf can handle these rips without using the _frames tag, it is no longer supported.
Lunar Knights was missing a few tracks, and the streams. It could do with a re-rip.
Aside from that, I'd like to examine Castlevania: Order of Ecclesia to make sure everything's all right, but it apparently isn't being released or something, despite the fact that there's no CD commercially available for the game.
And be careful with the Phoenix Wright stuff. 3 was missing some ringtones and other jingles that were dismissed as sound effects before.
The two games I want most are Bust-A-Move DS and (as you've already heard over a million times -.-) Pokémon Diamond. Due to custom drivers and headers though, I know at this date they are "impossible" [possibly not, but time consuming if possible]. Plus the fact that the first is technically anime.
followed by the more notable games
Mario Kart DS? The current rip, is missing Final Lap tracks and tags.
Also, I am assuming there will be a new plugin for these changes.
Also,(2) does this mean you are breaking free of Desmume? Or still planning too?
And will eventually, in the far, far, far future, channel splitting be possile? Or does the format that is currently being built make this very difficult?
MKDS tags would be great. I had an Mp3 rip which i was gonna use, but it didn't have as many tracks as the DS version, so i didn't bother. I figured there'd be someone familiar with the game who could tag it.... guess not!?