summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/suna8.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/suna8.c')
-rw-r--r--src/mame/drivers/suna8.c83
1 files changed, 59 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);
}
@@ -2526,6 +2537,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) )
ROM_LOAD( "brickzon.007", 0x30000, 0x20000, CRC(ceed12f1) SHA1(9006726b75a65455afb1194298bade8fa2207b4a) )
@@ -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 )