From 49e4cff19d1dcbcd015a103ba7ab0737fb7a6e7b Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Thu, 5 Dec 2013 18:46:20 +0200 Subject: [PATCH] 2700 --- drawing.cpp | 58 ++++-- gfxboard.cpp | 4 +- include/drawing.h | 1 + od-win32/cloanto/RetroPlatformGuestIPC.cpp | 15 +- od-win32/cloanto/RetroPlatformGuestIPC.h | 11 +- od-win32/cloanto/RetroPlatformIPC.h | 37 +++- od-win32/makeexe.cmd | 4 +- od-win32/resources/winuae_minimal.rc | 208 +++++++++++++-------- od-win32/rp.cpp | 28 +-- od-win32/win32.h | 4 +- od-win32/win32_scaler.cpp | 29 ++- od-win32/win32gfx.cpp | 10 + od-win32/winuaechangelog.txt | 20 ++ od-win32/wix/Product.wxs | 4 +- 14 files changed, 299 insertions(+), 134 deletions(-) diff --git a/drawing.cpp b/drawing.cpp index d43078fe..85ae748c 100644 --- a/drawing.cpp +++ b/drawing.cpp @@ -346,6 +346,8 @@ void notice_screen_contents_lost (void) bool isnativevidbuf (void) { + if (gfxvidinfo.outbuffer == NULL) + return false; if (gfxvidinfo.outbuffer == &gfxvidinfo.drawbuffer) return true; return gfxvidinfo.outbuffer->nativepositioning; @@ -364,6 +366,7 @@ extern int lof_store; #define MAX_DISPLAY_H 283 static int gclow, gcloh, gclox, gcloy, gclorealh; +static int stored_left_start, stored_top_start, stored_width, stored_height; void get_custom_topedge (int *xp, int *yp, bool max) { @@ -412,22 +415,29 @@ static void set_blanking_limits (void) void get_custom_raw_limits (int *pw, int *ph, int *pdx, int *pdy) { - int x = visible_left_border; - if (x < visible_left_start) - x = visible_left_start; - *pdx = x; - int x2 = visible_right_border; - if (x2 > visible_right_stop) - x2 = visible_right_stop; - *pw = x2 - x; - int y = min_ypos_for_screen; - if (y < visible_top_start) - y = visible_top_start; - *pdy = y; - int y2 = max_drawn_amiga_line; - if (y2 > visible_bottom_stop) - y2 = visible_bottom_stop; - *ph = y2 - y; + if (stored_width > 0) { + *pw = stored_width; + *ph = stored_height; + *pdx = stored_left_start; + *pdy = stored_top_start; + } else { + int x = visible_left_border; + if (x < visible_left_start) + x = visible_left_start; + *pdx = x; + int x2 = visible_right_border; + if (x2 > visible_right_stop) + x2 = visible_right_stop; + *pw = x2 - x; + int y = min_ypos_for_screen; + if (y < visible_top_start) + y = visible_top_start; + *pdy = y; + int y2 = max_ypos_thisframe; + if (y2 > visible_bottom_stop) + y2 = visible_bottom_stop; + *ph = y2 - y; + } } void set_custom_limits (int w, int h, int dx, int dy) @@ -457,6 +467,22 @@ void set_custom_limits (int w, int h, int dx, int dy) set_blanking_limits (); } +void store_custom_limits (int w, int h, int x, int y) +{ + stored_left_start = x; + stored_top_start = y; + stored_width = w; + stored_height = h; +#if 0 + write_log (_T("%dx%d %dx%d %dx%d %dx%d %d\n"), x, y, w, h, + currprefs.gfx_xcenter_pos, + currprefs.gfx_ycenter_pos, + currprefs.gfx_xcenter_size, + currprefs.gfx_ycenter_size, + currprefs.gfx_filter_autoscale); +#endif +} + int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy, int *prealh) { int w, h, dx, dy, y1, y2, dbl1, dbl2; diff --git a/gfxboard.cpp b/gfxboard.cpp index f97cd462..1c88e645 100644 --- a/gfxboard.cpp +++ b/gfxboard.cpp @@ -2090,8 +2090,8 @@ void gfxboard_init_memory (void) } gfxboard_intena = true; } else { - error_log (_T("Picasso IV: '%s' flash rom image not found\n"), path); - gui_message (_T("Couldn't load Picasso IV flash rom image:\n%s"), path); + error_log (_T("Picasso IV: '%s' flash rom image not found!\nAvailable from http://www.sophisticated-development.de/\nPIV_FlashImageXX -> picasso_iv_flash.rom"), path); + gui_message (_T("Picasso IV: '%s' flash rom image not found!\nAvailable from http://www.sophisticated-development.de/\nPIV_FlashImageXX -> picasso_iv_flash.rom"), path); } } diff --git a/include/drawing.h b/include/drawing.h index c06aa1c4..7822fa3e 100644 --- a/include/drawing.h +++ b/include/drawing.h @@ -281,6 +281,7 @@ extern void frame_drawn (void); extern void redraw_frame (void); extern bool draw_frame (struct vidbuffer*); extern int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy, int *prealh); +extern void store_custom_limits (int w, int h, int dx, int dy); extern void set_custom_limits (int w, int h, int dx, int dy); extern void get_custom_topedge (int *x, int *y, bool max); extern void get_custom_raw_limits (int *pw, int *ph, int *pdx, int *pdy); diff --git a/od-win32/cloanto/RetroPlatformGuestIPC.cpp b/od-win32/cloanto/RetroPlatformGuestIPC.cpp index a929792a..fc8f3420 100644 --- a/od-win32/cloanto/RetroPlatformGuestIPC.cpp +++ b/od-win32/cloanto/RetroPlatformGuestIPC.cpp @@ -1,15 +1,16 @@ /***************************************************************************** Name : RetroPlatformGuestIPC.c Project : RetroPlatform Player - Client : Cloanto Italia srl Support : http://www.retroplatform.com - Legal : Copyright 2007-2009 Cloanto Italia srl - All rights reserved. This - : file is made available under the terms of the GNU General Public - : License version 2 as published by the Free Software Foundation. + Legal : Copyright 2007-2012 Cloanto Italia srl - All rights reserved. This + : file is multi-licensed under the terms of the Mozilla Public License + : version 2.0 as published by Mozilla Corporation and the GNU General + : Public License, version 2 or later, as published by the Free + : Software Foundation. Authors : os, mcb Created : 2007-08-24 15:28:48 - Updated : 2009-05-14 10:12:43 - Comment : RP Player interprocess communication functions (guest side) + Updated : 2012-11-29 13:47:00 + Comment : RetroPlatform Player interprocess communication functions (guest side) Note : Can be compiled both in Unicode and Multibyte projects *****************************************************************************/ @@ -22,7 +23,7 @@ static LRESULT CALLBACK RPGuestWndProc(HWND hWnd, UINT message, WPARAM wParam, L static const _TCHAR g_szHostWndClass[] = _T(RPIPC_HostWndClass); static const _TCHAR g_szGuestWndClass[] = _T(RPIPC_GuestWndClass); -static const WCHAR g_szRegistration[] = _T("Cloanto(R) RetroPlatform(TM)"); +static const WCHAR g_szRegistration[] = L"Cloanto(R) RetroPlatform(TM)"; diff --git a/od-win32/cloanto/RetroPlatformGuestIPC.h b/od-win32/cloanto/RetroPlatformGuestIPC.h index 68b0a837..c064e125 100644 --- a/od-win32/cloanto/RetroPlatformGuestIPC.h +++ b/od-win32/cloanto/RetroPlatformGuestIPC.h @@ -1,12 +1,13 @@ /***************************************************************************** Name : RetroPlatformGuestIPC.h Project : RetroPlatform Player - Client : Cloanto Italia srl Support : http://www.retroplatform.com - Legal : Copyright 2007-2012 Cloanto Italia srl - All rights reserved. This - : file is made available under the terms of the Mozilla Public License - : version 2.0 as published by Mozilla Corporation. - Authors : os + Legal : Copyright 2007-2013 Cloanto Italia srl - All rights reserved. This + : file is multi-licensed under the terms of the Mozilla Public License + : version 2.0 as published by Mozilla Corporation and the GNU General + : Public License, version 2 or later, as published by the Free + : Software Foundation. + Authors : os, mcb Created : 2007-08-24 15:29:26 Updated : 2012-11-29 13:47:00 Comment : RetroPlatform Player interprocess communication include file (guest side) diff --git a/od-win32/cloanto/RetroPlatformIPC.h b/od-win32/cloanto/RetroPlatformIPC.h index 31dec8ee..d143bf21 100644 --- a/od-win32/cloanto/RetroPlatformIPC.h +++ b/od-win32/cloanto/RetroPlatformIPC.h @@ -1,14 +1,15 @@ /***************************************************************************** Name : RetroPlatformIPC.h Project : RetroPlatform Player - Client : Cloanto Italia srl Support : http://www.retroplatform.com Legal : Copyright 2007-2013 Cloanto Italia srl - All rights reserved. This - : file is made available under the terms of the Mozilla Public License - : version 2.0 as published by Mozilla Corporation. + : file is multi-licensed under the terms of the Mozilla Public License + : version 2.0 as published by Mozilla Corporation and the GNU General + : Public License, version 2 or later, as published by the Free + : Software Foundation. Authors : os, mcb Created : 2007-08-27 13:55:49 - Updated : 2013-03-20 17:30:00 + Updated : 2013-12-02 10:26:00 Comment : RetroPlatform Player interprocess communication include file *****************************************************************************/ @@ -119,16 +120,19 @@ typedef struct RPScreenMode { DWORD dwScreenMode; // RP_SCREENMODE_* values and flags - LONG lClipLeft; // in guest pixel units; -1 = ignore (0 is a valid value); see http://www.retroplatform.com/kb/19-115 - LONG lClipTop; // in guest pixel units; -1 = ignore (0 is a valid value) - LONG lClipWidth; // in guest pixel units; -1 = ignore - LONG lClipHeight; // in guest pixel units; -1 = ignore + LONG lClipLeft; // in guest pixel units (Amiga: Super Hires or RTG); -1 = ignore (0 is a valid value); see http://www.retroplatform.com/kb/19-115 + LONG lClipTop; // in guest pixel units (Amiga: interlaced or RTG); -1 = ignore (0 is a valid value) + LONG lClipWidth; // in guest pixel units (Amiga: Super Hires or RTG); -1 = ignore + LONG lClipHeight; // in guest pixel units (Amiga: interlaced or RTG); -1 = ignore HWND hGuestWindow; // only valid for RP_IPC_TO_HOST_SCREENMODE DWORD dwClipFlags; // clip flags (or 0) LONG lTargetWidth; // in exact host pixels; if set, must also set lTargetHeight; ignored unless RP_SCREENMODE_SCALE_TARGET is set (resulting size is result of clipping and scaling); RP_SCREENMODE_SCALING_SUBPIXEL and RP_SCREENMODE_SCALING_STRETCH are taken into account LONG lTargetHeight; // in exact host pixels, used with lTargetWidth } RPSCREENMODE; +// See below for more notes about lClipLeft, lClipTop, lClipWidth, lClipHeight, etc. + + // Scaling Factor (for Window and Fullscreen) #define RP_SCREENMODE_SCALE_1X 0x00000000 // 1x window or fullscreen mode ("CGA mode") #define RP_SCREENMODE_SCALE_2X 0x00000001 // 2x window or fullscreen mode ("VGA mode") @@ -217,7 +221,7 @@ typedef struct RPScreenMode // // Example 2: An unknown Amiga application or one that has no known clip offset/size will start with RP_CLIPFLAGS_AUTOCLIP. // The guest (e.g. WinUAE) will apply whatever logic it can to minimize the visible overscan region. -// The guest will send to the host the actual RPScreenMode data with the offset/size details that were applied. +// The guest will send to the host the actual RPScreenMode data (with clipping details, rather than with -1) with the offset/size details that were applied. // In windowed mode, RP_SCREENMODE_SCALE_nX scaling is applied like in the previous example. // RP_SCREENMODE_FULLSCREEN_SHARED and RP_SCREENMODE_FULLSCREEN_EXCLUSIVE modes behave like in the previous example (scaling, etc.) // If an Amiga application sets a different Amiga or RTG chipset screen mode, the "container" window size may change (because it is not constrained by any host-set clipping values), in consideration of RP_SCREENMODE_SCALE_nX. @@ -235,6 +239,16 @@ typedef struct RPScreenMode // // In window mode, after a change of clipping or size, the player may have to reset the visual hilight of the 1X, 2X etc. buttons according to new RP_IPC_TO_HOST_SCREENMODE data (setting a hilight if the correct scaling button is present in the user interface, or removing all hilights if the corresponding button is missing). // +// If the host finds an unexpected "-1" or an out-of-bounds value in the lClipLeft/Top/Width/Height +// values when it needs to display a clipping outline (for editing) +// to the user, it can solve the problem (rather than making the editing action unavailable) in +// one of two ways: +// +// - Display a "widest possible" outline (as if there was no clipping) and let the user narrow +// that manually +// +// - Apply its own auto-clipping logic (as already used when images are dragged and dropped to +// add preview thumbnails) to set an initial outline, and let the user change it from there // RPInputDeviceDescription (used by initial host device enumeration via RP_IPC_TO_HOST_INPUTDEVICE, right after RP_IPC_TO_HOST_FEATURES and before RP_IPC_TO_HOST_SCREENMODE) @@ -428,6 +442,11 @@ typedef struct RPScreenCapture // The top-left origin of the Filtered bitmap should match the origin as displayed in the playback // window (i.e. net of clipping). // +// If the host needs the "raw" bitmap (e.g. to allow the user to edit the clipping outline), but the +// guest for some reason did not provide it (although it is always desirable), then the host +// will reconstruct a synthetic unclipped bitmap by adding blank borders (background color, if known, +// or black). If needed, the guest can use a similar approach rather than sending no "raw" bitmap at all. +// // Return codes for RP_IPC_TO_GUEST_SCREENCAPTURE #define RP_SCREENCAPTURE_ERROR 0x00000000 // non-error is always >= 1 (because of "MODE" flags) diff --git a/od-win32/makeexe.cmd b/od-win32/makeexe.cmd index cb9f40ee..18c5df34 100644 --- a/od-win32/makeexe.cmd +++ b/od-win32/makeexe.cmd @@ -1,11 +1,11 @@ del *.zip copy d:\amiga\winuae.exe c:\projects\winuae\distribution -"c:\program files (x86)\NSIS\makensis.exe" winuae_install +# "c:\program files (x86)\NSIS\makensis.exe" winuae_install cd c:\projects\winuae\distribution copy docs\windows\translation.txt d:\amiga zip -9 -r c:\projects\winuae\src\od-win32\winuae.zip * cd c:\projects\winuae\src\od-win32 -copy installwinuae.exe d:\amiga\InstallWinUAE%1.exe +# copy installwinuae.exe d:\amiga\InstallWinUAE%1.exe copy winuae.zip d:\amiga\WinUAE%1.zip copy resourcedll\release\resourcedll.dll d:\amiga\WinUAE_default.dll cdd d:\amiga diff --git a/od-win32/resources/winuae_minimal.rc b/od-win32/resources/winuae_minimal.rc index 7c718a70..03c15ac9 100644 --- a/od-win32/resources/winuae_minimal.rc +++ b/od-win32/resources/winuae_minimal.rc @@ -1,16 +1,7 @@ // Microsoft Visual C++ generated resource script. // -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// #include "winres.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - +#include "resource.h" ///////////////////////////////////////////////////////////////////////////// // English resources @@ -113,7 +104,7 @@ BEGIN PUSHBUTTON "...",IDC_RTCCHOOSER,376,189,10,15 END -IDD_DISPLAY DIALOGEX 0, 0, 396, 272 +IDD_DISPLAY DIALOGEX 0, 0, 396, 279 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN @@ -122,10 +113,10 @@ BEGIN RTEXT "Fullscreen:",IDC_STATIC,3,33,51,15,SS_CENTERIMAGE COMBOBOX IDC_RESOLUTION,59,33,76,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_RESOLUTIONDEPTH,144,33,62,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_REFRESHRATE,266,33,119,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP RTEXT "Windowed:",IDC_STATIC,2,54,51,15,SS_CENTERIMAGE EDITTEXT IDC_XSIZE,59,56,56,12,ES_NUMBER EDITTEXT IDC_YSIZE,122,56,56,12,ES_NUMBER - COMBOBOX IDC_REFRESHRATE,266,33,119,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_DISPLAY_BUFFERCNT,266,56,119,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP GROUPBOX "Settings",IDC_SETTINGSTEXT,1,86,283,144 RTEXT "Native:",IDC_STATIC,9,98,48,15,SS_CENTERIMAGE @@ -135,8 +126,8 @@ BEGIN COMBOBOX IDC_SCREENMODE_RTG,61,118,71,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_SCREENMODE_RTG2,142,118,127,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP CONTROL "Blacker than black",IDC_BLACKER_THAN_BLACK,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,11,140,142,10 - CONTROL "Remove interlace artifacts",IDC_FLICKERFIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,154,142,10 CONTROL "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,140,116,10 + CONTROL "Remove interlace artifacts",IDC_FLICKERFIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,154,142,10 CONTROL "Resolution autoswitch",IDC_AUTORESOLUTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,154,116,10 RTEXT "Resolution:",IDC_STATIC,27,170,110,8,SS_CENTERIMAGE COMBOBOX IDC_LORES,142,169,127,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP @@ -147,17 +138,22 @@ BEGIN CONTROL "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,71,206,99,20 EDITTEXT IDC_RATE2TEXT,181,210,46,12,ES_AUTOHSCROLL CONTROL "",IDC_RATE2ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,232,211,8,10 - GROUPBOX "Centering",IDC_STATIC,289,86,105,49 + GROUPBOX "Centering",IDC_STATIC,289,86,105,46 CONTROL "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,300,100,90,10 CONTROL "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,300,116,90,10 - GROUPBOX "Line Mode",IDC_LINEMODE,290,139,104,90 - CONTROL "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,299,161,90,10 - CONTROL "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,177,90,10 - CONTROL "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,193,90,10 + GROUPBOX "Line mode",IDC_STATIC,290,134,104,63 + CONTROL "Single",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,299,150,90,10 + CONTROL "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,166,90,10 + CONTROL "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,182,90,10 + GROUPBOX "Interlaced line mode",IDC_STATIC,290,199,104,70 + CONTROL "Single",IDC_LM_INORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,299,214,90,10 + CONTROL "Double, frames",IDC_LM_IDOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,228,90,10 + CONTROL "Double, fields",IDC_LM_IDOUBLED2,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,241,90,10 + CONTROL "Double, fields+",IDC_LM_IDOUBLED3,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,254,90,10 COMBOBOX IDC_DA_MODE,15,245,71,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP CONTROL "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,96,241,96,20 EDITTEXT IDC_DA_TEXT,205,245,56,12,ES_AUTOHSCROLL | ES_READONLY - PUSHBUTTON "Reset to defaults",IDC_DA_RESET,289,245,106,14 + PUSHBUTTON "Reset to defaults",IDC_DA_RESET,156,263,106,14 END IDD_MEMORY DIALOGEX 0, 0, 396, 206 @@ -221,8 +217,8 @@ BEGIN CONTROL "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,308,85,69,21 GROUPBOX "Cycle-exact CPU Emulation Speed",IDC_STATIC,136,121,258,55 RTEXT "CPU Frequency",IDC_STATIC,139,145,67,10,SS_CENTERIMAGE - COMBOBOX IDC_CPU_FREQUENCY,215,144,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT IDC_CPU_FREQUENCY2,268,143,70,15 + COMBOBOX IDC_CPU_FREQUENCY,215,144,89,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_CPU_FREQUENCY2,312,143,70,15 GROUPBOX "FPU",IDC_STATIC,1,181,129,99,BS_LEFT CONTROL "None",IDC_FPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,8,195,87,10 CONTROL "68881",IDC_FPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,8,209,87,10 @@ -252,34 +248,34 @@ FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN GROUPBOX "Floppy Drives",IDC_SETTINGSTEXT3,1,0,393,163 CONTROL "DF0:",IDC_DF0ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,14,34,15 - PUSHBUTTON "Delete save image",IDC_SAVEIMAGE0,97,13,78,15,NOT WS_VISIBLE - COMBOBOX IDC_DF0TYPE,180,14,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Write-protected",IDC_STATIC,249,17,74,10,SS_CENTERIMAGE - CONTROL "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,328,13,10,15 + PUSHBUTTON "Delete save image",IDC_SAVEIMAGE0,69,13,78,15,NOT WS_VISIBLE + COMBOBOX IDC_DF0TYPE,152,14,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Write-protected",IDC_STATIC,221,17,74,10,SS_CENTERIMAGE + CONTROL "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,300,13,10,15 PUSHBUTTON "Eject",IDC_EJECT0,345,12,30,15 PUSHBUTTON "...",IDC_DF0,379,12,10,15 COMBOBOX IDC_DF0TEXT,6,31,384,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP CONTROL "DF1:",IDC_DF1ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,51,34,15 - PUSHBUTTON "Delete save image",IDC_SAVEIMAGE1,97,49,78,15,NOT WS_VISIBLE - COMBOBOX IDC_DF1TYPE,180,51,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Write-protected",IDC_STATIC,249,53,74,10,SS_CENTERIMAGE - CONTROL "",IDC_DF1WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,328,50,10,15 + PUSHBUTTON "Delete save image",IDC_SAVEIMAGE1,69,49,78,15,NOT WS_VISIBLE + COMBOBOX IDC_DF1TYPE,152,51,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Write-protected",IDC_STATIC,221,53,74,10,SS_CENTERIMAGE + CONTROL "",IDC_DF1WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,300,50,10,15 PUSHBUTTON "Eject",IDC_EJECT1,345,49,30,15 PUSHBUTTON "...",IDC_DF1,379,49,10,15 COMBOBOX IDC_DF1TEXT,6,68,383,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP CONTROL "DF2:",IDC_DF2ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,87,34,15 - PUSHBUTTON "Delete save image",IDC_SAVEIMAGE2,97,85,78,15,NOT WS_VISIBLE - COMBOBOX IDC_DF2TYPE,180,87,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Write-protected",IDC_STATIC,250,88,73,10,SS_CENTERIMAGE - CONTROL "",IDC_DF2WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,328,86,9,15 + PUSHBUTTON "Delete save image",IDC_SAVEIMAGE2,69,85,78,15,NOT WS_VISIBLE + COMBOBOX IDC_DF2TYPE,152,87,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Write-protected",IDC_STATIC,222,88,73,10,SS_CENTERIMAGE + CONTROL "",IDC_DF2WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,300,86,9,15 PUSHBUTTON "Eject",IDC_EJECT2,345,85,30,15 PUSHBUTTON "...",IDC_DF2,379,85,10,15 COMBOBOX IDC_DF2TEXT,6,104,384,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP CONTROL "DF3:",IDC_DF3ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,123,34,15 - PUSHBUTTON "Delete save image",IDC_SAVEIMAGE3,97,121,78,15,NOT WS_VISIBLE - COMBOBOX IDC_DF3TYPE,180,123,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Write-protected",IDC_STATIC,250,125,73,10,SS_CENTERIMAGE - CONTROL "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,328,123,9,15 + PUSHBUTTON "Delete save image",IDC_SAVEIMAGE3,69,121,78,15,NOT WS_VISIBLE + COMBOBOX IDC_DF3TYPE,152,123,65,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Write-protected",IDC_STATIC,222,125,73,10,SS_CENTERIMAGE + CONTROL "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,300,123,9,15 PUSHBUTTON "Eject",IDC_EJECT3,345,121,30,15 PUSHBUTTON "...",IDC_DF3,379,121,10,15 COMBOBOX IDC_DF3TEXT,6,140,383,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP @@ -294,6 +290,10 @@ BEGIN EDITTEXT IDC_CREATE_NAME,130,243,97,13,ES_AUTOHSCROLL CONTROL "Bootblock",IDC_FLOPPY_BOOTABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,235,242,59,15 CONTROL "FFS",IDC_FLOPPY_FFS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,300,242,34,15 + PUSHBUTTON "?",IDC_INFO0,323,12,17,15 + PUSHBUTTON "?",IDC_INFO1,323,49,17,15 + PUSHBUTTON "?",IDC_INFO2,323,85,17,15 + PUSHBUTTON "?",IDC_INFO3,323,122,17,15 END IDD_HARDDISK DIALOGEX 0, 0, 396, 315 @@ -325,7 +325,8 @@ BEGIN COMBOBOX IDC_CD_TYPE,282,279,71,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Eject",IDC_CD_EJECT,360,278,30,15 COMBOBOX IDC_CD_TEXT,5,297,386,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Add SCSI/IDE CD Drive",IDC_NEW_CD,135,176,126,15 + PUSHBUTTON "Add SCSI/IDE CD Drive",IDC_NEW_CD,1,176,128,15 + PUSHBUTTON "Add SCSI Tape Drive",IDC_NEW_TAPE,135,176,126,15 END IDD_SOUND DIALOGEX 0, 0, 396, 288 @@ -466,13 +467,23 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,195,270,160,11 END -IDD_CONTRIBUTORS DIALOGEX 0, 0, 411, 242 +IDD_CONTRIBUTORS DIALOGEX 0, 0, 530, 345 STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION CAPTION "UAE Authors and Contributors..." FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Ok",ID_OK,177,224,53,14 - CONTROL "",IDC_CONTRIBUTORS,"RICHEDIT",TCS_HOTTRACK | TCS_VERTICAL | TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,4,5,404,214 + DEFPUSHBUTTON "Ok",ID_OK,238,324,53,14 + CONTROL "",IDC_CONTRIBUTORS,"RICHEDIT",TCS_HOTTRACK | TCS_VERTICAL | TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,4,5,521,311 +END + +IDD_ERRORLOG DIALOGEX 0, 0, 530, 345 +STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "Configuration error log" +FONT 8, "MS Sans Serif", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "OK",IDOK,176,322,65,15 + CONTROL "",IDC_ERRORLOGMESSAGE,"RICHEDIT",TCS_HOTTRACK | TCS_VERTICAL | TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,4,5,521,309 + PUSHBUTTON "Clear log",IDC_ERRORLOGCLEAR,288,322,65,15 END IDD_ABOUT DIALOGEX 0, 0, 345, 258 @@ -536,7 +547,7 @@ CAPTION "Hardfile Settings" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN GROUPBOX "Settings",IDC_STATIC,2,2,392,164 - RTEXT "Path:",IDC_HARDFILE_DIR_TEXT,25,18,22,10 + RTEXT "Path:",IDC_HARDFILE_DIR_TEXT,10,18,37,10 EDITTEXT IDC_PATH_NAME,52,15,325,15,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_SELECTOR,380,14,11,15 RTEXT "FileSys:",IDC_HARDFILE_FILESYS_TEXT,13,38,34,10 @@ -651,7 +662,7 @@ BEGIN "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,147,181,10 END -IDD_CHIPSET2 DIALOGEX 0, 0, 396, 288 +IDD_CHIPSET2 DIALOGEX 0, 0, 396, 296 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN @@ -666,41 +677,42 @@ BEGIN CONTROL "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,41,68,86,10 CONTROL "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,133,68,109,10 CONTROL "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,249,68,116,10 - GROUPBOX "Chipset Features",IDC_STATIC,1,88,393,146 + GROUPBOX "Chipset Features",IDC_STATIC,1,88,393,158 CONTROL "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,102,104,11 CONTROL "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,116,104,11 CONTROL "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,130,105,11 CONTROL "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,143,104,11 CONTROL "ROM Mirror (E0)",IDC_CS_KSMIRROR_E0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,157,104,11 CONTROL "KB Reset Warning",IDC_CS_RESETWARNING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,171,104,11 - LTEXT "A4091/A4000T SCSI not yet implemented.",IDC_STATIC,17,187,247,8,SS_CENTERIMAGE - CONTROL "A590/A2091 SCSI",IDC_CS_A2091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,202,104,11 - CONTROL "A4091 SCSI",IDC_CS_A4091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,215,104,11 + LTEXT "A4091/A4000T SCSI not yet implemented.",IDC_STATIC,17,202,247,8,SS_CENTERIMAGE + CONTROL "A590/A2091 SCSI",IDC_CS_A2091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,216,104,11 + CONTROL "A4091 SCSI",IDC_CS_A4091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,229,104,11 CONTROL "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,102,121,11 CONTROL "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,116,121,11 CONTROL "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,129,121,11 CONTROL "A4000/A4000T IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,143,121,11 CONTROL "ROM Mirror (A8)",IDC_CS_KSMIRROR_A8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,157,121,11 CONTROL "No-EHB Denise",IDC_CS_NOEHB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,171,121,11 - CONTROL "A3000 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,202,121,11 - CONTROL "CDTV SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,215,121,11 + CONTROL "A3000 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,216,121,11 + CONTROL "CDTV SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,229,121,11 CONTROL "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,102,125,11 CONTROL "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,116,125,11 CONTROL "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,129,125,11 CONTROL "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,143,125,11 CONTROL "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,157,125,11 CONTROL "A1000 Agnus (8361/8367)",IDC_CS_DIPAGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,171,125,11 - CONTROL "A4000T SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,202,125,11 - CONTROL "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,215,125,11 - GROUPBOX "Chipset Revision",IDC_STATIC,1,236,393,46 - CONTROL "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,248,97,11 - CONTROL "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,262,97,11 - EDITTEXT IDC_CS_RAMSEYREV,136,247,45,13,ES_AUTOHSCROLL - EDITTEXT IDC_CS_FATGARYREV,136,262,45,13,ES_AUTOHSCROLL - CONTROL "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,248,107,11 - CONTROL "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,262,107,11 - EDITTEXT IDC_CS_AGNUSREV,311,247,45,13,ES_AUTOHSCROLL - EDITTEXT IDC_CS_DENISEREV,311,262,45,13,ES_AUTOHSCROLL + CONTROL "A4000T SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,216,125,11 + CONTROL "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,229,125,11 + GROUPBOX "Chipset Revision",IDC_STATIC,1,249,393,46 + CONTROL "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,261,97,11 + CONTROL "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,275,97,11 + EDITTEXT IDC_CS_RAMSEYREV,136,260,45,13,ES_AUTOHSCROLL + EDITTEXT IDC_CS_FATGARYREV,136,275,45,13,ES_AUTOHSCROLL + CONTROL "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,261,107,11 + CONTROL "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,275,107,11 + EDITTEXT IDC_CS_AGNUSREV,311,260,45,13,ES_AUTOHSCROLL + EDITTEXT IDC_CS_DENISEREV,311,275,45,13,ES_AUTOHSCROLL + CONTROL "CIA TOD bug",IDC_CS_CIATODBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,184,104,11 END IDD_AVIOUTPUT DIALOGEX 0, 0, 396, 260 @@ -878,6 +890,7 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,375,328,47,14 PUSHBUTTON "Cancel",IDCANCEL,427,328,47,14 PUSHBUTTON "Help",IDHELP,479,328,47,14,WS_DISABLED + PUSHBUTTON "Error log",IDC_ERRORLOG,322,328,47,14,NOT WS_VISIBLE END IDD_PATHS DIALOGEX 0, 0, 396, 303 @@ -914,10 +927,11 @@ BEGIN CONTROL "Use relative paths",IDC_PATHS_RELATIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,199,231,189,11 EDITTEXT IDC_LOGPATH,7,281,324,13,ES_READONLY PUSHBUTTON "Open [] Open selected file.",IDC_LOGOPEN,337,280,51,14 - COMBOBOX IDC_LOGSELECT,7,263,169,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - CONTROL "Enable full logging (temporary)",IDC_LOGENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,186,264,140,12 + COMBOBOX IDC_LOGSELECT,7,263,137,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + CONTROL "Enable full logging",IDC_LOGENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,264,93,12 PUSHBUTTON "Save All [] Save and open both logs and config file.",IDC_LOGSAVE,337,264,51,14 GROUPBOX "Debug logging",IDC_STATIC,1,248,393,53 + CONTROL "Log window",IDC_LOGENABLE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,254,264,68,12 END IDD_QUICKSTART DIALOGEX 0, 0, 396, 262 @@ -955,6 +969,8 @@ BEGIN GROUPBOX "Mode",IDC_STATIC,250,231,144,28,BS_LEFT CONTROL "Start in Quickstart mode",IDC_QUICKSTARTMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,259,242,131,12 COMBOBOX IDC_CD0Q_TYPE,199,187,74,50,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "?",IDC_INFO0Q,334,148,19,15 + PUSHBUTTON "?",IDC_INFO1Q,334,186,19,15 END IDD_FRONTEND DIALOGEX 0, 0, 420, 242 @@ -1037,8 +1053,8 @@ STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN GROUPBOX "RTG Graphics Card",IDC_STATIC,1,0,393,189 - COMBOBOX IDC_RTG_Z2Z3,26,14,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - RTEXT "Memory: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,2,35,76,10,SS_NOTIFY | SS_CENTERIMAGE + COMBOBOX IDC_RTG_Z2Z3,26,14,118,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + RTEXT "VRAM size: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,2,35,76,10,SS_NOTIFY | SS_CENTERIMAGE CONTROL "",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,31,60,20 EDITTEXT IDC_P96RAM,152,34,40,12,ES_CENTER | ES_READONLY CONTROL "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH, @@ -1069,11 +1085,11 @@ BEGIN GROUPBOX "Network",IDC_STATIC,181,197,213,80 CONTROL "bsdsocket.library [] bsdsocket network library emulation.",IDC_SOCKETS, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,216,187,11 - CONTROL "uaenet.device [] Sana 2 compatible network device emulation. WinPcap required.",IDC_SANA2, + CONTROL "uaenet.device [] Sana 2 compatible network device emulation.",IDC_SANA2, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,229,187,11 - CONTROL "A2065 Z2 [] A2065 Ethernet Zorro II card emulation. WinPcap required.",IDC_A2065, + CONTROL "A2065 Z2 [] A2065 Ethernet Zorro II card emulation.",IDC_A2065, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,242,187,11 - COMBOBOX IDC_NETDEVICE,202,257,156,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_NETDEVICE,202,257,178,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Always center",IDC_RTG_CENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,93,212,10 END @@ -1130,6 +1146,32 @@ BEGIN CONTROL "",IDC_CDLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,4,4,387,77 END +IDD_TAPEDRIVE DIALOGEX 0, 0, 395, 80 +STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Tape Drive Settings" +FONT 8, "MS Sans Serif", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Add Tape Drive",IDOK,201,58,88,14 + PUSHBUTTON "Cancel",IDCANCEL,300,58,87,14 + RTEXT "HD Controller:",IDC_STATIC,35,61,65,10,SS_CENTERIMAGE + COMBOBOX IDC_HDF_CONTROLLER,115,59,61,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_PATH_NAME,52,15,334,15,ES_AUTOHSCROLL + RTEXT "Path:",IDC_STATIC,4,18,43,10,SS_CENTERIMAGE + PUSHBUTTON "Select Directory",IDC_TAPE_SELECT_DIR,19,36,123,15 + PUSHBUTTON "Select Archive or Plain File",IDC_TAPE_SELECT_FILE,160,36,123,15 + CONTROL "Read/write",IDC_TAPE_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,313,39,67,10 +END + +IDD_DISKINFO DIALOGEX 0, 0, 491, 323 +STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Disk image information" +FONT 8, "MS Sans Serif", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "OK",IDOK,220,303,50,14 + EDITTEXT IDC_DISKINFOBOX,5,4,481,292,ES_MULTILINE | ES_READONLY | WS_VSCROLL + PUSHBUTTON "Save bootblock",IDC_SAVEBOOTBLOCK,397,303,89,14,NOT WS_VISIBLE +END + ///////////////////////////////////////////////////////////////////////////// // @@ -1137,8 +1179,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,6,1,0 - PRODUCTVERSION 2,6,1,0 + FILEVERSION 2,7,0,0 + PRODUCTVERSION 2,7,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -1154,12 +1196,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "WinUAE" - VALUE "FileVersion", "2.6.1.0" + VALUE "FileVersion", "2.7.0.0" VALUE "InternalName", "WinUAE" VALUE "LegalCopyright", "© 1996-2013 under the GNU Public License (GPL)" VALUE "OriginalFilename", "WinUAE.exe" VALUE "ProductName", "WinUAE" - VALUE "ProductVersion", "2.6.1.0" + VALUE "ProductVersion", "2.7.0.0" END END BLOCK "VarFileInfo" @@ -1255,6 +1297,7 @@ BEGIN END END + ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO @@ -1308,6 +1351,10 @@ BEGIN BEGIN END + IDD_ERRORLOG, DIALOG + BEGIN + END + IDD_ABOUT, DIALOG BEGIN END @@ -1412,6 +1459,14 @@ BEGIN IDD_CDDRIVE, DIALOG BEGIN END + + IDD_TAPEDRIVE, DIALOG + BEGIN + END + + IDD_DISKINFO, DIALOG + BEGIN + END END #endif // APSTUDIO_INVOKED @@ -1803,6 +1858,7 @@ BEGIN IDS_MISCLISTITEMS3 "Native on-screen display\nRTG on-screen display\nCreate winuaelog.txt log\nLog illegal memory accesses\nBlank unused displays\nStart mouse uncaptured\nStart minimized\nMinimize when focus is lost\n" IDS_JOYMODE_WHEELMOUSE "Wheel Mouse" IDS_NUMSG_KS68030PLUS "The selected system ROM requires a 68030 or higher CPU." + IDS_SELECTTAPE "Select a Tape directory or archive file..." END #endif // English resources @@ -1827,14 +1883,15 @@ BEGIN "resource.h\0" END -3 TEXTINCLUDE +2 TEXTINCLUDE BEGIN - "\r\0" + "\0" END -2 TEXTINCLUDE +3 TEXTINCLUDE BEGIN - "#include ""afxres.h""\r\0" + "\r\n" + "\0" END #endif // APSTUDIO_INVOKED @@ -1850,6 +1907,7 @@ END // Generated from the TEXTINCLUDE 3 resource. // + ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED diff --git a/od-win32/rp.cpp b/od-win32/rp.cpp index fb714134..9b5541be 100644 --- a/od-win32/rp.cpp +++ b/od-win32/rp.cpp @@ -550,7 +550,7 @@ static int shift (int val, int shift) return val; } -static void get_screenmode (struct RPScreenMode *sm, struct uae_prefs *p) +static void get_screenmode (struct RPScreenMode *sm, struct uae_prefs *p, bool getclip) { int m, cf; int full = 0; @@ -590,11 +590,17 @@ static void get_screenmode (struct RPScreenMode *sm, struct uae_prefs *p) } else { int rw, rh, rx, ry; + int xp, yp; + get_custom_raw_limits (&rw, &rh, &rx, &ry); - rw = shift (rw, RES_MAX); - rx = shift (rx, RES_MAX); - rh = shift (rh, VRES_MAX); - ry = shift (ry, VRES_MAX); + get_custom_topedge (&xp, &yp, false); + rx += xp; + ry += yp; + rw <<= RES_MAX - currprefs.gfx_resolution; + rx <<= RES_MAX - currprefs.gfx_resolution; + rh <<= VRES_MAX - currprefs.gfx_vresolution; + ry <<= VRES_MAX - currprefs.gfx_vresolution; + //write_log (_T("* %d %d %d %d\n"), rx, ry, rw, rh); hmult = p->gfx_filter_horiz_zoom_mult; vmult = p->gfx_filter_vert_zoom_mult; @@ -619,14 +625,14 @@ static void get_screenmode (struct RPScreenMode *sm, struct uae_prefs *p) m = RP_SCREENMODE_SCALE_1X; } - if (p->gfx_xcenter_pos < 0 && p->gfx_ycenter_pos < 0) { + if (getclip && p->gfx_xcenter_pos < 0 && p->gfx_ycenter_pos < 0) { sm->lClipLeft = rx; sm->lClipTop = ry; } else { sm->lClipLeft = p->gfx_xcenter_pos < 0 ? -1 : p->gfx_xcenter_pos; sm->lClipTop = p->gfx_ycenter_pos < 0 ? -1 : p->gfx_ycenter_pos; } - if (p->gfx_xcenter_size <= 0 && p->gfx_ycenter_size <= 0) { + if (getclip && p->gfx_xcenter_size <= 0 && p->gfx_ycenter_size <= 0) { sm->lClipWidth = rw; sm->lClipHeight = rh; } else { @@ -1350,7 +1356,7 @@ void rp_fixup_options (struct uae_prefs *p) } fixup_size (p); - get_screenmode (&sm, p); + get_screenmode (&sm, p, false); sm.dwScreenMode = rp_screenmode; set_screenmode (&sm, &currprefs); set_screenmode (&sm, &changed_prefs); @@ -1466,7 +1472,7 @@ void rp_input_change (int num) } if (log_rp & 1) write_log(_T("PORT%d: '%s':%d\n"), num, name, mode); - rp_device_change (RP_DEVICECATEGORY_INPUTPORT, num, mode, false, name); + rp_device_change (RP_DEVICECATEGORY_INPUTPORT, num, mode, true, name); } void rp_disk_image_change (int num, const TCHAR *name, bool writeprotected) { @@ -1703,7 +1709,7 @@ void rp_set_hwnd (HWND hWnd) } //write_log (_T("RP_IPC_TO_HOST_SCREENMODE\n")); guestwindow = hWnd; - get_screenmode (&sm, &currprefs); + get_screenmode (&sm, &currprefs, false); if (hWnd != NULL) hwndset = 1; RPSendMessagex (RP_IPC_TO_HOST_SCREENMODE, 0, 0, &sm, sizeof sm, &guestinfo, NULL); @@ -1767,7 +1773,7 @@ void rp_vsync (void) if (screenmode_request == 0) { //write_log (_T("RP_IPC_TO_HOST_SCREENMODE screenmode_request timeout\n")); struct RPScreenMode sm = { 0 }; - get_screenmode (&sm, &currprefs); + get_screenmode (&sm, &currprefs, true); RPSendMessagex (RP_IPC_TO_HOST_SCREENMODE, 0, 0, &sm, sizeof sm, &guestinfo, NULL); } } diff --git a/od-win32/win32.h b/od-win32/win32.h index 67dee9f9..2044e841 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -15,7 +15,7 @@ #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100) #define GETBDD(x) ((x) % 100) -#define WINUAEPUBLICBETA 1 +#define WINUAEPUBLICBETA 0 #define LANG_DLL 1 #if WINUAEPUBLICBETA @@ -23,7 +23,7 @@ #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2013, 11, 30) +#define WINUAEDATE MAKEBD(2013, 12, 5) #define WINUAEEXTRA _T("") //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32_scaler.cpp b/od-win32/win32_scaler.cpp index 727f0fd5..7820b6fc 100644 --- a/od-win32/win32_scaler.cpp +++ b/od-win32/win32_scaler.cpp @@ -156,6 +156,8 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height float filter_horiz_offset = currprefs.gfx_filter_horiz_offset / 10000.0f; float filter_vert_offset = currprefs.gfx_filter_vert_offset / 10000.0f; + store_custom_limits (-1, -1, -1, -1); + if (!usedfilter && !currprefs.gfx_api) { filter_horiz_zoom = filter_vert_zoom = 0.0; filter_horiz_zoom_mult = filter_vert_zoom_mult = 1.0; @@ -258,6 +260,7 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height ch -= 25 << currprefs.gfx_vresolution; } set_custom_limits (cw, ch, cx, cy); + store_custom_limits (cw, ch, cx, cy); scl = true; } @@ -275,10 +278,15 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height get_custom_topedge (&cx, &cy, false); } - if (scalemode == AUTOSCALE_INTEGER_AUTOSCALE) + if (scalemode == AUTOSCALE_INTEGER_AUTOSCALE) { ok = get_custom_limits (&cw, &ch, &cx, &cy, &crealh) != 0; - if (scalemode == AUTOSCALE_INTEGER || ok == false) + if (ok) + store_custom_limits (cw, ch, cx, cy); + } + if (scalemode == AUTOSCALE_INTEGER || ok == false) { getmanualpos (&cx, &cy, &cw, &ch); + store_custom_limits (cw, ch, cx, cy); + } int cw2 = cw + filter_horiz_zoom; int ch2 = ch + filter_vert_zoom; @@ -322,6 +330,7 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height getmanualpos (&cx, &cy, &cw, &ch); set_custom_limits (cw, ch, cx, cy); + store_custom_limits (cw, ch, cx, cy); scl = true; //write_log (_T("%dx%d %dx%d %dx%d\n"), currprefs.gfx_xcenter_pos, currprefs.gfx_ycenter_pos, cx, cy, cw, ch); @@ -331,19 +340,23 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height } else if (scalemode == AUTOSCALE_CENTER || scalemode == AUTOSCALE_RESIZE) { cv = get_custom_limits (&cw, &ch, &cx, &cy, &crealh); + if (cv) + store_custom_limits (cw, ch, cx, cy); } else { cv = get_custom_limits (&cw, &ch, &cx, &cy, &crealh); if (cv) { set_custom_limits (cw, ch, cx, cy); + store_custom_limits (cw, ch, cx, cy); scl = true; } } - if (!scl) + if (!scl) { set_custom_limits (-1, -1, -1, -1); + } autoaspectratio = 0; if (currprefs.gfx_filter_keep_autoscale_aspect && cw > 0 && ch > 0 && crealh > 0 && (scalemode == AUTOSCALE_NORMAL || scalemode == AUTOSCALE_INTEGER_AUTOSCALE || scalemode == AUTOSCALE_MANUAL)) { @@ -612,6 +625,16 @@ end: fpux_restore (&fpuv); +#if 0 + int rw, rh, rx, ry; + get_custom_raw_limits (&rw, &rh, &rx, &ry); + rw <<= RES_MAX - currprefs.gfx_resolution; + rx <<= RES_MAX - currprefs.gfx_resolution; + rh <<= VRES_MAX - currprefs.gfx_vresolution; + ry <<= VRES_MAX - currprefs.gfx_vresolution; + write_log (_T("%d %d %d %d\n"), rx, rw, ry, rh); +#endif + } uae_u8 *getfilterbuffer (int *widthp, int *heightp, int *pitch, int *depth) diff --git a/od-win32/win32gfx.cpp b/od-win32/win32gfx.cpp index 6fa1da38..4eeb369c 100644 --- a/od-win32/win32gfx.cpp +++ b/od-win32/win32gfx.cpp @@ -2851,8 +2851,10 @@ static bool getvblankpos2 (int *vp, int *flags, bool updateprev) static bool waitvblankstate (bool state, int *maxvpos, int *flags) { int vp; + int count = 0; if (flags) *flags = 0; + uae_u32 t = getlocaltime () + 5; for (;;) { int omax = maxscanline; if (!getvblankpos2 (&vp, flags, true)) @@ -2871,6 +2873,12 @@ static bool waitvblankstate (bool state, int *maxvpos, int *flags) if (!state) return true; } + count--; + if (count < 0) { + if (getlocaltime () > t) + return false; + count = 1000; + } } } @@ -3466,6 +3474,7 @@ double vblank_calibrate (double approx_vblank, bool waitonly) struct remembered_vsync *rv; double rval = -1; struct apmode *ap = picasso_on ? &currprefs.gfx_apmode[1] : &currprefs.gfx_apmode[0]; + struct apmode *apc = picasso_on ? &changed_prefs.gfx_apmode[1] : &changed_prefs.gfx_apmode[0]; bool remembered = false; bool lace = false; @@ -3688,6 +3697,7 @@ skip: fail: write_log (_T("VSync calibration failed\n")); ap->gfx_vsync = 0; + apc->gfx_vsync = 0; return -1; } diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index eba7ac99..4394e814 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,6 +1,26 @@ - restore only single input target to default. +- If Picasso IV flash image is not found, show also link where to download it from. + +Beta 16: (RC1) + +- Z3 RTG base address was not adjusted if Processor Slot RAM was 128M. +- Writing to high BPL pointer when next cycle does same bitplane number DMA fetch: old address is + used for fetch. (Powertrax / The Light Circle graphics glitch) +- Added workaround for Windows 8.1 bug, after SetCursorPos() call WM_MOUSEMOVE returns new coordinate + as expected, then comes single message with old coordinate (this shouldn't happen) before it works + correctly again. This fixes "Windows mouse" jumping ~50 pixels while moving the mouse. Rawinput HID + mouse is not affected by this bug. (No, KB2908279 does not fix it, I guess working fix will be released someday) +- "Install mouse driver" + RTG mode has been unusable since 2600b1. +- Re-enabled "CIA TOD bug" by default but only in A500-like modes. +- Built-in HRTMon updated to 2.35 +- Built-in AROS ROM updated. Added memory hack, bootup structures are allocated from hidden memory pool + (located at 0xa80000-0xb80000, automatically enabled if built-in AROS rom is in use), when AROS starts + booting from disk or HD, hidden pool is marked as full and all following allocations come from normal RAM. + Now even 512k chip only config will boot and work with AROS rom replacement. Hack only used if CPU has 24-bit + address bus. (68000/68010/68EC020). + Beta 15: - Removing directory harddrives on the fly crashed in some situations. diff --git a/od-win32/wix/Product.wxs b/od-win32/wix/Product.wxs index 4e377945..04c9a2c1 100644 --- a/od-win32/wix/Product.wxs +++ b/od-win32/wix/Product.wxs @@ -1,11 +1,11 @@ - + - + -- 2.47.3