diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2017-10-31 18:34:20 +0100 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2017-10-31 18:34:20 +0100 |
commit | bbf0beddf557ded33431ef043e6133c741e8c0d8 (patch) | |
tree | a0430294084f333cbc9e64781c040f0ac2c73859 /src/mame/drivers/gei.cpp | |
parent | 38870cbb7947561cea90b053f10c9593348f2c40 (diff) |
gei.cpp: misc refactoring: (nw)
* moved 'signatures' out of the source and into a ROM, as suggested;
* switched to configured banking;
* added save state support;
* added default nvrams to some of the sets to avoid errors on first boot.
Diffstat (limited to 'src/mame/drivers/gei.cpp')
-rw-r--r-- | src/mame/drivers/gei.cpp | 471 |
1 files changed, 253 insertions, 218 deletions
diff --git a/src/mame/drivers/gei.cpp b/src/mame/drivers/gei.cpp index 0844d33f977..6df05a898d7 100644 --- a/src/mame/drivers/gei.cpp +++ b/src/mame/drivers/gei.cpp @@ -66,7 +66,7 @@ U.S.A. Trivia New Sports General Facts or alt: Adult Sex 2 or alt: Adult Sex 3 or alt: Gay Times NOTE: Trivia Question rom names are the internal names used. IE: read from the file with - a Hex Editor. Any "_alt" extention is used to separate different roms with the same + a Hex Editor. Any "_alt" extension is used to separate different roms with the same label or internal name. */ @@ -90,26 +90,12 @@ public: m_maincpu(*this, "maincpu"), m_dac(*this, "dac"), m_ticket(*this, "ticket"), - m_screen(*this, "screen") { } - - required_device<cpu_device> m_maincpu; - required_device<dac_bit_interface> m_dac; - optional_device<ticket_dispenser_device> m_ticket; - required_device<screen_device> m_screen; - - virtual void video_start() override; + m_screen(*this, "screen"), + m_signature(*this, "signature"), + m_rombank(*this, "rombank") { } uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - bitmap_ind16 m_bitmap; - - uint8_t m_drawctrl[3]; - uint8_t m_color[8]; - int m_prevoffset; - int m_yadd; - int m_signature_answer; - int m_signature_pos; - uint8_t m_nmi_mask; DECLARE_WRITE8_MEMBER(gei_drawctrl_w); DECLARE_WRITE8_MEMBER(gei_bitmap_w); DECLARE_READ8_MEMBER(catchall); @@ -137,51 +123,83 @@ public: DECLARE_READ8_MEMBER(banksel_5_r); DECLARE_READ8_MEMBER(signature_r); DECLARE_WRITE8_MEMBER(signature_w); - DECLARE_WRITE8_MEMBER(signature2_w); - DECLARE_WRITE8_MEMBER(signature3_w); DECLARE_WRITE8_MEMBER(lamps_w); DECLARE_WRITE8_MEMBER(sound_w); DECLARE_WRITE8_MEMBER(sound2_w); DECLARE_WRITE8_MEMBER(lamps2_w); DECLARE_WRITE8_MEMBER(nmi_w); DECLARE_READ8_MEMBER(portC_r); - DECLARE_DRIVER_INIT(geimulti); + DECLARE_DRIVER_INIT(setbank); + DECLARE_DRIVER_INIT(bank2k); + DECLARE_DRIVER_INIT(bank8k); + DECLARE_DRIVER_INIT(geimulti); + INTERRUPT_GEN_MEMBER(vblank_irq); + +protected: + virtual void video_start() override; + +private: + bitmap_ind16 m_bitmap; + + uint8_t m_drawctrl[3]; + uint8_t m_color[8]; + int m_prevoffset; + int m_yadd; + int m_signature_answer; + int m_signature_pos; + uint8_t m_nmi_mask; + + required_device<cpu_device> m_maincpu; + required_device<dac_bit_interface> m_dac; + optional_device<ticket_dispenser_device> m_ticket; + required_device<screen_device> m_screen; + optional_region_ptr<uint8_t> m_signature; + optional_memory_bank m_rombank; }; WRITE8_MEMBER(gei_state::gei_drawctrl_w) { m_drawctrl[offset] = data; + if (offset == 2) { - int i; - for (i = 0; i < 8; i++) - if (BIT(m_drawctrl[1],i)) m_color[i] = m_drawctrl[0] & 7; + for (int i = 0; i < 8; i++) + if (BIT(m_drawctrl[1], i)) m_color[i] = m_drawctrl[0] & 7; } } WRITE8_MEMBER(gei_state::gei_bitmap_w) { - int sx,sy; - int i; - - m_yadd = (offset==m_prevoffset) ? (m_yadd+1):0; + m_yadd = (offset == m_prevoffset) ? (m_yadd + 1) : 0; m_prevoffset = offset; - sx = 8 * (offset % 64); - sy = offset / 64; + int sx = 8 * (offset % 64); + int sy = offset / 64; sy = (sy + m_yadd) & 0xff; - - for (i = 0; i < 8; i++) - m_bitmap.pix16(sy, sx+i) = m_color[8-i-1]; + for (int i = 0; i < 8; i++) + m_bitmap.pix16(sy, sx + i) = m_color[8 - i - 1]; } void gei_state::video_start() { m_screen->register_screen_bitmap(m_bitmap); + + save_item(NAME(m_drawctrl)); + save_item(NAME(m_color)); + save_item(NAME(m_prevoffset)); + save_item(NAME(m_yadd)); + save_item(NAME(m_nmi_mask)); + save_item(NAME(m_bitmap)); + + if (m_signature.found()) + { + save_item(NAME(m_signature_answer)); + save_item(NAME(m_signature_pos)); + } } uint32_t gei_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -193,28 +211,28 @@ uint32_t gei_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c WRITE8_MEMBER(gei_state::lamps_w) { /* 5 button lamps */ - output().set_led_value(0,data & 0x01); - output().set_led_value(1,data & 0x02); - output().set_led_value(2,data & 0x04); - output().set_led_value(3,data & 0x08); - output().set_led_value(4,data & 0x10); + output().set_led_value(0, data & 0x01); + output().set_led_value(1, data & 0x02); + output().set_led_value(2, data & 0x04); + output().set_led_value(3, data & 0x08); + output().set_led_value(4, data & 0x10); /* 3 button lamps for deal, cancel, stand in poker games; lamp order verified in poker and selection self tests */ - output().set_led_value(7,data & 0x20); - output().set_led_value(5,data & 0x40); - output().set_led_value(6,data & 0x80); + output().set_led_value(7, data & 0x20); + output().set_led_value(5, data & 0x40); + output().set_led_value(6, data & 0x80); } WRITE8_MEMBER(gei_state::sound_w) { /* bit 3 - coin lockout, lamp10 in poker / lamp6 in trivia test modes */ machine().bookkeeping().coin_lockout_global_w(~data & 0x08); - output().set_led_value(9,data & 0x08); + output().set_led_value(9, data & 0x08); /* bit 5 - ticket out in trivia games */ if (m_ticket != nullptr) - m_ticket->write(machine().dummy_space(), 0, (data & 0x20)<< 2); + m_ticket->write(machine().dummy_space(), 0, (data & 0x20) << 2); /* bit 6 enables NMI */ m_nmi_mask = data & 0x40; @@ -225,16 +243,16 @@ WRITE8_MEMBER(gei_state::sound_w) WRITE8_MEMBER(gei_state::sound2_w) { - /* bit 3,6 - coin lockout, lamp10+11 in selection test mode */ + /* bit 3,6 - coin lockout, lamp 10 + 11 in selection test mode */ machine().bookkeeping().coin_lockout_w(0, ~data & 0x08); machine().bookkeeping().coin_lockout_w(1, ~data & 0x40); - output().set_led_value(9,data & 0x08); - output().set_led_value(10,data & 0x40); + output().set_led_value(9, data & 0x08); + output().set_led_value(10, data & 0x40); /* bit 4,5 - lamps 12, 13 in selection test mode; 12 lights up if dsw maximum bet = 30 an bet > 15 or if dsw maximum bet = 10 an bet = 10 */ - output().set_led_value(11,data & 0x10); - output().set_led_value(12,data & 0x20); + output().set_led_value(11, data & 0x10); + output().set_led_value(12, data & 0x20); /* bit 7 goes directly to the sound amplifier */ m_dac->write(BIT(data, 7)); @@ -243,13 +261,13 @@ WRITE8_MEMBER(gei_state::sound2_w) WRITE8_MEMBER(gei_state::lamps2_w) { /* bit 4 - play/raise button lamp, lamp 9 in poker test mode */ - output().set_led_value(8,data & 0x10); + output().set_led_value(8, data & 0x10); } WRITE8_MEMBER(gei_state::nmi_w) { /* bit 4 - play/raise button lamp, lamp 9 in selection test mode */ - output().set_led_value(8,data & 0x10); + output().set_led_value(8, data & 0x10); /* bit 6 enables NMI */ m_nmi_mask = data & 0x40; @@ -272,68 +290,68 @@ READ8_MEMBER(gei_state::portC_r) WRITE8_MEMBER(gei_state::banksel_main_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x8000); + m_rombank->set_entry(0); } WRITE8_MEMBER(gei_state::banksel_1_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000); + m_rombank->set_entry(1); } WRITE8_MEMBER(gei_state::banksel_2_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000); + m_rombank->set_entry(2); } WRITE8_MEMBER(gei_state::banksel_3_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000); + m_rombank->set_entry(3); } WRITE8_MEMBER(gei_state::banksel_4_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x28000); + m_rombank->set_entry(4); } WRITE8_MEMBER(gei_state::banksel_5_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x30000); + m_rombank->set_entry(5); } WRITE8_MEMBER(gei_state::banksel_1_1_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000); + m_rombank->set_entry(0); } WRITE8_MEMBER(gei_state::banksel_2_1_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x14000); + m_rombank->set_entry(2); } WRITE8_MEMBER(gei_state::banksel_3_1_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000); + m_rombank->set_entry(4); } WRITE8_MEMBER(gei_state::banksel_4_1_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x1c000); + m_rombank->set_entry(6); } WRITE8_MEMBER(gei_state::banksel_5_1_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000); + m_rombank->set_entry(8); } WRITE8_MEMBER(gei_state::banksel_1_2_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x12000); + m_rombank->set_entry(1); } WRITE8_MEMBER(gei_state::banksel_2_2_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x16000); + m_rombank->set_entry(3); } WRITE8_MEMBER(gei_state::banksel_3_2_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x1a000); + m_rombank->set_entry(5); } WRITE8_MEMBER(gei_state::banksel_4_2_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x1e000); + m_rombank->set_entry(7); } WRITE8_MEMBER(gei_state::banksel_5_2_w) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x22000); + m_rombank->set_entry(9); } WRITE8_MEMBER(gei_state::geimulti_bank_w) @@ -361,36 +379,36 @@ WRITE8_MEMBER(gei_state::geimulti_bank_w) } if (bank != -1) - membank("bank1")->set_base(memregion("bank")->base() + bank*0x8000); + m_rombank->set_entry(bank); } READ8_MEMBER(gei_state::banksel_1_r) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000); + m_rombank->set_entry(1); return 0x03; } READ8_MEMBER(gei_state::banksel_2_r) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000); + m_rombank->set_entry(2); return 0x03; } READ8_MEMBER(gei_state::banksel_3_r) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000); + m_rombank->set_entry(3); return 0x03; } READ8_MEMBER(gei_state::banksel_4_r) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x28000); + m_rombank->set_entry(4); return 0x03; } READ8_MEMBER(gei_state::banksel_5_r) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x30000); + m_rombank->set_entry(5); return 0x03; } @@ -404,46 +422,18 @@ READ8_MEMBER(gei_state::signature_r) WRITE8_MEMBER(gei_state::signature_w) { if (data == 0) m_signature_pos = 0; - else - { - static const uint8_t signature[8] = { 0xff, 0x01, 0xfd, 0x05, 0xf5, 0x15, 0xd5, 0x55 }; // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps - - m_signature_answer = signature[m_signature_pos++]; - - m_signature_pos &= 7; /* safety; shouldn't happen */ - } -} - -WRITE8_MEMBER(gei_state::signature2_w) -{ - if (data == 0) m_signature_pos = 0; - else - { - static const uint8_t signature[8] = { 0xff, 0x01, 0xf7, 0x11, 0xd7, 0x51, 0x57, 0x51 }; // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps - - m_signature_answer = signature[m_signature_pos++]; - - m_signature_pos &= 7; /* safety; shouldn't happen */ - } -} -WRITE8_MEMBER(gei_state::signature3_w) -{ - if (data == 0) m_signature_pos = 0; else { - static const uint8_t signature[8] = { 0x4d, 0x3c, 0x88, 0x4e, 0x24, 0x8d, 0x1e, 0x00 }; // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps - - m_signature_answer = signature[m_signature_pos++]; + m_signature_answer = m_signature[m_signature_pos++]; m_signature_pos &= 7; /* safety; shouldn't happen */ } } - static ADDRESS_MAP_START( getrivia_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) @@ -465,7 +455,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gselect_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") AM_RANGE(0x4000, 0x40ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4400, 0x4400) AM_WRITE(banksel_1_1_w) AM_RANGE(0x4401, 0x4401) AM_WRITE(banksel_1_2_w) @@ -480,7 +470,7 @@ ADDRESS_MAP_END // TODO: where are mapped the lower 0x2000 bytes of the banks? static ADDRESS_MAP_START( amuse_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) @@ -496,7 +486,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gepoker_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) @@ -513,7 +503,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( amuse1_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") + AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4400, 0x4400) AM_WRITE(banksel_1_1_w) AM_RANGE(0x4401, 0x4401) AM_WRITE(banksel_2_1_w) @@ -543,28 +533,7 @@ static ADDRESS_MAP_START( findout_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x6200, 0x6200) AM_WRITE(signature_w) AM_RANGE(0x6400, 0x6400) AM_READ(signature_r) AM_RANGE(0x7800, 0x7fff) AM_ROM /*space for diagnostic ROM?*/ - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") - AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w) - AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w) - AM_RANGE(0x0000, 0xffff) AM_READ(catchall) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bigjoke_map, AS_PROGRAM, 8, gei_state ) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) - AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) - /* banked ROMs are enabled by low 6 bits of the address */ - AM_RANGE(0x601f, 0x601f) AM_WRITE(banksel_main_w) - AM_RANGE(0x602f, 0x602f) AM_WRITE(banksel_5_w) - AM_RANGE(0x6037, 0x6037) AM_WRITE(banksel_4_w) - AM_RANGE(0x603b, 0x603b) AM_WRITE(banksel_3_w) - AM_RANGE(0x603d, 0x603d) AM_WRITE(banksel_2_w) - AM_RANGE(0x603e, 0x603e) AM_WRITE(banksel_1_w) - AM_RANGE(0x6200, 0x6200) AM_WRITE(signature3_w) - AM_RANGE(0x6400, 0x6400) AM_READ(signature_r) - AM_RANGE(0x7800, 0x7fff) AM_ROM /*space for diagnostic ROM?*/ - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") + AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank") AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w) AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w) AM_RANGE(0x0000, 0xffff) AM_READ(catchall) @@ -582,7 +551,7 @@ static ADDRESS_MAP_START( quizvid_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x603d, 0x603d) AM_READ(banksel_2_r) AM_RANGE(0x603e, 0x603e) AM_READ(banksel_1_r) AM_RANGE(0x7800, 0x7fff) AM_ROM /*space for diagnostic ROM?*/ - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") + AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank") AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w) AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w) AM_RANGE(0x0000, 0xffff) AM_READ(catchall) @@ -593,7 +562,7 @@ static ADDRESS_MAP_START( suprpokr_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) - AM_RANGE(0x6200, 0x6200) AM_WRITE(signature2_w) + AM_RANGE(0x6200, 0x6200) AM_WRITE(signature_w) AM_RANGE(0x6400, 0x6400) AM_READ(signature_r) AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w) AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w) @@ -609,7 +578,7 @@ static ADDRESS_MAP_START( geimulti_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x5a00, 0x5cff) AM_WRITE(geimulti_bank_w) AM_RANGE(0x6000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w) - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") + AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank") AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w) ADDRESS_MAP_END @@ -623,7 +592,7 @@ static ADDRESS_MAP_START( sprtauth_map, AS_PROGRAM, 8, gei_state ) AM_RANGE(0x5a00, 0x5cff) AM_WRITE(geimulti_bank_w) AM_RANGE(0x6000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w) - AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") + AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank") AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w) ADDRESS_MAP_END @@ -1018,7 +987,7 @@ static INPUT_PORTS_START(geimulti) PORT_INCLUDE(gselect) PORT_MODIFY("DSWA") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4") + PORT_DIPNAME( 0x0f, 0x09, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4") PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPSETTING( 0x07, DEF_STR( 7C_1C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 6C_1C ) ) @@ -1053,7 +1022,7 @@ static INPUT_PORTS_START(sprtauth) PORT_INCLUDE(trivia_standard) PORT_START("DSWA") - PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4") + PORT_DIPNAME( 0x0f, 0x09, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4") PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) PORT_DIPSETTING( 0x07, DEF_STR( 7C_1C ) ) PORT_DIPSETTING( 0x06, DEF_STR( 6C_1C ) ) @@ -1087,7 +1056,7 @@ INPUT_PORTS_END INTERRUPT_GEN_MEMBER(gei_state::vblank_irq) { - if(m_nmi_mask) + if (m_nmi_mask) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } @@ -1095,7 +1064,7 @@ INTERRUPT_GEN_MEMBER(gei_state::vblank_irq) static MACHINE_CONFIG_START( getrivia ) MCFG_CPU_ADD("maincpu",Z80,4000000) /* 4 MHz */ MCFG_CPU_PROGRAM_MAP(getrivia_map) - MCFG_CPU_VBLANK_INT_DRIVER("screen", gei_state, vblank_irq) + MCFG_CPU_VBLANK_INT_DRIVER("screen", gei_state, vblank_irq) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -1224,11 +1193,6 @@ static MACHINE_CONFIG_DERIVED( sprtauth, getrivia ) MCFG_CPU_PROGRAM_MAP(sprtauth_map) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED( bigjoke, getrivia ) - - MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_PROGRAM_MAP(bigjoke_map) -MACHINE_CONFIG_END /*************************************************** Rom board is UVM-1A @@ -1273,7 +1237,7 @@ Rom board is UVM-1B Contains: 4 2732 eproms (Program Code) - Battery (3.5V litium battery) backed up NEC 8444XF301 + Battery (3.5V lithium battery) backed up NEC 8444XF301 DM7408N ****************************************************/ @@ -1292,7 +1256,7 @@ Rom board is UVM 10 B Contains: 2 2764 eproms (Program Code) 5 27128 eproms (Question roms) - Battery (3V litium battery) backed up HM6117P-4 + Battery (3V lithium battery) backed up HM6117P-4 SN74LS374 MMI PAL10L8 @@ -1301,7 +1265,7 @@ Sets will be listed by "series" - the program code version is not as important as maintaining the correct questions sets as per known series Missing sets will be filled as dumped, as question roms - are interchangeable, operators did thier own swaps + are interchangeable, operators did their own swaps Note: Question roms that contain "#1" (or 2 ect) are corrected roms (spelling and / or answers) @@ -1430,7 +1394,7 @@ Rom board is UVM-4B Contains 5 2764 eproms, MMI PAL16R4CN -Battery (3V litium battery) backed up HM6117P-4 +Battery (3V lithium battery) backed up HM6117P-4 Roms labeled as: @@ -1481,7 +1445,7 @@ PAL16R4 Roms in this order on the UMV 10 C board: -Label Normaly in the slot +Label Normally in the slot -------------------------------- High Control @@ -1529,7 +1493,7 @@ ROM_START( gepoker1 ) /* v50.02 with roms for ICB dated 9-30-86 */ ROM_LOAD( "blackjack_icb_9-30-86", 0x12000, 0x2000, CRC(82804184) SHA1(2e2e6a80c99c8eb226dc54c1d32d0bf24de300a4) ) ROM_LOAD( "casinoslots_icb_9-30-86", 0x14000, 0x2000, CRC(713c3963) SHA1(a9297c04fc44522ca6891516a2c744712132896a) ) ROM_LOAD( "beatthespread_icb_9-30-86", 0x16000, 0x2000, CRC(93654d2a) SHA1(3aa5a54b91867c03182e93a7f1607545503a33f7) ) - ROM_LOAD( "instantbingo_t24_10-07-86", 0x18000, 0x2000, CRC(de87ed0a) SHA1(4a26d93368c1a39dd38aabe450c34203101f0ef7) ) /* Found with this set, is it compatible or an operater swap? */ + ROM_LOAD( "instantbingo_t24_10-07-86", 0x18000, 0x2000, CRC(de87ed0a) SHA1(4a26d93368c1a39dd38aabe450c34203101f0ef7) ) /* Found with this set, is it compatible or an operator swap? */ ROM_END ROM_START( gepoker2 ) /* v50.02 with control dated 9-30-84 */ @@ -1582,7 +1546,7 @@ Rom board is "GEI, inc UVM-8B" with a date code of "8339" Contains 1 AM2732A eprom, 5 HN4827128G eproms, 1 MMI PAL16R4CN, 1 7474N -Battery (3V litium battery) backed up HM6117P-4 +Battery (3V lithium battery) backed up HM6117P-4 Roms labeled as: @@ -1612,6 +1576,12 @@ ROM_START( suprpokr ) /* Super Poker Version 10.19S BOBC. Rom board UMV-7C */ ROM_LOAD( "supr_pokr_10.19s_#1", 0x00000, 0x4000, CRC(50662b4d) SHA1(967161a755db43d2cfd5ce92e14c5284f1f1f8ad) ) ROM_LOAD( "supr_pokr_10.19s_#2", 0x08000, 0x4000, CRC(22b45aeb) SHA1(006c3072cc44c6fde9b4d15163dc70707bbd5a9c) ) ROM_RELOAD( 0x0c000, 0x4000 ) + + ROM_REGION( 0x0800, "nvram", 0 ) + ROM_LOAD( "suprpokr.nvram", 0x0000, 0x0800, CRC(0e716e23) SHA1(15e35bfbab9a6778834df1c85c25643010054cdb) ) + + ROM_REGION( 0x0008, "signature", 0 ) + ROM_LOAD( "suprpokr.sig", 0x0000, 0x0008, CRC(8f622afe) SHA1(8c1c8cee444c88211760a0f5c3adcfd887da5bb7) ) ROM_END ROM_START( suprpokra ) /* Super Poker Version 10.15S BOBC. Rom board UMV-7C */ @@ -1619,6 +1589,12 @@ ROM_START( suprpokra ) /* Super Poker Version 10.15S BOBC. Rom board UMV-7C */ ROM_LOAD( "supr_pokr_10.15s_#1", 0x00000, 0x4000, CRC(5cc7c1e0) SHA1(1cdca32c4df7227dab77574abe344b291741139e) ) ROM_LOAD( "supr_pokr_10.15s_#2", 0x08000, 0x4000, CRC(e47d6e2a) SHA1(9cabc42275dad8be6cd5b167e381ddb5bf08276d) ) ROM_RELOAD( 0x0c000, 0x4000 ) + + ROM_REGION( 0x0800, "nvram", 0 ) + ROM_LOAD( "suprpokr.nvram", 0x0000, 0x0800, CRC(0e716e23) SHA1(15e35bfbab9a6778834df1c85c25643010054cdb) ) + + ROM_REGION( 0x0008, "signature", 0 ) + ROM_LOAD( "suprpokr.sig", 0x0000, 0x0008, CRC(8f622afe) SHA1(8c1c8cee444c88211760a0f5c3adcfd887da5bb7) ) ROM_END ROM_START( suprpokrb ) /* Super Poker Version 10.10 BOBC. Rom board UMV-7C */ @@ -1626,6 +1602,12 @@ ROM_START( suprpokrb ) /* Super Poker Version 10.10 BOBC. Rom board UMV-7C */ ROM_LOAD( "supr_pokr_10.10_#1", 0x00000, 0x4000, CRC(8324471f) SHA1(c38b7a735ef06feea3e8d4ba6dd963e24d38c792) ) ROM_LOAD( "supr_pokr_10.10_#2", 0x08000, 0x4000, CRC(a82ca9c5) SHA1(3b0f4ad7d53370dc1f00dec696e993359147a496) ) ROM_RELOAD( 0x0c000, 0x4000 ) + + ROM_REGION( 0x0800, "nvram", 0 ) + ROM_LOAD( "suprpokr.nvram", 0x0000, 0x0800, CRC(0e716e23) SHA1(15e35bfbab9a6778834df1c85c25643010054cdb) ) + + ROM_REGION( 0x0008, "signature", 0 ) + ROM_LOAD( "suprpokr.sig", 0x0000, 0x0008, CRC(8f622afe) SHA1(8c1c8cee444c88211760a0f5c3adcfd887da5bb7) ) ROM_END @@ -1638,6 +1620,12 @@ ROM_START( reelfun ) /* v7.03 */ ROM_LOAD( "reelfun-3-phrase", 0x20000, 0x8000, CRC(199e36b0) SHA1(d9dfe39c9a4fca1169150f8941f8ebc499dfbaf5) ) ROM_LOAD( "reelfun-4-person", 0x28000, 0x8000, CRC(49b0710b) SHA1(a38b3251bcb8683d43bdb903036970140a9735e6) ) ROM_LOAD( "reelfun-5-song_title", 0x30000, 0x8000, CRC(cce01c45) SHA1(c484f5828928edf39335cedf21acab0b9e2a6881) ) + + ROM_REGION( 0x0800, "nvram", 0 ) + ROM_LOAD( "reelfun.nvram", 0x0000, 0x0800, CRC(fbb791ce) SHA1(0db77cbc42b5362b3d2ecde46a4289619e8f59a6) ) /* Defaults */ + + ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps + ROM_LOAD( "reelfun.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) ) ROM_END ROM_START( reelfun1 ) /* v7.01 */ @@ -1649,6 +1637,12 @@ ROM_START( reelfun1 ) /* v7.01 */ ROM_LOAD( "reelfun-3-phrase", 0x20000, 0x8000, CRC(199e36b0) SHA1(d9dfe39c9a4fca1169150f8941f8ebc499dfbaf5) ) ROM_LOAD( "reelfun-4-person", 0x28000, 0x8000, CRC(49b0710b) SHA1(a38b3251bcb8683d43bdb903036970140a9735e6) ) ROM_LOAD( "reelfun-5-song_title", 0x30000, 0x8000, CRC(cce01c45) SHA1(c484f5828928edf39335cedf21acab0b9e2a6881) ) + + ROM_REGION( 0x0800, "nvram", 0 ) + ROM_LOAD( "reelfun.nvram", 0x0000, 0x0800, CRC(fbb791ce) SHA1(0db77cbc42b5362b3d2ecde46a4289619e8f59a6) ) /* Defaults */ + + ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps + ROM_LOAD( "reelfun.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) ) ROM_END ROM_START( findout ) @@ -1663,6 +1657,12 @@ ROM_START( findout ) ROM_REGION( 0x0200, "gfx2", 0 ) ROM_LOAD( "82s147.bin", 0x0000, 0x0200, CRC(f3b663bb) SHA1(5a683951c8d3a2baac4b49e379d6e10e35465c8a) ) /* unknown */ + + ROM_REGION( 0x0800, "nvram", 0 ) + ROM_LOAD( "findout.nvram", 0x0000, 0x0800, CRC(b6950ffc) SHA1(ecc08904b208fb87c7a47d2f6081652405bf73b4) ) /* Defaults */ + + ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps + ROM_LOAD( "findout.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) ) ROM_END ROM_START( gt507uk ) @@ -1672,7 +1672,7 @@ ROM_START( gt507uk ) ROM_LOAD( "aerospace", 0x10000, 0x8000, CRC(cb555d46) SHA1(559ae05160d7893ff96311a2177eba039a4cf186) ) /* Also found in Series #11 set */ ROM_LOAD( "english_sport_4", 0x18000, 0x8000, CRC(6ae8a63d) SHA1(c6018141d8bbe0ed7619980bf7da89dd91d7fcc2) ) ROM_LOAD( "general_facts", 0x20000, 0x8000, CRC(f921f108) SHA1(fd72282df5cee0e6ab55268b40785b3dc8e3d65b) ) /* Also found in Series #11 set */ - ROM_LOAD( "horrors", 0x28000, 0x8000, CRC(5f7b262a) SHA1(047480d6bf5c6d0603d538b84c996bd226f07f77) ) /* Possiblely Series #13 rom */ + ROM_LOAD( "horrors", 0x28000, 0x8000, CRC(5f7b262a) SHA1(047480d6bf5c6d0603d538b84c996bd226f07f77) ) /* Possibly Series #13 rom */ ROM_LOAD( "pop_music", 0x30000, 0x8000, CRC(884fec7c) SHA1(b389216c17f516df4e15eee46246719dd4acb587) ) ROM_END @@ -1768,6 +1768,9 @@ ROM_START( gtsers15 ) /* v5.06, From a TRIV3D romboard */ ROM_LOAD( "nfl_football", 0x28000, 0x8000, CRC(42eb2849) SHA1(c24e681a508ef8350f7e5d50aea2c31cf70ce5c9) ) ROM_LOAD( "adult_sex_6", 0x30000, 0x8000, CRC(d66f35f7) SHA1(81b56756230b27b0903d0c5df30439726526afe2) ) /* Missing unknown question rom (and alternate question?) */ + + ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps + ROM_LOAD( "gtsers15.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) ) ROM_END ROM_START( gt103a1 ) /* Need to verify which series these belong to */ @@ -1875,6 +1878,13 @@ ROM_START( bigjoke ) /* TRIV3D PCB, stickered THE JOKE 11/87 */ ROM_REGION( 0x0800, "nvram", 0 ) ROM_LOAD( "bigjoke.nvram", 0x0000, 0x0800, CRC(89e0e325) SHA1(c2398c64f938e8ed036e72a5ba0b703513f31a6d) ) + + ROM_REGION( 0x0400, "pld", 0 ) // probably one of the two GALs provides the "signature" + ROM_LOAD( "gal16v8", 0x0000, 0x0117, NO_DUMP ) /* read protected */ + ROM_LOAD( "gal18v8", 0x0200, 0x0117, NO_DUMP ) /* read protected */ + + ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps + ROM_LOAD( "bigjoke.sig", 0x0000, 0x0008, CRC(bfa5388b) SHA1(876bf954116fcc14d0bed017a9bec42038c5f89a) ) ROM_END ROM_START( sexappl ) /* TRIV3D PCB, stickered SEX APPL 6.02 5/92 */ @@ -1889,6 +1899,13 @@ ROM_START( sexappl ) /* TRIV3D PCB, stickered SEX APPL 6.02 5/92 */ ROM_REGION( 0x0800, "nvram", 0 ) ROM_LOAD( "sexappl.nvram", 0x0000, 0x0800, CRC(be65737c) SHA1(5b8a603a9ddecdad4aaef0b9e8ef373885b236c0) ) /* Defaults but with card dispenser OFF! */ + + ROM_REGION( 0x0400, "pld", 0 ) // probably one of the two GALs provides the "signature" + ROM_LOAD( "gal16v8", 0x0000, 0x0117, NO_DUMP ) /* read protected */ + ROM_LOAD( "gal18v8", 0x0200, 0x0117, NO_DUMP ) /* read protected */ + + ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps + ROM_LOAD( "sexappl.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) ) ROM_END /* @@ -1964,80 +1981,98 @@ ROM_START( sprtauth ) ROM_LOAD( "sprt-auth-supr-bowl.bank9", 0x40000, 0x8000, CRC(3a548fe5) SHA1(6ad35516651a8a878b512cb3eff697952e194dd0) ) ROM_LOAD( "sprt-auth-rev1-kb.grph", 0x68000, 0x8000, CRC(c4f734ac) SHA1(028217fe6d7be75f75e9f67b665d465c729d2995) ) + ROM_REGION( 0x0800, "nvram", 0 ) + ROM_LOAD( "sprtauth.nvram", 0x0000, 0x0800, CRC(969869f9) SHA1(a5a7b679e99255650dc8ea12d2b36e97e6296aae) ) /* Defaults but with card dispenser OFF! */ + + ROM_REGION( 0x0008, "signature", 0 ) // bytes 0x03 through 0x0a of each question ROM - to prevent ROM swaps + ROM_LOAD( "sprtauth.sig", 0x0000, 0x0008, CRC(c8e944a3) SHA1(d34de9e3163ba61fa4e4f2264caff40434fcc9b0) ) ROM_END -DRIVER_INIT_MEMBER(gei_state,setbank) +DRIVER_INIT_MEMBER(gei_state, setbank) +{ + m_rombank->set_base(memregion("maincpu")->base() + 0x2000); +} + +DRIVER_INIT_MEMBER(gei_state, bank2k) +{ + m_rombank->configure_entries(0, 10, memregion("maincpu")->base() + 0x10000, 0x2000); + m_rombank->set_entry(0); +} + +DRIVER_INIT_MEMBER(gei_state, bank8k) { - membank("bank1")->set_base(memregion("maincpu")->base() + 0x2000); + m_rombank->configure_entries(0, 6, memregion("maincpu")->base() + 0x8000, 0x8000); + m_rombank->set_entry(0); } -DRIVER_INIT_MEMBER(gei_state,geimulti) +DRIVER_INIT_MEMBER(gei_state, geimulti) { - membank("bank1")->set_base(memregion("bank")->base() + 0x0000); + m_rombank->configure_entries(0, 14, memregion("bank")->base(), 0x8000); + m_rombank->set_entry(0); } -GAME( 1982, jokpoker, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, jokpokera, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, jokpokerb, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, jokpokerc, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, superbwl, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Super Bowl (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1982, gs4002, 0, gselect, gselect, gei_state, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, gs4002a, gs4002, gselect, gselect, gei_state, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1982, amuse, 0, amuse, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 50.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1982, amuse1, amuse, amuse1, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1983, amuse1a, amuse, amuse1, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1984, gepoker, 0, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gepoker1, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gepoker2, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gepoker3, gepoker, gepoker, gepoker, gei_state, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1984, gtsers1, 0, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers3, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers4, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers5, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers7, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 7)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsersa, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsersb, gtsers1, getrivia, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers8, 0, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers8a, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers9, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 9)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers10, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers11, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers11a, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gtsers12, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, gtsers14, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, gtsers15, gtsers8, findout, gt103, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 15)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103a1, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Unsorted question roms)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103aa, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103ab, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1984, gt103asx, gtsers8, findout, getrivia, gei_state, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Sex questions)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1985, sextriv1, 0, getrivia, sextriv1, gei_state, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1985, sextriv2, sextriv1, getrivia, sextriv1, gei_state, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, gt507uk, 0, findout, gt507uk, gei_state, 0, ROT0, "Grayhound Electronics", "Trivia (UK Version 5.07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, quiz, 0, findout, quiz, gei_state, 0, ROT0, "Elettronolo", "Quiz (Revision 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, quizvid, 0, quizvid, quiz, gei_state, 0, ROT0, "bootleg", "Video Quiz", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, reelfun, 0, findout, reelfun, gei_state, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, reelfun1, reelfun, findout, reelfun, gei_state, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1987, findout, 0, findout, findout, gei_state, 0, ROT0, "Elettronolo", "Find Out (Version 4.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1986, suprpokr, 0, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.19S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, suprpokra, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.15S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1986, suprpokrb, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1987, bigjoke, 0, bigjoke, bigjoke, gei_state, 0, ROT0, "Grayhound Electronics", "The Big Joke (Version 0.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1991, quiz211, 0, findout, quiz, gei_state, 0, ROT0, "Elettronolo", "Quiz (Revision 2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1992, sexappl, 0, findout, sexappl, gei_state, 0, ROT0, "Grayhound Electronics", "Sex Appeal (Version 6.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) - -GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1982, jokpoker, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jokpokera, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jokpokerb, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.04BI 10-19-88, Joker Poker ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, jokpokerc, jokpoker, jokpokera, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03BI 5-10-85, Poker No Raise ICB 9-30-86)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, superbwl, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Super Bowl (Version 16.03B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1982, gs4002, 0, gselect, gselect, gei_state, bank2k, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, gs4002a, gs4002, gselect, gselect, gei_state, bank2k, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1982, amuse, 0, amuse, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Amuse (Version 50.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1982, amuse1, amuse, amuse1, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Amuse (Version 30.08 IBA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1983, amuse1a, amuse, amuse1, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Amuse (Version 30.08A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1984, gepoker, 0, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gepoker1, gepoker, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gepoker2, gepoker, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gepoker3, gepoker, gepoker, gepoker, gei_state, bank2k, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1984, gtsers1, 0, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers3, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers4, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers5, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers7, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 7)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsersa, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsersb, gtsers1, getrivia, getrivia, gei_state, bank2k, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers8, 0, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers8a, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers9, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 9)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers10, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers11, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers11a, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11 Alt Question Rom)",MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gtsers12, gtsers8, findout, gt103, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gtsers14, gtsers8, findout, gt103, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 14)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, gtsers15, gtsers8, findout, gt103, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Questions Series 15)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gt103a1, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Unsorted question roms)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gt103aa, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gt103ab, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, gt103asx, gtsers8, findout, getrivia, gei_state, bank8k, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Sex questions)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1985, sextriv1, 0, getrivia, sextriv1, gei_state, bank2k, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, sextriv2, sextriv1, getrivia, sextriv1, gei_state, bank2k, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, gt507uk, 0, findout, gt507uk, gei_state, bank8k, ROT0, "Grayhound Electronics", "Trivia (UK Version 5.07)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, quiz, 0, findout, quiz, gei_state, bank8k, ROT0, "Elettronolo", "Quiz (Revision 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, quizvid, 0, quizvid, quiz, gei_state, bank8k, ROT0, "bootleg", "Video Quiz", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, reelfun, 0, findout, reelfun, gei_state, bank8k, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, reelfun1, reelfun, findout, reelfun, gei_state, bank8k, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, findout, 0, findout, findout, gei_state, bank8k, ROT0, "Elettronolo", "Find Out (Version 4.04)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1986, suprpokr, 0, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.19S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, suprpokra, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.15S)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1986, suprpokrb, suprpokr, suprpokr, suprpokr, gei_state, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.10)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1987, bigjoke, 0, findout, bigjoke, gei_state, bank8k, ROT0, "Grayhound Electronics", "The Big Joke (Version 0.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1991, quiz211, 0, findout, quiz, gei_state, bank8k, ROT0, "Elettronolo", "Quiz (Revision 2.11)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, sexappl, 0, findout, sexappl, gei_state, bank8k, ROT0, "Grayhound Electronics", "Sex Appeal (Version 6.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |