From 38452f8bfa2bfc7356ebf5b71bac50ae47bba0ea Mon Sep 17 00:00:00 2001 From: David Haywood Date: Mon, 30 Nov 2015 19:24:08 +0000 Subject: [PATCH] fix sound banking in Aquarium using reference video, also tag it as imperfect graphics --- src/mame/drivers/aquarium.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/mame/drivers/aquarium.cpp b/src/mame/drivers/aquarium.cpp index 6a8b8ec234d..3d5c41a7e23 100644 --- a/src/mame/drivers/aquarium.cpp +++ b/src/mame/drivers/aquarium.cpp @@ -2,8 +2,6 @@ // copyright-holders:David Haywood /* Aquarium (c)1996 Excellent Systems */ -/* the hardware is similar to gcpinbal.c, probably should merge it at some point */ - /* AQUARIUM @@ -69,7 +67,21 @@ WRITE16_MEMBER(aquarium_state::aquarium_sound_w) WRITE8_MEMBER(aquarium_state::aquarium_z80_bank_w) { - membank("bank1")->set_entry(data & 0x07); + // banking reference + // https://www.youtube.com/watch?v=nyAQPrkt_a4 + // (video also shows our video priority is incorrect) + + // uses bits ---x --xx + data = BITSWAP8(data, 7, 6, 5, 2, 3, 1, 4, 0); + + //printf("aquarium bank %04x %04x\n", data, mem_mask); + // aquarium bank 0003 00ff - correct (title) 011 + // aquarium bank 0006 00ff - correct (select) 110 + // aquarium bank 0005 00ff - level 1 (correct) + // (all music seems correct w/regards the reference video) + + + membank("bank1")->set_entry(data & 0x7); } UINT8 aquarium_state::aquarium_snd_bitswap( UINT8 scrambled_data ) @@ -275,8 +287,8 @@ DRIVER_INIT_MEMBER(aquarium_state,aquarium) } /* configure and set up the sound bank */ - membank("bank1")->configure_entries(0, 7, &Z80[0x18000], 0x8000); - membank("bank1")->set_entry(1); + membank("bank1")->configure_entries(0, 0x20, &Z80[0x00000], 0x8000); + membank("bank1")->set_entry(0x00); } @@ -342,7 +354,7 @@ ROM_START( aquarium ) ROM_LOAD16_WORD_SWAP( "aquar3", 0x000000, 0x080000, CRC(344509a1) SHA1(9deb610732dee5066b3225cd7b1929b767579235) ) ROM_REGION( 0x40000, "audiocpu", 0 ) /* z80 (sound) code */ - ROM_LOAD( "aquar5", 0x000000, 0x40000, CRC(fa555be1) SHA1(07236f2b2ba67e92984b9ddf4a8154221d535245) ) + ROM_LOAD( "aquar5", 0x000000, 0x40000, CRC(fa555be1) SHA1(07236f2b2ba67e92984b9ddf4a8154221d535245) ) ROM_REGION( 0x100000, "gfx1", 0 ) /* BG Tiles */ ROM_LOAD( "aquar1", 0x000000, 0x080000, CRC(575df6ac) SHA1(071394273e512666fe124facdd8591a767ad0819) ) // 4bpp @@ -366,4 +378,4 @@ ROM_START( aquarium ) ROM_LOAD( "aquar4", 0x000000, 0x80000, CRC(9a4af531) SHA1(bb201b7a6c9fd5924a0d79090257efffd8d4aba1) ) ROM_END -GAME( 1996, aquarium, 0, aquarium, aquarium, aquarium_state, aquarium, ROT0, "Excellent System", "Aquarium (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1996, aquarium, 0, aquarium, aquarium, aquarium_state, aquarium, ROT0, "Excellent System", "Aquarium (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )