diff options
Diffstat (limited to 'src/mame/drivers/jalmah.c')
-rw-r--r-- | src/mame/drivers/jalmah.c | 122 |
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 |