From e8cd1e81313c8e4f5cbb94415ababb0074fdc2b2 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 6 Nov 2017 19:04:09 +0100 Subject: new working clone --------------------------- The 26th Z [ShouTime, Paul Vining, The Dumping Union] --- src/mame/drivers/tsamurai.cpp | 80 ++++++++++++++++++++++++++++++++------- src/mame/includes/tsamurai.h | 88 ++++++++++++++++++++++--------------------- src/mame/mame.lst | 1 + 3 files changed, 113 insertions(+), 56 deletions(-) diff --git a/src/mame/drivers/tsamurai.cpp b/src/mame/drivers/tsamurai.cpp index c1a0a49a606..6b300c8029c 100644 --- a/src/mame/drivers/tsamurai.cpp +++ b/src/mame/drivers/tsamurai.cpp @@ -855,6 +855,7 @@ static MACHINE_CONFIG_START( m660 ) MCFG_SOUND_ROUTE_EX(0, "dac2", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE_EX(0, "dac2", -1.0, DAC_VREF_NEG_INPUT) MACHINE_CONFIG_END + /*******************************************************************************/ ROM_START( tsamurai ) // there's a protection device labeled B5 at location l3 on the main board @@ -1240,6 +1241,50 @@ ROM_START( alphaxz ) ROM_LOAD( "5r.bpr", 0x200, 0x100, CRC(b7d6fdb5) SHA1(67d3bb16470f5d4ec35164a391ad6b65850f824a) ) ROM_END + +/* +This version of the game is the original which was tested in small quantities in Taito owned arcades. +Taito lost the license to sell the title which Kaneko sold to Wood Place. +Same hardware as Samurai Nihon-ichi. +*/ + +ROM_START( the26thz ) // there's a protection device labeled 6 or 9 on the main board (seems to be the same as the tsamurai one) + ROM_REGION( 0x10000, "maincpu", 0 ) /* Z80 code - main CPU */ + ROM_LOAD( "A72_01.3R", 0x0000, 0x4000, CRC(2be77520) SHA1(26c65a9c59a0cf3609d084ec4e0af4e670a3069c) ) // 27128 + ROM_LOAD( "A72_02.3T", 0x4000, 0x4000, CRC(ef2646f2) SHA1(0b178793420bd5e5fb77cf55e049a73f0fbc2d0f) ) // 27128 + ROM_LOAD( "A72_03.3V", 0x8000, 0x4000, CRC(d83b7758) SHA1(ff025c67e7ace9b178fd46642f98d79e18076d28) ) // 27128 + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 code - sample player */ + ROM_LOAD( "A72_16.4N", 0x0000, 0x4000, CRC(5734db5a) SHA1(ff99bf618018be20a4b38fcfbe75d9c5bb6fd176) ) // 27128 + + ROM_REGION( 0x10000, "audio2", 0 ) /* Z80 code - sample player */ + ROM_LOAD( "A72_15.4J", 0x0000, 0x4000, CRC(fba51cf7) SHA1(b18571112dcbe3214a803d0898b0a21957dc5e5f) ) // 27128 + + ROM_REGION( 0x10000, "audio3", 0 ) /* Z80 code AY driver, identical to the parent set but split in 2 ROMs */ + ROM_LOAD( "A72_14.4E", 0x0000, 0x4000, CRC(d078373e) SHA1(939c8c1eb651d34b3c873db3aeef4c59b4f70a9f) ) // 27128 + ROM_LOAD( "A72_13.4D", 0x4000, 0x4000, CRC(11980449) SHA1(e17611980043c152c518b334ffda8e93d368e4a9) ) // 27128 + + ROM_REGION( 0xc000, "gfx1", 0 ) // tiles + ROM_LOAD( "A72_04.10A", 0x00000, 0x4000, CRC(23da4e3d) SHA1(fd48c86769360a778057a673d5c1dfdfe00f6c18) ) // 27128 + ROM_LOAD( "A72_05.10B", 0x04000, 0x4000, CRC(8746ff69) SHA1(6b95f209d931601155ad492652e3016df3e5dfb0) ) // 27128 + ROM_LOAD( "A72_06.10D", 0x08000, 0x4000, CRC(6e494964) SHA1(9f42935281502a1e73f602cb93ca241aeaa03201) ) // 27128 + + ROM_REGION( 0x6000, "gfx2", 0 ) // characters + ROM_LOAD( "A72_10.11N", 0x00000, 0x1000, CRC(a23e4829) SHA1(329ff6bd21c804c103938e333b355c7387b5d0be) ) // 2732 + ROM_LOAD( "A72_11.11Q", 0x02000, 0x1000, CRC(9717229f) SHA1(ecc1bbde29fbd28eebc2016ca5e04bc841ca061e) ) // 2732 + ROM_LOAD( "A72_12.11R", 0x04000, 0x1000, CRC(7a602979) SHA1(32c40ad1cb1b6bb49c6f37da443a4368fd24faf7) ) // 2732 + + ROM_REGION( 0xc000, "gfx3", 0 ) // sprites + ROM_LOAD( "A72_07.12H", 0x00000, 0x4000, CRC(5f9cc65e) SHA1(235b4a8762ba429855cc9db07477efde2a62e03d) ) // 27128 + ROM_LOAD( "A72_08.12J", 0x04000, 0x4000, CRC(23e3a6ba) SHA1(d6d035b7b7530a909669ac045aea51e297ba784e) ) // 27128 + ROM_LOAD( "A72_09.12K", 0x08000, 0x4000, CRC(7096fa71) SHA1(f9697b30d7eec5ee9122d783f9ee7b9cdbab9262) ) // 27128 + + ROM_REGION( 0x300, "proms", 0 ) + ROM_LOAD( "A72_17.2K", 0x000, 0x100, CRC(cd16d0f1) SHA1(4b0a68f28329fb86d252f4170edd2ab0488805e5) ) // 82S129 + ROM_LOAD( "A72_18.2L", 0x100, 0x100, CRC(22e8b22c) SHA1(2934ca96495fca72a33fa2881dc65ab21342c410) ) // 82S129 + ROM_LOAD( "A72_19.2M", 0x200, 0x100, CRC(b7d6fdb5) SHA1(67d3bb16470f5d4ec35164a391ad6b65850f824a) ) // 82S129 +ROM_END + ROM_START( vsgongf ) ROM_REGION( 0x10000, "maincpu", 0 ) /* Z80 code - main CPU */ ROM_LOAD( "1.5a", 0x0000, 0x2000, CRC(2c056dee) SHA1(f063fdd571949a1b7ac36f88e17feec7354ea894) ) /* good? */ @@ -1324,21 +1369,28 @@ ROM_START( ringfgt2 ) ROM_LOAD( "clr.6p", 0x200, 0x0100, CRC(0e4fd17a) SHA1(d4e32bd9dd903177af61f77976a25c5db1467bba) ) ROM_END -GAME( 1984, vsgongf, 0, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko", "VS Gong Fight", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1984, ringfgt, vsgongf, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1984, ringfgt2, vsgongf, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +DRIVER_INIT_MEMBER(tsamurai_state, the26thz) +{ + m_maincpu->space(AS_PROGRAM).unmap_read(0xd803, 0xd803); + m_maincpu->space(AS_PROGRAM).install_read_handler(0xd803, 0xd803, read8_delegate(FUNC(tsamurai_state::tsamurai_unknown_d803_r), this)); +} + +GAME( 1984, vsgongf, 0, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko", "VS Gong Fight", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1984, ringfgt, vsgongf, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1984, ringfgt2, vsgongf, vsgongf, vsgongf, tsamurai_state, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tsamurai, 0, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tsamurai2, tsamurai, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, tsamuraih, tsamurai, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "bootleg", "Samurai Nihon-Ichi (bootleg, harder)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tsamurai, 0, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tsamurai2, tsamurai, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, tsamuraih, tsamurai, tsamurai, tsamurai, tsamurai_state, 0, ROT90, "bootleg", "Samurai Nihon-Ichi (bootleg, harder)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, ladymstr, 0, tsamurai, ladymstr, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Lady Master of Kung Fu (set 1, newer)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, ladymstr2, ladymstr, tsamurai, ladymstr, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Lady Master of Kung Fu (set 2, older)", MACHINE_SUPPORTS_SAVE ) -GAME( 1985, nunchaku, ladymstr, tsamurai, nunchaku, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Nunchackun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ladymstr, 0, tsamurai, ladymstr, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Lady Master of Kung Fu (set 1, newer)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, ladymstr2, ladymstr, tsamurai, ladymstr, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Lady Master of Kung Fu (set 2, older)", MACHINE_SUPPORTS_SAVE ) +GAME( 1985, nunchaku, ladymstr, tsamurai, nunchaku, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Nunchackun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1985, yamagchi, 0, tsamurai, yamagchi, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) +GAME( 1985, yamagchi, 0, tsamurai, yamagchi, tsamurai_state, 0, ROT90, "Kaneko / Taito", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE ) -GAME( 1986, m660, 0, m660, m660, tsamurai_state, 0, ROT90, "Wood Place Inc. (Taito America Corporation license)", "Mission 660 (US)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, m660j, m660, m660, m660, tsamurai_state, 0, ROT90, "Wood Place Inc. (Taito Corporation license)", "Mission 660 (Japan)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, m660b, m660, m660, m660, tsamurai_state, 0, ROT90, "bootleg", "Mission 660 (bootleg)", MACHINE_SUPPORTS_SAVE ) -GAME( 1986, alphaxz, m660, m660, m660, tsamurai_state, 0, ROT90, "Ed Co. Ltd. (Wood Place Inc. license)", "The Alphax Z (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, m660, 0, m660, m660, tsamurai_state, 0, ROT90, "Wood Place Inc. (Taito America Corporation license)", "Mission 660 (US)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, m660j, m660, m660, m660, tsamurai_state, 0, ROT90, "Wood Place Inc. (Taito Corporation license)", "Mission 660 (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, m660b, m660, m660, m660, tsamurai_state, 0, ROT90, "bootleg", "Mission 660 (bootleg)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, alphaxz, m660, m660, m660, tsamurai_state, 0, ROT90, "Ed Co. Ltd. (Wood Place Inc. license)", "The Alphax Z (Japan)", MACHINE_SUPPORTS_SAVE ) +GAME( 1986, the26thz, m660, m660, m660, tsamurai_state, the26thz, ROT90, "Ed Co. Ltd. (Taito license)", "The 26th Z (Japan, location test)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/tsamurai.h b/src/mame/includes/tsamurai.h index 4b30a28ac30..df1e64e3929 100644 --- a/src/mame/includes/tsamurai.h +++ b/src/mame/includes/tsamurai.h @@ -20,41 +20,6 @@ public: m_bg_videoram(*this, "bg_videoram"), m_spriteram(*this, "spriteram") { } - required_device m_maincpu; - required_device m_audiocpu; - optional_device m_audio2; - optional_device m_audio3; - required_device m_gfxdecode; - required_device m_palette; - optional_device m_soundlatch; // vsgongf only - - required_shared_ptr m_videoram; - optional_shared_ptr m_colorram; - optional_shared_ptr m_bg_videoram; - required_shared_ptr m_spriteram; - - tilemap_t *m_background; - tilemap_t *m_foreground; - - //common - int m_flicker; - int m_textbank1; - int m_nmi_enabled; - - // tsamurai and m660 specific - int m_bgcolor; - int m_sound_command1; - int m_sound_command2; - - //m660 specific - int m_textbank2; - int m_sound_command3; - - //vsgongf specific - int m_vsgongf_sound_nmi_enabled; - int m_vsgongf_color; - int m_key_count; //debug only - // common DECLARE_WRITE_LINE_MEMBER(nmi_enable_w); DECLARE_WRITE_LINE_MEMBER(coin1_counter_w); @@ -93,23 +58,62 @@ public: DECLARE_READ8_MEMBER(vsgongf_a100_r); DECLARE_WRITE8_MEMBER(vsgongf_sound_command_w); - TILE_GET_INFO_MEMBER(get_bg_tile_info); - TILE_GET_INFO_MEMBER(get_fg_tile_info); - TILE_GET_INFO_MEMBER(get_vsgongf_tile_info); - - virtual void machine_start() override; DECLARE_MACHINE_START(m660); DECLARE_MACHINE_START(tsamurai); DECLARE_MACHINE_START(vsgongf); - virtual void video_start() override; DECLARE_VIDEO_START(m660); DECLARE_VIDEO_START(tsamurai); DECLARE_VIDEO_START(vsgongf); + DECLARE_DRIVER_INIT(the26thz); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_vsgongf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); INTERRUPT_GEN_MEMBER(interrupt); INTERRUPT_GEN_MEMBER(vsgongf_sound_interrupt); + +protected: + virtual void machine_start() override; + virtual void video_start() override; + +private: + required_device m_maincpu; + required_device m_audiocpu; + optional_device m_audio2; + optional_device m_audio3; + required_device m_gfxdecode; + required_device m_palette; + optional_device m_soundlatch; // vsgongf only + + required_shared_ptr m_videoram; + optional_shared_ptr m_colorram; + optional_shared_ptr m_bg_videoram; + required_shared_ptr m_spriteram; + + tilemap_t *m_background; + tilemap_t *m_foreground; + + //common + int m_flicker; + int m_textbank1; + int m_nmi_enabled; + + // tsamurai and m660 specific + int m_bgcolor; + int m_sound_command1; + int m_sound_command2; + + //m660 specific + int m_textbank2; + int m_sound_command3; + + //vsgongf specific + int m_vsgongf_sound_nmi_enabled; + int m_vsgongf_color; + int m_key_count; //debug only + + TILE_GET_INFO_MEMBER(get_bg_tile_info); + TILE_GET_INFO_MEMBER(get_fg_tile_info); + TILE_GET_INFO_MEMBER(get_vsgongf_tile_info); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/mame.lst b/src/mame/mame.lst index c15d8597fba..82a3e7830ea 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -36993,6 +36993,7 @@ m660j // ??? (c) 1986 Taito Corporation (Japan) nunchaku // ??? (c) 1985 Taito ringfgt // (c) 1984 Taito ringfgt2 // (c) 1984 Taito +the26thz // A72 (c) 1986 Taito tsamurai // A35 (c) 1985 Taito tsamurai2 // A35 (c) 1985 Taito tsamuraih // bootleg -- cgit v1.2.3