From 99af167696e89da03a852344bb15c8d9ef6b7b2a Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Wed, 14 Jul 2004 20:18:18 +0300 Subject: [PATCH] imported winuaesrc0990b10b.zip --- ar.c | 6 +- audio.c | 17 +- blkdev.c | 4 +- cfgfile.c | 46 +- custom.c | 8 +- debug.c | 9 +- disk.c | 20 +- driveclick.c | 19 +- filesys.c | 5 +- fsdb.c | 1 - hardfile.c | 56 +- include/driveclick.h | 5 +- include/filesys.h | 6 +- include/options.h | 4 +- inputdevice.c | 4 +- main.c | 3 +- memory.c | 95 +++- native2amiga.c | 2 - od-win32/blkdev_win32_aspi.c | 4 +- od-win32/bsdsock.c | 36 +- od-win32/dinput.c | 11 +- od-win32/dxwrap.c | 8 +- od-win32/posixemu.c | 4 +- od-win32/resources/resource.h | 6 +- od-win32/resources/winuae.rc | 27 +- od-win32/resources/winuae_minimal.rc | 763 +++++++++++++++++---------- od-win32/win32.c | 125 +++-- od-win32/win32.h | 6 +- od-win32/win32_scale2x.c | 3 +- od-win32/win32gfx.c | 57 +- od-win32/win32gui.c | 332 ++++++++---- zfile.c | 2 +- 32 files changed, 1081 insertions(+), 613 deletions(-) diff --git a/ar.c b/ar.c index d05503a2..efb638eb 100755 --- a/ar.c +++ b/ar.c @@ -368,8 +368,10 @@ STATIC_INLINE int ar3a (uaecptr addr, uae_u8 b, int writing) if (!writing) /* reading */ { - if (addr == 1) /* This is necessary because we don't update rom location 0 every time we change armode */ - return armode; + if (addr == 1 || addr == 3) /* This is necessary because we don't update rom location 0 every time we change armode */ + return armode | (regs.irc & ~3); + else if (addr < 4) + return (addr & 1) ? regs.irc : regs.irc >> 8; else return armemory_rom[addr]; } diff --git a/audio.c b/audio.c index bbf8b10c..8c8184a9 100755 --- a/audio.c +++ b/audio.c @@ -115,29 +115,26 @@ STATIC_INLINE void put_sound_word_right (uae_u32 w) PUT_SOUND_WORD_RIGHT (w); } +static int mixed_stereo_size, mixed_mul1, mixed_mul2; + STATIC_INLINE void put_sound_word_left (uae_u32 w) { if (currprefs.sound_mixed_stereo) { uae_u32 rold, lold, rnew, lnew, tmp; - int mul1 = 32 - currprefs.sound_stereo_separation; - int mul2 = 32 + currprefs.sound_stereo_separation; left_word_saved[saved_ptr] = w; lnew = w - SOUND16_BASE_VAL; rnew = right_word_saved[saved_ptr] - SOUND16_BASE_VAL; - if (currprefs.sound_mixed_stereo > 0) - saved_ptr = (saved_ptr + 1) & ((1 << (currprefs.sound_mixed_stereo - 1)) - 1); - else - saved_ptr = 0; + saved_ptr = (saved_ptr + 1) & mixed_stereo_size; lold = left_word_saved[saved_ptr] - SOUND16_BASE_VAL; - tmp = (rnew * mul1 + lold * mul2) >> 6; + tmp = (rnew * mixed_mul1 + lold * mixed_mul2) >> 6; tmp += SOUND16_BASE_VAL; PUT_SOUND_WORD_RIGHT (tmp); rold = right_word_saved[saved_ptr] - SOUND16_BASE_VAL; - w = (lnew * mul1 + rold * mul2) >> 6; + w = (lnew * mixed_mul1 + rold * mixed_mul2) >> 6; } PUT_SOUND_WORD_LEFT (w); } @@ -788,6 +785,10 @@ void check_prefs_changed_audio (void) next_sample_evtime = scaled_sample_evtime; compute_vsynctime (); } + mixed_mul1 = 32 - currprefs.sound_stereo_separation; + mixed_mul2 = 32 + currprefs.sound_stereo_separation; + mixed_stereo_size = currprefs.sound_mixed_stereo > 0 ? (1 << (currprefs.sound_mixed_stereo - 1)) - 1 : 0; + /* Select the right interpolation method. */ if (sample_handler == sample16_handler || sample_handler == sample16i_crux_handler diff --git a/blkdev.c b/blkdev.c index 0cf3f8b7..07eec9f4 100755 --- a/blkdev.c +++ b/blkdev.c @@ -27,13 +27,15 @@ extern struct device_functions devicefunc_win32_ioctl; static void install_driver (int flags) { + int installed = 0; device_func[DF_SCSI] = &devicefunc_win32_aspi; #ifdef WINDDK if (os_winnt && os_winnt_admin) { device_func[DF_IOCTL] = &devicefunc_win32_ioctl; device_func[DF_SCSI] = &devicefunc_win32_spti; + installed = 1; } - if (currprefs.win32_aspi) { + if (currprefs.win32_aspi || !installed) { device_func[DF_SCSI] = &devicefunc_win32_aspi; device_func[DF_IOCTL] = 0; } diff --git a/cfgfile.c b/cfgfile.c index 2e706735..67ed531e 100755 --- a/cfgfile.c +++ b/cfgfile.c @@ -199,7 +199,9 @@ void save_options (FILE *f, struct uae_prefs *p, int type) if (p->info[0]) cfgfile_write (f, "config_info=%s\n", p->info); cfgfile_write (f, "config_version=%d.%d.%d\n", UAEMAJOR, UAEMINOR, UAESUBREV); - + cfgfile_write (f, "config_hardware_path=%s\n", p->config_hardware_path); + cfgfile_write (f, "config_host_path=%s\n", p->config_host_path); + for (sl = p->all_lines; sl; sl = sl->next) { if (sl->unknown) cfgfile_write (f, "%s=%s\n", sl->option, sl->value); @@ -257,7 +259,7 @@ void save_options (FILE *f, struct uae_prefs *p, int type) cfgfile_write (f, "sound_bits=%d\n", p->sound_bits); cfgfile_write (f, "sound_channels=%s\n", stereomode[p->sound_stereo]); cfgfile_write (f, "sound_stereo_separation=%d\n", p->sound_stereo_separation); - cfgfile_write (f, "sound_stereo_mixing_delay=%d\n", p->sound_mixed_stereo); + cfgfile_write (f, "sound_stereo_mixing_delay=%d\n", p->sound_mixed_stereo >= 0 ? p->sound_mixed_stereo : 0); cfgfile_write (f, "sound_max_buff=%d\n", p->sound_maxbsiz); cfgfile_write (f, "sound_frequency=%d\n", p->sound_freq); @@ -578,7 +580,7 @@ static int cfgfile_parse_host (struct uae_prefs *p, char *option, char *value) || cfgfile_intval (option, value, "sound_adjust", &p->sound_adjust, 1) || cfgfile_intval (option, value, "sound_volume", &p->sound_volume, 1) || cfgfile_intval (option, value, "sound_stereo_separation", &p->sound_stereo_separation, 1) - || cfgfile_intval (option, value, "sound_stereo_mixing", &p->sound_mixed_stereo, 1) + || cfgfile_intval (option, value, "sound_stereo_mixing_delay", &p->sound_mixed_stereo, 1) || cfgfile_intval (option, value, "gfx_display", &p->gfx_display, 1) || cfgfile_intval (option, value, "gfx_framerate", &p->gfx_framerate, 1) @@ -1237,6 +1239,8 @@ static int cfgfile_load_2 (struct uae_prefs *p, const char *filename, int real, cfgfile_parse_separated_line (p, line1b, line2b, askedtype); } else { cfgfile_string (line1b, line2b, "config_description", p->description, 128); + cfgfile_string (line1b, line2b, "config_hardware_path", p->config_hardware_path, 128); + cfgfile_string (line1b, line2b, "config_host_path", p->config_host_path, 128); } } } @@ -1262,7 +1266,7 @@ static int cfgfile_load_2 (struct uae_prefs *p, const char *filename, int real, return 1; } -int cfgfile_load (struct uae_prefs *p, const char *filename, int *type) +int cfgfile_load (struct uae_prefs *p, const char *filename, int *type, int ignorelink) { int v; char tmp[MAX_DPATH]; @@ -1278,17 +1282,19 @@ int cfgfile_load (struct uae_prefs *p, const char *filename, int *type) write_log ("load failed\n"); goto end; } - if (p->config_hardware_path[0]) { - fetch_configurationpath (tmp, sizeof (tmp)); - strncat (tmp, p->config_hardware_path, sizeof (tmp)); - type2 = CONFIG_TYPE_HARDWARE; - cfgfile_load (p, tmp, &type2); - } - if (p->config_host_path[0]) { - fetch_configurationpath (tmp, sizeof (tmp)); - strncat (tmp, p->config_host_path, sizeof (tmp)); - type2 = CONFIG_TYPE_HOST; - cfgfile_load (p, tmp, &type2); + if (!ignorelink) { + if (p->config_hardware_path[0]) { + fetch_configurationpath (tmp, sizeof (tmp)); + strncat (tmp, p->config_hardware_path, sizeof (tmp)); + type2 = CONFIG_TYPE_HARDWARE; + cfgfile_load (p, tmp, &type2, 1); + } + if (p->config_host_path[0]) { + fetch_configurationpath (tmp, sizeof (tmp)); + strncat (tmp, p->config_host_path, sizeof (tmp)); + type2 = CONFIG_TYPE_HOST; + cfgfile_load (p, tmp, &type2, 1); + } } end: recursive--; @@ -1309,14 +1315,20 @@ int cfgfile_save (struct uae_prefs *p, const char *filename, int type) return 1; } -int cfgfile_get_description (const char *filename, char *description, int *type) +int cfgfile_get_description (const char *filename, char *description, char *hostlink, char *hardwarelink, int *type) { int result = 0; struct uae_prefs *p = xmalloc (sizeof (struct uae_prefs)); - strcpy (p->description, ""); + p->description[0] = 0; + p->config_host_path[0] = 0; + p->config_hardware_path[0] = 0; if (cfgfile_load_2 (p, filename, 0, type)) { result = 1; strcpy (description, p->description); + if (hostlink) + strcpy (hostlink, p->config_host_path); + if (hardwarelink) + strcpy (hardwarelink, p->config_hardware_path); } free (p); return result; diff --git a/custom.c b/custom.c index 9444661a..d6abcdf7 100755 --- a/custom.c +++ b/custom.c @@ -4811,10 +4811,12 @@ STATIC_INLINE uae_u32 REGPARAM2 custom_wget_1 (uaecptr addr, int noput) uae_u32 v; sync_copper_with_cpu (current_hpos (), 1, addr); if (currprefs.cpu_level >= 2) { - if(addr > 0xde0000 && addr <= 0xdeffff) + if(addr >= 0xde0000 && addr <= 0xdeffff) { return 0x7f7f; - if(addr > 0xdd0000 && addr <= 0xddffff) - return 0xffff; + } + if(addr >= 0xdd0000 && addr <= 0xddffff) { + return 0xffff; + } } v = custom_wget_1 (addr, 0); #ifdef ACTION_REPLAY diff --git a/debug.c b/debug.c index b67a8210..06805a53 100755 --- a/debug.c +++ b/debug.c @@ -33,7 +33,8 @@ #include "akiko.h" static int debugger_active; -static uaecptr skipaddr_start, skipaddr_end, skipaddr_doskip; +static uaecptr skipaddr_start, skipaddr_end; +static int skipaddr_doskip; static uae_u32 skipins; static int do_skip; static int debug_rewind; @@ -1028,7 +1029,7 @@ static int instruction_breakpoint (char **c) memcpy (&trace_prev_regs, ®s, sizeof regs); } do_skip = 1; - skipaddr_doskip = 1; + skipaddr_doskip = -1; return 1; } @@ -1443,9 +1444,11 @@ void debug (void) bp = 1; } else if (opcode == skipins) bp = 1; - } else if (skipaddr_start == 0xffffffff && skipaddr_doskip) { + } else if (skipaddr_start == 0xffffffff && skipaddr_doskip < 0) { if ((pc < 0xe00000 || pc >= 0x1000000) && opcode != 0x4ef9) bp = 1; + } else if (skipaddr_start == 0xffffffff && skipaddr_doskip > 0) { + bp = 1; } else if (skipaddr_end != 0xffffffff) { if (pc >= skipaddr_start && pc < skipaddr_end) bp = 1; diff --git a/disk.c b/disk.c index 3d48fba2..52ffb29b 100755 --- a/disk.c +++ b/disk.c @@ -1534,7 +1534,10 @@ void disk_creatediskfile (char *name, int type, drive_type adftype) uae_u8 tmp[3*4]; char *disk_name = "empty"; - if (type == 1) tracks = 2 * 83; else tracks = 2 * 80; + if (type == 1) + tracks = 2 * 83; + else + tracks = 2 * 80; file_size = 880 * 1024; track_len = FLOPPY_WRITE_LEN * 2; if (adftype == 1) { @@ -1549,9 +1552,7 @@ void disk_creatediskfile (char *name, int type, drive_type adftype) chunk = xmalloc (16384); if (f && chunk) { memset(chunk,0,16384); - switch(type) - { - case 0: + if (type == 0 && adftype < 2) { for (i = 0; i < file_size; i += 11264) { memset(chunk, 0, 11264); if (i == 0) { @@ -1572,15 +1573,17 @@ void disk_creatediskfile (char *name, int type, drive_type adftype) memcpy (chunk + 484, chunk + 420, 3 * 4); disk_checksum(chunk, chunk + 20); /* bitmap block */ - memset (chunk + 512 + 4, 0xff, 220); - chunk[512 + 112 + 2] = 0x3f; + memset (chunk + 512 + 4, 0xff, 2 * file_size / (1024 * 8)); + if (adftype == 0) + chunk[512 + 0x72] = 0x3f; + else + chunk[512 + 0xdc] = 0x3f; disk_checksum(chunk + 512, chunk + 512); } zfile_fwrite (chunk, 11264, 1, f); } - break; - case 1: + } else { l = track_len; zfile_fwrite ("UAE-1ADF", 8, 1, f); tmp[0] = 0; tmp[1] = 0; /* flags (reserved) */ @@ -1592,7 +1595,6 @@ void disk_creatediskfile (char *name, int type, drive_type adftype) tmp[8] = 0; tmp[9] = 0; tmp[10] = 0; tmp[11] = 0; for (i = 0; i < tracks; i++) zfile_fwrite (tmp, sizeof (tmp), 1, f); for (i = 0; i < tracks; i++) zfile_fwrite (chunk, l, 1, f); - break; } } free (chunk); diff --git a/driveclick.c b/driveclick.c index f2f36ce2..2f4d2d39 100755 --- a/driveclick.c +++ b/driveclick.c @@ -20,6 +20,8 @@ #include "driveclick.h" +#define CLICK_TRACKS 84 + static struct drvsample drvs[4][DS_END]; static int freq = 44100; @@ -123,6 +125,10 @@ void driveclick_init(void) drvs[i][j].len <<= DS_SHIFT; drvs[i][DS_CLICK].pos = drvs[i][DS_CLICK].len; drvs[i][DS_SNATCH].pos = drvs[i][DS_SNATCH].len; + if (drvs[i][DS_CLICK].len > (100000 << DS_SHIFT)) { + drvs[i][DS_CLICK].multisize = drvs[i][DS_CLICK].len / CLICK_TRACKS; + drvs[i][DS_CLICK].multilen = (drvs[i][DS_CLICK].multisize * 9) / 10; + } vv += currprefs.dfxclick[i]; } } @@ -250,16 +256,21 @@ void driveclick_mix (uae_s16 *sndbuffer, int size) } } -void driveclick_click (int drive, int startOffset) +void driveclick_click (int drive, int cyl) { if (!click_initialized) return; if (!currprefs.dfxclick[drive]) return; mix(); - drvs[drive][DS_CLICK].pos = (startOffset * 4) << DS_SHIFT; - if (drvs[drive][DS_CLICK].pos > drvs[drive][DS_CLICK].len / 2) - drvs[drive][DS_CLICK].pos = drvs[drive][DS_CLICK].len / 2; + if (drvs[drive][DS_CLICK].multisize) { + drvs[drive][DS_CLICK].pos = drvs[drive][DS_CLICK].multisize * cyl; + drvs[drive][DS_CLICK].len = drvs[drive][DS_CLICK].pos + drvs[drive][DS_CLICK].multilen; + } else { + drvs[drive][DS_CLICK].pos = (cyl * 4) << DS_SHIFT; + if (drvs[drive][DS_CLICK].pos > drvs[drive][DS_CLICK].len / 2) + drvs[drive][DS_CLICK].pos = drvs[drive][DS_CLICK].len / 2; + } } void driveclick_motor (int drive, int running) diff --git a/filesys.c b/filesys.c index fb93a7cd..99dbfd08 100755 --- a/filesys.c +++ b/filesys.c @@ -3739,7 +3739,7 @@ static int rl (uae_u8 *p) return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | (p[3]); } -static int rdb_checksum (char *id, uae_u8 *p, int block) +int rdb_checksum (char *id, uae_u8 *p, int block) { uae_u32 sum = 0; int i, blocksize; @@ -3856,6 +3856,9 @@ static int rdb_mount (UnitInfo *uip, int unit_no, int partnum, uaecptr parmpacke write_log ("RDB: driveinit is not yet supported. Contact the author.\n"); return -2; } + hfd->cylinders = rl (bufrdb + 64); + hfd->sectors = rl (bufrdb + 68); + hfd->heads = rl (bufrdb + 72); fileblock = rl (bufrdb + 32); partblock = rl (bufrdb + 28); buf = xmalloc (readblocksize); diff --git a/fsdb.c b/fsdb.c index 7cfa24f5..d082ee1c 100755 --- a/fsdb.c +++ b/fsdb.c @@ -20,7 +20,6 @@ #include "filesys.h" #include "autoconf.h" #include "fsusage.h" -#include "native2amiga.h" #include "scsidev.h" #include "fsdb.h" diff --git a/hardfile.c b/hardfile.c index 5acb6382..4a2cedfc 100755 --- a/hardfile.c +++ b/hardfile.c @@ -456,6 +456,37 @@ static uae_u32 hardfile_expunge (void) return 0; /* Simply ignore this one... */ } +static void getchs (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head, int *tracksec) +{ + unsigned int total = (unsigned int)(hfd->size / 1024); + int heads; + int sectors = 63; + + /* do we have RDB values? */ + if (hfd->cylinders) { + *cyl = hfd->cylinders; + *tracksec = hfd->sectors; + *head = hfd->heads; + *cylsec = hfd->sectors * hfd->heads; + return; + } + /* no, lets guess something.. */ + if (total <= 504 * 1024) + heads = 16; + else if (total <= 1008 * 1024) + heads = 32; + else if (total <= 2016 * 1024) + heads = 64; + else if (total <= 4032 * 1024) + heads = 128; + else + heads = 255; + *cyl = (unsigned int)(hfd->size / hfd->blocksize) / (sectors * heads); + *cylsec = sectors * heads; + *tracksec = sectors; + *head = heads; +} + static void outofbounds (int cmd, uae_u64 offset, uae_u64 len, uae_u64 max) { write_log ("cmd %d: out of bounds, %08.8X-%08.8X + %08.8X-%08.8X >= %08.8X-%08.8X\n", cmd, @@ -583,9 +614,28 @@ static uae_u32 hardfile_do_io (struct hardfiledata *hfd, struct hardfileprivdata break; case CMD_GETNUMTRACKS: - hf_log ("CMD_GETNUMTRACKS - shouldn't happen\n"); - actual = 0; + { + int cyl, cylsec, head, tracksec; + getchs (hfd, &cyl, &cylsec, &head, &tracksec); + actual = cyl * head; break; + } + + case CMD_GETGEOMETRY: + { + int cyl, cylsec, head, tracksec; + getchs (hfd, &cyl, &cylsec, &head, &tracksec); + put_long (dataptr + 0, hfd->blocksize); + put_long (dataptr + 4, (uae_u32)(hfd->size / hfd->blocksize)); + put_long (dataptr + 8, cyl); + put_long (dataptr + 12, cylsec); + put_long (dataptr + 16, head); + put_long (dataptr + 20, tracksec); + put_long (dataptr + 24, 0); /* bufmemtype */ + put_byte (dataptr + 28, 0); /* type = DG_DIRECT_ACCESS */ + put_long (dataptr + 29, 0); /* flags */ + } + break; case CMD_PROTSTATUS: if (hfd->readonly) @@ -672,6 +722,7 @@ static int hardfile_can_quick (uae_u32 command) case CMD_MOTOR: case CMD_GETDRIVETYPE: case CMD_GETNUMTRACKS: + case CMD_GETGEOMETRY: case NSCMD_DEVICEQUERY: return 1; } @@ -786,6 +837,7 @@ void hardfile_install (void) dw (CMD_CHANGESTATE); dw (CMD_PROTSTATUS); dw (CMD_GETDRIVETYPE); + dw (CMD_GETGEOMETRY); dw (CMD_ADDCHANGEINT); dw (CMD_REMCHANGEINT); dw (HD_SCSICMD); diff --git a/include/driveclick.h b/include/driveclick.h index 2cd70aef..757a9bdc 100755 --- a/include/driveclick.h +++ b/include/driveclick.h @@ -8,9 +8,10 @@ struct drvsample { - int len; - int pos; + unsigned int len; + unsigned pos; uae_s16 *p; + unsigned int multisize, multilen; }; #define DS_CLICK 0 diff --git a/include/filesys.h b/include/filesys.h index cee3455a..7aee9c57 100755 --- a/include/filesys.h +++ b/include/filesys.h @@ -24,6 +24,10 @@ struct hardfiledata { char product_id[16 + 1]; char product_rev[4 + 1]; char device_name[256]; + /* geometry from possible RDSK block */ + unsigned int cylinders; + unsigned int sectors; + unsigned int heads; uae_u64 size2; uae_u64 offset2; }; @@ -33,7 +37,7 @@ struct hardfiledata { #define FILESYS_HARDFILE_RDB 2 #define FILESYS_HARDDRIVE 3 -#define MAX_FILESYSTEM_UNITS 20 +#define MAX_FILESYSTEM_UNITS 30 struct uaedev_mount_info; diff --git a/include/options.h b/include/options.h index 737627f0..5094bb50 100755 --- a/include/options.h +++ b/include/options.h @@ -254,11 +254,11 @@ extern void target_save_options (FILE *, struct uae_prefs *); extern void target_default_options (struct uae_prefs *, int type); extern int target_cfgfile_load (struct uae_prefs *, char *filename, int type); -extern int cfgfile_load (struct uae_prefs *, const char *filename, int *); +extern int cfgfile_load (struct uae_prefs *p, const char *filename, int *type, int ignorelink); extern int cfgfile_save (struct uae_prefs *, const char *filename, int); extern void cfgfile_parse_line (struct uae_prefs *p, char *, int); extern int cfgfile_parse_option (struct uae_prefs *p, char *option, char *value, int); -extern int cfgfile_get_description (const char *filename, char *description, int*); +extern int cfgfile_get_description (const char *filename, char *description, char *hostlink, char *hardwarelink, int *type); extern void cfgfile_show_usage (void); extern uae_u32 cfgfile_uaelib(int mode, uae_u32 name, uae_u32 dst, uae_u32 maxlen); extern void cfgfile_addcfgparam (char *); diff --git a/inputdevice.c b/inputdevice.c index a6dbd246..8f831878 100755 --- a/inputdevice.c +++ b/inputdevice.c @@ -1849,8 +1849,10 @@ int inputdevice_get_device_index (int devnum) return devnum; else if (devnum < idev[IDTYPE_JOYSTICK].get_num() + idev[IDTYPE_MOUSE].get_num()) return devnum - idev[IDTYPE_JOYSTICK].get_num(); - else + else if (devnum < idev[IDTYPE_JOYSTICK].get_num() + idev[IDTYPE_MOUSE].get_num() + idev[IDTYPE_KEYBOARD].get_num()) return devnum - idev[IDTYPE_JOYSTICK].get_num() - idev[IDTYPE_MOUSE].get_num(); + else + return -1; } static int gettype (int devnum) diff --git a/main.c b/main.c index cd7d04c4..32b4903a 100755 --- a/main.c +++ b/main.c @@ -510,7 +510,8 @@ void do_start_program (void) return; /* Do a reset on startup. Whether this is elegant is debatable. */ inputdevice_updateconfig (&currprefs); - quit_program = 2; + if (quit_program >= 0) + quit_program = 2; m68k_go (1); } diff --git a/memory.c b/memory.c index e5926f2a..1b37e5bb 100755 --- a/memory.c +++ b/memory.c @@ -108,12 +108,12 @@ static struct romdata roms[] = { { "Kickstart v3.0 (A1200)", 39, 106, 0x6c9b07d2, 524288, 11, 0, 0, ROMTYPE_KICK }, { "Kickstart v3.0 (A4000)", 39, 106, 0x9e6ac152, 524288, 12, 2, 0, ROMTYPE_KICK }, -// { "Kickstart v3.1 (A4000)", 40, 70, 0x2b4566f1, 524288, 13, 2, 0, ROMTYPE_KICK }, + { "Kickstart v3.1 (A4000)", 40, 70, 0x2b4566f1, 524288, 13, 2, 0, ROMTYPE_KICK }, { "Kickstart v3.1 (A500,A600,A2000)", 40, 63, 0xfc24ae0d, 524288, 14, 0, 0, ROMTYPE_KICK }, { "Kickstart v3.1 (A1200)", 40, 68, 0x1483a091, 524288, 15, 1, 0, ROMTYPE_KICK }, { "Kickstart v3.1 (A4000)(Cloanto)", 40, 68, 0x43b6dd22, 524288, 31, 2, 1, ROMTYPE_KICK }, { "Kickstart v3.1 (A4000)", 40, 68, 0xd6bae334, 524288, 16, 2, 0, ROMTYPE_KICK }, -// { "Kickstart v3.1 (A4000T)", 40, 70, 0x75932c3a, 524288, 17, 1, 0, ROMTYPE_KICK }, + { "Kickstart v3.1 (A4000T)", 40, 70, 0x75932c3a, 524288, 17, 2, 0, ROMTYPE_KICK }, { "CD32 Kickstart v3.1", 40, 60, 0x1e62d4a5, 524288, 18, 1, 0, ROMTYPE_KICKCD32 }, { "CD32 Extended", 40, 60, 0x87746be2, 524288, 19, 1, 0, ROMTYPE_EXTCD32 }, @@ -1316,10 +1316,66 @@ static void kickstart_fix_checksum (uae_u8 *mem, int size) mem[ch++] = cksum >> 0; } +static int patch_shapeshifter (uae_u8 *kickmemory) +{ + /* Patch Kickstart ROM for ShapeShifter - from Christian Bauer. + * Changes 'lea $400,a0' and 'lea $1000,a0' to 'lea $3000,a0' for + * ShapeShifter compatability. + */ + int i, patched = 0; + uae_u8 kickshift1[] = { 0x41, 0xf8, 0x04, 0x00 }; + uae_u8 kickshift2[] = { 0x41, 0xf8, 0x10, 0x00 }; + uae_u8 kickshift3[] = { 0x43, 0xf8, 0x04, 0x00 }; + + for (i = 0x200; i < 0x300; i++) { + if (!memcmp (kickmemory + i, kickshift1, sizeof (kickshift1)) || + !memcmp (kickmemory + i, kickshift2, sizeof (kickshift2)) || + !memcmp (kickmemory + i, kickshift3, sizeof (kickshift3))) { + kickmemory[i + 2] = 0x30; + write_log ("Kickstart KickShifted @%04.4X\n", i); + patched++; + } + } + return patched; +} + +/* disable incompatible drivers */ +static int patch_residents (uae_u8 *kickmemory) +{ + int i, j, patched = 0; + char *residents[] = { "NCR scsi.device", 0 }; + // "scsi.device", "carddisk.device", "card.resource" }; + uaecptr base = 0xf80000; + + for (i = 0; i < kickmem_size - 100; i++) { + if (kickmemory[i] == 0x4a && kickmemory[i + 1] == 0xfc) { + uaecptr addr; + addr = (kickmemory[i + 2] << 24) | (kickmemory[i + 3] << 16) | (kickmemory[i + 4] << 8) | (kickmemory[i + 5] << 0); + if (addr != i + base) + continue; + addr = (kickmemory[i + 14] << 24) | (kickmemory[i + 15] << 16) | (kickmemory[i + 16] << 8) | (kickmemory[i + 17] << 0); + if (addr >= base && addr < base + 524288) { + j = 0; + while (residents[j]) { + if (!memcmp (residents[j], kickmemory + addr - base, strlen (residents[j]) + 1)) { + write_log ("KSPatcher: '%s' at %08.8X disabled\n", residents[j], i + base); + kickmemory[i] = 0x4b; /* destroy RTC_MATCHWORD */ + patched++; + break; + } + j++; + } + } + } + } + return patched; +} + static int load_kickstart (void) { struct zfile *f = zfile_fopen (currprefs.romfile, "rb"); char tmprom[MAX_DPATH]; + int patched = 0; strcpy (tmprom, currprefs.romfile); if (f == NULL) { @@ -1361,26 +1417,6 @@ static int load_kickstart (void) chk_sum: #endif - if (currprefs.kickshifter && kickmem_size >= 524288) { - /* Patch Kickstart ROM for ShapeShifter - from Christian Bauer. - * Changes 'lea $400,a0' and 'lea $1000,a0' to 'lea $3000,a0' for - * ShapeShifter compatability. - */ - int i; - uae_u8 kickshift1[] = { 0x41, 0xf8, 0x04, 0x00 }; - uae_u8 kickshift2[] = { 0x41, 0xf8, 0x10, 0x00 }; - uae_u8 kickshift3[] = { 0x43, 0xf8, 0x04, 0x00 }; - - for (i = 0x200; i < 0x300; i++) { - if (!memcmp (kickmemory + i, kickshift1, sizeof (kickshift1)) || - !memcmp (kickmemory + i, kickshift2, sizeof (kickshift2)) || - !memcmp (kickmemory + i, kickshift3, sizeof (kickshift3))) { - kickmemory[i + 2] = 0x30; - write_log ("Kickstart KickShifted @%04.4X\n", i); - } - } - kickstart_fix_checksum (kickmemory, kickmem_size); - } kickstart_version = (kickmemory[12] << 8) | kickmemory[13]; return 1; err: @@ -1664,6 +1700,9 @@ void memory_reset (void) memcpy (currprefs.romextfile, changed_prefs.romextfile, sizeof currprefs.romextfile); if (savestate_state != STATE_RESTORE) clearexec (); + xfree (extendedkickmemory); + extendedkickmemory = 0; + extendedkickmem_size = 0; load_extendedkickstart (); kickmem_mask = 524288 - 1; if (!load_kickstart ()) { @@ -1676,10 +1715,10 @@ void memory_reset (void) } else { struct romdata *rd = getromdatabydata (kickmemory, kickmem_size); if (rd) { - if (rd->cpu == 1 && currprefs.cpu_level < 2) { + if (rd->cpu == 1 && changed_prefs.cpu_level < 2) { notify_user (NUMSG_KS68EC020); uae_restart (-1, NULL); - } else if (rd->cpu == 2 && (currprefs.cpu_level < 2 || currprefs.address_space_24)) { + } else if (rd->cpu == 2 && (changed_prefs.cpu_level < 2 || changed_prefs.address_space_24)) { notify_user (NUMSG_KS68020); uae_restart (-1, NULL); } @@ -1687,6 +1726,14 @@ void memory_reset (void) cloanto_rom = 1; } } + if (kickmem_size >= 524288) { + int patched = 0; + if (currprefs.kickshifter) + patched += patch_shapeshifter (kickmemory); + patched += patch_residents (kickmemory); + if (patched) + kickstart_fix_checksum (kickmemory, kickmem_size); + } } if (cloanto_rom) diff --git a/native2amiga.c b/native2amiga.c index bb8ae200..48a57875 100755 --- a/native2amiga.c +++ b/native2amiga.c @@ -66,8 +66,6 @@ void uae_ReplyMsg(uaecptr msg) void uae_PutMsg(uaecptr port, uaecptr msg) { - uae_pt data; - data.i = 1; uae_sem_wait (&n2asem); write_comm_pipe_int (&native2amiga_pending, 1, 0); write_comm_pipe_u32 (&native2amiga_pending, port, 0); diff --git a/od-win32/blkdev_win32_aspi.c b/od-win32/blkdev_win32_aspi.c index 873e5cb0..34d914b4 100755 --- a/od-win32/blkdev_win32_aspi.c +++ b/od-win32/blkdev_win32_aspi.c @@ -45,7 +45,7 @@ struct scsi_info { static struct scsi_info si[MAX_TOTAL_DEVICES]; static int unitcnt; -static int ha_inquiry(SCSI *scgp, int id, SRB_HAInquiry *ip) +static int ha_inquiry (SCSI *scgp, int id, SRB_HAInquiry *ip) { DWORD Status; @@ -540,6 +540,7 @@ static int scsierr(SCSI *scgp) static void scan_scsi_bus (SCSI *scgp, int flags) { /* add all units we find */ + write_log ("ASPI: SCSI scan starting..\n"); scanphase = 1; for (scgp->addr.scsibus=0; scgp->addr.scsibus < 8; scgp->addr.scsibus++) { if (!scsi_havebus(scgp, scgp->addr.scsibus)) @@ -589,6 +590,7 @@ static void scan_scsi_bus (SCSI *scgp, int flags) } } } + write_log ("ASPI: SCSI scan ended\n"); scanphase = 0; } diff --git a/od-win32/bsdsock.c b/od-win32/bsdsock.c index e74e9c4e..ace428c8 100755 --- a/od-win32/bsdsock.c +++ b/od-win32/bsdsock.c @@ -102,6 +102,12 @@ typedef struct ip_option_information { u_char FAR *OptionsData; /* Options data buffer */ } IPINFO, *PIPINFO, FAR *LPIPINFO; +static void bsdsetpriority (HANDLE thread) +{ + int pri = os_winnt ? THREAD_PRIORITY_NORMAL : priorities[currprefs.win32_active_priority].value; + SetThreadPriority(thread, pri); +} + static int mySockStartup( void ) { int result = 0; @@ -179,7 +185,7 @@ int init_socket_layer(void) wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = 0; - wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE( IDI_APPICON ) ); + wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE (IDI_APPICON)); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.hbrBackground = GetStockObject (BLACK_BRUSH); wc.lpszMenuName = 0; @@ -895,13 +901,15 @@ static unsigned int __stdcall sock_thread(void *blah) if( hSockWnd ) { - // Make sure we're outrunning the wolves - int pri; + // Make sure we're outrunning the wolves + int pri = THREAD_PRIORITY_ABOVE_NORMAL; + if (!os_winnt) { pri = priorities[currprefs.win32_active_priority].value; if (pri == THREAD_PRIORITY_HIGHEST) - pri = THREAD_PRIORITY_TIME_CRITICAL; + pri = THREAD_PRIORITY_TIME_CRITICAL; else - pri++; + pri++; + } SetThreadPriority( GetCurrentThread(), pri ); while( TRUE ) @@ -2243,11 +2251,7 @@ void host_gethostbynameaddr(SB, uae_u32 name, uae_u32 namelen, long addrtype) if (i >= MAX_GET_THREADS) write_log("BSDSOCK: ERROR - Too many gethostbyname()s\n"); else { - int pri; - pri = priorities[currprefs.win32_active_priority].value; - - SetThreadPriority(hGetThreads[i],pri); - + bsdsetpriority (hGetThreads[i]); threadGetargs[i] = (uae_u32 *)&args[0]; SetEvent(hGetEvents[i]); @@ -2367,11 +2371,7 @@ void host_getprotobyname(SB, uae_u32 name) if (i >= MAX_GET_THREADS) write_log("BSDSOCK: ERROR - Too many getprotobyname()s\n"); else { - int pri; - pri = priorities[currprefs.win32_active_priority].value; - - SetThreadPriority(hGetThreads[i],pri); - + bsdsetpriority (hGetThreads[i]); threadGetargs[i] = (uae_u32 *)&args[0]; @@ -2492,11 +2492,7 @@ void host_getservbynameport(SB, uae_u32 nameport, uae_u32 proto, uae_u32 type) if (i >= MAX_GET_THREADS) write_log("BSDSOCK: ERROR - Too many getprotobyname()s\n"); else { - int pri; - pri = priorities[currprefs.win32_active_priority].value; - - SetThreadPriority(hGetThreads[i],pri); - + bsdsetpriority (hGetThreads[i]); threadGetargs[i] = (uae_u32 *)&args[0]; diff --git a/od-win32/dinput.c b/od-win32/dinput.c index 55d1ad7f..5b1639d7 100755 --- a/od-win32/dinput.c +++ b/od-win32/dinput.c @@ -679,14 +679,16 @@ static int di_do_init (void) HRESULT hr; num_mouse = num_joystick = num_keyboard = 0; + memset (&di_mouse, 0, sizeof (di_mouse)); + memset (&di_joystick, 0, sizeof (di_joystick)); + memset (&di_keyboard, 0, sizeof (di_keyboard)); + hr = DirectInput8Create (hInst, DIRECTINPUT_VERSION, &IID_IDirectInput8A, (LPVOID *)&g_lpdi, NULL); if (FAILED(hr)) { + gui_message ("Failed to initialize DirectInput!"); write_log ("DirectInput8Create failed, %s\n", DXError (hr)); return 0; } - memset (&di_mouse, 0, sizeof (di_mouse)); - memset (&di_joystick, 0, sizeof (di_joystick)); - memset (&di_keyboard, 0, sizeof (di_keyboard)); IDirectInput8_EnumDevices (g_lpdi, DI8DEVCLASS_ALL, di_enumcallback, 0, DIEDFL_ATTACHEDONLY); initialize_rawinput (); @@ -722,7 +724,8 @@ static void di_free (void) dd_inited--; if (dd_inited > 0) return; - IDirectInput8_Release (g_lpdi); + if (g_lpdi) + IDirectInput8_Release (g_lpdi); g_lpdi = 0; di_dev_free (di_mouse); di_dev_free (di_joystick); diff --git a/od-win32/dxwrap.c b/od-win32/dxwrap.c index 4e79809a..ba1f8e77 100755 --- a/od-win32/dxwrap.c +++ b/od-win32/dxwrap.c @@ -1834,10 +1834,12 @@ int DirectDraw_Flip( int wait ) } else { return 1; } - if( ddrval == DD_OK ) + if( ddrval == DD_OK ) { result = 1; - else - write_log("FLIP: DirectDrawSurface_Flip() failed with %s\n", DXError (ddrval)); + } else { + if (ddrval != 0x887601cc) + write_log("FLIP: DirectDrawSurface_Flip() failed with %s\n", DXError (ddrval)); + } return result; } diff --git a/od-win32/posixemu.c b/od-win32/posixemu.c index a7f907e9..daad8ff0 100755 --- a/od-win32/posixemu.c +++ b/od-win32/posixemu.c @@ -512,8 +512,8 @@ int start_penguin (void *(*f)(void *), void *arg, DWORD * foo) int result = 1; hThread = (HANDLE)_beginthreadex( NULL, 0, (BEGINTHREADEX_FUNCPTR)f, arg, 0, foo ); - if( hThread ) - SetThreadPriority (hThread, THREAD_PRIORITY_HIGHEST); + if (hThread) + SetThreadPriority (hThread, THREAD_PRIORITY_ABOVE_NORMAL); else result = 0; return result; diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 050cc430..e11ca162 100755 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -226,6 +226,7 @@ #define IDS_ROM_UNAVAILABLE 321 #define IDS_HARDDRIVESAFETYWARNING 322 #define IDS_NUMSG_KS68EC020 323 +#define IDS_ROMSCANNOROMS 324 #define IDS_QS_MODELS 1000 #define IDS_QS_MODEL_A500 1001 #define IDS_QS_MODEL_A500P 1002 @@ -754,6 +755,8 @@ #define IDC_DF1QQ 1680 #define IDC_CONFIGAUTO 1682 #define IDC_DF0TEXTQ 1683 +#define IDC_CONFIGAUTO2 1683 +#define IDC_CONFIGNOLINK 1683 #define IDC_DF0WPQ 1684 #define IDC_EJECT0Q 1685 #define IDC_DF1WPQ 1686 @@ -763,6 +766,7 @@ #define IDC_FILTERSLV 1692 #define IDC_FILTERVOV 1693 #define IDC_FILTERHOV 1694 +#define IDC_CONFIGLINK 1694 #define IDC_FILTERVZV 1695 #define IDC_FILTERHZV 1696 #define ID__FLOPPYDRIVES 40004 @@ -785,7 +789,7 @@ #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 242 #define _APS_NEXT_COMMAND_VALUE 40021 -#define _APS_NEXT_CONTROL_VALUE 1694 +#define _APS_NEXT_CONTROL_VALUE 1695 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 55f4ebe1..d12e6bf8 100755 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -370,26 +370,30 @@ FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN CONTROL "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | - WS_TABSTOP,6,3,289,159,WS_EX_CLIENTEDGE - RTEXT "Description:",IDC_STATIC,5,166,40,15,SS_CENTERIMAGE - EDITTEXT IDC_EDITDESCRIPTION,50,166,155,15,ES_AUTOHSCROLL,0, + WS_TABSTOP,6,3,289,153,WS_EX_CLIENTEDGE + RTEXT "Description:",IDC_STATIC,4,183,37,15,SS_CENTERIMAGE + EDITTEXT IDC_EDITDESCRIPTION,44,183,150,13,ES_AUTOHSCROLL,0, HIDC_EDITDESCRIPTION - RTEXT "Path:",IDC_STATIC,5,187,39,15,SS_CENTERIMAGE - EDITTEXT IDC_EDITPATH,50,187,155,15,ES_AUTOHSCROLL | WS_DISABLED, + EDITTEXT IDC_EDITPATH,199,161,49,15,ES_AUTOHSCROLL | WS_DISABLED, 0,HIDC_EDITPATH - RTEXT "Name:",IDC_STATIC,5,205,40,15,SS_CENTERIMAGE - EDITTEXT IDC_EDITNAME,50,205,155,15,ES_AUTOHSCROLL,0, + RTEXT "Name:",IDC_STATIC,0,161,40,15,SS_CENTERIMAGE + EDITTEXT IDC_EDITNAME,44,162,150,13,ES_AUTOHSCROLL,0, HIDC_EDITNAME - GROUPBOX "Extra Info",IDC_STATIC,210,182,85,38 - PUSHBUTTON "View",IDC_VIEWINFO,215,198,35,15 - PUSHBUTTON "Set",IDC_SETINFO,255,197,35,15 + PUSHBUTTON "View",IDC_VIEWINFO,210,195,35,15 + PUSHBUTTON "Set",IDC_SETINFO,250,195,35,15 PUSHBUTTON "Load",IDC_QUICKLOAD,5,225,40,15 PUSHBUTTON "Save",IDC_QUICKSAVE,50,225,40,15 PUSHBUTTON "Load From...",IDC_LOAD,125,225,45,15 PUSHBUTTON "Save As...",IDC_SAVE,175,225,40,15 PUSHBUTTON "Delete",IDC_DELETE,255,225,40,15 CONTROL "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,212,169,76,10 + WS_TABSTOP,253,163,42,10 + COMBOBOX IDC_CONFIGLINK,44,205,97,150,CBS_DROPDOWN | + CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + RTEXT "Link:",IDC_STATIC,0,204,40,15,SS_CENTERIMAGE + GROUPBOX "Extra info",IDC_STATIC,199,179,96,38,BS_LEFT + CONTROL "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,146,206,48,10 END IDD_PORTS DIALOGEX 0, 0, 300, 202 @@ -1376,6 +1380,7 @@ BEGIN IDS_HARDDRIVESAFETYWARNING "WARNING: Non-empty or Amiga formatted\nharddrive detected and safety test was disabled\n\nHarddrives marked with 'HD_*_' are not empty" IDS_NUMSG_KS68EC020 "Your Kickstart requires a 68EC020 or later CPU." + IDS_ROMSCANNOROMS "No supported Kickstart ROMs detected." END STRINGTABLE diff --git a/od-win32/resources/winuae_minimal.rc b/od-win32/resources/winuae_minimal.rc index f641a3d0..e03c895a 100755 --- a/od-win32/resources/winuae_minimal.rc +++ b/od-win32/resources/winuae_minimal.rc @@ -31,32 +31,34 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // Dialog // -IDD_KICKSTART DIALOGEX 0, 0, 300, 175 +IDD_KICKSTART DIALOGEX 0, 0, 300, 138 STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD EXSTYLE WS_EX_CONTEXTHELP FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN - GROUPBOX "Boot-ROM Settings:",-1,5,12,290,90 - RTEXT "ROM File:",IDC_ROMTEXT,10,27,75,10 - EDITTEXT IDC_ROMFILE,90,22,185,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_KICKCHOOSER,280,22,10,15 - RTEXT "Key File:",IDC_KEYTEXT,10,48,75,10 - EDITTEXT IDC_KEYFILE,90,43,185,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_KEYCHOOSER,280,43,10,15 - RTEXT "Extended ROM File:",IDC_ROMFILE2TEXT,10,68,75,10 - EDITTEXT IDC_ROMFILE2,90,63,185,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_ROMCHOOSER2,280,63,10,15 - CONTROL "MAPROM emulation",IDC_MAPROM,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,104,86,80,10 - CONTROL "ShapeShifter support",IDC_KICKSHIFTER,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,196,86,80,10 - GROUPBOX "Misc settings:",-1,5,105,290,59 - RTEXT "Flash RAM File:",IDC_FLASHTEXT,8,119,75,10 - EDITTEXT IDC_FLASHFILE,89,117,185,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_FLASHCHOOSER,279,117,10,15 - RTEXT "Cartridge ROM File:",IDC_FLASHTEXT2,8,140,75,10 - EDITTEXT IDC_CARTFILE,89,137,185,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_CARTCHOOSER,279,137,10,15 + GROUPBOX "ROM Settings:",-1,5,0,290,74 + RTEXT "Boot ROM File:",IDC_ROMTEXT,10,15,75,10 + COMBOBOX IDC_ROMFILE,89,12,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "...",IDC_KICKCHOOSER,280,10,10,15 + RTEXT "Extended ROM File:",IDC_ROMFILE2TEXT,10,35,75,10 + COMBOBOX IDC_ROMFILE2,89,31,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "...",IDC_ROMCHOOSER2,280,30,10,15 + RTEXT "Cartridge ROM File:",IDC_FLASHTEXT2,8,93,75,10 + COMBOBOX IDC_CARTFILE,89,90,186,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "...",IDC_CARTCHOOSER,280,90,10,15 + GROUPBOX "Misc settings:",-1,5,76,290,57 + RTEXT "Flash RAM File:",IDC_FLASHTEXT,8,112,75,10 + EDITTEXT IDC_FLASHFILE,89,110,185,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_FLASHCHOOSER,280,110,10,15 + CONTROL "MAPROM emulation [] Creates BlizKick-compatible memory area.", + IDC_MAPROM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,54, + 82,10 + CONTROL "ShapeShifter support [] Patches Kickstart ROM for ShapeShifter compatibility.", + IDC_KICKSHIFTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 187,54,80,10 END IDD_DISPLAY DIALOGEX 0, 0, 300, 194 @@ -87,10 +89,9 @@ BEGIN HIDC_PFULLSCREEN CONTROL "Lo-res",IDC_LORES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, 131,106,70,10,0,HIDC_LORES - LTEXT "Refresh:",IDC_REFRESHTEXT,34,129,28,8 + LTEXT "Refresh:",IDC_REFRESHTEXT,18,129,28,8 CONTROL "Slider1",IDC_FRAMERATE,"msctls_trackbar32", - TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,64,124,75,20 - CTEXT "",IDC_RATETEXT,144,124,50,20,SS_SUNKEN | WS_BORDER + TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,46,124,75,20 GROUPBOX "Centering",IDC_STATIC,221,0,61,67 CONTROL "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,16,45,10 @@ -108,8 +109,9 @@ BEGIN WS_TABSTOP CONTROL "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | NOT WS_VISIBLE | WS_TABSTOP,97,161,101,20 - PUSHBUTTON "Detect pixel format",IDC_TEST16BIT,221,163,67,14,0,0, + PUSHBUTTON "Detect pixel format",IDC_TEST16BIT,210,161,73,14,0,0, HIDC_TEST16BIT + EDITTEXT IDC_RATETEXT,126,128,77,12,ES_CENTER | ES_READONLY END IDD_MEMORY DIALOGEX 0, 0, 300, 175 @@ -121,53 +123,48 @@ BEGIN RTEXT "Chip:",-1,24,60,20,10,SS_CENTERIMAGE CONTROL "Slider1",IDC_CHIPMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,55,50,20 - CTEXT "",IDC_CHIPRAM,104,55,35,20,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER RTEXT "Fast:",IDC_FASTTEXT,24,85,20,10,SS_CENTERIMAGE CONTROL "Slider1",IDC_FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,80,50,20 - CTEXT "",IDC_FASTRAM,104,80,35,20,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER RTEXT "Slow:",-1,149,60,20,10,SS_CENTERIMAGE CONTROL "Slider1",IDC_SLOWMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,55,50,20 - CTEXT "",IDC_SLOWRAM,239,55,35,20,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER RTEXT "Z3-Fast:",IDC_Z3TEXT,139,85,30,10,SS_CENTERIMAGE CONTROL "Slider1",IDC_Z3FASTMEM,"msctls_trackbar32", TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,80,60,20 - CTEXT "",IDC_Z3FASTRAM,239,80,35,20,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER RTEXT "RTG (graphics card):",IDC_GFXCARDTEXT,96,110,76,10, SS_CENTERIMAGE CONTROL "Slider1",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,105,60,20 - CTEXT "",IDC_P96RAM,239,105,35,20,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER + EDITTEXT IDC_CHIPRAM,105,59,30,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_FASTRAM,105,86,30,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_SLOWRAM,243,58,30,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_Z3FASTRAM,243,85,30,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_P96RAM,243,108,30,12,ES_CENTER | ES_READONLY END -IDD_CPU DIALOGEX 0, 0, 300, 175 +IDD_CPU DIALOGEX 0, 0, 300, 177 STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - GROUPBOX "CPU Type:",IDC_STATIC,5,5,80,134,BS_LEFT + GROUPBOX "CPU Type:",IDC_STATIC,5,5,81,166,BS_LEFT CONTROL "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | - WS_TABSTOP,10,18,34,10 + WS_TABSTOP,10,18,63,10 CONTROL "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,10,33,34,10 + WS_TABSTOP,10,33,65,10 CONTROL "68EC020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,10,48,45,10 - CONTROL "68EC020+FPU",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,10,63,63,10 + WS_TABSTOP,10,48,65,10 + CONTROL "68EC020 + FPU",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,10,63,68,10 CONTROL "68020",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,10,78,34,10 - CONTROL "68020+FPU",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,10,93,54,10 + WS_TABSTOP,10,78,63,10 + CONTROL "68020 + FPU",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,10,93,64,10 CONTROL "68040",IDC_CPU6,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,10,108,36,10 - CONTROL "More compatible",IDC_COMPATIBLE,"Button", - BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,123, - 70,10 + WS_TABSTOP,10,108,66,10 + CONTROL "More compatible [] Emulate 68000's prefetch registers. More compatible but slower.", + IDC_COMPATIBLE,"Button",BS_AUTOCHECKBOX | BS_LEFT | + WS_GROUP | WS_TABSTOP,10,130,70,10 GROUPBOX "CPU Emulation Speed:",IDC_STATIC,90,5,205,86 CONTROL "Fastest possible, but maintain chipset timing", IDC_CS_HOST,"Button",BS_AUTORADIOBUTTON | BS_LEFT | @@ -187,85 +184,98 @@ BEGIN WS_TABSTOP CONTROL "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,66,69,20 - GROUPBOX "JIT Settings:",IDC_STATIC,90,94,205,76 + GROUPBOX "Advanced JIT settings:",IDC_STATIC,90,92,205,79 RTEXT "Cache Size:",IDC_CS_CACHE_TEXT,95,109,45,10, SS_CENTERIMAGE | WS_TABSTOP CONTROL "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,104,115,20 EDITTEXT IDC_CACHETEXT,255,109,30,12,ES_CENTER | ES_READONLY CONTROL "Hard Flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,100,127,60,10 + WS_TABSTOP,100,128,60,10 CONTROL "Const Jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,100,141,60,10 + WS_TABSTOP,100,142,60,10 CONTROL "FPU Support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,100,154,60,10 + WS_TABSTOP,100,155,60,10 CONTROL "Force Settings",IDC_FORCE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,165,127,61,10 + WS_TABSTOP,165,128,61,10 CONTROL "No Flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,165,141,60,10 + WS_TABSTOP,165,142,60,10 CONTROL "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | - WS_GROUP | WS_TABSTOP,230,127,34,10 + WS_GROUP | WS_TABSTOP,230,128,34,10 CONTROL "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,230,141,45,10 + WS_TABSTOP,230,142,45,10 CONTROL "After Picasso96",IDC_TRUST2,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,230,154,64,10 + WS_TABSTOP,230,155,64,10 + CONTROL "JIT [] Enable Just-In-Time CPU emulator. Increases the speed of CPU emulation 10-100x. Requires 68020 or 68040 CPU.", + IDC_JITENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10, + 145,64,10 END IDD_FLOPPY DIALOGEX 0, 0, 300, 230 STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - RTEXT "DF0:",IDC_STATIC,16,6,20,10,SS_CENTERIMAGE + RTEXT "DF0:",IDC_STATIC,10,7,20,10,SS_CENTERIMAGE COMBOBOX IDC_DF0TEXT,2,22,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_DF0TYPE,54,5,41,50,CBS_DROPDOWNLIST | WS_VSCROLL | + COMBOBOX IDC_DF0TYPE,123,6,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "Write Protected",IDC_STATIC,174,8,59,10,SS_CENTERIMAGE CONTROL "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,4,10,15 PUSHBUTTON "Eject",IDC_EJECT0,253,4,30,15 PUSHBUTTON "...",IDC_DF0,287,4,10,15 - RTEXT "DF1:",IDC_STATIC,16,41,20,10,SS_CENTERIMAGE + RTEXT "DF1:",IDC_STATIC,10,42,20,10,SS_CENTERIMAGE COMBOBOX IDC_DF1TEXT,2,58,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_DF1TYPE,54,40,41,50,CBS_DROPDOWNLIST | WS_VSCROLL | + COMBOBOX IDC_DF1TYPE,123,42,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Write Protected",IDC_STATIC,174,42,59,10,SS_CENTERIMAGE + RTEXT "Write Protected",IDC_STATIC,174,43,59,10,SS_CENTERIMAGE CONTROL "",IDC_DF1WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | - WS_TABSTOP,238,39,10,15 - PUSHBUTTON "Eject",IDC_EJECT1,253,39,30,15 - PUSHBUTTON "...",IDC_DF1,287,39,10,15 - RTEXT "DF2:",IDC_STATIC,16,77,20,10,SS_CENTERIMAGE + WS_TABSTOP,238,40,10,15 + PUSHBUTTON "Eject",IDC_EJECT1,253,40,30,15 + PUSHBUTTON "...",IDC_DF1,287,40,10,15 + RTEXT "DF2:",IDC_STATIC,10,77,20,10,SS_CENTERIMAGE COMBOBOX IDC_DF2TEXT,2,93,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_DF2TYPE,54,76,41,50,CBS_DROPDOWNLIST | WS_VSCROLL | + COMBOBOX IDC_DF2TYPE,123,77,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "Write Protected",IDC_STATIC,174,77,59,10,SS_CENTERIMAGE CONTROL "",IDC_DF2WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,75,9,15 PUSHBUTTON "Eject",IDC_EJECT2,253,75,30,15 PUSHBUTTON "...",IDC_DF2,287,75,10,15 - RTEXT "DF3:",IDC_STATIC,16,113,20,9,SS_CENTERIMAGE - COMBOBOX IDC_DF3TEXT,2,130,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | + RTEXT "DF3:",IDC_STATIC,10,112,20,9,SS_CENTERIMAGE + COMBOBOX IDC_DF3TEXT,2,128,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_DF3TYPE,54,112,41,50,CBS_DROPDOWNLIST | WS_VSCROLL | + COMBOBOX IDC_DF3TYPE,123,112,49,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "Write Protected",IDC_STATIC,174,113,59,10, SS_CENTERIMAGE CONTROL "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,111,9,15 - PUSHBUTTON "Eject",IDC_EJECT3,253,111,30,15 - PUSHBUTTON "...",IDC_DF3,287,111,10,15 - GROUPBOX "New disk image",IDC_SETTINGSTEXT,5,152,289,35 - COMBOBOX IDC_FLOPPYTYPE,16,165,51,50,CBS_DROPDOWNLIST | + PUSHBUTTON "Eject",IDC_EJECT3,253,110,30,15 + PUSHBUTTON "...",IDC_DF3,287,109,10,15 + GROUPBOX "New disk image",IDC_SETTINGSTEXT,5,147,289,35 + COMBOBOX IDC_FLOPPYTYPE,16,160,51,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Create Standard ""Floppy""",IDC_CREATE,76,165,97,15 - PUSHBUTTON "Create Custom ""Floppy""",IDC_CREATE_RAW,183,165,101,15 - GROUPBOX "Floppy drive emulation speed",IDC_SETTINGSTEXT2,5,188, + PUSHBUTTON "Create Standard ""Floppy"" [] Creates standard 880kb ADF disk image.", + IDC_CREATE,76,160,97,15 + PUSHBUTTON "Create Custom ""Floppy"" [] Creates ~2Mb low level (MFM) ADF disk image. Useful for programs that use non-AmigaDOS disk format (for example some save disks or MSDOS formatted floppies)", + IDC_CREATE_RAW,183,160,101,15 + GROUPBOX "Floppy drive emulation speed",IDC_SETTINGSTEXT2,5,185, 289,35 CONTROL "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_TOP | WS_TABSTOP,32,198,116,20 - EDITTEXT IDC_FLOPPYSPDTEXT,169,201,107,12,ES_CENTER | ES_READONLY + TBS_TOP | WS_TABSTOP,32,193,116,20 + EDITTEXT IDC_FLOPPYSPDTEXT,169,196,107,12,ES_CENTER | ES_READONLY + PUSHBUTTON "Delete Saveimage",IDC_SAVEIMAGE0,43,5,70,15,NOT + WS_VISIBLE + PUSHBUTTON "Delete Saveimage",IDC_SAVEIMAGE1,43,40,70,15,NOT + WS_VISIBLE + PUSHBUTTON "Delete Saveimage",IDC_SAVEIMAGE2,43,75,70,15,NOT + WS_VISIBLE + PUSHBUTTON "Delete Saveimage",IDC_SAVEIMAGE3,43,110,70,15,NOT + WS_VISIBLE END IDD_HARDDISK DIALOGEX 0, 0, 300, 242 @@ -275,104 +285,118 @@ FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN CONTROL "List1",IDC_VOLUMELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | - LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,5,260,191 + LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,5,260,185 PUSHBUTTON "",IDC_UP,270,52,25,15,BS_ICON PUSHBUTTON "",IDC_DOWN,270,132,25,15,BS_ICON - PUSHBUTTON "Add &Directory...",IDC_NEW_FS,5,202,60,15 - PUSHBUTTON "Add &Hardfile...",IDC_NEW_HF,70,202,60,15 - PUSHBUTTON "Add Ha&rddrive",IDC_NEW_HD,135,202,60,15 + PUSHBUTTON "Add &Directory...",IDC_NEW_FS,5,196,60,15 + PUSHBUTTON "Add &Hardfile...",IDC_NEW_HF,70,196,60,15 + PUSHBUTTON "Add Ha&rddrive...",IDC_NEW_HD,135,196,60,15 CONTROL "Add PC Drives at Startup",IDC_MAPDRIVES,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,5,222,105,10,0, + BS_AUTOCHECKBOX | WS_TABSTOP,5,216,105,10,0, HIDC_MAPDRIVES - PUSHBUTTON "Remove",IDC_REMOVE,135,220,60,15 - PUSHBUTTON "&Properties",IDC_EDIT,200,220,60,15 + PUSHBUTTON "Remove",IDC_REMOVE,135,218,60,15 + PUSHBUTTON "&Properties",IDC_EDIT,200,218,60,15 + CONTROL "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,5,229,115,10 END -IDD_SOUND DIALOGEX 0, 0, 300, 208 +IDD_SOUND DIALOGEX 0, 0, 300, 244 STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN RTEXT "Sound device:",IDC_SOUNDCARD,8,9,51,13,SS_CENTERIMAGE COMBOBOX IDC_SOUNDCARDLIST,64,9,229,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Sound Emulation",IDC_SOUNDSETTINGS,7,30,120,68 + GROUPBOX "Sound Emulation",IDC_SOUNDSETTINGS,5,30,120,68 CONTROL "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | - WS_GROUP | WS_TABSTOP,15,45,43,10 + WS_GROUP | WS_TABSTOP,13,45,43,10 CONTROL "Disabled, but emulated",IDC_SOUND1,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,15,57,88,10 + BS_AUTORADIOBUTTON | WS_TABSTOP,13,57,88,10 CONTROL "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,15,69,42,10 + WS_TABSTOP,13,69,42,10 CONTROL "Enabled, 100% accurate",IDC_SOUND3,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,15,81,93,10 - GROUPBOX "Settings",IDC_SOUNDINTERPOLATION2,133,30,160,68 - RTEXT "Frequency:",IDC_SOUNDFREQTXT,138,40,37,8,SS_CENTERIMAGE - COMBOBOX IDC_SOUNDFREQ,140,49,67,75,CBS_DROPDOWN | WS_VSCROLL | + BS_AUTORADIOBUTTON | WS_TABSTOP,13,81,93,10 + GROUPBOX "Settings",IDC_SOUNDINTERPOLATION2,6,101,290,60 + RTEXT "Frequency:",IDC_SOUNDFREQTXT,34,110,37,8,SS_CENTERIMAGE + COMBOBOX IDC_SOUNDFREQ,36,119,67,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - RTEXT "Audio filter:",IDC_SOUNDFILTERTXT,140,65,36,8, + RTEXT "Audio filter:",IDC_SOUNDFILTERTXT,36,135,36,8, SS_CENTERIMAGE - COMBOBOX IDC_SOUNDFILTER,140,74,67,75,CBS_DROPDOWNLIST | + COMBOBOX IDC_SOUNDFILTER,36,144,67,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Stereo mode:",IDC_SOUNDSTEREOTXT,223,40,41,8, + RTEXT "Stereo mode:",IDC_SOUNDSTEREOTXT,116,110,43,8, SS_CENTERIMAGE - COMBOBOX IDC_SOUNDSTEREO,220,49,67,75,CBS_DROPDOWNLIST | + COMBOBOX IDC_SOUNDSTEREO,116,119,67,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,222,65,41,8, + RTEXT "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,115,135,41,8, SS_CENTERIMAGE - COMBOBOX IDC_SOUNDINTERPOLATION,220,74,67,75,CBS_DROPDOWNLIST | + COMBOBOX IDC_SOUNDINTERPOLATION,116,144,67,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Disk Drive Sound Emulation",IDC_STATIC,8,102,285,29 - COMBOBOX IDC_SOUNDDRIVE,15,113,32,75,CBS_DROPDOWNLIST | + GROUPBOX "Disk Drive Sound Emulation",IDC_STATIC,6,164,290,46 + COMBOBOX IDC_SOUNDDRIVE,237,174,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_SOUNDDRIVESELECT,55,113,120,75,CBS_DROPDOWNLIST | + COMBOBOX IDC_SOUNDDRIVESELECT,18,192,265,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32", - TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,183,109,107,19 - GROUPBOX "Sound buffer size",IDC_STATIC,7,136,120,29 + TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,172,107,19 + GROUPBOX "Sound buffer size",IDC_STATIC,132,67,164,31 CONTROL "Slider1",IDC_SOUNDBUFFERRAM,"msctls_trackbar32", - TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,144,106,19 - CTEXT "",IDC_SOUNDBUFFERMEM,134,144,40,16,SS_CENTERIMAGE | - SS_SUNKEN | WS_BORDER | WS_TABSTOP - GROUPBOX "Sound driver lag compensation",IDC_STATIC,7,170,120,28 + TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,138,75,106,19 + GROUPBOX "Sound driver lag compensation",IDC_STATIC,6,211,290,31 CONTROL "Slider1",IDC_SOUNDADJUST,"msctls_trackbar32", - TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,178,107,19 - PUSHBUTTON "Calibrate",IDC_SOUNDCALIBRATE,183,178,40,14 - CTEXT "",IDC_SOUNDADJUSTNUM,134,178,40,16,SS_CENTERIMAGE | - SS_SUNKEN | WS_BORDER | WS_TABSTOP - GROUPBOX "Volume",IDC_STATIC,181,136,112,29 + TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,221,107,19 + PUSHBUTTON "Calibrate",IDC_SOUNDCALIBRATE,183,223,40,14 + GROUPBOX "Volume",IDC_STATIC,131,30,164,31 CONTROL "",IDC_SOUNDVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_TOP | WS_TABSTOP,183,144,107,19 + TBS_TOP | WS_TABSTOP,137,38,105,20 + EDITTEXT IDC_SOUNDBUFFERMEM,248,78,40,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_SOUNDADJUSTNUM,124,224,40,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_SOUNDVOLUME2,247,41,40,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_SOUNDDRIVEVOLUME2,124,178,40,12,ES_CENTER | + ES_READONLY + RTEXT "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,196,110,58,8, + SS_CENTERIMAGE + COMBOBOX IDC_SOUNDSTEREOSEP,197,119,67,75,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + RTEXT "Stereo mixing delay:",IDC_SOUNDSTEREOMIXTXT,196,135,63, + 8,SS_CENTERIMAGE + COMBOBOX IDC_SOUNDSTEREOMIX,197,144,67,75,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP END -IDD_LOADSAVE DIALOGEX 0, 0, 302, 240 +IDD_LOADSAVE DIALOGEX 0, 0, 302, 241 STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN CONTROL "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | - WS_TABSTOP,6,4,289,155,WS_EX_CLIENTEDGE - RTEXT "Name:",IDC_STATIC,5,202,40,15,SS_CENTERIMAGE - EDITTEXT IDC_EDITNAME,50,202,155,15,ES_AUTOHSCROLL,0, - HIDC_EDITNAME - RTEXT "Path:",IDC_STATIC,5,184,39,15,SS_CENTERIMAGE - EDITTEXT IDC_EDITPATH,50,184,155,15,ES_AUTOHSCROLL | WS_DISABLED, - 0,HIDC_EDITPATH - RTEXT "Description:",IDC_STATIC,5,163,40,15,SS_CENTERIMAGE - EDITTEXT IDC_EDITDESCRIPTION,50,163,245,15,ES_AUTOHSCROLL,0, + WS_TABSTOP,6,3,289,159,WS_EX_CLIENTEDGE + RTEXT "Description:",IDC_STATIC,5,166,40,15,SS_CENTERIMAGE + EDITTEXT IDC_EDITDESCRIPTION,50,166,155,15,ES_AUTOHSCROLL,0, HIDC_EDITDESCRIPTION - GROUPBOX "Extra Info",IDC_STATIC,210,179,85,38 - PUSHBUTTON "View",IDC_VIEWINFO,215,195,35,15 - PUSHBUTTON "Set",IDC_SETINFO,255,194,35,15 - PUSHBUTTON "Load",IDC_QUICKLOAD,5,222,40,15 - PUSHBUTTON "Save",IDC_QUICKSAVE,50,222,40,15 - PUSHBUTTON "Load From...",IDC_LOAD,125,222,45,15 - PUSHBUTTON "Save As...",IDC_SAVE,175,222,40,15 - PUSHBUTTON "Delete",IDC_DELETE,255,222,40,15 + RTEXT "Path:",IDC_STATIC,5,187,39,15,SS_CENTERIMAGE + EDITTEXT IDC_EDITPATH,50,187,155,15,ES_AUTOHSCROLL | WS_DISABLED, + 0,HIDC_EDITPATH + RTEXT "Name:",IDC_STATIC,5,205,40,15,SS_CENTERIMAGE + EDITTEXT IDC_EDITNAME,50,205,155,15,ES_AUTOHSCROLL,0, + HIDC_EDITNAME + GROUPBOX "Extra Info",IDC_STATIC,210,182,85,38 + PUSHBUTTON "View",IDC_VIEWINFO,215,198,35,15 + PUSHBUTTON "Set",IDC_SETINFO,255,197,35,15 + PUSHBUTTON "Load",IDC_QUICKLOAD,5,225,40,15 + PUSHBUTTON "Save",IDC_QUICKSAVE,50,225,40,15 + PUSHBUTTON "Load From...",IDC_LOAD,125,225,45,15 + PUSHBUTTON "Save As...",IDC_SAVE,175,225,40,15 + PUSHBUTTON "Delete",IDC_DELETE,255,225,40,15 + CONTROL "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,212,169,76,10 END IDD_PORTS DIALOGEX 0, 0, 300, 202 STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN + GROUPBOX "Serial and Parallel",IDC_SERPARFRAME,7,3,284,45 RTEXT "Serial:",IDC_STATIC,20,15,25,15,SS_CENTERIMAGE COMBOBOX IDC_SERIAL,50,15,95,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP @@ -385,41 +409,47 @@ BEGIN RTEXT "Printer:",IDC_STATIC,155,15,25,15,SS_CENTERIMAGE COMBOBOX IDC_PRINTERLIST,185,15,95,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "MIDI",IDC_MIDIFRAME,7,51,284,36 RTEXT "Out:",IDC_MIDI,10,64,34,15,SS_CENTERIMAGE COMBOBOX IDC_MIDIOUTLIST,50,64,95,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "In:",IDC_MIDI2,150,64,29,15,SS_CENTERIMAGE COMBOBOX IDC_MIDIINLIST,185,64,95,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Amiga Mouse Port 0",IDC_PORT0,7,92,116,100 + GROUPBOX "Amiga Mouse Port 0",IDC_PORT0,7,92,116,106 CONTROL "PC Joystick 0",IDC_PORT0_JOY0,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,20,102,90,10 + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,20,104,90,10 CONTROL "PC Joystick 1",IDC_PORT0_JOY1,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,20,116,90,10 + BS_AUTORADIOBUTTON | WS_TABSTOP,20,118,90,10 CONTROL "PC Mouse",IDC_PORT0_MOUSE,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,20,131,90,11 - CONTROL "Keyboard Layout ""A""",IDC_PORT0_KBDA,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,20,147,90,10 - CONTROL "Keyboard Layout ""B""",IDC_PORT0_KBDB,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,20,162,90,10 - CONTROL "Keyboard Layout ""C""",IDC_PORT0_KBDC,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,20,177,90,10 - GROUPBOX "Amiga Mouse Port 1",IDC_PORT1,175,92,115,100 + WS_TABSTOP,20,133,90,11 + CONTROL "Keyboard Layout ""A"" []Numeric keypad, 0 and 5 = fire", + IDC_PORT0_KBDA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 20,149,90,10 + CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL = fire", + IDC_PORT0_KBDB,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 20,164,90,10 + CONTROL "Keyboard Layout ""C"" []T = up, B = down, F = left, H = right, left ALT = fire", + IDC_PORT0_KBDC,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 20,179,90,10 + GROUPBOX "Amiga Mouse Port 1",IDC_PORT1,175,92,115,105 CONTROL "PC Joystick 0",IDC_PORT1_JOY0,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,190,102,90,10 + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,190,104,90,10 CONTROL "PC Joystick 1",IDC_PORT1_JOY1,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,190,116,90,10 + BS_AUTORADIOBUTTON | WS_TABSTOP,190,118,90,10 CONTROL "PC Mouse",IDC_PORT1_MOUSE,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,190,131,90,11 - CONTROL "Keyboard Layout ""A""",IDC_PORT1_KBDA,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,190,147,90,10 - CONTROL "Keyboard Layout ""B""",IDC_PORT1_KBDB,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,190,162,90,10 - CONTROL "Keyboard Layout ""C""",IDC_PORT1_KBDC,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,190,177,90,10 + WS_TABSTOP,190,133,90,11 + CONTROL "Keyboard Layout ""A"" []Numeric keypad, 0 and 5 = fire", + IDC_PORT1_KBDA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 190,149,90,10 + CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL = fire", + IDC_PORT1_KBDB,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 190,164,90,10 + CONTROL "Keyboard Layout ""C"" []T = up, B = down, F = left, H = right, left ALT = fire", + IDC_PORT1_KBDC,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 190,179,90,10 PUSHBUTTON "<-swap->",IDC_SWAP,130,132,40,14 - GROUPBOX "MIDI",IDC_MIDIFRAME,7,51,284,36 - GROUPBOX "Serial and Parallel",IDC_SERPARFRAME,7,3,284,45 + PUSHBUTTON "Flush print job",IDC_FLUSHPRINTER,199,31,58,12 END IDD_CONTRIBUTORS DIALOGEX 0, 0, 411, 242 @@ -478,21 +508,21 @@ FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN GROUPBOX "Advanced:",IDC_STATIC,8,4,285,90 CONTROL "Middle-Mouse-Button --> ALT-TAB",IDC_JULIAN,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,29,15,120,10 + BS_AUTOCHECKBOX | WS_TABSTOP,29,21,120,10 CONTROL "Show GUI on startup",IDC_SHOWGUI,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,29,30,120,10 + BS_AUTOCHECKBOX | WS_TABSTOP,29,36,120,10 CONTROL "On-Screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,29,45,115,10 + WS_TABSTOP,29,51,115,10 CONTROL "UAEscsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,29,60,117,10 + WS_TABSTOP,29,66,117,10 CONTROL "BSDsocket.library emulation",IDC_SOCKETS,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,159,15,120,10 + BS_AUTOCHECKBOX | WS_TABSTOP,159,21,120,10 CONTROL "Use CTRL-F11 to quit",IDC_CTRLF11,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,159,30,120,10 + BS_AUTOCHECKBOX | WS_TABSTOP,159,36,120,10 CONTROL "Don't use RGB overlays",IDC_NOOVERLAY,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,159,45,120,10 + BS_AUTOCHECKBOX | WS_TABSTOP,159,51,120,10 CONTROL "Use ASPI SCSI layer",IDC_ASPI,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,159,60,115,10 + WS_TABSTOP,159,66,115,10 GROUPBOX "Keyboard LEDs:",IDC_STATIC,7,99,85,73 COMBOBOX IDC_KBLED1,22,112,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP @@ -519,58 +549,59 @@ BEGIN 182,83,10,SS_CENTERIMAGE | WS_TABSTOP COMBOBOX IDC_STATE_BUFFERSIZE,248,180,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - CONTROL "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,29,76,115,10 + CONTROL "Don't show Taskbar button",IDC_NOTASKBARBUTTON,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,29,80,117,10 END -IDD_HARDFILE DIALOGEX 0, 0, 229, 164 +IDD_HARDFILE DIALOGEX 0, 0, 299, 180 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Volume Settings" +CAPTION "Hardfile Settings" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - GROUPBOX "Hard File Settings",IDC_STATIC,10,5,210,90 + GROUPBOX "Hard File Settings",IDC_STATIC,10,5,280,113 RTEXT "Path:",IDC_HARDFILE_DIR_TEXT,19,21,22,10 - EDITTEXT IDC_PATH_NAME,44,15,151,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_SELECTOR,200,15,11,15 + EDITTEXT IDC_PATH_NAME,44,15,222,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_SELECTOR,271,15,11,15 RTEXT "FileSys:",IDC_HARDFILE_FILESYS_TEXT,16,36,26,10 - EDITTEXT IDC_PATH_FILESYS,44,34,89,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_FILESYS_SELECTOR,139,34,11,15 + EDITTEXT IDC_PATH_FILESYS,44,34,221,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_FILESYS_SELECTOR,271,34,11,15 CONTROL "Read/Write",IDC_RW,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,160,37,50,10 + WS_TABSTOP,110,57,50,10 RTEXT "Device:",IDC_HARDFILE_DEVICE_TEXT,16,58,25,10 - EDITTEXT IDC_HARDFILE_DEVICE,44,54,32,15,ES_AUTOHSCROLL - RTEXT "Surfaces:",IDC_SURFACES_TEXT,75,58,35,10 - EDITTEXT IDC_HEADS,115,54,27,15,ES_NUMBER - RTEXT "Reserved:",IDC_RESERVED_TEXT,145,58,35,10 - EDITTEXT IDC_RESERVED,185,54,27,15,ES_NUMBER + EDITTEXT IDC_HARDFILE_DEVICE,44,54,40,15,ES_AUTOHSCROLL + RTEXT "Surfaces:",IDC_SURFACES_TEXT,112,79,30,10 + EDITTEXT IDC_HEADS,147,75,35,15,ES_NUMBER + RTEXT "Reserved:",IDC_RESERVED_TEXT,197,79,35,10 + EDITTEXT IDC_RESERVED,237,75,35,15,ES_NUMBER RTEXT "BootPri:",IDC_HARDFILE_BOOTPRI_TEXT,11,80,30,8 - EDITTEXT IDC_HARDFILE_BOOTPRI,44,75,32,15 - RTEXT "Sectors:",IDC_SECTORS_TEXT,80,80,30,10 - EDITTEXT IDC_SECTORS,115,75,27,15,ES_NUMBER - RTEXT "Block-Size:",IDC_BLOCKSIZE_TEXT,145,80,35,10 - EDITTEXT IDC_BLOCKSIZE,185,75,27,15,ES_NUMBER - GROUPBOX "New Hard File",IDC_STATIC,10,100,210,35 - PUSHBUTTON "Create",IDC_CREATEHF,20,115,85,14 - EDITTEXT IDC_HFSIZE,110,115,60,15,ES_NUMBER - LTEXT "MB",IDC_RESERVED_TEXT2,174,118,39,9,NOT WS_GROUP - PUSHBUTTON "OK",IDOK,115,143,50,14 - PUSHBUTTON "Cancel",IDCANCEL,171,143,50,14 + EDITTEXT IDC_HARDFILE_BOOTPRI,44,75,40,15 + RTEXT "Sectors:",IDC_SECTORS_TEXT,112,101,30,10 + EDITTEXT IDC_SECTORS,147,96,35,15,ES_NUMBER + RTEXT "Block-Size:",IDC_BLOCKSIZE_TEXT,197,101,35,10 + EDITTEXT IDC_BLOCKSIZE,237,96,35,15,ES_NUMBER + GROUPBOX "New Hard File",IDC_STATIC,10,120,280,35 + PUSHBUTTON "Enable RDB-mode",IDC_HDF_RDB,192,55,92,14 + EDITTEXT IDC_HFSIZE,141,135,61,15,ES_NUMBER + LTEXT "MB",IDC_RESERVED_TEXT2,214,138,39,9,NOT WS_GROUP + PUSHBUTTON "OK",IDOK,102,161,50,14 + PUSHBUTTON "Cancel",IDCANCEL,158,161,50,14 + PUSHBUTTON "Create",IDC_CREATEHF,40,135,85,14 END -IDD_FILESYS DIALOGEX 15, 25, 229, 111 +IDD_FILESYS DIALOGEX 15, 25, 299, 111 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Volume Settings" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN LTEXT "Device Name:",-1,5,9,54,10 - EDITTEXT IDC_VOLUME_DEVICE,65,5,85,15,ES_AUTOHSCROLL + EDITTEXT IDC_VOLUME_DEVICE,65,5,86,15,ES_AUTOHSCROLL LTEXT "Volume Label:",-1,5,31,54,10 EDITTEXT IDC_VOLUME_NAME,65,25,85,15,ES_AUTOHSCROLL LTEXT "Path:",-1,5,51,44,10 - EDITTEXT IDC_PATH_NAME,65,46,139,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_SELECTOR,210,46,10,15 + EDITTEXT IDC_PATH_NAME,65,46,213,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_SELECTOR,283,46,10,15 CONTROL "Read/Write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,70,50,10 RTEXT "BootPri:",IDC_VOLUME_BOOTPRI_TEXT,68,70,30,8 @@ -597,35 +628,44 @@ STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN GROUPBOX "Chipset type",IDC_STATIC,14,11,145,82 - CONTROL "OCS",IDC_OCS,"Button",BS_AUTORADIOBUTTON | WS_GROUP | - WS_TABSTOP,38,31,30,10 - CONTROL "ECS Agnus",IDC_ECS_AGNUS,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,38,47,50,10 - CONTROL "ECS Denise",IDC_ECS_DENISE,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,38,63,50,10 - CONTROL "Full ECS",IDC_ECS,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,102,31,42,10 - CONTROL "AGA",IDC_AGA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, - 102,47,30,10 - CONTROL "NTSC",IDC_NTSC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 102,64,35,10 + CONTROL "OCS [] The original Amiga chipset (A1000, most A500s)", + IDC_OCS,"Button",BS_AUTORADIOBUTTON | WS_GROUP | + WS_TABSTOP,38,31,51,10 + CONTROL "ECS Agnus [] Partial Enhanced Chipset. Later A500 and A2000 hardware revisions.", + IDC_ECS_AGNUS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 38,47,55,10 + CONTROL "Full ECS [] Full ECS Chipset, ECS Agnus and ECS Denise. (A500+, A600, A3000)", + IDC_ECS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,38,63, + 52,10 + CONTROL "AGA [] The next generation Amiga chipset (A1200, A4000 and CD32)", + IDC_AGA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,101,31, + 51,10 + CONTROL "NTSC [] North American and Japanese display standard, 60Hz refresh rate. Other countries use PAL (50Hz. display refresh rate)", + IDC_NTSC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,63,50, + 10 GROUPBOX "Misc chipset options",IDC_STATIC,168,11,114,82 - CONTROL "Fast Copper",IDC_FASTCOPPER,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,174,31,53,10 - CONTROL "Immediate Blitter",IDC_BLITIMM,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,174,47,75,10 - CONTROL "Cycle exact CPU and Blitter",IDC_CYCLEEXACT,"Button", - BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,174,64, - 100,10 + CONTROL "Fast Copper [] Faster but less compatible copper emulation.", + IDC_FASTCOPPER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,174, + 31,98,10 + CONTROL "Immediate Blitter [] Faster but less compatible blitter emulation.", + IDC_BLITIMM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,47, + 96,10 + CONTROL "Cycle exact CPU and Blitter [] The most compatible A500 emulation mode. Very fast CPU recommended.", + IDC_CYCLEEXACT,"Button",BS_AUTOCHECKBOX | BS_LEFT | + WS_GROUP | WS_TABSTOP,174,64,100,10 GROUPBOX "Collision level",IDC_STATIC,14,97,267,48 - CONTROL "None",IDC_COLLISION0,"Button",BS_AUTORADIOBUTTON | - WS_GROUP | WS_TABSTOP,40,113,50,10 - CONTROL "Sprites only",IDC_COLLISION1,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,39,129,50,10 - CONTROL "Sprites and Sprites vs. Playfield",IDC_COLLISION2, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,104,113,114,10 - CONTROL "Full",IDC_COLLISION3,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,104,129,27,10 + CONTROL "None [] Collision hardware emulation disabled.", + IDC_COLLISION0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | + WS_TABSTOP,40,113,50,10 + CONTROL "Sprites only [] Emulate only sprite vs sprite collisions.", + IDC_COLLISION1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 39,129,50,10 + CONTROL "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.", + IDC_COLLISION2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 104,113,161,10 + CONTROL "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.", + IDC_COLLISION3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 104,129,82,10 GROUPBOX "Sound emulation",IDC_STATIC,13,151,268,65 CONTROL "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,39,167,102,10 @@ -705,64 +745,64 @@ BEGIN PUSHBUTTON "Swap 1<>2",IDC_INPUTSWAP,249,226,45,14 END -IDD_OPENGL DIALOGEX 0, 0, 300, 193 +IDD_FILTER DIALOGEX 0, 0, 296, 216 STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN - GROUPBOX "Filter settings:",-1,8,5,285,180 - CONTROL "Enable",IDC_OPENGLENABLE,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,26,23,38,10 - COMBOBOX IDC_OPENGLMODE,67,21,56,150,CBS_DROPDOWNLIST | + GROUPBOX "Filter settings:",-1,0,0,294,174 + CONTROL "Enable",IDC_FILTERENABLE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,26,17,38,10 + COMBOBOX IDC_FILTERMODE,67,15,56,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_OPENGLFILTER,128,21,65,150,CBS_DROPDOWNLIST | + COMBOBOX IDC_FILTERFILTER,128,15,65,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Reset to defaults",IDC_OPENGLDEFAULT,197,21,73,14 - RTEXT "Horizontal Size",-1,25,52,57,10,SS_CENTERIMAGE - CONTROL "Slider1",IDC_OPENGLHZ,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_TOP | WS_TABSTOP,89,45,158,19 - CTEXT "",IDC_OPENGLHZV,249,47,21,16,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER | WS_TABSTOP - RTEXT "Vertical Size",-1,26,72,57,10,SS_CENTERIMAGE - CONTROL "Slider1",IDC_OPENGLVZ,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_TOP | WS_TABSTOP,89,65,157,19 - CTEXT "",IDC_OPENGLVZV,249,67,21,16,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER | WS_TABSTOP - RTEXT "Horizontal Position",-1,26,92,57,10,SS_CENTERIMAGE - CONTROL "Slider1",IDC_OPENGLHO,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_TOP | WS_TABSTOP,89,85,157,19 - CTEXT "",IDC_OPENGLHOV,249,87,21,16,SS_CENTERIMAGE | SS_SUNKEN | - WS_BORDER | WS_TABSTOP - RTEXT "Vertical Position",-1,26,111,57,10,SS_CENTERIMAGE - CONTROL "Slider1",IDC_OPENGLVO,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_TOP | WS_TABSTOP,89,105,157,19 - CTEXT "",IDC_OPENGLVOV,249,107,21,16,SS_CENTERIMAGE | - SS_SUNKEN | WS_BORDER | WS_TABSTOP - RTEXT "Scanlines",-1,27,141,57,10,SS_CENTERIMAGE - CONTROL "Slider1",IDC_OPENGLSL,"msctls_trackbar32",TBS_AUTOTICKS | - TBS_TOP | WS_TABSTOP,89,134,157,19 - CTEXT "",IDC_OPENGLSLV,249,135,21,16,SS_CENTERIMAGE | - SS_SUNKEN | WS_BORDER | WS_TABSTOP - COMBOBOX IDC_OPENGLSLR,56,154,27,150,CBS_DROPDOWNLIST | + PUSHBUTTON "Reset to defaults",IDC_FILTERDEFAULT,197,15,73,14 + RTEXT "Horizontal Size",-1,25,44,57,10,SS_CENTERIMAGE + CONTROL "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_TOP | WS_TABSTOP,89,37,158,19 + RTEXT "Vertical Size",-1,26,64,57,10,SS_CENTERIMAGE + CONTROL "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_TOP | WS_TABSTOP,89,57,157,19 + RTEXT "Horizontal Position",-1,26,84,57,10,SS_CENTERIMAGE + CONTROL "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_TOP | WS_TABSTOP,89,77,157,19 + RTEXT "Vertical Position",-1,26,103,57,10,SS_CENTERIMAGE + CONTROL "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_TOP | WS_TABSTOP,89,97,157,19 + RTEXT "Scanlines",-1,27,133,57,10,SS_CENTERIMAGE + CONTROL "Slider1",IDC_FILTERSL,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_TOP | WS_TABSTOP,89,126,157,19 + COMBOBOX IDC_FILTERSLR,56,146,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - CONTROL "Slider1",IDC_OPENGLSL2,"msctls_trackbar32", - TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,89,154,157,19 - CTEXT "",IDC_OPENGLSL2V,249,154,21,16,SS_CENTERIMAGE | - SS_SUNKEN | WS_BORDER | WS_TABSTOP + CONTROL "Slider1",IDC_FILTERSL2,"msctls_trackbar32", + TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,89,146,157,19 + EDITTEXT IDC_FILTERSL2V,248,151,34,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_FILTERSLV,248,128,34,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_FILTERVOV,248,101,34,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_FILTERHOV,248,79,34,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_FILTERVZV,248,59,34,12,ES_CENTER | ES_READONLY + EDITTEXT IDC_FILTERHZV,248,40,34,12,ES_CENTER | ES_READONLY + GROUPBOX "Presets",-1,0,176,296,36 + COMBOBOX IDC_FILTERPRESETS,8,190,119,150,CBS_DROPDOWN | CBS_SORT | + CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Load",IDC_FILTERPRESETLOAD,132,189,47,14 + PUSHBUTTON "Save",IDC_FILTERPRESETSAVE,184,189,47,14 + PUSHBUTTON "Delete",IDC_FILTERPRESETDELETE,236,189,47,14 END -IDD_HARDDRIVE DIALOGEX 0, 0, 229, 66 +IDD_HARDDRIVE DIALOGEX 0, 0, 300, 66 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Harddrive Settings" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN LTEXT "Harddrive:",-1,7,11,35,10 - COMBOBOX IDC_HARDDRIVE,49,9,173,150,CBS_DROPDOWNLIST | + COMBOBOX IDC_HARDDRIVE,49,9,246,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP CONTROL "Read/Write",IDC_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,30,50,10 - DEFPUSHBUTTON "OK",IDOK,116,47,50,14 - PUSHBUTTON "Cancel",IDCANCEL,172,47,50,14 + DEFPUSHBUTTON "OK",IDOK,115,30,50,14 + PUSHBUTTON "Cancel",IDCANCEL,189,30,50,14 END IDD_MISC2 DIALOGEX 0, 0, 300, 92 @@ -802,9 +842,9 @@ BEGIN CONTROL "",IDC_DISKLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,4,6,262,211 - PUSHBUTTON "Remove disk image",IDC_DISKLISTREMOVE,94,223,93,15 PUSHBUTTON "",IDC_UP,270,66,25,15,BS_ICON PUSHBUTTON "",IDC_DOWN,270,146,25,15,BS_ICON + PUSHBUTTON "Remove disk image",IDC_DISKLISTREMOVE,94,223,93,15 END IDD_PANEL DIALOGEX 0, 0, 420, 278 @@ -814,16 +854,95 @@ EXSTYLE WS_EX_ACCEPTFILES | WS_EX_CONTROLPARENT CAPTION "WinUAE Properties" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN + GROUPBOX "",IDC_PANEL_FRAME,112,4,303,247,NOT WS_VISIBLE CONTROL "",IDC_PANELTREE,"SysTreeView32",TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_NOSCROLL | WS_BORDER | WS_TABSTOP,5,5,101,248,WS_EX_CLIENTEDGE GROUPBOX "",IDC_PANEL_FRAME_OUTER,110,2,307,251 + PUSHBUTTON "Reset",IDC_RESETAMIGA,6,259,47,14 + PUSHBUTTON "Quit",IDC_QUITEMU,57,259,47,14 DEFPUSHBUTTON "OK",IDOK,260,259,50,14 PUSHBUTTON "Cancel",IDCANCEL,313,259,50,14 PUSHBUTTON "Help",IDHELP,366,259,50,14,WS_DISABLED - PUSHBUTTON "Reset",IDC_RESETAMIGA,6,259,47,14 - PUSHBUTTON "Quit",IDC_QUITEMU,57,259,47,14 - GROUPBOX "",IDC_PANEL_FRAME,112,4,303,247,NOT WS_VISIBLE +END + +IDD_PATHS DIALOGEX 0, 0, 300, 221 +STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + LTEXT "ROM path:",IDC_PATHS_ROML,14,9,260,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_ROM,14,22,261,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_ROMS,281,22,11,15 + LTEXT "Configuration file path:",IDC_PATHS_CONFIGL,14,40,260,8, + SS_CENTERIMAGE + EDITTEXT IDC_PATHS_CONFIG,14,52,261,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_CONFIGS,281,52,11,15 + LTEXT "Screenshot path:",IDC_PATHS_SCREENSHOTL,14,71,260,8, + SS_CENTERIMAGE + EDITTEXT IDC_PATHS_SCREENSHOT,14,83,261,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_SCREENSHOTS,281,83,11,15 + LTEXT "State file path:",IDC_PATHS_STATEFILEL,14,102,260,8, + SS_CENTERIMAGE + EDITTEXT IDC_PATHS_SAVESTATE,14,114,261,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_SAVESTATES,281,114,11,15 + LTEXT "Saveimage path:",IDC_PATHS_SAVEIMAGEL,14,163,260,8, + SS_CENTERIMAGE + EDITTEXT IDC_PATHS_SAVEIMAGE,14,175,261,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_SAVEIMAGES,281,175,11,15 + PUSHBUTTON "Reset to defaults",IDC_PATHS_DEFAULT,13,199,73,14 + PUSHBUTTON "Rescan ROMs",IDC_ROM_RESCAN,97,199,73,14 + PUSHBUTTON "Clear registry",IDC_RESETREGISTRY,219,199,73,14 + LTEXT "Video path:",IDC_PATHS_AVIOUTPUTL,14,132,260,8, + SS_CENTERIMAGE + EDITTEXT IDC_PATHS_AVIOUTPUT,14,144,261,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_AVIOUTPUTS,282,144,11,15 +END + +IDD_QUICKSTART DIALOGEX 0, 0, 300, 242 +STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD +FONT 8, "MS Sans Serif", 0, 0, 0x1 +BEGIN + GROUPBOX "Hardware configuration",IDC_QUICKSTART_CONFIG,3,0,294, + 54 + RTEXT "Model:",IDC_STATIC,5,14,56,10,SS_CENTERIMAGE + COMBOBOX IDC_QUICKSTART_MODEL,65,12,225,50,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + RTEXT "Configuration:",IDC_STATIC,5,33,56,10,SS_CENTERIMAGE + COMBOBOX IDC_QUICKSTART_CONFIGURATION,65,31,225,50, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Best compatibility",IDC_STATIC,13,70,67,10, + SS_CENTERIMAGE + GROUPBOX "Disk Drives",IDC_QUICKSTART_DF,3,126,294,84 + LTEXT "Disk Drive DF0:",IDC_STATIC,10,138,56,10,SS_CENTERIMAGE + PUSHBUTTON "Select Disk Image",IDC_DF0QQ,77,135,98,15 + RTEXT "Write Protected",IDC_STATIC,180,139,58,10, + SS_CENTERIMAGE + CONTROL "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | + WS_TABSTOP,245,137,10,15 + PUSHBUTTON "Eject",IDC_EJECT0Q,260,136,30,15 + COMBOBOX IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | + WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_DF1TEXTQ,9,190,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | + WS_VSCROLL | WS_TABSTOP + CONTROL "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | + WS_TABSTOP,245,173,10,15 + PUSHBUTTON "Eject",IDC_EJECT1Q,260,172,30,15 + CONTROL "Start in Quickstart-mode",IDC_QUICKSTARTMODE,"Button", + BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,199,222,94,10 + COMBOBOX IDC_QUICKSTART_HOSTCONFIG,65,103,225,50,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + GROUPBOX "Host configuration",IDC_QUICKSTART_HOST,3,91,294,33 + RTEXT "Configuration:",IDC_STATIC,5,105,55,10,SS_CENTERIMAGE + LTEXT "Disk Drive DF1:",IDC_STATIC,10,176,56,10,SS_CENTERIMAGE + PUSHBUTTON "Select Disk Image",IDC_DF1QQ,77,172,98,15 + RTEXT "Write Protected",IDC_STATIC,180,175,58,10, + SS_CENTERIMAGE + CONTROL "",IDC_QUICKSTART_COMPATIBILITY,"msctls_trackbar32", + TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,65,115,21 + RTEXT "Low compatibility",IDC_STATIC,215,70,63,10, + SS_CENTERIMAGE + GROUPBOX "Compatibility vs required CPU power ", + IDC_QUICKSTART_COMPA,3,56,294,33 END @@ -880,6 +999,8 @@ IDI_SOUND ICON "sound.ico" IDI_DISPLAY ICON "screen.ico" IDI_ROOT ICON "root.ico" IDI_MEMORY ICON "chip.ico" +IDI_QUICKSTART ICON "quickstart.ico" +IDI_PATHS ICON "paths.ico" ///////////////////////////////////////////////////////////////////////////// // @@ -887,8 +1008,8 @@ IDI_MEMORY ICON "chip.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,8,27,0 - PRODUCTVERSION 0,8,27,0 + FILEVERSION 0,9,90,0 + PRODUCTVERSION 0,9,90,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -904,12 +1025,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "WinUAE" - VALUE "FileVersion", "0.8.27" + VALUE "FileVersion", "0.9.90" VALUE "InternalName", "WinUAE" VALUE "LegalCopyright", "© 1996-2004 under the GNU Public License (GPL)" VALUE "OriginalFilename", "WinUAE.exe" VALUE "ProductName", "WinUAE" - VALUE "ProductVersion", "0.8.27" + VALUE "ProductVersion", "0.9.90" END END BLOCK "VarFileInfo" @@ -934,19 +1055,19 @@ IDC_MYHAND CURSOR "H_arrow.cur" #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN - IDD_FLOPPY, DIALOG + IDD_HARDDISK, DIALOG BEGIN - BOTTOMMARGIN, 175 + BOTTOMMARGIN, 241 END - IDD_HARDDISK, DIALOG + IDD_SOUND, DIALOG BEGIN - BOTTOMMARGIN, 175 + BOTTOMMARGIN, 243 END - IDD_SOUND, DIALOG + IDD_LOADSAVE, DIALOG BEGIN - BOTTOMMARGIN, 206 + BOTTOMMARGIN, 240 END IDD_CONTRIBUTORS, DIALOG @@ -955,9 +1076,9 @@ BEGIN BOTTOMMARGIN, 212 END - IDD_MISC1, DIALOG + IDD_FILESYS, DIALOG BEGIN - BOTTOMMARGIN, 215 + RIGHTMARGIN, 229 END IDD_INPUT, DIALOG @@ -965,16 +1086,15 @@ BEGIN BOTTOMMARGIN, 187 END - IDD_OPENGL, DIALOG - BEGIN - BOTTOMMARGIN, 175 - END - IDD_PANEL, DIALOG BEGIN LEFTMARGIN, 7 TOPMARGIN, 7 - HORZGUIDE, 241 + END + + IDD_QUICKSTART, DIALOG + BEGIN + RIGHTMARGIN, 299 END END #endif // APSTUDIO_INVOKED @@ -1004,7 +1124,6 @@ BEGIN END END - ///////////////////////////////////////////////////////////////////////////// // // RT_MANIFEST @@ -1033,12 +1152,14 @@ BEGIN IDS_CPU "CPU" IDS_CHIPSET "Chipset" IDS_INPUT "Input" - IDS_OPENGL "Filter" + IDS_FILTER "Filter" END STRINGTABLE BEGIN IDS_MISC2 "Priority" + IDS_PATHS "Paths" + IDS_QUICKSTART "Quickstart" END STRINGTABLE @@ -1069,7 +1190,7 @@ BEGIN IDS_SELECTUAE "Select a UAE Config-File..." IDS_UAE "UAE Config Files" IDS_SELECTROM "Select an Amiga ROM file..." - IDS_ROM "Amiga Kickstart Files" + IDS_ROM "Amiga ROM Files" IDS_SELECTKEY "Select an Amiga Key-File..." IDS_KEY "Amiga Kickstart Key-Files" IDS_SELECTINFO "Select information for your config..." @@ -1106,7 +1227,6 @@ BEGIN IDS_BLOCKSIZE "Block Size" IDS_NAME "Name" IDS_DESCRIPTION "Description" - IDS_ONEINSTANCE "Only one instance of WinUAE can run at a time.\n" IDS_INSTALLDIRECTX "You have to install DirectX on your system before you can use UAE.\nRefer to the documentation for further details.\n" IDS_REGKEYCREATEFAILED "WinUAE could not create Registry keys! You need administrator privileges.\n" IDS_COULDNOTLOADCONFIG "Could not load selected configuration!\n" @@ -1198,6 +1318,69 @@ BEGIN IDS_TREEVIEW_SETTINGS "Settings" IDS_WINUAETITLE_MMB "[Mouse active - press Alt-Tab or middle-button to cancel]" IDS_WINUAETITLE_NORMAL "[Mouse active - press Alt-Tab to cancel]" + IDS_STARTEMULATION "Start" + IDS_TREEVIEW_ABOUT "About" +END + +STRINGTABLE +BEGIN + IDS_NOHARDDRIVES "No Amiga formatted or completely empty harddrives detected." + IDS_DEFAULT_HOST "Default Configuration" +END + +STRINGTABLE +BEGIN + IDS_NUMSG_NEEDEXT2 "Program uses non-standard disk format. You may need to use ""Custom"" floppy instead of standard adf. This message does not appear again." + IDS_NUMSG_NOROMKEY "Could not find ROM key file." + IDS_NUMSG_KSROMCRCERROR "Kickstart checksum incorrect. You probably have a corrupted ROM image." + IDS_NUMSG_KSROMREADERROR "Error while reading Kickstart." +END + +STRINGTABLE +BEGIN + IDS_NUMSG_NOEXTROM "No extended Kickstart ROM found." + IDS_NUMSG_MODRIP_NOTFOUND "No modules or compressed data found." + IDS_NUMSG_MODRIP_FINISHED "Scan finished." + IDS_NUMSG_MODRIP_SAVE "Module/packer found\n%s\nDo you want to save it?" + IDS_NUMSG_KS68020 "Your Kickstart requires a 68020 CPU or later CPU." + IDS_NUMSG_ROMNEED "You need any of following ROM(s)\n\n%s" + IDS_NUMSG_NOZLIB "Zip and gzip support disabled because zlib1.dll is missing." + IDS_NUMSG_STATEHD "WARNING: State saves do not support harddrive emulation. This message does not appear again." + IDS_NUMSG_NOCAPS "This disk image needs the C.A.P.S. plugin\nwhich is available from\nhttp//www.caps-project.org/download.shtml" + IDS_NUMSG_OLDCAPS "You need updated C.A.P.S. plugin\nwhich is available from\nhttp//www.caps-project.org/download.shtml" + IDS_IMGCHK_BOOTBLOCKCRCERROR + "Selected disk image is not bootable (bootblock CRC error)" + IDS_IMGCHK_BOOTBLOCKNO "Selected disk image is not bootable (no bootblock)" + IDS_IMGCHK_DAMAGED "Selected disk image is damaged or unformatted" + IDS_IMGCHK_KS2 "Selected disk image requires Kickstart 2.04 or 3.0\nConfiguration updated" + IDS_IMGCHK_KS3 "Selected disk image requires Kickstart 3.0 or later\nConfiguration updated" + IDS_ROMSCANEND "ROM scan finished" +END + +STRINGTABLE +BEGIN + IDS_ROM_AVAILABLE "available" + IDS_ROM_UNAVAILABLE "unavailable" + IDS_HARDDRIVESAFETYWARNING + "WARNING: Non-empty or Amiga formatted\nharddrive detected and safety test was disabled\n\nHarddrives marked with 'HD_*_' are not empty" + IDS_NUMSG_KS68EC020 "Your Kickstart requires a 68EC020 or later CPU." +END + +STRINGTABLE +BEGIN + IDS_QS_MODELS "Amiga 500\nAmiga 500+\nAmiga 600\nAmiga 1000\nAmiga 1200\nCD32\nCDTV (CDROM emulation not yet working)\nExpanded UAE example configuration" + IDS_QS_MODEL_A500 "KS 1.3, OCS Agnus, 0.5M Chip + 0.5M Slow (most common)\nThis configuration is capable of running most games and demos ever produced for the first Amiga line. Only few exceptions need different configuration. Oldest Amiga games tend to be incompatible with this configuration.\nKS 1.3, ECS Agnus, 0.5M Chip + 0.5M Slow\nLater hardware revision of Amiga 500. Nearly 100% compatible with previous configuration.\nKS 1.3, ECS Agnus, 1.0M Chip\nFew newer games and demos require this configuration.\nKS 1.3, OCS Agnus, 0.5M Chip\nVery old (~1987 and older) games and demos may require this configuration.\nKS 1.2, OCS Agnus, 0.5M Chip\nThe first Amiga 500 produced had this configuration. Some very old programs only work correctly with this configuration. NOTE: This configuration cannot boot the Amiga OS installed on an emulated HD.\nKS 1.2, OCS Agnus, 0.5M Chip + 0.5M Slow\nThis configuration adds expansion memory to the first Amiga 500 ever produced. Try this if your game do not work with newer configurations but works with the previous one. It could add some features to the game and faster game loading. NOTE: This configuration cannot boot the Amiga OS installed on an emulated HD." + IDS_QS_MODEL_A500P "Basic non-expanded configuration\nA500+ is basically an Amiga 500 with ECS Agnus, 1MB of Chip RAM and Kickstart 2.0 ROM. Many Amiga 500 games and demos won't work properly on an Amiga 500+.\n2M Chip RAM expanded configuration\n\n4M Fast RAM expanded configuration\n" + IDS_QS_MODEL_A600 "Basic non-expanded configuration\nA600 is basically smaller Amiga 500+ with updated Kickstart 2.0 ROM.\n2M Chip RAM expanded configuration\n\n4M Fast RAM expanded configuration\n" + IDS_QS_MODEL_A1000 "0.5M Chip\nThe Amiga 1000 was the first Amiga ever produced, configuration is basically an OCS A500. You should never use this configuration unless you are nostalgic and you want to hear short special A1000 boot tune\n256K Chip\nUnexpanded Amiga 1000. All later A1000 models were sold with 256K RAM expansion build-in." + IDS_QS_MODEL_A1200 "Basic non-expanded configuration\nUse this configuration to run most AGA demos and games\n4M Fast RAM expanded configuration\nSome newer AGA games and demos need an expanded A1200 to run." + IDS_QS_MODEL_CD32 "CD32\nCD32 was the first 32bit console. It is basically an A1200 with build-in CDROM. Insert your CD32 or CDTV CDROM into a free CDROM drive before starting emulation." + IDS_QS_MODEL_CDTV "CDTV\nCDTV was Commodore`s first attempt at making a CD-ROM equipped computer. It is an 1MB ECS Amiga 500 in a black box that looks like a CD player." +END + +STRINGTABLE +BEGIN + IDS_QS_MODEL_UAE "High-end expanded configuration\nThis configuration can be used as a basis for your own A3000/A4000-style high-performance, expanded custom configuration for Workbench, applications, WHDLoad etc.." END #endif // English (U.S.) resources diff --git a/od-win32/win32.c b/od-win32/win32.c index 21028263..738fd03a 100755 --- a/od-win32/win32.c +++ b/od-win32/win32.c @@ -410,17 +410,22 @@ void setmouseactive (int active) static int avioutput_video = 0; #endif -void setpriority (int pri) +void setpriority (struct threadpriorities *pri) { - if (pri >= 2) - pri = 1; - SetThreadPriority ( GetCurrentThread(), pri); - write_log ("priority set to %d\n", pri); + int err; + write_log ("changing priority to %s\n", pri->name); + if (os_winnt) + err = SetPriorityClass (GetCurrentProcess (), pri->classvalue); + else + err = SetThreadPriority (GetCurrentThread(), pri->value); + if (!err) + write_log ("priority set failed, %08.8X\n", GetLastError ()); } static void winuae_active (HWND hWnd, int minimized) { - int ot, pri; + int ot; + struct threadpriorities *pri; /* without this returning from hibernate-mode causes wrong timing */ @@ -434,10 +439,10 @@ static void winuae_active (HWND hWnd, int minimized) focus = 1; write_log ("WinUAE now active via WM_ACTIVATE\n"); - pri = priorities[currprefs.win32_inactive_priority].value; + pri = &priorities[currprefs.win32_inactive_priority]; #ifndef _DEBUG if (!minimized) - pri = priorities[currprefs.win32_active_priority].value; + pri = &priorities[currprefs.win32_active_priority]; #endif setpriority (pri); @@ -466,11 +471,12 @@ static void winuae_active (HWND hWnd, int minimized) if (isfullscreen()) setmouseactive (1); manual_palette_refresh_needed = 1; + } static void winuae_inactive (HWND hWnd, int minimized) { - int pri; + struct threadpriorities *pri; focus = 0; write_log( "WinUAE now inactive via WM_ACTIVATE\n" ); @@ -484,11 +490,11 @@ static void winuae_inactive (HWND hWnd, int minimized) #ifdef AHI ahi_open_sound (); #endif - pri = priorities[currprefs.win32_inactive_priority].value; + pri = &priorities[currprefs.win32_inactive_priority]; if (!quit_program) { if (minimized) { inputdevice_unacquire (); - pri = priorities[currprefs.win32_iconified_priority].value; + pri = &priorities[currprefs.win32_iconified_priority]; if (currprefs.win32_iconified_nosound) { close_sound (); #ifdef AHI @@ -546,11 +552,11 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, static int ignorenextactivateapp; PAINTSTRUCT ps; HDC hDC; - BOOL minimized; LPMINMAXINFO lpmmi; RECT rect; - int mx, my; + int mx, my, v; static int mm; + static int minimized; if (ignore_messages_all) return DefWindowProc (hWnd, message, wParam, lParam); @@ -560,15 +566,43 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, switch( message ) { + case WM_SIZE: + { + if (isfullscreen ()) { + v = minimized; + switch (wParam) + { + case SIZE_MAXIMIZED: + case SIZE_RESTORED: + v = FALSE; + break; + default: + v = TRUE; + break; + } + if (v != minimized) { + if (v) + winuae_inactive (hWnd, wParam == SIZE_MINIMIZED); + else + winuae_active (hWnd, minimized); + } + minimized = v; + return 0; + } + } + case WM_ACTIVATE: - minimized = HIWORD( wParam ); - if (LOWORD (wParam) != WA_INACTIVE) { - winuae_active (hWnd, minimized); - if (ignorenextactivateapp > 0) - ignorenextactivateapp--; - } else - winuae_inactive (hWnd, minimized); - break; + if (!isfullscreen ()) { + minimized = HIWORD (wParam); + if (LOWORD (wParam) != WA_INACTIVE) { + winuae_active (hWnd, minimized); + if (ignorenextactivateapp > 0) + ignorenextactivateapp--; + } else { + winuae_inactive (hWnd, minimized); + } + return 0; + } case WM_ACTIVATEAPP: if (!wParam) { @@ -582,11 +616,11 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, exit_gui (0); } manual_palette_refresh_needed = 1; - break; + return 0; case WM_PALETTECHANGED: - if( (HWND)wParam != hWnd ) - WIN32GFX_PaletteChange(); + if ((HWND)wParam != hWnd) + manual_palette_refresh_needed = 1; break; case WM_KEYDOWN: @@ -700,14 +734,6 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, WIN32GFX_WindowMove(); return TRUE; - case WM_SIZING: - WIN32GFX_WindowSize(); - return TRUE; - - case WM_SIZE: - WIN32GFX_WindowSize(); - return 0; - case WM_GETMINMAXINFO: rect.left=0; rect.top=0; @@ -1006,7 +1032,7 @@ int WIN32_RegisterClasses( void ) HDC hDC = GetDC( NULL ); if (GetDeviceCaps (hDC, NUMCOLORS) != -1) - g_dwBackgroundColor = RGB( 255, 0, 255 ); + g_dwBackgroundColor = RGB (255, 0, 255); ReleaseDC (NULL, hDC); wc.style = CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW | CS_DBLCLKS | CS_OWNDC; @@ -1014,7 +1040,7 @@ int WIN32_RegisterClasses( void ) wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = 0; - wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE( IDI_APPICON ) ); + wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE (IDI_APPICON)); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.lpszMenuName = 0; wc.lpszClassName = "AmigaPowah"; @@ -1027,7 +1053,7 @@ int WIN32_RegisterClasses( void ) wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = 0; - wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE( IDI_APPICON ) ); + wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE (IDI_APPICON)); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.hbrBackground = CreateSolidBrush (g_dwBackgroundColor); wc.lpszMenuName = 0; @@ -1035,12 +1061,12 @@ int WIN32_RegisterClasses( void ) if (!RegisterClass (&wc)) return 0; - wc.style = CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW; + wc.style = CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW; wc.lpfnWndProc = HiddenWindowProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = 0; - wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE( IDI_APPICON ) ); + wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE (IDI_APPICON)); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.hbrBackground = CreateSolidBrush (g_dwBackgroundColor); wc.lpszMenuName = 0; @@ -1715,6 +1741,7 @@ static void WIN32_HandleRegistryStuff( void ) HKEY hWinUAEKeyLocal = NULL; HKEY fkey; int forceroms = 0; + int updateversion = 1; /* Create/Open the hWinUAEKey which points to our config-info */ if( RegCreateKeyEx( HKEY_CLASSES_ROOT, ".uae", 0, "", REG_OPTION_NON_VOLATILE, @@ -1773,12 +1800,16 @@ static void WIN32_HandleRegistryStuff( void ) if (RegQueryValueEx( hWinUAEKey, "Version", 0, &dwType, (LPBYTE)&version, &size) == ERROR_SUCCESS) { if (checkversion (version)) forceroms = 1; + else + updateversion = 0; } else { forceroms = 1; } - // Set this even when we're opening an existing key, so that the version info is always up to date. - if (RegSetValueEx( hWinUAEKey, "Version", 0, REG_SZ, (CONST BYTE *)VersionStr, strlen( VersionStr ) + 1 ) != ERROR_SUCCESS) - forceroms = 0; + if (updateversion) { + // Set this even when we're opening an existing key, so that the version info is always up to date. + if (RegSetValueEx( hWinUAEKey, "Version", 0, REG_SZ, (CONST BYTE *)VersionStr, strlen( VersionStr ) + 1 ) != ERROR_SUCCESS) + forceroms = 0; + } RegQueryValueEx( hWinUAEKey, "DisplayInfo", 0, &dwType, (LPBYTE)&colortype, &dwDisplayInfoSize ); if( colortype == 0 ) /* No color information stored in the registry yet */ @@ -2003,7 +2034,7 @@ __asm{ argv[0] = 0; #endif /* Get our executable's root-path */ - if( ( start_path = xmalloc( MAX_DPATH ) ) ) + if ((start_path = xmalloc (MAX_DPATH))) { GetModuleFileName( NULL, start_path, MAX_DPATH ); if((posn = strrchr (start_path, '\\'))) @@ -2052,7 +2083,7 @@ __asm{ #endif real_main (argc, argv); } - free( start_path ); + free (start_path); } if (mm_timerres && timermode == 0) @@ -2097,11 +2128,11 @@ int execute_command (char *cmd) } struct threadpriorities priorities[] = { - { "Above Normal", THREAD_PRIORITY_ABOVE_NORMAL }, - { "Normal", THREAD_PRIORITY_NORMAL }, - { "Below Normal", THREAD_PRIORITY_BELOW_NORMAL }, - { "Low", THREAD_PRIORITY_LOWEST }, - { 0, -1 } + { "Above Normal", THREAD_PRIORITY_ABOVE_NORMAL, ABOVE_NORMAL_PRIORITY_CLASS }, + { "Normal", THREAD_PRIORITY_NORMAL, NORMAL_PRIORITY_CLASS }, + { "Below Normal", THREAD_PRIORITY_BELOW_NORMAL, BELOW_NORMAL_PRIORITY_CLASS }, + { "Low", THREAD_PRIORITY_LOWEST, IDLE_PRIORITY_CLASS }, + { 0 } }; static int drvsampleres[] = { diff --git a/od-win32/win32.h b/od-win32/win32.h index 583756d6..951d8646 100755 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -21,7 +21,7 @@ extern int manual_painting_needed; extern int manual_palette_refresh_needed; extern int mouseactive, focus; #define WINUAEBETA 1 -#define WINUAEBETASTR " Beta 9" +#define WINUAEBETASTR " Beta 10b" extern void my_kbd_handler (int, int, int); extern void clearallkeys(void); @@ -67,7 +67,6 @@ extern void sleep_millis_busy (int ms); extern void screenshot(int mode); extern void wait_keyrelease (void); extern void keyboard_settrans (void); -extern void setpriority (int pri); extern void handle_rawinput (DWORD lParam); @@ -75,8 +74,11 @@ extern void handle_rawinput (DWORD lParam); struct threadpriorities { char *name; int value; + int classvalue; }; extern struct threadpriorities priorities[]; +extern void setpriority (struct threadpriorities *pri); + extern int dinput_wmkey (uae_u32 key); extern int dinput_winmouse (void); diff --git a/od-win32/win32_scale2x.c b/od-win32/win32_scale2x.c index f9d4b7da..e28b9559 100755 --- a/od-win32/win32_scale2x.c +++ b/od-win32/win32_scale2x.c @@ -184,7 +184,8 @@ void S2X_render (void) dptr = (uae_u8*)desc.lpSurface; pitch = desc.lPitch; } else { - DirectDraw_SurfaceLock (lockable_surface); + if (!DirectDraw_SurfaceLock (lockable_surface)) + return; dptr = DirectDraw_GetSurfacePointer (); pitch = DirectDraw_GetSurfacePitch (); } diff --git a/od-win32/win32gfx.c b/od-win32/win32gfx.c index 3391a673..5e07a7b7 100755 --- a/od-win32/win32gfx.c +++ b/od-win32/win32gfx.c @@ -327,12 +327,10 @@ static int set_ddraw (void) if (ddrval != DD_OK) goto oops; - if (dxfullscreen) - { + if (dxfullscreen) { write_log( "set_ddraw: Trying %dx%d, bits=%d, refreshrate=%d\n", width, height, bits, freq ); ddrval = DirectDraw_SetDisplayMode (width, height, bits, freq); - if (ddrval != DD_OK) - { + if (ddrval != DD_OK) { write_log ("set_ddraw: failed, trying without forced refresh rate\n"); ddrval = DirectDraw_SetDisplayMode (width, height, bits, 0); if (ddrval != DD_OK) { @@ -342,8 +340,7 @@ static int set_ddraw (void) } ddrval = DirectDraw_GetDisplayMode(); - if (ddrval != DD_OK) - { + if (ddrval != DD_OK) { write_log( "set_ddraw: Couldn't GetDisplayMode()\n" ); goto oops; } @@ -356,63 +353,57 @@ static int set_ddraw (void) if (dd) { ddrval = DirectDraw_CreateClipper(); - if (ddrval != DD_OK) - { + if (ddrval != DD_OK) { write_log( "set_ddraw: No clipping support\n" ); goto oops; } ddrval = DirectDraw_CreateSurface (width, height); - if (ddrval != DD_OK) - { + if (ddrval != DD_OK) { write_log( "set_ddraw: Couldn't CreateSurface() for primary because %s.\n", DXError( ddrval ) ); goto oops; } - if (DirectDraw_GetPrimaryBitCount() != (unsigned)bits && overlay) - { + if (DirectDraw_GetPrimaryBitCount() != (unsigned)bits && overlay) { ddrval = DirectDraw_CreateOverlaySurface (width, height, bits); if( ddrval != DD_OK ) { write_log( "set_ddraw: Couldn't CreateOverlaySurface(%d,%d,%d) because %s.\n", width, height, bits, DXError( ddrval ) ); goto oops2; } - } - else - { + } else { overlay = 0; } DirectDraw_ClearSurfaces(); - if( !DirectDraw_DetermineLocking( dxfullscreen ) ) + if (!DirectDraw_DetermineLocking (dxfullscreen)) { write_log( "set_ddraw: Couldn't determine locking.\n" ); goto oops; } - ddrval = DirectDraw_SetClipper( hAmigaWnd ); + ddrval = DirectDraw_SetClipper (hAmigaWnd); - if (ddrval != DD_OK) - { + if (ddrval != DD_OK) { write_log( "set_ddraw: Couldn't SetHWnd()\n" ); goto oops; } if (bits == 8) { - ddrval = DirectDraw_CreatePalette( currentmode->pal ); + ddrval = DirectDraw_CreatePalette (currentmode->pal); if (ddrval != DD_OK) { write_log( "set_ddraw: Couldn't CreatePalette()\n" ); goto oops; } } - currentmode->pitch = DirectDraw_GetSurfacePitch(); + currentmode->pitch = DirectDraw_GetSurfacePitch (); } - write_log( "set_ddraw() called, and is %dx%d@%d-bytes\n", width, height, bits ); + write_log ("set_ddraw() called, and is %dx%d@%d-bytes\n", width, height, bits); return 1; oops: - write_log("set_ddraw(): DirectDraw initialization failed with\n%s\n", DXError( ddrval )); + write_log ("set_ddraw(): DirectDraw initialization failed with\n%s\n", DXError (ddrval)); oops2: return 0; } @@ -1065,7 +1056,7 @@ int check_prefs_changed_gfx (void) resume_sound (); inputdevice_acquire (mouseactive); #ifndef _DEBUG - setpriority (priorities[currprefs.win32_active_priority].value); + setpriority (&priorities[currprefs.win32_active_priority]); #endif return 1; } @@ -1661,6 +1652,7 @@ static int create_windows (void) { int fs = currentmode->flags & (DM_W_FULLSCREEN | DM_DX_FULLSCREEN | DM_D3D_FULLSCREEN); DWORD exstyle = currprefs.win32_notaskbarbutton ? 0 : WS_EX_APPWINDOW; + HWND hhWnd = currprefs.win32_notaskbarbutton ? hHiddenWnd : NULL; if (!fs) { RECT rc; @@ -1713,7 +1705,7 @@ static int create_windows (void) NORMAL_WINDOW_STYLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, rc.left, rc.top, rc.right - rc.left + 1, rc.bottom - rc.top + 1, - hHiddenWnd, NULL, 0, NULL); + hhWnd, NULL, 0, NULL); if (! hMainWnd) { write_log ("main window creation failed\n"); @@ -1731,7 +1723,7 @@ static int create_windows (void) WS_CLIPCHILDREN | WS_CLIPSIBLINGS | (hMainWnd ? WS_VISIBLE | WS_CHILD : WS_VISIBLE | WS_POPUP), hMainWnd ? 2 : CW_USEDEFAULT, hMainWnd ? 2 : CW_USEDEFAULT, currentmode->current_width, currentmode->current_height, - hMainWnd ? hMainWnd : hHiddenWnd, NULL, 0, NULL); + hMainWnd ? hMainWnd : hhWnd, NULL, 0, NULL); if (! hAmigaWnd) { write_log ("creation of amiga window failed\n"); @@ -2074,13 +2066,14 @@ oops: void WIN32GFX_PaletteChange( void ) { HRESULT hr; + if (!(currentmode->flags & DM_DDRAW) || (currentmode->flags & DM_D3D)) return; if (currentmode->current_depth > 8) return; - hr = DirectDraw_SetPalette( 1 ); /* Remove current palette */ + hr = DirectDraw_SetPalette (1); /* Remove current palette */ if (hr != DD_OK) write_log ("SetPalette(1) failed, %s\n", DXError (hr)); - hr = DirectDraw_SetPalette( 0 ); /* Set our real palette */ + hr = DirectDraw_SetPalette (0); /* Set our real palette */ if (hr != DD_OK) write_log ("SetPalette(0) failed, %s\n", DXError (hr)); } @@ -2091,7 +2084,7 @@ int WIN32GFX_ClearPalette( void ) if (currentmode->current_depth > 8) return 1; if (!(currentmode->flags & DM_DDRAW) || (currentmode->flags & DM_D3D)) return 1; - hr = DirectDraw_SetPalette( 1 ); /* Remove palette */ + hr = DirectDraw_SetPalette (1); /* Remove palette */ if (hr != DD_OK) write_log ("SetPalette(1) failed, %s\n", DXError (hr)); return hr == DD_OK; @@ -2103,7 +2096,7 @@ int WIN32GFX_SetPalette( void ) if (!(currentmode->flags & DM_DDRAW) || (currentmode->flags & DM_D3D)) return 1; if (currentmode->current_depth > 8) return 1; - hr = DirectDraw_SetPalette( 0 ); /* Set palette */ + hr = DirectDraw_SetPalette (0); /* Set palette */ if (hr != DD_OK) write_log ("SetPalette(0) failed, %s\n", DXError (hr)); return hr == DD_OK; @@ -2114,10 +2107,6 @@ void WIN32GFX_WindowMove ( void ) setoverlay(); } -void WIN32GFX_WindowSize ( void ) -{ -} - void updatedisplayarea (void) { if (picasso_on) diff --git a/od-win32/win32gui.c b/od-win32/win32gui.c index 11a0497b..faeaae1e 100755 --- a/od-win32/win32gui.c +++ b/od-win32/win32gui.c @@ -286,7 +286,7 @@ static void show_rom_list (void) p2 = strchr (p1, '\n'); if (!p2) goto end; *p2++= 0; strcat (p, p1); strcat (p, ": "); - roms[0] = 9; roms[1] = 10; roms[2] = -1; + roms[0] = 8; roms[1] = 9; roms[2] = 10; roms[3] = -1; if (listrom (roms)) strcat (p, avail); else strcat (p, unavail); p1 = p2; @@ -399,6 +399,8 @@ struct ConfigStruct { char Name[MAX_DPATH]; char Path[MAX_DPATH]; char Fullpath[MAX_DPATH]; + char HostLink[MAX_DPATH]; + char HardwareLink[MAX_DPATH]; char Description[CFG_DESCRIPTION_LENGTH]; int Type, Directory; struct ConfigStruct *Parent, *Child; @@ -432,7 +434,7 @@ static struct ConfigStruct *getconfigstorefrompath (char *path, char *out, int t int target_cfgfile_load (struct uae_prefs *p, char *filename, int type) { int v, i, type2; - DWORD ct, size; + DWORD ct, ct2, size; char tmp1[MAX_DPATH], tmp2[MAX_DPATH]; if (type == 0 || type == 1) { @@ -447,7 +449,8 @@ int target_cfgfile_load (struct uae_prefs *p, char *filename, int type) type2 = type; if (type == 0) default_prefs (p, type); - v = cfgfile_load (p, filename, &type2); + RegQueryValueEx (hWinUAEKey, "ConfigFile_NoAuto", 0, NULL, (LPBYTE)&ct2, &size); + v = cfgfile_load (p, filename, &type2, ct2); if (!v) return v; if (type > 0) @@ -457,13 +460,13 @@ int target_cfgfile_load (struct uae_prefs *p, char *filename, int type) size = sizeof (ct); ct = 0; RegQueryValueEx (hWinUAEKey, configreg2[i], 0, NULL, (LPBYTE)&ct, &size); - if (ct) { + if (ct && ((i == 1 && p->config_hardware_path[0] == 0) || (i == 2 && p->config_host_path[0] == 0) || ct2)) { size = sizeof (tmp1); RegQueryValueEx (hWinUAEKey, configreg[i], 0, NULL, (LPBYTE)tmp1, &size); fetch_path ("ConfigurationPath", tmp2, sizeof (tmp2)); strcat (tmp2, tmp1); v = i; - cfgfile_load (p, tmp2, &v); + cfgfile_load (p, tmp2, &v, 1); } } } @@ -876,10 +879,9 @@ int DiskSelection( HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs, } else { - int type; - cfgfile_get_description (full_path, description, &type); - SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, description); + SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, workprefs.description); SetDlgItemText (hDlg, IDC_EDITNAME, full_path); + SetDlgItemText (hDlg, IDC_CONFIGLINK, workprefs.config_host_path); } break; case IDC_SAVE: @@ -1117,7 +1119,7 @@ static struct ConfigStruct *GetConfigs (struct ConfigStruct *configparent, int u if (strlen (find_data.cFileName) > 4 && !strcasecmp (find_data.cFileName + strlen (find_data.cFileName) - 4, ".uae")) { strcpy (path3, path); strncat (path3, find_data.cFileName, MAX_DPATH); - if (cfgfile_get_description (path3, config->Description, &config->Type)) { + if (cfgfile_get_description (path3, config->Description, config->HostLink, config->HardwareLink, &config->Type)) { strcpy (config->Name, find_data.cFileName); ok = 1; } @@ -1194,7 +1196,8 @@ static char *HandleConfiguration (HWND hDlg, int flag, struct ConfigStruct *conf strcat (name, ".uae"); SetDlgItemText (hDlg, IDC_EDITNAME, name); } - strcpy (config->Name, name); + if (config) + strcpy (config->Name, name); } GetDlgItemText (hDlg, IDC_EDITDESCRIPTION, desc, MAX_DPATH); if (config) { @@ -1315,7 +1318,7 @@ static int disk_swap (int entry, int col) return 1; } -static int input_selected_device, input_selected_widget; +static int input_selected_device, input_selected_widget, input_total_devices; static int input_selected_event, input_selected_sub_num; static void set_lventry_input (HWND list, int index) @@ -1344,6 +1347,8 @@ static void set_lventry_input (HWND list, int index) static void update_listview_input (HWND hDlg) { int i; + if (!input_total_devices) + return; for (i = 0; i < inputdevice_get_widget_num (input_selected_device); i++) set_lventry_input (GetDlgItem (hDlg, IDC_INPUTLIST), i); } @@ -1431,7 +1436,7 @@ void InitializeListView( HWND hDlg ) } if (lv_type == LV_INPUT) { - for (i = 0; i < inputdevice_get_widget_num (input_selected_device); i++) { + for (i = 0; input_total_devices && i < inputdevice_get_widget_num (input_selected_device); i++) { char name[100]; inputdevice_get_widget_type (input_selected_device, i, name); lvstruct.mask = LVIF_TEXT | LVIF_PARAM; @@ -1782,6 +1787,38 @@ static int LoadConfigTreeView (HWND hDlg, int idx, HTREEITEM parent) return cnt; } +static void InitializeConfig (HWND hDlg, struct ConfigStruct *config) +{ + int i, j, idx1, idx2; + + if (config == NULL) { + SetDlgItemText (hDlg, IDC_EDITNAME, ""); + SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, ""); + } else { + SetDlgItemText (hDlg, IDC_EDITNAME, config->Name); + SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, config->Description); + } + SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_RESETCONTENT, 0, 0L); + SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_ADDSTRING, 0, (LPARAM)""); + idx1 = 1; + idx2 = 0; + for (j = 0; j < 2; j++) { + for (i = 0; i < configstoresize; i++) { + struct ConfigStruct *cs = configstore[i]; + if ((j == 0 && cs->Type == CONFIG_TYPE_HOST) || (j == 1 && cs->Type == CONFIG_TYPE_HARDWARE)) { + char tmp2[MAX_DPATH]; + strcpy (tmp2, configstore[i]->Path); + strncat (tmp2, configstore[i]->Name, MAX_DPATH); + SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_ADDSTRING, 0, (LPARAM)tmp2); + if (config && (!strcmpi (tmp2, config->HardwareLink) || !strcmpi (tmp2, config->HostLink))) + idx2 = idx1; + idx1++; + } + } + } + SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_SETCURSEL, idx2, 0); +} + static HTREEITEM InitializeConfigTreeView (HWND hDlg) { HIMAGELIST himl = ImageList_Create (16, 16, ILC_COLOR8 | ILC_MASK, 3, 0); @@ -1818,11 +1855,14 @@ static void ConfigToRegistry (struct ConfigStruct *config, int type) RegSetValueEx (hWinUAEKey, configreg[type], 0, REG_SZ, (CONST BYTE *)path, strlen(path) + 1); } } -static void ConfigToRegistry2 (DWORD ct, int type) +static void ConfigToRegistry2 (DWORD ct, int type, DWORD noauto) { - if (hWinUAEKey && type > 0) { + if (!hWinUAEKey) + return; + if (type > 0) RegSetValueEx (hWinUAEKey, configreg2[type], 0, REG_DWORD, (CONST BYTE *)&ct, sizeof (ct)); - } + if (noauto >= 0) + RegSetValueEx (hWinUAEKey, "ConfigFile_NoAuto", 0, REG_DWORD, (CONST BYTE *)&noauto, sizeof (noauto)); } static void checkautoload (HWND hDlg, struct ConfigStruct *config) @@ -1835,10 +1875,12 @@ static void checkautoload (HWND hDlg, struct ConfigStruct *config) RegQueryValueEx (hWinUAEKey, configreg2[configtypepanel], 0, &dwType, (LPBYTE)&ct, &dwRFPsize); if (!config || config->Directory) { ct = 0; - ConfigToRegistry2 (ct, configtypepanel); + ConfigToRegistry2 (ct, configtypepanel, -1); } CheckDlgButton(hDlg, IDC_CONFIGAUTO, ct ? BST_CHECKED : BST_UNCHECKED); EnableWindow (GetDlgItem (hDlg, IDC_CONFIGAUTO), configtypepanel > 0 && config && !config->Directory ? TRUE : FALSE); + RegQueryValueEx (hWinUAEKey, "ConfigFile_NoAuto", 0, &dwType, (LPBYTE)&ct, &dwRFPsize); + CheckDlgButton(hDlg, IDC_CONFIGNOLINK, ct ? BST_CHECKED : BST_UNCHECKED); } static struct ConfigStruct *fixloadconfig (HWND hDlg, struct ConfigStruct *config) @@ -1858,14 +1900,45 @@ static struct ConfigStruct *fixloadconfig (HWND hDlg, struct ConfigStruct *confi return config; } -static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) +static struct ConfigStruct *initloadsave (HWND hDlg, struct ConfigStruct *config) { + HTREEITEM root; char name_buf[MAX_DPATH]; + + EnableWindow (GetDlgItem( hDlg, IDC_VIEWINFO ), workprefs.info[0]); + SetDlgItemText (hDlg, IDC_EDITNAME, config_filename); + SetDlgItemText (hDlg, IDC_EDITPATH, ""); + SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, workprefs.description); + root = InitializeConfigTreeView (hDlg); + if (hWinUAEKey) { + DWORD dwType = REG_SZ; + DWORD dwRFPsize = sizeof (name_buf); + char path[MAX_DPATH]; + if (RegQueryValueEx (hWinUAEKey, configreg[configtypepanel], 0, &dwType, (LPBYTE)name_buf, &dwRFPsize) == ERROR_SUCCESS) { + struct ConfigStruct *config2 = getconfigstorefrompath (name_buf, path, configtypepanel); + if (config2) + config = config2; + } + checkautoload (hDlg, config); + } + config = fixloadconfig (hDlg, config); + if (config && config->item) + TreeView_SelectItem (GetDlgItem(hDlg, IDC_CONFIGTREE), config->item); + else + TreeView_SelectItem (GetDlgItem(hDlg, IDC_CONFIGTREE), root); + EnableWindow (GetDlgItem(hDlg, IDC_CONFIGAUTO), configtypepanel > 0); + EnableWindow (GetDlgItem(hDlg, IDC_CONFIGLINK), configtypepanel == 0); + EnableWindow (GetDlgItem(hDlg, IDC_CONFIGNOLINK), configtypepanel == 0); + return config; +} + +static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ char *cfgfile; + int val; static int recursive; - HTREEITEM root; static struct ConfigStruct *config; - + switch (msg) { case WM_INITDIALOG: @@ -1876,28 +1949,7 @@ static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM } pages[LOADSAVE_ID] = hDlg; currentpage = LOADSAVE_ID; - EnableWindow (GetDlgItem( hDlg, IDC_VIEWINFO ), workprefs.info[0]); - SetDlgItemText (hDlg, IDC_EDITNAME, config_filename); - SetDlgItemText (hDlg, IDC_EDITPATH, ""); - SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, workprefs.description); - root = InitializeConfigTreeView (hDlg); - if (hWinUAEKey) { - DWORD dwType = REG_SZ; - DWORD dwRFPsize = sizeof (name_buf); - char path[MAX_DPATH]; - if (RegQueryValueEx (hWinUAEKey, configreg[configtypepanel], 0, &dwType, (LPBYTE)name_buf, &dwRFPsize) == ERROR_SUCCESS) { - struct ConfigStruct *config2 = getconfigstorefrompath (name_buf, path, configtypepanel); - if (config2) - config = config2; - } - checkautoload (hDlg, config); - } - config = fixloadconfig (hDlg, config); - if (config && config->item) - TreeView_SelectItem (GetDlgItem(hDlg, IDC_CONFIGTREE), config->item); - else - TreeView_SelectItem (GetDlgItem(hDlg, IDC_CONFIGTREE), root); - ShowWindow (GetDlgItem(hDlg, IDC_CONFIGAUTO), configtypepanel > 0 ? SW_SHOW : SW_HIDE); + config = initloadsave (hDlg, config); recursive--; return TRUE; @@ -1905,29 +1957,30 @@ static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM break; case WM_COMMAND: + { + recursive++; switch (LOWORD (wParam)) { case IDC_SAVE: HandleConfiguration (hDlg, CONFIG_SAVE_FULL, config); - recursive++; config = CreateConfigStore (config); config = fixloadconfig (hDlg, config); ConfigToRegistry (config, configtypepanel); InitializeConfigTreeView (hDlg); - recursive--; + InitializeConfig (hDlg, config); break; case IDC_QUICKSAVE: HandleConfiguration (hDlg, CONFIG_SAVE, config); - recursive++; config = CreateConfigStore (config); config = fixloadconfig (hDlg, config); ConfigToRegistry (config, configtypepanel); InitializeConfigTreeView (hDlg); - recursive--; + InitializeConfig (hDlg, config); break; case IDC_QUICKLOAD: cfgfile = HandleConfiguration (hDlg, CONFIG_LOAD, config); ConfigToRegistry (config, configtypepanel); + InitializeConfig (hDlg, config); if (full_property_sheet) { inputdevice_updateconfig (&workprefs); } else { @@ -1938,6 +1991,7 @@ static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM case IDC_LOAD: cfgfile = HandleConfiguration (hDlg, CONFIG_LOAD_FULL, config); ConfigToRegistry (config, configtypepanel); + InitializeConfig (hDlg, config); if (full_property_sheet) { inputdevice_updateconfig (&workprefs); } else { @@ -1947,20 +2001,18 @@ static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM break; case IDC_DELETE: HandleConfiguration (hDlg, CONFIG_DELETE, config); - recursive++; config = CreateConfigStore (config); config = fixloadconfig (hDlg, config); InitializeConfigTreeView (hDlg); - recursive--; break; case IDC_VIEWINFO: - if (workprefs.info[0]) - { - if (strstr( workprefs.info, "Configurations\\")) - sprintf( name_buf, "%s\\%s", start_path, workprefs.info ); + if (workprefs.info[0]) { + char name_buf[MAX_DPATH]; + if (strstr (workprefs.info, "Configurations\\")) + sprintf (name_buf, "%s\\%s", start_path, workprefs.info); else - strcpy( name_buf, workprefs.info ); - ShellExecute( NULL, NULL, name_buf, NULL, NULL, SW_SHOWNORMAL ); + strcpy (name_buf, workprefs.info); + ShellExecute (NULL, NULL, name_buf, NULL, NULL, SW_SHOWNORMAL); } break; case IDC_SETINFO: @@ -1970,66 +2022,89 @@ static BOOL CALLBACK LoadSaveDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM case IDC_CONFIGAUTO: if (configtypepanel > 0) { int ct = IsDlgButtonChecked (hDlg, IDC_CONFIGAUTO) == BST_CHECKED ? 1 : 0; - ConfigToRegistry2 (ct, configtypepanel); + ConfigToRegistry2 (ct, configtypepanel, -1); + } + break; + case IDC_CONFIGNOLINK: + if (configtypepanel == 0) { + int ct = IsDlgButtonChecked (hDlg, IDC_CONFIGNOLINK) == BST_CHECKED ? 1 : 0; + ConfigToRegistry2 (-1, -1, ct); + } + break; + case IDC_CONFIGLINK: + if (HIWORD (wParam) == CBN_SELCHANGE || HIWORD (wParam) == CBN_KILLFOCUS) { + char tmp[MAX_DPATH]; + tmp[0] = 0; + val = SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_GETCURSEL, 0, 0L); + if (val == CB_ERR) + SendDlgItemMessage (hDlg, IDC_CONFIGLINK, WM_GETTEXT, (WPARAM)sizeof(tmp), (LPARAM)tmp); + else + SendDlgItemMessage (hDlg, IDC_CONFIGLINK, CB_GETLBTEXT, (WPARAM)val, (LPARAM)tmp); + strcpy (workprefs.config_host_path, tmp); } break; } + recursive++; break; - - case WM_NOTIFY: - { - LPNMHDR nm = (LPNMHDR)lParam; - if (nm->hwndFrom == GetDlgItem( hDlg, IDC_CONFIGTREE)) { - switch (nm->code) - { - case NM_DBLCLK: - { - HTREEITEM ht = TreeView_GetSelection (GetDlgItem(hDlg, IDC_CONFIGTREE)); - if (ht != NULL) { - TVITEMEX pitem; - memset (&pitem, 0, sizeof (pitem)); - pitem.mask = TVIF_HANDLE | TVIF_PARAM; - pitem.hItem = ht; - if (TreeView_GetItem (GetDlgItem(hDlg, IDC_CONFIGTREE), &pitem)) { - struct ConfigStruct *config = (struct ConfigStruct*)pitem.lParam; - if (config && !config->Directory) { - cfgfile = HandleConfiguration (hDlg, CONFIG_LOAD, config); - ConfigToRegistry (config, configtypepanel); - if (!full_property_sheet) - uae_restart (0, cfgfile); - exit_gui (1); - } + } + + case WM_NOTIFY: + { + LPNMHDR nm = (LPNMHDR)lParam; + if (nm->hwndFrom == GetDlgItem (hDlg, IDC_CONFIGTREE)) { + switch (nm->code) + { + case NM_DBLCLK: + { + HTREEITEM ht = TreeView_GetSelection (GetDlgItem(hDlg, IDC_CONFIGTREE)); + if (ht != NULL) { + TVITEMEX pitem; + memset (&pitem, 0, sizeof (pitem)); + pitem.mask = TVIF_HANDLE | TVIF_PARAM; + pitem.hItem = ht; + if (TreeView_GetItem (GetDlgItem(hDlg, IDC_CONFIGTREE), &pitem)) { + struct ConfigStruct *config = (struct ConfigStruct*)pitem.lParam; + if (config && !config->Directory) { + cfgfile = HandleConfiguration (hDlg, CONFIG_LOAD, config); + ConfigToRegistry (config, configtypepanel); + if (!full_property_sheet) + uae_restart (0, cfgfile); + exit_gui (1); } } - return TRUE; } - break; - case TVN_SELCHANGING: - return FALSE; - case TVN_SELCHANGED: - { - LPNMTREEVIEW tv = (LPNMTREEVIEW)lParam; - struct ConfigStruct *c = (struct ConfigStruct*)tv->itemNew.lParam; - if (c) { - config = c; - if (!config->Directory) { - SetDlgItemText (hDlg, IDC_EDITNAME, config->Name); - SetDlgItemText (hDlg, IDC_EDITDESCRIPTION, config->Description); - } - SetDlgItemText (hDlg, IDC_EDITPATH, config->Path); + return TRUE; + } + break; + case TVN_SELCHANGING: + return FALSE; + case TVN_SELCHANGED: + { + LPNMTREEVIEW tv = (LPNMTREEVIEW)lParam; + struct ConfigStruct *c = (struct ConfigStruct*)tv->itemNew.lParam; + if (c) { + config = c; + if (!config->Directory) { + InitializeConfig (hDlg, config); + } else { + InitializeConfig (hDlg, NULL); + } + SetDlgItemText (hDlg, IDC_EDITPATH, config->Path); + } + if (configtypepanel > 0) { + if (c && !c->Directory) { + ConfigToRegistry (config, configtypepanel); + InitializeConfig (hDlg, config); } - if (configtypepanel > 0) { - if (c && !c->Directory) - ConfigToRegistry (config, configtypepanel); - checkautoload (hDlg, c); - } - return TRUE; + checkautoload (hDlg, c); } - break; + return TRUE; } + break; } - break; } + break; + } } return FALSE; @@ -2246,11 +2321,15 @@ static BOOL CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP if (tmp[strlen (tmp) - 1] != '\\') strcat (tmp, "\\"); if (!scan_roms (tmp)) - pre_gui_message ("No ROMs found"); + gui_message_id (IDS_ROMSCANNOROMS); set_path ("KickstartPath", tmp); values_to_pathsdialog (hDlg); } break; + case IDC_PATHS_ROM: + GetWindowText (GetDlgItem (hDlg, IDC_PATHS_ROM), tmp, sizeof (tmp)); + set_path ("KickstartPath", tmp); + break; case IDC_PATHS_CONFIGS: fetch_path ("ConfigurationPath", tmp, sizeof (tmp)); if (DirectorySelection (hDlg, 0, tmp)) { @@ -2259,6 +2338,11 @@ static BOOL CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP FreeConfigStore (); } break; + case IDC_PATHS_CONFIG: + GetWindowText (GetDlgItem (hDlg, IDC_PATHS_CONFIG), tmp, sizeof (tmp)); + set_path ("ConfigurationPath", tmp); + FreeConfigStore (); + break; case IDC_PATHS_SCREENSHOTS: fetch_path ("ScreenshotPath", tmp, sizeof (tmp)); if (DirectorySelection (hDlg, 0, tmp)) { @@ -2266,6 +2350,10 @@ static BOOL CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP values_to_pathsdialog (hDlg); } break; + case IDC_PATHS_SCREENSHOT: + GetWindowText (GetDlgItem (hDlg, IDC_PATHS_SCREENSHOT), tmp, sizeof (tmp)); + set_path ("ScreenshotPath", tmp); + break; case IDC_PATHS_SAVESTATES: fetch_path ("StatefilePath", tmp, sizeof (tmp)); if (DirectorySelection (hDlg, 0, tmp)) { @@ -2273,6 +2361,10 @@ static BOOL CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP values_to_pathsdialog (hDlg); } break; + case IDC_PATHS_SAVESTATE: + GetWindowText (GetDlgItem (hDlg, IDC_PATHS_SAVESTATE), tmp, sizeof (tmp)); + set_path ("StatefilePath", tmp); + break; case IDC_PATHS_SAVEIMAGES: fetch_path ("SaveimagePath", tmp, sizeof (tmp)); if (DirectorySelection (hDlg, 0, tmp)) { @@ -2280,6 +2372,10 @@ static BOOL CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP values_to_pathsdialog (hDlg); } break; + case IDC_PATHS_SAVEIMAGE: + GetWindowText (GetDlgItem (hDlg, IDC_PATHS_SAVEIMAGE), tmp, sizeof (tmp)); + set_path ("SaveimagePath", tmp); + break; case IDC_PATHS_AVIOUTPUTS: fetch_path ("VideoPath", tmp, sizeof (tmp)); if (DirectorySelection (hDlg, 0, tmp)) { @@ -2287,6 +2383,10 @@ static BOOL CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP values_to_pathsdialog (hDlg); } break; + case IDC_PATHS_AVIOUTPUT: + GetWindowText (GetDlgItem (hDlg, IDC_PATHS_AVIOUTPUT), tmp, sizeof (tmp)); + set_path ("VideoPath", tmp); + break; case IDC_PATHS_DEFAULT: set_path ("KickstartPath", NULL); set_path ("ConfigurationPath", NULL); @@ -2352,7 +2452,7 @@ static void quickstarthost (HWND hDlg, char *name) char tmp[MAX_DPATH]; if (getconfigstorefrompath (name, tmp, CONFIG_TYPE_HOST)) - cfgfile_load (&workprefs, tmp, &type); + cfgfile_load (&workprefs, tmp, &type, 1); } static void init_quickstartdlg_tooltip (HWND hDlg, char *tt) @@ -2376,11 +2476,11 @@ static void init_quickstartdlg (HWND hDlg) static int firsttime; int i, j, idx, idx2; DWORD dwType, qssize; - char tmp1[2 * MAX_DPATH], tmp2[MAX_DPATH]; + char tmp1[2 * MAX_DPATH], tmp2[MAX_DPATH], hostconf[MAX_DPATH]; char *p1, *p2; qssize = sizeof (tmp1); - RegQueryValueEx (hWinUAEKey, "QuickStartHostConfig", 0, &dwType, (LPBYTE)tmp1, &qssize); + RegQueryValueEx (hWinUAEKey, "QuickStartHostConfig", 0, &dwType, (LPBYTE)hostconf, &qssize); if (firsttime == 0) { if (hWinUAEKey) { qssize = sizeof (quickstart_model); @@ -2391,7 +2491,7 @@ static void init_quickstartdlg (HWND hDlg) RegQueryValueEx (hWinUAEKey, "QuickStartCompatibility", 0, &dwType, (LPBYTE)&quickstart_compa, &qssize); } if (quickstart) { - quickstarthost (hDlg, tmp1); + quickstarthost (hDlg, hostconf); workprefs.df[0][0] = 0; workprefs.df[1][0] = 0; workprefs.df[2][0] = 0; @@ -2470,7 +2570,7 @@ static void init_quickstartdlg (HWND hDlg) if (configstore[i]->Type == CONFIG_TYPE_HOST) { strcpy (tmp2, configstore[i]->Path); strncat (tmp2, configstore[i]->Name, MAX_DPATH); - if (!strcmp (tmp2, tmp1)) + if (!strcmp (tmp2, hostconf)) idx = j; SendDlgItemMessage (hDlg, IDC_QUICKSTART_HOSTCONFIG, CB_ADDSTRING, 0, (LPARAM)tmp2); j++; @@ -3695,6 +3795,7 @@ static void init_kickstart (HWND hDlg) static BOOL CALLBACK KickstartDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { static int recursive; + char tmp[MAX_DPATH]; switch( msg ) { @@ -3735,6 +3836,10 @@ static BOOL CALLBACK KickstartDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA DiskSelection( hDlg, IDC_FLASHFILE, 11, &workprefs, 0); values_to_kickstartdlg (hDlg); break; + case IDC_FLASHFILE: + GetWindowText (GetDlgItem (hDlg, IDC_FLASHFILE), tmp, sizeof (tmp)); + strcpy (workprefs.flashfile, tmp); + break; case IDC_CARTCHOOSER: DiskSelection( hDlg, IDC_CARTFILE, 6, &workprefs, 0); @@ -3773,13 +3878,13 @@ static void enable_for_miscdlg (HWND hDlg) EnableWindow (GetDlgItem (hDlg, IDC_DOSAVESTATE), TRUE); EnableWindow (GetDlgItem (hDlg, IDC_ASPI), FALSE); EnableWindow (GetDlgItem (hDlg, IDC_SCSIDEVICE), FALSE); - EnableWindow (GetDlgItem (hDlg, IDC_CLOCKSYNC), FALSE); + //EnableWindow (GetDlgItem (hDlg, IDC_CLOCKSYNC), FALSE); EnableWindow (GetDlgItem (hDlg, IDC_STATE_CAPTURE), FALSE); EnableWindow (GetDlgItem (hDlg, IDC_STATE_RATE), FALSE); EnableWindow (GetDlgItem (hDlg, IDC_STATE_BUFFERSIZE), FALSE); } else { #if !defined (FILESYS) - EnableWindow (GetDlgItem(hDlg, IDC_CLOCKSYNC), FALSE); + //EnableWindow (GetDlgItem(hDlg, IDC_CLOCKSYNC), FALSE); #endif #if !defined (BSDSOCKET) EnableWindow (GetDlgItem(hDlg, IDC_SOCKETS), FALSE); @@ -3863,7 +3968,7 @@ static void values_to_miscdlg (HWND hDlg) CheckDlgButton (hDlg, IDC_ASPI, workprefs.win32_aspi); CheckDlgButton (hDlg, IDC_STATE_CAPTURE, workprefs.tod_hack); - if (!os_winnt) { + if (!os_winnt || !os_winnt_admin) { EnableWindow( GetDlgItem( hDlg, IDC_ASPI), FALSE ); CheckDlgButton( hDlg, IDC_ASPI, BST_CHECKED ); } @@ -4538,7 +4643,7 @@ static void values_from_sounddlg (HWND hDlg) if (workprefs.sound_stereo > 0) { idx = SendDlgItemMessage (hDlg, IDC_SOUNDSTEREOSEP, CB_GETCURSEL, 0, 0); if (idx >= 0) { - if (idx < 10) + if (idx > 0) workprefs.sound_mixed_stereo = -1; workprefs.sound_stereo_separation = (10 - idx) * 3; } @@ -6128,7 +6233,7 @@ static void values_to_inputdlg (HWND hDlg) SetDlgItemInt( hDlg, IDC_INPUTSPEEDD, workprefs.input_joymouse_speed, FALSE ); SetDlgItemInt( hDlg, IDC_INPUTSPEEDA, workprefs.input_joymouse_multiplier, FALSE ); SetDlgItemInt( hDlg, IDC_INPUTSPEEDM, workprefs.input_mouse_speed, FALSE ); - CheckDlgButton ( hDlg, IDC_INPUTDEVICEDISABLE, inputdevice_get_device_status (input_selected_device) ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton ( hDlg, IDC_INPUTDEVICEDISABLE, (!input_total_devices || inputdevice_get_device_status (input_selected_device)) ? BST_CHECKED : BST_UNCHECKED); } static void init_inputdlg_2( HWND hDlg ) @@ -6205,6 +6310,9 @@ static void init_inputdlg( HWND hDlg ) for (i = 0; i < inputdevice_get_device_total (IDTYPE_KEYBOARD); i++) { SendDlgItemMessage (hDlg, IDC_INPUTDEVICE, CB_ADDSTRING, 0, (LPARAM)inputdevice_get_device_name(IDTYPE_KEYBOARD, i)); } + input_total_devices = inputdevice_get_device_total (IDTYPE_JOYSTICK) + + inputdevice_get_device_total (IDTYPE_MOUSE) + + inputdevice_get_device_total (IDTYPE_KEYBOARD); InitializeListView(hDlg); init_inputdlg_2 (hDlg); values_to_inputdlg (hDlg); diff --git a/zfile.c b/zfile.c index 9a0c55a4..d8da787b 100755 --- a/zfile.c +++ b/zfile.c @@ -4,7 +4,7 @@ * routines to handle compressed file automatically * * (c) 1996 Samuel Devulder, Tim Gunn - * 2002 Toni Wilen + * 2002-2004 Toni Wilen */ #include "sysconfig.h" -- 2.47.3