It has been almost 18 months since my last entry (wow!), talk about few updates :)
I have been quite busy with work (switched employers about a year ago) and have been extremely busy between work, creating some own private tools and programs and traveling back and forth between Maastricht (where my family and friends live) and Leiden (where i currently live).
But, let's get back on topic.
I recently bought Settlers VI: Rise of an Empire. In this game, there is a character you can play (one of many) which has a special power that I just love: he can play music and songs for villagers to make them happy. I loved these songs so much that I began to search the net for a download of these tracks (no luck) or a tool which could rip them from the game archives. During my search, I ended up at
XeNTaX. On their
WiKi and
Forum I found some information that proved to be of great value.
On their
WiKi, I had found the
archive specification to the game, and on
this forum thread I began discussing it with a fellow
XeNTaX member.
After some talking, he explained that files like MP3's (the files I was after) are often stored uncompressed within the archive, and since the exact format wasn't known yet, this might be a good way in to get the files I needed.
In the past, I'd written an ID3 v1.* editor, so I knew how to recognize files tagged with those tags. This didn't work, since there weren't any files with ID3 v1.* tags, just mp3's without any tags or with ID3 v2.* tags (which are more complex to implement and less easy to go on then the actual mp3 frames themselves or the ID3 v1.* tags).
After a lot of fooling around and getting nowhere, I decided to look up the mp3 format specs and found
this image explaining the format and
this great CodeProject entry actually implementing it.
After finaly implementing a working version of the mp3 Frame format, I began to write a detection tool. After some tweaking, I was finaly able to extract over a thousand mp3's from the game archive (which as far as I've tested, all work :)). The code isn't perfect yet, but I'll keep working on it.
This brings me to my tool... (Hang in there, getting to the point now :))
Using my work-in-progress mp3 detection tool I was able to locate and extract the mp3's i was looking for. Now I wanted to share this with other people who have the game and might like these songs.
To do so, I wrote a tool in which you can specify a source file (a game archive for example) and positions within that file you want to dump and which filename you want to give the dump.
I also created a small script format & custom file extension (*.nde, Nkcss Data Extractor script) which get's registered with the applications setup project. Within this script is the specified source filename (you have to browse for the path) and the sectors you'd want to extract to get the mp3's.
I have uploaded the tool
here, but you'd might have to register on the forum to download it. For now, this will be the only source (I seem to have misplaced my FTP account details for this site :P).
Hope you like it, if so; be sure to leave a message on the forum thread.
Sincerely,
Nick Kusters.