1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-25 18:30:07 +00:00

Introduce separate state for palette entries.

This commit is contained in:
Thomas Harte 2023-02-06 19:12:02 -05:00
parent c04d292c8e
commit b538407386
2 changed files with 4 additions and 3 deletions

View File

@ -944,13 +944,13 @@ void Base<personality>::write_register(uint8_t value) {
template <Personality personality>
void Base<personality>::write_palette(uint8_t value) {
if constexpr (is_yamaha_vdp(personality)) {
if(!write_phase_) {
if(!Storage<personality>::palette_write_phase_) {
Storage<personality>::new_colour_ = value;
write_phase_ = true;
Storage<personality>::palette_write_phase_ = true;
return;
}
write_phase_ = false;
Storage<personality>::palette_write_phase_ = false;
const uint8_t r = ((Storage<personality>::new_colour_ >> 4) & 7) * 255 / 7;
const uint8_t g = (value & 7) * 255 / 7;

View File

@ -148,6 +148,7 @@ template <Personality personality> struct Storage<personality, std::enable_if_t<
std::array<uint32_t, 16> palette_{};
uint8_t new_colour_ = 0;
uint8_t palette_entry_ = 0;
bool palette_write_phase_ = false;
uint8_t mode_ = 0;