From 5e1fba26493ca57dffd9541e8001ef012ceac7f7 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 13 Mar 2017 19:49:53 +0200 Subject: [PATCH] 3410b3 --- gencpu.cpp | 5 +- od-win32/debug_win32.cpp | 3 +- od-win32/mman.cpp | 2 +- od-win32/resources/resource.h | 2 +- od-win32/resources/winuae.rc | 8 +- od-win32/win32.h | 7 +- od-win32/win32_uaenet.cpp | 12 +- od-win32/win32gui.cpp | 26 ++-- od-win32/winuae_msvc15/winuae_msvc.vcxproj | 13 +- .../winuae_msvc15/winuae_msvc.vcxproj.filters | 117 +++++++++--------- od-win32/winuaechangelog.txt | 24 ++++ 11 files changed, 131 insertions(+), 88 deletions(-) diff --git a/gencpu.cpp b/gencpu.cpp index faf7b504..1c0bbf17 100644 --- a/gencpu.cpp +++ b/gencpu.cpp @@ -5458,7 +5458,10 @@ end: did_prefetch = 0; ipl_fetched = 0; if (cpu_level >= 2 && !using_ce && !using_ce020) { - count_cycles = insn_n_cycles = curi->clocks; + int v = curi->clocks; + if (v < 4) + v = 4; + count_cycles = insn_n_cycles = v; } } diff --git a/od-win32/debug_win32.cpp b/od-win32/debug_win32.cpp index 8410e3ae..fa62332e 100644 --- a/od-win32/debug_win32.cpp +++ b/od-win32/debug_win32.cpp @@ -30,6 +30,7 @@ #include "win32.h" #include "registry.h" #include "win32gui.h" +#include "fpp.h" #include "uae.h" @@ -2182,7 +2183,7 @@ void update_debug_info(void) hwnd = GetDlgItem(hDbgWnd, IDC_DBG_FPREG); for (i = 0; i < 8; i++) { - _stprintf(out, _T("FP%d: %g"), i, regs.fp[i]); + _stprintf(out, _T("FP%d: %s"), i, fpp_print(®s.fp[i], 0)); UpdateListboxString(hwnd, i, out, TRUE); } diff --git a/od-win32/mman.cpp b/od-win32/mman.cpp index c15ff786..a5348189 100644 --- a/od-win32/mman.cpp +++ b/od-win32/mman.cpp @@ -204,7 +204,7 @@ bool preinit_shm (void) natmem_size = 17 * 1024 * 1024; #if WIN32_NATMEM_TEST - natmem_size = 336 * 1024 * 1024; + natmem_size = WIN32_NATMEM_TEST * 1024 * 1024; #endif if (natmem_size > 0x80000000) { diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 3eb50800..caafa550 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -452,6 +452,7 @@ #define IDC_PORT0_AF 1033 #define IDC_PORT1_AF 1034 #define IDC_MOUSE_UNTRAPMODE 1035 +#define IDC_PORT_TABLET_MODE 1036 #define IDC_FOCUSMINIMIZE 1041 #define IDC_FASTTEXT 1043 #define IDC_FASTRAM 1044 @@ -1165,7 +1166,6 @@ #define IDC_PATHS_RELATIVE 1789 #define IDC_RTG_32BIT 1790 #define IDC_ASSOCIATE_OFF 1790 -#define IDC_PORT_TABLET_FULL 1790 #define IDC_CPU_MULTIPLIER 1790 #define IDC_CPU_FREQUENCY2 1790 #define IDC_LOGENABLE 1790 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index dc018559..cd5e3e03 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -538,15 +538,15 @@ BEGIN GROUPBOX "Mouse extra settings",IDC_STATIC,1,219,393,68 RTEXT "Mouse speed:",IDC_STATIC,13,237,70,10,SS_CENTERIMAGE EDITTEXT IDC_INPUTSPEEDM,97,237,25,13,ES_NUMBER - CONTROL "Install virtual mouse driver",IDC_PORT_TABLET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,270,116,11 + CONTROL "Install virtual mouse driver",IDC_PORT_TABLET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,255,116,11 RTEXT "Mouse untrap mode:",IDC_STATIC,143,237,110,10,SS_CENTERIMAGE COMBOBOX IDC_MOUSE_UNTRAPMODE,268,234,119,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "Magic Mouse cursor mode:",IDC_STATIC,143,253,110,10,SS_CENTERIMAGE COMBOBOX IDC_PORT_TABLET_CURSOR,268,251,119,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Full tablet input emulation",IDC_PORT_TABLET_FULL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,270,106,11 CONTROL "Tablet.library emulation",IDC_PORT_TABLET_LIBRARY, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,271,117,11 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,271,117,11 + RTEXT "Tablet mode:",IDC_STATIC,184,271,70,10,SS_CENTERIMAGE + COMBOBOX IDC_PORT_TABLET_MODE,268,268,119,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END IDD_CONTRIBUTORS DIALOGEX 0, 0, 530, 345 diff --git a/od-win32/win32.h b/od-win32/win32.h index 4bc41381..fb2c467c 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("2") +#define WINUAEBETA _T("3") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2017, 2, 25) +#define WINUAEDATE MAKEBD(2017, 3, 13) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") @@ -133,8 +133,9 @@ extern void setpriority (struct threadpriorities *pri); extern int dinput_wmkey (uae_u32 key); extern int dinput_winmouse (void); +extern int dinput_lightpen (void); +extern int dinput_lightpen (void); extern int dinput_wheelbuttonstart (void); -extern int dinput_winmousemode (void); extern void dinput_window (void); extern void *open_tablet (HWND hwnd); extern int close_tablet (void*); diff --git a/od-win32/win32_uaenet.cpp b/od-win32/win32_uaenet.cpp index 7d83b62e..e56d58b1 100644 --- a/od-win32/win32_uaenet.cpp +++ b/od-win32/win32_uaenet.cpp @@ -6,11 +6,12 @@ * Copyright 2007 Toni Wilen */ -#include "sysconfig.h" +#include +#include +#include -#ifdef WITH_SLIRP -#include "../slirp/slirp.h" -#endif +#include "sysconfig.h" +#include "sysdeps.h" #include @@ -18,12 +19,9 @@ #define WPCAP #include "pcap.h" -#include - #include "packet32.h" #include "ntddndis.h" -#include "sysdeps.h" #include "options.h" #include "traps.h" #include "sana2.h" diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index e4b0e96a..df5f7560 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -5304,7 +5304,6 @@ static void loadsavecommands (HWND hDlg, WPARAM wParam, struct ConfigStruct **co break; case IDC_CONFIGLINK: if (HIWORD (wParam) == CBN_SELCHANGE || HIWORD (wParam) == CBN_KILLFOCUS) { - LRESULT val; TCHAR tmp[MAX_DPATH]; tmp[0] = 0; getcbn(hDlg, IDC_CONFIGLINK, tmp, sizeof(tmp) / sizeof (TCHAR)); @@ -11517,6 +11516,10 @@ static void values_from_cpudlg (HWND hDlg) workprefs.comptrustword = trust_prev; workprefs.comptrustlong = trust_prev; workprefs.comptrustnaddr = trust_prev; + if (workprefs.fpu_softfloat) { + workprefs.compfpu = false; + setchecked(hDlg, IDC_JITFPU, false); + } } if (!workprefs.cachesize) { setchecked (hDlg, IDC_JITENABLE, false); @@ -14908,10 +14911,10 @@ static BOOL bNoMidiIn = FALSE; static void enable_for_gameportsdlg (HWND hDlg) { int v = full_property_sheet; - ew (hDlg, IDC_PORT_TABLET_FULL, v && is_tablet () && workprefs.input_tablet > 0); - //ew (hDlg, IDC_PORT_TABLET_LIBRARY, v && is_tablet () && workprefs.input_tablet > 0); + ew (hDlg, IDC_PORT_TABLET, v && workprefs.input_tablet != TABLET_REAL); + ew (hDlg, IDC_PORT_TABLET_MODE, v && is_tablet()); + ew (hDlg, IDC_PORT_TABLET_LIBRARY, v && is_tablet()); ew (hDlg, IDC_PORT_TABLET_CURSOR, v && workprefs.input_tablet > 0); - ew (hDlg, IDC_PORT_TABLET, v); } static void enable_for_portsdlg (HWND hDlg) @@ -14971,7 +14974,7 @@ static void updatejoyport (HWND hDlg, int changedport) SetDlgItemInt (hDlg, IDC_INPUTSPEEDM, workprefs.input_mouse_speed, FALSE); SendDlgItemMessage (hDlg, IDC_PORT_TABLET_CURSOR, CB_SETCURSEL, workprefs.input_magic_mouse_cursor, 0); CheckDlgButton (hDlg, IDC_PORT_TABLET, workprefs.input_tablet > 0); - CheckDlgButton (hDlg, IDC_PORT_TABLET_FULL, workprefs.input_tablet == TABLET_REAL); + SendDlgItemMessage(hDlg, IDC_PORT_TABLET_MODE, CB_SETCURSEL, workprefs.input_tablet == TABLET_REAL ? 1 : 0, 0); CheckDlgButton (hDlg, IDC_PORT_TABLET_LIBRARY, workprefs.tablet_library); CheckDlgButton (hDlg, IDC_PORT_AUTOSWITCH, workprefs.input_autoswitch); @@ -15054,9 +15057,13 @@ static void values_from_gameportsdlg (HWND hDlg, int d, int changedport) workprefs.input_magic_mouse_cursor = SendDlgItemMessage (hDlg, IDC_PORT_TABLET_CURSOR, CB_GETCURSEL, 0, 0L); workprefs.input_autoswitch = ischecked (hDlg, IDC_PORT_AUTOSWITCH); workprefs.input_tablet = 0; - if (ischecked (hDlg, IDC_PORT_TABLET)) { + i = SendDlgItemMessage(hDlg, IDC_PORT_TABLET_MODE, CB_GETCURSEL, 0, 0L); + if (ischecked (hDlg, IDC_PORT_TABLET) || i == 1) { + if (!ischecked (hDlg, IDC_PORT_TABLET)) { + setchecked(hDlg, IDC_PORT_TABLET, TRUE); + } workprefs.input_tablet = TABLET_MOUSEHACK; - if (ischecked (hDlg, IDC_PORT_TABLET_FULL)) + if (i == 1) workprefs.input_tablet = TABLET_REAL; } workprefs.tablet_library = ischecked (hDlg, IDC_PORT_TABLET_LIBRARY); @@ -15524,6 +15531,11 @@ static INT_PTR CALLBACK GamePortsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP SendDlgItemMessage(hDlg, IDC_MOUSE_UNTRAPMODE, CB_ADDSTRING, 0, (LPARAM)_T("Both")); SendDlgItemMessage(hDlg, IDC_MOUSE_UNTRAPMODE, CB_SETCURSEL, workprefs.input_mouse_untrap, 0); + SendDlgItemMessage(hDlg, IDC_PORT_TABLET_MODE, CB_RESETCONTENT, 0, 0L); + SendDlgItemMessage(hDlg, IDC_PORT_TABLET_MODE, CB_ADDSTRING, 0, (LPARAM)_T("-")); + SendDlgItemMessage(hDlg, IDC_PORT_TABLET_MODE, CB_ADDSTRING, 0, (LPARAM)_T("Tablet emulation")); + SendDlgItemMessage(hDlg, IDC_PORT_TABLET_MODE, CB_SETCURSEL, workprefs.input_tablet == TABLET_REAL ? 1 : 0, 0); + for (i = 0; i < 2; i++) { int id = i == 0 ? IDC_PORT0_JOYSMODE : IDC_PORT1_JOYSMODE; SendDlgItemMessage (hDlg, id, CB_RESETCONTENT, 0, 0L); diff --git a/od-win32/winuae_msvc15/winuae_msvc.vcxproj b/od-win32/winuae_msvc15/winuae_msvc.vcxproj index 56b62ecc..4bcd845a 100644 --- a/od-win32/winuae_msvc15/winuae_msvc.vcxproj +++ b/od-win32/winuae_msvc15/winuae_msvc.vcxproj @@ -335,7 +335,7 @@ false true StreamingSIMDExtensions2 - Precise + Fast false false @@ -414,7 +414,7 @@ true true StreamingSIMDExtensions2 - Precise + Fast false false @@ -493,7 +493,7 @@ false true NotSet - Precise + Fast false false NotUsing @@ -567,7 +567,7 @@ false false NotSet - Precise + Fast false false NotUsing @@ -640,7 +640,7 @@ false true StreamingSIMDExtensions2 - Precise + Fast false false @@ -718,7 +718,7 @@ false true NotSet - Precise + Fast false false @@ -895,6 +895,7 @@ + diff --git a/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters b/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters index 7f7bcc18..1c38334a 100644 --- a/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters +++ b/od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters @@ -565,60 +565,6 @@ common - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - - - slirp - qemu @@ -808,9 +754,6 @@ x86 - - slirp - common @@ -838,6 +781,66 @@ qemu + + common + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + slirp + + + qemu + diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index dec88b51..6405facd 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -5,6 +5,30 @@ 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) +Beta 3: + +- M-Tec AT-500 Megabody v1.33 ROM added. Slightly different than M-Tec AT-500 v1.33w ROM. +- Debugger now shows softfloat mode FPU register contents correctly, also both internal binary format and decimal value is shown. +- More FPU updates and fixes. Arithmetic/unimplemented instruction/datatype exceptions should be mostly complete now. (AG) +- FPU packed decimal format conversions are now accurately emulated (AG) +- JIT FPU works properly again. +- Bitplane overrun emulation was wrong if line didn't have any custom register changes. +- Tablet/touch screen lightpen emulation. (Game Ports panel -> Insert Touchscreen light pen -virtual device in either port) + Only listed if Windows touch API or wintab compatible tablet or touch screen is detected. +- Added lightpen_crosshair config entry, set it to false (true is default) to disable yellow lightpen targeting cursor. +- Multiple gfxboards didn't work (b2). +- Fastest possible mode was very slow in some situations (b2) +- Final MSVC 2017 compiled. + +M-Tec AT-500 v1.33 vs M-TEC AT-500 v1.33w: +- v1.33w is from external M-Tec AT-500, v1.33 from Megabody. +- w = word? v1.33w uses MOVE.W, v1.33 uses MOVE.L in unrolled transfer loop code. +- ROM has 2 16k banks, one for autoboot off mode, other for autoboot on mode. +- Oddly enough v1.33 and v1.33w have same autoboot off 16k bank. Unused driver code and version strings are + 100% identical ("v1.33w"). + +Beta 2: + - FM801 16-bit audio corruption fixed. - Some 68020 CE mode cycle-counting is back. - Clear button state mask when mouse capture state changes. If mouse or joystick button was kept pressed when mouse was -- 2.47.3