NDS Sound Ripping - Fails

Discussion in 'NDS - ROM Hacking and Translations' started by Rackover, Jun 11, 2017.

  1. Rackover
    OP

    Rackover Newbie

    Newcomer
    3
    3
    Sep 7, 2016
    France
    Hi,

    I'm looking for a way to get the music from a NDS rom I downloaded. Yes, I do own the original game.
    The problem is that, after following some tutorials to extract the sound files (using Tinke, for example), all I get is a SoundData.ROM file that I cant open nor extract.

    With some other game, doing the same manipulation I get some sound_data.sdat (which is what I'm supposed to get for any game) but with THIS game in particular (The Urbz : DS version), I get a SoundData.rom.

    What can I do with it ? How can I extract any further ? I couldn't find anything to help me.

    Thanks
     
  2. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,724
    9,594
    Nov 21, 2005
    United Kingdom
    I vaguely recall looking at this game before but not what I might have done as part of it. I also appear to have not noted anything in http://gbatemp.net/threads/the-various-audio-formats-of-the-ds.305167/

    I will have to look at the game to see what it is doing -- not all games use the SDAT format. In this case I had a few minutes but I only had a netbook so no option for a full workup.
    Game appears to list two files within the file system, one being the sound one and the other being another file. Games with everything bundled into one are not unknown at all.

    The sound file does not appear to be a common format. Starts with 28 which I am not sure about (does not appear to be an offset nor a count of the files)
    After that is a list of increasing numbers, or increasing after you do a byte flip like most DS formats need, probably some kind of pointer. They might end at 497C but it also might be earlier.

    One of two things tends to happen with custom formats like this
    1) It is really close to the hardware (the DS supports various flavours of PCM and ADPCM wave type audio)
    2) It is a known format (see the link on the various formats)

    It could be a complex custom format that is not close to the hardware but the DS lacks processing power, has a reasonable amount of storage and the audio quality is not so hot so it does not pay to spend much time making your own format.

    If it is really close to the hardware then you can

    I don't see any file names and I don't see any size values (you don't need it if you have locations as you just take one from the next). Likewise I don't see any magic strings.

    I force imported the whole file minus the header (I deleted everything before 497C) into audacity (not sure what it would be in French but in English File -> import -> raw data). In among the screeching there were what sounded to my ears like the sound effects for a game. You will have to figure out the settings used (ADPCM and a 12000Hz sample rate was possible a bit slow for some, bit fast for others, screeching in other cases, I tried again with some kind of plain PCM and some other things popped up).
     
  3. Rackover
    OP

    Rackover Newbie

    Newcomer
    3
    3
    Sep 7, 2016
    France
    Okay so I imported the file as a Raw under audacity and I can, like you said, recognize some sound : but they are all glitched up. What I know for sure is that the soundtrack of this game is made with tracker-like files (a track with the notes to play + an instrument bank to play the notes) and what I recognize in that "raw" file are the single notes that compose the musics, all put end-to-end : maybe this is the instrument bank ?
    I need to find the partition files then to assemble them with the sound bank so I can assemble full tracker files. Do you think this is possible ?
     
  4. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,724
    9,594
    Nov 21, 2005
    United Kingdom
    Hmm, rarely see tracker/sequenced stuff fully custom like this.

    Possible to reverse engineer. Sure.
    Assuming it is not a common format (I did not properly check to see if any midi, mod, xm, s3m... strings were in there) then probably only a 5 minute job for the original programmer (or someone with their notes). Everybody else will have to do all sorts of things. It is not an amazingly hard project where you have to do all sorts of crazy maths and fight to get it all in and working, however it is will be a repetitive and monotonous process for most.
    If you only want to rip them them it would be better to look at an emulator and see if there is a sound test or anything there, or just rip it from in the game as it is playing. Obviously you will then be left with a wave file rather than a tracker file but hopefully you can get done with that whatever you need from it.
    If the game also has sound effects going on and you can't lose them then hopefully they are restricted to certain channels and you can just disable those in desmume or something. If you wanted to figure out what sound files do what and mute them to help with things, or maybe play songs that are hard to get in the game in place of common songs that occur all the time then you don't need to fully understand the format, just enough of it to get one thing to play when you want another.

    Also I heard a lot of voice effects in mine but yes it would presumably have an instrument bank in there as well -- the DS does not have any banks built into the hardware, firmware or anything like that other than noise options for each channel ( http://problemkaputt.de/gbatek.htm#dssound ).

    I am not great with audio formats but I can help and there are some others around that can to, if you want another place to ask then https://www.hcs64.com/mboard/forum.php have some people that are good with game audio.
     
  5. Rackover
    OP

    Rackover Newbie

    Newcomer
    3
    3
    Sep 7, 2016
    France
    Okay, i'll explain the problem in details.

    The Urbz is a game that was planned for GBA. For this game, a music composer (Ian Stocker) was hired : and he did a great job. But then the DS came out, and EA decided to port the same game to the nintendo DS. So the game is almost identical (it's longer, less buggier, prettier and uses the second screen for the HUD) but the musics are...different. While the partitions stay the same, the instruments are not : DS's instruments are of better quality, and I enjoy the DS soundtrack a lot more than the GBA's one.

    Problem is, the GBA version is by far the most known and I can't find DS soundtrack of the game online. Plus, Ian Stocker (himself!) uploaded the whole soundtrack of the game, every song in a FLAC lossless audio format, perfect : but these are the GBA instruments and not the DS ones! Not so long ago, Ian Stocker uploaded a video ( ) showing that the soundtrack of the game is made of sequenced files. I asked if he could giveaway the DS version of the soundtrack too, but told me that he couldnt.

    Because the game is very long, and has a lot of tracks, going through the whole game with SFX off is not an option. What I need to is to rip these tracker files off the DS ROM, extract the DS-version-of-the-game-specific-instruments to generate the whole soundtrack, NDS-style (instead of GBA).

    Do you have anything in mind then ? I'm gonna try and go to HCS64 too to see if I can find help.
     
  6. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,724
    9,594
    Nov 21, 2005
    United Kingdom
    Hmm, if it was made in impulse tracker/it format there then it could still be that in the game. We have had games with straight up mod before, including on the GBA. On the other hand many of the GBA and DS music starts out as straight up midi so it could have been converted. I did run a strings search earlier and came back with nothing, had another search having looked at https://github.com/schismtracker/schismtracker/wiki/ITTECH.TXT and similarly got nothing much. I would not be surprised in the slightest to see it heavily influence the resulting format though.

    Equally you don't have to go through the whole game. You can sometimes get away with editing it so it plays one file instead of another, hopefully it does not have multiple sample banks or if there are multiple banks (the SDAT format does have it) it is easy enough to change those too.

    I took another look at the file header section too.
    At 4114 it looks like the locations end (the value there is very close to the end of the file). There is also a part right at the start that says 4114 as well, and another that says 497c which is where that new section of counting up numbers ends.
    The section after that also counts up at various amounts, if the first part is one type of audio it might be another type, or the location of a data table.