Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
HOW TO: change (or mute) sounds in WPC games
02-23-2011, 06:04 PM (This post was last modified: 02-24-2011 01:05 PM by Tilt.)
Post: #1
HOW TO: change (or mute) sounds in WPC games
Problem: You want to mute a voice call or sound effect in a WPC game, or you want to change it to another existing sound effect.

Solution: HEX edit the ROM using the following instructions.

Software needed:
All digital sounds in WPC games have a two byte, hexadecimal value (code). For instance, in The Shadow, the "Find him... and kill him! All of you! Go!" line is 02EC. You can explore all of the sound codes using PinMAME32. Just load a game ROM and hit F4 to access the sound player -- type a 4-digit HEX value (0000-FFFF) and see what exists there. It can take quite a while to search, but it's something of a treasure hunt, and you'll probably find unused sounds that may surprise you. I believe most (if not all) sounds are below 0500.

Using this method you'll find the sound code that you want to remove (e.g. 02EC), and possible replacements. Good.

Next step is to fire up a hex editor (such as HxD) and open the ROM (The Shadow LX-5, in this case). Searching for 02EC reveals it appears about 22 times, and thus begins the tedium. You have to change each occurrence, one at a time, to another sound code. I used 0088 ("Moo!") for testing. Save out the ROM, launch Visual Pinball, and load up the table. It will complain about failed Checksum, but that's okay for now. Start a game, hit ESC, and open the debug window. With that open, you can right-click on playfield switches just like having the glass off, which lets you quickly trigger your sound. After each failed attempt, revert the ROM, open the hex editor, and try the next occurrence. In this example, the quote I wanted to remove is actually the 8th 02EC string in the file, at offset 54943. Bingo!

Suitable replacements include:

02C4 = Attack!
02CC = Hahahahahahaha.
02E8 = Find him!
02EB = Go!
0088 = Moo! (okay, maybe not suitable, but hilarious)

Now that the sound has been changed to something else, we need to fix the checksum so we don't trigger an error in PinMame or a real machine. Use either of the checksum tools listed above, but if you use "WPC_Tool14a.zip" you'll need Java installed. "IJCSUM" is Windows command-line native, but currently only works in 32-bit environments. In either case you'll need some basic command-line skills, but if you've gotten this far it shouldn't be a problem. Really easy stuff.

Once you have the fixed ROM, it's ready to be tested further in VP or burned to a chip. Note that VP will still complain about the checksum because they apparently have a list of "correct" checksums that they check against, but PinMame will not complain and you will see no credit dot.
Find all posts by this user
Quote this message in a reply
03-09-2011, 05:42 PM
Post: #2
RE: HOW TO: change (or mute) sounds in WPC games
In the Tools & Software section I posted a pinmame exe file that I made from pinmame source with modified sound test, allowing painless manual-mode of the sound test. It allows up/down arrows to increment/decrement the entire 4-digit field. This way you don't have to use the left/right arrows and manually dial in each digit.
Find all posts by this user
Quote this message in a reply
08-10-2011, 10:22 AM
Post: #3
RE: HOW TO: change (or mute) sounds in WPC games
Hello Mr Tilt
Great thread
I have done the procedure with Pinmame for Banzai run, and I find several sounds that looks like the one I want to change
0060 0061 004e , but since I can't find 0060 and 0061 then I guess its the 004e

I try to reproduce what you said in your post for the shadow.
What I understand is that you open the file named "shad_X5.rom" with HXD and then you change all the 02EC for 0088!

In the case of Banzai run, I think I need to do the same procedure for the BanZ_U27.L3 right?
And change all the 004e for a sound like 001e or 000d.
Thanks
Find all posts by this user
Quote this message in a reply
02-12-2012, 06:24 PM
Post: #4
RE: HOW TO: change (or mute) sounds in WPC games
I was browsing RGP tonight and noticed somebody mentioned changing Congo so the ape isn't as chatty. This brings up a third option for sounds. In addition to changing or muting a sound effect, in WPC games we can also make a sound call happen less frequently.

What we need to do is:
1. identify the places in the code that call up the offending sound effect
2. identify the random-number function
3. Hack the code so that instead of playing the offending sound effect, it calls the random number function, and then only plays the offending sound effect if the random number matches a particular value.

If anybody is interested in this sort of hack for Congo or for any other WPC title, start up a new thread and I'll post some details for the particular pin.
Find all posts by this user
Quote this message in a reply
04-10-2012, 07:50 PM
Post: #5
RE: HOW TO: change (or mute) sounds in WPC games
Attached is a write-up I've done that should help somebody find the specific parts of the ROM that deal with the sound numbers and will help you locate parts of the code that calls up the sounds. Also describes how you might be able to find where the random sound effects during attract mode get called.


Attached File(s)
.pdf  WPCSoundCalls.pdf (Size: 486.62 KB / Downloads: 1057)
Find all posts by this user
Quote this message in a reply
05-15-2012, 03:12 PM
Post: #6
RE: HOW TO: change (or mute) sounds in WPC games
(08-10-2011 10:22 AM)Francis Wrote:  I try to reproduce what you said in your post for the shadow.
What I understand is that you open the file named "shad_X5.rom" with HXD and then you change all the 02EC for 0088!

In the case of Banzai run, I think I need to do the same procedure for the BanZ_U27.L3 right?

Wow, I apologize for not seeing this reply sooner. Better late than never? Well, for the benefit of future readers, you are correct Francis but you have to change them one at a time. Change the first 02EC to 0088 -> save the ROM -> test it out in PinMame. If you get the desired result, great! Otherwise (and more likely), revert the ROM to the original state and try the next occurrence of 02EC.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)