IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Trying to Better Understand Rom-based audio in Pinball games of the 19
PinballGuy1972
post Nov 19 2013, 23:44
Post #1





Group: Members
Posts: 4
Joined: 19-November 13
Member No.: 112326



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
Go to the top of the page
+Quote Post
saratoga
post Nov 20 2013, 00:39
Post #2





Group: Members
Posts: 4866
Joined: 2-September 02
Member No.: 3264



QUOTE (PinballGuy1972 @ Nov 19 2013, 18:44) *
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).

QUOTE (PinballGuy1972 @ Nov 19 2013, 18:44) *
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.
Go to the top of the page
+Quote Post
Octocontrabass
post Nov 20 2013, 08:22
Post #3





Group: Members
Posts: 40
Joined: 9-September 13
Member No.: 110004



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.
Go to the top of the page
+Quote Post
PinballGuy1972
post Nov 20 2013, 17:00
Post #4





Group: Members
Posts: 4
Joined: 19-November 13
Member No.: 112326



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.


Go to the top of the page
+Quote Post
saratoga
post Nov 20 2013, 17:07
Post #5





Group: Members
Posts: 4866
Joined: 2-September 02
Member No.: 3264



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.
Go to the top of the page
+Quote Post
PinballGuy1972
post Nov 20 2013, 17:21
Post #6





Group: Members
Posts: 4
Joined: 19-November 13
Member No.: 112326



QUOTE (saratoga @ Nov 20 2013, 10:07) *
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 smile.gif). 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!!!
Go to the top of the page
+Quote Post
Octocontrabass
post Nov 20 2013, 19:34
Post #7





Group: Members
Posts: 40
Joined: 9-September 13
Member No.: 110004



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.
Go to the top of the page
+Quote Post
PinballGuy1972
post Dec 2 2013, 17:45
Post #8





Group: Members
Posts: 4
Joined: 19-November 13
Member No.: 112326



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...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 30th July 2014 - 17:32