From: Toni Wilen Date: Tue, 12 Jun 2018 17:53:31 +0000 (+0300) Subject: 4000b13 X-Git-Tag: 4000~17 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=f83a3cc9aad8b9d1edc57d2a2871e7e8552a9720;p=francis%2Fwinuae.git 4000b13 --- diff --git a/cfgfile.cpp b/cfgfile.cpp index 8c52f514..be04536d 100644 --- a/cfgfile.cpp +++ b/cfgfile.cpp @@ -4323,6 +4323,12 @@ static bool parse_geo (const TCHAR *tname, struct uaedev_config_info *uci, struc } else { v = _tstol (val); } + if (!_tcsicmp (key, _T("psurfaces"))) + uci->pheads = v; + if (!_tcsicmp (key, _T("psectorspertrack")) || !_tcsicmp (key, _T("pblockspertrack"))) + uci->psecs = v; + if (!_tcsicmp (key, _T("pcyls"))) + uci->pcyls = v; if (!_tcsicmp (key, _T("surfaces"))) uci->surfaces = v; if (!_tcsicmp (key, _T("sectorspertrack")) || !_tcsicmp (key, _T("blockspertrack"))) @@ -4333,7 +4339,7 @@ static bool parse_geo (const TCHAR *tname, struct uaedev_config_info *uci, struc uci->reserved = v; if (!_tcsicmp (key, _T("lowcyl"))) uci->lowcyl = v; - if (!_tcsicmp (key, _T("highcyl")) || !_tcsicmp (key, _T("cyl"))) + if (!_tcsicmp (key, _T("highcyl")) || !_tcsicmp (key, _T("cyl")) || !_tcsicmp (key, _T("cyls"))) uci->highcyl = v; if (!_tcsicmp (key, _T("blocksize")) || !_tcsicmp (key, _T("sectorsize"))) uci->blocksize = v; diff --git a/od-win32/direct3d11.cpp b/od-win32/direct3d11.cpp index 44faa861..7d8ef95c 100644 --- a/od-win32/direct3d11.cpp +++ b/od-win32/direct3d11.cpp @@ -246,6 +246,7 @@ struct d3d11struct DXGI_FORMAT texformat; DXGI_FORMAT intformat; bool m_tearingSupport; + int texdepth; int dmult, dmultx; int xoffset, yoffset; float xmult, ymult; @@ -1856,6 +1857,21 @@ err: return false; } +#if 0 +static void erasetexture(struct d3d11struct *d3d) +{ + int pitch; + uae_u8 *p = D3D_locktexture(d3d - &d3d11data[0], &pitch, NULL, true); + if (p) { + for (int i = 0; i < d3d->m_bitmapHeight; i++) { + memset(p, 255, d3d->m_bitmapWidth * d3d->texdepth / 8); + p += pitch; + } + D3D_unlocktexture(d3d - &d3d11data[0], -1, -1); + } +} +#endif + static bool CreateTexture(struct d3d11struct *d3d) { D3D11_TEXTURE2D_DESC desc; @@ -3246,6 +3262,7 @@ static int xxD3D11_init2(HWND ahwnd, int monid, int w_w, int w_h, int t_w, int t d3d->texformat = depth == 32 ? DXGI_FORMAT_B8G8R8A8_UNORM : DXGI_FORMAT_B5G6R5_UNORM; d3d->intformat = DXGI_FORMAT_B8G8R8A8_UNORM; // _SRGB; d3d->scrformat = DXGI_FORMAT_B8G8R8A8_UNORM; + d3d->texdepth = depth; d3d->dmultx = mmult; struct MultiDisplay *md = getdisplay(&currprefs, monid); diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index efb78070..69d8e110 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -203,7 +203,7 @@ BEGIN CONTROL "Double, frames",IDC_LM_IDOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,251,90,10 CONTROL "Double, fields",IDC_LM_IDOUBLED2,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,264,90,10 CONTROL "Double, fields+",IDC_LM_IDOUBLED3,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,277,90,10 - CONTROL "VRR monitor. Do not tick!",IDC_DISPLAY_VARSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,58,67,112,10 + CONTROL "VRR monitor. Do not tick!",IDC_DISPLAY_VARSYNC,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,58,67,112,10 COMBOBOX IDC_SCREENMODE_NATIVE3,246,98,31,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP CONTROL "Window resize",IDC_DISPLAY_RESIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,51,92,10 END diff --git a/od-win32/sounddep/sound.cpp b/od-win32/sounddep/sound.cpp index 0141320b..166fc9dd 100644 --- a/od-win32/sounddep/sound.cpp +++ b/od-win32/sounddep/sound.cpp @@ -1097,6 +1097,10 @@ public: return S_OK; if (flow != eConsole && flow != eMultimedia) return S_OK; + if (s->devicetype == SOUND_DEVICE_WASAPI_EXCLUSIVE) { + write_log(_T("WASAPI EX OnDefaultDeviceChanged '%s'\n"), pwstrDeviceId); + return S_OK; + } if (s->devicetype != SOUND_DEVICE_WASAPI) return S_OK; if (s->index < 0) @@ -1107,7 +1111,7 @@ public: if (!_tcscmp(current, pwstrDeviceId)) return S_OK; _tcscpy(current, pwstrDeviceId); - write_log(_T("OnDefaultDeviceChanged '%s'\n"), current); + write_log(_T("WASAPI OnDefaultDeviceChanged '%s'\n"), current); s->reset = true; return S_OK; } @@ -1121,10 +1125,16 @@ public: } HRESULT STDMETHODCALLTYPE OnDeviceStateChanged(LPCWSTR pwstrDeviceId, DWORD dwNewState) { + if (s->devicetype == SOUND_DEVICE_WASAPI_EXCLUSIVE || s->devicetype == SOUND_DEVICE_WASAPI) { + ;// write_log(_T("WASAPI OnDeviceStateChanged '%s' %08x\n"), pwstrDeviceId, dwNewState); + } return S_OK; } HRESULT STDMETHODCALLTYPE OnPropertyValueChanged(LPCWSTR pwstrDeviceId, const PROPERTYKEY key) { + if (s->devicetype == SOUND_DEVICE_WASAPI_EXCLUSIVE || s->devicetype == SOUND_DEVICE_WASAPI) { + ;// write_log(_T("WASAPI OnPropertyValueChanged '%s'\n"), pwstrDeviceId); + } return S_OK; } }; diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index 339ea055..c1097e06 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -1011,6 +1011,8 @@ static void setmouseactive2(struct AmigaMonitor *mon, int active, bool allowpaus if (mouseactive > 0) focus = mon->monitor_id + 1; + //write_log(_T("setcapture %d %d %d\n"), mouseactive, focus, showcursor); + if (mouseactive) { if (focus) { if (!showcursor) { diff --git a/od-win32/win32.h b/od-win32/win32.h index e1bd7eee..8b9d7fbe 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(2018, 6, 3) +#define WINUAEDATE MAKEBD(2018, 6, 12) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index d3a31c44..1fd91f36 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,15 @@ +Beta 13: + +- Toccata sound was not fully closed when reset/reset and caused crash if new config was loaded and started. +- Returning back to D3D11 fullscreen from GUI didn't automatically recapture mouse. (b12) +- Debugger f was broken. +- Corrupted OSD graphics (if OSD was enabled) and extra dark/bright line was drawn at the bottom of display in lagless D3D11 fullscreen mode after exiting GUI. +- Second to last line was not drawn in lagless mode. Very last line is invisible by design. +- FMOVE and FMOVEM to memory didn't check if destination addressing mode was invalid (PC relative) and didn't generate F-line. +- FMOVE to control register didn't check if more than 1 control register bit was set which is also invalid and should generate F-line. +- FMOVEM to (An)+ and from -(An) are invalid. +- Softfloat FABS and FNEG didn't handle infinity correctly. Beta 12: