mirror of
https://github.com/holub/mame
synced 2025-06-06 04:43:45 +03:00
Some old GPU has only 16bit video output; Correct this, Add notes
This commit is contained in:
parent
a471d0d3c0
commit
6b99567a17
@ -44,10 +44,19 @@ void psxgpu_device::device_start()
|
||||
|
||||
if (type() == CXD8538Q)
|
||||
{
|
||||
m_15bit = true; // VRAM, 16bit Video ouptut
|
||||
psx_gpu_init( 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
if (type() == CXD8514Q)
|
||||
{
|
||||
m_15bit = true; // VRAM, 16bit Video ouptut
|
||||
}
|
||||
else
|
||||
{
|
||||
m_15bit = false; // SGRAM, 24bit Video output
|
||||
}
|
||||
psx_gpu_init( 2 );
|
||||
}
|
||||
}
|
||||
@ -541,11 +550,22 @@ void psxgpu_device::psx_gpu_init( int n_gputype )
|
||||
p_n_greenb1[ n_level ] = ( ( n_level >> 5 ) & ( MAX_LEVEL - 1 ) ) * MAX_LEVEL;
|
||||
p_n_blueb1[ n_level ] = ( ( n_level >> 10 ) & ( MAX_LEVEL - 1 ) ) * MAX_LEVEL;
|
||||
|
||||
/* 24bit to 15 bit conversion */
|
||||
p_n_g0r0[ n_level ] = ( ( ( n_level >> 8 ) & 0xff ) << 8 ) | ( ( ( n_level >> 0 ) & 0xff ) << 16 );
|
||||
p_n_b0[ n_level ] = ( ( n_level >> 0 ) & 0xff ) << 0;
|
||||
p_n_r1[ n_level ] = ( ( n_level >> 8 ) & 0xff ) << 16;
|
||||
p_n_b1g1[ n_level ] = ( ( ( n_level >> 8 ) & 0xff ) << 0 ) | ( ( ( n_level >> 0 ) & 0xff ) << 8 );
|
||||
if (m_15bit)
|
||||
{
|
||||
/* 24bit to 15 bit conversion */
|
||||
p_n_g0r0[ n_level ] = ( pal5bit( n_level >> 11 ) << 8 ) | ( pal5bit( n_level >> 3 ) << 16 );
|
||||
p_n_b0[ n_level ] = pal5bit( n_level >> 3 ) << 0;
|
||||
p_n_r1[ n_level ] = pal5bit( n_level >> 11 ) << 16;
|
||||
p_n_b1g1[ n_level ] = ( pal5bit( n_level >> 11 ) << 0 ) | ( pal5bit( n_level >> 3 ) << 8 );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 24bit color output */
|
||||
p_n_g0r0[ n_level ] = ( ( ( n_level >> 8 ) & 0xff ) << 8 ) | ( ( ( n_level >> 0 ) & 0xff ) << 16 );
|
||||
p_n_b0[ n_level ] = ( ( n_level >> 0 ) & 0xff ) << 0;
|
||||
p_n_r1[ n_level ] = ( ( n_level >> 8 ) & 0xff ) << 16;
|
||||
p_n_b1g1[ n_level ] = ( ( ( n_level >> 8 ) & 0xff ) << 0 ) | ( ( ( n_level >> 0 ) & 0xff ) << 8 );
|
||||
}
|
||||
}
|
||||
|
||||
for( n_level = 0; n_level < MAX_LEVEL; n_level++ )
|
||||
|
@ -233,6 +233,8 @@ private:
|
||||
void gpu_read( uint32_t *p_ram, int32_t n_size );
|
||||
void gpu_write( uint32_t *p_ram, int32_t n_size );
|
||||
|
||||
bool m_15bit;
|
||||
|
||||
int32_t m_n_tx;
|
||||
int32_t m_n_ty;
|
||||
int32_t n_abr;
|
||||
|
Loading…
Reference in New Issue
Block a user