summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/jalmah.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/jalmah.c')
-rw-r--r--src/mame/drivers/jalmah.c122
1 files changed, 60 insertions, 62 deletions
diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c
index e57ccdfe132..da4aca56c76 100644
--- a/src/mame/drivers/jalmah.c
+++ b/src/mame/drivers/jalmah.c
@@ -201,6 +201,9 @@ public:
TILE_GET_INFO_MEMBER(get_sc1_tile_info);
TILE_GET_INFO_MEMBER(get_sc2_tile_info);
TILE_GET_INFO_MEMBER(get_sc3_tile_info);
+ virtual void machine_reset();
+ virtual void video_start();
+ DECLARE_VIDEO_START(urashima);
};
@@ -292,64 +295,62 @@ TILE_GET_INFO_MEMBER(jalmah_state::get_sc3_tile_info)
0);
}
-static VIDEO_START( jalmah )
+void jalmah_state::video_start()
{
- jalmah_state *state = machine.driver_data<jalmah_state>();
- state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc0_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
- state->m_sc0_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
- state->m_sc0_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
-
- state->m_sc1_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc1_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
- state->m_sc1_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
- state->m_sc1_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
-
- state->m_sc2_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc2_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),state),16,16,128,64);
- state->m_sc2_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),state),16,16,64,128);
- state->m_sc2_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),state),16,16,32,256);
-
- state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32);
- //state->m_sc3_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),TILEMAP_SCAN_COLS,8,8,256,32);
- state->m_sc3_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64);
- state->m_sc3_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range3_8x8),state),8,8,64,128);
-
- state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2);
- state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2);
-
- state->m_sc0_tilemap_0->set_transparent_pen(15);
- state->m_sc0_tilemap_1->set_transparent_pen(15);
- state->m_sc0_tilemap_2->set_transparent_pen(15);
- state->m_sc0_tilemap_3->set_transparent_pen(15);
-
- state->m_sc1_tilemap_0->set_transparent_pen(15);
- state->m_sc1_tilemap_1->set_transparent_pen(15);
- state->m_sc1_tilemap_2->set_transparent_pen(15);
- state->m_sc1_tilemap_3->set_transparent_pen(15);
-
- state->m_sc2_tilemap_0->set_transparent_pen(15);
- state->m_sc2_tilemap_1->set_transparent_pen(15);
- state->m_sc2_tilemap_2->set_transparent_pen(15);
- state->m_sc2_tilemap_3->set_transparent_pen(15);
-
- state->m_sc3_tilemap_0->set_transparent_pen(15);
- //state->m_sc3_tilemap_1->set_transparent_pen(15);
- state->m_sc3_tilemap_2->set_transparent_pen(15);
- state->m_sc3_tilemap_3->set_transparent_pen(15);
+ m_sc0_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc0_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),this),16,16,128,64);
+ m_sc0_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),this),16,16,64,128);
+ m_sc0_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),this),16,16,32,256);
+
+ m_sc1_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc1_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),this),16,16,128,64);
+ m_sc1_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),this),16,16,64,128);
+ m_sc1_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc1_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),this),16,16,32,256);
+
+ m_sc2_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc2_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range1_16x16),this),16,16,128,64);
+ m_sc2_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_16x16),this),16,16,64,128);
+ m_sc2_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc2_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_16x16),this),16,16,32,256);
+
+ m_sc3_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),TILEMAP_SCAN_COLS,8,8,256,32);
+ //m_sc3_tilemap_1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),TILEMAP_SCAN_COLS,8,8,256,32);
+ m_sc3_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),this),8,8,128,64);
+ m_sc3_tilemap_3 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range3_8x8),this),8,8,64,128);
+
+ m_jm_scrollram = auto_alloc_array(machine(), UINT16, 0x80/2);
+ m_jm_vregs = auto_alloc_array(machine(), UINT16, 0x40/2);
+
+ m_sc0_tilemap_0->set_transparent_pen(15);
+ m_sc0_tilemap_1->set_transparent_pen(15);
+ m_sc0_tilemap_2->set_transparent_pen(15);
+ m_sc0_tilemap_3->set_transparent_pen(15);
+
+ m_sc1_tilemap_0->set_transparent_pen(15);
+ m_sc1_tilemap_1->set_transparent_pen(15);
+ m_sc1_tilemap_2->set_transparent_pen(15);
+ m_sc1_tilemap_3->set_transparent_pen(15);
+
+ m_sc2_tilemap_0->set_transparent_pen(15);
+ m_sc2_tilemap_1->set_transparent_pen(15);
+ m_sc2_tilemap_2->set_transparent_pen(15);
+ m_sc2_tilemap_3->set_transparent_pen(15);
+
+ m_sc3_tilemap_0->set_transparent_pen(15);
+ //m_sc3_tilemap_1->set_transparent_pen(15);
+ m_sc3_tilemap_2->set_transparent_pen(15);
+ m_sc3_tilemap_3->set_transparent_pen(15);
}
-static VIDEO_START( urashima )
+VIDEO_START_MEMBER(jalmah_state,urashima)
{
- jalmah_state *state = machine.driver_data<jalmah_state>();
- state->m_sc0_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),state),16,16,256,32);
- state->m_sc3_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),state),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),state),8,8,128,64);
+ m_sc0_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc0_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range0_16x16),this),16,16,256,32);
+ m_sc3_tilemap_0 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jalmah_state::get_sc3_tile_info),this),tilemap_mapper_delegate(FUNC(jalmah_state::range2_8x8),this),8,8,128,64);
- state->m_jm_scrollram = auto_alloc_array(machine, UINT16, 0x80/2);
- state->m_jm_vregs = auto_alloc_array(machine, UINT16, 0x40/2);
+ m_jm_scrollram = auto_alloc_array(machine(), UINT16, 0x80/2);
+ m_jm_vregs = auto_alloc_array(machine(), UINT16, 0x40/2);
- state->m_sc0_tilemap_0->set_transparent_pen(15);
- state->m_sc3_tilemap_0->set_transparent_pen(15);
+ m_sc0_tilemap_0->set_transparent_pen(15);
+ m_sc3_tilemap_0->set_transparent_pen(15);
}
@@ -1381,24 +1382,23 @@ static GFXDECODE_START( urashima )
GFXDECODE_ENTRY( "gfx4", 0, tilelayout, 0x100, 16 )
GFXDECODE_END
-static MACHINE_RESET ( jalmah )
+void jalmah_state::machine_reset()
{
- jalmah_state *state = machine.driver_data<jalmah_state>();
- state->m_respcount = 0;
+ m_respcount = 0;
/*check if we are into service or normal mode*/
- switch(state->m_mcu_prg)
+ switch(m_mcu_prg)
{
case MJZOOMIN_MCU:
case DAIREIKA_MCU:
- state->m_test_mode = (~(state->ioport("SYSTEM")->read()) & 0x0008) ? (1) : (0);
+ m_test_mode = (~(ioport("SYSTEM")->read()) & 0x0008) ? (1) : (0);
break;
case URASHIMA_MCU:
- state->m_test_mode = ((~(state->ioport("SYSTEM")->read()) & 0x0008) || (~(state->ioport("DSW")->read()) & 0x8000)) ? (1) : (0);
+ m_test_mode = ((~(ioport("SYSTEM")->read()) & 0x0008) || (~(ioport("DSW")->read()) & 0x8000)) ? (1) : (0);
break;
case KAKUMEI_MCU:
case KAKUMEI2_MCU:
case SUCHIPI_MCU:
- state->m_test_mode = (~(state->ioport("DSW")->read()) & 0x0004) ? (1) : (0);
+ m_test_mode = (~(ioport("DSW")->read()) & 0x0004) ? (1) : (0);
break;
}
}
@@ -1420,9 +1420,7 @@ static MACHINE_CONFIG_START( jalmah, jalmah_state )
MCFG_SCREEN_UPDATE_STATIC(jalmah)
MCFG_PALETTE_LENGTH(0x400)
- MCFG_MACHINE_RESET(jalmah)
- MCFG_VIDEO_START(jalmah)
MCFG_TIMER_ADD_PERIODIC("mcusim", jalmah_mcu_sim, attotime::from_hz(10000)) // not real, but for simulating the MCU
@@ -1438,7 +1436,7 @@ static MACHINE_CONFIG_DERIVED( urashima, jalmah )
MCFG_GFXDECODE(urashima)
- MCFG_VIDEO_START(urashima)
+ MCFG_VIDEO_START_OVERRIDE(jalmah_state,urashima)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_STATIC(urashima)
MACHINE_CONFIG_END