mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
igs/igs_m027.cpp: Hooked up I/O and clickable layout for Triple Slot.
Systems promoted to working --------------------------- Triple Slot (V200VE)
This commit is contained in:
parent
5aef105173
commit
fa683e7ac9
3 changed files with 442 additions and 26 deletions
|
@ -47,6 +47,7 @@
|
|||
|
||||
#include "jking02.lh"
|
||||
#include "oceanpar.lh"
|
||||
#include "tripslot.lh"
|
||||
|
||||
|
||||
namespace {
|
||||
|
@ -68,6 +69,7 @@ public:
|
|||
m_ticket(*this, "ticket"),
|
||||
m_io_kbd(*this, "KEY%u", 0U),
|
||||
m_io_dsw(*this, "DSW%u", 1U),
|
||||
m_io_misc(*this, "MISC"),
|
||||
m_out_lamps(*this, "lamp%u", 1U)
|
||||
{ }
|
||||
|
||||
|
@ -87,6 +89,7 @@ public:
|
|||
void zhongguo_xor(machine_config &config) ATTR_COLD;
|
||||
void mgzz_xor(machine_config &config) ATTR_COLD;
|
||||
void oceanpar_xor(machine_config &config) ATTR_COLD;
|
||||
void tripslot_xor(machine_config &config) ATTR_COLD;
|
||||
void chessc2_xor(machine_config &config) ATTR_COLD;
|
||||
|
||||
void init_sdwx() ATTR_COLD;
|
||||
|
@ -131,6 +134,7 @@ private:
|
|||
|
||||
optional_ioport_array<5> m_io_kbd;
|
||||
optional_ioport_array<3> m_io_dsw;
|
||||
optional_ioport m_io_misc;
|
||||
|
||||
output_finder<16> m_out_lamps;
|
||||
|
||||
|
@ -150,6 +154,8 @@ private:
|
|||
void mahjong_output_w(u8 data);
|
||||
void jking02_output_w(u8 data);
|
||||
void oceanpar_output_w(u8 data);
|
||||
void tripslot_misc_w(u8 data);
|
||||
void tripslot_okibank_low_w(u8 data);
|
||||
void oki_128k_bank_w(u8 data);
|
||||
|
||||
u32 slqz3_gpio_r();
|
||||
|
@ -163,6 +169,7 @@ private:
|
|||
void igs_mahjong_map(address_map &map) ATTR_COLD;
|
||||
void igs_mahjong_xor_map(address_map &map) ATTR_COLD;
|
||||
void cjddz_xor_map(address_map &map) ATTR_COLD;
|
||||
void tripslot_xor_map(address_map &map) ATTR_COLD;
|
||||
|
||||
void oki_128k_map(address_map &map) ATTR_COLD;
|
||||
};
|
||||
|
@ -225,6 +232,13 @@ void igs_m027_state::cjddz_xor_map(address_map &map)
|
|||
map(0x3800'b000, 0x3800'b003).umask32(0x0000'00ff).w(FUNC(igs_m027_state::oki_128k_bank_w));
|
||||
}
|
||||
|
||||
void igs_m027_state::tripslot_xor_map(address_map &map)
|
||||
{
|
||||
igs_mahjong_xor_map(map);
|
||||
|
||||
map(0x3800'c000, 0x3800'c003).umask32(0x0000'00ff).w(FUNC(igs_m027_state::tripslot_misc_w));
|
||||
}
|
||||
|
||||
void igs_m027_state::oki_128k_map(address_map &map)
|
||||
{
|
||||
map(0x00000, 0x1ffff).bankr(m_okibank[0]);
|
||||
|
@ -1208,6 +1222,101 @@ INPUT_PORTS_START( fruitpara )
|
|||
PORT_DIPSETTING( 0x00, DEF_STR(Yes) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( tripslot )
|
||||
PORT_START("PORTB")
|
||||
PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) // shows DIP switch settings
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) // also provides access to game setup (coinage, etc.)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_READ_LINE_DEVICE_MEMBER("hopper", hopper_device, line_r)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SLOT_STOP4 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_NAME("Stop Reel 4 / Take Score")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) // also provides access to game setup (coinage, etc.)
|
||||
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) // shows DIP switch settings
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_NAME("Stop Reel 3 / Small")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_NAME("Stop Reel 2 / Double Up")
|
||||
|
||||
PORT_START("PORTC")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x1e, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_READ_LINE_DEVICE_MEMBER("hopper", hopper_device, line_r)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SLOT_STOP5 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_NAME("Stop Reel 5 / Bet")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_NAME("Start / Stop All Reels")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00)
|
||||
PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_NAME("Stop Reel 1 / Big")
|
||||
|
||||
PORT_START("PLAYER")
|
||||
PORT_BIT( 0x00001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x00002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x00004, IP_ACTIVE_LOW, IPT_START1 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_NAME("Start / Stop All Reels")
|
||||
PORT_BIT( 0x00008, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_NAME("Stop Reel 1 / Big")
|
||||
PORT_BIT( 0x00010, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_NAME("Stop Reel 2 / Double Up")
|
||||
PORT_BIT( 0x00020, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_NAME("Stop Reel 3 / Small")
|
||||
PORT_BIT( 0x00040, IP_ACTIVE_LOW, IPT_SLOT_STOP4 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_NAME("Stop Reel 4 / Take Score")
|
||||
PORT_BIT( 0x00080, IP_ACTIVE_LOW, IPT_SLOT_STOP5 ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_NAME("Stop Reel 5 / Bet")
|
||||
PORT_BIT( 0x000ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00)
|
||||
PORT_BIT( 0x0ff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02)
|
||||
PORT_BIT( 0x10000, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00)
|
||||
PORT_BIT( 0xe0000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("PPIB")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_WRITE_LINE_MEMBER(igs_m027_state, counter_w<0>) // coin 1
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_WRITE_LINE_MEMBER(igs_m027_state, counter_w<2>) // key-in
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_WRITE_LINE_MEMBER(igs_m027_state, counter_w<1>) // coin 2
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_WRITE_LINE_MEMBER(igs_m027_state, counter_w<3>) // coin 2
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_WRITE_LINE_MEMBER(igs_m027_state, counter_w<4>) // hopper
|
||||
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_WRITE_LINE_MEMBER(igs_m027_state, counter_w<0>) // coin 1
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_WRITE_LINE_MEMBER(igs_m027_state, counter_w<4>) // key-out
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x00) PORT_WRITE_LINE_DEVICE_MEMBER("hopper", hopper_device, motor_w)
|
||||
|
||||
PORT_START("MISC")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_CONDITION("DSW1", 0x02, EQUALS, 0x02) PORT_WRITE_LINE_DEVICE_MEMBER("hopper", hopper_device, motor_w)
|
||||
// bit 5 does something as well
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR(Language) ) PORT_DIPLOCATION("SW1:1")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR(English) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR(Spanish) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Wiring Diagram" ) PORT_DIPLOCATION("SW1:2")
|
||||
PORT_DIPSETTING( 0x02, "36+10" )
|
||||
PORT_DIPSETTING( 0x00, "28-pin" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW1:3" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW1:4" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:5" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:6" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:7" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:8" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:1" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:2" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:3" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW2:4" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:5" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW2:6" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW2:8" )
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:1" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:2" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:3" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:5" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:6" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW3:7" )
|
||||
PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW3:8" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START( chessc2 )
|
||||
// preliminary - game seems to lack an input test and settings are locked out with password
|
||||
|
||||
|
@ -1398,28 +1507,28 @@ template <unsigned Start>
|
|||
void igs_m027_state::lamps_w(u8 data)
|
||||
{
|
||||
// active high outputs
|
||||
// +------+-------------------------------+---------------+
|
||||
// | lamp | jking02 | oceanpar |
|
||||
// | +---------------+---------------+ |
|
||||
// | | 36+10 | 28-Pin | |
|
||||
// +------+---------------+---------------+---------------+
|
||||
// | 1 | stop 4/start | | start |
|
||||
// | 2 | stop 3/small | | stop 2/small |
|
||||
// | 3 | bet | | bet |
|
||||
// | 4 | stop 1/take | | stop 3/take |
|
||||
// | 5 | stop 2/double | | stop 1/double |
|
||||
// | 6 | stop all/big | | stop all/big |
|
||||
// | 7 | | | |
|
||||
// | 8 | | | |
|
||||
// | 9 | | bet | |
|
||||
// | 10 | | start | |
|
||||
// | 11 | | | |
|
||||
// | 12 | | stop 1/take | |
|
||||
// | 13 | | stop 2/big | |
|
||||
// | 14 | | stop 4/double | |
|
||||
// | 15 | | stop 3/small | |
|
||||
// | 16 | | | |
|
||||
// +------+---------------+---------------+---------------+
|
||||
// +------+-------------------------------+-------------------------------+---------------+
|
||||
// | lamp | jking02 | tripslot | oceanpar |
|
||||
// | +---------------+---------------+---------------+---------------+ |
|
||||
// | | 36+10 | 28-Pin | 36+10 | 28-Pin | |
|
||||
// +------+---------------+---------------+---------------+---------------+---------------+
|
||||
// | 1 | stop 4/start | | start | | start |
|
||||
// | 2 | stop 3/small | | stop 3/small | | stop 2/small |
|
||||
// | 3 | bet | | stop 5/bet | | bet |
|
||||
// | 4 | stop 1/take | | stop 4/take | | stop 3/take |
|
||||
// | 5 | stop 2/double | | stop 2/double | | stop 1/double |
|
||||
// | 6 | stop all/big | | stop 1/big | | stop all/big |
|
||||
// | 7 | | | | | |
|
||||
// | 8 | | | | | |
|
||||
// | 9 | | bet | | stop 5/bet | |
|
||||
// | 10 | | start | | start | |
|
||||
// | 11 | | | | | |
|
||||
// | 12 | | stop 1/take | | stop 1/big | |
|
||||
// | 13 | | stop 2/big | | stop 2/double | |
|
||||
// | 14 | | stop 4/double | | stop 4/take | |
|
||||
// | 15 | | stop 3/small | | stop 3/small | |
|
||||
// | 16 | | | | | |
|
||||
// +------+---------------+---------------+---------------+---------------+---------------+
|
||||
for (unsigned i = 0; 8 > i; ++i)
|
||||
m_out_lamps[Start + i] = BIT(data, i);
|
||||
}
|
||||
|
@ -1453,6 +1562,19 @@ void igs_m027_state::oceanpar_output_w(u8 data)
|
|||
m_hopper->motor_w(BIT(data, 7));
|
||||
}
|
||||
|
||||
void igs_m027_state::tripslot_misc_w(u8 data)
|
||||
{
|
||||
m_io_misc->write(data);
|
||||
m_io_select[0] = (BIT(data, 5) << 2) | (m_io_select[0] & 0x03);
|
||||
m_oki->set_rom_bank(m_io_select[0]);
|
||||
}
|
||||
|
||||
void igs_m027_state::tripslot_okibank_low_w(u8 data)
|
||||
{
|
||||
m_io_select[0] = (m_io_select[0] & 0x04) | (data & 0x03);
|
||||
m_oki->set_rom_bank(m_io_select[0]);
|
||||
}
|
||||
|
||||
void igs_m027_state::oki_128k_bank_w(u8 data)
|
||||
{
|
||||
for (int i = 0; i < m_okibank.size(); i++)
|
||||
|
@ -1672,6 +1794,21 @@ void igs_m027_state::oceanpar_xor(machine_config &config)
|
|||
TICKET_DISPENSER(config, m_ticket, attotime::from_msec(200));
|
||||
}
|
||||
|
||||
void igs_m027_state::tripslot_xor(machine_config &config)
|
||||
{
|
||||
m027_xor(config);
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &igs_m027_state::tripslot_xor_map);
|
||||
m_maincpu->in_port().set_ioport("PLAYER");
|
||||
m_maincpu->out_port().append(FUNC(igs_m027_state::tripslot_okibank_low_w)).rshift(3);
|
||||
|
||||
m_ppi->out_pa_callback().set(FUNC(igs_m027_state::lamps_w<8>));
|
||||
m_ppi->out_pb_callback().set_ioport("PPIB");
|
||||
m_ppi->out_pc_callback().set(FUNC(igs_m027_state::lamps_w<0>));
|
||||
|
||||
HOPPER(config, m_hopper, attotime::from_msec(50));
|
||||
}
|
||||
|
||||
void igs_m027_state::chessc2_xor(machine_config &config)
|
||||
{
|
||||
m027_xor(config);
|
||||
|
@ -2814,7 +2951,7 @@ GAMEL( 1999, oceanpara, oceanpar, oceanpar_xor, oceanpara,igs_m027_state, init_o
|
|||
GAMEL( 1999, fruitpar, 0, oceanpar_xor, oceanpar, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", 0, layout_oceanpar )
|
||||
GAMEL( 1999, fruitpara, fruitpar, oceanpar_xor, fruitpara,igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V206US)", 0, layout_oceanpar )
|
||||
GAME( 200?, cjddz, 0, cjddz_xor, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu", 0 )
|
||||
GAME( 2007, tripslot, 0, oceanpar_xor, oceanpar, igs_m027_state, init_tripslot, ROT0, "IGS", "Triple Slot (V200VE)", MACHINE_NOT_WORKING ) // 2007 date in internal ROM at least, could be later, default settings password is all 'start 1'
|
||||
GAMEL( 2007, tripslot, 0, tripslot_xor, tripslot, igs_m027_state, init_tripslot, ROT0, "IGS", "Triple Slot (V200VE)", 0, layout_tripslot ) // 2007 date in internal ROM at least, could be later, default settings password is all 'start 1'
|
||||
// this has a 2nd 8255
|
||||
GAME( 2001, extradrw, 0, m027, base, igs_m027_state, init_extradrw, ROT0, "IGS", "Extra Draw (V100VE)", MACHINE_NOT_WORKING )
|
||||
// these have an IGS025 protection device instead of the 8255
|
||||
|
|
|
@ -163,7 +163,7 @@ void igs_m027xa_state::main_map(address_map &map)
|
|||
map(0x38000000, 0x38007fff).rw(m_igs017_igs031, FUNC(igs017_igs031_device::read), FUNC(igs017_igs031_device::write));
|
||||
map(0x38008000, 0x38008003).umask32(0x000000ff).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||
map(0x38009000, 0x38009003).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x3800c000, 0x3800c003).w(FUNC(igs_m027xa_state::oki_bank_w));
|
||||
map(0x3800c000, 0x3800c003).umask32(0x000000ff).w(FUNC(igs_m027xa_state::oki_bank_w));
|
||||
map(0x40000014, 0x40000017).w(FUNC(igs_m027xa_state::igs_40000014_w));
|
||||
|
||||
map(0x50000000, 0x500003ff).umask32(0x000000ff).w(FUNC(igs_m027xa_state::xor_table_w));
|
||||
|
@ -394,8 +394,7 @@ u32 igs_m027xa_state::gpio_r()
|
|||
|
||||
void igs_m027xa_state::oki_bank_w(offs_t offset, u8 data)
|
||||
{
|
||||
if (offset == 0)
|
||||
m_oki->set_rom_bank(data & 7);
|
||||
m_oki->set_rom_bank(data & 7);
|
||||
}
|
||||
|
||||
template <unsigned Select, unsigned First>
|
||||
|
|
280
src/mame/layout/tripslot.lay
Normal file
280
src/mame/layout/tripslot.lay
Normal file
|
@ -0,0 +1,280 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
copyright-holders:Vas Crabb
|
||||
|
||||
Triple Slot control panel
|
||||
May or may not match arrangement/colour of real control panel
|
||||
-->
|
||||
<mamelayout version="2">
|
||||
|
||||
<element name="blank">
|
||||
<rect />
|
||||
</element>
|
||||
|
||||
<element name="warning">
|
||||
<rect>
|
||||
<color red="0" green="0" blue="0" />
|
||||
</rect>
|
||||
<text string="Please set the view to match the Wiring Diagram DIP switch setting">
|
||||
<bounds x="0.01" y="0.05" width="0.98" height="0.9" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="start" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="0.0" green="1.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.0" green="0.15" blue="0.0" />
|
||||
</rect>
|
||||
<text string="START">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.4" />
|
||||
</text>
|
||||
<text string="STOP ALL">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.5" width="1" height="0.4" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="stop1" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.15" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="STOP 1">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.4" />
|
||||
</text>
|
||||
<text string="BIG">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.5" width="1" height="0.4" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="stop2" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.15" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="STOP 2">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.4" />
|
||||
</text>
|
||||
<text string="DOUBLE">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.5" width="1" height="0.4" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="stop3" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.15" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="STOP 3">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.4" />
|
||||
</text>
|
||||
<text string="SMALL">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.5" width="1" height="0.4" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="stop4" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.15" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="STOP 4">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.4" />
|
||||
</text>
|
||||
<text string="TAKE">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.5" width="1" height="0.4" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="stop5" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.15" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="STOP 5">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.4" />
|
||||
</text>
|
||||
<text string="BET">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.5" width="1" height="0.4" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="start_b" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="0.0" green="0.7" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.0" green="0.1" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
<element name="stop_b" defstate="0">
|
||||
<rect state="1">
|
||||
<color red="0.7" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.1" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
<group name="cpanel">
|
||||
<screen index="0">
|
||||
<bounds left="0" top="0" right="4" bottom="3" />
|
||||
</screen>
|
||||
|
||||
<element ref="blank">
|
||||
<bounds left="0" right="4" top="3" bottom="3.40" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</element>
|
||||
<element ref="blank">
|
||||
<bounds left="0" right="4" top="3.01" bottom="3.39" />
|
||||
<color red="0.20" green="0.20" blue="0.20" />
|
||||
</element>
|
||||
<element ref="blank">
|
||||
<bounds left="0" right="4" top="3.02" bottom="3.38" />
|
||||
<color red="0.15" green="0.15" blue="0.15" />
|
||||
</element>
|
||||
<element ref="blank">
|
||||
<bounds left="0" right="4" top="3.03" bottom="3.37" />
|
||||
<color red="0.10" green="0.10" blue="0.10" />
|
||||
</element>
|
||||
<element ref="blank">
|
||||
<bounds left="0" right="4" top="3.04" bottom="3.36" />
|
||||
<color red="0.05" green="0.05" blue="0.05" />
|
||||
</element>
|
||||
<element ref="blank">
|
||||
<bounds left="0" right="4" top="3.05" bottom="3.35" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</element>
|
||||
</group>
|
||||
|
||||
<view name="36+10">
|
||||
<group ref="cpanel" />
|
||||
|
||||
<element ref="stop_b" name="lamp6" inputtag="PLAYER" inputmask="0x00008">
|
||||
<bounds x="0.10" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop1" name="lamp6" inputtag="PLAYER" inputmask="0x00008">
|
||||
<bounds x="0.12" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp5" inputtag="PLAYER" inputmask="0x00010">
|
||||
<bounds x="0.70" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop2" name="lamp5" inputtag="PLAYER" inputmask="0x00010">
|
||||
<bounds x="0.72" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp2" inputtag="PLAYER" inputmask="0x00020">
|
||||
<bounds x="1.30" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop3" name="lamp2" inputtag="PLAYER" inputmask="0x00020">
|
||||
<bounds x="1.32" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp4" inputtag="PLAYER" inputmask="0x00040">
|
||||
<bounds x="1.90" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop4" name="lamp4" inputtag="PLAYER" inputmask="0x00040">
|
||||
<bounds x="1.92" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp3" inputtag="PLAYER" inputmask="0x00080">
|
||||
<bounds x="2.50" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop5" name="lamp3" inputtag="PLAYER" inputmask="0x00080">
|
||||
<bounds x="2.52" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="start_b" name="lamp1" inputtag="PLAYER" inputmask="0x00004">
|
||||
<bounds x="3.40" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="start" name="lamp1" inputtag="PLAYER" inputmask="0x00004">
|
||||
<bounds x="3.42" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="warning">
|
||||
<bounds left="0" right="4" top="3.05" bottom="3.35" />
|
||||
<animate inputtag="DSW1" mask="0x02" />
|
||||
<color state="0" alpha="1" />
|
||||
<color state="1" alpha="0" />
|
||||
</element>
|
||||
</view>
|
||||
|
||||
<view name="28-pin">
|
||||
<group ref="cpanel" />
|
||||
|
||||
<element ref="stop_b" name="lamp12" inputtag="PORTC" inputmask="0x80">
|
||||
<bounds x="0.10" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop1" name="lamp12" inputtag="PORTC" inputmask="0x80">
|
||||
<bounds x="0.12" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp13" inputtag="PORTB" inputmask="0x80">
|
||||
<bounds x="0.70" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop2" name="lamp13" inputtag="PORTB" inputmask="0x80">
|
||||
<bounds x="0.72" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp15" inputtag="PORTB" inputmask="0x40">
|
||||
<bounds x="1.30" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop3" name="lamp15" inputtag="PORTB" inputmask="0x40">
|
||||
<bounds x="1.32" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp14" inputtag="PORTB" inputmask="0x02">
|
||||
<bounds x="1.90" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop4" name="lamp14" inputtag="PORTB" inputmask="0x02">
|
||||
<bounds x="1.92" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="stop_b" name="lamp9" inputtag="PORTC" inputmask="0x01">
|
||||
<bounds x="2.50" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="stop5" name="lamp9" inputtag="PORTC" inputmask="0x01">
|
||||
<bounds x="2.52" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="start_b" name="lamp10" inputtag="PORTC" inputmask="0x04">
|
||||
<bounds x="3.40" y="3.08" width="0.50" height="0.24" />
|
||||
</element>
|
||||
<element ref="start" name="lamp10" inputtag="PORTC" inputmask="0x04">
|
||||
<bounds x="3.42" y="3.10" width="0.46" height="0.20" />
|
||||
</element>
|
||||
|
||||
<element ref="warning">
|
||||
<bounds left="0" right="4" top="3.05" bottom="3.35" />
|
||||
<animate inputtag="DSW1" mask="0x02" />
|
||||
<color state="0" alpha="0" />
|
||||
<color state="1" alpha="1" />
|
||||
</element>
|
||||
</view>
|
||||
</mamelayout>
|
Loading…
Reference in a new issue