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;
}
}
#include "win32.h"
#include "registry.h"
#include "win32gui.h"
+#include "fpp.h"
#include "uae.h"
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);
}
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) {
#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
#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
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
#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")
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*);
* Copyright 2007 Toni Wilen
*/
-#include "sysconfig.h"
+#include <winsock2.h>
+#include <Ws2tcpip.h>
+#include <Iphlpapi.h>
-#ifdef WITH_SLIRP
-#include "../slirp/slirp.h"
-#endif
+#include "sysconfig.h"
+#include "sysdeps.h"
#include <stdio.h>
#define WPCAP
#include "pcap.h"
-#include <windows.h>
-
#include "packet32.h"
#include "ntddndis.h"
-#include "sysdeps.h"
#include "options.h"
#include "traps.h"
#include "sana2.h"
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));
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);
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)
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);
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);
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);
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
- <FloatingPointModel>Precise</FloatingPointModel>
+ <FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
<BufferSecurityCheck>true</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
- <FloatingPointModel>Precise</FloatingPointModel>
+ <FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
- <FloatingPointModel>Precise</FloatingPointModel>
+ <FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>false</FunctionLevelLinking>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
- <FloatingPointModel>Precise</FloatingPointModel>
+ <FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
- <FloatingPointModel>Precise</FloatingPointModel>
+ <FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
- <FloatingPointModel>Precise</FloatingPointModel>
+ <FloatingPointModel>Fast</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
<ClCompile Include="..\..\slirp_uae.cpp" />
<ClCompile Include="..\..\sndboard.cpp" />
<ClCompile Include="..\..\softfloat\softfloat.cpp" />
+ <ClCompile Include="..\..\softfloat\softfloat_decimal.cpp" />
<ClCompile Include="..\..\softfloat\softfloat_extension.cpp" />
<ClCompile Include="..\..\specialmonitors.cpp" />
<ClCompile Include="..\..\statusline.cpp" />
<ClCompile Include="..\..\ethernet.cpp">
<Filter>common</Filter>
</ClCompile>
- <ClCompile Include="..\..\slirp\bootp.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\cksum.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\if.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\ip_icmp.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\ip_input.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\ip_output.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\mbuf.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\misc.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\sbuf.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\slirp.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\slirpdebug.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\socket.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\tcp_input.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\tcp_output.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\tcp_subr.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\tcp_timer.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\tftp.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
- <ClCompile Include="..\..\slirp\udp.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
<ClCompile Include="..\..\qemuvga\cirrus_vga.cpp">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\fake86_cpu.cpp">
<Filter>x86</Filter>
</ClCompile>
- <ClCompile Include="..\..\slirp_uae.cpp">
- <Filter>slirp</Filter>
- </ClCompile>
<ClCompile Include="..\..\vm.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\softfloat\softfloat_extension.cpp">
<Filter>qemu</Filter>
</ClCompile>
+ <ClCompile Include="..\..\slirp_uae.cpp">
+ <Filter>common</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\udp.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\tftp.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\tcp_timer.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\tcp_subr.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\tcp_output.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\tcp_input.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\socket.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\slirpdebug.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\slirp.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\sbuf.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\misc.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\mbuf.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\ip_output.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\ip_input.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\ip_icmp.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\if.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\cksum.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\slirp\bootp.cpp">
+ <Filter>slirp</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\softfloat\softfloat_decimal.cpp">
+ <Filter>qemu</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\resources\35floppy.ico">
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 3:\r
+\r
+- M-Tec AT-500 Megabody v1.33 ROM added. Slightly different than M-Tec AT-500 v1.33w ROM.\r
+- Debugger now shows softfloat mode FPU register contents correctly, also both internal binary format and decimal value is shown.\r
+- More FPU updates and fixes. Arithmetic/unimplemented instruction/datatype exceptions should be mostly complete now. (AG)\r
+- FPU packed decimal format conversions are now accurately emulated (AG)\r
+- JIT FPU works properly again.\r
+- Bitplane overrun emulation was wrong if line didn't have any custom register changes.\r
+- Tablet/touch screen lightpen emulation. (Game Ports panel -> Insert Touchscreen light pen -virtual device in either port)\r
+ Only listed if Windows touch API or wintab compatible tablet or touch screen is detected.\r
+- Added lightpen_crosshair config entry, set it to false (true is default) to disable yellow lightpen targeting cursor.\r
+- Multiple gfxboards didn't work (b2).\r
+- Fastest possible mode was very slow in some situations (b2)\r
+- Final MSVC 2017 compiled.\r
+\r
+M-Tec AT-500 v1.33 vs M-TEC AT-500 v1.33w:\r
+- v1.33w is from external M-Tec AT-500, v1.33 from Megabody.\r
+- w = word? v1.33w uses MOVE.W, v1.33 uses MOVE.L in unrolled transfer loop code.\r
+- ROM has 2 16k banks, one for autoboot off mode, other for autoboot on mode.\r
+- Oddly enough v1.33 and v1.33w have same autoboot off 16k bank. Unused driver code and version strings are\r
+ 100% identical ("v1.33w").\r
+\r
+Beta 2:\r
+\r
- FM801 16-bit audio corruption fixed.\r
- Some 68020 CE mode cycle-counting is back.\r
- Clear button state mask when mouse capture state changes. If mouse or joystick button was kept pressed when mouse was\r