From 6e0cd32da6cab24f13fd7a780423bf4ba2e34f89 Mon Sep 17 00:00:00 2001 From: mamehaze Date: Sat, 28 Feb 2015 22:48:01 +0000 Subject: new clones Brick Zone (v6.0, Joystick) [system11] --- src/mame/drivers/suna8.c | 83 +++++++++++++++++++++++++++++++++-------------- src/mame/includes/suna8.h | 2 ++ src/mame/mame.lst | 1 + 3 files changed, 62 insertions(+), 24 deletions(-) diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index 1aebb845058..d98cf9e059d 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -128,12 +128,43 @@ UINT8 *suna8_state::brickzn_decrypt() return decrypt; } -DRIVER_INIT_MEMBER(suna8_state,brickzn) +DRIVER_INIT_MEMBER(suna8_state, brickzn_common) { m_decrypt = brickzn_decrypt(); + // Non-banked opcodes + address_space &space = m_maincpu->space(AS_PROGRAM); + space.set_decrypted_region(0x0000, 0x7fff, m_decrypt); + + // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: + membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); + // Opcode banks: 00-1f normal opcode decryption: + membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000); + membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000); +} + +DRIVER_INIT_MEMBER(suna8_state,brickzn) +{ + DRIVER_INIT_CALL(brickzn_common); // !!!!!! PATCHES !!!!!! + // To do: ROM banking should be disabled here + m_decrypt[0x11cc] = 0x00; // LD ($C040),A -> NOP + m_decrypt[0x11cd] = 0x00; // LD ($C040),A -> NOP + m_decrypt[0x11ce] = 0x00; // LD ($C040),A -> NOP + + m_decrypt[0x335b] = 0xc9; // RET Z -> RET (to avoid: jp $C800) + + // NMI enable / source?? + m_decrypt[0x1442] = 0xc9; // HALT -> RET + m_decrypt[0x24C6] = 0x00; // HALT -> NOP + m_decrypt[0x25A4] = 0x00; // HALT -> NOP +} + +DRIVER_INIT_MEMBER(suna8_state,brickznv5) +{ + DRIVER_INIT_CALL(brickzn_common); + // !!!!!! PATCHES !!!!!! // To do: ROM banking should be disabled here m_decrypt[0x11bb] = 0x00; // LD ($C040),A -> NOP m_decrypt[0x11bc] = 0x00; // LD ($C040),A -> NOP @@ -145,23 +176,13 @@ DRIVER_INIT_MEMBER(suna8_state,brickzn) m_decrypt[0x1431] = 0xc9; // HALT -> RET m_decrypt[0x24b5] = 0x00; // HALT -> NOP m_decrypt[0x2593] = 0x00; // HALT -> NOP - - // Non-banked opcodes - address_space &space = m_maincpu->space(AS_PROGRAM); - space.set_decrypted_region(0x0000, 0x7fff, m_decrypt); - - // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: - membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); - // Opcode banks: 00-1f normal opcode decryption: - membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000); - membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000); } DRIVER_INIT_MEMBER(suna8_state,brickznv4) { - m_decrypt = brickzn_decrypt(); - // !!!!!! PATCHES !!!!!! + DRIVER_INIT_CALL(brickzn_common); + // !!!!!! PATCHES !!!!!! // To do: ROM banking should be disabled here m_decrypt[0x1190] = 0x00; // LD ($C040),A -> NOP m_decrypt[0x1191] = 0x00; // LD ($C040),A -> NOP @@ -173,16 +194,6 @@ DRIVER_INIT_MEMBER(suna8_state,brickznv4) m_decrypt[0x1406] = 0xc9; // HALT -> RET m_decrypt[0x2487] = 0x00; // HALT -> NOP m_decrypt[0x256c] = 0x00; // HALT -> NOP - - // Non-banked opcodes - address_space &space = m_maincpu->space(AS_PROGRAM); - space.set_decrypted_region(0x0000, 0x7fff, m_decrypt); - - // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: - membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); - // Opcode banks: 00-1f normal opcode decryption: - membank("bank1")->configure_decrypted_entries(0, 16, m_decrypt + 0x10000, 0x4000); - membank("bank1")->configure_decrypted_entries(16, 16, m_decrypt + 0x10000, 0x4000); } @@ -2525,6 +2536,28 @@ Large epoxy(?) module near the cpu's. ***************************************************************************/ ROM_START( brickzn ) + ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */ + ROM_LOAD( "P9.M7", 0x00000, 0x08000, CRC(bd7a3c01) SHA1(05fb2836f1c8d8818847ccb76e7b477f13a9929b) ) + ROM_LOAD( "P8.K7", 0x10000, 0x20000, CRC(ec3e266d) SHA1(4441a5ae88e51353f6d1eb22c00becb0a7ecea6e) ) + ROM_LOAD( "P7.I7", 0x30000, 0x20000, CRC(4dd88631) SHA1(0dbcaf3420dad82c3ed94d231948fe69b044b786) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) /* Music Z80 Code */ + ROM_LOAD( "10.O8", 0x00000, 0x10000, CRC(4eba8178) SHA1(9a214a1acacdc124529bc9dde73a8e884fc70293) ) // BRICK MUSIC XILINX PROGRAM 3020 1991,11,14 MUSIC PROGRAM V 2,0 1990.12.14 + + ROM_REGION( 0x10000, "pcm", 0 ) /* PCM Z80 Code */ + ROM_LOAD( "11.N10", 0x00000, 0x10000, CRC(6c54161a) SHA1(ea216d9f45b441acd56b9fed81a83e3bfe299fbd) ) + + ROM_REGION( 0xc0000, "gfx1", ROMREGION_INVERT ) /* Sprites */ + ROM_LOAD( "P5.M5", 0x00000, 0x20000, CRC(ca59e2f7) SHA1(dbb9f2b316a44f760768f0430798e0c4e9e8f3ff) ) + ROM_LOAD( "P4.L5", 0x20000, 0x20000, CRC(cc8fb330) SHA1(fd263f65b81acbfc00fe339c461068ab160c04af) ) + ROM_LOAD( "P3.K5", 0x40000, 0x20000, CRC(2e4f194b) SHA1(86da1a582ea274f2af96d3e3e2ac72bcaf3638cb) ) + ROM_LOAD( "P2.I5", 0x60000, 0x20000, CRC(592d45ce) SHA1(8ce9236b7deba6cf00999680314ac04eff624a6d) ) + ROM_LOAD( "P1.H5", 0x80000, 0x20000, CRC(7a6bb583) SHA1(ff7018c07182fce0ff6954bbe3b08fa5105f6be0) ) + ROM_LOAD( "P6.H7", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) ) +ROM_END + + +ROM_START( brickznv5 ) ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */ ROM_LOAD( "brickzon.009", 0x00000, 0x08000, CRC(1ea68dea) SHA1(427152a26b062c5e77089de49c1da69369d4d557) ) // V5.0 1992,3,3 ROM_LOAD( "brickzon.008", 0x10000, 0x20000, CRC(c61540ba) SHA1(08c0ede591b229427b910ca6bb904a6146110be8) ) @@ -2545,6 +2578,7 @@ ROM_START( brickzn ) ROM_LOAD( "brickzon.006", 0xa0000, 0x20000, CRC(bbf31081) SHA1(1fdbd0e0853082345225e18df340184a7a604b78) ) ROM_END + ROM_START( brickznv4 ) ROM_REGION( 0x50000 + 0x40000, "maincpu", 0 ) /* Main Z80 Code */ ROM_LOAD( "39", 0x00000, 0x08000, CRC(043380bd) SHA1(7eea7cc7d754815df233879b4a9d3d88eac5b28d) ) // V3.0 1992,1,23 @@ -2846,6 +2880,7 @@ GAME( 1990, starfigh, 0, starfigh, starfigh, suna8_state, starfigh, ROT GAME( 1991, hardhea2, 0, hardhea2, hardhea2, suna8_state, hardhea2, ROT0, "SunA", "Hard Head 2 (v2.0)", 0 ) -GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) +GAME( 1992, brickzn, 0, brickzn, brickzn, suna8_state, brickzn, ROT90, "SunA", "Brick Zone (v6.0, Joystick)", 0 ) // 'V 60' +GAME( 1992, brickznv5, brickzn, brickzn, brickzn, suna8_state, brickznv5, ROT90, "SunA", "Brick Zone (v5.0, Joystick)", 0 ) GAME( 1992, brickznv4, brickzn, brickzn, brickzn, suna8_state, brickznv4, ROT90, "SunA", "Brick Zone (v4.0, Spinner)", 0 ) GAME( 1992, brickzn11, brickzn, brickzn, brickzn, suna8_state, brickzn11, ROT90, "SunA", "Brick Zone (v1.1)", GAME_NOT_WORKING ) diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h index e87d1217a16..57197dd6ad9 100644 --- a/src/mame/includes/suna8.h +++ b/src/mame/includes/suna8.h @@ -124,6 +124,8 @@ public: DECLARE_READ8_MEMBER(suna8_banked_spriteram_r); DECLARE_WRITE8_MEMBER(suna8_spriteram_w); DECLARE_WRITE8_MEMBER(suna8_banked_spriteram_w); + DECLARE_DRIVER_INIT(brickzn_common); + DECLARE_DRIVER_INIT(brickznv5); DECLARE_DRIVER_INIT(brickznv4); DECLARE_DRIVER_INIT(starfigh); DECLARE_DRIVER_INIT(hardhea2); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 91053b729ce..ab3c494dd5b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9255,6 +9255,7 @@ sparkmana // (c) 1989 SunA starfigh // (c) 1990 SunA hardhea2 // (c) 1991 SunA brickzn // (c) 1992 SunA +brickznv5 // (c) 1992 SunA brickznv4 // (c) 1992 SunA brickzn11 // (c) 1992 SunA bestbest // (c) 1994 SunA -- cgit v1.2.3