gregf |
Ramtek's Trivia promoter
|
|
|
Reged: 09/21/03
|
Posts: 8616
|
Loc: southern CA, US
|
|
Send PM
|
|
Galaxian audio emulation from long ago
01/20/20 09:35 PM
|
|
|
Two recent netlist related updates by couriersud for Galaxian audio to help improve audio output when next release (.218) becomes available for users that don't have a state-of-the-art computer to do compile builds on their own.
-- couriersud 2020-01-19
netlist: Fix 741 opamp representation
https://github.com/mamedev/mame/commit/b4e82448271a3e572a532e479d88d2e9ab1d033d
galaxian.cpp: Implement konami filters using netlist. [Couriersud]
This change improves accuracy and scalability.
https://github.com/mamedev/mame/commit/ee0e0c972c91ef006d8f76f82fb4120b8d20c41c -
How long has it been since last previous analog/discrete audio updates were done for Galaxian?
This..(10 Sep 2009) sometime in August / September of 2009 It was probably overlooked by many at the time because this was around the time that the preliminary emulation of laser disc games such as Cube Quest was getting started. Amazing that a decade has gone by.
-- https://www.mamedev.org/releases/whatsnew_0134.txt
- 0.133u3: Galaxian sound updates [Couriersud]: Moon Cresta and Galaxian now have their respective schematics emulated, i.e. Moon Cresta has a slightly different mixing stage. Cleaned up driver, added some section titles and comments, removed old code. Removed emu_timer, this was causing a stream of stream_updates only updating 3 samples. Replaced with discrete timer module DSS_TIMER now. Use DISCRETE_NOTE for pitch generation; it is more accurate (within the one ms where the pitch changes) and saves a node. Use DISCRETE_BITS_DECODE and save 2 nodes.
- 0.133u2: Created discrete sound emulation for galaxian [Couriersud]: Changed all audio related AM_WRITE to AM_DEV_WRITE. Moved discrete sound related pieces such as initialization into audio\galaxian.h. Split some memory maps into sound related and not sound related parts. Added possibility in discrete.h to select hardware (galaxian/moon cresta) at compile time. This leads to slightly different volume levels. Hit sound (explosion) has been hacked to increase volume. Currently, we can not accurately model the switch/opamp filter circuit. Rewrote timer code so that the pitch timer is only used when it produces audible results.
Discrete sound enhancements: [couriersud] - Put some life into RCDISC5 enable mode. This now acts as a switch between R and C. Capacitor voltage will be preserved if disabled. - Made galaxian use the above. Saved 2 nodes and increased accuracy.
It has been a long time that even old comments that can be revised or removed are still hiding in the current source code at this time. Anyway, Galaxian fans should be happy with the updates unless they play a specific bootleg variation (different hardware etc) that is outside of the specific netlist related fixes.
-- src/mame/drivers/galaxian.cpp
TODO: ---- - Problems with Galaxian based on the observation of a real machine: - Background humming is incorrect. It's faster on a real machine - Explosion sound is much softer. Filter involved?
src/mame/drivers/galaxold.cpp
TODO: ----
- Problems with Galaxian based on the observation of a real machine:
- Starfield is incorrect. The speed and flashing frequency is fine, but the stars appear in different positions. - Background humming is incorrect. It's faster on a real machine - Explosion sound is much softer. Filter involved?
|
|