Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Trying to Better Understand Rom-based audio in Pinball games of the 19 (Read 11371 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Trying to Better Understand Rom-based audio in Pinball games of the 19

Hello folks.  My first post.  Glad to be here.

I've joined because I am interested in figuring out how the pinball music and sounds of the 1990's worked.  Specifically I'm interested in how Williams' DCS-95 system worked (http://en.wikipedia.org/wiki/Digital_Compression_System).

For those of you who don't know pinball very well, those 1990's williams machines had a dedicated sound board with on-board ROMS.  The ROMS contained software but also the music and recorded effects and voices themselves.  Low level signals from the game's CPU would come in HEX format, these signals would be processed on the board by a processor, and sounds were played to match the game.  It was pretty cutting edge at the time!

I've heard rumors that Williams simply hired Sony to use an early copy of their ATRAC proprietary compression.  Would like to know if there is truth in this or not, among other various fascinations.

Williams doesn't do pinballs any more and doesn't really exist as such, but back in the day they were actually very straightforward about their technology.  See this "newsletter" they posted where they go into quite a bit of detail about the system's specs.

http://www.planetarypinball.com/mm5/Willia...ives/willy3.htm

So anyway, anybody out there similarly interested in the pinball sounds of yore?  The sound ROMS themselves are freely available for tire kicking.  For example here is a ZIP containing all the ROMS for Red and Ted's Roadshow, a game which featured music and voice callouts that in their day were amazing.

http://mirror2.ipdb.org/files/1972/rs_l6.zip

The sound roms are U2, U3, U4, etc.  These names refer to the slots where they were located on the boards.

There have been emulators for many years which can play these ROMS exactly as they were in game, all open source  It's really cool technology and I find it very interesting.  Curious if others do as well.

Dan

Trying to Better Understand Rom-based audio in Pinball games of the 19

Reply #1
I've heard rumors that Williams simply hired Sony to use an early copy of their ATRAC proprietary compression.  Would like to know if there is truth in this or not, among other various fascinations.


From the algorithm you linked, it doesn't sound very similar to ATRAC, and the hardware they list is probably not fast enough to do ATRAC1 in multiple channels (it was a reasonably complex format for its time).

There have been emulators for many years which can play these ROMS exactly as they were in game, all open source  It's really cool technology and I find it very interesting.  Curious if others do as well.


Do they have sound?  You could look at the decoders included in the emulator and see exactly how they work.

Trying to Better Understand Rom-based audio in Pinball games of the 19

Reply #2
I doubt any emulators will include decoders. The sound board has a complete CPU, and it runs a program on the sound ROMs to decode the compressed sounds.

If you want to know more about the format, you'll have to either find someone who's reverse-engineered DCS ROMs, or reverse-engineer them yourself. You might get more help asking on emulator forums for whichever emulator you're using.

Trying to Better Understand Rom-based audio in Pinball games of the 19

Reply #3
Hi Guys.  Thanks for the responses.  The emulators are actually fully-functional sound-wise.  I think it's good advice to dig into the emulator code (http://sourceforge.net/p/pinmame/code/HEAD/tree/trunk/src/wpc/) and see what I can find.  Once I get it set up to run in debug mode I am hoping I know more and will share my experiences.



 

Trying to Better Understand Rom-based audio in Pinball games of the 19

Reply #4
It looks like that emulator does quite a lot more than just that one format.  Might be a good idea to check out the entire source code and then search the logs for mentions of the Williams devices so that you can figure out which code actually does the ROMs you have.

Trying to Better Understand Rom-based audio in Pinball games of the 19

Reply #5
It looks like that emulator does quite a lot more than just that one format.  Might be a good idea to check out the entire source code and then search the logs for mentions of the Williams devices so that you can figure out which code actually does the ROMs you have.


That's very true, and it's one of the things that makes the emulator code a bit hard to work with.  You have different companies using different technologies, and each technology progresses over time.  Since the emulator has to be able to play every game, the code can get complex.

I'm really only interested in Williams DCS games (for now ).  That's kind of the hey-day of pinball in my opinion.  So the tough part is knowing what code doesn't apply to me.  Near as I can tell without debugging, these are the files that apply to me...

wpc.c
sndbrd.h and .c
snd_cmd.h and .c
wmssnd.h and .c (ONLY the tail end of this file since this includes all williams games from early 1980 on...)

This should be fun!!!

Trying to Better Understand Rom-based audio in Pinball games of the 19

Reply #6
It looks like PinMAME has a built-in debugger. You can use it to disassemble and trace code as it runs on the sound CPU.

You may want to look for an ADSP-2100 instruction set reference. Those are usually easier to read than CPU core source code.

Trying to Better Understand Rom-based audio in Pinball games of the 19

Reply #7
Just reporting back status.  Me and another programmer buddy have been trying to unlock the mystery of the pinball sounds and music for the past couple weeks now.

We know more than we did when we started, but there's a lot we still don't know.  I've got us both set up to debug pinmame in Visual C++.  In addition, as Octocontrabass suggests you can debug the assembly in Pinmame as well.  It gets complicated quickly, but we have made some progress.

More to come...