Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
02903 Original Reference Trivial Always Feb 6, 2009, 15:08 Feb 27, 2009, 20:22
Tester chowell View Status Public Platform MAME (Official Binary)
Assigned To Resolution No change required OS Windows XP/Vista 32-bit
Status [?] Closed Driver
Version 0.129u3 Fixed in Version Build Normal
Fixed in Git Commit Github Pull Request #
Summary 02903: dplay, einning, boothill: Sound circuits have extra +12V connections to LM3900 op-amp outputs not modeled or even mentioned in driver.
Description From checking the game logic PCB schematics for Double Play, Extra Inning, and Boot Hill, I've found that certain sound circuits (defined by the discrete sound system as DISCRETE_OP_AMP_TRIG_VCA) have an extra connection to +12V which is neither modeled in the driver nor mentioned anywhere in the code. There may be a good reason this connection isn't modeled (see below), but the discrepancy should at least be explained in comments to avoid confusing people who are trying to learn the discrete sound system by examining existing drivers.

An example is the circuit used for tone and music generation in Double Play and Extra Inning. As modeled by the driver, this circuit has the following schematic:

               10K
    +12V >----ZZZZ-----.               3.3M
             .----.    |   +12V >------ZZZZ---.
digital tone | F0 |----+                      |
(0 = gnd,    '----'    |               680K   |   680K
 1 = open)             '---------------ZZZZ---+---ZZZZ--.
                                              |         |
                                              |  |\     |
                                              |  | \    |
                                              '--|- \   |
enable input .----.    diode              680K   |   >--+----> Netlist Node
(0 = gnd,    | F2 |--+--|>|--+------------ZZZZ-+-|+ /
 1 = open)   '----'  |       |                   | /
                     |      ---                  |/
               10K   |      --- 0.001uF         
    +12V >----ZZZZ---'       |                  
                            gnd                 

The actual schematic (attached to this bug) shows the following circuit. The only difference is the connection from the LM3900 op-amp's output to +12V via a 27K resistor:

               10K
    +12V >----ZZZZ-----.               3.3M                  27K
             .----.    |   +12V >------ZZZZ---.         .---ZZZZ---< +12V
digital tone | F0 |----+                      |         |
(0 = gnd,    '----'    |               680K   |   680K  |
 1 = open)             '---------------ZZZZ---+---ZZZZ--+
                                              |         |
                                              |  |\     |
                                              |  | \    |
                                              '--|- \   |
enable input .----.    diode              680K   |   >--+----> Netlist Node
(0 = gnd,    | F2 |--+--|>|--+------------ZZZZ-+-|+ /
 1 = open)   '----'  |       |                   | /
                     |      ---                  |/
               10K   |      --- 0.001uF         
    +12V >----ZZZZ---'       |                  
                            gnd                 

When I looked at the comment in discrete.h describing DISCRETE_OP_AMP_TRIG_VCA, I found that it has no means of modeling this connection. As it turns out, when I tried modeling the circuit's operation by hand in Qucs, I found that it should have no effect at all on the op-amp's output voltage level, on the amount of current flowing through the op-amp's feedback path, or on the amount of difference current between the op-amp inputs. (The op-amp is a Norton op-amp which works by measuring current differences.) The only effect it seemed to have would be to change the op-amp's output from a small net source of current to a larger net sink of current. The amount of current sunk would be well within the limits specified in the LM3900 datasheet, so it would not be a problem. But why Midway would choose to push current into the LM3900 outputs like this is a mystery to me.

Midway seems to have used this configuration (tying the LM3900 outputs to +12V via a 27K resistor) not just in Double Play's tone and music circuits, but also in its siren and whistle circuits. They did the same in the corresponding circuits in Extra Inning (which has sound circuitry identical to Double Play), and also in the tone, shot, and hit circuits in Boot Hill. So this doesn't look like a simple mistake on one schematic. They might also have used this practice in other games' sound circuits, but I haven't checked all the possibilities. Some games which I suspect may have done this are Clowns, Desert Gun, and Dog Patch, but I can't find schematics for their sound.

If this does in fact have no effect on the model, it might be best to explain its purpose and why the model isn't affected either in the mw8080bw.c sound code or, if this was also done by other games not in that driver, in the comment for DISCRETE_OP_AMP_TRIG_VCA.
Steps To Reproduce
Additional Information
Github Commit
Flags Verified with Original
Regression Version
Affected Sets / Systems dplay, einning, boothill
Attached Files
pdf file icon Double_Play_Game_Logic_0619-00902A_(4-1-1977).pdf (800,489 bytes) Feb 6, 2009, 15:08
pdf file icon Extra_Innings_Game_Logic_(A084-90700-A642).pdf (2,621,124 bytes) Feb 6, 2009, 15:15
pdf file icon Boot_Hill_Game_Logic_(0612-00902A).pdf (545,974 bytes) Feb 6, 2009, 15:17
Relationships
There are no relationship linked to this issue.
Notes
2
User avatar
No.03728
chowell
Developer
Feb 6, 2009, 15:18
Just uploaded the game logic PCB schematics for Extra Inning and Boot Hill for comparison.
User avatar
No.03842
derrickr
Developer
Feb 27, 2009, 20:21
edited on: Feb 28, 2009, 02:42
Sorry, I just assumed that people would know that any pull-up resistor attached to an output of an op-amp has no bearing on the simulation. An op-amp by definition has infinite input resistance and 0 output resistance. In actual use this is not true, but the low output resistance will make the pullup resistor have no simulation effect. It is only a load resistor for circuit stability. And sorry, but I don't have any intention of mentioning every part that has no bearing on the simulation. Consider it in the same boat as B+ filter caps, or circuits that receive their power through a low value resitor to a cap. This is just a B+ filter and would be ignored, etc. Thanks for checking the circuit and I hope this explaination helps. I do like that you modeled it yourself and found out it's (non)effect. Learn by expierence. :)

Thanks for the indepth report though. Keep up the good work and keep analizing the code. MAME is always looking for new recruits.