Music replacement on Crazy Taxi XBLA
2011-01-08 01:01The Crazy Taxi re-release on Playstation Network and Xbox Live Arcade is pretty faithful to the arcade and Dreamcast versions, but it’s missing the original soundtrack! That may seem a petty complaint, but I’m not the only one who misses the atmosphere of Bad Religion and Offspring:
But one very important ingredient is missing that kills the nostalgia – which is really the only reason to spend any money on this outdated download. SEGA didn’t have any problems overcharging for this remake, but it didn’t want to spend any money to re-up the licensing agreement for the soundtrack. (IGN)
It was hard to play the Xbox Live Arcade version without hearing the Offspring’s familiar “Yeah yeah yeah yeah!” blasting out of the speakers. The Offspring, along with Bad Religion, provided the game’s soundtrack in the original release. These songs, along with the sound of that announcer, went a long way toward creating the game’s mood. In the new version, they have been replaced by completely forgettable pop-punk tracks, and it’s a downgrade. (Ars)
Luckily for us, we can swap the music back to something more interesting with only a few tools:
- afs_extract
- wav2adx or adxencd
- wxPirs
- Le Fluffie (Optional)
- A homebrew-enabled Xbox 360
Use existing music files
I wanted some songs from Crazy Taxi 1 and 2. Dreamcast owners may have trouble getting files off GD-ROM unless you have a Dreamcast serial cable or make an SD dump:
…or you could just download a copy!
No matter how you obtain it, SONG01.AFS
on the Crazy Taxi disc contains the tracks we’re after.
Split it into individual music tracks with afs_extract
:
- SONG01.AFS - 9
- SONG01_00.adx 00080000 0004f000
- SONG01_01.adx 000cf000 001ceeee
- SONG01_02.adx 0029e000 000fea42
- SONG01_03.adx 0039d000 00313db2
- SONG01_04.adx 006b1000 004a8e1e
- SONG01_05.adx 00b5a000 006577e6
- SONG01_06.adx 011b1800 00647742
- SONG01_07.adx 017f9000 004f57f2
- SONG01_08.adx 01cee800 000ff800
The resulting files are:
Filename | Identity |
---|---|
SONG01_00.adx |
Menu loop |
SONG01_01.adx |
Menu Loop long |
SONG01_02.adx |
Hear It intro (Driver select) |
SONG01_03.adx |
Bad Religion - Inner Logic (Credits) |
SONG01_04.adx |
Bad Religion - Ten in 2010 |
SONG01_05.adx |
Bad Religion - Them and Us |
SONG01_06.adx |
The Offspring - Way Down the Line |
SONG01_07.adx |
The Offspring - All I Want |
SONG01_08.adx |
Driver select again |
Crazy Taxi 2 also has a SONG01.AFS
, but it only contains the menu loop and driver select loop. The rest of the songs are individual ADX files on-disc:
Filename | Identity |
---|---|
SONG01_00.adx |
Menu loop |
SONG01_01.adx |
Methods of Mayhem - Who The Hell Cares (Driver select) |
SONG3.adx |
The Offspring - No Brakes |
SONG4.adx |
The Offspring - Walla Walla |
SONG05_01.adx |
The Offspring - Come Out Swinging Intro |
SONG05_02.adx |
The Offspring - Come Out Swinging |
SONG6.adx |
The Offspring - One Fine Day |
SONG7.adx |
Methods of Mayhem - Crash |
SONG7US.adx |
Methods of Mayhem - Crash (A cappella) |
Creating new music files
Wav2adx and adxencd can create ADX files out of standard PCM wav audio. Wav2adx choked on the wav files created by flac -d
, but adxencd works fine in WINE:
for i in *.flac; do flac -d “$i”;done for i in *.wav; do wine /home/nicole/Desktop/adxencd.exe “$i”;done
- |||||||||||| ADX Audio decompression tool Ver.4.70 ||||||||||
- Software Audio Encoder for "CRI ADX for Dreamcast" 1999-11-30
- Copyright(c) 1996-1999 CRI
-
- Input sound data file: '02 - Nitro (Youth Energy).wav'
- ADX Compressed data file : '02 - Nitro (Youth Energy).adx'
- Sampling frequency : 44100 Hz = Input sound data
- No. of channels : 2
- Input audio sample : 6480936 smpl = 146.0 sec <44100 Hz>
- ADX output sample : 6480936 smpl(Blk:6480960 smpl) = 146.0 sec <44100 Hz>
- ....................
- |||||||||||| ADX Audio decompression tool Ver.4.70 ||||||||||
- Software Audio Encoder for "CRI ADX for Dreamcast" 1999-11-30
- Copyright(c) 1996-1999 CRI
-
- Input sound data file: '05 - Give You Nothing.wav'
- ADX Compressed data file : '05 - Give You Nothing.adx'
- Sampling frequency : 44100 Hz = Input sound data
- No. of channels : 2
- Input audio sample : 5390784 smpl = 122.0 sec <44100 Hz>
- ADX output sample : 5390784 smpl(Blk:5390784 smpl) = 122.0 sec <44100 Hz>
- ....................
- |||||||||||| ADX Audio decompression tool Ver.4.70 ||||||||||
- Software Audio Encoder for "CRI ADX for Dreamcast" 1999-11-30
- Copyright(c) 1996-1999 CRI
-
- Input sound data file: '06 - Something to Believe In.wav'
- ADX Compressed data file : '06 - Something to Believe In.adx'
- Sampling frequency : 44100 Hz = Input sound data
- No. of channels : 2
- Input audio sample : 8714160 smpl = 197.0 sec <44100 Hz>
- ADX output sample : 8714160 smpl(Blk:8714176 smpl) = 197.0 sec <44100 Hz>
- ....................
- |||||||||||| ADX Audio decompression tool Ver.4.70 ||||||||||
- Software Audio Encoder for "CRI ADX for Dreamcast" 1999-11-30
- Copyright(c) 1996-1999 CRI
-
- Input sound data file: '09 - Suffer.wav'
- ADX Compressed data file : '09 - Suffer.adx'
- Sampling frequency : 44100 Hz = Input sound data
- No. of channels : 2
- Input audio sample : 4743984 smpl = 107.0 sec <44100 Hz>
- ADX output sample : 4743984 smpl(Blk:4744000 smpl) = 107.0 sec <44100 Hz>
- ....................
- |||||||||||| ADX Audio decompression tool Ver.4.70 ||||||||||
- Software Audio Encoder for "CRI ADX for Dreamcast" 1999-11-30
- Copyright(c) 1996-1999 CRI
-
- Input sound data file: '12 - So Alone.wav'
- ADX Compressed data file : '12 - So Alone.adx'
- Sampling frequency : 44100 Hz = Input sound data
- No. of channels : 2
- Input audio sample : 3407460 smpl = 77.0 sec <44100 Hz>
- ADX output sample : 3407460 smpl(Blk:3407488 smpl) = 77.0 sec <44100 Hz>
- ....................
- |||
- ||||||||| ADX Audio decompression tool Ver.4.70 ||||||||||
- Software Audio Encoder for "CRI ADX for Dreamcast" 1999-11-30
- Copyright(c) 1996-1999 CRI
-
- Input sound data file: '13 - Do What You Want.wav'
- ADX Compressed data file : '13 - Do What You Want.adx'
- Sampling frequency : 44100 Hz = Input sound data
- No. of channels : 2
- Input audio sample : 2960580 smpl = 67.0 sec <44100 Hz>
- ADX output sample : 2960580 smpl(Blk:2960608 smpl) = 67.0 sec <44100 Hz>
- ....................
Replacing the files
Use wxPirs
(runs in Mono!) to extract the Crazy Taxi package, demo or paid.
The package is Content/0000000000000000/58410A34/000D0000/8CCAFCF0BCA37A5854932556831B08F3542CC94358
on the Xbox hard drive.
After that, it’s just a matter of copying the replacement files to SoundData/music_adx
with the filename of an existing track.
- cd SoundData/music_adx
- cp '/home/nicole/Desktop/CT1/SONG01_00.adx' name_loop.adx
- cp '/home/nicole/Desktop/CT1/SONG01_04.adx' Escape_Artist.adx
- cp '/home/nicole/Desktop/CT1/SONG01_05.adx' Flinch.adx
- cp '/home/nicole/Desktop/CT1/SONG01_06.adx' Get_Out.adx
- cp '/home/nicole/Desktop/CT1/SONG01_07.adx' Jump_Bink.adx
- cp '/home/nicole/Desktop/CT2/SONG3.ADX' Orange_Wednesday.adx
- cp '/home/nicole/Desktop/CT2/SONG4.ADX' Radiator.adx
- cp '/home/nicole/Desktop/Convert/02 - Nitro (Youth Energy).adx' Radical_Sabbatical.adx
- cp '/home/nicole/Desktop/Convert/05 - Give You Nothing.adx' Ragdoll.adx
- cp '/home/nicole/Desktop/Convert/06 - Something to Believe In.adx' Spy_Chaser.adx
- cp '/home/nicole/Desktop/Convert/09 - Suffer.adx' Taking_It_Back.adx
- cp '/home/nicole/Desktop/Convert/12 - So Alone.adx' The_Chase.adx
- cp '/home/nicole/Desktop/Convert/13 - Do What You Want.adx' Your_Mouth_Is_A_Guillotine.adx
name_loop.adx
is played during the main menu and mode select, and The_Chase.adx
in played during driver select in addition to in-game.
Finish up
You can use Le Fluffie, the free alternative to XLAST from the XDK, to make a replacement LIVE package of your modified game. Or, you can just execute default.xex
:
YEAH YEAH YEAH YEAH YEAH!