device_func_reset();
#ifdef AUTOCONFIG
rtarea_reset();
+#endif
+#ifdef RETROPLATFORM
+ rp_reset();
#endif
uae_int_requested = 0;
}
#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 {
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;
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;
}
}
}
mousecapture = 0;
- device_add_vsync_pre(rp_vsync);
-
return hr;
}
set_config_changed ();
write_log(_T("rp_fixup_options end\n"));
+
}
static void rp_device_writeprotect (int dev, int num, bool writeprotected)
{
return initialized;
}
+
+void rp_reset(void)
+{
+ if (!initialized)
+ return;
+ device_add_vsync_pre(rp_vsync);
+}
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;
#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")