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