diff options
Diffstat (limited to 'src/mame/drivers/cninja.cpp')
-rw-r--r-- | src/mame/drivers/cninja.cpp | 55 |
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 ) |