summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/namcos1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/namcos1.cpp')
-rw-r--r--src/mame/machine/namcos1.cpp273
1 files changed, 89 insertions, 184 deletions
diff --git a/src/mame/machine/namcos1.cpp b/src/mame/machine/namcos1.cpp
index 627e2a8222c..02dc8fedb50 100644
--- a/src/mame/machine/namcos1.cpp
+++ b/src/mame/machine/namcos1.cpp
@@ -10,20 +10,20 @@
* *
*******************************************************************************/
-WRITE8_MEMBER( namcos1_state::_3dcs_w )
+void namcos1_state::_3dcs_w(offs_t offset, u8 data)
{
if (offset & 1) popmessage("LEFT");
else popmessage("RIGHT");
}
-READ8_MEMBER( namcos1_state::no_key_r )
+u8 namcos1_state::no_key_r(offs_t offset)
{
popmessage("%s: keychip read %04x\n", m_mcu->tag(), m_mcu->pc(), offset);
return 0;
}
-WRITE8_MEMBER( namcos1_state::no_key_w )
+void namcos1_state::no_key_w(offs_t offset, u8 data)
{
popmessage("%s: keychip write %04x=%02x\n", m_mcu->tag(), m_mcu->pc(), offset, data);
}
@@ -128,7 +128,7 @@ puzlclub:
CPU #0 PC e017: keychip write 0003=35 [they probably used RAM instead of a key chip for this prototype]
CPU #0 PC e3d4: keychip read 0003 [AND #$37 = key no.]
*/
-READ8_MEMBER( namcos1_state::key_type1_r )
+u8 namcos1_state::key_type1_r(offs_t offset)
{
// logerror("%s: keychip read %04x\n", machine().describe_context(), offset);
@@ -159,7 +159,7 @@ READ8_MEMBER( namcos1_state::key_type1_r )
return 0;
}
-WRITE8_MEMBER( namcos1_state::key_type1_w )
+void namcos1_state::key_type1_w(offs_t offset, u8 data)
{
// logerror("%s: keychip write %04x=%02x\n", machine().describe_context(), offset, data);
@@ -311,7 +311,7 @@ CPU #0 PC e574: keychip read 0001
*/
-READ8_MEMBER( namcos1_state::key_type2_r )
+u8 namcos1_state::key_type2_r(offs_t offset)
{
// logerror("%s: keychip read %04x\n", machine().describe_context(), offset);
@@ -330,7 +330,7 @@ READ8_MEMBER( namcos1_state::key_type2_r )
return 0;
}
-WRITE8_MEMBER( namcos1_state::key_type2_w )
+void namcos1_state::key_type2_w(offs_t offset, u8 data)
{
// logerror("%s: keychip write %04x=%02x\n", machine().describe_context(), offset, data);
@@ -340,8 +340,8 @@ WRITE8_MEMBER( namcos1_state::key_type2_w )
if (offset == 3)
{
- unsigned int d = (m_key[0] << 8) | m_key[1];
- unsigned int n = (m_key_numerator_high_word << 16) | (m_key[2] << 8) | m_key[3];
+ u32 d = (m_key[0] << 8) | m_key[1];
+ u32 n = (m_key_numerator_high_word << 16) | (m_key[2] << 8) | m_key[3];
if (d)
{
@@ -437,7 +437,7 @@ CPU #0 PC ca96: keychip read 0043 [0x30 | (ARG & 0x0f)]
CPU #0 PC e45a: keychip read 0030 [discarded]
*/
-READ8_MEMBER( namcos1_state::key_type3_r )
+u8 namcos1_state::key_type3_r(offs_t offset)
{
// logerror("%s: keychip read %04x\n", machine().describe_context(), offset);
@@ -447,7 +447,7 @@ READ8_MEMBER( namcos1_state::key_type3_r )
The schematics don't show A11 being used, so I go for this handling.
*/
- int op = (offset & 0x70) >> 4;
+ const int op = (offset & 0x70) >> 4;
if (op == m_key_reg) return m_key_id;
if (op == m_key_rng) return machine().rand();
@@ -461,7 +461,7 @@ READ8_MEMBER( namcos1_state::key_type3_r )
return 0;
}
-WRITE8_MEMBER( namcos1_state::key_type3_w )
+void namcos1_state::key_type3_w(offs_t offset, u8 data)
{
// logerror("%s: keychip write %04x=%02x\n", machine().describe_context(), offset, data);
@@ -476,7 +476,7 @@ WRITE8_MEMBER( namcos1_state::key_type3_w )
* *
*******************************************************************************/
-WRITE8_MEMBER(namcos1_state::sound_bankswitch_w)
+void namcos1_state::sound_bankswitch_w(u8 data)
{
m_soundbank->set_entry((data & 0x70) >> 4);
}
@@ -545,7 +545,7 @@ void namcos1_state::machine_reset()
*******************************************************************************/
/* mcu banked rom area select */
-WRITE8_MEMBER(namcos1_state::mcu_bankswitch_w)
+void namcos1_state::mcu_bankswitch_w(u8 data)
{
int bank;
@@ -581,7 +581,7 @@ WRITE8_MEMBER(namcos1_state::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::mcu_patch_w)
+void namcos1_state::mcu_patch_w(u8 data)
{
//logerror("mcu C000 write %s data=%02x\n",machine().describe_context(),data);
if (m_mcu_patch_data == 0xa6) return;
@@ -603,14 +603,14 @@ void namcos1_state::driver_init()
{
if ((i & 0x010000) == 0)
{
- uint8_t t = m_rom[i];
+ u8 t = m_rom[i];
m_rom[i] = m_rom[i + 0x010000];
m_rom[i + 0x010000] = t;
}
}
// kludge! see notes
- m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8_delegate(FUNC(namcos1_state::mcu_patch_w), this));
+ m_mcu->space(AS_PROGRAM).install_write_handler(0xc000, 0xc000, write8smo_delegate(FUNC(namcos1_state::mcu_patch_w), this));
// these are overridden as needed in the specific DRIVER_INIT_MEMBERs
m_key_id = 0;
@@ -622,6 +622,38 @@ void namcos1_state::driver_init()
m_key_top4 = 0;
}
+void namcos1_state::key_type_1_init(int key_id)
+{
+ m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
+ read8sm_delegate(FUNC(namcos1_state::key_type1_r),this),
+ write8sm_delegate(FUNC(namcos1_state::key_type1_w),this));
+ m_key_id = key_id;
+}
+
+void namcos1_state::key_type_2_init(int key_id)
+{
+ m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
+ read8sm_delegate(FUNC(namcos1_state::key_type2_r),this),
+ write8sm_delegate(FUNC(namcos1_state::key_type2_w),this));
+ m_key_id = key_id;
+ save_item(NAME(m_key_quotient));
+ save_item(NAME(m_key_reminder));
+ save_item(NAME(m_key_numerator_high_word));
+}
+
+void namcos1_state::key_type_3_init(int key_id, int reg, int rng, int swap4_arg, int swap4, int bottom4, int top4)
+{
+ m_c117->space(AS_PROGRAM).install_readwrite_handler(0x2f8000, 0x2f9fff,
+ read8sm_delegate(FUNC(namcos1_state::key_type3_r),this),
+ write8sm_delegate(FUNC(namcos1_state::key_type3_w),this));
+ m_key_id = key_id;
+ m_key_reg = reg;
+ m_key_rng = rng;
+ m_key_swap4_arg = swap4_arg;
+ m_key_swap4 = swap4;
+ m_key_bottom4 = bottom4;
+ m_key_top4 = top4;
+}
/*******************************************************************************
* Shadowland / Youkai Douchuuki specific *
@@ -637,10 +669,7 @@ void namcos1_state::init_shadowld()
void namcos1_state::init_dspirit()
{
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));
- m_key_id = 0x36;
+ key_type_1_init(0x36);
}
/*******************************************************************************
@@ -649,10 +678,7 @@ void namcos1_state::init_dspirit()
void namcos1_state::init_wldcourt()
{
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));
- m_key_id = 0x35;
+ key_type_1_init(0x35);
}
/*******************************************************************************
@@ -661,10 +687,7 @@ void namcos1_state::init_wldcourt()
void namcos1_state::init_blazer()
{
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));
- m_key_id = 0x13;
+ key_type_1_init(0x13);
}
/*******************************************************************************
@@ -673,10 +696,7 @@ void namcos1_state::init_blazer()
void namcos1_state::init_puzlclub()
{
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));
- m_key_id = 0x35;
+ key_type_1_init(0x35);
}
/*******************************************************************************
@@ -685,13 +705,7 @@ void namcos1_state::init_puzlclub()
void namcos1_state::init_pacmania()
{
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));
+ key_type_2_init(0x12);
}
/*******************************************************************************
@@ -700,13 +714,7 @@ void namcos1_state::init_pacmania()
void namcos1_state::init_alice()
{
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));
+ key_type_2_init(0x25);
}
/*******************************************************************************
@@ -715,13 +723,7 @@ void namcos1_state::init_alice()
void namcos1_state::init_galaga88()
{
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));
+ key_type_2_init(0x31);
}
/*******************************************************************************
@@ -730,13 +732,7 @@ void namcos1_state::init_galaga88()
void namcos1_state::init_ws()
{
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));
+ key_type_2_init(0x07);
}
/*******************************************************************************
@@ -745,13 +741,7 @@ void namcos1_state::init_ws()
void namcos1_state::init_bakutotu()
{
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));
+ key_type_2_init(0x22);
}
/*******************************************************************************
@@ -760,16 +750,7 @@ void namcos1_state::init_bakutotu()
void namcos1_state::init_splatter()
{
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));
- m_key_id = 181;
- m_key_reg = 3;
- m_key_rng = 4;
- m_key_swap4_arg = -1;
- m_key_swap4 = -1;
- m_key_bottom4 = -1;
- m_key_top4 = -1;
+ key_type_3_init(181, 3, 4, -1, -1, -1, -1);
}
/*******************************************************************************
@@ -778,16 +759,7 @@ void namcos1_state::init_splatter()
void namcos1_state::init_rompers()
{
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));
- m_key_id = 182;
- m_key_reg = 7;
- m_key_rng = -1;
- m_key_swap4_arg = -1;
- m_key_swap4 = -1;
- m_key_bottom4 = -1;
- m_key_top4 = -1;
+ key_type_3_init(182, 7, -1, -1, -1, -1, -1);
}
/*******************************************************************************
@@ -796,16 +768,7 @@ void namcos1_state::init_rompers()
void namcos1_state::init_blastoff()
{
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));
- m_key_id = 183;
- m_key_reg = 0;
- m_key_rng = 7;
- m_key_swap4_arg = 3;
- m_key_swap4 = 5;
- m_key_bottom4 = -1;
- m_key_top4 = -1;
+ key_type_3_init(183, 0, 7, 3, 5, -1, -1);
}
/*******************************************************************************
@@ -814,16 +777,7 @@ void namcos1_state::init_blastoff()
void namcos1_state::init_ws89()
{
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));
- m_key_id = 184;
- m_key_reg = 2;
- m_key_rng = -1;
- m_key_swap4_arg = -1;
- m_key_swap4 = -1;
- m_key_bottom4 = -1;
- m_key_top4 = -1;
+ key_type_3_init(184, 2, -1, -1, -1, -1, -1);
}
/*******************************************************************************
@@ -832,16 +786,7 @@ void namcos1_state::init_ws89()
void namcos1_state::init_tankfrce()
{
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));
- m_key_id = 185;
- m_key_reg = 5;
- m_key_rng = -1;
- m_key_swap4_arg = 1;
- m_key_swap4 = -1;
- m_key_bottom4 = 2;
- m_key_top4 = -1;
+ key_type_3_init(185, 5, -1, 1, -1, 2, -1);
}
void namcos1_state::init_tankfrc4()
@@ -853,7 +798,7 @@ void namcos1_state::init_tankfrc4()
m_stored_input[0] = 0;
m_stored_input[1] = 0;
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
save_item(NAME(m_input_count));
save_item(NAME(m_stored_input));
}
@@ -864,16 +809,7 @@ void namcos1_state::init_tankfrc4()
void namcos1_state::init_dangseed()
{
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));
- m_key_id = 308;
- m_key_reg = 6;
- m_key_rng = -1;
- m_key_swap4_arg = 5;
- m_key_swap4 = -1;
- m_key_bottom4 = 0;
- m_key_top4 = 4;
+ key_type_3_init(308, 6, -1, 5, -1, 0, 4);
}
/*******************************************************************************
@@ -882,16 +818,7 @@ void namcos1_state::init_dangseed()
void namcos1_state::init_pistoldm()
{
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));
- m_key_id = 309;
- m_key_reg = 1;
- m_key_rng = 2;
- m_key_swap4_arg = 0;
- m_key_swap4 = -1;
- m_key_bottom4 = 4;
- m_key_top4 = -1;
+ key_type_3_init(309, 1, 2, 0, -1, 4, -1);
}
/*******************************************************************************
@@ -900,16 +827,7 @@ void namcos1_state::init_pistoldm()
void namcos1_state::init_ws90()
{
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));
- m_key_id = 310;
- m_key_reg = 4;
- m_key_rng = -1;
- m_key_swap4_arg = 7;
- m_key_swap4 = -1;
- m_key_bottom4 = 3;
- m_key_top4 = -1;
+ key_type_3_init(310, 4, -1, 7, -1, 3, -1);
}
/*******************************************************************************
@@ -918,16 +836,7 @@ void namcos1_state::init_ws90()
void namcos1_state::init_soukobdx()
{
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));
- m_key_id = 311;
- m_key_reg = 2;
- m_key_rng = 3; /*?*/
- m_key_swap4_arg = 0;
- m_key_swap4 = -1;
- m_key_bottom4 = 4;
- m_key_top4 = -1;
+ key_type_3_init(311, 2, 3 /*?*/, 0, -1, 4, -1);
}
@@ -935,16 +844,16 @@ void namcos1_state::init_soukobdx()
/*******************************************************************************
* Quester specific *
*******************************************************************************/
-READ8_MEMBER( namcos1_state::quester_paddle_r )
+u8 namcos1_state::quester_paddle_r(offs_t offset)
{
if (offset == 0)
{
int ret;
if (!(m_strobe & 0x20))
- ret = (ioport("CONTROL0")->read()&0x90) | (m_strobe & 0x40) | (ioport("PADDLE0")->read()&0x0f);
+ ret = (m_io_control[0]->read()&0x90) | (m_strobe & 0x40) | (m_io_paddle[0]->read()&0x0f);
else
- ret = (ioport("CONTROL0")->read()&0x90) | (m_strobe & 0x40) | (ioport("PADDLE1")->read()&0x0f);
+ ret = (m_io_control[0]->read()&0x90) | (m_strobe & 0x40) | (m_io_paddle[1]->read()&0x0f);
m_strobe ^= 0x40;
@@ -955,9 +864,9 @@ READ8_MEMBER( namcos1_state::quester_paddle_r )
int ret;
if (!(m_strobe & 0x20))
- ret = (ioport("CONTROL1")->read()&0x90) | 0x00 | (ioport("PADDLE0")->read()>>4);
+ ret = (m_io_control[1]->read()&0x90) | 0x00 | (m_io_paddle[0]->read()>>4);
else
- ret = (ioport("CONTROL1")->read()&0x90) | 0x20 | (ioport("PADDLE1")->read()>>4);
+ ret = (m_io_control[1]->read()&0x90) | 0x20 | (m_io_paddle[1]->read()>>4);
if (!(m_strobe & 0x40)) m_strobe ^= 0x20;
@@ -969,7 +878,7 @@ void namcos1_state::init_quester()
{
m_strobe = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::quester_paddle_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::quester_paddle_r), this));
save_item(NAME(m_strobe));
}
@@ -979,7 +888,7 @@ void namcos1_state::init_quester()
* Beraboh Man specific *
*******************************************************************************/
-READ8_MEMBER( namcos1_state::berabohm_buttons_r )
+u8 namcos1_state::berabohm_buttons_r(offs_t offset)
{
int res;
@@ -987,16 +896,13 @@ READ8_MEMBER( namcos1_state::berabohm_buttons_r )
{
int inp = m_input_count;
- if (inp == 4) res = ioport("CONTROL0")->read();
+ if (inp == 4) res = m_io_control[0]->read();
else
{
- char portname[40];
-
#ifdef PRESSURE_SENSITIVE
static int counter[4];
- sprintf(portname,"IN%d",inp); /* IN0-IN3 */
- res = ioport(portname)->read();
+ res = m_io_in[inp]->read(); /* IN0-IN3 */
if (res & 0x80)
{
if (counter[inp] >= 0)
@@ -1019,8 +925,7 @@ READ8_MEMBER( namcos1_state::berabohm_buttons_r )
else
counter[inp] = -1;
#else
- sprintf(portname,"IN%d",inp); /* IN0-IN3 */
- res = ioport(portname)->read();
+ res = m_io_in[inp]->read(); /* IN0-IN3 */
if (res & 1) res = 0x7f; /* weak */
else if (res & 2) res = 0x48; /* medium */
else if (res & 4) res = 0x40; /* strong */
@@ -1031,7 +936,7 @@ READ8_MEMBER( namcos1_state::berabohm_buttons_r )
}
else
{
- res = ioport("CONTROL1")->read() & 0x8f;
+ res = m_io_control[1]->read() & 0x8f;
/* the strobe cannot happen too often, otherwise the MCU will waste too
much time reading the inputs and won't have enough cycles to play two
@@ -1059,7 +964,7 @@ void namcos1_state::init_berabohm()
m_strobe = 0;
m_strobe_count = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::berabohm_buttons_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_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));
@@ -1073,19 +978,19 @@ void namcos1_state::init_berabohm()
// used by faceoff and tankforce 4 player (input multiplex)
-READ8_MEMBER( namcos1_state::faceoff_inputs_r )
+u8 namcos1_state::faceoff_inputs_r(offs_t offset)
{
int res;
if (offset == 0)
{
- res = (ioport("CONTROL0")->read() & 0x80) | m_stored_input[0];
+ res = (m_io_control[0]->read() & 0x80) | m_stored_input[0];
return res;
}
else
{
- res = ioport("CONTROL1")->read() & 0x80;
+ res = m_io_control[1]->read() & 0x80;
/* the strobe cannot happen too often, otherwise the MCU will waste too
much time reading the inputs and won't have enough cycles to play two
@@ -1100,17 +1005,17 @@ READ8_MEMBER( namcos1_state::faceoff_inputs_r )
switch (m_input_count)
{
case 0:
- m_stored_input[0] = ioport("IN0")->read() & 0x1f;
- m_stored_input[1] = (ioport("IN3")->read() & 0x07) << 3;
+ m_stored_input[0] = m_io_in[0]->read() & 0x1f;
+ m_stored_input[1] = (m_io_in[3]->read() & 0x07) << 3;
break;
case 3:
- m_stored_input[0] = ioport("IN2")->read() & 0x1f;
+ m_stored_input[0] = m_io_in[2]->read() & 0x1f;
break;
case 4:
- m_stored_input[0] = ioport("IN1")->read() & 0x1f;
- m_stored_input[1] = ioport("IN3")->read() & 0x18;
+ m_stored_input[0] = m_io_in[1]->read() & 0x1f;
+ m_stored_input[1] = m_io_in[3]->read() & 0x18;
break;
default:
@@ -1138,7 +1043,7 @@ void namcos1_state::init_faceoff()
m_stored_input[1] = 0;
driver_init();
- m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
+ m_mcu->space(AS_PROGRAM).install_read_handler(0x1400, 0x1401, read8sm_delegate(FUNC(namcos1_state::faceoff_inputs_r), this));
save_item(NAME(m_input_count));
save_item(NAME(m_stored_input));
}