Skip to content

Commit 93616e9

Browse files
authored
skeleton/flashgun.cpp: Added a skeleton driver for Itisa Flash Gun. (#14245)
New systems marked not working ------------------------------ Flash Gun [Juan Romero, ClawGrip]
1 parent 171a0c7 commit 93616e9

File tree

2 files changed

+108
-0
lines changed

2 files changed

+108
-0
lines changed

src/mame/mame.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43557,6 +43557,9 @@ fc100
4355743557
@source:skeleton/fk1.cpp
4355843558
fk1
4355943559

43560+
@source:skeleton/flashgun.cpp
43561+
flashgun
43562+
4356043563
@source:skeleton/flashvga2.cpp
4356143564
ruletamag
4356243565

src/mame/skeleton/flashgun.cpp

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
// license:BSD-3-Clause
2+
// copyright-holders:
3+
4+
/***************************************************************************************************
5+
Skeleton driver for ITISA Flash Gun
6+
7+
The game projects "clay pigeons" (really just white light spots) on a fixed Surface with a
8+
painted landscape, moving them with a combination of lenses and motors, and then the player
9+
shoots at them with a lightgun (there are two rifles, it's a two players game).
10+
11+
More info: https://www.recreativas.org/flash-gun-2404-itisa-electronics
12+
13+
PCB layout:
14+
______________________________________________________________________________________
15+
| _ ___________________ __________ __________ _______ |
16+
| (_) | Z8400APS Z80 CPU | |M74LS74AP| Xtal |74LS259N_| |DIPSx4| |
17+
| LED |__________________| 12 MHz |
18+
_|_ __________ __________ _______ __________ __________ __________ |
19+
| | |M74LS244P| |M74LS74AP| |RC555N| |M74LS04P_| |M74LS138P| |M74LS74AP| |
20+
| | |
21+
| | __________ __________ __________ __________ __________ __________ |
22+
| | |M74LS244P| |M74LS245P| |_74LS14N_| |M74LS138P| |74LS259N_| |M74LS240P| |
23+
| | ____________ |
24+
|___| | EPROM | __________ __________ __________ __________ __________ |
25+
| |___________| |__7406N__| |M74LS138P| |M74LS273P| |ULN2803A_| |M74LS240P| |
26+
| ____________ |
27+
| |HM6116LP-3 | __________ __________ __________ __________ __________ |
28+
| |___________| |__7406N__| |M74LS174P| |M74LS174P| |__7407N__| |M74LS240P| |
29+
| |
30+
| __________ __________ __________ __________ |
31+
| |__7402N__| |__7402N__| |__7407N__| |__7407N__| |
32+
_|_ ____________________ |
33+
| | | AY-3-8910 | __________ |
34+
| | |___________________| |HA1366WR | |
35+
| | ____________________ |
36+
| | | AY-3-8910 | __________ |
37+
| | |___________________| |HA1366WR | |
38+
|___| ____________________ |
39+
| | AY-3-8910 | __________ |
40+
| |___________________| |HA1366WR | |
41+
| ____ ______|
42+
|_________________________________| |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|
43+
44+
*/
45+
46+
#include "emu.h"
47+
48+
#include "cpu/z80/z80.h"
49+
#include "sound/ay8910.h"
50+
51+
#include "speaker.h"
52+
53+
namespace {
54+
55+
class flashgun_state : public driver_device
56+
{
57+
public:
58+
flashgun_state(const machine_config &mconfig, device_type type, const char *tag)
59+
: driver_device(mconfig, type, tag)
60+
, m_maincpu(*this, "maincpu")
61+
, m_ay8910(*this, "ay%u", 1U)
62+
{
63+
}
64+
65+
void flashgun(machine_config &config);
66+
67+
private:
68+
required_device<z80_device> m_maincpu;
69+
required_device_array<ay8910_device, 3> m_ay8910;
70+
};
71+
72+
static INPUT_PORTS_START(flashgun)
73+
PORT_START("DSW0")
74+
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW0:1")
75+
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW0:2")
76+
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW0:3")
77+
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW0:4")
78+
INPUT_PORTS_END
79+
80+
void flashgun_state::flashgun(machine_config &config)
81+
{
82+
Z80(config, m_maincpu, 12_MHz_XTAL / 4); // Guess
83+
84+
SPEAKER(config, "speaker").front_center();
85+
86+
AY8910(config, m_ay8910[0], 12_MHz_XTAL / 8); // Guess
87+
m_ay8910[0]->port_a_read_callback().set_ioport("DSW0");
88+
m_ay8910[0]->add_route(ALL_OUTPUTS, "speaker", 0.25);
89+
90+
AY8910(config, m_ay8910[1], 12_MHz_XTAL / 8); // Guess
91+
m_ay8910[1]->add_route(ALL_OUTPUTS, "speaker", 0.25);
92+
93+
AY8910(config, m_ay8910[2], 12_MHz_XTAL / 8); // Guess
94+
m_ay8910[2]->add_route(ALL_OUTPUTS, "speaker", 0.25);
95+
96+
}
97+
98+
ROM_START(flashgun)
99+
ROM_REGION(0x2000, "maincpu", 0)
100+
ROM_LOAD("2764.a4", 0x0000, 0x2000, CRC(c3a1fc10) SHA1(356a4afab196f972d9bfcec554a06ba51162068d))
101+
ROM_END
102+
103+
} // anonymous namespace
104+
105+
GAME(1986, flashgun, 0, flashgun, flashgun, flashgun_state, empty_init, ROT0, "Itisa", "Flash Gun", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL)

0 commit comments

Comments
 (0)