Friday, May 2, 2008

Files within a JAM_000x BAR

I'll continue to focus on Jamming files here, as this is my goal. Maybe in the future I'll get around to playing with the others, but first thing's first.

Following the header is a zlib deflated manifest file, duplicated here:
; Manifest: dance2

MINILOCALE
data/minilocale/dance2.xml, MS

TRACK_SELECTION_MS
title/dance2, title/jam_0002, texture/cover_dance2, dan, applet/com.scee.london.beats.jamming.Jamlet, data/jamming/dance2.bjs, freeplay|transferable, easy, all_players
Now I know absolutely no Java, so I'm probably wrong, but this doesn't look like a normal Java manifest. Any case, stripping this file out of the BAR has no known effects. The only thing I could see it doing is separating easy, medium, and hard songs; preventing wifi sharing, or limiting its availability to certain players in a hypothetical unlock-the-song-style game.

Next file in the BAR is the aforementioned XML file called "MINILOCALE." This changes the obscure short names within a BJS file to user-friendly strings per the user's language:
<minilocale> //File type
<en_en> //Language
<roles> //Pages or instruments
<dan1>DRUMS</dan1> //Follows <bjsname>STRING format
<dan2>BASS</dan2> //where danx is the page name found in the BJS
<dan3>SYNTHS</dan3> //and STRING is what's displayed on screen
<dan4>FX</dan4>
</roles>
<title>
<dance2>SMACKDOWN</dance2> //Song title string using internal name as tag
<jam_0002>SWITCHSHIFT</jam_0002> //Artist name using folder name as tag
</title>
<tracks>
<jam_0002_t1>DRUMS 1</jam_0002_t1> //Uses names found within the BJS as tags
<jam_0002_t2>DRUMS 2</jam_0002_t2>
...
<jam_0002_tc>FX 3</jam_0002_tc>
</tracks>
<samples>
<jam_0002_s1>PERCUS.</jam_0002_s1> //Sample name (one-time use sounds you can use to drum along in the song.)
</samples> //This song in particular actually doesn't have any samples; this is just an artifact.
</en_en>
And on, for five more languages: Fr, Es, It, De, and Jp.
Next is the cover art file. This is a 8 bit 128x128 PSP MIG file similar to the ones used for the PSP and PS3 GUIs. There are a couple of utilities that will convert to/from MIG files, but I've been unable to create a custom file that will display in the game. It might be due to some custom header, but I'm not too familiar with the format and haven't had a chance to look into it, as my focus has been on the audio portion.

The above two files are only for the UI, as I've had no problem loading a BAR with everything but the BJS stripped out. If you do that, there's a nice blank spot in the song list, but it loads and runs fine, and uses the internal "dan1" and "jam_0002_t1" names for the UI instead.

The fourth file in the BAR is the all-important BJS file which I'll cover in the next post.

And the final file is actually another BAR file that contains a smaller manifest and a duplicate of the XML seen above. This seems to be an artifact, as I'm able to remove it with no known consequences, though it might be used for Ad Hoc play. I can't test this as I have only one PSP, but wireless Jamming does look pretty fun; each PSP is assigned an instrument. If one was set up with 4 PSPs, they wouldn't have to worry about switching pages while performing, fixing the slight flaw of being unable to move backwards through the pages.
Oh if only the PSP had a touch screen.

No comments: