From 2123d82d90ed13a8ed13689d77f718c76e836a85 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Tue, 30 Jun 2020 19:53:00 +0200 Subject: namcos2.cpp: enabled save state support (nw) --- src/mame/drivers/namcos2.cpp | 148 ++++++++++++++++++++++--------------------- src/mame/includes/namcos2.h | 20 +++--- src/mame/machine/namcos2.cpp | 16 ++--- src/mame/video/namcos2.cpp | 2 + 4 files changed, 96 insertions(+), 90 deletions(-) diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp index 27bed8616d4..15a082b95a2 100644 --- a/src/mame/drivers/namcos2.cpp +++ b/src/mame/drivers/namcos2.cpp @@ -86,12 +86,12 @@ All sound circuitry is contained on the CPU board, it consists of: The CPU board also contains the frame timing and video image generation circuitry along with text/scroll planes and the palette generator. The system has 8192 pens of which 4096+2048 are displayable at any given time. These -pens refernce a 24 bit colour lookup table (R8:G8:B8). +pens reference a 24 bit colour lookup table (R8:G8:B8). The text/tile plane generator has the following capabilities: 2 x Static tile planes (36x28 tiles) -4 x Scolling tile planes (64x64 tiles) +4 x Scrolling tile planes (64x64 tiles) Each plane has its own colour index (8 total) that is used alongside the pen number to be looked up in the pen index and generate a 24 bit pixel. Each @@ -163,7 +163,7 @@ Interrupt Controller C148 1C0000-1FFFFF R/W D00-D02 ???????? 1D0XXX ???????? 1D4000 trigger master/slave INT? - Acknowlegde Master/Slave IRQ 1D6XXX ack master/slave INT + Acknowledge Master/Slave IRQ 1D6XXX ack master/slave INT Acknowledge EXIRQ 1D8XXX Acknowledge POSIRQ 1DAXXX Acknowledge SCIRQ 1DCXXX @@ -197,7 +197,7 @@ Interrupt Controller C148 1C0000-1FFFFF R/W D00-D02 SCIRQ level 1CCXXX D00-D02 VBLANK IRQ level 1CEXXX D00-D02 ???????? 1D0XXX - Acknowlegde Master/Slave IRQ 1D6XXX + Acknowledge Master/Slave IRQ 1D6XXX Acknowledge EXIRQ 1D8XXX Acknowledge POSIRQ 1DAXXX Acknowledge SCIRQ 1DCXXX @@ -567,31 +567,31 @@ C102 - Controls CPU access to ROZ Memory Area. /* 68000/6809/63705 Shared memory area - DUAL PORT Memory */ /*************************************************************/ -void namcos2_state::GollyGhostUpdateLED_c4( int data ) +void namcos2_state::GollyGhostUpdateLED_c4(int data) { output().set_value("zip100", data >> 4); output().set_value("zip10", data & 0x0f); } -void namcos2_state::GollyGhostUpdateLED_c6( int data ) +void namcos2_state::GollyGhostUpdateLED_c6(int data) { output().set_value("zip1", data >> 4); output().set_value("time10", data & 0x0f); } -void namcos2_state::GollyGhostUpdateLED_c8( int data ) +void namcos2_state::GollyGhostUpdateLED_c8(int data) { output().set_value("time1", data >> 4); output().set_value("zap100", data & 0x0f); } -void namcos2_state::GollyGhostUpdateLED_ca( int data ) +void namcos2_state::GollyGhostUpdateLED_ca(int data) { output().set_value("zap10", data >> 4); output().set_value("zap1", data & 0x0f); } -void namcos2_state::GollyGhostUpdateDiorama_c0( int data ) +void namcos2_state::GollyGhostUpdateDiorama_c0(int data) { if (data & 0x80) { @@ -885,8 +885,8 @@ void namcos2_state::c140_default_am(address_map &map) /* */ /* NAMCO SYSTEM 2 PORT MACROS */ /* */ -/* Below are the port defintion macros that should be used */ -/* as the basis for defining a port set for a Namco System2 */ +/* Below are the port definition macros that should be used */ +/* as the basis for defining a port set for a Namco System2 */ /* game. */ /* */ /*************************************************************/ @@ -1403,7 +1403,7 @@ INPUT_PORTS_END TAB menu. This game has a rather unique control setup, 2 lightguns, plus steering hardware. Defaults have been set - up to avoid a large number of duplicae buttons. Using these settings (with -mouse) the following mapping is + up to avoid a large number of duplicate buttons. Using these settings (with -mouse) the following mapping is given Z, X - Steer Car @@ -5495,16 +5495,22 @@ void namcos2_state::init_dirtfoxj() void namcos2_state::init_finallap() { m_gametype = NAMCOS2_FINAL_LAP; + + save_item(NAME(m_finallap_prot_count)); } void namcos2_state::init_finalap2() { m_gametype = NAMCOS2_FINAL_LAP_2; + + save_item(NAME(m_finallap_prot_count)); } void namcos2_state::init_finalap3() { m_gametype = NAMCOS2_FINAL_LAP_3; + + save_item(NAME(m_finallap_prot_count)); } void namcos2_state::init_finehour() @@ -5675,91 +5681,91 @@ void namcos2_state::init_luckywld() /* and metal hawk have the B version and dragon saber has the C version */ /* YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR,COMPANY, FULLNAME */ -GAMEL( 1987, finallap, 0, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Rev E)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1987, finallapd, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Rev D)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1987, finallapc, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1987, finallapjc, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Japan, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1987, finallapjb, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) +GAMEL( 1987, finallap, 0, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Rev E)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1987, finallapd, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Rev D)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1987, finallapc, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1987, finallapjc, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Japan, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1987, finallapjb, finallap, finallap, finallap, namcos2_state, init_finallap, ROT0, "Namco", "Final Lap (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) -GAME( 1988, assault, 0, base2, assault, namcos2_state, init_assault, ROT90, "Namco", "Assault (Rev B)", 0 ) -GAME( 1988, assaultj, assault, base2, assault, namcos2_state, init_assaultj, ROT90, "Namco", "Assault (Japan)", 0 ) -GAME( 1988, assaultp, assault, assaultp, assault, namcos2_state, init_assaultp, ROT90, "Namco", "Assault Plus (Japan)", 0) +GAME( 1988, assault, 0, base2, assault, namcos2_state, init_assault, ROT90, "Namco", "Assault (Rev B)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, assaultj, assault, base2, assault, namcos2_state, init_assaultj, ROT90, "Namco", "Assault (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, assaultp, assault, assaultp, assault, namcos2_state, init_assaultp, ROT90, "Namco", "Assault Plus (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, metlhawk, 0, metlhawk, metlhawk, namcos2_state, init_metlhawk, ROT90, "Namco", "Metal Hawk (Rev C)", 0 ) -GAME( 1988, metlhawkj, metlhawk, metlhawk, metlhawk, namcos2_state, init_metlhawk, ROT90, "Namco", "Metal Hawk (Japan, Rev F)", 0 ) +GAME( 1988, metlhawk, 0, metlhawk, metlhawk, namcos2_state, init_metlhawk, ROT90, "Namco", "Metal Hawk (Rev C)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, metlhawkj, metlhawk, metlhawk, metlhawk, namcos2_state, init_metlhawk, ROT90, "Namco", "Metal Hawk (Japan, Rev F)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, ordyne, 0, base, base, namcos2_state, init_ordyne, ROT180, "Namco", "Ordyne (World)", 0 ) -GAME( 1988, ordyneje, ordyne, base, base, namcos2_state, init_ordyne, ROT180, "Namco", "Ordyne (Japan, English Version)", 0 ) -GAME( 1988, ordynej, ordyne, base, base, namcos2_state, init_ordyne, ROT180, "Namco", "Ordyne (Japan)", 0 ) +GAME( 1988, ordyne, 0, base, base, namcos2_state, init_ordyne, ROT180, "Namco", "Ordyne (World)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ordyneje, ordyne, base, base, namcos2_state, init_ordyne, ROT180, "Namco", "Ordyne (Japan, English Version)", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, ordynej, ordyne, base, base, namcos2_state, init_ordyne, ROT180, "Namco", "Ordyne (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, mirninja, 0, base, base, namcos2_state, init_mirninja, ROT0, "Namco", "Mirai Ninja (Japan)", 0 ) +GAME( 1988, mirninja, 0, base, base, namcos2_state, init_mirninja, ROT0, "Namco", "Mirai Ninja (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1988, phelios, 0, base2, base, namcos2_state, init_phelios, ROT90, "Namco", "Phelios", 0) -GAME( 1988, pheliosj, phelios, base2, base, namcos2_state, init_phelios, ROT90, "Namco", "Phelios (Japan)", 0) +GAME( 1988, phelios, 0, base2, base, namcos2_state, init_phelios, ROT90, "Namco", "Phelios", MACHINE_SUPPORTS_SAVE ) +GAME( 1988, pheliosj, phelios, base2, base, namcos2_state, init_phelios, ROT90, "Namco", "Phelios (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, dirtfoxj, 0, base2, dirtfox, namcos2_state, init_dirtfoxj, ROT90, "Namco", "Dirt Fox (Japan)", MACHINE_NODEVICE_LAN ) +GAME( 1989, dirtfoxj, 0, base2, dirtfox, namcos2_state, init_dirtfoxj, ROT90, "Namco", "Dirt Fox (Japan)", MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAMEL( 1989, fourtrax, 0, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1989, fourtraxj, fourtrax, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1989, fourtraxa, fourtrax, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco (Atari license?)", "Four Trax (US?, censored banners)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) // boards using the ROM code FX4 were produced for Atari? there's no US region warning or Atari copyright tho, modded version of the World code +GAMEL( 1989, fourtrax, 0, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1989, fourtraxj, fourtrax, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco", "Four Trax (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1989, fourtraxa, fourtrax, finallap, fourtrax, namcos2_state, init_fourtrax, ROT0, "Namco (Atari license?)", "Four Trax (US?, censored banners)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) // boards using the ROM code FX4 were produced for Atari? there's no US region warning or Atari copyright tho, modded version of the World code -GAME( 1989, valkyrie, 0, base3, base, namcos2_state, init_valkyrie, ROT90, "Namco", "Valkyrie no Densetsu (Japan)", 0 ) +GAME( 1989, valkyrie, 0, base3, base, namcos2_state, init_valkyrie, ROT90, "Namco", "Valkyrie no Densetsu (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, finehour, 0, base2, base, namcos2_state, init_finehour, ROT0, "Namco", "Finest Hour (Japan)", 0) +GAME( 1989, finehour, 0, base2, base, namcos2_state, init_finehour, ROT0, "Namco", "Finest Hour (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, burnforc, 0, base3, base, namcos2_state, init_burnforc, ROT0, "Namco", "Burning Force (Japan, new version (Rev C))", 0 ) -GAME( 1989, burnforco, burnforc, base3, base, namcos2_state, init_burnforc, ROT0, "Namco", "Burning Force (Japan, old version)", 0 ) +GAME( 1989, burnforc, 0, base3, base, namcos2_state, init_burnforc, ROT0, "Namco", "Burning Force (Japan, new version (Rev C))", MACHINE_SUPPORTS_SAVE ) +GAME( 1989, burnforco, burnforc, base3, base, namcos2_state, init_burnforc, ROT0, "Namco", "Burning Force (Japan, old version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1989, marvland, 0, base, base, namcos2_state, init_marvland, ROT0, "Namco", "Marvel Land (US, prototype?)", MACHINE_IMPERFECT_SOUND ) -GAME( 1989, marvlandj, marvland, base, base, namcos2_state, init_marvlanj, ROT0, "Namco", "Marvel Land (Japan)", 0 ) +GAME( 1989, marvland, 0, base, base, namcos2_state, init_marvland, ROT0, "Namco", "Marvel Land (US, prototype?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, marvlandj, marvland, base, base, namcos2_state, init_marvlanj, ROT0, "Namco", "Marvel Land (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, kyukaidk, 0, base, kyukaidk, namcos2_state, init_kyukaidk, ROT0, "Namco", "Kyuukai Douchuuki (Japan, new version (Rev B))", 0 ) -GAME( 1990, kyukaidko, kyukaidk, base, kyukaidk, namcos2_state, init_kyukaidk, ROT0, "Namco", "Kyuukai Douchuuki (Japan, old version)", 0 ) +GAME( 1990, kyukaidk, 0, base, kyukaidk, namcos2_state, init_kyukaidk, ROT0, "Namco", "Kyuukai Douchuuki (Japan, new version (Rev B))", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, kyukaidko, kyukaidk, base, kyukaidk, namcos2_state, init_kyukaidk, ROT0, "Namco", "Kyuukai Douchuuki (Japan, old version)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, dsaber, 0, base3, base, namcos2_state, init_dsaber, ROT90, "Namco", "Dragon Saber (World, DO2)", 0 ) -GAME( 1990, dsabera, dsaber, base3, base, namcos2_state, init_dsaber, ROT90, "Namco", "Dragon Saber (World, older?)", 0 ) -GAME( 1990, dsaberj, dsaber, base3, base, namcos2_state, init_dsaberj, ROT90, "Namco", "Dragon Saber (Japan, Rev B)", 0 ) +GAME( 1990, dsaber, 0, base3, base, namcos2_state, init_dsaber, ROT90, "Namco", "Dragon Saber (World, DO2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, dsabera, dsaber, base3, base, namcos2_state, init_dsaber, ROT90, "Namco", "Dragon Saber (World, older?)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, dsaberj, dsaber, base3, base, namcos2_state, init_dsaberj, ROT90, "Namco", "Dragon Saber (Japan, Rev B)", MACHINE_SUPPORTS_SAVE ) -GAMEL( 1990, finalap2, 0, finalap2, finallap, namcos2_state, init_finalap2, ROT0, "Namco", "Final Lap 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1990, finalap2j, finalap2, finalap2, finallap, namcos2_state, init_finalap2, ROT0, "Namco", "Final Lap 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) +GAMEL( 1990, finalap2, 0, finalap2, finallap, namcos2_state, init_finalap2, ROT0, "Namco", "Final Lap 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1990, finalap2j, finalap2, finalap2, finallap, namcos2_state, init_finalap2, ROT0, "Namco", "Final Lap 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) -GAME( 1990, gollygho, 0, gollygho, gollygho, namcos2_state, init_gollygho, ROT180, "Namco", "Golly! Ghost!", MACHINE_REQUIRES_ARTWORK ) +GAME( 1990, gollygho, 0, gollygho, gollygho, namcos2_state, init_gollygho, ROT180, "Namco", "Golly! Ghost!", MACHINE_REQUIRES_ARTWORK | MACHINE_SUPPORTS_SAVE ) -GAME( 1990, rthun2, 0, base3, base, namcos2_state, init_rthun2, ROT0, "Namco", "Rolling Thunder 2", 0 ) -GAME( 1990, rthun2j, rthun2, base3, base, namcos2_state, init_rthun2j, ROT0, "Namco", "Rolling Thunder 2 (Japan)", 0 ) +GAME( 1990, rthun2, 0, base3, base, namcos2_state, init_rthun2, ROT0, "Namco", "Rolling Thunder 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, rthun2j, rthun2, base3, base, namcos2_state, init_rthun2j, ROT0, "Namco", "Rolling Thunder 2 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1990, sgunner, 0, sgunner, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner (Rev B)", 0 ) -GAME( 1990, sgunnerj, sgunner, sgunner, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner (Japan)", 0 ) +GAME( 1990, sgunner, 0, sgunner, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner (Rev B)", MACHINE_SUPPORTS_SAVE ) +GAME( 1990, sgunnerj, sgunner, sgunner, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner (Japan)", MACHINE_SUPPORTS_SAVE ) // The C68 I/O MCU contains a 1991 copyright, so anything after this point is potentially using that instead of C65, games before this point can't be using it -GAME( 1991, sgunner2, 0, sgunner2, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner 2 (US)", 0 ) -GAME( 1991, sgunner2j, sgunner2, sgunner2, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner 2 (Japan, Rev A)", 0 ) +GAME( 1991, sgunner2, 0, sgunner2, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner 2 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, sgunner2j, sgunner2, sgunner2, sgunner, namcos2_state, init_sgunner2, ROT0, "Namco", "Steel Gunner 2 (Japan, Rev A)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, cosmogng, 0, base, base, namcos2_state, init_cosmogng, ROT90, "Namco", "Cosmo Gang the Video (US)", 0 ) -GAME( 1991, cosmogngj, cosmogng, base, base, namcos2_state, init_cosmogng, ROT90, "Namco", "Cosmo Gang the Video (Japan)", 0 ) +GAME( 1991, cosmogng, 0, base, base, namcos2_state, init_cosmogng, ROT90, "Namco", "Cosmo Gang the Video (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1991, cosmogngj, cosmogng, base, base, namcos2_state, init_cosmogng, ROT90, "Namco", "Cosmo Gang the Video (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, bubbletr, 0, gollygho, bubbletr, namcos2_state, init_bubbletr, ROT180, "Namco", "Bubble Trouble - Golly Ghost 2 (World, Rev B)", MACHINE_REQUIRES_ARTWORK ) -GAME( 1992, bubbletrj, bubbletr, gollygho, bubbletr, namcos2_state, init_bubbletr, ROT180, "Namco", "Bubble Trouble - Golly Ghost 2 (Japan, Rev C)", MACHINE_REQUIRES_ARTWORK ) +GAME( 1992, bubbletr, 0, gollygho, bubbletr, namcos2_state, init_bubbletr, ROT180, "Namco", "Bubble Trouble - Golly Ghost 2 (World, Rev B)", MACHINE_REQUIRES_ARTWORK | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, bubbletrj, bubbletr, gollygho, bubbletr, namcos2_state, init_bubbletr, ROT180, "Namco", "Bubble Trouble - Golly Ghost 2 (Japan, Rev C)", MACHINE_REQUIRES_ARTWORK | MACHINE_SUPPORTS_SAVE ) -GAMEL( 1992, finalap3, 0, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (World, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1992, finalap3a, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (World, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1992, finalap3j, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1992, finalap3jc, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (Japan, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) -GAMEL( 1992, finalap3bl, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN, layout_finallap ) +GAMEL( 1992, finalap3, 0, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (World, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1992, finalap3a, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (World, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1992, finalap3j, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1992, finalap3jc, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (Japan, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) +GAMEL( 1992, finalap3bl, finalap3, finalap3, finalap3, namcos2_state, init_finalap3, ROT0, "Namco", "Final Lap 3 (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE, layout_finallap ) -GAME( 1992, luckywld, 0, luckywld, luckywld, namcos2_state, init_luckywld, ROT0, "Namco", "Lucky & Wild", 0 ) -GAME( 1992, luckywldj, luckywld, luckywld, luckywld, namcos2_state, init_luckywld, ROT0, "Namco", "Lucky & Wild (Japan)", 0 ) +GAME( 1992, luckywld, 0, luckywld, luckywld, namcos2_state, init_luckywld, ROT0, "Namco", "Lucky & Wild", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, luckywldj, luckywld, luckywld, luckywld, namcos2_state, init_luckywld, ROT0, "Namco", "Lucky & Wild (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, suzuka8h, 0, suzuka8h, suzuka, namcos2_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) -GAME( 1992, suzuka8hj, suzuka8h, suzuka8h, suzuka, namcos2_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) +GAME( 1992, suzuka8h, 0, suzuka8h, suzuka, namcos2_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, suzuka8hj, suzuka8h, suzuka8h, suzuka, namcos2_state, init_suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1992, sws, 0, base_c68, base, namcos2_state, init_sws, ROT0, "Namco", "Super World Stadium (Japan)", 0 ) +GAME( 1992, sws, 0, base_c68, base, namcos2_state, init_sws, ROT0, "Namco", "Super World Stadium (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, sws92, 0, base_c68, base, namcos2_state, init_sws92, ROT0, "Namco", "Super World Stadium '92 (Japan)", 0 ) -GAME( 1992, sws92g, sws92, base_c68, base, namcos2_state, init_sws92g, ROT0, "Namco", "Super World Stadium '92 Gekitouban (Japan)", 0 ) +GAME( 1992, sws92, 0, base_c68, base, namcos2_state, init_sws92, ROT0, "Namco", "Super World Stadium '92 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, sws92g, sws92, base_c68, base, namcos2_state, init_sws92g, ROT0, "Namco", "Super World Stadium '92 Gekitouban (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, suzuk8h2, 0, suzuka8h, suzuka, namcos2_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (World, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) -GAME( 1993, suzuk8h2j, suzuk8h2, suzuka8h, suzuka, namcos2_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN ) +GAME( 1993, suzuk8h2, 0, suzuka8h, suzuka, namcos2_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (World, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) +GAME( 1993, suzuk8h2j, suzuk8h2, suzuka8h, suzuka, namcos2_state, init_suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN | MACHINE_SUPPORTS_SAVE ) -GAME( 1993, sws93, 0, base_c68, base, namcos2_state, init_sws93, ROT0, "Namco", "Super World Stadium '93 (Japan)", 0 ) // this appears to have a subtitle, what is it? +GAME( 1993, sws93, 0, base_c68, base, namcos2_state, init_sws93, ROT0, "Namco", "Super World Stadium '93 (Japan)", MACHINE_SUPPORTS_SAVE ) // this appears to have a subtitle, what is it? diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h index 46cda26b59e..383eab59c38 100644 --- a/src/mame/includes/namcos2.h +++ b/src/mame/includes/namcos2.h @@ -126,6 +126,11 @@ public: void init_marvland(); void init_rthun2(); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; + private: enum @@ -202,7 +207,6 @@ enum void system_reset_w(uint8_t data); void reset_all_subcpus(int state); - virtual void video_start() override; void video_start_luckywld(); void video_start_metlhawk(); void video_start_sgunner(); @@ -218,9 +222,6 @@ enum uint16_t gfx_ctrl_r(); void gfx_ctrl_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - virtual void machine_start() override; - virtual void machine_reset() override; - void create_shadow_table(); void apply_clip( rectangle &clip, const rectangle &cliprect ); @@ -230,7 +231,6 @@ enum required_shared_ptr m_dpram; /* 2Kx8 */ optional_shared_ptr m_spriteram; uint16_t m_gfx_ctrl; - uint16_t m_serial_comms_ctrl[0x8]; unsigned m_finallap_prot_count; int m_sendval; @@ -241,11 +241,11 @@ enum uint16_t namcos2_68k_key_r(offs_t offset); void namcos2_68k_key_w(offs_t offset, uint16_t data); uint16_t namcos2_finallap_prot_r(offs_t offset); - void GollyGhostUpdateLED_c4( int data ); - void GollyGhostUpdateLED_c6( int data ); - void GollyGhostUpdateLED_c8( int data ); - void GollyGhostUpdateLED_ca( int data ); - void GollyGhostUpdateDiorama_c0( int data ); + void GollyGhostUpdateLED_c4(int data); + void GollyGhostUpdateLED_c6(int data); + void GollyGhostUpdateLED_c8(int data); + void GollyGhostUpdateLED_ca(int data); + void GollyGhostUpdateDiorama_c0(int data); void TilemapCB(uint16_t code, int *tile, int *mask); void TilemapCB_finalap2(uint16_t code, int *tile, int *mask); void RozCB_luckywld(uint16_t code, int *tile, int *mask, int which); diff --git a/src/mame/machine/namcos2.cpp b/src/mame/machine/namcos2.cpp index 2ebd1dbcccf..2c309565135 100644 --- a/src/mame/machine/namcos2.cpp +++ b/src/mame/machine/namcos2.cpp @@ -80,13 +80,12 @@ void namcos2_state::machine_start() for (int i = 0; i < 0x10; i++) m_audiobank->configure_entry(i, memregion("audiocpu")->base() + (i % max) * 0x4000); + save_pointer(NAME(m_eeprom), 0x2000); + save_item(NAME(m_sendval)); } void namcos2_state::machine_reset() { -// address_space &space = m_maincpu->space(AS_PROGRAM); -// address_space &audio_space = m_audiocpu->space(AS_PROGRAM); - /* Initialise the bank select in the sound CPU */ m_audiobank->set_entry(0); /* Page in bank 0 */ @@ -203,7 +202,7 @@ uint16_t namcos2_state::namcos2_68k_key_r(offs_t offset) break; case NAMCOS2_STEEL_GUNNER_2: - switch( offset ) + switch(offset) { case 4: return 0x15a; } @@ -360,20 +359,19 @@ uint16_t namcos2_state::namcos2_68k_key_r(offs_t offset) void namcos2_state::namcos2_68k_key_w(offs_t offset, uint16_t data) { - int gametype = m_gametype; - if( gametype == NAMCOS2_MARVEL_LAND && offset == 5 ) + if( m_gametype == NAMCOS2_MARVEL_LAND && offset == 5 ) { if (data == 0x615E) m_sendval = 1; } - if( gametype == NAMCOS2_ROLLING_THUNDER_2 && offset == 4 ) + if( m_gametype == NAMCOS2_ROLLING_THUNDER_2 && offset == 4 ) { if (data == 0x13EC) m_sendval = 1; } - if( gametype == NAMCOS2_ROLLING_THUNDER_2 && offset == 7 ) + if( m_gametype == NAMCOS2_ROLLING_THUNDER_2 && offset == 7 ) { if (data == 0x13EC) m_sendval = 1; } - if( gametype == NAMCOS2_MARVEL_LAND && offset == 6 ) + if( m_gametype == NAMCOS2_MARVEL_LAND && offset == 6 ) { if (data == 0x1001) m_sendval = 0; } diff --git a/src/mame/video/namcos2.cpp b/src/mame/video/namcos2.cpp index 3159f14e932..922a9def87b 100644 --- a/src/mame/video/namcos2.cpp +++ b/src/mame/video/namcos2.cpp @@ -70,6 +70,8 @@ void namcos2_state::create_shadow_table() void namcos2_state::video_start() { create_shadow_table(); + + save_item(NAME(m_gfx_ctrl)); } void namcos2_state::apply_clip(rectangle &clip, const rectangle &cliprect) -- cgit v1.2.3