Eight Ball Deluxe

Partial

Bally1981BY35bally.eight-ball-deluxe.1981

1 unresolved conflict

  • The retained known-working table's own title reads "Eight Ball Deluxe (Bally 1980)", but pinned driver.c dates every eballdlx-family CORE_GAMEDEFNV/CORE_CLONEDEFNV entry 1981, and this manual's own printed copyright ("COPYRIGHT MCMLXXXIV BY BALLY MIDWAY MFG. CO.", 1984) is neither value -- it is a later reprint date under the merged "Bally Midway" imprint that did not exist until 1983-84, not the physical machine's release year. This definition uses 1981, matching the pinned driver and the pre-existing stub identity; the table author's "1980" is treated as an informal/incorrect dating rather than a competing authority. See knowledge/bally/eight-ball-deluxe-1981.md. machine.year

Wire it up

what an authoring tool needs first
Bind this ROM
eballdlx

6 ROM sets resolve to this machine. Clones share the definition unless a hardware difference is listed.

Controller platform
pinmame.by35

PinMAME already reports logical active state. Do not invert again in the table — normally-closed is a physical fact recorded per switch, not a runtime transform.

Displays
  • Player 1 score, seven digits7 digits
  • Player 2 score, seven digits7 digits
  • Player 3 score, seven digits7 digits
  • Player 4 score, seven digits7 digits
  • Credits, two digits2 digits
  • Match and ball in play, two digits2 digits
Address space
Switches
-7–40 (43)
Solenoids
1–20 (20)
Lamps
1–119 (74)
DIP
1–32 (32)

Playfield

Where each address physically sits. The switch and lamp maps below show the electrical layout — this shows the same devices as the player sees them.

Playfield map

128 placements · 17 stacked · normalised player view · outline is nominal

21 2X In-Line Drop Target · 10 4-Bank Drop Target Reset (Bank 2) / #2, 10 Drop Target Reset (mode-selected)2 3X In-Line Drop Target3 4X In-Line Drop Target4 5X In-Line Drop Target5 In-Line Back Target38 Outhole · 8 Saucer Kicker / 7-Bank Drop Target Reset (Bank 1, mode-selected) · 9 Outhole Kicker / #1, 9 Drop Target Reset (mode-selected)12 "A" Rollover Lane13 "B" Rollover Lane14 "C" Rollover Lane15 "D" Rollover Lane217 1, 9 Drop Target · 9 Outhole Kicker / #1, 9 Drop Target Reset (mode-selected)218 2, 10 Drop Target · 10 4-Bank Drop Target Reset (Bank 2) / #2, 10 Drop Target Reset (mode-selected)219 3, 11 Drop Target · 11 #3, 11 Drop Target Reset220 4, 12 Drop Target · 12 #4, 12 Drop Target Reset221 5, 13 Drop Target · 13 #5, 13 Drop Target Reset222 6, 14 Drop Target · 14 #6, 14 Drop Target Reset223 7, 15 Drop Target · 15 #7, 15 Drop Target Reset (Bottom)24 30 Point Rebound24 30 Point Rebound25 "D" Target26 "E" Target (First)27 "L" Target28 "U" Target29 "X" Target30 "E" Target (Second)31 Right Outlane32 Left Outlane233 Single Drop Target · 7 Single Drop Target Reset (Bank 3)234 Saucer · 8 Saucer Kicker / 7-Bank Drop Target Reset (Bank 1, mode-selected)35 Rollover Button236 Right Slingshot · 5 Right Slingshot237 Left Slingshot · 4 Left Slingshot338 Left Thumper Bumper · 70 Left Thumper Bumper Flash (A-B-C-D 3000) · 3 Left Thumper Bumper339 Right Thumper Bumper · 86 Right Thumper Bumper Flash (A-B-C-D 3000) · 2 Right Thumper Bumper340 Bottom Thumper Bumper · 102 Bottom Thumper Bumper Flash (A-B-C-D 3000) · 1 Bottom Thumper Bumper1 Bank Shot 50,000 (In-Line Back Target)2 2X (In-Line Multiplier)3 3X (In-Line Multiplier)4 4X (In-Line Multiplier)5 5X (In-Line Multiplier)6 Deluxe 17 Deluxe 28 Deluxe 39 Deluxe 410 Deluxe 511 Deluxe 612 Deluxe 717 "A" Rollover Lane Lit18 Right Lane 20K19 Right Lane 40K20 Right Lane 60K21 Deluxe 8 Ball22 Deluxe Special23 "B" Rollover Lane Lit24 Right Lane Special25 Right Lane 80K26 Same Player Shoots Again28 Extra Ball (Rollover Button)33 8-Ball Target Flash34 Rollover Button 50035 Rollover Button 10,00036 Rollover Button 30,00037 Rollover Button 50,00038 Rollover Button 70,00039 "C" Rollover Lane Lit40 "D" Rollover Lane Lit41 Special (Rollover Button)42 Left Outlane Special44 Right Outlane Special47 Single Drop Target Lit49 High Score to Date50 Game Over51 Tilt53 56K Bonus54 112K Bonus55 Match57 Left Lane Special58 Left Lane X-Ball59 Apron Credit60 Shoot Again63 Saucer Lit (500/7000)65 "X" Target Lit66 "D" Target Lit67 "L" Target Lit68 "E" First Target Lit69 "E" Second Target Lit71 Backbox Deluxe81 1 Rack82 5 Rack83 9 Rack84 13 Rack85 2X Bonus87 3X Bonus97 2 Rack98 6 Rack99 10 Rack100 14 Rack101 Deluxe Backbox Lamp Group (multi-image)103 3 Rack113 4 Rack114 8 Rack115 12 Rack116 4X Bonus117 50X Deluxe118 Special Deluxe119 Player-Up / Ball-in-Play Feature Group26 Knocker · 18 Coin Lockout Door

Hover a marker to identify it, or click to keep it selected. Numbered markers are several devices in one spot — clicking lists them.

Show
Marker shape
  • emitterlights the playfield74
  • sensorsenses the ball35
  • effectmoves the ball19
  • nStackseveral devices in one spot17
124 devices shown

Not on the playfield32 dip switch, 10 cabinet or service, 3 unused — declared rather than missing.

Coverage

Partial

Real evidence exists, but authoring requirements are still missing or in conflict. Verify before shipping a table.

Catalog Identity
validated
Address Enumeration
validated
Semantic Naming
candidate
Physical Wiring
validated
Mechanisms
validated
Variant Coverage
validated
Recreation Knowledge
candidate
Still missing · 4
Input SemanticsOutput SemanticsRecreation NotesUnresolved Conflicts

Switches

The addresses PinMAME reports as closed. Numbers are the public API values, not matrix hardware pins.

43 addresses

Switch map

Sequential addresses, grouped in columns of eight.

used unused
 
+0
+1
+2
+3
+4
+5
+6
+7
1–8
9–16
17–24
25–32
33–40
Hover or tap an address to identify it.

Outside the matrix-7, -6, -5 — dedicated, diagnostic or flipper-column addresses. See the table below.

43 shown
# Name Device ID Evidence
-7
Self Test Switch
switch.diagnostic-7 validated
-6
CPU Diagnostic Lineopt
switch.diagnostic-6 validated
-5
Sound Diagnostic Lineopt
switch.diagnostic-5 validated
1
2X In-Line Drop Target
Leaf
switch.matrix-1 validated
2
3X In-Line Drop Target
Leaf
switch.matrix-2 validated
3
4X In-Line Drop Target
Leaf
switch.matrix-3 validated
4
5X In-Line Drop Target
Leaf
switch.matrix-4 validated
5
In-Line Back Target
Leaf
switch.matrix-5 validated
6
Credit Button
Button
switch.matrix-6 validated
7
Tilt
Tilt
switch.matrix-7 validated
8
Outhole
Leaf
switch.matrix-8 validated
9
Coin Chute III (Right)
Leaf
switch.matrix-9 validated
10
Coin Chute I (Left)
Leaf
switch.matrix-10 validated
11
Coin Chute II (Middle)
Leaf
switch.matrix-11 validated
12
"A" Rollover Lane
Leaf
switch.matrix-12 validated
13
"B" Rollover Lane
Leaf
switch.matrix-13 validated
14
"C" Rollover Lane
Leaf
switch.matrix-14 validated
15
"D" Rollover Lane
Leaf
switch.matrix-15 validated
16
Slam Tilt
Leaf
switch.matrix-16 validated
17
1, 9 Drop Target
Leaf
switch.matrix-17 validated
18
2, 10 Drop Target
Leaf
switch.matrix-18 validated
19
3, 11 Drop Target
Leaf
switch.matrix-19 validated
20
4, 12 Drop Target
Leaf
switch.matrix-20 validated
21
5, 13 Drop Target
Leaf
switch.matrix-21 validated
22
6, 14 Drop Target
Leaf
switch.matrix-22 validated
23
7, 15 Drop Target
Leaf
switch.matrix-23 validated
24
30 Point Rebound
Leaf
switch.matrix-24 validated
25
"D" Target
Leaf
switch.matrix-25 validated
26
"E" Target (First)
Leaf
switch.matrix-26 validated
27
"L" Target
Leaf
switch.matrix-27 validated
28
"U" Target
Leaf
switch.matrix-28 validated
29
"X" Target
Leaf
switch.matrix-29 validated
30
"E" Target (Second)
Leaf
switch.matrix-30 validated
31
Right Outlane
Leaf
switch.matrix-31 validated
32
Left Outlane
Leaf
switch.matrix-32 validated
33
Single Drop Target
Leaf
switch.matrix-33 validated
34
Saucer
Leaf
switch.matrix-34 validated
35
Rollover Button
Leaf
switch.matrix-35 validated
36
Right Slingshot
Leaf
switch.matrix-36 validated
37
Left Slingshot
Leaf
switch.matrix-37 validated
38
Left Thumper Bumper
Leaf
switch.matrix-38 validated
39
Right Thumper Bumper
Leaf
switch.matrix-39 validated
40
Bottom Thumper Bumper
Leaf
switch.matrix-40 validated

Controlled devices

Everything the ROM can energise, grouped the way a table author builds it.

Coils, magnets & motors

