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

Reimagine G3 for sprite mode 2.

This commit is contained in:
Thomas Harte 2023-02-18 21:50:12 -05:00
parent 270c5dfe85
commit 7aa8728b39
2 changed files with 10 additions and 3 deletions

View File

@ -522,7 +522,6 @@ template<ScreenMode mode> void Base<personality>::fetch_yamaha(LineBuffer &line_
case ScreenMode::Graphics:
case ScreenMode::MultiColour:
case ScreenMode::ColouredText:
case ScreenMode::YamahaGraphics3:
character_fetcher.fetch_tile_name(Storage<personality>::next_event_->id);
break;
@ -541,7 +540,6 @@ template<ScreenMode mode> void Base<personality>::fetch_yamaha(LineBuffer &line_
case ScreenMode::Graphics:
case ScreenMode::MultiColour:
case ScreenMode::ColouredText:
case ScreenMode::YamahaGraphics3:
character_fetcher.fetch_tile_colour(Storage<personality>::next_event_->id);
break;
@ -571,7 +569,15 @@ template<ScreenMode mode> void Base<personality>::fetch_yamaha(LineBuffer &line_
case ScreenMode::Graphics:
case ScreenMode::MultiColour:
case ScreenMode::ColouredText:
character_fetcher.fetch_tile_pattern(Storage<personality>::next_event_->id);
break;
case ScreenMode::YamahaGraphics3:
// As per comment elsewhere; my _guess_ is that G3 is slotted as if it were
// a bitmap mode, with the three bytes that describe each column fitting into
// the relevant windows.
character_fetcher.fetch_tile_name(Storage<personality>::next_event_->id);
character_fetcher.fetch_tile_colour(Storage<personality>::next_event_->id);
character_fetcher.fetch_tile_pattern(Storage<personality>::next_event_->id);
break;

View File

@ -110,10 +110,11 @@ template <Personality personality> struct Storage<personality, std::enable_if_t<
case ScreenMode::MultiColour:
case ScreenMode::YamahaGraphics1:
case ScreenMode::YamahaGraphics2:
case ScreenMode::YamahaGraphics3: // TODO: possibly? Does this give enough bandwidth for sprites?
next_event_ = character_events.data();
break;
case ScreenMode::YamahaGraphics3: // TODO: verify; my guess is that G3 is timed like a bitmap mode
// in order to fit the pattern for sprite mode 2. Just a guess.
default:
next_event_ = sprites_enabled_ ? sprites_events.data() : no_sprites_events.data();
break;