Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Rayman 3 (Xbox) *.h00/h01/h02

Featured Replies

  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 6:15 pm (3424)


Hi,

So I was looking inside the files of Rayman 3 (Xbox), and it seems the music is inside the Streams.h00, .h01 and .h02 files.

Now I'm not sure if there is a way to unpack them, but I'm still asking.

Here are samples: (expired)

Thanks in advance.
  • Author
  • Localization

aluigi, posted Tue Feb 24, 2015 8:05 pm (3425)


There is nothing to extract because there are no headers.
They are just a long Xbox adpcm file at 22050, but there are both mono and stereo mixed so it's not possible to play everything.
For example Stream.h00 starts with multilanguage mono voices and then continues in stereo.
  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 8:10 pm (3427)


If I understand do I have to check other small files to see if they can be useful?
  • Author
  • Localization

aluigi, posted Tue Feb 24, 2015 8:22 pm (3429)


Yes, check if you have an index file there.
  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 8:32 pm (3430)


I think I found them:

Samples: (expired)

Thanks again.
  • Author
  • Localization

aluigi, posted Tue Feb 24, 2015 10:28 pm (3437)


Staff.hxx seems the good one.
Try the following:
Code:
get EXT extension
if EXT != "hxx"
    print "Error: you must open the files with HXX extension"
    cleanexit
endif
for
    findloc OFFSET string "STREAM."
    math OFFSET -= 4
    goto OFFSET

    get NAMESZ long
    getdstring NAME NAMESZ
    open FDSE NAME 1

    get NAMESZ long
    getdstring NAME NAMESZ
    getdstring DUMMY 8
    get OFFSET long
    get SIZE long

    string NAME = "/"  # autoguess
    log NAME OFFSET SIZE 1
next

It's enough to open just staff.hxx and it will extract all the streams.
I have not seen references to the number of channels but the format is not simple (that's why I use the findloc trick).
  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 10:31 pm (3438)


:o This is amazing! Thanks so much.
  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 10:37 pm (3441)


It correctly worked on the files I sent here.
  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 10:50 pm (3447)


Oh, unfortunately it didn't do it for the rest of the files... Do you have some clue?
  • Author
  • Localization

aluigi, posted Tue Feb 24, 2015 10:59 pm (3450)


There are many hxx files and I have updated the script to allow you to select multiple hxx files.
I don't see other offset and size fields so I have no other ideas.
  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 11:00 pm (3451)


Nice! Thanks.
  • Author
  • Localization

Mygoshi, posted Tue Feb 24, 2015 11:42 pm (3452)


Are there any other tools which would permit to fully extract the music?
  • Author
  • Localization

Droolie, posted Wed Feb 25, 2015 4:42 pm (3467)


I wrote some very complicated tools for a lot of the other versions of Rayman 3 (and Rayman Arena, which uses the same file system), you can find them here: https://mega.co.nz/#!SY1ARZ4D!nndgAEUcg ... FYk2ihdtoc
They're really messy scripts (I had little programming knowledge when I made that, so forgive me for that), but they work perfectly.

It basically uses a bat file to run a QuickBMS script that extracts all audio files without filenames. Meanwhile, the QuickBMS output, which is useful for applying the correct names, is printed and stored in a *.txt file. A Java program called RayAudio uses these *.txt files to link all elements of the hxd/hxg/hx2/hx3/hxx files together and apply the correct filenames.

I think I implemented the Java part for the Xbox version, but I never did the QuickBMS part, at least not for Rayman 3. There are only a few modifications necessary from the existing scripts though. :) I would do it myself for you but it doesn't really seem necessary as the audio is the same as the PS2 version's...
  • Author
  • Localization

Mygoshi, posted Wed Feb 25, 2015 5:33 pm (3471)


Not the same, the quality is better and some of the tracks aren't segmented
  • Author
  • Localization

Droolie, posted Wed Feb 25, 2015 6:08 pm (3472)


Mygoshi wrote:
Not the same, the quality is more good and some of the tracks aren't sequenced.

Both versions have equal quality (22kHz, PS2 even has a higher bitrate) and there are some tracks that aren't sequenced in the PS2 version as well...
In any case, if you're looking for quality then you should try the PS3 version. ;)
  • Author
  • Localization

Mygoshi, posted Mon Mar 02, 2015 8:12 pm (3581)


Is it normal your script gives me error on some other files though?
  • Author
  • Localization

aluigi, posted Mon Mar 02, 2015 8:30 pm (3586)


The script that I posted before worked with the samples I worked on.
I don't know what content they have, I just got an offset and size for extracting something.
  • Author
  • Localization

Mygoshi, posted Mon Mar 02, 2015 8:34 pm (3588)


Right, thanks for answering.
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.