summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cninja.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cninja.cpp')
-rw-r--r--src/mame/drivers/cninja.cpp55
1 files changed, 46 insertions, 9 deletions
diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp
index eabf178c61c..3b683834867 100644
--- a/src/mame/drivers/cninja.cpp
+++ b/src/mame/drivers/cninja.cpp
@@ -407,8 +407,21 @@ static ADDRESS_MAP_START( stoneage_s_map, AS_PROGRAM, 8, cninja_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
+ AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( cninjabl2_s_map, AS_PROGRAM, 8, cninja_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(cninjabl2_oki_bank_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
+ AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( cninjabl2_oki_map, 0, 8, cninja_state )
+ AM_RANGE(0x00000, 0x2ffff) AM_ROM AM_REGION("oki1", 0)
+ AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("okibank")
ADDRESS_MAP_END
/***********************************************************
@@ -793,6 +806,11 @@ WRITE8_MEMBER(cninja_state::sound_bankswitch_w)
m_oki2->set_rom_bank(data & 1);
}
+WRITE8_MEMBER(cninja_state::cninjabl2_oki_bank_w)
+{
+ m_okibank->set_entry(data & 7);
+}
+
/**********************************************************************************/
DECO16IC_BANK_CB_MEMBER(cninja_state::cninja_bank_callback)
@@ -908,6 +926,9 @@ static MACHINE_CONFIG_START( cninja )
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO104_ADD("ioprot104")
+ MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
+ MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
+ MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
/* sound hardware */
@@ -997,6 +1018,9 @@ static MACHINE_CONFIG_START( stoneage )
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO104_ADD("ioprot104")
+ MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
+ MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
+ MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
@@ -1012,15 +1036,20 @@ static MACHINE_CONFIG_START( stoneage )
MCFG_OKIM6295_ADD("oki1", 32220000/32, PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
-
- MCFG_OKIM6295_ADD("oki2", 32220000/16, PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cninjabl2, stoneage )
+ MCFG_CPU_MODIFY("audiocpu")
+ MCFG_CPU_PROGRAM_MAP(cninjabl2_s_map)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl2)
+
+ MCFG_DEVICE_REMOVE("ymsnd")
+
+ MCFG_OKIM6295_REPLACE("oki1", 32220000/32, PIN7_LOW)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ MCFG_DEVICE_ADDRESS_MAP(0, cninjabl2_oki_map)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( cninjabl )
@@ -1158,6 +1187,9 @@ static MACHINE_CONFIG_START( edrandy )
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO146_ADD("ioprot")
+ MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
+ MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
+ MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1245,6 +1277,9 @@ static MACHINE_CONFIG_START( robocop2 )
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO146_ADD("ioprot")
+ MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
+ MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
+ MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
@@ -1341,6 +1376,9 @@ static MACHINE_CONFIG_START( mutantf )
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO146_ADD("ioprot")
+ MCFG_DECO146_IN_PORTA_CB(IOPORT("INPUTS"))
+ MCFG_DECO146_IN_PORTB_CB(IOPORT("SYSTEM"))
+ MCFG_DECO146_IN_PORTC_CB(IOPORT("DSW"))
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1596,9 +1634,6 @@ ROM_START( stoneage )
ROM_REGION( 0x40000, "oki1", 0 ) /* Oki samples */
ROM_LOAD( "sa_1_069.bin", 0x00000, 0x40000, CRC(2188f3ca) SHA1(9c29b62ed261e63d701ff8d43020089c89a64ab2) )
-
- /* No extra Oki samples in the bootleg */
- ROM_REGION( 0x80000, "oki2", ROMREGION_ERASEFF )
ROM_END
ROM_START( cninjabl )
@@ -1662,9 +1697,9 @@ ROM_START( cninjabl2 )
ROM_LOAD16_BYTE( "mag-04.rom", 0x100000, 0x80000, CRC(144b94cc) SHA1(d982508608942a714b428a2b721bf24e1627cbb6) )
ROM_LOAD16_BYTE( "mag-06.rom", 0x100001, 0x80000, CRC(82d44749) SHA1(c471fa573e00c2f8ae44068439ba6d849a124c68) )
- ROM_REGION( 0x40000, "oki1", 0 ) /* Oki samples */
+ ROM_REGION( 0x30000, "oki1", 0 ) /* Oki samples */
ROM_LOAD( "audio-samp.2", 0x00000, 0x20000, CRC(c6638568) SHA1(b5e38d807146b033d1a0b5fb013ac755cd4a2699) )
- ROM_LOAD( "audio-samp.1", 0x00000, 0x10000, CRC(7815e6ab) SHA1(3112b4e8a4008b519f73e6f2d1393ef1e620a0c5) )
+ ROM_LOAD( "audio-samp.1", 0x20000, 0x10000, CRC(7815e6ab) SHA1(3112b4e8a4008b519f73e6f2d1393ef1e620a0c5) )
ROM_REGION( 0x80000, "oki2", 0 ) /* Extra Oki samples */
ROM_LOAD( "audio-samp.18", 0x00000, 0x80000, CRC(06f1bc18) SHA1(fe551d78466dc5b098263520f0ab00200d651593) ) /* banked */
@@ -2308,6 +2343,8 @@ DRIVER_INIT_MEMBER(cninja_state,cninjabl2)
{
m_maincpu->space(AS_PROGRAM).install_ram(0x180000, 0x18ffff);
m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b4000, 0x1b4001, read16_delegate(FUNC(cninja_state::cninjabl2_sprite_dma_r),this));
+
+ m_okibank->configure_entries(0, 8, memregion("oki2")->base(), 0x10000);
}
DRIVER_INIT_MEMBER(cninja_state,mutantf)
@@ -2337,7 +2374,7 @@ GAME( 1991, cninjau, cninja, cninja, cninjau, cninja_state, cninja, ROT0
GAME( 1991, joemac, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan ver 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, stoneage, cninja, stoneage, cninja, cninja_state, stoneage, ROT0, "bootleg", "Stoneage (bootleg of Caveman Ninja)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, cninjabl, cninja, cninjabl, cninja, cninja_state, 0, ROT0, "bootleg", "Caveman Ninja (bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1991, cninjabl2,cninja, cninjabl2,cninja, cninja_state, cninjabl2,ROT0, "bootleg", "Tatakae Genshizin Joe & Mac (Japan, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // tile layers need adjusting, sound is wrong
+GAME( 1991, cninjabl2,cninja, cninjabl2,cninja, cninja_state, cninjabl2,ROT0, "bootleg", "Tatakae Genshizin Joe & Mac (Japan, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // tile layers need adjusting
GAME( 1991, robocop2, 0, robocop2, robocop2, cninja_state, 0, ROT0, "Data East Corporation", "Robocop 2 (Euro/Asia v0.10)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, robocop2u,robocop2, robocop2, robocop2, cninja_state, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.10)", MACHINE_SUPPORTS_SAVE )