Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - [VGM/Voice Pack] Beavis and Butt-Head (GG)

Reply to topic
Author Message
  • Joined: 28 Nov 2014
  • Posts: 365
Reply with quote
[VGM/Voice Pack] Beavis and Butt-Head (GG)
Post Posted: Wed Dec 16, 2015 12:08 pm
Last edited by sherpa on Mon Jan 11, 2016 7:29 am; edited 1 time in total
Voice and VGM Pack Now here:

http://www.smspower.org/Music/BeavisAndButtHead-GG

This pack took an inordinately long amount of time to process. The game was rather difficult to hack. It stumped me several times during my original attempts. This time I dug a bit deeper...and deeper..and...well I ended up not logging the music,though I confirmed all the in game uses. I haven't yet confirmed a better method of accessing the music as I got distracted by wanting to capture the voices. At first I thought it would be a dozen voices or so...then realized it was more.

Finally, I found the table at A314-A402.

It seems to point to adresses 0E to 14 bytes apart that have some values that playback the sound. Technically I did not find the playVoice function or its ids. rather I hacked into the playScene function that access the voices through the table which combines them in various ways. I stopped digging there as it had already taken me a long time to get this far. I looked for the table, after I noticed a pattern in the Interactions of the voice samples and the value loaded. Only as time went on, did it occur it was an adress and not just different control bytes for each character. The game seems to rely on a value in ram that changes every so often to seed where in the table it plays from.

The playScene Function is at 0x3B03. Normally it adds a value at a certain point in the cycle while hl is being added to itself repeatedly.
Then the value in a is loaded into e and the function is called.

I changed bytes at 3b7B to 1E (id) to ignore all that and load the id I want directly. I used a slower and more careful logging process so all samples are the proper length. Any silence is there in the original.
I also changed A30D to 14 so ids load at the start of the table. Starting values seem to change based on some condition (i assume which character you are controlling) I did not test. The first value in the table is not loaded through this method normally. I think I came accross it on a previous playthrough, or maybe it can only be accessed by hack,
"IDs" are 00-EC.


I had some problems with vgm_tag, vgm_stat and vgm_cmp when processing the files due to ... being part of the filenams/tags. (Beavis tends to say Umm... alot, Butt-Head says Uhh...) I ended up not relying on recently created batch scripts like I wanted to, but doing it manually and tagging with vgmtoolbox (which is what I usually do). vgm_cmp did great work, reducing 17.x MB to about half that (2.xx MB gzipped).

Quite time consuming. I stopped trying to figure it out. It's possible there might be another voice hidden somewhere. One of Butt-Head's patterns is silence an Beavis has a Cool! sample that sounds a bit more like an unused Butt-Head voice. But the animations are consistent, so it was intentional in that case. I'd have to dig though the table values and decode what they point to, and I'm not going to do that for now. This already took as long as logging many other packs.

I might not jump on the VGM pack right away. I'm probably going to want to until I find the song table. Those values are spread out more in what seem to be more random ways. But when I do, it will be posted here. Size wise, It would not be possible to combine the music/voice packs into one. And in this instance I would not want to. There are just too many voices. I would like an area other than the forum for them though.


Each character has 15 distinct clips.
These clips get organized into 26 patterns for each character.
Then these get combined in a somewhat mathematical mix-and-match resulting in 119 combinations lasting exactly 5 minutes, though likely a little bit above that considering the time it takes the playback software to advance tracks.

@Maxim Would it have been more efficient to have ripped these tracks' data to ~wav first? (Not counting VGMs being easier)

Now at 1.00?

VGM to follow (eventually)
  View user's profile Send private message
  • Joined: 28 Nov 2014
  • Posts: 365
Reply with quote
Post Posted: Thu Dec 17, 2015 12:59 am
VGM Pack. We'll see if they get joined.

There are 35 minutes of music to complement the 5minutes of speech.

Unfortunately a lot of the tracks sparsely shape the wave. When I worked on trying to make some vgm music way back earlier in the year, this was the game I thought of when I couldn't figure how to shape the square wave. A lot of the tracks seem to be largely unshaped. Maybe it was intentional. It's unclear who the composer is. Someone from Byte-Size Sound supposedly. I've seen some names thrown about but no confirmation from more official sources.


It's possible in the future, this will be combined with the above pack.
12 tracks. Ending is repeated as it occurs in game- with interruption and voice sample.

Songs are loaded by bank and offset. The song data seems to be somewhere else than listed. So there could easily be hidden songs. I'm assuming not for convenience, though perhaps a comparison to MD/SNES versions will yield some clues. At least the title theme is identical. This includes all songs available in game.

Sound function is at 4BE9. Music shares space with some voice samples as well. Loads bank, and offset i.e. Title [48E1A] the value is located at the physical space (in parenthesis)

Title: 1E, 0E1A (61F9)
Level 1: 1E,1115 (85D0)
Level 4: 1e, 264c (8a16)
Level 2: 1E, 3264 (8B8A)
Game Over: 1E, 3C45 (4DC4)

Level 5: 1F, 0000 (8Ce6)
Level 6: 1F, 0658 (8e62),
Level 3: 1F, 1479 (86EE)
Options: 1F,2358 (6A49)
Password: 1F, 28E1 (49C4)
Ending: 1F, 2B43 (688D)

Enjoy. Now at 1.00
  View user's profile Send private message
Reply to topic



Back to the top of this page

Back to SMS Power!