]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3400b15
authorToni Wilen <twilen@winuae.net>
Sun, 6 Nov 2016 15:22:52 +0000 (17:22 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 6 Nov 2016 15:22:52 +0000 (17:22 +0200)
gayle.cpp
main.cpp
od-win32/direct3d.cpp
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/srcrelease.cmd
od-win32/win32.h
od-win32/win32gfx.cpp
od-win32/win32gui.cpp
od-win32/winuae_msvc14/winuae_msvc.vcxproj
od-win32/winuaechangelog.txt

index 8b4bd649454b13d6fb620e7d7774c94e6ff502a0..293c10f2b85afd7b99c4c36d1d75c269ee519dd1 100644 (file)
--- a/gayle.cpp
+++ b/gayle.cpp
@@ -955,7 +955,7 @@ static addrbank mbres_sub_bank = {
        mbres_lput, mbres_wput, mbres_bput,
        default_xlate, default_check, NULL, NULL, _T("Motherboard Resources"),
        dummy_lgeti, dummy_wgeti,
-       ABFLAG_IO, S_READ, S_WRITE,
+       ABFLAG_IO, S_READ, S_WRITE
 };
 
 static struct addrbank_sub mbres_sub_banks[] = {
index 226caef83e819b6142867775b041b75167453702..1b4f96f2d9d6e678e97c12fe3e96c0251b03ab9f 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -171,8 +171,6 @@ void fixup_prefs_dimensions (struct uae_prefs *prefs)
                        // adaptive sync
                        ap->gfx_vsyncmode = 0;
                        ap->gfx_vflip = 0;
-                       if (ap->gfx_backbuffers >= 2)
-                               ap->gfx_backbuffers = 1;
                        ap->gfx_strobo = prefs->lightboost_strobo;
                } else if (ap->gfx_vsync > 0) {
                        if (ap->gfx_vsyncmode) {
index dae06d1f22d2b0264fc8535737ed6e5c0f4c016e..a42782dc4c307500fa25fbd8ce4a23d4c69de9cb 100644 (file)
@@ -2368,6 +2368,8 @@ static const TCHAR *D3D_init2 (HWND ahwnd, int w_w, int w_h, int depth, int *fre
                xfree (s);
        }
 
+       variablerefresh = ap.gfx_vsync < 0;
+
        memset (&dpp, 0, sizeof (dpp));
        dpp.Windowed = isfullscreen () <= 0;
        dpp.BackBufferFormat = mode.Format;
@@ -2376,7 +2378,7 @@ static const TCHAR *D3D_init2 (HWND ahwnd, int w_w, int w_h, int depth, int *fre
        dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
        dpp.BackBufferWidth = w_w;
        dpp.BackBufferHeight = w_h;
-       dpp.PresentationInterval = !ap.gfx_vflip ? D3DPRESENT_INTERVAL_IMMEDIATE : D3DPRESENT_INTERVAL_ONE;
+       dpp.PresentationInterval = variablerefresh ? D3DPRESENT_INTERVAL_DEFAULT : (!ap.gfx_vflip ? D3DPRESENT_INTERVAL_IMMEDIATE : D3DPRESENT_INTERVAL_ONE);
 
        modeex.Width = w_w;
        modeex.Height = w_h;
@@ -2385,7 +2387,6 @@ static const TCHAR *D3D_init2 (HWND ahwnd, int w_w, int w_h, int depth, int *fre
        modeex.Format = mode.Format;
 
        vsync2 = 0;
-       variablerefresh = ap.gfx_vsync < 0;
        int hzmult = 0;
        if (isfullscreen () > 0) {
                dpp.FullScreen_RefreshRateInHz = getrefreshrate (modeex.Width, modeex.Height);
@@ -2603,7 +2604,7 @@ static const TCHAR *D3D_init2 (HWND ahwnd, int w_w, int w_h, int depth, int *fre
        d3d_enabled = 1;
        wasstilldrawing_broken = true;
 
-       if (vsync < 0 && ap.gfx_vflip == 0) {
+       if ((vsync < 0 || variablerefresh) && ap.gfx_vflip == 0) {
                hr = d3ddev->CreateQuery(D3DQUERYTYPE_EVENT, &query);
                if (FAILED (hr))
                        write_log (_T("%s: CreateQuery(D3DQUERYTYPE_EVENT) failed: %s\n"), D3DHEAD, D3D_ErrorString (hr));
@@ -2619,7 +2620,7 @@ static const TCHAR *D3D_init2 (HWND ahwnd, int w_w, int w_h, int depth, int *fre
                if (forcedframelatency >= 0)
                        hr = d3ddevex->SetMaximumFrameLatency (forcedframelatency);
                else if (dpp.PresentationInterval == D3DPRESENT_INTERVAL_IMMEDIATE && (v > 1 || !vsync))
-                       hr = d3ddevex->SetMaximumFrameLatency (vsync ? (hzmult < 0 && !ap.gfx_strobo && !variablerefresh ? 2 : 1) : 0);
+                       hr = d3ddevex->SetMaximumFrameLatency ((vsync || variablerefresh) ? (hzmult < 0 && !ap.gfx_strobo && !variablerefresh ? 2 : 1) : 0);
                if (FAILED (hr))
                        write_log (_T("%s: SetMaximumFrameLatency() failed: %s\n"), D3DHEAD, D3D_ErrorString (hr));
        }
index 08d2dbdc99b1d2461a29610d39842f2d52512875..7fb31c4330a4bfd608884415d3c5bd52e737ef06 100644 (file)
 #define IDC_BLITIMM                     1174
 #define IDC_BLITWAIT                    1175
 #define IDC_LORES                       1176
+#define IDC_KEYBOARD_CONNECTED          1176
 #define IDC_RATE2BOX                    1177
 #define IDC_AUTORESOLUTIONSELECT        1178
 #define IDC_LORES_SMOOTHED              1179
index 2b9a5a7c8ac0cf3105289e0ef77f87c545146f2f..8b2d6445a7b751990b7d625aedd87db24713109a 100644 (file)
@@ -725,13 +725,13 @@ BEGIN
     COMBOBOX        IDC_CS_EXT,148,109,49,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Options",IDC_STATIC,221,0,173,137
     CONTROL         "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,32,150,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,47,150,10
     CONTROL         "Wait for Blitter [] Compatibility hack for programs that don't wait for the blitter correctly, causing graphics corruption if CPU is too fast.",IDC_BLITWAIT,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,45,150,10
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,60,150,10
     CONTROL         "Genlock connected [] Allow boot sequence to detect genlock.",IDC_GENLOCK,
                     "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,209,150,10
-    LTEXT           "Video port display hardware:",IDC_STATIC,237,62,117,15,SS_CENTERIMAGE
-    COMBOBOX        IDC_MONITOREMU,237,80,147,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Video port display hardware:",IDC_STATIC,237,91,117,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_MONITOREMU,237,109,147,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     GROUPBOX        "Collision Level",IDC_STATIC,1,141,393,48
     CONTROL         "None [] Collision hardware emulation disabled.",IDC_COLLISION0,
                     "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,47,157,101,10
@@ -750,6 +750,7 @@ BEGIN
     PUSHBUTTON      "...",IDC_GENLOCKFILESELECT,375,240,10,15
     CONTROL         "Include alpha channel in screenshots and video captures.",IDC_GENLOCK_ALPHA,
                     "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,226,214,10
+    CONTROL         "Keyboard connected",IDC_KEYBOARD_CONNECTED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,15,150,10
 END
 
 IDD_CHIPSET2 DIALOGEX 0, 0, 396, 305
index 6d09a436b6a0f8608f61cb390a8b0fbde0558464..2b889d466ebf87dde61fe5c2d2b91d9bd2bfb7ac 100644 (file)
@@ -192,7 +192,9 @@ cd ..
 copy winuaesrc.7z e:\amiga\winuaepackets\winuaesrc%1.7z
 move winuaesrc.7z e:\amiga
 cd c:\projects\winuae\src\od-win32
-7z a winuaedebug%1 winuae_msvc14\fullrelease\winuae.pdb winuae_msvc14\x64\fullrelease\winuae.pdb
+7z a winuaedebug%1 winuae_msvc15\fullrelease\winuae.pdb winuae_msvc15\x64\fullrelease\winuae.pdb
 move winuaedebug%1.7z e:\amiga\winuaepackets\debug\
-copy winuae_msvc14\fullrelease\winuae.pdb winuae_msvc14\x64\fullrelease\winuae.pdb d:\amiga\dump
+copy winuae_msvc15\fullrelease\winuae.pdb d:\amiga\dump\winuae.pdb
+copy winuae_msvc15\x64\fullrelease\winuae.pdb  d:\amiga\dump\winuae64.pdb
 copy d:\amiga\winuae.exe d:\amiga\dump
+copy d:\amiga\winuae64.exe d:\amiga\dump
index ccda6d49b7c291ce175abd77d9919312025aa046..8d7f1374b57bc2fffd839f195e5f51339cc1b5d0 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(2016, 10, 29)
+#define WINUAEDATE MAKEBD(2016, 11, 6)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index ee18a0cc5601e9337a4eb60bfba525c369fd6efb..4abb6cffaa88cbc172467228d4c3843acc2da4e6 100644 (file)
@@ -1177,6 +1177,7 @@ void show_screen_special (void)
 }
 static frame_time_t strobo_time;
 static volatile bool strobo_active;
+static volatile bool strobo_active2;
 
 static void CALLBACK blackinsertion_cb(
        UINT      uTimerID,
@@ -1194,7 +1195,8 @@ static void CALLBACK blackinsertion_cb(
                                break;
                        }
                        if (diff <= 0) {
-                               show_screen_special();
+                               if (strobo_active2)
+                                       show_screen_special();
                                break;
                        }
                        if (diff > vsynctimebase / 4) {
@@ -1224,6 +1226,7 @@ double target_adjust_vblank_hz(double hz)
 void show_screen (int mode)
 {
        strobo_active = false;
+       strobo_active2 = false;
        gfx_lock();
        if (mode == 2) {
                if (currentmode->flags & DM_D3D) {
@@ -1267,6 +1270,7 @@ void show_screen (int mode)
                        }
                }
                D3D_showframe();
+               strobo_active2 = true;
 #ifdef GFXFILTER
        } else if (currentmode->flags & DM_SWSCALE) {
                if (!dx_islost () && !picasso_on)
index beb11be51dfcf2520ef605a8cc30a64b967c2589..418434288f794504cabcfb940d0d4f28f409d453 100644 (file)
@@ -6690,7 +6690,7 @@ static void enable_for_chipsetdlg (HWND hDlg)
                workprefs.waiting_blits = 0;
                CheckDlgButton (hDlg, IDC_BLITWAIT, FALSE);
        }
-       ew (hDlg, IDC_BLITWAIT, workprefs.immediate_blits ? FALSE : TRUE);
+       ew(hDlg, IDC_BLITWAIT, workprefs.immediate_blits ? FALSE : TRUE);
 
        ew(hDlg, IDC_GENLOCKMODE, workprefs.genlock ? TRUE : FALSE);
        ew(hDlg, IDC_GENLOCKMIX, workprefs.genlock ? TRUE : FALSE);
@@ -7674,14 +7674,15 @@ static void values_to_chipsetdlg (HWND hDlg)
                CheckRadioButton(hDlg, IDC_OCS, IDC_AGA, IDC_OCS + 4);
                break;
        }
-       CheckDlgButton (hDlg, IDC_NTSC, workprefs.ntscmode);
-       CheckDlgButton (hDlg, IDC_GENLOCK, workprefs.genlock);
-       CheckDlgButton (hDlg, IDC_BLITIMM, workprefs.immediate_blits);
-       CheckDlgButton (hDlg, IDC_BLITWAIT, workprefs.waiting_blits);
-       CheckRadioButton (hDlg, IDC_COLLISION0, IDC_COLLISION3, IDC_COLLISION0 + workprefs.collision_level);
-       CheckDlgButton (hDlg, IDC_CYCLEEXACT, workprefs.cpu_cycle_exact);
-       CheckDlgButton (hDlg, IDC_CYCLEEXACTMEMORY, workprefs.cpu_memory_cycle_exact);
-       SendDlgItemMessage (hDlg, IDC_CS_EXT, CB_SETCURSEL, workprefs.cs_compatible, 0);
+       CheckDlgButton(hDlg, IDC_NTSC, workprefs.ntscmode);
+       CheckDlgButton(hDlg, IDC_GENLOCK, workprefs.genlock);
+       CheckDlgButton(hDlg, IDC_BLITIMM, workprefs.immediate_blits);
+       CheckDlgButton(hDlg, IDC_BLITWAIT, workprefs.waiting_blits);
+       CheckDlgButton(hDlg, IDC_KEYBOARD_CONNECTED, workprefs.keyboard_connected);
+       CheckRadioButton(hDlg, IDC_COLLISION0, IDC_COLLISION3, IDC_COLLISION0 + workprefs.collision_level);
+       CheckDlgButton(hDlg, IDC_CYCLEEXACT, workprefs.cpu_cycle_exact);
+       CheckDlgButton(hDlg, IDC_CYCLEEXACTMEMORY, workprefs.cpu_memory_cycle_exact);
+       SendDlgItemMessage(hDlg, IDC_CS_EXT, CB_SETCURSEL, workprefs.cs_compatible, 0);
        SendDlgItemMessage(hDlg, IDC_MONITOREMU, CB_SETCURSEL, workprefs.monitoremu, 0);
        SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_SETCURSEL, workprefs.genlock_image, 0);
        SendDlgItemMessage(hDlg, IDC_GENLOCKMIX, CB_SETCURSEL, workprefs.genlock_mix / 25, 0);
@@ -7703,6 +7704,8 @@ static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
        workprefs.immediate_blits = ischecked (hDlg, IDC_BLITIMM);
        workprefs.waiting_blits = ischecked (hDlg, IDC_BLITWAIT) ? 1 : 0;
 
+       workprefs.keyboard_connected = ischecked(hDlg, IDC_KEYBOARD_CONNECTED) ? 1 : 0;
+
        n2 = ischecked (hDlg, IDC_CYCLEEXACTMEMORY);
        n1 = ischecked (hDlg, IDC_CYCLEEXACT);
        if (workprefs.cpu_cycle_exact != n1 || workprefs.cpu_memory_cycle_exact != n2) {
index 176d4e5efe1418656455d73995908a114946f2b9..98440859d6c4afa11dcd296fa7a896cf402af926 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="packages\VisualCppTools.14.0.24603-Pre\build\native\VisualCppTools.props" Condition="Exists('packages\VisualCppTools.14.0.24603-Pre\build\native\VisualCppTools.props')" />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('packages\VisualCppTools.14.0.24603-Pre\build\native\VisualCppTools.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\VisualCppTools.14.0.24603-Pre\build\native\VisualCppTools.props'))" />
-  </Target>
 </Project>
\ No newline at end of file
index e49a54e00b160abbab20fa0957a72a2af993d19a..5e7a7ea03bc9421d866f11b783b98911efef598d 100644 (file)
@@ -5,6 +5,24 @@ JIT Direct current rules are less complex now. It automatically switches off onl
   Note that in 64-bit version RTG VRAM must be inside of reserved natmem space. (Outside = error message and return back to GUI)\r
 \r
 \r
+Beta 15:\r
+\r
+- GUI created pre-formatted DD disks had wrong root block allocation in bitmap. (b7 or somewhere close)\r
+- Enabling Quickstart mode didn't reset all new memory parameters (autoconfig etc), only size.\r
+- Fixed WASAPI sound hang if sound device disappeared/changed modes when emulation was waiting for too full buffer to empty.\r
+- Handle AUDCLNT_E_INVALID_DEVICE_PERIOD and AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED, do not disable sound.\r
+- WASAPI sound attempts to re-open automatically if for example Windows sound control panel parameters have been changed.\r
+- Changing CPU config during reset (for example using reset input event) didn't always re-initialize all required CPU settings.\r
+- Added RAM to UAESND board. (8M if Z3, 32k if Z2) Can be used for 1:1 physical/logical mapped sample set or sample data storage.\r
+- UAESND sample type variable added, unused for now but if/when there needs to be compressed format support that can\r
+  be transparently uncompressed using Windows codecs. (mp3 etc..). Sample set structure is not compatible with old version anymore.\r
+- Added keyboard connected chipset option. Inserting keyboard on the fly does usual powerup keycode sequence like any real\r
+  removable keyboard (for example A1000). Logica diagnostics ROM uses this to detect connected keyboard. \r
+- Sprite to bitplane collision optimization, skip the collision calculation if collision bit(s) are already set\r
+  (=program does not use collisions), previous fix removed (bad) optimization and unnecessarily increased CPU power requirements\r
+  when program uses lots of sprites and does not care about collisions.\r
+- Replaced Vector Falcon 8000 v7.1 ROM with correctly odd/even split version and added v7.6.\r
+\r
 Beta 14:\r
 \r
 - Ariadne network adapter emulation added. (Am79c960 based, improved Am79c90)\r