|
| 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