My favorite Grand Theft Auto game to this date is still the Vice City episode. One of the coolest things in the game is its awesome 80’s soundtrack and the hilarious Radio Station DJ parodies.
We can easily find the Radio Stations and soundtracks of the game on YouTube, though sometimes it is handy to have them in your local storage or sometimes you are cut-off from the Internet but would still enjoy an 80’s throwback.
Recently, I had some spare time and decided to do a quick research to figure out if I could extract the songs from
my local copy of the game. It turns out that each Radio Station is stored entirely inside an ADF file.
These ADF files happen to be MP3 files that had every byte XORed
with the decimal constant 34
.
With that knowledge acquired, in a couple hours I coded this simple C++ command line tool
that reads an ADF from disk and produces a playable MP3 from it. I’ve included a Unix makefile in the repository above,
as well as a Windows pre-built executable in the bin/
folder.
This tool can be used from the command prompt as such:
$ ./adf2mp3 flash.adf
Looks for the file flash.adf
in the current directory and writes a file named flash.mp3
to the current
directory as its output. You can also provide an explicit output filename as the last parameter:
$ ./adf2mp3 flash.adf flash_fm_radio.mp3
To print basic help and tool info, run:
$ ./adf2mp3 --help
The application source code is released as Public Domain.
Everything is contained in a single source file: adf2mp3.cpp
.
ADF files with the Radio Stations can be found in the directory:
{INSTALL_PATH}/Rockstar Games/Grand Theft Auto Vice City/audio
of your local copy of the game (for the Steam version of the game, at least).