diff options
author | 2017-10-01 03:51:48 +0200 | |
---|---|---|
committer | 2017-10-01 03:52:49 +0200 | |
commit | d8951dfa65fe5878994846f1ae8df0e353aeef8a (patch) | |
tree | 0d3844dfb6d16e9eab0f78912155f7f16c1380b9 | |
parent | 02ffc512dca47144066e4925f1f4c3574ec3a6bb (diff) |
new working clone
-----------------
Tecmo World Cup '94 (set 3) [caius, Angelo Salese, The Dumping Union]
-rw-r--r-- | src/mame/drivers/gstriker.cpp | 70 | ||||
-rw-r--r-- | src/mame/includes/gstriker.h | 4 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
3 files changed, 74 insertions, 1 deletions
diff --git a/src/mame/drivers/gstriker.cpp b/src/mame/drivers/gstriker.cpp index 370364aaf1c..b211ccd3cae 100644 --- a/src/mame/drivers/gstriker.cpp +++ b/src/mame/drivers/gstriker.cpp @@ -805,6 +805,37 @@ ROM_START( twcup94a ) ROM_LOAD( "u104", 0x000000, 0x100000, CRC(df07d0af) SHA1(356560e164ff222bc9004fe202f829c93244a6c9) ) ROM_END +ROM_START( twcup94b ) + ROM_REGION( 0x100000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "twrdc94b_13.u37", 0x00000, 0x80000, CRC(00059e88) SHA1(0da18d7f6ede7c6b50e45e0c8f7b70516b974fc3) ) + + ROM_REGION( 0x40000, "audiocpu", 0 ) + ROM_LOAD( "twrdc94a_12.u65", 0x000000, 0x040000, CRC(c131f5a4) SHA1(d8cc7c463ad628f6f052489a73b97f998532738d) ) + + ROM_REGION( 0x20000, "mcu", 0 ) + ROM_LOAD( "twcup94_hd6473258p10", 0x00000, 0x20000, NO_DUMP ) + + ROM_REGION( 0x20000, "gfx1", 0 ) // fixed tile + ROM_LOAD( "11.u48", 0x000000, 0x020000, CRC(37d6dcb6) SHA1(679dd8b615497fff23c4638d413b5d4a724d3f2a) ) + + ROM_REGION( 0x200000, "gfx2", 0 ) // scroll tile + ROM_LOAD( "u17", 0x000000, 0x200000, CRC(a5e40a61) SHA1(a2cb452fb069862570870653b29b045d12caf062) ) + ROM_LOAD( "u20", 0x000000, 0x200000, CRC(a5e40a61) SHA1(a2cb452fb069862570870653b29b045d12caf062) ) + + ROM_REGION( 0x800000, "gfx3", 0 ) + ROM_LOAD( "u11", 0x000000, 0x200000, CRC(dd93fd45) SHA1(26491815b5443fe6d8b1ef4d795c5151fd75c101) ) + ROM_LOAD( "u12", 0x200000, 0x200000, CRC(8e3c9bd2) SHA1(bfd23157c836148a3860ccea5191f656fdd98ef4) ) + ROM_LOAD( "u13", 0x400000, 0x200000, CRC(8db6b3a9) SHA1(9422cd5d6fb57a7eaa7a13bdf4ccee1f8b57f773) ) + ROM_LOAD( "u14", 0x600000, 0x200000, CRC(89739c31) SHA1(29cd779bfe93448fb6cbfe6f8e3661dd659c0d21) ) + + ROM_REGION( 0x40000, "ymsnd.deltat", 0 ) + ROM_LOAD( "u86", 0x000000, 0x040000, CRC(775f45dc) SHA1(1a740dd880d9f873e93dfc096fbcae1784b4f522) ) + + ROM_REGION( 0x100000, "ymsnd", 0 ) + ROM_LOAD( "u104", 0x000000, 0x100000, CRC(df07d0af) SHA1(356560e164ff222bc9004fe202f829c93244a6c9) ) +ROM_END + + /****************************************************************************************** Simple protection check concept.The M68k writes a command and the MCU @@ -937,6 +968,37 @@ WRITE8_MEMBER(gstriker_state::twcup94_prot_reg_w) } break; + // Variable displacements (newer set?) + case TECMO_WCUP94B_MCU: + + switch (mcu_data) + { + #define NULL_SUB (0x00830A) + case 0x53: PC(0x000a80); break; // POST + + case 0x68: PC(NULL_SUB); break; // time up doesn't block long enough for pk shootout + case 0x61: PC(0x003B72); break; // after time up, pk shootout??? + case 0x65: PC(0x003FA4); break; + + case 0x62: PC(NULL_SUB); break; // after lose shootout, continue ??? + case 0x72: PC(0x411C); break; // game over + + case 0x75: PC(0x5106); break; // match adder, and check if limit is reached for ending + + // attract mode + case 0x6e: PC(0x00010EF0); break; // loop + case 0x6b: PC(0x00010FB4); break; // attract even + case 0x69: PC(0x000112D2); break; // attract odd + + default: + logerror("Unknown MCU CMD %04x\n",mcu_data); + PC(NULL_SUB); + break; + + #undef NULL_SUB + } + break; + case VGOAL_SOCCER_MCU: switch (mcu_data) @@ -1027,6 +1089,13 @@ DRIVER_INIT_MEMBER(gstriker_state,twcup94a) mcu_init(); } +DRIVER_INIT_MEMBER(gstriker_state,twcup94b) +{ + m_gametype = TECMO_WCUP94B_MCU; + mcu_init(); +} + + DRIVER_INIT_MEMBER(gstriker_state,vgoalsoc) { m_gametype = VGOAL_SOCCER_MCU; @@ -1048,3 +1117,4 @@ GAME( 1994, vgoalsoc, 0, vgoal, vgoalsoc, gstriker_state, vgoalsoc, R GAME( 1994, vgoalsca, vgoalsoc, vgoal, vgoalsoc, gstriker_state, vgoalsoc, ROT0, "Tecmo", "V Goal Soccer (US/Japan/Korea)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // has ger/hol/arg/bra/ita/kor/usa/jpn GAME( 1994, twcup94, 0, twc94, twcup94, gstriker_state, twcup94, ROT0, "Tecmo", "Tecmo World Cup '94 (set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) GAME( 1994, twcup94a,twcup94, twc94, twcup94, gstriker_state, twcup94a, ROT0, "Tecmo", "Tecmo World Cup '94 (set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1994, twcup94b,twcup94, twc94, twcup94, gstriker_state, twcup94b, ROT0, "Tecmo", "Tecmo World Cup '94 (set 3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/gstriker.h b/src/mame/includes/gstriker.h index a154e075250..459e95313ba 100644 --- a/src/mame/includes/gstriker.h +++ b/src/mame/includes/gstriker.h @@ -56,6 +56,7 @@ public: enum { TECMO_WCUP94_MCU = 1, TECMO_WCUP94A_MCU, + TECMO_WCUP94B_MCU, VGOAL_SOCCER_MCU }m_mcutype; int m_gametype; @@ -73,9 +74,10 @@ public: virtual void machine_start() override; virtual void video_start() override; - DECLARE_DRIVER_INIT(twcup94a); DECLARE_DRIVER_INIT(vgoalsoc); DECLARE_DRIVER_INIT(twcup94); + DECLARE_DRIVER_INIT(twcup94a); + DECLARE_DRIVER_INIT(twcup94b); uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(screen_vblank); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 2790ca79cc2..8891904a92d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -14160,6 +14160,7 @@ gstrikera // (c) [1993] Human gstrikerj // (c) [1993] Human twcup94 // (c) 1994 Tecmo twcup94a // (c) 1994 Tecmo +twcup94b // (c) 1994 Tecmo vgoalsca // (c) 199? Tecmo vgoalsoc // (c) 199? Tecmo |