From e7a669022ebe7d454a6bd9cada9fd2afc7ef1fc0 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Thu, 29 Dec 2011 15:28:40 +0000 Subject: [PATCH] Fixed Atari bad logo colors at POST in Area 51:Site 4 [Angelo Salese] --- src/mame/drivers/mediagx.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index 1f8189c729f..b43157b2401 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -384,6 +384,7 @@ static WRITE32_HANDLER( disp_ctrl_w ) { mediagx_state *state = space->machine().driver_data(); + printf("disp_ctrl_w %08X, %08X, %08X\n", data, offset*4, mem_mask); COMBINE_DATA(state->m_disp_ctrl_reg + offset); } @@ -432,18 +433,26 @@ static WRITE32_HANDLER( memory_ctrl_w ) { mediagx_state *state = space->machine().driver_data(); - //mame_printf_debug("memory_ctrl_w %08X, %08X, %08X\n", data, offset, mem_mask); - if (offset == 7) + printf("memory_ctrl_w %08X, %08X, %08X\n", data, offset*4, mem_mask); + if (offset == 0x20/4) { - state->m_pal_index = 0; - } - else if (offset == 8) - { - state->m_pal[state->m_pal_index] = data & 0xff; - state->m_pal_index++; - if (state->m_pal_index >= 768) + if((state->m_disp_ctrl_reg[DC_GENERAL_CFG] & 0x00e00000) == 0x00400000) { - state->m_pal_index = 0; + // guess: crtc params? + // ... + } + else if((state->m_disp_ctrl_reg[DC_GENERAL_CFG] & 0x00f00000) == 0x00000000) + { + state->m_pal_index = data; + } + else if((state->m_disp_ctrl_reg[DC_GENERAL_CFG] & 0x00f00000) == 0x00100000) + { + state->m_pal[state->m_pal_index] = data & 0xff; + state->m_pal_index++; + if (state->m_pal_index >= 768) + { + state->m_pal_index = 0; + } } } else