Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Splinter Cell 2 .SS0 Music

Get help on any and all audio formats, or chip in and help others!
Zench
VIP member
VIP member
Posts: 209
Joined: Sun May 04, 2008 9:11 pm
Has thanked: 4 times
Been thanked: 59 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Zench »

The contents of this post was deleted because of possible forum rules violation.
And I said, "The well has finally run dry." So then that will be my battle cry.
OrangeC
double-veteran
double-veteran
Posts: 868
Joined: Sun Apr 20, 2008 2:58 am
Has thanked: 5 times
Been thanked: 41 times

Re: Splinter Cell 2 .SS0 Music

Post by OrangeC »

Well the SS0 is 1gb for double agent PC so its too big to post here.

But i had to extract all tracks inside of it, it only happens when i extract tracks in a batch or one by one in the file, And it does only on some files, not all.

So if i want to extract files i have to select everything and it will extract them with no errors, weird.
Zench
VIP member
VIP member
Posts: 209
Joined: Sun May 04, 2008 9:11 pm
Has thanked: 4 times
Been thanked: 59 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Zench »

OrangeC wrote:Well the SS0 is 1gb for double agent PC so its too big to post here.

But i had to extract all tracks inside of it, it only happens when i extract tracks in a batch or one by one in the file, And it does only on some files, not all.

So if i want to extract files i have to select everything and it will extract them with no errors, weird.
Well, thanks for the infomation. I'll try harder this time.
And I said, "The well has finally run dry." So then that will be my battle cry.
RonHayter
beginner
Posts: 33
Joined: Thu Jul 31, 2008 10:22 pm
Been thanked: 4 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by RonHayter »

Thanks very much, Zench, for your work decoding UbiSoft's sound formats. I've been looking at Myst III for PlayStation 2, another UbiSoft game, and your info has been invaluable.

Unlike the Mac/PC version of Myst III, where all sounds and music are in individual WAV and MP3 files, the PS2 version appears to have everything in a pair of files: MAPS.SM1 (14 MB) and STRM.SM1 (433 MB).

Your DecUbiSndGui application figured out that STRM.SM1 contains 38 simple streams of the version 3 variety, all of the music in the game. I know that part of MAPS.SM1 is directory information. In particular, I've figured out how MAPS.SM1 describes the 38 streams in STRM.SM1. However, MAPS.SM1 is much too big to be only directory info. I'm sure that it must also contain audio data for the game's non-musical sounds. If so, it's in a format not recognized by me or by DecUbiSndGui.

If anyone is interested in looking at an example of a piece of MAPS.SM1 that I believe is audio data, here's the 8 KB chunk between a couple of the dozen or so directories scattered throughout MAPS.SM1:

http://homepage.mac.com/rshayter/MAPS-000bc800.bin.zip

Any suggestions on how to make sense of this data would be much appreciated!

Ron
Zench
VIP member
VIP member
Posts: 209
Joined: Sun May 04, 2008 9:11 pm
Has thanked: 4 times
Been thanked: 59 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Zench »

RonHayter wrote:Thanks very much, Zench, for your work decoding UbiSoft's sound formats. I've been looking at Myst III for PlayStation 2, another UbiSoft game, and your info has been invaluable.
I am always glad to help other people. Thank you for your feedback.
RonHayter wrote:Your DecUbiSndGui application figured out that STRM.SM1 contains 38 simple streams of the version 3 variety, all of the music in the game. I know that part of MAPS.SM1 is directory information. In particular, I've figured out how MAPS.SM1 describes the 38 streams in STRM.SM1. However, MAPS.SM1 is much too big to be only directory info. I'm sure that it must also contain audio data for the game's non-musical sounds. If so, it's in a format not recognized by me or by DecUbiSndGui.

If anyone is interested in looking at an example of a piece of MAPS.SM1 that I believe is audio data, here's the 8 KB chunk between a couple of the dozen or so directories scattered throughout MAPS.SM1:

http://homepage.mac.com/rshayter/MAPS-000bc800.bin.zip
Yes, *.SM? files do contain audio (typically sound effects) as well as directory information. I should write a program that actually parses the directory information, but it varies from game to game. The segment you posted is not any UbiSoft audio format which I've seen. Keep in mind UbiSoft uses raw audio and platform specific codecs in their audio files (for example XMA on the Xbox platform). I am not very familiar with Playstation audio, though. Ahh... yes! I just tried this file in PSound (I can't remember where I found it) and it worked.

If you are able post the entire MAPS.SM1 file, I would very much like to examine it.
And I said, "The well has finally run dry." So then that will be my battle cry.
RonHayter
beginner
Posts: 33
Joined: Thu Jul 31, 2008 10:22 pm
Been thanked: 4 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by RonHayter »

Zench wrote:Keep in mind UbiSoft uses raw audio and platform specific codecs in their audio files (for example XMA on the Xbox platform). I am not very familiar with Playstation audio, though. Ahh... yes! I just tried this file in PSound (I can't remember where I found it) and it worked.
Brilliant! You're absolutely right -- PSound found 280 sounds in MAPS.SM1. Thanks for the help! Next step: google for a description of the PS2 sound format. :)

Here is the complete MAPS.SM1. My understanding of the directory structures is incomplete but I can tell you what I know, if you like. I don't have time to do so right now, though. Maybe tomorrow...

Ron
RonHayter
beginner
Posts: 33
Joined: Thu Jul 31, 2008 10:22 pm
Been thanked: 4 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by RonHayter »

Here's my interpretation of the directory information inside MAPS.SM1. All values are little-endian.

Code: Select all

Header at 0x0000:
uint32 {4} - Unknown
uint32 {4} - Offset to root directory
uint32 {4} - Number of root directory entries, each 48 bytes long

Root directory entries:
{
	uint32 {4} - Unknown (always 0)
	uint32 {4} - Unknown (always 0)
	uint32 {4} - Offset to subdirectory
	uint32 {4} - Length of subdirectory
	char {32} - Subdirectory name, zero-padded
}

Subdirectory:
uint32 {4} - Unknown (always 0)
uint32 {4} - Offset to unknown table X (always 0x0024)
uint32 {4} - Number of X entries, each 52 bytes long
uint32 {4} - Offset to streamed sound table
uint32 {4} - Number of streamed sound entries, each 112 bytes long
uint32 {4} - Offset to unknown table Y
uint32 {4} - Number of Y entries? (usually 1)
uint32 {4} - Offset to unknown table Z
uint32 {4} - Number of Z entries

Streamed sound entries (apparently valid only if the length field at offset 0x0038 is non-zero):
{
	uint16 {2} - Sound ID, minor component?
	uint16 {2} - Sound ID, major component?
	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Unknown

	uint32 {4} - Unknown
	uint32 {4} - Offset of version 3 simple stream in STRM.SM1, only if length > 0
	uint32 {4} - Unknown
	uint32 {4} - Unknown

	uint32 {4} - Unknown
	uint32 {4} - Number of channels (always 2 when length > 0)
	uint32 {4} - Sample rate (always 44,100 when length > 0)
	uint32 {4} - Unknown

	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Length of version 3 simple stream in STRM.SM1
	uint32 {4} - Unknown

	uint32 {4} - Unknown
	char {8} - File containing streamed sound (always "STRM.SM1" when length > 0)
	uint32 {4} - Unknown

	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Unknown

	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Unknown
}

Following almost every subdirectory and its tables are PS2-native sequenced sounds.
Unknowns:
  • Purpose and structure of tables X, Y, and Z.
    Purpose of many of the fields in a streamed sound entry.
    Purpose of the many streamed sound entries where length == 0.
    How sequenced sounds are described in a subdirectory.
I hope this is of use to someone. :)

Ron
Mirrodin
advanced
Posts: 71
Joined: Tue May 31, 2005 7:36 pm
Has thanked: 3 times
Been thanked: 2 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Mirrodin »

Arg! finally able to log back into xentax! (changed emails took forever to get reactivated).
Zench
VIP member
VIP member
Posts: 209
Joined: Sun May 04, 2008 9:11 pm
Has thanked: 4 times
Been thanked: 59 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Zench »

RonHayter wrote:Here's my interpretation of the directory information inside MAPS.SM1. All values are little-endian.
Nice work! The general structure is very similar to the other *.SM? files I've seen, except that this one has lots of padding an the other ones don't. That's probably just a Playstation thing, though. I should post the format of the Splinter Cell 1 PC .SM0 file so you can see how similar they are. I should also add a bunch of UbiSoft audio formats to the wiki. I already started adding a few but I didn't finish. If you want to add this format and know how, go ahead; otherwise I can do it.
Mirrodin wrote:Arg! finally able to log back into xentax! (changed emails took forever to get reactivated).
We're glad to have you back! :)
And I said, "The well has finally run dry." So then that will be my battle cry.
RonHayter
beginner
Posts: 33
Joined: Thu Jul 31, 2008 10:22 pm
Been thanked: 4 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by RonHayter »

Zench wrote:I should post the format of the Splinter Cell 1 PC .SM0 file so you can see how similar they are.
Please do. There's no hurry, though. I'm curious but I don't have that game.
Zench wrote:If you want to add this format and know how, go ahead; otherwise I can do it.
If you're sure you don't mind, I'd appreciate that.

Ron
Zench
VIP member
VIP member
Posts: 209
Joined: Sun May 04, 2008 9:11 pm
Has thanked: 4 times
Been thanked: 59 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Zench »

Here is the .SM0 format from Splinter Cell 1 and 2:

Code: Select all

