mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-16 18:30:32 +00:00
Use Yamaha palette pervasively.
This commit is contained in:
parent
3142f5c21d
commit
73e79b14ea
@ -556,10 +556,8 @@ void Base<personality>::output_border(int cycles, [[maybe_unused]] uint32_t cram
|
||||
crt_.output_level(4);
|
||||
cycles -= 4;
|
||||
}
|
||||
} else if constexpr (is_yamaha_vdp(personality)) {
|
||||
border_colour = Storage<personality>::palette_[background_colour_];
|
||||
} else {
|
||||
border_colour = palette[background_colour_];
|
||||
border_colour = palette()[background_colour_];
|
||||
}
|
||||
|
||||
if(!cycles) {
|
||||
|
@ -131,7 +131,7 @@ template <Personality personality> struct Storage<personality, std::enable_if_t<
|
||||
int indirect_register_ = 0;
|
||||
bool increment_indirect_register_ = false;
|
||||
|
||||
uint32_t palette_[16]{};
|
||||
std::array<uint32_t, 16> palette_{};
|
||||
uint8_t new_colour_ = 0;
|
||||
uint8_t palette_entry_ = 0;
|
||||
|
||||
@ -400,7 +400,7 @@ template <Personality personality> struct Base: public Storage<personality> {
|
||||
}
|
||||
|
||||
// The default TMS palette.
|
||||
static constexpr std::array<uint32_t, 16> palette {
|
||||
static constexpr std::array<uint32_t, 16> default_palette {
|
||||
palette_pack(0, 0, 0),
|
||||
palette_pack(0, 0, 0),
|
||||
palette_pack(33, 200, 66),
|
||||
@ -421,6 +421,12 @@ template <Personality personality> struct Base: public Storage<personality> {
|
||||
palette_pack(204, 204, 204),
|
||||
palette_pack(255, 255, 255)
|
||||
};
|
||||
const std::array<uint32_t, 16> &palette() {
|
||||
if constexpr (is_yamaha_vdp(personality)) {
|
||||
return Storage<personality>::palette_;
|
||||
}
|
||||
return default_palette;
|
||||
}
|
||||
|
||||
Outputs::CRT::CRT crt_;
|
||||
TVStandard tv_standard_ = TVStandard::NTSC;
|
||||
|
@ -19,7 +19,7 @@ void Base<personality>::draw_tms_character(int start, int end) {
|
||||
const int pixels_left = end - start;
|
||||
if(this->screen_mode_ == ScreenMode::MultiColour) {
|
||||
for(int c = start; c < end; ++c) {
|
||||
pixel_target_[c] = palette[
|
||||
pixel_target_[c] = palette()[
|
||||
(line_buffer.patterns[c >> 3][0] >> (((c & 4)^4))) & 15
|
||||
];
|
||||
}
|
||||
@ -32,8 +32,8 @@ void Base<personality>::draw_tms_character(int start, int end) {
|
||||
int pattern = Numeric::bit_reverse(line_buffer.patterns[byte_column][0]) >> shift;
|
||||
uint8_t colour = line_buffer.patterns[byte_column][1];
|
||||
uint32_t colours[2] = {
|
||||
palette[(colour & 15) ? (colour & 15) : background_colour_],
|
||||
palette[(colour >> 4) ? (colour >> 4) : background_colour_]
|
||||
palette()[(colour & 15) ? (colour & 15) : background_colour_],
|
||||
palette()[(colour >> 4) ? (colour >> 4) : background_colour_]
|
||||
};
|
||||
|
||||
int background_pixels_left = pixels_left;
|
||||
@ -51,8 +51,8 @@ void Base<personality>::draw_tms_character(int start, int end) {
|
||||
|
||||
pattern = Numeric::bit_reverse(line_buffer.patterns[byte_column][0]);
|
||||
colour = line_buffer.patterns[byte_column][1];
|
||||
colours[0] = palette[(colour & 15) ? (colour & 15) : background_colour_];
|
||||
colours[1] = palette[(colour >> 4) ? (colour >> 4) : background_colour_];
|
||||
colours[0] = palette()[(colour & 15) ? (colour & 15) : background_colour_];
|
||||
colours[1] = palette()[(colour >> 4) ? (colour >> 4) : background_colour_];
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ void Base<personality>::draw_tms_character(int start, int end) {
|
||||
sprite_colour &= colour_masks[sprite.image[2]&15];
|
||||
pixel_origin_[c] =
|
||||
(pixel_origin_[c] & sprite_colour_selection_masks[sprite_colour^1]) |
|
||||
(palette[sprite.image[2]&15] & sprite_colour_selection_masks[sprite_colour]);
|
||||
(palette()[sprite.image[2]&15] & sprite_colour_selection_masks[sprite_colour]);
|
||||
|
||||
sprite.shift_position += shift_advance;
|
||||
}
|
||||
@ -107,7 +107,7 @@ void Base<personality>::draw_tms_character(int start, int end) {
|
||||
template <Personality personality>
|
||||
void Base<personality>::draw_tms_text(int start, int end) {
|
||||
LineBuffer &line_buffer = line_buffers_[output_pointer_.row];
|
||||
const uint32_t colours[2] = { palette[background_colour_], palette[text_colour_] };
|
||||
const uint32_t colours[2] = { palette()[background_colour_], palette()[text_colour_] };
|
||||
|
||||
const int shift = start % 6;
|
||||
int byte_column = start / 6;
|
||||
|
Loading…
x
Reference in New Issue
Block a user