summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ninjakd2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ninjakd2.cpp')
-rw-r--r--src/mame/drivers/ninjakd2.cpp178
1 files changed, 85 insertions, 93 deletions
diff --git a/src/mame/drivers/ninjakd2.cpp b/src/mame/drivers/ninjakd2.cpp
index b0bc864bb49..c67ef3b9474 100644
--- a/src/mame/drivers/ninjakd2.cpp
+++ b/src/mame/drivers/ninjakd2.cpp
@@ -231,44 +231,44 @@ WRITE8_MEMBER(ninjakd2_state::ninjakd2_pcm_play_w)
*
*************************************/
-void ninjakd2_state::omegaf_io_protection_start()
+void omegaf_state::io_protection_start()
{
// register for save states
- save_item(NAME(m_omegaf_io_protection));
- save_item(NAME(m_omegaf_io_protection_input));
- save_item(NAME(m_omegaf_io_protection_tic));
+ save_item(NAME(m_io_protection));
+ save_item(NAME(m_io_protection_input));
+ save_item(NAME(m_io_protection_tick));
}
-void ninjakd2_state::omegaf_io_protection_reset()
+void omegaf_state::io_protection_reset()
{
// make sure protection starts in a known state
- m_omegaf_io_protection[0] = 0;
- m_omegaf_io_protection[1] = 0;
- m_omegaf_io_protection[2] = 0;
- m_omegaf_io_protection_input = 0;
- m_omegaf_io_protection_tic = 0;
+ m_io_protection[0] = 0;
+ m_io_protection[1] = 0;
+ m_io_protection[2] = 0;
+ m_io_protection_input = 0;
+ m_io_protection_tick = 0;
}
-READ8_MEMBER(ninjakd2_state::omegaf_io_protection_r)
+READ8_MEMBER(omegaf_state::io_protection_r)
{
uint8_t result = 0xff;
- switch (m_omegaf_io_protection[1] & 3)
+ switch (m_io_protection[1] & 3)
{
case 0:
switch (offset)
{
case 1:
- switch (m_omegaf_io_protection[0] & 0xe0)
+ switch (m_io_protection[0] & 0xe0)
{
case 0x00:
- if (++m_omegaf_io_protection_tic & 1)
+ if (++m_io_protection_tick & 1)
{
result = 0x00;
}
else
{
- switch (m_omegaf_io_protection_input)
+ switch (m_io_protection_input)
{
// first interrogation
// this happens just after setting mode 0.
@@ -299,11 +299,11 @@ READ8_MEMBER(ninjakd2_state::omegaf_io_protection_r)
break;
case 0x80:
- result = 0x20 | (m_omegaf_io_protection_input & 0x1f);
+ result = 0x20 | (m_io_protection_input & 0x1f);
break;
case 0xc0:
- result = 0x60 | (m_omegaf_io_protection_input & 0x1f);
+ result = 0x60 | (m_io_protection_input & 0x1f);
break;
}
break;
@@ -332,16 +332,16 @@ READ8_MEMBER(ninjakd2_state::omegaf_io_protection_r)
return result;
}
-WRITE8_MEMBER(ninjakd2_state::omegaf_io_protection_w)
+WRITE8_MEMBER(omegaf_state::io_protection_w)
{
// load parameter on c006 bit 0 rise transition
- if (offset == 2 && (data & 1) && !(m_omegaf_io_protection[2] & 1))
+ if (offset == 2 && (data & 1) && !(m_io_protection[2] & 1))
{
- logerror("loading protection input %02x\n", m_omegaf_io_protection[0]);
- m_omegaf_io_protection_input = m_omegaf_io_protection[0];
+ logerror("loading protection input %02x\n", m_io_protection[0]);
+ m_io_protection_input = m_io_protection[0];
}
- m_omegaf_io_protection[offset] = data;
+ m_io_protection[offset] = data;
}
@@ -368,7 +368,7 @@ WRITE8_MEMBER(ninjakd2_state::ninjakd2_soundreset_w)
// returning 0 and no small enemies shoot any bullet.
// returning 0xff seems enough
// TODO: find a better reference and verify if there are more gameplay quirks, this might really be anything!
-READ8_MEMBER(ninjakd2_state::unk_r)
+READ8_MEMBER(omegaf_state::unk_r)
{
return 0xff;
}
@@ -401,7 +401,7 @@ void ninjakd2_state::ninjakd2_main_cpu(address_map &map)
map(0xfa00, 0xffff).ram().share("spriteram");
}
-void ninjakd2_state::mnight_main_cpu(address_map &map)
+void mnight_state::mnight_main_cpu(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0xbfff).bankr("bank1");
@@ -423,51 +423,51 @@ void ninjakd2_state::mnight_main_cpu(address_map &map)
}
-void ninjakd2_state::robokid_main_cpu(address_map &map)
+void robokid_state::robokid_main_cpu(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0xbfff).bankr("bank1");
map(0xc000, 0xc7ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
map(0xc800, 0xcfff).ram().w(FUNC(ninjakd2_state::ninjakd2_fgvideoram_w)).share("fg_videoram");
- map(0xd000, 0xd3ff).rw(FUNC(ninjakd2_state::robokid_bg2_videoram_r), FUNC(ninjakd2_state::robokid_bg2_videoram_w)); // banked
- map(0xd400, 0xd7ff).rw(FUNC(ninjakd2_state::robokid_bg1_videoram_r), FUNC(ninjakd2_state::robokid_bg1_videoram_w)); // banked
- map(0xd800, 0xdbff).rw(FUNC(ninjakd2_state::robokid_bg0_videoram_r), FUNC(ninjakd2_state::robokid_bg0_videoram_w)); // banked
+ map(0xd000, 0xd3ff).rw(FUNC(robokid_state::robokid_bg2_videoram_r), FUNC(robokid_state::robokid_bg2_videoram_w)); // banked
+ map(0xd400, 0xd7ff).rw(FUNC(robokid_state::robokid_bg1_videoram_r), FUNC(robokid_state::robokid_bg1_videoram_w)); // banked
+ map(0xd800, 0xdbff).rw(FUNC(robokid_state::robokid_bg0_videoram_r), FUNC(robokid_state::robokid_bg0_videoram_w)); // banked
map(0xdc00, 0xdc00).portr("KEYCOIN").w("soundlatch", FUNC(generic_latch_8_device::write));
map(0xdc01, 0xdc01).portr("PAD1").w(FUNC(ninjakd2_state::ninjakd2_soundreset_w));
map(0xdc02, 0xdc02).portr("PAD2").w(FUNC(ninjakd2_state::ninjakd2_bankselect_w));
map(0xdc03, 0xdc03).portr("DIPSW1").w(FUNC(ninjakd2_state::ninjakd2_sprite_overdraw_w));
map(0xdc04, 0xdc04).portr("DIPSW2");
- map(0xdd00, 0xdd04).w(FUNC(ninjakd2_state::robokid_bg0_ctrl_w));
- map(0xdd05, 0xdd05).w(FUNC(ninjakd2_state::robokid_bg0_bank_w));
- map(0xde00, 0xde04).w(FUNC(ninjakd2_state::robokid_bg1_ctrl_w));
- map(0xde05, 0xde05).w(FUNC(ninjakd2_state::robokid_bg1_bank_w));
- map(0xdf00, 0xdf04).w(FUNC(ninjakd2_state::robokid_bg2_ctrl_w));
- map(0xdf05, 0xdf05).w(FUNC(ninjakd2_state::robokid_bg2_bank_w));
+ map(0xdd00, 0xdd04).w(FUNC(robokid_state::robokid_bg0_ctrl_w));
+ map(0xdd05, 0xdd05).w(FUNC(robokid_state::robokid_bg0_bank_w));
+ map(0xde00, 0xde04).w(FUNC(robokid_state::robokid_bg1_ctrl_w));
+ map(0xde05, 0xde05).w(FUNC(robokid_state::robokid_bg1_bank_w));
+ map(0xdf00, 0xdf04).w(FUNC(robokid_state::robokid_bg2_ctrl_w));
+ map(0xdf05, 0xdf05).w(FUNC(robokid_state::robokid_bg2_bank_w));
map(0xe000, 0xf9ff).ram();
map(0xfa00, 0xffff).ram().share("spriteram");
}
-void ninjakd2_state::omegaf_main_cpu(address_map &map)
+void omegaf_state::omegaf_main_cpu(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0xbfff).bankr("bank1");
map(0xc000, 0xc000).portr("KEYCOIN").w("soundlatch", FUNC(generic_latch_8_device::write));
- map(0xc001, 0xc003).r(FUNC(ninjakd2_state::omegaf_io_protection_r));
+ map(0xc001, 0xc003).r(FUNC(omegaf_state::io_protection_r));
map(0xc001, 0xc001).w(FUNC(ninjakd2_state::ninjakd2_soundreset_w));
map(0xc002, 0xc002).w(FUNC(ninjakd2_state::ninjakd2_bankselect_w));
map(0xc003, 0xc003).w(FUNC(ninjakd2_state::ninjakd2_sprite_overdraw_w));
- map(0xc004, 0xc006).w(FUNC(ninjakd2_state::omegaf_io_protection_w));
- map(0xc100, 0xc104).w(FUNC(ninjakd2_state::robokid_bg0_ctrl_w));
- map(0xc105, 0xc105).w(FUNC(ninjakd2_state::robokid_bg0_bank_w));
- map(0xc1e7, 0xc1e7).r(FUNC(ninjakd2_state::unk_r)); // see notes
- map(0xc200, 0xc204).w(FUNC(ninjakd2_state::robokid_bg1_ctrl_w));
- map(0xc205, 0xc205).w(FUNC(ninjakd2_state::robokid_bg1_bank_w));
- map(0xc300, 0xc304).w(FUNC(ninjakd2_state::robokid_bg2_ctrl_w));
- map(0xc305, 0xc305).w(FUNC(ninjakd2_state::robokid_bg2_bank_w));
- map(0xc400, 0xc7ff).rw(FUNC(ninjakd2_state::robokid_bg0_videoram_r), FUNC(ninjakd2_state::robokid_bg0_videoram_w)); // banked
- map(0xc800, 0xcbff).rw(FUNC(ninjakd2_state::robokid_bg1_videoram_r), FUNC(ninjakd2_state::robokid_bg1_videoram_w)); // banked
- map(0xcc00, 0xcfff).rw(FUNC(ninjakd2_state::robokid_bg2_videoram_r), FUNC(ninjakd2_state::robokid_bg2_videoram_w)); // banked
+ map(0xc004, 0xc006).w(FUNC(omegaf_state::io_protection_w));
+ map(0xc100, 0xc104).w(FUNC(omegaf_state::robokid_bg0_ctrl_w));
+ map(0xc105, 0xc105).w(FUNC(omegaf_state::robokid_bg0_bank_w));
+ map(0xc1e7, 0xc1e7).r(FUNC(omegaf_state::unk_r)); // see notes
+ map(0xc200, 0xc204).w(FUNC(omegaf_state::robokid_bg1_ctrl_w));
+ map(0xc205, 0xc205).w(FUNC(omegaf_state::robokid_bg1_bank_w));
+ map(0xc300, 0xc304).w(FUNC(omegaf_state::robokid_bg2_ctrl_w));
+ map(0xc305, 0xc305).w(FUNC(omegaf_state::robokid_bg2_bank_w));
+ map(0xc400, 0xc7ff).rw(FUNC(omegaf_state::robokid_bg0_videoram_r), FUNC(omegaf_state::robokid_bg0_videoram_w)); // banked
+ map(0xc800, 0xcbff).rw(FUNC(omegaf_state::robokid_bg1_videoram_r), FUNC(omegaf_state::robokid_bg1_videoram_w)); // banked
+ map(0xcc00, 0xcfff).rw(FUNC(omegaf_state::robokid_bg2_videoram_r), FUNC(omegaf_state::robokid_bg2_videoram_w)); // banked
map(0xd000, 0xd7ff).ram().w(FUNC(ninjakd2_state::ninjakd2_fgvideoram_w)).share("fg_videoram");
map(0xd800, 0xdfff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
map(0xe000, 0xf9ff).ram();
@@ -910,6 +910,7 @@ GFXDECODE_END
void ninjakd2_state::machine_start()
{
+ // ...
}
void ninjakd2_state::machine_reset()
@@ -922,18 +923,18 @@ void ninjakd2_state::machine_reset()
m_rom_bank_mask = num_banks - 1;
}
-MACHINE_START_MEMBER(ninjakd2_state,omegaf)
+void omegaf_state::machine_start()
{
- omegaf_io_protection_start();
+ io_protection_start();
- machine_start();
+ ninjakd2_state::machine_start();
}
-MACHINE_RESET_MEMBER(ninjakd2_state,omegaf)
+void omegaf_state::machine_reset()
{
- omegaf_io_protection_reset();
-
- machine_reset();
+ io_protection_reset();
+
+ ninjakd2_state::machine_reset();
}
/*****************************************************************************/
@@ -1001,7 +1002,7 @@ MACHINE_CONFIG_START(ninjakd2_state::ninjakd2b)
MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(ninjakd2_state::mnight)
+MACHINE_CONFIG_START(mnight_state::mnight)
ninjakd2_core(config);
/* basic machine hardware */
@@ -1012,29 +1013,20 @@ MACHINE_CONFIG_START(ninjakd2_state::mnight)
MCFG_DEVICE_PROGRAM_MAP(ninjakid_nopcm_sound_cpu)
/* video hardware */
- MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,mnight)
+ MCFG_VIDEO_START_OVERRIDE(mnight_state,mnight)
/* sound hardware */
MCFG_DEVICE_REMOVE("pcm")
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(ninjakd2_state::arkarea)
- ninjakd2_core(config);
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mnight_main_cpu)
-
- MCFG_DEVICE_MODIFY("soundcpu")
- MCFG_DEVICE_PROGRAM_MAP(ninjakid_nopcm_sound_cpu)
+MACHINE_CONFIG_START(mnight_state::arkarea)
+ mnight(config);
/* video hardware */
- MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,arkarea)
-
- /* sound hardware */
- MCFG_DEVICE_REMOVE("pcm")
+ MCFG_VIDEO_START_OVERRIDE(mnight_state,arkarea)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(ninjakd2_state::robokid)
+MACHINE_CONFIG_START(robokid_state::robokid)
mnight(config);
/* basic machine hardware */
@@ -1051,12 +1043,12 @@ MACHINE_CONFIG_START(ninjakd2_state::robokid)
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
- MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid)
+ MCFG_VIDEO_START_OVERRIDE(robokid_state,robokid)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_robokid)
+ MCFG_SCREEN_UPDATE_DRIVER(robokid_state,screen_update_robokid)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(ninjakd2_state::omegaf)
+MACHINE_CONFIG_START(omegaf_state::omegaf)
robokid(config);
/* basic machine hardware */
@@ -1066,13 +1058,13 @@ MACHINE_CONFIG_START(ninjakd2_state::omegaf)
MCFG_DEVICE_MODIFY("soundcpu")
MCFG_DEVICE_PROGRAM_MAP(ninjakid_nopcm_sound_cpu)
- MCFG_MACHINE_START_OVERRIDE(ninjakd2_state,omegaf)
- MCFG_MACHINE_RESET_OVERRIDE(ninjakd2_state,omegaf)
+// MCFG_MACHINE_START_OVERRIDE(ninjakd2_state,omegaf)
+// MCFG_MACHINE_RESET_OVERRIDE(ninjakd2_state,omegaf)
/* video hardware */
- MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,omegaf)
+ MCFG_VIDEO_START_OVERRIDE(omegaf_state,omegaf)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_omegaf)
+ MCFG_SCREEN_UPDATE_DRIVER(omegaf_state,screen_update_omegaf)
MACHINE_CONFIG_END
@@ -1664,21 +1656,21 @@ void ninjakd2_state::init_bootleg()
gfx_unscramble();
}
-void ninjakd2_state::init_mnight()
+void mnight_state::init_mnight()
{
gfx_unscramble();
}
/*****************************************************************************/
-READ8_MEMBER(ninjakd2_state::robokid_motion_error_verbose_r)
+READ8_MEMBER(robokid_state::motion_error_verbose_r)
{
popmessage("%s MOTION ERROR, contact MAMEdev", machine().system().name);
logerror("maincpu %04x MOTION ERROR\n", m_maincpu->pc());
return 0xe6;
}
-void ninjakd2_state::robokid_motion_error_kludge(uint16_t offset)
+void robokid_state::motion_error_kludge(uint16_t offset)
{
// patch out rare "5268 MOTION ERROR" (MT 05024)
// It looks like it's due to a buggy random number generator,
@@ -1692,17 +1684,17 @@ void ninjakd2_state::robokid_motion_error_kludge(uint16_t offset)
ROM[2] = 0x18;
ROM[3] = 0xf6; // jr $-8
- m_maincpu->space(AS_PROGRAM).install_read_handler(offset, offset, read8_delegate(FUNC(ninjakd2_state::robokid_motion_error_verbose_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(offset, offset, read8_delegate(FUNC(robokid_state::motion_error_verbose_r), this));
}
-void ninjakd2_state::init_robokid()
+void robokid_state::init_robokid()
{
- robokid_motion_error_kludge(0x5247);
+ motion_error_kludge(0x5247);
}
-void ninjakd2_state::init_robokidj()
+void robokid_state::init_robokidj()
{
- robokid_motion_error_kludge(0x5266);
+ motion_error_kludge(0x5266);
}
@@ -1721,15 +1713,15 @@ GAME( 1987, ninjakd2c, ninjakd2, ninjakd2, rdaction, ninjakd2_state, init_ninja
GAME( 1987, rdaction, ninjakd2, ninjakd2, rdaction, ninjakd2_state, init_ninjakd2, ROT0, "UPL (World Games license)", "Rad Action / NinjaKun Ashura no Shou", MACHINE_SUPPORTS_SAVE )
GAME( 1987, jt104, ninjakd2, ninjakd2, rdaction, ninjakd2_state, init_bootleg, ROT0, "UPL (United Amusements license)", "JT-104 (title screen modification of Rad Action)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, mnight, 0, mnight, mnight, ninjakd2_state, init_mnight, ROT0, "UPL", "Mutant Night", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, mnightj, mnight, mnight, mnight, ninjakd2_state, init_mnight, ROT0, "UPL (Kawakus license)", "Mutant Night (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, mnight, 0, mnight, mnight, mnight_state, init_mnight, ROT0, "UPL", "Mutant Night", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, mnightj, mnight, mnight, mnight, mnight_state, init_mnight, ROT0, "UPL (Kawakus license)", "Mutant Night (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, arkarea, 0, arkarea, arkarea, ninjakd2_state, init_mnight, ROT0, "UPL", "Ark Area", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, arkarea, 0, arkarea, arkarea, mnight_state, init_mnight, ROT0, "UPL", "Ark Area", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, robokid, 0, robokid, robokid, ninjakd2_state, init_robokid, ROT0, "UPL", "Atomic Robo-kid (World, Type-2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // 3-digit highscore names
-GAME( 1988, robokidj, robokid, robokid, robokidj, ninjakd2_state, init_robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, Type-2, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1988, robokidj2, robokid, robokid, robokidj, ninjakd2_state, init_robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, Type-2, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1988, robokidj3, robokid, robokid, robokidj, ninjakd2_state, empty_init, ROT0, "UPL", "Atomic Robo-kid (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1988, robokid, 0, robokid, robokid, robokid_state, init_robokid, ROT0, "UPL", "Atomic Robo-kid (World, Type-2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // 3-digit highscore names
+GAME( 1988, robokidj, robokid, robokid, robokidj, robokid_state, init_robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, Type-2, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1988, robokidj2, robokid, robokid, robokidj, robokid_state, init_robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, Type-2, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1988, robokidj3, robokid, robokid, robokidj, robokid_state, empty_init, ROT0, "UPL", "Atomic Robo-kid (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1989, omegaf, 0, omegaf, omegaf, ninjakd2_state, empty_init, ROT270, "UPL", "Omega Fighter", MACHINE_SUPPORTS_SAVE )
-GAME( 1989, omegafs, omegaf, omegaf, omegaf, ninjakd2_state, empty_init, ROT270, "UPL", "Omega Fighter Special", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, omegaf, 0, omegaf, omegaf, omegaf_state, empty_init, ROT270, "UPL", "Omega Fighter", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, omegafs, omegaf, omegaf, omegaf, omegaf_state, empty_init, ROT270, "UPL", "Omega Fighter Special", MACHINE_SUPPORTS_SAVE )