From: Toni Wilen Date: Sun, 24 Apr 2016 12:37:17 +0000 (+0300) Subject: 3300b11 X-Git-Tag: 3300~47 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=59c71b45acb84373e105b1787b6d3de927e0a8a9;p=francis%2Fwinuae.git 3300b11 --- diff --git a/blkdev_cdimage.cpp b/blkdev_cdimage.cpp index a73b9e33..5f922c65 100644 --- a/blkdev_cdimage.cpp +++ b/blkdev_cdimage.cpp @@ -1035,7 +1035,14 @@ static int command_toc (int unitnum, struct cd_toc_head *th) th->firstaddress = 0; th->lastaddress = cdu->toc[cdu->tracks].address; + uae_u8 ctrl_mask = 4; + for (int i = 0; i < cdu->tracks; i++) { + if (!(cdu->toc[i].ctrl & 4)) + ctrl_mask = 0x00; + } + toc->adr = 1; + toc->control = ctrl_mask; toc->point = 0xa0; toc->track = th->first_track; toc++; @@ -1052,12 +1059,14 @@ static int command_toc (int unitnum, struct cd_toc_head *th) th->last_track_offset = cdu->tracks; toc->adr = 1; + toc->control = ctrl_mask; toc->point = 0xa1; toc->track = th->last_track; toc->paddress = th->lastaddress; toc++; toc->adr = 1; + toc->control = ctrl_mask; toc->point = 0xa2; toc->paddress = th->lastaddress; toc++; diff --git a/debug.cpp b/debug.cpp index b56d1516..26c03137 100644 --- a/debug.cpp +++ b/debug.cpp @@ -4615,11 +4615,13 @@ static bool debug_line (TCHAR *input) next_char (&inptr); if (more_params (&inptr)) { debug_illegal_mask = readhex (&inptr); + if (more_params(&inptr)) + debug_illegal_mask |= ((uae_u64)readhex(&inptr)) << 32; } else { debug_illegal_mask = debug_illegal ? 0 : -1; debug_illegal_mask &= ~((uae_u64)255 << 24); // mask interrupts } - console_out_f (_T("Exception breakpoint mask: %0I64X\n"), debug_illegal_mask); + console_out_f (_T("Exception breakpoint mask: %08X %08X\n"), (uae_u32)(debug_illegal_mask >> 32), (uae_u32)debug_illegal_mask); debug_illegal = debug_illegal_mask ? 1 : 0; } else { addr = 0xffffffff; diff --git a/expansion.cpp b/expansion.cpp index d38204f9..e9270680 100644 --- a/expansion.cpp +++ b/expansion.cpp @@ -1582,6 +1582,14 @@ static addrbank* expamem_init_filesys (int devnum) bool ks12 = ks12orolder(); bool hide = currprefs.uae_hide_autoconfig; +#if 0 + FILE *f = fopen("d:\\amiga\\amiga\\source\\acap\\autoconf", "rb"); + fread(expamem, 1, 256, f); + fclose(f); + memcpy(filesys_bank.baseaddr, expamem, 0x3000); + return NULL; +#endif + /* struct DiagArea - the size has to be large enough to store several device ROMTags */ const uae_u8 diagarea[] = { 0x90, 0x00, /* da_Config, da_Flags */ diff --git a/od-win32/win32.h b/od-win32/win32.h index 9fcb47e2..73d736ac 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("10") +#define WINUAEBETA _T("11") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2016, 4, 9) +#define WINUAEDATE MAKEBD(2016, 4, 24) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index f262f832..7d3f4516 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,40 @@ +Beta 11: + +- Screenshot/capture without "before filtering" ticked now uses much faster GetRenderTargetData() + function in D3D mode to capture the output. +- Ticked 68060 unimplemented CPU emu checkbox also enabled 68030 MMU instructions. +- Terminate indirect UAE Boot ROM trap threads before unmapping Amiga side memory to prevent + random crashes when exiting emulator with traps active. +- Debugger il mask is now accepted in two 32-bit parts, 64-bit values are not supported by debugger input. +- Added gfx_black_frame_insertion_ratio config entry, sets timing between normal and black frames in adaptive + sync mode. Default is 50 (50%, normal and black frames have same duration). +- CD32 emulation updates, mostly previously unknown undocumented features: + - It seems unmapped addresses don't "float", all invalid reads seem to always return zeros. + - CIA chip select, address bits 12 and 13 are CIA selects. Gary: 0=none,1=A,2=B,3=A+B, + Gayle: 0=none,1=A,2=B,3=none, Akiko: 0=A,1=A,2=B,3=B (Very unexpected) + - CIA address space: Gary: $A00000-$BFFFFF, Gayle: $BFDxxx and $BFExxx, Akiko: $BFE000-$BFFFFF. + - Custom register mirror at $B90000-$B9FFFF! (This is really weird..) + - Usual custom register mirror at $C00000-$CFFFFF. + - Akiko addresses are mapped from $B80000 to $B87FFF (was $B8FFFF) and has 64 byte mirroring (was no + mirroring) + - Akiko ID at $B80000.l is $C0CACAFE (was only $CAFE at $B80002.w, KS checks this address for $CAFE) + - All write-only registers seem to read same data as nearby read-only register. + - Interrupt registers only have bits 24 to 31 writable, other bits always read as zeros. + - Config ($B80024) register has bits 23 to 31 writable, other bits always read as zeros. + - Subchannel arrived interrupt bit is set at boot for some unknown reason, subchannel index + register ($B80018) works strangely and has unexpected value at boot ($C2). + - Match Akiko C2P behavior with real hardware when reading bytes/words or when doing multiple read passes. + - When booted with CD inserted: first packet from CD MCU is always "media inserted" packet. + - $B80028.b reads last received command packet byte. + - Writing to $B80028.b sends command bytes to CD MCU. (This is not emulated yet and no program uses it) + - Akiko internal CIAs don't have external TOD input pins. CIA-A TOD which normally counts vsyncs or + power supply ticks count rate is selected with $B80020 bit 23 (0=50Hz, 1=60Hz). CIA-B (hsync) + timing logic is not known yet but it is also internally generated. + - Old interrupt request set/clear hacks removed. + - All CD status return codes (including errors) include door status (open/closed) in bit 0. + - Contents of unused TOC entry bytes now contain real hardware matching values. + Beta 10: - if uaenet.device is online and packet(s) have arrived but there is no pending CMD_READ/CMD_READORPHANs: