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.

__ end 2sf_spec_revision.txt __
by unknownfile at 4:20 PM EST on January 9, 2009
All of that is now in the spec.

This thread is dead until no$gba is acquired.

edited 5:58 PM EST January 9, 2009
by Elven Spellmaker at 8:08 PM EST on January 9, 2009
Are all old rips going to have to be updated with this new information then, or will it detect between old and new 2SF?
by unknownfile at 8:30 PM EST on January 9, 2009
Eventually, they will. I've been planning these changes for some time now, but as you very well know, I am not well known for my promptness...
rerip in progress by unknownfile at 1:03 PM EST on January 10, 2009
Phoenix Wright is being reripped and will be posted sometime later, followed by the more notable games (hint: not shovelware/anime games).

This is also your time to get requesting.
by holyice7 at 1:24 PM EST on January 10, 2009
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.
by Knurek at 1:26 PM EST on January 10, 2009
Lunar Knights was missing the streams.

039 - Laplace.strm
070 - East of the Sun....strm

wha?

Castlevania: Order of Ecclesia apparently isn't being released

N/A till 23.04.2009

wha?

edited 1:30 PM EST January 10, 2009
by JILost at 2:57 PM EST on January 10, 2009
despite the fact that there's no CD commercially available

There sure is. It came with the Japanese limited edition of the game.
by Elven Spellmaker at 4:12 PM EST on January 10, 2009
(hint: not shovelware/anime games)

UF, what is shovelware?

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?

edited 4:19 PM EST January 10, 2009
by Lunar at 4:39 PM EST on January 10, 2009
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!?
by Mouser X at 4:51 PM EST on January 10, 2009
"CHannel splitting" can't really be done on the DS. That is, unlike the NES (NSF) or SNES (SPC), which have specific hardware registers that can be enabled/disabled, the DS does most of its stuff through software. Yes, I'm aware that the DS does have hardware registers which can be enabled/disabled, but they're not used in the same way as the SNES/NES were. The "mixing" is done in software. Think of it this way - with a MIDI, you can turn instruments/channels on/off. But that's done using the program that's playing the MIDI file. You can't alter the output by disabling certain pieces of hardware on your computer (excluding muting the left/right stereo channels). 2SFs are similar in that the "player" doesn't actually play anything. It's an emulated environment that allows the NDS software (contained in the 2SF) to run. This software has been modified to output only audio (supposedly), which is why you get music from 2SFs. To alter the output, the only thing the "player" can do (which is an emulated environment) is to disable/enable pieces of hardware. Like your PC, this isn't going to do much to alter the sound output.

In other words, it's not a limitation of the 2SF format that's stopping you from muting channels, as much as it is the NDS hardware that's stopping you from doing it. However, it should be possible, with enough skill and expertise, to modify the software in the 2SF to play back specific channels (this would have to be during the ripping process. It's not something that can be implemented in the player for the reasons stated above), just as you can with USFs.

As for question 2 - my understanding is that UF is simply trying to make the 2SF format more compatible. For example, USFs are tied to Project 64 pretty tightly. I think it's because USFs use a savestate to bypass the N64 boot code. This savestate is in the PJ64 format. It's one of the reasons you don't see more USF players out there. At least, that's my understanding. If I'm not mistaken, UF is imply trying to avoid this problem. As far as I know, he has no plans to no longer use DesMume, but I haven't actually asked him.

Hopefully that answers your question(s). Mouser X over and out.
by Lunar at 5:02 PM EST on January 10, 2009
i can't be bothered to read all that, but the 2sf config seems to have channel muting (16 MIDI channels I am guessing, so it'd probably only work with generic driver games - i haven't tested it out.)
by Mouser X at 5:14 PM EST on January 10, 2009
That's not that much... Besides, you can certainly skim it fast enough. As for muting channels in the way you're proposing, it would require that the player be able to modify memory dynamically, as it's running. And that would only work on "generic driver" games that happen to work exactly as the player expects them to (using the same memory and whatnot). This is very unlikely to happen (that games happen to do the exact same thing in the exact same piece of memory). With the current 2SF rips, it might be possible, because most of them are using the Yoshi's Island driver (and thus might use the exact same memory to do the exact same thing). But this is not the ideal situation, and when more rips are done "properly" (using their own driver), the method you seem to propose will almost certainly break.

I know of the 2SF config thing you're referring to, but I haven't experimented with it enough to find out what it's doing. Mouser X over and out.
by Knurek at 5:14 PM EST on January 10, 2009
What Mouser X is trying to say is that each channel is allocated dynamically (as per usual with MIDI sequencers). So each note of a lead section can span multiple hardware channels.

Mario Kart DS? The current rip, is missing Final Lap tracks and tags.

Aren't the Final Lap versions just the same song played a bit faster? Is that really necessary?
And if you think an UF rerip will magically give you a tagged set, you're in for a nasty surprise.

I'd love to see FFTA2 rerip (since the current one has about 50 MB of unneeded data) and, dunno, Soma Bringer (though if Procyon Studio sequencer is as insane as their streams, don't think anyone sane is capable of ripping it) would be nice to have.
by unknownfile at 11:15 PM EST on January 10, 2009
well, it's not like you tag anything either
by Elven Spellmaker at 11:58 PM EST on January 10, 2009
just as you can with USFs

Can you?

@MouserX: Ahh, I was wondering why the same thing hadn't been implimented into 64th Note.
Surely if VGMTrans can export as MIDI, there are set channels it uses, but as Knurek said they are dynamically allocated making the process nearly impossible.

@Knurek: Yes, the Final Lap versions are 100% necessary, lol. ;-) (They are in the Mario Kart Wii rip [Which is the only one that has them])
by Mouser X at 12:41 AM EST on January 11, 2009
If you couldn't modify USFs to mute channels, then Banjo-Kazooie (and Tooie) and other games with dynamic tracks couldn't be ripped. On the other hand, maybe the ripper isn't muting channels (in software mind you, which the emulator can't effect) so much as they are deleting the samples used in those channels, which, I would think, would essentially have the same effect. If that's what's happening (disabling the samples somehow, but leaving the channel playing (resulting in silence)), then I would think that a similar method could be used in 2SF ripping. That is, removing samples from a particular song to, in effect, mute channels.

This method can't be used on the current 2SF ripping method (which uses the Yoshi's Island driver) because the audio data is being indirectly handled by the ripper (they never actually "see" the sequence/sample data in a form that allows them to modify it appropriately. I suppose you could attempt hex editing stuff, but that would require a fair amount of knowledge about the files you're working with. The auto-ripping method does not require this level of knowledge. It's almost as easy as "point and click" to rip 2SFs). To successfully rip dynamic 2SFs, I can see it being done in 1 of 2 ways.

1) The game is ripped properly, with its own original driver. During this process, the ripper identifies how the music is put together in memory, and realizes how to mute channels. With this knowledge, they rip the tracks as you'd expect to hear them in-game.

2) Someone who's familiar with the "generic driver" sequence format would need to hex edit the various files to, I would assume, remove certain pieces of the sequence, resulting in "muted" channels. These modified files could (theoretically?) then be inserted into the Yoshi's Island driver, and you'd basically end up with a "generic rip-kit" rip, using those modified files.

I don't know if method 2 would even work, but as far as I know, it sounds like it could. However, I wouldn't recommend that method, as it sounds very hackish to me (though, there are those who would say the same thing about the current 2SF ripping method).

I suspect that for the impatient/ADD people, I wrote to much. Sorry about that. In short, yes, you can do that with USFs. Mouser X over and out.
by unknownfile at 12:43 AM EST on January 11, 2009
get on irc you crazy bum monkey

that's where the fun is right now

watch me struggle with desmume! ain't that sweet?
by Knurek at 1:41 AM EST on January 11, 2009
well, it's not like you tag anything either

Actually I do. The games that either have an OST or a soundtest and, you know, ones that I like. Did at least the Phoenix Wright games, Layton, Order of Ecclessia and Knights in the Nightmare, prolly more.

edited 1:57 AM EST January 11, 2009
by Lunar at 4:27 AM EST on January 11, 2009
Mouser X: I wasn't proposing anything, I was saying it's already there. However, yes, voices/parts seem to be allocated to the channels dynamically, now that I've tested it. It's sometimes that way with SPCs too - I call it trackfucked :D and yes, deleting samples works quite well in those instances, i've done it with SPC2IT conversions while transcribing. Problem is when multiple channels/musical lines use the same sample.

edited 5:49 AM EST January 11, 2009
by holyice7 at 7:19 AM EST on January 11, 2009
Oh, I'm sorry; Lunar Knights is missing exactly one track, and exactly one stream.

077: Link Battle and 000: Dawn of the Sun.

And the Japanese pre-order bonus for Castlevania wasn't to be sold, only given to people that pre-ordered the game...in Japan. Thus not meeting the definition of 'commercially' available.

'Cause if I COULD buy it, I wouldn't be crying about the wait for the set.

*harumphs*

EDIT:
Actually I do. The games that either have an OST or a soundtest and, you know, ones that I like. Did at least the Phoenix Wright games, Layton, Order of Ecclessia and Knights in the Nightmare, prolly more.

So you're the idiot who keeps timing fades to seven seconds? Man, do you ever make more work for me. Not to mention your Japanophilic tags. :P

edited 7:37 AM EST January 11, 2009
by Knurek at 7:52 AM EST on January 11, 2009
So you're the idiot who keeps timing fades to seven seconds?

Oh my, thank you for your kind words. It's people like you with your continuing support who really make me want to work more on the 2SF Archive.
by Elven Spellmaker at 8:36 AM EST on January 11, 2009
get on irc you crazy bum monkey

I am assuming you are referring to Mouser, because I wouldn't be much help... Not to mention the fact I don't have an IRC client or know the channel.

The only times I use Hex are in Computing classes (converting from binary to hex and vice versa) and on Warcraft III, where I export abilities and use hex to overflow the values, because Blizzard don't allow -ve integers. =/
So I manually do it instead, why not allow -ve integers?? They allow negative reals. Its just madness. (Sparta)
by holyice7 at 9:28 AM EST on January 11, 2009
Oh my, thank you for your kind words. It's people like you with your continuing support who really make me want to work more on the 2SF Archive.

Jeez, I'm just kidding, buddy.

You were needlessly critical of my points, so I threw some dinner insults at you. Dun be so thin-skinned. :3

You do good work, I'm extremely grateful for all you've done for the sake of music, blah blah blah...more general cock sucking.

edited 9:32 AM EST January 11, 2009
by nensondubois at 10:59 AM EST on January 11, 2009
No IRC client available anymore and I don't think I could be much help with the 2SF format either.
by Knurek at 11:23 AM EST on January 11, 2009
No IRC client available anymore and I don't think I could be much help with the 2SF format either

I'm sure you'll think of some way to take credit for unknownfile's work.
by Lunar at 11:51 AM EST on January 11, 2009
oh snap, that beats my "i don't think you'd be much help with *" that i was going to po- ohshi

for the record, i like to time my fades to 10 seconds.
by hcs at 12:48 PM EST on January 11, 2009
Guys, let's not sidetrack this thread, please?
in_2sf makes a reappearance by unknownfile at 4:58 PM EST on January 11, 2009
in_2sf is now being done so that I have something to test rips with.

I might work on this more during the week... but exams are coming up soon :|
Exams by Elven Spellmaker at 5:11 PM EST on January 11, 2009
They are indeed, Study Leave for me starts on Tuesday...
by nensondubois at 6:04 PM EST on January 11, 2009
No, I meant I can't help with the 2SF format at all.
I said either because I didn't have access to an IRC client as a reply to Elven's comment because he didn't.

edited 7:05 PM EST January 11, 2009
spec overhaul 2, coming soon by unknownfile at 9:54 AM EST on January 12, 2009
Next specification revision is in the works and will be released after 10 rerips are done in a project known only as The Savestate-free Challenge. If these rips are completed without a single savestate, guess what gets axed from the specs.
by Elven Spellmaker at 1:22 PM EST on January 12, 2009
The DeSmuMe part? (He hopes)
2sf ripping standards by unknownfile at 2:10 PM EST on January 12, 2009
Here, time for me to follow these.

You can also see some sort of page here.

edited 2:24 PM EST January 12, 2009
by Elven Spellmaker at 9:39 PM EST on January 12, 2009
What happens to the ADXs then? Like in Phantom Hourglass (3).
by hcs at 10:04 PM EST on January 12, 2009
Eh? Phantom Hourglass has 17 streams, and none are ADX. So I assume I just misunderstand you.
by unknownfile at 8:29 AM EST on January 13, 2009
simple

they get ripped to use the game's replayer

_______

Made some more efforts to look at pwright again yesterday... here's what I found out:

- the sound select routine is called by the main thread
- several other threads need an opportunity to run before a swi-trap is inserted otherwise the thing hangs, possibly due to interrupts being disabled

Still, some progress is better than no progress.

edited 8:37 AM EST January 13, 2009
by Arbee at 11:01 AM EST on January 13, 2009
Lemme drop some science on you regarding the standard Nintendo driver.

* The actual guts of the driver are almost entirely on the ARM7 and use vblank for timing.

* The library on the ARM9 side mostly just queues up commands for the ARM7 part, so when a game calls e.g. "start sequence" the code it calls doesn't really cause the command to happen.

So it should be possible to create self-booting rips that require only the ARM7 and sound chip to play back (plus some fakery of the ARM9 end of the command FIFO, similar to what Corlett does for some PSF2s).
by Elven Spellmaker at 11:15 AM EST on January 13, 2009
hcs, your right lol. They are STRM and there are 17...
by unknownfile at 11:35 AM EST on January 13, 2009
Thanks! I'll look into it when I get the chance.

edited 11:44 AM EST January 13, 2009
re: Phoenix Wright by unknownfile at 4:15 PM EST on January 13, 2009
Ripped.
next up by unknownfile at 11:34 AM EST on January 14, 2009
Meteos will be attempted tonight.

Three drivers this time around:

- sequencer
- ADX player
- stream player
initial analysis complete by unknownfile at 8:40 AM EST on January 15, 2009
The sequencer is easy as hell to find in this one.

The streaming driver is called up from a routine that's loaded into memory, but that's only for the title theme. It looks like it has to wait for a sequence to stop playing before a stream plays.

The ADX driver is hidden away in the overlay files and I still don't know how those things work, mainly because Google has failed me. Ah well.

Actually, disregard me not knowing about overlay stuff... it's actually data loaded into RAM at a specific address and can contain stuff like code etc. Source

edited 9:20 AM EST January 15, 2009
meteos brief update by unknownfile at 8:49 AM EST on January 16, 2009
Made progress on the ADX driver last night, still have a bit left to go before it's done.
and it's done by unknownfile at 3:19 PM EST on January 17, 2009
God dammit, I hate that ADX driver. Anyways, that's the first part of this rip done.
by unknownfile at 2:42 PM EST on January 19, 2009
Worked a bit more on Meteos and an unnamed game over the weekend... Although I have exams all this week and next week so I still can't get anything done :|
by Elven Spellmaker at 6:45 PM EST on January 19, 2009
I have 3 A2 exams this week.

Chemistry, Physics and Computing... =/
by unknownfile at 4:25 PM EST on January 22, 2009
Taking a break from Meteos to catch some Pokemon. However, Desmume is less than willing to run the game due to the bios calls being HLE...
by Elven Spellmaker at 4:49 PM EST on January 22, 2009
You are trying to get Pokémon to work? =)

What do you mean the bios calls are HLE?
I am assuming that they are weird calls then. =/

If you are trying Diamond, don't give up; please! =)
by unknownfile at 4:51 PM EST on January 22, 2009
HLE = what's supposed to be emulated by some sort of device (CPU, GPU, DSP etc) ends up being handled by routines written by the author of the emulator. Sorta hard to explain it, but it's a hacky way of getting stuff to work.
by Elven Spellmaker at 6:07 PM EST on January 22, 2009
Well good luck with it! =)

It sounds like you'll need it...

I have a Computing exam tommorow, so I'm off to bed... -.-
by unknownfile at 11:13 PM EST on January 24, 2009
Did work on pokemon today, nothing worth noting, just more disassembly to see how drivercalls work.
by unknownfile at 9:16 AM EST on January 26, 2009
Going to be cleaning up Phoenix Wright for releasing tonight. I don't think it's going to be able to sit around for long, and I've decided that it's just better to release the things instead of delaying them to appease my own interests.

By the way, the problem with most existing sets is that savestates are unoptimized because no such support was included in the tracer. I never added an optimizer because I was lazy. Most sets could easily be fixed by optimizing the savestates, but it's just better to remove them entirely.

Still not much progress on Pokemon. No matter what I do, it always ends up going off into UNIMPLEMENTED OPCODE: 0x018203883 0x2800000. Bleh.

I think it's time to put this aside and focus on other games for now.
Super Princess Peach by unknownfile at 3:06 PM EST on January 28, 2009
Ripped. Still got the Nintendo logo routines running so I'll probably fix that later.
you knew this was coming by unknownfile at 10:32 PM EST on February 5, 2009
Work on this is paused due to laziness.
by holyice7 at 7:00 AM EST on February 6, 2009
What's the latest 2sf plugin, anyway?

Mine seems to have disappeared in the shuffle of switching computers.
by unknownfile at 8:45 AM EST on February 6, 2009
still vio2sf

you can search for it
by holyice7 at 11:01 AM EST on February 6, 2009
Thanks much.

Now I just need to figure out why Winamp is intent on crashing every time I use it, plugins or not.
by SmartOne at 3:23 AM EST on February 8, 2009
Ditch Winamp. XMPlay.

in_vio2sf.dll
vio2sf.bin
dumpan liek spcs by unknownfile at 11:06 AM EST on February 11, 2009
R. Belmont said it is possible to do rips without the ARM9 running anything...

As much as I dislike SPCs, it is pretty much possible to dump stuff in this way, but I haven't been taking a look at the ARM7 code (which is loaded into shared memory then executed).
by Dais! at 4:19 PM EST on February 11, 2009
What's wrong with SPCs?
by -FDM64- at 4:20 PM EST on February 11, 2009
uf doesn't like them cuz uf&knurek != bffz and knurek runs the spc site
by marioman at 5:46 PM EST on February 11, 2009
FDM64 really has a way with words...
by -FDM64- at 6:55 PM EST on February 11, 2009
if you didn't understand that, I might be able to dumb it down for you
by marioman at 6:59 PM EST on February 11, 2009
Nah, I got it - just complementing your sense of humor.
by unknownfile at 7:40 PM EST on February 11, 2009
what's wrong with spcs? little. i just hate rsns
by nensondubois at 8:32 PM EST on February 11, 2009
And the short filenames. Page.rsn = Pagemaster,the.rar

edited 9:36 PM EST February 11, 2009
by SmartOne at 10:15 PM EST on February 11, 2009
I don't like not having the best possible SPC player available. (Plus, it probably will never support RSNs or metadata.) All I can do is endlessly check this thread for a miracle update.

By the way, don't spend too much time there. The people suck.
by unknownfile at 10:21 PM EST on February 11, 2009
good times in thread derailing
by Elven Spellmaker at 12:06 PM EST on February 12, 2009
@UF: LOOOOL another De-rail.

Also at UF@: RSNs are aanoying in Winamp (as are the GB files)... But you don't have to have them in RSN, they arn't that huge deflated.
by Dais! at 5:08 PM EST on February 12, 2009
oooookay, what's wrong with RSN files?
by Elven Spellmaker at 6:57 PM EST on February 12, 2009
@Dais!: Winamp doesn't like them in the media library... Its faff...
by marioman at 7:14 PM EST on February 12, 2009
2SF!

Glad that this thread is now back on topic. It was starting to sound like the "What's going on in other xSF formats" thread.

edited 7:17 PM EST February 12, 2009
by VGSB at 2:24 AM EST on February 16, 2009
SmartOne, if you do ever find out if they update that in_spc plugin, proclaim it throughout the land!

Preferably in a thread appropriately titled too to avoid the wrath of the populace.

edited 2:26 AM EST February 16, 2009


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source