diff --git a/screen/snapshots.go b/screen/snapshots.go index 6b7855e..fa4cef3 100644 --- a/screen/snapshots.go +++ b/screen/snapshots.go @@ -51,6 +51,7 @@ func snapshotByMode(vs VideoSource, videoMode uint16, screenMode int) *image.RGB mixMode := videoMode & VideoMixTextMask isSecondPage := (videoMode & VideoSecondPage) != 0 isAltText := (videoMode & VideoAltText) != 0 + isRGBCard := (videoMode & VideoRGBCard) != 0 var lightColor color.Color = color.White if screenMode == ScreenModeGreen { @@ -99,7 +100,7 @@ func snapshotByMode(vs VideoSource, videoMode uint16, screenMode int) *image.RGB if mixMode != 0 { var bottom *image.RGBA - applyNTSCFilter := screenMode != ScreenModeGreen + applyNTSCFilter := screenMode != ScreenModeGreen && !isRGBCard switch mixMode { case VideoMixText40: bottom = snapshotText40(vs, isSecondPage, isAltText, lightColor) diff --git a/screen/videoSource.go b/screen/videoSource.go index 419b6a5..0487ccf 100644 --- a/screen/videoSource.go +++ b/screen/videoSource.go @@ -35,6 +35,7 @@ const ( VideoModifiersMask uint16 = 0xf000 VideoSecondPage uint16 = 0x1000 VideoAltText uint16 = 0x2000 + VideoRGBCard uint16 = 0x4000 ) // VideoSource provides the info to build the video output diff --git a/videoSourceImpl.go b/videoSourceImpl.go index 914e504..e196b25 100644 --- a/videoSourceImpl.go +++ b/videoSourceImpl.go @@ -89,6 +89,9 @@ func (a *Apple2) GetCurrentVideoMode() uint16 { if isAltText { mode |= screen.VideoAltText } + if isRGBCard { + mode |= screen.VideoRGBCard + } return mode }