summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2015-05-26 18:45:14 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2015-05-26 18:45:14 +0200
commit611df1f74bfcb4c83512038756ce6153cc07d8ac (patch)
treed09a5864bec23942ded4a4b4ac27fc94496a88d5
parent50243c0d1bc2f41e4baf910bbabd366bb4203dee (diff)
namcos1.c: some work towards save state support. Got stuck trying to move mcu_bankswitch_w to configured banking (nw)
-rw-r--r--src/mame/drivers/namcos1.c42
-rw-r--r--src/mame/includes/namcos1.h57
-rw-r--r--src/mame/machine/namcos1.c103
-rw-r--r--src/mame/video/namcos1.c10
4 files changed, 127 insertions, 85 deletions
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index c63f55fc422..05471a6373d 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -218,7 +218,7 @@ Notes:
TODO:
- There is still a big mystery about the first location of tri port ram, which is
- shared among all four CPUs. See namcos1_mcu_patch_w() for the kludge: essentially,
+ shared among all four CPUs. See mcu_patch_w() for the kludge: essentially,
this location has to be 0xA6 for the games to work. However, the MCU first sets it
to 0xA6, then zeroes it - and there doesn't seem to be any code anywhere for any CPU
that would set it back to 0xA6. Se, we ignore the zeroing write.
@@ -358,19 +358,19 @@ READ8_MEMBER(namcos1_state::dsw_r)
return 0xf0 | ret;
}
-WRITE8_MEMBER(namcos1_state::namcos1_coin_w)
+WRITE8_MEMBER(namcos1_state::coin_w)
{
coin_lockout_global_w(machine(), ~data & 1);
coin_counter_w(machine(), 0, data & 2);
coin_counter_w(machine(), 1, data & 4);
}
-void namcos1_state::namcos1_update_DACs()
+void namcos1_state::update_DACs()
{
m_dac->write_signed16(0x8000 + (m_dac0_value * m_dac0_gain) + (m_dac1_value * m_dac1_gain));
}
-void namcos1_state::namcos1_init_DACs()
+void namcos1_state::init_DACs()
{
m_dac0_value = 0;
m_dac1_value = 0;
@@ -378,7 +378,7 @@ void namcos1_state::namcos1_init_DACs()
m_dac1_gain = 0x80;
}
-WRITE8_MEMBER(namcos1_state::namcos1_dac_gain_w)
+WRITE8_MEMBER(namcos1_state::dac_gain_w)
{
int value;
@@ -390,19 +390,19 @@ WRITE8_MEMBER(namcos1_state::namcos1_dac_gain_w)
value = (data >> 3) & 3; /* GAIN2,GAIN3 */
m_dac1_gain = 0x20 * (value+1);
- namcos1_update_DACs();
+ update_DACs();
}
-WRITE8_MEMBER(namcos1_state::namcos1_dac0_w)
+WRITE8_MEMBER(namcos1_state::dac0_w)
{
m_dac0_value = data - 0x80; /* shift zero point */
- namcos1_update_DACs();
+ update_DACs();
}
-WRITE8_MEMBER(namcos1_state::namcos1_dac1_w)
+WRITE8_MEMBER(namcos1_state::dac1_w)
{
m_dac1_value = data - 0x80; /* shift zero point */
- namcos1_update_DACs();
+ update_DACs();
}
@@ -416,11 +416,11 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, namcos1_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( virtual_map, AS_PROGRAM, 8, namcos1_state )
- AM_RANGE(0x2c0000, 0x2c1fff) AM_WRITE(namcos1_3dcs_w)
+ AM_RANGE(0x2c0000, 0x2c1fff) AM_WRITE(_3dcs_w)
AM_RANGE(0x2e0000, 0x2e7fff) AM_DEVREADWRITE("c116", namco_c116_device, read, write)
- AM_RANGE(0x2f0000, 0x2f7fff) AM_RAM_WRITE(namcos1_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x2f0000, 0x2f7fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
AM_RANGE(0x2f8000, 0x2f9fff) AM_READWRITE(no_key_r, no_key_w)
- AM_RANGE(0x2fc000, 0x2fcfff) AM_RAM_WRITE(namcos1_spriteram_w) AM_SHARE("spriteram")
+ AM_RANGE(0x2fc000, 0x2fcfff) AM_RAM_WRITE(spriteram_w) AM_SHARE("spriteram")
AM_RANGE(0x2fd000, 0x2fd01f) AM_RAM AM_SHARE("pfcontrol") AM_MIRROR(0xfe0)
AM_RANGE(0x2fe000, 0x2fe3ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) AM_MIRROR(0xc00) /* PSG ( Shared ) */
AM_RANGE(0x2ff000, 0x2ff7ff) AM_RAM AM_SHARE("triram") AM_MIRROR(0x800)
@@ -436,7 +436,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x5000, 0x53ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) AM_MIRROR(0x400) /* PSG ( Shared ) */
AM_RANGE(0x7000, 0x77ff) AM_RAM AM_SHARE("triram")
AM_RANGE(0x8000, 0x9fff) AM_RAM /* Sound RAM 3 */
- AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos1_sound_bankswitch_w) /* ROM bank selector */
+ AM_RANGE(0xc000, 0xc001) AM_WRITE(sound_bankswitch_w) /* ROM bank selector */
AM_RANGE(0xd001, 0xd001) AM_DEVWRITE("c117", namco_c117_device, sound_watchdog_w)
AM_RANGE(0xe000, 0xe000) AM_WRITE(irq_ack_w)
AM_RANGE(0xc000, 0xffff) AM_ROM
@@ -452,16 +452,16 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("mcubank") /* banked ROM */
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("triram")
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("nvram") /* EEPROM */
- AM_RANGE(0xd000, 0xd000) AM_WRITE(namcos1_dac0_w)
- AM_RANGE(0xd400, 0xd400) AM_WRITE(namcos1_dac1_w)
- AM_RANGE(0xd800, 0xd800) AM_WRITE(namcos1_mcu_bankswitch_w) /* ROM bank selector */
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(dac0_w)
+ AM_RANGE(0xd400, 0xd400) AM_WRITE(dac1_w)
+ AM_RANGE(0xd800, 0xd800) AM_WRITE(mcu_bankswitch_w) /* ROM bank selector */
AM_RANGE(0xf000, 0xf000) AM_WRITE(irq_ack_w)
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, namcos1_state )
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE(namcos1_coin_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE(namcos1_dac_gain_w)
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE(coin_w)
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE(dac_gain_w)
ADDRESS_MAP_END
@@ -1063,8 +1063,8 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_49_152MHz/8, 384, 9+8*8, 9+44*8, 264, 2*8, 30*8)
- MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1)
- MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update)
+ MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", namcos1)
diff --git a/src/mame/includes/namcos1.h b/src/mame/includes/namcos1.h
index ba1e80e73f2..bd7b320bdb8 100644
--- a/src/mame/includes/namcos1.h
+++ b/src/mame/includes/namcos1.h
@@ -67,21 +67,35 @@ public:
UINT8 *m_tilemap_maskdata;
int m_copy_sprites;
UINT8 m_drawmode_table[16];
+
DECLARE_DIRECT_UPDATE_MEMBER(direct_handler_main);
DECLARE_DIRECT_UPDATE_MEMBER(direct_handler_sub);
+
DECLARE_WRITE_LINE_MEMBER(subres_w);
DECLARE_WRITE8_MEMBER(irq_ack_w);
DECLARE_READ8_MEMBER(dsw_r);
- DECLARE_WRITE8_MEMBER(namcos1_coin_w);
- DECLARE_WRITE8_MEMBER(namcos1_dac_gain_w);
- DECLARE_WRITE8_MEMBER(namcos1_dac0_w);
- DECLARE_WRITE8_MEMBER(namcos1_dac1_w);
- DECLARE_WRITE8_MEMBER(namcos1_sound_bankswitch_w);
- DECLARE_WRITE8_MEMBER(namcos1_mcu_bankswitch_w);
- DECLARE_WRITE8_MEMBER(namcos1_mcu_patch_w);
+ DECLARE_WRITE8_MEMBER(coin_w);
+ DECLARE_WRITE8_MEMBER(dac_gain_w);
+ DECLARE_WRITE8_MEMBER(dac0_w);
+ DECLARE_WRITE8_MEMBER(dac1_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(mcu_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(mcu_patch_w);
DECLARE_READ8_MEMBER(quester_paddle_r);
DECLARE_READ8_MEMBER(berabohm_buttons_r);
DECLARE_READ8_MEMBER(faceoff_inputs_r);
+ DECLARE_WRITE8_MEMBER(videoram_w);
+ DECLARE_WRITE8_MEMBER(spriteram_w);
+ DECLARE_WRITE8_MEMBER(_3dcs_w);
+ DECLARE_READ8_MEMBER(no_key_r);
+ DECLARE_WRITE8_MEMBER(no_key_w);
+ DECLARE_READ8_MEMBER(key_type1_r);
+ DECLARE_WRITE8_MEMBER(key_type1_w);
+ DECLARE_READ8_MEMBER(key_type2_r);
+ DECLARE_WRITE8_MEMBER(key_type2_w);
+ DECLARE_READ8_MEMBER(key_type3_r);
+ DECLARE_WRITE8_MEMBER(key_type3_w);
+
DECLARE_DRIVER_INIT(pacmania);
DECLARE_DRIVER_INIT(ws);
DECLARE_DRIVER_INIT(wldcourt);
@@ -105,31 +119,24 @@ public:
DECLARE_DRIVER_INIT(ws89);
DECLARE_DRIVER_INIT(dspirit);
DECLARE_DRIVER_INIT(pistoldm);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ void driver_init();
+
TILE_GET_INFO_MEMBER(bg_get_info0);
TILE_GET_INFO_MEMBER(bg_get_info1);
TILE_GET_INFO_MEMBER(bg_get_info2);
TILE_GET_INFO_MEMBER(bg_get_info3);
TILE_GET_INFO_MEMBER(fg_get_info4);
TILE_GET_INFO_MEMBER(fg_get_info5);
- virtual void machine_reset();
- virtual void video_start();
+
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- UINT32 screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void screen_eof_namcos1(screen_device &screen, bool state);
- void namcos1_update_DACs();
- void namcos1_init_DACs();
- DECLARE_WRITE8_MEMBER( namcos1_videoram_w );
- DECLARE_WRITE8_MEMBER( namcos1_spriteram_w );
- WRITE8_MEMBER( namcos1_3dcs_w );
- READ8_MEMBER( no_key_r );
- WRITE8_MEMBER( no_key_w );
- READ8_MEMBER( key_type1_r );
- WRITE8_MEMBER( key_type1_w );
- READ8_MEMBER( key_type2_r );
- WRITE8_MEMBER( key_type2_w );
- READ8_MEMBER( key_type3_r );
- WRITE8_MEMBER( key_type3_w );
- void namcos1_driver_init();
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof(screen_device &screen, bool state);
+ void update_DACs();
+ void init_DACs();
+
private:
inline offs_t direct_handler(int whichcpu, direct_read_data &direct, offs_t address);
inline void get_tile_info(tile_data &tileinfo,int tile_index,UINT8 *info_vram);
diff --git a/src/mame/machine/namcos1.c b/src/mame/machine/namcos1.c
index 6bdb596fa3e..d08487ec6a8 100644
--- a/src/mame/machine/namcos1.c
+++ b/src/mame/machine/namcos1.c
@@ -10,7 +10,7 @@
* *
*******************************************************************************/
-WRITE8_MEMBER( namcos1_state::namcos1_3dcs_w )
+WRITE8_MEMBER( namcos1_state::_3dcs_w )
{
if (offset & 1) popmessage("LEFT");
else popmessage("RIGHT");
@@ -475,12 +475,9 @@ WRITE8_MEMBER( namcos1_state::key_type3_w )
* *
*******************************************************************************/
-WRITE8_MEMBER(namcos1_state::namcos1_sound_bankswitch_w)
+WRITE8_MEMBER(namcos1_state::sound_bankswitch_w)
{
- UINT8 *rom = memregion("audiocpu")->base() + 0xc000;
-
- int bank = (data & 0x70) >> 4;
- membank("soundbank")->set_base(rom + 0x4000 * bank);
+ membank("soundbank")->set_entry((data & 0x70) >> 4);
}
@@ -539,12 +536,25 @@ WRITE_LINE_MEMBER(namcos1_state::subres_w)
* *
*******************************************************************************/
+void namcos1_state::machine_start()
+{
+ membank("soundbank")->configure_entries(0, 8, memregion("audiocpu")->base() + 0xc000, 0x4000);
+
+ save_item(NAME(m_dac0_value));
+ save_item(NAME(m_dac1_value));
+ save_item(NAME(m_dac0_gain));
+ save_item(NAME(m_dac1_gain));
+ save_item(NAME(m_key));
+ save_item(NAME(m_mcu_patch_data));
+ save_item(NAME(m_reset));
+}
+
void namcos1_state::machine_reset()
{
/* mcu patch data clear */
m_mcu_patch_data = 0;
- namcos1_init_DACs();
+ init_DACs();
memset(m_key, 0, sizeof(m_key));
m_key_quotient = 0;
m_key_reminder = 0;
@@ -566,7 +576,7 @@ void namcos1_state::machine_reset()
*******************************************************************************/
/* mcu banked rom area select */
-WRITE8_MEMBER(namcos1_state::namcos1_mcu_bankswitch_w)
+WRITE8_MEMBER(namcos1_state::mcu_bankswitch_w)
{
int addr;
@@ -590,8 +600,8 @@ WRITE8_MEMBER(namcos1_state::namcos1_mcu_bankswitch_w)
-/* This point is very obscure, but i havent found any better way yet. */
-/* Works with all games so far. */
+/* This point is very obscure, but I haven't found any better way yet. */
+/* Works with all games so far. */
/* patch points of memory address */
/* CPU0/1 bank[17f][1000] */
@@ -602,7 +612,7 @@ WRITE8_MEMBER(namcos1_state::namcos1_mcu_bankswitch_w)
/* I found set $A6 only initialize in MCU */
/* This patch kill write this data by MCU case $A6 to xx(clear) */
-WRITE8_MEMBER(namcos1_state::namcos1_mcu_patch_w)
+WRITE8_MEMBER(namcos1_state::mcu_patch_w)
{
//logerror("mcu C000 write pc=%04x data=%02x\n",space.device().safe_pc(),data);
if (m_mcu_patch_data == 0xa6) return;
@@ -617,7 +627,7 @@ WRITE8_MEMBER(namcos1_state::namcos1_mcu_patch_w)
* driver specific initialize routine *
* *
*******************************************************************************/
-void namcos1_state::namcos1_driver_init()
+void namcos1_state::driver_init()
{
// bit 16 of the address is inverted for PRG7 (and bits 17,18 just not connected)
for (int i = 0x380000;i < 0x400000;i++)
@@ -634,7 +644,7 @@ void namcos1_state::namcos1_driver_init()
m_subcpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(namcos1_state::direct_handler_sub), this));
// kludge! see notes
- m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(namcos1_state::namcos1_mcu_patch_w), this));
+ m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(namcos1_state::mcu_patch_w), this));
// these are overridden as needed in the specific DRIVER_INIT_MEMBERs
m_key_id = 0;
@@ -652,7 +662,7 @@ void namcos1_state::namcos1_driver_init()
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,shadowld)
{
- namcos1_driver_init();
+ driver_init();
}
/*******************************************************************************
@@ -660,7 +670,7 @@ DRIVER_INIT_MEMBER(namcos1_state,shadowld)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,dspirit)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
@@ -672,7 +682,7 @@ DRIVER_INIT_MEMBER(namcos1_state,dspirit)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,wldcourt)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
@@ -684,7 +694,7 @@ DRIVER_INIT_MEMBER(namcos1_state,wldcourt)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,blazer)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
@@ -696,7 +706,7 @@ DRIVER_INIT_MEMBER(namcos1_state,blazer)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,puzlclub)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type1_r),this),
write8_delegate(FUNC(namcos1_state::key_type1_w),this));
@@ -708,11 +718,14 @@ DRIVER_INIT_MEMBER(namcos1_state,puzlclub)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,pacmania)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
m_key_id = 0x12;
+ save_item(NAME(m_key_quotient));
+ save_item(NAME(m_key_reminder));
+ save_item(NAME(m_key_numerator_high_word));
}
/*******************************************************************************
@@ -720,11 +733,14 @@ DRIVER_INIT_MEMBER(namcos1_state,pacmania)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,alice)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
m_key_id = 0x25;
+ save_item(NAME(m_key_quotient));
+ save_item(NAME(m_key_reminder));
+ save_item(NAME(m_key_numerator_high_word));
}
/*******************************************************************************
@@ -732,11 +748,14 @@ DRIVER_INIT_MEMBER(namcos1_state,alice)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,galaga88)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
m_key_id = 0x31;
+ save_item(NAME(m_key_quotient));
+ save_item(NAME(m_key_reminder));
+ save_item(NAME(m_key_numerator_high_word));
}
/*******************************************************************************
@@ -744,11 +763,14 @@ DRIVER_INIT_MEMBER(namcos1_state,galaga88)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,ws)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
m_key_id = 0x07;
+ save_item(NAME(m_key_quotient));
+ save_item(NAME(m_key_reminder));
+ save_item(NAME(m_key_numerator_high_word));
}
/*******************************************************************************
@@ -756,11 +778,14 @@ DRIVER_INIT_MEMBER(namcos1_state,ws)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,bakutotu)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type2_r),this),
write8_delegate(FUNC(namcos1_state::key_type2_w),this));
m_key_id = 0x22;
+ save_item(NAME(m_key_quotient));
+ save_item(NAME(m_key_reminder));
+ save_item(NAME(m_key_numerator_high_word));
}
/*******************************************************************************
@@ -768,7 +793,7 @@ DRIVER_INIT_MEMBER(namcos1_state,bakutotu)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,splatter)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -786,7 +811,7 @@ DRIVER_INIT_MEMBER(namcos1_state,splatter)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,rompers)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -804,7 +829,7 @@ DRIVER_INIT_MEMBER(namcos1_state,rompers)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,blastoff)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -822,7 +847,7 @@ DRIVER_INIT_MEMBER(namcos1_state,blastoff)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,ws89)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -840,7 +865,7 @@ DRIVER_INIT_MEMBER(namcos1_state,ws89)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,tankfrce)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -863,6 +888,8 @@ DRIVER_INIT_MEMBER(namcos1_state,tankfrc4)
m_stored_input[1] = 0;
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ save_item(NAME(m_input_count));
+ save_item(NAME(m_stored_input));
}
/*******************************************************************************
@@ -870,7 +897,7 @@ DRIVER_INIT_MEMBER(namcos1_state,tankfrc4)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,dangseed)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -888,7 +915,7 @@ DRIVER_INIT_MEMBER(namcos1_state,dangseed)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,pistoldm)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -906,7 +933,7 @@ DRIVER_INIT_MEMBER(namcos1_state,pistoldm)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,ws90)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -924,7 +951,7 @@ DRIVER_INIT_MEMBER(namcos1_state,ws90)
*******************************************************************************/
DRIVER_INIT_MEMBER(namcos1_state,soukobdx)
{
- namcos1_driver_init();
+ driver_init();
m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
read8_delegate(FUNC(namcos1_state::key_type3_r),this),
write8_delegate(FUNC(namcos1_state::key_type3_w),this));
@@ -975,8 +1002,9 @@ READ8_MEMBER( namcos1_state::quester_paddle_r )
DRIVER_INIT_MEMBER(namcos1_state,quester)
{
m_strobe = 0;
- namcos1_driver_init();
+ driver_init();
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::quester_paddle_r), this));
+ save_item(NAME(m_strobe));
}
@@ -1065,8 +1093,11 @@ DRIVER_INIT_MEMBER(namcos1_state,berabohm)
m_input_count = 0;
m_strobe = 0;
m_strobe_count = 0;
- namcos1_driver_init();
+ driver_init();
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::berabohm_buttons_r), this));
+ save_item(NAME(m_input_count));
+ save_item(NAME(m_strobe));
+ save_item(NAME(m_strobe_count));
}
@@ -1141,6 +1172,8 @@ DRIVER_INIT_MEMBER(namcos1_state,faceoff)
m_stored_input[0] = 0;
m_stored_input[1] = 0;
- namcos1_driver_init();
+ driver_init();
m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ save_item(NAME(m_input_count));
+ save_item(NAME(m_stored_input));
}
diff --git a/src/mame/video/namcos1.c b/src/mame/video/namcos1.c
index ac83ee99535..c518e998cba 100644
--- a/src/mame/video/namcos1.c
+++ b/src/mame/video/namcos1.c
@@ -141,6 +141,8 @@ void namcos1_state::video_start()
memset(m_playfield_control, 0, sizeof(m_playfield_control));
m_copy_sprites = 0;
+
+ save_item(NAME(m_copy_sprites));
}
@@ -151,7 +153,7 @@ void namcos1_state::video_start()
***************************************************************************/
-WRITE8_MEMBER( namcos1_state::namcos1_videoram_w )
+WRITE8_MEMBER( namcos1_state::videoram_w )
{
m_videoram[offset] = data;
if (offset < 0x7000)
@@ -170,7 +172,7 @@ WRITE8_MEMBER( namcos1_state::namcos1_videoram_w )
}
-WRITE8_MEMBER( namcos1_state::namcos1_spriteram_w )
+WRITE8_MEMBER( namcos1_state::spriteram_w )
{
/* 0000-07ff work ram */
/* 0800-0fff sprite ram */
@@ -280,7 +282,7 @@ void namcos1_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co
-UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 namcos1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i, j, scrollx, scrolly, priority;
rectangle new_clip = cliprect;
@@ -344,7 +346,7 @@ UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16
}
-void namcos1_state::screen_eof_namcos1(screen_device &screen, bool state)
+void namcos1_state::screen_eof(screen_device &screen, bool state)
{
// rising edge
if (state)