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++;
}
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++;
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);
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;
}
*/
//#define MEMDEBUG
+#define MOUSECLIP_LOG 0
+#define MOUSECLIP_HIDE 1
#include <stdlib.h>
#include <stdarg.h>
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
}
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);
}
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());
}
}
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;
if (focus) {
if (!showcursor) {
//write_log(_T("setcapture\n"));
+#if MOUSECLIP_HIDE
ShowCursor (FALSE);
+#endif
SetCapture (hAmigaWnd);
updatewinrect (false);
showcursor = 1;
#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")
- 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,<ea> 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