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;
}
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 {
p[2 * 3 + 0] = 0;
p[2 * 3 + 1] = 0;
}
+
+ // display size changed?
if (memcmp(tmp, p, 2 * 4)) {
p[1] |= 4;
}
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
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
}
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);
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
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;
}
/*
{
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
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;
_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);
recursive--;
- return allok;
+ return failed == 0;
}
#include "drawing.h"
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 (;;) {
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);
return 0;
if (ft64.QuadPart > 0) {
regft64 = ft64.QuadPart;
- regsetlonglong (NULL, _T("BetaToken"), regft64);
+ regsetlonglong (NULL, tokenname, regft64);
}
}
#endif
#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")
#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))
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;..\..\slirp;..\..\ppc\pearpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WINVER=0x0500;_DEBUG;WIN32_IE=0x0700;WIN32;WIN64;PTR64;UAE;WINUAE;_CRT_SECURE_NO_WARNINGS;D3D_DEBUG_INFO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WINVER=0x0601;_DEBUG;_WIN32_IE=0x0700;WIN32;WIN64;PTR64;UAE;WINUAE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;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)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>LIBCMT;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;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)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;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)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>
</LinkTimeCodeGeneration>
- <RandomizedBaseAddress>true</RandomizedBaseAddress>
- <FixedBaseAddress>false</FixedBaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <FixedBaseAddress>true</FixedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<LargeAddressAware>true</LargeAddressAware>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>false</FunctionLevelLinking>
- <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<FloatingPointModel>Precise</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<LinkTimeCodeGeneration>
</LinkTimeCodeGeneration>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
- <FixedBaseAddress>false</FixedBaseAddress>
+ <FixedBaseAddress>true</FixedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<BaseAddress>0x40000000</BaseAddress>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <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;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)</AdditionalDependencies>
+ <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)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
<SetChecksum>true</SetChecksum>
+ <BaseAddress>
+ </BaseAddress>
</Link>
<Manifest>
<AdditionalManifestFiles>../resources/winuae.exe.manifest</AdditionalManifestFiles>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
- <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<FloatingPointModel>Precise</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
+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.