Hacking for VGMs

Got a new set? Wanna point something out with an old set? Wanna update an existing set? Here's your place to do it!
Monkeymook
Posts: 120
Joined: Sun Aug 22, 2010 2:33 am
Location: Virginia Beach, VA

Hacking for VGMs

Post 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.
TEOL
Been Here for a Bit
Posts: 30
Joined: Thu Jul 14, 2011 1:00 pm

Hacking for VGMs

Post by TEOL »

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)

Z80

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.

68k

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."

Z80

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

68k

9AC0
F7C0
F848
FF88
FFF8
User avatar
nensondubois
Posts: 23
Joined: Sun Sep 23, 2007 12:13 am
Contact:

Hacking for VGMs

Post 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)
84
85
95 (slightly faster than 94 Ending 1)
98
Sound effects start at 01-69
Songs start at 6A-9B


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

Title screen music / sound effect / sample modifier
006D3A:00??


Kid Chameleon.md
Intro Music / sound effect / DAC/PCM sample modifier
00079A:00D2
01AE51:00??
Unused 0A, 18, 21, 4F

Snake Rattle 'n' Roll (E) [c][!].bin
Code:
0x06CD40:0000
0x06C4AE:70??
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) (hidden-palace.org).bin
Code:
Set song in Jukebox for 68000 crash handler debug display
1CFCC0:00FE

Jukebox track 1 music modifier
1CFCC4:??0A

Song table: 090A0C081207040203111A050B10140E210F182016

Virtual Pinball.bin
Apocalyptic sound effect / DAC/PCM sample modifier
05DC04:??0A
(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
00058C:70??

Ren & Stimpy Show Presents, The - Stimpy's Invention (USA).md
Intro music / sound effect / DAC/PCM sample modifier
00916A:6700
0057CC:04??

Ooze, The (JU) [!].bin
Intro music / sound effect / DAC/PCM modifier
0027BC:8100
00663A:00??

TaleSpin (USA, Europe).md
Title music / sound effect / DAC/PCM modifier
008A66:7000
008AAE:0F00
008A7C:00??

Toy Story (U) [!].bin
Options screen music modifier
01DB8C:00??
Play unused song at options screen
BXPT-CAEN
0C - Unused Song

Toy Story (E) [!].bin
Options screen music modifier
01DCFC:70??
Play unused song at options screen
BXRA-DA96
0C - Unused Song


Doom (Japan, USA).32x
Intro title / sound effect / sample modifier
0013B8:00BC
0013B0:00??
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.
User avatar
donluca
Been Here for a Bit
Posts: 66
Joined: Tue Dec 11, 2012 2:08 pm
Location: Rome
Contact:

Hacking for VGMs

Post by donluca »

Fantastic work! Thank so much for posting these!
"Ask not what others can do for you, but what you can do for others"

Founder of the 16-bit audiophile project
http://16bap.theclassicgamer.net
User avatar
nensondubois
Posts: 23
Joined: Sun Sep 23, 2007 12:13 am
Contact:

Hacking for VGMs

Post 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
15EF3C:01FC
15EF1C:00??

Bass Master Classic Pro Edition.bin
Title intro music / sound effect / DAC/PCM sample modifier
001DF4:44FC
001E1E:70??
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
029ECC:443C
029Ec0:00??

Shanghai 2 - Dragon's Eye (U) [!].bin
Title intro music / sound effect / DAC/PCM sample modifier
000E72:0000
002700:00??
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
0A - NULL
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
1A - NULL
1B - NULL
1C - Dragon
1D - NULL
1E - NULL
1F-27 - NULL
28 - Fantasty
29 - Unused 9
2A-sound effects and samples
User avatar
Mr. Joker 27
New Around Here
Posts: 1
Joined: Sun Feb 02, 2020 4:14 pm
Contact:

Hacking for VGMs

Post by Mr. Joker 27 »

It's possible hacking music from EA games like Blockout, John Madden, and Streets of Rage series??
Monkeymook
Posts: 120
Joined: Sun Aug 22, 2010 2:33 am
Location: Virginia Beach, VA

Hacking for VGMs

Post 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?
Gnome
New Around Here
Posts: 11
Joined: Wed Jan 11, 2017 1:13 pm

Hacking for VGMs

Post 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.
ValleyBell
Board Regular
Posts: 128
Joined: Mon Aug 30, 2010 7:10 am

Hacking for VGMs

Post 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]

Ultraman

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
User avatar
donluca
Been Here for a Bit
Posts: 66
Joined: Tue Dec 11, 2012 2:08 pm
Location: Rome
Contact:

Hacking for VGMs

Post by donluca »

Nice!

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.
"Ask not what others can do for you, but what you can do for others"

Founder of the 16-bit audiophile project
http://16bap.theclassicgamer.net
Post Reply