]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
2700 2700
authorToni Wilen <twilen@winuae.net>
Thu, 5 Dec 2013 16:46:20 +0000 (18:46 +0200)
committerToni Wilen <twilen@winuae.net>
Thu, 5 Dec 2013 16:46:20 +0000 (18:46 +0200)
14 files changed:
drawing.cpp
gfxboard.cpp
include/drawing.h
od-win32/cloanto/RetroPlatformGuestIPC.cpp
od-win32/cloanto/RetroPlatformGuestIPC.h
od-win32/cloanto/RetroPlatformIPC.h
od-win32/makeexe.cmd
od-win32/resources/winuae_minimal.rc
od-win32/rp.cpp
od-win32/win32.h
od-win32/win32_scaler.cpp
od-win32/win32gfx.cpp
od-win32/winuaechangelog.txt
od-win32/wix/Product.wxs

index d43078fe3c36bad75a2916c764ebb0a921d31f72..85ae748c1aeb15aa691d99d5d5dce1a62ece3b57 100644 (file)
@@ -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;
index f97cd462dd016b0681801a553766979a92584ca7..1c88e645bdf1e51798f6694cbb0e3126a59d37b5 100644 (file)
@@ -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);
                }
        }
 
index c06aa1c458deafc7aa68350c209a887955663c63..7822fa3eb4f32908a4b4510fd5c2b55765f9e148 100644 (file)
@@ -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);
index a929792ac40059e43ca280e8d9b74a5583b7e728..fc8f34206a30bb3456a960d44253831fe8f46f95 100644 (file)
@@ -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)";
 
 
 
index 68b0a837ce2e14096eac2de5e61209954d2f223d..c064e125003abb0495776a4b25931e25f201a831 100644 (file)
@@ -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)
index 31dec8eea53833f23471cac31cf7f5f24738239e..d143bf21102e46ae0055f5b8fd91f43d897d9051 100644 (file)
@@ -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
  *****************************************************************************/
 
 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)
index cb9f40ee47105cf35eaa963fd8e7eb85100a2438..18c5df345b2ddecf883931f365c0a044f8454674 100644 (file)
@@ -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
index 7c718a709042a33b964b6f0b99e4a73e8916efbd..03c15ac96c29ffcf8d4ec0aab38465c09851ec30 100644 (file)
@@ -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
 
index fb71413480b7544d776b3653293a06b9b7fe6a7d..9b5541be823faf326080437b4067d74cf4f96c82 100644 (file)
@@ -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);
                }
        }
index 67dee9f96d476edc02e43f55d0ec86740507f281..2044e841ec48ae1b40e1bc05cf0eef8657d046a7 100644 (file)
@@ -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")
index 727f0fd5b4b360c3d96cf9967037afcc0576a909..7820b6fc44535153ceb80e32a6ac472b8f053f6b 100644 (file)
@@ -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)
index 6fa1da38088f63ebe39fc62fd48eef41af1216c2..4eeb369ccad0a83ce3b40971ffaaeff6aaae3701 100644 (file)
@@ -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;
 }
 
index eba7ac99acc0dd19399e9cf6d4b086c96974fc46..4394e81459a7fb9e28f3471bdc06d8306d4fb134 100644 (file)
@@ -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.
index 4e377945353cb4be243beeed7d2376581f18cad6..04c9a2c11dc0c522466fd204fce7c4fe03247de3 100644 (file)
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-  <Product Id="18550701-62DA-4256-B2EA-5F7E8FA564CE" Name="WinUAE" Language="1033" Version="2.7.0.0" Manufacturer="Arabuusimiehet" UpgradeCode="88C6D045-E416-4AEA-9EE9-0B7A53EE0F16">
+  <Product Id="*" Name="WinUAE" Language="1033" Version="2.7.0.0" Manufacturer="Arabuusimiehet" UpgradeCode="88C6D045-E416-4AEA-9EE9-0B7A53EE0F16">
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
 
     <?define SRCDIST="$(var.winuae.ProjectDir)/../../../distribution/"?>
 
-    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
+    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowSameVersionUpgrades="yes"/>
     <MediaTemplate EmbedCab="yes"/>
 
     <Icon Id="ICON" SourceFile="$(var.winuae.ProjectDir)/../resources/winuae.ico"/>