From: Toni Wilen Date: Mon, 21 Sep 2015 16:52:59 +0000 (+0300) Subject: 3200b13 X-Git-Tag: 3200~56 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=17bc5f5a141057fd63658dc368550b51551f787f;p=francis%2Fwinuae.git 3200b13 --- diff --git a/inputdevice.cpp b/inputdevice.cpp index afae2b6f..49e69a6d 100644 --- a/inputdevice.cpp +++ b/inputdevice.cpp @@ -1500,18 +1500,27 @@ static void inputdevice_mh_abs (int x, int y, uae_u32 buttonbits) uae_u8 *p = uaeboard_bank.baseaddr + 0x200; memcpy(tmp, p + 2, 2 * 5); + + // status p[0] = 0; p[1] = 0; + // host x p[2 * 1 + 0] = x >> 8; p[2 * 1 + 1] = (uae_u8)x; + // host y p[2 * 2 + 0] = y >> 8; p[2 * 2 + 1] = (uae_u8)y; + // host wheel p[2 * 3 + 0] = 0; p[2 * 3 + 1] = 0; + // host hwheel p[2 * 4 + 0] = 0; p[2 * 4 + 1] = 0; + // buttons p[2 * 5 + 0] = buttonbits >> 8; p[2 * 5 + 1] = (uae_u8)buttonbits; + + // mouse state changed? if (memcmp(tmp, p + 2, 2 * 5)) { p[1] |= 2; } @@ -1519,12 +1528,16 @@ static void inputdevice_mh_abs (int x, int y, uae_u32 buttonbits) p += 0x10; memcpy(tmp, p, 2 * 4); if (picasso_on) { + // RTG host resolution width p[0 * 2 + 0] = picasso_vidinfo.width >> 8; p[0 * 2 + 1] = (uae_u8)picasso_vidinfo.width; + // RTG host resolution height p[1 * 2 + 0] = picasso_vidinfo.height >> 8; p[1 * 2 + 1] = (uae_u8)picasso_vidinfo.height; + // RTG resolution width p[2 * 2 + 0] = picasso96_state.Width >> 8; p[2 * 2 + 1] = (uae_u8)picasso96_state.Width; + // RTG resolution height p[2 * 3 + 0] = picasso96_state.Height >> 8; p[2 * 3 + 1] = (uae_u8)picasso96_state.Height; } else { @@ -1537,6 +1550,8 @@ static void inputdevice_mh_abs (int x, int y, uae_u32 buttonbits) p[2 * 3 + 0] = 0; p[2 * 3 + 1] = 0; } + + // display size changed? if (memcmp(tmp, p, 2 * 4)) { p[1] |= 4; } diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 78c752d9..e08bc54c 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -96,7 +96,7 @@ BEGIN LTEXT "Cartridge ROM file:",IDC_FLASHTEXT2,12,112,265,10 COMBOBOX IDC_CARTFILE,12,124,361,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "...",IDC_CARTCHOOSER,376,123,10,15 - LTEXT "Flash RAM file:",IDC_FLASHTEXT,12,141,265,10 + LTEXT "Flash RAM or A2286/A2386SX BIOS CMOS RAM file:",IDC_FLASHTEXT,12,141,265,10 EDITTEXT IDC_FLASHFILE,12,153,361,12,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_FLASHCHOOSER,376,151,10,15 LTEXT "Real Time Clock file",IDC_STATIC,12,167,313,15,SS_CENTERIMAGE diff --git a/od-win32/screenshot.cpp b/od-win32/screenshot.cpp index 3e4f7927..2248588e 100644 --- a/od-win32/screenshot.cpp +++ b/od-win32/screenshot.cpp @@ -325,12 +325,12 @@ void Screenshot_RGBinfo (int rb, int gb, int bb, int rs, int gs, int bs) static void _cdecl pngtest_blah (png_structp png_ptr, png_const_charp message) { -#if 0 - TCHAR *name = au ("unknown"); - if (png_ptr != NULL && png_ptr->error_ptr != NULL) - name = au ((char*)png_ptr->error_ptr); - write_log (_T("%s: libpng warning: %s\n"), name, message); - xfree (name); +#if 1 + if (message) { + TCHAR *msg = au(message); + write_log (_T("libpng warning: '%s'\n"), msg); + xfree (msg); + } #endif } @@ -347,15 +347,15 @@ static int savepng (FILE *fp) png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, pngtest_blah, pngtest_blah, pngtest_blah); if (!png_ptr) - return 0; + return 1; info_ptr = png_create_info_struct (png_ptr); if (!info_ptr) { png_destroy_write_struct (&png_ptr, NULL); - return 0; + return 2; } if (setjmp(png_jmpbuf (png_ptr))) { png_destroy_write_struct (&png_ptr, &info_ptr); - return 0; + return 3; } png_init_io (png_ptr, fp); @@ -380,7 +380,7 @@ static int savepng (FILE *fp) png_write_png (png_ptr,info_ptr, PNG_TRANSFORM_BGR, NULL); png_destroy_write_struct (&png_ptr, &info_ptr); xfree (row_pointers); - return 1; + return 0; } #endif @@ -394,16 +394,16 @@ static int savebmp (FILE *fp) bfh.bfReserved2 = 0; bfh.bfOffBits = sizeof (BITMAPFILEHEADER) + sizeof (BITMAPINFOHEADER) + bi->bmiHeader.biClrUsed * sizeof(RGBQUAD); if (fwrite (&bfh, 1, sizeof (BITMAPFILEHEADER), fp) < sizeof (BITMAPFILEHEADER)) - return 0; // failed to write bitmap file header + return 1; // failed to write bitmap file header if (fwrite (bi, 1, sizeof (BITMAPINFOHEADER), fp) < sizeof (BITMAPINFOHEADER)) - return 0; // failed to write bitmap infomation header + return 2; // failed to write bitmap infomation header if (bi->bmiHeader.biClrUsed) { if (fwrite (bi->bmiColors, 1, bi->bmiHeader.biClrUsed * sizeof(RGBQUAD), fp) < bi->bmiHeader.biClrUsed * sizeof(RGBQUAD)) - return 0; // failed to write bitmap file header + return 3; // failed to write bitmap file header } if (fwrite (lpvBits, 1, bi->bmiHeader.biSizeImage, fp) < bi->bmiHeader.biSizeImage) - return 0; // failed to write the bitmap - return 1; + return 4; // failed to write the bitmap + return 0; } /* @@ -413,7 +413,7 @@ int screenshotf (const TCHAR *spath, int mode, int doprepare, int imagemode, str { static int recursive; FILE *fp = NULL; - int allok = 0; + int failed = 0; HBITMAP offscreen_bitmap = NULL; // bitmap that is converted to a DIB HDC offscreen_dc = NULL; // offscreen DC that we can select offscreen bitmap into @@ -445,10 +445,10 @@ int screenshotf (const TCHAR *spath, int mode, int doprepare, int imagemode, str if (fp) { #if PNG_SCREENSHOTS > 0 if (screenshotmode) - allok = savepng (fp); + failed = savepng (fp); else #endif - allok = savebmp (fp); + failed = savebmp (fp); fclose (fp); fp = NULL; goto oops; @@ -470,21 +470,28 @@ int screenshotf (const TCHAR *spath, int mode, int doprepare, int imagemode, str _stprintf (filename, _T("%s%s%s%03d.%s"), path, name, underline, number, screenshotmode ? _T("png") : _T("bmp")); if ((fp = _tfopen (filename, _T("rb"))) == NULL) // does file not exist? { - int ok = 0; - if ((fp = _tfopen (filename, _T("wb"))) == NULL) + int nok = 0; + if ((fp = _tfopen (filename, _T("wb"))) == NULL) { + write_log(_T("Screenshot error, can't open \"%s\" err=%d\n"), filename, GetLastError()); goto oops; // error + } #if PNG_SCREENSHOTS > 0 if (screenshotmode) - ok = savepng (fp); + nok = savepng (fp); else #endif - ok = savebmp (fp); + nok = savebmp (fp); fclose(fp); + if (nok && fp) { + _tunlink(filename); + } fp = NULL; - if (!ok) + if (nok) { + write_log(_T("Screenshot error %d ('%s')\n"), nok, filename); goto oops; + } write_log (_T("Screenshot saved as \"%s\"\n"), filename); - allok = 1; + failed = 0; break; } fclose (fp); @@ -501,7 +508,7 @@ oops: recursive--; - return allok; + return failed == 0; } #include "drawing.h" diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index 1846f56b..46ee9be9 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -4667,6 +4667,11 @@ static int betamessage (void) struct tm *t; __int64 ltime; DWORD dwType, size; +#ifdef _WIN64 + const TCHAR *tokenname = _T("BetaToken64"); +#else + const TCHAR *tokenname = _T("BetaToken"); +#endif ft64.QuadPart = 0; for (;;) { @@ -4687,7 +4692,7 @@ static int betamessage (void) ft64.HighPart = ft.dwHighDateTime; dwType = REG_QWORD; size = sizeof regft64; - if (!regquerylonglong (NULL, _T("BetaToken"), ®ft64)) + if (!regquerylonglong (NULL, tokenname, ®ft64)) break; GetSystemTime(&st); SystemTimeToFileTime(&st, &sft); @@ -4727,7 +4732,7 @@ static int betamessage (void) return 0; if (ft64.QuadPart > 0) { regft64 = ft64.QuadPart; - regsetlonglong (NULL, _T("BetaToken"), regft64); + regsetlonglong (NULL, tokenname, regft64); } } #endif diff --git a/od-win32/win32.h b/od-win32/win32.h index cc1f2dc8..412544ce 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("12") +#define WINUAEBETA _T("13") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2015, 9, 15) +#define WINUAEDATE MAKEBD(2015, 9, 21) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 32052734..a7c5464f 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -1351,7 +1351,7 @@ static const int msi_cpuboard[] = { 0, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; #define MIN_SLOW_MEM 0 #define MAX_SLOW_MEM 4 #define MIN_Z3_MEM 0 -#define MAX_Z3_MEM ((max_z3fastmem >> 20) < 512 ? 12 : ((max_z3fastmem >> 20) < 1024 ? 13 : ((max_z3fastmem >> 20) < 2048) ? 14 : 15)) +#define MAX_Z3_MEM ((max_z3fastmem >> 20) < 512 ? 12 : ((max_z3fastmem >> 20) < 1024 ? 13 : ((max_z3fastmem >> 20) < 2048) ? 14 : 14)) #define MAX_Z3_CHIPMEM 9 #define MIN_P96_MEM 0 #define MAX_P96_MEM_Z3 ((max_z3fastmem >> 20) < 512 ? 8 : ((max_z3fastmem >> 20) < 1024 ? 9 : ((max_z3fastmem >> 20) < 2048) ? 10 : 11)) diff --git a/od-win32/winuae_msvc14/winuae_msvc.vcxproj b/od-win32/winuae_msvc14/winuae_msvc.vcxproj index 7f2437c5..f88adbe0 100644 --- a/od-win32/winuae_msvc14/winuae_msvc.vcxproj +++ b/od-win32/winuae_msvc14/winuae_msvc.vcxproj @@ -257,7 +257,7 @@ %(AdditionalOptions) Disabled ..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;..\..\slirp;..\..\ppc\pearpc;%(AdditionalIncludeDirectories) - WINVER=0x0500;_DEBUG;WIN32_IE=0x0700;WIN32;WIN64;PTR64;UAE;WINUAE;_CRT_SECURE_NO_WARNINGS;D3D_DEBUG_INFO;%(PreprocessorDefinitions) + WINVER=0x0601;_DEBUG;_WIN32_IE=0x0700;WIN32;WIN64;PTR64;UAE;WINUAE;%(PreprocessorDefinitions) Sync EnableFastChecks MultiThreadedDebug @@ -281,7 +281,7 @@ 0x0409 - ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;packet.lib;wpcap.lib;openal32.lib;libpng15.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;avrt.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) + ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;packet.lib;wpcap.lib;openal32.lib;libpng16.lib;lglcd.lib;wtsapi32.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;avrt.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true LIBCMT;%(IgnoreSpecificDefaultLibraries) @@ -351,7 +351,7 @@ 0x0409 - ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng15.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;Avrt.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) + ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng16.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;Avrt.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ @@ -429,7 +429,7 @@ 0x0409 - ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng15.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;Avrt.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) + ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;libpng16.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;Avrt.lib;hid.lib;zlibstat.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ @@ -522,8 +522,8 @@ true - true - false + false + true true MachineX64 true @@ -557,7 +557,7 @@ MultiThreaded false false - StreamingSIMDExtensions2 + NotSet Precise false false @@ -596,7 +596,7 @@ false - false + true true MachineX64 0x40000000 @@ -652,7 +652,7 @@ 0x0409 - ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;libpng15.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;avrt.lib;enet.lib;prowizard.lib;lzmalib.lib;libFLAC_static.lib;Avrt.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) + ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;libpng16.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;avrt.lib;enet.lib;prowizard.lib;lzmalib.lib;libFLAC_static.lib;Avrt.lib;hid.lib;Iphlpapi.lib;luastatic.lib;libmpeg2_ff.lib;softfloat.lib;%(AdditionalDependencies) $(OutDir)$(TargetName)$(TargetExt) true %(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\ @@ -675,6 +675,8 @@ 5.01 false true + + ../resources/winuae.exe.manifest @@ -704,7 +706,7 @@ MultiThreaded false true - StreamingSIMDExtensions2 + NotSet Precise false false diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 7e97a26b..b5bd6e97 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,8 +1,32 @@ +Beta 13: + +- SCSI emulation INQUIRY command didn't clear old data in output buffer (b7) +- Do not abort uaehf.device RDB parsing if drive init or bad block list is set. +- A2386SX 16M+ memory size crash fix. +- Implemented previously empty QEMU byteswap function, fixes 16-bit Cirrus Logic VGA text mode. +- zlib and libpng (used by screenshot function) updated to latest versions. +- Added PC 3.5" HD 21 sectors/track format to PC floppy size autodetection list. (DMF format) +- Renamed GUI Flash RAM file title, it is also used for A2286/A2386SX CMOS RAM. +- Big Aranym JIT merge. 64-bit version JIT supported. Includes big 32-bit JIT + changes. May cause breakage. (Frode) PPC support is not (yet) 64-bit compatible. + +64-bit compatible JIT notes: + +- 2G of Amiga address space available (vs ~1G to ~1.5G in 32-bit version under 64-bit OS). + Because JIT still requires Amiga address space inside first 4G of host process address space and + Windows allocates few pages in the middle of first 4G, 2G is the current max. Technically + this is not a problem because AmigaOS is not really designed to support RAM at 2G-4G of + address space, programs may use signed pointers and some exec functions use address bit 31 + for error state. (In theory 3G may be possible later if it is really needed) +- Use "UAE" RAM allocation mode (not "Real") if you want max available Z3 RAM (up to + 1.5G. Z3 RAM + RTG VRAM + 256M must be less than or equal to 2G. Anything more = crash. +- 64-bit JIT FPU is not fully functional yet. Do not enable. + Beta 12: - Boolean config true value converts to 1 and false to zero before doing any calculations. - someboolentry=[1-someboolentry] custom even string now works as expected. + someboolentry=[1-someboolentry] custom event string now works as expected. - Bridgeboard in VGA graphics mode only updated part of display (and sometimes nothing was updated). - ESP (53C94, FAS216 etc..) SCSI updates to support Multi Evolution (Needs FIFO used count and does odd things) - Multi Evolution 500/2000 SCSI controller emulation added.