mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-27 00:30:26 +00:00
Takes a shot at low resolution shifting.
This commit is contained in:
parent
a4263b5a8c
commit
e15f1103a0
@ -168,29 +168,35 @@ template <int cycle> void Chipset::output() {
|
|||||||
((current_bitplanes_[3]&1) << 3) |
|
((current_bitplanes_[3]&1) << 3) |
|
||||||
((current_bitplanes_[4]&1) << 4)
|
((current_bitplanes_[4]&1) << 4)
|
||||||
];
|
];
|
||||||
pixels_[1] = palette_[
|
current_bitplanes_ >>= is_high_res_;
|
||||||
((current_bitplanes_[0]&2) >> 1) |
|
|
||||||
((current_bitplanes_[1]&2) << 0) |
|
pixels_[1] = palette_[
|
||||||
((current_bitplanes_[2]&2) << 1) |
|
((current_bitplanes_[0]&1) << 0) |
|
||||||
((current_bitplanes_[3]&2) << 2) |
|
((current_bitplanes_[1]&1) << 1) |
|
||||||
((current_bitplanes_[4]&2) << 3)
|
((current_bitplanes_[2]&1) << 2) |
|
||||||
];
|
((current_bitplanes_[3]&1) << 3) |
|
||||||
pixels_[2] = palette_[
|
((current_bitplanes_[4]&1) << 4)
|
||||||
((current_bitplanes_[0]&4) >> 2) |
|
];
|
||||||
((current_bitplanes_[1]&4) >> 1) |
|
current_bitplanes_ >>= 1;
|
||||||
((current_bitplanes_[2]&4) << 0) |
|
|
||||||
((current_bitplanes_[3]&4) << 1) |
|
pixels_[2] = palette_[
|
||||||
((current_bitplanes_[4]&4) << 2)
|
((current_bitplanes_[0]&1) << 0) |
|
||||||
];
|
((current_bitplanes_[1]&1) << 1) |
|
||||||
pixels_[3] = palette_[
|
((current_bitplanes_[2]&1) << 2) |
|
||||||
((current_bitplanes_[0]&8) >> 3) |
|
((current_bitplanes_[3]&1) << 3) |
|
||||||
((current_bitplanes_[1]&8) >> 2) |
|
((current_bitplanes_[4]&1) << 4)
|
||||||
((current_bitplanes_[2]&8) >> 1) |
|
];
|
||||||
((current_bitplanes_[3]&8) << 0) |
|
current_bitplanes_ >>= is_high_res_;
|
||||||
((current_bitplanes_[4]&8) << 1)
|
|
||||||
];
|
pixels_[3] = palette_[
|
||||||
|
((current_bitplanes_[0]&1) << 0) |
|
||||||
|
((current_bitplanes_[1]&1) << 1) |
|
||||||
|
((current_bitplanes_[2]&1) << 2) |
|
||||||
|
((current_bitplanes_[3]&1) << 3) |
|
||||||
|
((current_bitplanes_[4]&1) << 4)
|
||||||
|
];
|
||||||
|
current_bitplanes_ >>= 1;
|
||||||
|
|
||||||
current_bitplanes_ >>= 4;
|
|
||||||
pixels_ += 4;
|
pixels_ += 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -593,6 +599,7 @@ void Chipset::perform(const CPU::MC68000::Microcycle &cycle) {
|
|||||||
|
|
||||||
case Write(0x100):
|
case Write(0x100):
|
||||||
bitplanes_.set_control(cycle.value16());
|
bitplanes_.set_control(cycle.value16());
|
||||||
|
is_high_res_ = cycle.value16() & 0x8000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Write(0x104):
|
case Write(0x104):
|
||||||
|
@ -188,6 +188,7 @@ class Chipset {
|
|||||||
// std::array<uint8_t, 912> even_playfield_;
|
// std::array<uint8_t, 912> even_playfield_;
|
||||||
// std::array<uint8_t, 912> odd_playfield_;
|
// std::array<uint8_t, 912> odd_playfield_;
|
||||||
int odd_delay_ = 0, even_delay_ = 0;
|
int odd_delay_ = 0, even_delay_ = 0;
|
||||||
|
bool is_high_res_ = false;
|
||||||
|
|
||||||
// MARK: - Copper.
|
// MARK: - Copper.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user