Recently I worked on a small tool just for fun, it's pretty simple but it was an idea I had lying around for a while. Basically what this does is just save all the music inserted in any hack as a collection of SPC files. It only works with hacks that inserted music with AddmusicK, but it should work with all versions (it may fail if a hack has some editing in the AMK source, for example changing the default ROM addresses where the data is stored). Thanks to Fyre, Mega, Abdu and lightaligns for testing it.
You can download it HERE. The readme contains some useful info and customization options.
You can also check out the source here (if you want this on Linux or Mac Os, you can download the code and build it with "make" and theoretically it should just work).
This is so, so cool, Kevin - it's one of those "wait how did we not have this before" moments, but I'm really excited to be able to grab these files.
tl;dr: Kevin posted a 10/10 dumper on Valentine's Day, please clapI'm not a doctor.
Trans rights.
Neat. Can be helpful to finding clean rips for videos and such.
Pst: I discovered the GitHub repo a few days before the reveal. ;)
Originally posted by Kevin
(it may fail if a hack has some editing in the AMK source, for example changing the default ROM addresses where the data is stored).
As long as it works even if you moved the entry/exit points of the routine at $0E8000 -- I did that in my hack to add a WAI -- I'm set
This little tool is so neat. Will help me with the job of asking for help identifying songs instead of hoping the emulator rips a good spc lol
Great job!!
Please check out BOWSIE!
i shouldn't have ever been calling it love.
Now you got me thinking of other sound drivers where an entire soundtrack can theoretically be extracted from, given that you just came up with some automation for AddmusicK. I'd have to check the changelog to the SNES side specifically... and you're lucky the data version has never been bumped up before, as I got some things that would result in that happening... and thus, breaking your soundtrack extractor.
DBOOT and Sculptured Software are coming to my mind when it comes to this stuff: for Sculptured Software, the majority of the later stuff (except for Doom) have a predefined structure that I have noticed.
DBOOT has a data structure that is also relatively consistent across almost every game that I know of, with Mahjong Gokuu Tenjiku being a major exception. It's also more nicely templated as far as 65816 code goes, though you'll still have to track possible differences.
For Sculptured Software, I've recorded the first three bytes (and their ROM location) containing three different counts: bank, music, SFX. For DBOOT, I recorded all of the bank IDs, which have three different sub-collections, that being the samples/instruments, SFX and music collections.
this is such a useful tool, thanks for making this Kevin!
shoutouts to makefile, and Kevin delivering once more.
Originally posted by BD_PhDX
This is so, so cool, Kevin - it's one of those "wait how did we not have this before" moments, but I'm really excited to be able to grab these files.
tl;dr: Kevin posted a 10/10 dumper on Valentine's Day, please clap
Thanks! To be honest I forgot it was Valentine's day... Lol
Originally posted by Green
Neat. Can be helpful to finding clean rips for videos and such.
Pst: I discovered the GitHub repo a few days before the reveal. ;)
Nice job detective
Originally posted by Erik
Originally posted by Kevin
(it may fail if a hack has some editing in the AMK source, for example changing the default ROM addresses where the data is stored).
As long as it works even if you moved the entry/exit points of the routine at $0E8000 -- I did that in my hack to add a WAI -- I'm set
This little tool is so neat. Will help me with the job of asking for help identifying songs instead of hoping the emulator rips a good spc lol
Great job!!
I'm not sure what you mean but if the AMK header in rom ("@AMK" + pointers) is still at $0E8000 and the SPC engine still at $0F8000 it will work. I wanted to add a fallback check by checking the JML address where AMK usually hijacks but I was lazy, maybe for a 1.1 if needed.
Originally posted by KungFuFurby
Now you got me thinking of other sound drivers where an entire soundtrack can theoretically be extracted from, given that you just came up with some automation for AddmusicK. I'd have to check the changelog to the SNES side specifically... and you're lucky the data version has never been bumped up before, as I got some things that would result in that happening... and thus, breaking your soundtrack extractor.
Yeah I noticed the header data never changed, which is nice. I guess if you were to change it for future versions I'll have to update it to adapt to it, but no biggie.
Nice!! This is a good idea and a well done execution! It will be helpful for a lot of ppl. I tried it on a rom and it works perfectly! gg
This tool will help people immensely. Finally, people won't need to use videos to ask "what song is this that plays in 0:50 in this specific hack?". Once again, Kevin delivering amazing stuff to the community. Well done!
Originally posted by Anorakun
Finally, people won't need to use videos to ask "what song is this that plays in 0:50 in this specific hack?". Once again, Kevin delivering amazing stuff to the community.
Well people will probably still do that anyways lol
Tried it on one of my hacks as a test and, wow. This works flawlessly! It even detects songs that are unused in the game, but still inserted via AddMusicK, which is mindblowing to me.
Maybe this will open the door for creepypasta hacks to hide hidden codes inside of songs that you can't hear in the game... we'll see.
Originally posted by Segment1Zone2
Tried it on one of my hacks as a test and, wow. This works flawlessly! It even detects songs that are unused in the game, but still inserted via AddMusicK, which is mindblowing to me.
Maybe this will open the door for creepypasta hacks to hide hidden codes inside of songs that you can't hear in the game... we'll see.
Nice! To be honest it's much easier to just dump everything than to check what is used and what is unused since the music is just stored in a bunch of tables at the end of the day.
I'll add to that... for me, hunting down unused music is not as simple as just dumping it either. It also involves checking the code itself to determine what is actually used, and in these cases it takes 65816 ASM lookups... and storage lookups.