Sound Hacking/Game Boy

From vgmrips

Simple Triggers

Game Developer Music Trigger + Comments
Action Man: Search for Base X Natsume maincpu.b@CF30 = 0xXX

01 = stop sound, 03~19 = music

Alien vs. Predator: The Last of His Clan ASK Kodansha maincpu.b@C786 = 0xXX

08 = stop sound, 01~07 = music

Aguri Suzuki no F-1 Super Driving Pixel maincpu.b@CFE0 = 0xXX

0A = stop sound, 01~09 = music

Chiki Chiki Machine Mou Race Atlus maincpu.b@DE80=0x01; maincpu.b@DE81=0xXX

00 = stop sound, 01~0A, 0C = music

Cosmo Tank Atlus maincpu.b@DF80=0x01; maincpu.b@DF81=0xXX

00 = stop sound, 01~06, 20, 22, 23 = music

Croc 2 Natsume maincpu.b@FFA0 = 0xXX

01 = stop sound, 03~16 = music

Dragon Warrior I & II TOSE maincpu.b@C8A5 = 0xXX

00 = stop sound, 06, 09, 0B, 0D, 0F, 11, 14, 16, 19, 1B, 1D, 20, 23, 27, 2A, 44, 79, 7C, 7F, 82, 85, 88, 8B, 8E, 91, 94, 97, 9A, 9E, A1, A4, A8, AB, AE, B1, B6, B8, BA, BC, C1, C6, C9, CF, D1, D4, E5, E8, EB, EE, F1 = music

DuckTales Capcom maincpu.b@FFA9 = 0xXX

4C = stop sound, 21, 41~4B = music

DuckTales 2 Make Software maincpu.b@FF8F = 0xXX

00 = stop sound, 01~15 = music

Joe & Mac Motivetime maincpu.b@FF81 = 0xXX

00~06 = music

Mighty Morphin Power Rangers Pixel, Tom Create maincpu.b@DE00 = 0xXX

00 = stop sound, 01~0B = music

Mighty Morphin Power Rangers: The Movie Tom Create maincpu.b@DEE0 = 0xXX

12 = stop sound, 01~10 = music

Power Rangers: Lightspeed Rescue Natsume maincpu.b@FFA0 = 0xXX

01 = stop sound, 03~14 = music

Power Rangers: Time Force Natsume maincpu.b@C130 = 0xXX

01 = stop sound, 03~23 = music

Tecmo Bowl Sculptured Software maincpu.b@DB2D = 0xXX

A6 = stop sound, 80~94 = music

The Smurfs Bit Managers w@0xD95A = 0x4000+3*id

01 = stop sound, 08~19 = music

Twin Athena maincpu.b@D101 = 0xXX

00 = stop sound, 21~28, 2A~33, 37 = music

Advanced Hacks

Baby's Day Out

Notes:

  • Each ROM bank is 4000h bytes (16 KB) large.
  • The game stores 3-byte pointers in various locations: 2 bytes address (into CPU space) + 1 byte ROM bank
    These 3-byte pointers will be called "PtrB" below.
  • ROM locations below may be given in the format BB:PPPP where BB = ROM bank and PPPP = pointer into CPU space.

various ROM locations

- functions -
Load Single Track:      4401 (register DE = pointer, register C = bank)
Stop All Tracks:        2239
Start Title (1st boot): 0251 (set C0ED~EF = 04 40 0A, then call 2288)
Start Title (return):   02D6 (set C0ED~EF = 04 40 0A, then call 22EB)
Stage intro load:       2339
Stage BGM load:         08CD

- other data -
Level Pointer Bank:     05:4000 (ROM offset 14000)
Level Header Pointers:  05:4004, 3 bytes each (2 bytes pointer, 1 byte bank)
Level Header:
                        3 bytes: ?? (some PtrB)
                        3 bytes: music PtrB
                        6 bytes: level password
Song Banks:             0A:4000 (ROM offset 28000) ~ 0D:4000 (ROM offset 34000)
                        Song headers begin at xx:4004 with 3 bytes per header. (1 byte = ??, 2 bytes = pointer)
                        Song offsets are BB:4004, BB:4007, BB:400A, etc.
        Bank 0A         2 songs
        Bank 0B         5 songs
        Bank 0C         1 song
        Bank 0D         1 song

