mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-21 20:29:06 +00:00
Introduce separate state for palette entries.
This commit is contained in:
parent
c04d292c8e
commit
b538407386
@ -944,13 +944,13 @@ void Base<personality>::write_register(uint8_t value) {
|
|||||||
template <Personality personality>
|
template <Personality personality>
|
||||||
void Base<personality>::write_palette(uint8_t value) {
|
void Base<personality>::write_palette(uint8_t value) {
|
||||||
if constexpr (is_yamaha_vdp(personality)) {
|
if constexpr (is_yamaha_vdp(personality)) {
|
||||||
if(!write_phase_) {
|
if(!Storage<personality>::palette_write_phase_) {
|
||||||
Storage<personality>::new_colour_ = value;
|
Storage<personality>::new_colour_ = value;
|
||||||
write_phase_ = true;
|
Storage<personality>::palette_write_phase_ = true;
|
||||||
return;
|
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 r = ((Storage<personality>::new_colour_ >> 4) & 7) * 255 / 7;
|
||||||
const uint8_t g = (value & 7) * 255 / 7;
|
const uint8_t g = (value & 7) * 255 / 7;
|
||||||
|
@ -148,6 +148,7 @@ template <Personality personality> struct Storage<personality, std::enable_if_t<
|
|||||||
std::array<uint32_t, 16> palette_{};
|
std::array<uint32_t, 16> palette_{};
|
||||||
uint8_t new_colour_ = 0;
|
uint8_t new_colour_ = 0;
|
||||||
uint8_t palette_entry_ = 0;
|
uint8_t palette_entry_ = 0;
|
||||||
|
bool palette_write_phase_ = false;
|
||||||
|
|
||||||
uint8_t mode_ = 0;
|
uint8_t mode_ = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user