From df2aee136d5c1dd0ec029995a3891cff4ba1a22e Mon Sep 17 00:00:00 2001 From: angelosa Date: Sun, 18 Jun 2017 04:13:44 +0200 Subject: Fix booby kids regression, clean-ups (nw) --- src/mame/drivers/terracre.cpp | 49 ++++++++++++++++++++++++------------------- src/mame/includes/terracre.h | 6 ++---- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp index 5757821188d..ca443f46489 100644 --- a/src/mame/drivers/terracre.cpp +++ b/src/mame/drivers/terracre.cpp @@ -92,6 +92,8 @@ AT-2 #include "screen.h" #include "speaker.h" + +#ifdef UNUSED_FUNCTION /* 0000 5000 5341 4b45 5349 4755 5245 0000 4000 0e4b 4154 5544 4f4e 0e0e @@ -102,7 +104,7 @@ AT-2 4ed0 7c */ -// protection data left for reference, aren't actually used +// protection data left for reference static const uint16_t mAmazonProtData[] = { /* default high scores (0x40db4) - wrong data ? */ @@ -161,6 +163,7 @@ static const uint16_t mHoreKidProtData[] = 0x4e75,0x4e75,0x4e75,0x4e75,0x4e75,0x4e75,0x4e75,0x4e75, 0x1800 /* checksum */ }; +#endif WRITE16_MEMBER(terracre_state::amazon_sound_w) { @@ -244,7 +247,7 @@ static ADDRESS_MAP_START( terracre_map, AS_PROGRAM, 16, terracre_state ) AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_SHARE("fg_videoram") ADDRESS_MAP_END -static ADDRESS_MAP_START( amazon_map, AS_PROGRAM, 16, terracre_state ) +static ADDRESS_MAP_START( amazon_base_map, AS_PROGRAM, 16, terracre_state ) AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x040200, 0x040fff) AM_RAM @@ -258,6 +261,10 @@ static ADDRESS_MAP_START( amazon_map, AS_PROGRAM, 16, terracre_state ) AM_RANGE(0x046004, 0x046005) AM_WRITE(amazon_scrolly_w) AM_RANGE(0x04600c, 0x04600d) AM_WRITE(amazon_sound_w) AM_RANGE(0x050000, 0x050fff) AM_WRITE(amazon_foreground_w) AM_SHARE("fg_videoram") +ADDRESS_MAP_END + +static ADDRESS_MAP_START( amazon_1412m2_map, AS_PROGRAM, 16, terracre_state) + AM_IMPORT_FROM( amazon_base_map ) AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w) ADDRESS_MAP_END @@ -613,13 +620,20 @@ static MACHINE_CONFIG_DERIVED( ym2203, ym3526 ) MCFG_SOUND_ROUTE(3, "speaker", 0.4) MACHINE_CONFIG_END -static MACHINE_CONFIG_DERIVED( amazon, ym3526 ) +static MACHINE_CONFIG_DERIVED( amazon_base, ym3526 ) MCFG_CPU_MODIFY("maincpu") - MCFG_CPU_PROGRAM_MAP(amazon_map) + MCFG_CPU_PROGRAM_MAP(amazon_base_map) MCFG_MACHINE_START_OVERRIDE(terracre_state,amazon) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( amazon_1412m2, amazon_base ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(amazon_1412m2_map) + + // TODO: install 1412m2 here +MACHINE_CONFIG_END + /************************************** @@ -986,28 +1000,19 @@ ROM_START( boobhack ) ROM_LOAD( "kid_prom.4e", 0x000, 0x100, BAD_DUMP CRC(e4fb54ee) SHA1(aba89d347b24dc6680e6f25b4a6c0d6657bb6a83) ) /* ctable */ ROM_END -DRIVER_INIT_MEMBER(terracre_state,amazon) -{ - m_mpProtData = mAmazonProtData; -} - -DRIVER_INIT_MEMBER(terracre_state,amatelas) -{ - m_mpProtData = mAmatelasProtData; -} -DRIVER_INIT_MEMBER(terracre_state,horekid) -{ - m_mpProtData = mHoreKidProtData; -} // YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME, FLAGS GAME( 1985, terracre, 0, ym3526, terracre, terracre_state, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, terracreo,terracre, ym3526, terracre, terracre_state, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, terracrea,terracre, ym3526, terracre, terracre_state, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, terracren,terracre, ym2203, terracre, terracre_state, 0, ROT270, "Nichibutsu", "Terra Cresta (YM2203)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, amazon, 0, amazon, amazon, terracre_state, amazon, ROT270, "Nichibutsu", "Soldier Girl Amazon", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, amatelas, amazon, amazon, amazon, terracre_state, amatelas, ROT270, "Nichibutsu", "Sei Senshi Amatelass", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, horekid, 0, amazon, horekid, terracre_state, horekid, ROT270, "Nichibutsu", "Kid no Hore Hore Daisakusen", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, horekidb, horekid, amazon, horekid, terracre_state, horekid, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, boobhack, horekid, amazon, horekid, terracre_state, horekid, ROT270, "bootleg", "Booby Kids (Italian manufactured graphic hack / bootleg of Kid no Hore Hore Daisakusen (bootleg))", MACHINE_SUPPORTS_SAVE ) + +// later HW: supports 1412M2 device, see also mightguy.cpp +GAME( 1986, amazon, 0, amazon_1412m2, amazon, terracre_state, 0, ROT270, "Nichibutsu", "Soldier Girl Amazon", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, amatelas, amazon, amazon_1412m2, amazon, terracre_state, 0, ROT270, "Nichibutsu", "Sei Senshi Amatelass", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, horekid, 0, amazon_1412m2, horekid, terracre_state, 0, ROT270, "Nichibutsu", "Kid no Hore Hore Daisakusen", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, horekidb, horekid, amazon_1412m2, horekid, terracre_state, 0, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg)", MACHINE_SUPPORTS_SAVE ) + +// bootlegs +GAME( 1987, boobhack, horekid, amazon_base, horekid, terracre_state, 0, ROT270, "bootleg", "Booby Kids (Italian manufactured graphic hack / bootleg of Kid no Hore Hore Daisakusen (bootleg))", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/terracre.h b/src/mame/includes/terracre.h index e7e5cf20177..25e408010ca 100644 --- a/src/mame/includes/terracre.h +++ b/src/mame/includes/terracre.h @@ -26,9 +26,10 @@ public: required_shared_ptr m_bg_videoram; required_shared_ptr m_fg_videoram; - const uint16_t *m_mpProtData; + // move to 1412m2 uint8_t m_mAmazonProtCmd; uint8_t m_mAmazonProtReg[6]; + uint16_t m_xscroll; uint16_t m_yscroll; tilemap_t *m_background; @@ -42,9 +43,6 @@ public: DECLARE_WRITE16_MEMBER(amazon_flipscreen_w); DECLARE_WRITE16_MEMBER(amazon_scrolly_w); DECLARE_WRITE16_MEMBER(amazon_scrollx_w); - DECLARE_DRIVER_INIT(amazon); - DECLARE_DRIVER_INIT(amatelas); - DECLARE_DRIVER_INIT(horekid); TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); virtual void video_start() override; -- cgit v1.2.3