Page 4 of 5

Hacking for VGMs

PostPosted: Tue Mar 22, 2016 11:13 pm
by Monkeymook
nensondubois wrote:There are still quite a few sets that are either missing songs or have incorrect information that I'm considering fixing over time. I'm thinking about finally finishing that Art Alive set I started a few years ago but silently abandoned for unspecific reasons.

If you know them right off the top of your head, please share them if you wouldn't mind! I'd love to add them to the pack-fixing thread.

Hacking for VGMs

PostPosted: Wed Jun 08, 2016 8:31 am
I'm having a bit of fun with these softwares so this is what I've found.

Gens K Mod Values:

Mr. Nutz Hoppin' Mad (Europe) (Proto)


01B0 - 0408

01B0 - 4DB00080 80009F00 "3rd and 4th digits rapid flick on the first line"
0408 - 00808000 00000000 "4th digit on 2nd line rapid flickers.


F000 - FFB8

F000 - 00000000 0000FFFF "Flickers rapidly on the 4th digit and does some climbing like rapids on the last 2 digits of the 1st line, final 4 digits are rapid flicker on the second line"
FFB8 - 000CE866 000CE2BE "Final 2 digits on the first line are the rapid flicker, with a picture of a poo flashing which is a funny symbol for an end of the track"

Hope that helps you guys out hacking this one.

Stone Protectors: "Multi channel surround sound and impossible to get what the line codes are as you can't stop the music none the less here are the values channel by channel for this more exotic tracker format."


0020 - 0028
0038 - 0040
01F0 - 01F8
1790 - 17D8
1B08 - 1B18
1B80 - 1B88
1B98 - 1BA0
1CC0 - 1BC8
1BE0 - 1BE8
1C00 - 1C08
1C20 - 1C28
IC40 - 1C48
IC60 - IC68
1C80 - 1C88
1CA0 - 1CA8
1D80 - 1E48



Hacking for VGMs

PostPosted: Mon Nov 05, 2018 1:28 am
by nensondubois
Sorry for the incredibly late reply but I have been [insert lame excuse here because I can't think of any as of typing]. Here are my latest codes to allow easier ripping and or listening to music playback. I do plan on adding the additional songs to the sets. The additional codes will stop the CPU from doing anythig except for parsing only audio related I/O in most cases they are were written in mind to play the music and or sounds and samples at the earliest most convent instances possible in the games.

Animaniacs (UJ) [!].bin
Password screen music modifier
03EBF0:00?? (0x0003EBF0:00??)
List of unused songs (from playing through the game I didn't hear them)
95 (slightly faster than 94 Ending 1)
Sound effects start at 01-69
Songs start at 6A-9B

Zombies Ate My Neighbors (U).bin
Play unused song at title screen

Title screen music / sound effect / sample modifier

Intro Music / sound effect / DAC/PCM sample modifier
Unused 0A, 18, 21, 4F

Snake Rattle 'n' Roll (E) [c][!].bin
01 - Null
02 - Level 2: Jaws Shores
03 - Level 5: Araian Plains
04 - Death
05 - Top Five Snakes (leaderboard)
06 - Title
07 - Level 7: The Fountain Mountain
08 - Level 3: Razor Ravine
09 - Level 4: Anvil Alley
0A - Level 6: Cannon Bell Canyon
0B - Level 8: Snake Lakes
0C - Level 9 & 11: Slipper Slopes ~ Lunar Showdown
0D - Timed Out
0E - Game OVer
0F - Level 1: Grassy Greens
10 - Null
11 - Levels 10 & 12: Ice Cube Cliffs ~ The Great Rocket Race
12 - Level Clear
13 - Bonus Stage
14 - Ending
15 - Unknown
16 - Level Start

I actually forgot about this version when I did Comix Zone. Also, found some interesting stuff. Several music tracks were removed most likely because this was a near final build and they needed ROM space. Still, interesting to hear some songs that didn't make it into the final version. Wonder how many songs Howard Drossin composed in total. Songs 1C, 1D aren't listed in the song table and they're duplicates. I don't hear any differences from the final song but I only listened once.

Comix Zone (Prototype - May 30, 1995) (
Set song in Jukebox for 68000 crash handler debug display

Jukebox track 1 music modifier

Song table: 090A0C081207040203111A050B10140E210F182016

Virtual Pinball.bin
Apocalyptic sound effect / DAC/PCM sample modifier
(Only important ones listed for redundancy's sake)
0F - UFO Jingle
10 - Unused Jingle 1
42 - Dementia Jingle
43 - Unused Jingle 2
46 - Techno Dream Jingle
47 - Unused Jingle 3
4A - North Shore Jingle
4B - Unused Jingle 4
4E - New Rock Jingle
4F - Unused Jingle 5
52 - Apocalyptic Jingle
53 - Unused Jingle 6
56 - Rain forest Jingle
57 - Unused Jingle 7
5D - Glitch Track 1
5E - Glitch Track 2
5f - Glitch Track 3
60 - Glitch Track 4
15 - Unused sound 1
1C - Unused sound 2
1D - Unused sound 3
22 - Unused sound 4
23 - Unused sound 5
2D - Unused sound 6
2E - Unused sound 7
30 - Unused sound 8
3C - Unused Duck Classic bonus sample
3F - Unused Bones Gore bonus sample
5B - Unused Break Pool sample

Risk U.bin - I actually plan on doing this set unless someone else isn't currently
Title screen music / sound effect / DAC/PCM sample modifier

Ren & Stimpy Show Presents, The - Stimpy's Invention (USA).md
Intro music / sound effect / DAC/PCM sample modifier

Ooze, The (JU) [!].bin
Intro music / sound effect / DAC/PCM modifier

TaleSpin (USA, Europe).md
Title music / sound effect / DAC/PCM modifier

Toy Story (U) [!].bin
Options screen music modifier
Play unused song at options screen
0C - Unused Song

Toy Story (E) [!].bin
Options screen music modifier
Play unused song at options screen
0C - Unused Song

Doom (Japan, USA).32x
Intro title / sound effect / sample modifier
I know there are unused songs.

01 - Level 1: That Old Army Game (With Marching Soldiers)
02 - Level 2: Red Alert!
03 - Level 3: Ego Check
04 - Level 4: Nightmare Buzz
05 - Level 17: Light my Fire
06 - Level 6: Revenge of the Toys, Bonus & Characters
07 - Level 7: Run Rex, Run!
08 - Level 18: Rocket Man
09 - Level 9: Food and Drink
0A - Level 10: Inside the Claw Machine
0B - Level 11: Really Inside the Claw Machine
0C - Unused Song
0D - Level 13: Sid's Workbench
0E - Woody on Fire
0F - Level 14: Battle of the Mutant Toys
10 - Level 12: The Claw!
11 - Level 5 & 16: A Buzz Clip & Day-Toy-Na
12 - NULL
13 - Buzz Battle
14 - Game Over
15 - Level Complete
16 - Patrick Collins, Randy Newman, Andy Blythe, Marten Joustra and Allister Brimble - [Toy Story] Storyline (You've Got a Friend in Me)
17 - Continue Screen
The menu and credits songs are MOD files.

Hacking for VGMs

PostPosted: Mon Nov 05, 2018 10:18 am
by donluca
Fantastic work! Thank so much for posting these!

Hacking for VGMs

PostPosted: Tue Nov 06, 2018 2:37 pm
by nensondubois
Thanks! I have more coming. I would love to spend hours logging VGM sets but there's literally no time or patience.

Bass Master Classic.bin
Title intro music / sound effect / DAC/PCM sample modifier

Bass Master Classic Pro Edition.bin
Title intro music / sound effect / DAC/PCM sample modifier
All original songs and more than in the non-pro edition. I recommend using this version as the base for VGM logging.
Pagemaster, The
Fox logo music / sound effect / DAC/PCM sample modifier

Shanghai 2 - Dragon's Eye (U) [!].bin
Title intro music / sound effect / DAC/PCM sample modifier
Alphabet tracks have unused segments but they appear in the full song.
01 - Flags
02 - Title
03 - Unused 1
04 - Cards
05 - Test Track 1
06 - Test Track 2
07 - Alphabet
08 - Unused 2
09 - Unused 3
0B - Unused Alphabet variation
0C - Unused 4
0D - Unused 5
0E - Unused 6
0F - Unused 7
10 - ???
11 - Sports
12 - Test Track
13 - Unused 8
14 - NULL
15 - NULL
16 - NULL
17 - Pairs
18 - NULL
19 - NULL
1C - Dragon
1F-27 - NULL
28 - Fantasty
29 - Unused 9
2A-sound effects and samples

Hacking for VGMs

PostPosted: Sun Feb 02, 2020 5:23 pm
by Mr. Joker 27
It's possible hacking music from EA games like Blockout, John Madden, and Streets of Rage series??

Hacking for VGMs

PostPosted: Thu Mar 19, 2020 3:41 am
by Monkeymook
Mr. Joker 27 wrote:It's possible hacking music from EA games like Blockout, John Madden, and Streets of Rage series??

The soundtracks for these games can be found in the Downloads tab up top, by clicking the letter corresponding to the name of the game.

The soundtracks should be complete, if not, moderately up-to-date (as I have no newer versions in my packs to work on), so is there anything in specific you're trying to accomplish?

Hacking for VGMs

PostPosted: Fri Mar 20, 2020 12:40 pm
by Gnome
Would appreciate if someone looked into Mario Lemieux Hockey. That game has no known access to a sound test and songs either last too short or get drowned by the "crowd" during a hockey match.

Hacking for VGMs

PostPosted: Sat Apr 11, 2020 3:58 am
by ValleyBell
I did some research and have hacking info for a few games.
There are short instructions at the bottom of each code block that help you to make a sound test ROM.
The format is: [offset] [bytes in the original rom] -> [bytes after replacement] [comment describing what effect this patch has]

Code: Select all
sound driver calls:
038000 - Sound Driver Update [no parameters]
038004 - Stop All Sound [no parameters]
038008 - Play PCM SFX [register D0 = SFX ID]
03800C - Play Sound [register D0 = sound ID, register D1 = number of channels]
038010 - ?? (unused?)
038014 - ?? (unused?)
038018 - Fade Out [register D0 = fade speed?]
03801C - Load Z80 Driver [no parameters]
038020 - ?? [register D0 = some ID]
038024 - ?? [register D0 = some ID]

General Music List:   007172 (2 bytes for entry, list contains 14h entries = 28h bytes total)
    for each entry: 1 byte - ID [reg D0], 1 byte - channel count [reg D1]
Level BGM List:      007178 (part of the General Music List)

The sound driver has a huge pointer list 039D88. These are pointers to "track headers".
In order to load a song, it specifies the ID of the first track header (register D0) and the number of channels/track headers (register D1) to be loaded.
Then it calls "PlaySound".
So if it loads "reg D0 = 45h, reg D1 = 3", it loads the track headers for with IDs 45h, 46h and 47h.
The list contains SFX as well as songs and the game code has the "first track ID" and "channel count" values hardcoded.

playing the "Stage Select" music is done using the following code:
006C7C   70 4F      MOVEQ   #$4F, D0   ; reg D0: sound ID
006C7E   72 06      MOVEQ   #$06, D1   ; reg D1: channel count
006C80   4EB9 0003 800C   JSR   $03800C      ; call PlaySound

a search pattern for "Play Sound" routine:
70## 72## 4EB9 0003 800C

You can make a simple "sound test" patch by modifying the ROM this way:
000328   4E71 -> 6048      skip checksum check
000430   4EB9 0000 -> 4EF8 21C0   skip to "stage 1" screen [we use it for playing songs]
006C7C   704F -> 70xx      set xx = sound ID
006C7E   7206 -> 72xx      set xx = channel count

Mario Lemieux Hockey
Code: Select all
FF9458   offset to Track RAM for current song
   Note: Each song has its own (!) track RAM.
FFD406   decompressed song data

sound calls:
022086   Sound Driver Update
022452   play title music
022512   stop music
022536   play menu music
022548   play ??
0225F2   play fight music
022604   play ??
022698   play shoot out music
0226F8   play ??

I have to mention that the sound system in this game is a total mess.
Each song is in a separate "sound bank" and each sound bank has its own work RAM.
The pointer stored at FF9458 in 68k RAM tells the sound driver, which part of the sound bank RAM it has to update.
This also has the interesting effect, that the menu SFX stop working when you play e.g. the title theme on the menu screen.
In order to play a song, the game calls one of the "play XX" routines, which has all *hardcoded* offsets for track RAM and song data.

sound test patch:
000498   4EB9 -> 601A            skip title screen
0004CE   4EB9 0002 2452 -> 4EB9 0002 2512   don't play music at SEGA screen
000556   6600 -> 6000            cut SEGA logo short
0009A8   4EB9 0002 2536 -> 4EB9 00xx xxxx   insert address of "play XX" routine at xx

Hacking for VGMs

PostPosted: Sat Apr 11, 2020 7:55 am
by donluca

Thanks for sharing, ValleyBell.

Who's in charge of keeping the Wiki updated? It would be nice to have this information neatly gathered and ordered in the Wiki.

Also, I've been in talks with the blast'em emulator dev to implement a new VGM logger on his cycle accurate emulator.
I want to put KEGA's logger to the test to see if it has been doing its work properly by pitting it against a known accurate emulator.

Monkeymook has also created a Discord server for Project2612, we'd be delighted to have you on board.