Skip to content

Commit 88e87f8

Browse files
committed
games: Add TRON legacy definition.
1 parent 32b1d6a commit 88e87f8

File tree

5 files changed

+291
-92
lines changed

5 files changed

+291
-92
lines changed

VisualPinball.Engine.PinMAME.Unity/Editor/PinMameGamelogicEngineInspector.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ private void OnEnable()
6868
new StarTrekEnterprise(),
6969
new Terminator2(),
7070
new TheWalkingDead(),
71+
new TRONLegacy(),
7172
};
7273

7374
_gameNames = new[] {"-- none --"}
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
// Visual Pinball Engine
2+
// Copyright (C) 2021 freezy and VPE Team
3+
//
4+
// This program is free software: you can redistribute it and/or modify
5+
// it under the terms of the GNU General Public License as published by
6+
// the Free Software Foundation, either version 3 of the License, or
7+
// (at your option) any later version.
8+
//
9+
// This program is distributed in the hope that it will be useful,
10+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
// GNU General Public License for more details.
13+
//
14+
// You should have received a copy of the GNU General Public License
15+
// along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
17+
using System;
18+
using VisualPinball.Engine.Game.Engines;
19+
using VisualPinball.Engine.PinMAME.MPUs;
20+
21+
namespace VisualPinball.Engine.PinMAME.Games
22+
{
23+
[Serializable]
24+
public class TRONLegacy : Sam
25+
{
26+
public override string Name => "TRON Legacy - Limited Edition";
27+
public override string Id => "trn";
28+
public override int Year => 2011;
29+
public override string Manufacturer => "Stern";
30+
public override int IpdbId => 5707;
31+
public override PinMameRom[] Roms { get; } = {
32+
new PinMameRom("trn_100h", "1.00h"),
33+
new PinMameRom("trn_110h", "1.10h"),
34+
new PinMameRom("trn_110", "1.10"),
35+
new PinMameRom("trn_120", "1.20"),
36+
new PinMameRom("trn_130h", "1.30h"),
37+
new PinMameRom("trn_140", "1.4"),
38+
new PinMameRom("trn_140h", "1.40h"),
39+
new PinMameRom("trn_150", "1.50"),
40+
new PinMameRom("trn_160", "1.6"),
41+
new PinMameRom("trn_170", "1.7"),
42+
new PinMameRom("trn_174", "1.74"),
43+
new PinMameRom("trn_174h", "1.74h"),
44+
new PinMameRom("trn_17402", "1.7402"),
45+
new PinMameRom("trn_1741h", "1.741h"),
46+
};
47+
48+
protected override GamelogicEngineSwitch[] Switches { get; } = {
49+
new GamelogicEngineSwitch("01") { Description = "TRO(N)" },
50+
new GamelogicEngineSwitch("02") { Description = "TR(O)N" },
51+
new GamelogicEngineSwitch("03") { Description = "T(R)ON" },
52+
new GamelogicEngineSwitch("04") { Description = "(T)RON" },
53+
new GamelogicEngineSwitch("07") { Description = "(Z)USE" },
54+
new GamelogicEngineSwitch("08") { Description = "Z(U)SE" },
55+
new GamelogicEngineSwitch("11") { Description = "Video Game Eject" },
56+
new GamelogicEngineSwitch("12") { Description = "Zen Rollover" },
57+
new GamelogicEngineSwitch("13") { Description = "ZUS(E)" },
58+
new GamelogicEngineSwitch("14") { Description = "C(L)U" },
59+
new GamelogicEngineSwitch("18") { Description = "Trough #4 Left" },
60+
new GamelogicEngineSwitch("19") { Description = "Trough #3" },
61+
new GamelogicEngineSwitch("20") { Description = "Trough #2" },
62+
new GamelogicEngineSwitch("21") { Description = "Trough #1 Right" },
63+
new GamelogicEngineSwitch("22") { Description = "Trough Jam" },
64+
new GamelogicEngineSwitch("23") { Description = "Shooter Lane" },
65+
new GamelogicEngineSwitch("24") { Description = "Left Outlane" },
66+
new GamelogicEngineSwitch("25") { Description = "(C)LU" },
67+
new GamelogicEngineSwitch("26") { Description = "Left Slingshot" },
68+
new GamelogicEngineSwitch("27") { Description = "Right Slingshot" },
69+
new GamelogicEngineSwitch("28") { Description = "CL(U)" },
70+
new GamelogicEngineSwitch("29") { Description = "Right Outlane" },
71+
new GamelogicEngineSwitch("30") { Description = "Left Bumper" },
72+
new GamelogicEngineSwitch("31") { Description = "Right Bumper" },
73+
new GamelogicEngineSwitch("32") { Description = "Bottom Bumper" },
74+
new GamelogicEngineSwitch("34") { Description = "Right Ramp Exit" },
75+
new GamelogicEngineSwitch("35") { Description = "Left Ramp Entrance" },
76+
new GamelogicEngineSwitch("36") { Description = "Right Orbit Spinner" },
77+
new GamelogicEngineSwitch("37") { Description = "Left Ramp Exit" },
78+
new GamelogicEngineSwitch("38") { Description = "Right Ramp Entrance" },
79+
new GamelogicEngineSwitch("39") { Description = "Right Inner Loop" },
80+
new GamelogicEngineSwitch("41") { Description = "Disc Opto" },
81+
new GamelogicEngineSwitch("43") { Description = "Left Orbit" },
82+
new GamelogicEngineSwitch("44") { Description = "Left Spinner" },
83+
new GamelogicEngineSwitch("46") { Description = "Right Orbit" },
84+
new GamelogicEngineSwitch("48") { Description = "ZU(S)E" },
85+
new GamelogicEngineSwitch("49") { Description = "Recognizer 3-Bank (Left)" },
86+
new GamelogicEngineSwitch("50") { Description = "Recognizer 3-Bank (Center)" },
87+
new GamelogicEngineSwitch("51") { Description = "Recognizer 3-Bank (Right)" },
88+
new GamelogicEngineSwitch("52") { Description = "3-Bank Motor (Down)" },
89+
new GamelogicEngineSwitch("53") { Description = "3-Bank Motor (Up)" },
90+
new GamelogicEngineSwitch("54") { Description = "Recognizer Motor Pos 1" },
91+
new GamelogicEngineSwitch("55") { Description = "Recognizer Motor Pos 2" },
92+
new GamelogicEngineSwitch("56") { Description = "Recognizer Motor Pos 3" }
93+
};
94+
95+
public override GamelogicEngineLamp[] AvailableLamps { get; } = {
96+
new GamelogicEngineLamp("01") { Description = "TRO(N)" },
97+
new GamelogicEngineLamp("02") { Description = "TR(O)N" },
98+
new GamelogicEngineLamp("03") { Description = "T(R)ON" },
99+
new GamelogicEngineLamp("04") { Description = "(T)RON" },
100+
new GamelogicEngineLamp("05") { Description = "Tron Double Scoring" },
101+
new GamelogicEngineLamp("06") { Description = "Bumpers" },
102+
new GamelogicEngineLamp("07") { Description = "Spinners" },
103+
new GamelogicEngineLamp("08") { Description = "Left Outlane" },
104+
new GamelogicEngineLamp("09") { Description = "(C)LU" },
105+
new GamelogicEngineLamp("10") { Description = "Z(U)SE" },
106+
new GamelogicEngineLamp("11") { Description = "Left Ramp (Light Cycle)" },
107+
new GamelogicEngineLamp("12") { Description = "(Z)USE" },
108+
new GamelogicEngineLamp("13") { Description = "Left Orbit (CLU)" },
109+
new GamelogicEngineLamp("14") { Description = "Left Orbit (Light Cycle)" },
110+
new GamelogicEngineLamp("15") { Description = "Left Orbit (Disc)" },
111+
new GamelogicEngineLamp("16") { Description = "Left Loop Arrow" },
112+
new GamelogicEngineLamp("17") { Description = "Center Portal" },
113+
new GamelogicEngineLamp("18") { Description = "Center TRON" },
114+
new GamelogicEngineLamp("19") { Description = "Center Recognizer" },
115+
new GamelogicEngineLamp("20") { Description = "Center Light Cycle" },
116+
new GamelogicEngineLamp("21") { Description = "Center Disc" },
117+
new GamelogicEngineLamp("22") { Description = "Center Quorra" },
118+
new GamelogicEngineLamp("23") { Description = "Center ZUSE" },
119+
new GamelogicEngineLamp("24") { Description = "Center CLU" },
120+
new GamelogicEngineLamp("25") { Description = "Center Gem" },
121+
new GamelogicEngineLamp("26") { Description = "Shoot Again" },
122+
new GamelogicEngineLamp("27") { Description = "Center Flynn" },
123+
new GamelogicEngineLamp("28") { Description = "Eject CLU" },
124+
new GamelogicEngineLamp("29") { Description = "ZUS(E)" },
125+
new GamelogicEngineLamp("30") { Description = "C(L)U" },
126+
new GamelogicEngineLamp("31") { Description = "CL(U)" },
127+
new GamelogicEngineLamp("32") { Description = "Right Outlane" },
128+
new GamelogicEngineLamp("33") { Description = "Right Loop Arrow" },
129+
new GamelogicEngineLamp("34") { Description = "Right Orbit (Disc)" },
130+
new GamelogicEngineLamp("35") { Description = "Right Orbit (Light Cycle)" },
131+
new GamelogicEngineLamp("36") { Description = "Right Orbit (CLU)" },
132+
new GamelogicEngineLamp("37") { Description = "Eject Extra Ball" },
133+
new GamelogicEngineLamp("38") { Description = "Eject Light Cylce" },
134+
new GamelogicEngineLamp("39") { Description = "Eject Quorra" },
135+
new GamelogicEngineLamp("40") { Description = "Eject Portal" },
136+
new GamelogicEngineLamp("42") { Description = "Right Ramp (Light Cycle)" },
137+
new GamelogicEngineLamp("43") { Description = "ZU(S)E" },
138+
new GamelogicEngineLamp("45") { Description = "Flynn's Arcade" },
139+
new GamelogicEngineLamp("46") { Description = "Left Bumper" },
140+
new GamelogicEngineLamp("47") { Description = "Right Bumper" },
141+
new GamelogicEngineLamp("48") { Description = "Bottom Bumper" },
142+
new GamelogicEngineLamp("49") { Description = "Left Ramp Arrow" },
143+
new GamelogicEngineLamp("50") { Description = "Left Ramp (Disc)" },
144+
new GamelogicEngineLamp("51") { Description = "Recognizer Right" },
145+
new GamelogicEngineLamp("52") { Description = "Recognizer Center" },
146+
new GamelogicEngineLamp("53") { Description = "Recognizer Left" },
147+
new GamelogicEngineLamp("54") { Description = "Recognizer 3-Bank" },
148+
new GamelogicEngineLamp("55") { Description = "Right Ramp (Disc)" },
149+
new GamelogicEngineLamp("56") { Description = "Right Ramp Arrow" },
150+
new GamelogicEngineLamp("57") { Description = "Right Inner Loop Arrow" },
151+
new GamelogicEngineLamp("58") { Description = "Right Inner Loop (Disc)" },
152+
new GamelogicEngineLamp("59") { Description = "Right Inner Loop (Light Cycle)" },
153+
new GamelogicEngineLamp("60") { Description = "Advance Quorra" },
154+
new GamelogicEngineLamp("61") { Description = "Left Inner Loop (CLU)" },
155+
new GamelogicEngineLamp("62") { Description = "Left Inner Loop (Light Cycle)" },
156+
new GamelogicEngineLamp("63") { Description = "Left Inner Loop (Disc)" },
157+
new GamelogicEngineLamp("64") { Description = "Left Inner Loop Arrow" },
158+
new GamelogicEngineLamp("65") { Description = "Start Button" },
159+
new GamelogicEngineLamp("66") { Description = "Tournament Start Button" },
160+
};
161+
162+
protected override GamelogicEngineCoil[] GameCoils { get; } = {
163+
new GamelogicEngineCoil("01") { Description = "Trough Up-Kicker" },
164+
new GamelogicEngineCoil("02") { Description = "Auto Launch" },
165+
new GamelogicEngineCoil("03") { Description = "4-Bank Drop Target" },
166+
new GamelogicEngineCoil("04") { Description = "Video Game Eject" },
167+
new GamelogicEngineCoil("05") { Description = "Disc Motor Power" },
168+
new GamelogicEngineCoil("06") { Description = "Recognizer 3-Bank Motor / Relay" },
169+
new GamelogicEngineCoil("07") { Description = "Orbit Up / Down Post" },
170+
new GamelogicEngineCoil("08") { Description = "Shaker Motor (Optional)" },
171+
new GamelogicEngineCoil("09") { Description = "Left Pop Bumper" },
172+
new GamelogicEngineCoil("10") { Description = "Right Pop Bumper" },
173+
new GamelogicEngineCoil("11") { Description = "Bottom Pop Bumper" },
174+
new GamelogicEngineCoil("12") { Description = "Upper Left Flipper" },
175+
new GamelogicEngineCoil("13") { Description = "Left Slingshot" },
176+
new GamelogicEngineCoil("14") { Description = "Right Slingshot" },
177+
new GamelogicEngineCoil("17") { Description = "Zen Flasher", IsLamp = true },
178+
new GamelogicEngineCoil("18") { Description = "Flash: Video Game", IsLamp = true },
179+
new GamelogicEngineCoil("19") { Description = "Flash: Right Domes (X2)", IsLamp = true },
180+
new GamelogicEngineCoil("20") { Description = "Flash: Bottom Arch (Left)", IsLamp = true },
181+
new GamelogicEngineCoil("21") { Description = "Flash: Bottom Arch (Right)", IsLamp = true },
182+
new GamelogicEngineCoil("22") { Description = "Disc Direction Relay" },
183+
new GamelogicEngineCoil("23") { Description = "Recognizer Relay" },
184+
new GamelogicEngineCoil("24") { Description = "Optional (e.g. Coin Meter)" },
185+
new GamelogicEngineCoil("25") { Description = "Flash: Left Domes (X2)", IsLamp = true },
186+
new GamelogicEngineCoil("26") { Description = "Flash: Disc (Left)", IsLamp = true },
187+
new GamelogicEngineCoil("27") { Description = "Flash: Disc (Right)", IsLamp = true },
188+
new GamelogicEngineCoil("28") { Description = "Flash: Backpanel (X2)", IsLamp = true },
189+
new GamelogicEngineCoil("29") { Description = "Flash: Recognizer", IsLamp = true },
190+
new GamelogicEngineCoil("30") { Description = "Disc Motor Relay" },
191+
new GamelogicEngineCoil("31") { Description = "Flash: Red Disc (Left) (X2)", IsLamp = true },
192+
new GamelogicEngineCoil("32") { Description = "Flash: Red Disc (Right) (X2)", IsLamp = true },
193+
};
194+
}
195+
}

0 commit comments

Comments
 (0)