mirror of
https://github.com/holub/mame
synced 2025-04-26 02:07:14 +03:00
Fixed RGB for right screen, and attempted to guess a better algo for crashing
This commit is contained in:
parent
02ad28f680
commit
d128bf4abf
@ -2226,8 +2226,12 @@ void coolridr_state::apply_rgb_control(int screen_num,int *r, int *g, int *b)
|
||||
}
|
||||
else if(m_rgb_ctrl[screen_num].setting == 0x800) /* when you get hit TODO: algo might be different. */
|
||||
{
|
||||
*g &= (0x1f - m_rgb_ctrl[screen_num].gradient);
|
||||
*b &= (0x1f - m_rgb_ctrl[screen_num].gradient);
|
||||
*r += m_rgb_ctrl[screen_num].gradient;
|
||||
*g -= m_rgb_ctrl[screen_num].gradient;
|
||||
*b -= m_rgb_ctrl[screen_num].gradient;
|
||||
if(*r > 0x1f) { *r = 0x1f; }
|
||||
if(*g < 0) { *g = 0; }
|
||||
if(*b < 0) { *b = 0; }
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2238,7 +2242,7 @@ void coolridr_state::apply_rgb_control(int screen_num,int *r, int *g, int *b)
|
||||
void coolridr_state::flush_pal_data( UINT16 offset )
|
||||
{
|
||||
int r,g,b;
|
||||
int screen_type = (offset & 0x400) >> 10;
|
||||
int screen_type = (offset & 0x200) >> 9;
|
||||
|
||||
r = ((m_h1_pal[offset] & 0x7c00) >> 10);
|
||||
g = ((m_h1_pal[offset] & 0x03e0) >> 5);
|
||||
@ -2342,8 +2346,15 @@ void coolridr_state::sysh1_dma_transfer( address_space &space, UINT16 dma_index
|
||||
case 0x44: /* screen 2 / */
|
||||
m_rgb_ctrl[(cmd & 4) >> 2].setting = m_framebuffer_vram[(0+dma_index)/4] & 0xffffe0;
|
||||
m_rgb_ctrl[(cmd & 4) >> 2].gradient = m_framebuffer_vram[(0+dma_index)/4] & 0x1f;
|
||||
for(int i=((cmd & 4) * 0x100);i<((cmd & 4) * 0x100)+0x400;i++)
|
||||
|
||||
/* 0x000-0x1ff - 0x400-0x5ff screen 1 */
|
||||
/* 0x200-0x3ff - 0x600-0x7ff screen 2 */
|
||||
for(int i=((cmd & 4) << 7);i<((cmd & 4) << 7)+0x200;i++)
|
||||
{
|
||||
flush_pal_data( i );
|
||||
flush_pal_data( i + 0x400 );
|
||||
}
|
||||
|
||||
dma_index+=4;
|
||||
break;
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user