20
20 shown
# Name Device ID Kind Evidence
1
Bottom Thumper Bumper
solenoid.1 Coil validated
2
Right Thumper Bumper
solenoid.2 Coil validated
3
Left Thumper Bumper
solenoid.3 Coil validated
4
Left Slingshot
solenoid.4 Coil validated
5
Right Slingshot
solenoid.5 Coil validated
6
Knocker
solenoid.6 Coil validated
7
Single Drop Target Reset (Bank 3)
solenoid.7 Coil validated
8
Saucer Kicker / 7-Bank Drop Target Reset (Bank 1, mode-selected)
solenoid.8 Coil validated
9
Outhole Kicker / #1, 9 Drop Target Reset (mode-selected)
solenoid.9 Coil validated
10
4-Bank Drop Target Reset (Bank 2) / #2, 10 Drop Target Reset (mode-selected)
solenoid.10 Coil validated
11
#3, 11 Drop Target Reset
solenoid.11 Coil validated
12
#4, 12 Drop Target Reset
solenoid.12 Coil validated
13
#5, 13 Drop Target Reset
solenoid.13 Coil validated
14
#6, 14 Drop Target Reset
solenoid.14 Coil validated
15
#7, 15 Drop Target Reset (Bottom)
solenoid.15 Coil validated
16
Unused Momentary Solenoid Position 16
solenoid.16 Coil validated
17
Unused Continuous Output 17
solenoid.17 Coil validated
18
Coin Lockout Door
solenoid.18 Coil validated
19
K1 Relay (Flipper Enable)
solenoid.19 Relay validated
20
Unused Continuous Output 20
solenoid.20 Coil validated

Lamps

74

Lamp map

Sequential addresses, grouped in columns of eight.

used unused
 
+0
+1
+2
+3
+4
+5
+6
+7
1–8
9–16
17–24
25–32
33–40
41–48
49–56
57–64
65–72
73–80
81–88
89–96
97–104
105–112
113–120
Hover or tap an address to identify it.
74 shown
# Name Device ID Evidence
1
Bank Shot 50,000 (In-Line Back Target)
lamp.1 validated
2
2X (In-Line Multiplier)
lamp.2 validated
3
3X (In-Line Multiplier)
lamp.3 validated
4
4X (In-Line Multiplier)
lamp.4 validated
5
5X (In-Line Multiplier)
lamp.5 validated
6
Deluxe 1
lamp.6 validated
7
Deluxe 2
lamp.7 validated
8
Deluxe 3
lamp.8 validated
9
Deluxe 4
lamp.9 validated
10
Deluxe 5
lamp.10 validated
11
Deluxe 6
lamp.11 validated
12
Deluxe 7
lamp.12 validated
17
"A" Rollover Lane Lit
lamp.17 validated
18
Right Lane 20K
lamp.18 validated
19
Right Lane 40K
lamp.19 validated
20
Right Lane 60K
lamp.20 validated
21
Deluxe 8 Ball
lamp.21 validated
22
Deluxe Special
lamp.22 validated
23
"B" Rollover Lane Lit
lamp.23 validated
24
Right Lane Special
lamp.24 validated
25
Right Lane 80K
lamp.25 validated
26
Same Player Shoots Again
lamp.26 validated
28
Extra Ball (Rollover Button)
lamp.28 validated
33
8-Ball Target Flash
lamp.33 validated
34
Rollover Button 500
lamp.34 validated
35
Rollover Button 10,000
lamp.35 validated
36
Rollover Button 30,000
lamp.36 validated
37
Rollover Button 50,000
lamp.37 validated
38
Rollover Button 70,000
lamp.38 validated
39
"C" Rollover Lane Lit
lamp.39 validated
40
"D" Rollover Lane Lit
lamp.40 validated
41
Special (Rollover Button)
lamp.41 validated
42
Left Outlane Special
lamp.42 validated
44
Right Outlane Special
lamp.44 validated
47
Single Drop Target Lit
lamp.47 validated
49
High Score to Date
lamp.49 validated
50
Game Over
lamp.50 validated
51
Tilt
lamp.51 validated
53
56K Bonus
lamp.53 validated
54
112K Bonus
lamp.54 validated
55
Match
lamp.55 validated
57
Left Lane Special
lamp.57 validated
58
Left Lane X-Ball
lamp.58 validated
59
Apron Credit
lamp.59 validated
60
Shoot Again
lamp.60 validated
63
Saucer Lit (500/7000)
lamp.63 validated
65
"X" Target Lit
lamp.65 validated
66
"D" Target Lit
lamp.66 validated
67
"L" Target Lit
lamp.67 validated
68
"E" First Target Lit
lamp.68 validated
69
"E" Second Target Lit
lamp.69 validated
70
Left Thumper Bumper Flash (A-B-C-D 3000)
lamp.70 validated
71
Backbox Deluxe
lamp.71 validated
81
1 Rack
lamp.81 validated
82
5 Rack
lamp.82 validated
83
9 Rack
lamp.83 validated
84
13 Rack
lamp.84 validated
85
2X Bonus
lamp.85 validated
86
Right Thumper Bumper Flash (A-B-C-D 3000)
lamp.86 validated
87
3X Bonus
lamp.87 validated
97
2 Rack
lamp.97 validated
98
6 Rack
lamp.98 validated
99
10 Rack
lamp.99 validated
100
14 Rack
lamp.100 validated
101
Deluxe Backbox Lamp Group (multi-image)
lamp.101 validated
102
Bottom Thumper Bumper Flash (A-B-C-D 3000)
lamp.102 validated
103
3 Rack
lamp.103 validated
113
4 Rack
lamp.113 validated
114
8 Rack
lamp.114 validated
115
12 Rack
lamp.115 validated
116
4X Bonus
lamp.116 validated
117
50X Deluxe
lamp.117 validated
118
Special Deluxe
lamp.118 validated
119
Player-Up / Ball-in-Play Feature Group
lamp.119 validated

Configuration & other inputs