uint16 {2} - Signature (7)
uint16 {2} - Unknown
uint32 {4} - Root directory offset
uint32 {4} - Directory count

For each directory {
	uint32 {4} - Unknown (mostly null)
	uint32 {4} - Unknown (mostly null)
	uint32 {4} - Directory offset
	uint32 {4} - Directory size
	char {32} - Directory name
}

At the directory offset {
	uint32 {4} - Unknown (always null)
	uint32 {4} - Offset to directory 1
	uint32 {4} - Number of directory 1 entries
	uint32 {4} - Offset to directory 2
	uint32 {4} - Number of directory 2 entries
	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Unknown
	uint32 {4} - Unknown

	For each entry in directory 1 {
		uint32 {4} - Resource ID
		byte {84} - Unknown
	}
	
	For each entry in directory 2 (each entry is 128 bytes){
		uint32 {4} - Resource ID
		uint32 {4} - Type (1 - 15)
		uint32 {4} - Unknown (always 1)
		
		If Type is 1 {
			uint32 {4} - Size
			uint32 {4} - Unknown (always 0)
			uint32 {4} - External Offset (0 if the data is in MAPS.SM0)
			uint32 {4} - Unknown
			uint32 {4} - Unknown (always 1)
			uint32 {4} - Unknown (0 or 1)
			uint32 {4} - Unknown (always 1)
			uint32 {4} - Location (0 for internal, 1 for external)
			uint32 {4} - Wierd Flag
			uint32 {4} - Size
			uint32 {4} - Size/2
			If Wierd Flag is 1 {
				uint32 {4} - Size
				uint32 {4} - Size/2
			} Else {
				uint32 {4} - null
				uint32 {4} - null
			}
			uint32 {4} - Bitrate
			uint32 {4} - Sample rate
			uint16 {2} - Bits
			uint16 {2} - Channels
			uint32 {4} - Type (1 is raw PCM, 2 is SC1-type audio, 3?, 4 is Old Simple Stream)
			char {40} - Filename (external if location is 1)
			uint32 {4} - Unknown (1)
			uint32 {4} - Unknown (padding?)
		}
		If type is 13 {
			uint32 {4} - Size
			uint32 {4} - Unknown
			uint32 {4} - External Offset
			uint32 {4} - null
			uint32 {4} - null
			uint32 {4} - Unknown
			uint32 {4} - Unknown (3)
			uint32 {4} - null
			uint32 {4} - null
			uint32 {4} - Unknown (1)
			char {40} - External Filename
			uint32 {4} - Unknown
			uint32 {4} - null
			uint32 {4} - Size
			uint32 {4} - null
			uint32 {4} - null
			uint32 {4} - Unknown (0)
			uint32 {4} - Unknown (0)
			uint32 {4} - Unknown (1)
			uint32 {4} - Unknown (padding?)
		}
		If type is anything else {
			byte {116} - Unknown
		}
	}
}
And I said, "The well has finally run dry." So then that will be my battle cry.
OrangeC
double-veteran
double-veteran
Posts: 868
Joined: Sun Apr 20, 2008 2:58 am
Has thanked: 5 times
Been thanked: 41 times

Re: Splinter Cell 2 .SS0 Music

Post by OrangeC »

Hey zerichs will we see another version of the GUI?
Zench
VIP member
VIP member
Posts: 209
Joined: Sun May 04, 2008 9:11 pm
Has thanked: 4 times
Been thanked: 59 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Zench »

OrangeC wrote:Hey zerichs will we see another version of the GUI?
It's likely. I've been thinking about adding a few new features (like layer extract). I was also thinking about how I can get it to read .SM? files, if possible. I'm not sure if I fixed the bug you mentioned yet. It isn't high priority, though.
And I said, "The well has finally run dry." So then that will be my battle cry.
Mirrodin
advanced
Posts: 71
Joined: Tue May 31, 2005 7:36 pm
Has thanked: 3 times
Been thanked: 2 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by Mirrodin »

Sweet! I am still promising tutorials of the program. I'm still breaking down the tutorial structure so it may be a while before I post anything, But i'll be sure to link and give credit to all who are involved. If anyone has any suggestions on whether they'd like to see a game-specific tutorial series, or a general tutorial covering specific functions of the program (regardless of game), please feel free to comment! I haven't actually started writing them yet. but I will asap when I get some feedback from you guys!
RonHayter
beginner
Posts: 33
Joined: Thu Jul 31, 2008 10:22 pm
Been thanked: 4 times
Contact:

Re: Splinter Cell 2 .SS0 Music

Post by RonHayter »

Zench wrote:Here is the .SM0 format from Splinter Cell 1 and 2:
You're right, there are many similarities with the format of MAPS.SM1 from Myst III for PS2. Thanks.

Do you have any idea how the offsets to the sounds that are inside MAPS.SM0 are determined? I still haven't figured that out for Myst III.

Ron
Post Reply