Added VGA grayscale and choose screen type

VGA render can transform to grayscale and applying color.
Green, amber and white.
This commit is contained in:
basic2004
2017-07-17 23:04:50 +09:00
committed by GitHub
parent f8229f6cbd
commit ccea4a189a
6 changed files with 93 additions and 8 deletions

View File

@@ -46,7 +46,7 @@ BEGIN
BEGIN
MENUITEM "&Hard Reset", IDM_ACTION_HRESET
MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD
MENUITEM "&Ctrl+Alt+Esc", IDM_ACTION_CTRL_ALT_ESC
MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC
MENUITEM SEPARATOR
MENUITEM "E&xit", IDM_ACTION_EXIT
END
@@ -81,6 +81,14 @@ BEGIN
BEGIN
MENUITEM "&Inverted VGA monitor", IDM_VID_INVERT
MENUITEM "E&GA/(S)VGA overscan", IDM_VID_OVERSCAN
POPUP "VGA Screen &type"
BEGIN
MENUITEM "RGB &Color", IDM_VID_GRAY_RGB
MENUITEM "&RGB Grayscale", IDM_VID_GRAY_MONO
MENUITEM "&Amber monitor", IDM_VID_GRAY_AMBER
MENUITEM "&Green monitor", IDM_VID_GRAY_GREEN
MENUITEM "&White monitor", IDM_VID_GRAY_WHITE
END
END
MENUITEM SEPARATOR
MENUITEM "F&orce 4:3 display ratio", IDM_VID_FORCE43

View File

@@ -410,6 +410,11 @@
#define IDM_VID_OVERSCAN 40076
#define IDM_VID_INVERT 40079
#define IDM_VID_CGACON 40080
#define IDM_VID_GRAY_RGB 40090
#define IDM_VID_GRAY_MONO 40091
#define IDM_VID_GRAY_AMBER 40092
#define IDM_VID_GRAY_GREEN 40093
#define IDM_VID_GRAY_WHITE 40094
#define IDM_LOG_BREAKPOINT 51201
#define IDM_DUMP_VRAM 51202 // should be an Action

View File

@@ -1532,6 +1532,7 @@ int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpsz
CheckMenuItem(menu, IDM_VID_SCALE_1X + scale, MF_CHECKED);
CheckMenuItem(menu, IDM_VID_CGACON, vid_cga_contrast ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(menu, IDM_VID_GRAY_RGB + video_grayscale, MF_CHECKED);
d=romset;
for (c=0;c<ROM_MAX;c++)
@@ -1970,6 +1971,18 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
saveconfig();
break;
case IDM_VID_GRAY_RGB:
case IDM_VID_GRAY_MONO:
case IDM_VID_GRAY_AMBER:
case IDM_VID_GRAY_GREEN:
case IDM_VID_GRAY_WHITE:
CheckMenuItem(hmenu, IDM_VID_GRAY_RGB + video_grayscale, MF_UNCHECKED);
video_grayscale = LOWORD(wParam) - IDM_VID_GRAY_RGB;
CheckMenuItem(hmenu, IDM_VID_GRAY_RGB + video_grayscale, MF_CHECKED);
saveconfig();
device_force_redraw();
break;
#ifdef ENABLE_LOG_TOGGLES
#ifdef ENABLE_BUSLOGIC_LOG
case IDM_LOG_BUSLOGIC: