From c03c27eef353c7590cd4b50f9ce6e265d13e4462 Mon Sep 17 00:00:00 2001 From: davidhay Date: Mon, 6 Oct 2008 21:10:09 +0000 Subject: [PATCH] fix for "00989: qgh: If you do a metamorphose, the screen turns black without displaying words/pictures. " shared palette ram should actually be shared.. --- src/mame/drivers/segas24.c | 6 ++++-- src/mame/video/segaic24.c | 8 ++++++++ src/mame/video/segaic24.h | 1 + 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