pouët.net

new music ripper for running demos,cracktros,images,gamez... memory and file scanning

category: general [glöplog]
 
I've been working on a music ripper inside FXChainPlayer for a while. I wanted something that goes a bit further than throwing a file at a signature scanner and hoping there is a MOD somewhere inside..
The ripper scans a running process and looks for actual music structures in readable memory. Modules, SID, console formats, MIDI, embedded audio, packed Amiga stuff etc. It uses the format itself to work out where a tune ends instead of carving a fixed chunk around a header. Packed formats can be unpacked on the way out. If the prod loads its music later, scan again and unchanged memory is skipped... so you mostly look at whatever appeared since the last pass.
This also works nicely with emulators. Run the prod/game in your emulator, point the ripper at the process and see what ends up in memory.
The other side is the file ripper. Files, whole directories, archives, crunched data, disk images, game packages... it recursively opens what it knows and keeps digging. So a packed module inside an archive inside a disk image is still reachable. It also understands quite a few game/resource containers instead of treating everything as one big binary blob.
For Amiga/C64/Spectrum/Atari ST stuff it can go further and actually boot/start the image using emulation inside the ripper. ADF, prg/p00/t64/d64, sna/z80/tap/tzx, ST/MSA/DIM etc. The machine runs, the ripper watches what appears in memory and tunes are collected as they get loaded. That also means a cracktro tune and the game tune afterwards can become two separate finds, or several tunes from a musicdisk.
Multi-file formats are kept together too... TFMX + samples, miniPSF + library, MDX + sample bank and similar cases.
And if there really is no module/file to recover because the sound is generated at runtime or some completely custom replay is used, recording is still there as the last fallback.
Still plenty of formats and edge cases to add, so nasty test material is very welcome :)
DL Player with Ripper: https://akustikrausch.itch.io/fxchainplayer

PS: there is also StringRipper, built around the same process/file scanning backend. Instead of music it digs URLs and regex matches out of running processes/files, including UTF8/UTF16, escaped strings, base64/hex etc: https://github.com/akustikrausch/StringRipper/

login