1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-01-29 04:33:04 +00:00

Route other holdover TMS modes through the Yamaha logic.

This commit is contained in:
Thomas Harte 2023-02-16 22:07:18 -05:00
parent dbfc9a14aa
commit bbccc5d6d6
2 changed files with 9 additions and 2 deletions

View File

@ -366,7 +366,11 @@ void TMS9918<personality>::run_for(const HalfCycles cycles) {
break;
default:
// This covers both MultiColour and Graphics modes.
next_line_buffer.fetch_mode = FetchMode::Character;
if constexpr (is_yamaha_vdp(personality)) {
next_line_buffer.fetch_mode = FetchMode::Yamaha;
} else {
next_line_buffer.fetch_mode = FetchMode::Character;
}
break;
}

View File

@ -338,9 +338,12 @@ void Base<personality>::draw_yamaha(int start, int end) {
#define Dispatch(x) case ScreenMode::x: draw_yamaha<ScreenMode::x>(line_buffer, start, end); break;
if constexpr (is_yamaha_vdp(personality)) {
switch(line_buffer.screen_mode) {
// These modes look the same as on the TMS.
// Modes that are the same (or close enough) to those on the TMS.
case ScreenMode::Text: draw_tms_text<false>(start >> 2, end >> 2); break;
case ScreenMode::YamahaText80: draw_tms_text<true>(start >> 1, end >> 1); break;
case ScreenMode::MultiColour:
case ScreenMode::ColouredText:
case ScreenMode::Graphics: draw_tms_character(start >> 2, end >> 2); break;
Dispatch(YamahaGraphics3);
Dispatch(YamahaGraphics4);