return 0;
}
action_replay_flag = ACTION_REPLAY_INACTIVE;
- armemory_rom = (uae_u8*)xmalloc (ar_rom_file_size);
+ armemory_rom = xmalloc (ar_rom_file_size);
zfile_fread (armemory_rom, 1, ar_rom_file_size, f);
zfile_fclose (f);
if (ar_rom_file_size == 65536) {
}
arram_mask = arram_size - 1;
arrom_mask = arrom_size - 1;
- armemory_ram = (uae_u8*)xcalloc (arram_size, 1);
+ armemory_ram = xcalloc (arram_size, 1);
write_log (L"Action Replay %d installed at %08X, size %08X\n", armodel, arrom_start, arrom_size);
action_replay_version();
return armodel;
cfg_write (tmp, f);
if (utf8 && !unicode_config) {
char *opt = ua (option);
- if (target)
- sprintf (tmpa, "%s.%s.utf8=%s", TARGET_NAME, opt, tmp2);
- else
+ if (target) {
+ char *tna = ua (TARGET_NAME);
+ sprintf (tmpa, "%s.%s.utf8=%s", tna, opt, tmp2);
+ xfree (tna);
+ } else {
sprintf (tmpa, "%s.utf8=%s", opt, tmp2);
+ }
xfree (opt);
zfile_fwrite (tmpa, strlen (tmpa), 1, f);
zfile_fwrite (&lf, 1, 1, f);
}
i++;
}
+ if (_tcslen (s) > 2 && !_tcsncmp (s, L"w.", 2))
+ return 1;
if (_tcslen (s) >= 10 && !_tcsncmp (s, L"gfx_opengl", 10)) {
write_log (L"obsolete config entry '%s\n", s);
return 1;
bplehb = ((bplcon0 & 0xFC00) == 0x6000 || (bplcon0 & 0xFC00) == 0x7000) && !currprefs.cs_denisenoehb;
return bplehb;
}
+
static void BPLCON0 (int hpos, uae_u16 v)
{
if (! (currprefs.chipset_mask & CSMASK_ECS_DENISE))
int pv = pixdata.apixels[ham_decode_pixel + unpainted_amiga - 1];
#ifdef AGA
if (currprefs.chipset_mask & CSMASK_AGA)
- ham_lastcolor = colors_for_drawing.color_regs_aga[pv];
+ ham_lastcolor = colors_for_drawing.color_regs_aga[pv ^ bplxor];
else
#endif
ham_lastcolor = colors_for_drawing.color_regs_ecs[pv];
} else if (currprefs.chipset_mask & CSMASK_AGA) {
if (bplplanecnt >= 7) { /* AGA mode HAM8 */
while (unpainted_amiga-- > 0) {
- int pv = pixdata.apixels[ham_decode_pixel++];
+ int pv = pixdata.apixels[ham_decode_pixel++] ^ bplxor;
switch (pv & 0x3)
{
case 0x0: ham_lastcolor = colors_for_drawing.color_regs_aga[pv >> 2]; break;
}
} else { /* AGA mode HAM6 */
while (unpainted_amiga-- > 0) {
- int pv = pixdata.apixels[ham_decode_pixel++];
+ int pv = pixdata.apixels[ham_decode_pixel++] ^ bplxor;
switch (pv & 0x30)
{
case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv]; break;
int pv = pixdata.apixels[ham_decode_pixel];
#ifdef AGA
if (currprefs.chipset_mask & CSMASK_AGA)
- ham_lastcolor = colors_for_drawing.color_regs_aga[pv];
+ ham_lastcolor = colors_for_drawing.color_regs_aga[pv ^ bplxor];
else
#endif
ham_lastcolor = colors_for_drawing.color_regs_ecs[pv];
} else if (currprefs.chipset_mask & CSMASK_AGA) {
if (bplplanecnt >= 7) { /* AGA mode HAM8 */
while (todraw_amiga-- > 0) {
- int pv = pixdata.apixels[ham_decode_pixel];
+ int pv = pixdata.apixels[ham_decode_pixel] ^ bplxor;
switch (pv & 0x3)
{
case 0x0: ham_lastcolor = colors_for_drawing.color_regs_aga[pv >> 2]; break;
}
} else { /* AGA mode HAM6 */
while (todraw_amiga-- > 0) {
- int pv = pixdata.apixels[ham_decode_pixel];
+ int pv = pixdata.apixels[ham_decode_pixel] ^ bplxor;
switch (pv & 0x30)
{
case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv]; break;
#endif
}
+static int isham (uae_u16 bplcon0)
+{
+ int p = GET_PLANES (bplcon0);
+ if (!(bplcon0 & 0x800))
+ return 0;
+ if (currprefs.chipset_mask & CSMASK_AGA) {
+ // AGA only has 6 or 8 plane HAM
+ if (p == 6 || p == 8)
+ return 1;
+ } else {
+ // OCS/ECS also supports 5 plane HAM
+ if (GET_RES_DENISE (bplcon0) > 0)
+ return 0;
+ if (p >= 5)
+ return 1;
+ }
+ return 0;
+}
+
static void pfield_expand_dp_bplcon2 (int regno, int v)
{
regno -= 0x1000;
dp_for_drawing->bplcon0 = v;
dp_for_drawing->bplres = GET_RES_DENISE (v);
dp_for_drawing->nr_planes = GET_PLANES (v);
- dp_for_drawing->ham_seen = !! (v & 0x800);
+ dp_for_drawing->ham_seen = isham (v);
break;
case 0x104:
dp_for_drawing->bplcon2 = v;
}
-static void filesys_addexternals(void);
+static void filesys_addexternals (void);
-static void initialize_mountinfo(void)
+static void initialize_mountinfo (void)
{
int i;
struct uaedev_config_info *uci;
key_uniq = 0;
a_uniq = 0;
free_mountinfo ();
- initialize_mountinfo ();
}
void filesys_reset (void)
if (savestate_state == STATE_RESTORE)
return;
filesys_reset2 ();
+ initialize_mountinfo ();
}
static void filesys_prepare_reset2 (void)
/* get sprite width from FMODE */
#define GET_SPRITEWIDTH(FMODE) ((((FMODE) >> 2) & 3) == 3 ? 64 : (((FMODE) >> 2) & 3) == 0 ? 16 : 32)
/* Compute the number of bitplanes from a value written to BPLCON0 */
-#define GET_PLANES(x) ((((x) >> 12) & 7) | (((x) & 0x10) >> 1))
+STATIC_INLINE int GET_PLANES(uae_u16 bplcon0)
+{
+ if ((bplcon0 & 0x0010) && (bplcon0 & 0x7000))
+ return 0;
+ if (bplcon0 & 0x0010)
+ return 8;
+ return (bplcon0 >> 12) & 7;
+}
extern void fpscounter_reset (void);
extern unsigned long idletime;
uae_u8 *p;
b = &get_mem_bank (v);
if (!b || !b->check (v, 32) || b->flags != ABFLAG_RAM)
- return 0xffffffff;
+ goto fail;
v2 = get_long (v + 10); // name
b = &get_mem_bank (v2);
if (!b || !b->check (v2, 20))
- return 0xffffffff;
+ goto fail;
if (b->flags != ABFLAG_ROM && b->flags != ABFLAG_RAM)
return 0;
p = b->xlateaddr (v2);
- if (!memcmp (p, name, strlen (name) + 1))
+ if (!memcmp (p, name, strlen (name) + 1)) {
+ TCHAR *s = au (name);
+ write_log (L"get_base('%s')=%08x\n", s, v);
+ xfree (s);
return v;
+ }
}
return 0;
+fail:
+ {
+ TCHAR *s = au (name);
+ write_log (L"get_base('%s') failed, invalid library list\n", s);
+ xfree (s);
+ }
+ return 0xffffffff;
}
static uaecptr get_intuitionbase (void)
x += dx;
y += dy;
}
- if (!dmaen(DMA_SPRITE))
+ if (!dmaen (DMA_SPRITE))
setmouseactivexy (x, y, 0);
else
setmouseactivexy (x, y, dir);
{
int v, i;
int max = 127;
+ static int mxd, myd;
if (pct > 1000)
pct = 1000;
if (vsync) {
- if (mouse_delta[0][0] < 0) {
+ if (mxd < 0) {
if (mouseedge_x > 0)
mouseedge_x = 0;
else
- mouseedge_x += mouse_delta[0][0];
+ mouseedge_x += mxd;
mouseedge_time = MOUSEEDGE_TIME;
}
- if (mouse_delta[0][0] > 0) {
+ if (mxd > 0) {
if (mouseedge_x < 0)
mouseedge_x = 0;
else
- mouseedge_x += mouse_delta[0][0];
+ mouseedge_x += mxd;
mouseedge_time = MOUSEEDGE_TIME;
}
- if (mouse_delta[0][1] < 0) {
+ if (myd < 0) {
if (mouseedge_y > 0)
mouseedge_y = 0;
else
- mouseedge_y += mouse_delta[0][1];
+ mouseedge_y += myd;
mouseedge_time = MOUSEEDGE_TIME;
}
- if (mouse_delta[0][1] > 0) {
+ if (myd > 0) {
if (mouseedge_y < 0)
mouseedge_y = 0;
else
- mouseedge_y += mouse_delta[0][1];
+ mouseedge_y += myd;
mouseedge_time = MOUSEEDGE_TIME;
}
if (mouseedge_time > 0) {
mouseedge_y = 0;
}
}
+ mxd = 0;
+ myd = 0;
}
for (i = 0; i < 2; i++) {
v = getvelocity (i, 0, pct);
+ mxd += v;
mouse_x[i] += v;
v = getvelocity (i, 1, pct);
+ myd += v;
mouse_y[i] += v;
v = getvelocity (i, 2, pct);
int delta;
int deadzone = currprefs.input_joymouse_deadzone * max / 100;
int unit = ie->data & 0x7f;
+
if (max) {
if (state <= deadzone && state >= -deadzone) {
state = 0;
else if (state < 0)
delta = -JOYMOUSE_CDTV;
}
+
mouse_delta[joy][unit] += delta * ((ie->data & IE_INVERT) ? -1 : 1);
} else if (ie->type & 32) { /* button mouse emulation vertical */
for (i = 0; i < MAX_INPUT_SUB_EVENT; i++)
handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], v, 0, 0);
}
+
int getmousestate (int joy)
{
if (testmode)
crcdet = 0;
for (i = 0; i < romlist_cnt; i++) {
if (rl[i].rd->crc32 == crc32 && crc32) {
+ if (zfile_exists (rl[i].path)) {
+ switch (mem_type)
+ {
+ case 0:
+ _tcsncpy (changed_prefs.romfile, rl[i].path, 255);
+ break;
+ case 1:
+ _tcsncpy (changed_prefs.romextfile, rl[i].path, 255);
+ break;
+ }
+ write_log (L"ROM '%s' = '%s'\n", romn, rl[i].path);
+ crcdet = 1;
+ } else {
+ write_log (L"ROM '%s' = '%s' invalid rom scanner path!", romn, rl[i].path);
+ }
+ break;
+ }
+ }
+ s = restore_string ();
+ if (!crcdet) {
+ if (zfile_exists (s)) {
switch (mem_type)
{
case 0:
- _tcsncpy (changed_prefs.romfile, rl[i].path, 255);
+ _tcsncpy (changed_prefs.romfile, s, 255);
break;
case 1:
- _tcsncpy (changed_prefs.romextfile, rl[i].path, 255);
+ _tcsncpy (changed_prefs.romextfile, s, 255);
break;
}
- write_log (L"ROM '%s' = '%s'\n", romn, rl[i].path);
+ write_log (L"ROM detected (path) as '%s'\n", s);
crcdet = 1;
- break;
- }
- }
- s = restore_string ();
- if (!crcdet && zfile_exists (s)) {
- switch (mem_type)
- {
- case 0:
- _tcsncpy (changed_prefs.romfile, s, 255);
- break;
- case 1:
- _tcsncpy (changed_prefs.romextfile, s, 255);
- break;
}
- write_log (L"ROM detected (path) as '%s'\n", s);
- crcdet = 1;
}
xfree (s);
if (!crcdet)
break;
#endif
#endif
+ default:
+ changed_prefs.cpu_model = currprefs.cpu_model = 68000;
case 68000:
lvl = 0;
tbl = op_smalltbl_5_ff;
}
if (tbl == 0) {
- write_log (L"no CPU emulation cores available!");
+ write_log (L"no CPU emulation cores available CPU=%d!", currprefs.cpu_model);
abort ();
}
currprefs.m68k_speed = changed_prefs.m68k_speed = 0;
}
write_log (L"CPU %d%s%03d, PC=%08X\n",
- model / 1000, flags & 1 ? "EC" : "", model % 1000, regs.pc);
+ model / 1000, flags & 1 ? L"EC" : L"", model % 1000, regs.pc);
return src;
}
#define IDS_JOYMODE_MOUSE_CDTV 343
#define IDS_JOYMODE_JOYSTICK_CD32 344
#define IDS_TABLET_BOTH_CURSORS 345
+#define IDI_DISKIMAGE 345
#define IDS_TABLET_NATIVE_CURSOR 346
#define IDS_TABLET_HOST_CURSOR 347
#define IDS_AUTOSCALE_DISABLED 348
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_3D_CONTROLS 1
-#define _APS_NEXT_RESOURCE_VALUE 345
+#define _APS_NEXT_RESOURCE_VALUE 346
#define _APS_NEXT_COMMAND_VALUE 40045
#define _APS_NEXT_CONTROL_VALUE 1790
#define _APS_NEXT_SYMED_VALUE 101
RTEXT "Resolution:",IDC_STATIC,27,152,59,15,SS_CENTERIMAGE\r
COMBOBOX IDC_LORES,100,152,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
CONTROL "Remove interlace artifacts",IDC_FLICKERFIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,139,99,10\r
- RTEXT "Windowed:",IDC_STATIC,18,46,38,15,SS_CENTERIMAGE\r
- RTEXT "Fullscreen:",IDC_STATIC,17,19,38,15,SS_CENTERIMAGE\r
+ RTEXT "Windowed:",IDC_STATIC,17,46,40,15,SS_CENTERIMAGE\r
+ RTEXT "Fullscreen:",IDC_STATIC,17,19,40,15,SS_CENTERIMAGE\r
END\r
\r
IDD_MEMORY DIALOGEX 0, 0, 300, 239\r
#pragma code_page(1252)\r
#endif //_WIN32\r
\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Icon\r
+//\r
+\r
+// Icon with lowest ID value placed first to ensure application icon\r
+// remains consistent on all systems.\r
+IDI_DISKIMAGE ICON "diskimage.ico"\r
+\r
#ifdef APSTUDIO_INVOKED\r
/////////////////////////////////////////////////////////////////////////////\r
//\r
lines += 1.0;
if (have_sound) {
- if (isvsync () || currprefs.chipset_refreshrate) {
- if (currprefs.ntscmode)
- scaled_sample_evtime_orig = (MAXHPOS_NTSC * (MAXVPOS_NTSC + lines) * freq * CYCLE_UNIT) / (float)sdp->obtainedfreq;
- else
- scaled_sample_evtime_orig = (MAXHPOS_PAL * (MAXVPOS_PAL + lines) * freq * CYCLE_UNIT) / (float)sdp->obtainedfreq;
- } else {
- scaled_sample_evtime_orig = 227.0 * (lines + 312) * 50 * CYCLE_UNIT / (float)sdp->obtainedfreq;
- }
+ scaled_sample_evtime_orig = 227.0 * (lines + maxvpos) * freq * CYCLE_UNIT / (float)sdp->obtainedfreq;
scaled_sample_evtime = scaled_sample_evtime_orig;
}
}
}
static int shell_associate_2 (const TCHAR *extension, const TCHAR *shellcommand, const TCHAR *command, const TCHAR *perceivedtype,
- const TCHAR *description, const TCHAR *ext2)
+ const TCHAR *description, const TCHAR *ext2, int icon)
{
TCHAR rpath1[MAX_DPATH], rpath2[MAX_DPATH], progid2[MAX_DPATH];
HKEY rkey, key1, key2;
RegSetValueEx (key2, L"", 0, REG_SZ, (CONST BYTE *)defprogid, (_tcslen (defprogid) + 1) * sizeof (TCHAR));
RegCloseKey (key2);
}
- _tcscpy (tmp, rpath2);
- _tcscat (tmp, L"\\DefaultIcon");
- if (RegCreateKeyEx (rkey, tmp, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_READ, NULL, &key2, &disposition) == ERROR_SUCCESS) {
- _stprintf (tmp, L"%s,-1", _wpgmptr);
- RegSetValueEx (key2, L"", 0, REG_SZ, (CONST BYTE *)tmp, (_tcslen (tmp) + 1) * sizeof (TCHAR));
- RegCloseKey (key2);
+ if (icon) {
+ _tcscpy (tmp, rpath2);
+ _tcscat (tmp, L"\\DefaultIcon");
+ if (RegCreateKeyEx (rkey, tmp, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_READ, NULL, &key2, &disposition) == ERROR_SUCCESS) {
+ _stprintf (tmp, L"%s,%d", _wpgmptr, -icon);
+ RegSetValueEx (key2, L"", 0, REG_SZ, (CONST BYTE *)tmp, (_tcslen (tmp) + 1) * sizeof (TCHAR));
+ RegCloseKey (key2);
+ }
}
RegCloseKey (key1);
}
regclosetree (fkey);
return 1;
}
-static int shell_associate (const TCHAR *extension, const TCHAR *command, const TCHAR *perceivedtype, const TCHAR *description, const TCHAR *ext2)
+static int shell_associate (const TCHAR *extension, const TCHAR *command, const TCHAR *perceivedtype, const TCHAR *description, const TCHAR *ext2, int icon)
{
- int v = shell_associate_2 (extension, NULL, command, perceivedtype, description, ext2);
+ int v = shell_associate_2 (extension, NULL, command, perceivedtype, description, ext2, icon);
if (!_tcscmp (extension, L".uae"))
- shell_associate_2 (extension, L"edit", L"-f \"%1\" -s use_gui=yes", L"text", description, NULL);
+ shell_associate_2 (extension, L"edit", L"-f \"%1\" -s use_gui=yes", L"text", description, NULL, 0);
return v;
}
_tcscpy (rpath1, L"Software\\Classes\\");
_tcscpy (rpath2, rpath1);
_tcscat (rpath2, extension);
- size = sizeof tmp;
+ size = sizeof tmp / sizeof (TCHAR);
if (RegOpenKeyEx (rkey, rpath2, 0, KEY_READ, &key1) == ERROR_SUCCESS) {
if (RegQueryValueEx (key1, NULL, NULL, NULL, (LPBYTE)tmp, &size) == ERROR_SUCCESS) {
if (_tcscmp (tmp, def ? progid : progid2)) {
}
struct assext exts[] = {
- { L".uae", L"-f \"%1\"", L"WinUAE configuration file", },
- { L".adf", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image" },
- { L".adz", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image" },
- { L".dms", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image" },
- { L".fdi", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image" },
- { L".ipf", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image" },
- { L".uss", L"-s statefile=\"%1\" -s use_gui=no", L"WinUAE statefile" },
+ { L".uae", L"-f \"%1\"", L"WinUAE configuration file", IDI_APPICON },
+ { L".adf", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image", IDI_DISKIMAGE },
+ { L".adz", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image", IDI_DISKIMAGE },
+ { L".dms", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image", IDI_DISKIMAGE },
+ { L".fdi", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image", IDI_DISKIMAGE },
+ { L".ipf", L"-0 \"%1\" -s use_gui=no", L"WinUAE floppy disk image", IDI_DISKIMAGE },
+ { L".uss", L"-s statefile=\"%1\" -s use_gui=no", L"WinUAE statefile", IDI_APPICON },
{ NULL }
};
if (!regexiststree (NULL, L"FileAssociations")) {
UAEREG *fkey;
if (exts[0].enabled == 0) {
- shell_associate (exts[0].ext, exts[0].cmd, NULL, exts[0].desc, NULL);
+ shell_associate (exts[0].ext, exts[0].cmd, NULL, exts[0].desc, NULL, exts[0].icon);
exts[0].enabled = shell_associate_is (exts[0].ext);
}
fkey = regcreatetree (NULL, L"FileAssociations");
regsetstr (fkey, exts[0].ext, L"");
regclosetree (fkey);
}
+ if (os_winnt_admin > 1) {
+ DWORD disposition;
+ TCHAR rpath[MAX_DPATH];
+ HKEY rkey = HKEY_LOCAL_MACHINE;
+ HKEY key1;
+ int setit = 1;
+
+ _tcscpy (rpath, L"Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\winuae.exe");
+ if (RegOpenKeyEx (rkey, rpath, 0, KEY_READ, &key1) == ERROR_SUCCESS) {
+ TCHAR tmp[MAX_DPATH];
+ DWORD size = sizeof tmp / sizeof (TCHAR);
+ if (RegQueryValueEx (key1, NULL, NULL, NULL, (LPBYTE)tmp, &size) == ERROR_SUCCESS) {
+ if (!_tcscmp (tmp, _wpgmptr))
+ setit = 0;
+ }
+ RegCloseKey (key1);
+ }
+ if (setit) {
+ if (RegCreateKeyEx (rkey, rpath, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ | KEY_WRITE, NULL, &key1, &disposition) == ERROR_SUCCESS) {
+ RegSetValueEx (key1, L"", 0, REG_SZ, (CONST BYTE *)_wpgmptr, (_tcslen (_wpgmptr) + 1) * sizeof (TCHAR));
+ RegCloseKey (key1);
+ SHChangeNotify (SHCNE_ASSOCCHANGED, 0, 0, 0);
+ }
+ }
+ }
+
#if 0
UAEREG *fkey;
fkey = regcreatetree (NULL, L"FileAssociations");
if (exts[i].enabled == 0 && already) {
shell_deassociate (exts[i].ext);
exts[i].enabled = shell_associate_is (exts[i].ext);
- if (exts[i].enabled)
+ if (exts[i].enabled) {
modified = 1;
- } else if (exts[i].enabled && already == 0) {
- shell_associate (exts[i].ext, exts[i].cmd, NULL, exts[i].desc, NULL);
+ shell_associate (exts[i].ext, exts[i].cmd, NULL, exts[i].desc, NULL, exts[i].icon);
+ }
+ } else if (exts[i].enabled) {
+ shell_associate (exts[i].ext, exts[i].cmd, NULL, exts[i].desc, NULL, exts[i].icon);
exts[i].enabled = shell_associate_is (exts[i].ext);
- if (exts[i].enabled == 0)
+ if (exts[i].enabled != already)
modified = 1;
}
}
#define WINUAEPUBLICBETA 1
-#define WINUAEBETA L"Beta 3"
-#define WINUAEDATE MAKEBD(2009, 6, 10)
+#define WINUAEBETA L"Beta 4"
+#define WINUAEDATE MAKEBD(2009, 6, 14)
#define WINUAEEXTRA L""
#define WINUAEREV L""
TCHAR *ext;
TCHAR *cmd;
TCHAR *desc;
+ int icon;
int enabled;
};
struct assext exts[];
static int clicked_entry = -1;
#define LOADSAVE_COLUMNS 2
-#define INPUT_COLUMNS 4
+#define INPUT_COLUMNS 5
#define HARDDISK_COLUMNS 8
#define DISK_COLUMNS 3
#define MISC2_COLUMNS 2
#define LV_LOADSAVE 1
#define LV_HARDDISK 2
-#define LV_INPUT 4
+#define LV_INPUT 3
#define LV_DISK 4
#define LV_MISC2 5
int listview_column_width[HARDDISK_COLUMNS];
if (hDlg == pages[HARDDISK_ID]) {
+
listview_num_columns = HARDDISK_COLUMNS;
lv_type = LV_HARDDISK;
_tcscpy (column_heading[0], L"*");
WIN32GUI_LoadUIString(IDS_HFDSIZE, column_heading[6], MAX_COLUMN_HEADING_WIDTH);
WIN32GUI_LoadUIString(IDS_BOOTPRI, column_heading[7], MAX_COLUMN_HEADING_WIDTH);
list = GetDlgItem(hDlg, IDC_VOLUMELIST);
+
} else if (hDlg == pages[INPUT_ID]) {
+
listview_num_columns = INPUT_COLUMNS;
lv_type = LV_INPUT;
WIN32GUI_LoadUIString(IDS_INPUTHOSTWIDGET, column_heading[0], MAX_COLUMN_HEADING_WIDTH);
WIN32GUI_LoadUIString(IDS_INPUTTOGGLE, column_heading[3], MAX_COLUMN_HEADING_WIDTH);
_tcscpy (column_heading[4], L"#");
list = GetDlgItem(hDlg, IDC_INPUTLIST);
+
} else if (hDlg == pages[MISC2_ID]) {
+
listview_num_columns = MISC2_COLUMNS;
lv_type = LV_MISC2;
_tcscpy (column_heading[0], L"Extension");
_tcscpy (column_heading[1], L"");
list = GetDlgItem (hDlg, IDC_ASSOCIATELIST);
} else {
+
listview_num_columns = DISK_COLUMNS;
lv_type = LV_DISK;
_tcscpy (column_heading[0], L"#");
WIN32GUI_LoadUIString(IDS_DISK_IMAGENAME, column_heading[1], MAX_COLUMN_HEADING_WIDTH);
WIN32GUI_LoadUIString(IDS_DISK_DRIVENAME, column_heading[2], MAX_COLUMN_HEADING_WIDTH);
list = GetDlgItem (hDlg, IDC_DISK);
+
}
cachedlist = list;
ListView_InsertColumn (list, i, &lvcolumn);
}
}
+
if (lv_type == LV_MISC2) {
+
listview_column_width[0] = 180;
listview_column_width[1] = 10;
for (i = 0; exts[i].ext; i++) {
ListView_SetItemText (list, result, 1, exts[i].enabled ? L"*" : L"");
}
} else if (lv_type == LV_INPUT) {
+
for (i = 0; input_total_devices && i < inputdevice_get_widget_num (input_selected_device); i++) {
TCHAR name[100];
inputdevice_get_widget_type (input_selected_device, i, name);
listview_column_width [3] = 65;
listview_column_width [4] = 30;
update_listview_input (hDlg);
+
} else if (lv_type == LV_DISK) {
+
for (i = 0; i < MAX_SPARE_DRIVES; i++) {
int drv;
_stprintf (tmp, L"%d", i + 1);
{
int v = full_property_sheet;
ew (hDlg, IDC_PORT_TABLET_FULL, v && is_tablet () && workprefs.input_tablet > 0);
- ew (hDlg, IDC_PORT_MOUSETRICK, v);
ew (hDlg, IDC_PORT_TABLET_CURSOR, v && workprefs.input_tablet > 0);
ew (hDlg, IDC_PORT_TABLET, v);
}
if (success)
currprefs.input_mouse_speed = workprefs.input_mouse_speed = i;
- workprefs.input_magic_mouse = IsDlgButtonChecked (hDlg, IDC_PORT_MOUSETRICK) ? -1 : 0;
+ currprefs.input_magic_mouse = workprefs.input_magic_mouse = IsDlgButtonChecked (hDlg, IDC_PORT_MOUSETRICK) ? -1 : 0;
workprefs.input_magic_mouse_cursor = SendDlgItemMessage (hDlg, IDC_PORT_TABLET_CURSOR, CB_GETCURSEL, 0, 0L);
workprefs.input_tablet = 0;
if (IsDlgButtonChecked (hDlg, IDC_PORT_TABLET)) {
RelativePath="..\resources\cpu.ico"
>
</File>
+ <File
+ RelativePath=".\diskimage.ico"
+ >
+ </File>
+ <File
+ RelativePath="..\resources\diskimage.ico"
+ >
+ </File>
<File
RelativePath="..\resources\Drive.ico"
>
+Beta 4:
+
+- mixed disk swapper panel id and number of input panel columns..
+- magic mouse was unreliable in directinput mouse mode ("mouse *")
+- magic mouse can be switched on/off on the fly
+- utf8 configuration entries didn't work correctly and caused
+ duplicate entries. (fix by loading and saving config again)
+- added generic disk icon image (from Cloanto) that is associated
+ with disk image extensions (if enabled in associations panel) This
+ may change before 1.6.1 if my brother feels less lazy next week :)
+- App Paths winuae.exe reg key created if winuae is run as admin
+ at least once, this fixes some file association issues (wrong or
+ missing icon for example), also some other association updates
+- statefile harddisk restore problem fixed (still not guaranteed
+ to work..)
+- 60Hz on PAL (or NTSC in 50Hz) sound sync/vsync calculation was
+ incorrect
+- in AGA only HAM6 or HAM8 supported. HAM mode bit set with 5 or 7
+ planes seems to be ignored (OCS/ECS has "HAM5")
+- HAM ignored AGA BPLAM (BPLCON4) bits
+
Beta 3:
- added exception handler that writes log message if openal or
int zfile_exists (const TCHAR *name)
{
- TCHAR fname[MAX_DPATH];
- struct zfile *f;
+ struct zfile *z;
- if (_tcslen (name) == 0)
+ if (my_existsfile (name))
+ return 1;
+ z = zfile_fopen (name, L"rb", ZFD_NORMAL);
+ if (!z)
return 0;
- manglefilename (fname, name);
- f = openzip (fname);
- if (!f) {
- FILE *f2;
- manglefilename (fname, name);
- if (!my_existsfile (fname))
- return 0;
- f2 = _tfopen (fname, L"rb");
- if (!f2)
- return 0;
- fclose (f2);
- }
- zfile_fclose (f);
+ zfile_fclose (z);
return 1;
}