]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
4300b2
authorToni Wilen <twilen@winuae.net>
Sun, 27 Oct 2019 16:08:49 +0000 (18:08 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 27 Oct 2019 16:08:49 +0000 (18:08 +0200)
devices.cpp
newcpu.cpp
newcpu_common.cpp
od-win32/rp.cpp
od-win32/rp.h
od-win32/win32.h

index 5dc04dbdaa00ad83e9de192d8aae04e0535b3bfd..a9e3a87c1af0204c216e8565107284064fb68a7b 100644 (file)
@@ -217,6 +217,9 @@ void devices_reset(int hardreset)
        device_func_reset();
 #ifdef AUTOCONFIG
        rtarea_reset();
+#endif
+#ifdef RETROPLATFORM
+       rp_reset();
 #endif
        uae_int_requested = 0;
 }
index 13afd9342adb5622485ec5bd425efa6ff3496a0b..9da12a180d2e7b59393e75ca4741b9622175d71d 100644 (file)
@@ -3390,7 +3390,7 @@ uae_u32 REGPARAM2 op_illg (uae_u32 opcode)
 #endif
 
        if ((opcode & 0xF000) == 0xF000) {
-               // 68020 MMU or 020/030 FPU cpSAVE/cpRESTORE privilege check
+               // Missing MMU or FPU cpSAVE/cpRESTORE privilege check
                if (privileged_copro_instruction(opcode)) {
                        Exception(8);
                } else {
index ad1d1f0ca49ebcba1eae5aa9ec7160a39682b418..74499e3d8897e557dda06fc6582340fb2235bfab 100644 (file)
@@ -1618,9 +1618,10 @@ void ccr_68000_word_move_ae_normal(uae_s16 src)
        SET_NFLG(src < 0);
 }
 
+// Change F-line to privilege violation if missing co-pro
 bool privileged_copro_instruction(uae_u16 opcode)
 {
-       if ((currprefs.cpu_model == 68020 || currprefs.cpu_model == 68030) && !regs.s) {
+       if (currprefs.cpu_model >= 68020 && !regs.s) {
                int reg = opcode & 7;
                int mode = (opcode >> 3) & 7;
                int id = (opcode >> 9) & 7;
@@ -1628,13 +1629,13 @@ bool privileged_copro_instruction(uae_u16 opcode)
                if ((opcode & 0xf1c0) == 0xf100) {
                        // cpSAVE
                        if (mode == 2 || (mode >= 4 && mode <= 6) || (mode == 7 && (reg == 0 || reg == 1))) {
-                               if (currprefs.cpu_model == 68020 || (currprefs.cpu_model == 68030 && id >= 2))
+                               if ((currprefs.cpu_model >= 68040 && id > 0) || currprefs.cpu_model < 68040)
                                        return true;
                        }
                } else if ((opcode & 0xf1c0) == 0xf140) {
                        // cpRESTORE
                        if (mode == 2 || mode == 3 || (mode >= 5 && mode <= 6) || (mode == 7 && reg <= 3)) {
-                               if (currprefs.cpu_model == 68020 || (currprefs.cpu_model == 68030 && id >= 2))
+                               if ((currprefs.cpu_model >= 68040 && id > 0) || currprefs.cpu_model < 68040)
                                        return true;
                        }
                }
index ffd1118d8edaa6d27d24798e9ce5b2dfecb1cc12..82ea6331a762e36cb7bbd580fa7bc93ba8ecda33 100644 (file)
@@ -1545,8 +1545,6 @@ HRESULT rp_init (void)
        }
        mousecapture = 0;
 
-       device_add_vsync_pre(rp_vsync);
-
        return hr;
 }
 
@@ -1789,6 +1787,7 @@ void rp_fixup_options (struct uae_prefs *p)
        set_config_changed ();
 
        write_log(_T("rp_fixup_options end\n"));
+
 }
 
 static void rp_device_writeprotect (int dev, int num, bool writeprotected)
@@ -2326,3 +2325,10 @@ int rp_isactive (void)
 {
        return initialized;
 }
+
+void rp_reset(void)
+{
+       if (!initialized)
+               return;
+       device_add_vsync_pre(rp_vsync);
+}
index 987976a9f5d51421596fdd4c6dfc53910cc21fd0..45f2c6ed77d2faa18cef7bfd027635a86e1ba12f 100644 (file)
@@ -22,6 +22,7 @@ extern void rp_keymap(TrapContext*, uaecptr, uae_u32);
 extern USHORT rp_rawbuttons(LPARAM lParam, USHORT usButtonFlags);
 extern bool rp_mouseevent(int x, int y, int buttons, int buttonmask);
 extern bool rp_ismouseevent(void);
+extern void rp_reset(void);
 
 extern TCHAR *rp_param;
 extern int rp_rpescapekey;
index 9e7f815fc122ff6ff73ede16218db9f8ec221c8e..7e3b5edf69b2f71862c0f36f6669f9d7898ba6aa 100644 (file)
 
 #define WINUAEPUBLICBETA 1
 #define LANG_DLL 1
-#define LANG_DLL_FULL_VERSION_MATCH 0
+#define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("1")
+#define WINUAEBETA _T("2")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2019, 10, 19)
+#define WINUAEDATE MAKEBD(2019, 10, 27)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")