32 shown
# Name Device ID Evidence
1
Coin Chute I (hinge side) credits-per-coin selector bit 1
dip.option-switch-1 validated
2
Coin Chute I (hinge side) credits-per-coin selector bit 2
dip.option-switch-2 validated
3
Coin Chute I (hinge side) credits-per-coin selector bit 3
dip.option-switch-3 validated
4
Coin Chute I (hinge side) credits-per-coin selector bit 4
dip.option-switch-4 validated
5
Coin Chute I (hinge side) credits-per-coin selector bit 5
dip.option-switch-5 validated
6
Game feature option (function not resolved in this pass)
dip.option-switch-6 candidate
7
Game feature option (function not resolved in this pass)
dip.option-switch-7 candidate
8
A-B-C-D feature: number of drop targets dropped from the 7-bank per completion (1 or 2)
dip.option-switch-8 validated
9
Coin Chute III credits-per-coin selector bit 1
dip.option-switch-9 validated
10
Coin Chute III credits-per-coin selector bit 2
dip.option-switch-10 validated
11
Coin Chute III credits-per-coin selector bit 3
dip.option-switch-11 validated
12
Coin Chute III credits-per-coin selector bit 4
dip.option-switch-12 validated
13
Coin Chute III credits-per-coin selector bit 5
dip.option-switch-13 validated
14
Rollover Button feature: scoring-sequence variant selector
dip.option-switch-14 validated
15
Game feature option (function not resolved in this pass)
dip.option-switch-15 candidate
16
Saucer feature: 56K/112K super-bonus timer multiplier selector
dip.option-switch-16 validated
17
Coin Chute II (center) credits-per-coin selector bit 1
dip.option-switch-17 validated
18
Coin Chute II (center) credits-per-coin selector bit 2
dip.option-switch-18 validated
19
Coin Chute II (center) credits-per-coin selector bit 3
dip.option-switch-19 validated
20
Coin Chute II (center) credits-per-coin selector bit 4
dip.option-switch-20 validated
21
7 Bank & Deluxe Targets feature: recall/reset deluxe lites after each ball
dip.option-switch-21 validated
22
7 Bank & Deluxe Targets feature: advance backbox deluxe lamps on any deluxe hit vs. only on deluxe-SPL
dip.option-switch-22 validated
23
7 Bank & Deluxe Targets feature: deluxe 50,000 award vs. 7-target reset selector
dip.option-switch-23 validated
24
Bank Shot / Deluxe feature: alternate-or-camp scoring selector
dip.option-switch-24 validated
25
Maximum credits selector bit 1
dip.option-switch-25 validated
26
Maximum credits selector bit 2
dip.option-switch-26 validated
27
High Score Feature on/off
dip.option-switch-27 validated
28
Match Feature on/off (also gates Credit Display per the printed adjustment page)
dip.option-switch-28 validated
29
Game feature option (function not resolved in this pass)
dip.option-switch-29 candidate
30
Game feature option (function not resolved in this pass)
dip.option-switch-30 candidate
31
Balls per game selector bit 1
dip.option-switch-31 validated
32
Balls per game selector bit 2
dip.option-switch-32 validated

Mechanisms

Logical assemblies with their actuators, sensors and observed behaviour. Click a chip to jump to the address it refers to.

7-Bank Drop Targets ("1,9" through "7,15", the Deluxe bank)

mechanism.drop-target-bank-1

Drop Target Bank

Seven individual drop targets, printed "1,9" through "7,15" (Feature G, "7 BANK DROP & DELUXE TARGETS"): knocking down 1-7 scores 2000 each and flashes the single "8 ball" target (switch.matrix-33, a different mechanism); a second pass over the same seven targets scores 3000 each as "deluxe" once the 8-ball target has been hit. The retained script's dtbank1 object (script.vbs lines 225-227) wires all seven sensors (sw17-sw23) to one cvpmdroptarget bank. Each target 3-7 has its own small reset coil, fired unconditionally (solenoid.11-15, listed as this mechanism's actuators). Targets 1 and 2 are instead individually re-fired only while Lamp 52 is off, by solenoid.9 (dtbank1.SolHit 1) and solenoid.10 (dtbank1.SolHit 2) respectively -- both owned by their own mechanism below, since Lamp 52 on gives each its more distinctive ball-handling identity. Solenoid.8 (owned by mechanism.saucer) raises this whole bank at once (dtbank1.SolDropUp) while Lamp 52 is off. The manual's own Solenoid Identification Table names each of these seven addresses after its own target pair ("#1, 9 DROP TARGET" through "#7, 15 DROP TARGET").

4-Bank In-Line Drop Targets (2X/3X/4X/5X)

mechanism.drop-target-bank-2

Drop Target Bank

Four drop targets scoring 5000/10,000/15,000/20,000 for the 1st-4th target down and lighting 2X/3X/4X/5X respectively (Feature C, "INLINE DROP & BANK SHOT TARGET FEATURE"). The retained script's dtbank2 object (script.vbs lines 229-231) wires sw1-sw4 to one cvpmdroptarget bank; solenoid 10, in its Lamp(52)=1 identity, raises the whole bank at once (dtbank2.SolDropUp). The related standup "In-Line Back Target" (switch.matrix-5, the "Bank Shot" target scoring 50,000) is a separate, non-drop standup pulsed directly by the ball and is not part of this bank.

Single Drop Target

mechanism.drop-target-single

Drop Target Bank

One drop target (Feature E, "SINGLE DROP TARGET FEATURE"): scores 500 if no right-lane lite is lit, else scores and advances the lit lane value; stays down until the ball returns through lane A or B. The retained script's dtbank3 object (script.vbs lines 233-235) wires sw33 to a one-target cvpmdroptarget bank reset unconditionally by solenoid 7 (Soldtbank3, dtBank3.SolDropUp).

Playfield Saucer

mechanism.saucer

Kicker

Upper-playfield ball-capture saucer (Feature B, "SAUCER FEATURE"): scores the top-right lane SPL award and 500 or 7000 points per lit inline-bank light, plus the 56K/112K super-bonus multiplier. The retained script's bsTP cvpmBallStack object (script.vbs line 220) captures the ball at sw34 and kicks it back into play; solenoid 8, in its Lamp(52)=1 identity, is the kick-out coil (bsTP.SolOut).

Outhole / Ball Trough

mechanism.outhole

Kicker

Ball-drain sensor beneath the playfield (Section II, General Game Operation: "the outhole kicker serves the ball to the shooter alley"). The retained script's bsTrough cvpmBallStack object (script.vbs line 213) captures the drained ball at the Drain kicker (switch.matrix-8) and releases it; solenoid 9, in its Lamp(52)=1 identity, is the release coil (bsTrough.SolOut).

Direct wiring

Connections that exist in copper, not in the ROM. These fire whether or not a game is running.

Recreation notes

Working knowledge that has no schema field yet — edition differences, tuning values, pitfalls.

Eight Ball Deluxe is a Bally MPU AS-2518-35 (BY35) machine, the same physical controller family as Centaur and Kiss, both already curated in this project. It reuses controllers/pinmame/by35.json unchanged, confirmed directly from the pinned driver's own declaration in src/wpc/by35games.c line 1122: INITGAME2(eballdlx,GEN_BY35,dispBy7,FLIP_SW(FLIP_L),8,SNDBRD_BY61,0). dispBy7 means seven-digit player displays (not a DMD); lampCol=8 means a full auxiliary lamp driver board is present, giving PinMAME a public lamp address space of (8+8)*8 = 128, of which this physical machine's retained known-working script drives 74 real addresses.

Year: this definition uses 1981, not the retained table's "1980"

The retained known-working VPX table's own title reads "Eight Ball Deluxe (Bally 1980)". Pinned driver.c dates every driver in the eballdlx family 1981 (CORE_GAMEDEFNV(eballdlx,"Eight Ball Deluxe (rev. 15)",1981,"Bally",...)), and the repository's own pre-existing stub identity is bally.eight-ball-deluxe.1981. This manual's own printed copyright, "COPYRIGHT MCMLXXXIV BY BALLY MIDWAY MFG. CO." (1984), is a third value again — but it is the manual's reprint date under the merged "Bally Midway" imprint, which did not exist until the 1983-84 Bally/Midway merger, not the physical machine's release date. None of the three numbers agree, but only two of them are candidates for the actual release year, and this definition uses 1981 to match the pinned driver and the existing catalog identity; the table author's "1980" is treated as an informal or mistaken date rather than a competing authority. Recorded as conflict.retained-table-year-vs- driver for transparency even though it does not block promotion on its own.

Switch and solenoid address derivation: two different rules on one platform

This game's manual carries no dedicated switch-matrix or lamp-matrix wiring table the way the WPC-era manuals this project has curated do — it is the same compact "Installation and General Game Operation Instructions" format Centaur's and Kiss's manuals use, with a printed Solenoid Identification Table and Switch Assembly Self-Test Display Numbers table (both keyed by "Self Test #", not the public controller address) plus a full playfield wiring schematic (W-1192-28C). Centaur's and Kiss's curations already established that a printed Self-Test # must never be assumed equal to the public address without independent verification. Running the pinned LibPinMAME native library against the user's own legally held eballdlx ROM through tools/run_pinmame_harness.py settled both tables definitively, and the two turned out to follow different rules:

  • Switches: holding each public address 1-40 in turn during the ROM's own "search each switch assembly for stuck contacts" self-test stage displayed that exact address on the player score displays. The public switch address equals the printed Self-Test # directly, with no translation. The playfield wiring schematic (W-1192-28C) independently confirms this: reading its five-column, eight-row switch matrix grid column-major (address = (column-1)*8+row+1) reproduces the printed Self-Test # for every switch on the sheet.
  • Solenoids: the automatic 20-step solenoid self-test cycle (entered after six presses of the self-test button and then running unattended, repeating identically every ~20 seconds) shows that the printed Self-Test # is not the public address for solenoids. Self-test 01 (LEFT SLINGSHOT) fires public address 4; self-test 03 (KNOCKER) fires public address 6 — independently confirmed by the retained script's own SolCallback(6) = "...Knocker..." — and so on through the full derived table recorded in review-artifacts/eight-ball-deluxe/manual-transcription.md.

This is worth carrying forward: a manual's two address tables on the same platform, even the same page, can follow entirely different public-address rules. Confirming one does not license assuming the other follows the same pattern; each needs its own independent check.

Three solenoids are genuinely dual-function, gated by one lamp

Public solenoid addresses 8, 9, and 10 each answer to two self-test identities:

Address Lamp 52 off Lamp 52 on
8 7-Bank Drop Target Reset (self-test 15) Saucer Kicker (self-test 17)
9 #1, 9 Drop Target Reset (self-test 08) Outhole Kicker (self-test 18)
10 #2, 10 Drop Target Reset (self-test 09) 4-Bank Drop Target Reset (self-test 16)

This is not a harness artifact or a coincidence of the auto-cycle: the retained known-working script's own SolSaucer, SolBallRelease, and SolReset subs (script.vbs lines 77-108) each branch explicitly on Controller.Lamp(52) and call a different physical action in each branch — independently reproducing the exact same three dual-function addresses the harness found, from a completely different kind of evidence (script logic vs. runtime tracing). Both self-test identities are recorded as manual.self-test aliases on the one output device; the device is not split into two records, because it is one physical coil.

The practical reading: Lamp 52 appears to be a "feature active" flag — most plausibly tied to the saucer/Add-a-Ball state described in Section IV's SAUCER FEATURE — that repurposes three coils which are otherwise individual per-target drop-bank reset actuators into ball-handling actuators (trough release, saucer kick, and a second bank-wide reset) while that feature is active. This curation did not attempt to fully reconstruct the exact rule that sets Lamp 52, since that is gameplay-rule reconstruction beyond the address-and-wiring scope of this pass; it is recorded here as a lead rather than asserted as settled.

Flippers are not CPU-controlled

eballdlx declares FLIP_SW(FLIP_L) — a switch mask — and no FLIP_SOL bit at all. In src/wpc/core.c, core_updateSw's if ((flip & FLIP_SOL(FLIP_L)) == 0) branch is true for this game, so PinMAME fakes the flipper solenoids rather than reading real driver-board output for them: the flipper coils fire directly off the physical flipper buttons through a relay circuit (publicly enumerated as solenoid 19, "K1 Relay (Flipper Enable)"), not through any CPU-timed solenoid address. This matches the by35 platform note already established by Centaur and Kiss: FLIP_SWL/FLIP_SWR are both zero for this flip value, so no dedicated flipper-button switch position is copied into the game's own switch matrix either, and the generic flipper column at internal index 11 (public 81-88) is never read by this ROM.

Three drop-target banks, one saucer, one outhole

The retained script's own mechanism wiring (script.vbs lines 225-235) is unambiguous and gives three separate cvpmdroptarget banks:

  • 7-target bank ("Deluxe" bank, switches 17-23, self-test-table-named "1,9" through "7,15"): Feature G. Completing it once scores 2000 per target and flashes the single "8 Ball" standup (switch 33 in the switch table's numbering is actually the Single Drop Target — the "8 Ball" flash is driven by lamp 33, a separate lamp address, not a matrix switch); completing the same seven targets a second pass scores 3000 each as "deluxe". Reset is solenoid 8's Lamp(52)=0 identity (whole-bank raise); solenoids 9 (Lamp 52 off), 10 (Lamp 52 off), and 11-15 unconditionally each re-fire one target's individual drop/reset animation.
  • 4-target bank ("In-Line" targets, switches 1-4): Feature C. 1st-4th target down scores 5000/10,000/15,000/20,000 and lights 2X/3X/4X/5X. Reset is solenoid 10's Lamp(52)=1 identity. The related "In-Line Back Target" (switch 5, "Bank Shot", scoring 50,000) is a separate fixed standup, not part of this drop bank.
  • Single target (switch 33): Feature E. Scores 500, or scores and advances the lit right-lane value; stays down until the ball returns through lane A or B. Reset is solenoid 7 unconditionally.

The saucer (switch 34, Feature B) is a ball-capture mechanism (bsTP, a cvpmBallStack object) kicked out by solenoid 8's Lamp(52)=1 identity. The outhole (switch 8, the ball-drain sensor beneath the playfield) is a second cvpmBallStack object (bsTrough) released by solenoid 9's Lamp(52)=1 identity.

Direct switch-to-coil relationships (no CPU timing)

The Solenoid Identification Table carries its own note directly beneath the printed table: "NOTE: SLINGSHOT & THUMPER BUMPER COILS WILL BE ENERGIZED WHEN SWITCH IS MADE." This is the manual's own statement that solenoids 1-5 (the two slingshots and three thumper bumpers) are wired directly to their switch, not fired under ROM timing control the way every other solenoid on this machine is; the retained script has no SolCallback entry for any of addresses 1-5, consistent with a direct hardware relationship rather than a scripted one. This definition records five direct relationship entries for these pairs (switch 38 -> solenoid 3, 39 -> 2, 40 -> 1 for the bumpers; 36 -> 5, 37 -> 4 for the slingshots).

General illumination is uncontrolled — no pinmame.output.gi group exists for this platform

The playfield wiring schematic (W-1192-28C) wires General Illumination as a bare two-wire AC circuit — 40-A2J1-6 and 50-A2J1-3 RET. feeding "GEN. ILLUM. (23)" — with no lamp-driver or solenoid-driver connector anywhere in the path. This matches the retained script's own behavior: For each xx in GI: xx.State = 1 runs once at table load and is never called again. The BY35 controller profile has no pinmame.output.gi group at all (unlike the System 11 and WPC platforms already curated in this project, where GI is at minimum a pair of ordinary solenoid addresses or a dedicated dimmable channel) — this schematic is the physical reason: there is no CPU path to general illumination on this machine at all. Following the project rule that a device without any controller binding is not a controller-addressable device, this definition does not enumerate the retained table's 26 Light.GI_* playfield-illumination bulb objects as outputs; they are real physical bulbs, but they are not devices this or any recreation binds to a controller address.

Auxiliary lamp board (addresses 97-116): enumerated, not fully traced to the schematic

Unlike Centaur's and Kiss's curations, which traced their AS-2518-43 auxiliary lamp board all the way from PinMAME's public address through the decoder/SCR chain to the exact A5Jx/A9Jx connector pin, this pass used the retained known-working script's own explicit NFadeLm <address>, l<address> bindings (script.vbs lines 476-679) as the address-enumeration and spatial-placement source for the auxiliary board (addresses 97-116, plus the multi-image backbox lamp groups at 101, 117, 118, and 119), and did not additionally derive each address's own SCR-to-connector-pin identity from the wiring schematic's A5J1/A5J3-to-A9J2/A9J3 tables (visible on the same W-1192-28C sheet, "1 RACK" through "50X DELUXE"/"SPECIAL DELUXE"). The addresses and positions are runtime-validated; the exact physical board-pin path for each one is not. This is why coverage.missing names output_semantics and the record stays partial.

DIP option switches: partially resolved

The AS-2518-35 MPU module carries four eight-position DIP banks (S1-S32; BY35HW_DIP4 is unconditionally set for GEN_BY35 in src/wpc/by35.c's MACHINE_INIT(by35)). Section V.B and the Feature Operation section (Section IV) between them document the function of 27 of the 32 switches: coin-chute credit ratios (1-5, 9-13, 17-20), maximum credits (25-26), high score feature (27), match feature/credit display (28), balls per game (31-32), and seven feature-specific switches named inline in Section IV (8, 14, 16, 21, 22, 23, 24). Switches 6, 7, 15, 29, and 30 are not named anywhere in the pages read for this pass; they are recorded with a candidate provenance and an honest "function not resolved in this pass" label rather than a guess. This is why coverage.missing names input_semantics and the record stays partial.

Physical switch construction

The manual's own "ASSEMBLY ADJUSTMENTS: GENERAL" section (page 18) states plainly: "All switch assemblies consist of leaf springs, contacts, separators, plastic tubing and screws" — a machine-wide statement, not a per-switch specification. No switch on this 1981 machine is opto-constructed (optos are a later Williams/Bally convention); every matrix switch in this definition is recorded leaf except the physical credit pushbutton (button) and the plumb-bob tilt mechanism (tilt).

Physical family

The physical family is the six-driver eballdlx clone tree: eballdlx (production revision 15, the reference for this definition), eballd14 (revision 14, earlier firmware), and four later Bally/Oliver and community free-play/rules/bugfix conversions (eballdla, eballdlb, eballdlc, eballdld) that keep the identical switch matrix, solenoid table, lamp boards, and playfield. Every driver is physically identical. eballchp (Eight Ball Champ, 1985) and eightbll (Eight Ball, 1977) are unrelated physical machines with their own separate stubs and must not be merged into this family.

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
eballdldEight Ball Deluxe (P2/4 Bonus Bugfix)
2019 community firmware fix ("P2/4 Bonus Bugfix") based on revision 15, correcting a player 2/4 bonus countdown defect; no controller-address or playfield change.
2019eballdlxidentical
eballdlcEight Ball Deluxe (modified rules rev. 32)
2007 Bally/Oliver modified-rules conversion, revision 32; same physical machine and address space as eballdlb.
2007eballdlxidentical
eballdlbEight Ball Deluxe (modified rules rev. 29)
2007 Bally/Oliver modified-rules conversion, revision 29. Replaces both game ROMs with a rules variant; same physical machine and address space.
2007eballdlxidentical
eballdlaEight Ball Deluxe (Free Play)
2004 Bally/Oliver free-play conversion, revision 1. Keeps the production 838-15 game ROM and replaces only the sound-select ROM at U6 with a free-play variant; no hardware change.
2004eballdlxidentical
eballdlxEight Ball Deluxe (rev. 15)
Production revision 15 game ROM (838-15) shipped with the physical machine; the reference driver for this definition. Pinned driver.c declares GEN_BY35, dispBy7 (seven-digit displays), FLIP_SW(FLIP_L), lampCol=8 (an auxiliary lamp driver board is present), SNDBRD_BY61 (Squawk & Talk speech), and BY35GD_NOSOUNDE.
1981identical
eballd14Eight Ball Deluxe (rev. 14)
Revision 14 game ROM (838-14); an earlier firmware revision of the same physical machine with no controller-address or playfield change.
1981eballdlxidentical

Parent set: eballdlx — clones share this definition unless a hardware difference is noted.

Evidence

Every claim above traces to one of these. When they disagree: a known-working VPX script wins on controller addresses and causality, the manual wins on wiring and construction, pinned PinMAME wins on emulator routing and display layout.

  • PinMAME catalog

    BSD-3-Clause

    pinmame.catalog.4ec52ff0ac13

    Pinned catalog driver records for the eballd*/fball_ii-adjacent eballdlx clone tree

    by
    PinMAME contributors
    rev
    4ec52ff0ac13
  • PinMAME source

    BSD-3-Clause

    pinmame.core.4ec52ff0ac13

    src/wpc/by35games.c INITGAME2(eballdlx,GEN_BY35,dispBy7,FLIP_SW(FLIP_L),8,SNDBRD_BY61,0) and its five eballd14/eballdla/eballdlb/eballdlc/eballdld clone records; src/wpc/by35.c MACHINE_INIT(by35) hardware setup (BY35HW_DIP4 always set for GEN_BY35, giving four DIP banks S1-S32), pia0b_r switch-column read, pia1b_w solenoid selector and continuous nibble, by35_lampStrobe; src/wpc/by35.h BY35_SWSELFTEST/BY35_SWCPUDIAG/BY35_SWSOUNDDIAG constants and BY35GD_NOSOUNDE; src/wpc/core.h CORE_SOLBIT and lamp-column sizing; src/libpinmame/libpinmame.h PINMAME_HARDWARE_GEN_BY35

    by
    PinMAME contributors
    rev
    4ec52ff0ac13
  • Human review

    BSD-3-Clause

    controller-profile.pinmame-by35

    Bally MPU AS-2518-35 public switch, DIP, solenoid, and lamp address rules

    internal:controllers/pinmame/by35.json
    by
    PinMAME contributors
    rev
    repository
  • Operator manual

    manual.bally.eight-ball-deluxe.1981

    54-page Bally Midway "Installation and General Game Operation Instructions" manual (Internet Archive item arcademanual_Eight_Ball_Deluxe_OPS, Game No. 0B87). PDF page 22 (printed page 17) carries the Solenoid Identification Table and Switch Assembly Self-Test Display Numbers table; PDF page 41 carries the full playfield wiring schematic W-1192-28C; PDF pages 8-9 (printed 3-4) carry Section IV Feature Operation and Scoring; PDF pages 10-13 (printed 5-7) carry Section V Game Adjustments including the 32-position DIP bank tables.

    external:pinmame-manuals/by-machine/bally.eight-ball-deluxe.1981/archive-arcademanual_Eight_Ball_Deluxe_OPS/Eight_Ball_Deluxe_OPS.pdf
    by
    Bally Midway Mfg. Co.; scan hosted by the Internet Archive
    sha256
    80997521916a…
  • Human review

    manual-support.bally.eight-ball-deluxe.1981

    Retained human transcription of every manual table used by this definition, the page-to-PDF-index mapping, and the full LibPinMAME harness derivation of the switch and solenoid public address tables, together with the rendered PNG page cache under external:pinmame-manuals/rendered/bally.eight-ball-deluxe.1981/.

    external:pinmame-review-artifacts/eight-ball-deluxe/manual-transcription.md
    by
    pinmame-game-defs curation
    rev
    2026-08-07
    sha256
    c8c410cdc9e5…
  • Runtime run

    runtime.eight-ball-deluxe.self-test

    LibPinMAME harness traces against the pinned native library (revision 4ec52ff0ac133ac251681518aed2249e19fe26eb) and the user's own legally held eballdlx ROM, generated by tools/run_pinmame_harness.py. soltest6.json is the clean, uninterrupted 20-step solenoid self-test cycle used to derive the solenoid Self-Test-#-to-public-address table; swtest2.json holds public switch addresses 1-40 during the stuck-switch search stage and confirms the switch address equals its printed Self-Test # directly. ROM bytes and NVRAM are not retained; only the harness's own JSON event logs are.

    external:pinmame-review-artifacts/eight-ball-deluxe/harness/
    by
    pinmame-game-defs curation
    rev
    2026-08-07
  • VPX table

    vpx-table.ebd-bord-1-0-1

    Retained known-working table "Eight Ball Deluxe 1.0.1", based on a script by 32assassin, authored by Bord. Exact playfield bounds are left=0 top=0 right=952 bottom=1974; normalized coordinates are x/952 and y/1974. Geometry authority only for named table objects. The retained table's own title reads "(Bally 1980)"; see the knowledge note for why this definition uses 1981.

    external:pinmame-vpx-sources/bally/eight-ball-deluxe-1981/source/Eight%20Ball%20Deluxe%20%28Bally%201980%29.vpx
    by
    Bord, based on a script by 32assassin
    sha256
    47b2a634d1b0…
  • VPX script

    vpx-script.ebd-bord-1-0-1

    Retained embedded script (44,745 bytes). Runtime and mechanism-causality authority: cGameName = "eballdlx", Const UseSolenoids = 1, Const UseLamps = 0 with per-address NFadeLm/NFadeL fader calls (lines 476-679) as the lamp-enumeration source, the SolCallback table for solenoids 6-15 and 19, the Controller.Lamp(52) mode branch inside SolSaucer/SolBallRelease/SolReset (lines 77-108) that gives solenoids 8/9/10 their dual identity, and the dtbank1/dtbank2/dtbank3 cvpmdroptarget mechanism wiring (lines 225-235).

    external:pinmame-vpx-sources/bally/eight-ball-deluxe-1981/extracted-vpxtool/script.vbslines 476-679) as the lamp-enumeration source, the SolCallback table for solenoids 6-15 and 19, the Controller.Lamp(52) mode branch inside SolSaucer/SolBallRelease/SolReset (lines 77-108) that gives solenoids 8/9/10 their dual identity, and the dtbank1/dtbank2/dtbank3 cvpmdroptarget mechanism wiring (lines 225-235
    by
    Bord, based on a script by 32assassin
    sha256
    d08e2d4c01f3…
  • VPX table

    vpx-extraction.ebd-bord-1-0-1

    Canonical manifest covering every sorted relative POSIX path, byte size, and SHA-256 under extracted-vpxtool; manifest SHA-256 e72bfe3918dfdd1e76a4af8fb02352a60cbebb0a3036195f8541bc5ec7451946; 977 files, 74250817 bytes, produced with vpxtool git:v0.33.3 from the retained table. Bounds are left=0 top=0 right=952 bottom=1974.

    external:pinmame-vpx-sources/bally/eight-ball-deluxe-1981/extracted-vpxtool.manifest.json
    by
    vpxtool extraction

Something wrong or missing?

This definition still has 4 unmet requirements, listed under Coverage above. Fixes belong in the definition itself — editing on GitHub forks it for you and opens the pull request.

Cite a source for anything you change — a manual page, a line in a working VPX script, PinMAME source, or a reading from the machine's own service menu. Claims without provenance cannot be validated.

Same platform