mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
Assorted cleanup involving driver_init on a handful of drivers, nw
This commit is contained in:
parent
6ef044df51
commit
ad82e8b4dc
@ -161,12 +161,12 @@ static NETLIST_START(nl_1942)
|
||||
|
||||
NETLIST_END()
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942_bankswitch_w)
|
||||
WRITE8_MEMBER(_1942_state::_1942_bankswitch_w)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x03);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(_1942_state::c1942_scanline)
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(_1942_state::_1942_scanline)
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
@ -180,7 +180,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(_1942_state::c1942_scanline)
|
||||
|
||||
|
||||
|
||||
void _1942_state::c1942_map(address_map &map)
|
||||
void _1942_state::_1942_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0xbfff).bankr("bank1");
|
||||
@ -190,22 +190,22 @@ void _1942_state::c1942_map(address_map &map)
|
||||
map(0xc003, 0xc003).portr("DSWA");
|
||||
map(0xc004, 0xc004).portr("DSWB");
|
||||
map(0xc800, 0xc800).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
map(0xc802, 0xc803).w(this, FUNC(_1942_state::c1942_scroll_w));
|
||||
map(0xc804, 0xc804).w(this, FUNC(_1942_state::c1942_c804_w));
|
||||
map(0xc805, 0xc805).w(this, FUNC(_1942_state::c1942_palette_bank_w));
|
||||
map(0xc806, 0xc806).w(this, FUNC(_1942_state::c1942_bankswitch_w));
|
||||
map(0xc802, 0xc803).w(this, FUNC(_1942_state::_1942_scroll_w));
|
||||
map(0xc804, 0xc804).w(this, FUNC(_1942_state::_1942_c804_w));
|
||||
map(0xc805, 0xc805).w(this, FUNC(_1942_state::_1942_palette_bank_w));
|
||||
map(0xc806, 0xc806).w(this, FUNC(_1942_state::_1942_bankswitch_w));
|
||||
map(0xcc00, 0xcc7f).ram().share("spriteram");
|
||||
map(0xd000, 0xd7ff).ram().w(this, FUNC(_1942_state::c1942_fgvideoram_w)).share("fg_videoram");
|
||||
map(0xd800, 0xdbff).ram().w(this, FUNC(_1942_state::c1942_bgvideoram_w)).share("bg_videoram");
|
||||
map(0xd000, 0xd7ff).ram().w(this, FUNC(_1942_state::_1942_fgvideoram_w)).share("fg_videoram");
|
||||
map(0xd800, 0xdbff).ram().w(this, FUNC(_1942_state::_1942_bgvideoram_w)).share("bg_videoram");
|
||||
map(0xe000, 0xefff).ram();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942p_f600_w)
|
||||
WRITE8_MEMBER(_1942p_state::_1942p_f600_w)
|
||||
{
|
||||
// printf("c1942p_f600_w %02x\n", data);
|
||||
// printf("_1942p_f600_w %02x\n", data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942p_palette_w)
|
||||
WRITE8_MEMBER(_1942p_state::_1942p_palette_w)
|
||||
{
|
||||
m_protopal[offset] = data;
|
||||
|
||||
@ -216,27 +216,27 @@ WRITE8_MEMBER(_1942_state::c1942p_palette_w)
|
||||
m_palette->set_indirect_color(offset, rgb_t(r<<5,g<<5,b<<6));
|
||||
}
|
||||
|
||||
void _1942_state::c1942p_map(address_map &map)
|
||||
void _1942p_state::_1942p_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0xbfff).bankr("bank1");
|
||||
|
||||
map(0xd000, 0xd7ff).ram().w(this, FUNC(_1942_state::c1942_fgvideoram_w)).share("fg_videoram");
|
||||
map(0xd800, 0xdbff).ram().w(this, FUNC(_1942_state::c1942_bgvideoram_w)).share("bg_videoram");
|
||||
map(0xd000, 0xd7ff).ram().w(this, FUNC(_1942_state::_1942_fgvideoram_w)).share("fg_videoram");
|
||||
map(0xd800, 0xdbff).ram().w(this, FUNC(_1942_state::_1942_bgvideoram_w)).share("bg_videoram");
|
||||
|
||||
map(0xe000, 0xefff).ram();
|
||||
|
||||
map(0xce00, 0xcfff).ram().share("spriteram");
|
||||
|
||||
map(0xdc02, 0xdc03).w(this, FUNC(_1942_state::c1942_scroll_w));
|
||||
map(0xc804, 0xc804).w(this, FUNC(_1942_state::c1942_c804_w));
|
||||
map(0xc805, 0xc805).w(this, FUNC(_1942_state::c1942_palette_bank_w));
|
||||
map(0xdc02, 0xdc03).w(this, FUNC(_1942_state::_1942_scroll_w));
|
||||
map(0xc804, 0xc804).w(this, FUNC(_1942_state::_1942_c804_w));
|
||||
map(0xc805, 0xc805).w(this, FUNC(_1942_state::_1942_palette_bank_w));
|
||||
|
||||
map(0xf000, 0xf3ff).ram().w(this, FUNC(_1942_state::c1942p_palette_w)).share("protopal");
|
||||
map(0xf000, 0xf3ff).ram().w(this, FUNC(_1942p_state::_1942p_palette_w)).share("protopal");
|
||||
|
||||
map(0xf400, 0xf400).w(this, FUNC(_1942_state::c1942_bankswitch_w));
|
||||
map(0xf400, 0xf400).w(this, FUNC(_1942_state::_1942_bankswitch_w));
|
||||
map(0xf500, 0xf500).w(m_soundlatch, FUNC(generic_latch_8_device::write));
|
||||
map(0xf600, 0xf600).w(this, FUNC(_1942_state::c1942p_f600_w));
|
||||
map(0xf600, 0xf600).w(this, FUNC(_1942p_state::_1942p_f600_w));
|
||||
|
||||
map(0xf700, 0xf700).portr("DSWA");
|
||||
map(0xf701, 0xf701).portr("SYSTEM");
|
||||
@ -246,14 +246,14 @@ void _1942_state::c1942p_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
void _1942_state::c1942p_sound_map(address_map &map)
|
||||
void _1942p_state::_1942p_sound_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom();
|
||||
map(0x4000, 0x47ff).ram();
|
||||
map(0xc000, 0xc000).r(m_soundlatch, FUNC(generic_latch_8_device::read));
|
||||
}
|
||||
|
||||
void _1942_state::c1942p_sound_io(address_map &map)
|
||||
void _1942p_state::_1942p_sound_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x0000, 0x0000).nopw();
|
||||
@ -563,8 +563,8 @@ MACHINE_CONFIG_START(_1942_state::_1942)
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK) /* 4 MHz ??? */
|
||||
MCFG_DEVICE_PROGRAM_MAP(c1942_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", _1942_state, c1942_scanline, "screen", 0, 1)
|
||||
MCFG_DEVICE_PROGRAM_MAP(_1942_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", _1942_state, _1942_scanline, "screen", 0, 1)
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) /* 3 MHz ??? */
|
||||
MCFG_DEVICE_PROGRAM_MAP(sound_map)
|
||||
@ -583,7 +583,7 @@ MACHINE_CONFIG_START(_1942_state::_1942)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(_1942_state, screen_update_1942)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(_1942_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
/* sound hardware */
|
||||
@ -627,16 +627,16 @@ MACHINE_CONFIG_START(_1942_state::_1942)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(_1942_state::_1942p)
|
||||
MACHINE_CONFIG_START(_1942p_state::_1942p)
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */
|
||||
MCFG_DEVICE_PROGRAM_MAP(c1942p_map)
|
||||
MCFG_DEVICE_PROGRAM_MAP(_1942p_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", _1942_state, irq0_line_hold) // note, powerups won't move down the screen with the original '1942' logic.
|
||||
|
||||
MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */
|
||||
MCFG_DEVICE_PROGRAM_MAP(c1942p_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(c1942p_sound_io)
|
||||
MCFG_DEVICE_PROGRAM_MAP(_1942p_sound_map)
|
||||
MCFG_DEVICE_IO_MAP(_1942p_sound_io)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(_1942_state, irq0_line_hold, 4*60)
|
||||
|
||||
|
||||
@ -644,16 +644,14 @@ MACHINE_CONFIG_START(_1942_state::_1942p)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_1942p)
|
||||
MCFG_PALETTE_ADD("palette", 0x500)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(0x400)
|
||||
MCFG_PALETTE_INIT_OWNER(_1942_state, 1942p)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(_1942_state,c1942p)
|
||||
MCFG_PALETTE_INIT_OWNER(_1942p_state, 1942p)
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(_1942_state, screen_update_1942p)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(_1942p_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
|
||||
@ -951,17 +949,17 @@ ROM_START( 1942p )
|
||||
ROM_END
|
||||
|
||||
|
||||
void _1942_state::init_1942()
|
||||
void _1942_state::driver_init()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
|
||||
}
|
||||
|
||||
|
||||
GAME( 1984, 1942, 0, _1942, 1942, _1942_state, init_1942, ROT270, "Capcom", "1942 (Revision B)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 1942a, 1942, _1942, 1942, _1942_state, init_1942, ROT270, "Capcom", "1942 (Revision A)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 1942abl, 1942, _1942, 1942, _1942_state, init_1942, ROT270, "bootleg", "1942 (Revision A, bootleg)", MACHINE_SUPPORTS_SAVE ) // data is the same as 1942a set, different rom format
|
||||
GAME( 1991, 1942h, 1942, _1942, 1942, _1942_state, init_1942, ROT270, "hack (Two Bit Score)", "Supercharger 1942", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 1942b, 1942, _1942, 1942, _1942_state, init_1942, ROT270, "Capcom", "1942 (First Version)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, 1942w, 1942, _1942, 1942, _1942_state, init_1942, ROT270, "Capcom (Williams Electronics license)", "1942 (Williams Electronics license)", MACHINE_SUPPORTS_SAVE ) /* Based on 1942 (Revision B) */
|
||||
GAME( 1984, 1942p, 1942, _1942p,1942p,_1942_state, init_1942, ROT270, "bootleg", "1942 (Tecfri PCB, bootleg?)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 1942, 0, _1942, 1942, _1942_state, driver_init, ROT270, "Capcom", "1942 (Revision B)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 1942a, 1942, _1942, 1942, _1942_state, driver_init, ROT270, "Capcom", "1942 (Revision A)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 1942abl, 1942, _1942, 1942, _1942_state, driver_init, ROT270, "bootleg", "1942 (Revision A, bootleg)", MACHINE_SUPPORTS_SAVE ) // data is the same as 1942a set, different rom format
|
||||
GAME( 1991, 1942h, 1942, _1942, 1942, _1942_state, driver_init, ROT270, "hack (Two Bit Score)", "Supercharger 1942", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 1942b, 1942, _1942, 1942, _1942_state, driver_init, ROT270, "Capcom", "1942 (First Version)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, 1942w, 1942, _1942, 1942, _1942_state, driver_init, ROT270, "Capcom (Williams Electronics license)", "1942 (Williams Electronics license)", MACHINE_SUPPORTS_SAVE ) /* Based on 1942 (Revision B) */
|
||||
GAME( 1984, 1942p, 1942, _1942p, 1942p, _1942p_state, driver_init, ROT270, "bootleg", "1942 (Tecfri PCB, bootleg?)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -382,8 +382,6 @@ MACHINE_CONFIG_START(_2mindril_state::drill)
|
||||
MCFG_PALETTE_ADD("palette", 0x2000)
|
||||
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(_2mindril_state,f3)
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
|
@ -165,8 +165,6 @@ MACHINE_CONFIG_START(_3do_state::_3do)
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_x16", _3do_state, timer_x16_cb, attotime::from_hz(12000)) // TODO: timing
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(_3do_state, _3do )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do)
|
||||
|
@ -306,7 +306,7 @@ READ8_MEMBER(fortyl_state::pix2_r)
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
void fortyl_state::init_undoukai()
|
||||
void fortyl_state::driver_init()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000);
|
||||
@ -317,29 +317,6 @@ void fortyl_state::init_undoukai()
|
||||
m_pix_color[3] = 0x1ec;
|
||||
}
|
||||
|
||||
void fortyl_state::init_40love()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000);
|
||||
|
||||
#if 0
|
||||
/* character ROM hack
|
||||
to show a white line on the opponent side */
|
||||
|
||||
uint8_t *ROM = memregion("gfx2")->base();
|
||||
int adr = 0x10 * 0x022b;
|
||||
ROM[adr + 0x000a] = 0x00;
|
||||
ROM[adr + 0x000b] = 0x00;
|
||||
ROM[adr + 0x400a] = 0x00;
|
||||
ROM[adr + 0x400b] = 0x00;
|
||||
#endif
|
||||
|
||||
m_pix_color[0] = 0x000;
|
||||
m_pix_color[1] = 0x1e3;
|
||||
m_pix_color[2] = 0x16c;
|
||||
m_pix_color[3] = 0x1ec;
|
||||
}
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
READ8_MEMBER(fortyl_state::snd_flag_r)
|
||||
@ -664,7 +641,7 @@ GFXDECODE_END
|
||||
|
||||
/*******************************************************************************/
|
||||
|
||||
MACHINE_START_MEMBER(fortyl_state,40love)
|
||||
void fortyl_state::machine_start()
|
||||
{
|
||||
/* video */
|
||||
save_item(NAME(m_pix1));
|
||||
@ -680,10 +657,8 @@ MACHINE_START_MEMBER(fortyl_state,40love)
|
||||
}
|
||||
|
||||
|
||||
MACHINE_RESET_MEMBER(fortyl_state,common)
|
||||
void fortyl_state::machine_reset()
|
||||
{
|
||||
//MACHINE_RESET_CALL_MEMBER(ta7630);
|
||||
|
||||
/* video */
|
||||
m_pix1 = 0;
|
||||
m_pix2[0] = 0;
|
||||
@ -697,11 +672,6 @@ MACHINE_RESET_MEMBER(fortyl_state,common)
|
||||
m_snd_ctrl3 = 0;
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(fortyl_state,40love)
|
||||
{
|
||||
MACHINE_RESET_CALL_MEMBER(common);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(fortyl_state::_40love)
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -724,8 +694,6 @@ MACHINE_CONFIG_START(fortyl_state::_40love)
|
||||
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU, 18432000/6) /* OK */
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* high interleave to ensure proper synchronization of CPUs */
|
||||
MCFG_MACHINE_START_OVERRIDE(fortyl_state,40love)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(fortyl_state,40love)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -790,8 +758,6 @@ MACHINE_CONFIG_START(fortyl_state::undoukai)
|
||||
MCFG_DEVICE_ADD("bmcu", TAITO68705_MCU, 18432000/6)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||
MCFG_MACHINE_START_OVERRIDE(fortyl_state,40love)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(fortyl_state,40love) /* init machine */
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -986,7 +952,7 @@ ROM_START( undoukai )
|
||||
ROM_LOAD( "a17-18.23v", 0x0c00, 0x0400, CRC(3023a1da) SHA1(08ce4c6e99d04b358d66f0588852311d07183619) ) /* ??? */
|
||||
ROM_END
|
||||
|
||||
GAME( 1984, 40love, 0, _40love, 40love, fortyl_state, init_40love, ROT0, "Taito Corporation", "Forty-Love (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1984, 40lovej, 40love, _40love, 40love, fortyl_state, init_40love, ROT0, "Taito Corporation", "Forty-Love (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // several ROMs needs double checking
|
||||
GAME( 1984, fieldday, 0, undoukai, undoukai, fortyl_state, init_undoukai, ROT0, "Taito Corporation", "Field Day", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, undoukai, fieldday, undoukai, undoukai, fortyl_state, init_undoukai, ROT0, "Taito Corporation", "The Undoukai (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, 40love, 0, _40love, 40love, fortyl_state, driver_init, ROT0, "Taito Corporation", "Forty-Love (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1984, 40lovej, 40love, _40love, 40love, fortyl_state, driver_init, ROT0, "Taito Corporation", "Forty-Love (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // several ROMs needs double checking
|
||||
GAME( 1984, fieldday, 0, undoukai, undoukai, fortyl_state, driver_init, ROT0, "Taito Corporation", "Field Day", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, undoukai, fieldday, undoukai, undoukai, fortyl_state, driver_init, ROT0, "Taito Corporation", "The Undoukai (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -266,7 +266,7 @@ void _4enraya_state::main_portmap(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
void _4enraya_state::unkpacg_main_map(address_map &map)
|
||||
void unk_gambl_state::unkpacg_main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).rom();
|
||||
map(0x6000, 0x67ff).ram().share("nvram");
|
||||
@ -274,7 +274,7 @@ void _4enraya_state::unkpacg_main_map(address_map &map)
|
||||
map(0x8000, 0x9fff).rom();
|
||||
}
|
||||
|
||||
void _4enraya_state::unkpacg_main_portmap(address_map &map)
|
||||
void unk_gambl_state::unkpacg_main_portmap(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).portr("DSW1");
|
||||
@ -498,7 +498,7 @@ MACHINE_CONFIG_START(_4enraya_state::_4enraya )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(_4enraya_state::unkpacg)
|
||||
MACHINE_CONFIG_START(unk_gambl_state::unkpacg)
|
||||
_4enraya(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -636,8 +636,10 @@ ROM_END
|
||||
* Driver Init *
|
||||
***********************************/
|
||||
|
||||
void _4enraya_state::init_unkpacg()
|
||||
void unk_gambl_state::driver_init()
|
||||
{
|
||||
_4enraya_state::driver_init();
|
||||
|
||||
// descramble rom
|
||||
uint8_t *rom = memregion("maincpu")->base();
|
||||
for (int i = 0x8000; i < 0xa000; i++)
|
||||
@ -649,9 +651,9 @@ void _4enraya_state::init_unkpacg()
|
||||
* Game Drivers *
|
||||
***********************************/
|
||||
|
||||
/* YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS */
|
||||
GAME( 1990, 4enraya, 0, _4enraya, 4enraya, _4enraya_state, empty_init, ROT0, "IDSA", "4 En Raya (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1990, 4enrayaa, 4enraya, _4enraya, 4enraya, _4enraya_state, empty_init, ROT0, "IDSA", "4 En Raya (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 199?, unkpacg, 0, unkpacg, unkpacg, _4enraya_state, init_unkpacg, ROT0, "<unknown>", "unknown 'Pac-Man' gambling game", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 199?, unksig, 0, unkpacg, unkfr, _4enraya_state, init_unkpacg, ROT0, "<unknown>", "unknown 'Space Invaders' gambling game (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 199?, unksiga, unksig, unkpacg, unkfr, _4enraya_state, init_unkpacg, ROT0, "<unknown>", "unknown 'Space Invaders' gambling game (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
/* YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS */
|
||||
GAME( 1990, 4enraya, 0, _4enraya, 4enraya, _4enraya_state, empty_init, ROT0, "IDSA", "4 En Raya (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1990, 4enrayaa, 4enraya, _4enraya, 4enraya, _4enraya_state, empty_init, ROT0, "IDSA", "4 En Raya (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 199?, unkpacg, 0, unkpacg, unkpacg, unk_gambl_state, empty_init, ROT0, "<unknown>", "unknown 'Pac-Man' gambling game", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 199?, unksig, 0, unkpacg, unkfr, unk_gambl_state, empty_init, ROT0, "<unknown>", "unknown 'Space Invaders' gambling game (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 199?, unksiga, unksig, unkpacg, unkfr, unk_gambl_state, empty_init, ROT0, "<unknown>", "unknown 'Space Invaders' gambling game (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -195,22 +195,36 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
void init_4roses();
|
||||
void init_rugby();
|
||||
void driver_init() override;
|
||||
void _4roses(machine_config &config);
|
||||
void rugby(machine_config &config);
|
||||
|
||||
protected:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(_4roses_opcode_r);
|
||||
DECLARE_READ8_MEMBER(rugby_opcode_r);
|
||||
|
||||
void _4roses_map(address_map &map);
|
||||
void _4roses_opcodes_map(address_map &map);
|
||||
void rugby_map(address_map &map);
|
||||
void rugby_opcodes_map(address_map &map);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
};
|
||||
|
||||
class rugby_state : public _4roses_state
|
||||
{
|
||||
public:
|
||||
rugby_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: _4roses_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
void driver_init() override;
|
||||
void rugby(machine_config &config);
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER(rugby_opcode_r);
|
||||
|
||||
void rugby_map(address_map &map);
|
||||
void rugby_opcodes_map(address_map &map);
|
||||
};
|
||||
|
||||
/**********************
|
||||
* Read/Write Handlers *
|
||||
@ -274,7 +288,7 @@ void _4roses_state::_4roses_opcodes_map(address_map &map)
|
||||
map(0x8000, 0xffff).rom().region("maincpu", 0x8000);
|
||||
}
|
||||
|
||||
void _4roses_state::rugby_map(address_map &map)
|
||||
void rugby_state::rugby_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x07ff).ram(); // AM_SHARE("nvram")
|
||||
map(0x0c00, 0x0c00).r("ay8910", FUNC(ay8910_device::data_r));
|
||||
@ -286,7 +300,7 @@ void _4roses_state::rugby_map(address_map &map)
|
||||
map(0x7000, 0x7fff).ram().w(this, FUNC(_4roses_state::funworld_colorram_w)).share("colorram");
|
||||
}
|
||||
|
||||
READ8_MEMBER(_4roses_state::rugby_opcode_r)
|
||||
READ8_MEMBER(rugby_state::rugby_opcode_r)
|
||||
{
|
||||
uint8_t data = m_maincpu->space(AS_PROGRAM).read_byte(offset);
|
||||
if ((offset >> 12) == 4)
|
||||
@ -294,9 +308,9 @@ READ8_MEMBER(_4roses_state::rugby_opcode_r)
|
||||
return data;
|
||||
}
|
||||
|
||||
void _4roses_state::rugby_opcodes_map(address_map &map)
|
||||
void rugby_state::rugby_opcodes_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).r(this, FUNC(_4roses_state::rugby_opcode_r));
|
||||
map(0x0000, 0x7fff).r(this, FUNC(rugby_state::rugby_opcode_r));
|
||||
map(0x8000, 0xffff).rom().region("maincpu", 0x8000);
|
||||
}
|
||||
|
||||
@ -476,7 +490,7 @@ MACHINE_CONFIG_START(_4roses_state::_4roses)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.5)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(_4roses_state::rugby)
|
||||
MACHINE_CONFIG_START(rugby_state::rugby)
|
||||
_4roses(config);
|
||||
MCFG_DEVICE_MODIFY("maincpu")
|
||||
MCFG_DEVICE_PROGRAM_MAP(rugby_map)
|
||||
@ -553,14 +567,14 @@ ROM_END
|
||||
* Driver Initialization *
|
||||
**************************/
|
||||
|
||||
void _4roses_state::init_4roses()
|
||||
void _4roses_state::driver_init()
|
||||
{
|
||||
uint8_t *rom = memregion("maincpu")->base();
|
||||
for (offs_t addr = 0x8000; addr < 0x10000; addr++)
|
||||
rom[addr] = bitswap<8>(rom[addr] ^ 0xca, 6, 5, 4, 3, 2, 1, 0, 7);
|
||||
}
|
||||
|
||||
void _4roses_state::init_rugby()
|
||||
void rugby_state::driver_init()
|
||||
{
|
||||
uint8_t *rom = memregion("maincpu")->base();
|
||||
for (offs_t addr = 0x8000; addr < 0x10000; addr++)
|
||||
@ -573,6 +587,6 @@ void _4roses_state::init_rugby()
|
||||
*************************/
|
||||
|
||||
/* YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS */
|
||||
GAME( 1999, 4roses, 0, _4roses, 4roses, _4roses_state, init_4roses, ROT0, "<unknown>", "Four Roses (encrypted, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
GAME( 1999, 4rosesa, 4roses, _4roses, 4roses, _4roses_state, init_4roses, ROT0, "<unknown>", "Four Roses (encrypted, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
GAME( 1999, rugby, 0, rugby, 4roses, _4roses_state, init_rugby, ROT0, "C.M.C.", "Rugby? (four roses hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
GAME( 1999, 4roses, 0, _4roses, 4roses, _4roses_state, driver_init, ROT0, "<unknown>", "Four Roses (encrypted, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
GAME( 1999, 4rosesa, 4roses, _4roses, 4roses, _4roses_state, driver_init, ROT0, "<unknown>", "Four Roses (encrypted, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
GAME( 1999, rugby, 0, rugby, 4roses, rugby_state, driver_init, ROT0, "C.M.C.", "Rugby? (four roses hardware)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
||||
|
@ -451,7 +451,7 @@ void taito_f3_state::machine_start()
|
||||
save_item(NAME(m_coin_word));
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(taito_f3_state,f3)
|
||||
void taito_f3_state::machine_reset()
|
||||
{
|
||||
/* start with sound m68k off, qtheater relies on it (otherwise main CPU tries to reset it while 68k is working with irq table vectors). */
|
||||
m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||
@ -464,8 +464,6 @@ MACHINE_CONFIG_START(taito_f3_state::f3)
|
||||
MCFG_DEVICE_PROGRAM_MAP(f3_map)
|
||||
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taito_f3_state, f3_interrupt2)
|
||||
|
||||
MCFG_MACHINE_RESET_OVERRIDE(taito_f3_state,f3)
|
||||
|
||||
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
|
||||
|
||||
MCFG_WATCHDOG_ADD("watchdog")
|
||||
@ -482,8 +480,6 @@ MACHINE_CONFIG_START(taito_f3_state::f3)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_taito_f3)
|
||||
MCFG_PALETTE_ADD("palette", 0x2000)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_DEVICE_ADD("taito_en", TAITO_EN, 0)
|
||||
MACHINE_CONFIG_END
|
||||
@ -580,8 +576,6 @@ MACHINE_CONFIG_START(taito_f3_state::bubsympb)
|
||||
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_bubsympb)
|
||||
MCFG_PALETTE_ADD("palette", 8192)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(taito_f3_state,f3)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
|
@ -11,24 +11,56 @@
|
||||
|
||||
class _1942_state : public driver_device
|
||||
{
|
||||
friend class _1942p_state;
|
||||
|
||||
public:
|
||||
_1942_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_fg_videoram(*this, "fg_videoram"),
|
||||
m_bg_videoram(*this, "bg_videoram"),
|
||||
m_protopal(*this, "protopal"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_soundlatch(*this, "soundlatch") { }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_spriteram(*this, "spriteram")
|
||||
, m_fg_videoram(*this, "fg_videoram")
|
||||
, m_bg_videoram(*this, "bg_videoram")
|
||||
, m_audiocpu(*this, "audiocpu")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_soundlatch(*this, "soundlatch") { }
|
||||
|
||||
void driver_init() override;
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
|
||||
void _1942(machine_config &config);
|
||||
|
||||
protected:
|
||||
void machine_start() override;
|
||||
void machine_reset() override;
|
||||
void video_start() override;
|
||||
|
||||
void _1942_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(_1942_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(_1942_fgvideoram_w);
|
||||
DECLARE_WRITE8_MEMBER(_1942_bgvideoram_w);
|
||||
DECLARE_WRITE8_MEMBER(_1942_palette_bank_w);
|
||||
DECLARE_WRITE8_MEMBER(_1942_scroll_w);
|
||||
DECLARE_WRITE8_MEMBER(_1942_c804_w);
|
||||
DECLARE_PALETTE_INIT(1942);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(_1942_scanline);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
virtual void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint8_t> m_spriteram;
|
||||
required_shared_ptr<uint8_t> m_fg_videoram;
|
||||
required_shared_ptr<uint8_t> m_bg_videoram;
|
||||
optional_shared_ptr<uint8_t> m_protopal;
|
||||
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_fg_tilemap;
|
||||
@ -36,40 +68,31 @@ public:
|
||||
int m_palette_bank;
|
||||
uint8_t m_scroll[2];
|
||||
void create_palette();
|
||||
DECLARE_PALETTE_INIT(1942);
|
||||
DECLARE_PALETTE_INIT(1942p);
|
||||
DECLARE_WRITE8_MEMBER(c1942p_palette_w);
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
DECLARE_WRITE8_MEMBER(c1942_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(c1942_fgvideoram_w);
|
||||
DECLARE_WRITE8_MEMBER(c1942_bgvideoram_w);
|
||||
DECLARE_WRITE8_MEMBER(c1942_palette_bank_w);
|
||||
DECLARE_WRITE8_MEMBER(c1942_scroll_w);
|
||||
DECLARE_WRITE8_MEMBER(c1942_c804_w);
|
||||
DECLARE_WRITE8_MEMBER(c1942p_f600_w);
|
||||
void init_1942();
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
void video_start_c1942p();
|
||||
uint32_t screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_1942p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(c1942_scanline);
|
||||
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void draw_sprites_p( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch;
|
||||
void _1942p(machine_config &config);
|
||||
void _1942(machine_config &config);
|
||||
void c1942_map(address_map &map);
|
||||
void c1942p_map(address_map &map);
|
||||
void c1942p_sound_io(address_map &map);
|
||||
void c1942p_sound_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
};
|
||||
|
||||
class _1942p_state : public _1942_state
|
||||
{
|
||||
public:
|
||||
_1942p_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: _1942_state(mconfig, type, tag)
|
||||
, m_protopal(*this, "protopal")
|
||||
{ }
|
||||
|
||||
void _1942p(machine_config &config);
|
||||
|
||||
protected:
|
||||
void video_start() override;
|
||||
|
||||
void _1942p_map(address_map &map);
|
||||
void _1942p_sound_io(address_map &map);
|
||||
void _1942p_sound_map(address_map &map);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(_1942p_f600_w);
|
||||
DECLARE_WRITE8_MEMBER(_1942p_palette_w);
|
||||
|
||||
DECLARE_PALETTE_INIT(1942p);
|
||||
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) override;
|
||||
|
||||
required_shared_ptr<uint8_t> m_protopal;
|
||||
};
|
||||
|
@ -171,9 +171,6 @@ public:
|
||||
DECLARE_WRITE32_MEMBER(_3do_madam_w);
|
||||
DECLARE_READ32_MEMBER(_3do_clio_r);
|
||||
DECLARE_WRITE32_MEMBER(_3do_clio_w);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
DECLARE_VIDEO_START(_3do);
|
||||
uint32_t screen_update__3do(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER( timer_x16_cb );
|
||||
@ -181,7 +178,12 @@ public:
|
||||
void _3do(machine_config &config);
|
||||
void _3do_pal(machine_config &config);
|
||||
void _3do_mem(address_map &map);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
required_memory_bank m_bank1;
|
||||
required_memory_bank m_bank2;
|
||||
|
||||
|
@ -11,22 +11,74 @@ class fortyl_state : public driver_device
|
||||
{
|
||||
public:
|
||||
fortyl_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_video_ctrl(*this, "video_ctrl"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_colorram(*this, "colorram"),
|
||||
m_spriteram2(*this, "spriteram2"),
|
||||
m_mcu_ram(*this, "mcu_ram"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_bmcu(*this, "bmcu"),
|
||||
m_msm(*this, "msm"),
|
||||
m_ay(*this,"aysnd"),
|
||||
m_ta7630(*this,"ta7630"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_soundlatch2(*this, "soundlatch2") { }
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_audiocpu(*this, "audiocpu")
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_bmcu(*this, "bmcu")
|
||||
, m_msm(*this, "msm")
|
||||
, m_ay(*this,"aysnd")
|
||||
, m_ta7630(*this,"ta7630")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_soundlatch2(*this, "soundlatch2")
|
||||
, m_videoram(*this, "videoram")
|
||||
, m_video_ctrl(*this, "video_ctrl")
|
||||
, m_spriteram(*this, "spriteram")
|
||||
, m_colorram(*this, "colorram")
|
||||
, m_spriteram2(*this, "spriteram2")
|
||||
, m_mcu_ram(*this, "mcu_ram")
|
||||
{ }
|
||||
|
||||
virtual void driver_init() override;
|
||||
|
||||
uint32_t screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void redraw_pixels();
|
||||
void fortyl_set_scroll_x( int offset );
|
||||
void fortyl_plot_pix( int offset );
|
||||
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void draw_pixram( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
|
||||
void undoukai(machine_config &config);
|
||||
void _40love(machine_config &config);
|
||||
void _40love_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
void undoukai_map(address_map &map);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(bank_select_w);
|
||||
DECLARE_WRITE8_MEMBER(pix1_w);
|
||||
DECLARE_WRITE8_MEMBER(pix2_w);
|
||||
DECLARE_READ8_MEMBER(pix2_r);
|
||||
DECLARE_READ8_MEMBER(snd_flag_r);
|
||||
DECLARE_READ8_MEMBER(fortyl_mcu_status_r);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_pixram_sel_w);
|
||||
DECLARE_READ8_MEMBER(fortyl_pixram_r);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_pixram_w);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_bg_videoram_w);
|
||||
DECLARE_READ8_MEMBER(fortyl_bg_videoram_r);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_bg_colorram_w);
|
||||
DECLARE_READ8_MEMBER(fortyl_bg_colorram_r);
|
||||
DECLARE_WRITE8_MEMBER(pix1_mcu_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_0_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_1_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_2_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_3_w);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<taito68705_mcu_device> m_bmcu;
|
||||
required_device<msm5232_device> m_msm;
|
||||
required_device<ay8910_device> m_ay;
|
||||
required_device<ta7630_device> m_ta7630;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch2;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<uint8_t> m_videoram;
|
||||
@ -60,53 +112,4 @@ public:
|
||||
uint8_t m_snd_ctrl1;
|
||||
uint8_t m_snd_ctrl2;
|
||||
uint8_t m_snd_ctrl3;
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<taito68705_mcu_device> m_bmcu;
|
||||
required_device<msm5232_device> m_msm;
|
||||
required_device<ay8910_device> m_ay;
|
||||
required_device<ta7630_device> m_ta7630;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<generic_latch_8_device> m_soundlatch2;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(bank_select_w);
|
||||
DECLARE_WRITE8_MEMBER(pix1_w);
|
||||
DECLARE_WRITE8_MEMBER(pix2_w);
|
||||
DECLARE_READ8_MEMBER(pix2_r);
|
||||
DECLARE_READ8_MEMBER(snd_flag_r);
|
||||
DECLARE_READ8_MEMBER(fortyl_mcu_status_r);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_pixram_sel_w);
|
||||
DECLARE_READ8_MEMBER(fortyl_pixram_r);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_pixram_w);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_bg_videoram_w);
|
||||
DECLARE_READ8_MEMBER(fortyl_bg_videoram_r);
|
||||
DECLARE_WRITE8_MEMBER(fortyl_bg_colorram_w);
|
||||
DECLARE_READ8_MEMBER(fortyl_bg_colorram_r);
|
||||
DECLARE_WRITE8_MEMBER(pix1_mcu_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_0_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_1_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_2_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_3_w);
|
||||
void init_undoukai();
|
||||
void init_40love();
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
virtual void video_start() override;
|
||||
DECLARE_MACHINE_START(40love);
|
||||
DECLARE_MACHINE_RESET(40love);
|
||||
DECLARE_MACHINE_RESET(common);
|
||||
uint32_t screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void redraw_pixels();
|
||||
void fortyl_set_scroll_x( int offset );
|
||||
void fortyl_plot_pix( int offset );
|
||||
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void draw_pixram( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
|
||||
void undoukai(machine_config &config);
|
||||
void _40love(machine_config &config);
|
||||
void _40love_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
void undoukai_map(address_map &map);
|
||||
};
|
||||
|
@ -6,6 +6,11 @@
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#ifndef MAME_INCLUDES_4ENRAYA_H
|
||||
#define MAME_INCLUDES_4ENRAYA_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
class _4enraya_state : public driver_device
|
||||
@ -22,6 +27,23 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(sound_data_w);
|
||||
DECLARE_READ8_MEMBER(fenraya_custom_map_r);
|
||||
DECLARE_WRITE8_MEMBER(fenraya_custom_map_w);
|
||||
DECLARE_WRITE8_MEMBER(fenraya_videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_w);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
uint32_t screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void _4enraya(machine_config &config);
|
||||
void main_map(address_map &map);
|
||||
void main_portmap(address_map &map);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<ay8910_device> m_ay;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
@ -39,23 +61,22 @@ public:
|
||||
|
||||
/* sound-related */
|
||||
uint8_t m_soundlatch;
|
||||
};
|
||||
|
||||
DECLARE_WRITE8_MEMBER(sound_data_w);
|
||||
DECLARE_READ8_MEMBER(fenraya_custom_map_r);
|
||||
DECLARE_WRITE8_MEMBER(fenraya_custom_map_w);
|
||||
DECLARE_WRITE8_MEMBER(fenraya_videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_control_w);
|
||||
void init_unkpacg();
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
uint32_t screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
class unk_gambl_state : public _4enraya_state
|
||||
{
|
||||
public:
|
||||
unk_gambl_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: _4enraya_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
void unkpacg(machine_config &config);
|
||||
void _4enraya(machine_config &config);
|
||||
void main_map(address_map &map);
|
||||
void main_portmap(address_map &map);
|
||||
void unkpacg_main_map(address_map &map);
|
||||
void unkpacg_main_portmap(address_map &map);
|
||||
|
||||
protected:
|
||||
void driver_init() override;
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_4ENRAYA_H
|
@ -310,9 +310,6 @@ public:
|
||||
TILE_GET_INFO_MEMBER(get_tile_info8);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_vram);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_pixel);
|
||||
virtual void machine_start() override;
|
||||
DECLARE_MACHINE_RESET(f3);
|
||||
DECLARE_VIDEO_START(f3);
|
||||
uint32_t screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_f3);
|
||||
INTERRUPT_GEN_MEMBER(f3_interrupt2);
|
||||
@ -327,6 +324,10 @@ public:
|
||||
void bubsympb_map(address_map &map);
|
||||
void f3_map(address_map &map);
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
virtual void device_post_load(void) override;
|
||||
|
||||
|
@ -1030,7 +1030,7 @@ WRITE32_MEMBER(_3do_state::_3do_clio_w)
|
||||
|
||||
/* 9 -> 5 bits translation */
|
||||
|
||||
VIDEO_START_MEMBER(_3do_state,_3do)
|
||||
void _3do_state::video_start()
|
||||
{
|
||||
/* We only keep the odd bits and get rid of the even bits */
|
||||
// for ( int i = 0; i < 512; i++ )
|
||||
|
@ -92,7 +92,7 @@ PALETTE_INIT_MEMBER(_1942_state,1942)
|
||||
m_palette->set_pen_indirect(colorbase + i, 0x40 | *color_prom++);
|
||||
}
|
||||
|
||||
PALETTE_INIT_MEMBER(_1942_state,1942p)
|
||||
PALETTE_INIT_MEMBER(_1942p_state,1942p)
|
||||
{
|
||||
for (int i = 0; i < 0x400; i++)
|
||||
{
|
||||
@ -154,7 +154,7 @@ void _1942_state::video_start()
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
}
|
||||
|
||||
void _1942_state::video_start_c1942p()
|
||||
void _1942p_state::video_start()
|
||||
{
|
||||
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
|
||||
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(_1942_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 16);
|
||||
@ -169,20 +169,20 @@ void _1942_state::video_start_c1942p()
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942_fgvideoram_w)
|
||||
WRITE8_MEMBER(_1942_state::_1942_fgvideoram_w)
|
||||
{
|
||||
m_fg_videoram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942_bgvideoram_w)
|
||||
WRITE8_MEMBER(_1942_state::_1942_bgvideoram_w)
|
||||
{
|
||||
m_bg_videoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty((offset & 0x0f) | ((offset >> 1) & 0x01f0));
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942_palette_bank_w)
|
||||
WRITE8_MEMBER(_1942_state::_1942_palette_bank_w)
|
||||
{
|
||||
if (m_palette_bank != data)
|
||||
{
|
||||
@ -191,14 +191,14 @@ WRITE8_MEMBER(_1942_state::c1942_palette_bank_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942_scroll_w)
|
||||
WRITE8_MEMBER(_1942_state::_1942_scroll_w)
|
||||
{
|
||||
m_scroll[offset] = data;
|
||||
m_bg_tilemap->set_scrollx(0, m_scroll[0] | (m_scroll[1] << 8));
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(_1942_state::c1942_c804_w)
|
||||
WRITE8_MEMBER(_1942_state::_1942_c804_w)
|
||||
{
|
||||
/* bit 7: flip screen
|
||||
bit 4: cpu B reset
|
||||
@ -218,7 +218,7 @@ WRITE8_MEMBER(_1942_state::c1942_c804_w)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void _1942_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
void _1942_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int offs;
|
||||
|
||||
@ -259,7 +259,7 @@ void _1942_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect
|
||||
|
||||
}
|
||||
|
||||
uint32_t _1942_state::screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t _1942_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
@ -268,24 +268,19 @@ uint32_t _1942_state::screen_update_1942(screen_device &screen, bitmap_ind16 &bi
|
||||
}
|
||||
|
||||
|
||||
void _1942_state::draw_sprites_p( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
void _1942p_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int offs;
|
||||
|
||||
for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
|
||||
for (int offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
|
||||
{
|
||||
int i, code, col, sx, sy, dir;
|
||||
|
||||
code = (m_spriteram[offs] & 0x7f) + 4 * (m_spriteram[offs + 3] & 0x20)
|
||||
+ 2 * (m_spriteram[offs] & 0x80);
|
||||
col = m_spriteram[offs + 3] & 0x0f;
|
||||
|
||||
|
||||
sx = m_spriteram[offs + 2] - 0x10 * (m_spriteram[offs + 3] & 0x10);
|
||||
sy = m_spriteram[offs + 1];
|
||||
int code = (m_spriteram[offs] & 0x7f) + 4 * (m_spriteram[offs + 3] & 0x20)
|
||||
+ 2 * (m_spriteram[offs] & 0x80);
|
||||
int col = m_spriteram[offs + 3] & 0x0f;
|
||||
|
||||
|
||||
int sx = m_spriteram[offs + 2] - 0x10 * (m_spriteram[offs + 3] & 0x10);
|
||||
int sy = m_spriteram[offs + 1];
|
||||
|
||||
int dir;
|
||||
if (flip_screen())
|
||||
{
|
||||
sx = 240 - sx;
|
||||
@ -298,7 +293,7 @@ void _1942_state::draw_sprites_p( bitmap_ind16 &bitmap, const rectangle &cliprec
|
||||
}
|
||||
|
||||
/* handle double / quadruple height */
|
||||
i = (m_spriteram[offs + 3] & 0xc0) >> 6;
|
||||
int i = (m_spriteram[offs + 3] & 0xc0) >> 6;
|
||||
if (i == 2)
|
||||
i = 3;
|
||||
|
||||
@ -315,13 +310,4 @@ void _1942_state::draw_sprites_p( bitmap_ind16 &bitmap, const rectangle &cliprec
|
||||
} while (i >= 0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
uint32_t _1942_state::screen_update_1942p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
draw_sprites_p(bitmap, cliprect);
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
@ -530,7 +530,7 @@ WRITE_LINE_MEMBER(taito_f3_state::screen_vblank_f3)
|
||||
}
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(taito_f3_state,f3)
|
||||
void taito_f3_state::video_start()
|
||||
{
|
||||
const struct F3config *pCFG=&f3_config_table[0];
|
||||
int i;
|
||||
|
Loading…
Reference in New Issue
Block a user