int core_fseek(core_file *file, INT64 offset, int whence)
{
- return zfile_fseek(file, offset, whence);
+ return (int)zfile_fseek(file, offset, whence);
}
file_error core_fopen(const TCHAR *filename, UINT32 openflags, core_file **file)
{
}
}
-static void reset_ide(struct ide_board *board)
+static void reset_ide(struct ide_board *board, int hardreset)
{
board->configured = 0;
board->intena = false;
board->enabled = false;
+ board->hardreset = hardreset != 0;
}
static void idecontroller_reset(int hardreset)
{
for (int i = 0; ide_boards[i]; i++) {
- reset_ide(ide_boards[i]);
+ reset_ide(ide_boards[i], hardreset);
}
}
} else {
v = 0;
}
+ if (p1) {
+ if (addr == 0xf42 && board->hardreset) {
+ v |= 0x80;
+ }
+ if (addr & 2) {
+ v |= 1 << 5;
+ }
+ }
} else if (addr >= 0x7fc && addr <= 0x7ff) {
v = board->userdata;
} else if (!(addr & 1)) {
board->userdata &= 0xfff0ffff;
board->userdata |= cnt << 16;
}
+ if (addr == 0xf42 && p1 && (v & 0xf0) == 0x60) {
+ board->hardreset = false;
+ }
} else if (addr >= 0x7fc && addr <= 0x7ff) {
board->userdata &= ~0xff;
board->userdata |= v;
bool buddha_init(struct autoconfig_info *aci)
{
const struct expansionromtype *ert = get_device_expansion_rom(ROMTYPE_BUDDHA);
+ bool p1 = (aci->rc->device_settings & 3) == 1;
ide_add_reset();
if (!aci->doinit) {
- aci->autoconfigp = ert->autoconfig;
+ if (p1) {
+ load_rom_rc(aci->rc, ROMTYPE_BUDDHA, 65536, 0, aci->autoconfig_raw, sizeof aci->autoconfig_raw, LOADROM_EVENONLY_ODDONE);
+ } else {
+ aci->autoconfigp = ert->autoconfig;
+ }
return true;
}
struct ide_board *ide = getide(aci);
- bool p1 = (aci->rc->device_settings & 3) == 1;
ide->configured = 0;
ide->bank = &ide_bank_generic;
uae_u8 b = ert->autoconfig[i];
if (i == 1 && (aci->rc->device_settings & 3) == 2)
b = 42;
- if (i == 9 && p1)
- b = 6;
ew(ide, i * 4, b);
}
aci->addrbank = ide->bank;
bool irq;
bool intena;
bool enabled;
+ bool hardreset;
bool intlev6;
bool flashenabled;
int state;
#define LANG_DLL_FULL_VERSION_MATCH 1
#if WINUAEPUBLICBETA
-#define WINUAEBETA _T("Beta 8")
+#define WINUAEBETA _T("9")
#else
#define WINUAEBETA _T("")
#endif
-#define WINUAEDATE MAKEBD(2023, 11, 18)
+#define WINUAEDATE MAKEBD(2023, 11, 26)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
+
+- If program updated RTG (uaegfx) hardware mouse cursor colors only (not shape), mouse cursor was not updated to match new colors.
+- Detect compatible files in deeper subdirectories only when dropping archive file to floppy drive, do not do it when dropping to WB. (b1)
+- If executable is mounted as disk image, do not automatically enable turbo floppy mode if program does disk DMA accesses that can't be used for normal track reads. (Booting executable programs that do [weird] disk tests work normally)
+- Quickstart Host Configuration was not restored correctly (off by one because new entry was added, missed one place where index should have been increased by 1)
+- Fixed KS 3.2 A3000 ROM checksum.
+- Added disassembler optional parameter to always show EA. Previously EAs (An),(An)+ or -(An) An content was not shown.
+- Disk info ("?" in floppy and quickstart panel) font size was not adjusted to current DPI/font size setting.
+- If (weird) programmed mode without programmed vblank (VARBEAMEN=1 but VARVBEN=0) had less lines than hardwired PAL or NTSC mode, vblank interrupts still triggered, even when trigger line (last PAL or NTSC line) was never reached.
+- Do not special case $FFFF,$FFFE copper wait as "no need to care about copper until restarted" if really weird and wide (max 256 CCKs) programmed mode is active.
+- "Restart" GUI button didn't reset current windowed/fullscreen mode flag, causing GUI to re-open in last active mode GUI position (if full-window or fullscreen) instead of default windowed mode position.
+- Possible fix for crash after reset in some configurations (Kickstart ROM area was left unallocated)
+- Normal WB programmed modes randomly used wrong HB/VB values when positioning the screen. (5.0)
+
Beta 8:
- Built-in DMS unpacking support update: validate packed track data under or overflow after decrunching and reject track as damaged if detected. Fixes incorrect brute force decryption key detection of some encrypted DMS files. (THE_PLAGUE_1.DMS and some others)