Skip to content

Commit 71c332c

Browse files
committed
roms: add initial pass of twd
1 parent cf7a540 commit 71c332c

File tree

5 files changed

+207
-8
lines changed

5 files changed

+207
-8
lines changed

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,15 @@ private void OnEnable()
6161
_games = new PinMameGame[] {
6262
new AttackFromMars(),
6363
new CreatureFromTheBlackLagoon(),
64-
new MedievalMadness(),
65-
new Terminator2(),
6664
new FlashGordon(),
67-
new StarTrekEnterprise(),
65+
new MedievalMadness(),
6866
new Rock(),
6967
new RockEncore(),
68+
new StarTrekEnterprise(),
69+
new Terminator2(),
70+
new TheWalkingDead(),
7071
};
72+
7173
_gameNames = new[] {"-- none --"}
7274
.Concat(_games.Select(g => g.Name))
7375
.ToArray();

VisualPinball.Engine.PinMAME/Games/StarTrekEnterprise.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@
1515
// along with this program. If not, see <https://www.gnu.org/licenses/>.
1616

1717
using System;
18-
using VisualPinball.Engine.Common;
1918
using VisualPinball.Engine.Game.Engines;
2019
using VisualPinball.Engine.Math;
2120
using VisualPinball.Engine.PinMAME.MPUs;
2221

