diff --git a/Machines/Oric/Video.cpp b/Machines/Oric/Video.cpp index 30fe2f805..b14aab6b1 100644 --- a/Machines/Oric/Video.cpp +++ b/Machines/Oric/Video.cpp @@ -54,7 +54,7 @@ void VideoOutput::set_display_type(Outputs::Display::DisplayType display_type) { #ifdef SUPPLY_COMPOSITE const auto data_type = - (display_type == Outputs::Display::DisplayType::RGB) ? + (!has_colour_rom_ || display_type == Outputs::Display::DisplayType::RGB) ? Outputs::Display::InputDataType::Red1Green1Blue1 : Outputs::Display::InputDataType::PhaseLinkedLuminance8; #else @@ -80,6 +80,7 @@ Outputs::Display::ScanStatus VideoOutput::get_scaled_scan_status() const { } void VideoOutput::set_colour_rom(const std::vector &rom) { + has_colour_rom_ = true; for(std::size_t c = 0; c < 8; c++) { colour_forms_[c] = 0; diff --git a/Machines/Oric/Video.hpp b/Machines/Oric/Video.hpp index 59181526d..bfd4df537 100644 --- a/Machines/Oric/Video.hpp +++ b/Machines/Oric/Video.hpp @@ -37,6 +37,7 @@ class VideoOutput { Outputs::CRT::CRT crt_; Outputs::CRT::CRTFrequencyMismatchWarner frequency_mismatch_warner_; bool crt_is_60Hz_ = false; + bool has_colour_rom_ = false; void update_crt_frequency();