From 70e3290be2f4520fe8ff38762463d1143a8893bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Banaan=20Ananas?= Date: Mon, 27 Jan 2014 07:07:20 +0000 Subject: [PATCH] mcu undumpable internal rom sadness. Probably the only game that would require it is gobyrc/rcdego? --- src/mame/drivers/taitogn.c | 8 +++--- src/mame/drivers/zn.c | 54 ++++++++++++++++++++++++-------------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c index 6008aac7c7a..d8607ace47e 100644 --- a/src/mame/drivers/taitogn.c +++ b/src/mame/drivers/taitogn.c @@ -558,7 +558,7 @@ MACHINE_RESET_MEMBER(taitogn_state,coh3002t) m_control = 0; // halt sound CPU since it has no valid program at start - m_mn10200->set_input_line(INPUT_LINE_RESET,ASSERT_LINE); /* MCU */ + m_mn10200->set_input_line(INPUT_LINE_RESET,ASSERT_LINE); } static ADDRESS_MAP_START( taitogn_map, AS_PROGRAM, 32, taitogn_state ) @@ -778,6 +778,8 @@ INPUT_PORTS_END #define TAITOGNET_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ ROM_LOAD( "coh-3002t.353", 0x000000, 0x080000, CRC(03967fa7) SHA1(0e17fec2286e4e25deb23d40e41ce0986f373d49) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ \ ROM_REGION( 0x200000, "biosflash", 0 ) \ ROM_SYSTEM_BIOS( 0, "v1", "G-NET Bios v1" ) \ ROM_LOAD16_WORD_BIOS(0, "flash.u30", 0x000000, 0x200000, CRC(c48c8236) SHA1(c6dad60266ce2ff635696bc0d91903c543273559) ) \ @@ -1006,8 +1008,8 @@ GAME( 1998, chaosheaj,chaoshea, coh3002t, coh3002t, driver_device, 0, ROT0, "T GAME( 1998, raycris, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Ray Crisis (V2.03J)", GAME_IMPERFECT_SOUND ) GAME( 1999, spuzbobl, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.05O)", GAME_IMPERFECT_SOUND ) GAME( 1999, spuzboblj,spuzbobl, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.04J)", GAME_IMPERFECT_SOUND ) -GAME( 1999, gobyrc, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Go By RC (V2.03O)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // custom inputs need calibrating -GAME( 1999, rcdego, gobyrc, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "RC De Go (V2.03J)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // custom inputs need calibrating +GAME( 1999, gobyrc, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Go By RC (V2.03O)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // custom inputs need calibrating, likely needs mcu emulation +GAME( 1999, rcdego, gobyrc, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "RC De Go (V2.03J)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // " GAME( 1999, flipmaze, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito / Moss", "Flip Maze (V2.04J)", GAME_IMPERFECT_SOUND ) GAME( 2001, shikigam, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Alfa System / Taito", "Shikigami no Shiro (V2.03J)", GAME_IMPERFECT_SOUND ) GAME( 2003, sianniv, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Taito", "Space Invaders Anniversary (V2.02J)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // IRQ at the wrong time diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 9e0dddda03f..7039de95a71 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -70,7 +70,7 @@ public: DECLARE_WRITE8_MEMBER(fx1b_fram_w); DECLARE_READ8_MEMBER(fx1b_fram_r); DECLARE_WRITE8_MEMBER(coh1002e_bank_w); - DECLARE_WRITE8_MEMBER(coh1002e_latch_w); + DECLARE_WRITE8_MEMBER(coh1002e_sound_irq_w); DECLARE_WRITE16_MEMBER(bam2_mcu_w); DECLARE_READ16_MEMBER(bam2_mcu_r); DECLARE_READ16_MEMBER(bam2_unk_r); @@ -122,7 +122,7 @@ private: UINT8* m_fx1b_fram; - UINT16 vt83c461_latch; + UINT16 m_vt83c461_latch; required_device m_gpu; required_device m_gpu_screen; @@ -1418,12 +1418,12 @@ READ16_MEMBER(zn_state::vt83c461_32_r) if( offset == 0x1f0/2 ) { UINT32 data = m_vt83c461->read_cs0(space, 0, 0xffffffff); - vt83c461_latch = data >> 16; + m_vt83c461_latch = data >> 16; return data & 0xffff; } else if( offset == 0x1f2/2 ) { - return vt83c461_latch; + return m_vt83c461_latch; } else { @@ -1613,18 +1613,16 @@ WRITE8_MEMBER(zn_state::coh1002e_bank_w) membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + ( ( data & 3 ) * 0x800000 ) ); } -WRITE8_MEMBER(zn_state::coh1002e_latch_w) +WRITE8_MEMBER(zn_state::coh1002e_sound_irq_w) { - if (offset) - m_audiocpu->set_input_line(2, HOLD_LINE); // irq 2 on the 68k - else - soundlatch_byte_w(space, 0, data); + m_audiocpu->set_input_line(2, HOLD_LINE); // irq 2 on the 68k } static ADDRESS_MAP_START(coh1002e_map, AS_PROGRAM, 32, zn_state) AM_RANGE(0x1f000000, 0x1f7fffff) AM_ROMBANK("bankedroms") AM_RANGE(0x1fa10300, 0x1fa10303) AM_WRITE8(coh1002e_bank_w, 0x000000ff) - AM_RANGE(0x1fb00000, 0x1fb00007) AM_WRITE8(coh1002e_latch_w, 0x000000ff) + AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITE8(soundlatch_byte_w, 0x000000ff) + AM_RANGE(0x1fb00004, 0x1fb00007) AM_WRITE8(coh1002e_sound_irq_w, 0x000000ff) AM_IMPORT_FROM(zn_map) ADDRESS_MAP_END @@ -2690,7 +2688,9 @@ INPUT_PORTS_END #define CPZN1_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1000c.353", 0x0000000, 0x080000, CRC(50033af6) SHA1(486d92ff6c7f1e54f8e0ef41cd9116eca0e10e1a) ) + ROM_LOAD( "coh-1000c.353", 0x0000000, 0x080000, CRC(50033af6) SHA1(486d92ff6c7f1e54f8e0ef41cd9116eca0e10e1a) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( cpzn1 ) CPZN1_BIOS @@ -3062,7 +3062,9 @@ ROM_END #define CPZN2_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-3002c.353", 0x0000000, 0x080000, CRC(e860ea8b) SHA1(66e7e1d4e426466b8f48a2ba055a91b475569504) ) + ROM_LOAD( "coh-3002c.353", 0x0000000, 0x080000, CRC(e860ea8b) SHA1(66e7e1d4e426466b8f48a2ba055a91b475569504) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( cpzn2 ) CPZN2_BIOS @@ -3605,7 +3607,9 @@ ROM_END #define TPS_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1002m.353", 0x0000000, 0x080000, CRC(69ffbcb4) SHA1(03eb2febfab3fcde716defff291babd9392de965) ) + ROM_LOAD( "coh-1002m.353", 0x0000000, 0x080000, CRC(69ffbcb4) SHA1(03eb2febfab3fcde716defff291babd9392de965) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( tps ) TPS_BIOS @@ -3854,7 +3858,9 @@ ROM_END #define KN_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1002v.353", 0x0000000, 0x080000, CRC(5ff165f3) SHA1(8f59314c1093446b9bcb06d232244da6df78e206) ) + ROM_LOAD( "coh-1002v.353", 0x0000000, 0x080000, CRC(5ff165f3) SHA1(8f59314c1093446b9bcb06d232244da6df78e206) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( vspsx ) KN_BIOS @@ -3919,7 +3925,9 @@ ROM_END #define TAITOFX1_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1000t.353", 0x0000000, 0x080000, CRC(e3f23b6e) SHA1(e18907cf8c6ba54d96edba0a9a00487a90219e0d) ) + ROM_LOAD( "coh-1000t.353", 0x0000000, 0x080000, CRC(e3f23b6e) SHA1(e18907cf8c6ba54d96edba0a9a00487a90219e0d) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( taitofx1 ) TAITOFX1_BIOS @@ -4286,7 +4294,9 @@ ROM_END #define PSARC95_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1002e.353", 0x000000, 0x080000, CRC(910f3a8b) SHA1(cd68532967a25f476a6d73473ec6b6f4df2e1689) ) + ROM_LOAD( "coh-1002e.353", 0x000000, 0x080000, CRC(910f3a8b) SHA1(cd68532967a25f476a6d73473ec6b6f4df2e1689) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( psarc95 ) PSARC95_BIOS @@ -4543,7 +4553,9 @@ ROM_END #define TW_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1000w.353", 0x000000, 0x080000, CRC(45e8a4b4) SHA1(815488d8563c85f97fbc3384ff21f08e4c88b7b7) ) + ROM_LOAD( "coh-1000w.353", 0x000000, 0x080000, CRC(45e8a4b4) SHA1(815488d8563c85f97fbc3384ff21f08e4c88b7b7) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( atpsx ) TW_BIOS @@ -4567,7 +4579,9 @@ ROM_END #define AC_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1000a.353", 0x0000000, 0x080000, CRC(8d8d0764) SHA1(7ee83d317190bb1cef2f8f01c81eaaae47150ebb) ) + ROM_LOAD( "coh-1000a.353", 0x0000000, 0x080000, CRC(8d8d0764) SHA1(7ee83d317190bb1cef2f8f01c81eaaae47150ebb) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( acpsx ) AC_BIOS @@ -4630,7 +4644,9 @@ ROM_END #define ATLUS_BIOS \ ROM_REGION32_LE( 0x080000, "maincpu:rom", 0 ) \ - ROM_LOAD( "coh-1001l.353", 0x000000, 0x080000, CRC(6721146b) SHA1(9511d24bfe25eb180fb2db0835b131cb4a12730e) ) + ROM_LOAD( "coh-1001l.353", 0x000000, 0x080000, CRC(6721146b) SHA1(9511d24bfe25eb180fb2db0835b131cb4a12730e) ) \ + ROM_REGION( 0x2000, "mcu", 0 ) \ + ROM_LOAD( "upd78081.655", 0x0000, 0x2000, NO_DUMP ) /* internal rom :( */ ROM_START( atluspsx ) ATLUS_BIOS