diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp index 1de47c9d6ee..4b1c96893df 100644 --- a/src/mame/drivers/cninja.cpp +++ b/src/mame/drivers/cninja.cpp @@ -1009,6 +1009,11 @@ static MACHINE_CONFIG_START( stoneage, cninja_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( cninjabl2, stoneage ) + + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl2) +MACHINE_CONFIG_END static MACHINE_CONFIG_START( cninjabl, cninja_state ) @@ -2291,6 +2296,11 @@ DRIVER_INIT_MEMBER(cninja_state,stoneage) m_maincpu->space(AS_PROGRAM).install_write_handler(0x1bc0a8, 0x1bc0a9, write16_delegate(FUNC(cninja_state::stoneage_sound_w),this)); } +DRIVER_INIT_MEMBER(cninja_state,cninjabl2) +{ + m_maincpu->space(AS_PROGRAM).install_ram(0x180000, 0x18ffff); +} + DRIVER_INIT_MEMBER(cninja_state,mutantf) { const UINT8 *src = memregion("gfx2")->base(); @@ -2318,7 +2328,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, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1991, cninjabl2,cninja, cninjabl, cninja, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg, alt)", MACHINE_NOT_WORKING ) +GAME( 1991, cninjabl2,cninja, cninjabl2,cninja, cninja_state, cninjabl2,ROT0, "bootleg", "Caveman Ninja (bootleg, alt)", MACHINE_NOT_WORKING ) // sprites are missing, tile layers need verifying, sound is wrong GAME( 1991, robocop2, 0, robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (Euro/Asia v0.10)", MACHINE_SUPPORTS_SAVE ) GAME( 1991, robocop2u,robocop2,robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.10)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/cninja.h b/src/mame/includes/cninja.h index 6a1d974890c..7722413d8a1 100644 --- a/src/mame/includes/cninja.h +++ b/src/mame/includes/cninja.h @@ -86,12 +86,14 @@ public: DECLARE_DRIVER_INIT(stoneage); DECLARE_DRIVER_INIT(mutantf); DECLARE_DRIVER_INIT(cninja); + DECLARE_DRIVER_INIT(cninjabl2); virtual void machine_start() override; virtual void machine_reset() override; DECLARE_VIDEO_START(stoneage); DECLARE_VIDEO_START(mutantf); UINT32 screen_update_cninja(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + UINT32 screen_update_cninjabl2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_edrandy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_robocop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_mutantf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); diff --git a/src/mame/video/cninja.cpp b/src/mame/video/cninja.cpp index d04e9b55a02..1ec374c2515 100644 --- a/src/mame/video/cninja.cpp +++ b/src/mame/video/cninja.cpp @@ -142,6 +142,17 @@ UINT32 cninja_state::screen_update_cninja(screen_device &screen, bitmap_ind16 &b return 0; } +UINT32 cninja_state::screen_update_cninjabl2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + /* force layers to be enabled */ + m_deco_tilegen1->set_enable(0, 1 ); + m_deco_tilegen1->set_enable(1, 1 ); + + screen_update_cninja(screen, bitmap, cliprect); + + return 0; +} + UINT32 cninja_state::screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { address_space &space = machine().driver_data()->generic_space();