Author Topic: .J2B file format  (Read 21674 times)

Torkell

  • Posts: 1169
.J2B file format
« on: 14 Sep '03 - 10:08 »
Anyone know of a plugin that can read .J2B format files? They are used by Jazz Jackrabbit 2 (made by Epic), and contain the signature "MUSE". I believe they are module format files (becuase of the size and how they loop and sound in the game).

Thanks.

Haze

  • Guest
Re:.J2B file format
« Reply #1 on: 14 Sep '03 - 14:06 »
To be more precise: they ARE normal modules (mostly S3M's or IT's) encrypted to a game-only format, by method of the Galaxy Music System v5.0a (denoted by the MUSE in the header).

In fact J2B support was worked on for ModPlug's engine, however Olivier either gave up because of the encryption or just plainly couldn't care. All that remains is a blank header file which is STILL distributed with libmodplug. :)
So currently there's no plugin capable of playing the J2B-format.

If Ian or anyone else wants to give it a try I am able to supply the "encrypter" (no source-code available though :() and some sample-files.
As for now, you'll just have to use the unencrypted songs, which are btw available LEGALLY on the web, e.g. at http://www.loricentral.com/

Ralesk

  • Posts: 654
Re:.J2B file format
« Reply #2 on: 14 Sep '03 - 16:04 »
Aye, I thought if it was Epic it had to be a similar thing like UMX.

Haze

  • Guest
Re:.J2B file format
« Reply #3 on: 14 Sep '03 - 19:04 »
@Ralesk: you're right. It's actually the same engine that's used in both Jazz Jackrabbit 2 and Unreal (Tournament), though the Jazz Jackrabbit-version was stripped a bit (missing Red Book audio, MIDI, MP3 and other streaming support).

The only real difference probably is the "encryption", which IIRC correctly was merely a custom-header and some compression thrown over the file. :)

Torkell

  • Posts: 1169
Re:.J2B file format
« Reply #4 on: 15 Sep '03 - 19:39 »
Thanks for the link Haze. Shame XMPlay won't play them natively. One other thing I remember is that I'm pretty sure the engine in JJ2 will play "unencrypted" modules (e.g. s3m, mod).

Haze

  • Guest
Re:.J2B file format
« Reply #5 on: 16 Sep '03 - 16:27 »
Thanks for the link Haze. Shame XMPlay won't play them natively. One other thing I remember is that I'm pretty sure the engine in JJ2 will play "unencrypted" modules (e.g. s3m, mod).

Yep, that's true. And nowadays it's the preferred method, as people are indeed unable to play J2B files outside of Jazz Jackrabbit 2. >_<
The thing is the Galaxy Sound System lacks support for several module-related things, e.g.:
- no support for IT instruments
- no compressed IT support
- more than 32 channels will cut off sound effects
- arpeggios for XM and IT don't function properly
- no channel volumes

Which again makes me wonder why Epic chose for that engine in the first place...

Tsorovan

  • Posts: 1247
Re:.J2B file format
« Reply #6 on: 17 Sep '03 - 19:31 »
For lack of a better one at that time.
Hey, wait, I'm giving them way too much leeway. After all, they've made some really strange decisions.

Karma instead of Havok for one... oh well...
« Last Edit: 17 Sep '03 - 22:39 by Tsorovan »

Keltic Danor

  • XMPlay Support
  • Posts: 747
Re:.J2B file format
« Reply #7 on: 18 Sep '03 - 16:34 »
From what I gather you can play the .J2B files in KbMedia Player. But since I can't understand a word of it and it'd be a bit of overkill to get a play just to play one file type, I can't tell for sure. ;)

Haze

  • Guest
Re:.J2B file format
« Reply #8 on: 18 Sep '03 - 19:21 »
From what I gather you can play the .J2B files in KbMedia Player. But since I can't understand a word of it and it'd be a bit of overkill to get a play just to play one file type, I can't tell for sure. ;)

Actually, afaik it can't. The thing is KbMedia Player uses the ModPlug library which contains, as mentioned before, the blank J2B header. :)
Thus, even though it's mentioned as a playable format you still can't play J2B files. And believe me, I've tried it (even though I as well couldn't understand a single word of what's on the webpage, in the installer or in the player itself...). ;)

Keltic Danor

  • XMPlay Support
  • Posts: 747
Re:.J2B file format
« Reply #9 on: 18 Sep '03 - 20:58 »
Maybe there's another mysterious J2B format ;D

Torkell

  • Posts: 1169
Re:.J2B file format
« Reply #10 on: 23 Sep '03 - 19:03 »
Haze: could you give me a link ot the encryptor (can't e-mail the prog, as I'm using 90+% of my space on Yahoo at the moment!)

Haze

  • Guest
Re:.J2B file format
« Reply #11 on: 23 Sep '03 - 20:32 »
Sure, it should be available at my site (which goes to show how much I actually know about my own site...)

*checks*
http://www.dutchfurs.com/~haze/?cat=files&dir=files/pc/utils#mod2j2b

That should work. ;)

Ralesk

  • Posts: 654
Re:.J2B file format
« Reply #12 on: 24 Sep '03 - 21:43 »
wow, iemand heeft een nieuw design voor DF gemaakt sinds ik het laatst heb gezien...  Ziet écht lekker uit :)  Goeie portaal-design.

