CPC_set_HW_palette()

This commit is contained in:
Thomas Bernard 2018-11-21 01:29:59 +01:00
parent 3ed119a6c2
commit bc06fbae72
No known key found for this signature in database
GPG Key ID: 0FF11B67A5C0863C
3 changed files with 58 additions and 37 deletions

View File

@ -3829,42 +3829,6 @@ void Load_CM5(T_IO_Context* context)
int mod=0;
short line = 0;
int tx, ty;
static const T_Components CPC_Hw_Palette[] = {
{0x6E, 0x7D, 0x6B}, // 0x40
{0x6E, 0x7B, 0x6B}, // 0x41
{0, 0xF3, 0x6B},
{0xF3, 0xF3, 0x6D},
{0, 2, 0x6B},
{0xF0, 2, 0x68},
{0, 0x78, 0x68},
{0xF3, 0x7D, 0x6B},
{0xF3, 0x02, 0x68}, // 0x48
{0xF3, 0xF3, 0x6B},
{0xF3, 0xF3, 0xD},
{255, 0xF3, 0xF9},
{0xF3, 5, 6},
{0xF3, 2, 0xF4},
{0xF3, 0x7D, 0xD},
{0xFA, 0x80, 0xF9},
{0x00, 0x02, 0x68}, // 0x50
{0x02, 0xF3, 0x6B},
{2, 0xF0, 1},
{0xF, 0xF3, 0xF2},
{0, 2, 1},
{0x0C, 2, 0xF4},
{2, 0x78, 1},
{0xC, 0x7B, 0xF4},
{0x69, 2, 0x68}, // 0x58
{0x71, 0xF3, 0x6B},
{0x71, 0xF5, 4},
{0x71, 0xF3, 0xF4},
{0x6C, 2, 1},
{0x6C, 2, 0xF2},
{0x6E, 0x7B, 1},
{0x6E, 0x7B, 0xF6}
};
// for preview :
byte ink0;
byte ink1[256];
@ -3883,7 +3847,7 @@ void Load_CM5(T_IO_Context* context)
memset(context->Palette,0,sizeof(T_Palette));
// Setup the palette (amstrad hardware palette)
memcpy(context->Palette + 0x40, CPC_Hw_Palette, sizeof(CPC_Hw_Palette));
CPC_set_HW_palette(context->Palette + 0x40);
if (!Read_byte(file, &ink0))
File_error = 2;

View File

@ -462,6 +462,48 @@ void ZX_Spectrum_set_palette(T_Components * palette)
}
}
void CPC_set_HW_palette(T_Components * palette)
{
static const T_Components CPC_Hw_Palette[] = {
{0x6E, 0x7D, 0x6B}, // 0x40
{0x6E, 0x7B, 0x6B}, // 0x41
{0, 0xF3, 0x6B},
{0xF3, 0xF3, 0x6D},
{0, 2, 0x6B},
{0xF0, 2, 0x68},
{0, 0x78, 0x68},
{0xF3, 0x7D, 0x6B},
{0xF3, 0x02, 0x68}, // 0x48
{0xF3, 0xF3, 0x6B},
{0xF3, 0xF3, 0xD},
{255, 0xF3, 0xF9},
{0xF3, 5, 6},
{0xF3, 2, 0xF4},
{0xF3, 0x7D, 0xD},
{0xFA, 0x80, 0xF9},
{0x00, 0x02, 0x68}, // 0x50
{0x02, 0xF3, 0x6B},
{2, 0xF0, 1},
{0xF, 0xF3, 0xF2},
{0, 2, 1},
{0x0C, 2, 0xF4},
{2, 0x78, 1},
{0xC, 0x7B, 0xF4},
{0x69, 2, 0x68}, // 0x58
{0x71, 0xF3, 0x6B},
{0x71, 0xF5, 4},
{0x71, 0xF3, 0xF4},
{0x6C, 2, 1},
{0x6C, 2, 0xF2},
{0x6E, 0x7B, 1},
{0x6E, 0x7B, 0xF6}
};
memcpy(palette, CPC_Hw_Palette, sizeof(CPC_Hw_Palette));
}
int DECB_Check_binary_file(FILE * f)
{
byte code;

View File

@ -60,6 +60,21 @@ void ZX_Spectrum_set_palette(T_Components * palette);
/** @}*/
/** @defgroup cpc Amstrad CPC
*
* @{
*/
/**
* Set 32 color HW Amstrad CPC palette
*
* The palette is in fact 27 colors, with some duplicates.
* http://www.cpcwiki.eu/index.php/CPC_Palette
*/
void CPC_set_HW_palette(T_Components * palette);
/** @}*/
/** @defgroup decb DECB binary format
*
* The DECB binary format was used on 6809 based machines :