SNBK to DLS?

Discussion in 'NDS - ROM Hacking and Translations' started by MinusR, May 13, 2011.

May 13, 2011

SNBK to DLS? by MinusR at 10:39 PM (2,265 Views / 0 Likes) 8 replies

  1. MinusR
    OP

    Newcomer MinusR Member

    Joined:
    Dec 21, 2008
    Messages:
    32
    Country:
    United States
    So, is there any program besides VGMTrans that can convert SBNK to DLS? I'm trying to use it wil Monster Tale's sdat, but it keeps freeze when VGMTrans loads it. Any other SDAT works fine, Puyo Puyo, MegaMan Zero. Puyo Puyo's SDAT is bigger than Monster Tale.

    Actually, I think MT's SDAT has some type of encryption or is a new format. The sseq converted doesn't even work. It works, but doesn't. The midi comes out broken.
     
  2. andibad

    Member andibad Soon™

    Joined:
    Sep 14, 2009
    Messages:
    699
    Location:
    hospital
    Country:
    Indonesia
    not all game using sdat for music ...
     
  3. MinusR
    OP

    Newcomer MinusR Member

    Joined:
    Dec 21, 2008
    Messages:
    32
    Country:
    United States
    But it does have an SDAT. I ran it through NDSExtractor and it only spit out two midi files, the rest couldnn't be read.

    Here's the SDAT.
    http://www.mediafire.com/?ct1ulp8wsbscv2f

    Maybe someone could look at it. Because, looking through it at in a hex editor and comparing it to another SDAT, it has the same header.

    In fact, the only game I've come across that doesn't use SDAT is DisgaeaDS.
     
  4. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,745
    Country:
    United Kingdom
    I have neither the time or inclination at this point to do a full audit of the file but crystaltile2 seems to parse it- dodgy output of conversion tools is nothing new and this might just be an example of a bad one although ndssndext did falter which is unusual*.

    *I did a verbose output and kicked it to a text file which gave me the following sample (only 2 sequences converted- 0003 and 001A which I think corresponds to SEQ_GET_ABILITY and SEQ_NEW_PET_ABILITY )

    <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->TITLE : "SDATÿþ"
    CODEÂÂ: "@"
    Analyzing...done.
    SDATÿþ_@\sequence000.mid
    SSEQ convert error.
    SDATÿþ_@\sequence001.mid
    SSEQ convert error.
    SDATÿþ_@\sequence002.mid
    SSEQ convert error.
    SDATÿþ_@\sequence003.mid
    SDATÿþ_@\sequence004.mid
    SSEQ convert error.
    SDATÿþ_@\sequence005.mid
    SSEQ convert error.
    SDATÿþ_@\sequence006.mid
    SSEQ convert error.
    SDATÿþ_@\sequence007.mid
    SSEQ convert error.<!--c2--></div><!--ec2-->

    VGMtoolbox made an SMAP file as well.
    SMAP

    I guess then it might be a new/improperly implemented command in SSEQ those two files did not use which coupled with names and sizes I am going to call the others all actual music rather than those two which look to be (and play like) jingles at best.

    I did however manage to punch vgmtoolbox hard enough that it spat out some mini2sf files which foobar seems to be playing although I am far too lazy right now to source and test them against the game (it is an emulated format apparently and most other 2sf file packs I have heard are near 1:1 so I imagine it is pretty good).


    As for non SDAT there are a fair few these days
    Electroplankton (straight up wave files), N+ (PCM audio), TWEWY (and loads of other games using CRI middleware's stuff- adx/ahx), brothers in arms (not entirely sure- everything uses similar extensions and packing), zombie daisuki and Inazuma Eleven both share an odd format and there probably a few others to boot. Granted most of those are variations on PCM rather than anything resembling a tracker format.

    Either way very interesting- it looks like I could stand to return to fiddling with
     
  5. Gericom

    Member Gericom GBAtemp Advanced Fan

    Joined:
    Jun 30, 2011
    Messages:
    595
    Country:
    Netherlands
    You can use mkds course modifier. It can convert sbnk to dls.
     
  6. pasc

    Member pasc GBATemps official GBA Freak

    Joined:
    Sep 9, 2006
    Messages:
    2,572
    Location:
    Germany
    Country:
    Germany
    Since this thread is still open I got a question:

    How does one point all soundeffects in a game to an empty adress e.g. effectively turning them off.

    I remember FAST6191 posting something like that a while ago, but can for the life of me not find how.

    I think it might have involved a hex editor.
     
  7. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,745
    Country:
    United Kingdom
    On the DLS matter we also have a new tool- http://gbatemp.net/threads/nitro2dls-new-tool-for-making-dls-files-from-sdat.340330/ though I have yet to actually investigate what is actually causing the trouble here for this game.

    SFX.... ehh as it can very much depend upon the game.
    Many games just use SSEQ (pokemon going quite far in it and using it for almost everything if you want an example of the extremes) - these you can take out with the standard repoint out of the SDAT file or one of a few other methods (replace SSEQ with silence, drop SSEQ volume, kill the bank and on and on). For the repointing I have a reasonably worked version in the hacking docs but http://gbatemp.net/threads/audio-swapping-question.122534/ might be the thread you were thinking of.
    Other games will use a large SWAR file (I was using a Castlevania game as part of my hacking docs and it had some 1600 files in there, I also ended up looking at NSMB another time and it was equally fun). Trouble with these is they are not named so you will have to search in them to find the files you want, being wave samples it is not so bad to make new ones for. I believe tinke might even be able to import things here but I have not checked that.
    Some games will use straight STRM for some sound effects too. STRM are not that bad to edit either.
     
  8. pasc

    Member pasc GBATemps official GBA Freak

    Joined:
    Sep 9, 2006
    Messages:
    2,572
    Location:
    Germany
    Country:
    Germany
    If you have any idea of the soundformat it uses, I want to know this for the game "Nanostray 2"

    I'd like to disable all SFX Sounds in that one.
     
  9. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,745
    Country:
    United Kingdom
    It appears to use SDAT and has some files in the audio folder. They do not have the sdat extension (rather dsxe) and they do not play nicely with vgmtrans, crystaltile2 or tinke.

    Rather nicely it seems it has split the FX and the music files from each other and named them accordingly. The FX is one long bank of 170 sfx files (I listened to the lot) though VGMtrans seems to miss the STRM stuff that the nice developer left header file has mentioned (not to mention just extracting the files only gives you a 2.25 meg file compared to the 5.18 one it came from).

    The obvious thing of replacing the file with a bunch of 00 did not get far, I could probably fiddle around and see how much of the header it needs or not but that is too much like hard work (I tested a few things anyway and it errored out shortly before the title screen). Fortunately we are playing with SSAR today so volume values are back in play- volume is contained within the SSAR itself and within the data section of the SSAR ( http://kiwi.ds.googlepages.com/sdat.html ).

    If you want to be lazy grab your hex editor and do a find and replace for 00007F60 with 00000060 . As it happens 00007F60 only appears in the offending SDAT in the offending sections. I tested it in desmume and you should be good. The 7f in this case corresponds to 127 decimal or the highest supported volume, depending upon how you want to play it you could even mix and match SFX to be muted or change volumes relative to the rest.

    If you want to be really lazy then here is a patch for the North American release.
    http://filetrip.net/nds-downloads/rom-hacks/download-nanostray-2-sfx-muting-patch-10-f31556.html
    xdelta 3.0 format- http://code.google.com/p/xdelta/
    Command to apply patch will read something like
    "xdelta3-3.0.6-win32.exe -d -s "2119 - Nanostray 2 (US).nds" nanostray2audio.delta nanostrayaudiohack.nds"

    All in all though I have certainly released patches with messier underlying logic I still reckon it could stand to be a bit more elegant and if I did it might help the framerate a touch (assuming it is the CPU that bottlenecks it), that said if it crashes I will be shocked as it is using functionality baked into the game itself and it should not trouble any other hacks or mods you might want to use though do apply this one first if you are going to play with other mods. I might be able to turn it into a cheat format but I have really tried it before for files that are not the actual binary, a bit of data in memory from the firmware or an overlay.
    Again if you want rather than replacing all the SFX you could go through and disable say the voiceovers (they got on my nerves and I only tested the thing)- they should still be the same order as they are in the "fx.dsxe.h" file though do note that file also includes a few STRM files so start counting from the first "FX_" file.
     

Share This Page