From f3f8ed2876064cf245b0a69a73ad75147892d835 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Thu, 19 Aug 2004 17:36:27 +0300 Subject: [PATCH] imported winuaesrc0991.zip --- audio.c | 11 +- blitter.c | 4 +- cfgfile.c | 224 ++- custom.c | 7 +- drawing.c | 2 +- enforcer.c | 2 + filesys.c | 69 +- fpp.c | 37 +- include/autoconf.h | 2 +- include/fsdb.h | 3 +- include/inputdevice.h | 3 +- include/newcpu.h | 3 +- include/options.h | 13 +- include/uae.h | 2 +- include/zfile.h | 1 + inputdevice.c | 23 +- keybuf.c | 7 +- main.c | 8 +- newcpu.c | 53 +- od-win32/WinUAE_Install.nsi | 74 +- od-win32/bsdsock.c | 78 +- od-win32/dxwrap.c | 3 +- od-win32/fsdb_win32.c | 86 +- od-win32/ioport.c | 6 +- od-win32/makeexe.bat | 2 +- od-win32/picasso96_win.c | 6 +- od-win32/resources/WinUAE_German.rc | 1046 ++++++++++++ od-win32/resources/resource.h | 10 +- od-win32/resources/winuae.rc | 22 +- od-win32/resources/winuae_minimal.rc | 23 +- od-win32/sounddep/sound.c | 4 +- od-win32/win32.c | 319 ++-- od-win32/win32.h | 1 + od-win32/win32gfx.c | 20 +- od-win32/win32gfx.h | 1 + od-win32/win32gui.c | 49 +- uaelib.c | 2 + winuaechangelog.txt | 2191 -------------------------- zfile.c | 15 +- 39 files changed, 1896 insertions(+), 2536 deletions(-) create mode 100755 od-win32/resources/WinUAE_German.rc delete mode 100644 winuaechangelog.txt diff --git a/audio.c b/audio.c index d33d7af9..7dee685d 100755 --- a/audio.c +++ b/audio.c @@ -106,21 +106,21 @@ static uae_u32 right_word_saved[MAX_DELAY_BUFFER]; static uae_u32 left_word_saved[MAX_DELAY_BUFFER]; static int saved_ptr; +#define MIXED_STEREO_MAX 32 +static int mixed_on, mixed_stereo_size, mixed_mul1, mixed_mul2; + STATIC_INLINE void put_sound_word_right (uae_u32 w) { - if (currprefs.sound_mixed_stereo) { + if (mixed_on) { right_word_saved[saved_ptr] = w; return; } PUT_SOUND_WORD_RIGHT (w); } -#define MIXED_STEREO_MAX 32 -static int mixed_stereo_size, mixed_mul1, mixed_mul2; - STATIC_INLINE void put_sound_word_left (uae_u32 w) { - if (currprefs.sound_mixed_stereo) { + if (mixed_on) { uae_u32 rold, lold, rnew, lnew, tmp; left_word_saved[saved_ptr] = w; @@ -789,6 +789,7 @@ void check_prefs_changed_audio (void) mixed_mul1 = MIXED_STEREO_MAX / 2 - ((currprefs.sound_stereo_separation * 3) / 2); mixed_mul2 = MIXED_STEREO_MAX / 2 + ((currprefs.sound_stereo_separation * 3) / 2); mixed_stereo_size = currprefs.sound_mixed_stereo > 0 ? (1 << (currprefs.sound_mixed_stereo - 1)) - 1 : 0; + mixed_on = (currprefs.sound_stereo_separation > 0 || currprefs.sound_mixed_stereo > 0) ? 1 : 0; /* Select the right interpolation method. */ if (sample_handler == sample16_handler diff --git a/blitter.c b/blitter.c index 373c9b8f..397cf42e 100755 --- a/blitter.c +++ b/blitter.c @@ -999,7 +999,7 @@ void blitter_slowdown (int ddfstrt, int ddfstop, int totalcycles, int freecycles static int oddfstrt, oddfstop, ototal, ofree; static int slow; - if (!totalcycles) + if (!totalcycles || ddfstrt < 0 || ddfstop < 0) return; if (ddfstrt != oddfstrt || ddfstop != oddfstop || totalcycles != ototal || ofree != freecycles) { int linecycles = ((ddfstop - ddfstrt + totalcycles - 1) / totalcycles) * totalcycles; @@ -1013,7 +1013,7 @@ void blitter_slowdown (int ddfstrt, int ddfstop, int totalcycles, int freecycles if (dmacycles > freelinecycles) slow = dmacycles - freelinecycles; } - if (blit_slowdown <= 0 || blitline) + if (blit_slowdown < 0 || blitline) return; blit_slowdown += slow; blit_misscyclecounter += slow; diff --git a/cfgfile.c b/cfgfile.c index 848e8838..ea169a2f 100755 --- a/cfgfile.c +++ b/cfgfile.c @@ -24,6 +24,8 @@ #include "savestate.h" #include "memory.h" #include "gui.h" +#include "newcpu.h" +#include "zfile.h" #define CONFIG_BLEN 2560 @@ -143,7 +145,8 @@ static const char *filtermode2[] = { "0x", "1x", "2x", "3x", "4x", 0 }; static const char *obsolete[] = { "accuracy", "gfx_opengl", "gfx_32bit_blits", "32bit_blits", "gfx_immediate_blits", "gfx_ntsc", "win32", "gfx_filter_bits", - "sound_pri_cutoff", "sound_pri_time", "sound_min_buff", 0 }; + "sound_pri_cutoff", "sound_pri_time", "sound_min_buff", + "gfx_test_speed", "gfxlib_replacement", "enforcer", 0 }; #define UNEXPANDED "$(FILE_PATH)" @@ -175,18 +178,18 @@ char *cfgfile_subst_path (const char *path, const char *subst, const char *file) return my_strdup (file); } -void cfgfile_write (FILE *f, char *format,...) +void cfgfile_write (struct zfile *f, char *format,...) { va_list parms; char tmp[CONFIG_BLEN]; va_start (parms, format); vsprintf (tmp, format, parms); - fprintf (f, tmp); + zfile_fwrite (tmp, 1, strlen (tmp), f); va_end (parms); } -void save_options (FILE *f, struct uae_prefs *p, int type) +static void save_options (struct zfile *f, struct uae_prefs *p, int type) { struct strlist *sl; char *str; @@ -1344,7 +1347,7 @@ end: int cfgfile_save (struct uae_prefs *p, const char *filename, int type) { - FILE *fh = fopen (filename, "w"); + struct zfile *fh = zfile_fopen (filename, "w"); write_log ("save config '%s'\n", filename); if (! fh) return 0; @@ -1352,7 +1355,7 @@ int cfgfile_save (struct uae_prefs *p, const char *filename, int type) if (!type) type = CONFIG_TYPE_HARDWARE | CONFIG_TYPE_HOST; save_options (fh, p, type); - fclose (fh); + zfile_fclose (fh); return 1; } @@ -1759,8 +1762,209 @@ void cfgfile_addcfgparam (char *line) temp_lines = u; } +static int cmdlineparser (char *s, char *outp[], int max) +{ + int j, cnt = 0; + int slash = 0; + int quote = 0; + char tmp1[MAX_DPATH]; + char *prev; + int doout; + + doout = 0; + prev = s; + j = 0; + while (cnt < max) { + char c = *s++; + if (!c) + break; + if (c < 32) + continue; + if (c == '\\') + slash = 1; + if (!slash && c == '"') { + if (quote) { + quote = 0; + doout = 1; + } else { + quote = 1; + j = -1; + } + } + if (!quote && c == ' ') + doout = 1; + if (!doout) { + if (j >= 0) { + tmp1[j] = c; + tmp1[j + 1] = 0; + } + j++; + } + if (doout) { + outp[cnt++] = my_strdup (tmp1); + tmp1[0] = 0; + doout = 0; + j = 0; + } + slash = 0; + } + if (j > 0 && cnt < max) + outp[cnt++] = my_strdup (tmp1); + return cnt; +} + +#define UAELIB_MAX_PARSE 100 +uae_u32 cfgfile_uaelib_modify (uae_u32 index, uae_u32 parms, uae_u32 size, uae_u32 out, uae_u32 outsize) +{ + char *p; + char *argc[UAELIB_MAX_PARSE]; + int argv, i; + uae_u32 err; + uae_u8 zero = 0; + static struct zfile *configstore; + static char *configsearch; + static int configsearchfound; + + err = 0; + argv = 0; + p = 0; + if (index != 0xffffffff) { + if (!configstore) { + err = 20; + goto end; + } + if (configsearch) { + char tmp[CONFIG_BLEN]; + int j = 0; + char *in = configsearch; + int inlen = strlen (configsearch); + int joker = 0; + + if (in[inlen - 1] == '*') { + joker = 1; + inlen--; + } + + for (;;) { + uae_u8 b = 0; + + if (zfile_fread (&b, 1, 1, configstore) != 1) { + err = 10; + if (configsearch) + err = 5; + if (configsearchfound) + err = 0; + goto end; + } + if (j >= sizeof (tmp) - 1) + j = sizeof (tmp) - 1; + if (b == 0) { + err = 10; + if (configsearch) + err = 5; + if (configsearchfound) + err = 0; + goto end; + } + if (b == '\n') { + if (configsearch && !strncmp (tmp, in, inlen) && + ((inlen > 0 && strlen (tmp) > inlen && tmp[inlen] == '=') || (joker))) { + char *p; + if (joker) + p = tmp - 1; + else + p = strchr (tmp, '='); + if (p) { + for (i = 0; i < outsize - 1; i++) { + uae_u8 b = *++p; + put_byte (out + i, b); + put_byte (out + i + 1, 0); + if (!b) + break; + } + } + err = 0xffffffff; + configsearchfound++; + goto end; + } + index--; + j = 0; + } else { + tmp[j++] = b; + tmp[j] = 0; + } + } + } + err = 0xffffffff; + for (i = 0; i < outsize - 1; i++) { + uae_u8 b = 0; + if (zfile_fread (&b, 1, 1, configstore) != 1) + err = 0; + if (b == 0) + err = 0; + if (b == '\n') + b = 0; + put_byte (out + i, b); + put_byte (out + i + 1, 0); + if (!b) + break; + } + goto end; + } + + if (size > 10000) + return 10; + p = xmalloc (size + 1); + if (!p) + return 10; + for (i = 0; i < size; i++) { + p[i] = get_byte (parms + i); + if (p[i] == 10 || p[i] == 13 || p[i] == 0) + break; + } + p[i] = 0; + argv = cmdlineparser (p, argc, UAELIB_MAX_PARSE); + + if (argv <= 1 && index == 0xffffffff) { + zfile_fclose (configstore); + xfree (configsearch); + configstore = zfile_fopen_empty ("configstore", 50000); + configsearch = NULL; + if (argv > 0 && strlen (argc[0]) > 0) + configsearch = my_strdup (argc[0]); + if (!configstore) { + err = 20; + goto end; + } + zfile_fseek (configstore, 0, SEEK_SET); + save_options (configstore, &currprefs, 0); + zfile_fwrite (&zero, 1, 1, configstore); + zfile_fseek (configstore, 0, SEEK_SET); + err = 0xffffffff; + configsearchfound = 0; + goto end; + } -uae_u32 cfgfile_uaelib(int mode, uae_u32 name, uae_u32 dst, uae_u32 maxlen) + for (i = 0; i < argv; i++) { + if (i + 2 <= argv) { + if (!inputdevice_uaelib (argc[i], argc[i + 1])) { + if (!cfgfile_parse_option (&changed_prefs, argc[i], argc[i + 1], 0)) { + err = 5; + break; + } + } + set_special (SPCFLAG_BRK); + i++; + } + } +end: + for (i = 0; i < argv; i++) + xfree (argc[i]); + xfree (p); + return err; +} + +uae_u32 cfgfile_uaelib (int mode, uae_u32 name, uae_u32 dst, uae_u32 maxlen) { char tmp[CONFIG_BLEN]; int i; @@ -1886,7 +2090,7 @@ void default_prefs (struct uae_prefs *p, int type) p->produce_sound = 3; p->sound_stereo = 1; p->sound_stereo_separation = 7; - p->sound_mixed_stereo = -1; + p->sound_mixed_stereo = 0; p->sound_bits = DEFAULT_SOUND_BITS; p->sound_freq = DEFAULT_SOUND_FREQ; p->sound_maxbsiz = DEFAULT_SOUND_MAXB; @@ -2055,7 +2259,8 @@ static void buildin_default_prefs (struct uae_prefs *p) p->sound_filter = 1; p->sound_stereo = 1; p->sound_stereo_separation = 7; - p->sound_mixed_stereo = -1; + p->sound_mixed_stereo = 0; + p->cachesize = 0; p->chipmem_size = 0x00080000; p->bogomem_size = 0x00080000; @@ -2103,6 +2308,7 @@ static void set_68000_compa (struct uae_prefs *p, int compa) p->fast_copper = 0; break; case 1: + p->fast_copper = 0; break; case 2: p->cpu_compatible = 0; diff --git a/custom.c b/custom.c index 90b56c2c..bc5d84db 100755 --- a/custom.c +++ b/custom.c @@ -743,11 +743,13 @@ STATIC_INLINE void compute_delay_offset (void) delayoffset = 8; else if (delayoffset == 16) /* Overkill AGA */ delayoffset = 48; + else if (delayoffset == 24) /* AB 2 */ + delayoffset = 8; else if (delayoffset == 32) delayoffset = 32; else if (delayoffset == 48) /* Pinball Illusions AGA, ingame */ delayoffset = 16; - else + else /* what about 40 and 56? */ delayoffset = 0; } @@ -4332,7 +4334,8 @@ static void hsync_handler (void) last_custom_value = 0xffff; if (!currprefs.blitter_cycle_exact && bltstate != BLT_done && dmaen (DMA_BITPLANE) && diwstate == DIW_waiting_stop) - blitter_slowdown (ddfstrt, ddfstop, cycle_diagram_total_cycles[fmode][GET_RES (bplcon0)][GET_PLANES (bplcon0)], + blitter_slowdown (thisline_decision.plfleft, thisline_decision.plfright - (16 << fetchmode), + cycle_diagram_total_cycles[fmode][GET_RES (bplcon0)][GET_PLANES (bplcon0)], cycle_diagram_free_cycles[fmode][GET_RES (bplcon0)][GET_PLANES (bplcon0)]); if (currprefs.produce_sound) diff --git a/drawing.c b/drawing.c index 8bd6e52e..f1044fc3 100755 --- a/drawing.c +++ b/drawing.c @@ -1346,7 +1346,7 @@ static void pfield_expand_dp_bplcon (void) brdsprt = (currprefs.chipset_mask & CSMASK_AGA) && (dp_for_drawing->bplcon0 & 1) && (dp_for_drawing->bplcon3 & 0x02); /* FIXME: we must update top and bottom borders when BRDBLANK changes */ - brdblank = (currprefs.chipset_mask & CSMASK_AGA) && (dp_for_drawing->bplcon0 & 1) && (dp_for_drawing->bplcon3 & 0x20); + brdblank = (currprefs.chipset_mask & CSMASK_ECS_DENISE) && (dp_for_drawing->bplcon0 & 1) && (dp_for_drawing->bplcon3 & 0x20); if (brdblank) brdsprt = 0; #endif diff --git a/enforcer.c b/enforcer.c index 74a5070a..4dd8db46 100755 --- a/enforcer.c +++ b/enforcer.c @@ -14,6 +14,7 @@ #include "memory.h" #include "custom.h" #include "newcpu.h" +#include "uae.h" #include "enforcer.h" /* Configurable options */ @@ -352,6 +353,7 @@ static void enforcer_display_hit(const char *addressmode, uae_u32 pc, uaecptr ad console_out(enforcer_buf); write_log(enforcer_buf); + sleep_millis (5); enforcer_hit = 0; flashscreen = 30; diff --git a/filesys.c b/filesys.c index a7150bd9..43f4f0dd 100755 --- a/filesys.c +++ b/filesys.c @@ -83,36 +83,6 @@ static void aino_test_init (a_inode *aino) #endif } -static long dos_errno(void) -{ - int e = errno; - - switch (e) { - case ENOMEM: return ERROR_NO_FREE_STORE; - case EEXIST: return ERROR_OBJECT_EXISTS; - case EACCES: return ERROR_WRITE_PROTECTED; - case ENOENT: return ERROR_OBJECT_NOT_AROUND; - case ENOTDIR: return ERROR_OBJECT_WRONG_TYPE; - case ENOSPC: return ERROR_DISK_IS_FULL; - case EBUSY: return ERROR_OBJECT_IN_USE; - case EISDIR: return ERROR_OBJECT_WRONG_TYPE; -#if defined(ETXTBSY) - case ETXTBSY: return ERROR_OBJECT_IN_USE; -#endif -#if defined(EROFS) - case EROFS: return ERROR_DISK_WRITE_PROTECTED; -#endif -#if defined(ENOTEMPTY) -#if ENOTEMPTY != EEXIST - case ENOTEMPTY: return ERROR_DIRECTORY_NOT_EMPTY; -#endif -#endif - - default: - TRACE(("Unimplemented error %s\n", strerror(e))); - return ERROR_NOT_IMPLEMENTED; - } -} uaecptr filesys_initcode; static uae_u32 fsdevname, filesys_configdev; @@ -403,32 +373,26 @@ int sprintf_filesys_unit (struct uaedev_mount_info *mountinfo, char *buffer, int } void write_filesys_config (struct uaedev_mount_info *mountinfo, - const char *unexpanded, const char *default_path, FILE *f) + const char *unexpanded, const char *default_path, struct zfile *f) { UnitInfo *uip = mountinfo->ui; int i; + char tmp[MAX_DPATH]; for (i = 0; i < mountinfo->num_units; i++) { char *str; str = cfgfile_subst_path (default_path, unexpanded, uip[i].rootdir); if (uip[i].volname != 0) { - fprintf (f, "filesystem2=%s,%s:%s:%s,%d\n", uip[i].readonly ? "ro" : "rw", + sprintf (tmp, "filesystem2=%s,%s:%s:%s,%d\n", uip[i].readonly ? "ro" : "rw", uip[i].devname ? uip[i].devname : "", uip[i].volname, str, uip[i].bootpri); -#if 0 - fprintf (f, "filesystem=%s,%s:%s\n", uip[i].readonly ? "ro" : "rw", - uip[i].volname, str); -#endif + zfile_fputs (f, tmp); } else { - fprintf (f, "hardfile2=%s,%s:%s,%d,%d,%d,%d,%d,%s\n", + sprintf (tmp, "hardfile2=%s,%s:%s,%d,%d,%d,%d,%d,%s\n", uip[i].readonly ? "ro" : "rw", uip[i].devname ? uip[i].devname : "", str, uip[i].hf.secspertrack, uip[i].hf.surfaces, uip[i].hf.reservedblocks, uip[i].hf.blocksize, uip[i].bootpri,uip[i].filesysdir ? uip[i].filesysdir : ""); -#if 0 - fprintf (f, "hardfile=%s,%d,%d,%d,%d,%s\n", - uip[i].readonly ? "ro" : "rw", uip[i].hf.secspertrack, - uip[i].hf.surfaces, uip[i].hf.reservedblocks, uip[i].hf.blocksize, str); -#endif + zfile_fputs (f, tmp); } xfree (str); } @@ -1685,6 +1649,12 @@ action_add_notify (Unit *unit, dpacket packet) name = my_strdup (char1 (get_long (nr + 4))); flags = get_long (nr + 12); + if (!(flags & (NRF_SEND_MESSAGE | NRF_SEND_SIGNAL))) { + PUT_PCK_RES1 (packet, DOS_FALSE); + PUT_PCK_RES2 (packet, ERROR_BAD_NUMBER); + return; + } + #if 0 write_log ("Notify:\n"); write_log ("nr_Name '%s'\n", char1 (get_long (nr + 0))); @@ -2123,6 +2093,7 @@ static void action_examine_next (Unit *unit, dpacket packet) uae_u32 uniq; TRACE(("ACTION_EXAMINE_NEXT(0x%lx,0x%lx)\n", lock, info)); + gui_hd_led (1); DUMPLOCK(unit, lock); if (lock != 0) @@ -2315,7 +2286,7 @@ action_fh_from_lock (Unit *unit, dpacket packet) fd = my_open (aino->nname, openmode | O_BINARY); - if (fd < 0) { + if (fd == NULL) { PUT_PCK_RES1 (packet, DOS_FALSE); PUT_PCK_RES2 (packet, dos_errno()); return; @@ -2324,7 +2295,7 @@ action_fh_from_lock (Unit *unit, dpacket packet) k->fd = fd; k->aino = aino; - put_long (fh+36, k->uniq); + put_long (fh + 36, k->uniq); /* I don't think I need to play with shlock count here, because I'm opening from an existing lock ??? */ @@ -2548,6 +2519,7 @@ action_seek (Unit *unit, dpacket packet) if (mode < 0) whence = SEEK_SET; TRACE(("ACTION_SEEK(%s,%d,%d)\n", k->aino->nname, pos, mode)); + gui_hd_led (1); old = my_lseek (k->fd, 0, SEEK_CUR); { @@ -2607,6 +2579,7 @@ action_set_protect (Unit *unit, dpacket packet) PUT_PCK_RES1 (packet, DOS_TRUE); } notify_check (unit, a); + gui_hd_led (1); } static void action_set_comment (Unit * unit, dpacket packet) @@ -2649,6 +2622,7 @@ static void action_set_comment (Unit * unit, dpacket packet) a->comment = commented; a->dirty = 1; notify_check (unit, a); + gui_hd_led (1); } static void @@ -2834,6 +2808,7 @@ action_create_dir (Unit *unit, dpacket packet) notify_check (unit, aino); updatedirtime (aino, 0); PUT_PCK_RES1 (packet, make_lock (unit, aino->uniq, -2) >> 2); + gui_hd_led (1); } static void @@ -2883,6 +2858,7 @@ action_set_file_size (Unit *unit, dpacket packet) return; } + gui_hd_led (1); k->notifyactive = 1; /* If any open files have file pointers beyond this size, truncate only * so far that these pointers do not become invalid. */ @@ -2970,6 +2946,7 @@ action_delete_object (Unit *unit, dpacket packet) delete_aino (unit, a); } PUT_PCK_RES1 (packet, DOS_TRUE); + gui_hd_led (1); } static void @@ -3001,6 +2978,7 @@ action_set_date (Unit *unit, dpacket packet) } else PUT_PCK_RES1 (packet, DOS_TRUE); notify_check (unit, a); + gui_hd_led (1); } static void @@ -3096,7 +3074,7 @@ action_rename_object (Unit *unit, dpacket packet) k1->fd = my_open (a2->nname, mode); write_log ("restoring new handle '%s' %d\n", a2->nname, k1->dosmode); } - if (k1->fd < 0) { + if (k1->fd == NULL) { write_log ("relocking failed '%s' -> '%s'\n", a1->nname, a2->nname); free_key (unit, k1); } else { @@ -3133,6 +3111,7 @@ action_rename_object (Unit *unit, dpacket packet) if (a2->elock > 0 || a2->shlock > 0 || wehavekeys > 0) de_recycle_aino (unit, a2); PUT_PCK_RES1 (packet, DOS_TRUE); + gui_hd_led (1); } static void diff --git a/fpp.c b/fpp.c index e67c3caf..916b969b 100755 --- a/fpp.c +++ b/fpp.c @@ -24,6 +24,11 @@ #if 1 +STATIC_INLINE int isinrom (void) +{ + return (munge24 (m68k_getpc ()) & 0xFFF80000) == 0xF80000; +} + #define DEBUG_FPP 0 #define FFLAG_Z 0x4000 @@ -366,6 +371,10 @@ STATIC_INLINE int put_fp_value (fptype value, uae_u32 opcode, uae_u16 extra) static int sz1[8] = { 4, 4, 12, 12, 2, 8, 1, 0 }; static int sz2[8] = { 4, 4, 12, 12, 2, 8, 2, 0 }; +#if DEBUG_FPP + if (!isinrom ()) + write_log ("PUTFP: %f %04.4X %04.4X\n", value, opcode, extra); +#endif if ((extra & 0x4000) == 0) { regs.fp[(extra >> 10) & 7] = value; return 1; @@ -635,8 +644,8 @@ void fdbcc_opp (uae_u32 opcode, uae_u16 extra) int cc; #if DEBUG_FPP - printf ("fdbcc_opp at %08lx\n", m68k_getpc ()); - fflush (stdout); + if (!isinrom ()) + write_log ("fdbcc_opp at %08lx\n", m68k_getpc ()); #endif cc = fpp_cond (opcode, extra & 0x3f); if (cc == -1) { @@ -658,8 +667,8 @@ void fscc_opp (uae_u32 opcode, uae_u16 extra) int cc; #if DEBUG_FPP - printf ("fscc_opp at %08lx\n", m68k_getpc ()); - fflush (stdout); + if (!isinrom ()) + write_log ("fscc_opp at %08lx\n", m68k_getpc ()); #endif cc = fpp_cond (opcode, extra & 0x3f); if (cc == -1) { @@ -681,8 +690,8 @@ void ftrapcc_opp (uae_u32 opcode, uaecptr oldpc) int cc; #if DEBUG_FPP - printf ("ftrapcc_opp at %08lx\n", m68k_getpc ()); - fflush (stdout); + if (!isinrom ()) + write_log ("ftrapcc_opp at %08lx\n", m68k_getpc ()); #endif cc = fpp_cond (opcode, opcode & 0x3f); if (cc == -1) { @@ -698,8 +707,8 @@ void fbcc_opp (uae_u32 opcode, uaecptr pc, uae_u32 extra) int cc; #if DEBUG_FPP - printf ("fbcc_opp at %08lx\n", m68k_getpc ()); - fflush (stdout); + if (!isinrom ()) + write_log ("fbcc_opp at %08lx\n", m68k_getpc ()); #endif cc = fpp_cond (opcode, opcode & 0x3f); if (cc == -1) { @@ -722,8 +731,8 @@ void fsave_opp (uae_u32 opcode) #if DEBUG_FPP - printf ("fsave_opp at %08lx\n", m68k_getpc ()); - fflush (stdout); + if (!isinrom ()) + write_log ("fsave_opp at %08lx\n", m68k_getpc ()); #endif if (get_fp_ad (opcode, &ad) == 0) { m68k_setpc (m68k_getpc () - 2); @@ -774,8 +783,8 @@ void frestore_opp (uae_u32 opcode) int incr = (opcode & 0x38) == 0x20 ? -1 : 1; #if DEBUG_FPP - printf ("frestore_opp at %08lx\n", m68k_getpc ()); - fflush (stdout); + if (!isinrom ()) + write_log ("frestore_opp at %08lx\n", m68k_getpc ()); #endif if (get_fp_ad (opcode, &ad) == 0) { m68k_setpc (m68k_getpc () - 2); @@ -850,8 +859,8 @@ void fpp_opp (uae_u32 opcode, uae_u16 extra) fptype src; #if DEBUG_FPP - printf ("FPP %04lx %04x at %08lx\n", opcode & 0xffff, extra & 0xffff, m68k_getpc () - 4); - fflush (stdout); + if (!isinrom ()) + write_log ("FPP %04lx %04x at %08lx\n", opcode & 0xffff, extra, m68k_getpc () - 4); #endif switch ((extra >> 13) & 0x7) { case 3: diff --git a/include/autoconf.h b/include/autoconf.h index 11ac3dff..ab4e21c9 100755 --- a/include/autoconf.h +++ b/include/autoconf.h @@ -60,7 +60,7 @@ extern int kill_filesys_unit (struct uaedev_mount_info *mountinfo, int); extern int move_filesys_unit (struct uaedev_mount_info *mountinfo, int nr, int to); extern int sprintf_filesys_unit (struct uaedev_mount_info *mountinfo, char *buffer, int num); extern void write_filesys_config (struct uaedev_mount_info *mountinfo, const char *unexpanded, - const char *defaultpath, FILE *f); + const char *defaultpath, struct zfile *f); extern struct uaedev_mount_info *alloc_mountinfo (void); extern struct uaedev_mount_info *dup_mountinfo (struct uaedev_mount_info *); diff --git a/include/fsdb.h b/include/fsdb.h index 1057b5bd..72310f41 100755 --- a/include/fsdb.h +++ b/include/fsdb.h @@ -16,6 +16,7 @@ #endif /* AmigaOS errors */ +#define ERROR_BAD_NUMBER 6 #define ERROR_NO_FREE_STORE 103 #define ERROR_OBJECT_IN_USE 202 #define ERROR_OBJECT_EXISTS 203 @@ -129,5 +130,5 @@ extern unsigned int my_lseek (void*, unsigned int, int); extern unsigned int my_read (void*, void*, unsigned int); extern unsigned int my_write (void*, void*, unsigned int); extern int my_truncate (const char *name, long int len); - +extern int dos_errno (void); diff --git a/include/inputdevice.h b/include/inputdevice.h index ddfb41d0..a5bb7701 100755 --- a/include/inputdevice.h +++ b/include/inputdevice.h @@ -118,7 +118,7 @@ extern void inputdevice_vsync (void); extern void inputdevice_hsync (void); extern void inputdevice_reset (void); -extern void write_inputdevice_config (struct uae_prefs *p, FILE *f); +extern void write_inputdevice_config (struct uae_prefs *p, struct zfile *f); extern void read_inputdevice_config (struct uae_prefs *p, char *option, char *value); extern void reset_inputdevice_config (struct uae_prefs *pr); @@ -151,3 +151,4 @@ extern int jsem_isjoy (int port, struct uae_prefs *p); extern int jsem_ismouse (int port, struct uae_prefs *p); extern int jsem_iskbdjoy (int port, struct uae_prefs *p); +extern int inputdevice_uaelib (char*, char*); diff --git a/include/newcpu.h b/include/newcpu.h index 3b2ccd1b..bef11ae3 100755 --- a/include/newcpu.h +++ b/include/newcpu.h @@ -108,8 +108,7 @@ extern struct regstruct uae_u32 kick_mask; uae_u32 address_space_mask; - uae_u16 irc; - uae_u16 ir; + uae_u16 irc, ir; uae_u8 panic; uae_u32 panic_pc, panic_addr; diff --git a/include/options.h b/include/options.h index 7d3a60f7..498f8514 100755 --- a/include/options.h +++ b/include/options.h @@ -9,7 +9,7 @@ #define UAEMAJOR 0 #define UAEMINOR 9 -#define UAESUBREV 90 +#define UAESUBREV 91 typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang; @@ -235,8 +235,8 @@ struct uae_prefs { /* Contains the filename of .uaerc */ extern char optionsfile[]; -extern void save_options (FILE *, struct uae_prefs *, int); -extern void cfgfile_write (FILE *f, char *format,...); +extern void save_options (struct zfile *, struct uae_prefs *, int); +extern void cfgfile_write (struct zfile *, char *format,...); extern void default_prefs (struct uae_prefs *, int); extern void discard_prefs (struct uae_prefs *, int); @@ -250,9 +250,9 @@ extern int cfgfile_string (char *option, char *value, char *name, char *location extern char *cfgfile_subst_path (const char *path, const char *subst, const char *file); extern int target_parse_option (struct uae_prefs *, char *option, char *value); -extern void target_save_options (FILE *, struct uae_prefs *); +extern void target_save_options (struct zfile*, 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 target_cfgfile_load (struct uae_prefs *, char *filename, int type, int isdefault); 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); @@ -260,7 +260,8 @@ 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, 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 uae_u32 cfgfile_uaelib (int mode, uae_u32 name, uae_u32 dst, uae_u32 maxlen); +extern uae_u32 cfgfile_uaelib_modify (uae_u32 mode, uae_u32 parms, uae_u32 size, uae_u32 out, uae_u32 outsize); extern void cfgfile_addcfgparam (char *); extern int build_in_prefs (struct uae_prefs *p, int model, int config, int compa, int romcheck); diff --git a/include/uae.h b/include/uae.h index 0c7caf10..aa3c239f 100755 --- a/include/uae.h +++ b/include/uae.h @@ -14,7 +14,7 @@ extern void real_main (int, char **); extern void usage (void); extern void parse_cmdline (int argc, char **argv); extern void sleep_millis (int ms); - +extern int sleep_resolution; extern void uae_reset (int); extern void uae_quit (void); diff --git a/include/zfile.h b/include/zfile.h index c512efbc..05eb9ffc 100755 --- a/include/zfile.h +++ b/include/zfile.h @@ -19,6 +19,7 @@ extern int zfile_fseek (struct zfile *z, long offset, int mode); extern long zfile_ftell (struct zfile *z); extern size_t zfile_fread (void *b, size_t l1, size_t l2, struct zfile *z); extern size_t zfile_fwrite (void *b, size_t l1, size_t l2, struct zfile *z); +extern size_t zfile_fputs (struct zfile *z, char *s); extern void zfile_exit (void); extern int execute_command (char *); extern int zfile_iscompressed (struct zfile *z); diff --git a/inputdevice.c b/inputdevice.c index 1a027301..97167296 100755 --- a/inputdevice.c +++ b/inputdevice.c @@ -119,6 +119,19 @@ static int isdevice (struct uae_input_device *id) return 0; } +int inputdevice_uaelib (char *s, char *parm) +{ + int i; + + for (i = 1; events[i].name; i++) { + if (!strcmp (s, events[i].confname)) { + handle_input_event (i, atol (parm), 1, 0); + return 1; + } + } + return 0; +} + static struct uae_input_device *joysticks; static struct uae_input_device *mice; static struct uae_input_device *keyboards; @@ -155,13 +168,13 @@ struct input_queue_struct { }; static struct input_queue_struct input_queue[INPUT_QUEUE_SIZE]; -static void out_config (FILE *f, int id, int num, char *s1, char *s2) +static void out_config (struct zfile *f, int id, int num, char *s1, char *s2) { cfgfile_write (f, "input.%d.%s%d=%s\n", id, s1, num, s2); //write_log ("-input.%d.%s%d=%s\n", id, s1, num, s2); } -static void write_config2 (FILE *f, int idnum, int i, int offset, char *tmp1, struct uae_input_device *id) +static void write_config2 (struct zfile *f, int idnum, int i, int offset, char *tmp1, struct uae_input_device *id) { char tmp2[200], *p; int event, got, j, k; @@ -191,7 +204,7 @@ static void write_config2 (FILE *f, int idnum, int i, int offset, char *tmp1, st out_config (f, idnum, i, tmp1, tmp2); } -static void write_config (FILE *f, int idnum, int devnum, char *name, struct uae_input_device *id, struct uae_input_device2 *id2) +static void write_config (struct zfile *f, int idnum, int devnum, char *name, struct uae_input_device *id, struct uae_input_device2 *id2) { char tmp1[100]; int i; @@ -216,7 +229,7 @@ static void kbrlabel (char *s) } } -static void write_kbr_config (FILE *f, int idnum, int devnum, struct uae_input_device *kbr) +static void write_kbr_config (struct zfile *f, int idnum, int devnum, struct uae_input_device *kbr) { char tmp1[200], tmp2[200], tmp3[200], *p; int i, j, k, event, skip; @@ -275,7 +288,7 @@ static void write_kbr_config (FILE *f, int idnum, int devnum, struct uae_input_d } } -void write_inputdevice_config (struct uae_prefs *p, FILE *f) +void write_inputdevice_config (struct uae_prefs *p, struct zfile *f) { int i, id; diff --git a/keybuf.c b/keybuf.c index aae38643..9ee52965 100755 --- a/keybuf.c +++ b/keybuf.c @@ -24,7 +24,7 @@ #include "custom.h" #include "savestate.h" -static int fakestate[3][6] = { { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 } }; +static int fakestate[4][6] = { { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0 } }; static int *fs_np; static int *fs_ck; @@ -92,7 +92,7 @@ void record_key (int kc) case AK_LF: fs = 1; fs_ck[1] = !(kc & 1); break; case AK_RT: fs = 1; fs_ck[2] = !(kc & 1); break; case AK_DN: fs = 1; fs_ck[3] = !(kc & 1); break; - case AK_RCTRL: fs = 1; fs_ck[4] = !(kc & 1); break; + case AK_RCTRL: case AK_RALT: fs = 1; fs_ck[4] = !(kc & 1); break; case AK_RSH: fs = 1; fs_ck[5] = !(kc & 1); break; } } @@ -142,7 +142,8 @@ void joystick_setting_changed (void) fs_se = fakestate[0]; else if (JSEM_ISSOMEWHEREELSE (1, &currprefs)) fs_se = fakestate[1]; -} + + } void keybuf_init (void) { diff --git a/main.c b/main.c index 600c8100..cfa711c1 100755 --- a/main.c +++ b/main.c @@ -389,7 +389,7 @@ static void parse_cmdline (int argc, char **argv) if (i + 1 < argc) i++; } else if (strncmp (argv[i], "-config=", 8) == 0) { - target_cfgfile_load (&currprefs, argv[i] + 8, 0); + target_cfgfile_load (&currprefs, argv[i] + 8, 0, 1); } /* Check for new-style "-f xxx" argument, where xxx is config-file */ else if (strcmp (argv[i], "-f") == 0) { @@ -400,7 +400,7 @@ static void parse_cmdline (int argc, char **argv) free_mountinfo (currprefs.mountinfo); currprefs.mountinfo = alloc_mountinfo (); #endif - target_cfgfile_load (&currprefs, argv[++i], 0); + target_cfgfile_load (&currprefs, argv[++i], 0, 1); } } else if (strcmp (argv[i], "-s") == 0) { if (i + 1 == argc) @@ -444,12 +444,12 @@ static void parse_cmdline_and_init_file (int argc, char **argv) strcat (optionsfile, restart_config); - if (! target_cfgfile_load (&currprefs, optionsfile, 0)) { + if (! target_cfgfile_load (&currprefs, optionsfile, 0, 0)) { write_log ("failed to load config '%s'\n", optionsfile); #ifdef OPTIONS_IN_HOME /* sam: if not found in $HOME then look in current directory */ strcpy (optionsfile, restart_config); - target_cfgfile_load (&currprefs, optionsfile); + target_cfgfile_load (&currprefs, optionsfile, 0); #endif } fix_options (); diff --git a/newcpu.c b/newcpu.c index 3a7d871b..88c09b8c 100755 --- a/newcpu.c +++ b/newcpu.c @@ -241,7 +241,7 @@ void check_prefs_changed_cpu (void) || currprefs.cpu_cycle_exact != changed_prefs.cpu_cycle_exact) { if (!currprefs.cpu_compatible && changed_prefs.cpu_compatible) - regs.ir = get_word (m68k_getpc()); /* non-prefetch to prefetch fix */ + fill_prefetch_slow (); currprefs.cpu_level = changed_prefs.cpu_level; currprefs.cpu_compatible = changed_prefs.cpu_compatible; @@ -912,7 +912,7 @@ static void Exception_ce (int nr, uaecptr oldpc) put_word_ce (m68k_areg(regs, 7) + 4, last_fault_for_exception_3); put_word_ce (m68k_areg(regs, 7) + 0, mode); put_word_ce (m68k_areg(regs, 7) + 2, last_fault_for_exception_3 >> 16); - write_log ("Exception %d at %x -> %x!\n", nr, currpc, get_long (4 * nr)); + write_log ("Exception %d (%x) at %x -> %x!\n", nr, oldpc, currpc, get_long (4 * nr)); goto kludge_me_do; } m68k_areg (regs, 7) -= 6; @@ -1002,7 +1002,7 @@ static void Exception_normal (int nr, uaecptr oldpc) m68k_areg(regs, 7) -= 2; put_word (m68k_areg(regs, 7), 0xb000 + nr * 4); } - write_log ("Exception %d at %p!\n", nr, currpc); + write_log ("Exception %d (%x) at %x -> %x!\n", nr, oldpc, currpc, get_long (regs.vbr + 4*nr)); } else if (nr ==5 || nr == 6 || nr == 7 || nr == 9) { m68k_areg(regs, 7) -= 4; put_long (m68k_areg(regs, 7), oldpc); @@ -1034,7 +1034,7 @@ static void Exception_normal (int nr, uaecptr oldpc) put_word (m68k_areg(regs, 7) + 6, last_op_for_exception_3); put_word (m68k_areg(regs, 7) + 8, regs.sr); put_long (m68k_areg(regs, 7) + 10, last_addr_for_exception_3); - write_log ("Exception %d at %x -> %x!\n", nr, currpc, get_long (regs.vbr + 4*nr)); + write_log ("Exception %d (%x) at %x -> %x!\n", nr, oldpc, currpc, get_long (regs.vbr + 4*nr)); goto kludge_me_do; } m68k_areg(regs, 7) -= 4; @@ -1042,7 +1042,7 @@ static void Exception_normal (int nr, uaecptr oldpc) m68k_areg(regs, 7) -= 2; put_word (m68k_areg(regs, 7), regs.sr); kludge_me_do: - newpc = get_long (regs.vbr + 4*nr); + newpc = get_long (regs.vbr + 4 * nr); if (newpc & 1) { if (nr == 2 || nr == 3) uae_reset (1); /* there is nothing else we can do.. */ @@ -1637,8 +1637,6 @@ static void do_trace (void) } } -#define CPU_IDLE_LINES 60 - static int do_specialties (int cycles) { #ifdef ACTION_REPLAY @@ -1727,11 +1725,11 @@ static int do_specialties (int cycles) sleepcnt--; if (pissoff == 0 && compiled_code && --zerocnt < 0) { sleepcnt = -1; - zerocnt = currprefs.cpu_idle / 2; + zerocnt = (currprefs.cpu_idle * sleep_resolution / 1000) / 4; } lvpos = vpos; if (sleepcnt < 0) { - sleepcnt = currprefs.cpu_idle; + sleepcnt = (currprefs.cpu_idle * sleep_resolution / 1000) / 2; sleep_millis (1); } } @@ -1745,11 +1743,12 @@ static int do_specialties (int cycles) /* interrupt takes at least 2 cycles (maybe 4) to reach the CPU and * there are programs that require this delay (which is not too surprising..) */ - if ((regs.spcflags & SPCFLAG_DOINT) -#ifdef JIT - || (!currprefs.cachesize && (regs.spcflags & SPCFLAG_INT)) +#ifdef JIT + if ((regs.spcflags & SPCFLAG_DOINT) + || (!currprefs.cachesize && (regs.spcflags & SPCFLAG_INT))) { +#else + if (regs.spcflags & SPCFLAG_INT) { #endif - ) { int intr = intlev (); #ifdef JIT if (currprefs.cachesize) @@ -2139,6 +2138,15 @@ STATIC_INLINE void m68k_run1 (void (*func)(void)) int in_m68k_go = 0; +static void exception2_handle (uaecptr addr, uaecptr fault) +{ + last_addr_for_exception_3 = addr; + last_fault_for_exception_3 = fault; + last_writeaccess_for_exception_3 = 0; + last_instructionaccess_for_exception_3 = 0; + Exception (2, addr); +} + void m68k_go (int may_quit) { if (in_m68k_go || !may_quit) { @@ -2196,7 +2204,7 @@ void m68k_go (int may_quit) if (regs.isp & 1) regs.panic = 1; if (!regs.panic) - exception2 (regs.panic_pc, regs.panic_addr); + exception2_handle (regs.panic_pc, regs.panic_addr); if (regs.panic) { /* system is very badly confused */ write_log ("double bus error or corrupted stack, forcing reboot..\n"); @@ -2549,7 +2557,7 @@ static void exception3f (uae_u32 opcode, uaecptr addr, uaecptr fault, int writea last_op_for_exception_3 = opcode; last_writeaccess_for_exception_3 = writeaccess; last_instructionaccess_for_exception_3 = instructionaccess; - Exception (3,0); + Exception (3, fault); } void exception3 (uae_u32 opcode, uaecptr addr, uaecptr fault) @@ -2563,11 +2571,16 @@ void exception3i (uae_u32 opcode, uaecptr addr, uaecptr fault) void exception2 (uaecptr addr, uaecptr fault) { - last_addr_for_exception_3 = addr; - last_fault_for_exception_3 = fault; - last_writeaccess_for_exception_3 = 0; - last_instructionaccess_for_exception_3 = 0; - Exception (2, 0); + write_log ("delayed exception2!\n"); + regs.panic_pc = m68k_getpc(); + regs.panic_addr = addr; + regs.panic = 2; + set_special (SPCFLAG_BRK); + m68k_setpc (0xf80000); +#ifdef JIT + set_special(SPCFLAG_END_COMPILE); +#endif + fill_prefetch_slow (); } void cpureset (void) diff --git a/od-win32/WinUAE_Install.nsi b/od-win32/WinUAE_Install.nsi index 352ac5b1..7d7bc93c 100755 --- a/od-win32/WinUAE_Install.nsi +++ b/od-win32/WinUAE_Install.nsi @@ -1,5 +1,5 @@ !define PRODUCT_NAME "WinUAE" -!define PRODUCT_VERSION "0.9.90" +!define PRODUCT_VERSION "0.9.91" !define PRODUCT_PUBLISHER "Toni Wilen" !define PRODUCT_WEB_SITE "http://www.winuae.net/" !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\winuae.exe" @@ -7,49 +7,68 @@ !define PRODUCT_UNINST_ROOT_KEY "HKLM" ;-- Your path here -!define DISTPATH "c:\projects\winuae\distribution" +!define DISTPATH "C:\projects\winuae\distribution" SetCompressor lzma + +!include "StrFunc.nsh" +!include "WinMessages.nsh" + ; MUI begins --- !include "MUI.nsh" - ; MUI Settings !define MUI_ABORTWARNING !define MUI_COMPONENTSPAGE_SMALLDESC +;!define MUI_FINISHPAGE_NOAUTOCLOSE +!define MUI_FINISHPAGE_RUN_NOTCHECKED !define MUI_ICON "graphics\installer_icon.ico" !define MUI_UNICON "graphics\installer_icon.ico" - ; MUI Bitmaps !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_BITMAP "graphics\amiga_header.bmp" !define MUI_WELCOMEFINISHPAGE_BITMAP "graphics\amiga_welcome.bmp" - ; Welcome page !insertmacro MUI_PAGE_WELCOME - ; Components page !insertmacro MUI_PAGE_COMPONENTS - ; Directory page !insertmacro MUI_PAGE_DIRECTORY - ; Instfiles page !insertmacro MUI_PAGE_INSTFILES - ; Finish page +!define MUI_FINISHPAGE_RUN "$INSTDIR\winuae.exe" !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Docs\Readme.txt" !insertmacro MUI_PAGE_FINISH - ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES - ; Language files !insertmacro MUI_LANGUAGE "English" ; MUI end --- +Function .onInit + ;Find WinUAE Properties Window and close it when it's open + System::Call 'kernel32::CreateMutexA(i 0, i 0, t "WinUAE Instantiated") i .r1 ?e' + Pop $1 + StrCmp $1 183 0 Continue + MessageBox MB_OK|MB_ICONEXCLAMATION "WinUAE is still running in the background, the installer will terminate it.$\nYou can do this by yourself as well before proceeding with the installation." + FindWindow $2 "" "WinUAE Properties" + FindWindow $3 "" "WinUAE" + SendMessage $2 ${WM_CLOSE} 0 0 + SendMessage $3 ${WM_CLOSE} 0 0 + + Continue: + ReadRegStr $0 HKCU "Software\Arabuusimiehet\WinUAE" "InstallDir" + StrCmp $0 "" No_WinUAE + ;Code if WinUAE is installed + StrCpy $INSTDIR $0 + Goto +2 + No_WinUAE: + ;Code if WinUAE is not installed + StrCpy $INSTDIR "$PROGRAMFILES\WinUAE" +FunctionEnd + Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "InstallWinUAE.exe" -InstallDir "$PROGRAMFILES\WinUAE" InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails show ShowUnInstDetails show @@ -61,7 +80,7 @@ InstType "Basic with Shortcuts" ;3 Section "WinUAE (required)" secWinUAE_files SectionIn 1 2 3 RO SetOutPath "$INSTDIR\" - SetOverwrite ifnewer + ;SetOverwrite ifnewer ;-- Copy WinUAE and zlib.dll File "${DISTPATH}\zlib1.dll" File "${DISTPATH}\winuae.exe" @@ -115,6 +134,9 @@ SubSection "Additional files" secAdditionalFiles File "${DISTPATH}\Amiga Programs\uaectrl" File "${DISTPATH}\Amiga Programs\uae-control.info" File "${DISTPATH}\Amiga Programs\uae-control" + File "${DISTPATH}\Amiga Programs\uae-configuration" + File "${DISTPATH}\Amiga Programs\uae-configuration.s" + File "${DISTPATH}\Amiga Programs\uae-configuration.c" File "${DISTPATH}\Amiga Programs\uae_rcli" File "${DISTPATH}\Amiga Programs\UAE_German.info" File "${DISTPATH}\Amiga Programs\UAE_German" @@ -172,7 +194,7 @@ Section -Post WriteUninstaller "$INSTDIR\uninstall_winuae.exe" WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\winuae.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninstall_winuae.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\winuae.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" @@ -219,6 +241,7 @@ Section Uninstall Delete "$INSTDIR\Docs\Whatsnew-jit" Delete "$INSTDIR\Amiga Programs\ahidriver.zip" Delete "$INSTDIR\Amiga Programs\amigaprog.txt" + Delete "$INSTDIR\Amiga Programs\german_KeyMap_new.zip" Delete "$INSTDIR\Amiga Programs\mousehack" Delete "$INSTDIR\Amiga Programs\p96_uae_tweak" Delete "$INSTDIR\Amiga Programs\p96refresh" @@ -232,6 +255,9 @@ Section Uninstall Delete "$INSTDIR\Amiga Programs\UAE_German" Delete "$INSTDIR\Amiga Programs\UAE_German.info" Delete "$INSTDIR\Amiga Programs\uae_rcli" + Delete "$INSTDIR\Amiga Programs\uae-configuration" + Delete "$INSTDIR\Amiga Programs\uae-configuration.s" + Delete "$INSTDIR\Amiga Programs\uae-configuration.c" Delete "$INSTDIR\Amiga Programs\uae-control" Delete "$INSTDIR\Amiga Programs\uae-control.info" Delete "$INSTDIR\Amiga Programs\uaectrl" @@ -242,20 +268,34 @@ Section Uninstall Delete "$INSTDIR\Amiga Programs\winuaeenforcer.txt" Delete "$INSTDIR\Amiga Programs\winxpprinthelper" Delete "$INSTDIR\Amiga Programs\winxpprinthelper.info" + Delete "$INSTDIR\Configurations\Host\Fullscreen (640x480).uae" + Delete "$INSTDIR\Configurations\Host\Fullscreen (800x600).uae" + Delete "$INSTDIR\Configurations\Host\Windowed.uae" + Delete "$INSTDIR\winuaebootlog.txt" + Delete "$INSTDIR\winuaelog.txt" Delete "$INSTDIR\winuae.exe" Delete "$INSTDIR\zlib1.dll" Delete "$INSTDIR\WinUAE_German.dll" Delete "$SMPROGRAMS\WinUAE\Uninstall.lnk" - Delete "$DESKTOP\WinUAE.lnk" Delete "$SMPROGRAMS\WinUAE\WinUAE.lnk" Delete "$SMPROGRAMS\WinUAE\ReadMe.lnk" + Delete "$DESKTOP\WinUAE.lnk" + Delete "$QUICKLAUNCH\WinUAE.lnk" - RMDir "$SMPROGRAMS\WinUAE" RMDir "$INSTDIR\Docs\Windows" RMDir "$INSTDIR\Docs" RMDir "$INSTDIR\Amiga Programs" - RMDir /r "$INSTDIR\" + RMDir "$INSTDIR\Configurations\Host" + RMDir "$INSTDIR\Configurations\Hardware" + RMDir "$INSTDIR\Configurations" + RMDir "$INSTDIR\Roms" + RMDir "$INSTDIR\SaveImages" + RMDir "$INSTDIR\SaveStates" + RMDir "$INSTDIR\ScreenShots" + + RMDir "$SMPROGRAMS\WinUAE" + RMDir "$INSTDIR\" RMDir "" DeleteRegKey HKCU "Software\Arabuusimiehet" diff --git a/od-win32/bsdsock.c b/od-win32/bsdsock.c index ace428c8..2d4fb559 100755 --- a/od-win32/bsdsock.c +++ b/od-win32/bsdsock.c @@ -2037,6 +2037,28 @@ uae_u32 host_inet_addr(uae_u32 cp) return addr; } +int isfullscreen (void); +BOOL CheckOnline(SB) + { + DWORD dwFlags; + BOOL bReturn = TRUE; + if (InternetGetConnectedState(&dwFlags,0) == FALSE) + { // Internet is offline + if (InternetAttemptConnect(0) != ERROR_SUCCESS) + { // Show Dialer window + sb->sb_errno = 10001; + sb->sb_herrno = 1; + bReturn = FALSE; + // No success or aborted + } + if (isfullscreen()) + { + ShowWindow (hAmigaWnd, SW_RESTORE); + SetActiveWindow(hAmigaWnd); + } + } + return(bReturn); + } static unsigned int __stdcall thread_get(void *index2) { @@ -2063,33 +2085,36 @@ static unsigned int __stdcall thread_get(void *index2) if (args[1] == 0) { // gethostbyname or gethostbyaddr struct hostent *host; - - name = args[2]; - namelen = args[3]; - addrtype = args[4]; - buf = (char*) args[5]; - name_rp = get_real_address(name); - - if (addrtype == -1) - { - host = gethostbyname(name_rp); - } - else + if (CheckOnline(sb) == TRUE) { - host = gethostbyaddr(name_rp,namelen,addrtype); - } - if (threadGetargs[index] != -1) - { // No CTRL-C Signal - if (host == 0) + + name = args[2]; + namelen = args[3]; + addrtype = args[4]; + buf = (char*) args[5]; + name_rp = get_real_address(name); + + if (addrtype == -1) { - // Error occured - SETERRNO; - TRACE(("failed (%d) - ",sb->sb_errno)); + host = gethostbyname(name_rp); } else { - seterrno(sb,0); - memcpy(buf,host,sizeof(HOSTENT)); + host = gethostbyaddr(name_rp,namelen,addrtype); + } + if (threadGetargs[index] != -1) + { // No CTRL-C Signal + if (host == 0) + { + // Error occured + SETERRNO; + TRACE(("failed (%d) - ",sb->sb_errno)); + } + else + { + seterrno(sb,0); + memcpy(buf,host,sizeof(HOSTENT)); + } } } } @@ -2174,6 +2199,7 @@ static unsigned int __stdcall thread_get(void *index2) return result; } + void host_gethostbynameaddr(SB, uae_u32 name, uae_u32 namelen, long addrtype) { HOSTENT *h; @@ -2190,8 +2216,12 @@ void host_gethostbynameaddr(SB, uae_u32 name, uae_u32 namelen, long addrtype) char buf[MAXGETHOSTSTRUCT]; unsigned int wMsg = 0; - char on = 1; - InternetSetOption(0,INTERNET_OPTION_SETTINGS_CHANGED,&on,strlen(&on)); + + + +// char on = 1; +// InternetSetOption(0,INTERNET_OPTION_SETTINGS_CHANGED,&on,strlen(&on)); +// Do not use: Causes locks with some machines name_rp = get_real_address(name); diff --git a/od-win32/dxwrap.c b/od-win32/dxwrap.c index 190d6aa8..9b52d9a2 100755 --- a/od-win32/dxwrap.c +++ b/od-win32/dxwrap.c @@ -1205,6 +1205,7 @@ HRESULT DirectDraw_CreateSurface( int width, int height ) #endif } out: + DirectDraw_ClearSurfaces (); return ddrval; } @@ -1737,7 +1738,7 @@ static int DirectDraw_BltStub( LPDIRECTDRAWSURFACE7 dstsurf, LPRECT dstrect, LPD if (ddrval == DDERR_SURFACELOST) { if (errcnt > 10) - break; + return 1; errcnt++; ddrval = restoresurface ( dstsurf ); if (ddrval != DD_OK) diff --git a/od-win32/fsdb_win32.c b/od-win32/fsdb_win32.c index 7a20f654..6feafc00 100755 --- a/od-win32/fsdb_win32.c +++ b/od-win32/fsdb_win32.c @@ -217,6 +217,29 @@ static int recycle (const char *name) int my_rmdir (const char *name) { + void *od; + int cnt; + char tname[MAX_DPATH]; + + /* SHFileOperation() ignores FOF_NORECURSION when deleting directories.. */ + od = my_opendir (name); + if (!od) { + SetLastError (ERROR_FILE_NOT_FOUND); + return -1; + } + cnt = 0; + while (my_readdir (od, tname)) { + if (!strcmp (tname, ".") || !strcmp (tname, "..")) + continue; + cnt++; + break; + } + my_closedir (od); + if (cnt > 0) { + SetLastError (ERROR_CURRENT_DIRECTORY); + return -1; + } + return recycle (name); //return RemoveDirectory (name) == 0 ? -1 : 0; } @@ -317,7 +340,7 @@ void *my_open (const char *name, int flags) { struct my_opens *mos; HANDLE h; - DWORD DesiredAccess = GENERIC_READ | GENERIC_WRITE; + DWORD DesiredAccess = GENERIC_READ; DWORD ShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; DWORD CreationDisposition = OPEN_EXISTING; DWORD FlagsAndAttributes = FILE_ATTRIBUTE_NORMAL; @@ -326,19 +349,29 @@ void *my_open (const char *name, int flags) if (!mos) return NULL; if (flags & O_TRUNC) - CreationDisposition = TRUNCATE_EXISTING; - if (flags & O_CREAT) CreationDisposition = CREATE_ALWAYS; + else if (flags & O_CREAT) + CreationDisposition = OPEN_ALWAYS; if (flags & O_WRONLY) DesiredAccess = GENERIC_WRITE; - if (flags & O_RDONLY) + if (flags & O_RDONLY) { DesiredAccess = GENERIC_READ; + CreationDisposition = OPEN_EXISTING; + } if (flags & O_RDWR) DesiredAccess = GENERIC_READ | GENERIC_WRITE; h = CreateFile (name, DesiredAccess, ShareMode, NULL, CreationDisposition, FlagsAndAttributes, NULL); if (h == INVALID_HANDLE_VALUE) { - xfree (mos); - return 0; + if (DesiredAccess & GENERIC_WRITE) { + DesiredAccess &= ~GENERIC_WRITE; + CreationDisposition = OPEN_EXISTING; + h = CreateFile (name, DesiredAccess, ShareMode, NULL, CreationDisposition, FlagsAndAttributes, NULL); + } + if (h == INVALID_HANDLE_VALUE) { + write_log ("failed to open '%s' %x %x\n", name, DesiredAccess, CreationDisposition); + xfree (mos); + return 0; + } } mos->h = h; return mos; @@ -365,3 +398,44 @@ int my_truncate (const char *name, long int len) } return result; } + +int dos_errno (void) +{ + DWORD e = GetLastError (); + + switch (e) { + case ERROR_NOT_ENOUGH_MEMORY: + case ERROR_OUTOFMEMORY: + return ERROR_NO_FREE_STORE; + + case ERROR_FILE_EXISTS: + case ERROR_ALREADY_EXISTS: + return ERROR_OBJECT_EXISTS; + + case ERROR_WRITE_PROTECT: + case ERROR_ACCESS_DENIED: + return ERROR_WRITE_PROTECTED; + + case ERROR_FILE_NOT_FOUND: + case ERROR_INVALID_DRIVE: + return ERROR_OBJECT_NOT_AROUND; + + case ERROR_HANDLE_DISK_FULL: + return ERROR_DISK_IS_FULL; + + case ERROR_SHARING_VIOLATION: + case ERROR_BUSY: + return ERROR_OBJECT_IN_USE; + + case ERROR_CURRENT_DIRECTORY: + return ERROR_DIRECTORY_NOT_EMPTY; + + case ERROR_NEGATIVE_SEEK: + case ERROR_SEEK_ON_DEVICE: + return ERROR_SEEK_ERROR; + + default: + write_log ("Unimplemented error %d\n", e); + return ERROR_NOT_IMPLEMENTED; + } +} diff --git a/od-win32/ioport.c b/od-win32/ioport.c index 5da1726e..b5e4dc08 100755 --- a/od-win32/ioport.c +++ b/od-win32/ioport.c @@ -23,7 +23,11 @@ int ioport_init (void) if (initialized) return 1; #ifndef IOPORT_EMU - initialized = InitializeWinIo(); + __try { + initialized = InitializeWinIo(); + } __except (EXCEPTION_EXECUTE_HANDLER) { + initialized = 0; + } #else initialized = 1; #endif diff --git a/od-win32/makeexe.bat b/od-win32/makeexe.bat index 2119057f..0e806877 100755 --- a/od-win32/makeexe.bat +++ b/od-win32/makeexe.bat @@ -1,7 +1,7 @@ del *.zip copy d:\amiga\winuae.exe c:\projects\winuae\distribution copy resourcedll\release\resourcedll.dll d:\amiga\WinUAE_default.dll -makensis.exe winuae +"c:\Program Files\NSIS\makensis.exe" winuae_install cd c:\projects\winuae\distribution copy docs\windows\translation.txt d:\amiga zip -9 -r c:\projects\winuae\src\od-win32\winuae.zip * diff --git a/od-win32/picasso96_win.c b/od-win32/picasso96_win.c index 7812225d..0b55d5a0 100755 --- a/od-win32/picasso96_win.c +++ b/od-win32/picasso96_win.c @@ -933,7 +933,7 @@ STATIC_INLINE void do_fillrect_frame_buffer( struct RenderInfo *ri, int X, int Y void picasso_handle_vsync (void) { - DX_Invalidate(1,4000); //so a flushpixel is done every vsync if pixel are in buffer + DX_Invalidate(0,4000); //so a flushpixel is done every vsync if pixel are in buffer PICASSO96_Unlock(); if (palette_changed) { DX_SetPalette (0,256); @@ -950,7 +950,7 @@ static int set_panning_called = 0; * 3. whenever the graphics code notifies us that the screen contents have been lost. */ extern unsigned int new_beamcon0; -void picasso_refresh( int call_setpalette ) +void picasso_refresh ( int call_setpalette ) { struct RenderInfo ri; @@ -3195,7 +3195,7 @@ static void flushpixels( void ) //panoffset=picasso96_state.Address+(picasso96_state.XOffset*picasso96_state.BytesPerPixel) // +(picasso96_state.YOffset*picasso96_state.BytesPerRow); - DX_Invalidate (1,4000); + DX_Invalidate (0,4000); #ifndef _DEBUG if(DirectDraw_IsLocked()==FALSE) { dst = gfx_lock_picasso (); diff --git a/od-win32/resources/WinUAE_German.rc b/od-win32/resources/WinUAE_German.rc new file mode 100755 index 00000000..a4ef4015 --- /dev/null +++ b/od-win32/resources/WinUAE_German.rc @@ -0,0 +1,1046 @@ +186 MENU +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +POPUP "Menü" +{ + MENUITEM "Konfiguration", 40010 + POPUP "Disk-Laufwerke" + { + MENUITEM "Alle Disketten auswerfen", 40013 + MENUITEM "DF0:", 40014 + MENUITEM "DF1:", 40015 + MENUITEM "DF2:", 40016 + MENUITEM "DF3:", 40017 + } + MENUITEM "Neustart", 40019 + MENUITEM "Hilfe", 40011 + MENUITEM "WinUAE beenden", 40012 +} +} + +107 DIALOGEX 0, 0, 300, 138 +STYLE DS_CONTROL | WS_CHILD +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Optionen:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 0, 290, 74 + CONTROL "Kickstart-ROM:", 1603, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 15, 75, 10 + CONTROL "", 1390, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 89, 12, 186, 75 + CONTROL "...", 1392, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 280, 10, 10, 15 + CONTROL "Extended-ROM:", 1602, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 34, 75, 10 + CONTROL "", 1394, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 89, 31, 186, 75 + CONTROL "...", 1395, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 280, 30, 10, 15 + CONTROL "MAPROM-Emulation [] Erstellt einen BlizKick-kompatiblen Speicher-Bereich.", 1609, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 95, 54, 83, 10 + CONTROL "ShapeShifter-Unterstützung [] Modifiziert das Kickstart-ROM für ShapeShifter-Kompatibilität.", 1530, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 185, 54, 104, 10 + CONTROL "Sonstiges:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 76, 290, 57 + CONTROL "Cartridge-ROM:", 1606, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 8, 93, 75, 10 + CONTROL "", 1398, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 89, 90, 186, 75 + CONTROL "...", 1399, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 280, 90, 10, 15 + CONTROL "Flash-RAM:", 1605, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 8, 114, 75, 10 + CONTROL "", 1397, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 89, 110, 186, 14 + CONTROL "...", 1396, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 280, 110, 10, 15 +} + +108 DIALOGEX 0, 0, 300, 194 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Bildschirmauflösung", 1511, BUTTON, BS_GROUPBOX | BS_LEFT | WS_CHILD | WS_VISIBLE, 12, 0, 199, 67 + CONTROL "Vollbild", 1510, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 22, 17, 34, 15 + CONTROL "", 1024, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 61, 10, 143, 150 + CONTROL "", 1021, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 61, 27, 77, 150 + CONTROL "", 1022, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 143, 27, 61, 150 + CONTROL "Fenster", 1512, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 22, 50, 35, 8 + CONTROL "", 1187, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 61, 48, 35, 12 + CONTROL "", 1188, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 103, 48, 35, 12 + CONTROL "V-Sync", 1177, BUTTON, BS_AUTOCHECKBOX | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 145, 49, 41, 10 + CONTROL "Optionen", 1514, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 12, 77, 199, 73 + CONTROL "Vollbild", 1178, BUTTON, BS_AUTOCHECKBOX | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 22, 89, 44, 10 + CONTROL "Vollbild RTG", 1192, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 131, 89, 62, 10 + CONTROL "Korrektes Seitenverhältnis", 1170, BUTTON, BS_AUTOCHECKBOX | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 22, 106, 99, 10 + CONTROL "Lo-res", 1176, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 131, 106, 45, 10 + CONTROL "Aktualisierung:", 1515, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 18, 131, 49, 8 + CONTROL "Slider1", 1185, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 65, 124, 69, 20 + CONTROL "", 1186, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 137, 129, 68, 12 + CONTROL "Zentrierung", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 221, 0, 61, 67 + CONTROL "Horizontal", 1518, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 229, 16, 48, 10 + CONTROL "Vertikal", 1519, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 229, 32, 39, 10 + CONTROL "Linien-Modus", 1502, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 222, 77, 61, 74 + CONTROL "Normal", 1189, BUTTON, BS_AUTORADIOBUTTON | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 233, 89, 38, 10 + CONTROL "Doppelt", 1190, BUTTON, BS_AUTORADIOBUTTON | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 233, 105, 41, 10 + CONTROL "Scanline", 1191, BUTTON, BS_AUTORADIOBUTTON | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 233, 121, 44, 10 + CONTROL "", 1023, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VSCROLL | WS_TABSTOP, 35, 163, 58, 150 + CONTROL "", 1193, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_TABSTOP, 97, 161, 91, 20 + CONTROL "Pixel-Format erkennen", 1506, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 196, 163, 89, 14 +} + +109 DIALOGEX 0, 0, 300, 175 +STYLE DS_CONTROL | WS_CHILD +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Speicher-Einstellungen:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 14, 40, 274, 93 + CONTROL "Chip:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 24, 60, 20, 10 + CONTROL "Slider1", 1026, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 54, 55, 50, 20 + CONTROL "Fast:", 1043, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 24, 85, 20, 10 + CONTROL "Slider1", 1027, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 54, 80, 50, 20 + CONTROL "Slow:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 152, 60, 20, 10 + CONTROL "Slider1", 1030, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 179, 55, 50, 20 + CONTROL "Z3-Fast:", 1047, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 142, 85, 30, 10 + CONTROL "Slider1", 1049, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 179, 80, 60, 20 + CONTROL "RTG (Grafik-Karte):", 1191, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 96, 110, 76, 10 + CONTROL "Slider1", 1193, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 179, 105, 60, 20 + CONTROL "", 1045, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 105, 59, 30, 12 + CONTROL "", 1044, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 105, 86, 30, 12 + CONTROL "", 1046, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 243, 58, 30, 12 + CONTROL "", 1048, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 243, 85, 30, 12 + CONTROL "", 1192, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 243, 108, 30, 12 +} + +110 DIALOGEX 0, 0, 300, 230 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "DF0:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 7, 20, 10 + CONTROL "", 1270, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 2, 22, 296, 75 + CONTROL "", 1595, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 123, 6, 49, 50 + CONTROL "Schreibschutz", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 174, 8, 59, 10 + CONTROL "", 1519, BUTTON, BS_AUTOCHECKBOX | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 238, 4, 10, 15 + CONTROL "Auswurf", 1274, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 251, 4, 32, 15 + CONTROL "...", 1278, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 287, 4, 10, 15 + CONTROL "DF1:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 42, 20, 10 + CONTROL "", 1271, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 2, 58, 296, 75 + CONTROL "", 1596, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 123, 42, 49, 50 + CONTROL "Schreibschutz", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 174, 43, 59, 10 + CONTROL "", 1516, BUTTON, BS_AUTOCHECKBOX | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 238, 40, 10, 15 + CONTROL "Auswurf", 1275, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 251, 40, 32, 15 + CONTROL "...", 1279, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 287, 40, 10, 15 + CONTROL "DF2:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 77, 20, 10 + CONTROL "", 1272, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 2, 93, 296, 75 + CONTROL "", 1597, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 123, 77, 49, 50 + CONTROL "Schreibschutz", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 174, 77, 59, 10 + CONTROL "", 1517, BUTTON, BS_AUTOCHECKBOX | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 238, 75, 9, 15 + CONTROL "Auswurf", 1276, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 251, 75, 32, 15 + CONTROL "...", 1280, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 287, 75, 10, 15 + CONTROL "DF3:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 112, 20, 9 + CONTROL "", 1273, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 2, 128, 296, 75 + CONTROL "", 1598, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 123, 112, 49, 50 + CONTROL "Schreibschutz", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 174, 113, 59, 10 + CONTROL "", 1518, BUTTON, BS_AUTOCHECKBOX | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 238, 111, 9, 15 + CONTROL "Auswurf", 1277, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 251, 110, 32, 15 + CONTROL "...", 1281, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 287, 109, 10, 15 + CONTROL "Neues Disk-Image", 1514, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 147, 289, 35 + CONTROL "", 1594, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 16, 160, 51, 50 + CONTROL "Standard-\"Disk\" erstellen [] Erstellt ein Standard-ADF mit 880 KB.", 1282, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 76, 160, 97, 15 + CONTROL "Custom-\"Disk\" erstellen [] Erstellt ein ADF mit ca. 2 MB im MFM-Format. Nützlich für Programme, die kein Standard-Format verwenden. (zum Beispiel einige Save-Disks oder MS-DOS-formatierte Disketten)", 1283, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 183, 160, 101, 15 + CONTROL "Laufwerks-Geschwindigkeit", 1515, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 185, 289, 35 + CONTROL "", 1572, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 193, 116, 20 + CONTROL "", 1633, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 169, 196, 107, 12 + CONTROL "Saveimage löschen", 1285, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_TABSTOP, 43, 5, 70, 15 + CONTROL "Saveimage löschen", 1286, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_TABSTOP, 43, 40, 70, 15 + CONTROL "Saveimage löschen", 1287, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_TABSTOP, 43, 75, 70, 15 + CONTROL "Saveimage löschen", 1288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_TABSTOP, 43, 110, 70, 15 +} + +111 DIALOGEX 0, 0, 300, 177 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "CPU-Typ:", -1, BUTTON, BS_GROUPBOX | BS_LEFT | WS_CHILD | WS_VISIBLE, 5, 5, 81, 166 + CONTROL "68000", 1200, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 10, 18, 41, 10 + CONTROL "68010", 1201, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 33, 41, 10 + CONTROL "68EC020", 1202, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 48, 51, 10 + CONTROL "68EC020 + FPU", 1203, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 63, 68, 10 + CONTROL "68020", 1204, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 78, 41, 10 + CONTROL "68020 + FPU", 1205, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 93, 64, 10 + CONTROL "68040", 1206, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 108, 41, 10 + CONTROL "kompatibler [] Emuliert die Prefetch-Register des 680x0. Höhere Kompatibilität aber langsamer.", 1214, BUTTON, BS_AUTOCHECKBOX | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 10, 130, 57, 10 + CONTROL "JIT [] Aktiviert die Just-In-Time CPU-Emulation. Erhöht die Geschwindigkeit der CPU-Emulation um den Faktor 10 bis 100.", 1584, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 145, 33, 10 + CONTROL "Emulations-Geschwindigkeit:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 90, 5, 205, 86 + CONTROL "Schnellstmöglich, aber Chipsatz-Timing einhalten", 1209, BUTTON, BS_AUTORADIOBUTTON | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 95, 18, 173, 10 + CONTROL "A500-Geschwindigkeit", 1210, BUTTON, BS_AUTORADIOBUTTON | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 95, 32, 92, 10 + CONTROL "Justierbar zwischen CPU und Chipsatz", 1211, BUTTON, BS_AUTORADIOBUTTON | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 95, 47, 139, 10 + CONTROL "CPU", 1212, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 96, 71, 15, 10 + CONTROL "Slider1", 1207, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 114, 66, 67, 20 + CONTROL "Chipsatz", 1213, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 182, 71, 32, 10 + CONTROL "CPU-Leerlauf", 1219, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 231, 56, 44, 10 + CONTROL "", 1220, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 219, 66, 69, 20 + CONTROL "Erweiterte JIT-Optionen:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 90, 92, 205, 79 + CONTROL "Cache-Größe:", 1582, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 93, 109, 47, 10 + CONTROL "Slider1", 1218, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 140, 104, 115, 20 + CONTROL "", 1509, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 255, 109, 30, 12 + CONTROL "Hard Flush", 1578, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 100, 128, 60, 10 + CONTROL "Const Jump", 1579, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 100, 142, 60, 10 + CONTROL "FPU-Unterstützung", 1580, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 100, 155, 77, 10 + CONTROL "Erzwingen", 1583, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 165, 128, 53, 10 + CONTROL "Keine Flags", 1581, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 165, 142, 55, 10 + CONTROL "Direkt", 1215, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 225, 128, 34, 10 + CONTROL "Indirekt", 1216, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 225, 142, 45, 10 + CONTROL "Nach Picasso96", 1217, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 225, 155, 67, 10 +} + +112 DIALOGEX 0, 0, 300, 175 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "", 1091, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 45, 10, 210, 15 + CONTROL "", 1092, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 20, 30, 260, 13 + CONTROL "Mitwirkende", 1124, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 110, 55, 80, 15 + CONTROL "", 1075, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 20, 90, 80, 20 + CONTROL "", 1070, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 20, 120, 80, 15 + CONTROL "", 1071, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 200, 90, 80, 20 + CONTROL "", 1072, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 110, 90, 80, 15 + CONTROL "", 1073, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 200, 120, 80, 15 + CONTROL "", 1074, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 110, 120, 80, 15 + CONTROL "", 1076, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 20, 145, 80, 15 + CONTROL "", 1077, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 200, 145, 80, 15 + CONTROL "", 1078, "RICHEDIT", ES_CENTER | ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_DISABLED, 110, 145, 80, 15 +} + +113 DIALOGEX 0, 0, 300, 242 +STYLE DS_CONTROL | WS_CHILD +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "List1", 1336, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 5, 260, 185 + CONTROL "", 1337, BUTTON, BS_PUSHBUTTON | BS_ICON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 270, 52, 25, 15 + CONTROL "", 1338, BUTTON, BS_PUSHBUTTON | BS_ICON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 270, 132, 25, 15 + CONTROL "&Verzeichnis hinzufügen...", 1339, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 196, 87, 15 + CONTROL "&Hardfile hinzufügen...", 1340, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 95, 196, 79, 15 + CONTROL "&Festplatte hinzufügen...", 1341, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 177, 196, 83, 15 + CONTROL "Entfernen", 1335, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 146, 218, 49, 15 + CONTROL "Eigenschaften", 1334, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 200, 218, 60, 15 + CONTROL "PC-Laufwerke beim Start hinzufügen", 1507, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 216, 131, 10 + CONTROL "UAEFSDB-Unterstützung deaktivieren", 1608, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 229, 138, 10 +} + +122 DIALOGEX 0, 0, 300, 244 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Sound-Karte:", 1650, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 8, 9, 51, 13 + CONTROL "", 1651, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 64, 9, 229, 50 + CONTROL "Sound-Emulation", 1229, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 30, 120, 68 + CONTROL "Aus", 1238, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 13, 45, 43, 10 + CONTROL "Aus, aber emuliert", 1239, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 13, 57, 88, 10 + CONTROL "Aktiviert", 1240, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 13, 69, 42, 10 + CONTROL "Aktiviert, 100% genau", 1241, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 13, 81, 93, 10 + CONTROL "Lautstärke", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 131, 30, 164, 31 + CONTROL "", 1576, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 137, 38, 105, 20 + CONTROL "", 1580, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 247, 41, 40, 12 + CONTROL "Puffer-Größe", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 132, 67, 164, 31 + CONTROL "Slider1", 1574, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 138, 75, 106, 19 + CONTROL "", 1577, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 248, 78, 40, 12 + CONTROL "Optionen", 1252, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 6, 101, 290, 60 + CONTROL "Frequenz:", 1653, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 34, 110, 34, 8 + CONTROL "", 1652, COMBOBOX, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 36, 119, 67, 75 + CONTROL "Audio-Filter:", 1654, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 33, 135, 41, 8 + CONTROL "", 1640, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 36, 144, 67, 75 + CONTROL "Stereo-Modus:", 1657, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 113, 110, 49, 8 + CONTROL "", 1655, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 116, 119, 67, 75 + CONTROL "Interpolation:", 1658, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 115, 135, 43, 8 + CONTROL "", 1248, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 116, 144, 67, 75 + CONTROL "Stereo-Trennung:", 1659, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 196, 110, 57, 8 + CONTROL "", 1656, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 197, 119, 67, 75 + CONTROL "Misch-Verzögerung:", 1660, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 196, 135, 65, 8 + CONTROL "", 1661, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 197, 144, 67, 75 + CONTROL "Diskettenlaufwerks-Sound", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 6, 164, 290, 46 + CONTROL "", 1579, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 14, 172, 107, 19 + CONTROL "", 1581, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 124, 178, 40, 12 + CONTROL "", 1642, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 237, 174, 46, 75 + CONTROL "", 1647, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 18, 192, 265, 75 + CONTROL "Treiber-Verzögerungsausgleich", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 6, 211, 290, 31 + CONTROL "Slider1", 1575, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 14, 221, 107, 19 + CONTROL "", 1578, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 124, 224, 40, 12 + CONTROL "Kalibrieren", 1641, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 179, 222, 45, 14 +} + +135 DIALOGEX 0, 0, 302, 241 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "", 1648, "SysTreeView32", TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 6, 3, 289, 153 , 0x00000200 + CONTROL "Name:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 11, 161, 40, 15 + CONTROL "", 1405, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 53, 162, 142, 13 + CONTROL "Beschreibung:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 3, 183, 48, 15 + CONTROL "", 1406, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 53, 183, 142, 13 + CONTROL "Link:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 11, 204, 40, 15 + CONTROL "", 1694, COMBOBOX, CBS_DROPDOWN | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 53, 205, 92, 150 + CONTROL "Ignorieren", 1683, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 149, 207, 48, 10 + CONTROL "", 1410, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_BORDER | WS_TABSTOP, 199, 161, 49, 15 + CONTROL "Autoload", 1682, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 253, 164, 42, 10 + CONTROL "Zusätzliche Infos", -1, BUTTON, BS_GROUPBOX | BS_LEFT | WS_CHILD | WS_VISIBLE, 199, 179, 96, 38 + CONTROL "Zeigen", 1568, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 210, 195, 35, 15 + CONTROL "Setzen", 1569, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 250, 195, 35, 15 + CONTROL "Laden", 1409, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 225, 40, 15 + CONTROL "Speichern", 1408, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 50, 225, 44, 15 + CONTROL "Laden von...", 1401, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 117, 225, 53, 15 + CONTROL "Speichern unter...", 1400, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 175, 225, 66, 15 + CONTROL "Löschen", 1403, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 255, 225, 40, 15 +} + +138 DIALOGEX 0, 0, 300, 194 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Seriell und Parallel", 1315, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 4, 2, 291, 46 + CONTROL "Seriell:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 20, 15, 25, 15 + CONTROL "", 1022, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 50, 15, 95, 65 + CONTROL "Gemeinsam", 1553, BUTTON, BS_AUTOCHECKBOX | BS_VCENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 19, 32, 52, 12 + CONTROL "RTS/CTS", 1554, BUTTON, BS_AUTOCHECKBOX | BS_VCENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 76, 32, 45, 12 + CONTROL "Direkt", 1555, BUTTON, BS_AUTOCHECKBOX | BS_VCENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 128, 32, 40, 12 + CONTROL "Drucker:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 149, 15, 31, 15 + CONTROL "", 1025, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 185, 15, 95, 134 + CONTROL "Druckaufträge löschen", 1510, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 192, 31, 81, 12 + CONTROL "MIDI", 1314, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 4, 50, 292, 36 + CONTROL "Ausgabe:", 1529, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 64, 34, 15 + CONTROL "", 1023, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 50, 64, 95, 130 + CONTROL "Eingang:", 1530, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 148, 64, 31, 15 + CONTROL "", 1024, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 185, 64, 95, 134 + CONTROL "Amiga Maus/Joystick Port 0", 1312, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 4, 92, 141, 78 + CONTROL "", 1302, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 10, 107, 9, 11 + CONTROL "Tastaturbelegung \"A\" [] Nummernblock, 0 und 5 = Feuer", 1303, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 127, 90, 10 + CONTROL "Tastaturbelegung \"B\" [] Cursor-Tasten, rechte Strg- oder ALT-Taste = Feuer", 1304, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 142, 90, 10 + CONTROL "Tastaturbelegung \"C\" [] T = hoch, B = runter, F = links, H = rechts, linke ALT-Taste = Feuer", 1305, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10, 156, 90, 10 + CONTROL "", 1026, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 23, 106, 117, 130 + CONTROL "Amiga Maus/Joystick Port 1", 1313, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 150, 92, 146, 78 + CONTROL "", 1308, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 155, 107, 9, 11 + CONTROL "Tastaturbelegung \"A\" [] Nummernblock, 0 und 5 = Feuer", 1309, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 155, 127, 90, 10 + CONTROL "Tastaturbelegung \"B\" [] Cursor-Tasten, rechte Strg- oder ALT-Taste = Feuer", 1310, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 155, 142, 90, 10 + CONTROL "Tastaturbelegung \"C\" [] T = hoch, B = runter, F = links, H = rechts, linke ALT-Taste = Feuer", 1311, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 155, 156, 90, 10 + CONTROL "", 1027, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 168, 106, 123, 130 + CONTROL "Ports tauschen", 1509, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 176, 61, 14 +} + +140 DIALOGEX 0, 0, 411, 242 +STYLE DS_MODALFRAME | DS_SETFOREGROUND | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "Autoren und Mitwirkende..." +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "OK", 1375, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 177, 219, 53, 14 + CONTROL "", 1124, "RICHEDIT", ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | ES_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 4, 5, 404, 206 +} + +141 DIALOGEX 0, 0, 300, 223 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Erweitert:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 8, 4, 285, 90 + CONTROL "Mittlere Maus-Taste --> ALT-TAB", 1040, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 29, 21, 120, 10 + CONTROL "GUI beim Start anzeigen", 1024, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 29, 36, 99, 10 + CONTROL "On-Screen LEDs anzeigen", 1027, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 29, 51, 105, 10 + CONTROL "UAEscsi.device emulieren", 1606, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 29, 66, 103, 10 + CONTROL "Aus Taskleiste ausblenden", 1608, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 29, 80, 107, 10 + CONTROL "BSDsocket.library emulieren", 1503, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 159, 21, 109, 10 + CONTROL "STRG-F11 zum Beenden", 1586, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 159, 36, 98, 10 + CONTROL "Keine RGB-Overlays verwenden", 1601, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 159, 51, 120, 10 + CONTROL "ASPI SCSI-Layer benutzen", 1607, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 159, 66, 106, 10 + CONTROL "Uhr synchronisieren", 1609, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 159, 80, 83, 10 + CONTROL "Tastatur-LEDs:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 7, 99, 85, 73 + CONTROL "", 1639, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 22, 112, 56, 65 + CONTROL "", 1640, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 22, 131, 56, 65 + CONTROL "", 1641, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 22, 151, 56, 65 + CONTROL "Protokollierung:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 97, 99, 195, 25 + CONTROL "Protokoll anlegen", 1026, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 107, 109, 72, 10 + CONTROL "Illegale Speicherzugriffe", 1023, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 187, 109, 93, 10 + CONTROL "Spielstände:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 98, 126, 195, 83 + CONTROL "Spielstand laden...", 1287, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 104, 137, 90, 14 + CONTROL "Spielstand speichern...", 1286, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 199, 137, 87, 14 + CONTROL "Spielstand-Aufnahme aktivieren", 1532, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 172, 159, 115, 10 + CONTROL "Aufnahme-Rate (Sekunden)", 1649, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 151, 174, 93, 10 + CONTROL "", 1646, COMBOBOX, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 248, 172, 38, 65 + CONTROL "Aufnahme-Puffer (MB)", 1648, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 169, 192, 75, 10 + CONTROL "", 1647, COMBOBOX, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 248, 190, 38, 65 +} + +142 DIALOGEX 0, 0, 299, 180 +STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Hardfile-Einstellungen" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Optionen", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 10, 5, 280, 113 + CONTROL "Pfad:", 1377, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 19, 19, 22, 10 + CONTROL "", 1362, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 44, 15, 222, 15 + CONTROL "...", 1363, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 271, 15, 11, 15 + CONTROL "FileSys:", 1380, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 16, 38, 26, 10 + CONTROL "", 1376, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 44, 34, 221, 15 + CONTROL "...", 1381, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 271, 34, 11, 15 + CONTROL "Gerät:", 1378, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 16, 58, 25, 10 + CONTROL "", 1364, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 44, 54, 40, 15 + CONTROL "Priorität:", 1375, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 11, 80, 30, 8 + CONTROL "", 1369, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 44, 75, 40, 15 + CONTROL "Schreibzugriff", 1379, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 110, 57, 61, 10 + CONTROL "RDB-Modus aktivieren", 1500, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 192, 55, 92, 14 + CONTROL "Oberflächen:", 1371, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 98, 79, 44, 10 + CONTROL "", 1366, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 147, 75, 35, 15 + CONTROL "Reserviert:", 1372, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 195, 79, 37, 10 + CONTROL "", 1367, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 237, 75, 35, 15 + CONTROL "Sektoren:", 1370, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 109, 101, 33, 10 + CONTROL "", 1365, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 147, 96, 35, 15 + CONTROL "Block-Größe:", 1374, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 188, 101, 45, 10 + CONTROL "", 1368, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 237, 96, 35, 15 + CONTROL "Neues Hardfile", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 10, 120, 280, 35 + CONTROL "Erstellen", 1502, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 40, 135, 85, 14 + CONTROL "", 1501, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 141, 135, 61, 15 + CONTROL "MB", 1373, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE, 214, 138, 18, 9 + CONTROL "OK", 1, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 102, 161, 50, 14 + CONTROL "Abbrechen", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 158, 161, 50, 14 +} + +143 DIALOGEX 15, 25, 299, 111 +STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Datenträger-Einstellungen" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Geräte-Name:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 9, 54, 10 + CONTROL "", 1365, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 65, 5, 86, 15 + CONTROL "Bezeichnung:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 31, 54, 10 + CONTROL "", 1364, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 65, 25, 85, 15 + CONTROL "Pfad:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 51, 44, 10 + CONTROL "", 1362, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 65, 46, 213, 15 + CONTROL "...", 1363, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 283, 46, 10, 15 + CONTROL "Schreibzugriff", 1379, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 70, 60, 10 + CONTROL "Priorität:", 1637, STATIC, SS_RIGHT | WS_CHILD | WS_VISIBLE | WS_GROUP, 70, 71, 30, 10 + CONTROL "", 1638, EDIT, ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 106, 67, 27, 15 + CONTROL "OK", 1, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 120, 91, 48, 15 + CONTROL "Abbrechen", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 175, 91, 48, 15 +} + +144 DIALOGEX 0, 0, 300, 92 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Wenn aktiv:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 8, 7, 88, 73 + CONTROL "Priorität:", 1644, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 14, 17, 33, 10 + CONTROL "", 1642, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 14, 29, 76, 65 + CONTROL "Wenn inaktiv:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 102, 7, 92, 73 + CONTROL "Priorität:", 1635, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 109, 17, 33, 10 + CONTROL "", 1643, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 109, 29, 76, 65 + CONTROL "Emulation pausieren", 1529, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 109, 50, 80, 10 + CONTROL "Sound abschalten", 1528, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 109, 63, 77, 10 + CONTROL "Wenn minimiert:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 199, 7, 92, 73 + CONTROL "Priorität:", 1636, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 207, 18, 33, 10 + CONTROL "", 1645, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 207, 30, 76, 65 + CONTROL "Emulation pausieren", 1531, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 207, 50, 79, 10 + CONTROL "Sound abschalten", 1530, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 207, 63, 77, 10 +} + +153 DIALOGEX 0, 0, 229, 85 +STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Info-Optionen" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Pfad:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 20, 24, 15 + CONTROL "", 1362, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 35, 20, 169, 15 + CONTROL "...", 1363, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 210, 20, 10, 15 + CONTROL "OK", 1, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 120, 65, 48, 15 + CONTROL "Abbrechen", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 175, 65, 48, 15 +} + +154 DIALOGEX 0, 65490, 300, 229 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Chipsatz", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 14, 11, 145, 82 + CONTROL "OCS [] Der älteste Chipsatz (A1000, die meisten A500er)", 1520, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 32, 31, 35, 10 + CONTROL "ECS Agnus [] Teilweise erweiterter Chipsatz (neuere A500- und A2000-Modelle)", 1521, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 47, 56, 10 + CONTROL "ECS, komplett [] Vollständiger ECS-Chipsatz, ECS Agnus und ECS Denise (A500+, A600, A3000)", 1523, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 63, 64, 10 + CONTROL "AGA [] Die nächste Generation des Amiga-Chipsatzes (A1200, A4000 und CD32)", 1524, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 101, 31, 35, 10 + CONTROL "NTSC [] Standard in Nord-Amerika und Japan, 60 Hz Wiederholrate. Andere Länder benutzen PAL (50 Hz Wiederholrate).", 1525, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 102, 63, 39, 10 + CONTROL "Sonstige Chipsatz-Optionen", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 168, 11, 114, 82 + CONTROL "Fast Copper [] Schnellere aber weniger kompatible Copper-Emulation.", 1588, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 174, 31, 58, 10 + CONTROL "Immediate Blitter [] Schnellere aber weniger kompatible Blitter-Emulation.", 1174, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 174, 47, 71, 10 + CONTROL "Zyklus-exakte Emulation [] Der kompatibelste Emulations-Modus, sehr schnelle CPU nötig.", 1219, BUTTON, BS_AUTOCHECKBOX | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 174, 64, 97, 10 + CONTROL "Kollisions-Level", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 14, 97, 267, 48 + CONTROL "Keines [] Kollisions-Hardware wird nicht emuliert.", 1589, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 40, 113, 41, 10 + CONTROL "Nur Sprites [] Emuliert nur Sprite-gegen-Sprite Kollisionen.", 1590, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 39, 129, 55, 10 + CONTROL "Sprites und Sprites gegen Spielfeld [] Empfohlene Einstellung", 1591, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 104, 113, 129, 10 + CONTROL "Voll [] Kollisions-Hardware wird vollständig emuliert. Nur wenige Spiele benötigen diese (langsamste) Option.", 1592, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 104, 129, 31, 10 + CONTROL "Sound-Emulation", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 13, 151, 268, 65 + CONTROL "Aus", 1650, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 39, 167, 33, 10 + CONTROL "Aktiviert", 1651, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 39, 182, 49, 10 + CONTROL "Aktiviert, 100% genau", 1652, BUTTON, BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 39, 197, 89, 10 +} + +157 DIALOGEX 0, 0, 197, 210 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Ausgabe-Eigenschaften:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 8, 184, 96 + CONTROL "", 1610, EDIT, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 26, 21, 120, 12 , 0x00000200 + CONTROL "...", 1611, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 148, 21, 19, 12 + CONTROL "Audio", 1614, BUTTON, BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 26, 36, 32, 11 + CONTROL "", 1618, STATIC, SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_CHILD | WS_VISIBLE | WS_GROUP, 60, 36, 107, 11 + CONTROL "Video", 1613, BUTTON, BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 26, 50, 32, 11 + CONTROL "", 1619, STATIC, SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_CHILD | WS_VISIBLE | WS_GROUP, 60, 50, 107, 11 + CONTROL "Kein Bildwiederholfrequenz-Limit", 1645, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 28, 68, 120, 10 + CONTROL "Ausgabe eingeschaltet", 1615, BUTTON, BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT | WS_CHILD | WS_VISIBLE, 26, 83, 142, 14 + CONTROL "Bildwiederholfrequenz:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 107, 184, 50 + CONTROL "PAL", 1607, BUTTON, BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT | WS_CHILD | WS_VISIBLE, 24, 121, 66, 12 + CONTROL "NTSC", 1608, BUTTON, BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT | WS_CHILD | WS_VISIBLE, 102, 121, 66, 12 + CONTROL "Slider1", 1609, "msctls_trackbar32", TBS_HORZ | TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 21, 137, 120, 11 + CONTROL "fps", 1612, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 148, 138, 23, 8 + CONTROL "Screenshot speichern", 1632, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 176, 95, 14 + CONTROL "Ripper", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 5, 160, 184, 41 + CONTROL "Pro Wizard", 1288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 127, 176, 49, 14 +} + +160 DIALOGEX 0, 0, 296, 216 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Filter-Einstellungen:", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 0, 0, 294, 174 + CONTROL "Aktiv", 1615, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 31, 17, 33, 10 + CONTROL "", 1627, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 67, 15, 56, 150 + CONTROL "", 1628, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 128, 15, 65, 150 + CONTROL "Zurücksetzen", 1629, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 197, 15, 73, 13 + CONTROL "Horizontale Größe", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 22, 44, 61, 10 + CONTROL "Slider1", 1616, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 89, 37, 158, 19 + CONTROL "", 1696, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 248, 40, 34, 12 + CONTROL "Vertikale Größe", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 26, 64, 57, 10 + CONTROL "Slider1", 1617, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 89, 57, 157, 19 + CONTROL "", 1695, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 248, 59, 34, 12 + CONTROL "Horizontale Position", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 19, 84, 65, 10 + CONTROL "Slider1", 1618, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 89, 77, 157, 19 + CONTROL "", 1694, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 248, 79, 34, 12 + CONTROL "Vertikale Position", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 25, 103, 59, 10 + CONTROL "Slider1", 1619, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 89, 97, 157, 19 + CONTROL "", 1693, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 248, 101, 34, 12 + CONTROL "Scanlines", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 46, 133, 39, 10 + CONTROL "Slider1", 1624, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 89, 126, 157, 19 + CONTROL "", 1692, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 248, 128, 34, 12 + CONTROL "", 1625, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 56, 145, 27, 156 + CONTROL "Slider1", 1630, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 89, 146, 157, 19 + CONTROL "", 1691, EDIT, ES_CENTER | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 248, 151, 34, 12 + CONTROL "Voreinstellungen", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 0, 176, 296, 36 + CONTROL "", 1631, COMBOBOX, CBS_DROPDOWN | CBS_SORT | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 8, 190, 119, 150 + CONTROL "Laden", 1632, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 132, 189, 47, 14 + CONTROL "Speichern", 1633, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 184, 189, 47, 14 + CONTROL "Löschen", 1634, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 236, 189, 47, 14 +} + +163 DIALOGEX 0, 0, 300, 66 +STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Festplatten-Einstellungen" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Festplatte:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 11, 35, 10 + CONTROL "", 1635, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 49, 9, 246, 150 + CONTROL "Schreibzugriff", 1379, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 32, 62, 10 + CONTROL "OK", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 115, 30, 50, 14 + CONTROL "Abbrechen", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 189, 30, 50, 14 +} + +171 DIALOGEX 0, 0, 300, 242 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "", 1607, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 5, 5, 98, 150 + CONTROL "", 1609, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 109, 4, 167, 150 + CONTROL "", 1615, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 282, 7, 9, 8 + CONTROL "List1", 1611, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 22, 290, 146 + CONTROL "", 1616, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 5, 174, 24, 150 + CONTROL "", 1612, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 33, 174, 262, 150 + CONTROL "Joystick \"tote Zone\" (%):", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 3, 196, 81, 10 + CONTROL "", 1630, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 87, 195, 25, 12 + CONTROL "Autofeuer-Rate (Bilder):", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 212, 77, 10 + CONTROL "", 1188, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 87, 210, 25, 12 + CONTROL "Geschw. digitale Joy-Maus:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 115, 196, 89, 10 + CONTROL "", 1189, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 207, 195, 25, 12 + CONTROL "Geschw. analoge Joy-Maus:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 114, 212, 91, 10 + CONTROL "", 1190, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 207, 211, 25, 12 + CONTROL "Maus-Geschwindigkeit:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 129, 228, 75, 10 + CONTROL "", 1191, EDIT, ES_LEFT | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 207, 227, 25, 12 + CONTROL "Kopieren von:", 1631, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 240, 195, 55, 14 + CONTROL "", 1614, COMBOBOX, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 240, 211, 55, 150 + CONTROL "Wechsel 1<>2", 1632, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 240, 226, 55, 14 +} + +172 DIALOGEX 0, 0, 300, 242 +STYLE DS_SETFOREGROUND | DS_CONTROL | DS_CENTER | DS_CENTERMOUSE | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "", 1659, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 4, 6, 262, 211 + CONTROL "", 1337, BUTTON, BS_PUSHBUTTON | BS_ICON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 270, 66, 25, 15 + CONTROL "", 1338, BUTTON, BS_PUSHBUTTON | BS_ICON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 270, 146, 25, 15 + CONTROL "Disk-Image entfernen", 1649, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 94, 223, 93, 15 +} + +183 DIALOGEX 0, 0, 420, 278 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_ACCEPTFILES | WS_EX_CONTROLPARENT +CAPTION "WinUAE Eigenschaften" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "", 1653, BUTTON, BS_GROUPBOX | WS_CHILD, 112, 4, 303, 247 + CONTROL "", 1647, "SysTreeView32", TVS_HASLINES | TVS_SHOWSELALWAYS | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 5, 5, 101, 248 , 0x00000200 + CONTROL "", 1654, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 110, 2, 307, 251 + CONTROL "Neustart", 1504, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 6, 259, 47, 14 + CONTROL "Ende", 1505, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 57, 259, 47, 14 + CONTROL "OK", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 260, 259, 50, 14 + CONTROL "Abbruch", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 313, 259, 50, 14 + CONTROL "Hilfe", 9, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 366, 259, 50, 14 +} + +184 DIALOGEX 0, 0, 300, 221 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "ROMs:", 1666, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 9, 260, 8 + CONTROL "", 1656, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 14, 22, 261, 15 + CONTROL "...", 1661, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 281, 22, 11, 15 + CONTROL "Konfigurationen:", 1667, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 40, 260, 8 + CONTROL "", 1657, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 14, 52, 261, 15 + CONTROL "...", 1662, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 281, 52, 11, 15 + CONTROL "Screenshots:", 1668, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 71, 260, 8 + CONTROL "", 1658, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 14, 83, 261, 15 + CONTROL "...", 1663, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 281, 83, 11, 15 + CONTROL "Spielstände:", 1669, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 102, 260, 8 + CONTROL "", 1660, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 14, 114, 261, 15 + CONTROL "...", 1664, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 281, 114, 11, 15 + CONTROL "Videos:", 1674, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 132, 260, 8 + CONTROL "", 1675, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 14, 144, 261, 15 + CONTROL "...", 1676, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 282, 144, 11, 15 + CONTROL "Saveimages:", 1670, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 163, 260, 8 + CONTROL "", 1659, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 14, 175, 261, 15 + CONTROL "...", 1665, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 281, 175, 11, 15 + CONTROL "Zurücksetzen", 1671, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 13, 199, 60, 14 + CONTROL "ROMs erneut scannen", 1672, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 82, 199, 89, 14 + CONTROL "Registrierungs-Einträge löschen", 1673, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 180, 199, 113, 14 +} + +185 DIALOGEX 0, 0, 300, 242 +STYLE DS_CONTROL | WS_CHILD +CAPTION "" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Sans Serif" +{ + CONTROL "Hardware-Konfiguration", 1677, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 0, 294, 54 + CONTROL "Modell:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 14, 56, 10 + CONTROL "", 1674, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 65, 12, 225, 50 + CONTROL "Ausstattung:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 33, 56, 10 + CONTROL "", 1675, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 65, 31, 225, 50 + CONTROL "Kompatibilität vs. benötigte CPU-Leistung", 1516, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 56, 294, 33 + CONTROL "Höchste Kompatibilität", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 11, 70, 74, 10 + CONTROL "", 1676, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 88, 65, 115, 21 + CONTROL "Höchste Geschwindigkeit", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 203, 70, 84, 10 + CONTROL "Host-Konfiguration", 1518, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 91, 294, 33 + CONTROL "Konfiguration:", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 105, 55, 10 + CONTROL "", 1679, COMBOBOX, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 65, 103, 225, 50 + CONTROL "Disketten-Laufwerke", 1517, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 126, 294, 84 + CONTROL "Laufwerk DF0:", -1, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 138, 56, 10 + CONTROL "Disk-Image auswählen", 1678, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 77, 135, 98, 15 + CONTROL "Schreibschutz", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 180, 139, 58, 10 + CONTROL "", 1684, BUTTON, BS_AUTOCHECKBOX | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 243, 137, 10, 15 + CONTROL "Auswurf", 1685, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 257, 136, 33, 15 + CONTROL "", 1683, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 9, 154, 282, 75 + CONTROL "Laufwerk DF1:", -1, STATIC, SS_LEFT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 176, 56, 10 + CONTROL "Disk-Image auswählen", 1680, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 77, 172, 98, 15 + CONTROL "Schreibschutz", -1, STATIC, SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 180, 175, 58, 10 + CONTROL "", 1686, BUTTON, BS_AUTOCHECKBOX | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 243, 173, 10, 15 + CONTROL "Auswurf", 1687, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 257, 172, 33, 15 + CONTROL "", 1688, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 9, 190, 282, 75 + CONTROL "Konfiguration übernehmen", 1681, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_TABSTOP, 9, 219, 99, 15 + CONTROL "Modus", -1, BUTTON, BS_GROUPBOX | BS_LEFT | WS_CHILD | WS_VISIBLE, 178, 211, 119, 27 + CONTROL "Schnellstart-Modus aktivieren", 1673, BUTTON, BS_AUTOCHECKBOX | BS_LEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 186, 222, 109, 10 +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +1, "ROM" +2, "Disk-Wechsler" +3, "Anzeige" +4, "Festplatten" +5, "Disk-Laufwerke" +6, "Über" +7, "Konfigurationen" +8, "Ausgabe" +9, "Schnittstellen" +10, "Sonstiges" +11, "RAM" +12, "CPU" +13, "Chipsatz" +14, "Eingabe" +15, "Filter" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +16, "Priorität" +17, "Verzeichnisse" +18, "Schnellstart" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +100, "Amiga Disk Files" +101, "ADF" +102, "Sound" +103, "CD-ROM" +104, "Jedes %1Bild" +105, "zweite " +106, "dritte " +107, "vierte " +108, "fünfte " +109, "sechste " +110, "siebte " +111, "achte " +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +112, "neunte " +113, "zehnte " +114, "Wähle ein Disk-Image..." +115, "Amiga Disk Files" +116, "Leeres Disk-Image auswählen..." +117, "Wähle ein Festplatten-Image..." +118, "Hard Disk Files" +119, "Wähle eine Konfiguration..." +120, "UAE-Konfigurationen" +121, "Wähle eine ROM-Datei..." +122, "ROM-Dateien" +123, "Wähle eine Key-Datei..." +124, "Key-Dateien" +125, "Informationen auswählen..." +126, "kein" +127, "Bezeichnung" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +128, "Pfad" +129, "Schreibzugriff" +130, "Sektoren" +131, "Oberflächen" +132, "Reserviert" +133, "Block-Größe" +134, "Name" +135, "Beschreibung" +137, "Du musst DirectX installieren, um WinUAE nutzen zu können.\n" +138, "WinUAE konnte keine Registrierungs-Einträge anlegen! Du benötigst Administrator-Rechte.\n" +139, "Konfiguration konnte nicht geladen werden!\n" +140, "Die Online-Hilfe ist abgeschaltet, da das HtmlHelp-System nicht installiert ist.\n" +141, "Du musst zuerst eine Konfiguration auswählen oder einen Namen eingeben...\n" +143, "Der COM-Port in dieser Konfiguration ist ungültig für dieses System.\n" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +144, "Bitte Winsock2 installieren.\n" +145, "Fehler: Pixel-Format wird nicht unterstützt - Wähle eine andere Auflösung.\n" +147, "Du musst zuerst eine Konfiguration auswählen oder einen Namen eingeben...\n" +148, "Du musst zuerst eine Konfiguration auswählen oder einen Namen eingeben...\n" +149, "Soll diese Konfiguration wirklich gelöscht werden?\n" +150, "Löschung bestätigen" +151, "WinUAE versucht nun, das 16-Bit Pixel-Format zu erkennen.\nDer Bildschirm wird für einige Sekunden schwarz sein, bei einer Auflösung von 640x480 mit 60 Hz.\nDies ist nötig, um Amiga-Auflösungen mit 16-Bit Farbtiefe korrekt darzustellen. Erkennung starten?\n" +152, "Pixel-Format-Erkennung" +153, "Du musst einen Pfad auswählen!" +154, "Einstellungs-Fehler" +155, "Du musst einen Namen für den Datenträger eingeben!" +156, "Du musst eine Datei auswählen!" +157, "Hardfile konnte nicht erstellt werden..." +158, "Fehler beim Erstellen" +159, "WinUAE Meldung" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +160, "Bitte wähle das Dateisystem-Wurzelverzeichnis..." +161, "Standard MIDI-Ausgabe" +163, "Bernd Schmidt - The Grand-Master\nSam Jordan - Custom-chip, floppy-DMA, etc.\nMathias Ortmann - Original WinUAE Main Guy, BSD Socket support\nBrian King - Picasso96 Support, Integrated GUI for WinUAE, previous WinUAE Main Guy\nToni Wilen - Core updates, WinUAE Main Guy\nGustavo Goedert/Peter Remmers/Michael Sontheimer/Tomi Hakala/Tim Gunn/Nemo Pohle - DOS Port Stuff\nSamuel Devulder/Olaf Barthel/Sam Jordan - Amiga Ports\nKrister Bergman - XFree86 and OS/2 Port\nA. Blanchard/Ernesto Corvi - MacOS Port\nChristian Bauer - BeOS Port\nIan Stephenson - NextStep Port\nPeter Teichmann - Acorn/RiscOS Port\nStefan Reinauer - ZorroII/III AutoConfig, Serial Support\nChristian Schmitt/Chris Hames - Serial Support\nHerman ten Brugge - 68020/68881 Emulation Code\nTauno Taipaleenmaki - Various UAE-Control/UAE-Library Support\nBrett Eden/Tim Gunn/Paolo Besser/Nemo Pohle - Various Docs and Web-Sites\nGeorg Veichtlbauer - Help File coordinator, German GUI\nFulvio Leonardi - Italian translator for WinUAE\n" +164, "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\n" +165, "Der Drucker in dieser Konfiguration ist ungültig für dieses System.\n" +166, "Spielstand laden" +167, "UAE-Spielstände" +168, "WinUAE unterstützt Windows NT nicht länger. Bitte auf Windows 2000 oder Windows XP umsteigen." +169, "Flash/Batterie-gestützte RAM-Datei auswählen..." +170, "Flash/Batterie-gestützte RAM-Dateien" +171, "Eingabe-Quelle" +172, "Eingabe-Ziel" +173, "Autofeuer" +174, "Spielstand speichern" +175, "Sysex-Puffer übergelaufen, das sollte nicht passieren. Bitte melden bei: berndroesch1@compuserve.de" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +176, "Größe" +177, "Gerät" +178, "Priorität" +179, "WinUAE benötigt DirectX 8 oder höher." +180, " (kompatibel)" +181, "Turbo" +182, "ja" +183, "nein" +184, "Hoch" +185, "Normal" +186, "Niedrig" +187, "Sehr niedrig" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +200, "Mono" +201, "Gemischt" +202, "Stereo" +203, "Keine" +204, "RH" +205, "Crux" +206, "Immer aus" +207, "Emuliert" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +208, "Immer an" +209, "Kompatibilitäts-Modus" +210, "Konfiguration #%d" +211, "Standard" +212, "Konfig #%d" +213, "Punkt (%d-bit)" +214, "Bilinear (%d-bit)" +215, "Voreinstellung" +216, "Kein Sound" +217, "A500 (eingebaut)" +218, "kein Codec ausgewählt" +219, "Disk-Image" +220, "Laufwerk" +221, "AGA-Emulation benötigt 16 Bit oder höhere Farbtiefe.\nSchalte um von 8 Bit auf 16 Bit." +222, "Der ausgewählte Bildschirm-Modus kann nicht in einem Fenster angezeigt werden, Grund: %s\nSchalte um auf Vollbild." +223, "Der Desktop läuft mit einer unbekannten Farbtiefe." +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +224, "Der Desktop läuft mit 8 Bit Farbtiefe, womit WinUAE nicht in einem Fenster angezeigt werden kann." +225, "Der Desktop ist zu klein für die angegebene Fenstergröße." +226, "Du hast einen Picasso96-Modus ausgewählt, dessen Farbtiefe von der des Desktops abweicht und ein Overlay ist nicht verfügbar." +227, "3.5\" DD" +228, "3.5\" HD" +229, "5.25\" SD" +230, "Aus" +231, "Keine Disk eingelegt" +232, "Hardware" +233, "Host" +234, "Sonstiges" +235, "Einstellungen" +236, "[Maus aktiv - drücke Alt-Tab oder mittlere Maustaste zum Abbrechen]" +237, "[Maus aktiv - drücke Alt-Tab zum Abbrechen]" +238, "Start" +239, "Über" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +240, "Keine Amiga-formatierte oder komplett leere Festplatte gefunden." +241, "Standard-Konfiguration" +242, "4 Kanäle" +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +300, "Das Programm benutzt kein gewöhnliches Disk-Format, du solltest eine \"Custom\"-Disk verwenden. Diese Meldung erscheint nur einmal." +301, "Key-Datei konnte nicht gefunden werden." +302, "Prüfsumme des Kickstarts fehlerhaft, das Kickstart ist möglicherweise beschädigt." +303, "Fehler beim Laden des Kickstarts." +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +304, "Erweitertes Kickstart-ROM nicht gefunden." +305, "Keine Module oder komprimierte Daten gefunden." +306, "Scan beendet." +307, "Modul(e)/komprimierte Daten gefunden.\n%s\nSpeichern?" +308, "Das Kickstart benötigt einen 68020 oder höher." +309, "Du benötigst folgende ROMs:\n\n%s" +310, "zlib1.dll nicht gefunden, Zip- und gzip-Unterstützung deaktiviert." +311, "Warnung: Spielstände unterstützen keine emulierten Festplatten. Diese Meldung erscheint nur einmal." +312, "Dieses Disk-Image benötigt das C.A.P.S. Plugin.\n\nDownload:\nhttp//www.caps-project.org/download.shtml" +313, "Du benötigst ein neueres C.A.P.S. Plugin.\n\nDownload:\nhttp//www.caps-project.org/download.shtml" +314, "Das ausgewählte Disk-Image ist nicht bootfähig (Bootblock beschädigt)" +315, "Das ausgewählte Disk-Image ist nicht bootfähig (kein Bootblock)" +316, "Das ausgewählte Disk-Image ist beschädigt oder unformatiert" +317, "Das ausgewählte Disk-Image benötigt Kickstart 2.x\nKonfiguration angepasst." +318, "Das ausgewählte Disk-Image benötigt Kickstart 3.x\nKonfiguration angepasst." +319, "ROM-Erkennung beendet." +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +320, "verfügbar" +321, "nicht verfügbar" +322, "Warnung: Es wurden Festplatten gefunden, die nicht leer oder Amiga-formatiert sind\nund der Sicherheits-Test wurde deaktiviert.\n\nFestplatten markiert mit 'HD_*_' sind nicht leer!" +323, "Das Kickstart benötigt einen 68EC020 oder höher." +324, "Keine unterstützten Kickstart-ROMs gefunden." +325, "Es muss eine Disk in DF0: eingelegt sein, um den Kickstart-Ersatz nutzen zu können." +326, "Die Disk in DF0: ist mit dem Kickstart-Ersatz nicht kompatibel." +327, "Fehler beim Laden des Kickstarts, Kickstart-Ersatz wird aktiviert." +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +1000, "Amiga 500 / Amiga 2000\nAmiga 500+\nAmiga 600\nAmiga 1000\nAmiga 1200\nCD32\nCDTV (keine CD-ROM-Emulation)\nErweiterte Beispiel-Konfiguration" +1001, "KS 1.3, OCS Agnus, 0.5M Chip + 0.5M Slow (am verbreitetsten)\nDiese Konfiguration erlaubt es, fast alle Spiele und Demos laufen zu lassen, die für die erste Amiga-Serie geschrieben wurden. Nur wenige Ausnahmen benötigen eine andere Konfiguration.\nKS 1.3, ECS Agnus, 0.5M Chip + 0.5M Slow\nDies ist die Ausstattung späterer Modelle. Nahezu 100% kompatibel mit der vorherigen Konfiguration.\nKS 1.3, ECS Agnus, 1.0M Chip\nEinige neuere Spiele und Demos benötigen diese Konfiguration.\nKS 1.3, OCS Agnus, 0.5M Chip\nSehr alte (~1987 und älter) Spiele und Demos könnten diese Konfiguration benötigen.\nKS 1.2, OCS Agnus, 0.5M Chip\nDie ersten Amiga 500er hatten diese Ausstattung. Einige sehr alte Programme laufen nur mit dieser Konfiguration korrekt. Hinweis: Diese Konfiguration kann nicht von einer emulierten Festplatte starten.\nKS 1.2, OCS Agnus, 0.5M Chip + 0.5M Slow\nDiese Konfiguration entspricht einem der ersten Amiga 500er mit zusätzlicher Speicher-Erweiterung. Verwende sie, wenn ein Spiel mit neueren Konfigurationen nicht läuft, jedoch mit der vorherigen. Eventuell werden zusätzliche Features aktiviert oder das Spiel lädt schneller. Hinweis: Diese Konfiguration kann nicht von einer emulierten Festplatte starten." +1002, "Standard-Konfiguration, nicht erweitert\nDer A500+ ist ein Amiga 500 mit ECS Agnus, 1 MB Chip-RAM und Kickstart 2.04. Viele Spiele und Demos für den Amiga 500 laufen nicht auf einem Amiga 500+.\n2M Chip RAM erweiterte Konfiguration\n\n4M Fast RAM erweiterte Konfiguration\n" +1003, "Standard-Konfiguration, nicht erweitert\nDer A600 ist ein kleiner Amiga 500+ mit einem neueren Kickstart (2.05) sowie einem IDE- und PCMCIA-Port.\n2M Chip RAM erweiterte Konfiguration\n\n4M Fast RAM erweiterte Konfiguration\n" +1004, "0.5M Chip\nDer Amiga 1000 war der erste Amiga überhaupt, die Ausstattung entspricht in etwa einem Amiga 500 mit OCS-Chipsatz. Diese Konfiguration sollte nicht verwendet werden, außer du willst die kurze Start-Melodie hören, die es nur beim A1000 gab.\n256K Chip\nEin Amiga 1000 ohne Erweiterung. Alle späteren Modelle wurden mit eingebauter 256 KB Speicher-Erweiterung verkauft." +1005, "Standard-Konfiguration, nicht erweitert\nVerwende diese Konfiguration für die meisten AGA-Demos und Spiele.\n4M Fast RAM erweiterte Konfiguration\nEinige neuere AGA-Spiele und Demos benötigen einen erweiterten A1200." +1006, "CD32\nDas CD32 ist ein A1200 mit eingebautem CD-ROM-Laufwerk. Lege eine CDTV/CD32-CD in ein freies CD-ROM-Laufwerk ein, bevor du die Emulation startest." +1007, "CDTV\nCommodores erster Versuch eines Computers mit eingebautem CD-ROM-Laufwerk. Das CDTV ist ein Amiga 500 mit 1 MB und ECS-Chipsatz in einem schwarzen Gehäuse, das wie ein CD-Player aussieht." +} + + +STRINGTABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +{ +1008, "High-End erweiterte Konfiguration" +} + +151 CURSOR "Cursor_1.cur" + +123 ICON "Icon_1.ico" + +124 ICON "Icon_2.ico" + +125 ICON "Icon_3.ico" + +128 ICON "Icon_4.ico" + +130 ICON "Icon_5.ico" + +134 ICON "Icon_6.ico" + +137 ICON "Icon_7.ico" + +150 ICON "Icon_8.ico" + +155 ICON "Icon_9.ico" + +156 ICON "Icon_10.ico" + +158 ICON "Icon_11.ico" + +172 ICON "Icon_12.ico" + +180 ICON "Icon_13.ico" + +182 ICON "Icon_14.ico" + +185 ICON "Icon_15.ico" + +188 ICON "Icon_16.ico" + +190 ICON "Icon_17.ico" + +192 ICON "Icon_18.ico" + +194 ICON "Icon_19.ico" + +201 ICON "Icon_20.ico" + +204 ICON "Icon_21.ico" + + +1 VERSIONINFO +FILEVERSION 0,9,91,0 +PRODUCTVERSION 0,9,91,0 +FILEOS 0x40004 +FILETYPE 0x1 +{ +BLOCK "StringFileInfo" +{ + BLOCK "040904B0" + { + VALUE "FileDescription", "WinUAE" + VALUE "FileVersion", "0.9.91" + VALUE "InternalName", "WinUAE" + VALUE "LegalCopyright", "© 1996-2004 under the GNU Public License (GPL)" + VALUE "OriginalFilename", "WinUAE.exe" + VALUE "ProductName", "WinUAE" + VALUE "ProductVersion", "0.9.91" + } +} + +BLOCK "VarFileInfo" +{ + VALUE "Translation", 0x0409 0x04B0 +} +} + +1 24 "Data_1.bin" + diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 0a1491f4..0ac34d07 100755 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -145,14 +145,22 @@ #define IDS_BOOTPRI 178 #define IDS_WRONGDXVERSION 179 #define IDI_MISC2 180 +#define IDS_FLOPPY_COMPATIBLE 180 #define IDR_DRIVE_SNATCH_A500_1 181 +#define IDS_FLOPPY_TURBO 181 #define IDI_DISK 182 #define IDR_DRIVE_SPINND_A500_1 182 +#define IDS_YES 182 #define IDD_PANEL 183 +#define IDS_NO 183 #define IDD_PATHS 184 +#define IDS_PRI_ABOVENORMAL 184 #define IDI_CONFIGFILE 185 #define IDD_QUICKSTART 185 +#define IDS_PRI_NORMAL 185 #define IDM_SYSTRAY 186 +#define IDS_PRI_BELOWNORMAL 186 +#define IDS_PRI_LOW 187 #define IDI_FOLDER 188 #define IDI_DISPLAY 190 #define IDI_ROOT 192 @@ -788,7 +796,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 244 +#define _APS_NEXT_RESOURCE_VALUE 245 #define _APS_NEXT_COMMAND_VALUE 40021 #define _APS_NEXT_CONTROL_VALUE 1695 #define _APS_NEXT_SYMED_VALUE 101 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 366201a3..d19ebacc 100755 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -427,7 +427,7 @@ BEGIN CONTROL "Keyboard Layout ""A"" []Numeric keypad, 0 and 5 = fire", IDC_PORT0_KBDA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 10,127,90,10 - CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL = fire", + CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL and ALT = fire", IDC_PORT0_KBDB,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 10,142,90,10 CONTROL "Keyboard Layout ""C"" []T = up, B = down, F = left, H = right, left ALT = fire", @@ -441,7 +441,7 @@ BEGIN CONTROL "Keyboard Layout ""A"" []Numeric keypad, 0 and 5 = fire", IDC_PORT1_KBDA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 155,127,90,10 - CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL = fire", + CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL and ALT = fire", IDC_PORT1_KBDB,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 155,142,90,10 CONTROL "Keyboard Layout ""C"" []T = up, B = down, F = left, H = right, left ALT = fire", @@ -1016,8 +1016,8 @@ IDI_PATHS ICON "paths.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,90,0 - PRODUCTVERSION 0,9,90,0 + FILEVERSION 0,9,91,0 + PRODUCTVERSION 0,9,91,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -1033,12 +1033,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "WinUAE" - VALUE "FileVersion", "0.9.90" + VALUE "FileVersion", "0.9.91" VALUE "InternalName", "WinUAE" VALUE "LegalCopyright", "© 1996-2004 under the GNU Public License (GPL)" VALUE "OriginalFilename", "WinUAE.exe" VALUE "ProductName", "WinUAE" - VALUE "ProductVersion", "0.9.90" + VALUE "ProductVersion", "0.9.91" END END BLOCK "VarFileInfo" @@ -1261,6 +1261,14 @@ BEGIN IDS_DEVICE "Device" IDS_BOOTPRI "BootPri" IDS_WRONGDXVERSION "WinUAE requires DirectX 8 or newer." + IDS_FLOPPY_COMPATIBLE " (compatible)" + IDS_FLOPPY_TURBO "Turbo" + IDS_YES "yes" + IDS_NO "no" + IDS_PRI_ABOVENORMAL "Above Normal" + IDS_PRI_NORMAL "Normal" + IDS_PRI_BELOWNORMAL "Below Normal" + IDS_PRI_LOW "Low" END STRINGTABLE @@ -1399,7 +1407,7 @@ BEGIN 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_CD32 "CD32\nCD32 was one the first 32-bit consoles on the market. 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 diff --git a/od-win32/resources/winuae_minimal.rc b/od-win32/resources/winuae_minimal.rc index 55db392f..dee88872 100755 --- a/od-win32/resources/winuae_minimal.rc +++ b/od-win32/resources/winuae_minimal.rc @@ -427,7 +427,7 @@ BEGIN CONTROL "Keyboard Layout ""A"" []Numeric keypad, 0 and 5 = fire", IDC_PORT0_KBDA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 10,127,90,10 - CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL = fire", + CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL and ALT = fire", IDC_PORT0_KBDB,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 10,142,90,10 CONTROL "Keyboard Layout ""C"" []T = up, B = down, F = left, H = right, left ALT = fire", @@ -441,7 +441,7 @@ BEGIN CONTROL "Keyboard Layout ""A"" []Numeric keypad, 0 and 5 = fire", IDC_PORT1_KBDA,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 155,127,90,10 - CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL = fire", + CONTROL "Keyboard Layout ""B"" []Cursor keys, right CTRL and ALT = fire", IDC_PORT1_KBDB,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, 155,142,90,10 CONTROL "Keyboard Layout ""C"" []T = up, B = down, F = left, H = right, left ALT = fire", @@ -1016,8 +1016,8 @@ IDI_PATHS ICON "paths.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,9,90,0 - PRODUCTVERSION 0,9,90,0 + FILEVERSION 0,9,91,0 + PRODUCTVERSION 0,9,91,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -1033,12 +1033,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "WinUAE" - VALUE "FileVersion", "0.9.90" + VALUE "FileVersion", "0.9.91" VALUE "InternalName", "WinUAE" VALUE "LegalCopyright", "© 1996-2004 under the GNU Public License (GPL)" VALUE "OriginalFilename", "WinUAE.exe" VALUE "ProductName", "WinUAE" - VALUE "ProductVersion", "0.9.90" + VALUE "ProductVersion", "0.9.91" END END BLOCK "VarFileInfo" @@ -1132,6 +1132,7 @@ BEGIN END END + ///////////////////////////////////////////////////////////////////////////// // // RT_MANIFEST @@ -1249,6 +1250,14 @@ BEGIN IDS_DEVICE "Device" IDS_BOOTPRI "BootPri" IDS_WRONGDXVERSION "WinUAE requires DirectX 8 or newer." + IDS_FLOPPY_COMPATIBLE " (compatible)" + IDS_FLOPPY_TURBO "Turbo" + IDS_YES "yes" + IDS_NO "no" + IDS_PRI_ABOVENORMAL "Above Normal" + IDS_PRI_NORMAL "Normal" + IDS_PRI_BELOWNORMAL "Below Normal" + IDS_PRI_LOW "Low" END STRINGTABLE @@ -1387,7 +1396,7 @@ BEGIN 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_CD32 "CD32\nCD32 was one the first 32-bit consoles on the market. 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 diff --git a/od-win32/sounddep/sound.c b/od-win32/sounddep/sound.c index 833fa9e5..eb8ee58a 100755 --- a/od-win32/sounddep/sound.c +++ b/od-win32/sounddep/sound.c @@ -271,7 +271,7 @@ static int open_audio_ds (int size) return 0; } memset (&DSCaps, 0, sizeof (DSCaps)); - DSCaps.dwSize = sizeof(DSCaps); + DSCaps.dwSize = sizeof (DSCaps); hr = IDirectSound_GetCaps (lpDS, &DSCaps); if (hr!= DS_OK) { write_log ("SOUND: Error getting DirectSound capabilities: %s\n", DXError (hr)); @@ -283,7 +283,7 @@ static int open_audio_ds (int size) minfreq = DSCaps.dwMinSecondarySampleRate; maxfreq = DSCaps.dwMaxSecondarySampleRate; if (maxfreq > 11000) { - if (minfreq > freq) { + if (minfreq > freq && minfreq < 22050) { freq = minfreq; changed_prefs.sound_freq = currprefs.sound_freq = freq; write_log("SOUND: minimum supported frequency: %d\n", minfreq); diff --git a/od-win32/win32.c b/od-win32/win32.c index 1d67a0b3..0095f14f 100755 --- a/od-win32/win32.c +++ b/od-win32/win32.c @@ -149,6 +149,7 @@ static void init_mmtimer (void) timehandle = CreateEvent (NULL, TRUE, FALSE, NULL); } +int sleep_resolution; void sleep_millis (int ms) { UINT TimerEvent; @@ -328,14 +329,17 @@ static int figure_processor_speed (void) SetThreadPriority ( GetCurrentThread(), THREAD_PRIORITY_NORMAL); dummythread_die = 1; - + + sleep_resolution = 1; if (clkdiv >= 0.90 && clkdiv <= 1.10 && rpt_available) { limit = 2.5; if ((ratea2 / ratecnt) < limit * clockrate1000) { /* regular Sleep() is ok */ timermode = 1; + sleep_resolution = ratea2 * clockrate1000 / (ratecnt * 1000000); write_log ("Using Sleep() (resolution < %.1fms)\n", limit); } else if (mm_timerres && (ratea1 / ratecnt) < limit * clockrate1000) { /* MM-timer is ok */ timermode = 0; + sleep_resolution = ratea1 * clockrate1000 / (ratecnt * 1000000); timebegin (); write_log ("Using MultiMedia timers (resolution < %.1fms)\n", limit); } else { @@ -346,6 +350,8 @@ static int figure_processor_speed (void) timermode = -1; write_log ("forcing busy-loop wait mode\n"); } + if (sleep_resolution < 1000) + sleep_resolution = 1000; syncbase = (unsigned long)clockrate; return 1; } @@ -483,6 +489,8 @@ static void winuae_inactive (HWND hWnd, int minimized) { struct threadpriorities *pri; + if (minimized) + exit_gui (0); focus = 0; write_log( "WinUAE now inactive via WM_ACTIVATE\n" ); wait_keyrelease (); @@ -562,7 +570,6 @@ static void handleXbutton (WPARAM wParam, int updown) static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { - static int ignorenextactivateapp; PAINTSTRUCT ps; HDC hDC; LPMINMAXINFO lpmmi; @@ -594,12 +601,15 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, v = TRUE; break; } + exit_gui (0); if (v != minimized) { minimized = v; - if (v) + if (v) { winuae_inactive (hWnd, wParam == SIZE_MINIMIZED); - else + } else { + pausemode (0); winuae_active (hWnd, minimized); + } } return 0; } @@ -611,8 +621,6 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, minimized = HIWORD (wParam); if (LOWORD (wParam) != WA_INACTIVE) { winuae_active (hWnd, minimized); - if (ignorenextactivateapp > 0) - ignorenextactivateapp--; } else { winuae_inactive (hWnd, minimized); } @@ -625,8 +633,6 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, if (!minimized) winuae_active (hWnd, minimized); } - if (ignorenextactivateapp > 0) - ignorenextactivateapp--; return 0; } break; @@ -634,19 +640,18 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, case WM_ACTIVATEAPP: write_log ("WM_ACTIVATEAPP %d %d\n", wParam, minimized); if (!wParam) { - if (gui_active && isfullscreen()) - exit_gui (0); setmouseactive (0); + if (normal_display_change_starting == 0) + normal_display_change_starting = 4; } else { if (minimized) minimized = 0; winuae_active (hWnd, minimized); - if (!ignorenextactivateapp && isfullscreen () && is3dmode ()) { - WIN32GFX_DisplayChangeRequested (); - ignorenextactivateapp = 3; + if (normal_display_change_starting) { + if (isfullscreen () && is3dmode () && normal_display_change_starting == 4) + WIN32GFX_DisplayChangeRequested (); + normal_display_change_starting--; } - if (gui_active && isfullscreen()) - exit_gui (0); } manual_palette_refresh_needed = 1; return 0; @@ -719,19 +724,26 @@ static long FAR PASCAL AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam, return 0; case WM_PAINT: - notice_screen_contents_lost (); - hDC = BeginPaint (hWnd, &ps); - /* Check to see if this WM_PAINT is coming while we've got the GUI visible */ - if (manual_painting_needed) - updatedisplayarea (); - EndPaint (hWnd, &ps); - if (manual_palette_refresh_needed) { - WIN32GFX_SetPalette(); + { + static int recursive = 0; + if (recursive == 0) { + recursive++; + notice_screen_contents_lost (); + hDC = BeginPaint (hWnd, &ps); + /* Check to see if this WM_PAINT is coming while we've got the GUI visible */ + if (manual_painting_needed) + updatedisplayarea (); + EndPaint (hWnd, &ps); + if (manual_palette_refresh_needed) { + WIN32GFX_SetPalette(); #ifdef PICASSO96 - DX_SetPalette (0, 256); + DX_SetPalette (0, 256); #endif + } manual_palette_refresh_needed = 0; + recursive--; } + } break; case WM_DROPFILES: @@ -1090,6 +1102,7 @@ void handle_events (void) inputdevicefunc_mouse.read(); inputdevicefunc_joystick.read(); inputdevice_handle_inputcode (); + check_prefs_changed_gfx (); } while (PeekMessage (&msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage (&msg); @@ -1214,209 +1227,210 @@ static HMODULE LoadGUI( void ) HMODULE result = NULL; LPCTSTR dllname = NULL; LANGID language = GetUserDefaultLangID() & 0x3FF; // low 9-bits form the primary-language ID + char dllbuf[MAX_DPATH]; switch( language ) { case LANG_AFRIKAANS: - dllname = "WinUAE_Afrikaans.dll"; + dllname = "Afrikaans"; break; case LANG_ARABIC: - dllname = "WinUAE_Arabic.dll"; + dllname = "Arabic"; break; case LANG_ARMENIAN: - dllname = "WinUAE_Armenian.dll"; + dllname = "Armenian"; break; case LANG_ASSAMESE: - dllname = "WinUAE_Assamese.dll"; + dllname = "Assamese"; break; case LANG_AZERI: - dllname = "WinUAE_Azeri.dll"; + dllname = "Azeri"; break; case LANG_BASQUE: - dllname = "WinUAE_Basque.dll"; + dllname = "Basque"; break; case LANG_BELARUSIAN: - dllname = "WinUAE_Belarusian.dll"; + dllname = "Belarusian"; break; case LANG_BENGALI: - dllname = "WinUAE_Bengali.dll"; + dllname = "Bengali"; break; case LANG_BULGARIAN: - dllname = "WinUAE_Bulgarian.dll"; + dllname = "Bulgarian"; break; case LANG_CATALAN: - dllname = "WinUAE_Catalan.dll"; + dllname = "Catalan"; break; case LANG_CHINESE: - dllname = "WinUAE_Chinese.dll"; + dllname = "Chinese"; break; case LANG_CROATIAN: - dllname = "WinUAE_CroatianSerbian.dll"; + dllname = "CroatianSerbian"; break; case LANG_CZECH: - dllname = "WinUAE_Czech.dll"; + dllname = "Czech"; break; case LANG_DANISH: - dllname = "WinUAE_Danish.dll"; + dllname = "Danish"; break; case LANG_DUTCH: - dllname = "WinUAE_Dutch.dll"; + dllname = "Dutch"; break; case LANG_ESTONIAN: - dllname = "WinUAE_Estonian.dll"; + dllname = "Estonian"; break; case LANG_FAEROESE: - dllname = "WinUAE_Faeroese.dll"; + dllname = "Faeroese"; break; case LANG_FARSI: - dllname = "WinUAE_Farsi.dll"; + dllname = "Farsi"; break; case LANG_FINNISH: - dllname = "WinUAE_Finnish.dll"; + dllname = "Finnish"; break; case LANG_FRENCH: - dllname = "WinUAE_French.dll"; + dllname = "French"; break; case LANG_GEORGIAN: - dllname = "WinUAE_Georgian.dll"; + dllname = "Georgian"; break; case LANG_GERMAN: - dllname = "WinUAE_German.dll"; + dllname = "German"; break; case LANG_GREEK: - dllname = "WinUAE_Greek.dll"; + dllname = "Greek"; break; case LANG_GUJARATI: - dllname = "WinUAE_Gujarati.dll"; + dllname = "Gujarati"; break; case LANG_HEBREW: - dllname = "WinUAE_Hebrew.dll"; + dllname = "Hebrew"; break; case LANG_HINDI: - dllname = "WinUAE_Hindi.dll"; + dllname = "Hindi"; break; case LANG_HUNGARIAN: - dllname = "WinUAE_Hungarian.dll"; + dllname = "Hungarian"; break; case LANG_ICELANDIC: - dllname = "WinUAE_Icelandic.dll"; + dllname = "Icelandic"; break; case LANG_INDONESIAN: - dllname = "WinUAE_Indonesian.dll"; + dllname = "Indonesian"; break; case LANG_ITALIAN: - dllname = "WinUAE_Italian.dll"; + dllname = "Italian"; break; case LANG_JAPANESE: - dllname = "WinUAE_Japanese.dll"; + dllname = "Japanese"; break; case LANG_KANNADA: - dllname = "WinUAE_Kannada.dll"; + dllname = "Kannada"; break; case LANG_KASHMIRI: - dllname = "WinUAE_Kashmiri.dll"; + dllname = "Kashmiri"; break; case LANG_KAZAK: - dllname = "WinUAE_Kazak.dll"; + dllname = "Kazak"; break; case LANG_KONKANI: - dllname = "WinUAE_Konkani.dll"; + dllname = "Konkani"; break; case LANG_KOREAN: - dllname = "WinUAE_Korean.dll"; + dllname = "Korean"; break; case LANG_LATVIAN: - dllname = "WinUAE_Latvian.dll"; + dllname = "Latvian"; break; case LANG_LITHUANIAN: - dllname = "WinUAE_Lithuanian.dll"; + dllname = "Lithuanian"; break; case LANG_MACEDONIAN: - dllname = "WinUAE_Macedonian.dll"; + dllname = "Macedonian"; break; case LANG_MALAY: - dllname = "WinUAE_Malay.dll"; + dllname = "Malay"; break; case LANG_MALAYALAM: - dllname = "WinUAE_Malayalam.dll"; + dllname = "Malayalam"; break; case LANG_MANIPURI: - dllname = "WinUAE_Manipuri.dll"; + dllname = "Manipuri"; break; case LANG_MARATHI: - dllname = "WinUAE_Marathi.dll"; + dllname = "Marathi"; break; case LANG_NEPALI: - dllname = "WinUAE_Nepali.dll"; + dllname = "Nepali"; break; case LANG_NORWEGIAN: - dllname = "WinUAE_Norwegian.dll"; + dllname = "Norwegian"; break; case LANG_ORIYA: - dllname = "WinUAE_Oriya.dll"; + dllname = "Oriya"; break; case LANG_POLISH: - dllname = "WinUAE_Polish.dll"; + dllname = "Polish"; break; case LANG_PORTUGUESE: - dllname = "WinUAE_Portuguese.dll"; + dllname = "Portuguese"; break; case LANG_PUNJABI: - dllname = "WinUAE_Punjabi.dll"; + dllname = "Punjabi"; break; case LANG_ROMANIAN: - dllname = "WinUAE_Romanian.dll"; + dllname = "Romanian"; break; case LANG_RUSSIAN: - dllname = "WinUAE_Russian.dll"; + dllname = "Russian"; break; case LANG_SANSKRIT: - dllname = "WinUAE_Sanskrit.dll"; + dllname = "Sanskrit"; break; case LANG_SINDHI: - dllname = "WinUAE_Sindhi.dll"; + dllname = "Sindhi"; break; case LANG_SLOVAK: - dllname = "WinUAE_Slovak.dll"; + dllname = "Slovak"; break; case LANG_SLOVENIAN: - dllname = "WinUAE_Slovenian.dll"; + dllname = "Slovenian"; break; case LANG_SPANISH: - dllname = "WinUAE_Spanish.dll"; + dllname = "Spanish"; break; case LANG_SWAHILI: - dllname = "WinUAE_Swahili.dll"; + dllname = "Swahili"; break; case LANG_SWEDISH: - dllname = "WinUAE_Swedish.dll"; + dllname = "Swedish"; break; case LANG_TAMIL: - dllname = "WinUAE_Tamil.dll"; + dllname = "Tamil"; break; case LANG_TATAR: - dllname = "WinUAE_Tatar.dll"; + dllname = "Tatar"; break; case LANG_TELUGU: - dllname = "WinUAE_Telugu.dll"; + dllname = "Telugu"; break; case LANG_THAI: - dllname = "WinUAE_Thai.dll"; + dllname = "Thai"; break; case LANG_TURKISH: - dllname = "WinUAE_Turkish.dll"; + dllname = "Turkish"; break; case LANG_UKRAINIAN: - dllname = "WinUAE_Ukrainian.dll"; + dllname = "Ukrainian"; break; case LANG_URDU: - dllname = "WinUAE_Urdu.dll"; + dllname = "Urdu"; break; case LANG_UZBEK: - dllname = "WinUAE_Uzbek.dll"; + dllname = "Uzbek"; break; case LANG_VIETNAMESE: - dllname = "WinUAE_Vietnamese.dll"; + dllname = "Vietnamese"; break; case 0x400: dllname = "guidll.dll"; @@ -1425,22 +1439,28 @@ static HMODULE LoadGUI( void ) if( dllname ) { - TCHAR szFilename[ MAX_DPATH ]; DWORD dwVersionHandle, dwFileVersionInfoSize; LPVOID lpFileVersionData = NULL; BOOL success = FALSE; - result = LoadLibrary( dllname ); - if( result && GetModuleFileName( result, (LPTSTR)&szFilename, MAX_DPATH ) ) + int fail = 1; + + if (language == 0x400) + sprintf (dllbuf, "%sguidll.dll", start_path); + else + sprintf (dllbuf, "%sWinUAE_%s.dll", start_path, dllname); + result = LoadLibrary (dllbuf); + if( result) { - dwFileVersionInfoSize = GetFileVersionInfoSize( szFilename, &dwVersionHandle ); + dwFileVersionInfoSize = GetFileVersionInfoSize(dllbuf, &dwVersionHandle ); if( dwFileVersionInfoSize ) { if( lpFileVersionData = calloc( 1, dwFileVersionInfoSize ) ) { - if( GetFileVersionInfo( szFilename, dwVersionHandle, dwFileVersionInfoSize, lpFileVersionData ) ) + if( GetFileVersionInfo (dllbuf, dwVersionHandle, dwFileVersionInfoSize, lpFileVersionData ) ) { VS_FIXEDFILEINFO *vsFileInfo = NULL; UINT uLen; + fail = 0; if( VerQueryValue( lpFileVersionData, TEXT("\\"), (void **)&vsFileInfo, &uLen ) ) { if( vsFileInfo && @@ -1449,9 +1469,9 @@ static HMODULE LoadGUI( void ) && HIWORD(vsFileInfo->dwProductVersionLS) == UAESUBREV) { success = TRUE; - write_log ("Translation DLL '%s' loaded and used\n", dllname); + write_log ("Translation DLL '%s' loaded and enabled\n", dllbuf); } else { - write_log ("Translation DLL '%s' version mismatch (%d.%d.%d)\n", dllname, + write_log ("Translation DLL '%s' version mismatch (%d.%d.%d)\n", dllbuf, HIWORD(vsFileInfo->dwProductVersionMS), LOWORD(vsFileInfo->dwProductVersionMS), HIWORD(vsFileInfo->dwProductVersionLS)); @@ -1462,6 +1482,8 @@ static HMODULE LoadGUI( void ) } } } + if (fail) + write_log ("Translation DLL '%s' failed to load, error %d\n", dllbuf, GetLastError ()); if( result && !success ) { FreeLibrary( result ); @@ -1472,6 +1494,24 @@ static HMODULE LoadGUI( void ) return result; } +struct threadpriorities priorities[] = { + { NULL, THREAD_PRIORITY_ABOVE_NORMAL, ABOVE_NORMAL_PRIORITY_CLASS, IDS_PRI_ABOVENORMAL }, + { NULL, THREAD_PRIORITY_NORMAL, NORMAL_PRIORITY_CLASS, IDS_PRI_NORMAL }, + { NULL, THREAD_PRIORITY_BELOW_NORMAL, BELOW_NORMAL_PRIORITY_CLASS, IDS_PRI_BELOWNORMAL }, + { NULL, THREAD_PRIORITY_LOWEST, IDLE_PRIORITY_CLASS, IDS_PRI_LOW }, + { 0, 0, 0, 0 } +}; + +static void pritransla (void) +{ + int i; + + for (i = 0; priorities[i].id; i++) { + char tmp[MAX_DPATH]; + WIN32GUI_LoadUIString (priorities[i].id, tmp, sizeof (tmp)); + priorities[i].name = my_strdup (tmp); + } +} /* try to load COMDLG32 and DDRAW, initialize csDraw */ int WIN32_InitLibraries( void ) @@ -1487,6 +1527,7 @@ int WIN32_InitLibraries( void ) hRichEdit = LoadLibrary( "RICHED32.DLL" ); hUIDLL = LoadGUI(); + pritransla (); return result; } @@ -1577,7 +1618,7 @@ void target_default_options (struct uae_prefs *p, int type) } } -void target_save_options (FILE *f, struct uae_prefs *p) +void target_save_options (struct zfile *f, struct uae_prefs *p) { cfgfile_write (f, "win32.middle_mouse=%s\n", p->win32_middle_mouse ? "true" : "false"); cfgfile_write (f, "win32.logfile=%s\n", p->win32_logfile ? "true" : "false"); @@ -1693,9 +1734,16 @@ void fetch_configurationpath (char *out, int size) fetch_path ("ConfigurationPath", out, size); } +static void strip_slashes (char *p) +{ + while (strlen (p) > 0 && (p[strlen (p) - 1] == '\\' || p[strlen (p) - 1] == '/')) + p[strlen (p) - 1] = 0; +} + void fetch_path (char *name, char *out, int size) { int size2 = size; + strcpy (out, start_path); if (!strcmp (name, "FloppyPath")) strcat (out, "..\\shared\\adf\\"); @@ -1714,10 +1762,18 @@ void fetch_path (char *name, char *out, int size) RegQueryValueEx (hWinUAEKey, name, 0, NULL, out + strlen (out) - 1, &size2); } } + strip_slashes (out); + if (!strcmp (name, "KickstartPath")) { + DWORD v = GetFileAttributes (out); + if (v == INVALID_FILE_ATTRIBUTES || !(v & FILE_ATTRIBUTE_DIRECTORY)) + strcpy (out, start_path); + } + strncat (out, "\\", size); } void set_path (char *name, char *path) { char tmp[MAX_DPATH]; + if (!path) { strcpy (tmp, start_path); if (!strcmp (name, "KickstartPath")) @@ -1733,8 +1789,14 @@ void set_path (char *name, char *path) } else { strcpy (tmp, path); } - if (tmp[strlen (tmp) - 1] != '\\' && tmp[strlen (tmp) - 1] != '/') - strcat (tmp, "\\"); + strip_slashes (tmp); + if (!strcmp (name, "KickstartPath")) { + DWORD v = GetFileAttributes (tmp); + if (v == INVALID_FILE_ATTRIBUTES || !(v & FILE_ATTRIBUTE_DIRECTORY)) + strcpy (tmp, start_path); + } + strcat (tmp, "\\"); + if (hWinUAEKey) RegSetValueEx (hWinUAEKey, name, 0, REG_SZ, (CONST BYTE *)tmp, strlen (tmp) + 1); } @@ -1812,13 +1874,13 @@ static int checkversion (char *vs) if (memcmp (vs, "WinUAE ", 7)) return 0; vs += 7; - if (parseversion (&vs) < UAEMAJOR) - return 1; - if (parseversion (&vs) < UAEMINOR) - return 1; - if (parseversion (&vs) < UAESUBREV) - return 1; - return 0; + if (parseversion (&vs) > UAEMAJOR) + return 0; + if (parseversion (&vs) > UAEMINOR) + return 0; + if (parseversion (&vs) >= UAESUBREV) + return 0; + return 1; } static void WIN32_HandleRegistryStuff( void ) @@ -1833,7 +1895,6 @@ 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, @@ -1889,18 +1950,19 @@ static void WIN32_HandleRegistryStuff( void ) RegSetValueEx( hWinUAEKey, "yPosGUI", 0, REG_DWORD, (CONST BYTE *)&colortype, sizeof( colortype ) ); } size = sizeof (version); - if (RegQueryValueEx( hWinUAEKey, "Version", 0, &dwType, (LPBYTE)&version, &size) == ERROR_SUCCESS) { + if (RegQueryValueEx (hWinUAEKey, "Version", 0, &dwType, (LPBYTE)&version, &size) == ERROR_SUCCESS) { if (checkversion (version)) - forceroms = 1; - else - updateversion = 0; - } else { - forceroms = 1; + RegSetValueEx (hWinUAEKey, "Version", 0, REG_SZ, (CONST BYTE *)VersionStr, strlen (VersionStr) + 1); } - 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; + size = sizeof (version); + if (RegQueryValueEx (hWinUAEKey, "ROMCheckVersion", 0, &dwType, (LPBYTE)&version, &size) == ERROR_SUCCESS) { + if (checkversion (version)) { + if (RegSetValueEx (hWinUAEKey, "ROMCheckVersion", 0, REG_SZ, (CONST BYTE *)VersionStr, strlen (VersionStr) + 1) == ERROR_SUCCESS) + forceroms = 1; + } + } else { + if (RegSetValueEx (hWinUAEKey, "ROMCheckVersion", 0, REG_SZ, (CONST BYTE *)VersionStr, strlen (VersionStr) + 1) == ERROR_SUCCESS) + forceroms = 1; } RegQueryValueEx( hWinUAEKey, "DisplayInfo", 0, &dwType, (LPBYTE)&colortype, &dwDisplayInfoSize ); @@ -2218,14 +2280,6 @@ int execute_command (char *cmd) return 0; } -struct threadpriorities priorities[] = { - { "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[] = { IDR_DRIVE_CLICK_A500_1, IDR_DRIVE_SPIN_A500_1, IDR_DRIVE_SPINND_A500_1, IDR_DRIVE_STARTUP_A500_1, IDR_DRIVE_SNATCH_A500_1 @@ -2273,6 +2327,7 @@ static void efix (DWORD *regp, void *p, void *ps, int *got) static LONG WINAPI ExceptionFilter( struct _EXCEPTION_POINTERS * pExceptionPointers, DWORD ec) { + static uae_u8 *prevpc; LONG lRet = EXCEPTION_CONTINUE_SEARCH; PEXCEPTION_RECORD er = pExceptionPointers->ExceptionRecord; PCONTEXT ctx = pExceptionPointers->ContextRecord; @@ -2281,7 +2336,9 @@ static LONG WINAPI ExceptionFilter( struct _EXCEPTION_POINTERS * pExceptionPoint if (ec == EXCEPTION_ACCESS_VIOLATION && !er->ExceptionFlags && er->NumberParameters >= 2 && !er->ExceptionInformation[0] && regs.pc_p) { void *p = (void*)er->ExceptionInformation[1]; - if (p >= (void*)regs.pc_p && p < (void*)(regs.pc_p + 32)) { + write_log ("%p %p %p\n", p, regs.pc_p, prevpc); + if ((p >= (void*)regs.pc_p && p < (void*)(regs.pc_p + 32)) + || (p >= (void*)prevpc && p < (void*)(prevpc + 32))) { int got = 0; uaecptr opc = m68k_getpc(); void *ps = get_real_address (0); @@ -2301,7 +2358,11 @@ static LONG WINAPI ExceptionFilter( struct _EXCEPTION_POINTERS * pExceptionPoint if (got == 0) { write_log ("failed to find and fix the problem (%p). crashing..\n", p); } else { + void *ppc = regs.pc_p; m68k_setpc (0); + if (ppc != regs.pc_p) { + prevpc = (uae_u8*)ppc; + } exception2 (opc, (uaecptr)p); lRet = EXCEPTION_CONTINUE_EXECUTION; } @@ -2402,7 +2463,7 @@ void systraymenu (HWND hwnd) winuae_inactive (hwnd, FALSE); WIN32GUI_LoadUIString( IDS_STMENUNOFLOPPY, text, sizeof (text)); GetCursorPos (&pt); - menu = LoadMenu (hInst, MAKEINTRESOURCE (IDM_SYSTRAY)); + menu = LoadMenu (hUIDLL ? hUIDLL : hInst, MAKEINTRESOURCE (IDM_SYSTRAY)); if (!menu) return; menu2 = GetSubMenu (menu, 0); diff --git a/od-win32/win32.h b/od-win32/win32.h index 1c5828da..b43fbfb6 100755 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -75,6 +75,7 @@ struct threadpriorities { char *name; int value; int classvalue; + int id; }; extern struct threadpriorities priorities[]; extern void setpriority (struct threadpriorities *pri); diff --git a/od-win32/win32gfx.c b/od-win32/win32gfx.c index 7220e4c2..6758d8b4 100755 --- a/od-win32/win32gfx.c +++ b/od-win32/win32gfx.c @@ -86,7 +86,8 @@ struct MultiDisplay Displays[MAX_DISPLAYS]; GUID *displayGUID; static struct winuae_currentmode currentmodestruct; -int display_change_requested; +static int screen_is_initialized; +int display_change_requested, normal_display_change_starting; extern int console_logging; #define SM_WINDOW 0 @@ -884,6 +885,7 @@ void gfx_unlock_picasso (void) static void close_hwnds( void ) { + screen_is_initialized = 0; #ifdef AVIOUTPUT AVIOutput_Restart (); #endif @@ -900,10 +902,6 @@ static void close_hwnds( void ) #endif #ifdef D3D D3D_free (); -#endif -#if 0 - if (currentmode->flags & DM_W_FULLSCREEN) - ChangeDisplaySettings (NULL, 0); #endif ShowWindow (hAmigaWnd, SW_HIDE); DestroyWindow (hAmigaWnd); @@ -970,6 +968,9 @@ int check_prefs_changed_gfx (void) { int c = 0; + if (normal_display_change_starting > 0 && normal_display_change_starting < 4) + normal_display_change_starting--; + c |= currprefs.gfx_width_fs != changed_prefs.gfx_width_fs ? 1 : 0; c |= currprefs.gfx_height_fs != changed_prefs.gfx_height_fs ? 1 : 0; c |= currprefs.gfx_width_win != changed_prefs.gfx_width_win ? 2 : 0; @@ -986,6 +987,8 @@ int check_prefs_changed_gfx (void) c |= currprefs.gfx_display != changed_prefs.gfx_display? 1 : 0; if (display_change_requested || c) { + if (!display_change_requested) + normal_display_change_starting = 4; display_change_requested = 0; fixup_prefs_dimensions (&changed_prefs); currprefs.gfx_width_win = changed_prefs.gfx_width_win; @@ -2073,6 +2076,7 @@ static BOOL doInit (void) } #endif #endif + screen_is_initialized = 1; return 1; oops: @@ -2127,6 +2131,8 @@ void WIN32GFX_WindowMove ( void ) void updatedisplayarea (void) { + if (!screen_is_initialized) + return; if (picasso_on) return; /* Update the display area */ @@ -2156,7 +2162,9 @@ void updatedisplayarea (void) #endif { if( !isfullscreen() ) { - if(DirectDraw_GetLockableType() != overlay_surface) + surface_type_e s; + s = DirectDraw_GetLockableType(); + if (s != overlay_surface && s != invalid_surface) DX_Blit( 0, 0, 0, 0, WIN32GFX_GetWidth(), WIN32GFX_GetHeight(), BLIT_SRC ); } else { DirectDraw_Blt( primary_surface, NULL, secondary_surface, NULL, DDBLT_WAIT, NULL ); diff --git a/od-win32/win32gfx.h b/od-win32/win32gfx.h index 3b614394..731aaab1 100755 --- a/od-win32/win32gfx.h +++ b/od-win32/win32gfx.h @@ -31,6 +31,7 @@ extern HWND hStatusWnd; extern HINSTANCE hDDraw; extern char *start_path; extern uae_u32 default_freq; +extern int normal_display_change_starting; extern HDC gethdc (void); extern void releasehdc (HDC hdc); diff --git a/od-win32/win32gui.c b/od-win32/win32gui.c index 04a4cbe9..37ab396d 100755 --- a/od-win32/win32gui.c +++ b/od-win32/win32gui.c @@ -79,6 +79,7 @@ static struct uae_prefs *pguiprefs; struct uae_prefs workprefs; static int currentpage; static int qs_request_reset; +static int qs_override; int gui_active; extern HWND (WINAPI *pHtmlHelp)(HWND, LPCSTR, UINT, LPDWORD ); @@ -117,8 +118,11 @@ static HWND guiDlg, panelDlg, ToolTipHWND; void exit_gui (int ok) { + if (!gui_active) + return; if (guiDlg == NULL) return; + write_log ("exit_gui %d\n", ok); SendMessage (guiDlg, WM_COMMAND, ok ? IDOK : IDCANCEL, 0); } @@ -431,12 +435,14 @@ static struct ConfigStruct *getconfigstorefrompath (char *path, char *out, int t return 0; } -int target_cfgfile_load (struct uae_prefs *p, char *filename, int type) +int target_cfgfile_load (struct uae_prefs *p, char *filename, int type, int isdefault) { int v, i, type2; DWORD ct, ct2, size; char tmp1[MAX_DPATH], tmp2[MAX_DPATH]; + if (isdefault) + qs_override = 1; if (type == 0 || type == 1) { if (p->mountinfo == currprefs.mountinfo) currprefs.mountinfo = 0; @@ -482,7 +488,6 @@ void gui_display( int shortcut ) int flipflop = 0; HRESULT hr; - gui_active = 1; #ifdef D3D D3D_guimode (TRUE); #endif @@ -508,9 +513,11 @@ void gui_display( int shortcut ) WIN32GFX_ClearPalette(); manual_painting_needed++; /* So that WM_PAINT will refresh the display */ - hr = DirectDraw_FlipToGDISurface(); - if (hr != DD_OK) - write_log ("FlipToGDISurface failed, %s\n", DXError (hr)); + if (isfullscreen ()) { + hr = DirectDraw_FlipToGDISurface(); + if (hr != DD_OK) + write_log ("FlipToGDISurface failed, %s\n", DXError (hr)); + } if( shortcut == -1 ) { int ret; @@ -557,7 +564,6 @@ void gui_display( int shortcut ) #ifdef PICASSO96 DX_SetPalette (0, 256); #endif - gui_active = 0; } @@ -871,7 +877,7 @@ int DiskSelection( HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs, disk_creatediskfile( full_path, 1, SendDlgItemMessage( hDlg, IDC_FLOPPYTYPE, CB_GETCURSEL, 0, 0L )); break; case IDC_LOAD: - if (target_cfgfile_load(&workprefs, full_path, 0) == 0) + if (target_cfgfile_load(&workprefs, full_path, 0, 0) == 0) { char szMessage[MAX_DPATH]; WIN32GUI_LoadUIString (IDS_COULDNOTLOADCONFIG, szMessage, MAX_DPATH); @@ -1230,7 +1236,7 @@ static char *HandleConfiguration (HWND hDlg, int flag, struct ConfigStruct *conf WIN32GUI_LoadUIString( IDS_MUSTSELECTCONFIG, szMessage, MAX_DPATH ); pre_gui_message (szMessage); } else { - if (target_cfgfile_load (&workprefs, path, configtypepanel) == 0) { + if (target_cfgfile_load (&workprefs, path, configtypepanel, 0) == 0) { char szMessage[ MAX_DPATH ]; WIN32GUI_LoadUIString( IDS_COULDNOTLOADCONFIG, szMessage, MAX_DPATH ); pre_gui_message (szMessage); @@ -1323,9 +1329,9 @@ static void set_lventry_input (HWND list, int index) inputdevice_get_mapped_name (input_selected_device, index, &flags, name, input_selected_sub_num); if (flags & IDEV_MAPPED_AUTOFIRE_SET) - strcpy (af, "yes"); + WIN32GUI_LoadUIString (IDS_YES, af, sizeof (af)); else if (flags & IDEV_MAPPED_AUTOFIRE_POSSIBLE) - strcpy (af, "no"); + WIN32GUI_LoadUIString (IDS_YES, af, sizeof (af)); else strcpy (af,"-"); ListView_SetItemText(list, index, 1, name); @@ -1372,7 +1378,7 @@ void InitializeListView( HWND hDlg ) RECT rect; char column_heading[ HARDDISK_COLUMNS ][ MAX_COLUMN_HEADING_WIDTH ]; char blocksize_str[6] = ""; - char readwrite_str[4] = ""; + char readwrite_str[10] = ""; char size_str[32] = ""; char volname_str[ MAX_DPATH ] = ""; char devname_str[ MAX_DPATH ] = ""; @@ -1523,7 +1529,10 @@ void InitializeListView( HWND hDlg ) strcpy (size_str, "n/a"); sprintf (bootpri_str, "%d", bootpri); } - sprintf( readwrite_str, "%s", readonly ? "no" : "yes" ); + if (readonly) + WIN32GUI_LoadUIString (IDS_NO, readwrite_str, sizeof (readwrite_str)); + else + WIN32GUI_LoadUIString (IDS_YES, readwrite_str, sizeof (readwrite_str)); lvstruct.mask = LVIF_TEXT | LVIF_PARAM; lvstruct.pszText = devname_str; @@ -5352,10 +5361,15 @@ HKEY read_disk_history (void) static void out_floppyspeed (HWND hDlg) { char txt[30]; + char tmp1[MAX_DPATH]; + char tmp2[MAX_DPATH]; + + WIN32GUI_LoadUIString (IDS_FLOPPY_COMPATIBLE, tmp1, sizeof (tmp1)); + WIN32GUI_LoadUIString (IDS_FLOPPY_TURBO, tmp2, sizeof (tmp2)); if (workprefs.floppy_speed) - sprintf (txt, "%d%%%s", workprefs.floppy_speed, workprefs.floppy_speed == 100 ? " (compatible)" : ""); + sprintf (txt, "%d%%%s", workprefs.floppy_speed, workprefs.floppy_speed == 100 ? tmp1 : ""); else - strcpy (txt, "Turbo"); + strcpy (txt, tmp2); SetDlgItemText (hDlg, IDC_FLOPPYSPDTEXT, txt); } @@ -7616,7 +7630,7 @@ int dragdrop (HWND hDlg, HDROP hd, struct uae_prefs *prefs, int currentpage) strcpy (prefs->flashfile, file); break; case ZFILE_CONFIGURATION: - if (target_cfgfile_load (&workprefs, file, 0)) { + if (target_cfgfile_load (&workprefs, file, 0, 0)) { if (full_property_sheet) { inputdevice_updateconfig (&workprefs); if (!workprefs.start_gui) @@ -7737,6 +7751,8 @@ static int GetSettings (int all_options, HWND hwnd) static int init_called = 0; int psresult; + gui_active = 1; + full_property_sheet = all_options; allow_quit = all_options; pguiprefs = &currprefs; @@ -7775,7 +7791,7 @@ static int GetSettings (int all_options, HWND hwnd) ABOUT_ID = init_page (IDD_ABOUT, IDI_ABOUT, IDS_ABOUT, AboutDlgProc, NULL); C_PAGES = ABOUT_ID + 1; init_called = 1; - if (quickstart) + if (quickstart && !qs_override) currentpage = QUICKSTART_ID; else currentpage = LOADSAVE_ID; @@ -7794,6 +7810,7 @@ static int GetSettings (int all_options, HWND hwnd) qs_request_reset = 0; full_property_sheet = 0; + gui_active = 0; return psresult; } diff --git a/uaelib.c b/uaelib.c index 965c7b74..2ec8328b 100755 --- a/uaelib.c +++ b/uaelib.c @@ -361,6 +361,7 @@ static uae_u32 uaelib_demux (void) #define ARG2 (get_long (m68k_areg (regs, 7) + 12)) #define ARG3 (get_long (m68k_areg (regs, 7) + 16)) #define ARG4 (get_long (m68k_areg (regs, 7) + 20)) +#define ARG5 (get_long (m68k_areg (regs, 7) + 24)) switch (ARG0) { case 0: return emulib_GetVersion (); @@ -414,6 +415,7 @@ static uae_u32 uaelib_demux (void) case 80: return currprefs.maprom ? currprefs.maprom : 0xffffffff; case 81: return cfgfile_uaelib (ARG1, ARG2, ARG3, ARG4); + case 82: return cfgfile_uaelib_modify (ARG1, ARG2, ARG3, ARG4, ARG5); } return 0; } diff --git a/winuaechangelog.txt b/winuaechangelog.txt deleted file mode 100644 index 80a8c630..00000000 --- a/winuaechangelog.txt +++ /dev/null @@ -1,2191 +0,0 @@ - -Final: - -- floppy speed was never initialized to 100% in quickstart-mode -- default.uae ignored paths-panel configurations-path -- in some circumstances regular configuration was saved to - hardware or host configuration directory -- enabling/disabling lores on the fly didn't always reset all - internal variables correctly resulting in weird display - -RC1: - -- back2roots URL updated (was ancient http://back2roots.emuunlim.com/), - abime.net URL added -- fixed uninitialized variable that may have caused problems in - 4-channel sound mode -- possible crash bug in beta13's blitter update fixed -- game-port panel joystick compatibility with older config files fixed - (why is kbd1 = first keyboard layout but joy0 = first joystick?) - -Beta 13: - -- changed quickstart uae-config's floppy speed to turbo -- MOVEC control register 0x804 was incorrectly marked as 68040-only, - but it really is 68020+. It seems I broke this in some 0.8.22 version - without anyone noticing it.. (fixes AIBB crash in 68020-mode) -- directory filesystem deleted files/directories are now moved to - Windows Recycle Bin (if RB is not disabled) -- release all inputdevices when entering debugger (and acquire them - again after exiting) Fixes keyboard freeze on some Windows 2000 - systems -- last entry in Ports-panel mouse/joystick-selectbox was unselectable -- middle mouse button didn't work, stupid typo in b12's input cleanup -- removed "Windows mouse" mousewheel and number of buttons limits, there - are programs that can send for example faked middle button messages - even if real mouse has only 2 buttons etc.. -- "Windows mouse" middle button = ALT-TAB fix -- disable quickstart media-check if quickstart-checkbox is not checked -- yet another active/inactive/minimized-fix -- added image+crc tooltip to df0-df3 windowed mode "leds" - btw, for some reason SB_SETTEXT's SBT_POPOUT-mode don't do anything if - non-classic skin in Windows XP is selected. (which means "leds" don't - move "up" or "down") Any ideas? -- left click on status bar df0-df3 = insert disk, right click = eject, - left click on power = gui, right click = reset. Left and right button - doubleclicks are still free if someone needs more functions :) -- blitter non-ce/non-immediate approximate slowdown due to bitplane dma - -code changed -- add support for other german keyboard layouts - -Beta 12: - -- "Syncronize clock"-feature is back, fixed random turbo clock -- gameport configuration defaults fixed -- added "4 Channel" audio mode (=feed all 4 Amiga channels directly - to DirectSound device without 4->2 software mixing, was earlier only - available with "-dsaudiomix" command line parameter) -- "Crux"-interpolation with stereo separation enabled fixed - (readjustment of stereo separation GUI-settings are needed) -- show message if there is no Kickstart ROM selected and Kickstart - replacement fails to run disk image in df0: (previous versions - simply returned to GUI without saying anything..) -- "Could not load Kickstart ROM"-message readded (not sure why or when - it disappeared..) -- kickstart replacement wasn't enabled if no Kickstart ROM was - selected, but it worked if selected ROM couldn't be loaded.. fixed. -- input device renaming must be of course after sorting, not before.. -- Added "Amiga 2000" to Amiga 500 model-title -- mousehack-support changed, mousehack-mode is only enabled when - Amiga-side mousehack-program is running and new special - "Mousehack mouse" is selected. Autoselecting mousehack-mode would - have caused too many unsolvable problems. Without mousehack-program - mousehack-mode works just like "Windows mouse" -- mousehack works in fullscreen mode. (=tablets work in fullscreen) -- quickstart only autosets configuration when "start in quickstart-mode" - -checkbox is checked. "Set Configuration"-button can be used to - set the config when checkbox is not checked. -- dragndrop rom type detection -- cd32-pad emulation improved, should be nearly perfect now, - also default joystick/joypad cd32-button mappings changed - (removed useless "firebutton") (CD32 pad info from schematic at: - http://home.t-online.de/home/malibann/cd32gamepad/cd32gamepad.html) -- cd32 cdrom drive is now always redetected after every reset -- keyboard layout A/B/C compatibility with older versions fixed - (check and resave your configs) -- changed default windowed resolution to 720x568 - -Beta 11: hopefully only bugs fixes left.. - -- improved game controller/mouse selection in "Game & IO-ports", - even multimouse is now possible without need to use input-panel - (but don't forget OS limits: 98/ME = two USB mice required, - 2000 = no multimouse support, XP = no mouse limits) -- changed naming of input devices with identical names - (first is named "xxx [1]", second "xxx [2]" etc..) -- removed some REALLY obsolete win32-specific filesystem filename - mangling functions. (for example ~ in file names didn't work) - Testing needed! -- Action Replay freeze-key (page up) was unavailable for configuration - even if Action Replay was not enabled, fixed. Again. -- USB keyboard led-support (may not work in all cases yet) -- more ALT-TAB fixes (this is so stupid, for example Direct3D- - fullscreen mode sends minimized information differently than other - regular DirectDraw fullscreen modes..) -- added "Windows Mouse" buttons 4 and 5, detect the real number of - "Windows Mouse" buttons and wheel. NOTE: non-DirectInput maximum - number of supported buttons is 5 (Windows 2000/XP) or 3 (9x/ME) -- added default mapping of mouse buttons 4 and 5 to ALT+CURSOR LEFT - and ALT+CURSOR RIGHT (back and forward) -- it is now possible to dragndrop disk image(s) directly to any drive's - path-string box - -Beta 10b: - -- "automatic" jump back to fullscreen after ALT-TAB fixed, I think.. -- changed TD_GETGEOMETRY slightly, use CHS-values from RDB if RDB - is detected, only "invent" the values if RDB is not detected. -- paths-panel manual path editing fixed -- flash ram manual editing fixed - -Beta 10: lots of small things.. - -- Action Replay 2 and 3 ROM first 4 byte tweak, dumping the ROM under - UAE (pointless?) results now exactly the same dump as on real A500 -- debugger tracing commands didn't work in ROM -- added automatic KS patcher that disables A4000T ROM's - "NCR scsi.device" -> A4000T ROM is back and working. (A4000T NCR - scsi.device expects correct scsi hardware -> no hardware -> confused - driver -> infinite loop..) Maybe pointless too but... -- some A500<>A1000<>CDTV<>CD32 on the fly switching bugs fixed -- 68020/68EC020-KS check didn't work correctly if - shapeshifter-patch was enabled, fixed -- fixed possible crash when ALT-TABing from filtered fullscreen mode -- crash when saving new config and no old config file has been selected -- fixed corrupt logical disk format when creating standard 3.5"HD ADF - (this has been broken since the beginning..) -- added TD_GETGEOMETRY (very rarely needed) support to uaehf.device -- optimized stereo separation/mixing algorithm, fixed incorrect config - file entry name ("sound_stereo_mixing" -> "sound_stereo_mixing_delay") -- added missing KS 37.299 ROM in A600-ROM scan check -- don't touch WinUAE version number in registry if it is newer than - current -- Quickstart "Host Configuration"-checkbox didn't remember previously - selected configuration. -- added some example host configurations (800x600 and 640x480 - fullscreen and one windowed). I plan to add these and maybe some - other (suggestions?) host-configurations with release version. - (it will be optional component in installer) -- added configuration link selector and probably confusing - ignore-checkbox to config panel (ignore = don't load linked config, - load instead host config from regular config file or from user-forced - file in Host-panel) -- fullscreen mode always used no-taskbarbutton-mode. fixed. -- automatically default to ASPI if uaescsi.device is enabled and - OS is Windows9x or if user has no admin privileges -- don't crash if DirectInput fails to initialize (Why does - DirectInput8Create() fail with "unspecified error" when running - WinUAE under different user using Windows XP "Run as..."-feature?) -- use SetPriorityClass() under 2000/XP instead of SetThreadPriority() - (now Task Manager shows same priority settings as WinUAE GUI) - -Beta 9: - -- replaced "mixed stereo" with stereo separation adjustment and made - mixed stereo delay buffer size adjustable, original mixed stereo - buffer size was 5. (don't ask about mixed stereo delay buffer, I - have no idea whats the point :) (Idea from xtc) -- quickstart-mode reset button fix -- CDTV Extended 2.7 is back, 2.3 renamed to 2.30 -- A4000T KS 3.1 removed (apparantly it is not compatible with UAE) -- improved Kickstart CPU compatibility check -- added misc-checkbox for hiding Windows Taskbar-button - (that was much easier said than done..) -- windowed mode DFx,Power,etc.. "leds" now support non-96DPI modes -- added more hardfile/harddisk error logging (non-blocksize aligned - or out of bounds accesses) -- added mostly useless 1.8M BogoRAM selection (there were A500 2M - expansions but 0.2M was lost "under" custom chip address space) -- included translation DLL for testing (but note that this won't be - the final version) - -Beta 8: - -- added missing A500+ and A600 ROM scan messages -- model info, ROM scan messages are now translatable -- removed yellow "!" from message-dialogs -- possible fix for ancient "black bar at right border when - centering is enabled and screen width is large enough"-bug -- remove floppies from disabled drives in quickstart-mode -- quickstart disk history was duplicated when selecting new image - and image change caused configuration update. -- "config_hardware_path" and "config_host_path" config entries added - They can be used to link two config files. I am not yet sure how to - add GUI support for saving linked config files.. -- replaced RDB filesystem relocator's 68020+ only instructions with - 68000-compatible instructions (oops..) -- added model info to Kickstart ROM information -- removed hack/beta KS 3.1 40.70 (0x917100a0, hack/beta) and CDTV - Extended 2.7 (not confirmed), added A4000T KS 3.1 40.70 (0x75932c3a) - (Kickstart info by Rodney Hester) - -Beta 7: - -- fixed beta 6 quickstart problems -- added A500Plus and A600-entries (A500P with KS 37.175 and A600 with - 37.350/37.300) and CDTV (with warning) - Yes, I changed my mind again :) -- added very expanded example configuration to quickstart-page - -Beta 6: - -- better 68000 exception 3 (address error) return address - calculation (fixes yet another copy protection) -- cycle-exact mode timing fixes (broke in 0826b1.. caused some - (many?) copylock-protected images to fail, also Dynamic Hires images - look much better now but it is not yet perfect. -- removed some unneeded code from ce-mode cpu -- removed compiler.c and compiler.h. No idea when this was last - used (or maybe it was never really used?) -- added volume level value to sound panel -- keyboard led select boxes worked strangely, fixed -- more 68000 DIVU/DIVS undefined flags defined :) -- added more RDB parsing messages to log -- Overkill AGA graphics fix. WARNING: may cause graphics - problem (shifted image) in other AGA games/demos. - Keep your eyes open! -- don't check quickstart disk image bootable-status anymore after - emulator has been started -- new (not yet released) caps library required -- force ROM rescan if WinUAE version info in registry is older - than current version -- bootblock crc check added to quickstart insert-disk check -- german keyboard #-key hack fix (Bernd Roesch) -- disable chipset speed settings if 68000 and cycle-exact enabled -- quickstart and paths icons added (Jani Wilen) -- wider harddrive-dialogs -- added "enable RDB-mode"-button to hardfile dialog - (it only clears sectors, surfaces and reserved-fields) -- dialog should really appear correctly in fullscreen mode -- added CRC32-tooltip to quickstart DF0-select box arrow. - (why? bug reports without enough info to confirm used image..) - - -Beta 5: - -- dragndrop didn't close filehandles (left files that were not - possible to delete or rename until WinUAE was exited) -- save state key shortcuts fixed (broke in beta 2, I think) -- added tooltip support to every control in GUI (this is quite - stupid: All dialog strings with "[]" in them is split to two pieces. - Dialog string is replaced with leftmost piece and tooltip is added - with rightmost piece. Stupid but this does not need any extra resources, - is automatic and it is easy for translators) -- example tooltips added to keyboard A, B and C-checkboxes -- more tooltips to cpu, disk and chipset tab. Help needed, I am not going - to write any more myself.. -- configuration tooltip fixed -- replaced tooltips with balloon tooltips -- disk history weirdness fixed (randomly changing disks etc..) -- added message if "Add harddrive" does not detect any drives -- updated NT-based Windows' admin privilege-check -- removed ECS Denise-selection. OCS Agnus + ECS Denise was never used - (probably does not even work on real Amigas) -- update last used config file name when saving config -- more common notifications/error messages can be translated -- added message that appears only once when saving to standard adf and - saved track is not standard AmigaDOS format. - -Beta 4: - -- return back to GUI if Kickstart ROM is missing and Kickstart - replacement fails (do we even need this anymore?) -- don't add nonexisting files to disk history -- added saveimage delete-button to disk-panel (only visible when there - is saveimage present for selected image) -- added -diskswapper=image1.adf,image2.adf,...-command line parameter -- startup-zlib-dialog-crash fixed -- improved rom scanner, now Kickstart ROMs/keyfile are detected even - if all roms are stored in single zip... -- stupid disk writing bug fixed, causes some crappy disk routines to - save corrupted data, for example SWOS. (was introduced in 0.8.26) -- paraport direct parallel port support improved - (busy signal was inverted, printing works now) -- mapped AmigaDOS H-flag to Windows hidden-flag. This leaves S-flag - but there are no Windows flags left.. -- moved "no uaefsdb"-checkbox to harddisk-panel -- added scaling support to all software filters -- testing tooltips in model selection area (texts by G. Chillemi and me) - Good or bad idea? -- added OCS A500 0.5M+0.5M configuration on top of list. Apparantly - OCS A500 is the most common Amiga 500 (except here in Finland or - something) - -Beta 3: - -- hardware/host-settings should now really work.. -- filter presets added -- "clear registry" really removes all new keys now -- changed default joystick to keyboard layout B -- set default sound filter to emulated -- filter presets (saves filter settings plus lores, doubling, - correct aspect and centering settings from display page) -- added avioutput path to paths-page - -Beta 2: - -- added missing Cloanto KS 1.3 and 3.1 CRCs -- Reset-button was enabled when inserting disk even if - emulator was not yet started -- less ROM-check messages -- disable serial options if no serial port selected -- removed A500+/A600-configs (not much use here) -- removed CDTV config (not much point until CDROM works) -- don't load quickstart-page's config when entering quickstart - page for the first time if quickstart-mode is not enabled -- don't disable Start-button -- clear disk image paths when in quickstart mode (=don't load - floppies from default.uae) -- added second drive, only enabled when RAM size is 1MB or - larger. -- quickstart reset handling improved -- obsolete rom.key-GUI option removed -- hardware/host configurations save/load/delete fixed -- added simple JIT on/off switch (only sets cache to zero - or max and it does not remember old value) - -Beta 1: - -I have been thinking of bumping version number to 1.0 in next -release. Emulation seems to be good enough, GUI looks ok -and now finally there is long-awaited "quickstart"-mode for -"normal" emulator users. - -I really request comments about Quickstart-mode GUI. One or -two drives? Build-in configs are ok? ROM-messages are ok? - -It is possible I have gone really too far this time.. - -- more support for small devices, debugger can be disabled - by editing sysconfig.h -- dialogs don't appear behind the screen in fullscreen modes -- warn only once when saving state with harddisk(s) enabled -- chip ID-register (VPOSR upper byte) never reported ECS Agnus - (broke in 0.8.26) -- TST.x Ax, TST.x (d16,PC), TST.x (d8,PC,Xn), CMP.x #x,(d16,PC) - and CMP.x #x,(d8,PC,Xn) are 68020+ only. There are probably - more to fix.. (some 68000/68010-instructions don't support - all addressing modes) -- SMBFS, FAT95, AmigaNCP map Windows System-flag to AmigaDOS Pure-flag, - so do it also in UAE filesystem emulation, also archive bit was - inverted -- configuration file scanner didn't work correctly if directory - was deeper than 1 level, fixed, also added limit to 3 levels -- added CRC32 ROM-detection (only common official ROMs supported) -- show selected ROM's name instead of filename in ROM-page if - selected ROM is in CRC32-list -- all detected ROMs are added to ROM-filename selectbox -- statefile ROM CRC32 is used to select correct ROM when loading state -- ROM path is scanned when starting WinUAE for the first time, - ROM path is changed or Rescan ROMs-button is clicked -- added Paths-page -- added QuickStart-page (for users that only want to run floppy based - programs without need to know anything about configuration) -- rom.key-path is basically obsolete now, WinUAE automatically tries - all possible locations for rom.key. (current dir, rom-path etc..) - Any reasons for not removing the rom.key-path from GUI? -- switching from A1000/CD32/CDTV mode to normal-mode and back works - now correctly -- changed default configuration to regular Amiga 500-config, also - some other default config tweaks -- in quickstart-page inserted disk image's bootblock is checked - - no bootblock/wrong checksum = don't accept image - - OFS bootblock -> continue - - FFS/FFS+INT bootblock -> autoselect KS2.04 config (if previous - config was < KS 2.04) - - FFS+DIRCACHE bootblock -> autoselect KS3.0 config (if previous - config was < KS 3.0) -- "Clear registry"-button in paths-page can be used to remove - all new WinUAE registry entries, for easier beta testing -- added hardware/host-specific configurations, autoload checkbox = - automatically load selected hardware/host-only config after "regular" - config - -TODO: - -- new icons - -btw, is there are any problems using names like "Amiga" or "Kickstart"? - -0.8.27 - -Beta 4: (final?) - -- AVIOutput tweaks (enable-button is disabled until codec(s) - are selected, don't clear selected codec(s) after recording - is stopped, no more clicks in recorded sound while alt-tabbing - and more) -- COPJMP-delay was 2 cycles too short, fixes 2000AD-intro - (properly this time!) and Total Triple Trouble-intro's missing - characters (sprites) -- debugger: added illegal access logger (any memory access to - non-existing memory or "non-official" custom chip/cia address is - logged) enable with "wd"-command, delete addresses with "wd x y" - where x = start address y = length of range. -- A1000 boot rom works again (b1) -- some centering tweaks - -Beta 3: - -- don't exit if using 68020+ Kickstart ROM without 68020 CPU -- fixed rare null filter crash -- full collision setting fixed. Game called "Rotor" does - require working CLXDAT collision bit 0 (="full collision") - This is the first known program that needs full collision! -- 68000 CLR.L/NEG.L/NEGL.X/NOT.L data access order finally fixed - (read first word, read second word, write second word, write - first word) This is important because there are some demos - that do CLR.L $DFF088.. -- contents of zipped files in disk history-list had extra space - in the beginning of filename. fixed. (b1) - -Beta 2: - -- added correct return value in 68000+more compatible/ce-mode when - accessing CIA-address space without selecting any CIA (both - CIA selection address bits 12 and 13 set) rtclock, buggy - A1000 "Insider"-memory expansion's real-time clock setting - utility program works now without crashing. -- state saves were saved in random point instead of at the - beginning of vblank. (broke somewhere during 0.8.22 or so) -- debugger 'am'-command fixed -- removed disk swapper auto disk insert when loading config. - It wasn't too good idea. (disk in swapper position 1, eject disk, - save config and load config -> disk is back in df0..) -- vertical/horizontal centering fixed! (or at least it is much - improved) Does not fix bar in right side of screen if using too - large resolution -- MIDI does not require selected serial port anymore -- "exter_int_helper: unknown native action" is confirmed fixed - (bug has been there since native2amiga.c was originally created..) -- re-added SPCFLAG_DOINT, JIT seems to have too weird timing to - work without it in some cases.. Non-JIT modes still use new and - more compatible method. -- fixed crash in CDTV-mode (broke in 0826B1) -- D3D and OpenGL mode fullscreen ALT-TAB fixed -- harddisk "bad blocksize" error (broke in b1) -- typing to disk image text boxes was ignored, fixed -- bug in kickstart loader fixed (b1, 256K ROMs only) - -Beta 1: - -- loading empty config/directory crashes (broke in beta 4) -- ports-page's joystick/mouse radiobuttons were not initialized -- added some source configuration options for low memory devices -- config file scanner ignored extension of files and scanned - ALL files in configurations-directory, even binary files.. -- GUI works with non-96 DPI font settings (arg, only bug was - different font in "panel"-dialog than "page"-dialogs..) -- removed "Highest" priority setting. It was mostly useless and - slightly dangerous too. -- added check for too small hardfiles (zero or smaller than block - size), also block size set to zero is not anymore allowed. - (no more "tried to seek out of bounds! (FFFFFFFFFFFFC000 >= 0)" - error message) -- JIT got confused and crashed if CPU setting was modified or - JIT-enabled state file was loaded -- OpenGL fullscreen mode now uses DirectDraw to change screen's - resolution instead of ChangeDisplayMode(). ALT-TAB works now - properly. -- added missing semaphore-protection to native2amiga.c - (fixes random "exter_int_helper: unknown native action xxx" - errors and freezes when using for example uaescsi.device - and hardfile(s) at the same time) NOT CONFIRMED YET -- interrupt delay in JIT mode reintroduced with much smaller - and safe delay. (AB 3D II works again) -- new rtg.library, 20-30 times faster pixel read function in - 32-bit Picasso96 modes. Used in alphablending. (Bernd Roesch) -- fixed forever repeating "...because desktop is too small for - the specified window size.." -- only add images inside zip to history if there are more than - one image -- saving config: add ".uae"-extension to config file name if - missing -- buffer overflow in drive click code fixed - -0826 - -Beta 6: - -- enter disk swapper for the first time, press up, first image - disappears, fixed. -- ancient MIDI-IN freeze bug finally fixed -- module ripper's dialog boxes appeared "behind" WinUAE's screen - in fullscreen modes -- disk image history list: move selected item to top of list -- move ripper to output-page (path etc.. improvements won't be - implemented until 0.8.26 has been released) -- entering and exiting gui didn't restore 8-bit Picasso96-palette - if opening GUI didn't force drop to desktop -- use GUI's real size (Windows XP styles can make it bigger than - default) instead of hardcoded 640x480 when determining if GUI - fits to current fullscreen mode -- more FDI2 updates -- added workaround to "turbo speed"-problem in non-ce modes - (for example Battle Squadron cracktro by Freestyle) -- END+Fx-disk change shortcuts didn't add image to history list, - fixed -- disabled interrupt delays in JIT-mode. That was not too good - idea.. (crashed some programs) -- configuration "save as"-button used wrong path, fixed - -Beta 5: - -- "... Switching to full-screen display."-messages didn't work - and crashed the emulator.. (oops) -- don't show paths in disk swapper-page -- disk swapper crash fixed (stupid bug, missing "break;" oops*2) -- loading config file copies inserted disk images in disk drives - to disk swapper and also fills empty drives from disk swapper - automatically. -- reload configuration file list after loading new config and - emulation has already been started -- don't restart immediately if loading new config and show gui - is not ticked and emulation has already been started -- fixed debugger memwatch point command's parsing of 'rw' -- cycle exact blitter/cpu-timing was broken since beta 1.. - (Robotics Life and others again..) I tried to store 0x100 to - 8-bit buffer.. (and oops^2) -- Pro Wizard module ripper included! (http://asle.free.fr/prowiz/) - Supports over 50 packed tracker formats, automatically converts - them back to standard Protracker format. -- enabling warp-mode (END+PAUSE) does not freeze the emulator in - JIT-modes anymore -- moved multirevolution (= copy protections that use weak bits) - code from common disk emulation to disk image-specific code -- improved FDI2 decoding (Vincent Joguin) - -Beta 4: - -- made debugger t and z -commands log all exceptions -- state save/restore added to input-tab -- dropped configuration file separation. maybe in next release, - will need much more design time.. -- FPU emulation bug fix. Fxxx.B #yy,FPz-style commands used wrong - address (high byte instead of low byte) to fetch immediate value. - It seems this has always been broken.. -- configuration load/save page now remembers last selected config - file -- m68k shift instructions timing improved in cycle-exact mode - -Beta 3: - - NOTE: ignore the "Type"-select box in configuration page. It will - change in next beta. Comments are not accepted :) - -- caps bitcell timed track + saveimage crash fixed -- made GUI slightly smaller and improved child-dialog positioning -- updates systray icon if explorer restarts -- dropping config file to gui or window restarts emulation immediately - if "Show GUI on startup"-checkbox in new config file is unchecked -- undocumented filesys_no_uaefsdb-config option added to GUI - (prevents creation of new UAEFSDB-files which means all comments, - protection flags not supported by host filesystem are lost, also it - prevents creation of file names with "illegal" characters inside - of emulation) -- "Knin Peaks" disk emulation fix broke software that set DSKLEN = 0 - (usually used by some copy protections) Fixed. -- store windowed GUI position in registry. GUI in fullscreen is - always centered. -- JSR-instruction's prefetch fixed (protection code in original - Datastorm) -- Windows XP styles supported -- 68000 exception processing stack pushes are now executed in - exactly the same order as real 68000 does them (ce-mode only) -- D-channel only blit with ALWM or AFWM != 0xffff fixed - (ce-mode only, Elfmania loading screen) -- caches configuration file list, reload only when saving - or deleting. -- refresh rates in parenthesis don't anymore get reset to default - (parenthesis = display driver does not support selected rate - but it still may be available if some tweaking program is in use) -- added supported refresh rates to winuaebootlog.txt -- debugger breakpoints and memwatch points work now even if address - register's high 8 bits contain crap and UAE is emulating 24-bit - address space (copy protections..) -- implemented more correct interrupt delays and removed now obsolete - SPCFLAG_DOINT, also (temporarily?) added experimental 68020+ - interrupt "fix" which may not be safe.. -- POTGO fix (even "simple" io-port handling is complex in Amiga..) - fixes for example The Band's Human Killing Machine trainer -- audio emulation tweaks. noise in Warhead and Hammerfist, 100 most - remembered C64 tunes freeze and most importantly, without breaking - Mission Elevator :) -- compressed state file Action Replay bug fix (but AR statefile - support isn't too stable) -- added missing address error exception check in exception handler - (and another copy protection works..) - -Beta 2: - -- full drag'n'drop support, config files/disk images/state files/roms - supported. -- entering gui from smaller than 640x480 fullscreen mode fixed - -Beta 1: - -- GUI update! I am expecting lots of suggestions.. -- Configuration Load/Save-page updated, directory support addded -- replaced floppy text box with select box, works as a combined disk - image text box and history list (30 last used images, also - automatically lists images inside zips) History list is stored in - registry. -- added Disks-page for quick disk swapping (work in progress) -- systray icon and menu -- new icons (Jani Wilen) - -- scsi logging improved and moved to non-host specific code -- AmiTradeCenter (ftp-client) bsdsocket emulation compatibility fix (SR) -- gethostname() CTRL-C-signal fix (SR) -- added debugger audio channel enable/disable command - (am ) -- Final (...) sprite-bitplane collision fix (Aunt Arctic Adventure) -- IRQ level 7 didn't wake CPU up from possible STOP-state -- END+PAUSE warp-mode sets frameskip temporarily to 10 (2-8x speedup) - except in cycle-exact mode (ce-mode's timing needs zero frameskip) -- added Quit emulator -option to input source list -- MODE SENSE/SELECT 6<>10 translation bug fix, 4 last data bytes were - replaced with random data (usually zeros) Was not noticed because - most programs use larger buffer than required. -- cause bus error exception (and logs current CPU state) if program - jumps to non-existing memory and CPU is 68020+. ("Your Amiga program - just did something terribly stupid") -- added exception handler that tries to trap instruction opcode - accesses. You see small dialog box explaining the situation. it - will be removed in release version. This usually happens when memory - gets corrupted and program flow "falls" off the end of memory bank. - These two fixes should prevent most 68020 and/or JIT WinUAE crashes - without any perfomance loss. -- CE-mode 68000 instruction tweaks here and there - (I found out that you can use special blitter mode to "log" data bus.. - More fixes later) -- JIT is confirmed compatible with Windows XP SP2's data execution - prevention (missed three smaller buffers in previous DEP fix) -- crash automatically creates minidump file to WinUAE's directory - (winuae_yyyymmdd_hhmmss.dmp) Minidumps helps debugging the crash. - Zip and send the file if I request it. -- RTS/RTD/RTE return address exception 3 fix -- Picasso96 WaitForVSync fixed, demo "Fake Electronic Lightshow" by - Ephidrena is now usable in RTG-mode. - Windowed mode = Virtual vsync. Uses frame rate from gui, default = 60 - Fullscreen = Virtual vsync. Uses fullscreen mode's refresh rate. - Fullscreen + Vsync = real vsync. - btw, before someone asks after checking the sources: update is - "hidden" in filesys.asm.. -- zipped statefiles and zipped dms files work again -- ancient 8-bit Picasso96-mode palette problem solved -- don't crash if emulated harddisk is removed while emulation is - running -- disk emulation fix (Knin Peaks by Reality) -- cycle-exact single channel blit speed fix (very undocumented - feature..) - fixes slowdown in demos Revival and How 2 Skin a Cat. - -0.8.25: - -- even more improved AVIOutput. Added enable/disable button, entering GUI - does not stop the recording anymore. Picasso96 modes supported. - (config file support will be added in future version) -- cycle exact blitter B-channel handling fix (Arte) -- drivesound: don't play "snatch"-sound if drive is empty -- "2000AD"-fix removed, it isn't really right either, later... - -Beta 3: (final?) - -- added uaescsi.device logging, enable it with -scsilog command line parameter -- Windows XP multimouse really works now -- added uaescsi.device ATAPI INQUIRY and MODE SENSE/SELECT 6<>10 translation code, - fixes IDE CDROM compatibility problems with PlayCD and probably others too. - (thanks to Oliver Kastl) TEST THIS! -- added frame limit -checkbox to avioutput page. checked = disable frame limit - and don't output sound, unchecked = frame limit enabled and sound output enabled. - (maybe somebody wants to record and play the game at the same time..) - -Beta 2: - -- drive sound sample rate conversion code was total crap.. -- calcdiw() vpos >= minfirstline-check re-commented, correct place is in decide_line() - (corrupted some regular Workbench native screen modes) -- display/resolution enumeration code updates -- desktop size check corrected -- increased supported input devices from 4 to 6 -- some small directinput cleanups -- bsdsocket emulation update. CNet's SMTPd works now. (Stephan Riedelbeck) -- don't use bitcell timing buffer when writing to disk.. -- avioutput is now much faster (on some display cards it was already fast but - on others it was very slow, about max 5fps..) - Display data is fetched directly from UAE's internal buffer instead of using - slow reading from display RAM if any display filter is enabled (except D3D or OGL) - Also display size and depth config options were removed, now you get exactly - the same display as you see. (I didn't want to add complex display depth - conversion code when you can easily do the same by changing WinUAE's display - settings..) - -Beta 1: - -- "Windows mouse" doubleclicking fixed -- drive sound volume was not saved to config file -- right border is not clipped anymore even if program uses max overscan. Finally.. - (Settlers, Pinball Illusions etc..) NOTE: screen position has changed a little. -- filter display buffer width increased to 736, old 708 was too small for max overscan. - (noted here because it can also affect screen position slightly in filter-modes) -- fixed display corruption in programs that update DDFSTRT just when display - starts. Fixes Mystic Tunes by Vertical, Bierkrug-tro by TEK, Forgotten Realms - Slideshow '90 by Fraxion and probably much more..) -- "more compatible" now enables very basic prefetch emulation in non-JIT - 68010-68040 CPU models. (very rarely needed, I currently know only 2 programs) -- multimonitor code didn't ignore disabled displays, caused DX errors when - WinUAE started. -- input code didn't check max number of detected devices, having more than 4 - mice, joysticks or keyboards in input tab crashed WinUAE. -- don't start bitplane dma until vpos >= minfirstline (comparison was commented - out for some reason) Fixes old demo Back in bizness by 2000AD -- RTG-RAM start address was not saved to statefile, restoring it caused RTG - RAM being mapped over chip RAM.. (not really problem because full Picasso96 - state is not supported yet) - - -0.8.24 - -Beta 3: - -- drive sound was mixing (empty) sounds even if all drive sounds were disabled -- added "Windows mouse" to input-tab. It has exactly the same "feeling" as WinUAE's - mouse before directinput-input code was implemented. -- fixed stupid debugger bug, remove breakpoint-command didn't check if breakpoint was already removed.. -- "saveimages" were limited to "parent"-image's max number of tracks (for example writing - to track 80 was ignored if parent image was standard 80 track (0-79) adf) -- lores-checkbox is back, it wasn't as useless as I originally thought.. -- debugger 't'-command can now be used to step more than 1 instruction (t ) -- cycle-exact BLITPRI timing fix (Robotics Life, probably others too..) -- improved 68k MUL and DIV -instruction timing in ce-mode -- improved FDI 2.0 support - -Beta 2: - -- more debugger updates, search-command s <"string">/ [ [] - bl lists all stored "state recorder" states -- F12 now works even if all keyboard(s) are disabled in input-tab.. -- added volume-slider to sound-tab, added volume up/down/mute shortcuts - (end+numpad minus, end+numpad plus and mute = end+numpad star, also mapped to "multimedia" keys) -- hide single raw mouse, having two identical mice is too confusing I think. -- moved some hardcoded GUI-strings to resource -- power/led/etc led initialization fixed (editing the GUI before starting the emulation didn't - update all necessary variables, editing on the fly worked fine) -- display frequency-setting affects now Picasso96-modes (no more default refresh rate) -- drive sound emulation :) (James Bagg, me) - You can also use external samples if you put files called drive_click_xxx.wav, - drive_spin_xxx.wav, drive_startup_xxx.wav and drive_snatch_xxx.wav (xxx = whatever you want, - "click" is the only mandatory sample) to directory called \uae_data\ (better suggestions?) -- fullscreen multimonitor support -- better multimonitor compatibility (use correct display limits instead of primary display - limits when positioning WinUAE's main window, non-primary screen overlay mode works etc..) -- "state recorder" is now mostly working. It takes automatic state saves every x seconds to its internal - buffer (size is also configurable). "Rewind"-key can be configured in input-tab or also END+numpad / - can be used. (This feature may not be in next official release) - -Beta 1: - -- don't ignore frame skip setting when capturing AVI -- implemented "memory state recorder" (don't ask about it yet..) -- bsdsocket updates from Stephan Riedelbeck - fixes TCP device TCP:, Apache and maybe other programs too. -- Windows XP multi-mouse support and DirectInput mouse-handling updates - Windows XP-only: Input-tab now lists regular DirectInput-mouse and - one or more "raw" mouse. - Windows 9x/ME: only USB-mice can be handled separately, PS/2 mouse is always - only connected to "supermouse" (DirectInput system default mouse that combines all - separate mouse events, marked with '*' in input-tab) - -> two USB mice are required for two mouse games under 9x/ME - and finally, Windows 2000 does not have any support for multiple mice, - all you get is single "supermouse". - Big note: currently you need to disable default-mouse first if you want any - events from non-default mouse. -- fixed JIT default settings without loading any configuration - (log was filling with JIT error messages..) -- cleaned up Kickstart ROM loader part of memory.c -- saving compressed state file without zlib1.dll didn't correctly fall back to non-compressed mode - (created corrupted statefiles with completely empty memory chunks..) -- crash after 4th or 5th state save finally fixed (very embarrassing mistake..) -- fixed crash when Picasso96 was enabled and graphics filter GUI was accessed -- FDI 2.0 support (not complete yet) -- lots of debugger improvements (much more useful now..) - - f-command extended: - f without parameters = break when PC not in ROM and current instruction is not - 0x4ef9 (don't break when executing library jump tables) Great for finding start - address of bootblock. - f i = break when PC points to RTS/RTR/RTE-instruction - f i = break when PC points to instruction opcode - f = add/remove new breakpoint (max 8) - fd = remove all breakpoints - f = break when <= PC <= - - W-command's value-parameter can be decimal 12345 or hexadecimal (0x12345 or $12345) - write size is byte if val < 256, word if 255 > val < 65536 and long if val > 65535. - (previous version's write size was always long and was limited to chip ram) - - memwatch break points added, w <0-3>
[] - break when address space between address and address + length is accessed and - if accessed value = R = break only on reads, W = writes, RW = both - - i-command: interrups and traps combined, VBR supported - - custom register dump -command added (e), dumps the contents of all existing registers - between 0xdff000-0xdf1ff. - - CIA dump-output slightly modified, added TOD stopped status-flag - - exiting debugger automatically creates "memory state" and b-command can be used - to "rewind" (again, don't ask and don't try yet..) - -0823 - -- small AUDxDAT fix (The Pawn's music was broken again..) - -Beta 4: - -- sprite emulation fix, broke in b1 (Hybris bullets/score) -- JIT cache is now allocated with PAGE_EXECUTE-flag (=JIT compiled code is allowed to run) - Future Windows versions may not enable PAGE_EXECUTE by default due to security reasons. -- merged first source patch from Richard Drummond (http://www.rcdrummond.net/uae/) -- "figure_pixel_formats" possible infinite loop fixed -- zip/gzip support requires now new zlib1.dll instead of old zlib.dll -- forced blitter finish when saving state didn't work correctly in ce-mode (yeah, again..) - (could cause infinite loop and freeze when saving) - -Beta 3: - -- non-ce blitter speed was wrong (broke in b1) -- MAPROM-emulation checkbox fixed and moved to ROM-tab -- problems with keyboard leds and priorities fixed -- slightly changed filter GUI (support for future 3x/4x filters) -- increased the range of filter size/position adjustments -- fixed bug that causes randomly lost characters received from serial port -- delay simultaneous disk inserts -- more commands (pause, turbo, irq7 etc..) added to input-tab -- scale is halved when in D3D/OGL-mode and resolution is smaller than 450*350 -- clock sync option removed from GUI (causes too many problems) -- screenshot system freeze fixed (Windows9x/ME only) - -Beta 2: - -- don't complain about AGA requiring 16 bit if selected screen mode is 8-bit Picasso96-mode -- blitter emulation updates for very buggy programs that starts blitter before updating - BLTCON0 and BLTCON1.. (old Psygnosis games) Was partially broken in R9. This fix was already - included in B1 but I forgot to add changelog entry. -- fixed bug in blitter update that broke textured line mode -- uaescsi.device unit numbers always start from 0 (0 = first CDROM, 1 = possible second - and finally other SCSI devices if available) Unit 0 is reserved for CDROM, first available - unit number will be 1 if PC has no CDROM(s) but other supported SCSI devices. - This makes CD filesystem installation more user friendlier. -- AHI emulation improvements (Bernd Roesch) -- state saving happens immediately after selecting state file name (woohoo..) -- complain if HD emulation is enabled when saving state -- added some unused keycodes to input-tab -- forced blitter finish when saving state didn't work correctly in ce-mode - resulting in slightly corrupted state files. -- fixed very stupid mistake in CIA parallel port read routine, fixes parallel port - joystick adapter, was broken in r8b4. -- Picasso96 faster solid window moving (Bernd Roesch) -- bcc.b was 2 cycles too fast in ce-mode (probably does not fix anything..) -- SPTI-CDROM didn't use shared mode, fixes media change detection problems -- added MAPROM-like feature (jumper on Blizzard's accelerator cards that map Kickstart - ROM space to RAM) Enable-checkbox in misc-tab, uaelib function 80 returns mapped memory area. - (0 = no support, 0xffffffff = not enabled, other = mapped RAM address, currently hardcoded - to 0xe00000) Thanks to BlizKick's author for adding support - -Beta 1: - -- cpu usage meter implemented, results may be surprising... - (note that in "fastest possible" it always shows 100%+ except when - idle-mode is enabled and cpu is executing STOP-instruction) -- more undocumented features found, switching bitplane DMA on during DDF can have - (at least) 3 different results: - 1: OCS only: nothing happens, bitplane fetches don't restart until next line - (only this condition was emulated in older versions) - 2: ECS/AGA: fetches start normally if DMA was disabled outside of DDF or during - current line (Sixth Sense Investigation's buggy copper list requires this..) - 3: ECS/AGA: display processing goes to "DDFSTOP passed"-condition immediately - if DMA was disabled inside of DDF during any previous line -- add missing ".avi" automatically to avioutput filename -- overlay state was not reset when changing display modes, caused - "The selected screen mode can't be "-message and forced - unnecessary fullscreen mode. -- Page Up-key is available for user configuration if Action Replay is not enabled -- AWeb/IBrowse bsdsocket.library possible connection freeze/slowdown fix - (Stephan Riedelbeck) -- switching from 68000 to 68020+ JIT-mode works and also fixed crash if switching - from 68000+CE-mode to JIT-mode -- added hack that syncs CIA-TOD to host system's time. No need to run restoretime - hack anymore. Checkbox in misc-tab. (hack = may cause compatibility problems) -- misc-tab split. Priority options moved to "Priority"-tab, added separate priority - setting for active, inactive and minimized WinUAE. -- don't zero LOF-bit when executing customreset(), fixes original Shinobi -- bsdsocket SBTC_SIGIOMASK support, fixes Jabberwocky. Thread priority updates. - (Stephan Riedelbeck) -- enforcer-style debugging improved (Bernd Roesch, Sebastian Bauer) -- restoring state didn't update floppy drive type correctly, fixed -- sometimes Amiga left mouse button got stuck when WinUAE lost focus, fixed - -R9: - -Beta 4: - -- fullscreen height was incorrectly initialized when loading "old" config files -- avioutput width and height are correctly initialized -- null filter centering fixed (null is 1x, not 2x..) -- moving GUI over fullscreen software filter mode didn't refresh screen -- it is now possible to disable creation of UAEFSDB-files by adding - unofficial config entry "filesys_no_fsdb=true" to config file -- automatic AVIOutput AVI split before file size goes over 2G -- GUI disappearing "behind" the screen in fullscreen mode fixed -- fixed "bug" (removed one consistency check..) in unzip code, some zip files - didn't uncompress. Either unzip code I use is buggy or zip file is slightly - broken (but winzip nor winrar didn't complain) -- AVIOutput sound and video sync problems fixed -- don't stop AVIOuput recording when entering END+Fx-disk change dialog -- "AGA 16-bit"-message box was incorrectly shown in windowed mode -- "saveimage"-floppy write support was again broken.. (it was possible to make - zipped files write-enabled but writing to "saveimage" was still ignored..) - -Beta 3: - -- software filters fixed in windowed non-overlay mode - Only Scale2X and Null support 32-bit, filter defaults to null if unsupported - filter is selected. (wrong filter is better than black screen..) -- crash with sound disabled fixed -- another bsdsocket connection fix -- separated width and height for fullscreen and windowed modes -- hide lores-checkbox, lores is now automatically enabled if doubling is disabled - (But maybe there was/is reason for separate horizontal and vertical doubling?) -- removed lots of compilation warnings -- replaced IOCTL_GET_GEOMETRY with more compatible IOCTL_CDROM_GET_GEOMETRY, - properly fixes Windows 2000 CD32 CD detection. -- disable "Add Harddrive"-button if Windows is not NT-based - -Beta 2: - -- immediate blitter works again -- return 0xffffffff again when CPU >= 68020 and reading non-existing memory -- uncompressed RAM dump added to state save dialog -- loading config that mounts floppy drive don't anymore cause - "no disk in drive A:"-dialog -- bsdsocket.library updates (Stephan Riedelbeck) - - accept(socket, 0, 0) works, fixes IRCD - - gethostbyname (Windows 9x only) could freeze for couple of seconds - - reset socket error after gethostbyname, fixes AmyGate - - connection failures on some systems -- scale2x, supereagle, 2xsai and super2xsai 2x filters integrated - (all except scale2x borrowed from ScummVM project) - filter configuration changed again, null filter added (=filter that - does nothing but allows vertical and horizontal position adjustment) - Currently only supports 16-bit modes (automatically forces 16-bit) -- added message and force 16-bit if 8-bit and AGA is enabled -- SPTI CDROM eject/insert media detection fix -- it seems IOCTL_DISK_GET_DRIVE_GEOMETRY is only supported on Windows XP, - added workaround that fixes CD32 emulation in non-ASPI mode on Windows 2000 - -Beta 1: - -- fixed (I hope) compiler optimization bug, at least ROXL.W didn't set N-flag correctly - maybe other rarely used instructions also had problems - (broke CAPS Rick Dangerous 2 protection code) -- NTSC-mode vsync sound fixed -- don't crash in CD32 mode if both ASPI and SPTI are not available -- added CAPS-support (and CE-support) to mini-version due to popular request. - I hope this does not cause any unnecessary slowdown. Executable is now - 2x bigger because of included "more compatible" and "ce"-cpu emulators. -- implemented 100% (I think..) exact blitter block-mode cycle diagram in ce-mode - (minus possible bugs..) All tested "100+ bob" -routines work now without flashing. - line mode cycle diagram is still not completely known. -- small ASPI CDROM media detection code change (may or may not help..) -- simplify audio emulation if 68020 or better selected. New code is "too" correct - and causes timing problems if custom register/chip ram access is really too fast - (fixes TBL's Tint-demo's music) -- sound calibration-button (may not be in final release) -- ticking/unticking 68000 "more compatible" checkbox on the fly now reconfigures the cpu - emulator correctly, emulated program should not crash anymore. -- replaced "run at higher priority" with priority selection select box -- don't write obsolete config entries from old config file when saving -- D3D AVI capture works again (D3D AVI support code was mysteriously disappeared..) -- more audio changes again, old "Mission Elevator"-fix still wasn't correct enough - (broke some music players) Audio state machine transitions from 1 to 5 seem to have - unexplained delay(s). I think ME is the only game that requires this (and only because - of stupid bug in ME's sound effect code..) -- SPTI CDROM media detection fixed (never noticed it because enabling debug-logging - "fixed" the bug..) -- SPTI/ASPI CDROM possible crash fixed (both CD ROM fixes needed before I managed - to install OS 3.9 without problems) - -- R8 - -Beta 6: - -- blitter always used exclusive fill mode, caused single pixel gap between - filled polygons if program used inclusive mode (for example The Pink Circle by Arcane) - I broke it accidentally some releases ago, I think... -- optimized Picasso96 blitter emulation (Bernd Roesch) -- always compress "quick" state files -- startup config file description scan crash fixed (needed more than 100 or so config files..) -- size of display resolution table was too small -- mapped "AppMenu"-key to right Amiga key - -Beta 5: - -- display width is now forced divisible by 8 when adjusting width on the fly -- miniwinuae and regular winuae display mode list is now sorted identically -- cpu speed calculation overflowed if cpu frequency was >~2.8GHz (latest P4 CPUs) - caused huge slowdown -- JIT CPU nop's removed -- clear execbase when reseting if memory size (any memory) was adjusted -- don't mount non-existing virtual directories (prevents red screen reset loop) -- updated AHI support (Bernd Roesch) -- F6-state shortcut removed, replaced with END + (restore) - and CTRL or SHIFT + END + (save) - zero or period = currently selected statefile (includes period because my keyboard - ignores simultaneous CTRL/SHIFT + END + 0..) - 1 - 9 = currently selected statefile + "_" + added to end of file but - before extension. -- force full screen update after loading state file -- disable beta 4's "Fighting Soccer fix" if CPU >= 68020. I think there are too - many bad sound routines that fail with "too" fast CPU or custom chipset access speed. -- fixed (I hope..) rare filesys crash when rebooting (introduced in beta 2) - -Beta 4: - -- wav-output created slightly incorrect wave files and frequency was not updated correctly -- GUI CPU JIT-page update, enable JIT checkboxes only if "Force Settings"-checkbox is ticked -- AR2/3 ROM bank size fixed -- CD32 audio CD play/stop/pause commands changed slightly, may fix some ASPI problems -- Picasso96 windowed<>fullscreen switch and reseting while in Picasso96 mode fixed - (broken in beta 2) -- audio emulation fix, AUDxLEN is copied to backup register when DMA is enabled but - AUDxPT when first DMA fetch happens. (fixes "Fighting Soccer" referee speech) -- D3D/OpenGL automatic doubling if selected resolution is "too large" -- free old harddrives before loading new config -- CIA-A TOD rate was about 11% too fast (broke in R7B1) - -Beta 3: - -- joystick keyboard layout B and C 2nd firebutton mapping - (Right and left shift) was wrong and caused crashes. -- CD32 media change detection works properly (again..) -- bsdsocket.library emulation works again (stupid merge error by me..) -- prevent badly crashing programs setting very crazy vblank frequencies -- pause CD32 cd audio when GUI is active -- decreased the rate of HD-led flickering because there are keyboards that - are really slow in changing led state -- fixed 57600 to 56000 serial bitrate rounding - -Beta 2: - -- fixed extended ADF HD floppy support -- DirectX version check fixed, only D3D support requires DX9 -- selected 3D-mode was not saved correctly to config file, fixed -- About-tab is back.. (broken in B1) -- call fixup_prefs_dimensions() after loading config -- POTGO/POTGOR emulation improved, more compatible CD32 pad emulation -- Picasso96 display mode id strings fixed (broken in B1) -- SCSI emulation was accidentally disabled in B1 -- added Direct3D screenshot support -- removed Output-tab from mini-version -- compiler updated to Visual Studio Net 2003 -- "intelligent" CD detection in CD32 mode -- lores, correct aspect and linedoubling can be changed on the fly -- added wav-sound output support to Output-tab (select "*.wav" from "Save As Type:"-select box) -- virtual directory harddisk mapped to read-only directory (for example network share) - is forced read-only -- it is (finally?) possible to return back to GUI and/or load new configuration. - "Load" and "Load from"-buttons are now always enabled, new "Exit"-button can be - used to return back to GUI (with old configuration intact) - WARNING: expect bugs and memory leaks.. -- bsdsocket.library emulation updates (Stephan Riedelbeck) -- changed mini-version's default config to basic A500 - - -Beta 1: - -- source tree is now more configurable. sysconfig.h contains defines that can be used - to enable or disable emulation features like JIT, AGA, autoconfig, harddisks, drop - all CPU features except 68000 etc.. - I hope this helps porting (Win)UAE to slower devices like some PDAs etc.. -- win32_displaymode and PicassoResolution -structures merged -- DirectDraw fullscreen mode flags fix (Sane) -- added workaround for buggy sound drivers (ISA SB16, maybe others) that return zero as - minimum and maximum allowed sample rate... -- fast copper was always disabled. oops.. -- another "last_custom_value" tweak, fixes Sonic - Irrepressible intro in ECS-mode -- non-DMA audio mode properly emulated, fixes Mortville Manor's and Maupiti Island's speech -- ext2-adfs' write-protection check fixed -- Direct3D filtering and scaling implemented. Should be faster because D3D allows - direct rendering to texture's memory space. Note, DX9 required due to stupid MS - decision: opening child windows (F12-GUI etc..) while in D3D fullscreen mode is not - supported by DX8 API (Window simply disappears "behind" the screen..) - Unfortunately I get weird smearing effect when moving the GUI window (display driver bug?) -- display resolution and depth can be changed on the fly -- D3D/OpenGL mode image adjustments changed, size sliders at 0/0 = 1:1 display ratio -- joypad problems fixed, bug affected some pads that have "point-of-view hat"-style - direction controller -- fixed rare filesystem crash when copying files to directory in virtual harddisk's root -- END+F6 = load from last selected state file, SHIFT+END+F6 = save to last selected state file -- game Barney and Freddy Mouse by Kingsoft needs CLXDAT bit 15 set ("not used" says HRM but - always set on my A500 and A1200) -- exiting GUI with Cancel or ESC cancels state save/restore request -- Freespace demo JIT FPU bug fix (Bernd Roesch) -- FPU rounding bug fix (Bernd Roesch) -- fast copper state saved to config file (I don't see any other way to fix graphics bugs on - some games that fast copper causes) -- CD32 joypad emulation works again (oops, has been broken quite a long time..), - default CD32 keyboard joypad mapping fixed, default joypad config added - - -R7 (30.05.2003) - -Beta 5: - -- zipped ipf-image support (new CAPS plugin required). No official multidisk support yet. - (unofficially you can add "/" or "\" to the end of path, - for example "c:\caps\PinballFantasies.zip\PinballFantasies_CourseDisk1.ipf") - new CAPS plugin only for beta testers included. -- "KickShifter" ROM checksum recalculation was wrong, fixes red screen with some Kickstart versions -- bsdsocket Windows 2000/XP AmTelnet SSH freeze fixed (Stephen Riedelbeck) -- new AHI driver, fix for wrong maxsamplesize, includes separate patch for DigiBooster Pro - slowdown (Bernd Roesch) - -Beta 4: - -- "SWIV-fix" wasn't working if lores-mode was ticked, fixed -- "sprites outside playfield"-fix is now working in lores mode, also fixes black bar that appeared - when running programs that use hires or shres mode, BRDSPRT was enabled and mouse pointer was - moved near right border -- fixed broken "ShapeShifter" Kickstart patch code, replaced with generic patcher - (KS 3.0+ use separate code path for 68040+ which was not patched and KS 2.04 patch was just wrong) -- "fake RDB" filesystem updates, multiple non-RDB custom filesystems works now properly -- GUI filesystem selection crash bug fixed -- beta 3 keyboard input update wasn't complete (loading new config was using old incompatible code) -- selected sound sample rate wasn't updated correctly if sound driver didn't support selected rate -- rewritten and cleaned display refresh rate selection code -- more weird undocumented blitter line mode features emulated: - - after first pixel, C-channel's address is copied to D-channel. - (first pixel is written to address pointed by D-channel, all following pixels are written to - C-channel's address) Fixes Frantic's Cardamom and Cardamon demos. - - BLTAPT stays unchanged if A channel is disabled. I found this useless feature when running - tests on my A1200, probably never really used.. -- "collision detection does NOT change when you select either single- or dual-playfield mode" - says HRM. BZZZT, WRONG! Sprite to playfield collision detection should be correct (?) now. - Fixes Inferior and Sub Rally (I call it "Suck Rally" for obvious reasons..) -- sprite DMA start raster line in NTSC mode fixed. This was surprising, first visible line in - PAL is 28, NTSC 27. But first possible PAL sprite DMA position is 25, NTSC start is line 20. - I was expecting smaller difference. Tested on my PAL A1200 in NTSC-mode. - -Beta 3: - -- horiz centering bug fixed (could cause crashes) -- trace-mode fix. fixes CAPS Defenders of Earth trace-vector-decoder protection routine. -- POTGOR emulation fixed (Sound of Silents -music disk ugly right mouse button test code.. - here is snippet: cmp.w #$0100,$dff016; bne right_button_not_pushed; ...) -- sectors, surfaces and reserved are automatically zeroed if selected hardfile contains RDB -- multiple keyboards supported, config save crash/non-working keyboard fixed when MS SideWinder - Virtual Keyboard driver is installed. -- MOVEC-instruction fix, register 3 is 68040 only, it is not supported by 68020 (ancient bug, fixes - Aladdin AGA and Banshee AGA in 68020 mode. CPU detection code detected MMU due to bug..) -- SWIV scoreboard graphics bug fixed (was caused by very weird undocumented OCS/ECS-only hardware feature) -- input point-of-view hat controller support -- small audio hardware reset fix - -Beta 2: - -- 68020+ instruction bcc.l was broken in 68000/68010 mode when cycle-exact mode was implemented - (is really useless version of bcc.b when run under 68000/68010), fixes Paradox cracked Nitro -- harddisk partition detection updates. It seems Windows sometimes lies about drive's partition table - (drive really only contains RDB partitions but Windows still thinks there are some empty - MBR partitions..) -- improved Action Replay state file support -- new misc-page layout, added "Run at higher priority"-checkbox to misc page (sets process priority to higher - than normal when WinUAE is active, helps skips and jumps caused by background processes) -- sound frequency GUI updated, allowed frequency range is now from 8000 to 48000 (max 96000 if sound card supports it) -- some experimental and buggy copper code from beta 1 removed.. -- audio filter emulation (formula from - http://groups.google.com/groups?q=g:thl3970091855d&dq=&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=5sntr1%243ki%241%40nef.ens.fr) -- button/key mapped to mouse direction wasn't working correctly, fixed -- another bsdsocket fix (Stephen Riedelbeck) - -Beta 1 - -- audio emulation fixes (fixes Mission Elevator again, this time proper fix) -- removed obsolete code (I think so..) when bitplane count during the raster line was - decreased (single line of crap between playing area and scoreboard on Mission Elevator) -- Rainbow Island works again (broke in beta 4) -- serial port settings can be changed on the fly -- changing printer on the fly works -- printer didn't work if also serial port was enabled -- added serial port "direct"-checkbox, forces 115200 bit rate, lowers latency, - needed by some serial linked games (Lotus 2) when connecting two PCs running WinUAE -- partial Action Replay state file support -- bsd socketfix for Ping Traceroute UDP Ping (Stephan Riedelbeck) - If you can test diropus Magellan with FTP Lister so please test,if this work as before. - Try to connect to de.aminet.net dir aminet/new with anon on - If you get no error 22 report from diropus for 5 trys all work ok -- replaced uae_int with level 2 interrupt (was level 6), fixes buggy HD installable - demos/games that disable level 6 interrupt. Using level 2 is more compatible - because A1200/A4000 IDE-controller and A590/A2091 use level 2 interrupt. - Also fixed bug that added uae_int handler twice. Set priority of interrupt to 20 (A1200 IDE uses it) - Fixes game Old Timer and demo Captured Dreams by The Black Lotus (and probably much more..) -- CIA OVL-bit is ignored in AGA Amigas -- proper emulation of POTxDAT counters, analog joystick support in input-tab -- blitter in linedraw mode is weird, D-channel can be disabled without any effect on drawn line, enabling - C-channel is enough. (undocumented feature, fixes Great Fun #16 packdisk) -- added hack that fixes buggy demos that read accidentally from write-only or non-existing custom - registers and expect sane return values. Fixes Captured Dreams, Industrial Fudge, Codetrash. -- changed sprite-attach handling, even sprite attach-bit must not be ignored because setting it - does something interesting.. and thats another undocumented feature, fixes Elfmania scoreboard -- DDFSTOP >= 0xe4 effect DOES NOT happen on OCS chipset, only on ECS and AGA... (fixes Sargon History -megademo) -- copper WAIT-wakeup state may not need free cycle, fixes Full Contact but I am not sure if this is correct fix.. -- palette wasn't updated properly when entering and exiting the gui in fullscreen 8-bit Picasso96 mode -- new application icon (Michael Battilana) - - -R6 (19.04.2003) - -Beta 6 (final?) - -- disabling fast ram (or any expansion ram) and reseting the Amiga doesn't crash anymore -- do not reset when selected CPU is 68000 + compatible or cycle-exact and when program counter - goes to no man's land (fixes demo Purple by Warfalcons, uses very bad and tricky protection..) -- right CTRL can be used to reset Amiga (RCTRL + INSERT + HOME or RCTRL + Windows keys) -- 68020+ word moves from non-word aligned custom registers fixed (for example move.w $dff005,d0 uuargh..) - (fixes 4k AGA intro, Fuck the Pc! by Anorganic/Promise!) -- DDFSTOP >= 0xe4 effect also happens on OCS and ECS chipsets, don't know why I missed that.. - (fixes Wind It Up Megamix 93) -- added DirectX 8 test -- full DIWHIGH save/restore support added -- OCS Agnus ignores DDFSTRT/DDFSTOP bit 1, this fixes Eliminator/Double Dragon 2 properly - without stupid hacks. (Yes, both games are OCS only, tested on OCS and ECS A500 and A1000) -- default chipset changed to ECS Agnus and selecting >0.5M chip ram automatically enables ECS Agnus - more compatible and less (hopefully..) complaints about programs that suddenly fail under OCS chipset.. - -Beta 5 - -- fixed stupid ASPI bug (bug introduced in B4) -- fixed ce-mode blitter freeze in Picasso96 modes -- fixed crash in Picasso96 mode if OpenGL was enabled (I think so, it didn't crash here..) -- pause-mode (END+PAUSE) fixed (bug introduced in B4) -- simplified and improved disk wordsync and indexsync emulation (fixes Quadlite's "El Egg Tronic Quarts" -slideshow) -- CIA-A LED and OVL bit fix (wasn't proper enough last time..) -- input-tab disable-checkbox implemented, unticked = selected input device is disabled completely -- added Amiga joystick port swap button to input-tab and other input fixes -- AGA dualplayfield color fix, this confirms that BPLCON4 is used normally in DPF mode - (fixes Tube Warriors bottom of screen, one wrong colored horizontal line still remains) -- 9-bit mode serial port hack implemented. PC hardware don't support 9-bit mode (1 start, 9 data and 1 stop bits) - but this hack transparently doubles the baud rate and sends/receives two characters when using 9-bit mode. - Only works if two PCs running WinUAE are connected, PC - Amiga connection naturally can't work. - Serial linked games should now work (Stunt Car Racer and Lotus 2 tested and confirmed working) -- added support for weird AGA only -feature, if DDFSTOP is >= 0xe4 (= can't be never reached), display DMA - always starts at 0x18 (DDFSTRT is ignored). This also confirms that position 0x18 is first possible bitplane - DMA slot. (fixes CCCP-demo and Hellfire cractro graphics garbage) -- ECS/AGA SPRxCTL bits 5 and 6 emulated (vertical start and stop bit 9) (fixes The Dark Demon - Burning Spears demo) -- chipset type can be changed on the fly - -Beta 4 - -- blitter slowdown code fix -- CD32 pad buttons work properly again -- CPU idle checkbox replaced with a slider (was already in B3 but forgot to include changelog entry) - note that slider works now differently than in B3: - Slider fully left = disabled, every step to right increases the number of idle-calls. Quick way to find - good position: boot to WB, move slider right step by step until FPS drops below 50fps then move the - slider back left two steps. (setting depends on host CPU speed, there is no good default value, yet) -- CPU idle is always disabled in A500-speed mode (only caused trouble) -- increased the size of DirectInput buffers, no more lost input events when moving mouse very quickly - and/or using high mouse refreshrates. -- copper SKIP-instruction fix (fixes TEK's Rampage -demo partially, later part still crashes) -- uncompressed statefiles can be created by selecting "uncompressed" from "save as type"-select box -- CIA TOD fix (ALRM-interrupt is disabled when TOD is stopped, fixes Entity, which by the way has - very buggy level 2 interrupt handler..) -- fixed bsdsocket bug that caused hangups when transferring ftp data with diropus (Stephan Riedelbeck) - -Beta 3 - -- AGA BRDBLANK-bit partially supported. Fixes Aladdin AGA. NOTE: running utilities - that toggle BRDBLANK-bit doesn't update top and bottom border correctly yet. -- better (?) Pentium 4 JIT fixes merged from latest BasiliskII JIT (Bernd Roesch) -- added PAL and NTSC -strings to 50/100 and 60/120 vsync frequencies -- random sound popping fixed (workaround was to enter and exit the GUI) -- fixed freezing if RDTSC's contents suddenly jumped very far, this usually happens - when returning from hibernate-mode or waiting for a long time in GUI before returning. - (Bernd Roesch & me) -- more display updates, fixes Wild Streets (and hopefully doesn't break anything..) -- fixed bug in CDTV battery backed RAM emulation (newer CDTV extended ROMs don't freeze anymore) -- turbo-floppy mode supports writing (earlier versions only "turboed" reading) -- fixed writing to multiple floppies simultaneously - (for example SuperDuper with multiple destination drives selected) -- proper CIA OVL bit emulation (fixes very tricky CAPS Double Dragon 2 protection code) - -Beta 2 - -- more audio tweaks, Liverpool works again -- implemented Picasso96 RAM state file support, added "hooks" for saving/restoring full state -- ADKCON UARTBRK-bit really works now (was commented out in beta 1) -- display emulation update, fixes Eliminator and Double Dragon 2 graphics corruption. -- major disk emulation bug fixed, could cause frozen write operation and disk corruption.. -- compressed statefile support. Statefile's RAM contents are automatically compressed when saving. - also added support for loading (g)zipped statefiles. -- GPF bug fixed when program counter was pointing to random address in 32-bit space in 24-bit mode - Fixes "more compatible"-mode only, non-compatible still crashes (not easy to fix without - performance problems or big changes), ce-mode already worked without crashing. -- fixed bug in saveimage-support, compressed disk images can now be write-enabled. -- implemented very simple code that approximates the number of cycles that bitplane DMA steals from the blitter. - Now it is possible to run some games/demos without graphics glitches in non-cycle exact mode - (for example PP Hammer and Spindizzy Worlds) -- screenshots are saved to \ScreenShots -directory -- more CIA serial port emulation updates -- fixed crash when creating empty CD32 NVRAM image file - -Beta 1 - -- input configuration autofire settings weren't saved properly -- Terrorpods background graphics fixed - (Game writes to BLTCON1, BLTAFWM and BLTALWM after writing to BLTSIZE..) -- disable Windows screensaver when WinUAE is active and GUI is not visible -- disable middle mouse button events when "Middle Mouse-Button -> ALT-TAB" is enabled. - (caused stuck middle mouse button because release event never arrived..) -- fixed crash when zlib.dll was missing and (g)zipped image was selected -- changing floppy image and clicking "Reset Amiga"-button booted from old image -- added hackish support for AGA only feature that allows sprites outside display window, - fixes Banshee AGA scoreboard and AB3D background graphics, will cause small (?) - performance loss only when program uses this feature. -- fixed ancient blitter bug, writing to address 0 was ignored. Fixes CAPS Guy Spy and Dragon's Lair. -- small "delayoffset" fix, fixes Skeleton Krew's jumpy scrolling -- floppies-tab floppy drive type/disable/enabled state select boxes didn't update internal state correctly -- DSKREADY-signal fix. DSKREADY is only low when motor is running full speed and disk is in drive. - (confirmed with my real A1200 and 2 external drives, drive always turns motor off if floppy is ejected) - Pango (and probably others too) use this signal to detect disk changes.. -- another audio bug fix, caused missing samples/noise with some music players -- partially rewritten serial code, emulated Amiga's DTR,RTS,CD,CTS and DSR lines are - directly "connected" to PC serial port pins, ADKCON UARTBRK-bit supported, SERDATR status bits - and serial interrupts are (nearly) properly timed. Configurable hardware CTS/RTS handshaking. - Of course PC hardware have some limitations: DTR and RTS are output only and - CD, CTS and DSR are input only. WARNING: may not be 100% bug free yet.. - -R5: (28.02.2003) - -Beta 8 (final?) - -- GUI problems in fullscreen mode fixed -- audio bug fixed, fixes Impossible Mission II -- another last minute change: (I really can't stop adding new features..) - added HDF filesystem selection GUI. Simply select path to Amiga - filesystem driver (FastFileSystem from WB1.3:L when booting HDF's - under KS 1.3, SmartFileSystem if you want to boot SFS formatted HDF - etc..) No more playing with roms-directory and hexadecimal names. - -Beta 7 (Release candidate, expected release date 27-28/2): - -- Murder/Crack Down audio hack-fix removed. (not needed anymore). - This must mean my audio emulation updates are correct :) - Fixes Terrorpods. -- extended adf2 support fix (loading of non-RAW tracks failed) -- implemented input-tab GUI support for 1-4 input events/input source -- Windows 9x crash fixed -- reverted back to beta 5 serial port code, there is no time to - fix all bugs now in new code. Later.. - -Beta 6: - -- audio quality should be "perfect" again -- sound-"resync" code re-enabled, vsync should be 100% smooth again - (was accidentally disabled in beta 5) -- disabled floppy drive's motor state is cleared when restoring state - (no more disabled drives and green leds) -- improved fake-RDB-filesystem loader, it is now possible to autoboot/mount - custom filesystem formatted regular HDF-files. (SFS, PFS etc..) - Requires filesystem driver in WinUAE's roms-directory, named filesystem's - "dostype in hexadecimal.fs". For example SFS's dostype is 0x53465300, file must - be named 53465300.fs (I know, not very logical but that was too easy to implement..) -- some serial port compatibility "fixes", serial port support may not work... - -Beta 5: - -- sound quality fixed (I think so..) -- removed debug code that disabled "fast copper" -- enabled very experimental 4 channel DirectSound audio code. - Amiga's 4 separate audio channels are directly fed to DirectSound - instead of using UAE's software mixing. - NOTE: currently 4+ speaker systems get strange results: each Amiga - channel goes to separate speaker.. (1 goes to front left, 2 goes - to front right, 3 goes to rear left and 4 goes to rear right..) - Not tested with 2 speaker systems.. - Enable with "-dsaudiomix" -command line parameter. - I'll try to fix the speaker problem if this is useful feature (= increases - performance noticeably compared to software mixing) -- sound interpolation-checkbox fixed and added support for both modes - (btw, are interpolation modes broken or why do they sound so bad?) -- Amiga program p96refresh let you choose higher mousepointer refreshrates in P96 - p96refresh (Bernd Roesch) -- native interface added to allow executing windows DLL from 68k side (Bernd Roesch) - -Beta 4: - -- fixed Competitor PC joystick interface compatibility problem -- fixed CAPS image crash when reading non-existing tracks -- track >79 compatibility fix (Pinball Hazard) -- added OS version to winuaebootlog.txt -- floppy speed slider GUI update fix -- copper COPJMP fix (CAPS Wreckers) -- audio updates and hack that fixes Murder, Crack Down and Liverpool - AUDxDAT should now work correctly - (rewrote audio state machine emulation. Yeah, I know I shouldn't do - these kind of near-last minute changes but... Complain loudly if sound - works badly) -- keyboard led update, update led state only max once/frame, - only change selected leds' state -- resetting or reinserting disk image didn't always release old image -- changing floppy drive type or enabling/disabling floppy drives - works properly when emulation is active - -Beta 3: - -- OpenGL <15 bit depth check should only be done when using fullscreen mode -- more CIA keyboard emulation fixes (CAPS R101) -- CPU status register emulation fix, bits 14 (T0) and 12 (M) are 68020+ bits - and must always be zeroed in 68000 mode. (CAPS Toki copy protection code) -- new extended adf2's contains free space for 83 tracks (was 80) -- added disk write-protection support GUI. moved drive disable-checkboxes to - drive-type box. This is quite complex internally.. - - images that support writing (regular and ext2 adf) - - checked = read-only flag set - - unchecked = read-only flag removed - - read-only images (caps,fdi,ext adf,compressed images): - - checked: - - save-image exists and is not empty: save-image's read-only flag is set - - save-image exists and is still empty: delete save image - - no save-image: do nothing - - unchecked: - - save-image exists: remove read-only flag - - no save-image: create empty saveimage - - save images are always created in /SaveImages -directory - (because selected "parent" image may be located in read-only media) - - changing writeprotection state causes automatic disk re-insert - (eject,2s delay,insert) -- state files are now saved to /SaveStates (was Configurations..) -- keyboard LED GUI (misc-page) -- AGA SHRES sprite bug fix (fixes Super Skidmarks hires-mode cars) -- restoring 68020+ state and CPU speed is set to A500 -> change to fastest possible -- filter END+ key releases - -Beta 2.1: - -- non-blocksize aligned HDFs work again -- keyboard led code improved and fixed - configuration file line is now: "keyboard_leds=xxx:yyy,xxx:yyy,xxx:yyy" - where xxx = "capslock", "numlock" or "scrolllock" and - yyy = df0,df1,df2,df3,power,hd or cd - (example: "keyboard_leds=scrolllock:power,capslock:df0") - -Beta 2: - -- renamed save-images to "_save.adf", original extension is removed - (for example: Example.ipf -> Example_save.adf) Makes names more logical when this feature - is used with regular adf-files. -- hardfile/harddrive cache bug fix (SFS formatted hardfiles/harddrives work again) -- Action Replay improvements (Mark Cox) -- it wasn't possible to set input-tab's default mappings to none, fixed -- fixed too small config file description buffer in WinUAE GUI code -- configurable keyboard leds (DF0,DF1,DF2,DF3,POWER,HD and CD) - No GUI yet. Add "keyboard_leds=xxx,xxx,xx" to config file. - (num lock, caps lock, scroll lock) xxx = none,DF0,DF1 etc.. - Need Windows9x testing (W9x uses very different way of controlling leds than W2K/XP) -- primary sound buffer option removed and disabled. It is not needed anymore and usually - only caused strange slowdown problems. -- DirectInput devices were allocated multiple times and never freed -- middle mousebutton in fullscreen mode minimizes WinUAE if - "Middle-Mouse-Button -> ALT-TAB" is ticked. -- OpenGL-mode is disabled if display depth is lower than 15 -- Because Windows DDK can't be downloaded anymore from microsoft.com, I added define to - sysconfig.h (WINDDK) that can be used to disable compilation of features that need - DDK includes (Windows 2K/XP CDROM, harddrive support and keyboard leds) -- improved programmable horizontal and vertical timing support. Setting 31KHz native - mode under Picasso96 display modes (for example writing "setenv picasso96/amigavideo 31khz") - works mostly but audio isn't too good yet.. -- yet another Pentium4 JIT fix, Pagestream crashes without it (Bernd Roesch) - - -Beta 1: - -- restoring state with sound disabled caused crash if state was saved with sound, fixed -- fixed mouse problems in Space Crusade, Billy the Kid and more.. -- another fast ram state restore fix -- writing to ext2 images was unstable, fixed -- FPU state save support -- floppy drives' disk change flag wasn't reset when state was restored, fixed -- "save disk image"-support. All writes to images that don't support writing go to separate - extended adf2-image and reads from already written tracks come from ext2-image instead of - "main" image. This is especially needed by some future CAPS-images. (There are games that - want to write to the original disk, for example Pinball Dreams highscores but we can't and - don't want to modify original images) - "save image" must be currently created manually by clicking "create custom image" (disk-tab), - image's name must be .adf (for example, Example.ipf -> Example.ipf.adf) - Image is write-enabled only if save-image exists and is not read-only. - Any suggestions for GUI? -- 68000 cpu returns the contents of prefetch register when reading from address that does - not exist. (for example reads from 0x200000 without real fast ram) -- CIA serial port emulation updates. Fixes Back to the Future 2's keyboard freeze. - (fixes probably other games' keyboard problems too) -- another "last_custom_value"-update, fixes more slowram detection crashes (Commando etc..) -- another bsdsocket emulation fix (Stephen Riedelbeck) -- added configurable device name and boot priority for volumes and hardfiles -- "more compatible" 68000-mode accidentally used some cycle-exact-only functions -- CD32 media change detection fixed (only worked in 0821R1..) -- CD32 pads are now enabled even in non-cd32 mode if configured in input-tab - - ---- -R4 - -Beta 3: - -- switching between windowed and fullscreen disabled sound - (does not happen with some sound drivers), fixed -- Caps lock fixed (again..) -- build-in DMS support. Will be removed if someone complains.. - (Xdms.exe is really too limited..) -- CTRL-AMIGA-AMIGA-ALT hard-reset works again -- Debugger's S-command used non-binary mode to save files, fixed -- DENISEID-register last_custom fix (fixes Alien Breed - Tower Assault) -- added support for 1.5MB bogoRAM expansion -- another ACTION_RENAME-bug fixed. Rename created new unneeded - __uaefsdb-entry if only filename's case changed - (for example: "rename file.txt file.TXT") - -Beta 2: - -- sound timing always defaulted back to PAL when WinUAE lost or gained focus, fixed. -- Voyage by Razor1991 really works but only randomly - (requires cycle-exact mode and might need multiple tries, more improved ce-mode needed..) -- CAPS-format support added. - Needs CAPSImg.dll from CAPS. Not yet available for public. - Send your questions about Caps directly to http://www.caps-project.org/ - I don't answer any Caps-specific questions. -- use QueryPerformanceCounter() instead of RDTSC if CPU throttling is detected. - Fixes slowdown problems on laptops, also old processors without RDTSC should run WinUAE again - without crashing. -- ALT-TAB keyboard fix -- joystick layout B fire fixed (broke in B1) -- joystick configuration bug fix (sometimes joystick didn't work..) -- Picasso96 framebuffer access speedup (Bernd Roesch) - -Beta 1: - -- improved FPS-counter, added FPS-counter led. -- added blitter fill-mode cycle diagram. Enabling fill mode adds DMA channel C to - cycle diagram even if it is disabled in BLTCON0. Fixes "Reflect - Sound Vision" -- Catweasel MK3 Amiga keyboard and joystick ports support and Z2-board emulation implemented -- emulate serial port transmit interrupts even if serial port is disabled - I don't think we can expect users to enable serial emulation to run some games - that don't even have serial-link option. (Dragon's Lair 2, Moonwalker etc..) -- removed exclusive mouse-mode, mouse handling should be now more compatible. -- faster Picasso96 color fades (Bernd Roesch) -- CD-led is now lit when CD32 audio track is playing -- RDB filesystem loader compatibility fix, SmartFileSystem 1.58 doesn't crash anymore -- filesystem: _UAEFSDB.___ handling fixes, also deletes "ghost"-entries automatically - (files/directories that are deleted outside of emulation) -- filesystem: ACTION_RENAME fixes. Old name's opened locks and filehandles are transferred - to new name, filehandles are temporarily closed during rename (under AmigaDOS it is - possible to rename files that are open) Fixed some "ghost"-UAEFSDB entry-bugs. -- filesystem: added notification support (ACTION_ADD_NOTIFY, ACTION_REMOVE_NOTIFY) -- filesystem: added code that updates parent directory's modification time when file is - created, written, deleted or renamed. (NTFS does all except rename, FAT apparently never - updates parent directory's modification time) - Fixes Directory Opus and DosControl automatic directory list refresh when using FAT -- log messages that arrive before emulation starts are written to winuaebootlog.txt -- uaescsi.device reset crash fixed (happened only under Win9x) -- custom chip "last_custom_value"-update. Fixes Lotus 3 (and probably some other programs') - slow ram detection. -- CIA and MOVEM M->R cycle usage fixes (Voyage - Razor1991 works now, first boot only...) -- allocate bigger MIDI sysex buffer to prevent overflows (Bernd Roesch) -- disabled mostly useless JIT-log messages (can be enabled by defining JIT_DEBUG and recompiling) -- PAUSE-key = pause emulation. PAUSE+END = full speed emulation (sound is turned off) - -Mouse code is mix between old and new WinUAE mouse code. It probably have some bugs.. - -Filesystem compatibility should be much better now. Could someone test programs that have refused -to install/run under older UAE filesystem versions? - - ---- - -RC: - -- floppy drive leds light correctly (stupid bug) -- small CIA fix (reading $BFE001 returns correct power led state) -- Input-tab keyboard configuration works again (why didn't nobody notice?) - -Beta 3: - -- all hardfiles/harddrives described in default.uae were never freed making them unavailable - if other configuration was loaded and it used same hardfiles as default.uae. fixed. -- mouse counter overflow limit works again (moving mouse very fast made mouse jump around under - KS 1.3 and some mouse controlled games) -- Amithlon partition detection failed if drive had >6 partitions. fixed. - (Partition table buffer was too small...) -- non-Amiga formatted or non-empty harddrive safety test can be disabled with - "-disableharddrivesafetytest" command-line parameter. WinUAE also shows warning - messages if "dangerous" harddrives are detected and test is disabled - -Beta 2: - -- A500-speed slowdown problems fixed (*) -- "The selected screen mode can't be displayed in a window, because.." now correctly - forces fullscreen mode instead of repeating the message forever.. -- initial Amiga viewport position fixed - -(*) My new Asus A7N8X Deluxe Gold (nForce2) -mainboard arrived today and suprise, suprise, -WinUAE's fps decreased to about 40fps. I finally managed to debug this problem! -It appears calling timeBeginPeriod() and timeEndPeriod() too many times/frame -caused big slowdown. I still don't understand why it only affects some systems.. -(probably it depends on drivers because I didn't reinstall OS) - -Beta 1b: - -- removed debugging code that disabled RDB custom filesystem - -Beta 1: - -- Ports-tab crash fixed (printer detection bug) -- some joysticks had joystick axis in wrong order (for example Y before X etc..) -- only first joystick worked in input-tab -- plus other joystick bugs fixed -- WinUAE window position in registry is now correct -- hard drive configuration save fix (some harddrive ID's had trailing spaces) -- fixed stuck keys when switching between WinUAE and Windows -- sprite fix (flashing garbage in Pinball Dreams) -- added Harddisk and CD-leds that flash during HD/CD access -- thread priority tweaks -- Windows 95 setupapi.dll error fixed - -R2: - -Beta 7: - -- screenshot changes, PrintScreen -> Windows clipboard - (now works even in overlay-mode) and PrintScreen + END - -> screenshot file (was F11) -- more disk emulation updates ("The Deep" works again) -- bsdsocket changes. Fixes Win98 dialing, TCP-device - and Amygate (Stephan Riedelbeck) - -Beta 6: - -- primary sound buffer checkbox can be changed on the fly -- floppy buffer overflow fixed -- RDB filesystem bug fix - caused memory corruption if RDB contained non-automountable partition(s) -- ALT-TAB didn't always release mouse capture -- DirectInput device enumeration fixed -- blitter nasty-mode bug fixed (Obliterator and TerrorPods intro graphics corruption) -- Amiga Catweasel ZorroII-board emulation. (ISA-Catweasel supported) - Device is detected but reading is unreliable due to timing problems either in - isacatweasel.device or timer.device in JIT mode. No GUI config, to enable emulation - add "catweasel_io=xxx" to config file. WinIo.dll, WinIo.sys (2K/XP) and - WinIo.VXD (W9x) from http://www.internals.com/utilities/winio.zip required. - Download Amiga driver from http://www.jschoenfeld.de/ support page - (ISACatweasel.device for Amithlon) - New Catweasel MK3 (PCI-version) support will be implemented in future. - Experimental. Bug reports are probably ignored because this won't be part of - "official" 0.8.22R2 feature list.. -- network printers are listed in ports-tab -- tries to prevent frozen mouse if WinUAE crashes -- Kickstart replacement is now correctly enabled if kick rom was not selected -- disk emulation updates - fixes for Megalomania, Knightmare, Supaplex etc.. ultra slow loading speed, - more compatible with some copy protections -- Action Replay support fixed - -Beta 5: - -- ignore mouse events when WinUAE is not in focus -- disk emulation track length/motor speed fix (István Fabian) -- filesystem "ghost"-file fix - (but we still have one bug left in ACTION_RENAME that isn't so easy to fix) -- F10 and ALT-keys don't freeze the emulation anymore -- Capital Punishment graphics fix -- Picasso96 COMP-drawing mode don't work correctly in >8bit modes, added - workaround. (found by Bernd Roesch) -- fixed buggy gfx_opengl_mode and gfx_opengl_bits -configuration entry handling - (caused duplicate entries) - -Beta 4: - -- mouse fixes and speed multiplier added to input-tab (100=1x,200=2x,50=1/2x etc..) -- caps lock fixed -- cpu idle changes (still need much better algorithm, later..) -- replaced Sleep() with multimedia timers (much better timer accurary) - this fix might improve sound with small buffer sizes -- switch from fullscreen/no-vsync to vsync crash fixed (this was a very old bug) -- another old config file compatibility fix - -Beta 3: - -- keyboard layout "B" firebutton fixed -- startup "detect 16-bit" crash fixed -- copper cycle diagram fix (Chaos Engine AGA/CD32 horizontal line) -- screenshot button was always disabled - -Beta 2: - -- GUI's hardfile/harddrive size fixed (fractional part was always zero) -- "Use Primary DirectSound buffer"-checkbox fixed -- input-tab's joystick/mouse/keyboard axis/button/key names are now queried from DirectInput -- all keyboard's special keys are also configurable in input-tab -- DirectInput fixes (joysticks work etc..) -- direct harddrive access fixed, >512 byte reads/writes are now working properly. - (caused "not a dos disk" errors if filesystem block size was > 512) -- added 1024 and 2048 physical blocksize support to direct harddrive access code -- RDB code renames duplicate device names (DH0: -> DH0_0: etc..) -- german keyboard layout "hack" fixed (Bernd Roesch) -- improved keyboard configuration, old keyboard configs are not compatible anymore -- "Pentium 4 JIT"-fix enabled in release build -- state load fixes (replacing KS don't clear chip RAM anymore, another CPU type fix) - Loading 68020/AGA states files with A500 config should now replace configuration - correctly (finally..) - -Beta 1.1: - -- >4G hardfiles really work now -- cpu idle fixed - -Beta 1: - -- disk emulation fix (High density floppy images in non-"turbo" mode were read too slowly causing - read errors) -- removed bad disk emulation optimization (froze some custom loaders) -- implemented disk drive type configuration. I had to do this because it is not possible - to emulate real DD and HD drives 100% correctly automatically and I also wanted to add - ancient&useless 5.25 drive (A1010) support too :) -- automatically disable "turbo"-floppy speed if using non-standard ADF images -- implemented Kickstart 1.3 hardfile support and some RDB filesystem compatibility bug fixes - (regular KS1.3 hardfile autoboot/mount requires FastFileSystem from WB1.3:L in roms-directory) -- hardfile code rewritten with full 64-bit support ("unlimited" size) - supports both TD64 and NSD -style 64-bit access. - Windows 2000 or XP and NTFS filesystem required (Both W9x and FAT32 are - limited to max 2G files) - WARNING: some Amiga disk utilities fail to understand >2G partitions and could - corrupt big hardfiles! OS3.5+ recommended! - Only drives that don't contain recognised PC partition table and are either empty or - contain RDB are available in selection dialog (safety feature) - Amithlon partition support (partition type 0x76) implemented. NOT TESTED YET! - WARNING: Bugs could cause lost data! Every read and write access to Amithlon partition - is tested against partition bounds but better safe than sorry.. -- uaehf.device is now threaded (read/write requests are run in background) -- fixed uaehf.device crash with older HDToolBox versions -- removed sectors, surfaces and reserved from harddisk tab - (IMHO they only need to be in hardfile configuration dialog) -- added missing CPU idle configuration entry -- CPU idle code changes -- added cycle exact configuration entry -- increased directory filesystem emulation cache - (workaround to randomly disappearing flags/comments) -- CPU model is restored correctly when restoring save state file -- DirectInput keyboard, mouse and joystick interface - - shift-keys don't get stuck anymore in Pinball Dreams etc.. - - Uses DirectInput's MS supported way of disabling all special keys, only ALT-TAB and - CTRL-ALT-DEL are left enabled. - - Uses DirectInput exclusive mouse mode to hide Windows mouse pointer instead of - old version's "interesting" hack... - - WARNING: expect to find bugs - - NOTE: mouse speed might be different because DirectInput reads directly from - mouse driver. (no acceleration etc..) -- mouse input-configuration changed (separated horiz and vertical axis and mouse - wheel is now third axis) -- "disable Windows keys"-checkbox removed. Windows keys are now always disabled. - (I added disable checkbox because wkeykill.dll was unsupported hack and could have - caused problems in some situations) Complain if there is need to not disable - Windows keys. -- some old config file compatibility fixes -- "compatible" cpu mode checkbox was ignored - (This was the reason why 0822R1 needed cycle-exact mode to run C64 tune disk) -- 68000 RESET-instruction's prefetch emulation fixed -- CIA overlay-bit fix (regs.pc_p and regs.pc_oldp wasn't updated) -- added Kickstart ROM path to state files (only used when restoring if file exists) - -0.8.22R1: - -Beta 5: - -- RDB custom filesystem fixes -- make "regular" hardfiles invisible to HDToolbox -- fix CD32 pad emulation in compatibility mode - -Beta 4: - -- small sound changes: AHI sound disabled when resetting the Amiga, DirectSound is freed - when WinUAE is minimized and "Disable sound output" is ticked. -- input-tab autofire rate fixed -- fixed fast memory state save bug -- joystick compatibility mode fixes -- another uaescsi.device compatibility fix - -Beta 3: - -- AVIOutput fix (editing parameters didn't work until emulation was started) -- centering works again (broke in beta 2) -- more uaescsi.device compatibility fixes (all Amiga CD filesystems should now work properly) -- CD32 pad emulation fixes -- fixed crash when "ejecting" broken zipped adf-files -- bsdsocket fixes (Stephan Riedelbeck) -- exception 3 handling fixed (was broken by JIT fix ages ago..) -- improved RDB filesystem relocator (fixes PFS3 and others) -- screenshot key shortcut mapped to F11 -- multiple sound card support (original GUI code by Brian King) -- fixed programs that use POTxDAT to read second fire button (was broken ages ago) - -Beta 2: - -- UAE 0.8.22 merge, bumped version number (most changes were already included in R4) -- switching cycle-exact off does not freeze the emulator anymore (but Amiga still freezes..) -- Action Replay 1 support (breakpoints don't work) -- writing to hardfiles work again -- CPU emulator fix: CHK-instruction's exception return address was wrong (Days of Thunder) -- AVIOutput update (Sane) -- floppy speed slider GUI fixed -- disk emulation initialization fix (fixes A1000 boot failure in non-"turbo" mode) -- CPU idle checkbox works after emulation has been started -- keyboard fix (some key presses were missed when pressing multiple keys) -- sound changes: (yet again...) - - vsync enabled and/or JIT enabled: adjustment active (like older versions) - - vsync disabled and JIT disabled: UAE 0.8.22 sound timing (adjustment disabled) - (JIT will have HUGE slowdown and vsync skips if UAE 0.8.22-style timing is enabled) - - uses DirectSound primary buffer if possible (SDL does this too) - - depending on sound card, small buffers (1 and 2) might work very badly.. -- uaehf.device scsi emulator fixes -- changed "create hardfile"-dialog's hardfile size to megabytes and added 2GB limit - (limit will be removed after uaehf.device supports 64-bit addressing) -- uaescsi.device reboot crash fixed -- full RDB harddisk image support (automount, custom filesystems etc..) - -Beta 1: (too many changes, expect breakage..) - -- unoptimized near cycle-exact cpu and blitter emulation implemented (checkbox in misc-tab) - Fixes most programs that expect correct cpu and blitter speed (PP Hammer, many demos etc..) - WARNING: requires at least 50%+ more cpu power than "regular" mode. - Athlon XP/Pentium IV + DDR/RAMBUS RAM highly recommended! - WARNING2: Frameskip must be set to 1 - WARNING3: very experimental, timing is quite far from perfection - Complain loudly if "regular" mode is slower. (It shouldn't be but you never know..) -- yet another 68000 prefetch emulation rewrite (fixes "100 most remembered C64 games" and more..) -- OpenGL scanline brightness slider added -- yet another disk emulation update - (more compatible, stupid extended adf bug fixed that caused format/verify errors) -- interlace mode vsync fixed (no more 2x speed) -- added support for compressed kickstart rom-images -- encrypted A1000 boot rom support added -- 64kb A1000 boot rom supported (A1000 boot rom size is really 64kb even if only first 8kb is used..) -- 256kb chip RAM support added (first A1000s come with 256kb chip RAM as standard, expandable to 512kb) -- dms files inside zip -crash fixed - (xdms.exe that does not add .dms extension to source file's name needed for correct decompression support) -- fixed com-port warning (start emulation, press F12, select input-tab) -- sprite-playfield collision fix (fixes Inferior but may break something else.. Testing needed!) -- display garbage fix (Nightbreed Interactive Movie, some demos) -- input device support updates - defaults added to mouse and joysticks, mouse didn't always work correctly, - autofire works now properly, supports max 4 input targets/input source - (currently only available by manually editing configuration files, - example: input.1.mouse.0.button.0=JOY1_FIRE_BUTTON.0,JOY2_FIRE_BUTTON.0) -- another experimental cpu idle hack (detects when Kickstart executes STOP-instruction) - lowers host CPU usage near zero when emulated system is idle. -- added cpu idle checkbox to GUI CPU-page -- new AHI code and driver (Bernd Roesch) -- Amiga <> Windows clipboard support, see winuaeclip.txt for more information (Bernd Roesch) -- added device io (CMD_READ, CMD_CHANGESTATE etc..) support to uaescsi.device - no need to enable direct-scsi anymore, also media change detection - (ADDCHANGEINT/REMCHANGEINT) is emulated properly. This means uaescsi.device emulation should - now work properly with all available cd file systems without special mountlist flags. -- fixed bug in state save restore code, sometimes restored floppy drive track was incorrect -- added wkeykill.dll support. Kills all normal Windows key combinations (except some keys don't - work properly on WXP, for example LWin+L, hopefully this can be fixed later..) - Unfortunately it is not possible to integrate Windows key kill code to WinUAE because it seems - it is only possible to kill Windows key events properly from a separate dll.. -- Amiga-"viewport" is now centered correctly, no more clipped window borders -- FPU emulator's precision was poor, fixed (cause: wrong compiler optimization parameters) -- filesystem bug fix (hopefully fixes bug that causes random files appearing as directories) -- on the fly switching between OpenGL and DirectDraw mode -- on the fly switching between vsync and non-vsync mode -- DirectSound sound code is back with auto-adjust. Better or worse than old code? - (I replaced SDL audio because it is now confirmed that SDL audio has strange lag - problems with some systems. I might include both, depends on test results..) -- audio emulation fix (Mission Elevator) - also some AUDxDAT fixes (fixes random CD32 boot tune noise) -- build-in screenshot function (original code by Sane) - supports all modes: DirectDraw, DirectDraw Overlay, OpenGL and Picasso96 - current shortcut key: END+F6 (Suggestions?) -- set active WinUAE process priority level higher, improves smoothness - makes Windows' responsiveness worse but I hope it isn't too bad.. -- decreased trackdisplay leds' brightness slightly -- writing to kickstart rom memory area crashed the system if JIT was enabled -- floppy speed slider (I know I shouldn't put it back but I got too many requests..) -- second filesystem bug fix: situations where file read length was very big were not handled correctly -- third filesystem bug fix: CON.something, AUX.something etc. are not valid Windows filenames -- added simple "scsi emulator" to uaehf.device. It is now possible to edit full harddisk images with hdtoolbox - ("hdtoolbox uaehf.device". Sectors, surfaces and reserved can be set to zero) - not very useful feature because booting/automounting does not work yet... - -R4: - -- EXPERIMENTAL: added configurable input device (mouse, joystick, keyboard) support -- EXPERIMENTAL: added OpenGL mode (for best results set lores and disable line-doubling) -- printer support fixed (Bernd Roesch) -- MIDI updates (Bernd Roesch, Alfred J. Faust) -- custom chipset updates (Superfrog,Exile,Apocalypse,Rainbow Islands,Torvak the Warrior etc..) -- CPU idle patch (no more 100% CPU usage) -- HOME + F5 opens state restore dialog and SHIFT + HOME + F5 opens state save dialog -- vsync updates (50/60/100/120 frequencies are now always selectable. Useful for Powerstrip users) -- AVIoutput improvements (can be started later, stops when re-entering GUI) -- Picasso96 updates. Mouse trails are now 100% fixed (Bernd Roesch) -- refresh rate selection only affects Amiga display modes, Picasso96 always use default refresh rate -- "16-bit mode detect" crash fixed -- removed useless 8/16-bit sound selection. Sound output is now always 16-bit -- sound lag compensation slider reimplemented. (if you have bad sound, move slider left until sound gets better) -- build-in gzip and zip support (autoselects first adf-image or Amiga executable if zip contains multiple files) -- executable to adf support, just "insert" Amiga executable in to floppy drive -- improved external decompression support (xdms.exe) -- configuration save option is now available even after emulation has been started -- HD floppy image support in disk-tab - -Beta 8: - -- OpenGL vsync is now correctly disabled in windowed mode -- frequency selector config load/save fixed -- fixed lost key release(s) when switching between Picasso96 and native modes -- fullscreen OpenGL mode mouse problems fixed -- avioutput OpenGL mode support added - -Beta 7: - -- refresh rate selection now shows 50/60/100/120Hz properly -- non-OpenGL scanlines-selection gets disabled after emulation is started -- DF1-DF3 and HD floppies work again -- vsync fix -- JIT exception 3 fix (Bernd Roesch) -- OpenGL "returning from GUI in fullscreen mode" freeze fixed -- exiting WinUAE stops CD32 CD audio -- sound buffer 7 in stereo mode fixed -- disk emulation update (fixes SuperDuper) -- sound gui changes -- MIDI sysex support (Bernd Roesch, Alfred J. Faust) - -Beta 6: - -- Picasso96->OpenGL mode switch crash fixed -- added OpenGL texture color depth and filtering mode selection -- centering and non-OpenGL scanlines are not available if OpenGL mode is enabled -- MIDI ports can be changed on the fly (Bernd Roesch, me) -- Create Standard/Custom floppy-buttons can also be used to create HD floppies -- level 6 interrupt handling fix (Marvin's Marvellous Adventure AGA) -- CPU exception 3 fix (Shinobi) -- disk updates (more correct DSKRDY/floppy device ID handling) (S.T.A.G) -- *.zip added to disk image selector -- Caps Lock and misc keyboard fixes (new input device mode only) -- return random bits if program is trying to read track past image's end (Typhoon Thompson) -- yet another sprite emulation rewrite. Report immediately if you notice missing/flashing/corrupt etc sprites! -- scanlines fixed in OpenGL AGA mode - -Beta 5: - -- joystick/mouse -> keyboard mapping fixed -- keyboard -> Amiga joystick/mouse/keyboard configuration implemented (US keyboard layout only) -- another copper skip fix (fixes Rainbow Islands) -- CPU idle patch -- MIDI fixes (Bernd Roesch, Alfred J. Faust) - -Beta 4: - -- better Superfrog/Exile etc.. border fix (old version caused display problems with some demos) -- new input device configuration is finally working - TODO: - - more intuitive GUI (Help needed) - - add international key names - - implement multiple mouse support - Unfortunately it seems DirectInput don't support multiple mouse on W2K/XP. - http://www.angelfire.com/retro/u_rebelscum/faqs.html#win2000limit - (confirmed with two USB mouse on WXP) - - PC keyboard -> Amiga mouse/joystick/keyboard mapping editor -- OpenGL tweaks (scaling changed, 0,0,0,0 = centered screen. Added default-button) -- misc-tab changes (disabled state save-button if emulator is not started, reset and quit-buttons are always visible) -- GUI remembers last used property page (tab) -- two executables, one compiled with MSVC 7 (MSVS.net) and the other with MSVC 6. - -Beta 3: - -- HOME + F5 opens state restore dialog and SHIFT + HOME + F5 opens state save dialog -- experimental OpenGL support - internal window size is always 752*600 (376*300 if lores is enabled and linedoubling is off) - image size configuration - scanline emulation (transparency and size) - requires 1024 * 1024 or larger supported texture size (won't work with old cards) -- AVIoutput improvements (can be started later, stops when re-entering GUI, vsync-waits ignored) -- Picasso96/native mode switching should be working again (was broken in beta 1 and 2) -- Superfrog, Exile etc.. left border bug fixed -- adz support fixed -- CIA alarm update (fixes Torvak the Warrior's music) - -Beta 2: - -- build-in gzip and zip support (autoselects first adf-image or Amiga executable if zip contains multiple files) -- executable to adf support, just "insert" Amiga executable in to floppy drive -- improved external decompression support (currently only xdms.exe), - temporary files are loaded back in to memory and deleted immediately after decompression. -- 50/60/100/120Hz frequencies are now always selectable. I think this allows vsync-support with display drivers - that don't support frequency selection but support custom resolutions (for example with PowerStrip) -- Picasso96 Drawstudio fix (Bernd Roesch) -- removed 8/16-bit sound selection from gui. Sound is now always 16-bit. -- sound adjust slider reimplemented. (fully automatic sound adjust seems to be impossible..) - sound code is still autoadjusting but with very limited adjustment range - (allows 100% smooth vsync at least on my pc..) - - adjustment instructions: move slider left until sound doesn't crackle anymore (no more sound buffer underflows) - adjustment position isn't very important except if you want vsync without random skips. - -Beta 1: - -- fixed right border garbage (CD32 bootscreens and other programs) -- "16-bit mode detect" does not crash anymore if registry keys are not found -- vsync updates, vsync can be enabled or disabled during the emulation -- Picasso96 JIT memory mapping update (Bernd Roesch) -- Refresh rate selection only affects Amiga display modes, Picasso96 always uses default refresh rate -- CIA changes - -R3: - -Beta 3: - -- missing gui-tabs fixed (was broken in beta 2) (me) -- serial port update (Bernd Roesch) -- cycle exact bitplane modulo emulation (fixes Lemmings 3 AGA) (me, Bernd Schmidt) - I think this patch is finally bug free. Report immediately if you see display corruption! -- modified delayoffset hack (fixes Mindriot-demo) (me) - -Beta 2: - -- AGA mode EHB fix (Superfrog title screen) (me) -- hardfile sectorsperblock fix (Reorg works again) (from WinUAE 0817) -- CIA update (better compatibility with some weird programs) (me) -- PC joystick in both joystick ports works again (was broken in every 0821 release) (me) -- icon fixed (no more random pixels) (me) -- Picasso96 overlay mode is working again (was broken in beta 1) (me) -- Shapeshifter-checkbox fixed (from WinUAE 0817) -- JIT shift-instruction fix (from Basilisk JIT) - -Beta 1: (VSync test beta) - -- joystick keyboard emulation do not anymore create normal key presses -- sprite update (no more flashing bees in Superfrog) -- CIA update (fixes Powermonger, thanks to István Fábián) -- VSync and separate refresh rate selection added - I had to implement this because I got too many requests :) -- requires DirectX 7 or newer (was DX5 or newer) -- Picasso96 and other misc updates (Bernd Roesch) - -to do: input device configuration GUI - -R2: - -Beta 6: - -- sprite emulation changes (me) - -Beta 5: - -- WBStartup filesystem fix (Bernd#1) -- FDI-image support re-merged (me) - -Beta 4: - -- fix SPTI/ASPI detection code (me) -- ASPI and SPTI CD32 media change detection implemented (me) -- JIT timing fix, filesystem access speed should be normal again (Bernd#3,me) -- shift/ctrl/alt+Fxx key combinations fixed (was broken in beta 3) -- CD32 pad button emulation fix (me) - Fixes stuck red button on some Team 17 games (Superfrog and Alien Breed 2, maybe more) -- fixed missing CD32 audio if all floppy drives are disabled (me) -- bsdsocket fix (Stephan Riedelbeck) -- added ASPI/SPTI SCSI layer selection (me) - Currently only ASPI supports non-CDROM devices (except harddisks due to security reasons) -- ASPI and SPTI code swaps SCSI bus and target if all units' target and lun is zero (me) - Only affects IDE devices (ASPI sets every IDE device to different "SCSI"-bus causing strange - uaescsi.device unit numbers) - -Beta 3: - -- fixed nasty and very old memory overwrite bug in keyboard_win32.c (me) -- SPTI uaescsi.device emulation works again (me) -- uaescsi.device ignored io error return codes, fixed. (stupid me) -- added CD32 media eject/insert support, Windows 2000/XP only (me) -- added missing #define USE_X86_FPUCW 1 (Bernd#3) -- serial port fix (Bernd#3,me) - -Beta 2: - -- this time really fixed max sound buffer crash (me) -- added Bernd#1's vsynctime "fix" -- JIT FPU fix (Bernd#3) -- filesystem A-flag handling was reversed (Stephan Riedelbeck) -- filesystem fixes (Bernd#1,me) -- blitter timing bug fix (stupid me, yet again) -- removed useless refresh rate from display mode selection box -- fixed crash if RTG was enabled and Z3 memory size was 8MB (Bernd#3) -- noticed problems with uaescsi.device SPTI support, uses ASPI until problem is solved. -- added more uaescsi.device logging (drive names and unit numbers) - -Beta 1: - -- filesystem fix (Bernd#1) Fixes at least some problems. Testing needed! - (Bernd: I only merged your first patch, second file order "fix" is not enabled) -- if JIT is disabled, disable "force settings" too (me) -- joystick 2 fixed (me) -- AR "freeze"-button was pressed when exiting GUI, fixed (me) -- memory leak and small bsdsocket fix (Stephan Riedelbeck) -- clear extended rom and cartridge rom configuration entries when loading new config (me) -- pressing F12 and then later pressing shift doesn't start debugger anymore (me) -- sprite fix (me) -- Windows 2000/XP CDROM detection fix (CD32 and uaescsi.device) -- re-enabled full-row-select option (config load/save and hard drives -tabs) -- sound changes. Does this fix crashes and/or bad sound? -- copper fix (Bernd #1) -- CTRL-AMIGA-AMIGA-ALT resets and clears chipmemory (removes all reset proof programs) - -Beta 6: - -- rare keyboard freeze fixed (caused by fault AR3 keyboard hack) -- blitter nasty fix - -Beta 5: - -- added missing Bernd#3's serial port update -- Battle Squadron sprite fix (me) -- copper fix (Bernd#1) -- filesys seek fix (Bernd#3) -- joystick gui fix -- added hack that tries to prevent notebook cpu throttling when calculating cpu speed (Bernd#3,me) -- zlib.dll support merged from 0817R3 (me) -- another stupid blitter cycle diagram bug fixed (me) - -Beta 4: - -- scsi.device config file fix (me) -- sound buffer gui changes (me) -- sound fix (Bernd#1) -- win32 specific thread code replaced with SDL threads (me) -- big sprite state machine update (me) -- disk images are replaced correctly when restoring state (me) -- filesys seek fix (Bernd#3) -- fixed broken fps counter after returning from gui (me) -- fix stupid blitter cycle diagram bug (stupid me) - -Beta 3: - -- another bsdsocket fix (Bernd Roesch) -- midi in/out selection boxes added (me) -- filesys fix (Bernd Schmidt) -- Action Replay 2/3 support, freeze button = PageUp (me) -- serial/parallel port updates (Bernd Roesch) -- VPOSW refreshrate hack support added (me) -- copper timing updates -- some missed fixes from 0.8.21 - -Beta 2: - -- maximun screen height increased (600 -> 1280) -- uaelib updates -- middle button = alt-tab fixed -- added track display enable/disable button -- better blitter patch -- AviOutput sound capture added -- >2MB Chip works again -- Z3RAM can be larger than 64MB -- default.uae fixed -- missing call to bsdsocket.library initialization added -- "Add PC drives" fixed (CDROM drives are ignored) - I think it is better to use uaescsi.device to access removable (CDROM) drives. Any comments? - -Beta 1: - -- full CD32 emulation -- uaescsi.device Win32 port -- blitter "fix" (fixes Desert Dream freeze and Hostages insta-kill) -- input device rewrite (no config file save/load and gui yet, not very useful now..) -- Sane's AviOutput (no sound support yet due to changes in 0820 Win32 audio code) -- JIT + some fixes (I decided to drop "JIT"-part from the name) diff --git a/zfile.c b/zfile.c index f2109760..f29dbd2d 100755 --- a/zfile.c +++ b/zfile.c @@ -745,8 +745,11 @@ size_t zfile_fread (void *b, size_t l1, size_t l2,struct zfile *z) { long len = l1 * l2; if (z->data) { - if (z->seek + len > z->size) + if (z->seek + len > z->size) { len = z->size - z->seek; + if (len < 0) + len = 0; + } memcpy (b, z->data + z->seek, len); z->seek += len; return len; @@ -754,12 +757,20 @@ size_t zfile_fread (void *b, size_t l1, size_t l2,struct zfile *z) return fread (b, l1, l2, z->f); } +size_t zfile_fputs (struct zfile *z, char *s) +{ + return zfile_fwrite (s, strlen (s), 1, z); +} + size_t zfile_fwrite (void *b, size_t l1, size_t l2, struct zfile *z) { long len = l1 * l2; if (z->data) { - if (z->seek + len > z->size) + if (z->seek + len > z->size) { len = z->size - z->seek; + if (len < 0) + len = 0; + } memcpy (z->data + z->seek, b, len); z->seek += len; return len; -- 2.47.3