From fc4d3c3df77aacc2289b298658ec1ee6d8ea7e1b Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 3 Jun 2018 19:32:40 +0300 Subject: [PATCH] 4000b12 --- custom.cpp | 11 ++++++++++- include/options.h | 2 ++ main.cpp | 9 +++++++-- od-win32/win32.h | 4 ++-- od-win32/win32gui.cpp | 17 ++++++++++++----- od-win32/winuaechangelog.txt | 11 +++++++++++ 6 files changed, 44 insertions(+), 10 deletions(-) diff --git a/custom.cpp b/custom.cpp index 15d4f8c7..f8213fe9 100644 --- a/custom.cpp +++ b/custom.cpp @@ -3084,7 +3084,15 @@ static void decide_line (int hpos) nextstate = plf_passed_stop; } if (bpl_dma_off_when_active) { - nextstate = plf_passed_stop_act; +#if 0 + if ((bitplane_maybe_start_hpos < hstart && bitplane_maybe_start_hpos >= 0) && (currprefs.chipset_mask & CSMASK_AGA)) { + nextstate = plf_passed_stop2; + } else { +#endif + nextstate = plf_passed_stop_act; +#if 0 + } +#endif bpl_dma_off_when_active = 0; } } @@ -8276,6 +8284,7 @@ static void linesync_first_last_line(int *first, int *last) get_custom_raw_limits(&w, &h, &x, &y); if (y > 0) *first += y; + //write_log(_T("y=%d h=%d mfl=%d maxvpos=%d\n"), y, h, minfirstline, maxvpos_display); } static int vsyncnextscanline; diff --git a/include/options.h b/include/options.h index a28db4f3..072082e4 100644 --- a/include/options.h +++ b/include/options.h @@ -887,6 +887,8 @@ extern int cfgfile_yesno (const TCHAR *option, const TCHAR *value, const TCHAR * extern int cfgfile_intval (const TCHAR *option, const TCHAR *value, const TCHAR *name, int *location, int scale); extern int cfgfile_strval (const TCHAR *option, const TCHAR *value, const TCHAR *name, int *location, const TCHAR *table[], int more); extern int cfgfile_string (const TCHAR *option, const TCHAR *value, const TCHAR *name, TCHAR *location, int maxsz); +extern bool cfgfile_option_find(const TCHAR *s, const TCHAR *option); +extern TCHAR *cfgfile_option_get(const TCHAR *s, const TCHAR *option); extern TCHAR *cfgfile_subst_path (const TCHAR *path, const TCHAR *subst, const TCHAR *file); extern TCHAR *target_expand_environment (const TCHAR *path, TCHAR *out, int maxlen); diff --git a/main.cpp b/main.cpp index 567b0479..fe59461f 100644 --- a/main.cpp +++ b/main.cpp @@ -179,8 +179,13 @@ void fixup_prefs_dimensions (struct uae_prefs *prefs) ap->gfx_strobo = false; if (ap->gfx_vsync) { if (ap->gfx_vsyncmode) { - ap->gfx_backbuffers = 1; - ap->gfx_strobo = false; + if (ap->gfx_fullscreen != 0) { + ap->gfx_backbuffers = 1; + ap->gfx_strobo = false; + } else { + ap->gfx_vsyncmode = 0; + ap->gfx_vsync = 0; + } } else { // legacy vsync: always wait for flip ap->gfx_vflip = -1; diff --git a/od-win32/win32.h b/od-win32/win32.h index ff488a8c..e1bd7eee 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("11") +#define WINUAEBETA _T("12") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2018, 5, 21) +#define WINUAEDATE MAKEBD(2018, 6, 3) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 69d836e2..abdb688a 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -2240,6 +2240,8 @@ static void m(int monid) static void flipgui(int opengui) { D3D_guimode(0, opengui); + if (full_property_sheet) + return; if (opengui) { DirectDraw_FlipToGDISurface(); } else { @@ -6860,9 +6862,11 @@ static void enable_for_displaydlg (HWND hDlg) ew (hDlg, IDC_LM_IDOUBLED3, !workprefs.gfx_autoresolution && isdouble); if (workprefs.gfx_apmode[0].gfx_vsyncmode == 1 || workprefs.gfx_apmode[0].gfx_vsyncmode == 2) { + hide(hDlg, IDC_SCREENMODE_NATIVE3, FALSE); ew(hDlg, IDC_SCREENMODE_NATIVE3, TRUE); } else { ew(hDlg, IDC_SCREENMODE_NATIVE3, FALSE); + hide(hDlg, IDC_SCREENMODE_NATIVE3, TRUE); } } @@ -7254,6 +7258,8 @@ static void display_fromselect (int val, int *fs, int *vsync, int p96) } #endif +#define MAX_GUI_DISPLAY_SECTIONS 30 + static void values_to_displaydlg (HWND hDlg) { TCHAR buffer[MAX_DPATH]; @@ -7327,22 +7333,23 @@ static void values_to_displaydlg (HWND hDlg) WIN32GUI_LoadUIString(IDS_SCREEN_VSYNC_AUTOSWITCH, buffer, sizeof buffer / sizeof(TCHAR)); SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_ADDSTRING, 0, (LPARAM)buffer); - for (int i = 1; i < 30; i++) { + for (int i = 1; i < MAX_GUI_DISPLAY_SECTIONS; i++) { _stprintf(buffer, _T("%d"), i); SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE3, CB_ADDSTRING, 0, (LPARAM)buffer); } - SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_SETCURSEL, - workprefs.gfx_apmode[0].gfx_fullscreen, 0); + SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_SETCURSEL, workprefs.gfx_apmode[0].gfx_fullscreen, 0); v = workprefs.gfx_apmode[0].gfx_vsync; if (v < 0) v = 5; else if (v > 0) { v = v + (workprefs.gfx_apmode[0].gfx_vsyncmode || !v ? 0 : 2); } + SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_SETCURSEL, v, 0); - SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE3, CB_SETCURSEL, workprefs.gfx_display_sections - 1, 0); + if (workprefs.gfx_display_sections - 1 < MAX_GUI_DISPLAY_SECTIONS) + SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE3, CB_SETCURSEL, workprefs.gfx_display_sections - 1, 0); SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_RESETCONTENT, 0, 0); @@ -7845,7 +7852,7 @@ static INT_PTR CALLBACK DisplayDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPAR handle_da (hDlg); values_from_displaydlg (hDlg, msg, wParam, lParam); enable_for_displaydlg (hDlg); - if (LOWORD (wParam) == IDC_RATE2ENABLE) { + if (LOWORD (wParam) == IDC_RATE2ENABLE || LOWORD(wParam) == IDC_SCREENMODE_NATIVE3 || LOWORD(wParam) == IDC_SCREENMODE_NATIVE2 || LOWORD(wParam) == IDC_SCREENMODE_NATIVE) { values_to_displaydlg (hDlg); } recursive--; diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index ac15c078..d3a31c44 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,5 +1,16 @@ +Beta 12: + +- Don't allow lagless vsync in normal windowed mode. +- Hide lagless vsync slice count in GUI if lagless vsync is not selected. +- Fixed crash if screen mode open failed and error dialog was shown. (b11) +- D3D11 fullscreen mode opened in primary monitor if selected non-default monitor was connected to another GPU. +- New debugger didn't load 3.1 (and probably older) amiga.lib files. +- Added debugger_options config entry, currently only supported sub entry is pathprefix=x where x is string that gets appended to stabs source file paths. +- Try harder to find working path for stabs source files and when working path combination is found, remember it instead of enumerating all possible variants every time source file is loaded. +- uaedbg now breaks to debugger when debugged application causes unhandled exception via tc_TrapCode. + Beta 11: - D3D11 fullscreen mode after alt-tab/gui was not restored properly if emulation was in paused state. -- 2.47.3