Example song pointers:
        Title           0A:4004 (bytes 04 40 0A)
        Stage 1 Intro   0C:4004 (bytes 04 40 0C)
        Stage 1 BGM     0B:4004 (bytes 04 40 0B)
        some song       0A:4007 (bytes 07 40 0A)

misc. info

Level load routine:
        1. base pointer (e.g. 4004, points to "Level Header Pointers") into RAM CC23~CC24
        2. read that PtrB (e.g. 05:4B80) -> result into RAM CC25~CC27
        3. take CC25~CC27, add 3 to get music PtrB -> C0ED~C0EF
        4. call subroutine 22EB: stops all music, copies C0ED~C0EF -> D729~D72B
        5. start music based on PtrB in D729~D72B

Hacks

Silence title screen (1st boot):
        00:025E CD 88 22        CALL    2288h   ; start song via C0ED~EF
        ->
        00:025E 00 00 00        NOP / NOP / NOP

Play song on password screen:
        write PtrB of the song header to ROM offset 14B83~14B85 (e.g. bank 0A, ptr 4004 -> write 04 40 0A)

Note: The sound driver automatically loads the song pointed to at RAM D729~D72B when the GameBoy master volume (FF24) reaches 0.

Battle Bull

offset  hex patch               description
002779  3E 01 -> 3E xx          ;Replace Title music

Valid Music IDs: 01~0D

Blade

offset  hex patch               description
02AA50  3E 0E -> 3E xx          ;Replace Opening music
02B0F1  C6 01 -> C6 00          ;Freeze the Opening text scroll

Valid Music IDs: 01~10

Blades of Steel

offset  hex patch               description
004217  3E 00 -> 3E xx          ;Play music on the copyright screen
004284  C0    -> C9             ;Stay on the copyright screen

Valid Music IDs: 13~15, 1E, 27~32

Ikari no Yousai 2

offset  hex patch               description
001E50  3E 08 -> 3E xx          ;Replace Title music

Valid Music IDs: 00~0A

International Rally / It's a World Rally

offset  hex patch               description
015766  3E 36 -> 3E xx          ;Replace Title music

offset  hex patch               description
014BE6  3E 35 -> 3E xx          ;Replace Title music (JP Version)

Valid Music IDs: 36~5C (U) / 35~5C (J)

Nemesis

offset  hex patch               description
0001A6  3E 00 -> 3E xx          ;Play music on the Ultra Games logo screen
00051D  C0    -> C9             ;Stay on the Ultra Games logo screen

Valid Music IDs: 2D~39

Raging Fighter

offset  hex patch               description
00528B  3E A1    -> 3E xx       ;Play music on the Konami logo screen
005290  06 08 78 -> C3 90 52    ;Stay on the Konami logo screen

Valid Music IDs: 0C~18, A1, E8~F5, F7~F9, FB~FF

Samurai Shodown

offset  hex patch               description
000B0D  05 -> yy                ;Replace Music Bank
000B0E  12 -> xx                ;Replace Opening music
001C64  3C -> 00                ;Slow down the Opening text scroll

Valid Music IDs: 11, 12 (Bank 05), 11~1A (Bank 06), 11~1C (Bank 07)

Star Ocean: Blue Sphere

offset  hex patch               description
0040C3  3E 00    -> 3E xx
0040C5  EA 69 C9 -> CD 5E 30    ;Play Music on Enix logo screen
0040D2  D8       -> C9          ;Stay on the Enix logo screen

Valid Music IDs: 01~1E

Track & Field

offset  hex patch               description
000B59  3E 00 -> 3E xx          ;Play music on the Konami logo screen
000B91  C0    -> C9             ;Stay on the Konami logo screen

Valid Music IDs: 43~4A

Wayne's World

offset  hex patch               description
002474  09 -> xx                ;Replace Title Music
00110B  34 -> 00                ;Stay on the Copyright Screen

Valid Music IDs: 00~0F

World Bowling

offset  hex patch               description
00578A  3E 43 -> 3E xx          ;Replace Title Music

Valid Music IDs: 41~48