]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3600b15
authorToni Wilen <twilen@winuae.net>
Wed, 27 Dec 2017 18:51:28 +0000 (20:51 +0200)
committerToni Wilen <twilen@winuae.net>
Wed, 27 Dec 2017 18:51:28 +0000 (20:51 +0200)
memory.cpp
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/win32.cpp
od-win32/win32.h
od-win32/win32gui.cpp

index 17a5eced3a607ea90383f24a9b48ce330260618c..7b808c2a66b3b27b00113ecab744de81d1610733 100644 (file)
@@ -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)
index 915ea4dbb3c9aed5be9a621080d6286fb6191eef..f5ba452c73d484d5ba15d95d5fc8f229e6617d7f 100644 (file)
 #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
index f3bf34e2a9703dd5c27c483df8c1e96ed96120e7..4d6c5ac02587f4f46c7601dddf43d6c4a70b45ff 100644 (file)
@@ -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
index 0132f613450bcbed024a4ce17cbb0264ae4a2ca2..caa51c4a2b803ee9f90d33cf2b54f65e3ba9df30 100644 (file)
@@ -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;
index 1fdb2428fd92d66f7e9a3cac25f6707fafc8c2f0..0986eae411d92ee5148a3718bccda7e6e6ba5282 100644 (file)
 #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;
index 4e4dd3016d2f47c17bb1072fe17fef7d84e2cc77..9366a6660f126822202df63f49288f7319b438a9 100644 (file)
@@ -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 },