From: Toni Wilen Date: Wed, 27 Dec 2017 18:51:28 +0000 (+0200) Subject: 3600b15 X-Git-Tag: 3600~18 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=9d6af92379a9ade1c581292ff400d4db3278fdcd;p=francis%2Fwinuae.git 3600b15 --- diff --git a/memory.cpp b/memory.cpp index 17a5eced..7b808c2a 100644 --- a/memory.cpp +++ b/memory.cpp @@ -294,6 +294,15 @@ void dummy_put (uaecptr addr, int size, uae_u32 val) } } +static uae_u32 nonexistingdata(void) +{ + if (currprefs.cs_unmapped_space == 1) + return 0x00000000; + if (currprefs.cs_unmapped_space == 2) + return 0xffffffff; + return NONEXISTINGDATA; +} + uae_u32 dummy_get_safe(uaecptr addr, int size, bool inst, uae_u32 defvalue) { uae_u32 v = defvalue; @@ -384,33 +393,33 @@ static uae_u32 REGPARAM2 dummy_lget (uaecptr addr) { if (currprefs.illegal_mem) dummylog (0, addr, 4, 0, 0); - return dummy_get (addr, 4, false, NONEXISTINGDATA); + return dummy_get (addr, 4, false, nonexistingdata()); } uae_u32 REGPARAM2 dummy_lgeti (uaecptr addr) { if (currprefs.illegal_mem) dummylog (0, addr, 4, 0, 1); - return dummy_get (addr, 4, true, NONEXISTINGDATA); + return dummy_get (addr, 4, true, nonexistingdata()); } static uae_u32 REGPARAM2 dummy_wget (uaecptr addr) { if (currprefs.illegal_mem) dummylog (0, addr, 2, 0, 0); - return dummy_get (addr, 2, false, NONEXISTINGDATA); + return dummy_get (addr, 2, false, nonexistingdata()); } uae_u32 REGPARAM2 dummy_wgeti (uaecptr addr) { if (currprefs.illegal_mem) dummylog (0, addr, 2, 0, 1); - return dummy_get (addr, 2, true, NONEXISTINGDATA); + return dummy_get (addr, 2, true, nonexistingdata()); } static uae_u32 REGPARAM2 dummy_bget (uaecptr addr) { if (currprefs.illegal_mem) dummylog (0, addr, 1, 0, 0); - return dummy_get (addr, 1, false, NONEXISTINGDATA); + return dummy_get (addr, 1, false, nonexistingdata()); } static void REGPARAM2 dummy_lput (uaecptr addr, uae_u32 l) diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 915ea4db..f5ba452c 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -1180,14 +1180,13 @@ #define IDC_CPU_MULTIPLIER 1790 #define IDC_CPU_FREQUENCY2 1790 #define IDC_LOGENABLE 1790 -#define IDC_DD_SURFACETYPE 1791 +#define IDC_DXMODE_OPTIONS 1791 #define IDC_RTG_SCALE_ALLOW 1791 #define IDC_CPU_FREQUENCY 1791 #define IDC_LOGENABLE2 1791 #define IDC_PORT_TABLET_LIBRARY 1791 #define IDC_RTG_SCALE_ASPECTRATIO 1792 #define IDC_ASSOCIATE_ON 1792 -#define IDC_DD_SURFACETYPE2 1792 #define IDC_DXMODE 1792 #define IDC_REGISTRYMODE 1792 #define IDC_PORT_AUTOSWITCH 1792 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index f3bf34e2..4d6c5ac0 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -602,8 +602,8 @@ BEGIN COMBOBOX IDC_WINDOWEDMODE,287,59,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP CTEXT "Graphics API:",IDC_STATIC,272,76,117,10,SS_CENTERIMAGE COMBOBOX IDC_DXMODE,287,89,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - CTEXT "DirectDraw:",IDC_STATIC,272,106,117,10,SS_CENTERIMAGE - COMBOBOX IDC_DD_SURFACETYPE,287,119,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + CTEXT "Graphics API Options:",IDC_STATIC,272,106,117,10,SS_CENTERIMAGE + COMBOBOX IDC_DXMODE_OPTIONS,287,119,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP GROUPBOX "GUI",IDC_STATIC,266,144,128,93 COMBOBOX IDC_LANGUAGE,273,157,114,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "GUI Font...",IDC_GUI_FONT,272,174,54,14 diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index 0132f613..caa51c4a 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -1609,6 +1609,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, if (!wParam && isfullscreen() > 0 && D3D_resize && !gui_active) { write_log(_T("WM_ACTIVATEAPP inactive %p\n"), hWnd); D3D_resize(-1); + D3D_resize(0); } else if (wParam && isfullscreen() > 0 && D3D_resize && !gui_active) { write_log(_T("WM_ACTIVATEAPP active %p\n"), hWnd); D3D_resize(1); @@ -5195,7 +5196,7 @@ static int betamessage (void) return 1; } -int os_admin, os_64bit, os_win7, os_win8, os_vista, cpu_number, os_touch; +int os_admin, os_64bit, os_win7, os_win8, os_win10, os_vista, cpu_number, os_touch; BOOL os_dwm_enabled; static int isadminpriv (void) @@ -5279,6 +5280,8 @@ static int osdetect (void) os_win7 = 1; if (osVersion.dwMajorVersion >= 7 || (osVersion.dwMajorVersion == 6 && osVersion.dwMinorVersion >= 2)) os_win8 = 1; + if (osVersion.dwMajorVersion >= 10) + os_win10 = 1; if (SystemInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) os_64bit = 1; } @@ -6441,7 +6444,6 @@ static int PASCAL WinMain2 (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR enumeratedisplays (); write_log (_T("Sorting devices and modes..\n")); sortdisplays (); - write_log (_T("Display buffer mode = %d\n"), ddforceram); enumerate_sound_devices (); for (i = 0; i < MAX_SOUND_DEVICES && sound_devices[i]; i++) { int type = sound_devices[i]->type; diff --git a/od-win32/win32.h b/od-win32/win32.h index 1fdb2428..0986eae4 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("14") +#define WINUAEBETA _T("15") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2017, 12, 20) +#define WINUAEDATE MAKEBD(2017, 12, 27) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") @@ -91,7 +91,7 @@ extern int sound_available; extern int framecnt; extern TCHAR VersionStr[256]; extern TCHAR BetaStr[64]; -extern int os_admin, os_64bit, os_vista, os_win7, os_win8, cpu_number, os_touch; +extern int os_admin, os_64bit, os_vista, os_win7, os_win8, os_win10, cpu_number, os_touch; extern BOOL os_dwm_enabled; extern OSVERSIONINFO osVersion; extern int paraport_mask; diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 4e4dd301..9366a666 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -10885,7 +10885,7 @@ static void enable_for_miscdlg (HWND hDlg) ew (hDlg, IDC_ASSOCIATELIST, !rp_isactive ()); ew (hDlg, IDC_ASSOCIATE_ON, !rp_isactive ()); ew (hDlg, IDC_ASSOCIATE_OFF, !rp_isactive ()); - ew (hDlg, IDC_DD_SURFACETYPE, full_property_sheet && workprefs.gfx_api == 0); + ew (hDlg, IDC_DXMODE_OPTIONS, workprefs.gfx_api == 2 || (full_property_sheet && workprefs.gfx_api == 0)); bool paused = false; bool nosound = false; @@ -11094,6 +11094,22 @@ static void misc_gui_font (HWND hDlg, int fonttype) gui_size_changed = 1; } +static void values_to_miscdlg_dx(HWND hDlg) +{ + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_RESETCONTENT, 0, 0); + if (workprefs.gfx_api == 0) { + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_ADDSTRING, 0, (LPARAM)_T("NonLocalVRAM")); + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_ADDSTRING, 0, (LPARAM)_T("DefaultRAM *")); + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_ADDSTRING, 0, (LPARAM)_T("LocalVRAM")); + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_ADDSTRING, 0, (LPARAM)_T("SystemRAM")); + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_SETCURSEL, ddforceram, 0); + } else if (workprefs.gfx_api == 2) { + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_ADDSTRING, 0, (LPARAM)_T("Hardware D3D11")); + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_ADDSTRING, 0, (LPARAM)_T("Software D3D11")); + SendDlgItemMessage(hDlg, IDC_DXMODE_OPTIONS, CB_SETCURSEL, workprefs.gfx_api_options, 0); + } +} + static void values_to_miscdlg (HWND hDlg) { TCHAR tmp[MAX_DPATH]; @@ -11116,13 +11132,7 @@ static void values_to_miscdlg (HWND hDlg) SendDlgItemMessage(hDlg, IDC_DXMODE, CB_ADDSTRING, 0, (LPARAM)_T("Direct3D 9")); SendDlgItemMessage(hDlg, IDC_DXMODE, CB_ADDSTRING, 0, (LPARAM)_T("Direct3D 11")); SendDlgItemMessage(hDlg, IDC_DXMODE, CB_SETCURSEL, workprefs.gfx_api, 0); - - SendDlgItemMessage (hDlg, IDC_DD_SURFACETYPE, CB_RESETCONTENT, 0, 0); - SendDlgItemMessage (hDlg, IDC_DD_SURFACETYPE, CB_ADDSTRING, 0, (LPARAM)_T("NonLocalVRAM")); - SendDlgItemMessage (hDlg, IDC_DD_SURFACETYPE, CB_ADDSTRING, 0, (LPARAM)_T("DefaultRAM *")); - SendDlgItemMessage (hDlg, IDC_DD_SURFACETYPE, CB_ADDSTRING, 0, (LPARAM)_T("LocalVRAM")); - SendDlgItemMessage (hDlg, IDC_DD_SURFACETYPE, CB_ADDSTRING, 0, (LPARAM)_T("SystemRAM")); - SendDlgItemMessage (hDlg, IDC_DD_SURFACETYPE, CB_SETCURSEL, ddforceram, 0); + values_to_miscdlg_dx(hDlg); SendDlgItemMessage (hDlg, IDC_WINDOWEDMODE, CB_RESETCONTENT, 0, 0); @@ -11324,6 +11334,7 @@ static INT_PTR MiscDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) if (full_property_sheet) d3d_select(&workprefs); enable_for_miscdlg (hDlg); + values_to_miscdlg_dx(hDlg); } break; case IDC_WINDOWEDMODE: @@ -11337,11 +11348,15 @@ static INT_PTR MiscDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) workprefs.win32_statusbar = v - 1; } break; - case IDC_DD_SURFACETYPE: - v = SendDlgItemMessage (hDlg, IDC_DD_SURFACETYPE, CB_GETCURSEL, 0, 0L); + case IDC_DXMODE_OPTIONS: + v = SendDlgItemMessage (hDlg, IDC_DXMODE_OPTIONS, CB_GETCURSEL, 0, 0L); if (v != CB_ERR) { - ddforceram = v; - regsetint (NULL, _T("DirectDraw_Secondary"), ddforceram); + if (workprefs.gfx_api == 2) { + workprefs.gfx_api_options = v; + } else if (!workprefs.gfx_api) { + ddforceram = v; + regsetint(NULL, _T("DirectDraw_Secondary"), ddforceram); + } } break; case IDC_SCSIMODE: @@ -17868,10 +17883,10 @@ static void enable_for_hw3ddlg (HWND hDlg) workprefs.gf[filter_nativertg].gfx_filter_autoscale == AUTOSCALE_INTEGER_AUTOSCALE); } -static TCHAR *filtermultnames[] = { +static const TCHAR *filtermultnames[] = { _T("FS"), _T("1/4x"), _T("1/2x"), _T("1x"), _T("1.5x"), _T("2x"), _T("2.5x"), _T("3x"), _T("3.5x"), _T("4x"), _T("6x"), _T("8x"), NULL }; -static float filtermults[] = { 0, 0.25f, 0.5f, 1.0f, 1.5f, 2.0f, 2.5f, 3.0f, 3.5f, 4.0f, 6.0f, 8.0f }; +static const float filtermults[] = { 0, 0.25f, 0.5f, 1.0f, 1.5f, 2.0f, 2.5f, 3.0f, 3.5f, 4.0f, 6.0f, 8.0f }; struct filterxtra { const TCHAR *label; int *varw[2], *varc[2]; @@ -17899,7 +17914,7 @@ static struct filterxtra filter_3d_extra[] = NULL }; static int dummy_in, dummy_out; -static int filtertypes[] = { +static const int filtertypes[] = { 0, 0, 1, 1, 1, 1, @@ -17946,7 +17961,7 @@ struct filterpreset { TCHAR *name; int conf[26]; }; -static struct filterpreset filterpresets[] = +static const struct filterpreset filterpresets[] = { { _T("PAL"), UAE_FILTER_PAL, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 1, 1, 0, 0, 0, 10, 0, 0, 0, 300, 30, 0, 0, 0, 0 }, { _T("D3D Autoscale"), UAE_FILTER_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 4, 0 },