Home Gallery Resources The Team Rules chat Login Register
Pages: [1]
Author Topic: BRSAR Notes - *Pretty Much Complete*  (Read 5025 times)
0 Members and 1 Guest are viewing this topic.
VILE
Badass.
Holy Kitten
*
Offline Offline

Posts: 1455

  • Awards Hot Topic Heart Container KCMM Old Timer Tutorial Writer

  • View Profile Awards
    « on: May 17, 2011, 03:03:57 AM »


    Took me a few hours, knock yourselves out.

    BRSAR (Raw Sound ARchive)

    BRSAR Header:
    0x00(4) - RSAR ASCII
    0x04(10)- A bunch of UNK values, lol
    0x0E(2) - File count within archive
    0x10(?) - BRSAR Relocation Group

    BRSAR Relocation Group:
    0x00(4) - Offset to file start (relative to start if BRSAR Header)
    0x04(4) - Length of file
    This goes on for as long as the File Count


    SYMB (SYM Bank?)

    SYMB Header:
    0x00(4) - SYMB ASCII
    0x04(4) - File Length
    0x08(4) - Offset to String Relocation Group (relative to 0x08 of SYMB Header)
    0x0C(4) - Mask Offset (relative to 0x08 of SYMB Header)
    0x10(4) - Mask Offset (relative to 0x08 of SYMB Header)
    0x14(4) - Mask Offset (relative to 0x08 of SYMB Header)
    0x18(4) - Mask Offset (relative to 0x08 of SYMB Header)

    String Relocation Group:
    0x00(4) - Entry count

    String Relocation Group: Entries:
    0x00(4) - Offset to String (relative to 0x08 of SYMB Header)

    Mask:
    0x00(4) - UNK
    0x04(4) - Entry Count

    Mask Entry
    0x00(14)- UNK


    INFO (INFO)

    INFO Header:
    0x00(4) - INFO ASCII
    0x04(4) - File Length
    0x08(8) - 01 then offset to Sound Header
    0x10(8) - 01 then offset to Banks Relocation Group (relative to 0x08 in INFO Header)
    0x18(8) - 01 then offset to Types Relocation Group (relative to 0x08 in INFO Header)
    0x20(8) - 01 then offset to Collections Relocation Group (relative to 0x08 in INFO Header)
    0x28(8) - 01 then offset to Group Relocation Group (relative to 0x08 in INFO Header)
    0x30(8) - 01 then offset to UNK Header (relative to 0x08 in INFO Header)
    0x38(?) - INFO Relocation Group 1

    Sound Header:
    0x00(4) - String ID
    0x04(4) - Group ID
    0x08(4) - 00 00 00 00 constant
    0x0C(8) - 01 then offset to Sound UNK 1 (relative to 0x08 in INFO Header)
    0x14(1) - Flag 1
    0x15(1) - Flag 2
    0x16(1) - Flag 3
    0x17(1) - Flag 4
    0x18(8) - 01 (then 03 ??) then offset to Sound UNK 2 (relative to0x08 in INFO Header)
    0x20(4) - UNK
    0x24(4) - UNK
    0x28(4) - UNK

    Sound UNK 1:
    0x00(4) - UNK
    0x04(4) - UNK
    0x08(4) - UNK

    Sound UNK 2:
    0x00(4) - Group Index
    0x04(4) - UNK
    0x08(4) - UNK
    0x0C(4) - UNK

    Banks Relocation Group:
    0x00(4) - Entry count

    Banks Relocation Group Entries:
    0x00(1) - 01
    0x01(7) - Offset to Bank Data (relative to 0x08 in INFO Header)

    Bank Data:
    0x00(4) - String ID
    0x04(4) - Collection ID

    Types Relocation Group:
    0x00(4) - Entry count

    Types Relocation Group Entries:
    0x00(1) - 01
    0x01(7) - Offset to Types Data (relative to 0x08 in INFO Header)

    Types Data:
    0x00(4) - UNK (Some sort of ID)
    0x04(1) - UNK
    0x05(11)- UNK

    Collections Relocation Group:
    0x00(4) - Entry count

    Collections Relocation Group Entries:
    0x00(1) - 01
    0x01(7) - Offset to Collections Header (relative to 0x08 in INFO Header)

    Collections Header:
    0x00(4) - Length
    0x04(4) - UNK
    0x08(4) - FF FF FF FF constant
    0x0C(8) - 00 00 00 00  00 00 00 00 constant
    0x14(4) - Offset to Collections UNK Relocation Group

    Collections UNK Relocation Group:
    0x00(4) - Entry Count

    Collections UNK Relocation Group Entry:
    0x00(1) - 01
    0x01(7) - Offset to Collections UNK

    Collections UNK:
    0x00(4) - UNK
    0x04(4) - UNK

    Group Relocation Group:
    0x00(4) - Entry count

    Group Relocation Group Entries:
    0x00(1) - 01
    0x01(7) - Offset to Group Data (relative to 0x08 in INFO Header)

    Group Data:
    0x00(4) - ID
    0x04(4) - FF FF FF FF constant
    0x08(4) - UNK
    0x0C(4) - UNK
    0x10(4) - Offset to RWSD (relative to 0x00 in BRSAR Header)
    0x14(4) - RWSD length
    0x18(4) - Offset to Raw Data (relative to 0x00 in BRSAR Header)
    0x1C(4) - Length of Raw Data
    0x20(8) - 01 then offset to Group Data Relocation Group (relative to 0x08 in INFO Header)

    Raw Data:
    Raw data

    Group Data Relocation Group:
    0x00(4) - Entry count

    Group Data Relocation Group Entry:
    0x00(1) - UNK (usually 01)
    0x01(7) - Offset to Sound Group Header (relative to 0x08 in INFO Header)

    Sound Group Header:
    0x00(4) - Group ID
    0x10(4) - 00 00 00 00 / Offset to RWSD (relative to RWSD offset)
    0x14(4) - RWSD length
    0x18(4) - 00 00 00 00 / Offset to Sound Data (relative to Sound Data offset)
    0x1C(4) - Length of Sound Data

    UNK Header:
    0x00(16)- A bynch of 16bit UNK values


    FILE (FILE)

    FILE Header:
    0x00(4) - FILE ASCII
    0x04(4) - Length


    RWSD (RaW SounD)

    RWSD Header:
    0x00(4) - RWSD ASCII
    0x04(10)- A bunch of UNK values, lol
    0x0E(2) - File count within archive
    0x10(?) - RWSD Relocation Group

    RWSD Relocation Group:
    0x00(4) - Offset to file start (relative to start if RWSD Header)
    0x04(4) - Length of file
    This goes on for as long as the File Count


    DATA (DATA)

    DATA Header:
    0x00(4) - DATA ASCII
    0x04(4) - Offset to WAVE (relativetostart of DATA Header)
    0x08(?) - Additional Sound Header Offset Relocation Group

    Additional Sound Header Relocation Group:
    0x00(4) - Entry count

    Additional Sound Header Relocation Group Entry:
    0x00(1) - 01
    0x01(7) - Offset to Additional Sound Header Offset (relative to 0x08 from DATA Header)

    Additional Sound Header Offset Entry:
    0x00(1) - 01
    0x01(7) - Offset to Additional Sound Header (relative to 0x08 from DATA Header)

    Additional Sound Header:
    0x00(4) - UNK float
    0x04(4) - UNK float
    0x08(2) - UNK
    0x0A(2) - UNK
    0x0C(4) - UNK
    0x10(4) - UNK
    0x14(4) - UNK
    0x18(4) - UNK
    0x1C(4) - UNK
    0x20(4) - Additional Sound Header UNK 1 Relocation Group

    Additional Sound Header UNK 1 Relocation Group:
    0x00(4) - Entry count

    Additional Sound Header UNK 1 Relocation Group Entry:
    0x00(1) - 01
    0x01(7) - Offset to Additional Sound Header UNK 2 Relocation Group Offset (relative to 0x08 in DATA Header)

    Additional Sound Header UNK 2 Relocation Group:
    0x00(4) - Entry count

    Additional Sound Header UNK 2 Relocation Group Entry:
    0x00(1) - 01
    0x01(7) - Offset to Additional Sound Header UNK 2 (relative to 0x08 in DATA Header)

    Additional Sound Header UNK 2:
    0x00(4) - UNK
    0x04(4) - UNK
    0x08(4) - UNK
    0x0C(4) - UNK
    0x10(?) - Additional Sound Header UNK 3 Relocation Group

    Additional Sound Header UNK 3 Relocation Group:
    0x00(4) - Entry Count

    Additional Sound Header UNK 3 Relocation Group Entry:
    0x00(1) - 01
    0x01(7) - Offset to Additional Sound Header UNK 3 (relative to 0x08 in DATA Header)

    Additional Sound Header UNK 3:
    0x00(4) - Index
    0x04(4) - 7F 7F 7F 7F constant
    0x08(4) - UNK
    0x0C(4) - UNK float
    0x10(4) - UNK float
    0x14(4) - UNK
    0x18(4) - UNK
    0x1C(4) - UNK
    0x20(4) - UNK
    0x24(4) - UNK
    0x28(4) - UNK
    0x2C(4) - UNK


    WAVE (WAVE)

    WAVE Header:
    0x00(4) - WAVE ASCII
    0x04(4) - Length
    0x08(?) - WAVE Header Relocation Group

    WAVE Header Relocation Group:
    0x00(4) - Entry count

    WAVE Header Relocation Group Entries:
    0x00(4) - Offset to WAVE Header (relative to 0x00 in WAVE Header)

    WAVE Header:
    0x00(1) - Encoding
    0x01(2) - Is Looped (boolean, 0 = true, 1 = false)
    0x03(3) - Frequency
    0x06(4) - UNK
    0x0A(2) - Flags
    0x0C(4) - Samples
    0x10(4) - UNK
    0x14(4) - Offset to raw sound (relative to base raw sound)
    0x18(4) - UNK
    0x1C(4) - UNK
    0x20(4) - UNK
    0x24(4) - UNK
    0x28(1) - UNK
    0x29(4) - UNK
    0x2D(4) - UNK
    0x31(4) - UNK
    0x35(4) - UNK
    0x39(7) - UNK
    0x3C(32)- UNK
    0x5C(2) - Gain
    0x5E(2) - PS
    0x60(2) - YN1
    0x62(2) - YN2
    0x64(2) - LPS
    0x66(3) - LYN1
    0x69(3) - LYN2
    « Last Edit: May 17, 2011, 05:27:39 PM by VILE » Logged

    Zephiel:
    You know what I really like on my stack smash?
    Texture updates.

    Androu1:
    @Zephiel: “your” Stack Smash?

    Jaklub
    Supreme Kitten
    ********
    Offline Offline

    Posts: 597


    Personal Text:

  • Awards Featured Good Citizen Super Saiyan Topic Renowned Hacker

  • View Profile Awards
    « Reply #1 on: May 17, 2011, 10:23:48 AM »


    Not sure, but I think I found something wrong.
    Code:
    0x00(4) - Offset to String (relative to 0x00 in String Relocation Group) 
    I think it should be
    Code:
    0x00(4) - Offset to String (relative to 0x08 in SYMB Header) 
    as skipping A818 bytes from 0x0 in String Relocation Group takes you to "d_player_versus_common". Skipping from 0x08 in SYMB Header takes you to "snd_player_system" instead (and there are no strings before it), which seems to make more sense.
    « Last Edit: May 17, 2011, 10:31:02 AM by Jaklub » Logged

    As you may have noticed, I don't answer PMs with problems anymore.

    VILE
    Badass.
    Holy Kitten
    *
    Offline Offline

    Posts: 1455

  • Awards Hot Topic Heart Container KCMM Old Timer Tutorial Writer

  • View Profile Awards
    « Reply #2 on: May 17, 2011, 05:29:35 PM »


    Not sure, but I think I found something wrong.
    Code:
    0x00(4) - Offset to String (relative to 0x00 in String Relocation Group) 
    I think it should be
    Code:
    0x00(4) - Offset to String (relative to 0x08 in SYMB Header) 
    as skipping A818 bytes from 0x0 in String Relocation Group takes you to "d_player_versus_common". Skipping from 0x08 in SYMB Header takes you to "snd_player_system" instead (and there are no strings before it), which seems to make more sense.

    *fixed*

    Thanks for spotting that, didn't test it but I don't doubt that I would have made a mistake like that, it was pretty hectic writing all those relocation groups.
    Logged

    Zephiel:
    You know what I really like on my stack smash?
    Texture updates.

    Androu1:
    @Zephiel: “your” Stack Smash?

    Diddy Kong
    Lol Kitten
    *********
    Offline Offline

    Posts: 802


    chief

  • Awards Heart Container Hot Topic Famous Hacker Pin Collector

  • View Profile WWW Awards
    « Reply #3 on: July 03, 2011, 01:45:17 AM »


    anything else i should know about this? cuz i wanna greatly extend a sound to put steve erkal in the "GO" and "time" announcers
    Logged


    VILE
    Badass.
    Holy Kitten
    *
    Offline Offline

    Posts: 1455

  • Awards Hot Topic Heart Container KCMM Old Timer Tutorial Writer

  • View Profile Awards
    « Reply #4 on: July 03, 2011, 01:55:10 AM »


    I don't think you realise that there are thousands (or high hundreds) of offsets to edit. Unless you write a program for this, it is virtually impossible.
    Logged

    Zephiel:
    You know what I really like on my stack smash?
    Texture updates.

    Androu1:
    @Zephiel: “your” Stack Smash?

    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #5 on: July 03, 2011, 08:03:54 AM »


    this will be useful *copys*

    I don't think you realise that there are thousands (or high hundreds) of offsets to edit. Unless you write a program for this, it is virtually impossible.
    well not impossible...
    just take an ungodly amount of time,
    and a critical amount of brain power to make it work right... heh
    Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    VILE
    Badass.
    Holy Kitten
    *
    Offline Offline

    Posts: 1455

  • Awards Hot Topic Heart Container KCMM Old Timer Tutorial Writer

  • View Profile Awards
    « Reply #6 on: July 03, 2011, 09:15:43 AM »


    this will be useful *copys*
    well not impossible...
    just take an ungodly amount of time,
    and a critical amount of brain power to make it work right... heh

    That's why I said it was "virtually" impossible Tongue

    The amount of time to edit 1 sound would be more than that of the time it would take to write  a BRSAR extracting and compiling program.
    Logged

    Zephiel:
    You know what I really like on my stack smash?
    Texture updates.

    Androu1:
    @Zephiel: “your” Stack Smash?

    Diddy Kong
    Lol Kitten
    *********
    Offline Offline

    Posts: 802


    chief

  • Awards Heart Container Hot Topic Famous Hacker Pin Collector

  • View Profile WWW Awards
    « Reply #7 on: July 03, 2011, 01:27:09 PM »


    i also came here to look because jaklub uploaded a video with sonic's announcer rediculously long without speed-up or slow-down
    Logged


    DarkPikachu
    Angel Kitten
    ***
    Offline Offline

    Posts: 3069


    complexity == fun

  • Awards Super Saiyan Topic Heart Container KCMM Veteran Tutorial Writer

  • View Profile Awards
    « Reply #8 on: July 12, 2011, 08:34:49 AM »


    @mods

    may I suggest a move to the programming board

    and if better, create a sub-board "Notes" Smiley
    Logged


    Quote: Friedslick6
    you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
    But the coolest part was that you didn't stop working on it despite that.

    Quote: Internet Explorer
    you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

    quote: Greg
    You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

    Pages: [1]
    Print
    Jump to: