cfgfile_write_str (f, _T("cart"), p->cartident);
if (p->amaxromfile[0])
cfgfile_write_path (f, &p->path_rom, _T("amax_rom_file"), p->amaxromfile);
+ cfgfile_dwrite_path (f, &p->path_rom, _T("picassoiv_rom_file"), p->picassoivromfile);
cfgfile_write_bool (f, _T("kickshifter"), p->kickshifter);
cfgfile_write_bool (f, _T("ks_write_enabled"), p->rom_readwrite);
|| cfgfile_path (option, value, _T("flash_file"), p->flashfile, sizeof p->flashfile / sizeof (TCHAR), &p->path_rom)
|| cfgfile_path (option, value, _T("cart_file"), p->cartfile, sizeof p->cartfile / sizeof (TCHAR), &p->path_rom)
|| cfgfile_path (option, value, _T("rtc_file"), p->rtcfile, sizeof p->rtcfile / sizeof (TCHAR), &p->path_rom)
+ || cfgfile_path (option, value, _T("picassoiv_rom_file"), p->picassoivromfile, sizeof p->picassoivromfile / sizeof (TCHAR), &p->path_rom)
|| cfgfile_string (option, value, _T("pci_devices"), p->pci_devices, sizeof p->pci_devices / sizeof (TCHAR))
|| cfgfile_string (option, value, _T("ghostscript_parameters"), p->ghostscript_parameters, sizeof p->ghostscript_parameters / sizeof (TCHAR)))
return 1;
gfxvidinfo.drawbuffer.inwidth = AMIGA_WIDTH_MAX << currprefs.gfx_resolution;
gfxvidinfo.drawbuffer.extrawidth = currprefs.gfx_extrawidth ? currprefs.gfx_extrawidth : -1;
gfxvidinfo.drawbuffer.inwidth2 = gfxvidinfo.drawbuffer.inwidth;
- gfxvidinfo.drawbuffer.inheight = ((maxvpos_display + 1) - minfirstline + 1) << currprefs.gfx_vresolution;
+ gfxvidinfo.drawbuffer.inheight = (maxvpos_display - minfirstline + 1) << currprefs.gfx_vresolution;
gfxvidinfo.drawbuffer.inheight2 = gfxvidinfo.drawbuffer.inheight;
}
v = mmu_get_user_byte (addr, regs.s != 0, (debug_mmu_mode & 1) ? true : false, false, sz_byte);
}
} CATCH(p) {
- }
+ } ENDTRY
regs.s = olds;
} else {
v = get_byte (addr);
v = mmu_get_user_word (addr, regs.s != 0, (debug_mmu_mode & 1) ? true : false, false, sz_word);
}
} CATCH(p) {
- }
+ } ENDTRY
regs.s = olds;
} else {
v = get_word (addr);
v = mmu_get_user_long (addr, regs.s != 0, (debug_mmu_mode & 1) ? true : false, false, sz_long);
}
} CATCH(p) {
- }
+ } ENDTRY
regs.s = olds;
} else {
v = get_long (addr);
addr = mmu030_translate (addr, regs.s != 0, (debug_mmu_mode & 1), false);
} CATCH(p) {
return 0;
- }
+ } ENDTRY
regs.s = olds;
}
addrbank *ab = &get_mem_bank (addr);
console_out_f (_T(" RW"));
} CATCH(prb2) {
console_out_f (_T(" RO"));
- }
+ } ENDTRY
} CATCH(prb) {
console_out_f (_T("***********"));
- }
+ } ENDTRY
console_out_f (_T(" "));
}
console_out_f (_T("\n"));
cnt = 1;
for (;;) {
_tcscpy (path, npath);
- _tcscat (path, _T("/"));
p = path;
for (i = 0; i < cnt ;i++) {
if (i > 0)
pn = makenativepath (ui, p);
a->nname = pn;
a->aname = my_strdup (p2);
- /* find parent of a->aname (Already restored previously. I hope..) */
+ /* create path to parent dir */
if (p2 != p)
- p2[-1] = 0;
+ p2[0] = 0;
+ /* find parent of a->aname (Already restored previously. I hope..) */
base = restore_filesys_get_base (u, p);
xfree(p);
if (flags & 2) {
#include "cpummu030.h"
#include "debug.h"
+#ifdef WITH_SOFTFLOAT
#include "softfloatx80.h"
+#endif
#ifdef X86_MSVC_ASSEMBLY
#define X86_MSVC_ASSEMBLY_FPU
return;
}
if (using_simple_cycles)
- printf ("%sreturn (%d + count_cycles) * CYCLE_UNIT / 2;\n", s, cycles);
+ printf ("%sreturn %d * CYCLE_UNIT / 2 + count_cycles;\n", s, cycles);
else
printf ("%sreturn %d * CYCLE_UNIT / 2;\n", s, cycles);
}
static void addcycles000_nonce(const char *s, const char *sc)
{
if (using_simple_cycles)
- printf("%scount_cycles += %s;\n", s, sc);
+ printf("%scount_cycles += %s * CYCLE_UNIT / 2;\n", s, sc);
}
static void addcycles000 (int cycles)
printf ("\t}\n");
need_endlabel = 1;
}
- if (curi->smode == Ad16 || curi->smode == Ad8r || curi->smode == absw || curi->smode == PC16 || curi->smode == PC8r)
+ if (curi->smode == Ad16 || curi->smode == absw || curi->smode == PC16)
addcycles000 (2);
+ if (curi->smode == Ad8r || curi->smode == PC8r)
+ addcycles000 (6);
setpc ("srca");
m68k_pc_offset = 0;
fill_prefetch_full ();
TCHAR path[MAX_DPATH];
fetch_rompath (path, sizeof path / sizeof (TCHAR));
- if (rl) {
+ p4rom = NULL;
+ if (currprefs.picassoivromfile[0])
+ p4rom = read_rom_name(currprefs.picassoivromfile);
+
+ if (!p4rom && rl) {
p4rom = read_rom (rl->rd);
}
if (!p4rom) {
extern void compute_vsynctime (void);
extern void init_eventtab (void);
extern void do_cycles_ce (unsigned long cycles);
-extern void do_cycles_ce_internal (unsigned long cycles);
extern void do_cycles_ce020 (unsigned long cycles);
-extern void do_cycles_ce020_interal (unsigned long cycles);
extern void events_schedule (void);
extern void do_cycles_slow (unsigned long cycles_to_add);
extern void do_cycles_fast (unsigned long cycles_to_add);
#ifndef UAE_OPTIONS_H
#define UAE_OPTIONS_H
-#define UAEMAJOR 2
-#define UAEMINOR 9
+#define UAEMAJOR 3
+#define UAEMINOR 0
#define UAESUBREV 0
typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang;
TCHAR sername[256];
TCHAR amaxromfile[MAX_DPATH];
TCHAR a2065name[MAX_DPATH];
+ TCHAR picassoivromfile[MAX_DPATH];
struct cdslot cdslots[MAX_TOTAL_SCSI_DEVICES];
TCHAR quitstatefile[MAX_DPATH];
TCHAR statefile[MAX_DPATH];
} CATCH (prb2) {
cpu_halt (1);
return;
- }
+ } ENDTRY
goto retry;
} ENDTRY
} CATCH (prb2) {
cpu_halt (1);
return;
- }
+ } ENDTRY
goto retry;
} ENDTRY
} CATCH (prb2) {
cpu_halt (1);
return;
- }
+ } ENDTRY
goto retry;
} ENDTRY
} CATCH(prb) {
bus_error();
goto retry;
- }
+ } ENDTRY
}
/* "prefetch" 68040/060 */
} CATCH(prb) {
bus_error();
goto retry;
- }
+ } ENDTRY
}
/* "cycle exact" 68020/030 */
} CATCH(prb) {
bus_error();
goto retry;
- }
+ } ENDTRY
}
#ifdef CPUEMU_20
} CATCH(prb) {
bus_error();
goto retry;
- }
+ } ENDTRY
}
#endif
} CATCH(prb) {
bus_error();
goto retry;
- }
+ } ENDTRY
}
/* fake MMU 68k */
startbarrier = 0;
write_log(_T("Z3 REAL mapping. JIT direct compatible.\n"));
jit_direct_compatible_memory = true;
- } else if (changed_prefs.z3_mapping_mode == Z3MAPPING_AUTO) {
+ } else if (changed_prefs.z3_mapping_mode == Z3MAPPING_AUTO && currprefs.cachesize) {
changed_prefs.z3autoconfig_start = currprefs.z3autoconfig_start = Z3BASE_UAE;
jit_direct_compatible_memory = true;
- write_log(_T("Z3 UAE mapping.\n"));
+ write_log(_T("Z3 UAE mapping (auto).\n"));
} else {
changed_prefs.z3autoconfig_start = currprefs.z3autoconfig_start = Z3BASE_REAL;
write_log(_T("Z3 REAL mapping. Not JIT direct compatible.\n"));
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,9,0,0
- PRODUCTVERSION 2,9,0,0
+ FILEVERSION 3,0,0,0
+ PRODUCTVERSION 3,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "WinUAE"
- VALUE "FileVersion", "2.9.0.0"
+ VALUE "FileVersion", "3.0.0.0"
VALUE "InternalName", "WinUAE"
VALUE "LegalCopyright", "© 1996-2014 under the GNU Public License (GPL)"
VALUE "OriginalFilename", "WinUAE.exe"
VALUE "ProductName", "WinUAE"
- VALUE "ProductVersion", "2.9.0.0"
+ VALUE "ProductVersion", "3.0.0.0"
END
END
BLOCK "VarFileInfo"
HWND (WINAPI *pHtmlHelp)(HWND, LPCWSTR, UINT, LPDWORD) = NULL;
HWND hAmigaWnd, hMainWnd, hHiddenWnd, hGUIWnd;
RECT amigawin_rect, mainwin_rect;
+static RECT amigawinclip_rect;
int setcursoroffset_x, setcursoroffset_y;
static int mouseposx, mouseposy;
static UINT TaskbarRestart;
static void setcursor (int oldx, int oldy)
{
- int x = abs (amigawin_rect.right - amigawin_rect.left) / 2;
- int y = abs (amigawin_rect.bottom - amigawin_rect.top) / 2;
- mouseposx = oldx - x;
- mouseposy = oldy - y;
+ int dx = (amigawinclip_rect.left - amigawin_rect.left) + (amigawinclip_rect.right - amigawinclip_rect.left) / 2;
+ int dy = (amigawinclip_rect.top - amigawin_rect.top) + (amigawinclip_rect.bottom - amigawinclip_rect.top) / 2;
+ mouseposx = oldx - dx;
+ mouseposy = oldy - dy;
- windowmouse_max_w = (amigawin_rect.right - amigawin_rect.left) / 2 - 25;
- windowmouse_max_h = (amigawin_rect.bottom - amigawin_rect.top) / 2 - 25;
+ windowmouse_max_w = (amigawinclip_rect.right - amigawinclip_rect.left) / 2 - 50;
+ windowmouse_max_h = (amigawinclip_rect.bottom - amigawinclip_rect.top) / 2 - 50;
+ if (windowmouse_max_w < 10)
+ windowmouse_max_w = 10;
+ if (windowmouse_max_h < 10)
+ windowmouse_max_h = 10;
if (currprefs.input_magic_mouse && currprefs.input_tablet > 0 && mousehack_alive () && isfullscreen () <= 0) {
mouseposx = mouseposy = 0;
return;
}
#if MOUSECLIP_LOG
- write_log (_T("%dx%d %dx%d %dx%d %d%d (%dx%d %dx%d)\n"),
- x, y,
+ write_log (_T("%dx%d %dx%d %dx%d %dx%d (%dx%d %dx%d)\n"),
+ dx, dy,
mouseposx, mouseposy,
oldx, oldy,
- oldx + amigawin_rect.left, oldy + amigawin_rect.top,
- amigawin_rect.left, amigawin_rect.top,
- amigawin_rect.right, amigawin_rect.bottom);
+ oldx + amigawinclip_rect.left, oldy + amigawinclip_rect.top,
+ amigawinclip_rect.left, amigawinclip_rect.top,
+ amigawinclip_rect.right, amigawinclip_rect.bottom);
#endif
if (oldx >= 30000 || oldy >= 30000 || oldx <= -30000 || oldy <= -30000) {
- mouseposx = mouseposy = 0;
oldx = oldy = 0;
} else {
if (abs (mouseposx) < windowmouse_max_w && abs (mouseposy) < windowmouse_max_h)
amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom);
return;
}
- int cx = amigawin_rect.left + x;
- int cy = amigawin_rect.top + y;
+ int cx = (amigawinclip_rect.right - amigawinclip_rect.left) / 2 + amigawin_rect.left + (amigawinclip_rect.left - amigawin_rect.left);
+ int cy = (amigawinclip_rect.bottom - amigawinclip_rect.top) / 2 + amigawin_rect.top + (amigawinclip_rect.top - amigawin_rect.top);
#if MOUSECLIP_LOG
write_log (_T("SetCursorPos(%d,%d)\n"), cx, cy);
#endif
void updatemouseclip (void)
{
if (showcursor) {
+ ClipCursor(NULL);
+ amigawinclip_rect = amigawin_rect;
+ if (0 && !isfullscreen()) {
+ RECT cliprect;
+ GetClipCursor(&cliprect);
+ IntersectRect(&amigawinclip_rect, &cliprect, &amigawin_rect);
+#if MOUSECLIP_LOG
+ write_log (_T("CLIPW %dx%d %dx%d %d\n"), amigawinclip_rect.left, amigawinclip_rect.top, amigawinclip_rect.right, amigawinclip_rect.bottom, isfullscreen ());
+#endif
+ }
#if MOUSECLIP_LOG
write_log (_T("CLIP %dx%d %dx%d %d\n"), amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom, isfullscreen ());
#endif
- if (!ClipCursor (&amigawin_rect))
+ if (!ClipCursor (&amigawinclip_rect))
write_log(_T("ClipCursor error %d\n"), GetLastError());
}
}
if (!allowfullscreen && f > 0)
return;
GetWindowRect (hAmigaWnd, &amigawin_rect);
+ GetWindowRect (hAmigaWnd, &amigawinclip_rect);
#if MOUSECLIP_LOG
write_log (_T("GetWindowRect %dx%d %dx%d %d\n"), amigawin_rect.left, amigawin_rect.top, amigawin_rect.right, amigawin_rect.bottom, f);
#endif
return DefWindowProc (hWnd, message, wParam, lParam);
if (dinput_winmousemode () == 0) {
/* relative */
- int mxx = (amigawin_rect.right - amigawin_rect.left) / 2;
- int myy = (amigawin_rect.bottom - amigawin_rect.top) / 2;
+ int mxx = (amigawinclip_rect.left - amigawin_rect.left) + (amigawinclip_rect.right - amigawinclip_rect.left) / 2;
+ int myy = (amigawinclip_rect.top - amigawin_rect.top) + (amigawinclip_rect.bottom - amigawinclip_rect.top) / 2;
mx = mx - mxx;
my = my - myy;
setmousestate (dinput_winmouse (), 0, mx, 0);
setmousestate (dinput_winmouse (), 1, my, 0);
}
- } else if (isfocus () < 0 && (istablet || currprefs.input_tablet >= TABLET_MOUSEHACK)) {
+ } else if (isfocus () < 0 && (istablet || currprefs.input_tablet >= TABLET_MOUSEHACK)) {
setmousestate (0, 0, mx, 1);
setmousestate (0, 1, my, 1);
}
{
HMODULE h;
TCHAR path[MAX_DPATH];
+#ifdef WIN64
+ _tcscpy(path, _T("qemu\\"));
+ _tcscat(path, name);
+ _tcscat(path, _T("_x64.dll"));
+#else
_tcscpy(path, name);
_tcscat(path, _T(".dll"));
+#endif
h = WIN32_LoadLibrary(path);
return h;
}
#define LANG_DLL_FULL_VERSION_MATCH 1
#if WINUAEPUBLICBETA
-#define WINUAEBETA _T("25")
+#define WINUAEBETA _T("26")
#else
#define WINUAEBETA _T("")
#endif
-#define WINUAEDATE MAKEBD(2014, 11, 23)
+#define WINUAEDATE MAKEBD(2014, 12, 4)
//#define WINUAEEXTRA _T("AmiKit Preview")
//#define WINUAEEXTRA _T("Amiga Forever Edition")
static int quickstart_cdtype = 0;
static TCHAR quickstart_cddrive[16];
static int quickstart_ok, quickstart_ok_floppy;
+// don't enable yet. issues with quickstart panel
+static bool firstautoloadconfig = false;
static void addfloppytype (HWND hDlg, int n);
static void addfloppyhistory (HWND hDlg);
static void addhistorymenu (HWND hDlg, const TCHAR*, int f_text, int type, bool manglepath);
return config;
}
-static struct ConfigStruct *initloadsave (HWND hDlg, struct ConfigStruct *config)
+static struct ConfigStruct *initloadsave (HWND hDlg, struct ConfigStruct *config, bool init)
{
HTREEITEM root;
TCHAR name_buf[MAX_DPATH];
SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, workprefs.description);
root = InitializeConfigTreeView (hDlg);
if (regquerystr (NULL, configreg[configtypepanel], name_buf, &dwRFPsize)) {
+ if (init) {
+ if (_tcsicmp(name_buf, _T("default.uae")))
+ target_cfgfile_load (&workprefs, name_buf, CONFIG_TYPE_DEFAULT, 0);
+ }
struct ConfigStruct *config2 = getconfigstorefrompath (name_buf, path, configtypepanel);
if (config2)
config = config2;
DeleteConfigTree (hDlg);
config = CreateConfigStore (config, TRUE);
ConfigToRegistry (config, configtypepanel);
- config = initloadsave (hDlg, config);
+ config = initloadsave (hDlg, config, false);
InitializeConfig (hDlg, config);
}
break;
DeleteConfigTree (hDlg);
config = CreateConfigStore (config, TRUE);
ConfigToRegistry (config, configtypepanel);
- config = initloadsave (hDlg, config);
+ config = initloadsave (hDlg, config, false);
InitializeConfig (hDlg, config);
}
break;
if (HandleConfiguration (hDlg, CONFIG_DELETE, config, NULL)) {
DeleteConfigTree (hDlg);
config = CreateConfigStore (config, TRUE);
- config = initloadsave (hDlg, config);
+ config = initloadsave (hDlg, config, false);
InitializeConfig (hDlg, config);
}
break;
}
pages[LOADSAVE_ID] = hDlg;
currentpage = LOADSAVE_ID;
- config = initloadsave (hDlg, config);
+ config = initloadsave (hDlg, config, firstautoloadconfig);
+ firstautoloadconfig = false;
recursive--;
return TRUE;
TCHAR tmp1[2 * MAX_DPATH], tmp2[MAX_DPATH], hostconf[MAX_DPATH];
TCHAR *p1, *p2;
+ firstautoloadconfig = false;
qssize = sizeof (tmp1) / sizeof (TCHAR);
regquerystr (NULL, _T("QuickStartHostConfig"), hostconf, &qssize);
if (firsttime == 0 && workprefs.start_gui) {
<ProgramDataBaseFileName>$(Platform)\$(Configuration)\</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <CallingConvention>FastCall</CallingConvention>
+ <CallingConvention>Cdecl</CallingConvention>
<CompileAs>Default</CompileAs>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <Product Id="*" Name="WinUAE" Language="1033" Version="2.8.1.0" Manufacturer="Arabuusimiehet" UpgradeCode="88C6D045-E416-4AEA-9EE9-0B7A53EE0F16">
+ <Product Id="*" Name="WinUAE" Language="1033" Version="3.0.0.0" Manufacturer="Arabuusimiehet" UpgradeCode="88C6D045-E416-4AEA-9EE9-0B7A53EE0F16">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<?define SRCDIST="$(var.winuae.ProjectDir)/../../../distribution/"?>
<Component Id="AdditionalFiles13" Guid="66C7D080-B50D-41F7-BDBD-4A5EE2F70D2F">
<File Source="$(var.SRCDIST)/Amiga Programs/transrom" KeyPath="yes"/>
</Component>
- <Component Id="AdditionalFiles14" Guid="92BD1DA6-AB73-4DAA-97EF-617AF09C647B">
- <File Source="$(var.SRCDIST)/Amiga Programs/rtg.library" KeyPath="yes"/>
- </Component>
<Component Id="AdditionalFiles15" Guid="41DBB732-7ACB-4B5A-ADBA-0B48A08D5DC3">
<File Source="$(var.SRCDIST)/Amiga Programs/p96refresh" KeyPath="yes"/>
</Component>
<ComponentRef Id="AdditionalFiles11" />
<ComponentRef Id="AdditionalFiles12" />
<ComponentRef Id="AdditionalFiles13" />
- <ComponentRef Id="AdditionalFiles14" />
<ComponentRef Id="AdditionalFiles15" />
<ComponentRef Id="AdditionalFiles16" />
<ComponentRef Id="AdditionalFiles17" />