summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2026-02-24 18:39:14 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2026-02-24 18:39:14 +0100
commitf5607a93510c2aefefd76e4c2fb5db70b49d5403 (patch)
treecd5123545537212a2b38fb534002cc3168abcb8c
parent26786bb05364e921041026bcbd708d192054033a (diff)
misc/statriv2.cpp: got rid of tag lookups, made use of derived classes and other small cleanups
-rw-r--r--src/emu/xtal.cpp1
-rw-r--r--src/mame/misc/statriv2.cpp487
2 files changed, 264 insertions, 224 deletions
diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp
index fa7875faa39..bbed8cd4a8d 100644
--- a/src/emu/xtal.cpp
+++ b/src/emu/xtal.cpp
@@ -220,6 +220,7 @@ const double XTAL::known_xtals[] = {
12'292'000, // 12.292_MHz_XTAL Northwest Digitial Systems GP-19
12'324'000, // 12.324_MHz_XTAL Otrona Attache
12'335'600, // 12.3356_MHz_XTAL RasterOps ColorBoard 264 (~784x NTSC line rate)
+ 12'440'000, // 12.44_MHz_XTAL Status casino / trivia games
12'472'500, // 12.4725_MHz_XTAL Bonanza's Mini Boy 7
12'480'000, // 12.48_MHz_XTAL TRS-80 Model II
12'500'000, // 12.5_MHz_XTAL Red Alert audio board
diff --git a/src/mame/misc/statriv2.cpp b/src/mame/misc/statriv2.cpp
index c1fe1ba5d42..72b3a135329 100644
--- a/src/mame/misc/statriv2.cpp
+++ b/src/mame/misc/statriv2.cpp
@@ -70,11 +70,13 @@ Issues:
*/
#include "emu.h"
+
#include "cpu/i8085/i8085.h"
#include "machine/i8255.h"
#include "machine/nvram.h"
#include "sound/ay8910.h"
#include "video/tms9927.h"
+
#include "emupal.h"
#include "screen.h"
#include "speaker.h"
@@ -83,69 +85,94 @@ Issues:
namespace {
-class statriv2_state : public driver_device
+class casino_state : public driver_device
{
public:
- statriv2_state(const machine_config &mconfig, device_type type, const char *tag)
+ casino_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_tms(*this, "tms")
- , m_videoram(*this, "videoram")
- , m_question_offset(*this, "question_offset")
, m_gfxdecode(*this, "gfxdecode")
+ , m_videoram(*this, "videoram")
+ , m_tms(*this, "tms")
, m_palette(*this, "palette")
+ , m_coin(*this, "COIN")
{ }
- void statriv2(machine_config &config);
- void statusbj(machine_config &config);
- void funcsino(machine_config &config);
- void tripdraw(machine_config &config);
- void statriv2v(machine_config &config);
+ void statusbj(machine_config &config) ATTR_COLD;
+ void funcsino(machine_config &config) ATTR_COLD;
+ void tripdraw(machine_config &config) ATTR_COLD;
- void init_addr_xlh();
- void init_addr_lhx();
- void init_addr_lmh();
- void init_addr_lmhe();
- void init_addr_xhl();
- void init_laserdisc();
+ void init_laserdisc() ATTR_COLD;
int latched_coin_r();
-private:
+protected:
+ virtual void machine_start() override ATTR_COLD;
+ virtual void video_start() override ATTR_COLD;
+
required_device<cpu_device> m_maincpu;
- required_device<tms9927_device> m_tms;
+ required_device<gfxdecode_device> m_gfxdecode;
required_shared_ptr<uint8_t> m_videoram;
+
tilemap_t *m_tilemap = nullptr;
- optional_shared_ptr<uint8_t> m_question_offset;
- required_device<gfxdecode_device> m_gfxdecode;
+
+ void io_map(address_map &map) ATTR_COLD;
+
+private:
+ required_device<tms9927_device> m_tms;
required_device<palette_device> m_palette;
- uint8_t m_question_offset_low = 0;
- uint8_t m_question_offset_mid = 0;
- uint8_t m_question_offset_high = 0;
+
+ required_ioport m_coin;
+
uint8_t m_latched_coin = 0;
uint8_t m_last_coin = 0;
- void statriv2_videoram_w(offs_t offset, uint8_t data);
- uint8_t question_data_r();
+ void videoram_w(offs_t offset, uint8_t data);
void ppi_portc_hi_w(uint8_t data);
TILE_GET_INFO_MEMBER(horizontal_tile_info);
- TILE_GET_INFO_MEMBER(vertical_tile_info);
- virtual void video_start() override ATTR_COLD;
- void statriv2_palette(palette_device &palette) const;
+ void palette_init(palette_device &palette) const ATTR_COLD;
void check_coin_status();
- DECLARE_VIDEO_START(vertical);
- uint32_t screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(statriv2_interrupt);
- INTERRUPT_GEN_MEMBER(tripdraw_interrupt);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(rst75_interrupt);
+ INTERRUPT_GEN_MEMBER(rst55_interrupt);
- void statriv2_map(address_map &map) ATTR_COLD;
- void statusbj_io_map(address_map &map) ATTR_COLD;
- void statriv2_io_map(address_map &map) ATTR_COLD;
+ void program_map(address_map &map) ATTR_COLD;
};
+class trivia_state : public casino_state
+{
+public:
+ trivia_state(const machine_config &mconfig, device_type type, const char *tag)
+ : casino_state(mconfig, type, tag)
+ , m_question_offset(*this, "question_offset")
+ , m_questions_rom(*this, "questions")
+ { }
+
+ void statriv2(machine_config &config) ATTR_COLD;
+ void statriv2v(machine_config &config) ATTR_COLD;
+
+ void init_addr_xlh() ATTR_COLD;
+ void init_addr_lhx() ATTR_COLD;
+ void init_addr_lmh() ATTR_COLD;
+ void init_addr_lmhe() ATTR_COLD;
+ void init_addr_xhl() ATTR_COLD;
+
+private:
+ required_shared_ptr<uint8_t> m_question_offset;
+ required_region_ptr<uint8_t> m_questions_rom;
-#define MASTER_CLOCK 12440000
+ uint8_t m_question_offset_low = 0;
+ uint8_t m_question_offset_mid = 0;
+ uint8_t m_question_offset_high = 0;
+
+ uint8_t question_data_r();
+
+ TILE_GET_INFO_MEMBER(vertical_tile_info);
+ DECLARE_VIDEO_START(vertical);
+
+ void io_map(address_map &map) ATTR_COLD;
+};
/*************************************
@@ -154,18 +181,18 @@ private:
*
*************************************/
-TILE_GET_INFO_MEMBER(statriv2_state::horizontal_tile_info)
+TILE_GET_INFO_MEMBER(casino_state::horizontal_tile_info)
{
- int code = m_videoram[0x400 + tile_index];
- int attr = m_videoram[tile_index] & 0x3f;
+ int const code = m_videoram[0x400 + tile_index];
+ int const attr = m_videoram[tile_index] & 0x3f;
tileinfo.set(0, code, attr, 0);
}
-TILE_GET_INFO_MEMBER(statriv2_state::vertical_tile_info)
+TILE_GET_INFO_MEMBER(trivia_state::vertical_tile_info)
{
- int code = m_videoram[0x400 + tile_index];
- int attr = m_videoram[tile_index] & 0x3f;
+ int const code = m_videoram[0x400 + tile_index];
+ int const attr = m_videoram[tile_index] & 0x3f;
tileinfo.set(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), attr, 0);
}
@@ -178,7 +205,7 @@ TILE_GET_INFO_MEMBER(statriv2_state::vertical_tile_info)
*
*************************************/
-void statriv2_state::statriv2_palette(palette_device &palette) const
+void casino_state::palette_init(palette_device &palette) const
{
for (int i = 0; i < 64; i++)
{
@@ -187,14 +214,14 @@ void statriv2_state::statriv2_palette(palette_device &palette) const
}
}
-void statriv2_state::video_start()
+void casino_state::video_start()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(statriv2_state::horizontal_tile_info)), TILEMAP_SCAN_ROWS, 8, 15, 64, 16);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(casino_state::horizontal_tile_info)), TILEMAP_SCAN_ROWS, 8, 15, 64, 16);
}
-VIDEO_START_MEMBER(statriv2_state,vertical)
+VIDEO_START_MEMBER(trivia_state, vertical)
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(statriv2_state::vertical_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(trivia_state::vertical_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
@@ -205,7 +232,7 @@ VIDEO_START_MEMBER(statriv2_state,vertical)
*
*************************************/
-void statriv2_state::statriv2_videoram_w(offs_t offset, uint8_t data)
+void casino_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_tilemap->mark_tile_dirty(offset & 0x3ff);
@@ -219,7 +246,7 @@ void statriv2_state::statriv2_videoram_w(offs_t offset, uint8_t data)
*
*************************************/
-uint32_t statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t casino_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if (m_tms->screen_reset())
bitmap.fill(m_palette->black_pen(), cliprect);
@@ -232,29 +259,40 @@ uint32_t statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_in
/*************************************
*
+ * Machine start
+ *
+ *************************************/
+
+void casino_state::machine_start()
+{
+ save_item(NAME(m_latched_coin));
+ save_item(NAME(m_last_coin));
+}
+
+/*************************************
+ *
* Interrupt generation
*
*************************************/
-void statriv2_state::check_coin_status()
+void casino_state::check_coin_status()
{
- uint8_t new_coin = ioport("COIN")->read();
+ uint8_t new_coin = m_coin->read();
- /* check the coin inputs once per frame */
+ // check the coin inputs once per frame
m_latched_coin |= new_coin & (new_coin ^ m_last_coin);
m_last_coin = new_coin;
}
-INTERRUPT_GEN_MEMBER(statriv2_state::statriv2_interrupt)
+INTERRUPT_GEN_MEMBER(casino_state::rst75_interrupt)
{
- if (ioport("COIN"))
- check_coin_status();
+ check_coin_status();
device.execute().set_input_line(I8085_RST75_LINE, ASSERT_LINE);
device.execute().set_input_line(I8085_RST75_LINE, CLEAR_LINE);
}
-INTERRUPT_GEN_MEMBER(statriv2_state::tripdraw_interrupt)
+INTERRUPT_GEN_MEMBER(casino_state::rst55_interrupt)
{
check_coin_status();
@@ -268,21 +306,17 @@ INTERRUPT_GEN_MEMBER(statriv2_state::tripdraw_interrupt)
*
*************************************/
-uint8_t statriv2_state::question_data_r()
+uint8_t trivia_state::question_data_r()
{
- const uint8_t *qrom = memregion("questions")->base();
- uint32_t qromsize = memregion("questions")->bytes();
- uint32_t address;
-
if (m_question_offset_high == 0xff && !machine().side_effects_disabled())
m_question_offset[m_question_offset_low]++;
- address = m_question_offset[m_question_offset_low];
+ uint32_t address = m_question_offset[m_question_offset_low];
address |= m_question_offset[m_question_offset_mid] << 8;
if (m_question_offset_high != 0xff)
address |= m_question_offset[m_question_offset_high] << 16;
- return (address < qromsize) ? qrom[address] : 0xff;
+ return (address < m_questions_rom.bytes()) ? m_questions_rom[address] : 0xff;
}
@@ -293,13 +327,13 @@ uint8_t statriv2_state::question_data_r()
*
*************************************/
-int statriv2_state::latched_coin_r()
+int casino_state::latched_coin_r()
{
return m_latched_coin;
}
-void statriv2_state::ppi_portc_hi_w(uint8_t data)
+void casino_state::ppi_portc_hi_w(uint8_t data)
{
data >>= 4;
if (data != 0x0f)
@@ -313,15 +347,15 @@ void statriv2_state::ppi_portc_hi_w(uint8_t data)
*
*************************************/
-void statriv2_state::statriv2_map(address_map &map)
+void casino_state::program_map(address_map &map)
{
map(0x0000, 0x3fff).rom();
map(0x4000, 0x43ff).ram();
map(0x4800, 0x48ff).ram().share("nvram");
- map(0xc800, 0xcfff).ram().w(FUNC(statriv2_state::statriv2_videoram_w)).share("videoram");
+ map(0xc800, 0xcfff).ram().w(FUNC(casino_state::videoram_w)).share(m_videoram);
}
-void statriv2_state::statusbj_io_map(address_map &map)
+void casino_state::io_map(address_map &map)
{
map(0x20, 0x23).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xb0, 0xb1).w("aysnd", FUNC(ay8910_device::address_data_w));
@@ -329,10 +363,11 @@ void statriv2_state::statusbj_io_map(address_map &map)
map(0xc0, 0xcf).rw(m_tms, FUNC(tms9927_device::read), FUNC(tms9927_device::write));
}
-void statriv2_state::statriv2_io_map(address_map &map)
+void trivia_state::io_map(address_map &map)
{
- statusbj_io_map(map);
- map(0x28, 0x2b).r(FUNC(statriv2_state::question_data_r)).writeonly().share("question_offset");
+ casino_state::io_map(map);
+
+ map(0x28, 0x2b).r(FUNC(trivia_state::question_data_r)).writeonly().share(m_question_offset);
}
@@ -356,13 +391,13 @@ static INPUT_PORTS_START( statusbj )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(statriv2_state::latched_coin_r))
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(casino_state::latched_coin_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x10, DEF_STR( 1C_4C ) )
PORT_DIPSETTING( 0x20, DEF_STR( 1C_5C ) )
-// PORT_DIPSETTING( 0x30, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_5C ) )
PORT_DIPNAME( 0x40, 0x40, "DIP switch?" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
@@ -389,7 +424,7 @@ static INPUT_PORTS_START( funcsino )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) PORT_CODE(KEYCODE_4)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Select Game") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(statriv2_state::latched_coin_r))
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(casino_state::latched_coin_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_DIPNAME( 0x10, 0x10, "DIP switch? 10" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
@@ -425,7 +460,7 @@ static INPUT_PORTS_START( tripdraw )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) PORT_CODE(KEYCODE_4)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(statriv2_state::latched_coin_r))
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(casino_state::latched_coin_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_DIPNAME( 0x10, 0x10, "DIP switch? 10" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
@@ -461,7 +496,7 @@ static INPUT_PORTS_START( bigcsino ) // flyer shows 8 buttons on the cabinet
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(statriv2_state::latched_coin_r))
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(casino_state::latched_coin_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_DIPNAME( 0x10, 0x10, "DIP switch? 10" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
@@ -538,7 +573,7 @@ static INPUT_PORTS_START( statriv2 )
PORT_START("IN1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Play 1000")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(statriv2_state::latched_coin_r))
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(FUNC(casino_state::latched_coin_r))
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE( 0x10, IP_ACTIVE_HIGH )
PORT_DIPNAME( 0x20, 0x20, "Show Correct Answer" )
@@ -647,6 +682,9 @@ static INPUT_PORTS_START( bbchall )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("COIN")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
/*************************************
@@ -682,14 +720,14 @@ GFXDECODE_END
*
*************************************/
-void statriv2_state::statriv2(machine_config &config)
+void casino_state::statusbj(machine_config &config)
{
- /* basic machine hardware */
- /* FIXME: The 8085A had a max clock of 6MHz, internally divided by 2! */
- I8085A(config, m_maincpu, MASTER_CLOCK);
- m_maincpu->set_addrmap(AS_PROGRAM, &statriv2_state::statriv2_map);
- m_maincpu->set_addrmap(AS_IO, &statriv2_state::statriv2_io_map);
- m_maincpu->set_vblank_int("screen", FUNC(statriv2_state::statriv2_interrupt));
+ // basic machine hardware
+ // FIXME: The 8085A had a max clock of 6MHz, internally divided by 2!
+ I8085A(config, m_maincpu, 12.44_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &casino_state::program_map);
+ m_maincpu->set_addrmap(AS_IO, &casino_state::io_map);
+ m_maincpu->set_vblank_int("screen", FUNC(casino_state::rst75_interrupt));
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
@@ -700,58 +738,59 @@ void statriv2_state::statriv2(machine_config &config)
ppi.in_pa_callback().set_ioport("IN0");
ppi.in_pb_callback().set_ioport("IN1");
ppi.in_pc_callback().set_ioport("IN2");
- ppi.out_pc_callback().set(FUNC(statriv2_state::ppi_portc_hi_w));
+ ppi.out_pc_callback().set(FUNC(casino_state::ppi_portc_hi_w));
- /* video hardware */
+ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(MASTER_CLOCK/2, 384, 0, 320, 270, 0, 240);
- screen.set_screen_update(FUNC(statriv2_state::screen_update_statriv2));
+ screen.set_raw(12.44_MHz_XTAL / 2, 384, 0, 320, 270, 0, 240);
+ screen.set_screen_update(FUNC(casino_state::screen_update));
screen.set_palette(m_palette);
- TMS9927(config, m_tms, MASTER_CLOCK/2/8).set_char_width(8);
+ TMS9927(config, m_tms, 12.44_MHz_XTAL / 2 / 8).set_char_width(8);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_horizontal);
- PALETTE(config, m_palette, FUNC(statriv2_state::statriv2_palette), 2*64);
+ PALETTE(config, m_palette, FUNC(casino_state::palette_init), 2*64);
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
- AY8910(config, "aysnd", MASTER_CLOCK/8).add_route(ALL_OUTPUTS, "mono", 1.0);
+ AY8910(config, "aysnd", 12.44_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "mono", 1.0);
}
-void statriv2_state::statusbj(machine_config &config)
+void trivia_state::statriv2(machine_config &config)
{
- statriv2(config);
- m_maincpu->set_addrmap(AS_IO, &statriv2_state::statusbj_io_map); // no question data
+ statusbj(config);
+
+ m_maincpu->set_addrmap(AS_IO, &trivia_state::io_map); // question data
}
-void statriv2_state::statriv2v(machine_config &config)
+void trivia_state::statriv2v(machine_config &config)
{
statriv2(config);
- /* basic machine hardware */
+ // basic machine hardware
- subdevice<screen_device>("screen")->set_raw(MASTER_CLOCK/2, 392, 0, 256, 262, 0, 256);
+ subdevice<screen_device>("screen")->set_raw(12.44_MHz_XTAL / 2, 392, 0, 256, 262, 0, 256);
- MCFG_VIDEO_START_OVERRIDE(statriv2_state, vertical)
+ MCFG_VIDEO_START_OVERRIDE(trivia_state, vertical)
m_gfxdecode->set_info(gfx_vertical);
}
-void statriv2_state::funcsino(machine_config &config)
+void casino_state::funcsino(machine_config &config)
{
statusbj(config);
- /* basic machine hardware */
+ // basic machine hardware
- m_maincpu->set_clock(MASTER_CLOCK/2); /* 3 MHz?? seems accurate */
+ m_maincpu->set_clock(12.44_MHz_XTAL / 2); // 3 MHz?? seems accurate
}
-void statriv2_state::tripdraw(machine_config &config)
+void casino_state::tripdraw(machine_config &config)
{
statusbj(config);
- /* basic machine hardware */
- m_maincpu->set_vblank_int("screen", FUNC(statriv2_state::tripdraw_interrupt));
+ // basic machine hardware
+ m_maincpu->set_vblank_int("screen", FUNC(casino_state::rst55_interrupt));
}
@@ -784,9 +823,9 @@ ROM_START( statusbj )
ROM_LOAD( "statusbj.vid", 0x0000, 0x0800, CRC(99ade7a2) SHA1(98704ca3a9fcfc4590f850c8ae24445baaed6dfa) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "prom.u17", 0x0000, 0x0020, NO_DUMP ) /* Socketed */
- ROM_LOAD( "prom.u21", 0x0020, 0x0020, NO_DUMP ) /* Soldered in (Color?) */
- ROM_LOAD( "prom.u22", 0x0040, 0x0100, NO_DUMP ) /* Soldered in */
+ ROM_LOAD( "prom.u17", 0x0000, 0x0020, NO_DUMP ) // Socketed
+ ROM_LOAD( "prom.u21", 0x0020, 0x0020, NO_DUMP ) // Soldered in (Color?)
+ ROM_LOAD( "prom.u22", 0x0040, 0x0100, NO_DUMP ) // Soldered in
ROM_END
ROM_START( tripdraw )
@@ -798,9 +837,9 @@ ROM_START( tripdraw )
ROM_LOAD( "u36_td0.bin", 0x0000, 0x0800, CRC(2faa1942) SHA1(0205bf9eb86ef1c32f1ae959d0e02001393db3af) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "prom.u17", 0x0000, 0x0020, NO_DUMP ) /* Socketed */
- ROM_LOAD( "prom.u21", 0x0020, 0x0020, NO_DUMP ) /* Soldered in (Color?) */
- ROM_LOAD( "prom.u22", 0x0040, 0x0100, NO_DUMP ) /* Soldered in */
+ ROM_LOAD( "prom.u17", 0x0000, 0x0020, NO_DUMP ) // Socketed
+ ROM_LOAD( "prom.u21", 0x0020, 0x0020, NO_DUMP ) // Soldered in (Color?)
+ ROM_LOAD( "prom.u22", 0x0040, 0x0100, NO_DUMP ) // Soldered in
ROM_END
/*
@@ -831,9 +870,9 @@ ROM_START( funcsino )
ROM_LOAD( "u36", 0x0000, 0x1000, CRC(79eaf78b) SHA1(9df5f90344bbb9f1d196f35d910bb09fe6f74aa1) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "prom.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed */
- ROM_LOAD( "prom.u21", 0x0020, 0x0020, CRC(e8f60d23) SHA1(2070b8201b75a13e416f597d6b2473d0027f420c) ) /* Soldered in (Color?) */
- ROM_LOAD( "prom.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "prom.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed
+ ROM_LOAD( "prom.u21", 0x0020, 0x0020, CRC(e8f60d23) SHA1(2070b8201b75a13e416f597d6b2473d0027f420c) ) // Soldered in (Color?)
+ ROM_LOAD( "prom.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( bigcsino ) // 5 in 1 of: Joker Poker, Blackjack, Baccarat, Craps and Race Time
@@ -847,9 +886,9 @@ ROM_START( bigcsino ) // 5 in 1 of: Joker Poker, Blackjack, Baccarat, Craps and
ROM_LOAD( "bc0k.u36", 0x0000, 0x1000, CRC(baf66e19) SHA1(4b78571e9370453e96e64c08d69b92b4d64e1a41) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "82s123.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed */
- ROM_LOAD( "82s123.u21", 0x0020, 0x0020, CRC(e8f60d23) SHA1(2070b8201b75a13e416f597d6b2473d0027f420c) ) /* Soldered in (Color?) */
- ROM_LOAD( "82s123.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "82s123.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed
+ ROM_LOAD( "82s123.u21", 0x0020, 0x0020, CRC(e8f60d23) SHA1(2070b8201b75a13e416f597d6b2473d0027f420c) ) // Soldered in (Color?)
+ ROM_LOAD( "82s123.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( hangman )
@@ -861,7 +900,7 @@ ROM_START( hangman )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "main_hang_0b_2732.u36", 0x0000, 0x1000, CRC(e031dbf8) SHA1(ae6d34ad02b2d7deb1665d2420f8399a3ca88585) )
- ROM_REGION( 0x16000, "questions", 0 ) /* question data */
+ ROM_REGION( 0x16000, "questions", 0 )
ROM_LOAD( "aux_27c256.8", 0x00000, 0x8000, CRC(c7d76338) SHA1(40e88efd7e250ad867772258eb6dc3b225de781f) )
ROM_LOAD( "aux_2764.1", 0x08000, 0x2000, CRC(a88563c8) SHA1(23cb169268ded6c81494197cfb9b34180667fc8c) )
ROM_LOAD( "aux_2764.2", 0x0a000, 0x2000, CRC(4bddbe3c) SHA1(391012de04e8a3638fac6f173a81cf1f86d8f751) )
@@ -875,9 +914,9 @@ ROM_START( hangman )
ROM_LOAD( "hangman.nv", 0x0000, 0x0100, CRC(4cecee6f) SHA1(bd9fe7bea081c87033993f809ed0b2c727ab5e88) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( trivquiz )
@@ -889,7 +928,7 @@ ROM_START( trivquiz )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "triv1-0f.u7", 0x00000, 0x01000, CRC(af5f434a) SHA1(1e7ae7ad7ea697007a30f5ba89127802a835eddc) )
- ROM_REGION( 0x10000, "questions", 0 ) /* question data */
+ ROM_REGION( 0x10000, "questions", 0 )
ROM_LOAD( "qmt11.rom", 0x00000, 0x02000, CRC(82107565) SHA1(28d71340873330df7d15f1bc55cee78a9c7c31a6) )
ROM_LOAD( "qmt12.rom", 0x02000, 0x02000, CRC(68667637) SHA1(df6ad3e624dcad57ce176912931660c6c1780369) )
ROM_LOAD( "qmt13.rom", 0x04000, 0x02000, CRC(e0d01a68) SHA1(22bb2a8628a3764d733748e4f5f3bad881371a29) )
@@ -903,9 +942,9 @@ ROM_START( trivquiz )
ROM_LOAD( "trivquiz.nv", 0x0000, 0x0100, CRC(bd07a964) SHA1(a1fe68d95c79ac99cfca8a468073b5c838e1cd49) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, not verified the same! */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, not verified the same!
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( statriv2 )
@@ -917,7 +956,7 @@ ROM_START( statriv2 )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "trivii0c.u36", 0x00000, 0x01000, CRC(af5f434a) SHA1(1e7ae7ad7ea697007a30f5ba89127802a835eddc) )
- ROM_REGION( 0x10000, "questions", 0 ) /* question data */
+ ROM_REGION( 0x10000, "questions", 0 )
ROM_LOAD( "statuspb.u1", 0x00000, 0x02000, CRC(a50c0313) SHA1(f9bf84613e2ebb952a81a10ee1da49a37423b717) )
ROM_LOAD( "statuspb.u2", 0x02000, 0x02000, CRC(0bc03294) SHA1(c4873cd065c9eb237b03a4195332b7629abac327) )
ROM_LOAD( "statuspb.u3", 0x04000, 0x02000, CRC(d1732f3b) SHA1(c4e862bd98f237e1d2ecad430226cba6aba4ebb8) )
@@ -931,9 +970,9 @@ ROM_START( statriv2 )
ROM_LOAD( "statriv2.nv", 0x0000, 0x0100, CRC(3edb2bd1) SHA1(fdda1310f519054eb5e6ea498d27555f96b370eb) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, not verified the same! */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, not verified the same!
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( statriv2v )
@@ -946,10 +985,10 @@ ROM_START( statriv2v )
ROM_LOAD( "status.u36", 0x00000, 0x00800, CRC(ae1d07c0) SHA1(2b657ba58e3ae7cceb8cf23cba3e1f0d20817933) ) // first half is garbage?
ROM_CONTINUE(0x0000, 0x800)
- /* other roms were not from this set, missing sub-board?, but as the game is 'triv two' like the parent
+ /* other ROMs were not from this set, missing sub-board?, but as the game is 'triv two' like the parent
it seems compatible with the same question board */
- ROM_REGION( 0x10000, "questions", 0 ) /* question data */
+ ROM_REGION( 0x10000, "questions", 0 )
ROM_LOAD( "statuspb.u1", 0x00000, 0x02000, CRC(a50c0313) SHA1(f9bf84613e2ebb952a81a10ee1da49a37423b717) )
ROM_LOAD( "statuspb.u2", 0x02000, 0x02000, CRC(0bc03294) SHA1(c4873cd065c9eb237b03a4195332b7629abac327) )
ROM_LOAD( "statuspb.u3", 0x04000, 0x02000, CRC(d1732f3b) SHA1(c4e862bd98f237e1d2ecad430226cba6aba4ebb8) )
@@ -963,9 +1002,9 @@ ROM_START( statriv2v )
ROM_LOAD( "statriv2v.nv", 0x0000, 0x0100, CRC(3a9c7db7) SHA1(3d5a78beed26a73320f1f0748944b7fd87794bc7) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, not verified the same! */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, not verified the same!
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( statriv3 ) // Triv Quiz III ROM PCB. All labels removed. In the labels below, a stands for main PCB, b for ROM PCB.
@@ -991,9 +1030,9 @@ ROM_START( statriv3 ) // Triv Quiz III ROM PCB. All labels removed. In the label
ROM_LOAD( "statriv3.nv", 0x0000, 0x0100, CRC(60c9b350) SHA1(a2085230fe90f2dbb3dca8b8ae7ca126b4b27188) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, verified */
- ROM_LOAD( "74s288.u21", 0x0020, 0x0020, CRC(e8f60d23) SHA1(2070b8201b75a13e416f597d6b2473d0027f420c) ) /* Soldered in (Color?) */
- ROM_LOAD( "74s287.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, verified
+ ROM_LOAD( "74s288.u21", 0x0020, 0x0020, CRC(e8f60d23) SHA1(2070b8201b75a13e416f597d6b2473d0027f420c) ) // Soldered in (Color?)
+ ROM_LOAD( "74s287.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( statriv4 )
@@ -1005,7 +1044,7 @@ ROM_START( statriv4 )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "triv4.u36", 0x00000, 0x01000, CRC(af5f434a) SHA1(1e7ae7ad7ea697007a30f5ba89127802a835eddc) )
- ROM_REGION( 0x10000, "questions", 0 ) /* question data */
+ ROM_REGION( 0x10000, "questions", 0 )
ROM_LOAD( "triv4.u41", 0x00000, 0x02000, CRC(aed8eead) SHA1(a615786d11c879875e9b7d3c3593fe0334e79178) )
ROM_LOAD( "triv4.u42", 0x02000, 0x02000, CRC(3354d389) SHA1(527e46e9276f4dfaad57a77f0b549d9d26c59226) )
ROM_LOAD( "triv4.u43", 0x04000, 0x02000, CRC(de7513e8) SHA1(c2e38cb39aacf57edb27cf5ee0b0fd49a44befa3) )
@@ -1019,9 +1058,9 @@ ROM_START( statriv4 )
ROM_LOAD( "statriv4.nv", 0x0000, 0x0100, CRC(ab449099) SHA1(80fe9e07068a1034f8c0b233a7d37f6b40644be5) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, verified */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, verified
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( statriv5se )
@@ -1033,7 +1072,7 @@ ROM_START( statriv5se )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "tr-4-sped0a.u36", 0x00000, 0x01000, CRC(8e57d527) SHA1(ddb2719fd5d3e8c476e4f10158a9d83e0a759aa4) )
- ROM_REGION( 0x10000, "questions", 0 ) /* question data, not dumped */
+ ROM_REGION( 0x10000, "questions", 0 )
ROM_LOAD( "triv5.u41", 0x00000, 0x02000, NO_DUMP )
ROM_LOAD( "triv5.u42", 0x02000, 0x02000, NO_DUMP )
ROM_LOAD( "triv5.u43", 0x04000, 0x02000, NO_DUMP )
@@ -1044,9 +1083,9 @@ ROM_START( statriv5se )
ROM_LOAD( "triv5.u48", 0x0e000, 0x02000, NO_DUMP )
ROM_REGION( 0x0140, "proms", 0 ) // not dumped for this set, probably same as statriv4
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, verified */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, BAD_DUMP CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, BAD_DUMP CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, verified
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, BAD_DUMP CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, BAD_DUMP CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( sextriv )
@@ -1058,7 +1097,7 @@ ROM_START( sextriv )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "sex.u36", 0x00000, 0x1000, CRC(fe3fa087) SHA1(356b3fe62b4c600ff5a625bc3e1c53d8143f55df) )
- ROM_REGION( 0x10000, "questions", 0 ) /* question data */
+ ROM_REGION( 0x10000, "questions", 0 )
ROM_LOAD( "sex1.bin", 0x00000, 0x2000, CRC(7b55360b) SHA1(c38b1be8cb7c6c40e167c449c75b9ca0596affe9) )
ROM_LOAD( "sex2.bin", 0x02000, 0x2000, CRC(a88563c8) SHA1(23cb169268ded6c81494197cfb9b34180667fc8c) )
ROM_LOAD( "sex3.bin", 0x04000, 0x2000, CRC(da1e00a5) SHA1(d70b0a1ecaf7913cfbf3d218ff05e8511be6ab26) )
@@ -1072,9 +1111,9 @@ ROM_START( sextriv )
ROM_LOAD( "sextriv.nv", 0x0000, 0x0100, CRC(33fae98c) SHA1(11aaca7706460dbad750c11c794bbe20084a8ff6) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( quaquiz2 )
@@ -1087,7 +1126,7 @@ ROM_START( quaquiz2 )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "qquiz.u36", 0x00000, 0x01000, CRC(468dca15) SHA1(4ace7b3cd233f826949b65e2ab71e94ac6a293a0) )
- ROM_REGION( 0x40000, "questions", ROMREGION_INVERT ) /* question data - inverted */
+ ROM_REGION( 0x40000, "questions", ROMREGION_INVERT )
ROM_LOAD( "gst.01", 0x00000, 0x08000, CRC(c0d83049) SHA1(94c750068e550cdaf4f6f5416bc7c160a759dd5a) )
ROM_LOAD( "gst.02", 0x08000, 0x08000, CRC(b844743e) SHA1(4a75e4956c568bad70130a326c0fc691a11ff04c) )
ROM_LOAD( "gst.03", 0x10000, 0x08000, CRC(4c734bc5) SHA1(48171494f183dec01732b2d6a0f2af0c1b173dba) )
@@ -1101,12 +1140,12 @@ ROM_START( quaquiz2 )
ROM_LOAD( "quaquiz2.nv", 0x0000, 0x0100, CRC(dad239cf) SHA1(c46380d7b673a1367f14364ae47cd46ebe080e1b) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, not verified the same! */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, not verified the same!
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
-// Dumper's note: I got the pcb with Triv Quiz (trivquiz) question rom pcb, but I don't think that's the correct one.
+// Dumper's note: I got the PCB with Triv Quiz (trivquiz) question ROM PCB, but I don't think that's the correct one.
// If you use Triv Quiz question data the game will boot to playable state
ROM_START( supertr )
@@ -1130,9 +1169,9 @@ ROM_START( supertr )
ROM_LOAD( "q8.rom", 0x38000, 0x08000, NO_DUMP )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, verified */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, verified
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( supertr2 )
@@ -1145,7 +1184,7 @@ ROM_START( supertr2 )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "ast2-0d.rom", 0x00000, 0x01000, CRC(a40f9201) SHA1(a87cfc3dbe5cff82926f5f8486c37fd3f4449135) )
- ROM_REGION( 0x40000, "questions", ROMREGION_INVERT ) /* question data - inverted */
+ ROM_REGION( 0x40000, "questions", ROMREGION_INVERT )
ROM_LOAD( "astq2-1.rom", 0x00000, 0x08000, CRC(4af390cb) SHA1(563c6210f2fcc8ee9b5112e2d6f522ddfca2ddea) )
ROM_LOAD( "astq2-2.rom", 0x08000, 0x08000, CRC(91a7b4f6) SHA1(c8ff2e8475ae889be14086a04275df94efd66156) )
ROM_LOAD( "astq2-3.rom", 0x10000, 0x08000, CRC(e6a50944) SHA1(e3fad344d4bedfd14f307445334903c35e745d9b) )
@@ -1156,9 +1195,9 @@ ROM_START( supertr2 )
ROM_LOAD( "astq2-8.rom", 0x38000, 0x08000, CRC(cd2674d5) SHA1(7fb6513172ffe8e3b9e0f4dc9ecdb42d954b1ff0) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, not verified the same! */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, BAD_DUMP CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, not verified the same!
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( supertr3 )
@@ -1171,7 +1210,7 @@ ROM_START( supertr3 )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "triv3.u36", 0x00000, 0x01000, CRC(79277b08) SHA1(e8de06809853e030d1ee29a788f9bc8ff7175af0) )
- ROM_REGION( 0x40000, "questions", ROMREGION_INVERT ) /* question data - inverted */
+ ROM_REGION( 0x40000, "questions", ROMREGION_INVERT )
ROM_LOAD( "triv3.u41", 0x00000, 0x08000, CRC(d62960c4) SHA1(d6f7dbdb016c14ca1cab5a0e965c9ae40dcbbc28) )
ROM_LOAD( "triv3.u42", 0x08000, 0x08000, CRC(6d50fec9) SHA1(6edb3ed92781e8961eacc342c0bceeb052b81a3e) )
ROM_LOAD( "triv3.u43", 0x10000, 0x08000, CRC(8c0a73de) SHA1(2a7175b7845b26b8d0d53279cd8793edee95d3a1) )
@@ -1182,9 +1221,9 @@ ROM_START( supertr3 )
ROM_LOAD( "triv3.u48", 0x38000, 0x08000, CRC(1a99b268) SHA1(6369c79f645962b4a2f85b18e9d93c3cc65defc1) )
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, verified */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, verified
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( nsupertr3 )
@@ -1197,7 +1236,7 @@ ROM_START( nsupertr3 )
ROM_REGION( 0x1000, "tiles", ROMREGION_INVERT )
ROM_LOAD( "triv3.u36", 0x00000, 0x01000, CRC(79277b08) SHA1(e8de06809853e030d1ee29a788f9bc8ff7175af0) )
- ROM_REGION( 0x40000, "questions", ROMREGION_INVERT ) /* question data - inverted */
+ ROM_REGION( 0x40000, "questions", ROMREGION_INVERT )
ROM_LOAD( "astqiii-1.bin", 0x00000, 0x08000, CRC(d62960c4) SHA1(d6f7dbdb016c14ca1cab5a0e965c9ae40dcbbc28) )
ROM_LOAD( "astqiii-2.bin", 0x08000, 0x08000, CRC(fdd5a792) SHA1(aeff26f919abc5bbeb1903c674a5d59f5e7aed27) ) // different from set supertrv3
ROM_LOAD( "astqiii-3.bin", 0x10000, 0x08000, CRC(8c0a73de) SHA1(2a7175b7845b26b8d0d53279cd8793edee95d3a1) )
@@ -1208,9 +1247,9 @@ ROM_START( nsupertr3 )
ROM_LOAD( "astqiii-8.bin", 0x38000, 0x08000, CRC(c2141a9e) SHA1(7e6a32b5b49d53936192eb87bf8bd7a5977d7597) ) // different from set supertrv3
ROM_REGION( 0x0140, "proms", 0 )
- ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) /* Socketed, verified */
- ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) /* Soldered in (Color?) */
- ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) /* Soldered in */
+ ROM_LOAD( "dm74s288.u17", 0x0000, 0x0020, CRC(63b8a63e) SHA1(d59ad84edd583f7befce73b79e12dfb58a204c4f) ) // Socketed, verified
+ ROM_LOAD( "dm74s288.u21", 0x0020, 0x0020, CRC(853d6172) SHA1(4aaab0faeaa1a07ee883fbed021f8dcd7e0ba549) ) // Soldered in (Color?)
+ ROM_LOAD( "dm74s282.u22", 0x0040, 0x0100, CRC(0421b8e0) SHA1(8b786eed86397a1463ad37b9b011edf83d76dd63) ) // Soldered in
ROM_END
ROM_START( bbchall ) // ROMs came from a blister, Baby Boom Challenge title found in bbu2.2b
@@ -1609,39 +1648,39 @@ ROM_END
*
*************************************/
-/* question address is stored as L/H/X (low/high/don't care) */
-void statriv2_state::init_addr_lhx()
+// question address is stored as L/H/X (low/high/don't care)
+void trivia_state::init_addr_lhx()
{
m_question_offset_low = 0;
m_question_offset_mid = 1;
m_question_offset_high = 0xff;
}
-/* question address is stored as X/L/H (don't care/low/high) */
-void statriv2_state::init_addr_xlh()
+// question address is stored as X/L/H (don't care/low/high)
+void trivia_state::init_addr_xlh()
{
m_question_offset_low = 1;
m_question_offset_mid = 2;
m_question_offset_high = 0xff;
}
-/* question address is stored as X/H/L (don't care/high/low) */
-void statriv2_state::init_addr_xhl()
+// question address is stored as X/H/L (don't care/high/low)
+void trivia_state::init_addr_xhl()
{
m_question_offset_low = 2;
m_question_offset_mid = 1;
m_question_offset_high = 0xff;
}
-/* question address is stored as L/M/H (low/mid/high) */
-void statriv2_state::init_addr_lmh()
+// question address is stored as L/M/H (low/mid/high)
+void trivia_state::init_addr_lmh()
{
m_question_offset_low = 0;
m_question_offset_mid = 1;
m_question_offset_high = 2;
}
-void statriv2_state::init_addr_lmhe()
+void trivia_state::init_addr_lmhe()
{
/***************************************************\
* *
@@ -1705,17 +1744,13 @@ void statriv2_state::init_addr_lmhe()
* *
\***************************************************/
- uint8_t *qrom = memregion("questions")->base();
- uint32_t length = memregion("questions")->bytes();
- uint32_t address;
-
- for (address = 0; address < length; address++)
- qrom[address] ^= bitswap<8>(address, 4,3,3,2,2,1,1,0);
+ for (uint32_t address = 0; address < m_questions_rom.bytes(); address++)
+ m_questions_rom[address] ^= bitswap<8>(address, 4, 3, 3, 2, 2, 1, 1, 0);
init_addr_lmh();
}
-void statriv2_state::init_laserdisc()
+void casino_state::init_laserdisc()
{
address_space &iospace = m_maincpu->space(AS_IO);
iospace.install_readwrite_handler(0x28, 0x2b,
@@ -1743,42 +1778,46 @@ void statriv2_state::init_laserdisc()
*
*************************************/
-GAME( 1981, statusbj, 0, statusbj, statusbj, statriv2_state, empty_init, ROT0, "Status Games", "Status Black Jack (V1.0c)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, funcsino, 0, funcsino, funcsino, statriv2_state, empty_init, ROT0, "Status Games", "Status Fun Casino (V1.3s)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, tripdraw, 0, tripdraw, tripdraw, statriv2_state, empty_init, ROT0, "Status Games", "Tripple Draw (V3.1 s)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, bigcsino, 0, statusbj, bigcsino, statriv2_state, empty_init, ROT0, "Status Games", "Big Casino", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, hangman, 0, statriv2, hangman, statriv2_state, init_addr_lmh, ROT0, "Status Games", "Hangman", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, trivquiz, 0, statriv2, statriv2, statriv2_state, init_addr_lhx, ROT0, "Status Games", "Triv Quiz", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, statriv2, 0, statriv2, statriv2, statriv2_state, init_addr_xlh, ROT0, "Status Games", "Triv Two", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, statriv2v, statriv2, statriv2v, statriv2, statriv2_state, init_addr_xlh, ROT90, "Status Games", "Triv Two (Vertical)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, statriv3, 0, statriv2, statriv2, statriv2_state, init_addr_xhl, ROT0, "Status Games", "Triv III", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, statriv4, 0, statriv2, statriv4, statriv2_state, init_addr_xhl, ROT0, "Status Games", "Triv Four", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, statriv5se, statriv4, statriv2, statriv4, statriv2_state, init_addr_xhl, ROT0, "Status Games", "Triv Five Special Edition", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // missing questions' ROMs
-GAME( 1985, sextriv, 0, statriv2, sextriv, statriv2_state, init_addr_lhx, ROT0, "Status Games", "Sex Triv", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, quaquiz2, 0, statriv2, quaquiz2, statriv2_state, init_addr_lmh, ROT0, "Status Games", "Quadro Quiz II", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1985, supertr, 0, statriv2, supertr2, statriv2_state, init_addr_lhx, ROT0, "Status Games", "Super Triv Quiz I", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // missing questions' ROMs
-GAME( 1986, bbchall, 0, statriv2, bbchall, statriv2_state, empty_init, ROT0, "Status Games", "Baby Boom Challenge", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // wrong satellite board message at startup. Also missing questions' ROMs.
-GAME( 1986, supertr2, 0, statriv2, supertr2, statriv2_state, init_addr_lmhe, ROT0, "Status Games", "Super Triv II", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, supertr3, 0, statriv2, supertr2, statriv2_state, init_addr_lmh, ROT0, "Status Games", "Super Triv III", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, nsupertr3, supertr3, statriv2, supertr2, statriv2_state, init_addr_lmh, ROT0, "Status Games", "New Super Triv III", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // new questions don't appear correctly, coinage problems
-// The following Casino Strip sets don't show the version on screen (at least without the laserdisc video). It was taken from the rom labels / from the Dragon's Lair Project archive.
-GAME( 1984, cs1_spp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip I (Poker version, for Pioneer LD, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1984, cs1_spp2, cs1_spp, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip I (Poker version, for Pioneer LD, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs2_sps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip II (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1992, cs3_qps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip III (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1985, cs5_spp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip V (Poker version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1985, cs5_ssp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip V (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs6_sps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VI (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1985, cs6_ssp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VI (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1986, cs8_ssp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VIII (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1985, cs8_spp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VIII (Poker version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs8_sps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VIII (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1992, cs9_qps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip IX (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1985, cs9_spp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip IX (Poker version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs10_sps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip X (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs11_ssp, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XI (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs11_sps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XI (Poker version, for Sony LD, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs11_sps2, cs11_sps, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XI (Poker version, for Sony LD, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1988, cs12_sps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XII (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1996, cspe_qps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip Private Eyes / All Start (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1993, csv1_qps, 0, statusbj, funcsino, statriv2_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip Vivid 1 (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+// card games
+GAME( 1981, statusbj, 0, statusbj, statusbj, casino_state, empty_init, ROT0, "Status Games", "Status Black Jack (V1.0c)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, funcsino, 0, funcsino, funcsino, casino_state, empty_init, ROT0, "Status Games", "Status Fun Casino (V1.3s)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, tripdraw, 0, tripdraw, tripdraw, casino_state, empty_init, ROT0, "Status Games", "Tripple Draw (V3.1 s)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bigcsino, 0, statusbj, bigcsino, casino_state, empty_init, ROT0, "Status Games", "Big Casino", MACHINE_SUPPORTS_SAVE )
+
+// trivia
+GAME( 1984, hangman, 0, statriv2, hangman, trivia_state, init_addr_lmh, ROT0, "Status Games", "Hangman", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, trivquiz, 0, statriv2, statriv2, trivia_state, init_addr_lhx, ROT0, "Status Games", "Triv Quiz", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, statriv2, 0, statriv2, statriv2, trivia_state, init_addr_xlh, ROT0, "Status Games", "Triv Two", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, statriv2v, statriv2, statriv2v, statriv2, trivia_state, init_addr_xlh, ROT90, "Status Games", "Triv Two (Vertical)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, statriv3, 0, statriv2, statriv2, trivia_state, init_addr_xhl, ROT0, "Status Games", "Triv III", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, statriv4, 0, statriv2, statriv4, trivia_state, init_addr_xhl, ROT0, "Status Games", "Triv Four", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, statriv5se, statriv4, statriv2, statriv4, trivia_state, init_addr_xhl, ROT0, "Status Games", "Triv Five Special Edition", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // missing questions' ROMs
+GAME( 1985, sextriv, 0, statriv2, sextriv, trivia_state, init_addr_lhx, ROT0, "Status Games", "Sex Triv", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, quaquiz2, 0, statriv2, quaquiz2, trivia_state, init_addr_lmh, ROT0, "Status Games", "Quadro Quiz II", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1985, supertr, 0, statriv2, supertr2, trivia_state, init_addr_lhx, ROT0, "Status Games", "Super Triv Quiz I", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // missing questions' ROMs
+GAME( 1986, bbchall, 0, statriv2, bbchall, trivia_state, empty_init, ROT0, "Status Games", "Baby Boom Challenge", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // wrong satellite board message at startup. Also missing questions' ROMs.
+GAME( 1986, supertr2, 0, statriv2, supertr2, trivia_state, init_addr_lmhe, ROT0, "Status Games", "Super Triv II", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, supertr3, 0, statriv2, supertr2, trivia_state, init_addr_lmh, ROT0, "Status Games", "Super Triv III", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, nsupertr3, supertr3, statriv2, supertr2, trivia_state, init_addr_lmh, ROT0, "Status Games", "New Super Triv III", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // new questions don't appear correctly, coinage problems
+
+// The following Casino Strip sets don't show the version on screen (at least without the laserdisc video). It was taken from the ROM labels / from the Dragon's Lair Project archive.
+GAME( 1984, cs1_spp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip I (Poker version, for Pioneer LD, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1984, cs1_spp2, cs1_spp, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip I (Poker version, for Pioneer LD, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs2_sps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip II (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1992, cs3_qps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip III (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1985, cs5_spp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip V (Poker version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1985, cs5_ssp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip V (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs6_sps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VI (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1985, cs6_ssp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VI (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1986, cs8_ssp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VIII (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1985, cs8_spp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VIII (Poker version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs8_sps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip VIII (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1992, cs9_qps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip IX (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1985, cs9_spp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip IX (Poker version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs10_sps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip X (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs11_ssp, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XI (Shooting Game version, for Pioneer LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs11_sps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XI (Poker version, for Sony LD, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs11_sps2, cs11_sps, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XI (Poker version, for Sony LD, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1988, cs12_sps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Status Games", "Casino Strip XII (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1996, cspe_qps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip Private Eyes / All Start (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1993, csv1_qps, 0, statusbj, funcsino, casino_state, init_laserdisc, ROT0, "Quantum Industries", "Casino Strip Vivid 1 (Poker version, for Sony LD)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )