mirror of
https://github.com/AppleWin/AppleWin.git
synced 2026-04-20 15:17:50 +00:00
Support the old AppleWin 1.25 vertical blending for hires: - extended Config dialog to include 'Vertical Blend' checkbox - Persist 'Video Styles' to Registry - new cmd line options to select this style & also select 'RGB (Color Monitor)' - code refactor to support enum VideoStyle_e (and replaced g_uHalfScanLines with a bit in g_eVideoStyles) Bumped version to 1.28.2.0.
This commit is contained in:
+54
-7
@@ -89,7 +89,7 @@ COLORREF g_nMonochromeRGB = RGB(0xC0,0xC0,0xC0);
|
||||
uint32_t g_uVideoMode = VF_TEXT; // Current Video Mode (this is the last set one as it may change mid-scan line!)
|
||||
|
||||
DWORD g_eVideoType = VT_DEFAULT;
|
||||
DWORD g_uHalfScanLines = 1; // drop 50% scan lines for a more authentic look
|
||||
static VideoStyle_e g_eVideoStyle = VS_HALF_SCANLINES;
|
||||
|
||||
static const bool g_bVideoScannerNTSC = true; // NTSC video scanning (or PAL)
|
||||
|
||||
@@ -1211,11 +1211,28 @@ enum VideoType127_e
|
||||
|
||||
void Config_Load_Video()
|
||||
{
|
||||
REGLOAD(TEXT(REGVALUE_VIDEO_MODE ),&g_eVideoType);
|
||||
REGLOAD(TEXT(REGVALUE_VIDEO_HALF_SCAN_LINES),&g_uHalfScanLines);
|
||||
REGLOAD(TEXT(REGVALUE_VIDEO_MONO_COLOR ),&g_nMonochromeRGB);
|
||||
REGLOAD(TEXT(REGVALUE_VIDEO_MODE) ,&g_eVideoType);
|
||||
REGLOAD(TEXT(REGVALUE_VIDEO_STYLE) ,(DWORD*)&g_eVideoStyle);
|
||||
REGLOAD(TEXT(REGVALUE_VIDEO_MONO_COLOR),&g_nMonochromeRGB);
|
||||
|
||||
//
|
||||
|
||||
const UINT16* pOldVersion = GetOldAppleWinVersion();
|
||||
if (pOldVersion[0] == 1 && pOldVersion[1] <= 28 && pOldVersion[2] <= 1)
|
||||
{
|
||||
DWORD halfScanLines = 0;
|
||||
REGLOAD(TEXT(REGVALUE_VIDEO_HALF_SCAN_LINES),&halfScanLines);
|
||||
|
||||
if (halfScanLines)
|
||||
g_eVideoStyle = (VideoStyle_e) ((DWORD)g_eVideoStyle | VS_HALF_SCANLINES);
|
||||
else
|
||||
g_eVideoStyle = (VideoStyle_e) ((DWORD)g_eVideoStyle & ~VS_HALF_SCANLINES);
|
||||
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_STYLE), g_eVideoStyle);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
if (pOldVersion[0] == 1 && pOldVersion[1] <= 27 && pOldVersion[2] <= 13)
|
||||
{
|
||||
switch (g_eVideoType)
|
||||
@@ -1229,6 +1246,8 @@ void Config_Load_Video()
|
||||
case VT127_MONO_WHITE: g_eVideoType = VT_MONO_WHITE; break;
|
||||
default: g_eVideoType = VT_DEFAULT; break;
|
||||
}
|
||||
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_MODE), g_eVideoType);
|
||||
}
|
||||
|
||||
if (g_eVideoType >= NUM_VIDEO_MODES)
|
||||
@@ -1237,9 +1256,37 @@ void Config_Load_Video()
|
||||
|
||||
void Config_Save_Video()
|
||||
{
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_MODE ),g_eVideoType);
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_HALF_SCAN_LINES),g_uHalfScanLines);
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_MONO_COLOR ),g_nMonochromeRGB);
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_MODE) ,g_eVideoType);
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_STYLE) ,g_eVideoStyle);
|
||||
REGSAVE(TEXT(REGVALUE_VIDEO_MONO_COLOR),g_nMonochromeRGB);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
VideoType_e GetVideoType(void)
|
||||
{
|
||||
return (VideoType_e) g_eVideoType;
|
||||
}
|
||||
|
||||
// TODO: Can only do this at start-up (mid-emulation requires a more heavy-weight video reinit)
|
||||
void SetVideoType(VideoType_e newVideoType)
|
||||
{
|
||||
g_eVideoType = newVideoType;
|
||||
}
|
||||
|
||||
VideoStyle_e GetVideoStyle(void)
|
||||
{
|
||||
return g_eVideoStyle;
|
||||
}
|
||||
|
||||
void SetVideoStyle(VideoStyle_e newVideoStyle)
|
||||
{
|
||||
g_eVideoStyle = newVideoStyle;
|
||||
}
|
||||
|
||||
bool IsVideoStyle(VideoStyle_e mask)
|
||||
{
|
||||
return (g_eVideoStyle & mask) != 0;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
Reference in New Issue
Block a user