cninja.cpp: some work on cninjabl2. It now shows the tilemap layers and plays SFX. Still missing sprites, some tilemaps have wrong offsets and misses oki banking. Also not really convinced the PCB had all the sound chips (nw)

This commit is contained in:
Ivan Vangelista 2016-10-05 18:39:22 +02:00
parent d0bf174e39
commit 07ef5054f5
3 changed files with 24 additions and 1 deletions

View File

@ -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 )

View File

@ -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);

View File

@ -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();