]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3410b3
authorToni Wilen <twilen@winuae.net>
Mon, 13 Mar 2017 17:49:53 +0000 (19:49 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 13 Mar 2017 17:49:53 +0000 (19:49 +0200)
gencpu.cpp
od-win32/debug_win32.cpp
od-win32/mman.cpp
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/win32.h
od-win32/win32_uaenet.cpp
od-win32/win32gui.cpp
od-win32/winuae_msvc15/winuae_msvc.vcxproj
od-win32/winuae_msvc15/winuae_msvc.vcxproj.filters
od-win32/winuaechangelog.txt

index faf7b5049eb5fa193efbb74a13d742ece4a8d015..1c0bbf171a096a06534b6a9a054738b7cf3afc18 100644 (file)
@@ -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;
        }
 }
 
index 8410e3ae2485466e1f92c3e7394b29d93c5ffd41..fa62332ebd6fdacf30bc4afc3a96d3d7709106bd 100644 (file)
@@ -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(&regs.fp[i], 0));
                UpdateListboxString(hwnd, i, out, TRUE);
        }
 
index c15ff786e3178ea8ac029ec86d73fa36f2c9642a..a53481899780640769a8fd677160bc7f8dc286d9 100644 (file)
@@ -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) {
index 3eb50800218a4e7629b17b6fa697d5f07b8dbdf4..caafa550173431d873c4b4accfc9c0234f31feea 100644 (file)
 #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
index dc018559a822f09bb533dfc73a77d80c3e22b973..cd5e3e038d12bbec55bb24ec6324d9131139e6f0 100644 (file)
@@ -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
index 4bc413811fbd5a109d3f6f017436b36852773e73..fb2c467c35f85e63d2a7a0a07bd70562712d2069 100644 (file)
 #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*);
index 7d83b62ed45d6c3f7de76e395c87e141919e383d..e56d58b158951ab00ac79e2a4fb59cfbbdb20f16 100644 (file)
@@ -6,11 +6,12 @@
 * 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"
index e4b0e96a3ac7ca71fdf4dfb80318813d67d0ea44..df5f75603efd2de7da5a15a09e6d993b93939630 100644 (file)
@@ -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);
index 56b62ecc81a233fad7ba5987eef1307fcfe2aede..4bcd845a6aae6728b954f26df0e41594a1ff4b11 100644 (file)
       <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" />
index 7f7bcc186297dd566636a4a8965bf08f1d364776..1c38334a38d13ad264818d16805c2fec579dc1da 100644 (file)
     <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">
index dec88b51a3427f5663e2924452be627db56af71c..6405facd88cffff6241fa87cd742627708a7a0cf 100644 (file)
@@ -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)\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