From: Toni Wilen Date: Sat, 16 Dec 2017 18:45:31 +0000 (+0200) Subject: 3600b13 X-Git-Tag: 3600~30 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=1a839fb7a900612ce5ef82bf2629365d30a122e5;p=francis%2Fwinuae.git 3600b13 --- diff --git a/inputdevice.cpp b/inputdevice.cpp index 290d848e..df085643 100644 --- a/inputdevice.cpp +++ b/inputdevice.cpp @@ -19,6 +19,7 @@ #define DONGLE_DEBUG 0 #define SWITCH_DEBUG 0 #define INPUT_DEBUG 0 +#define OUTPUTDEBUG 0 #include "sysconfig.h" #include "sysdeps.h" @@ -2949,7 +2950,6 @@ static int getvelocity (int num, int subnum, int pct) static void mouseupdate (int pct, bool vsync) { - int v, i; int max = 120; static int mxd, myd; @@ -2993,44 +2993,53 @@ static void mouseupdate (int pct, bool vsync) myd = 0; } - for (i = 0; i < 2; i++) { + for (int i = 0; i < 2; i++) { if (mouse_port[i]) { - v = getvelocity (i, 0, pct); - mxd += v; - mouse_x[i] += v; + int v1 = getvelocity (i, 0, pct); + mxd += v1; + mouse_x[i] += v1; if (mouse_x[i] < 0) { mouse_x[i] += MOUSEXY_MAX; - mouse_frame_x[i] = mouse_x[i] - v; + mouse_frame_x[i] = mouse_x[i] - v1; } if (mouse_x[i] >= MOUSEXY_MAX) { mouse_x[i] -= MOUSEXY_MAX; - mouse_frame_x[i] = mouse_x[i] - v; + mouse_frame_x[i] = mouse_x[i] - v1; } - v = getvelocity (i, 1, pct); - myd += v; - mouse_y[i] += v; + int v2 = getvelocity (i, 1, pct); + myd += v2; + mouse_y[i] += v2; if (mouse_y[i] < 0) { mouse_y[i] += MOUSEXY_MAX; - mouse_frame_y[i] = mouse_y[i] - v; + mouse_frame_y[i] = mouse_y[i] - v2; } if (mouse_y[i] >= MOUSEXY_MAX) { mouse_y[i] -= MOUSEXY_MAX; - mouse_frame_y[i] = mouse_y[i] - v; + mouse_frame_y[i] = mouse_y[i] - v2; } - v = getvelocity (i, 2, pct); + int v3 = getvelocity (i, 2, pct); /* if v != 0, record mouse wheel key presses * according to the NewMouse standard */ - if (v > 0) + if (v3 > 0) record_key (0x7a << 1); - else if (v < 0) + else if (v3 < 0) record_key (0x7b << 1); if (!mouse_deltanoreset[i][2]) mouse_delta[i][2] = 0; +#if OUTPUTDEBUG + if (v1 || v2) { + TCHAR xx1[256]; + _stprintf(xx1, _T("%p %d VX=%d VY=%d X=%d Y=%d DX=%d DY=%d VS=%d\n"), + GetCurrentProcess(), timeframes, v1, v2, mouse_x[i], mouse_y[i], mouse_frame_x[i] - mouse_x[i], mouse_frame_y[i] - mouse_y[i], vsync); + OutputDebugString(xx1); + } +#endif + if (mouse_frame_x[i] - mouse_x[i] > max) { mouse_x[i] = mouse_frame_x[i] - max; mouse_x[i] &= MOUSEXY_MAX - 1; @@ -8767,14 +8776,27 @@ void setmousestate (int mouse, int axis, int data, int isabs) struct uae_input_device *id = &mice[mouse]; static float fract[MAX_INPUT_DEVICES][MAX_INPUT_DEVICE_EVENTS]; +#if OUTPUTDEBUG + TCHAR xx1[256]; + _stprintf(xx1, _T("%p %d M=%d A=%d D=%d IA=%d\n"), GetCurrentProcess(), timeframes, mouse, axis, data, isabs); + OutputDebugString(xx1); +#endif + if (testmode) { inputdevice_testrecord (IDTYPE_MOUSE, mouse, IDEV_WIDGET_AXIS, axis, data, -1); // fake "release" event inputdevice_testrecord (IDTYPE_MOUSE, mouse, IDEV_WIDGET_AXIS, axis, 0, -1); +#if OUTPUTDEBUG + OutputDebugString(_T("-> exit1\n")); +#endif return; } - if (input_play) + if (input_play) { +#if OUTPUTDEBUG + OutputDebugString(_T("-> exit5\n")); +#endif return; + } if (!mice[mouse].enabled) { if (isabs && currprefs.input_tablet > 0) { if (axis == 0) @@ -8784,6 +8806,9 @@ void setmousestate (int mouse, int axis, int data, int isabs) if (axis) mousehack_helper (mice2[mouse].buttonmask); } +#if OUTPUTDEBUG + OutputDebugString(_T("-> exit2\n")); +#endif return; } d = 0; @@ -8791,8 +8816,12 @@ void setmousestate (int mouse, int axis, int data, int isabs) oldm_p = &oldm_axis[mouse][axis]; if (!isabs) { // eat relative movements while in mousehack mode - if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive () && axis < 2) + if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive() && axis < 2) { +#if OUTPUTDEBUG + OutputDebugString(_T("-> exit3\n")); +#endif return; + } *oldm_p = *mouse_p; *mouse_p += data; d = (*mouse_p - *oldm_p) * currprefs.input_mouse_speed / 100.0f; @@ -8809,8 +8838,12 @@ void setmousestate (int mouse, int axis, int data, int isabs) } if (axis) mousehack_helper (mice2[mouse].buttonmask); - if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive () && axis < 2) + if (currprefs.input_tablet == TABLET_MOUSEHACK && mousehack_alive() && axis < 2) { +#if OUTPUTDEBUG + OutputDebugString(_T("-> exit4\n")); +#endif return; + } } v = (int)d; fract[mouse][axis] += d - v; @@ -8821,8 +8854,20 @@ void setmousestate (int mouse, int axis, int data, int isabs) uae_u64 flags = id->flags[ID_AXIS_OFFSET + axis][i]; if (!isabs && (flags & ID_FLAG_INVERT)) v = -v; + +#if OUTPUTDEBUG + if (id->eventid[ID_AXIS_OFFSET + axis][i]) { + TCHAR xx2[256]; + _stprintf(xx2, _T("%p %d -> %d ID=%d\n"), GetCurrentProcess(), timeframes, v, id->eventid[ID_AXIS_OFFSET + axis][i]); + OutputDebugString(xx2); + } +#endif + handle_input_event_extra(id->eventid[ID_AXIS_OFFSET + axis][i], v, 0, HANDLE_IE_FLAG_CANSTOPPLAYBACK | extraflags, extrastate); } +#if OUTPUTDEBUG + OutputDebugString(_T("-> exit0\n")); +#endif } int getmousestate (int joy) diff --git a/od-win32/dinput.cpp b/od-win32/dinput.cpp index d557ea2c..f344dd86 100644 --- a/od-win32/dinput.cpp +++ b/od-win32/dinput.cpp @@ -24,6 +24,7 @@ int no_windowsmouse = 0; #define DI_DEBUG 1 #define IGNOREEVERYTHING 0 #define DEBUG_SCANCODE 0 +#define OUTPUTDEBUG 0 #define NEGATIVEMINHACK 0 @@ -2114,8 +2115,8 @@ static void handle_rawinput_2 (RAWINPUT *raw) break; } } - if (rawinput_log & 2) - write_log (_T("%08x %04x %04x %04x %08x %3d %3d %08x M=%d F=%d\n"), + if (rawinput_log & 2) { + write_log(_T("%p %04x %04x %04x %08x %3d %3d %08x M=%d F=%d\n"), raw->header.hDevice, rm->usFlags, rm->usButtonFlags, @@ -2124,7 +2125,25 @@ static void handle_rawinput_2 (RAWINPUT *raw) rm->lLastX, rm->lLastY, rm->ulExtraInformation, num < num_mouse ? num + 1 : -1, - isfocus ()); + isfocus()); + } + +#if OUTPUTDEBUG + TCHAR xx[256]; + _stprintf(xx, _T("%p %d %p %04x %04x %04x %08x %3d %3d %08x M=%d F=%d\n"), + GetCurrentProcess(), timeframes, + raw->header.hDevice, + rm->usFlags, + rm->usButtonFlags, + rm->usButtonData, + rm->ulRawButtons, + rm->lLastX, + rm->lLastY, + rm->ulExtraInformation, num < num_mouse ? num + 1 : -1, + isfocus()); + OutputDebugString(xx); +#endif + if (num == num_mouse) return; diff --git a/od-win32/win32.h b/od-win32/win32.h index 3d732543..96d73e59 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("12") +#define WINUAEBETA _T("13") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2017, 12, 11) +#define WINUAEDATE MAKEBD(2017, 12, 16) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gui_extra.cpp b/od-win32/win32gui_extra.cpp index 18fc42e6..ccd42825 100644 --- a/od-win32/win32gui_extra.cpp +++ b/od-win32/win32gui_extra.cpp @@ -874,7 +874,7 @@ static void boxartpaint(HDC hdc, HWND hwnd) Gdiplus::Graphics graphics(hdc); Gdiplus::Pen pen(Gdiplus::Color(170, 170, 0, 0), 1); - int y = hgap; + float y = 0; cnt = 0; for (int i = 0; i < MAX_BOX_ART_IMAGES; i++) { if (!imagemode && cnt >= max_visible_boxart_images) @@ -887,7 +887,7 @@ static void boxartpaint(HDC hdc, HWND hwnd) } } - y = hgap + (window_h - (int)(y * scale + 0.5)) / 2; + y = hgap + (window_h - (y * scale)) / 2; cnt = 0; for (int i = 0; i < MAX_BOX_ART_IMAGES; i++) { @@ -905,7 +905,7 @@ static void boxartpaint(HDC hdc, HWND hwnd) int x1 = wgap + (window_w - w) / 2; int x2 = w; - int y1 = y; + int y1 = (int)(y + 0.5); int y2 = h; if (image_count == 1) { @@ -949,7 +949,7 @@ bool show_box_art(const TCHAR *path) boxart_init(); boxart_inited = true; } - if (isfullscreen() > 0 || !hGUIWnd) { + if ((!full_property_sheet && isfullscreen() > 0) || !hGUIWnd) { close_box_art_window(); return false; } diff --git a/od-win32/winuae_msvc15/winuae_msvc.vcxproj b/od-win32/winuae_msvc15/winuae_msvc.vcxproj index 6a485985..cc43394b 100644 --- a/od-win32/winuae_msvc15/winuae_msvc.vcxproj +++ b/od-win32/winuae_msvc15/winuae_msvc.vcxproj @@ -246,7 +246,7 @@ $(OutDir)$(TargetName)$(TargetExt) true LIBCMT;%(IgnoreSpecificDefaultLibraries) - d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;avrt.dll;ddraw.dll;Iphlpapi.dll;%(DelayLoadDLLs) + d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;ddraw.dll;Iphlpapi.dll;gdiplus.dll;%(DelayLoadDLLs) true .\Debug/winuae.pdb Windows @@ -306,7 +306,7 @@ $(OutDir)$(TargetName)$(TargetExt) true LIBCMT;%(IgnoreSpecificDefaultLibraries) - wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;avrt.dll;Dwmapi.lib;%(DelayLoadDLLs) + d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;Iphlpapi.dll;%(DelayLoadDLLs) true $(Platform)\$(Configuration)\winuae.pdb Windows @@ -460,7 +460,7 @@ %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ %(AdditionalManifestDependencies) %(IgnoreSpecificDefaultLibraries) - d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;ddraw.dll;Iphlpapi.dll;%(DelayLoadDLLs) + d3dx9_43.dll;openal32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;ddraw.dll;Iphlpapi.dll;gdiplus.dll;%(DelayLoadDLLs) true .\Test/winuae.pdb Windows @@ -616,7 +616,7 @@ true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ %(IgnoreSpecificDefaultLibraries);MSVCRT - d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;%(DelayLoadDLLs) + d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;Iphlpapi.dll;%(DelayLoadDLLs) true $(Platform)\$(Configuration)\winuae.pdb Windows @@ -772,7 +772,7 @@ true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ %(IgnoreSpecificDefaultLibraries);MSVCRT - d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;gdiplus.dll;%(DelayLoadDLLs) + d3dx9_43.dll;openal32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;Iphlpapi.dll;%(DelayLoadDLLs) true .\x64\FullRelease/winuae.pdb Windows @@ -955,6 +955,12 @@ + + + + + + @@ -1172,7 +1178,7 @@ PS_PostAlpha Pixel - 4.0 + 4.0_level_9_1 PS_PostAlpha ../Shaders/PixelShaderAlpha.h @@ -1193,23 +1199,23 @@ PS_PostAlpha PS_PostAlpha Pixel - 4.0 + 4.0_level_9_1 Pixel - 4.0 + 4.0_level_9_1 Pixel - 4.0 + 4.0_level_9_1 PS_PostAlpha Pixel - 4.0 + 4.0_level_9_1 PS_PostAlpha Pixel - 4.0 + 4.0_level_9_1 PS_PostAlpha Pixel - 4.0 + 4.0_level_9_1 PS_PostAlpha Pixel - 4.0 + 4.0_level_9_1 PS_PostAlpha ../Shaders/PixelShaderAlpha.h @@ -1230,17 +1236,17 @@ PS_PostMask Pixel - 4.0 + 4.0_level_9_1 PS_PostMask ../Shaders/PixelShaderMask.h Pixel - 4.0 + 4.0_level_9_1 Pixel - 4.0 + 4.0_level_9_1 Pixel - 4.0 + 4.0_level_9_1 PS_PostMask ../Shaders/PixelShaderMask.h @@ -1274,31 +1280,31 @@ PS_PostMask PS_PostMask Pixel - 4.0 + 4.0_level_9_1 PS_PostMask Pixel - 4.0 + 4.0_level_9_1 PS_PostMask Pixel - 4.0 + 4.0_level_9_1 PS_PostMask Pixel - 4.0 + 4.0_level_9_1 Pixel PS_PostPlain - 4.0 + 4.0_level_9_1 PS_PostPlain ../Shaders/PixelShaderPlain.h Pixel - 4.0 + 4.0_level_9_1 Pixel - 4.0 + 4.0_level_9_1 Pixel - 4.0 + 4.0_level_9_1 PS_PostPlain ../Shaders/PixelShaderPlain.h @@ -1316,16 +1322,16 @@ PS_PostPlain PS_PostPlain Pixel - 4.0 + 4.0_level_9_1 PS_PostPlain Pixel - 4.0 + 4.0_level_9_1 PS_PostPlain Pixel - 4.0 + 4.0_level_9_1 PS_PostPlain Pixel - 4.0 + 4.0_level_9_1 PS_PostPlain ../Shaders/PixelShaderPlain.h @@ -1348,15 +1354,15 @@ TextureVertexShader VertexShader ../Shaders/VertexShader.h - 4.0 + 4.0_level_9_1 Vertex - 4.0 + 4.0_level_9_1 Vertex - 4.0 + 4.0_level_9_1 Vertex - 4.0 + 4.0_level_9_1 VertexShader ../Shaders/VertexShader.h @@ -1390,16 +1396,16 @@ TextureVertexShader TextureVertexShader Vertex - 4.0 + 4.0_level_9_1 TextureVertexShader Vertex - 4.0 + 4.0_level_9_1 TextureVertexShader Vertex - 4.0 + 4.0_level_9_1 TextureVertexShader Vertex - 4.0 + 4.0_level_9_1 diff --git a/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters b/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters index 944a9aba..46102e88 100644 --- a/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters +++ b/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters @@ -71,6 +71,9 @@ {34d75786-02bd-43a5-b45d-934eef34e96e} + + {aacd260d-3fd9-43a0-9cac-463ddd009704} + @@ -862,6 +865,24 @@ win32 + + win32\FX11 + + + win32\FX11 + + + win32\FX11 + + + win32\FX11 + + + win32\FX11 + + + win32\FX11 + diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 25280c0b..d2e14720 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -4,6 +4,22 @@ JIT Direct current rules are less complex now. It automatically switches off onl - RTG VRAM is outside of reserved natmem space. Workaround: Move RTG in earlier position using Hardware info GUI panel. Note that in 64-bit version RTG VRAM must be inside of reserved natmem space. (Outside = error message and return back to GUI) +- Memory cycle exact CPU speed slider scale fixed. (0 is max) +- D3D11: monitor bezel overlays supported. +- D3D11: RGB mask wrong colors fixed. (RGB<>BGR) +- D3D11: fall back to D3D9 if 16-bit mode is selected but it is not supported. 16-bit is not required format in D3D11. +- D3D11: minimum supported hardware level is now 9.1 (was 10.0). +- Added Evesham Micros Reference SCSI controller emulation. +- Kupke Golem HD3000 autoboot disabled option did nothing. +- It was not possible to override Z2 RAM board autoconfig data if board had built-in manufacturer/product ID defaults (for example any Z2 HD controller with Z2 RAM) + +Evesham Micros Reference: +- Basic 5380 based PIO controller. +- Fake DMA, byte wide data port. +- Driver has filesystem relocator but it seems to be broken, for example PFS3 crashes because all relocations point to invalid addresses. +- "Evesham.device (Kemputa1/Evesham drive 13Mar93)", "(c)1993 Kemputa Systems,Pen-y-Gwaith,Ysbyty Ystwyth,Ystrad Meurig,Dyfed. UK" +- It has strange fast RAM configuration, RAM can be disabled with a jumper but it only clears autoconfig "add to free list" bit. If you want to replicate this (board's custom memory test utility only runs in this mode), tick RAM panel edit autoconfig data and clear bit 5 of first byte (for example E4 -> C4) + Beta 12: - Direct3D11 fullscreen + DXGI 1.5 works again (b11)