summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author davidhay <davidhay@localhost>2008-10-06 21:10:09 +0000
committer davidhay <davidhay@localhost>2008-10-06 21:10:09 +0000
commitc03c27eef353c7590cd4b50f9ce6e265d13e4462 (patch)
treeea4b5e2989fa98f093144d0fe74518ce2272c3d7 /src
parent04c37c7bcbc2472f5c3d0fc4790a171e8c087ee2 (diff)
fix for "00989: qgh: If you do a metamorphose, the screen turns black without displaying words/pictures. "
shared palette ram should actually be shared..
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/segas24.c6
-rw-r--r--src/mame/video/segaic24.c8
-rw-r--r--src/mame/video/segaic24.h1
3 files changed, 13 insertions, 2 deletions
diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c
index 019d17eac3d..ec74c3164ab 100644
--- a/src/mame/drivers/segas24.c
+++ b/src/mame/drivers/segas24.c
@@ -1017,6 +1017,8 @@ fc-ff ramhi
The BIOS ROM mirror at $100000 is common to both CPUs.
*/
+
+
static ADDRESS_MAP_START( system24_cpu1_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x040000) AM_ROM AM_REGION("main", 0)
AM_RANGE(0x080000, 0x0bffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE(1)
@@ -1027,7 +1029,7 @@ static ADDRESS_MAP_START( system24_cpu1_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x260000, 0x260001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Frame trigger position (XVOUT) */
AM_RANGE(0x270000, 0x270001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Synchronization mode */
AM_RANGE(0x280000, 0x29ffff) AM_MIRROR(0x160000) AM_READWRITE(sys24_char_r, sys24_char_w)
- AM_RANGE(0x400000, 0x403fff) AM_MIRROR(0x1f8000) AM_RAM_WRITE(system24temp_sys16_paletteram1_w) AM_BASE(&paletteram16)
+ AM_RANGE(0x400000, 0x403fff) AM_MIRROR(0x1f8000) AM_READWRITE(system24temp_sys16_paletteram1_r, system24temp_sys16_paletteram1_w) AM_BASE(&paletteram16)
AM_RANGE(0x404000, 0x40401f) AM_MIRROR(0x1fbfe0) AM_READWRITE(sys24_mixer_r, sys24_mixer_w)
AM_RANGE(0x600000, 0x63ffff) AM_MIRROR(0x180000) AM_READWRITE(sys24_sprite_r, sys24_sprite_w)
AM_RANGE(0x800000, 0x80007f) AM_MIRROR(0x1ffe00) AM_READWRITE(system24temp_sys16_io_r, system24temp_sys16_io_w)
@@ -1065,7 +1067,7 @@ static ADDRESS_MAP_START( system24_cpu2_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x260000, 0x260001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Frame trigger position (XVOUT) */
AM_RANGE(0x270000, 0x270001) AM_MIRROR(0x10fffe) AM_WRITENOP /* Synchronization mode */
AM_RANGE(0x280000, 0x29ffff) AM_MIRROR(0x160000) AM_READWRITE(sys24_char_r, sys24_char_w)
- AM_RANGE(0x400000, 0x403fff) AM_MIRROR(0x1f8000) AM_RAM_WRITE(system24temp_sys16_paletteram1_w)
+ AM_RANGE(0x400000, 0x403fff) AM_MIRROR(0x1f8000) AM_READWRITE(system24temp_sys16_paletteram1_r, system24temp_sys16_paletteram1_w)
AM_RANGE(0x404000, 0x40401f) AM_MIRROR(0x1fbfe0) AM_READWRITE(sys24_mixer_r, sys24_mixer_w)
AM_RANGE(0x600000, 0x63ffff) AM_MIRROR(0x180000) AM_READWRITE(sys24_sprite_r, sys24_sprite_w)
AM_RANGE(0x800000, 0x80007f) AM_MIRROR(0x1ffe00) AM_READWRITE(system24temp_sys16_io_r, system24temp_sys16_io_w)
diff --git a/src/mame/video/segaic24.c b/src/mame/video/segaic24.c
index 91412fc7e2e..019ff86a4cd 100644
--- a/src/mame/video/segaic24.c
+++ b/src/mame/video/segaic24.c
@@ -43,6 +43,14 @@ static void set_color(running_machine *machine, int color, UINT8 r, UINT8 g, UIN
}
// 315-5242
+
+// qgh expects to be able to read the palette shared between CPUs
+READ16_HANDLER( system24temp_sys16_paletteram1_r )
+{
+ return paletteram16[offset];
+}
+
+
WRITE16_HANDLER (system24temp_sys16_paletteram1_w)
{
int r, g, b;
diff --git a/src/mame/video/segaic24.h b/src/mame/video/segaic24.h
index d51a7e684e4..9d26fdda42d 100644
--- a/src/mame/video/segaic24.h
+++ b/src/mame/video/segaic24.h
@@ -6,6 +6,7 @@
just made a copy & renamed them for now to avoid any conflicts
*/
+READ16_HANDLER (system24temp_sys16_paletteram1_r);
WRITE16_HANDLER (system24temp_sys16_paletteram1_w);
// Tilemaps