]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
4000b8
authorToni Wilen <twilen@winuae.net>
Sat, 5 May 2018 15:58:36 +0000 (18:58 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 5 May 2018 15:58:36 +0000 (18:58 +0300)
include/xwin.h
jit/compemu_raw_x86.cpp
main.cpp
od-win32/fpux64_80.asm
od-win32/win32.cpp
od-win32/win32.h
od-win32/winuaechangelog.txt

index 02e73d1c88a2f100f7a41bc45a64fe386244043f..b03f07676aeb5f94cba1d643d7335703daa45829 100644 (file)
@@ -174,6 +174,7 @@ struct amigadisplay
        int framecnt;
        bool specialmonitoron;
        int inhibit_frame;
+       bool pending_render;
 
        struct vidbuf_description gfxvidinfo;
 };
index 9d44571bb62d2a76e2f2a927980bd2d6159f7e21..8f918c8a3686ece7a1c500a6ca65811643c7e09b 100644 (file)
@@ -2978,7 +2978,7 @@ LENDFUNC(NONE,NONE,2,raw_fatan_rr,(FW d, FR s))
        emit_byte(0xde);
        emit_byte(0xf9);    /* fdivp (1+x)/(1-x) */
        emit_byte(0xd9);
-       emit_byte(0xed);    /* fldl2e logN(2) */
+       emit_byte(0xed);    /* fldln2 logN(2) */
        emit_byte(0xd9);
        emit_byte(0xc9);    /* fxch swap logN(2) with (1+x)/(1-x) */
        emit_byte(0xd9);
index 67cbfb9aa34695f70c54d450fbf31635e4787610..f8224b0af3dd0fe8b9076529442d37eb19dfd828 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -175,12 +175,7 @@ void fixup_prefs_dimensions (struct uae_prefs *prefs)
                struct apmode *ap = &prefs->gfx_apmode[i];
                ap->gfx_vflip = 0;
                ap->gfx_strobo = false;
-               if (ap->gfx_vsync < 0) {
-                       // adaptive sync
-                       ap->gfx_vsyncmode = 0;
-                       ap->gfx_vflip = 1;
-                       ap->gfx_strobo = prefs->lightboost_strobo;
-               } else if (ap->gfx_vsync > 0) {
+               if (ap->gfx_vsync) {
                        if (ap->gfx_vsyncmode) {
                                ap->gfx_backbuffers = 1;
                                ap->gfx_strobo = false;
index f2209341fe81ec468fee922f6c49c042db27b0ee..254b0d1f8d64061d0498e70f7246e3b54d576b4f 100644 (file)
@@ -346,7 +346,7 @@ xfp_lognp1:
        ret
 
 
-_xfp_asin:
+xfp_asin:
        loadfp1
        fmul st0,st0
        fld1
@@ -358,7 +358,7 @@ _xfp_asin:
        storefp
        ret
 
-_xfp_acos:
+xfp_acos:
        loadfp1
        fmul st0,st0
        fld1
@@ -372,7 +372,7 @@ _xfp_acos:
        storefp
        ret
 
-_xfp_atanh:
+xfp_atanh:
        loadfp1
        fld1
        fadd st1,st0
@@ -389,7 +389,7 @@ _xfp_atanh:
        storefp
        ret
 
-_xfp_sinh:
+xfp_sinh:
        loadfp1
        fldl2e
        fmul st0,st1
@@ -420,7 +420,7 @@ _xfp_sinh:
        storefp
        ret
 
-_xfp_cosh:
+xfp_cosh:
        loadfp1
        fldl2e
        fmul st0,st1
@@ -451,7 +451,7 @@ _xfp_cosh:
        storefp
        ret
 
-_xfp_tanh:
+xfp_tanh:
        loadfp1
        fldl2e
        fmul st0,st1
index 753b9d3fd9a9f959b38eb26fd6711563679e57fc..ce28632c9004c38a96706ddd6c84a7d308560026 100644 (file)
@@ -126,6 +126,7 @@ int pissoff_value = 15000 * CYCLE_UNIT;
 unsigned int fpucontrol;
 int extraframewait, extraframewait2;
 int busywait;
+static int noNtDelayExecution;
 
 extern FILE *debugfile;
 extern int console_logging;
@@ -235,7 +236,7 @@ static ULONG ActualTimerResolution;
 int target_sleep_nanos(int nanos)
 {
        static bool init;
-       if (!init) {
+       if (!init && !noNtDelayExecution) {
                pNtDelayExecution = (NTDELAYEXECUTION)GetProcAddress(GetModuleHandle(_T("ntdll.dll")), "NtDelayExecution");
                pZwSetTimerResolution = (ZWSETTIMERRESOLUTION)GetProcAddress(GetModuleHandle(_T("ntdll.dll")), "ZwSetTimerResolution");
                if (pZwSetTimerResolution) {
@@ -6294,7 +6295,10 @@ static int parseargs(const TCHAR *argx, const TCHAR *np, const TCHAR *np2)
                busywait = 1;
                return 1;
        }
-
+       if (!_tcscmp(arg, _T("nontdelayexecution"))) {
+               noNtDelayExecution = 1;
+               return 1;
+       }
        if (!np)
                return 0;
 
index 8dafd1ec67d5cfd26e9b9827056b9ef37a625c08..14fe9b690eb97cff92ca309bfa48e82838a12ef1 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("7")
+#define WINUAEBETA _T("8")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2018, 5, 1)
+#define WINUAEDATE MAKEBD(2018, 5, 5)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index a4533845c19a60b1907ac1eac6a7318584e1cc65..9ad1a7493bfb6d27ed2c0a8337d0e05530a963cc 100644 (file)
@@ -1,4 +1,33 @@
 \r
+\r
+Beta 8:\r
+\r
+- CL horizontal doubling used wrong width size, fixed buffer overflow (b7).\r
+- CL horizontal doubling multiplier changed to 9/10. Old value missed 320*200 resolution.\r
+- 64-bit host FPU FMOVECR constants that didn't fit in double were clamped to max when they should have been set to infinity.\r
+- All logarithmic and trigonometric functions now use assembly code from existing JIT functions in new 80-bit host FPU mode. This should be feature complete now.\r
+- Multithreaded RTG now only does color conversion/copy in separate thread, present() is done in main thread because of possible thread safety problems.\r
+- Added quite pointless power led switches off/dims misc panel option. Affects OSD power led and D3D led overlay power led brightness.\r
+\r
+Beta 7:\r
+\r
+- Added debugger 'ex' command: 'e' command with extended data: last value written and PC of CPU or Copper when value was written.\r
+- UAEGFX RTG 15/16/24-bit graphics corruption fixed (b1).\r
+- If multimonitor mode and aviout/screenshot: capture/record from window that has focus.\r
+- Added horizontal doubling to Cirrus Logic emulation, enabled if screen height * 0.75 >= width. Keeps aspect ratio if CGX doublescan graphics mode is configured.\r
+- Native screen OSD was drawn twice in some multimonitor configurations, also could have caused crashes or some other weird behavior.\r
+\r
+Extended precision host FPU mode updates:\r
+\r
+- Some FPU instructions used wrong precision.\r
+- Supports divbyzero, underflow, overflow and inexact2 status bits and exceptions. Only in non-JIT FPU mode. (and no software really cares)\r
+- FCMP uses softfloat comparison code if more compatible is enabled (FCMP can't be directly mapped to host FPU), if not, it uses simple and quick test. (Difference: infinities, nans etc.. special cases only work in more compatible mode. No normal programs care, as usual)\r
+- Uses softfloat routines for rarely used functions (most trigometric, fexpman, fscale etc). Previously: extended to double conversion -> c-library math function ->  double to extended conversion. Which probably wasn't noticeably faster.\r
+\r
+I think this is good compromise between speed and accuracy, commonly used operations use native code (that native FPU supports directly, x86 FPU does not directly support all operations that 6888x supports), complex and rarely used operations use softfloat code.\r
+\r
+NOTE: Host FPU extended precision FPU emulation is now enabled by default and always overrides config file saved 64-bit mode. If something works strangely, load your config, change FPU mode to 64-bit/softfloat and try again: if it fixes the problem -> report the problem immediately.\r
+\r
 Beta 6:\r
 \r
 - Added DCE Typhoon MK2 (A1200 accelerator). ROM is almost identical to E-Matrix 530/1230. Identical SCSI driver, slightly modified RAM detection code.\r