ROM Hack DSiWare Problem

ummm

Well-Known Member
OP
Newcomer
Joined
Jan 10, 2020
Messages
69
Trophies
0
Age
43
XP
305
Country
Mexico
i have a dsiware called: 90´s pool
Do you remeber that game? i love the game´s soundtrack so i extracted the game soundtrack, but, that´s a problem.....
the sountrack is in file format that is: xm
I cant figure how to transform this to mp3, or extract the content of the xm music file
i dont know what to do and i really want this sweet soundtrack

Do you have any ideas? i really need help guys, i got this problem since 2 weeks ago and i dont know what to do.

Thanks for yours answers! i would really need help.

here is the soundtrack file:

Extract it and you will see the xm´s file
 

Attachments

  • 90´s pool sountrack.rar
    2.4 MB · Views: 140
Last edited by ummm,

zoogie

playing around in the end of life
Developer
Joined
Nov 30, 2014
Messages
8,560
Trophies
2
XP
15,000
Country
Micronesia, Federated States of
i have a dsiware called: 90´s pool
Do you remeber that game? i love the game´s soundtrack so i extracted the game soundtrack, but, that´s a problem.....
the sountrack is in file format that is: xm
I cant figure how to transform this to mp3, or extract the content of the xm music file
i dont know what to do and i really want this sweet soundtrack

Do you have any ideas? i really need help guys, i got this problem since 2 weeks ago and i dont know what to do.

Thanks for yours answers! i would really need help.

here is the soundtrack file:

Extract it and you will see the xm´s file
I tried several different xm players and all they do is play a silent 8 second loop.
Looking inside the binary, I do see a single .swav sample that is basically the entire theme song.
I was able to dump it with milky tracker as a .wav, but it was EXTREMELY dissonant (although still recognizable).
(edit: I did the same with the sound effect .xm ballhitball, and it actually sounded clean).

I'm thinking maybe this is an attempt at obfuscation by the dev? Or I'm just dumping/playing it wrong?

@FAST6191 is probably the guy you need to ask for this sort of thing. I give up :P
 
Last edited by zoogie,
  • Like
Reactions: Alexander1970

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
I have not played much with XM stuff. I saw the Extended Module: Milkytracker thing at the start as well so that does point towards it being some actual XM and not just a coincidence in extension choice. I do not have much in the way of module/tracker music players right now but all those I do also gave me a few seconds of silence.

That said I also tried a raw import (ADPCM worked better though was far from good) and the SWAV thing later makes me wonder if it was something else.

Eventually tracked down a nice description of the format
https://web.archive.org/web/2015050...or XM files version v1.04.ascii.txt.utf-8.txt (the document uses decimal offsets rather than hex which is slightly annoying but still has it).
The version number appears to be higher than the one there (both in the document and mentioned at the start) but if the text file does indeed come to us from 1994.
Proceeded to poke it with a stick (which is to say increased the track length to a minute or so) but still silent, grabbed a random xm from https://modarchive.org/index.php?request=view_by_moduleid&query=188233 just to test my setup and it played OK. Reading the document though there might be some quirks I am missing here as far as base tracks and whatever else.

Note that if the Module uses a totally empty pattern, this pattern
is *NOT* stored in the XM; in other words, you need to create an empty
pattern if the module needs one.

It looks like the pattern section is blank in this so might be provided by the game, where another might not even within the same game which might well explain zoogie's findings. Being a complete cowboy and copy-pasting it from the working track above did not a lot.

If a dev goes to the effort of making/buying in a tracker module library then chances are they used it in other games. https://www.mobygames.com/company/cinemax-s-r-o is them but I don't think any of those would have been popular enough (generally speaking if it is on DSiware then it is invisible to most people) to see other hackers poke around in them and note what went.

I should also say if this is to have it available to play back then there are other options.
I don't know if no$gba is up to the task these days (it was looking at DSi at one point) to play loop back but if you have a working setup of it then hopefully you can just grab it with an old school line in rip (as in stick an aux cable into the headphone socket and the other end into the line in of your computer).
 
  • Like
Reactions: zoogie

zoogie

