Previous Page | Next Page

JaiSeq's name and functions by unknownfile at 9:36 PM EST on December 24, 2006
JaiSeq is officially known as JAudio.

A list of its functions can be found here.

From what it looks, it was written in C and C++ and assembled with GCC.

Stay tuned for more stuff.
by valiant at 8:00 AM EST on December 25, 2006
They didn't leave the source code for JaiSeqs in Pikmin, did they?
The obvious by unknownfile at 10:36 AM EST on December 25, 2006
Bad news by unknownfile at 11:51 PM EST on January 2, 2007
The jaudio library is used only in games that Nintendo EAD has had involvement in, with the possible exception being Pac-Man Vs., which was developed elsewhere in the Nintendo labs.

See the list here (courtesy Wikipedia).

As we don't know who compiled the US build of Pikmin, we cannot determine who has the library, and even asking them about it would result in no response.

We can, however, wait for a Gamecube emulator with sound and debugging features that works so that we can analyze the format from there. Who knows, we even might be able to make 3sf rips...
by valiant at 4:00 PM EST on January 13, 2007
I've seen in the DSP distribution thread that you're working on a BMS ripper for ARC files. So you just want to extract files from ARC archives?
thakis programmed some tools for GC files a whole while ago, among them an ARC archive dumper. If your ripper has a different purpose I apologise for the useless information. :-)

3sf? What's that an acronym for?
by unknownfile at 5:27 PM EST on January 26, 2007
Found this crap in Mario Kart Double Dash. This was compiled by Yoji Inagaki, who was one of the sound programmers for many games using the library. The syntax seems to derrive from C.

Comments written in Japanese have been removed

//            Project:    GC KART
//            Author:        Yoji Inagaki
//            Date:        2003.5.8(THU)

#define baac 'b', 'a', 'a', 'c', long, long



    bst, _BEGIN_BST, _END_BST

//    bstn, _BEGIN_BSTN, _END_BSTN

    ws, 0, NINTENDO_LOGO_MARIO_WS_START, 0xffffffff
    ws, 1, SE_WS_START, 0    //0xffffffff
    ws, 5, TANAKA_BGM_WS_START, 0    //0xffffffff

    bnk, 1, SE_BANK_START

    bsft, _BEGIN_SFT

    bsc, _BEGIN_BSC, _END_BSC

    bms, JA_BGM_TITLE, _BEGIN_BMS_0001, _END_BMS_0001
    bms, JA_BGM_SELECT, _BEGIN_BMS_0002, _END_BMS_0002
    bms, JA_BGM_OPTION, _BEGIN_BMS_0003, _END_BMS_0003
    bms, JA_BGM_RECORD, _BEGIN_BMS_0004, _END_BMS_0004
    bms, JA_BGM_START_FANFARE2, _BEGIN_BMS_0006, _END_BMS_0006
    bms, JA_BGM_START_FANFARE4, _BEGIN_BMS_0008, _END_BMS_0008
    bms, JA_BGM_START_FANFARE5, _BEGIN_BMS_0009, _END_BMS_0009
    bms, JA_BGM_START_FANFARE6, _BEGIN_BMS_0010, _END_BMS_0010
    bms, JA_BGM_STAR, _BEGIN_BMS_0011, _END_BMS_0011
    bms, JA_BGM_WANWAN, _BEGIN_BMS_0013, _END_BMS_0013

    baac, _BEGIN_BAAC, _END_BAAC


#incbin "GCKart.bst"

//#incbin "GCKart.bstn"

#incbin "GCKart.bsft"




#incbin "SE/Seqs/GCKartSe.bsc"

#incbin "SceneJPN.baac"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"

#incbin "Bms/"
by unknownfile at 5:56 PM EST on January 26, 2007
Here's some converted audio I got from ye royale ModPlugTracker. AW seems to just be 8-bit signed PCM.

Forest_0 from Pikmin from Mario Sunshine

Sorry for the static.
code by unknownfile at 12:46 AM EST on January 27, 2007
I have some code that rather crappily decodes the samplebanks.

Decoding is done thus:

outbin=*(long*)inbin - 128;
idx = (outbin)&0xf;
outbin=(outbin << 8)^0x8000; // convert to 16-bit signed pcm

Samples should be decoded at 18000 Hz

This uses some code from the AFC decoder, and I must admit that it works quite nicely, though not accurately.


What, you're still here?
Fine, take these wavs and leave me alone!
Wavs from Super Mario Sunshine and Luigi's Mansion
This is on megaupload as the ftp uploads here are slow and I am collapsing from drowsiness atm, so get it while its hot.
by unknownfile at 12:36 PM EST on January 27, 2007
Tweaked the code a bit, it is now easier to hear samples. The playback rate is a bit slow, but whatever.

Decoding is now done thus:

for (int i=0;i<2;i++) {
    outbin=*(long*)inbin + 128;
    idx = (outbin)&0xf;
delta = 1<<(((outbin)>>4)&0xf); // currently unused.
    outbin=(outbin << 8)^0x8000;
// output the audio here...

and the samplerate is 36000 Hz.

The way decoding is done is pretty much the same as before, but at least it's easier to hear now.

I'm also doing analysis on the BMS format as well. Setting up the instruments seems to be done thus

SET_INSTRUMENT(long instrument,long offset)
C1 0000 00E2
by unknownfile at 9:00 PM EST on February 1, 2007
Here's another flowchart, outlining Super Mario Sunshine:

In theory, to get to the function that handles music, we could xref DVD-related functions until we land at the jaudio sequence subroutines.

Previous Page | Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

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=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source