p2++;
}
if (_tcslen (p2) >= _tcslen (tmp) && !_tcsncmp (p2, tmp, _tcslen (tmp))) {
+ write_log(_T("[%04X/%04X] '%s' (%s) -> '%s'\n"), did->vid, did->pid, did->configname, did->name, friendlyname);
xfree (did->name);
// if (did->vid > 0 && did->pid > 0)
// _stprintf (tmp, _T("%s [%04X/%04X]"), friendlyname, did->vid, did->pid);
// else
_stprintf (tmp, _T("%s"), friendlyname);
did->name = my_strdup (tmp);
- write_log (_T("[%04X/%04X] '%s' -> '%s'\n"), did->vid, did->pid, did->configname, did->name);
}
}
}
}
}
-static void dumphidcaps (struct didata *did, int cnt)
+static void dumphidcaps (struct didata *did)
{
HIDP_CAPS caps = did->hidcaps;
- write_log (_T("\n******** %d USB HID: '%s'\n"), cnt, did->name);
write_log (_T("Usage: %04x\n"), caps.Usage);
write_log (_T("UsagePage: %04x\n"), caps.UsagePage);
write_log (_T("InputReportByteLength: %u\n"), caps.InputReportByteLength);
if (HidP_GetCaps (did->hidpreparseddata, &did->hidcaps) == HIDP_STATUS_SUCCESS) {
PHIDP_BUTTON_CAPS bcaps;
USHORT size = did->hidcaps.NumberInputButtonCaps;
- dumphidcaps (did, rawcnt);
+ write_log(_T("RAWHID: %d/%d %d '%s' ('%s')\n"), rawcnt, gotnum, num_joystick - 1, did->name, did->configname);
+ dumphidcaps (did);
bcaps = xmalloc (HIDP_BUTTON_CAPS, size);
if (HidP_GetButtonCaps (HidP_Input, bcaps, &size, did->hidpreparseddata) == HIDP_STATUS_SUCCESS) {
dumphidbuttoncaps (bcaps, size);
sortdd (di_mouse, num_mouse, DID_MOUSE);
sortdd (di_keyboard, num_keyboard, DID_KEYBOARD);
+ for (int i = 0; i < num_joystick; i++) {
+ write_log(_T("M %02d: '%s' (%s)\n"), i, di_mouse[i].name, di_mouse[i].configname);
+ }
+ for (int i = 0; i < num_joystick; i++) {
+ write_log(_T("J %02d: '%s' (%s)\n"), i, di_joystick[i].name, di_joystick[i].configname);
+ }
+ for (int i = 0; i < num_keyboard; i++) {
+ write_log(_T("K %02d: '%s' (%s)\n"), i, di_keyboard[i].name, di_keyboard[i].configname);
+ }
+
return 1;
}
#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(2016, 1, 9)
+#define WINUAEDATE MAKEBD(2016, 1, 12)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
ew (hDlg, IDC_CS_CACHE_TEXT, enable);
ew (hDlg, IDC_CACHE, enable);
ew (hDlg, IDC_JITENABLE, jitenable);
- ew (hDlg, IDC_COMPATIBLE, !workprefs.cpu_memory_cycle_exact);
+ ew (hDlg, IDC_COMPATIBLE, !workprefs.cpu_memory_cycle_exact && !(workprefs.cachesize && workprefs.cpu_model >= 68040));
ew (hDlg, IDC_COMPATIBLE_FPU, workprefs.fpu_model > 0);
ew (hDlg, IDC_FPU_UNIMPLEMENTED, workprefs.fpu_model && !workprefs.cachesize);
ew (hDlg, IDC_CPU_UNIMPLEMENTED, workprefs.cpu_model == 68060 && !workprefs.cachesize);
}
if (!workprefs.cachesize)
setchecked (hDlg, IDC_JITENABLE, false);
- if (oldcache == 0 && workprefs.cachesize > 0)
+ if (oldcache == 0 && workprefs.cachesize > 0) {
canbang = 1;
+ }
+ if (workprefs.cachesize && workprefs.cpu_model >= 68040) {
+ workprefs.cpu_compatible = false;
+ }
#endif
if (ischecked(hDlg, IDC_CPU_PPC)) {
if (workprefs.ppc_mode == 0)
+Beta 2:
+
+- Game Ports panel keyboard layouts didn't load from config file. (b1)
+- Only first (of 3) Input panel keyboard config slot was loaded correctly. (b1)
+- Other input handling fixes (very old, old and b1) and updates. Some problems probably still remain unfixed.
+- GUI allowed unsupported combination: more compatible CPU ticked in JIT + 68040/68060 modes.
+- Hardfile SCSI emulation READ CAPACITY block count off by one if PMI bit was set.
+- MODE SENSE (10) added to HD SCSI emulator.
+
+Beta 1:
- Added extra validation checks for STORAGE_DEVICE_DESCRIPTOR, buggy drivers may return invalid (negative) offset
values.
- Debugger memwatch points can now match only CPU instruction (CPUI) or only CPU data accesses (CPUD, CPUDR, CPUDW)
- "Heat map" debugger added, shows optional visual heatmap of CPU and DMA accesses. Can list highest addresses used by
CPU instruction fetches or all addresses that single device accessed (Some DMA channel, CPU)
-- Some AGA modes were incorrectly detected as overrunning causing screen corruption.
+- Some AGA modes were incorrectly detected as bitplane DMA overrunning causing screen corruption.
- AROS ROM updated.
Input system and mapping updates: