- --
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
|
Double_Play_Game_Logic_0619-00902A_(4-1-1977).pdf (800,489 bytes) Feb 6, 2009, 15:08
| ||||
Extra_Innings_Game_Logic_(A084-90700-A642).pdf (2,621,124 bytes) Feb 6, 2009, 15:15
| |||||
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
No.03728
chowell Developer
Feb 6, 2009, 15:18
|
Just uploaded the game logic PCB schematics for Extra Inning and Boot Hill for comparison. |
---|---|
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. |