playing around in the end of life
Developer
Joined
Nov 30, 2014
Messages
8,560
Trophies
2
XP
15,000
Country
Micronesia, Federated States of
...
I should also say if this is to have it available to play back then there are other options.
I don't know if no$gba is up to the task these days (it was looking at DSi at one point) to play loop back but if you have a working setup of it then hopefully you can just grab it with an old school line in rip (as in stick an aux cable into the headphone socket and the other end into the line in of your computer).
The game actually does run fine in no$gba, and in fact, sounded quite nice through my PC speakers.

Being as there is only 1 song in the game (and it plays at the title screen), the OP should probably just rip it from the PC's audio out while no$gba is running rather than fool around with arcane 25 year old tools.

Here's the link to the emulator, OP.
https://problemkaputt.de/gba.htm
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
More as a curio than anything else. If the game provides/generates the pattern at playtime would it be in a memory dump similar to how we dodge compression and encryption in other things? That or are there other non XM files in the music directory/generally around that might be the pattern if it is provided externally (think like when we see archives and a separate file to describe their contents, though here I would not be surprised at all to find it in the binary)?

I don't know if they would keep the whole XM in memory (it has 16 megs so maybe) but I could at least see the header section being there and possibly filled in or it provided nearby.
 
  • Like
Reactions: banjo2 and zoogie

zoogie

playing around in the end of life
Developer
Joined
Nov 30, 2014
Messages
8,560
Trophies
2
XP
15,000
Country
Micronesia, Federated States of
More as a curio than anything else. If the game provides/generates the pattern at playtime would it be in a memory dump similar to how we dodge compression and encryption in other things? That or are there other non XM files in the music directory/generally around that might be the pattern if it is provided externally (think like when we see archives and a separate file to describe their contents, though here I would not be surprised at all to find it in the binary)?

I don't know if they would keep the whole XM in memory (it has 16 megs so maybe) but I could at least see the header section being there and possibly filled in or it provided nearby.
Bingo, you were right. A search of the ramdump of the game yielded two hits at SWAV. Using the swav2wav utility, I got clean .wav rips of both songs (I was mistaken at there being only one).
 
  • Like
Reactions: banjo2

ummm

Well-Known Member
OP
Newcomer
Joined
Jan 10, 2020
Messages
69
Trophies
0
Age
43
XP
305
Country
Mexico
Bingo, you were right. A search of the ramdump of the game yielded two hits at SWAV. Using the swav2wav utility, I got clean .wav rips of both songs (I was mistaken at there being only one).

thanks for the answers, but i dont understand, what do i have to do to extract the music?
 
  • Like
Reactions: banjo2

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
Assuming you have not got a PM in the meantime then at least for the others playing along at home and future forum searchers.

What I suspect zoogie did was dump the memory after booting the game and getting to the title screen or main gameplay (even a savestate if it is not compressed will do here, however no$gba, and especially its debugger version, is the main thing to run DSi stuff and generally has a nice memory dump -- https://problemkaputt.de/gba.htm ).
With said dump in a hex editor if you text/ASCII search for SWAV then you will apparently get two hits for it (owing to the way a lot of modern code works it might vary between dumps, or indeed other songs/sounds in the game, so do the search). Grab them both (if you are being a good boy hacker then there should be a size indicator soon after the SWAV -- http://sites.google.com/site/kiwids/sdat.html#swav , if being a cowboy then select several megs after it so you know you have it all and the program should stop when it hits the end. If doing the good boy method you might have to flip the bytes to get the correct number).
Run them through the swav2wav program mentioned (can't see downloads on that link above but it is a common enough program, indeed the old google code page it comes from has such things https://code.google.com/archive/p/loveemu/downloads?page=3 ). I attached a version (including source) here because why not, hopefully we don't have any version weirdness happening where that does not work or something.
With that done you should have some nice wave files you can convert to something more practical or play with as you will.

This sort of technique is common enough when you can't either access the ROM (newer stuff is often encrypted and the keys might be some time off/hard to get but you might still be able to access the memory) or the file is compressed and you are unwilling or unable to decompress it. Works also when things are generated at runtime and not complete in the ROM.
 

Attachments

  • swav2wav-20060901.zip
    41.8 KB · Views: 100
  • Like
Reactions: Hoppy

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: Not a big fan of NES kid Icarus either... I know it was popular but I didn't care for it.