2322
namespace VisualPinball.Engine.PinMAME.Games
2423
{
2524
[Serializable]
26-
public class StarTrekEnterprise : Wpc
25+
public class StarTrekEnterprise : Sam
2726
{
2827
public override string Name => "Star Trek - Enterprise Limited Edition";
2928
public override string Id => "star-trek-stern";
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
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.Math;
20+
using VisualPinball.Engine.PinMAME.MPUs;
21+
22+
namespace VisualPinball.Engine.PinMAME.Games
23+
{
24+
[Serializable]
25+
public class TheWalkingDead : Sam
26+
{
27+
public override string Name => "The Walking Dead - Limited Edition";
28+
public override string Id => "twd";
29+
public override int Year => 2014;
30+
public override string Manufacturer => "Stern";
31+
public override int IpdbId => 6156;
32+
public override PinMameRom[] Roms { get; } = {
33+
new PinMameRom("twd_105", "1.05"),
34+
new PinMameRom("twd_111", "1.11"),
35+
new PinMameRom("twd_111h", "1.11h"),
36+
new PinMameRom("twd_119", "1.19"),
37+
new PinMameRom("twd_119h", "1.19h"),
38+
new PinMameRom("twd_124", "1.24"),
39+
new PinMameRom("twd_124h", "1.24h"),
40+
new PinMameRom("twd_125", "1.25"),
41+
new PinMameRom("twd_125h", "1.25h"),
42+
new PinMameRom("twd_128", "1.28"),
43+
new PinMameRom("twd_128h", "1.28h"),
44+
new PinMameRom("twd_141", "1.41"),
45+
new PinMameRom("twd_141h", "1.41h"),
46+
new PinMameRom("twd_153", "1.53"),
47+
new PinMameRom("twd_153h", "1.53h"),
48+
new PinMameRom("twd_156", "1.56"),
49+
new PinMameRom("twd_156h", "1.56h"),
50+
new PinMameRom("twd_160", "1.60.0"),
51+
new PinMameRom("twd_160h", "1.60.0h"),
52+
};
53+
54+
protected override GamelogicEngineSwitch[] Switches { get; } = {
55+
};
56+
57+
public override GamelogicEngineLamp[] AvailableLamps { get; } = {
58+
new GamelogicEngineLamp("1") { Description = "Start Button" },
59+
new GamelogicEngineLamp("2") { Description = "Tournament Start Button" },
60+
new GamelogicEngineLamp("3") { Description = "12X Playfield values" },
61+
new GamelogicEngineLamp("4") { Description = "Shoot Again" },
62+
new GamelogicEngineLamp("5") { Description = "4 Walkers Killed" },
63+
new GamelogicEngineLamp("6") { Description = "3 Walkers Killed" },
64+
new GamelogicEngineLamp("7") { Description = "2 Walkers Killed" },
65+
new GamelogicEngineLamp("8") { Description = "1 Walker Killed" },
66+
new GamelogicEngineLamp("9") { Description = "40 Walkers Killed" },
67+
new GamelogicEngineLamp("10") { Description = "Last Man Standing" },
68+
new GamelogicEngineLamp("11") { Description = "5 Walkers Killed" },
69+
new GamelogicEngineLamp("12") { Description = "10 Walkers Killed" },
70+
new GamelogicEngineLamp("13") { Description = "20 Walkers Killed" },
71+
new GamelogicEngineLamp("14") { Description = "30 Walkers Killed" },
72+
new GamelogicEngineLamp("15") { Description = "Hammer Multi-Killed" },
73+
new GamelogicEngineLamp("16") { Description = "Sword Muiti-Kill" },
74+
new GamelogicEngineLamp("17") { Description = "Crossbow Muiti-Kill" },
75+
new GamelogicEngineLamp("18") { Description = "Gun Multi-Kill" },
76+
new GamelogicEngineLamp("19") { Description = "Knife Multi-Kill" },
77+
new GamelogicEngineLamp("20") { Description = "Axe Multi-Kill" },
78+
new GamelogicEngineLamp("21") { Description = "Horde" },
79+
new GamelogicEngineLamp("22") { Description = "Left Outlane" },
80+
new GamelogicEngineLamp("23") { Description = "Left Return Lane" },
81+
new GamelogicEngineLamp("24") { Description = "R. Loop Arrow" },
82+
new GamelogicEngineLamp("25") { Description = "Blood Bath" },
83+
new GamelogicEngineLamp("26") { Description = "First Aid" },
84+
new GamelogicEngineLamp("27") { Description = "Weapons" },
85+
new GamelogicEngineLamp("28") { Description = "Food" },
86+
new GamelogicEngineLamp("29") { Description = "L. Ramp Walker Kill" },
87+
new GamelogicEngineLamp("30") { Description = "L. Loop Walker Kill" },
88+
new GamelogicEngineLamp("31") { Description = "L. Loop Multi-Kill" },
89+
new GamelogicEngineLamp("32") { Description = "Barn Mode" },
90+
new GamelogicEngineLamp("34") { Description = "L. Ramp Multi-Kill" },
91+
new GamelogicEngineLamp("35") { Description = "CDC Mode" },
92+
new GamelogicEngineLamp("36") { Description = "L. Ramp ArroW" },
93+
new GamelogicEngineLamp("37") { Description = "Right Outlane" },
94+
new GamelogicEngineLamp("38") { Description = "Right Return Lane" },
95+
new GamelogicEngineLamp("39") { Description = "Extra Ball" },
96+
new GamelogicEngineLamp("40") { Description = "Welcome To Woodbury" },
97+
new GamelogicEngineLamp("41") { Description = "R. Ramp Arrow" },
98+
new GamelogicEngineLamp("42") { Description = "R. Ramp Walker Kill" },
99+
new GamelogicEngineLamp("43") { Description = "R. Ramp Multi-Kill" },
100+
new GamelogicEngineLamp("44") { Description = "Arena Mode" },
101+
new GamelogicEngineLamp("45") { Description = "Well Walker Kill" },
102+
new GamelogicEngineLamp("46") { Description = "(W)ELL" },
103+
new GamelogicEngineLamp("47") { Description = "W(E)LL" },
104+
new GamelogicEngineLamp("48") { Description = "WE(L)L" },
105+
new GamelogicEngineLamp("49") { Description = "WEL(L)" },
106+
new GamelogicEngineLamp("50") { Description = "Well Walker" },
107+
new GamelogicEngineLamp("51") { Description = "R. Loop Walker Kill" },
108+
new GamelogicEngineLamp("52") { Description = "R. Loop Multi-Kill" },
109+
new GamelogicEngineLamp("53") { Description = "Tunnel Mode" },
110+
new GamelogicEngineLamp("54") { Description = "Siege" },
111+
new GamelogicEngineLamp("55") { Description = "R. Prison Standup" },
112+
new GamelogicEngineLamp("56") { Description = "L. Prison Standup" },
113+
new GamelogicEngineLamp("57") { Description = "C. Lane Arrow" },
114+
new GamelogicEngineLamp("58") { Description = "Riot Mode" },
115+
new GamelogicEngineLamp("59") { Description = "C. Lane Multi-Kill" },
116+
new GamelogicEngineLamp("60") { Description = "Top Bumper" },
117+
new GamelogicEngineLamp("61") { Description = "Right Bumper" },
118+
new GamelogicEngineLamp("62") { Description = "Left Bumper" },
119+
new GamelogicEngineLamp("63") { Description = "C. Lane Walker" },
120+
new GamelogicEngineLamp("64") { Description = "(P)RISON" },
121+
new GamelogicEngineLamp("65") { Description = "P(R)ISON" },
122+
new GamelogicEngineLamp("66") { Description = "PR(I)SON" },
123+
new GamelogicEngineLamp("67") { Description = "PRI(S)ON" },
124+
new GamelogicEngineLamp("68") { Description = "PRIS(O)N" },
125+
new GamelogicEngineLamp("69") { Description = "PRISO(N)" },
126+
new GamelogicEngineLamp("70") { Description = "Crossbow" },
127+
new GamelogicEngineLamp("71") { Description = "Fish Tank" },
128+
new GamelogicEngineLamp("72") { Description = "Tower" },
129+
new GamelogicEngineLamp("73") { Description = "Fish Tank Head #1" },
130+
new GamelogicEngineLamp("74") { Description = "Fish Tank Head #2" },
131+
new GamelogicEngineLamp("75") { Description = "Fish Tank Head #3" },
132+
new GamelogicEngineLamp("76") { Description = "Left Top Lane" },
133+
new GamelogicEngineLamp("77") { Description = "Right Top Lane" },
134+
new GamelogicEngineLamp("78") { Description = "Bicycle Girl" },
135+
new GamelogicEngineLamp("79") { Description = "Star Rollover (Bot.) Red", Type = LampType.RgbMulti, Channel = ColorChannel.Red },
136+
new GamelogicEngineLamp("79") { Description = "Star Rollover (Bot.) Grn", Type = LampType.RgbMulti, Channel = ColorChannel.Green },
137+
new GamelogicEngineLamp("79") { Description = "Star Rollover (Bot.) Blu", Type = LampType.RgbMulti, Channel = ColorChannel.Blue },
138+
new GamelogicEngineLamp("80") { Description = "Star Rollover (Top.) Red", Type = LampType.RgbMulti, Channel = ColorChannel.Red },
139+
new GamelogicEngineLamp("80") { Description = "Star Rollover (Top.) Grn", Type = LampType.RgbMulti, Channel = ColorChannel.Green },
140+
new GamelogicEngineLamp("80") { Description = "Star Rollover (Top.) Blu", Type = LampType.RgbMulti, Channel = ColorChannel.Blue },
141+
new GamelogicEngineLamp("81") { Description = "Fire Button (Red)", Type = LampType.RgbMulti, Channel = ColorChannel.Red },
142+
new GamelogicEngineLamp("81") { Description = "Fire Button (Grn)", Type = LampType.RgbMulti, Channel = ColorChannel.Green },
143+
new GamelogicEngineLamp("81") { Description = "Fire Button (Blu)", Type = LampType.RgbMulti, Channel = ColorChannel.Blue },
144+
};
145+
146+
protected override GamelogicEngineCoil[] GameCoils { get; } = {
147+
new GamelogicEngineCoil("01") { Description = "Trough Up-Kicker" },
148+
new GamelogicEngineCoil("02") { Description = "Auto Launch" },
149+
new GamelogicEngineCoil("03") { Description = "Prison Doors (Power)" },
150+
new GamelogicEngineCoil("04") { Description = "Prison Doors (Hold)" },
151+
new GamelogicEngineCoil("05") { Description = "Ramp Magnet Diverter" },
152+
new GamelogicEngineCoil("06") { Description = "Well Magnet" },
153+
new GamelogicEngineCoil("07") { Description = "Prison Magnet" },
154+
new GamelogicEngineCoil("08") { Description = "Shaker Motor (Optional)" },
155+
new GamelogicEngineCoil("09") { Description = "Left Pop Bumper" },
156+
new GamelogicEngineCoil("10") { Description = "Right Pop Bumper" },
157+
new GamelogicEngineCoil("11") { Description = "Top Pop Bumper" },
158+
new GamelogicEngineCoil("12") { Description = "Left 3-Bank Drop Target" },
159+
new GamelogicEngineCoil("13") { Description = "Left Slingshot" },
160+
new GamelogicEngineCoil("14") { Description = "Right Slingshot" },
161+
new GamelogicEngineCoil("15") { Description = "Left Flipper (50V RED/YEL)" },
162+
new GamelogicEngineCoil("16") { Description = "Right Flipper (50V RED/YEL)" },
163+
new GamelogicEngineCoil("19") { Description = "Flash: Well Walker", IsLamp = true },
164+
new GamelogicEngineCoil("20") { Description = "Flash: Right Spinner", IsLamp = true },
165+
new GamelogicEngineCoil("21") { Description = "Crossbow Motor" },
166+
new GamelogicEngineCoil("24") { Description = "Optional (e.g. Coin Meter)" },
167+
new GamelogicEngineCoil("25") { Description = "Flash: Pop Bumpers", IsLamp = true },
168+
new GamelogicEngineCoil("26") { Description = "Flash: Prison (Top)", IsLamp = true },
169+
new GamelogicEngineCoil("27") { Description = "Flash: Prison (Bottom) (X2)", IsLamp = true },
170+
new GamelogicEngineCoil("28") { Description = "Flash: Left Dome", IsLamp = true },
171+
new GamelogicEngineCoil("29") { Description = "Flash: Right Dome", IsLamp = true },
172+
new GamelogicEngineCoil("31") { Description = "Flash: Left Loop", IsLamp = true },
173+
new GamelogicEngineCoil("32") { Description = "Flash: Center Loop", IsLamp = true },
174+
};
175+
}
176+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
namespace VisualPinball.Engine.PinMAME.MPUs
18+
{
19+
public abstract class Sam : Wpc
20+
{
21+
}
22+
}

VisualPinball.Engine.PinMAME/VisualPinball.Engine.PinMAME.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
</PropertyGroup>
1515
<ItemGroup>
1616
<PackageReference Include="PinMame" Version="0.2.0-preview.6" />
17-
<PackageReference Include="PinMame.Native" Version="3.5.0-preview.18" />
18-
<PackageReference Include="VisualPinball.Engine" Version="0.0.1-preview.92" />
17+
<PackageReference Include="PinMame.Native" Version="3.5.0-preview.40" />
18+
<PackageReference Include="VisualPinball.Engine" Version="0.0.1-preview.94" />
1919
<!-- Uncomment when doing local dev -->
2020
<!--
2121
<Reference Include="VisualPinball.Engine">
@@ -35,7 +35,7 @@
3535
</ItemGroup>
3636
<ItemGroup>
3737
<Plugins Include="$(OutDir)$(AssemblyName).dll" />
38-
<Plugins Include="$(NuGetPackageRoot)\pinmame.native.$(RuntimeIdentifier)\3.5.0-preview.18\runtimes\$(RuntimeIdentifier)\native\*" />
38+
<Plugins Include="$(NuGetPackageRoot)\pinmame.native.$(RuntimeIdentifier)\3.5.0-preview.40\runtimes\$(RuntimeIdentifier)\native\*" />
3939
</ItemGroup>
4040
<Message Text="PluginsDeploy: @(Plugins)" />
4141
<Copy SourceFiles="@(Plugins)" DestinationFolder="..\VisualPinball.Engine.PinMAME.Unity\Plugins\$(RuntimeIdentifier)" SkipUnchangedFiles="true" />

0 commit comments

Comments
 (0)