Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.
Zero Tolerance for Disrespect

Spider-Man 2 GC audio replacement

Featured Replies

Hey everyone. I'm a rookie modder trying to replace music in Spider-Man 2 GameCube (STREAMS_MISC_EN.WBK) with a custom track. My goal is to eventually replace the full soundtrack with Danny Elfman's Spider-Man 2 score. I'm not an audio format expert, I've been learning as I go and hit a wall I can't get past alone.

vgmstream reads the file correctly. The target stream (FLYTHROUGH, subsong 348) is stereo, 48000Hz, Nintendo DSP 4-bit ADPCM, interleave 0x8000. The file uses a proprietary Treyarch container called WAVEBK11 with an entry table at 0x100.

I can inject audio at the correct offset (0x357B960) with the correct interleave (0x8000) the injection itself works, I can confirm bytes are written correctly. I encoded it with VGAudio - I also tried Jackoalan's Audacity fork, but it exports with RS03 interleave (0x8F00) which is designed for Metroid Prime 2 and doesn't match this game's 0x8000. All produce the same result: persistent popping and crackling on transients, worse on drums and sibilants.

The key test that stumped me was decoding the original track with vgmstream, re-encoding it with VGAudio, and injecting it back and finding out it produces the same artifacts. So it's not my audio source.

The DSP header region before the audio data (0x357B880) is filled with 0xFF, not valid DSP headers. I don't know where the engine reads the coefficients from, or if that's even the problem. I genuinely don't know what's causing the artifacts. Has anyone worked with WAVEBK11 before, or has any idea what I'm missing?

There are two files in the zip: the original unmodified WBK and a modified version with Danny Elfman's Main Titles injected into the FLYTHROUGH (intro) istream.
https://gofile.io/d/CJjCRw (uploading the zip directly threw me an error, sorry)

Happy to run any tests, provide more offsets/hex dumps, try different encoders/settings, or share additional samples if needed, just let me know what would help!

Thanks in advance! 🙂 

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.