Haze

  • Guest
Re:.J2B file format
« Reply #13 on: 25 Sep '03 - 09:13 »
wow, iemand heeft een nieuw design voor DF gemaakt sinds ik het laatst heb gezien...  Ziet écht lekker uit :)  Goeie portaal-design.

*blink* *blink* Kudos daarvoor gaan naar Pegla, die in een ver grijs verleden een weekendje over had. :)
Wow, didn't know the dutch-speaking fandom reached as far as Hungary. :P

kode54

  • Posts: 100
Re:.J2B file format
« Reply #14 on: 25 Sep '03 - 14:26 »
J2B format contains a custom module format based on the RIFF chunked format, compressed using the deflate algorithm.

Of course, none of that matters, because you can get the whole soundtrack in its original format, thanks to Alexander Brandon and Lori Central. Click the JJ2 Music link to see a list of individual songs for download, or you can download the whole set in one ZIP file from the Downloads section.

Ralesk

  • Posts: 654
Re:.J2B file format
« Reply #15 on: 25 Sep '03 - 17:23 »
Oh, Pegla, die naam heb ik al gehoord.
Nou, er is noch geen fandom hier, maar de één persoon die ook een furry is, spreekt al een beetje Nederlands :P  En ook Duits, Engels, en Hongaars.  Hmm, zou ik 'n accountje aan de DF site maken? ::)

Zarggg

  • Posts: 1242
Re:.J2B file format
« Reply #16 on: 25 Sep '03 - 17:31 »
* Zarggg aka Alpha wishes Ralesk would stop being lazy and include translations for the rest of the non-dutch world. ::)

Ralesk

  • Posts: 654
Re:.J2B file format
« Reply #17 on: 25 Sep '03 - 18:16 »
But ah'm not Dutch either :P

Zarggg

  • Posts: 1242
Re:.J2B file format
« Reply #18 on: 25 Sep '03 - 22:32 »
Dutch, Hungarian... it's all the same to me. :-[
« Last Edit: 25 Sep '03 - 22:32 by Zarggg aka Alpha »

Jace

  • Posts: 825
Re:.J2B file format
« Reply #19 on: 26 Sep '03 - 02:30 »
Dutch, Hungarian... it's all the same to me. :-[
Yup. Weird is weird is weird. ;D

ps. I think I found a bug in YABB ;)
« Last Edit: 26 Sep '03 - 02:31 by Jacer »

Ian @ un4seen

  • Administrator
  • Posts: 20437
Re:.J2B file format
« Reply #20 on: 26 Sep '03 - 12:04 »
damn |-|4><0|2s ;)

Torkell

  • Posts: 1169
Re:.J2B file format
« Reply #21 on: 27 Sep '03 - 21:14 »
Just so you know... the modules on LoriCentral are not the same as the one's in the game. There are differences in places (e.g. start of the Lab song), and the normal ones lack the looping information required by XMPlay.

kode54

  • Posts: 100
Re:.J2B file format
« Reply #22 on: 7 Oct '03 - 00:52 »
Looping information? Last time I checked, the S3M, XM, and IT files all contained proper pattern jump effects. Are you sure you have looping enabled?

As for minor differences, I'm not sure. Maybe the files Alexander Brandon sent to Lori Central are older/newer than those used in the release.

Maybe someone still wants to figure out the RIFF AM module format. Here's some basic info on the J2B format...

DWORD id;     // "MUSE"
DWORD magic; // DE AD BE AF (huhuhuh, nice spelling)
DWORD filelen; // length of the entire file
DWORD csum; // checksum? doesn't appear to be CRC32 of decompressed data, maybe CRC32 of compressed data?
DWORD clen; // length of the compressed data
DWORD ulen; // length of the decompressed data
BYTE data[]; // clen bytes worth of compressed data; use zlib uncompress() to extract ulen bytes

Once you have that decompressed... good luck reverse engineering the underlying format. It might not be so hard, considering the existence of mod2j2b.

Torkell

  • Posts: 1169
Re:.J2B file format
« Reply #23 on: 8 Oct '03 - 16:39 »
By "lack of looping information", I mean they just loop back to the start. To give an example, both "Pull back the bass (credits)" and the Medivo one have an intro that should then be skipped when looping.

kode54

  • Posts: 100
Re:.J2B file format
« Reply #24 on: 8 Oct '03 - 17:18 »
Chalk it up to Alexander Brandon not having the exact files that were included in the game. Perhaps he only had older versions of the songs, or made changes to them before giving them to Lori Central. (Or perhaps LC did more than tag all of the files with an advertisement... I doubt it.)

If you must have the versions included with the game, you can either ask Epic for the Galaxy SDK (as Digital Dreams Multimedia doesn't seem to exist anymore.) or reverse engineer the format yourself. The format appears to be supported by the Galaxy.dll used by original Unreal engine games as well, but it doesn't support the compressed J2B container.

Even though Digital Dreams appears to be dead, Epic still had to pay them for the SDK, so I doubt you can get it. They might not even have it anymore. They probably did not license the source code, so I doubt you'd have an easier reference on the format anyway.