From 480290ecedac4436e969a6005e2c1df4d80706fb Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 23 Nov 2014 17:25:30 +0200 Subject: [PATCH] 2900b25 --- blkdev_cdimage.cpp | 12 +++++------ od-win32/picasso96_win.cpp | 10 ++++++++- od-win32/win32.cpp | 27 ++++++++++++++++++------- od-win32/win32.h | 4 ++-- od-win32/winuaechangelog.txt | 39 ++++++++++++++++++++++++++++++++++++ 5 files changed, 76 insertions(+), 16 deletions(-) diff --git a/blkdev_cdimage.cpp b/blkdev_cdimage.cpp index 8b81e412..6ca7e2dc 100644 --- a/blkdev_cdimage.cpp +++ b/blkdev_cdimage.cpp @@ -269,12 +269,12 @@ static uae_u8 *flac_get_data (struct cdtoc *t) void sub_to_interleaved (const uae_u8 *s, uae_u8 *d) { - for (int i = 0; i < 8 * 12; i ++) { + for (int i = 0; i < 8 * SUB_ENTRY_SIZE; i ++) { int dmask = 0x80; int smask = 1 << (7 - (i & 7)); (*d) = 0; for (int j = 0; j < 8; j++) { - (*d) |= (s[(i / 8) + j * 12] & smask) ? dmask : 0; + (*d) |= (s[(i / 8) + j * SUB_ENTRY_SIZE] & smask) ? dmask : 0; dmask >>= 1; } d++; @@ -282,12 +282,12 @@ void sub_to_interleaved (const uae_u8 *s, uae_u8 *d) } void sub_to_deinterleaved (const uae_u8 *s, uae_u8 *d) { - for (int i = 0; i < 8 * 12; i ++) { + for (int i = 0; i < 8 * SUB_ENTRY_SIZE; i ++) { int dmask = 0x80; - int smask = 1 << (7 - (i / 12)); + int smask = 1 << (7 - (i / SUB_ENTRY_SIZE)); (*d) = 0; for (int j = 0; j < 8; j++) { - (*d) |= (s[(i % 12) * 8 + j] & smask) ? dmask : 0; + (*d) |= (s[(i % SUB_ENTRY_SIZE) * 8 + j] & smask) ? dmask : 0; dmask >>= 1; } d++; @@ -323,7 +323,7 @@ static int getsub_deinterleaved (uae_u8 *dst, struct cdunit *cdu, struct cdtoc * if (!ret) { memset (dst, 0, SUB_CHANNEL_SIZE); // regenerate Q-subchannel - uae_u8 *s = dst + 12; + uae_u8 *s = dst + SUB_ENTRY_SIZE; s[0] = (t->ctrl << 4) | (t->adr << 0); s[1] = tobcd (t - &cdu->toc[0] + 1); s[2] = tobcd (1); diff --git a/od-win32/picasso96_win.cpp b/od-win32/picasso96_win.cpp index 85fa53bb..9040aaf3 100644 --- a/od-win32/picasso96_win.cpp +++ b/od-win32/picasso96_win.cpp @@ -2010,7 +2010,15 @@ static int AssignModeID (int w, int h, int *unkcnt) return 0x50001000 | (mi[i].id * 0x10000); } (*unkcnt)++; - write_log (_T("P96: Non-unique mode %dx%d\n"), w, h); + write_log (_T("P96: Non-unique mode %dx%d"), w, h); + if (256 - (*unkcnt) == mi[i - 1].id + 1) { + (*unkcnt) = 256 - 127; + write_log(_T(" (Skipped reserved)")); + } else if (256 - (*unkcnt) == 11) { + (*unkcnt) = 511; + write_log(_T(" (Using extra)")); + } + write_log(_T("\n")); return 0x51001000 - (*unkcnt) * 0x10000; } diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index e391474c..ce070d33 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -8,6 +8,8 @@ */ //#define MEMDEBUG +#define MOUSECLIP_LOG 0 +#define MOUSECLIP_HIDE 1 #include #include @@ -434,10 +436,12 @@ static void setcursor (int oldx, int oldy) mouseposx = mouseposy = 0; return; } -#if 0 - write_log (_T("%dx%d %dx%d %dx%d (%dx%d %dx%d)\n"), +#if MOUSECLIP_LOG + write_log (_T("%dx%d %dx%d %dx%d %d%d (%dx%d %dx%d)\n"), x, y, - mouseposx, mouseposy, oldx, oldy, + mouseposx, mouseposy, + oldx, oldy, + oldx + amigawin_rect.left, oldy + amigawin_rect.top, amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom); #endif @@ -456,7 +460,9 @@ static void setcursor (int oldx, int oldy) } int cx = amigawin_rect.left + x; int cy = amigawin_rect.top + y; - //write_log (_T("SetCursorPos(%d,%d)\n"), cx, cy); +#if MOUSECLIP_LOG + write_log (_T("SetCursorPos(%d,%d)\n"), cx, cy); +#endif SetCursorPos (cx, cy); } @@ -626,8 +632,11 @@ static void releasecapture (void) void updatemouseclip (void) { if (showcursor) { - ClipCursor (&amigawin_rect); - //write_log (_T("CLIP %dx%d %dx%d %d\n"), amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom, isfullscreen ()); +#if MOUSECLIP_LOG + write_log (_T("CLIP %dx%d %dx%d %d\n"), amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom, isfullscreen ()); +#endif + if (!ClipCursor (&amigawin_rect)) + write_log(_T("ClipCursor error %d\n"), GetLastError()); } } @@ -637,7 +646,9 @@ void updatewinrect (bool allowfullscreen) if (!allowfullscreen && f > 0) return; GetWindowRect (hAmigaWnd, &amigawin_rect); - //write_log (_T("GetWindowRect %dx%d %dx%d %d\n"), amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom, f); +#if MOUSECLIP_LOG + write_log (_T("GetWindowRect %dx%d %dx%d %d\n"), amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom, f); +#endif if (f == 0) { changed_prefs.gfx_size_win.x = amigawin_rect.left; changed_prefs.gfx_size_win.y = amigawin_rect.top; @@ -733,7 +744,9 @@ static void setmouseactive2 (int active, bool allowpause) if (focus) { if (!showcursor) { //write_log(_T("setcapture\n")); +#if MOUSECLIP_HIDE ShowCursor (FALSE); +#endif SetCapture (hAmigaWnd); updatewinrect (false); showcursor = 1; diff --git a/od-win32/win32.h b/od-win32/win32.h index dee71dc7..bd500ce3 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("24") +#define WINUAEBETA _T("25") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2014, 11, 15) +#define WINUAEDATE MAKEBD(2014, 11, 23) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 45e99641..be83935b 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -18,6 +18,45 @@ Things that may happen in 2015: - restore only single input target to default. +Beta 25: + +- Added 1M/0.5M+0.5M chip/slow ram option checkbox to Advanced Chipset (for example in rev6 A500 it is JP2 + solder pad). If hardware is configured for 1M chip without 512k slow ram, normal chip ram alias at upper + 512k of chip ram address space gets replaced with "bus noise". Can be only changed when chip RAM size is + less than 1M. (ECS Agnus + 512k chipram without slow ram configuration always used this option previously, + now it is optional and not enabled by default) +- Map Chip RAM mirror at 0x01000000 in A2620/A2630 config, to prevent A26x0 built-in monitor program detecting + huge ram expansion at 0x01000000. +- uaenet.device + slirp combination was broken (probably has always been). +- uaegfx modeid space increased, reduces modeid conflicts if host os has huge amount of modes. +- Debugger does not anymore exit stopped CPU state (STOP instruction) after exiting debugger. +- "SCSI (Auto)" priorities changed: mainboard built-in first, then accelerator board, expansions last. (Expansions + was first previously) +- More accurate 68000 prefetch mode instruction cycle usage, added non-static cycle counting (mul, div etc..) +- Most CDTV-CR built-in CD audio player features, including CD+G, are now working. Media changes supported. + 3.44 ROM CD player works better than 3.32. + +Beta 24: + +- Native code Z3 offset was wrong if Z3 mapping was using "real" mode. +- CD32 NVRAM file was not automatically created (b14). +- Added some accelerator board A1200 and A4000 configs to Quickstart. +- Only PCM audio worked (and was always used) when recording audio in non-wave mode. +- Picasso IV in Z3 mode didn't appear in Z3 autoconfig space. +- Initialize VGA chip emulation earlier, fixes emulator crash when Piccolo board is configured. (Also for some + reason Piccolo and Piccolo SD boards are not used by OS4) +- Too large Z2 RTG VRAM value in config file was accepted as valid. +- Show user friendly message if PPC CPU is started without PPC plugin. +- Disassembler decoded FMOVE.x FPy, incorrectly, FPy was wrong. +- "Untrap = middle button" + "Minimize when focus is lost" + full-window mode didn't minimize. Only windowed + mode should require real lost focus to become minimized. +- GUI appeared under full-window background window. +- Use secondary fast RAM bank for A2620/A2630 accelerator memory, works better with other Z2 boards (like A2091) +- Allow hardware unsupported (total >8M) Z2 total board size. Can happen in real world so it should be available + in emulation too. +- Added Z2 autoconfig address validation, log and ignore any autoconfig attempt outside of valid Z2 regions. +- Added 68030 + more compatible CPU core. Previously this combination was unusable. + Beta 23: - Dragging vhd file to harddrives panel now adds it as a HDF, not a directory if it does not contain any known -- 2.47.3