Tuesday, January 10, 2006

Actual MAME-related work!

For those who haven't heard, the speech chip used in Berzerk has been reverse-engineered by "Lord Nightmare"! This is something I've been waiting for for about 7-8 years! I'm sure that the emulation will end up in MAME and PinMAME sooner or later.

Because of this, I spent some time over Christmas looking at the analog filters on the Berzerk speech board. (These are applied to the sound after it comes out of the chip.) I finished the analysis, and it should be pretty straightforward to add them into MAME after the chip emulation is done.

For what it's worth, I've been trying out Maxima with wxMaxima to do the symbolic math for circuit analysis. I know, I could have used SPICE or something - but doing the math from scratch makes it easier to understand what is going on.

After I worked out about half of the math for these filters by hand, I ended up with about 6 pages of algebra. At this point, I figured I should use this as an excuse for learning Maxima. Sure enough, I found an error on page 5. Darned minus signs! :)

The second half of the analysis took about 5 minutes, since the code from the first half was already done, and I could re-use it!

For those who care - the filter is a third-order lowpass - a first order lowpass, followed by a second order with a resonant peak around 2400 Hz.