CPC_Firmware_to_Hardware_color()
This commit is contained in:
parent
1aeab71663
commit
5b5bdf54dc
@ -315,10 +315,6 @@ void Load_SCR(T_IO_Context * context)
|
||||
}
|
||||
else
|
||||
{
|
||||
static const byte CPC_Firmware_Colors[] = {
|
||||
0x54, 0x44, 0x55, 0x5c, 0x58, 0x5d, 0x4c, 0x45, 0x4d,
|
||||
0x56, 0x46, 0x57, 0x5e, 0x40, 0x5f, 0x4e, 0x47, 0x4f,
|
||||
0x52, 0x42, 0x53, 0x5a, 0x59, 0x5b, 0x4a, 0x43, 0x4b };
|
||||
GFX2_Log(GFX2_DEBUG, ".SCR file. Data length %d\n", i);
|
||||
if (load_address == 0x170)
|
||||
{
|
||||
@ -409,7 +405,7 @@ void Load_SCR(T_IO_Context * context)
|
||||
int j;
|
||||
mode = cpc_ram[0x800];
|
||||
for (j = 0; j < 16; j++)
|
||||
pal_data[12*j] = CPC_Firmware_Colors[cpc_ram[0x801 + j]];
|
||||
pal_data[12*j] = CPC_Firmware_to_Hardware_color(cpc_ram[0x801 + j]);
|
||||
addr = 0x847;
|
||||
if (cpc_ram[0x80bb] == 1)
|
||||
addr = 0x80bb;
|
||||
@ -452,7 +448,7 @@ void Load_SCR(T_IO_Context * context)
|
||||
{
|
||||
int j;
|
||||
for (j = 0; j < 16; j++)
|
||||
pal_data[12*j] = CPC_Firmware_Colors[cpc_ram[0xD7D1 + j]];
|
||||
pal_data[12*j] = CPC_Firmware_to_Hardware_color(cpc_ram[0xD7D1 + j]);
|
||||
}
|
||||
}
|
||||
else if (load_address == 0x0040 && exec_address == 0x8000)
|
||||
|
||||
18
src/oldies.c
18
src/oldies.c
@ -696,6 +696,17 @@ static const T_Components CPC_Hw_Palette[] = {
|
||||
{0x6E, 0x7B, 0xF6}
|
||||
};
|
||||
|
||||
/**
|
||||
* The CPC firmware palette is ordered by luminosity
|
||||
* see http://www.cpcwiki.eu/index.php/CPC_Palette
|
||||
*/
|
||||
static const byte CPC_Firmware_Colors[] = {
|
||||
0x54, 0x44, 0x55, 0x5c, 0x58, 0x5d, 0x4c, 0x45, 0x4d,
|
||||
0x56, 0x46, 0x57, 0x5e, 0x40, 0x5f, 0x4e, 0x47, 0x4f,
|
||||
0x52, 0x42, 0x53, 0x5a, 0x59, 0x5b, 0x4a, 0x43, 0x4b
|
||||
};
|
||||
|
||||
|
||||
void CPC_set_HW_palette(T_Components * palette)
|
||||
{
|
||||
memcpy(palette, CPC_Hw_Palette, sizeof(CPC_Hw_Palette));
|
||||
@ -733,6 +744,13 @@ void CPC_set_default_BASIC_palette(T_Components * palette)
|
||||
sizeof(T_Components));
|
||||
}
|
||||
|
||||
byte CPC_Firmware_to_Hardware_color(byte fw_color)
|
||||
{
|
||||
if (fw_color <= 26)
|
||||
return CPC_Firmware_Colors[fw_color];
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CPC_check_AMSDOS(FILE * file, word * loading_address, word * exec_address, unsigned long * file_length)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -127,6 +127,13 @@ void CPC_set_default_BASIC_palette(T_Components * palette);
|
||||
*/
|
||||
int CPC_compare_colors(T_Components * col1, T_Components * col2);
|
||||
|
||||
/**
|
||||
* Convert CPC firmware color to hardware color (Gate Array)
|
||||
* @param fw_color a CPC Firmware color index (from 0 to 26)
|
||||
* @return a CPC Hardware color (from 0x40 to 0x5f)
|
||||
*/
|
||||
byte CPC_Firmware_to_Hardware_color(byte fw_color);
|
||||
|
||||
/**
|
||||
* Check AMSDOS header
|
||||
*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user