mirror of
https://github.com/TomHarte/CLK.git
synced 2025-01-12 15:31:09 +00:00
Retains a little more of output controls.
This commit is contained in:
parent
2f1ce5fe43
commit
3976420b88
@ -756,18 +756,26 @@ void Chipset::perform(const CPU::MC68000::Microcycle &cycle) {
|
|||||||
case Write(0x0f4): bitplanes_.set_pointer<5, 16>(cycle.value16()); break; // BPL6PTH
|
case Write(0x0f4): bitplanes_.set_pointer<5, 16>(cycle.value16()); break; // BPL6PTH
|
||||||
case Write(0x0f6): bitplanes_.set_pointer<5, 0>(cycle.value16()); break; // BPL6PTL
|
case Write(0x0f6): bitplanes_.set_pointer<5, 0>(cycle.value16()); break; // BPL6PTL
|
||||||
|
|
||||||
case Write(0x100): // BPLCON0
|
case Write(0x100): { // BPLCON0
|
||||||
bitplanes_.set_control(cycle.value16());
|
const auto value = cycle.value16();
|
||||||
is_high_res_ = cycle.value16() & 0x8000;
|
bitplanes_.set_control(value);
|
||||||
break;
|
is_high_res_ = value & 0x8000;
|
||||||
|
hold_and_modify_ = value & 0x0800;
|
||||||
|
dual_playfields_ = value & 0x0400;
|
||||||
|
interlace_ = value & 0x0004;
|
||||||
|
} break;
|
||||||
case Write(0x102): { // BPLCON1
|
case Write(0x102): { // BPLCON1
|
||||||
const uint8_t delay = cycle.value8_low();
|
const uint8_t delay = cycle.value8_low();
|
||||||
odd_delay_ = delay & 0x0f;
|
odd_delay_ = delay & 0x0f;
|
||||||
even_delay_ = delay >> 4;
|
even_delay_ = delay >> 4;
|
||||||
} break;
|
} break;
|
||||||
|
case Write(0x104): { // BPLCON2
|
||||||
|
const auto value = cycle.value16();
|
||||||
|
odd_priority_ = value & 7;
|
||||||
|
even_priority_ = (value >> 3) & 7;
|
||||||
|
even_over_odd_ = value & 0x40;
|
||||||
|
} break;
|
||||||
|
|
||||||
|
|
||||||
case Write(0x104): // BPLCON2
|
|
||||||
case Write(0x106): // BPLCON3 (ECS)
|
case Write(0x106): // BPLCON3 (ECS)
|
||||||
LOG("TODO: Bitplane control; " << PADHEX(4) << cycle.value16() << " to " << *cycle.address);
|
LOG("TODO: Bitplane control; " << PADHEX(4) << cycle.value16() << " to " << *cycle.address);
|
||||||
break;
|
break;
|
||||||
|
@ -248,6 +248,12 @@ class Chipset: private ClockingHint::Observer {
|
|||||||
BitplaneData next_bitplanes_, previous_bitplanes_;
|
BitplaneData next_bitplanes_, previous_bitplanes_;
|
||||||
bool has_next_bitplanes_ = false;
|
bool has_next_bitplanes_ = false;
|
||||||
|
|
||||||
|
int odd_priority_ = 0, even_priority_ = 0;
|
||||||
|
bool even_over_odd_ = false;
|
||||||
|
bool hold_and_modify_ = false;
|
||||||
|
bool dual_playfields_ = false;
|
||||||
|
bool interlace_ = false;
|
||||||
|
|
||||||
class BitplaneShifter {
|
class BitplaneShifter {
|
||||||
public:
|
public:
|
||||||
/// Installs a new set of output pixels.
|
/// Installs a new set of output pixels.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user