#include "options.h"
#include "uae.h"
#include "memory.h"
+#include "rommgr.h"
#include "custom.h"
#include "newcpu.h"
#include "debug.h"
memcpy (cd32_nvram + (nvram_address & ~(NVRAM_PAGE_SIZE - 1)), nvram_writetmp, NVRAM_PAGE_SIZE);
nvram_write (nvram_address & ~(NVRAM_PAGE_SIZE - 1), NVRAM_PAGE_SIZE);
direction = -1;
+ gui_flicker_led (LED_MD, 0, 2);
#if AKIKO_DEBUG_NVRAM
write_log (L"NVRAM write address %04X:", nvram_address & ~(NVRAM_PAGE_SIZE - 1));
for (i = 0; i < NVRAM_PAGE_SIZE; i++)
if (direction < 0) {
memcpy (nvram_writetmp, cd32_nvram + (nvram_address & ~(NVRAM_PAGE_SIZE - 1)), NVRAM_PAGE_SIZE);
nvram_writeaddr = nvram_address & (NVRAM_PAGE_SIZE - 1);
+ gui_flicker_led (LED_MD, 0, 1);
}
state = I2C_DATA;
bitcounter = 0;
cdrom_led &= ~1;
cdrom_led |= v & 1;
if (cdrom_led != old)
- gui_cd_led (0, cdrom_led);
+ gui_flicker_led (LED_CD, 0, cdrom_led);
if (v & 0x80) { // result wanted?
cdrom_result_buffer[0] = cdrom_command;
cdrom_result_buffer[1] = cdrom_led & 1;
cdrom_led |= LED_CD_AUDIO;
else
cdrom_led &= ~LED_CD_AUDIO;
- gui_cd_led (0, cdrom_led);
+ gui_flicker_led (LED_CD, 0, cdrom_led);
}
if (cdrom_seek_delay <= 0) {
cdrom_run_read ();
#include "options.h"
#include "uae.h"
#include "memory.h"
+#include "rommgr.h"
#include "custom.h"
#include "newcpu.h"
#include "zfile.h"
#include "options.h"
#include "uae.h"
#include "memory.h"
+#include "rommgr.h"
#include "custom.h"
#include "newcpu.h"
#include "debug.h"
/*
- * xDMS v1.3 - Portable DMS archive unpacker - Public Domain
- * Written by Andre Rodrigues de la Rocha <adlroc@usa.net>
- *
- * Handles the processing of a single DMS archive
- *
- */
+* xDMS v1.3 - Portable DMS archive unpacker - Public Domain
+* Written by Andre Rodrigues de la Rocha <adlroc@usa.net>
+*
+* Handles the processing of a single DMS archive
+*
+*/
#define HEADLEN 56
static void log_error(int track)
{
- write_log (L"DMS: Ignored error on track %d!\n", track);
+ write_log (L"DMS: Ignored error on track %d!\n", track);
}
USHORT DMS_Process_File(struct zfile *fi, struct zfile *fo, USHORT cmd, USHORT opt, USHORT PCRC, USHORT pwd, int part)
to = (USHORT) ((b1[18]<<8) | b1[19]); /* Highest track in archive. May be incorrect if archive is "appended" */
if (part && from < 30) {
- free(b1);
- free(b2);
- free(text);
- return DMS_FILE_END;
+ free(b1);
+ free(b2);
+ free(text);
+ return DMS_FILE_END;
}
pkfsize = (ULONG) ((((ULONG)b1[21])<<16) | (((ULONG)b1[22])<<8) | (ULONG)b1[23]); /* Length of total packed data as in archive */
write_log (L" ------ ------- ------- ------ ---- ---- ---- -----\n");
}
-// if (((cmd==CMD_UNPACK) || (cmd==CMD_SHOWBANNER)) && (geninfo & 2) && (!pwd))
-// return ERR_NOPASSWD;
+ // if (((cmd==CMD_UNPACK) || (cmd==CMD_SHOWBANNER)) && (geninfo & 2) && (!pwd))
+ // return ERR_NOPASSWD;
ret=NO_PROBLEM;
else
write_log (L" %2d ",(short)number);
- write_log (L"%5d %5d %s %04X %04X %04X %0d\n", pklen1, unpklen, modes[cmode], usum, hcrc, dcrc, flags);
+ write_log (L"%5d %5d %s %04X %04X %04X %0d\n", pklen1, unpklen, modes[cmode], usum, hcrc, dcrc, flags);
}
if ((pklen1 > TRACK_BUFFER_LEN) || (pklen2 >TRACK_BUFFER_LEN) || (unpklen > TRACK_BUFFER_LEN)) return ERR_BIGTRACK;
if (zfile_fread(b1,1,(size_t)pklen1,fi) != pklen1) return ERR_SREAD;
if (CreateCRC(b1,(ULONG)pklen1) != dcrc) {
- log_error (number);
- crcerr = 1;
+ log_error (number);
+ crcerr = 1;
}
/* track 80 is FILEID.DIZ, track 0xffff (-1) is Banner */
/* and track 0 with 1024 bytes only is a fake boot block with more advertising */
if ((cmd == CMD_UNPACK) && (number<80) && (unpklen>2048)) {
memset(b2, 0, unpklen);
if (!crcerr)
- Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, enc);
+ Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, enc);
if (zfile_fwrite(b2,1,(size_t)unpklen,fo) != unpklen) return ERR_CANTWRITE;
}
if (crcerr)
- return NO_PROBLEM;
+ return NO_PROBLEM;
if ((cmd == CMD_SHOWBANNER) && (number == 0xffff)){
Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, enc);
static USHORT Unpack_Track(UCHAR *b1, UCHAR *b2, USHORT pklen2, USHORT unpklen, UCHAR cmode, UCHAR flags, USHORT number, USHORT pklen1, USHORT usum1, int enc)
{
- USHORT r, err = NO_PROBLEM;
- static USHORT pass;
- int maybeencrypted;
- int pwrounds;
- UCHAR *tmp;
- USHORT prevpass = 0;
-
- if (passfound) {
- if (number != 80)
- dms_decrypt(b1, pklen1, b1);
- r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags);
- if (r == NO_PROBLEM) {
- if (usum1 == Calc_CheckSum(b2,(ULONG)unpklen))
- return NO_PROBLEM;
- }
- log_error(number);
- if (passretries <= 0)
- return ERR_CSUM;
- }
-
- passretries--;
- pwrounds = 0;
- maybeencrypted = 0;
- tmp = (unsigned char*)malloc (pklen1);
- memcpy (tmp, b1, pklen1);
- memset(b2, 0, unpklen);
- for (;;) {
- r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags);
- if (r == NO_PROBLEM) {
- if (usum1 == Calc_CheckSum(b2,(ULONG)unpklen)) {
- passfound = maybeencrypted;
- if (passfound)
- write_log (L"DMS: decryption key = 0x%04X\n", prevpass);
- err = NO_PROBLEM;
- pass = prevpass;
- break;
- }
- }
- if (number == 80 || !enc) {
- err = ERR_CSUM;
- break;
+ USHORT r, err = NO_PROBLEM;
+ static USHORT pass;
+ int maybeencrypted;
+ int pwrounds;
+ UCHAR *tmp;
+ USHORT prevpass = 0;
+
+ if (passfound) {
+ if (number != 80)
+ dms_decrypt(b1, pklen1, b1);
+ r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags);
+ if (r == NO_PROBLEM) {
+ if (usum1 == Calc_CheckSum(b2,(ULONG)unpklen))
+ return NO_PROBLEM;
+ }
+ log_error(number);
+ if (passretries <= 0)
+ return ERR_CSUM;
}
- maybeencrypted = 1;
- prevpass = pass;
- PWDCRC = pass;
- pass++;
- dms_decrypt(b1, pklen1, tmp);
- pwrounds++;
- if (pwrounds == 65536) {
- err = ERR_CSUM;
- passfound = 0;
- break;
+
+ passretries--;
+ pwrounds = 0;
+ maybeencrypted = 0;
+ tmp = (unsigned char*)malloc (pklen1);
+ memcpy (tmp, b1, pklen1);
+ memset(b2, 0, unpklen);
+ for (;;) {
+ r = Unpack_Track_2(b1, b2, pklen2, unpklen, cmode, flags);
+ if (r == NO_PROBLEM) {
+ if (usum1 == Calc_CheckSum(b2,(ULONG)unpklen)) {
+ passfound = maybeencrypted;
+ if (passfound)
+ write_log (L"DMS: decryption key = 0x%04X\n", prevpass);
+ err = NO_PROBLEM;
+ pass = prevpass;
+ break;
+ }
+ }
+ if (number == 80 || !enc) {
+ err = ERR_CSUM;
+ break;
+ }
+ maybeencrypted = 1;
+ prevpass = pass;
+ PWDCRC = pass;
+ pass++;
+ dms_decrypt(b1, pklen1, tmp);
+ pwrounds++;
+ if (pwrounds == 65536) {
+ err = ERR_CSUM;
+ passfound = 0;
+ break;
+ }
}
- }
- free (tmp);
- return err;
+ free (tmp);
+ return err;
}
static void printbandiz(UCHAR *m, USHORT len){
- UCHAR *i,*j;
-
- i=j=m;
- while (i<m+len) {
- if (*i == 10) {
- TCHAR *u;
- *i=0;
- u = au (j);
- write_log (L"%s\n",u);
- xfree (u);
- j=i+1;
+ UCHAR *i,*j;
+
+ i=j=m;
+ while (i<m+len) {
+ if (*i == 10) {
+ TCHAR *u;
+ *i=0;
+ u = au (j);
+ write_log (L"%s\n",u);
+ xfree (u);
+ j=i+1;
+ }
+ i++;
}
- i++;
- }
}
/*
- * xDMS v1.3 - Portable DMS archive unpacker - Public Domain
- * Written by Andre Rodrigues de la Rocha <adlroc@usa.net>
- *
- * Lempel-Ziv-Huffman decompression functions used in Heavy 1 & 2
- * compression modes. Based on LZH decompression functions from
- * UNIX LHA made by Masaru Oki
- *
- */
+* xDMS v1.3 - Portable DMS archive unpacker - Public Domain
+* Written by Andre Rodrigues de la Rocha <adlroc@usa.net>
+*
+* Lempel-Ziv-Huffman decompression functions used in Heavy 1 & 2
+* compression modes. Based on LZH decompression functions from
+* UNIX LHA made by Masaru Oki
+*
+*/
#include "cdata.h"
#include "options.h"
#include "memory.h"
+#include "rommgr.h"
#include "custom.h"
#include "newcpu.h"
#include "zfile.h"
else
cd_led &= ~LED_CD_ACTIVE;
if (cd_led)
- gui_cd_led (0, cd_led);
+ gui_flicker_led (LED_CD, 0, cd_led);
if (cd_media && (tp_cr & 1)) {
tp_air |= 1 << 1;
if (offset >= CDTV_NVRAM_SIZE)
return;
+ gui_flicker_led (LED_MD, 0, 2);
if (cdtv_battram[offset] == v)
return;
cdtv_battram[offset] = v;
offset = addr & CDTV_NVRAM_MASK;
if (offset >= CDTV_NVRAM_SIZE)
return 0;
+ gui_flicker_led (LED_MD, 0, 1);
v = cdtv_battram[offset];
return v;
}
#include "gfxfilter.h"
#include "savestate.h"
#include "memory.h"
+#include "rommgr.h"
#include "gui.h"
#include "newcpu.h"
#include "zfile.h"
cfgfile_write_bool (f, L"cpu_24bit_addressing", p->address_space_24);
/* do not reorder end */
- if (currprefs.cpu_cycle_exact) {
+ if (p->cpu_cycle_exact) {
if (p->cpu_frequency)
cfgfile_write (f, L"cpu_frequency", L"%d", p->cpu_frequency);
if (p->cpu_clock_multiplier) {
return NULL;
}
-static void validatefsname (TCHAR *name, int isdevname)
-{
- int i;
- for (i = 0; i < _tcslen (name); i++) {
- if (name[i] == ':')
- name[i] = 0;
- if (name[i] == '/')
- name[i] = 0;
- }
-}
-
struct uaedev_config_info *add_filesys_config (struct uae_prefs *p, int index,
TCHAR *devname, TCHAR *volname, TCHAR *rootdir, int readonly,
int secspertrack, int surfaces, int reserved,
_tcscpy (uci->devname, devname ? devname : L"");
_tcscpy (uci->volname, volname ? volname : L"");
_tcscpy (uci->rootdir, rootdir ? rootdir : L"");
- validatefsname (uci->devname, 1);
- validatefsname (uci->volname, 0);
+ validatedevicename (uci->devname);
+ validatevolumename (uci->volname);
uci->readonly = readonly;
uci->sectors = secspertrack;
uci->surfaces = surfaces;
}
}
_tcscpy (uci->devname, base2);
- validatefsname (uci->devname, 1);
+ validatedevicename (uci->devname);
}
s = filesys_createvolname (volname, rootdir, L"Harddrive");
_tcscpy (uci->volname, s);
return dstbak;
}
-
-static int configure_rom (struct uae_prefs *p, int *rom, int msg)
-{
- struct romdata *rd;
- TCHAR *path = 0;
- int i;
-
- i = 0;
- while (rom[i] >= 0) {
- rd = getromdatabyid (rom[i]);
- if (!rd) {
- i++;
- continue;
- }
- path = romlist_get (rd);
- if (path)
- break;
- i++;
- }
- if (!path) {
- if (msg)
- romwarning(rom);
- return 0;
- }
- if (rd->type & (ROMTYPE_KICK | ROMTYPE_KICKCD32))
- _tcscpy (p->romfile, path);
- if (rd->type & (ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS))
- _tcscpy (p->romextfile, path);
- if (rd->type & (ROMTYPE_CD32CART | ROMTYPE_ARCADIAGAME | ROMTYPE_HRTMON | ROMTYPE_XPOWER | ROMTYPE_NORDIC | ROMTYPE_AR | ROMTYPE_SUPERIV))
- _tcscpy (p->cartfile, path);
- return 1;
-}
-
static void default_prefs_mini (struct uae_prefs *p, int type)
{
_tcscpy (p->description, L"UAE default A500 configuration");
led_on = 0;
led_times = 0;
if (led_changed)
- gui_led (0, gui_data.powerled_brightness);
+ gui_led (LED_POWER, gui_data.powerled_brightness);
led_changed = 0;
led_cycle = get_cycles ();
}
--- /dev/null
+
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+
+#include "options.h"
+#include "memory.h"
+#include "execlib.h"
+#include "disk.h"
+#include "rommgr.h"
+#include "uae.h"
+#include "threaddep/thread.h"
+#include "keybuf.h"
+
+#include "consolehook.h"
+
+static uaecptr beginio;
+
+void consolehook_config (struct uae_prefs *p)
+{
+ int roms[] = { 15, 31, 16, 46, -1 };
+
+ default_prefs (p, 0);
+ //p->headless = 1;
+ p->produce_sound = 0;
+ p->gfx_resolution = 0;
+ p->gfx_linedbl = 0;
+ p->gfx_framerate = 10;
+ p->immediate_blits = 1;
+ p->collision_level = 0;
+ configure_rom (p, roms, 0);
+ p->cpu_model = 68020;
+ p->fpu_model = 68882;
+ p->m68k_speed = -1;
+ p->cachesize = 8192;
+ p->cpu_compatible = 0;
+ p->address_space_24 = 0;
+ p->chipmem_size = 0x00200000;
+ p->fastmem_size = 0x00800000;
+ p->bogomem_size = 0;
+ p->nr_floppies = 1;
+ p->dfxtype[1] = DRV_NONE;
+ p->floppy_speed = 0;
+ p->start_gui = 0;
+ p->gfx_size_win.width = 320;
+ p->gfx_size_win.height = 256;
+ p->turbo_emulation = 0;
+ p->win32_automount_drives = 2;
+ p->win32_automount_cddrives = 2;
+
+ add_filesys_config (p, -1, L"DH0", L"CLIBOOT", L".", 1, 0, 0, 0, 0, 15, NULL, 0, 0);
+}
+
+static void *console_thread (void *v)
+{
+ uae_set_thread_priority (NULL, 1);
+ for (;;) {
+ TCHAR wc = console_getch ();
+ char c[2];
+
+ write_log (L"*");
+ c[0] = 0;
+ c[1] = 0;
+ ua_copy (c, 1, &wc);
+ record_key_direct ((0x10 << 1) | 0);
+ record_key_direct ((0x10 << 1) | 1);
+ }
+}
+
+int consolehook_activate (void)
+{
+ return console_emulation;
+}
+
+void consolehook_ret (uaecptr condev, uaecptr oldbeginio)
+{
+ beginio = oldbeginio;
+ write_log (L"console.device at %08X\n", condev);
+
+ uae_start_thread (L"consolereader", console_thread, NULL, NULL);
+}
+
+uaecptr consolehook_beginio (uaecptr request)
+{
+ uae_u32 io_data = get_long (request + 40); // 0x28
+ uae_u32 io_length = get_long (request + 36); // 0x24
+ uae_u32 io_actual = get_long (request + 32); // 0x20
+ uae_u32 io_offset = get_long (request + 44); // 0x2c
+ uae_u16 cmd = get_word (request + 28);
+
+ if (cmd == CMD_WRITE) {
+ TCHAR *buf;
+ const char *src = get_real_address (io_data);
+ int len = io_length;
+ if (io_length == -1)
+ len = strlen (src);
+ buf = xmalloc ((len + 1) * sizeof (TCHAR));
+ au_copy (buf, len, src);
+ buf[len] = 0;
+ f_out (L"%s", buf);
+ xfree (buf);
+ } else if (cmd == CMD_READ) {
+
+ write_log (L"%08x: CMD=%d LEN=%d OFF=%d ACT=%d\n", request, cmd, io_length, io_offset, io_actual);
+ }
+ return beginio;
+}
int maxvpos = MAXVPOS_PAL;
int maxvpos_max = MAXVPOS_PAL;
int minfirstline = VBLANK_ENDLINE_PAL;
+int equ_vblank_endline = EQU_ENDLINE_PAL;
int vblank_hz = VBLANK_HZ_PAL, fake_vblank_hz, vblank_skip, doublescan;
frame_time_t syncbase;
static int fmode;
uae_u16 vtotal = MAXVPOS_PAL, htotal = MAXHPOS_PAL;
static uae_u16 hsstop, hbstrt, hbstop, vsstop, vbstrt, vbstop, hsstrt, vsstrt, hcenter;
static int ciavsyncmode;
-static int diw_hstrt;
+static int diw_hstrt, diw_hstop;
+static int diw_hcounter;
#define HSYNCTIME (maxhpos * CYCLE_UNIT);
static uae_s16 bpl1mod, bpl2mod;
static uaecptr prevbpl[2][MAXVPOS][8];
static uaecptr bplpt[8], bplptx[8];
-/* Used as a debugging aid, to offset any bitplane temporarily. */
-int bpl_off[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
/*static int blitcount[256]; blitter debug */
static int plfstrt_start, plfstrt, plfstop;
static int sprite_minx, sprite_maxx;
static int first_bpl_vpos;
-static int last_diw_pix_hpos, last_ddf_pix_hpos;
+static int last_ddf_pix_hpos;
static int last_decide_line_hpos;
static int last_fetch_hpos, last_sprite_hpos;
static int diwfirstword, diwlastword;
static int plfleft_real;
+static int last_hdiw;
static enum diw_states diwstate, hdiwstate, ddfstate;
int first_planes_vpos, last_planes_vpos;
int diwfirstword_total, diwlastword_total;
* checked. */
static void decide_diw (int hpos)
{
- /* Last hpos = hpos + 0.5, eg. normal PAL end hpos is 227.5 * 2 = 455 */
- int pix_hpos = coord_diw_to_window_x (hpos == maxhpos ? hpos * 2 + 1 : hpos * 2);
- if (pix_hpos >= diwfirstword && last_diw_pix_hpos < diwfirstword && hdiwstate == DIW_waiting_start)
- {
+ /* Last hpos = hpos + 0.5, eg. normal PAL end hpos is 227.5 * 2 = 455
+ OCS Denise: 9 bit hdiw counter does not reset during lines 0 to 9
+ (PAL) or lines 0 to 10 (NTSC)
+ ECS Denise and AGA: no above "features"
+ */
+
+ int hdiw = hpos == maxhpos ? hpos * 2 + 1 : hpos * 2 + 2;
+
+ if (!(currprefs.chipset_mask & CSMASK_ECS_DENISE) && vpos <= equ_vblank_endline) {
+ if (vpos == equ_vblank_endline)
+ diw_hcounter++;
+ hdiw = diw_hcounter;
+ hdiw &= 511;
+ }
+ for (;;) {
+ int lhdiw = hdiw;
+ if (last_hdiw > lhdiw)
+ lhdiw = 512;
+
+ if (lhdiw >= diw_hstrt && last_hdiw < diw_hstrt && hdiwstate == DIW_waiting_start) {
+ if (thisline_decision.diwfirstword == -1)
+ thisline_decision.diwfirstword = diwfirstword < 0 ? 0 : diwfirstword;
+ hdiwstate = DIW_waiting_stop;
+ }
+ if (lhdiw >= diw_hstop && last_hdiw < diw_hstop && hdiwstate == DIW_waiting_stop) {
+ if (thisline_decision.diwlastword == -1)
+ thisline_decision.diwlastword = diwlastword < 0 ? 0 : diwlastword;
+ hdiwstate = DIW_waiting_start;
+ }
+ if (lhdiw != 512)
+ break;
+ last_hdiw = 0 - 1;
+ }
+ last_hdiw = hdiw;
+
+
+#if 0
+ pix_hpos = coord_diw_to_window_x (hdiw);
+ if (pix_hpos >= diwfirstword && last_diw_pix_hpos < diwfirstword && hdiwstate == DIW_waiting_start) {
if (thisline_decision.diwfirstword == -1)
thisline_decision.diwfirstword = diwfirstword < 0 ? 0 : diwfirstword;
- // hstrt < 2 and ECS Denise: horizontal diw start detector not active
- if (diw_hstrt >= 2 || !(currprefs.chipset_mask & CSMASK_ECS_DENISE))
- hdiwstate = DIW_waiting_stop;
+ hdiwstate = DIW_waiting_stop;
}
- if (pix_hpos >= diwlastword && last_diw_pix_hpos < diwlastword && hdiwstate == DIW_waiting_stop)
- {
+ if (pix_hpos >= diwlastword && last_diw_pix_hpos < diwlastword && hdiwstate == DIW_waiting_stop) {
if (thisline_decision.diwlastword == -1)
thisline_decision.diwlastword = diwlastword < 0 ? 0 : diwlastword;
hdiwstate = DIW_waiting_start;
}
last_diw_pix_hpos = pix_hpos;
+#endif
}
static int fetchmode;
STATIC_INLINE void maybe_first_bpl1dat (int hpos)
{
if (thisline_decision.plfleft != -1) {
- // early bpl1day crap fix (Sequential engine animation)
+ // early bpl1dat crap fix (Sequential engine animation)
if (plfleft_real == -1) {
int i;
for (i = 0; i < thisline_decision.nr_planes; i++) {
STATIC_INLINE void fetch (int nr, int fm, int hpos)
{
if (nr < bplcon0_planes_limit) {
- uaecptr p = bplpt[nr] + bpl_off[nr];
+ uaecptr p = bplpt[nr];
bplpt[nr] += 2 << fm;
bplptx[nr] += 2 << fm;
if (nr == 0)
/* The usual inlining tricks - don't touch unless you know what you are doing. */
STATIC_INLINE void long_fetch_ecs (int plane, int nwords, int weird_number_of_bits, int dma)
{
- uae_u16 *real_pt = (uae_u16 *)pfield_xlateptr (bplpt[plane] + bpl_off[plane], nwords * 2);
+ uae_u16 *real_pt = (uae_u16 *)pfield_xlateptr (bplpt[plane], nwords * 2);
int delay = (plane & 1) ? toscr_delay2 : toscr_delay1;
int tmp_nbits = out_nbits;
uae_u32 shiftbuffer = todisplay[plane][0];
#ifdef AGA
STATIC_INLINE void long_fetch_aga (int plane, int nwords, int weird_number_of_bits, int fm, int dma)
{
- uae_u32 *real_pt = (uae_u32 *)pfield_xlateptr (bplpt[plane] + bpl_off[plane], nwords * 2);
+ uae_u32 *real_pt = (uae_u32 *)pfield_xlateptr (bplpt[plane], nwords * 2);
int delay = (plane & 1) ? toscr_delay2 : toscr_delay1;
int tmp_nbits = out_nbits;
uae_u32 *shiftbuffer = todisplay[plane];
/* leave free space for possible extra color changes at the end of line */
next_color_change += (HBLANK_OFFSET + 1) / 2;
+
+ diw_hcounter += maxhpos * 2;
+ if ((currprefs.chipset_mask & CSMASK_ECS_DENISE) || vpos > equ_vblank_endline) {
+ diw_hcounter = maxhpos * 2;
+ last_hdiw = 2 - 1;
+ }
}
/* Set the state of all decisions to "undecided" for a new scanline. */
memset (outword, 0, sizeof outword);
last_decide_line_hpos = -1;
- last_diw_pix_hpos = -1;
last_ddf_pix_hpos = -1;
last_sprite_hpos = -1;
last_fetch_hpos = -1;
minfirstline = VBLANK_ENDLINE_PAL;
vblank_hz = VBLANK_HZ_PAL;
sprite_vblank_endline = VBLANK_SPRITE_PAL;
+ equ_vblank_endline = EQU_ENDLINE_PAL;
} else {
maxvpos = MAXVPOS_NTSC;
maxhpos = MAXHPOS_NTSC;
minfirstline = VBLANK_ENDLINE_NTSC;
vblank_hz = VBLANK_HZ_NTSC;
sprite_vblank_endline = VBLANK_SPRITE_NTSC;
+ equ_vblank_endline = EQU_ENDLINE_NTSC;
}
maxvpos_max = maxvpos;
}
minfirstline = maxvpos - 1;
sprite_vblank_endline = minfirstline - 2;
maxvpos_max = maxvpos;
+ equ_vblank_endline = -1;
doublescan = htotal <= 164 ? 1 : 0;
dumpsync ();
hzc = 1;
}
diw_hstrt = hstrt;
+ diw_hstop = hstop;
diwfirstword = coord_diw_to_window_x (hstrt);
diwlastword = coord_diw_to_window_x (hstop);
{
uae_u16 data = last_custom_value1;
if (dma) {
- if (cycle)
+ if (cycle && currprefs.cpu_cycle_exact)
s->ptxhpos = hpos;
data = last_custom_value1 = chipmem_agnus_wget (s->pt);
alloc_cycle (hpos, CYCLE_SPRITE);
s->pt += 2;
return data;
}
-STATIC_INLINE uae_u16 sprite_fetch2 (struct sprite *s, int dma, int hpos, int cycle, int mode)
+STATIC_INLINE uae_u16 sprite_fetch2 (struct sprite *s, int hpos, int cycle, int mode)
{
- uae_u16 data = last_custom_value1;
- if (dma) {
- data = last_custom_value1 = chipmem_agnus_wget (s->pt);
- }
+ uae_u16 data = last_custom_value1 = chipmem_agnus_wget (s->pt);
s->pt += 2;
return data;
}
switch (sprite_width)
{
case 64:
- sprite_fetch2 (s, dma, hpos, cycle, 0);
- sprite_fetch2 (s, dma, hpos, cycle, 0);
+ sprite_fetch2 (s, hpos, cycle, 0);
+ sprite_fetch2 (s, hpos, cycle, 0);
case 32:
- sprite_fetch2 (s, dma, hpos, cycle, 0);
+ sprite_fetch2 (s, hpos, cycle, 0);
break;
}
} else {
}
#endif
if (cycle == 0) {
- SPRxDATA_1 (dma ? data : sprdata[num][0], num, hpos);
+ SPRxDATA_1 (data, num, hpos);
s->dmacycle = 1;
} else {
- SPRxDATB_1 (dma ? data : sprdatb[num][0], num, hpos);
+ SPRxDATB_1 (data, num, hpos);
spr_arm (num, 1);
}
#ifdef AGA
{
case 64:
{
- uae_u16 data32 = sprite_fetch2 (s, dma, hpos, cycle, 1);
- uae_u16 data641 = sprite_fetch2 (s, dma, hpos, cycle, 1);
- uae_u16 data642 = sprite_fetch2 (s, dma, hpos, cycle, 1);
+ uae_u16 data32 = sprite_fetch2 (s, hpos, cycle, 1);
+ uae_u16 data641 = sprite_fetch2 (s, hpos, cycle, 1);
+ uae_u16 data642 = sprite_fetch2 (s, hpos, cycle, 1);
if (dma) {
if (cycle == 0) {
sprdata[num][3] = data642;
break;
case 32:
{
- uae_u16 data32 = sprite_fetch2 (s, dma, hpos, cycle, 1);
+ uae_u16 data32 = sprite_fetch2 (s, hpos, cycle, 1);
if (dma) {
if (cycle == 0)
sprdata[num][1] = data32;
if (vpos < sprite_vblank_endline)
return;
+
if (doflickerfix () && interlace_seen && (next_lineno & 1))
return;
static void init_hardware_frame (void)
{
+ int i;
+
first_bpl_vpos = -1;
next_lineno = 0;
prev_lineno = -1;
ddflastword_total = 0;
plflastline_total = 0;
plffirstline_total = maxvpos;
+ for (i = 0; i < MAX_SPRITES; i++)
+ spr[i].ptxhpos = MAXHPOS;
}
void init_hardware_for_drawing_frame (void)
handle_events ();
+#if CUSTOM_DEBUG > 1
+ if ((intreq & 0x0020) && (intena & 0x0020))
+ write_log (L"vblank interrupt not cleared\n");
+#endif
INTREQ (0x8000 | 0x0020);
if (bplcon0 & 4)
lof ^= 1;
for (i = 0; i < 4; i++) {
alloc_cycle (hp, i == 0 ? CYCLE_STROBE : CYCLE_REFRESH); /* strobe */
#ifdef DEBUGGER
- if (debug_dma)
- record_dma (i == 0 ? (vpos + 1 == maxvpos + lof ? 0x38 : 0x3c) : 0x1fe, 0xffff, 0xffffffff, hp, vpos, DMARECORD_REFRESH);
+ if (debug_dma) {
+ uae_u16 strobe = 0x3c;
+ if (vpos < equ_vblank_endline)
+ strobe = 0x38;
+ else if (vpos < minfirstline)
+ strobe = 0x3a;
+ else if (vpos + 1 == maxvpos + lof)
+ strobe = 0x38;
+ else if ((currprefs.chipset_mask & CSMASK_ECS_AGNUS) && lol)
+ strobe = 0x3e;
+ record_dma (i == 0 ? strobe : 0x1fe, 0xffff, 0xffffffff, hp, vpos, DMARECORD_REFRESH);
+ }
#endif
hp += 2;
if (hp >= maxhpos)
#include "inputdevice.h"
#include "crc32.h"
#include "cpummu.h"
+#include "rommgr.h"
int debugger_active;
static uaecptr skipaddr_start, skipaddr_end;
L" od Enable/disable Copper vpos/hpos tracing\n"
L" ot Copper single step trace\n"
L" ob <addr> Copper breakpoint\n"
- L" O Display bitplane offsets\n"
- L" O <plane> <offset> Offset a bitplane\n"
L" H[H] <cnt> Show PC history (HH=full CPU info) <cnt> instructions\n"
L" C <value> Search for values like energy or lifes in games\n"
L" Cl List currently found trainer addresses\n"
break;
}
case 'O':
- if (more_params (&inptr)) {
- int plane = readint (&inptr);
- int offs = readint (&inptr);
- if (plane >= 0 && plane < 8)
- bpl_off[plane] = offs;
- } else {
- int i;
- for (i = 0; i < 8; i++)
- console_out_f (L"Plane %d offset %d\n", i, bpl_off[i]);
- }
break;
case 'b':
if (staterecorder (&inptr))
* W number of tracks (default 2*80=160)
*
* W reserved
-* W type, 0=normal AmigaDOS track, 1 = raw MFM
+* W type, 0=normal AmigaDOS track, 1 = raw MFM (upper byte = disk revolutions - 1)
* L available space for track in bytes (must be even)
* L track length in bits
*/
int bitlen, track;
unsigned int sync;
image_tracktype type;
+ int revolutions;
} trackid;
#define MAX_TRACKS (2 * 83)
int mfmpos;
int indexoffset;
int tracklen;
+ int revolutions;
int prevtracklen;
int trackspeed;
int dmalen;
drv->dskchange_time = 0;
drv->buffered_cyl = -1;
drv->buffered_side = -1;
- gui_led (i + 1, 0);
+ gui_led (i + LED_DF0, 0);
drive_settype_id (drv);
_tcscpy (currprefs.df[i], changed_prefs.df[i]);
drv->newname[0] = 0;
gui_data.drive_track[num] = drv->cyl;
gui_data.drive_side = side;
gui_data.drive_writing[num] = writ;
- gui_led (num + 1, gui_data.drive_motor[num]);
+ gui_led (num + LED_DF0, gui_data.drive_motor[num]);
}
static void drive_fill_bigbuf (drive * drv,int);
static void track_reset (drive *drv)
{
drv->tracklen = FLOPPY_WRITE_LEN * drv->ddhd * 2 * 8;
+ drv->revolutions = 1;
drv->trackspeed = get_floppy_speed ();
drv->buffered_side = -1;
drv->skipoffset = -1;
for (i = 0; i < (*num_tracks); i++) {
tid = trackdata + i;
zfile_fread (buffer, 2 + 2 + 4 + 4, 1, diskfile);
- tid->type = buffer[2] * 256 + buffer[3];
+ tid->type = buffer[3];
+ tid->revolutions = buffer[2] + 1;
tid->len = buffer[5] * 65536 + buffer[6] * 256 + buffer[7];
tid->bitlen = buffer[9] * 65536 + buffer[10] * 256 + buffer[11];
tid->offs = offs;
tid->sync = buffer[0] * 256 + buffer[1];
tid->len = buffer[2] * 256 + buffer[3];
tid->offs = offs;
+ tid->revolutions = 1;
if (tid->sync == 0) {
tid->type = TRACK_AMIGADOS;
tid->bitlen = 0;
tid->len = 512 * drv->num_secs;
tid->bitlen = 0;
tid->offs = i * 512 * drv->num_secs;
+ tid->revolutions = 1;
}
drv->useturbo = 1;
tid->type = TRACK_NONE;
tid->len = 512 * drv->num_secs;
}
+ tid->revolutions = 1;
tid++;
}
tid->len = 512 * drv->num_secs;
tid->bitlen = 0;
tid->offs = i * 512 * drv->num_secs;
+ tid->revolutions = 1;
}
}
openwritefile (drv, 0);
drv->multi_revolution = 0;
drv->tracktiming[0] = 0;
drv->skipoffset = -1;
+ drv->revolutions = 1;
if (drv->writediskfile && drv->writetrackdata[tr].bitlen > 0) {
int i;
trackid *wti = &drv->writetrackdata[tr];
drv->tracklen = wti->bitlen;
+ drv->revolutions = wti->revolutions;
read_floppy_data (drv->writediskfile, wti, 0, (uae_u8*)drv->bigmfmbuf, (wti->bitlen + 7) / 8);
for (i = 0; i < (drv->tracklen + 15) / 16; i++) {
uae_u16 *mfm = drv->bigmfmbuf + i;
{
uae_u8 buf[2 + 2 + 4 + 4], *zerobuf;
+ ti->revolutions = 1;
ti->bitlen = len;
zfile_fseek (diskfile, 8 + 4 + (2 + 2 + 4 + 4) * ti->track, SEEK_SET);
memset (buf, 0, sizeof buf);
ti->type = type;
+ buf[2] = 0;
buf[3] = ti->type;
do_put_mem_long ((uae_u32 *) (buf + 4), ti->len);
do_put_mem_long ((uae_u32 *) (buf + 8), ti->bitlen);
int half = 0;
pen_rgb = c1;
- if (led >= 1 && led <= 4) {
- int pled = led - 1;
+ if (led >= LED_DF0 && led <= LED_DF3) {
+ int pled = led - LED_DF0;
int track = gui_data.drive_track[pled];
pos = 6 + pled;
on_rgb = 0x00cc00;
pen_rgb = ledcolor (0x00aaaaaa, rc, gc, bc, alpha);
}
side = gui_data.drive_side;
- } else if (led == 0) {
+ } else if (led == LED_POWER) {
pos = 3;
//on = gui_data.powerled_brightness > 0;
on_rgb = ((gui_data.powerled_brightness * 10 / 16) + 0x33) << 16;
on = gui_data.powerled;
//on_rgb = 0xcc0000;
off_rgb = 0x330000;
- } else if (led == 5) {
+ } else if (led == LED_CD) {
pos = 5;
on = gui_data.cd & (LED_CD_AUDIO | LED_CD_ACTIVE);
on_rgb = (on & LED_CD_AUDIO) ? 0x00cc00 : 0x0000cc;
num1 = -1;
num2 = 10;
num3 = 12;
- } else if (led == 6) {
+ } else if (led == LED_HD) {
pos = 4;
on = gui_data.hd;
on_rgb = on == 2 ? 0xcc0000 : 0x0000cc;
num1 = -1;
num2 = 11;
num3 = 12;
- } else if (led == 7) {
+ } else if (led == LED_FPS) {
int fps = (gui_data.fps + 5) / 10;
pos = 2;
on_rgb = 0x000000;
am = 3;
if (num1 == 0)
am = 2;
- } else if (led == 8) {
+ } else if (led == LED_CPU) {
int idle = (gui_data.idle + 5) / 10;
pos = 1;
on = framecnt && !picasso_on;
num3 = idle % 10;
num4 = num1 == 0 ? 13 : -1;
am = 3;
- } else if (led == 9) {
+ } else if (led == LED_SND) {
int snd = abs(gui_data.sndbuf + 5) / 10;
if (snd > 99)
snd = 99;
on_rgb = 0x0000cc; // "normal" overflow
off_rgb = 0x000000;
am = 3;
- }
+ } else if (led == LED_MD && gui_data.drive_disabled[3]) {
+ // DF3 reused as internal non-volatile ram led (cd32/cdtv)
+ pos = 6 + 3;
+ on = gui_data.md;
+ on_rgb = on == 2 ? 0xcc0000 : 0x00cc00;
+ off_rgb = 0x003300;
+ num1 = -1;
+ num2 = -1;
+ num3 = -1;
+ } else
+ return;
on_rgb |= 0x33000000;
off_rgb |= 0x33000000;
if (half > 0) {
if (currprefs.gfx_afullscreen && currprefs.gfx_avsync)
flush_screen (0, 0); /* vsync mode */
}
- gui_hd_led (-1, 0);
- gui_cd_led (-1, 0);
+ gui_flicker_led (-1, 0, 0);
#ifdef AVIOUTPUT
frame_drawn ();
#endif
#include "options.h"
#include "uae.h"
#include "memory.h"
+#include "rommgr.h"
#include "autoconf.h"
#include "custom.h"
#include "newcpu.h"
; 2008.12.11 mousehack -> tablet driver
; 2008.12.25 mousehack cursor sync
; 2009.01.20 clipboard sharing
+; 2009.12.27 console hook
AllocMem = -198
FreeMem = -210
our_seglist:
dc.l 0 ; 8 /* NextSeg */
start:
- dc.l 9 ;0 12
- bra.w filesys_mainloop ;1 16
+ dc.l 9 ;0 12
+ bra.w filesys_mainloop ;1 16
dc.l make_dev-start ;2 20
- dc.l filesys_init-start ;3 24
- dc.l exter_server-start ;4 28
+ dc.l filesys_init-start ;3 24
+ dc.l exter_server-start ;4 28
dc.l bootcode-start ;5 32
- dc.l setup_exter-start ;6 36
- dc.l mh_e-start ;7 40
- dc.l clipboard_init-start ;8 44
- ;48
+ dc.l setup_exter-start ;6 36
+ dc.l mh_e-start ;7 40
+ dc.l clipboard_init-start ;8 44
+ ;52
bootcode:
lea.l doslibname(pc),a1
move.w #-$48,a0 ;InitCode
jsr -$01a4(a6) ;SetFunction (restore original)
bsr.w clipboard_init
+ bsr.w consolehook
movem.l (sp)+,d0-d7/a1-a6
rts ;return directly to caller
moveq #0,d0
rts
+consolehook:
+ move.l 4.w,a6
+ moveq #-1,d2
+ move.w #$FF38,d0
+ moveq #100,d1
+ bsr.w getrtbase
+ jsr (a0)
+ tst.l d0
+ beq.s .ch2
+ moveq #0,d2
+ jsr -$0084(a6) ;Forbid
+ lea 350(a6),a0 ;DeviceList
+ lea con_dev(pc),a1
+ jsr -$114(a6) ;FindName
+ tst.l d0
+ beq.s .ch1
+ move.l d0,a0
+ lea chook(pc),a1
+ move.l -$1e+2(a0),a2 ; BeginIO
+ move.l a1,-$1e+2(a0)
+ move.l a0,a1
+ move.w #$FF38,d0
+ moveq #101,d1
+ bsr.w getrtbase
+ jsr (a0)
+ moveq #1,d2
+.ch1
+ jsr -$008a(a6) ;Permit
+.ch2
+ move.l d2,d0
+ rts
+
+chook:
+ subq.l #4,sp ; native code fills with original return address
+ movem.l d0-d1/a0,-(sp)
+ move.w #$FF38,d0
+ moveq #102,d1
+ bsr.w getrtbase
+ jsr (a0)
+ movem.l (sp)+,d0-d1/a0
+ rts
+
+
inp_dev: dc.b 'input.device',0
tim_dev: dc.b 'timer.device',0
+con_dev: dc.b 'console.device',0
devsn_name: dc.b 'DEVS',0
devs_name: dc.b 'DEVS:',0
clip_name: dc.b 'DEVS:clipboard.device',0
#include "uaeresource.h"
#include "inputdevice.h"
#include "clipboard.h"
+#include "consolehook.h"
#define TRACING_ENABLED 0
#if TRACING_ENABLED
{
if (!s)
return;
- while(_tcslen(s) > 0 && s[_tcslen(s) - 1] == ':')
+ while (_tcslen(s) > 0 && s[_tcslen(s) - 1] == ':')
s[_tcslen(s) - 1] = 0;
}
+static void stripspace (TCHAR *s)
+{
+ int i;
+ if (!s)
+ return;
+ for (i = 0; i < _tcslen (s); i++) {
+ if (s[i] == ' ')
+ s[i] = '_';
+ }
+}
+static void striplength (TCHAR *s, int len)
+{
+ if (!s)
+ return;
+ if (_tcslen (s) <= len)
+ return;
+ s[len] = 0;
+}
+static void fixcharset (TCHAR *s)
+{
+ char tmp[MAX_DPATH];
+ if (!s)
+ return;
+ ua_fs_copy (tmp, MAX_DPATH, s, '_');
+ au_fs_copy (s, strlen (tmp) + 1, tmp);
+}
+
+TCHAR *validatevolumename (TCHAR *s)
+{
+ stripsemicolon (s);
+ stripspace (s);
+ fixcharset (s);
+ striplength (s, 30);
+ return s;
+}
+TCHAR *validatedevicename (TCHAR *s)
+{
+ stripsemicolon (s);
+ stripspace (s);
+ fixcharset (s);
+ striplength (s, 30);
+ return s;
+}
TCHAR *filesys_createvolname (const TCHAR *volname, const TCHAR *rootdir, const TCHAR *def)
{
else
nvol = my_strdup (L"");
}
- stripsemicolon (nvol);
+ validatevolumename (nvol);
xfree (p);
return nvol;
}
bootpri = -128;
if (donotmount)
bootpri = -129;
- if (bootpri < -129) bootpri = -129;
- if (bootpri > 127) bootpri = 127;
+ if (bootpri < -129)
+ bootpri = -129;
+ if (bootpri > 127)
+ bootpri = 127;
ui->bootpri = bootpri;
ui->open = 1;
return nr;
err:
if (ui->hf.handle_valid)
- hdf_close(&ui->hf);
+ hdf_close (&ui->hf);
return -1;
}
int i;
char *s;
- s = ua_fs (unit->ui.volname);
+ s = ua_fs (unit->ui.volname, -1);
namelen = strlen (s);
put_byte (unit->volume + 44, namelen);
for (i = 0; i < namelen; i++)
Unit *unit;
UnitInfo *uinfo;
int late = 0;
+ int ed, ef;
/* find UnitInfo with correct device name */
s = _tcschr (devname, ':');
put_long (pkt + dp_Res2, ERROR_DEVICE_NOT_MOUNTED);
return 0;
}
+ uinfo = mountinfo.ui + i;
- if (!mountinfo.ui[i].wasisempty && !my_existsdir (mountinfo.ui[i].rootdir) && !my_existsfile (mountinfo.ui[i].rootdir))
+ ed = my_existsdir (uinfo->rootdir);
+ ef = my_existsfile (uinfo->rootdir);
+ if (!uinfo->wasisempty && !ef && !ed)
{
write_log (L"Failed attempt to mount device '%s'\n", devname);
put_long (pkt + dp_Res1, DOS_FALSE);
return 0;
}
- uinfo = mountinfo.ui + i;
if (!uinfo->unit_pipe) {
late = 1;
filesys_start_thread (uinfo, i);
/* write_comm_pipe_int (unit->ui.unit_pipe, -1, 1);*/
- write_log (L"FS: %s (flags=%08X) starting..\n", unit->ui.volname, unit->volflags);
+ write_log (L"FS: %s (flags=%08X,E=%d,ED=%d,EF=%d,native='%s') starting..\n",
+ unit->ui.volname, unit->volflags, uinfo->wasisempty, ed, ef, unit->ui.rootdir);
/* fill in our process in the device node */
devnode = get_long (pkt + dp_Arg3) << 2;
put_long (info + 120, entrytype);
TRACE((L"name=\"%s\"\n", xs));
- x2 = x = ua_fs (xs);
+ x2 = x = ua_fs (xs, -1);
n = strlen (x);
if (n > 106)
n = 106;
xs = aino->comment;
if (!xs)
xs= L"";
- x2 = x = ua_fs (xs);
+ x2 = x = ua_fs (xs, -1);
n = strlen (x);
if (n > 78)
n = 78;
entrytype = aino->dir ? 2 : -3;
xs = aino->aname;
}
- x = ua_fs (xs);
+ x = ua_fs (xs, -1);
size = 0;
size2 = 4;
commentx = L"";
else
commentx = aino->comment;
- comment = ua_fs (commentx);
+ comment = ua_fs (commentx, -1);
size += strlen (comment) + 1;
size = (size + 3) & ~3;
}
uae_u32 uniq;
TRACE((L"ACTION_EXAMINE_NEXT(0x%lx,0x%lx)\n", lock, info));
- gui_hd_led (unit->unit, 1);
+ gui_flicker_led (LED_HD, unit->unit, 1);
DUMPLOCK(unit, lock);
if (lock != 0)
return;
}
TRACE((L"ACTION_READ(%s,0x%lx,%ld)\n", k->aino->nname, addr, size));
- gui_hd_led (unit->unit, 1);
+ gui_flicker_led (LED_HD, unit->unit, 1);
#ifdef RELY_ON_LOADSEG_DETECTION
/* HACK HACK HACK HACK
* Try to detect a LoadSeg() */
return;
}
- gui_hd_led (unit->unit, 2);
+ gui_flicker_led (LED_HD, unit->unit, 2);
TRACE((L"ACTION_WRITE(%s,0x%lx,%ld)\n", k->aino->nname, addr, size));
if (unit->ui.readonly) {
whence = SEEK_SET;
TRACE((L"ACTION_SEEK(%s,%d,%d)\n", k->aino->nname, pos, mode));
- gui_hd_led (unit->unit, 1);
+ gui_flicker_led (LED_HD, unit->unit, 1);
old = fs_lseek (unit, k->fd, 0, SEEK_CUR);
{
PUT_PCK_RES1 (packet, DOS_TRUE);
}
notify_check (unit, a);
- gui_hd_led (unit->unit, 2);
+ gui_flicker_led (LED_HD, unit->unit, 2);
}
static void action_set_comment (Unit * unit, dpacket packet)
a->comment = commented;
fsdb_set_file_attrs (a);
notify_check (unit, a);
- gui_hd_led (unit->unit, 2);
+ gui_flicker_led (LED_HD, unit->unit, 2);
}
static void
notify_check (unit, aino);
updatedirtime (aino, 0);
PUT_PCK_RES1 (packet, make_lock (unit, aino->uniq, -2) >> 2);
- gui_hd_led (unit->unit, 2);
+ gui_flicker_led (LED_HD, unit->unit, 2);
}
static void
return;
}
- gui_hd_led (unit->unit, 1);
+ gui_flicker_led (LED_HD, unit->unit, 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. */
delete_aino (unit, a);
}
PUT_PCK_RES1 (packet, DOS_TRUE);
- gui_hd_led (unit->unit, 2);
+ gui_flicker_led (LED_HD, unit->unit, 2);
}
static void
notify_check (unit, a);
PUT_PCK_RES1 (packet, DOS_TRUE);
}
- gui_hd_led (unit->unit, 2);
+ gui_flicker_led (LED_HD, unit->unit, 2);
}
static void
if (a2->elock > 0 || a2->shlock > 0 || wehavekeys > 0)
de_recycle_aino (unit, a2);
PUT_PCK_RES1 (packet, DOS_TRUE);
- gui_hd_led (unit->unit, 2);
+ gui_flicker_led (LED_HD, unit->unit, 2);
}
static void
whence = SEEK_SET;
TRACE((L"ACTION_CHANGE_FILE_POSITION64(%s,%I64d,%d)\n", k->aino->nname, pos, mode));
- gui_hd_led (unit->unit, 1);
+ gui_flicker_led (LED_HD, unit->unit, 1);
old = fs_lseek64 (unit, k->fd, 0, SEEK_CUR);
{
return;
}
- gui_hd_led (unit->unit, 1);
+ gui_flicker_led (LED_HD, unit->unit, 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. */
lockend = get_long (lockend);
cnt++;
}
- TRACE((L"%d %x %x %x\n", cnt, locks, lockend, m68k_areg (regs, 3)));
+ TRACE((L"message_lock: %d %x %x %x\n", cnt, locks, lockend, m68k_areg (regs, 3)));
put_long (lockend, get_long (m68k_areg (regs, 3)));
put_long (m68k_areg (regs, 3), locks);
}
} else if (mode == 16) {
uaecptr a2 = m68k_areg (regs, 2);
input_mousehack_mouseoffset (a2);
+ } else if (mode == 100) {
+ return consolehook_activate () ? 1 : 0;
+ } else if (mode == 101) {
+ consolehook_ret (m68k_areg (regs, 1), m68k_areg (regs, 2));
+ } else if (mode == 102) {
+ uaecptr ret = consolehook_beginio (m68k_areg (regs, 1));
+ put_long (m68k_areg (regs, 7) + 4 * 4, ret);
+ } else {
+ write_log (L"Unknown mousehack hook %d\n", mode);
}
return 1;
}
db(0x00); db(0x00); db(0x08); db(0x04); db(0x00); db(0x00); db(0x00); db(0xd0);
db(0x00); db(0x00); db(0x02); db(0x2c); db(0x00); db(0x00); db(0x00); db(0x24);
db(0x00); db(0x00); db(0x02); db(0xe8); db(0x00); db(0x00); db(0x0d); db(0xf4);
- db(0x00); db(0x00); db(0x12); db(0x84); db(0x43); db(0xfa); db(0x16); db(0xe1);
+ db(0x00); db(0x00); db(0x12); db(0x84); db(0x43); db(0xfa); db(0x17); db(0x5a);
db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28);
db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75);
db(0x48); db(0xe7); db(0xe0); db(0xe2); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x44);
- db(0x70); db(0x14); db(0x24); db(0x00); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
- db(0x67); db(0x32); db(0x24); db(0x40); db(0x20); db(0x4a); db(0x43); db(0xfa);
- db(0x00); db(0x5c); db(0x20); db(0xd9); db(0x59); db(0x82); db(0x66); db(0xfa);
- db(0x4e); db(0xae); db(0xff); db(0x88); db(0x22); db(0x4e); db(0x30); db(0x7c);
- db(0xff); db(0xb8); db(0x20); db(0x0a); db(0x4e); db(0xae); db(0xfe); db(0x5c);
- db(0x25); db(0x40); db(0x00); db(0x0e); db(0x41); db(0xfa); db(0x00); db(0x14);
- db(0x25); db(0x48); db(0x00); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x84);
- db(0x4e); db(0xae); db(0xff); db(0x82); db(0x4c); db(0xdf); db(0x47); db(0x07);
- db(0x4e); db(0x75); db(0x20); db(0x57); db(0x20); db(0x68); db(0x00); db(0x02);
- db(0x2f); db(0x08); db(0x4e); db(0x90); db(0x20); db(0x5f); db(0x58); db(0x8f);
- db(0x48); db(0xe7); db(0xff); db(0x7e); db(0x22); db(0x4e); db(0x20); db(0x08);
- db(0x30); db(0x7c); db(0xff); db(0xb8); db(0x4e); db(0xae); db(0xfe); db(0x5c);
- db(0x61); db(0x00); db(0x11); db(0xd2); db(0x4c); db(0xdf); db(0x7e); db(0xff);
+ db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x40);
+ db(0x70); db(0x14); db(0x24); db(0x00); db(0x72); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x32); db(0x24); db(0x40);
+ db(0x20); db(0x4a); db(0x43); db(0xfa); db(0x00); db(0x60); db(0x20); db(0xd9);
+ db(0x59); db(0x82); db(0x66); db(0xfa); db(0x4e); db(0xae); db(0xff); db(0x88);
+ db(0x22); db(0x4e); db(0x30); db(0x7c); db(0xff); db(0xb8); db(0x20); db(0x0a);
+ db(0x4e); db(0xae); db(0xfe); db(0x5c); db(0x25); db(0x40); db(0x00); db(0x0e);
+ db(0x41); db(0xfa); db(0x00); db(0x14); db(0x25); db(0x48); db(0x00); db(0x08);
+ db(0x4e); db(0xae); db(0xfd); db(0x84); db(0x4e); db(0xae); db(0xff); db(0x82);
+ db(0x4c); db(0xdf); db(0x47); db(0x07); db(0x4e); db(0x75); db(0x20); db(0x57);
+ db(0x20); db(0x68); db(0x00); db(0x02); db(0x2f); db(0x08); db(0x4e); db(0x90);
+ db(0x20); db(0x5f); db(0x58); db(0x8f); db(0x48); db(0xe7); db(0xff); db(0x7e);
+ db(0x22); db(0x4e); db(0x20); db(0x08); db(0x30); db(0x7c); db(0xff); db(0xb8);
+ db(0x4e); db(0xae); db(0xfe); db(0x5c); db(0x61); db(0x00); db(0x11); db(0xd6);
+ db(0x61); db(0x00); db(0x15); db(0x88); db(0x4c); db(0xdf); db(0x7e); db(0xff);
db(0x4e); db(0x75); db(0x00); db(0x00); db(0x08); db(0x00); db(0x00); db(0x02);
db(0x67); db(0x06); db(0x4e); db(0xb9); db(0x00); db(0xf0); db(0x00); db(0x00);
db(0x4e); db(0xf9); db(0x00); db(0xf0); db(0x00); db(0x00); db(0x00); db(0x00);
db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04);
db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0x82);
- db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0x52); db(0x70); db(0x24);
+ db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x16); db(0xcb); db(0x70); db(0x24);
db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
- db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0x42); db(0x70); db(0x00);
+ db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x16); db(0xbb); db(0x70); db(0x00);
db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40);
db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x5a); db(0x20); db(0x3c);
db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
db(0x0a); db(0xf0); db(0x4e); db(0x90); db(0x72); db(0x03); db(0x74); db(0xf6);
db(0x20); db(0x7c); db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88);
db(0x65); db(0x0a); db(0x67); db(0x08); db(0x78); db(0x00); db(0x22); db(0x44);
- db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0x4d);
+ db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0xc6);
db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00);
db(0x0b); db(0xa4); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c);
db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0xbc); db(0x4e); db(0x90);
db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7);
db(0x38); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00);
db(0x28); db(0x01); db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa);
- db(0x15); db(0x47); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x15); db(0xc0); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
db(0x4a); db(0x80); db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a);
db(0xe4); db(0x8b); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e);
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
db(0x4c); db(0xdf); db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78);
db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x14); db(0xf8);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x15); db(0x71);
db(0x43); db(0xfa); db(0x00); db(0x16); db(0x70); db(0x0f); db(0x22); db(0x3c);
db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8);
db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x61); db(0x00); db(0xfd); db(0x4a);
db(0x70); db(0x1a); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40); db(0x41); db(0xfa);
- db(0x13); db(0xcc); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
+ db(0x14); db(0x45); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
db(0xff); db(0x24); db(0x23); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xfa);
db(0xff); db(0x1c); db(0x23); db(0x48); db(0x00); db(0x12); db(0x33); db(0x7c);
db(0x02); db(0x14); db(0x00); db(0x08); db(0x70); db(0x03); db(0x4e); db(0xae);
db(0x00); db(0x00); db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40);
db(0x00); db(0x8c); db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88);
db(0x21); db(0x40); db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa);
- db(0x13); db(0x5c); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
+ db(0x13); db(0xd5); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
db(0x01); db(0x98); db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae);
db(0xff); db(0x10); db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75);
db(0x48); db(0xe7); db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04);
db(0x60); db(0xf4); db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78);
db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50);
db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a);
- db(0x45); db(0xfa); db(0x12); db(0xae); db(0x10); db(0x19); db(0x12); db(0x1a);
+ db(0x45); db(0xfa); db(0x13); db(0x27); db(0x10); db(0x19); db(0x12); db(0x1a);
db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42);
db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20);
db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08);
- db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0x84); db(0x25); db(0x48);
- db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x00); db(0x25); db(0x48);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x12); db(0xfd); db(0x25); db(0x48);
+ db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x12); db(0x79); db(0x25); db(0x48);
db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88);
db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee);
db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a);
db(0x67); db(0x3a); db(0x20); db(0x52); db(0x24); db(0x40); db(0x22); db(0x4a);
db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x13); db(0x7c); db(0x00); db(0x3a);
db(0xff); db(0xff); db(0x42); db(0x11); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x43); db(0xfa); db(0x0d); db(0x7d); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0d); db(0xf6); db(0x70); db(0x00); db(0x4e); db(0xae);
db(0xfd); db(0xd8); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0x4e); db(0xae);
db(0xff); db(0x52); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04);
db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4a); db(0x20); db(0x02);
db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75);
db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0x78);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0d); db(0xf1);
db(0x70); db(0x24); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
db(0x66); db(0x0e); db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa);
- db(0x0d); db(0x66); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x0d); db(0xdf); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
db(0x28); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
db(0xff); db(0x3a); db(0x20); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x2c);
db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75);
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae);
db(0xfe); db(0xda); db(0x20); db(0x40); db(0x4b); db(0xe8); db(0x00); db(0x5c);
- db(0x43); db(0xfa); db(0x0c); db(0xcd); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0x43); db(0xfa); db(0x0d); db(0x46); db(0x70); db(0x00); db(0x4e); db(0xae);
db(0xfd); db(0xd8); db(0x24); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00);
db(0x00); db(0xb9); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40); db(0x7c); db(0x00);
db(0x26); db(0x86); db(0x27); db(0x46); db(0x00); db(0x04); db(0x27); db(0x46);
db(0x00); db(0x08); db(0x27); db(0x4a); db(0x00); db(0xa0); db(0x50); db(0xeb);
db(0x00); db(0x9e); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
- db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0b); db(0xc4);
+ db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0c); db(0x2e);
db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x84);
- db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0b); db(0xc1);
+ db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0c); db(0x2b);
db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x74);
db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00); db(0x20); db(0x4d);
db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d); db(0x4e); db(0xae);
db(0x25); db(0x4b); db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43);
db(0x97); db(0xcb); db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6);
db(0x20); db(0x02); db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75);
- db(0x41); db(0xfa); db(0x09); db(0x21); db(0x43); db(0xfa); db(0x01); db(0x5c);
+ db(0x41); db(0xfa); db(0x09); db(0x9a); db(0x43); db(0xfa); db(0x01); db(0x5c);
db(0x70); db(0x13); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75);
db(0x22); db(0x6d); db(0x02); db(0x0c); db(0x33); db(0x7c); db(0x00); db(0x0a);
db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
db(0x00); db(0x08); db(0x27); db(0x46); db(0x00); db(0x0c); db(0x70); db(0xff);
db(0x37); db(0x40); db(0x00); db(0x00); db(0x43); db(0xed); db(0x00); db(0x00);
db(0x13); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c);
- db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0x65);
+ db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0xde);
db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x02); db(0xda);
db(0x23); db(0x48); db(0x00); db(0x12); db(0x23); db(0x4d); db(0x00); db(0x0e);
db(0x70); db(0x05); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x06);
db(0x00); db(0x1c); db(0x6a); db(0x06); db(0x70); db(0x0a); db(0x27); db(0x40);
db(0x00); db(0x1c); db(0x4a); db(0xab); db(0x00); db(0x14); db(0x66); db(0x16);
db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xe0); db(0x43); db(0xfa);
- db(0x07); db(0x83); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x07); db(0xfc); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
db(0x27); db(0x40); db(0x00); db(0x14); db(0x67); db(0xd0); db(0x4a); db(0xab);
db(0x00); db(0x18); db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c);
- db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0x79); db(0x70); db(0x00);
+ db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x07); db(0xf2); db(0x70); db(0x00);
db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18);
db(0x67); db(0x00); db(0xff); db(0xb4); db(0x4a); db(0xad); db(0x02); db(0x08);
db(0x66); db(0x38); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xa6);
db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e);
- db(0x43); db(0xfa); db(0x06); db(0x68); db(0x4e); db(0xae); db(0xfe); db(0xec);
+ db(0x43); db(0xfa); db(0x06); db(0xd2); db(0x4e); db(0xae); db(0xfe); db(0xec);
db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82);
- db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0x56); db(0x70); db(0x00);
+ db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0xc0); db(0x70); db(0x00);
db(0x72); db(0x00); db(0x61); db(0x00); db(0xfd); db(0x16); db(0x2b); db(0x40);
db(0x02); db(0x08); db(0x67); db(0x00); db(0x02); db(0x42); db(0x60); db(0x00);
db(0xff); db(0x76); db(0x4a); db(0xad); db(0x02); db(0x0c); db(0x66); db(0x48);
db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x68);
db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e);
- db(0x43); db(0xfa); db(0x06); db(0x35); db(0x4e); db(0xae); db(0xfe); db(0xec);
+ db(0x43); db(0xfa); db(0x06); db(0x9f); db(0x4e); db(0xae); db(0xfe); db(0xec);
db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82);
- db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x21);
+ db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0x8b);
db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xd4);
db(0x2b); db(0x40); db(0x02); db(0x0c); db(0x67); db(0x00); db(0x02); db(0x00);
db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00);
db(0x00); db(0x40); db(0x2a); db(0x40); db(0x2b); db(0x4e); db(0x00); db(0x14);
db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0e); db(0x61); db(0x00);
db(0xf9); db(0xb0); db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x41); db(0xfa);
- db(0x03); db(0xed); db(0x43); db(0xfa); db(0x01); db(0x14); db(0x70); db(0xf6);
+ db(0x04); db(0x66); db(0x43); db(0xfa); db(0x01); db(0x14); db(0x70); db(0xf6);
db(0x22); db(0x3c); db(0x00); db(0x00); db(0x27); db(0x10); db(0x61); db(0x00);
db(0xee); db(0xe6); db(0x70); db(0x00); db(0x4c); db(0xdf); db(0x60); db(0x00);
db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0a);
db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88); db(0x4e); db(0xae);
db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7);
db(0x38); db(0x3e); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa);
- db(0x03); db(0x7b); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00);
+ db(0x03); db(0xf4); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00);
db(0x03); db(0xed); db(0x4e); db(0xae); db(0xff); db(0xe2); db(0x28); db(0x00);
db(0x67); db(0x4c); db(0x45); db(0xed); db(0x00); db(0x68); db(0x42); db(0x92);
db(0x34); db(0xaa); db(0x00); db(0x02); db(0x24); db(0x0a); db(0x54); db(0x82);
db(0x61); db(0x00); db(0xf8); db(0xf6); db(0x4e); db(0x90); db(0x22); db(0x04);
db(0x67); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xdc); db(0x4c); db(0xdf);
db(0x7c); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x6d); db(0x00); db(0x18);
- db(0x41); db(0xfa); db(0x02); db(0xf3); db(0x22); db(0x08); db(0x74); db(0xfe);
+ db(0x41); db(0xfa); db(0x03); db(0x6c); db(0x22); db(0x08); db(0x74); db(0xfe);
db(0x4e); db(0xae); db(0xff); db(0xac); db(0x22); db(0x00); db(0x67); db(0x34);
db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14);
db(0x45); db(0xed); db(0x00); db(0x38); db(0x70); db(0xff); db(0x4e); db(0xae);
db(0xfe); db(0xb6); db(0x15); db(0x40); db(0x00); db(0x14); db(0x41); db(0xfa);
- db(0x02); db(0xe3); db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00);
+ db(0x03); db(0x5c); db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00);
db(0x00); db(0x12); db(0x00); db(0x0c); db(0x25); db(0x6d); db(0x00); db(0x08);
db(0x00); db(0x10); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x22); db(0x0a);
db(0x4e); db(0xae); db(0xfc); db(0x88); db(0x2c); db(0x6d); db(0x00); db(0x14);
db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xfc); db(0x2a); db(0x40);
db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae);
db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x08); db(0x43); db(0xfa);
- db(0x03); db(0x0f); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x03); db(0x88); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
db(0x2b); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00); db(0xfe); db(0xda);
db(0x2c); db(0x40); db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x41); db(0xfa); db(0x02); db(0x47); db(0x22); db(0x08); db(0x74); db(0xfe);
+ db(0x41); db(0xfa); db(0x02); db(0xc0); db(0x22); db(0x08); db(0x74); db(0xfe);
db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0xea);
db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x72); db(0x32);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0x31);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0xaa);
db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac);
db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xa4); db(0x22); db(0x00);
db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14);
db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x84); db(0x70); db(0x00);
db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2);
db(0x72); db(0x00); db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa);
- db(0x02); db(0x0a); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44);
+ db(0x02); db(0x83); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44);
db(0x4a); db(0x80); db(0x66); db(0xe2); db(0x20); db(0x6c); db(0x00); db(0x14);
db(0x0c); db(0x68); db(0x00); db(0x25); db(0x00); db(0x14); db(0x64); db(0x0c);
db(0x61); db(0x00); db(0xfe); db(0x48); db(0x70); db(0x00); db(0x4e); db(0xae);
db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14); db(0x22); db(0x68);
db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x2c); db(0x5f); db(0x70); db(0x00);
- db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75); db(0x74); db(0x2e);
- db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x74);
- db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76);
- db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53);
- db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x00); db(0x44);
- db(0x45); db(0x56); db(0x53); db(0x3a); db(0x63); db(0x6c); db(0x69); db(0x70);
- db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65);
- db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d);
- db(0x3a); db(0x00); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f);
- db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
- db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x45);
- db(0x6e); db(0x76); db(0x2f); db(0x53); db(0x79); db(0x73); db(0x2f); db(0x50);
- db(0x6f); db(0x69); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x2e); db(0x70);
- db(0x72); db(0x65); db(0x66); db(0x73); db(0x00); db(0x55); db(0x41); db(0x45);
- db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61);
- db(0x72); db(0x64); db(0x20); db(0x73); db(0x68); db(0x61); db(0x72); db(0x69);
- db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d);
- db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69);
- db(0x76); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
- db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74);
- db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66);
- db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f);
- db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41);
- db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74);
- db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70);
- db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64);
- db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
- db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69);
- db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62);
- db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61);
- db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69);
- db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78);
- db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e);
- db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00);
- db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74);
- db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75);
- db(0x72); db(0x63); db(0x65); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x74); db(0xff);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x64); db(0x61); db(0x00);
+ db(0xf6); db(0x18); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x38);
+ db(0x74); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee);
+ db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x00); db(0x62); db(0x4e); db(0xae);
+ db(0xfe); db(0xec); db(0x4a); db(0x80); db(0x67); db(0x1e); db(0x20); db(0x40);
+ db(0x43); db(0xfa); db(0x00); db(0x22); db(0x24); db(0x68); db(0xff); db(0xe4);
+ db(0x21); db(0x49); db(0xff); db(0xe4); db(0x22); db(0x48); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x65); db(0x61); db(0x00); db(0xf5); db(0xe2);
+ db(0x4e); db(0x90); db(0x74); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x76);
+ db(0x20); db(0x02); db(0x4e); db(0x75); db(0x59); db(0x8f); db(0x48); db(0xe7);
+ db(0xc0); db(0x80); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x66);
+ db(0x61); db(0x00); db(0xf5); db(0xc6); db(0x4e); db(0x90); db(0x4c); db(0xdf);
+ db(0x01); db(0x03); db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75);
+ db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65);
+ db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64);
+ db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x63); db(0x6f);
+ db(0x6e); db(0x73); db(0x6f); db(0x6c); db(0x65); db(0x2e); db(0x64); db(0x65);
+ db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56);
+ db(0x53); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x00);
+ db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x63); db(0x6c); db(0x69);
+ db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64);
+ db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41);
+ db(0x4d); db(0x3a); db(0x00); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62);
+ db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76);
+ db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a);
+ db(0x45); db(0x6e); db(0x76); db(0x2f); db(0x53); db(0x79); db(0x73); db(0x2f);
+ db(0x50); db(0x6f); db(0x69); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x2e);
+ db(0x70); db(0x72); db(0x65); db(0x66); db(0x73); db(0x00); db(0x55); db(0x41);
+ db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f);
+ db(0x61); db(0x72); db(0x64); db(0x20); db(0x73); db(0x68); db(0x61); db(0x72);
+ db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
+ db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20); db(0x64); db(0x72);
+ db(0x69); db(0x76); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45);
+ db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73);
+ db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
+ db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d);
+ db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00); db(0x55);
+ db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75);
+ db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20);
+ db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); db(0x00);
+ db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72);
+ db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75);
+ db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69);
+ db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); db(0x72);
+ db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c);
+ db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x65);
+ db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e);
+ db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79);
+ db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73);
+ db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f);
+ db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x03); db(0xf2);
ide_fail ();
return;
}
- gui_hd_led (ide->num, 1);
+ gui_flicker_led (LED_HD, ide->num, 1);
nsec = get_nsec (lba48);
get_lbachs (ide, &lba, &cyl, &head, &sec, lba48);
if (IDE_LOG > 0)
ide_fail ();
return;
}
- gui_hd_led (ide->num, 2);
+ gui_flicker_led (LED_HD, ide->num, 2);
nsec = get_nsec (lba48);
get_lbachs (ide, &lba, &cyl, &head, &sec, lba48);
if (lba * ide->blocksize >= ide->hdhfd.size) {
static uae_u64 cmd_readx (struct hardfiledata *hfd, uae_u8 *dataptr, uae_u64 offset, uae_u64 len)
{
- gui_hd_led (hfd->unitnum, 1);
+ gui_flicker_led (LED_HD, hfd->unitnum, 1);
hf_log3 ("cmd_read: %p %04x-%08x (%d) %08x (%d)\n",
dataptr, (uae_u32)(offset >> 32), (uae_u32)offset, (uae_u32)(offset / hfd->blocksize), (uae_u32)len, (uae_u32)(len / hfd->blocksize));
return hdf_read (hfd, dataptr, offset, len);
}
static uae_u64 cmd_writex (struct hardfiledata *hfd, uae_u8 *dataptr, uae_u64 offset, uae_u64 len)
{
- gui_hd_led (hfd->unitnum, 2);
+ gui_flicker_led (LED_HD, hfd->unitnum, 2);
hf_log3 ("cmd_write: %p %04x-%08x (%d) %08x (%d)\n",
dataptr, (uae_u32)(offset >> 32), (uae_u32)offset, (uae_u32)(offset / hfd->blocksize), (uae_u32)len, (uae_u32)(len / hfd->blocksize));
return hdf_write (hfd, dataptr, offset, len);
extern void action_replay_version (void);
-extern void descramble_nordicpro (uae_u8*, int, int);
-
extern int hrtmon_flag;
extern void hrtmon_enter (void);
extern int get_filesys_unitconfig (struct uae_prefs *p, int index, struct mountedinfo*);
extern int kill_filesys_unitconfig (struct uae_prefs *p, int nr);
extern int move_filesys_unitconfig (struct uae_prefs *p, int nr, int to);
+extern TCHAR *validatedevicename (TCHAR *s);
+extern TCHAR *validatevolumename (TCHAR *s);
int filesys_insert(int nr, TCHAR *volume, const TCHAR *rootdir, int readonly, int flags);
int filesys_eject(int nr);
--- /dev/null
+
+int consolehook_activate (void);
+void consolehook_ret (uaecptr condev, uaecptr oldbeginio);
+uaecptr consolehook_beginio (uaecptr request);
+void consolehook_config (struct uae_prefs *p);
#define VBLANK_SPRITE_NTSC 20
#define VBLANK_HZ_PAL 50
#define VBLANK_HZ_NTSC 60
+#define EQU_ENDLINE_PAL 9
+#define EQU_ENDLINE_NTSC 10
extern int maxhpos, maxhpos_short;
extern int maxvpos, maxvpos_max;
extern int xgreencolor_s, xgreencolor_b, xgreencolor_m;
extern int xbluecolor_s, xbluecolor_b, xbluecolor_m;
-extern int bpl_off[8];
-
#define RES_LORES 0
#define RES_HIRES 1
#define RES_SUPERHIRES 2
extern void gui_changesettings (void);
extern void gui_lock (void);
extern void gui_unlock (void);
-extern void gui_hd_led (int, int);
-extern void gui_cd_led (int, int);
+extern void gui_flicker_led (int, int, int);
extern void gui_disk_image_change (int, const TCHAR *);
extern unsigned int gui_ledstate;
extern void gui_display (int shortcut);
#define LED_CD_ACTIVE2 2
#define LED_CD_AUDIO 4
+#define LED_POWER 0
+#define LED_DF0 1
+#define LED_DF1 2
+#define LED_DF2 3
+#define LED_DF3 4
+#define LED_HD 5
+#define LED_CD 6
+#define LED_FPS 7
+#define LED_CPU 8
+#define LED_SND 9
+#define LED_MD 10
+#define LED_MAX 11
+
struct gui_info
{
- uae_u8 drive_motor[4]; /* motor on off */
- uae_u8 drive_track[4]; /* rw-head track */
- uae_u8 drive_writing[4]; /* drive is writing */
- uae_u8 drive_disabled[4]; /* drive is disabled */
- uae_u8 powerled; /* state of power led */
- uae_u8 powerled_brightness; /* 0 to 255 */
- uae_u8 drive_side; /* floppy side */
- uae_u8 hd; /* harddrive */
- uae_u8 cd; /* CD */
+ uae_u8 drive_motor[4]; /* motor on off */
+ uae_u8 drive_track[4]; /* rw-head track */
+ uae_u8 drive_writing[4]; /* drive is writing */
+ uae_u8 drive_disabled[4]; /* drive is disabled */
+ uae_u8 powerled; /* state of power led */
+ uae_u8 powerled_brightness; /* 0 to 255 */
+ uae_u8 drive_side; /* floppy side */
+ uae_u8 hd; /* harddrive */
+ uae_u8 cd; /* CD */
+ uae_u8 md; /* CD32 or CDTV internal storage */
int fps, idle;
int sndbuf, sndbuf_status;
- TCHAR df[4][256]; /* inserted image */
- uae_u32 crc32[4]; /* crc32 of image */
+ TCHAR df[4][256]; /* inserted image */
+ uae_u32 crc32[4]; /* crc32 of image */
};
-#define NUM_LEDS (1 + 1 + 1 + 1 + 1 + 1 + 4)
+#define NUM_LEDS (LED_MAX)
extern struct gui_info gui_data;
extern void inputdevice_setkeytranslation (struct uae_input_device_kbr_default *trans);
extern int handle_input_event (int nr, int state, int max, int autofire);
extern void inputdevice_do_keyboard (int code, int state);
+extern int inputdevice_iskeymapped (int keyboard, int scancode);
+extern int inputdevice_synccapslock (int, int*);
extern uae_u16 potgo_value;
extern uae_u16 POTGOR (void);
AKS_DISKSWAPPER_NEXT,AKS_DISKSWAPPER_PREV,
AKS_DISKSWAPPER_INSERT0,AKS_DISKSWAPPER_INSERT1,AKS_DISKSWAPPER_INSERT2,AKS_DISKSWAPPER_INSERT3,
};
+
+extern int target_checkcapslock (int, int *);
\ No newline at end of file
extern void mapped_free (uae_u8 *);
extern void clearexec (void);
extern void mapkick (void);
-extern int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size);
extern void a3000_fakekick (int);
-#define ROMTYPE_KICK 0x000001
-#define ROMTYPE_KICKCD32 0x000002
-#define ROMTYPE_EXTCD32 0x000004
-#define ROMTYPE_EXTCDTV 0x000008
-#define ROMTYPE_A2091BOOT 0x000010
-#define ROMTYPE_A4091BOOT 0x000020
-#define ROMTYPE_AR 0x000040
-#define ROMTYPE_SUPERIV 0x000080
-#define ROMTYPE_KEY 0x000100
-#define ROMTYPE_ARCADIABIOS 0x000200
-#define ROMTYPE_ARCADIAGAME 0x000400
-#define ROMTYPE_HRTMON 0x000800
-#define ROMTYPE_NORDIC 0x001000
-#define ROMTYPE_XPOWER 0x002000
-#define ROMTYPE_CD32CART 0x004000
-#define ROMTYPE_SPECIALKICK 0x008000
-#define ROMTYPE_MASK 0x01ffff
-#define ROMTYPE_EVEN 0x020000
-#define ROMTYPE_ODD 0x040000
-#define ROMTYPE_8BIT 0x080000
-#define ROMTYPE_BYTESWAP 0x100000
-#define ROMTYPE_CD32 0x200000
-#define ROMTYPE_SCRAMBLED 0x400000
-
-struct romheader {
- TCHAR *name;
- int id;
-};
-
-struct romdata {
- TCHAR *name;
- int ver, rev;
- int subver, subrev;
- TCHAR *model;
- uae_u32 size;
- int id;
- int cpu;
- int cloanto;
- int type;
- int group;
- int title;
- TCHAR *partnumber;
- uae_u32 crc32;
- uae_u32 sha1[5];
- TCHAR *configname;
-};
-
-struct romlist {
- TCHAR *path;
- struct romdata *rd;
-};
-
-extern struct romdata *getromdatabypath (TCHAR *path);
-extern struct romdata *getromdatabycrc (uae_u32 crc32);
-extern struct romdata *getromdatabydata (uae_u8 *rom, int size);
-extern struct romdata *getromdatabyid (int id);
-extern struct romdata *getromdatabyidgroup (int id, int group, int subitem);
-extern struct romdata *getromdatabyzfile (struct zfile *f);
-extern struct romlist **getarcadiaroms (void);
-extern struct romdata *getarcadiarombyname (TCHAR *name);
-extern struct romlist **getromlistbyident (int ver, int rev, int subver, int subrev, TCHAR *model, int all);
-extern void getromname (struct romdata*, TCHAR*);
-extern struct romdata *getromdatabyname (TCHAR*);
-extern struct romlist *getromlistbyids (int *ids);
-extern void romwarning(int *ids);
-extern struct romlist *getromlistbyromdata (struct romdata *rd);
-extern void romlist_add (TCHAR *path, struct romdata *rd);
-extern TCHAR *romlist_get (struct romdata *rd);
-extern void romlist_clear (void);
-extern struct zfile *read_rom (struct romdata **rd);
-extern struct zfile *read_rom_name (const TCHAR *filename);
-
-extern int load_keyring (struct uae_prefs *p, TCHAR *path);
-extern uae_u8 *target_load_keyfile (struct uae_prefs *p, TCHAR *path, int *size, TCHAR *name);
-extern void free_keyring (void);
-extern int get_keyring (void);
-
extern uaecptr strcpyha_safe (uaecptr dst, const uae_char *src);
extern uae_char *strcpyah_safe (uae_u8 *dst, uaecptr src, int maxsize);
extern void memcpyha_safe (uaecptr dst, const uae_u8 *src, int size);
#define UAEMAJOR 2
#define UAEMINOR 0
-#define UAESUBREV 1
+#define UAESUBREV 2
typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang;
--- /dev/null
+extern int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size);
+
+#define ROMTYPE_KICK 0x000001
+#define ROMTYPE_KICKCD32 0x000002
+#define ROMTYPE_EXTCD32 0x000004
+#define ROMTYPE_EXTCDTV 0x000008
+#define ROMTYPE_A2091BOOT 0x000010
+#define ROMTYPE_A4091BOOT 0x000020
+#define ROMTYPE_AR 0x000040
+#define ROMTYPE_SUPERIV 0x000080
+#define ROMTYPE_KEY 0x000100
+#define ROMTYPE_ARCADIABIOS 0x000200
+#define ROMTYPE_ARCADIAGAME 0x000400
+#define ROMTYPE_HRTMON 0x000800
+#define ROMTYPE_NORDIC 0x001000
+#define ROMTYPE_XPOWER 0x002000
+#define ROMTYPE_CD32CART 0x004000
+#define ROMTYPE_SPECIALKICK 0x008000
+#define ROMTYPE_MASK 0x01ffff
+#define ROMTYPE_EVEN 0x020000
+#define ROMTYPE_ODD 0x040000
+#define ROMTYPE_8BIT 0x080000
+#define ROMTYPE_BYTESWAP 0x100000
+#define ROMTYPE_CD32 0x200000
+#define ROMTYPE_SCRAMBLED 0x400000
+
+struct romheader {
+ TCHAR *name;
+ int id;
+};
+
+struct romdata {
+ TCHAR *name;
+ int ver, rev;
+ int subver, subrev;
+ TCHAR *model;
+ uae_u32 size;
+ int id;
+ int cpu;
+ int cloanto;
+ int type;
+ int group;
+ int title;
+ TCHAR *partnumber;
+ uae_u32 crc32;
+ uae_u32 sha1[5];
+ TCHAR *configname;
+};
+
+struct romlist {
+ TCHAR *path;
+ struct romdata *rd;
+};
+
+extern struct romdata *getromdatabypath (TCHAR *path);
+extern struct romdata *getromdatabycrc (uae_u32 crc32);
+extern struct romdata *getromdatabydata (uae_u8 *rom, int size);
+extern struct romdata *getromdatabyid (int id);
+extern struct romdata *getromdatabyidgroup (int id, int group, int subitem);
+extern struct romdata *getromdatabyzfile (struct zfile *f);
+extern struct romlist **getarcadiaroms (void);
+extern struct romdata *getarcadiarombyname (TCHAR *name);
+extern struct romlist **getromlistbyident (int ver, int rev, int subver, int subrev, TCHAR *model, int all);
+extern void getromname (struct romdata*, TCHAR*);
+extern struct romdata *getromdatabyname (TCHAR*);
+extern struct romlist *getromlistbyids (int *ids);
+extern void romwarning(int *ids);
+extern struct romlist *getromlistbyromdata (struct romdata *rd);
+extern void romlist_add (TCHAR *path, struct romdata *rd);
+extern TCHAR *romlist_get (struct romdata *rd);
+extern void romlist_clear (void);
+extern struct zfile *read_rom (struct romdata **rd);
+extern struct zfile *read_rom_name (const TCHAR *filename);
+
+extern int load_keyring (struct uae_prefs *p, TCHAR *path);
+extern uae_u8 *target_load_keyfile (struct uae_prefs *p, TCHAR *path, int *size, TCHAR *name);
+extern void free_keyring (void);
+extern int get_keyring (void);
+extern void kickstart_fix_checksum (uae_u8 *mem, int size);
+extern void descramble_nordicpro (uae_u8*, int, int);
+extern int kickstart_checksum (uae_u8 *mem, int size);
+extern int decode_rom (uae_u8 *mem, int size, int mode, int real_size);
+extern struct zfile *rom_fopen (const TCHAR *name, const TCHAR *mode, int mask);
+extern struct zfile *read_rom_name_guess (const TCHAR *filename);
+extern void addkeydir (const TCHAR *path);
+extern int romlist_count (void);
+extern struct romlist *romlist_getit (void);
+extern int configure_rom (struct uae_prefs *p, int *rom, int msg);
+
extern TCHAR *aucp (const char *s, unsigned int cp);
extern char *uacp (const TCHAR *s, unsigned int cp);
extern TCHAR *au_fs (const char*);
-extern char *ua_fs (const TCHAR*);
+extern char *ua_fs (const TCHAR*, int);
extern char *ua_copy (char *dst, int maxlen, const TCHAR *src);
extern TCHAR *au_copy (TCHAR *dst, int maxlen, const char *src);
-extern char *ua_fs_copy (char *dst, int maxlen, const TCHAR *src);
+extern char *ua_fs_copy (char *dst, int maxlen, const TCHAR *src, int defchar);
extern TCHAR *au_fs_copy (TCHAR *dst, int maxlen, const char *src);
extern char *uutf8 (const TCHAR *s);
extern TCHAR *utf8u (const char *s);
extern void console_out_f (const TCHAR *, ...);
extern void console_flush (void);
extern int console_get (TCHAR *, int);
+extern TCHAR console_getch (void);
extern void f_out (void *, const TCHAR *, ...);
extern TCHAR* buf_out (TCHAR *buffer, int *bufsize, const TCHAR *format, ...);
extern void gui_message (const TCHAR *,...);
extern void target_quit (void);
extern int quit_program;
+extern int console_emulation;
extern TCHAR warning_buffer[256];
extern TCHAR start_path_data[];
static struct uae_input_device2 joysticks2[MAX_INPUT_DEVICES];
static struct uae_input_device2 mice2[MAX_INPUT_DEVICES];
+static uae_u8 scancodeused[MAX_INPUT_DEVICES][256];
static int input_acquired;
static int testmode;
}
}
}
+ memset (scancodeused, 0, sizeof scancodeused);
for (i = 0; i < MAX_INPUT_DEVICES; i++) {
use_keyboards[i] = 0;
if (keyboards[i].enabled && i < idev[IDTYPE_KEYBOARD].get_num()) {
isparport (ei);
ismouse (ei);
isdigitalbutton (ei);
+ if (ei > 0)
+ scancodeused[i][keyboards[i].extra[j][k]] = 1;
}
j++;
}
while (trans[l].scancode >= 0) {
if (kbr->extra[i][0] == trans[l].scancode) {
for (k = 0; k < MAX_INPUT_SUB_EVENT; k++) {
- if (kbr->eventid[i][k] == 0) break;
+ if (kbr->eventid[i][k] == 0)
+ break;
}
if (k == MAX_INPUT_SUB_EVENT) {
write_log (L"corrupt default keyboard mappings\n");
return;
}
kbr->eventid[i][k] = trans[l].event;
+ if (trans[l].event == INPUTEVENT_KEY_CAPS_LOCK)
+ kbr->flags[i][k] |= ID_FLAG_TOGGLE;
break;
}
l++;
keyboard_default = trans;
}
+int inputdevice_iskeymapped (int keyboard, int scancode)
+{
+ struct uae_input_device *na = &keyboards[keyboard];
+
+ if (!keyboards || scancode < 0)
+ return 0;
+ return scancodeused[keyboard][scancode];
+}
+
+int inputdevice_synccapslock (int oldcaps, int *capstable)
+{
+ struct uae_input_device *na = &keyboards[0];
+ int j, i;
+
+ if (!keyboards)
+ return -1;
+ for (j = 0; na->extra[j][0]; j++) {
+ if (na->extra[j][0] == INPUTEVENT_KEY_CAPS_LOCK) {
+ for (i = 0; capstable[i]; i += 2) {
+ if (na->extra[j][0] == capstable[i]) {
+ if (oldcaps != capstable[i + 1]) {
+ oldcaps = capstable[i + 1];
+ inputdevice_translatekeycode (0, capstable[i], oldcaps ? -1 : 0);
+ }
+ return i;
+ }
+ }
+ }
+ }
+ return -1;
+}
+
static int inputdevice_translatekeycode_2 (int keyboard, int scancode, int state)
{
struct uae_input_device *na = &keyboards[keyboard];
int evt = na->eventid[j][sublevdir[state == 0 ? 1 : 0][k]];
int toggled;
+ // if evt == caps and scan == caps: sync with native caps led
+ if (evt == INPUTEVENT_KEY_CAPS_LOCK) {
+ int v;
+ if (state < 0)
+ state = 1;
+ v = target_checkcapslock (scancode, &state);
+ if (v < 0)
+ continue;
+ if (v > 0)
+ toggle = 0;
+ } else if (state < 0) {
+ // it was caps lock resync, ignore, not mapped to caps
+ continue;
+ }
+
if (toggle) {
if (!state)
continue;
{
if (inputdevice_translatekeycode_2 (keyboard, scancode, state))
return 1;
- if (currprefs.mmkeyboard)
+ if (currprefs.mmkeyboard && scancode > 0)
sendmmcodes (scancode, state);
return 0;
}
#include "gfxfilter.h"
#include "uaeresource.h"
#include "dongle.h"
+#include "consolehook.h"
#ifdef USE_SDL
#include "SDL.h"
int no_gui = 0, quit_to_gui = 0;
int cloanto_rom = 0;
int kickstart_rom = 1;
+int console_emulation = 0;
struct gui_info gui_data;
void fixup_cpu (struct uae_prefs *p)
{
+ if (p->cpu_frequency == 1000000)
+ p->cpu_frequency = 0;
switch (p->cpu_model)
{
case 68000:
if (p->cpu_cycle_exact) {
p->gfx_framerate = 1;
p->cachesize = 0;
+ p->m68k_speed = 0;
}
#endif
if (p->maprom && !p->address_space_24)
return -1;
}
+ if (console_emulation) {
+ consolehook_config (&currprefs);
+ fixup_prefs (&currprefs);
+ }
+
if (! setup_sound ()) {
write_log (L"Sound driver unavailable: Sound output disabled\n");
currprefs.produce_sound = 0;
#include "options.h"
#include "uae.h"
#include "memory.h"
+#include "rommgr.h"
#include "ersatz.h"
#include "zfile.h"
#include "custom.h"
/* The address space setting used during the last reset. */
static int last_address_space_24;
-static struct romlist *rl;
-static int romlist_cnt;
-
-TCHAR *romlist_get (struct romdata *rd)
-{
- int i;
-
- if (!rd)
- return 0;
- for (i = 0; i < romlist_cnt; i++) {
- if (rl[i].rd->id == rd->id)
- return rl[i].path;
- }
- return 0;
-}
-
-static struct romlist *romlist_getrl (struct romdata *rd)
-{
- int i;
-
- if (!rd)
- return 0;
- for (i = 0; i < romlist_cnt; i++) {
- if (rl[i].rd == rd)
- return &rl[i];
- }
- return 0;
-}
-
-static void romlist_cleanup (void);
-void romlist_add (TCHAR *path, struct romdata *rd)
-{
- struct romlist *rl2;
-
- if (path == NULL || rd == NULL) {
- romlist_cleanup ();
- return;
- }
- romlist_cnt++;
- rl = realloc (rl, sizeof (struct romlist) * romlist_cnt);
- rl2 = rl + romlist_cnt - 1;
- rl2->path = my_strdup (path);
- rl2->rd = rd;
-}
-
-
-struct romdata *getromdatabypath(TCHAR *path)
-{
- int i;
- for (i = 0; i < romlist_cnt; i++) {
- struct romdata *rd = rl[i].rd;
- if (rd->configname && path[0] == ':') {
- if (!_tcscmp(path + 1, rd->configname))
- return rd;
- }
- if (!_tcscmp(rl[i].path, path))
- return rl[i].rd;
- }
- return NULL;
-}
-
-#define NEXT_ROM_ID 73
-
-static struct romheader romheaders[] = {
- { L"Freezer Cartridges", 1 },
- { L"Arcadia Games", 2 },
- { NULL, 0 }
-};
-
-#define ALTROM(id,grp,num,size,flags,crc32,a,b,c,d,e) \
-{ L"X", 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, NULL, crc32, a, b, c, d, e },
-#define ALTROMPN(id,grp,num,size,flags,pn,crc32,a,b,c,d,e) \
-{ L"X", 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, pn, crc32, a, b, c, d, e },
-
-static struct romdata roms[] = {
- { L"Cloanto Amiga Forever ROM key", 0, 0, 0, 0, 0, 2069, 0, 0, 1, ROMTYPE_KEY, 0, 0, NULL,
- 0x869ae1b1, 0x801bbab3,0x2e3d3738,0x6dd1636d,0x4f1d6fa7,0xe21d5874 },
- { L"Cloanto Amiga Forever 2006 ROM key", 0, 0, 0, 0, 0, 750, 48, 0, 1, ROMTYPE_KEY, 0, 0, NULL,
- 0xb01c4b56, 0xbba8e5cd,0x118b8d92,0xafed5693,0x5eeb9770,0x2a662d8f },
-
- { L"KS ROM v1.0 (A1000)(NTSC)", 1, 0, 1, 0, L"A1000\0", 262144, 1, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x299790ff, 0x00C15406,0xBEB4B8AB,0x1A16AA66,0xC05860E1,0xA7C1AD79 },
- { L"KS ROM v1.1 (A1000)(NTSC)", 1, 1, 31, 34, L"A1000\0", 262144, 2, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0xd060572a, 0x4192C505,0xD130F446,0xB2ADA6BD,0xC91DAE73,0x0ACAFB4C},
- { L"KS ROM v1.1 (A1000)(PAL)", 1, 1, 31, 34, L"A1000\0", 262144, 3, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0xec86dae2, 0x16DF8B5F,0xD524C5A1,0xC7584B24,0x57AC15AF,0xF9E3AD6D },
- { L"KS ROM v1.2 (A1000)", 1, 2, 33, 166, L"A1000\0", 262144, 4, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x9ed783d0, 0x6A7BFB5D,0xBD6B8F17,0x9F03DA84,0xD8D95282,0x67B6273B },
- { L"KS ROM v1.2 (A500,A1000,A2000)", 1, 2, 33, 180, L"A500\0A1000\0A2000\0", 262144, 5, 0, 0, ROMTYPE_KICK, 0, 0, L"315093-01",
- 0xa6ce1636, 0x11F9E62C,0xF299F721,0x84835B7B,0x2A70A163,0x33FC0D88 },
- { L"KS ROM v1.3 (A500,A1000,A2000)", 1, 3, 34, 5, L"A500\0A1000\0A2000\0", 262144, 6, 0, 0, ROMTYPE_KICK, 0, 0, L"315093-02",
- 0xc4f0f55f, 0x891E9A54,0x7772FE0C,0x6C19B610,0xBAF8BC4E,0xA7FCB785 },
- { L"KS ROM v1.3 (A3000)(SK)", 1, 3, 34, 5, L"A3000\0", 262144, 32, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0xe0f37258, 0xC39BD909,0x4D4E5F4E,0x28C1411F,0x30869504,0x06062E87 },
- { L"KS ROM v1.4 (A3000)", 1, 4, 36, 16, L"A3000\0", 524288, 59, 3, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0xbc0ec13f, 0xF76316BF,0x36DFF14B,0x20FA349E,0xD02E4B11,0xDD932B07 },
- ALTROMPN(59, 1, 1, 262144, ROMTYPE_EVEN, L"390629-02", 0x58327536,0xd1713d7f,0x31474a59,0x48e6d488,0xe3368606,0x1cf3d1e2)
- ALTROMPN(59, 1, 2, 262144, ROMTYPE_ODD , L"390630-02", 0xfe2f7fb9,0xc05c9c52,0xd014c66f,0x9019152b,0x3f2a2adc,0x2c678794)
- { L"KS ROM v2.04 (A500+)", 2, 4, 37, 175, L"A500+\0", 524288, 7, 0, 0, ROMTYPE_KICK, 0, 0, L"390979-01",
- 0xc3bdb240, 0xC5839F5C,0xB98A7A89,0x47065C3E,0xD2F14F5F,0x42E334A1 },
- { L"KS ROM v2.05 (A600)", 2, 5, 37, 299, L"A600\0", 524288, 8, 0, 0, ROMTYPE_KICK, 0, 0, L"391388-01",
- 0x83028fb5, 0x87508DE8,0x34DC7EB4,0x7359CEDE,0x72D2E3C8,0xA2E5D8DB },
- { L"KS ROM v2.05 (A600HD)", 2, 5, 37, 300, L"A600HD\0A600\0", 524288, 9, 0, 0, ROMTYPE_KICK, 0, 0, L"391304-01",
- 0x64466c2a, 0xF72D8914,0x8DAC39C6,0x96E30B10,0x859EBC85,0x9226637B },
- { L"KS ROM v2.05 (A600HD)", 2, 5, 37, 350, L"A600HD\0A600\0", 524288, 10, 0, 0, ROMTYPE_KICK, 0, 0, L"391304-02",
- 0x43b0df7b, 0x02843C42,0x53BBD29A,0xBA535B0A,0xA3BD9A85,0x034ECDE4 },
- { L"KS ROM v2.04 (A3000)", 2, 4, 37, 175, L"A3000\0", 524288, 71, 3, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x234a7233, 0xd82ebb59,0xafc53540,0xddf2d718,0x7ecf239b,0x7ea91590 },
- ALTROMPN(71, 1, 1, 262144, ROMTYPE_EVEN, L"390629-03", 0x7db1332b,0x48f14b31,0x279da675,0x7848df6f,0xeb531881,0x8f8f576c)
- ALTROMPN(71, 1, 2, 262144, ROMTYPE_ODD , L"390630-03", 0xa245dbdf,0x83bab8e9,0x5d378b55,0xb0c6ae65,0x61385a96,0xf638598f)
-
- { L"KS ROM v3.0 (A1200)", 3, 0, 39, 106, L"A1200\0", 524288, 11, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x6c9b07d2, 0x70033828,0x182FFFC7,0xED106E53,0x73A8B89D,0xDA76FAA5 },
- ALTROMPN(11, 1, 1, 262144, ROMTYPE_EVEN, L"391523-01", 0xc742a412,0x999eb81c,0x65dfd07a,0x71ee1931,0x5d99c7eb,0x858ab186)
- ALTROMPN(11, 1, 2, 262144, ROMTYPE_ODD , L"391524-01", 0xd55c6ec6,0x3341108d,0x3a402882,0xb5ef9d3b,0x242cbf3c,0x8ab1a3e9)
- { L"KS ROM v3.0 (A4000)", 3, 0, 39, 106, L"A4000\0", 524288, 12, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x9e6ac152, 0xF0B4E9E2,0x9E12218C,0x2D5BD702,0x0E4E7852,0x97D91FD7 },
- ALTROMPN(12, 1, 1, 262144, ROMTYPE_EVEN, L"391513-02", 0x36f64dd0,0x196e9f3f,0x9cad934e,0x181c07da,0x33083b1f,0x0a3c702f)
- ALTROMPN(12, 1, 2, 262144, ROMTYPE_ODD , L"391514-02", 0x17266a55,0x42fbed34,0x53d1f11c,0xcbde89a9,0x826f2d11,0x75cca5cc)
- { L"KS ROM v3.1 (A4000)", 3, 1, 40, 70, L"A4000\0", 524288, 13, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x2b4566f1, 0x81c631dd,0x096bbb31,0xd2af9029,0x9c76b774,0xdb74076c },
- ALTROM(13, 1, 1, 262144, ROMTYPE_EVEN, 0xf9cbecc9,0x138d8cb4,0x3b8312fe,0x16d69070,0xde607469,0xb3d4078e)
- ALTROM(13, 1, 2, 262144, ROMTYPE_ODD , 0xf8248355,0xc2379547,0x9fae3910,0xc185512c,0xa268b82f,0x1ae4fe05)
- { L"KS ROM v3.1 (A500,A600,A2000)", 3, 1, 40, 63, L"A500\0A600\0A2000\0", 524288, 14, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0xfc24ae0d, 0x3B7F1493,0xB27E2128,0x30F989F2,0x6CA76C02,0x049F09CA },
- { L"KS ROM v3.1 (A1200)", 3, 1, 40, 68, L"A1200\0", 524288, 15, 1, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x1483a091, 0xE2154572,0x3FE8374E,0x91342617,0x604F1B3D,0x703094F1 },
- ALTROMPN(15, 1, 1, 262144, ROMTYPE_EVEN, L"391773-01", 0x08dbf275,0xb8800f5f,0x90929810,0x9ea69690,0xb1b8523f,0xa22ddb37)
- ALTROMPN(15, 1, 2, 262144, ROMTYPE_ODD , L"391774-01", 0x16c07bf8,0x90e331be,0x1970b0e5,0x3f53a9b0,0x390b51b5,0x9b3869c2)
- { L"KS ROM v3.1 (A3000)", 3, 1, 40, 68, L"A3000\0", 524288, 61, 2, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0xefb239cc, 0xF8E210D7,0x2B4C4853,0xE0C9B85D,0x223BA20E,0x3D1B36EE },
- ALTROM(61, 1, 1, 262144, ROMTYPE_EVEN, 0x286b9a0d,0x6763a225,0x8ec493f7,0x408cf663,0x110dae9a,0x17803ad1)
- ALTROM(61, 1, 2, 262144, ROMTYPE_ODD , 0x0b8cde6a,0x5f02e97b,0x48ebbba8,0x7d516a56,0xb0400c6f,0xc3434d8d)
- { L"KS ROM v3.1 (A4000)(Cloanto)", 3, 1, 40, 68, L"A4000\0", 524288, 31, 2 | 4, 1, ROMTYPE_KICK, 0, 0, NULL,
- 0x43b6dd22, 0xC3C48116,0x0866E60D,0x085E436A,0x24DB3617,0xFF60B5F9 },
- { L"KS ROM v3.1 (A4000)", 3, 1, 40, 68, L"A4000\0", 524288, 16, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0xd6bae334, 0x5FE04842,0xD04A4897,0x20F0F4BB,0x0E469481,0x99406F49 },
- ALTROM(16, 1, 1, 262144, ROMTYPE_EVEN, 0xb2af34f8,0x24e52b5e,0xfc020495,0x17387ab7,0xb1a1475f,0xc540350e)
- ALTROM(16, 1, 2, 262144, ROMTYPE_ODD , 0xe65636a3,0x313c7cbd,0xa5779e56,0xf19a41d3,0x4e760f51,0x7626d882)
- { L"KS ROM v3.1 (A4000T)", 3, 1, 40, 70, L"A4000T\0", 524288, 17, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x75932c3a, 0xB0EC8B84,0xD6768321,0xE01209F1,0x1E6248F2,0xF5281A21 },
- ALTROMPN(17, 1, 1, 262144, ROMTYPE_EVEN, L"391657-01", 0x0ca94f70,0xb3806eda,0xcb3362fc,0x16a154ce,0x1eeec5bf,0x5bc24789)
- ALTROMPN(17, 1, 2, 262144, ROMTYPE_ODD , L"391658-01", 0xdfe03120,0xcd7a706c,0x431b04d8,0x7814d3a2,0xd8b39710,0x0cf44c0c)
- { L"KS ROM v3.X (A4000)(Cloanto)", 3, 10, 45, 57, L"A4000\0", 524288, 46, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x3ac99edc, 0x3cbfc9e1,0xfe396360,0x157bd161,0xde74fc90,0x1abee7ec },
-
- { L"CD32 KS ROM v3.1", 3, 1, 40, 60, L"CD32\0", 524288, 18, 1, 0, ROMTYPE_KICKCD32, 0, 0, NULL,
- 0x1e62d4a5, 0x3525BE88,0x87F79B59,0x29E017B4,0x2380A79E,0xDFEE542D },
- { L"CD32 extended ROM", 3, 1, 40, 60, L"CD32\0", 524288, 19, 1, 0, ROMTYPE_EXTCD32, 0, 0, NULL,
- 0x87746be2, 0x5BEF3D62,0x8CE59CC0,0x2A66E6E4,0xAE0DA48F,0x60E78F7F },
-
- /* plain CD32 rom */
- { L"CD32 ROM (KS + extended)", 3, 1, 40, 60, L"CD32\0", 2 * 524288, 64, 1, 0, ROMTYPE_KICKCD32 | ROMTYPE_EXTCD32 | ROMTYPE_CD32, 0, 0, NULL,
- 0xf5d4f3c8, 0x9fa14825,0xc40a2475,0xa2eba5cf,0x325bd483,0xc447e7c1 },
- /* real CD32 rom dump 391640-03 */
- ALTROMPN(64, 1, 1, 2 * 524288, ROMTYPE_CD32, L"391640-03", 0xa4fbc94a, 0x816ce6c5,0x07787585,0x0c7d4345,0x2230a9ba,0x3a2902db )
-
- { L"CD32 MPEG Cartridge ROM", 3, 1, 40, 30, L"CD32FMV\0", 262144, 23, 1, 0, ROMTYPE_CD32CART, 0, 0, NULL,
- 0xc35c37bf, 0x03ca81c7,0xa7b259cf,0x64bc9582,0x863eca0f,0x6529f435 },
-
- { L"CDTV extended ROM v1.00", 1, 0, 1, 0, L"CDTV\0", 262144, 20, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL,
- 0x42baa124, 0x7BA40FFA,0x17E500ED,0x9FED041F,0x3424BD81,0xD9C907BE },
- ALTROMPN(20, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, L"252606-01", 0x791cb14b,0x277a1778,0x92449635,0x3ffe56be,0x68063d2a,0x334360e4)
- ALTROMPN(20, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, L"252607-01", 0xaccbbc2e,0x41b06d16,0x79c6e693,0x3c3378b7,0x626025f7,0x641ebc5c)
- { L"CDTV extended ROM v2.07", 2, 7, 2, 7, L"CDTV\0", 262144, 22, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL,
- 0xceae68d2, 0x5BC114BB,0xA29F60A6,0x14A31174,0x5B3E2464,0xBFA06846 },
- ALTROM(22, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x36d73cb8,0x9574e546,0x4b390697,0xf28f9a43,0x4e604e5e,0xf5e5490a)
- ALTROM(22, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x6e84dce7,0x01a0679e,0x895a1a0f,0x559c7253,0xf539606b,0xd447b54f)
- { L"CDTV/A570 extended ROM v2.30", 2, 30, 2, 30, L"CDTV\0", 262144, 21, 0, 0, ROMTYPE_EXTCDTV, 0, 0, L"391298-01",
- 0x30b54232, 0xED7E461D,0x1FFF3CDA,0x321631AE,0x42B80E3C,0xD4FA5EBB },
- ALTROM(21, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x48e4d74f,0x54946054,0x2269e410,0x36018402,0xe1f6b855,0xfd89092b)
- ALTROM(21, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x8a54f362,0x03df800f,0x032046fd,0x892f6e7e,0xec08b76d,0x33981e8c)
-
- { L"A1000 bootstrap ROM", 0, 0, 0, 0, L"A1000\0", 65536, 24, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
- 0x0b1ad2d0, 0xBA93B8B8,0x5CA0D83A,0x68225CC3,0x3B95050D,0x72D2FDD7 },
- ALTROM(24, 1, 1, 8192, 0, 0x62f11c04, 0xC87F9FAD,0xA4EE4E69,0xF3CCA0C3,0x6193BE82,0x2B9F5FE6)
- ALTROMPN(24, 2, 1, 4096, ROMTYPE_EVEN | ROMTYPE_8BIT, L"252179-01", 0x42553bc4,0x8855a97f,0x7a44e3f6,0x2d1c88d9,0x38fee1f4,0xc606af5b)
- ALTROMPN(24, 2, 2, 4096, ROMTYPE_ODD | ROMTYPE_8BIT, L"252180-01", 0x8e5b9a37,0xd10f1564,0xb99f5ffe,0x108fa042,0x362e877f,0x569de2c3)
-
- { L"The Diagnostic 2.0 (Logica)", 2, 0, 2, 0, L"LOGICA\0", 524288, 72, 0, 0, ROMTYPE_KICK | ROMTYPE_SPECIALKICK, 0, 0, NULL,
- 0x8484f426, 0xba10d161,0x66b2e2d6,0x177c979c,0x99edf846,0x2b21651e },
-
- { L"Freezer: Action Replay Mk I v1.00", 1, 0, 1, 0, L"AR\0", 65536, 52, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0x2d921771, 0x1EAD9DDA,0x2DAD2914,0x6441F5EF,0x72183750,0x22E01248 },
- ALTROM(52, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x82d6eb87, 0x7c9bac11,0x28666017,0xeee6f019,0x63fb3890,0x7fbea355)
- ALTROM(52, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x40ae490c, 0x81d8e432,0x01b73fd9,0x2e204ebd,0x68af8602,0xb62ce397)
- { L"Freezer: Action Replay Mk I v1.50", 1, 50, 1, 50, L"AR\0", 65536, 25, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0xd4ce0675, 0x843B433B,0x2C56640E,0x045D5FDC,0x854DC6B1,0xA4964E7C },
- ALTROM(25, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x7fbd6de2, 0xb5f71a5c,0x09d65ecc,0xa8a3bc93,0x93558461,0xca190228)
- ALTROM(25, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x43018069, 0xad8ff242,0xb2cbf125,0x1fc53a73,0x581cf57a,0xb69cee00)
- { L"Freezer: Action Replay Mk II v2.05", 2, 5, 2, 5, L"AR\0", 131072, 26, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0x1287301f, 0xF6601DE8,0x888F0050,0x72BF562B,0x9F533BBC,0xAF1B0074 },
- { L"Freezer: Action Replay Mk II v2.12", 2, 12, 2, 12, L"AR\0", 131072, 27, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0x804d0361, 0x3194A07A,0x0A82D8B5,0xF2B6AEFA,0x3CA581D6,0x8BA8762B },
- { L"Freezer: Action Replay Mk II v2.14", 2, 14, 2, 14, L"AR\0", 131072, 28, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0x49650e4f, 0x255D6DF6,0x3A4EAB0A,0x838EB1A1,0x6A267B09,0x59DFF634 },
- { L"Freezer: Action Replay Mk III v3.09", 3, 9, 3, 9, L"AR\0", 262144, 29, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0x0ed9b5aa, 0x0FF3170A,0xBBF0CA64,0xC9DD93D6,0xEC0C7A01,0xB5436824 },
- ALTROM(29, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2b84519f, 0x7841873b,0xf009d834,0x1dfa2794,0xb3751bac,0xf86adcc8)
- ALTROM(29, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x1d35bd56, 0x6464be16,0x26b51949,0x9e76e4e3,0x409e8016,0x515d48b6)
- { L"Freezer: Action Replay Mk III v3.17", 3, 17, 3, 17, L"AR\0", 262144, 30, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0xc8a16406, 0x5D4987C2,0xE3FFEA8B,0x1B02E314,0x30EF190F,0x2DB76542 },
- { L"Freezer: Action Replay 1200", 0, 0, 0, 0, L"AR\0", 262144, 47, 0, 0, ROMTYPE_AR, 0, 1, NULL,
- 0x8d760101, 0x0F6AB834,0x2810094A,0xC0642F62,0xBA42F78B,0xC0B07E6A },
-
- { L"Freezer: Action Cartridge Super IV Professional", 0, 0, 0, 0, L"SUPERIV\0", 0, 62, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL,
- 0xffffffff, 0, 0, 0, 0, 0, L"SuperIV" },
- { L"Freezer: Action Cart. Super IV Pro (+ROM v4.3)", 4, 3, 4, 3, L"SUPERIV\0", 170368, 60, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL,
- 0xe668a0be, 0x633A6E65,0xA93580B8,0xDDB0BE9C,0x9A64D4A1,0x7D4B4801 },
- { L"Freezer: X-Power Professional 500 v1.2", 1, 2, 1, 2, L"XPOWER\0", 131072, 65, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL,
- 0x9e70c231, 0xa2977a1c,0x41a8ca7d,0x4af4a168,0x726da542,0x179d5963 },
- ALTROM(65, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf98742e4,0xe8e683ba,0xd8b38d1f,0x79f3ad83,0xa9e67c6f,0xa91dc96c)
- ALTROM(65, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdfb9984b,0x8d6bdd49,0x469ec8e2,0x0143fbb3,0x72e92500,0x99f07910)
- { L"Freezer: X-Power Professional 500 v1.3", 1, 2, 1, 2, L"XPOWER\0", 131072, 68, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL,
- 0x31e057f0, 0x84650266,0x465d1859,0x7fd71dee,0x00775930,0xb7e450ee },
- ALTROM(68, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x0b2ce0c7,0x45ad5456,0x89192404,0x956f47ce,0xf66a5274,0x57ace33b)
- ALTROM(68, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x34580c35,0x8ad42566,0x7364f238,0x978f4381,0x08f8d5ec,0x470e72ea)
- { L"Freezer: Nordic Power v1.5", 1, 5, 1, 5, L"NPOWER\0", 65536, 69, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL,
- 0x83b4b21c, 0xc56ced25,0x506a5aab,0x3fa13813,0x4fc9e5ae,0x0f9d3709 },
- ALTROM(69, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdd207174,0xae67652d,0x64f5db20,0x0f4b2110,0xee59567f,0xfbd90a1b)
- ALTROM(69, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x8f93d85d,0x73c62d21,0x40c0c092,0x6315b702,0xdd5d0f05,0x3dad7fab)
- { L"Freezer: Nordic Power v2.0", 2, 0, 2, 0, L"NPOWER\0", 65536, 67, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL,
- 0xa4db2906, 0x0aec68f7,0x25470c89,0x6b699ff4,0x6623dec5,0xc777466e },
- ALTROM(67, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xb21be46c,0x50dc607c,0xce976bbd,0x3841eaf0,0x591ddc7e,0xa1939ad2)
- ALTROM(67, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x96057aed,0xdd9209e2,0x1d5edfc1,0xcdb52abe,0x93de0f35,0xc43da696)
- { L"Freezer: Nordic Power v3.0", 3, 0, 3, 0, L"NPOWER\0", 65536, 70, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL,
- 0x72850aef, 0x59c91d1f,0xa8f118f9,0x0bdba05a,0x9ae788d7,0x7a6cc7c9 },
- ALTROM(70, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf3330e1f,0x3a597db2,0xb7d11b6c,0xb8e13496,0xc215f223,0x88c4ca3c)
- ALTROM(70, 1, 2, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xee58e0f9,0x4148f4cb,0xb42cec33,0x8ca144de,0xd4f54118,0xe0f185dd)
- { L"Freezer: HRTMon v2.32 (built-in)", 0, 0, 0, 0, L"HRTMON\0", 0, 63, 0, 0, ROMTYPE_HRTMON, 0, 1, NULL,
- 0xffffffff, 0, 0, 0, 0, 0, L"HRTMon" },
-
- { L"A590/A2091 SCSI boot ROM", 6, 0, 6, 0, L"A590\0A2091\0", 16384, 53, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
- 0x8396cf4e, 0x5E03BC61,0x8C862ABE,0x7BF79723,0xB4EEF4D2,0x1859A0F2 },
- ALTROM(53, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, 0xb0b8cf24,0xfcf40175,0x05f4d441,0x814b45d5,0x59c19eab,0x43816b30)
- ALTROM(53, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2e77bbff,0x8a098845,0x068f32cf,0xa4d34a27,0x8cd290f6,0x1d35a52c)
- { L"A590/A2091 SCSI boot ROM", 6, 6, 6, 6, L"A590\0A2091\0", 16384, 54, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
- 0x33e00a7a, 0x739BB828,0xE874F064,0x9360F59D,0x26B5ED3F,0xBC99BB66 },
- ALTROM(54, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, 0xe536bbb2,0xfd7f8a6d,0xa18c1b02,0xd07eb990,0xc2467a24,0x183ede12)
- ALTROM(54, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, 0xc0871d25,0xe155f18a,0xbb90cf82,0x0589c15e,0x70559d3b,0x6b391af8)
- { L"A590/A2091 SCSI boot ROM", 7, 0, 7, 0, L"A590\0A2091\0", 16384, 55, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
- 0x714a97a2, 0xE50F01BA,0xF2899892,0x85547863,0x72A82C33,0x3C91276E },
- ALTROM(55, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, 0xa9ccffed,0x149f5bd5,0x2e2d2990,0x4e3de483,0xb9ad7724,0x48e9278e)
- ALTROM(55, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2942747a,0xdbd7648e,0x79c75333,0x7ff3e4f4,0x91de224b,0xf05e6bb6)
- { L"A590/A2091 SCSI Guru boot ROM", 6, 14, 6, 14, L"A590\0A2091\0", 32768, 56, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
- 0x04e52f93, 0x6DA21B6F,0x5E8F8837,0xD64507CD,0x8A4D5CDC,0xAC4F426B },
- { L"A4091 SCSI boot ROM", 40, 9, 40, 9, L"A4091\0", 32768, 57, 0, 0, ROMTYPE_A4091BOOT, 0, 0, NULL,
- 0x00000000, 0, 0, 0, 0, 0 },
- { L"A4091 SCSI boot ROM", 40, 13, 40, 13, L"A4091\0", 32768, 58, 0, 0, ROMTYPE_A4091BOOT, 0, 0, NULL,
- 0x54cb9e85, 0x3CE66919,0xF6FD6797,0x4923A12D,0x91B730F1,0xFFB4A7BA },
-
- { L"Arcadia OnePlay 2.11", 0, 0, 0, 0, L"ARCADIA\0", 0, 49, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 },
- { L"Arcadia TenPlay 2.11", 0, 0, 0, 0, L"ARCADIA\0", 0, 50, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 },
- { L"Arcadia OnePlay 3.00", 0, 0, 0, 0, L"ARCADIA\0", 0, 51, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 },
-
- { L"Arcadia SportTime Table Hockey", 0, 0, 0, 0, L"ARCADIA\0", 0, 33, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia SportTime Bowling", 0, 0, 0, 0, L"ARCADIA\0", 0, 34, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia World Darts", 0, 0, 0, 0, L"ARCADIA\0", 0, 35, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Magic Johnson's Fast Break", 0, 0, 0, 0, L"ARCADIA\0", 0, 36, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Leader Board Golf", 0, 0, 0, 0, L"ARCADIA\0", 0, 37, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Leader Board Golf (alt)", 0, 0, 0, 0, L"ARCADIA\0", 0, 38, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Ninja Mission", 0, 0, 0, 0, L"ARCADIA\0", 0, 39, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Road Wars", 0, 0, 0, 0, L"ARCADIA\0", 0, 40, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Sidewinder", 0, 0, 0, 0, L"ARCADIA\0", 0, 41, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Spot", 0, 0, 0, 0, L"ARCADIA\0", 0, 42, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Space Ranger", 0, 0, 0, 0, L"ARCADIA\0", 0, 43, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia Xenon", 0, 0, 0, 0, L"ARCADIA\0", 0, 44, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
- { L"Arcadia World Trophy Soccer", 0, 0, 0, 0, L"ARCADIA\0", 0, 45, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
-
- { NULL }
-
-};
-
-void romlist_clear (void)
-{
- int i;
- int mask = 0;
- struct romdata *parent;
- TCHAR *pn;
-
- xfree (rl);
- rl = 0;
- romlist_cnt = 0;
- parent = 0;
- pn = NULL;
- for (i = 0; roms[i].name; i++) {
- struct romdata *rd = &roms[i];
- if (rd->group == 0) {
- parent = rd;
- mask = rd->type;
- pn = parent->partnumber;
- } else {
- rd->type &= ~ROMTYPE_MASK;
- rd->type |= mask & ROMTYPE_MASK;
- if (rd->partnumber && !pn) {
- TCHAR *newpn;
- if (parent->partnumber == NULL)
- parent->partnumber = my_strdup (L"");
- newpn = xcalloc ((_tcslen (parent->partnumber) + 1 + _tcslen (rd->partnumber) + 1) * sizeof (TCHAR), 1);
- if (_tcslen (parent->partnumber) > 0) {
- _tcscpy (newpn, parent->partnumber);
- _tcscat (newpn, L"/");
- }
- _tcscat (newpn, rd->partnumber);
- xfree (parent->partnumber);
- parent->partnumber = newpn;
- }
- }
- }
-}
-
-/* remove rom entries that need 2 or more roms but not everything required is present */
-static void romlist_cleanup (void)
-{
- int i = 0;
- while (roms[i].name) {
- struct romdata *rd = &roms[i];
- int grp = rd->group >> 16;
- int ok = 1;
- int j = i;
- int k = i;
- while (rd->name && (rd->group >> 16) == grp && grp > 0) {
- struct romlist *rl = romlist_getrl (rd);
- if (!rl)
- ok = 0;
- rd++;
- j++;
- }
- if (ok == 0) {
- while (i < j) {
- struct romlist *rl = romlist_getrl (&roms[i]);
- if (rl) {
- int cnt = romlist_cnt - i - 1;
- write_log (L"%s '%s' removed from romlist\n", roms[k].name, rl->path);
- xfree (rl->path);
- if (cnt > 0)
- memmove (rl, rl + 1, cnt * sizeof (struct romlist));
- romlist_cnt--;
- }
- i++;
- }
- }
- i++;
- }
- for (i = 0; i < romlist_cnt; i++) {
- struct romlist *rll = &rl[i];
- //write_log (L"%s (%s)\n", rll->rd->name, rll->path);
- }
-}
-
-struct romlist **getromlistbyident(int ver, int rev, int subver, int subrev, TCHAR *model, int all)
-{
- int i, j, ok, out, max;
- struct romdata *rd;
- struct romlist **rdout, *rltmp;
- void *buf;
- static struct romlist rlstatic;
-
- for (i = 0; roms[i].name; i++);
- if (all)
- max = i;
- else
- max = romlist_cnt;
- buf = xmalloc ((sizeof (struct romlist*) + sizeof (struct romlist)) * (i + 1));
- rdout = (struct romlist**)buf;
- rltmp = (struct romlist*)((uae_u8*)buf + (i + 1) * sizeof (struct romlist*));
- out = 0;
- for (i = 0; i < max; i++) {
- ok = 0;
- if (!all)
- rd = rl[i].rd;
- else
- rd = &roms[i];
- if (rd->group)
- continue;
- if (model && !_tcsicmp (model, rd->name))
- ok = 2;
- if (rd->ver == ver && (rev < 0 || rd->rev == rev)) {
- if (subver >= 0) {
- if (rd->subver == subver && (subrev < 0 || rd->subrev == subrev) && rd->subver > 0)
- ok = 1;
- } else {
- ok = 1;
- }
- }
- if (!ok)
- continue;
- if (model && ok < 2) {
- TCHAR *p = rd->model;
- ok = 0;
- while (*p) {
- if (!_tcscmp(rd->model, model)) {
- ok = 1;
- break;
- }
- p = p + _tcslen(p) + 1;
- }
- }
- if (!model && rd->type != ROMTYPE_KICK)
- ok = 0;
- if (ok) {
- if (all) {
- rdout[out++] = rltmp;
- rltmp->path = NULL;
- rltmp->rd = rd;
- rltmp++;
- } else {
- rdout[out++] = &rl[i];
- }
- }
- }
- if (out == 0) {
- xfree (rdout);
- return NULL;
- }
- for (i = 0; i < out; i++) {
- int v1 = rdout[i]->rd->subver * 1000 + rdout[i]->rd->subrev;
- for (j = i + 1; j < out; j++) {
- int v2 = rdout[j]->rd->subver * 1000 + rdout[j]->rd->subrev;
- if (v1 < v2) {
- struct romlist *rltmp = rdout[j];
- rdout[j] = rdout[i];
- rdout[i] = rltmp;
- }
- }
- }
- rdout[out] = NULL;
- return rdout;
-}
-
-struct romdata *getarcadiarombyname (TCHAR *name)
-{
- int i;
- for (i = 0; roms[i].name; i++) {
- if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIAGAME || roms[i].type == ROMTYPE_ARCADIAGAME)) {
- TCHAR *p = roms[i].name;
- p = p + _tcslen (p) + 1;
- if (_tcslen (name) >= _tcslen (p) + 4) {
- TCHAR *p2 = name + _tcslen (name) - _tcslen (p) - 4;
- if (!memcmp (p, p2, _tcslen (p)) && !memcmp (p2 + _tcslen (p2) - 4, ".zip", 4))
- return &roms[i];
- }
- }
- }
- return NULL;
-}
-
-struct romlist **getarcadiaroms(void)
-{
- int i, out, max;
- void *buf;
- struct romlist **rdout, *rltmp;
-
- max = 0;
- for (i = 0; roms[i].name; i++) {
- if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME))
- max++;
- }
- buf = xmalloc ((sizeof (struct romlist*) + sizeof (struct romlist)) * (max + 1));
- rdout = (struct romlist**)buf;
- rltmp = (struct romlist*)((uae_u8*)buf + (max + 1) * sizeof (struct romlist*));
- out = 0;
- for (i = 0; roms[i].name; i++) {
- if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME)) {
- rdout[out++] = rltmp;
- rltmp->path = NULL;
- rltmp->rd = &roms[i];
- rltmp++;
- }
- }
- rdout[out] = NULL;
- return rdout;
-}
-
-
-static int kickstart_checksum_do (uae_u8 *mem, int size)
-{
- uae_u32 cksum = 0, prevck = 0;
- int i;
- for (i = 0; i < size; i+=4) {
- uae_u32 data = mem[i]*65536*256 + mem[i+1]*65536 + mem[i+2]*256 + mem[i+3];
- cksum += data;
- if (cksum < prevck)
- cksum++;
- prevck = cksum;
- }
- return cksum == 0xffffffff;
-}
-
-#define ROM_KEY_NUM 3
-struct rom_key {
- uae_u8 *key;
- int size;
-};
-
-static struct rom_key keyring[ROM_KEY_NUM];
-
-static void addkey (uae_u8 *key, int size, const TCHAR *name)
-{
- int i;
-
- //write_log (L"addkey(%08x,%d,'%s')\n", key, size, name);
- if (key == NULL || size == 0) {
- xfree (key);
- return;
- }
- for (i = 0; i < ROM_KEY_NUM; i++) {
- if (keyring[i].key && keyring[i].size == size && !memcmp (keyring[i].key, key, size)) {
- xfree (key);
- //write_log (L"key already in keyring\n");
- return;
- }
- }
- for (i = 0; i < ROM_KEY_NUM; i++) {
- if (keyring[i].key == NULL)
- break;
- }
- if (i == ROM_KEY_NUM) {
- xfree (key);
- //write_log (L"keyring full\n");
- return;
- }
- keyring[i].key = key;
- keyring[i].size = size;
- write_log (L"ROM KEY '%s' %d bytes loaded\n", name, size);
-}
-
-static void addkeyfile (const TCHAR *path)
-{
- struct zfile *f;
- int keysize;
- uae_u8 *keybuf;
-
- f = zfile_fopen (path, L"rb", ZFD_NORMAL);
- if (!f)
- return;
- zfile_fseek (f, 0, SEEK_END);
- keysize = zfile_ftell (f);
- if (keysize > 0) {
- zfile_fseek (f, 0, SEEK_SET);
- keybuf = xmalloc (keysize);
- zfile_fread (keybuf, 1, keysize, f);
- addkey (keybuf, keysize, path);
- }
- zfile_fclose (f);
-}
-
-static void addkeydir (const TCHAR *path)
-{
- TCHAR tmp[MAX_DPATH];
-
- _tcscpy (tmp, path);
- if (zfile_exists (tmp)) {
- int i;
- for (i = _tcslen (tmp) - 1; i > 0; i--) {
- if (tmp[i] == '\\' || tmp[i] == '/')
- break;
- }
- tmp[i] = 0;
- }
- _tcscat (tmp, L"/");
- _tcscat (tmp, L"rom.key");
- addkeyfile (tmp);
-}
-
-int get_keyring (void)
-{
- int i, num = 0;
- for (i = 0; i < ROM_KEY_NUM; i++) {
- if (keyring[i].key)
- num++;
- }
- return num;
-}
-
-int load_keyring (struct uae_prefs *p, TCHAR *path)
-{
- uae_u8 *keybuf;
- int keysize;
- TCHAR tmp[MAX_PATH], *d;
- int keyids[] = { 0, 48, -1 };
- int cnt, i;
-
- free_keyring ();
- keybuf = target_load_keyfile (p, path, &keysize, tmp);
- addkey (keybuf, keysize, tmp);
- for (i = 0; keyids[i] >= 0; i++) {
- struct romdata *rd = getromdatabyid (keyids[i]);
- TCHAR *s;
- if (rd) {
- s = romlist_get (rd);
- if (s)
- addkeyfile (s);
- }
- }
-
- cnt = 0;
- for (;;) {
- keybuf = NULL;
- keysize = 0;
- tmp[0] = 0;
- switch (cnt)
- {
- case 0:
- if (path)
- _tcscpy (tmp, path);
- break;
- case 1:
- _tcscat (tmp, L"rom.key");
- break;
- case 2:
- if (p) {
- _tcscpy (tmp, p->path_rom);
- _tcscat (tmp, L"rom.key");
- }
- break;
- case 3:
- _tcscpy (tmp, L"roms/rom.key");
- break;
- case 4:
- _tcscpy (tmp, start_path_data);
- _tcscat (tmp, L"rom.key");
- break;
- case 5:
- _stprintf (tmp, L"%s../shared/rom/rom.key", start_path_data);
- break;
- case 6:
- if (p) {
- for (i = 0; uae_archive_extensions[i]; i++) {
- if (_tcsstr (p->romfile, uae_archive_extensions[i]))
- break;
- }
- if (!uae_archive_extensions[i]) {
- _tcscpy (tmp, p->romfile);
- d = _tcsrchr (tmp, '/');
- if (!d)
- d = _tcsrchr (tmp, '\\');
- if (d)
- _tcscpy (d + 1, L"rom.key");
- }
- }
- break;
- case 7:
- return get_keyring ();
- }
- cnt++;
- if (!tmp[0])
- continue;
- addkeyfile (tmp);
- }
-}
-void free_keyring (void)
-{
- int i;
- for (i = 0; i < ROM_KEY_NUM; i++)
- xfree (keyring[i].key);
- memset(keyring, 0, sizeof (struct rom_key) * ROM_KEY_NUM);
-}
-
-struct romdata *getromdatabyname (TCHAR *name)
-{
- TCHAR tmp[MAX_PATH];
- int i = 0;
- while (roms[i].name) {
- if (!roms[i].group) {
- getromname (&roms[i], tmp);
- if (!_tcscmp (tmp, name) || !_tcscmp (roms[i].name, name))
- return &roms[i];
- }
- i++;
- }
- return 0;
-}
-
-struct romdata *getromdatabyid (int id)
-{
- int i = 0;
- while (roms[i].name) {
- if (id == roms[i].id && roms[i].group == 0)
- return &roms[i];
- i++;
- }
- return 0;
-}
-
-struct romdata *getromdatabyidgroup (int id, int group, int subitem)
-{
- int i = 0;
- group = (group << 16) | subitem;
- while (roms[i].name) {
- if (id == roms[i].id && roms[i].group == group)
- return &roms[i];
- i++;
- }
- return 0;
-}
-
-STATIC_INLINE int notcrc32 (uae_u32 crc32)
-{
- if (crc32 == 0xffffffff || crc32 == 0x00000000)
- return 1;
- return 0;
-}
-
-struct romdata *getromdatabycrc (uae_u32 crc32)
-{
- int i = 0;
- while (roms[i].name) {
- if (roms[i].group == 0 && crc32 == roms[i].crc32 && !notcrc32(crc32))
- return &roms[i];
- i++;
- }
- return 0;
-}
-
-static int cmpsha1 (uae_u8 *s1, struct romdata *rd)
-{
- int i;
-
- for (i = 0; i < SHA1_SIZE / 4; i++) {
- uae_u32 v1 = (s1[0] << 24) | (s1[1] << 16) | (s1[2] << 8) | (s1[3] << 0);
- uae_u32 v2 = rd->sha1[i];
- if (v1 != v2)
- return -1;
- s1 += 4;
- }
- return 0;
-}
-
-static struct romdata *checkromdata (uae_u8 *sha1, int size, uae_u32 mask)
-{
- int i = 0;
- while (roms[i].name) {
- if (!notcrc32(roms[i].crc32) && roms[i].size >= size) {
- if (roms[i].type & mask) {
- if (!cmpsha1 (sha1, &roms[i]))
- return &roms[i];
- }
- }
- i++;
- }
- return NULL;
-}
-
-int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size)
-{
- int cnt, t, i;
-
- for (i = ROM_KEY_NUM - 1; i >= 0; i--) {
- uae_u8 sha1[SHA1_SIZE];
- struct romdata *rd;
- int keysize = keyring[i].size;
- uae_u8 *key = keyring[i].key;
- if (!key)
- continue;
- for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) {
- mem[cnt] ^= key[t];
- if (real_size == cnt + 1)
- t = keysize - 1;
- }
- if ((mem[2] == 0x4e && mem[3] == 0xf9) || (mem[0] == 0x11 && (mem[1] == 0x11 || mem[1] == 0x14))) {
- cloanto_rom = 1;
- return 1;
- }
- get_sha1 (mem, size, sha1);
- rd = checkromdata (sha1, size, -1);
- if (rd) {
- if (rd->cloanto)
- cloanto_rom = 1;
- return 1;
- }
- if (i == 0)
- break;
- for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) {
- mem[cnt] ^= key[t];
- if (real_size == cnt + 1)
- t = keysize - 1;
- }
- }
- return 0;
-}
-
-static int decode_rekick_rom_do (uae_u8 *mem, int size, int real_size)
-{
- uae_u32 d1 = 0xdeadfeed, d0;
- int i;
-
- for (i = 0; i < size / 8; i++) {
- d0 = ((mem[i * 8 + 0] << 24) | (mem[i * 8 + 1] << 16) | (mem[i * 8 + 2] << 8) | mem[i * 8 + 3]);
- d1 = d1 ^ d0;
- mem[i * 8 + 0] = d1 >> 24;
- mem[i * 8 + 1] = d1 >> 16;
- mem[i * 8 + 2] = d1 >> 8;
- mem[i * 8 + 3] = d1;
- d1 = ((mem[i * 8 + 4] << 24) | (mem[i * 8 + 5] << 16) | (mem[i * 8 + 6] << 8) | mem[i * 8 + 7]);
- d0 = d0 ^ d1;
- mem[i * 8 + 4] = d0 >> 24;
- mem[i * 8 + 5] = d0 >> 16;
- mem[i * 8 + 6] = d0 >> 8;
- mem[i * 8 + 7] = d0;
- }
- return 1;
-}
-
-static int decode_rom (uae_u8 *mem, int size, int mode, int real_size)
-{
- if (mode == 1) {
- if (!decode_cloanto_rom_do (mem, size, real_size)) {
-#ifndef SINGLEFILE
- notify_user (NUMSG_NOROMKEY);
-#endif
- return 0;
- }
- return 1;
- } else if (mode == 2) {
- decode_rekick_rom_do (mem, size, real_size);
- return 1;
- }
- return 0;
-}
-
-struct romdata *getromdatabydata (uae_u8 *rom, int size)
-{
- uae_u8 sha1[SHA1_SIZE];
- uae_u8 tmp[4];
- uae_u8 *tmpbuf = NULL;
- struct romdata *ret = NULL;
-
- if (size > 11 && !memcmp (rom, "AMIROMTYPE1", 11)) {
- uae_u8 *tmpbuf = xmalloc (size);
- int tmpsize = size - 11;
- memcpy (tmpbuf, rom + 11, tmpsize);
- decode_rom (tmpbuf, tmpsize, 1, tmpsize);
- rom = tmpbuf;
- size = tmpsize;
- }
-#if 0
- if (size > 0x6c + 524288 && !memcmp (rom, "AMIG", 4)) {
- uae_u8 *tmpbuf = (uae_u8*)xmalloc (size);
- int tmpsize = size - 0x6c;
- memcpy (tmpbuf, rom + 0x6c, tmpsize);
- decode_rom (tmpbuf, tmpsize, 2, tmpsize);
- rom = tmpbuf;
- size = tmpsize;
- }
-#endif
- get_sha1 (rom, size, sha1);
- ret = checkromdata(sha1, size, -1);
- if (!ret) {
- get_sha1 (rom, size / 2, sha1);
- ret = checkromdata (sha1, size / 2, -1);
- if (!ret) {
- /* ignore AR IO-port range until we have full dump */
- memcpy (tmp, rom, 4);
- memset (rom, 0, 4);
- get_sha1 (rom, size, sha1);
- ret = checkromdata (sha1, size, ROMTYPE_AR);
- memcpy (rom, tmp, 4);
- }
- }
- xfree (tmpbuf);
- return ret;
-}
-
-struct romdata *getromdatabyzfile (struct zfile *f)
-{
- int pos, size;
- uae_u8 *p;
- struct romdata *rd;
-
- pos = zfile_ftell (f);
- zfile_fseek (f, 0, SEEK_END);
- size = zfile_ftell (f);
- p = xmalloc (size);
- if (!p)
- return 0;
- memset (p, 0, size);
- zfile_fseek (f, 0, SEEK_SET);
- zfile_fread (p, 1, size, f);
- zfile_fseek (f, pos, SEEK_SET);
- rd = getromdatabydata (p, size);
- xfree (p);
- return rd;
-}
-
-void getromname (struct romdata *rd, TCHAR *name)
-{
- name[0] = 0;
- if (!rd)
- return;
- while (rd->group)
- rd--;
- _tcscat (name, rd->name);
- if ((rd->subrev || rd->subver) && rd->subver != rd->ver)
- _stprintf (name + _tcslen (name), L" rev %d.%d", rd->subver, rd->subrev);
- if (rd->size > 0)
- _stprintf (name + _tcslen (name), L" (%dk)", (rd->size + 1023) / 1024);
- if (rd->partnumber && _tcslen (rd->partnumber) > 0)
- _stprintf (name + _tcslen (name), L" [%s]", rd->partnumber);
-}
-
-struct romlist *getromlistbyromdata (struct romdata *rd)
-{
- int ids[2];
-
- ids[0] = rd->id;
- ids[1] = 0;
- return getromlistbyids(ids);
-}
-
-struct romlist *getromlistbyids (int *ids)
-{
- struct romdata *rd;
- int i, j;
-
- i = 0;
- while (ids[i] >= 0) {
- rd = getromdatabyid (ids[i]);
- if (rd) {
- for (j = 0; j < romlist_cnt; j++) {
- if (rl[j].rd->id == rd->id)
- return &rl[j];
- }
- }
- i++;
- }
- return NULL;
-}
-
-void romwarning (int *ids)
-{
- int i, exp;
- TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH];
- TCHAR tmp3[MAX_DPATH];
-
- exp = 0;
- tmp2[0] = 0;
- i = 0;
- while (ids[i] >= 0) {
- struct romdata *rd = getromdatabyid (ids[i]);
- getromname (rd, tmp1);
- _tcscat (tmp2, L"- ");
- _tcscat (tmp2, tmp1);
- _tcscat (tmp2, L"\n");
- if (rd->type & (ROMTYPE_A2091BOOT | ROMTYPE_A4091BOOT))
- exp++;
- i++;
- }
- translate_message (exp ? NUMSG_EXPROMNEED : NUMSG_ROMNEED, tmp3);
- gui_message (tmp3, tmp2);
-}
-
addrbank *mem_banks[MEMORY_BANKS];
/* This has two functions. It either holds a host address that, when added
}
}
-static int kickstart_checksum (uae_u8 *mem, int size)
-{
- if (!kickstart_checksum_do (mem, size)) {
-#ifndef SINGLEFILE
- notify_user (NUMSG_KSROMCRCERROR);
-#endif
- return 0;
- }
- return 1;
-}
-
-static int read_rom_file (uae_u8 *buf, struct romdata *rd)
-{
- struct zfile *zf;
- struct romlist *rl = romlist_getrl (rd);
- uae_char tmp[11];
-
- if (!rl || _tcslen (rl->path) == 0)
- return 0;
- zf = zfile_fopen (rl->path, L"rb", ZFD_NORMAL);
- if (!zf)
- return 0;
- addkeydir (rl->path);
- zfile_fread (tmp, sizeof tmp, 1, zf);
- if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) {
- zfile_fread (buf, rd->size, 1, zf);
- decode_cloanto_rom_do (buf, rd->size, rd->size);
- } else {
- memcpy (buf, tmp, sizeof tmp);
- zfile_fread (buf + sizeof tmp, rd->size - sizeof (tmp), 1, zf);
- }
- zfile_fclose (zf);
- return 1;
-}
-
-static void byteswap (uae_u8 *buf, int size)
-{
- int i;
- for (i = 0; i < size; i += 2) {
- uae_u8 t = buf[i];
- buf[i] = buf[i + 1];
- buf[i + 1] = t;
- }
-}
-static void wordbyteswap (uae_u8 *buf, int size)
-{
- int i;
- for (i = 0; i < size; i += 4) {
- uae_u8 t;
- t = buf[i + 0];
- buf[i + 0] = buf[i + 2];
- buf[i + 2] = t;
- t = buf[i + 1];
- buf[i + 1] = buf[i + 3];
- buf[i + 3] = t;
- }
-}
-
-static void mergecd32 (uae_u8 *dst, uae_u8 *src, int size)
-{
- int i, k;
- k = 0;
- for (i = 0; i < size / 2; i += 2) {
- int j = i + size / 2;
- dst[k + 1] = src[i + 0];
- dst[k + 0] = src[i + 1];
- dst[k + 3] = src[j + 0];
- dst[k + 2] = src[j + 1];
- k += 4;
- }
-#if 0
- {
- struct zfile *f;
- f = zfile_fopen ("c:\\d\\1.rom","wb", ZFD_NORMAL);
- zfile_fwrite (dst, 1, size, f);
- zfile_fclose(f);
- }
-#endif
-}
-
-static void descramble (struct romdata *rd, uae_u8 *data, int size, int odd)
-{
- int flags = rd->type;
-
- if (flags & (ROMTYPE_NORDIC | ROMTYPE_XPOWER))
- descramble_nordicpro (data, size, odd);
-}
-
-struct zfile *read_rom (struct romdata **prd)
-{
- struct romdata *rd2 = *prd;
- struct romdata *rd = *prd;
- TCHAR *name;
- int id = rd->id;
- uae_u32 crc32;
- int size;
- uae_u8 *buf, *buf2;
-
- /* find parent node */
- for (;;) {
- if (rd2 == &roms[0])
- break;
- if (rd2[-1].id != id)
- break;
- rd2--;
- }
- *prd = rd2;
- size = rd2->size;
- crc32 = rd2->crc32;
- name = rd->name;
- buf = xmalloc (size * 2);
- memset (buf, 0xff, size * 2);
- if (!buf)
- return NULL;
- buf2 = buf + size;
- while (rd->id == id) {
- int i, j, add;
- int ok = 0;
- uae_u32 flags = rd->type;
- int odd = (flags & ROMTYPE_ODD) ? 1 : 0;
-
- add = 0;
- for (i = 0; i < 2; i++) {
- memset (buf, 0, size);
- if (!(flags & (ROMTYPE_EVEN | ROMTYPE_ODD))) {
- read_rom_file (buf, rd);
- if (flags & ROMTYPE_CD32) {
- memcpy (buf2, buf, size);
- mergecd32 (buf, buf2, size);
- }
- add = 1;
- i++;
- } else {
- int romsize = size / 2;
- if (i)
- odd = !odd;
- if (flags & ROMTYPE_8BIT) {
- read_rom_file (buf2, rd);
- if (flags & ROMTYPE_BYTESWAP)
- byteswap (buf2, romsize);
- if (flags & ROMTYPE_SCRAMBLED)
- descramble (rd, buf2, romsize, odd);
- for (j = 0; j < size; j += 2)
- buf[j + odd] = buf2[j / 2];
- read_rom_file (buf2, rd + 1);
- if (flags & ROMTYPE_BYTESWAP)
- byteswap (buf2, romsize);
- if (flags & ROMTYPE_SCRAMBLED)
- descramble (rd + 1, buf2, romsize, !odd);
- for (j = 0; j < size; j += 2)
- buf[j + (1 - odd)] = buf2[j / 2];
- } else {
- read_rom_file (buf2, rd);
- if (flags & ROMTYPE_BYTESWAP)
- byteswap (buf2, romsize);
- if (flags & ROMTYPE_SCRAMBLED)
- descramble (rd, buf2, romsize, odd);
- for (j = 0; j < size; j += 4) {
- buf[j + 2 * odd + 0] = buf2[j / 2 + 0];
- buf[j + 2 * odd + 1] = buf2[j / 2 + 1];
- }
- read_rom_file (buf2, rd + 1);
- if (flags & ROMTYPE_BYTESWAP)
- byteswap (buf2, romsize);
- if (flags & ROMTYPE_SCRAMBLED)
- descramble (rd + 1, buf2, romsize, !odd);
- for (j = 0; j < size; j += 4) {
- buf[j + 2 * (1 - odd) + 0] = buf2[j / 2 + 0];
- buf[j + 2 * (1 - odd) + 1] = buf2[j / 2 + 1];
- }
- }
- add = 2;
- }
- if (get_crc32 (buf, size) == crc32) {
- ok = 1;
- } else {
- /* perhaps it is byteswapped without byteswap entry? */
- byteswap (buf, size);
- if (get_crc32 (buf, size) == crc32)
- ok = 1;
- }
- if (ok) {
- struct zfile *zf = zfile_fopen_empty (NULL, name, size);
- if (zf) {
- zfile_fwrite (buf, size, 1, zf);
- zfile_fseek (zf, 0, SEEK_SET);
- }
- xfree (buf);
- return zf;
- }
- }
- rd += add;
-
- }
- xfree (buf);
- return NULL;
-}
-
-static struct zfile *rom_fopen (const TCHAR *name, const TCHAR *mode, int mask)
-{
- struct zfile *f;
- //write_log (L"attempting to load '%s'\n", name);
- f = zfile_fopen (name, mode, mask);
- //write_log (L"=%p\n", f);
- return f;
-}
-
-struct zfile *read_rom_name (const TCHAR *filename)
-{
- int i;
- struct zfile *f;
-
- for (i = 0; i < romlist_cnt; i++) {
- if (!_tcsicmp (filename, rl[i].path)) {
- struct romdata *rd = rl[i].rd;
- f = read_rom (&rd);
- if (f)
- return f;
- }
- }
- f = rom_fopen (filename, L"rb", ZFD_NORMAL);
- if (f) {
- uae_u8 tmp[11];
- zfile_fread (tmp, sizeof tmp, 1, f);
- if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) {
- struct zfile *df;
- int size;
- uae_u8 *buf;
- addkeydir (filename);
- zfile_fseek (f, 0, SEEK_END);
- size = zfile_ftell (f) - sizeof tmp;
- zfile_fseek (f, sizeof tmp, SEEK_SET);
- buf = xmalloc (size);
- zfile_fread (buf, size, 1, f);
- df = zfile_fopen_empty (f, L"tmp.rom", size);
- decode_cloanto_rom_do (buf, size, size);
- zfile_fwrite (buf, size, 1, df);
- zfile_fclose (f);
- xfree (buf);
- zfile_fseek (df, 0, SEEK_SET);
- f = df;
- } else {
- zfile_fseek (f, -((int)sizeof tmp), SEEK_CUR);
- }
- }
- return f;
-}
-
-struct zfile *read_rom_name_guess (const TCHAR *filename)
-{
- int i, j;
- struct zfile *f;
- TCHAR *name;
-
- for (i = _tcslen (filename) - 1; i >= 0; i--) {
- if (filename[i] == '/' || filename[i] == '\\')
- break;
- }
- if (i < 0)
- return NULL;
- name = &filename[i];
-
- for (i = 0; i < romlist_cnt; i++) {
- TCHAR *n = rl[i].path;
- for (j = _tcslen (n) - 1; j >= 0; j--) {
- if (n[j] == '/' || n[j] == '\\')
- break;
- }
- if (j < 0)
- continue;
- if (!_tcsicmp (name, n + j)) {
- struct romdata *rd = rl[i].rd;
- f = read_rom (&rd);
- if (f) {
- write_log (L"ROM %s not found, using %s\n", filename, rl[i].path);
- return f;
- }
- }
- }
- return NULL;
-}
-
-static void kickstart_fix_checksum (uae_u8 *mem, int size)
-{
- uae_u32 cksum = 0, prevck = 0;
- int i, ch = size == 524288 ? 0x7ffe8 : 0x3e;
-
- mem[ch] = 0;
- mem[ch + 1] = 0;
- mem[ch + 2] = 0;
- mem[ch + 3] = 0;
- for (i = 0; i < size; i+=4) {
- uae_u32 data = (mem[i] << 24) | (mem[i + 1] << 16) | (mem[i + 2] << 8) | mem[i + 3];
- cksum += data;
- if (cksum < prevck)
- cksum++;
- prevck = cksum;
- }
- cksum ^= 0xffffffff;
- mem[ch++] = cksum >> 24;
- mem[ch++] = cksum >> 16;
- mem[ch++] = cksum >> 8;
- mem[ch++] = cksum >> 0;
-}
-
static uae_char *kickstring = "exec.library";
static int read_kickstart (struct zfile *f, uae_u8 *mem, int size, int dochecksum, int noalias)
{
uae_u32 crc32, mem_start, mem_size, mem_type, version;
TCHAR *s, *romn;
int i, crcdet;
+ struct romlist *rl = romlist_getit ();
mem_start = restore_u32 ();
mem_size = restore_u32 ();
crc32 = restore_u32 ();
romn = restore_string ();
crcdet = 0;
- for (i = 0; i < romlist_cnt; i++) {
+ for (i = 0; i < romlist_count (); i++) {
if (rl[i].rd->crc32 == crc32 && crc32) {
if (zfile_exists (rl[i].path)) {
switch (mem_type)
- /*
- * UAE - The Un*x Amiga Emulator
- *
- * Pro-Wizard glue code
- *
- * Copyright 2004 Toni Wilen
- */
+/*
+* UAE - The Un*x Amiga Emulator
+*
+* Pro-Wizard glue code
+*
+* Copyright 2004 Toni Wilen
+*/
#include "sysconfig.h"
#include "sysdeps.h"
static void mc (uae_u8 *d, uaecptr s, int size)
{
- int i;
+ int i;
- for (i = 0; i < size; i++)
- d[i] = get_byte (s++);
+ for (i = 0; i < size; i++)
+ d[i] = get_byte (s++);
}
#ifdef _WIN32
static LONG WINAPI ExceptionFilter (struct _EXCEPTION_POINTERS * pExceptionPointers, DWORD ec)
{
- return EXCEPTION_EXECUTE_HANDLER;
+ return EXCEPTION_EXECUTE_HANDLER;
}
#endif
void moduleripper (void)
{
- int size;
- uae_u8 *buf, *p;
-
- size = currprefs.chipmem_size;
- size += currprefs.fastmem_size;
- size += currprefs.bogomem_size;
- size += currprefs.mbresmem_low_size;
- size += currprefs.mbresmem_high_size;
- size += currprefs.z3fastmem_size;
- size += currprefs.z3fastmem2_size;
- buf = p = xmalloc (size);
- if (!buf)
- return;
- memcpy (p, chipmemory, currprefs.chipmem_size);
- p += currprefs.chipmem_size;
- mc (p, fastmem_start, currprefs.fastmem_size);
- p += currprefs.fastmem_size;
- mc (p, bogomem_start, currprefs.bogomem_size);
- p += currprefs.bogomem_size;
- mc (p, a3000lmem_start, currprefs.mbresmem_low_size);
- p += currprefs.mbresmem_low_size;
- mc (p, a3000hmem_start, currprefs.mbresmem_high_size);
- p += currprefs.mbresmem_high_size;
- mc (p, z3fastmem_start, currprefs.z3fastmem_size);
- p += currprefs.z3fastmem_size;
- mc (p, z3fastmem_start + currprefs.z3fastmem_size, currprefs.z3fastmem2_size);
- p += currprefs.z3fastmem2_size;
-
- got = 0;
- canceled = 0;
+ int size;
+ uae_u8 *buf, *p;
+
+ size = currprefs.chipmem_size;
+ size += currprefs.fastmem_size;
+ size += currprefs.bogomem_size;
+ size += currprefs.mbresmem_low_size;
+ size += currprefs.mbresmem_high_size;
+ size += currprefs.z3fastmem_size;
+ size += currprefs.z3fastmem2_size;
+ buf = p = xmalloc (size);
+ if (!buf)
+ return;
+ memcpy (p, chipmemory, currprefs.chipmem_size);
+ p += currprefs.chipmem_size;
+ mc (p, fastmem_start, currprefs.fastmem_size);
+ p += currprefs.fastmem_size;
+ mc (p, bogomem_start, currprefs.bogomem_size);
+ p += currprefs.bogomem_size;
+ mc (p, a3000lmem_start, currprefs.mbresmem_low_size);
+ p += currprefs.mbresmem_low_size;
+ mc (p, a3000hmem_start, currprefs.mbresmem_high_size);
+ p += currprefs.mbresmem_high_size;
+ mc (p, z3fastmem_start, currprefs.z3fastmem_size);
+ p += currprefs.z3fastmem_size;
+ mc (p, z3fastmem_start + currprefs.z3fastmem_size, currprefs.z3fastmem2_size);
+ p += currprefs.z3fastmem2_size;
+
+ got = 0;
+ canceled = 0;
#ifdef _WIN32
- __try {
+ __try {
#endif
- prowizard_search (buf, size);
+ prowizard_search (buf, size);
#ifdef _WIN32
- } __except(ExceptionFilter (GetExceptionInformation (), GetExceptionCode ())) {
- write_log (L"prowizard scan crashed\n");
- }
+ } __except(ExceptionFilter (GetExceptionInformation (), GetExceptionCode ())) {
+ write_log (L"prowizard scan crashed\n");
+ }
#endif
- if (!got)
- notify_user (NUMSG_MODRIP_NOTFOUND);
- else if (!canceled)
- notify_user (NUMSG_MODRIP_FINISHED);
- xfree (buf);
+ if (!got)
+ notify_user (NUMSG_MODRIP_NOTFOUND);
+ else if (!canceled)
+ notify_user (NUMSG_MODRIP_FINISHED);
+ xfree (buf);
}
FILE *moduleripper_fopen (const char *aname, const char *amode)
{
- TCHAR tmp2[MAX_DPATH];
- TCHAR tmp[MAX_DPATH];
- TCHAR *name, *mode;
- FILE *f;
-
- fetch_ripperpath (tmp, sizeof tmp);
- name = au (aname);
- mode = au (amode);
- _stprintf (tmp2, L"%s%s", tmp, name);
- f = _tfopen (tmp2, mode);
- xfree (mode);
- xfree (name);
- return f;
+ TCHAR tmp2[MAX_DPATH];
+ TCHAR tmp[MAX_DPATH];
+ TCHAR *name, *mode;
+ FILE *f;
+
+ fetch_ripperpath (tmp, sizeof tmp);
+ name = au (aname);
+ mode = au (amode);
+ _stprintf (tmp2, L"%s%s", tmp, name);
+ f = _tfopen (tmp2, mode);
+ xfree (mode);
+ xfree (name);
+ return f;
}
FILE *moduleripper2_fopen (const char *name, const char *mode, const char *aid, int addr, int size)
{
- TCHAR msg[MAX_DPATH], msg2[MAX_DPATH];
- TCHAR *id;
- int ret;
-
- if (canceled)
- return NULL;
- got++;
- translate_message (NUMSG_MODRIP_SAVE, msg);
- id = au (aid);
- _stprintf (msg2, msg, id, addr, size);
- ret = gui_message_multibutton (2, msg2);
- xfree (id);
- if (ret < 0)
- canceled = 1;
- if (ret < 0 || ret != 1)
- return NULL;
- return moduleripper_fopen (name, mode);
+ TCHAR msg[MAX_DPATH], msg2[MAX_DPATH];
+ TCHAR *id;
+ int ret;
+
+ if (canceled)
+ return NULL;
+ got++;
+ translate_message (NUMSG_MODRIP_SAVE, msg);
+ id = au (aid);
+ _stprintf (msg2, msg, id, addr, size);
+ ret = gui_message_multibutton (2, msg2);
+ xfree (id);
+ if (ret < 0)
+ canceled = 1;
+ if (ret < 0 || ret != 1)
+ return NULL;
+ return moduleripper_fopen (name, mode);
}
#else
FILE *moduleripper_fopen (const char *name, const char *mode)
{
- return NULL;
+ return NULL;
}
FILE *moduleripper2_fopen (const char *name, const char *mode, const char *id)
{
- return NULL;
+ return NULL;
}
#endif
#include "options.h"
#include "uae.h"
#include "memory.h"
+#include "rommgr.h"
#include "custom.h"
#include "newcpu.h"
#include "ncr_scsi.h"
!define PRODUCT_NAME "WinUAE"
-!define PRODUCT_VERSION "2.0.0"
+!define PRODUCT_VERSION "2.0.1"
!define PRODUCT_PUBLISHER "Arabuusimiehet"
!define PRODUCT_WEB_SITE "http://www.winuae.net/"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\winuae.exe"
static void scsi_sfree (SCSI *scgp)
{
+ if (!scgp)
+ return;
if (scgp->cmdstart)
free(scgp->cmdstart);
if (scgp->cmdstop)
errno = EINVAL;
if (log_scsi)
write_log (L"ASPI: Illegal value for busno, target or lun '%d,%d,%d'\n", busno, tgt, tlun);
+ scsi_sfree (scgp);
return 0;
}
/*
;
} else if (tgt != -1 || tgt != -1 || tlun != -1) {
errno = EINVAL;
+ scsi_sfree (scgp);
return 0;
}
if (scgp->local == NULL) {
scgp->local = malloc(sizeof(struct scg_local));
- if (scgp->local == NULL)
+ if (scgp->local == NULL) {
+ scsi_sfree (scgp);
return 0;
+ }
}
/*
* Try to open ASPI-Router
*/
- if (!open_driver(scgp))
+ if (!open_driver(scgp)) {
+ scsi_sfree (scgp);
return 0;
+ }
/*
* More than we have ...
*/
if (busno >= busses) {
close_driver ();
+ scsi_sfree (scgp);
return 0;
}
return scgp;
int type = si[unitnum].type;
if (type == INQ_ROMD)
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
else if (type == INQ_DASD)
- gui_hd_led (unitnum, 1);
+ gui_flicker_led (LED_HD, unitnum, 1);
}
static uae_sem_t scgp_sem;
cmd[3] = (uae_u8)(sector >> 16);
cmd[4] = (uae_u8)(sector >> 8);
cmd[5] = (uae_u8)(sector >> 0);
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
memset (&swb, 0, sizeof (swb));
memcpy (swb.spt.Cdb, cmd, len);
swb.spt.Length = sizeof (SCSI_PASS_THROUGH);
if (sectorsize != 2336 && sectorsize != 2352 && sectorsize != 2048)
return 0;
while (cnt-- > 0) {
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
seterrormode (unitnum);
rri.DiskOffset.QuadPart = sector * 2048;
rri.SectorCount = 1;
if (!open_createfile (unitnum, 0))
return 0;
while (cnt-- > 0) {
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
seterrormode (unitnum);
if (SetFilePointer (ciw32[unitnum].h, sector * ciw32[unitnum].blocksize, 0, FILE_BEGIN) == INVALID_SET_FILE_POINTER) {
reseterrormode (unitnum);
}
cnt = 3;
while (cnt-- > 0) {
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
seterrormode (unitnum);
if (write) {
if (!WriteFile (ciw32[unitnum].h, p, blocksize, &dtotal, 0)) {
}
}
reseterrormode (unitnum);
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
break;
}
*ptr = p;
if (!open_createfile (unitnum, 0))
return 0;
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
while (cnt-- > 0) {
seterrormode (unitnum);
if (!DeviceIoControl (ciw32[unitnum].h, IOCTL_CDROM_READ_TOC, NULL, 0, toc, sizeof(CDROM_TOC), &len, NULL)) {
p[10] = toc->TrackData[i].Address[3];
p += 11;
}
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
return ciw32[unitnum].tempbuffer;
}
scsi_log_before (swb->spt.Cdb, swb->spt.CdbLength,
swb->spt.DataIn == SCSI_IOCTL_DATA_OUT ? swb->spt.DataBuffer : 0,swb->spt.DataTransferLength);
}
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
swb->spt.ScsiStatus = 0;
if (di->bus >= 0) {
swb->spt.PathId = di->path;
swb->spt.SenseInfoLength = 0; /* 0 and 1 = success, not error.. */
if (swb->spt.SenseInfoLength > 0)
return 0;
- gui_cd_led (unitnum, 1);
+ gui_flicker_led (LED_CD, unitnum, 1);
return status;
}
static DWORD WINAPI pipethread (LPVOID pipewr)
{
- TCHAR buff[256];
- DWORD read, wrote;
- HANDLE pipewrite = (HANDLE)pipewr;
-
- while (runthread) {
- read = 0;
- ReadConsole (stdin_save, buff, 1, &read, NULL);
- buff[read] = 0;
- if (read > 0) {
- if (!WriteFile (pipewrite, buff, read * sizeof (TCHAR), &wrote, NULL)) {
- if (GetLastError () == ERROR_NO_DATA)
- break;
- }
+ TCHAR buff[256];
+ DWORD read, wrote;
+ HANDLE pipewrite = (HANDLE)pipewr;
+
+ while (runthread) {
+ read = 0;
+ ReadConsole (stdin_save, buff, 1, &read, NULL);
+ buff[read] = 0;
+ if (read > 0) {
+ if (!WriteFile (pipewrite, buff, read * sizeof (TCHAR), &wrote, NULL)) {
+ if (GetLastError () == ERROR_NO_DATA)
+ break;
+ }
+ }
}
- }
- return 0;
+ return 0;
}
static void HandleOutput (HANDLE piperead)
{
- TCHAR buffer[256];
- DWORD read, wrote;
-
- for (;;) {
- read = 0;
- if (!ReadFile (piperead, buffer, sizeof buffer, &read, NULL)) {
- if (GetLastError () == ERROR_BROKEN_PIPE)
- break;
- }
- if (read > 0) {
- WriteConsole (stdout_save, buffer, read / sizeof (TCHAR), &wrote, NULL);
+ TCHAR buffer[256];
+ DWORD read, wrote;
+
+ for (;;) {
+ read = 0;
+ if (!ReadFile (piperead, buffer, sizeof buffer, &read, NULL)) {
+ if (GetLastError () == ERROR_BROKEN_PIPE)
+ break;
+ }
+ if (read > 0) {
+ WriteConsole (stdout_save, buffer, read / sizeof (TCHAR), &wrote, NULL);
+ }
}
- }
}
static BOOL WINAPI ctrlhandler (DWORD type)
{
- if (pi.hProcess)
- TerminateProcess (pi.hProcess, 0);
- ExitProcess (0);
- return TRUE;
+ if (pi.hProcess)
+ TerminateProcess (pi.hProcess, 0);
+ ExitProcess (0);
+ return TRUE;
}
#define conpar L"-console"
int wmain (int argc, wchar_t *argv[], wchar_t *envp[])
{
- CONSOLE_SCREEN_BUFFER_INFO csbi;
- STARTUPINFO si;
- TCHAR *cmd, *parms2;
- int len, parmlen, i;
- HANDLE cp;
- HANDLE out_rd = NULL, out_wr = NULL, out_rd_tmp = NULL;
- HANDLE in_rd = NULL, in_wr = NULL, in_wr_tmp = NULL;
- HANDLE err_wr;
- DWORD tid;
- HANDLE thread;
- SECURITY_ATTRIBUTES sa;
-
- len = _tcslen (argv[0]);
- if (len < 4)
- return 0;
- cmd = malloc ((len + 4 + 1) * sizeof (TCHAR));
- _tcscpy (cmd, argv[0]);
- if (_tcsicmp (cmd + len - 4, L".com"))
- _tcscat (cmd + len, L".exe");
- else
- _tcscpy (cmd + len - 4, L".exe");
-
- parmlen = 0;
- for (i = 1; i < argc; i++) {
- if (parmlen > 0)
- parmlen ++;
- parmlen += 1 + _tcslen (argv[i]) + 1;
- }
- parms2 = malloc ((_tcslen (cmd) + 1 + parmlen + 1 + _tcslen (conpar) + 1) * sizeof (TCHAR));
- _tcscpy (parms2, cmd);
- _tcscat (parms2, L" ");
- _tcscat (parms2, conpar);
- for (i = 1; i < argc; i++) {
- int isspace = 0;
+ CONSOLE_SCREEN_BUFFER_INFO csbi;
+ STARTUPINFO si;
+ TCHAR *cmd, *parms2;
+ int len, parmlen, i;
+ HANDLE cp;
+ HANDLE out_rd = NULL, out_wr = NULL, out_rd_tmp = NULL;
+ HANDLE in_rd = NULL, in_wr = NULL, in_wr_tmp = NULL;
+ HANDLE err_wr;
+ DWORD tid;
+ HANDLE thread;
+ SECURITY_ATTRIBUTES sa;
+
+ len = _tcslen (argv[0]);
+ if (len < 4)
+ return 0;
+ cmd = malloc ((len + 4 + 1) * sizeof (TCHAR));
+ _tcscpy (cmd, argv[0]);
+ if (_tcsicmp (cmd + len - 4, L".com"))
+ _tcscat (cmd + len, L".exe");
+ else
+ _tcscpy (cmd + len - 4, L".exe");
+
+ parmlen = 0;
+ for (i = 1; i < argc; i++) {
+ if (parmlen > 0)
+ parmlen ++;
+ parmlen += 1 + _tcslen (argv[i]) + 1;
+ }
+ parms2 = malloc ((_tcslen (cmd) + 1 + parmlen + 1 + _tcslen (conpar) + 1) * sizeof (TCHAR));
+ _tcscpy (parms2, cmd);
_tcscat (parms2, L" ");
- if (_tcschr (argv[i], ' '))
- isspace = 1;
- if (isspace)
- _tcscat (parms2, L"\"");
- _tcscat (parms2, argv[i]);
- if (isspace)
- _tcscat (parms2, L"\"");
- }
-
- cp = GetCurrentProcess ();
- sa.nLength = sizeof sa;
- sa.bInheritHandle = TRUE;
- sa.lpSecurityDescriptor = NULL;
-
- stdout_save = GetStdHandle (STD_OUTPUT_HANDLE);
- stdin_save = GetStdHandle (STD_INPUT_HANDLE);
- stderr_save = GetStdHandle (STD_ERROR_HANDLE);
-
- SetConsoleMode (stdin_save, ENABLE_PROCESSED_INPUT|ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_OUTPUT);
- SetConsoleCP (65001);
- SetConsoleOutputCP (65001);
- if (GetConsoleScreenBufferInfo (stdout_save, &csbi)) {
- if (csbi.dwMaximumWindowSize.Y < 900) {
- csbi.dwMaximumWindowSize.Y = 900;
- SetConsoleScreenBufferSize (stdout_save, csbi.dwMaximumWindowSize);
+ _tcscat (parms2, conpar);
+ for (i = 1; i < argc; i++) {
+ int isspace = 0;
+ _tcscat (parms2, L" ");
+ if (_tcschr (argv[i], ' '))
+ isspace = 1;
+ if (isspace)
+ _tcscat (parms2, L"\"");
+ _tcscat (parms2, argv[i]);
+ if (isspace)
+ _tcscat (parms2, L"\"");
}
- }
- CreatePipe (&out_rd_tmp, &out_wr, &sa, 0);
- CreatePipe (&in_rd, &in_wr_tmp, &sa, 0);
+ cp = GetCurrentProcess ();
+ sa.nLength = sizeof sa;
+ sa.bInheritHandle = TRUE;
+ sa.lpSecurityDescriptor = NULL;
+
+ stdout_save = GetStdHandle (STD_OUTPUT_HANDLE);
+ stdin_save = GetStdHandle (STD_INPUT_HANDLE);
+ stderr_save = GetStdHandle (STD_ERROR_HANDLE);
+
+ //SetConsoleMode (stdin_save, ENABLE_PROCESSED_INPUT|ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_OUTPUT);
+ SetConsoleMode (stdin_save, ENABLE_PROCESSED_INPUT|ENABLE_PROCESSED_OUTPUT);
+ SetConsoleCP (65001);
+ SetConsoleOutputCP (65001);
+ if (GetConsoleScreenBufferInfo (stdout_save, &csbi)) {
+ if (csbi.dwMaximumWindowSize.Y < 900) {
+ csbi.dwMaximumWindowSize.Y = 900;
+ SetConsoleScreenBufferSize (stdout_save, csbi.dwMaximumWindowSize);
+ }
+ }
+
+ CreatePipe (&out_rd_tmp, &out_wr, &sa, 0);
+ CreatePipe (&in_rd, &in_wr_tmp, &sa, 0);
- DuplicateHandle (cp, out_wr, cp, &err_wr, 0, TRUE, DUPLICATE_SAME_ACCESS);
- DuplicateHandle (cp, out_rd_tmp, cp, &out_rd, 0, FALSE, DUPLICATE_SAME_ACCESS);
- DuplicateHandle (cp, in_wr_tmp, cp, &in_wr, 0, FALSE, DUPLICATE_SAME_ACCESS);
+ DuplicateHandle (cp, out_wr, cp, &err_wr, 0, TRUE, DUPLICATE_SAME_ACCESS);
+ DuplicateHandle (cp, out_rd_tmp, cp, &out_rd, 0, FALSE, DUPLICATE_SAME_ACCESS);
+ DuplicateHandle (cp, in_wr_tmp, cp, &in_wr, 0, FALSE, DUPLICATE_SAME_ACCESS);
- CloseHandle (out_rd_tmp);
- CloseHandle (in_wr_tmp);
+ CloseHandle (out_rd_tmp);
+ CloseHandle (in_wr_tmp);
- memset (&si, 0, sizeof si);
- si.cb = sizeof si;
- si.dwFlags = STARTF_USESTDHANDLES;
- si.hStdInput = in_rd;
- si.hStdOutput = out_wr;
- si.hStdError = err_wr;
+ memset (&si, 0, sizeof si);
+ si.cb = sizeof si;
+ si.dwFlags = STARTF_USESTDHANDLES;
+ si.hStdInput = in_rd;
+ si.hStdOutput = out_wr;
+ si.hStdError = err_wr;
- SetConsoleCtrlHandler (&ctrlhandler, TRUE);
+ SetConsoleCtrlHandler (&ctrlhandler, TRUE);
- if (!CreateProcess (cmd, parms2,
- NULL, NULL, TRUE,
- CREATE_SUSPENDED | CREATE_NEW_CONSOLE | GetPriorityClass (GetCurrentProcess ()),
- NULL, NULL, &si, &pi)) {
- _tprintf (L"CreateProcess(%s) failed\n", cmd);
- goto end;
- }
+ if (!CreateProcess (cmd, parms2,
+ NULL, NULL, TRUE,
+ CREATE_SUSPENDED | CREATE_NEW_CONSOLE | GetPriorityClass (GetCurrentProcess ()),
+ NULL, NULL, &si, &pi)) {
+ _tprintf (L"CreateProcess(%s) failed\n", cmd);
+ goto end;
+ }
- CloseHandle (out_wr);
- CloseHandle (in_rd);
- CloseHandle (err_wr);
+ CloseHandle (out_wr);
+ CloseHandle (in_rd);
+ CloseHandle (err_wr);
- thread = CreateThread (NULL, 0, pipethread, (LPVOID)in_wr, 0, &tid);
+ thread = CreateThread (NULL, 0, pipethread, (LPVOID)in_wr, 0, &tid);
- ResumeThread (pi.hThread);
+ ResumeThread (pi.hThread);
- HandleOutput (out_rd);
- runthread = 0;
- CloseHandle (stdin_save);
- WaitForSingleObject (thread, INFINITE);
+ HandleOutput (out_rd);
+ runthread = 0;
+ CloseHandle (stdin_save);
+ WaitForSingleObject (thread, INFINITE);
- CloseHandle (out_rd);
- CloseHandle (in_wr);
+ CloseHandle (out_rd);
+ CloseHandle (in_wr);
- CloseHandle (pi.hProcess);
- CloseHandle (pi.hThread);
+ CloseHandle (pi.hProcess);
+ CloseHandle (pi.hThread);
end:
- free (parms2);
- free (cmd);
- return 0;
+ free (parms2);
+ free (cmd);
+ return 0;
}
}
case WM_CLOSE:
DestroyWindow(hDlg);
- uae_quit();
return TRUE;
case WM_DESTROY:
{
DeleteFromHistory(histcount);
DeleteObject(udfont);
consoleopen = 0;
+ deactivate_debugger ();
return TRUE;
}
case WM_GETMINMAXINFO:
static LPDIRECT3DTEXTURE9 createtext (int *ww, int *hh, D3DFORMAT format)
{
LPDIRECT3DTEXTURE9 t;
+ D3DLOCKED_RECT locked;
HRESULT hr;
int w, h;
D3D_ErrorString (hr), w, h, format);
return 0;
}
-
*ww = w;
*hh = h;
+ hr = IDirect3DTexture9_LockRect (t, 0, &locked, NULL, 0);
+ if (SUCCEEDED (hr)) {
+ int y;
+ int wb;
+ wb = w * 4;
+ if (wb > locked.Pitch)
+ wb = w * 2;
+ if (wb > locked.Pitch)
+ wb = w * 1;
+ for (y = 0; y < h; y++)
+ memset ((uae_u8*)locked.pBits + y * locked.Pitch, 0, wb);
+ IDirect3DTexture9_UnlockRect (t, 0);
+ }
return t;
}
}
done = 1;
}
- hr = IDirect3DTexture9_LockRect (ledtexture, 0, &locked, NULL, D3DLOCK_DISCARD);
+ hr = IDirect3DTexture9_LockRect (ledtexture, 0, &locked, NULL, 0);
if (FAILED (hr)) {
write_log (L"SL IDirect3DTexture9_LockRect failed: %s\n", D3D_ErrorString (hr));
return;
l1 = (currprefs.gfx_filter_scanlineratio >> 0) & 15;
l2 = (currprefs.gfx_filter_scanlineratio >> 4) & 15;
- hr = IDirect3DTexture9_LockRect (sltexture, 0, &locked, NULL, D3DLOCK_DISCARD);
+ hr = IDirect3DTexture9_LockRect (sltexture, 0, &locked, NULL, 0);
if (FAILED (hr)) {
write_log (L"SL IDirect3DTexture9_LockRect failed: %s\n", D3D_ErrorString (hr));
return;
if (FAILED (hr))
return;
for (i = 0; i < 2; i++) {
- IDirect3DDevice9_Clear (d3ddev, 0L, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0L);
+ IDirect3DDevice9_Clear (d3ddev, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 0, 0);
IDirect3DDevice9_Present (d3ddev, NULL, NULL, NULL, NULL);
}
}
if (clear || needclear) {
int i;
for (i = 0; i < 2; i++) {
- hr = IDirect3DDevice9_Clear (d3ddev, 0L, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0L );
+ hr = IDirect3DDevice9_Clear (d3ddev, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 0, 0);
if (FAILED (hr))
write_log (L"IDirect3DDevice9_Clear() failed: %s\n", D3D_ErrorString (hr));
IDirect3DDevice9_Present (d3ddev, NULL, NULL, NULL, NULL);
if (lpRenderTarget)
IDirect3DSurface9_Release (lpRenderTarget);
uPasses = 0;
- if (!psEffect_Begin ((lpWorkTexture == lpWorkTexture1) ?
-psEffect_PreProcess1 : psEffect_PreProcess2, &uPasses))
+ if (!psEffect_Begin ((lpWorkTexture == lpWorkTexture1) ? psEffect_PreProcess1 : psEffect_PreProcess2, &uPasses))
return;
for (uPass = 0; uPass < uPasses; uPass++) {
if (!psEffect_BeginPass (uPass))
s1[0] = 0;
s2[0] = 0;
- ua_fs_copy (s1, MAX_DPATH, n);
+ ua_fs_copy (s1, MAX_DPATH, n, -1);
au_fs_copy (s2, MAX_DPATH, s1);
if (_tcsicmp (s2, n) != 0)
return 1;
}
static int capslockstate;
+static int host_capslockstate, host_numlockstate, host_scrolllockstate;
int getcapslockstate (void)
{
int getcapslock (void)
{
- int newstate;
-
- newstate = GetKeyState (VK_CAPITAL) & 1; // this returns bogus state if caps change when in exclusive mode..
- if (newstate != capslockstate)
- inputdevice_translatekeycode (0, DIK_CAPITAL, newstate);
- capslockstate = newstate;
+ int capstable[7];
+
+ // this returns bogus state if caps change when in exclusive mode..
+ host_capslockstate = GetKeyState (VK_CAPITAL) & 1;
+ host_numlockstate = GetKeyState (VK_NUMLOCK) & 1;
+ host_scrolllockstate = GetKeyState (VK_SCROLL) & 1;
+ capstable[0] = DIK_CAPITAL;
+ capstable[1] = host_capslockstate;
+ capstable[2] = DIK_NUMLOCK;
+ capstable[3] = host_numlockstate;
+ capstable[4] = DIK_SCROLL;
+ capstable[5] = host_scrolllockstate;
+ capstable[6] = 0;
+ capslockstate = inputdevice_synccapslock (capslockstate, capstable);
return capslockstate;
}
void my_kbd_handler (int keyboard, int scancode, int newstate)
{
int code = 0;
+ int scancode_new;
static int swapperdrive = 0;
if (scancode == specialkeycode ())
return;
+ if (scancode == DIK_F11 && currprefs.win32_ctrl_F11_is_quit && ctrlpressed ())
+ code = AKS_QUIT;
+
+ scancode_new = scancode;
+ if (!specialpressed () && inputdevice_iskeymapped (keyboard, scancode))
+ scancode = 0;
+ // GUI must be always available
+ if (scancode_new == DIK_F12 && currprefs.win32_guikey < 0)
+ scancode = scancode_new;
+ if (scancode_new == currprefs.win32_guikey && scancode_new != DIK_F12)
+ scancode = scancode_new;
+
//write_log ( "keyboard = %d scancode = 0x%02x state = %d\n", keyboard, scancode, newstate );
- if (newstate) {
+ if (newstate && code == 0) {
if (scancode == DIK_F12 || scancode == currprefs.win32_guikey) {
if (ctrlpressed ()) {
switch (scancode)
{
- case DIK_F11:
- if (currprefs.win32_ctrl_F11_is_quit) {
- if (ctrlpressed ())
- code = AKS_QUIT;
- }
- break;
case DIK_F1:
case DIK_F2:
case DIK_F3:
return;
}
- if (!specialpressed () && scancode == DIK_CAPITAL) {
- if (!newstate)
- return;
- capslockstate = capslockstate ? 0 : 1;
- newstate = capslockstate;
+ scancode = scancode_new;
+ if (!specialpressed () && newstate) {
+ if (scancode == DIK_CAPITAL) {
+ host_capslockstate = host_capslockstate ? 0 : 1;
+ capslockstate = host_capslockstate;
+ }
+ if (scancode == DIK_NUMLOCK) {
+ host_numlockstate = host_numlockstate ? 0 : 1;
+ capslockstate = host_numlockstate;
+ }
+ if (scancode == DIK_SCROLL) {
+ host_scrolllockstate = host_scrolllockstate ? 0 : 1;
+ capslockstate = host_scrolllockstate;
+ }
}
if (currprefs.input_selected_setting == 0) {
inputdevice_setkeytranslation (keytrans);
}
+
+int target_checkcapslock (int scancode, int *state)
+{
+ if (scancode != DIK_CAPITAL && scancode != DIK_NUMLOCK && scancode != DIK_SCROLL)
+ return 0;
+ if (*state == 0)
+ return -1;
+ if (scancode == DIK_CAPITAL)
+ *state = host_capslockstate;
+ if (scancode == DIK_NUMLOCK)
+ *state = host_numlockstate;
+ if (scancode == DIK_SCROLL)
+ *state = host_scrolllockstate;
+ return 1;
+}
thp->arg = arg;
hThread = (HANDLE)_beginthreadex (NULL, 0, thread_init, thp, 0, &foo);
if (hThread) {
- if (name)
+ if (name) {
write_log (L"Thread '%s' started (%d)\n", name, hThread);
+ SetThreadPriority (hThread, THREAD_PRIORITY_HIGHEST);
+ }
} else {
result = 0;
write_log (L"Thread '%s' failed to start!?\n", name ? name : L"<unknown>");
void uae_set_thread_priority (uae_thread_id *tid, int pri)
{
+#if 0
int pri2;
HANDLE th;
pri2 = GetThreadPriority (th);
if (pri2 == THREAD_PRIORITY_ERROR_RETURN)
pri2 = 0;
+ if (pri > 0)
+ pri2 = THREAD_PRIORITY_HIGHEST;
+ else
+ pri2 = THREAD_PRIORITY_ABOVE_NORMAL;
pri2 += pri;
if (pri2 > 1)
pri2 = 1;
if (pri2 < -1)
pri2 = -1;
SetThreadPriority (th, pri2);
+#endif
+ if (!SetThreadPriority (GetCurrentThread(), THREAD_PRIORITY_HIGHEST))
+ SetThreadPriority (GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL);
+
}
--- /dev/null
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="prowizard"
+ ProjectGUID="{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}"
+ RootNamespace="prowizard"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\prowizard\include;..\..\include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CallingConvention="2"
+ CompileAs="1"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="c:\dev\lib\prowizard.lib"
+ ModuleDefinitionFile=""
+ ExportNamedFunctions="prowizard_search"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\prowizard\misc\misc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\prowiz.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\misc\testbag.c"
+ >
+ </File>
+ <Filter
+ Name="Rippers"
+ >
+ <File
+ RelativePath="..\..\prowizard\rippers\AC1D_packer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\AMOS-MusicBank.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\AMOS-PowerPackerBank.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\BP-Soundmonitor.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\BSI-FutureComposer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Bytekiller.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ChipTracker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Crunchmania-Address.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Crunchmania-Simple.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\datacrunchers.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\DefjamCruncher32-pro.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\DigiBooster17.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\DigitalIllusion.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\DoubleAction.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Dragpack100.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Dragpack252.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\EurekaPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\FastTracker2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\FC-M-Packer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\FuchsTracker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\FutureComposer13.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\FutureComposer14.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\FuzzacPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\GameMusicCreator.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\GNUPacker12.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\GnuPlayer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\GPMO.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\HeatseekerMC10.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\HornetPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\HQC2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\JamCracker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\KefrensSoundMachine.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\MasterCruncher30-Address.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\MaxPacker12.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\MED-Octamed.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\MegaCruncher-Object.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\MegaCruncher.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\MOD-compatible.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ModuleProtector.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Mugician.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Newtron.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\NewtronOld.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\NoiseFromHeaven.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\NoisePacker1.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\NoisePacker2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\NoisePacker3.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\NoiseRunner.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\NovoTrade.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\PhaPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\PolkaPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\PowerMusic.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\PowerPacker23.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\PowerPacker30.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\PowerPacker40-library.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\PowerPacker40.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Promizer01.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Promizer10c.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Promizer18a.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Promizer20.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Promizer40.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ProPacker10.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ProPacker21.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ProPacker30.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Prorunner10.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\Prorunner20.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\QuadraComposer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\RelokIt10.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SGT-Packer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\skizzo.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SkytPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SoundFX.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SoundTracker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SoundTracker26.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SpikeCruncher.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StartrekkerPack.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StimPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StoneArtsPlayer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StoneCracker270.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StoneCracker299.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StoneCracker299b.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StoneCracker299d.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StoneCracker300.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\StoneCracker310.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SuperCruncher27.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\SyncroPacker46.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TetraPack102.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TetraPack21.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TetraPack22.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TheDarkDemon.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ThePlayer22a.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ThePlayer30a.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ThePlayer40.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ThePlayer41a.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ThePlayer50a.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ThePlayer60a.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ThePlayer61a.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TimeCruncher17.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TitanicsPlayer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TMK.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TNMCruncher.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TrackerPacker1.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TrackerPacker2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TrackerPacker3.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TryItCruncher101.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\TurboSqueezer61.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\UnicTracker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\UnicTracker2.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\WantonPacker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\XannPlayer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\prowizard\rippers\ZenPacker.c"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource."
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (Neutral) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_APPICON ICON "winuae.ico"
-IDI_FLOPPY ICON "35floppy.ico"
-IDI_ABOUT ICON "amigainfo.ico"
-IDI_HARDDISK ICON "Drive.ico"
-IDI_CPU ICON "cpu.ico"
-IDI_GAMEPORTS ICON "joystick.ico"
-IDI_IOPORTS ICON "joystick.ico"
-IDI_INPUT ICON "joystick.ico"
-IDI_MISC1 ICON "misc.ico"
-IDI_MISC2 ICON "misc.ico"
-IDI_MOVE_UP ICON "move_up.ico"
-IDI_MOVE_DOWN ICON "move_dow.ico"
-IDI_AVIOUTPUT ICON "avioutput.ico"
-IDI_DISK ICON "Drive.ico"
-IDI_FOLDER ICON "folder.ico"
-IDI_SOUND ICON "sound.ico"
-IDI_DISPLAY ICON "screen.ico"
-IDI_ROOT ICON "root.ico"
-IDI_MEMORY ICON "chip.ico"
-IDI_QUICKSTART ICON "quickstart.ico"
-IDI_PATHS ICON "paths.ico"
-IDI_DISKIMAGE ICON "diskimage.ico"
-IDI_PORTS ICON "port.ico"
-IDI_CONFIGFILE ICON "configfile.ico"
-IDI_FILE ICON "file.ico"
-IDI_EXPANSION ICON "expansion.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDR_DBGACCEL ACCELERATORS
-BEGIN
- VK_F1, ID_DBG_PAGE1, VIRTKEY, NOINVERT
- VK_F2, ID_DBG_PAGE2, VIRTKEY, NOINVERT
- VK_F3, ID_DBG_PAGE3, VIRTKEY, NOINVERT
- VK_F4, ID_DBG_PAGE4, VIRTKEY, NOINVERT
- VK_F5, ID_DBG_PAGE5, VIRTKEY, NOINVERT
- VK_F6, ID_DBG_PAGE6, VIRTKEY, NOINVERT
- VK_F7, ID_DBG_PAGE7, VIRTKEY, NOINVERT
- VK_F8, ID_DBG_PAGE8, VIRTKEY, NOINVERT
- VK_F9, ID_DBG_PAGE9, VIRTKEY, NOINVERT
- VK_F11, ID_DBG_STEP_OVER, VIRTKEY, NOINVERT
- VK_F12, ID_DBG_STEP_INTO, VIRTKEY, NOINVERT
- VK_DOWN, IDC_DBG_MEMDOWN, VIRTKEY, ALT, NOINVERT
- VK_RIGHT, IDC_DBG_MEMDOWNFAST, VIRTKEY, ALT, NOINVERT
- VK_UP, IDC_DBG_MEMUP, VIRTKEY, ALT, NOINVERT
- VK_LEFT, IDC_DBG_MEMUPFAST, VIRTKEY, ALT, NOINVERT
- "H", IDC_DBG_HELP, VIRTKEY, ALT, NOINVERT
- "P", IDC_DBG_MEMTOPC, VIRTKEY, ALT, NOINVERT
- "A", IDC_DBG_AUTOSET, VIRTKEY, ALT, NOINVERT
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_KICKSTART DIALOGEX 0, 0, 300, 176
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-EXSTYLE WS_EX_CONTEXTHELP
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "System ROM Settings",-1,5,0,290,93
- LTEXT "Main ROM file:",IDC_ROMTEXT,14,13,263,10
- COMBOBOX IDC_ROMFILE,12,26,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_KICKCHOOSER,280,25,10,15
- LTEXT "Extended ROM file:",IDC_ROMFILE2TEXT,14,43,263,10
- COMBOBOX IDC_ROMFILE2,12,56,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_ROMCHOOSER2,280,55,10,15
- CONTROL "MapROM emulation [] Creates a BlizKick-compatible memory area.",IDC_MAPROM,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,77,87,10
- CONTROL "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,77,87,10
- GROUPBOX "Miscellaneous",-1,5,99,290,75
- LTEXT "Cartridge ROM file:",IDC_FLASHTEXT2,12,110,265,10
- COMBOBOX IDC_CARTFILE,12,123,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_CARTCHOOSER,280,122,10,15
- LTEXT "Flash RAM file:",IDC_FLASHTEXT,12,142,265,10
- EDITTEXT IDC_FLASHFILE,12,155,262,13,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_FLASHCHOOSER,280,154,10,15
-END
-
-IDD_DISPLAY DIALOGEX 0, 0, 300, 235
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "Screen",IDC_SCREENRESTEXT,12,0,270,67,BS_LEFT
- COMBOBOX IDC_DISPLAYSELECT,59,10,215,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_RESOLUTION,59,27,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_REFRESHRATE,187,27,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_XSIZE,59,48,48,12,ES_NUMBER
- EDITTEXT IDC_YSIZE,114,48,47,12,ES_NUMBER
- GROUPBOX "Settings",IDC_SETTINGSTEXT,12,73,199,137
- CONTROL "Blacker than black",IDC_BLACKER_THAN_BLACK,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,19,125,92,10
- LTEXT "Refresh:",IDC_REFRESHTEXT,18,173,28,8
- CONTROL "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,168,75,20
- EDITTEXT IDC_RATETEXT,124,172,77,12,ES_CENTER | ES_READONLY
- GROUPBOX "Centering",IDC_STATIC,221,73,61,49
- CONTROL "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,87,49,10
- CONTROL "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,103,49,10
- GROUPBOX "Line Mode",IDC_LINEMODE,222,126,61,84
- CONTROL "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,231,148,44,10
- CONTROL "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,164,45,10
- CONTROL "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,180,46,10
- COMBOBOX IDC_DA_MODE,20,218,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,84,214,101,20
- LTEXT "FPS adj.:",IDC_REFRESH2TEXT,16,193,32,8
- CONTROL "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,188,127,20
- EDITTEXT IDC_RATE2TEXT,175,192,26,12,ES_CENTER | ES_READONLY
- COMBOBOX IDC_RESOLUTIONDEPTH,134,27,46,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,125,89,10
- COMBOBOX IDC_SCREENMODE_NATIVE,100,85,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_SCREENMODE_RTG,100,103,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- RTEXT "Native mode:",IDC_STATIC,19,85,59,15,SS_CENTERIMAGE
- RTEXT "RTG mode:",IDC_STATIC,19,101,59,15,SS_CENTERIMAGE
- PUSHBUTTON "Reset to defaults",IDC_DA_RESET,212,218,73,14
- RTEXT "Resolution:",IDC_STATIC,27,152,59,15,SS_CENTERIMAGE
- COMBOBOX IDC_LORES,100,152,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "Remove interlace artifacts",IDC_FLICKERFIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,139,99,10
- RTEXT "Windowed:",IDC_STATIC,17,46,40,15,SS_CENTERIMAGE
- RTEXT "Fullscreen:",IDC_STATIC,17,19,40,15,SS_CENTERIMAGE
-END
-
-IDD_MEMORY DIALOGEX 0, 0, 300, 158
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-EXSTYLE WS_EX_CONTEXTHELP
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "Memory Settings",-1,14,7,274,69
- RTEXT "Chip:",-1,24,26,20,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_CHIPMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,22,50,20
- EDITTEXT IDC_CHIPRAM,105,25,34,12,ES_CENTER | ES_READONLY
- RTEXT "Slow:",-1,149,26,20,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_SLOWMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,22,60,20
- EDITTEXT IDC_SLOWRAM,243,25,34,12,ES_CENTER | ES_READONLY
- RTEXT "Fast:",IDC_FASTTEXT,24,51,20,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,47,50,20
- EDITTEXT IDC_FASTRAM,105,53,34,12,ES_CENTER | ES_READONLY
- RTEXT "Z3 Fast:",IDC_Z3TEXT,139,51,30,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_Z3FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,47,60,20
- EDITTEXT IDC_Z3FASTRAM,243,50,34,12,ES_CENTER | ES_READONLY
- GROUPBOX "A3000/A4000 Advanced Memory Settings",-1,14,84,274,65
- RTEXT "Motherboard Fast RAM:",-1,40,100,129,10,SS_CENTERIMAGE
- CONTROL "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,181,96,59,20
- EDITTEXT IDC_MBRAM1,244,99,34,12,ES_CENTER | ES_READONLY
- RTEXT "Processor Slot Fast RAM:",-1,40,123,129,10,SS_CENTERIMAGE
- CONTROL "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,181,119,59,20
- EDITTEXT IDC_MBRAM2,244,122,34,12,ES_CENTER | ES_READONLY
-END
-
-IDD_CPU DIALOGEX 0, 0, 300, 241
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- GROUPBOX "CPU",IDC_STATIC,5,1,81,144,BS_LEFT
- CONTROL "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,15,63,10
- CONTROL "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,28,65,10
- CONTROL "68020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,41,63,10
- CONTROL "68030",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,54,64,10
- CONTROL "68040",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,67,66,10
- CONTROL "68060",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,80,66,10
- CONTROL "More compatible [] Emulate 68000's prefetch registers. More compatible but slower.",IDC_COMPATIBLE,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,107,73,8
- CONTROL "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or higher CPU.",IDC_JITENABLE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,119,73,10
- GROUPBOX "CPU Emulation Speed",IDC_STATIC,90,3,205,92
- CONTROL "Fastest possible, but maintain chipset timing",IDC_CS_HOST,
- "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,95,18,195,10
- CONTROL "Match A500 speed",IDC_CS_68000,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,32,195,10
- CONTROL "Adjustable between CPU and chipset",IDC_CS_ADJUSTABLE,
- "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,46,195,10
- CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,71,67,20
- CONTROL "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,71,69,20
- GROUPBOX "Advanced JIT Settings",IDC_STATIC,90,147,205,91
- CONTROL "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,161,115,20
- EDITTEXT IDC_CACHETEXT,255,166,30,12,ES_CENTER | ES_READONLY
- CONTROL "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,194,63,10
- CONTROL "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,208,63,10
- CONTROL "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,222,62,10
- CONTROL "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,168,194,62,10
- CONTROL "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,235,194,52,10
- CONTROL "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,235,208,52,10
- CONTROL "More compatible [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,221,73,10
- GROUPBOX "FPU",IDC_STATIC,5,147,81,90,BS_LEFT
- CONTROL "24-bit addressing",IDC_COMPATIBLE24,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,94,73,8
- CONTROL "None",IDC_FPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,161,63,10
- CONTROL "68881",IDC_FPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,175,63,10
- CONTROL "68882",IDC_FPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,188,63,10
- CONTROL "CPU internal",IDC_FPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,202,63,10
- RTEXT "CPU Frequency",IDC_STATIC,105,119,51,10,SS_CENTERIMAGE
- GROUPBOX "Cycle-exact CPU Emulation Speed",IDC_STATIC,90,99,205,46
- RTEXT "CPU",IDC_STATIC,96,77,17,10,SS_CENTERIMAGE
- RTEXT "Chipset",IDC_STATIC,182,77,26,9,SS_CENTERIMAGE
- RTEXT "CPU Idle",IDC_STATIC,231,60,47,9,SS_CENTERIMAGE
- RTEXT "Cache size:",IDC_STATIC,95,167,42,10,SS_CENTERIMAGE
- CONTROL "68040 MMU [] 68040 MMU emulation. Not compatible with JIT.",IDC_MMUENABLE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,132,73,10
- COMBOBOX IDC_CPU_FREQUENCY,165,118,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_CPU_FREQUENCY2,218,117,70,15
-END
-
-IDD_FLOPPY DIALOGEX 0, 0, 300, 240
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- COMBOBOX IDC_DF0TEXT,2,22,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_DF0TYPE,115,6,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Write-protected",IDC_STATIC,174,8,59,10,SS_CENTERIMAGE
- CONTROL "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,4,10,15
- PUSHBUTTON "Eject",IDC_EJECT0,253,4,30,15
- PUSHBUTTON "...",IDC_DF0,287,4,10,15
- COMBOBOX IDC_DF1TEXT,2,58,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_DF1TYPE,115,42,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Write-protected",IDC_STATIC,174,43,59,10,SS_CENTERIMAGE
- CONTROL "",IDC_DF1WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,40,10,15
- PUSHBUTTON "Eject",IDC_EJECT1,253,40,30,15
- PUSHBUTTON "...",IDC_DF1,287,40,10,15
- COMBOBOX IDC_DF2TEXT,2,93,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_DF2TYPE,115,77,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Write-protected",IDC_STATIC,174,77,59,10,SS_CENTERIMAGE
- CONTROL "",IDC_DF2WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,75,9,15
- PUSHBUTTON "Eject",IDC_EJECT2,253,75,30,15
- PUSHBUTTON "...",IDC_DF2,287,75,10,15
- COMBOBOX IDC_DF3TEXT,2,128,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_DF3TYPE,115,112,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Write-protected",IDC_STATIC,174,113,59,10,SS_CENTERIMAGE
- CONTROL "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,111,9,15
- PUSHBUTTON "Eject",IDC_EJECT3,253,110,30,15
- PUSHBUTTON "...",IDC_DF3,287,109,10,15
- GROUPBOX "New Floppy Disk Image",IDC_SETTINGSTEXT,5,183,289,49
- COMBOBOX IDC_FLOPPYTYPE,12,197,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,81,196,97,15
- PUSHBUTTON "Create Custom Disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,187,196,101,15
- GROUPBOX "Floppy Drive Emulation Speed",IDC_SETTINGSTEXT2,5,144,289,35
- CONTROL "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,154,116,20
- EDITTEXT IDC_FLOPPYSPDTEXT,183,157,101,12,ES_CENTER | ES_READONLY
- PUSHBUTTON "Delete save image",IDC_SAVEIMAGE0,43,5,70,15,NOT WS_VISIBLE
- PUSHBUTTON "Delete save image",IDC_SAVEIMAGE1,43,40,70,15,NOT WS_VISIBLE
- PUSHBUTTON "Delete save image",IDC_SAVEIMAGE2,43,75,70,15,NOT WS_VISIBLE
- PUSHBUTTON "Delete save image",IDC_SAVEIMAGE3,43,110,70,15,NOT WS_VISIBLE
- EDITTEXT IDC_CREATE_NAME,81,215,97,13,ES_AUTOHSCROLL
- RTEXT "Disk label:",IDC_STATIC,15,216,52,10,SS_CENTERIMAGE
- CONTROL "DF0:",IDC_DF0ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,6,34,15
- CONTROL "DF1:",IDC_DF1ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,41,34,15
- CONTROL "DF2:",IDC_DF2ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,76,34,15
- CONTROL "DF3:",IDC_DF3ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,111,34,15
-END
-
-IDD_HARDDISK DIALOGEX 0, 0, 300, 237
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-EXSTYLE WS_EX_CONTEXTHELP
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- CONTROL "List1",IDC_VOLUMELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,0,290,167
- PUSHBUTTON "Add &Directory or Archive...",IDC_NEW_FS,10,171,103,15
- PUSHBUTTON "Add &Hardfile...",IDC_NEW_HF,130,171,74,15
- PUSHBUTTON "Add Ha&rd Drive...",IDC_NEW_HD,220,171,75,15
- PUSHBUTTON "Remove",IDC_REMOVE,235,193,60,15
- PUSHBUTTON "&Properties",IDC_EDIT,235,210,60,15
- CONTROL "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,192,100,10
- CONTROL "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,192,119,10
- CONTROL "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,203,121,10
- CONTROL "Include network drives..",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,226,101,10
- CONTROL "Include CD/DVD drives..",IDC_MAPDRIVES_CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,215,100,10
- CONTROL "Automount removable drives",IDC_MAPDRIVES_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,215,115,10
- CONTROL "Include removable drives..",IDC_MAPDRIVES_REMOVABLE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,203,100,10
-END
-
-IDD_SOUND DIALOGEX 0, 0, 300, 237
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- COMBOBOX IDC_SOUNDCARDLIST,5,3,291,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Sound Emulation",IDC_SOUNDSETTINGS,5,20,120,85
- CONTROL "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,35,101,10
- CONTROL "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,48,102,10
- CONTROL "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,61,102,10
- CONTROL "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,74,101,10
- GROUPBOX "Volume",IDC_STATIC,132,36,164,31
- CONTROL "",IDC_SOUNDVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,44,105,20
- EDITTEXT IDC_SOUNDVOLUME2,247,47,40,12,ES_CENTER | ES_READONLY
- GROUPBOX "Sound Buffer Size",IDC_STATIC,132,73,164,31
- CONTROL "Slider1",IDC_SOUNDBUFFERRAM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,81,105,19
- EDITTEXT IDC_SOUNDBUFFERMEM,247,84,40,12,ES_CENTER | ES_READONLY
- GROUPBOX "Settings",IDC_SOUNDINTERPOLATION2,6,106,290,60
- LTEXT "Frequency:",IDC_SOUNDFREQTXT,11,140,53,8,SS_CENTERIMAGE
- COMBOBOX IDC_SOUNDFREQ,13,149,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
- LTEXT "Audio filter:",IDC_SOUNDFILTERTXT,209,140,77,8,SS_CENTERIMAGE
- COMBOBOX IDC_SOUNDFILTER,209,149,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "Channel mode:",IDC_SOUNDSTEREOTXT,11,116,57,8,SS_CENTERIMAGE
- COMBOBOX IDC_SOUNDSTEREO,13,125,122,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,116,75,8,SS_CENTERIMAGE
- COMBOBOX IDC_SOUNDINTERPOLATION,209,125,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,116,63,8,SS_CENTERIMAGE
- COMBOBOX IDC_SOUNDSTEREOSEP,142,125,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "Stereo delay:",IDC_SOUNDSTEREOMIXTXT,141,140,63,8,SS_CENTERIMAGE
- COMBOBOX IDC_SOUNDSTEREOMIX,142,149,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Floppy Drive Sound Emulation",IDC_STATIC,6,172,220,60
- CONTROL "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,186,107,19
- EDITTEXT IDC_SOUNDDRIVEVOLUME2,124,188,40,12,ES_CENTER | ES_READONLY
- COMBOBOX IDC_SOUNDDRIVE,173,187,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_SOUNDDRIVESELECT,18,209,202,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_SOUNDSWAP,73,149,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "Swap channels:",IDC_SOUNDSWAPTXT,74,140,61,8,SS_CENTERIMAGE
- CONTROL "Automatic switching",IDC_SOUND_AUTO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,89,103,10
- CONTROL "Exclusive mode",IDC_SOUND_EXCLUSIVE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,137,25,154,10
- CONTROL "DirectSound",IDC_SOUND_DS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,181,55,10
- CONTROL "WASAPI",IDC_SOUND_WASAPI,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,193,53,10
- CONTROL "OpenAL",IDC_SOUND_OPENAL,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,205,53,10
- CONTROL "PortAudio",IDC_SOUND_PORTAUDIO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,217,58,10
- GROUPBOX "Drivers",IDC_STATIC,230,172,66,60
-END
-
-IDD_LOADSAVE DIALOGEX 0, 0, 302, 241
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- CONTROL "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,6,3,289,153,WS_EX_CLIENTEDGE
- RTEXT "Name:",IDC_STATIC,4,161,40,15,SS_CENTERIMAGE
- EDITTEXT IDC_EDITNAME,48,162,146,13,ES_AUTOHSCROLL
- RTEXT "Description:",IDC_STATIC,2,182,41,15,SS_CENTERIMAGE
- EDITTEXT IDC_EDITDESCRIPTION,48,183,146,13,ES_AUTOHSCROLL
- RTEXT "Link:",IDC_STATIC,4,204,40,15,SS_CENTERIMAGE
- COMBOBOX IDC_CONFIGLINK,48,205,93,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,207,48,10
- EDITTEXT IDC_EDITPATH,199,161,49,15,ES_AUTOHSCROLL | WS_DISABLED
- CONTROL "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,253,163,42,10
- GROUPBOX "Additional Information",IDC_STATIC,199,179,96,38,BS_LEFT
- PUSHBUTTON "View",IDC_VIEWINFO,208,195,37,15
- PUSHBUTTON "Set",IDC_SETINFO,250,195,37,15
- PUSHBUTTON "Load",IDC_QUICKLOAD,5,225,44,15
- PUSHBUTTON "Save",IDC_QUICKSAVE,54,225,44,15
- PUSHBUTTON "Load From...",IDC_LOAD,121,225,49,15
- PUSHBUTTON "Delete",IDC_DELETE,251,225,44,15
- PUSHBUTTON "Save As...",IDC_SAVE,175,225,44,15
-END
-
-IDD_IOPORTS DIALOGEX 0, 0, 300, 228
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "Parallel Port",IDC_STATIC,5,2,291,86
- RTEXT "Printer:",IDC_STATIC,12,15,25,15,SS_CENTERIMAGE
- COMBOBOX IDC_PRINTERLIST,49,15,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Flush print job",IDC_FLUSHPRINTER,114,51,58,12
- RTEXT "Autoflush [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,176,49,76,15,SS_NOTIFY | SS_CENTERIMAGE
- EDITTEXT IDC_PRINTERAUTOFLUSH,255,50,25,12,ES_NUMBER
- RTEXT "Type:",IDC_STATIC,15,33,21,15,SS_CENTERIMAGE
- EDITTEXT IDC_PS_PARAMS,114,67,167,12,ES_AUTOHSCROLL
- GROUPBOX "Serial Port",IDC_STATIC,4,92,292,48
- COMBOBOX IDC_SERIAL,49,104,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,15,123,48,12
- CONTROL "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,75,123,55,12
- RTEXT "Out:",IDC_MIDI,10,154,34,15,SS_CENTERIMAGE
- COMBOBOX IDC_MIDIOUTLIST,49,154,232,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "In:",IDC_MIDI2,10,174,29,15,SS_CENTERIMAGE
- COMBOBOX IDC_MIDIINLIST,49,174,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Direct []Use when emulating serial-link games on two PCs running WinUAE",IDC_SER_DIRECT,
- "Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,135,123,65,12
- CONTROL "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,200,123,78,12
- COMBOBOX IDC_PRINTERTYPELIST,49,33,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Ghostscript extra parameters:",IDC_STATIC,10,66,102,15,SS_CENTERIMAGE
- GROUPBOX "MIDI",IDC_STATIC,5,143,291,51,BS_LEFT
- GROUPBOX "Protection Dongle",IDC_STATIC,5,197,292,30,BS_LEFT
- COMBOBOX IDC_DONGLELIST,50,208,232,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_GAMEPORTS DIALOGEX 0, 0, 300, 236
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- COMBOBOX IDC_PORT0_JOYS,45,29,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_PORT1_JOYS,45,65,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Swap port 0 and 1",IDC_SWAP,194,101,93,14
- RTEXT "Port 0:",IDC_STATIC,11,28,25,15,SS_CENTERIMAGE
- RTEXT "Port 1:",IDC_STATIC,11,64,25,15,SS_CENTERIMAGE
- LTEXT "X-Arcade layout information []#1",IDC_STATIC,64,87,106,15,SS_NOTIFY | SS_CENTERIMAGE
- GROUPBOX "Mouse and Joystick settings",IDC_STATIC,4,15,292,148
- GROUPBOX "Mouse extra settings",IDC_STATIC,4,165,292,69
- RTEXT "Mouse speed:",IDC_STATIC,17,180,56,10,SS_CENTERIMAGE
- EDITTEXT IDC_INPUTSPEEDM,87,180,25,12,ES_NUMBER
- CONTROL "Install virtual mouse driver",IDC_PORT_TABLET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,187,120,10
- CONTROL "Full tablet input emulation",IDC_PORT_TABLET_FULL,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,220,121,10
- CONTROL "Magic Mouse",IDC_PORT_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,175,119,10
- COMBOBOX IDC_PORT_TABLET_CURSOR,167,201,119,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Magic Mouse cursor mode:",IDC_STATIC,17,204,138,10,SS_CENTERIMAGE
- COMBOBOX IDC_PORT0_JOYSMODE,195,47,91,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_PORT1_JOYSMODE,195,82,91,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_PORT2_JOYS,45,125,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "Parallel port joystick adapter",IDC_STATIC,10,105,147,15,SS_CENTERIMAGE
- COMBOBOX IDC_PORT3_JOYS,45,143,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_CONTRIBUTORS DIALOGEX 0, 0, 411, 242
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION
-CAPTION "UAE Authors and Contributors..."
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "Ok",ID_OK,177,224,53,14
- CONTROL "",IDC_CONTRIBUTORS,"RICHEDIT",TCS_HOTTRACK | TCS_VERTICAL | TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,4,5,404,214
-END
-
-IDD_ABOUT DIALOGEX 0, 0, 300, 191
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- CONTROL "",IDC_RICHEDIT1,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,45,10,210,15
- CONTROL "",IDC_RICHEDIT2,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,30,260,13
- PUSHBUTTON "Contributors",IDC_CONTRIBUTORS,110,55,80,15
- CONTROL "",IDC_UAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,120,80,15
- CONTROL "",IDC_PICASSOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,90,80,20
- CONTROL "",IDC_AMIGAHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,109,90,80,20
- CONTROL "",IDC_WINUAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,120,80,15
- CONTROL "",IDC_AIABHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,120,80,15
- CONTROL "",IDC_THEROOTS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,145,80,15
- CONTROL "",IDC_CAPS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,145,80,15
- CONTROL "",IDC_ABIME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,145,80,15
- CONTROL "",IDC_CLOANTOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,90,80,20
- CONTROL "",IDC_AMIGASYS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,63,169,80,15
- CONTROL "",IDC_AMIKIT,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,157,169,80,15
-END
-
-IDD_MISC1 DIALOGEX 0, 0, 300, 237
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "Miscellaneous Options",IDC_STATIC,8,2,290,136
- CONTROL "Untrap = middle button",IDC_JULIAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,19,110,10
- CONTROL "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,31,109,10
- CONTROL "Native On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,141,80,109,10
- CONTROL "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,56,109,10
- CONTROL "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,43,110,10
- GROUPBOX "Keyboard LEDs",IDC_STATIC,7,140,85,94
- COMBOBOX IDC_KBLED1,22,154,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_KBLED2,22,173,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_KBLED3,22,193,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Logging",IDC_STATIC,97,140,202,25
- CONTROL "Create log file",IDC_CREATELOGFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,151,72,10
- CONTROL "Illegal memory accesses",IDC_ILLEGAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,189,151,95,10
- GROUPBOX "State Files",IDC_STATIC,98,167,201,68
- PUSHBUTTON "Load state...",IDC_DOLOADSTATE,105,180,49,14
- PUSHBUTTON "Save state...",IDC_DOSAVESTATE,105,208,49,14
- CONTROL "Enable state recording",IDC_STATE_CAPTURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,182,88,10
- RTEXT "Recording rate (seconds):",IDC_STATIC,157,199,86,10,SS_CENTERIMAGE | WS_TABSTOP
- COMBOBOX IDC_STATE_RATE,248,197,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
- RTEXT "Recording buffer (MB):",IDC_STATIC,160,219,83,10,SS_CENTERIMAGE | WS_TABSTOP
- COMBOBOX IDC_STATE_BUFFERSIZE,248,217,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
- CONTROL "Always on top",IDC_ALWAYSONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,69,110,10
- CONTROL "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,216,64,10
- COMBOBOX IDC_SCSIMODE,213,30,80,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_LANGUAGE,153,117,122,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Language",IDC_STATIC,138,107,154,27
- CONTROL "Disable screensaver",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,82,109,10
- COMBOBOX IDC_DD_SURFACETYPE,213,63,79,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- RTEXT "DirectDraw display buffer:",IDC_STATIC,195,50,92,10,SS_CENTERIMAGE
- RTEXT "SCSI and CD/DVD access method:",IDC_STATIC,151,12,126,10,SS_CENTERIMAGE
- CONTROL "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,95,111,10
- CONTROL "Faster RTG [] Enables less accurate custom chipset emulation mode when Picasso96 is enabled.",IDC_FASTERRTG,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,19,108,100,10
- CONTROL "RTG On-screen LEDs",IDC_SHOWLEDSRTG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,141,93,109,10
-END
-
-IDD_HARDFILE DIALOGEX 0, 0, 299, 249
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Hardfile Settings"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- GROUPBOX "Settings",IDC_STATIC,10,5,280,146
- RTEXT "Path:",IDC_HARDFILE_DIR_TEXT,25,18,22,10
- EDITTEXT IDC_PATH_NAME,52,15,213,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_SELECTOR,271,15,11,15
- RTEXT "FileSys:",IDC_HARDFILE_FILESYS_TEXT,13,38,34,10
- EDITTEXT IDC_PATH_FILESYS,52,35,213,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_FILESYS_SELECTOR,271,35,11,15
- RTEXT "Device:",IDC_HARDFILE_DEVICE_TEXT,16,58,31,10
- EDITTEXT IDC_HARDFILE_DEVICE,52,55,66,15,ES_AUTOHSCROLL
- RTEXT "Boot priority:",IDC_HARDFILE_BOOTPRI_TEXT,20,94,48,8
- EDITTEXT IDC_HARDFILE_BOOTPRI,73,90,44,15
- CONTROL "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,74,64,10
- PUSHBUTTON "Enable RDB mode",IDC_HDF_RDB,174,55,92,14
- RTEXT "Surfaces:",IDC_SURFACES_TEXT,118,94,32,10
- EDITTEXT IDC_HEADS,155,90,40,15,ES_NUMBER
- RTEXT "Reserved:",IDC_RESERVED_TEXT,197,94,35,10
- EDITTEXT IDC_RESERVED,237,90,40,15,ES_NUMBER
- RTEXT "Sectors:",IDC_SECTORS_TEXT,120,113,30,10
- EDITTEXT IDC_SECTORS,155,111,40,15,ES_NUMBER
- RTEXT "Block size:",IDC_BLOCKSIZE_TEXT,197,113,35,10
- EDITTEXT IDC_BLOCKSIZE,237,111,40,15,ES_NUMBER
- GROUPBOX "New hard disk image file",IDC_STATIC,10,156,280,62
- PUSHBUTTON "Create",IDC_HF_CREATE,23,171,80,14
- EDITTEXT IDC_HF_SIZE,119,171,61,15,ES_NUMBER
- PUSHBUTTON "OK",IDOK,102,226,50,14
- PUSHBUTTON "Cancel",IDCANCEL,158,226,50,14
- EDITTEXT IDC_HF_DOSTYPE,119,194,61,15
- COMBOBOX IDC_HF_TYPE,23,195,80,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_HDF_CONTROLLER,73,112,44,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- RTEXT "DOS type",IDC_STATIC,187,196,32,10,SS_CENTERIMAGE
- RTEXT "MB",IDC_STATIC,185,174,17,10,SS_CENTERIMAGE
- RTEXT "HD Controller:",IDC_STATIC,16,113,52,10,SS_CENTERIMAGE
- CONTROL "Bootable",IDC_HDF_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,136,74,53,10
- CONTROL "Do not mount",IDC_HDF_DONOTMOUNT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,217,74,67,10
- EDITTEXT IDC_HDFINFO,16,131,268,12,ES_CENTER | ES_READONLY
- CONTROL "Sparse file",IDC_HF_SPARSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,168,62,10
- CONTROL "Dynamic HDF",IDC_HF_DYNAMIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,180,62,10
-END
-
-IDD_FILESYS DIALOGEX 15, 25, 299, 111
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Volume Settings"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- LTEXT "Device name:",-1,11,7,54,10
- EDITTEXT IDC_VOLUME_DEVICE,65,5,104,15,ES_AUTOHSCROLL
- LTEXT "Volume label:",-1,13,28,54,10
- EDITTEXT IDC_VOLUME_NAME,65,25,104,15,ES_AUTOHSCROLL
- LTEXT "Path:",-1,38,49,44,10
- EDITTEXT IDC_PATH_NAME,65,46,227,15,ES_AUTOHSCROLL
- PUSHBUTTON "Select Directory",IDC_FS_SELECT_DIR,65,66,103,15
- CONTROL "Read/write",IDC_FS_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,7,55,10
- RTEXT "Boot priority:",IDC_VOLUME_BOOTPRI_TEXT,178,28,49,8
- EDITTEXT IDC_VOLUME_BOOTPRI,236,25,30,15
- PUSHBUTTON "OK",IDOK,65,91,48,15
- PUSHBUTTON "Cancel",IDCANCEL,120,91,48,15
- PUSHBUTTON "Select Archive or Plain File",IDC_FS_SELECT_FILE,190,66,103,15
- PUSHBUTTON "Eject",IDC_FS_SELECT_EJECT,230,91,62,15
- CONTROL "Bootable",IDC_FS_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,236,7,53,10
-END
-
-IDD_SETINFO DIALOGEX 0, 0, 229, 85
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Additional Information Settings"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- RTEXT "Path:",-1,5,20,24,15,SS_CENTERIMAGE
- EDITTEXT IDC_PATH_NAME,35,20,169,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_SELECTOR,210,20,10,15
- PUSHBUTTON "OK",IDOK,120,65,48,15
- PUSHBUTTON "Cancel",IDCANCEL,175,65,48,15
-END
-
-IDD_CHIPSET DIALOGEX 0, 65490, 300, 229
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- GROUPBOX "Chipset",IDC_STATIC,14,11,145,90
- CONTROL "OCS [] Original chipset. A1000 and most A500s.",IDC_OCS,
- "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,26,51,10
- CONTROL "ECS Agnus [] Enhanced chipset (ECS Agnus chip only). CDTV and later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,42,55,10
- CONTROL "ECS Denise [] Enhanced chipset (ECS Denise chip only). Normally paired with ECS Agnus.",IDC_ECS_DENISE,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,42,55,10
- CONTROL "Full ECS [] Full ECS chipset (ECS Agnus and ECS Denise chips). A500+, A600 and A3000.",IDC_ECS,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,58,52,10
- CONTROL "AGA [] Advanced Graphics Architecture chipset. A1200, A4000 and CD32.",IDC_AGA,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,26,51,10
- CONTROL "NTSC [] North American and Japanese display standard, 60Hz refresh rate. Other countries use PAL (50Hz. display refresh rate)",IDC_NTSC,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,58,50,10
- GROUPBOX "Options",IDC_STATIC,168,11,114,89
- CONTROL "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,179,33,96,10
- CONTROL "Cycle-exact [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,179,46,100,10
- GROUPBOX "Collision Level",IDC_STATIC,14,105,267,48
- CONTROL "None [] Collision hardware emulation disabled.",IDC_COLLISION0,
- "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,121,59,10
- CONTROL "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,137,62,10
- CONTROL "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,121,161,10
- CONTROL "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3,
- "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,137,119,10
- GROUPBOX "Sound Emulation",IDC_STATIC,13,159,268,65
- CONTROL "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,175,102,10
- CONTROL "Emulated",IDC_CS_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,190,91,10
- CONTROL "Emulated, 100% accurate",IDC_CS_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,205,95,10
- CONTROL "Genlock connected [] Allow boot sequence to detect genlock. Genlock is not emulated.",IDC_GENLOCK,
- "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,179,59,100,10
- COMBOBOX IDC_CS_EXT,100,80,49,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Chipset Extra",IDC_STATIC,25,79,52,15,SS_CENTERIMAGE
-END
-
-IDD_CHIPSET2 DIALOGEX 0, 65490, 300, 247
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- GROUPBOX "Battery Backed Up Real Time Clock",IDC_STATIC,11,24,275,29
- CONTROL "None",IDC_CS_RTC1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,36,55,10
- CONTROL "MSM6242B",IDC_CS_RTC2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,36,52,10
- CONTROL "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,159,36,46,10
- EDITTEXT IDC_CS_RTCADJUST,215,34,64,13,ES_AUTOHSCROLL
- GROUPBOX "CIA-A TOD Clock Source",IDC_STATIC,11,56,275,29
- CONTROL "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,68,63,10
- CONTROL "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,68,85,10
- CONTROL "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,186,68,88,10
- CONTROL "ROM Mirror (A8)",IDC_CS_KSMIRROR_A8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,146,80,10
- CONTROL "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,95,88,10
- CONTROL "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,108,76,10
- CONTROL "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,108,87,10
- CONTROL "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,108,84,10
- CONTROL "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,121,47,10
- CONTROL "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,120,87,10
- CONTROL "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,120,90,10
- CONTROL "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,133,79,10
- CONTROL "A4000/A4000T IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,133,88,10
- CONTROL "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,216,71,10
- EDITTEXT IDC_CS_RAMSEYREV,91,214,45,13,ES_AUTOHSCROLL
- CONTROL "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,229,71,10
- EDITTEXT IDC_CS_FATGARYREV,91,228,45,13,ES_AUTOHSCROLL
- CONTROL "A3000 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,188,76,10
- CONTROL "Compatible Settings",IDC_CS_COMPATIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,8,234,10
- CONTROL "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,95,92,10
- CONTROL "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,216,81,10
- EDITTEXT IDC_CS_AGNUSREV,232,214,45,13,ES_AUTOHSCROLL
- CONTROL "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,229,81,10
- EDITTEXT IDC_CS_DENISEREV,232,228,45,13,ES_AUTOHSCROLL
- CONTROL "A590/A2091 SCSI",IDC_CS_A2091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,188,76,10
- CONTROL "A4000T SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,188,88,10
- LTEXT "A4091/A4000T SCSI not yet implemented.",IDC_STATIC,17,174,159,8,SS_CENTERIMAGE
- CONTROL "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,133,92,10
- CONTROL "A4091 SCSI",IDC_CS_A4091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,200,76,10
- CONTROL "CDTV SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,200,76,10
- CONTROL "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,200,101,10
- CONTROL "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,146,92,10
- CONTROL "ROM Mirror (E0)",IDC_CS_KSMIRROR_E0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,146,80,10
- CONTROL "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,95,80,10
- CONTROL "KB Reset Warning",IDC_CS_RESETWARNING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,159,80,10
- CONTROL "No-EHB Denise",IDC_CS_NOEHB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,159,80,10
- CONTROL "Blitter Busy Bug",IDC_CS_BLITTERBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,159,80,10
-END
-
-IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 217
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "Output Properties",IDC_STATIC,5,0,274,126
- EDITTEXT IDC_AVIOUTPUT_FILETEXT,15,15,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE
- PUSHBUTTON "...",IDC_AVIOUTPUT_FILE,249,15,19,12
- CONTROL "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,33,39,14
- CONTROL "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,34,209,13
- CONTROL "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,39,14
- CONTROL "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,51,209,13
- CONTROL "Disable frame rate limit",IDC_AVIOUTPUT_FRAMELIMITER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,71,122,10
- CONTROL "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14
- PUSHBUTTON "Save screenshot",IDC_SCREENSHOT,16,141,77,14
- GROUPBOX "Ripper",IDC_STATIC,5,127,274,49
- PUSHBUTTON "Pro Wizard 1.62",IDC_PROWIZARD,192,141,77,14,WS_DISABLED
- CONTROL "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,159,77,14
- GROUPBOX "Input Recorder",IDC_STATIC,5,178,274,33
- CONTROL "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,190,77,14
- CONTROL "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,190,77,14
- CONTROL "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,192,78,10
- CONTROL "Disable sound output",IDC_AVIOUTPUT_NOSOUNDOUTPUT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,88,123,10
- CONTROL "Disable sound sync",IDC_AVIOUTPUT_NOSOUNDSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,88,120,10
- CONTROL "Capture before filtering",IDC_AVIOUTPUT_ORIGINALSIZE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,71,120,10
- CONTROL "Take screenshot before filtering",IDC_SCREENSHOT_ORIGINALSIZE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,160,162,10
-END
-
-IDD_INPUT DIALOGEX 0, 0, 300, 242
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- COMBOBOX IDC_INPUTTYPE,5,5,98,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_INPUTDEVICE,109,5,167,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "",IDC_INPUTDEVICEDISABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,282,8,9,8
- CONTROL "List1",IDC_INPUTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,22,290,146
- COMBOBOX IDC_INPUTAMIGACNT,5,174,24,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_INPUTAMIGA,33,174,262,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- RTEXT "Joystick dead zone (%):",-1,7,196,79,10,SS_CENTERIMAGE
- EDITTEXT IDC_INPUTDEADZONE,92,195,25,12,ES_NUMBER
- RTEXT "Autofire rate (frames):",-1,10,212,76,10,SS_CENTERIMAGE
- EDITTEXT IDC_INPUTAUTOFIRERATE,92,210,25,12,ES_NUMBER
- RTEXT "Digital joy-mouse speed:",-1,124,196,84,10,SS_CENTERIMAGE
- EDITTEXT IDC_INPUTSPEEDD,215,195,25,12,ES_NUMBER
- RTEXT "Analog joy-mouse speed:",-1,120,212,88,10,SS_CENTERIMAGE
- EDITTEXT IDC_INPUTSPEEDA,215,211,25,12,ES_NUMBER
- PUSHBUTTON "Copy from:",IDC_INPUTCOPY,249,195,45,14
- COMBOBOX IDC_INPUTCOPYFROM,249,211,45,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Swap 1<>2",IDC_INPUTSWAP,249,226,45,14
-END
-
-IDD_FILTER DIALOGEX 0, 0, 296, 241
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "Filter Settings",-1,0,1,294,199
- COMBOBOX IDC_FILTERMODE,20,15,103,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FILTERFILTER,132,15,83,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Reset to defaults",IDC_FILTERDEFAULT,221,15,67,14
- RTEXT "Horiz. size:",-1,7,61,46,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,54,152,19
- EDITTEXT IDC_FILTERHZV,253,56,34,12,ES_CENTER | ES_READONLY
- RTEXT "Vert. size:",-1,7,81,46,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,74,152,19
- EDITTEXT IDC_FILTERVZV,253,76,34,12,ES_CENTER | ES_READONLY
- RTEXT "Horiz. position:",-1,5,101,55,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,94,151,19
- EDITTEXT IDC_FILTERHOV,253,96,34,12,ES_CENTER | ES_READONLY
- RTEXT "Vert. position:",-1,5,120,55,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,114,151,19
- EDITTEXT IDC_FILTERVOV,253,116,34,12,ES_CENTER | ES_READONLY
- RTEXT "Extra settings:",-1,105,135,57,10,SS_CENTERIMAGE
- CONTROL "Slider1",IDC_FILTERXL,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,174,151,19
- EDITTEXT IDC_FILTERXLV,253,176,34,12,ES_CENTER | ES_READONLY
- COMBOBOX IDC_FILTERSLR,253,151,33,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Presets",-1,0,203,296,36
- COMBOBOX IDC_FILTERPRESETS,8,217,119,150,CBS_DROPDOWN | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Load",IDC_FILTERPRESETLOAD,132,216,47,14
- PUSHBUTTON "Save",IDC_FILTERPRESETSAVE,184,216,47,14
- PUSHBUTTON "Delete",IDC_FILTERPRESETDELETE,236,216,47,14
- COMBOBOX IDC_FILTERHZMULT,59,60,35,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FILTERVZMULT,59,80,35,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FILTERXTRA,105,151,138,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FILTERASPECT,14,151,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "Keep aspect ratio",IDC_FILTERKEEPASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,168,85,10
- RTEXT "Automatic scaling:",-1,9,38,79,10,SS_CENTERIMAGE
- COMBOBOX IDC_FILTERAUTOSCALE,105,36,140,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_FILTERASPECT2,14,180,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_HARDDRIVE DIALOGEX 0, 0, 380, 76
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Harddrive Settings"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- LTEXT "Hard drive:",IDC_STATIC,7,11,80,10
- COMBOBOX IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,51,55,10
- DEFPUSHBUTTON "Add hard drive",IDOK,231,48,65,14
- PUSHBUTTON "Cancel",IDCANCEL,319,48,54,14
- DEFPUSHBUTTON "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,115,14
- EDITTEXT IDC_PATH_NAME,183,27,97,15,ES_AUTOHSCROLL | NOT WS_VISIBLE
- COMBOBOX IDC_HDF_CONTROLLER,102,50,41,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- RTEXT "HD Controller:",IDC_STATIC,42,51,52,10,SS_CENTERIMAGE
-END
-
-IDD_MISC2 DIALOGEX 0, 0, 300, 244
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "When Active",IDC_STATIC,8,7,88,73
- RTEXT "Run at priority:",IDC_ACTIVE_PRI,14,17,52,10,SS_CENTERIMAGE | WS_TABSTOP
- COMBOBOX IDC_ACTIVE_PRIORITY,14,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "When Inactive",IDC_STATIC,102,7,92,73
- RTEXT "Run at priority:",IDC_INACTIVE_PRI,109,17,51,10,SS_CENTERIMAGE | WS_TABSTOP
- COMBOBOX IDC_INACTIVE_PRIORITY,109,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Pause emulation",IDC_INACTIVE_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,50,69,10
- CONTROL "Disable sound",IDC_INACTIVE_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,63,79,10
- GROUPBOX "When Minimized",IDC_STATIC,199,7,92,73
- RTEXT "Run at priority:",IDC_MINIMIZED_PRI,207,18,51,10,SS_CENTERIMAGE | WS_TABSTOP
- COMBOBOX IDC_MINIMIZED_PRIORITY,207,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Pause emulation",IDC_MINIMIZED_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,50,69,10
- CONTROL "Disable sound",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10
- CONTROL "",IDC_ASSOCIATELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,19,94,164,100
- GROUPBOX "File Extension Associations",IDC_STATIC,8,83,186,138
- PUSHBUTTON "Deassociate all",IDC_ASSOCIATE_OFF,108,200,75,14
- PUSHBUTTON "Associate all",IDC_ASSOCIATE_ON,19,200,75,14
-END
-
-IDD_DISK DIALOGEX 0, 0, 300, 242
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_CONTROL | DS_CENTER | DS_CENTERMOUSE | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- CONTROL "",IDC_DISKLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,4,6,292,196
- PUSHBUTTON "Remove floppy disk image",IDC_DISKLISTREMOVE,156,223,101,15
- COMBOBOX IDC_DISKTEXT,3,205,293,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Insert floppy disk image",IDC_DISKLISTINSERT,41,223,101,15
-END
-
-IDD_PANEL DIALOGEX 0, 0, 420, 278
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_ACCEPTFILES | WS_EX_CONTROLPARENT
-CAPTION "WinUAE Properties"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- GROUPBOX "",IDC_PANEL_FRAME,112,4,303,247,NOT WS_VISIBLE
- CONTROL "",IDC_PANELTREE,"SysTreeView32",TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_NOSCROLL | WS_BORDER | WS_HSCROLL | WS_TABSTOP,5,5,101,248,WS_EX_CLIENTEDGE
- GROUPBOX "",IDC_PANEL_FRAME_OUTER,110,2,307,251
- PUSHBUTTON "Reset",IDC_RESETAMIGA,5,259,47,14
- PUSHBUTTON "Quit",IDC_QUITEMU,55,259,47,14
- DEFPUSHBUTTON "OK",IDOK,260,259,50,14
- PUSHBUTTON "Cancel",IDCANCEL,313,259,50,14
- PUSHBUTTON "Help",IDHELP,366,259,50,14,WS_DISABLED
- PUSHBUTTON "Restart",IDC_RESTARTEMU,106,259,47,14,NOT WS_VISIBLE
-END
-
-IDD_PATHS DIALOGEX 0, 0, 300, 243
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- LTEXT "System ROMs:",IDC_PATHS_ROML,14,4,260,8,SS_CENTERIMAGE
- EDITTEXT IDC_PATHS_ROM,14,15,261,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_PATHS_ROMS,281,15,11,15
- LTEXT "Configuration files:",IDC_PATHS_CONFIGL,14,32,121,8,SS_CENTERIMAGE
- EDITTEXT IDC_PATHS_CONFIG,14,42,261,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_PATHS_CONFIGS,281,42,11,15
- LTEXT "Screenshots:",IDC_PATHS_SCREENSHOTL,14,59,260,8,SS_CENTERIMAGE
- EDITTEXT IDC_PATHS_SCREENSHOT,14,69,261,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_PATHS_SCREENSHOTS,281,69,11,15
- LTEXT "State files:",IDC_PATHS_STATEFILEL,14,86,260,8,SS_CENTERIMAGE
- EDITTEXT IDC_PATHS_SAVESTATE,14,96,261,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_PATHS_SAVESTATES,281,96,11,15
- LTEXT "Videos:",IDC_PATHS_AVIOUTPUTL,14,113,260,8,SS_CENTERIMAGE
- EDITTEXT IDC_PATHS_AVIOUTPUT,14,123,261,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_PATHS_AVIOUTPUTS,281,123,11,15
- LTEXT "Saveimages:",IDC_PATHS_SAVEIMAGEL,14,140,261,8,SS_CENTERIMAGE
- EDITTEXT IDC_PATHS_SAVEIMAGE,14,151,261,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_PATHS_SAVEIMAGES,281,151,11,15
- PUSHBUTTON "Reset to defaults",IDC_PATHS_DEFAULT,14,196,92,14
- PUSHBUTTON "Rescan ROMs",IDC_ROM_RESCAN,14,212,92,14
- PUSHBUTTON "Clear registry",IDC_RESETREGISTRY,111,212,92,14
- COMBOBOX IDC_PATHS_DEFAULTTYPE,111,197,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Clear disk history",IDC_RESETDISKHISTORY,14,228,92,14
- CONTROL "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,32,97,10
- LTEXT "Rips:",IDC_PATHS_RIPSL,13,168,261,8,SS_CENTERIMAGE
- EDITTEXT IDC_PATHS_RIP,13,178,261,15,ES_AUTOHSCROLL
- PUSHBUTTON "...",IDC_PATHS_RIPS,280,178,11,15
-END
-
-IDD_QUICKSTART DIALOGEX 0, 0, 300, 242
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- GROUPBOX "Emulated Hardware",IDC_QUICKSTART_CONFIG,3,0,294,54
- RTEXT "Model:",IDC_STATIC,5,14,50,10,SS_CENTERIMAGE
- COMBOBOX IDC_QUICKSTART_MODEL,59,12,233,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Configuration:",IDC_STATIC,5,33,50,10,SS_CENTERIMAGE
- COMBOBOX IDC_QUICKSTART_CONFIGURATION,59,31,233,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Compatibility vs Required CPU Power ",IDC_QUICKSTART_COMPA,3,56,294,33
- RTEXT "Best compatibility",IDC_STATIC,13,70,67,10,SS_CENTERIMAGE
- CONTROL "",IDC_QUICKSTART_COMPATIBILITY,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,95,65,115,21
- RTEXT "Low compatibility",IDC_STATIC,215,70,63,10,SS_CENTERIMAGE
- GROUPBOX "Host Configuration",IDC_QUICKSTART_HOST,3,91,294,33
- RTEXT "Configuration:",IDC_STATIC,5,105,55,10,SS_CENTERIMAGE
- COMBOBOX IDC_QUICKSTART_HOSTCONFIG,65,103,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- GROUPBOX "Emulated Floppy Drives",IDC_QUICKSTART_DF,3,126,294,84
- CONTROL "Floppy drive DF0:",IDC_DF0QENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,136,72,15
- PUSHBUTTON "Select disk image",IDC_DF0QQ,85,136,98,15
- RTEXT "Write-protected",IDC_STATIC,185,139,56,10,SS_CENTERIMAGE
- CONTROL "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,137,10,15
- PUSHBUTTON "Eject",IDC_EJECT0Q,261,136,30,15
- COMBOBOX IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- CONTROL "Floppy drive DF1:",IDC_DF1QENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,172,71,15
- PUSHBUTTON "Select disk image",IDC_DF1QQ,85,172,98,15
- RTEXT "Write-protected",IDC_STATIC,185,175,55,10,SS_CENTERIMAGE
- CONTROL "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,173,10,15
- PUSHBUTTON "Eject",IDC_EJECT1Q,261,172,30,15
- COMBOBOX IDC_DF1TEXTQ,9,190,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Set configuration",IDC_QUICKSTART_SETCONFIG,9,219,72,15,NOT WS_VISIBLE
- GROUPBOX "Mode",IDC_STATIC,190,211,107,27,BS_LEFT
- CONTROL "Start in Quickstart mode",IDC_QUICKSTARTMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,197,222,94,10
-END
-
-IDD_FRONTEND DIALOGEX 0, 0, 420, 242
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- CONTROL "",IDC_FE_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,6,9,235,124
- GROUPBOX "",IDC_FE_INFO,249,140,160,95
- GROUPBOX "",IDC_FE_SCREENSHOT,249,7,160,128
-END
-
-IDD_PROGRESSBAR DIALOGEX 0, 0, 229, 58
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Processing..."
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- PUSHBUTTON "Cancel",IDCANCEL,88,40,50,14
- CONTROL "",IDC_PROGRESSBAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,7,19,215,14
- CTEXT "x",IDC_PROGRESSBAR_TEXT,23,5,187,10,SS_CENTERIMAGE | WS_TABSTOP
-END
-
-IDD_STRINGBOX DIALOGEX 0, 0, 229, 58
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Enter text..."
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,48,39,50,14
- PUSHBUTTON "Cancel",IDCANCEL,151,39,50,14
- EDITTEXT IDC_STRINGBOXEDIT,7,17,214,14,ES_AUTOHSCROLL | ES_WANTRETURN
-END
-
-IDD_DEBUGGER DIALOGEX 0, 0, 454, 368
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "WinUAE Debugger"
-FONT 8, "Courier New", 0, 0, 0x0
-BEGIN
- EDITTEXT IDC_DBG_OUTPUT1,1,255,370,86,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP
- EDITTEXT IDC_DBG_OUTPUT2,1,79,370,262,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP
- LISTBOX IDC_DBG_MEM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_DASM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- EDITTEXT IDC_DBG_MEMINPUT,1,79,36,12,ES_AUTOHSCROLL | ES_WANTRETURN
- EDITTEXT IDC_DBG_INPUT,1,342,354,12,ES_AUTOHSCROLL | ES_WANTRETURN
- PUSHBUTTON "?",IDC_DBG_HELP,356,342,15,12,NOT WS_TABSTOP
- PUSHBUTTON "Set to PC",IDC_DBG_MEMTOPC,38,79,45,12,NOT WS_TABSTOP
- LISTBOX IDC_DBG_DREG,1,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_AREG,54,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_AMEM,106,1,231,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_CCR,338,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_SP_VBR,338,44,115,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_MMISC,396,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_PC,1,68,52,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_PREFETCH,54,68,283,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_FPREG,372,218,81,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_FPSR,372,285,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_MISCCPU,372,320,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- CONTROL "",IDC_DBG_STATUS,"msctls_statusbar32",0x103,0,355,453,12
- LISTBOX IDC_DBG_BRKPTS,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
- LISTBOX IDC_DBG_MCUSTOM,372,79,81,138,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_MISC,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
- LISTBOX IDC_DBG_CUSTOM,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL
- CONTROL "Auto set",IDC_DBG_AUTOSET,"Button",BS_AUTOCHECKBOX,84,79,50,12
- LISTBOX IDC_DBG_DASM2,1,79,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
- LISTBOX IDC_DBG_MEM2,1,167,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT
-END
-
-IDD_DBGMEMINPUT DIALOGEX 0, 0, 150, 58
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Enter address..."
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,15,39,50,14
- PUSHBUTTON "Cancel",IDCANCEL,75,39,50,14
- EDITTEXT IDC_DBG_MEMINPUT2,20,12,100,14,ES_AUTOHSCROLL | ES_WANTRETURN
- CTEXT "Enter address",IDC_DBG_ADDRINPUTTXT,20,1,100,10,SS_CENTERIMAGE | WS_TABSTOP
-END
-
-IDD_EXPANSION DIALOGEX 0, 0, 300, 206
-STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- RTEXT "Memory: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,25,44,53,10,SS_NOTIFY | SS_CENTERIMAGE
- CONTROL "",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,40,60,20
- EDITTEXT IDC_P96RAM,152,43,34,12,ES_CENTER | ES_READONLY
- GROUPBOX "RTG Graphics Card",IDC_STATIC,5,12,291,113
- CONTROL "Scale if smaller than display size setting",IDC_RTG_SCALE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,74,162,10
- CONTROL "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,163,10
- COMBOBOX IDC_RTG_8BIT,211,29,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_RTG_16BIT,211,44,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_RTG_24BIT,211,59,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_RTG_32BIT,211,74,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "Always scale in windowed mode",IDC_RTG_SCALE_ALLOW,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,86,162,10
- COMBOBOX IDC_RTG_SCALE_ASPECTRATIO,211,101,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- RTEXT "Aspect ratio:",IDC_STATIC,153,102,52,10,SS_CENTERIMAGE
- RTEXT "Refresh rate:",IDC_STATIC,22,103,51,10,SS_CENTERIMAGE
- COMBOBOX IDC_RTG_VBLANKRATE,77,101,68,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
- CONTROL "bsdsocket.library [] bsdsocket network library emulation.",IDC_SOCKETS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,142,148,120,10
- CONTROL "uaenet.device [] Sana 2 compatible network device emulation. WinPcap required.",IDC_SANA2,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,142,160,77,10
- CONTROL "A2065 Z2 [] A2065 Ethernet Zorro II card emulation. WinPcap required.",IDC_A2065,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,233,160,57,10
- GROUPBOX "Network",IDC_STATIC,126,130,169,66
- COMBOBOX IDC_NETDEVICE,132,176,156,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,160,102,10
- CONTROL "Catweasel Z2 emulation [] Catweasel MK2 Zorro II card emulation. Physical Windows compatible Catweasel card and drivers required.",IDC_CATWEASEL,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,148,101,10
- GROUPBOX "Miscellaneous Expansions",IDC_STATIC,5,130,117,66
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,0,1,0
- PRODUCTVERSION 2,0,1,0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x40004L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "FileDescription", "WinUAE"
- VALUE "FileVersion", "2.0.1"
- VALUE "InternalName", "WinUAE"
- VALUE "LegalCopyright", "© 1996-2009 under the GNU Public License (GPL)"
- VALUE "OriginalFilename", "WinUAE.exe"
- VALUE "ProductName", "WinUAE"
- VALUE "ProductVersion", "2.0.1"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Cursor
-//
-
-IDC_MYHAND CURSOR "H_arrow.cur"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDM_SYSTRAY MENU
-BEGIN
- POPUP "Menu"
- BEGIN
- MENUITEM "Configuration", ID_ST_CONFIGURATION
- POPUP "Floppy drives"
- BEGIN
- MENUITEM "Eject all drives", ID_ST_EJECTALL
- MENUITEM "DF0:", ID_ST_DF0
- MENUITEM "DF1:", ID_ST_DF1
- MENUITEM "DF2:", ID_ST_DF2
- MENUITEM "DF3:", ID_ST_DF3
- END
- MENUITEM "Reset", ID_ST_RESET
- MENUITEM "Help", ID_ST_HELP
- MENUITEM "Quit WinUAE", ID_ST_QUIT
- END
-END
-
-IDM_DBGCONTEXTMENU MENU
-BEGIN
- POPUP "Inactive"
- BEGIN
- POPUP "Copy"
- BEGIN
- MENUITEM "Copy line", ID_DBG_COPYLBLINE
- MENUITEM "Copy all", ID_DBG_COPYLB
- END
- END
- POPUP "Memory"
- BEGIN
- POPUP "Copy"
- BEGIN
- MENUITEM "Copy line", ID_DBG_COPYLBLINE
- MENUITEM "Copy all", ID_DBG_COPYLB
- END
- POPUP "Set top address"
- BEGIN
- MENUITEM "Set to A0", ID_DBG_SETTOA0
- MENUITEM "Set to A1", ID_DBG_SETTOA1
- MENUITEM "Set to A2", ID_DBG_SETTOA2
- MENUITEM "Set to A3", ID_DBG_SETTOA3
- MENUITEM "Set to A4", ID_DBG_SETTOA4
- MENUITEM "Set to A5", ID_DBG_SETTOA5
- MENUITEM "Set to A6", ID_DBG_SETTOA6
- MENUITEM "Set to A7", ID_DBG_SETTOA7
- MENUITEM "Enter address", ID_DBG_ENTERADDR
- END
- END
- POPUP "Disassembly"
- BEGIN
- POPUP "Copy"
- BEGIN
- MENUITEM "Copy line", ID_DBG_COPYLBLINE
- MENUITEM "Copy all", ID_DBG_COPYLB
- END
- POPUP "Breakpoints"
- BEGIN
- MENUITEM "Toggle breakpoint", ID_DBG_TOGGLEBP
- MENUITEM "Clear all breakpoints", ID_DBG_DELETEBPS
- END
- POPUP "Set top address"
- BEGIN
- MENUITEM "Set to PC", ID_DBG_SETTOPC
- MENUITEM "Enter address", ID_DBG_ENTERADDR
- END
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// WAVE
-//
-
-IDR_DRIVE_STARTUP_A500_1 WAVE "drive_startup.wav"
-IDR_DRIVE_CLICK_A500_1 WAVE "drive_click.wav"
-IDR_DRIVE_SPIN_A500_1 WAVE "drive_spin.wav"
-IDR_DRIVE_SNATCH_A500_1 WAVE "drive_snatch.wav"
-IDR_DRIVE_SPINND_A500_1 WAVE "drive_spinnd.wav"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_XARCADE BITMAP "xarcade-winuae.bmp"
-IDB_LCD160X43 BITMAP "lcd.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_FILTER, DIALOG
- BEGIN
- BOTTOMMARGIN, 237
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_KICKSTART "ROM"
- IDS_DISK "Disk swapper"
- IDS_DISPLAY "Display"
- IDS_HARDDISK "Hard drives"
- IDS_FLOPPY "Floppy drives"
- IDS_ABOUT "About"
- IDS_LOADSAVE "Configurations"
- IDS_AVIOUTPUT "Output"
- IDS_IOPORTS "IO ports"
- IDS_MISC1 "Miscellaneous"
- IDS_MEMORY "RAM"
- IDS_CPU "CPU and FPU"
- IDS_CHIPSET "Chipset"
- IDS_INPUT "Input"
- IDS_FILTER "Filter"
-END
-
-STRINGTABLE
-BEGIN
- IDS_MISC2 "Pri. & Extensions"
- IDS_PATHS "Paths"
- IDS_QUICKSTART "Quickstart"
- IDS_FRONTEND "Frontend"
- IDS_CHIPSET2 "Adv. Chipset"
- IDS_GAMEPORTS "Game ports"
- IDS_EXPANSION "Expansions"
-END
-
-STRINGTABLE
-BEGIN
- IDS_EXTTEXT "Floppy disk image files"
- IDS_EXTACTUAL "ADF"
- IDS_SOUND "Sound"
- IDS_CDROM "CD-ROM"
- IDS_FRAMERATE "Every %1Frame"
- IDS_SECOND "second "
- IDS_THIRD "third "
- IDS_FOURTH "fourth "
- IDS_FIFTH "fifth "
- IDS_SIXTH "sixth "
- IDS_SEVENTH "seventh "
- IDS_EIGHTH "eighth "
-END
-
-STRINGTABLE
-BEGIN
- IDS_NINTH "ninth "
- IDS_TENTH "tenth "
- IDS_SELECTADF "Select a floppy disk image file..."
- IDS_ADF "Floppy disk image files"
- IDS_CHOOSEBLANK "Choose a blank floppy disk image file..."
- IDS_SELECTHDF "Select a hard disk image file..."
- IDS_HDF "Hard disk image files"
- IDS_SELECTUAE "Select a WinUAE configuration file..."
- IDS_UAE "WinUAE configuration files"
- IDS_SELECTROM "Select a system ROM file..."
- IDS_ROM "System ROM files"
- IDS_SELECTKEY "Select a system ROM key file..."
- IDS_KEY "System ROM key files"
- IDS_SELECTINFO "Select information for your configuration..."
- IDS_NONE "none"
- IDS_VOLUME "Volume"
-END
-
-STRINGTABLE
-BEGIN
- IDS_SELECTFILESYSROOT "Please select the root directory of the file system..."
- IDS_DEFAULTMIDIOUT "Default MIDI-Out Device"
- IDS_CONTRIBUTORS1 "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"
- IDS_CONTRIBUTORS2 "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation.\nKarsten Bock, Gavin Fance, Dirk Trowe, Christoph Meier and Christian Schindler - Freezer cartridge hardware support.\nMikko Nieminen - Demo compatibility testing.\nArabuusimiehet - [This information is on a need-to-know basis]"
- IDS_INVALIDPRTPORT "The printer you have in this configuration is not valid on this machine.\n"
- IDS_RESTOREUSS "Restore a WinUAE snapshot file"
- IDS_USS "WinUAE snapshot files"
- IDS_WRONGOSVERSION "WinUAE is no longer supported on Windows NT. Please upgrade to either Windows 2000 or Windows XP or a later version."
- IDS_SELECTFLASH "Select a flash or battery-backed RAM file..."
- IDS_FLASH "WinUAE flash or battery-backed RAM file"
- IDS_INPUTHOSTWIDGET "Input source"
- IDS_INPUTAMIGAEVENT "Input target"
- IDS_INPUTAUTOFIRE "Autofire"
- IDS_SAVEUSS "Save a WinUAE snapshot file"
- IDS_MIDIOVERFLOW "Sysexbuffer overflow. Should not happen. Please report this to\nberndroesch1@compuserve.de"
-END
-
-STRINGTABLE
-BEGIN
- IDS_PATH "Path"
- IDS_RW "R/W"
- IDS_SECTORS "Sectors"
- IDS_SURFACES "Surfaces"
- IDS_RESERVED "Reserved"
- IDS_BLOCKSIZE "Block size"
- IDS_NAME "Name"
- IDS_DESCRIPTION "Description"
- IDS_COULDNOTLOADCONFIG "Could not load the selected configuration!\n"
- IDS_NOHELP "Online help is disabled because the HTML Help functionality is not installed on this system. HTML Help is available from http://www.microsoft.com/downloads/.\n"
- IDS_MUSTSELECTCONFIG "You must select a configuration or enter a name before selecting Load...\n"
- IDS_INVALIDCOMPORT "The serial port you have in this configuration is not valid on this machine.\n"
-END
-
-STRINGTABLE
-BEGIN
- IDS_HFDSIZE "Size"
- IDS_DEVICE "Device"
- IDS_BOOTPRI "BootPri"
- 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"
- IDS_OLDRTGLIBRARY "The installed LIBS:Picasso96/rtg.library (%d.%d) should be updated.\nA newer version is included in the ""Amiga Programs"" directory\n of the WinUAE distribution archive.\n\nNewer library version fixes graphics problems and increases performance."
- IDS_DEFAULT_AF2005 "Amiga Forever 2005+"
- IDS_DEFAULT_AF "Amiga Forever"
- IDS_DEFAULT_WINUAE "WinUAE default (old)"
-END
-
-STRINGTABLE
-BEGIN
- IDS_SOUND_STEREO2 "Cloned Stereo (4 Channels)"
- IDS_INPUT_CUSTOMEVENT "<Custom event>"
- IDS_DEFAULT_NEWWINUAE "WinUAE default (new)"
- IDS_SOUND_CLONED51 "Cloned Stereo (5.1)"
- IDS_SOUND_51 "5.1 Channels"
- IDS_AUTOMATIC "Automatic"
- IDS_ALL "All"
- IDS_INPUTTOGGLE "Toggle"
- IDS_NETDISCONNECTED "Cable disconnected"
-END
-
-STRINGTABLE
-BEGIN
- IDS_UNSUPPORTEDPIXELFORMAT
- "Error: unsupported pixel format. Please use a different screen mode.\n"
- IDS_MUSTENTERNAME "You must select a configuration or enter a name before selecting Save...\n"
- IDS_MUSTSELECTCONFIGFORDELETE
- "You must select a configuration or enter a name before selecting Delete...\n"
- IDS_DELETECONFIGCONFIRMATION
- "Are you sure you want to Delete this configuration?\n"
- IDS_DELETECONFIGTITLE "Confirm Delete"
- IDS_MUSTSELECTPATH "You must select a path!"
- IDS_SETTINGSERROR "Settings error"
- IDS_MUSTSELECTNAME "You must select a name for the volume!"
- IDS_MUSTSELECTFILE "You must select a file!"
- IDS_FAILEDHARDFILECREATION "Failed to create hard disk image file..."
- IDS_CREATIONERROR "Creation error"
- IDS_ERRORTITLE "WinUAE message"
-END
-
-STRINGTABLE
-BEGIN
- IDS_INP "WinUAE Input Recording"
- IDS_RESTOREINP "Playback a WinUAE input recording"
- IDS_SAVEINP "Record a WinUAE input recording"
- IDS_SCREEN_WINDOWED "Windowed"
- IDS_SCREEN_FULLSCREEN "Fullscreen"
- IDS_SCREEN_FULLWINDOW "Full-window"
- IDS_SCREEN_VSYNC "VSync"
- IDS_SCREEN_VSYNC_AUTOSWITCH "AutoVSync"
- IDS_SOUND_MONO "Mono"
- IDS_SOUND_MIXED "Mixed"
- IDS_SOUND_STEREO "Stereo"
- IDS_DISABLED "Disabled"
- IDS_SOUND_FILTER_OFF "Always off"
- IDS_SOUND_FILTER_EMULATED "Emulated (A500)"
-END
-
-STRINGTABLE
-BEGIN
- IDS_SOUND_FILTER_EMULATED_E "Emulated (A1200)"
- IDS_INPUT_COMPATIBILITY "Compatibility mode"
- IDS_INPUT_CUSTOM "Configuration #%d"
- IDS_INPUT_COPY_DEFAULT "Default"
- IDS_INPUT_COPY_CUSTOM "Config #%d"
- IDS_3D_NO_FILTER "Point (%d-bit)"
- IDS_3D_BILINEAR "Bilinear (%d-bit)"
- IDS_VSYNC_DEFAULT "Default"
- IDS_DRIVESOUND_NONE "No sound"
- IDS_DRIVESOUND_DEFAULT_A500 "A500 (WinUAE built-in)"
- IDS_AVIOUTPUT_NOCODEC "no codec selected"
- IDS_DISK_IMAGENAME "Disk image"
- IDS_DISK_DRIVENAME "Drive"
- IDS_UNSUPPORTEDSCREENMODE
- "The selected screen mode can't be displayed in a window, because %s\nSwitching to full-screen display."
- IDS_UNSUPPORTEDSCREENMODE_1
- "the desktop is running in an unknown color mode."
-END
-
-STRINGTABLE
-BEGIN
- IDS_UNSUPPORTEDSCREENMODE_2
- "the desktop is running in 8-bit color depth, which WinUAE can't use in windowed mode."
- IDS_UNSUPPORTEDSCREENMODE_3
- "the desktop is too small for the specified window size."
- IDS_UNSUPPORTEDSCREENMODE_4
- "you selected an RTG (Picasso96) display with unsupported color depth."
- IDS_FLOPPYTYPE35DD "3.5"" DD"
- IDS_FLOPPYTYPE35HD "3.5"" HD"
- IDS_FLOPPYTYPE525SD "5.25"" SD"
- IDS_FLOPPYTYPEDISABLED "Disabled"
- IDS_STMENUNOFLOPPY "No floppy disk inserted"
- IDS_TREEVIEW_HARDWARE "Hardware"
- IDS_TREEVIEW_HOST "Host"
- IDS_TREEVIEW_MISC "Miscellaneous"
- IDS_TREEVIEW_SETTINGS "Settings"
- IDS_WINUAETITLE_MMB "[Mouse active - press ALT+TAB or middle mouse button to cancel]"
- IDS_WINUAETITLE_NORMAL "[Mouse active - press ALT+TAB to cancel]"
- IDS_STARTEMULATION "Start"
- IDS_TREEVIEW_ABOUT "About"
-END
-
-STRINGTABLE
-BEGIN
- IDS_NOHARDDRIVES "No hard disks detected that were either empty or RDB-partitioned."
- IDS_DEFAULT_HOST "Default Configuration"
- IDS_SOUND_4CHANNEL "4 Channels"
- IDS_HF_FS_CUSTOM "Custom"
- IDS_SELECTFS "Select file system handler (FastFileSystem, SmartFilesystem, etc.)"
- IDS_KEYJOY "Keyboard Layout A (Numeric keypad, 0 and 5 = Fire)\nKeyboard Layout B (Cursor keys, Right CTRL and ALT = Fire)\nKeyboard Layout C (W=Up S=Down A=Left D=Right, Left ALT = Fire)\nX-Arcade (Left)\nX-Arcade (Right)"
- IDS_STATEFILE_UNCOMPRESSED "Uncompressed"
- IDS_STATEFILE_RAMDUMP "RAM dump"
- IDS_STATEFILE_WAVE "Wave audio dump"
- IDS_SOUND_SWAP_PAULA "Paula only"
- IDS_SOUND_SWAP_AHI "AHI only"
- IDS_SOUND_SWAP_BOTH "Both"
- IDS_SOUND_FILTER_ON_AGA "Always on (A500)"
- IDS_SOUND_FILTER_ON_A500 "Always on (A1200)"
- IDS_DRIVESOUND_PC_FLOPPY "PC floppy drive %c"
- IDS_FLOPPYTYPE35DDESCOM "3.5"" ESCOM"
-END
-
-STRINGTABLE
-BEGIN
- IDS_NUMSG_NEEDEXT2 "The software uses a non-standard floppy disk format. You may need to use a custom floppy disk image file instead of a standard one. This message will not appear again."
- IDS_NUMSG_NOROMKEY "Could not find system ROM key file."
- IDS_NUMSG_KSROMCRCERROR "System ROM checksum incorrect. The system ROM image file may be corrupt."
- IDS_NUMSG_KSROMREADERROR "Error while reading system ROM."
-END
-
-STRINGTABLE
-BEGIN
- IDS_NUMSG_NOEXTROM "No extended ROM found."
- IDS_NUMSG_MODRIP_NOTFOUND "No music modules or packed data found."
- IDS_NUMSG_MODRIP_FINISHED "Scan finished."
- IDS_NUMSG_MODRIP_SAVE "Module/packed data found\n%s\nStart address %08.8X, Size %d bytes\nWould you like to save it?"
- IDS_NUMSG_KS68020 "The selected system ROM requires a 68020 with 32-bit addressing or 68030 or higher CPU."
- IDS_NUMSG_ROMNEED "One of the following system ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."
- IDS_NUMSG_STATEHD "WARNING: Current configuration is not fully compatible with state saves.\nThis message will not appear again."
- IDS_NUMSG_NOCAPS "Selected disk image needs the SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
- IDS_NUMSG_OLDCAPS "You need an updated SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
- IDS_IMGCHK_BOOTBLOCKCRCERROR
- "The selected floppy disk image is not bootable (boot block checksum error)"
- IDS_IMGCHK_BOOTBLOCKNO "The selected floppy disk image is not bootable (no boot block)"
- IDS_IMGCHK_DAMAGED "The selected floppy disk image is damaged or unformatted"
- IDS_IMGCHK_KS2 "The selected floppy disk image requires a 2.04 or later system ROM.\nThe configuration has been updated."
- IDS_IMGCHK_KS3 "The selected floppy disk image requires a 3.0 or later system ROM.\nThe configuration has been updated."
- IDS_ROMSCANEND "Scan of ROMs finished"
-END
-
-STRINGTABLE
-BEGIN
- IDS_ROM_AVAILABLE "available"
- IDS_ROM_UNAVAILABLE "unavailable"
- IDS_NUMSG_KS68EC020 "The selected system ROM requires a 68020 with 24-bit addressing or higher CPU."
- IDS_ROMSCANNOROMS "No supported system ROMs detected."
- IDS_NUMSG_KICKREP "You need to have a floppy disk (image file) in DF0: to use the system ROM replacement."
- IDS_NUMSG_KICKREPNO "The floppy disk (image file) in DF0: is not compatible with the system ROM replacement functionality."
- IDS_NUMSG_NOROM "Could not load system ROM, trying system ROM replacement."
- IDS_HDCLONE_OK "Hard drive image file created succesfully."
- IDS_HDCLONE_FAIL "Hard drive image file creation failed.\nError code %d:%d."
- IDS_NUMSG_KS68030 "The selected system ROM requires a 68030 CPU."
- IDS_NUMSG_EXPROMNEED "One of the following expansion boot ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."
- IDS_SB_FAVORITENAME "Enter name..."
- IDS_SB_CUSTOMEVENT "Enter custom event string.."
-END
-
-STRINGTABLE
-BEGIN
- IDS_QS_MODELS "A500\nA500+\nA600\nA1000\nA1200\nA3000\nA4000\nCD32\nCDTV\nArcadia Multi Select system\nExpanded WinUAE example configuration"
- IDS_QS_MODEL_A500 "1.3 ROM, OCS, 512 KB Chip + 512 KB Slow RAM (most common)\nThis configuration is capable of running most games and demos produced for first-generation hardware. Only few exceptions need a different configuration (e.g. the oldest games tend to be incompatible with this configuration).\n1.3 ROM, ECS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nLater hardware revision of the A500. Nearly 100% compatible with the previous configuration.\n1.3 ROM, ECS Agnus, 1 MB Chip RAM\nFew newer games and demos require this configuration.\n1.3 ROM, OCS Agnus, 512 KB Chip RAM\nVery old (e.g. pre-1988) games and demos may require this configuration.\n1.2 ROM, OCS Agnus, 512 KB Chip RAM\nAs available for the A1000, and installed on the first A500 and A2000 series. Some very old programs only work correctly with this configuration. Note: This system ROM version can only boot from floppy disk (no hard disk boot support).\n1.2 ROM, OCS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nThis configuration adds expansion memory to the first A500 produced. Try this if your game does not work with newer configurations, but works with the previous one. It could add some features to the game, including faster loading times. Note: This system ROM version can only boot from floppy disk (no hard disk boot support)."
- IDS_QS_MODEL_A500P "Basic non-expanded configuration\nThe A500+ adds an ECS Agnus chip, 1 MB of Chip RAM and a 2.0 ROM to the A500. Many A500 games and demos don't work properly on an A500+.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"
- IDS_QS_MODEL_A600 "Basic non-expanded configuration\nThe A600 is smaller than the A500+ and has an updated 2.0 ROM.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"
- IDS_QS_MODEL_A1000 "512 KB Chip RAM\nThe A1000 was the first model produced, with a configuration equivalent to that of an A500 with OCS chipset. You normally don't need to use this configuration, unless you are nostalgic and would like to hear the short A1000 boot tune\n""ICS"" Denise without EHB support\nVery first A1000 models had Denise without EHB capability.\n256 KB Chip RAM\n Unexpanded A1000. All later A1000 models were sold with a 256 KB RAM expansion built-in."
- IDS_QS_MODEL_A1200 "Basic non-expanded configuration\nUse this configuration to run most AGA demos and games\n4 MB Fast RAM expanded configuration\nSome newer AGA games and demos need an expanded A1200 to run."
- IDS_QS_MODEL_CD32 "CD32\nThe CD32 was one the first 32-bit consoles on the market. It is basically an A1200 with a built-in CD-ROM drive. Insert your CD32 or CDTV CD-ROM into a free CD-ROM drive before starting the emulation.\nCD32 + MPEG Full Motion Video Cartridge (not emulated yet)\n"
- IDS_QS_MODEL_CDTV "CDTV\nThe CDTV was the first model with a built-in CD-ROM drive. Looking like a black CD player, it featured a configuration equivalent to that of an A500 with 1 MB RAM and an ECS chipset.\nFloppy drive and 64KB SRAM card expanded CDTV\n"
-END
-
-STRINGTABLE
-BEGIN
- IDS_QS_MODEL_UAE "High-end expanded configuration"
- IDS_QS_MODEL_ARCADIA "Arcadia\nArcadia Multi Select system is arcade platform developed by Arcadia and Mastertronic. It is based on an A500 mainboard with ROM cage attached to expansion port. Arcadia ROM files go to ""Cartridge ROM File"" in ROM-panel."
- IDS_QS_MODEL_A3000 "1.4 ROM, 2MB Chip + 8MB Fast\n\n2.04 ROM, 2MB Chip + 8MB Fast\n\n3.1 ROM, 2MB Chip + 8MB Fast\n"
- IDS_QS_MODEL_A4000 "68030, 3.1 ROM, 2MB Chip + 8MB Fast\n\n68040, 3.1 ROM, 2MB Chip + 8MB Fast\n"
- IDS_QS_MODEL_A4000T "A4000T (test)\nA4000T"
-END
-
-STRINGTABLE
-BEGIN
- IDS_FLOPPYTYPE35DDPC "3.5"" DD (PC)"
- IDS_FLOPPYTYPE35HDPC "3.5"" HD (PC)"
- IDS_JOYMODE_DEFAULT "Default"
- IDS_JOYMODE_MOUSE "Mouse"
- IDS_JOYMODE_JOYSTICK "Joystick"
- IDS_JOYMODE_JOYSTICKANALOG "Analog joystick"
- IDS_JOYMODE_LIGHTPEN "Light pen"
- IDS_JOYMODE_MOUSE_CDTV "CDTV remote mouse"
- IDS_JOYMODE_JOYSTICK_CD32 "CD32 pad"
- IDS_TABLET_BOTH_CURSORS "Show both cursors"
- IDS_TABLET_NATIVE_CURSOR "Show native cursor only"
- IDS_TABLET_HOST_CURSOR "Show host cursor only"
- IDS_AUTOSCALE_DISABLED "Disabled"
- IDS_AUTOSCALE_SCALING "Automatic scaling"
- IDS_AUTOSCALE_RESIZE "Automatic resize"
- IDS_PRINTER_ASCII "ASCII-Only"
-END
-
-STRINGTABLE
-BEGIN
- IDS_PRINTER_EPSON9 "Epson Matrix Printer Emulation, 9pin"
- IDS_PRINTER_POSTSCRIPT_DETECTION "PostScript (Passthrough)"
- IDS_PRINTER_POSTSCRIPT_EMULATION
- "PostScript (Emulation, GhostScript required)"
- IDS_PRINTER_PASSTHROUGH "Passthrough"
- IDS_RES_LORES "Lores"
- IDS_RES_HIRES "Hires (normal)"
- IDS_RES_SUPERHIRES "SuperHires"
- IDS_PRINTER_EPSON48 "Epson Matrix Printer Emulation, 48pin"
-END
-
-#endif // English (Neutral) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Finnish resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FIN)
-#ifdef _WIN32
-LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // Finnish resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.\r
+//\r
+#include "resource."\r
+\r
+#define APSTUDIO_READONLY_SYMBOLS\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 2 resource.\r
+//\r
+#include "afxres.h"\r\r
+/////////////////////////////////////////////////////////////////////////////\r
+#undef APSTUDIO_READONLY_SYMBOLS\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// English (Neutral) resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Icon\r
+//\r
+\r
+// Icon with lowest ID value placed first to ensure application icon\r
+// remains consistent on all systems.\r
+IDI_APPICON ICON "winuae.ico"\r
+IDI_FLOPPY ICON "35floppy.ico"\r
+IDI_ABOUT ICON "amigainfo.ico"\r
+IDI_HARDDISK ICON "Drive.ico"\r
+IDI_CPU ICON "cpu.ico"\r
+IDI_GAMEPORTS ICON "joystick.ico"\r
+IDI_IOPORTS ICON "joystick.ico"\r
+IDI_INPUT ICON "joystick.ico"\r
+IDI_MISC1 ICON "misc.ico"\r
+IDI_MISC2 ICON "misc.ico"\r
+IDI_MOVE_UP ICON "move_up.ico"\r
+IDI_MOVE_DOWN ICON "move_dow.ico"\r
+IDI_AVIOUTPUT ICON "avioutput.ico"\r
+IDI_DISK ICON "Drive.ico"\r
+IDI_FOLDER ICON "folder.ico"\r
+IDI_SOUND ICON "sound.ico"\r
+IDI_DISPLAY ICON "screen.ico"\r
+IDI_ROOT ICON "root.ico"\r
+IDI_MEMORY ICON "chip.ico"\r
+IDI_QUICKSTART ICON "quickstart.ico"\r
+IDI_PATHS ICON "paths.ico"\r
+IDI_DISKIMAGE ICON "diskimage.ico"\r
+IDI_PORTS ICON "port.ico"\r
+IDI_CONFIGFILE ICON "configfile.ico"\r
+IDI_FILE ICON "file.ico"\r
+IDI_EXPANSION ICON "expansion.ico"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Accelerator\r
+//\r
+\r
+IDR_DBGACCEL ACCELERATORS \r
+BEGIN\r
+ VK_F1, ID_DBG_PAGE1, VIRTKEY, NOINVERT\r
+ VK_F2, ID_DBG_PAGE2, VIRTKEY, NOINVERT\r
+ VK_F3, ID_DBG_PAGE3, VIRTKEY, NOINVERT\r
+ VK_F4, ID_DBG_PAGE4, VIRTKEY, NOINVERT\r
+ VK_F5, ID_DBG_PAGE5, VIRTKEY, NOINVERT\r
+ VK_F6, ID_DBG_PAGE6, VIRTKEY, NOINVERT\r
+ VK_F7, ID_DBG_PAGE7, VIRTKEY, NOINVERT\r
+ VK_F8, ID_DBG_PAGE8, VIRTKEY, NOINVERT\r
+ VK_F9, ID_DBG_PAGE9, VIRTKEY, NOINVERT\r
+ VK_F11, ID_DBG_STEP_OVER, VIRTKEY, NOINVERT\r
+ VK_F12, ID_DBG_STEP_INTO, VIRTKEY, NOINVERT\r
+ VK_DOWN, IDC_DBG_MEMDOWN, VIRTKEY, ALT, NOINVERT\r
+ VK_RIGHT, IDC_DBG_MEMDOWNFAST, VIRTKEY, ALT, NOINVERT\r
+ VK_UP, IDC_DBG_MEMUP, VIRTKEY, ALT, NOINVERT\r
+ VK_LEFT, IDC_DBG_MEMUPFAST, VIRTKEY, ALT, NOINVERT\r
+ "H", IDC_DBG_HELP, VIRTKEY, ALT, NOINVERT\r
+ "P", IDC_DBG_MEMTOPC, VIRTKEY, ALT, NOINVERT\r
+ "A", IDC_DBG_AUTOSET, VIRTKEY, ALT, NOINVERT\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Dialog\r
+//\r
+\r
+IDD_KICKSTART DIALOGEX 0, 0, 300, 176\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+EXSTYLE WS_EX_CONTEXTHELP\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "System ROM Settings",-1,5,0,290,93\r
+ LTEXT "Main ROM file:",IDC_ROMTEXT,14,13,263,10\r
+ COMBOBOX IDC_ROMFILE,12,26,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "...",IDC_KICKCHOOSER,280,25,10,15\r
+ LTEXT "Extended ROM file:",IDC_ROMFILE2TEXT,14,43,263,10\r
+ COMBOBOX IDC_ROMFILE2,12,56,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "...",IDC_ROMCHOOSER2,280,55,10,15\r
+ CONTROL "MapROM emulation [] Creates a BlizKick-compatible memory area.",IDC_MAPROM,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,77,87,10\r
+ CONTROL "ShapeShifter support [] Patches the system ROM for ShapeShifter compatibility.",IDC_KICKSHIFTER,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,77,87,10\r
+ GROUPBOX "Miscellaneous",-1,5,99,290,75\r
+ LTEXT "Cartridge ROM file:",IDC_FLASHTEXT2,12,110,265,10\r
+ COMBOBOX IDC_CARTFILE,12,123,263,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "...",IDC_CARTCHOOSER,280,122,10,15\r
+ LTEXT "Flash RAM file:",IDC_FLASHTEXT,12,142,265,10\r
+ EDITTEXT IDC_FLASHFILE,12,155,262,13,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_FLASHCHOOSER,280,154,10,15\r
+END\r
+\r
+IDD_DISPLAY DIALOGEX 0, 0, 300, 235\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "Screen",IDC_SCREENRESTEXT,12,0,270,67,BS_LEFT\r
+ COMBOBOX IDC_DISPLAYSELECT,59,10,215,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_RESOLUTION,59,27,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_REFRESHRATE,187,27,87,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ EDITTEXT IDC_XSIZE,59,48,48,12,ES_NUMBER\r
+ EDITTEXT IDC_YSIZE,114,48,47,12,ES_NUMBER\r
+ GROUPBOX "Settings",IDC_SETTINGSTEXT,12,73,199,137\r
+ CONTROL "Blacker than black",IDC_BLACKER_THAN_BLACK,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,19,125,92,10\r
+ LTEXT "Refresh:",IDC_REFRESHTEXT,18,173,28,8\r
+ CONTROL "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,168,75,20\r
+ EDITTEXT IDC_RATETEXT,124,172,77,12,ES_CENTER | ES_READONLY\r
+ GROUPBOX "Centering",IDC_STATIC,221,73,61,49\r
+ CONTROL "Horizontal",IDC_XCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,87,49,10\r
+ CONTROL "Vertical",IDC_YCENTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,229,103,49,10\r
+ GROUPBOX "Line Mode",IDC_LINEMODE,222,126,61,84\r
+ CONTROL "Normal",IDC_LM_NORMAL,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,231,148,44,10\r
+ CONTROL "Double",IDC_LM_DOUBLED,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,164,45,10\r
+ CONTROL "Scanlines",IDC_LM_SCANLINES,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,231,180,46,10\r
+ COMBOBOX IDC_DA_MODE,20,218,58,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "",IDC_DA_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,84,214,101,20\r
+ LTEXT "FPS adj.:",IDC_REFRESH2TEXT,16,193,32,8\r
+ CONTROL "",IDC_FRAMERATE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,188,127,20\r
+ EDITTEXT IDC_RATE2TEXT,175,192,26,12,ES_CENTER | ES_READONLY\r
+ COMBOBOX IDC_RESOLUTIONDEPTH,134,27,46,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Filtered low resolution",IDC_LORES_SMOOTHED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,118,125,89,10\r
+ COMBOBOX IDC_SCREENMODE_NATIVE,100,85,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_SCREENMODE_RTG,100,103,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Native mode:",IDC_STATIC,19,85,59,15,SS_CENTERIMAGE\r
+ RTEXT "RTG mode:",IDC_STATIC,19,101,59,15,SS_CENTERIMAGE\r
+ PUSHBUTTON "Reset to defaults",IDC_DA_RESET,212,218,73,14\r
+ RTEXT "Resolution:",IDC_STATIC,27,152,59,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_LORES,100,152,102,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Remove interlace artifacts",IDC_FLICKERFIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,139,99,10\r
+ RTEXT "Windowed:",IDC_STATIC,17,46,40,15,SS_CENTERIMAGE\r
+ RTEXT "Fullscreen:",IDC_STATIC,17,19,40,15,SS_CENTERIMAGE\r
+END\r
+\r
+IDD_MEMORY DIALOGEX 0, 0, 300, 158\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+EXSTYLE WS_EX_CONTEXTHELP\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "Memory Settings",-1,14,7,274,69\r
+ RTEXT "Chip:",-1,24,26,20,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_CHIPMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,22,50,20\r
+ EDITTEXT IDC_CHIPRAM,105,25,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Slow:",-1,149,26,20,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_SLOWMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,22,60,20\r
+ EDITTEXT IDC_SLOWRAM,243,25,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Fast:",IDC_FASTTEXT,24,51,20,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,54,47,50,20\r
+ EDITTEXT IDC_FASTRAM,105,53,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Z3 Fast:",IDC_Z3TEXT,139,51,30,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_Z3FASTMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,179,47,60,20\r
+ EDITTEXT IDC_Z3FASTRAM,243,50,34,12,ES_CENTER | ES_READONLY\r
+ GROUPBOX "A3000/A4000 Advanced Memory Settings",-1,14,84,274,65\r
+ RTEXT "Motherboard Fast RAM:",-1,40,100,129,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,181,96,59,20\r
+ EDITTEXT IDC_MBRAM1,244,99,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Processor Slot Fast RAM:",-1,40,123,129,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,181,119,59,20\r
+ EDITTEXT IDC_MBRAM2,244,122,34,12,ES_CENTER | ES_READONLY\r
+END\r
+\r
+IDD_CPU DIALOGEX 0, 0, 300, 241\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ GROUPBOX "CPU",IDC_STATIC,5,1,81,144,BS_LEFT\r
+ CONTROL "68000",IDC_CPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,15,63,10\r
+ CONTROL "68010",IDC_CPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,28,65,10\r
+ CONTROL "68020",IDC_CPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,41,63,10\r
+ CONTROL "68030",IDC_CPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,54,64,10\r
+ CONTROL "68040",IDC_CPU4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,67,66,10\r
+ CONTROL "68060",IDC_CPU5,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,80,66,10\r
+ CONTROL "More compatible [] Emulate 68000's prefetch registers. More compatible but slower.",IDC_COMPATIBLE,\r
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,107,73,8\r
+ CONTROL "JIT [] Enable just-in-time CPU emulator. Significantly increases the speed of the CPU emulation. Requires 68020 or higher CPU.",IDC_JITENABLE,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,119,73,10\r
+ GROUPBOX "CPU Emulation Speed",IDC_STATIC,90,3,205,92\r
+ CONTROL "Fastest possible, but maintain chipset timing",IDC_CS_HOST,\r
+ "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_GROUP | WS_TABSTOP,95,18,195,10\r
+ CONTROL "Approximate A500 or A500/A1200 cycle-exact",IDC_CS_68000,\r
+ "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,32,195,10\r
+ CONTROL "Adjustable between CPU and chipset",IDC_CS_ADJUSTABLE,\r
+ "Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,95,46,195,10\r
+ CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,114,71,67,20\r
+ CONTROL "",IDC_CPUIDLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,219,71,69,20\r
+ GROUPBOX "Advanced JIT Settings",IDC_STATIC,90,147,205,91\r
+ CONTROL "Slider1",IDC_CACHE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,140,161,115,20\r
+ EDITTEXT IDC_CACHETEXT,255,166,30,12,ES_CENTER | ES_READONLY\r
+ CONTROL "Hard flush",IDC_HARDFLUSH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,194,63,10\r
+ CONTROL "Constant jump",IDC_CONSTJUMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,208,63,10\r
+ CONTROL "FPU support",IDC_JITFPU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,222,62,10\r
+ CONTROL "No flags",IDC_NOFLAGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,168,194,62,10\r
+ CONTROL "Direct",IDC_TRUST0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,235,194,52,10\r
+ CONTROL "Indirect",IDC_TRUST1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,235,208,52,10\r
+ CONTROL "More compatible [] More compatible but slower FPU emulation.",IDC_COMPATIBLE_FPU,\r
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,221,73,10\r
+ GROUPBOX "FPU",IDC_STATIC,5,147,81,90,BS_LEFT\r
+ CONTROL "24-bit addressing",IDC_COMPATIBLE24,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,10,94,73,8\r
+ CONTROL "None",IDC_FPU0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,161,63,10\r
+ CONTROL "68881",IDC_FPU1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,175,63,10\r
+ CONTROL "68882",IDC_FPU2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,188,63,10\r
+ CONTROL "CPU internal",IDC_FPU3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,202,63,10\r
+ RTEXT "CPU Frequency",IDC_STATIC,105,119,51,10,SS_CENTERIMAGE\r
+ GROUPBOX "Cycle-exact CPU Emulation Speed",IDC_STATIC,90,99,205,46\r
+ RTEXT "CPU",IDC_STATIC,96,77,17,10,SS_CENTERIMAGE\r
+ RTEXT "Chipset",IDC_STATIC,182,77,26,9,SS_CENTERIMAGE\r
+ RTEXT "CPU Idle",IDC_STATIC,231,60,47,9,SS_CENTERIMAGE\r
+ RTEXT "Cache size:",IDC_STATIC,95,167,42,10,SS_CENTERIMAGE\r
+ CONTROL "68040 MMU [] 68040 MMU emulation. Not compatible with JIT.",IDC_MMUENABLE,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,132,73,10\r
+ COMBOBOX IDC_CPU_FREQUENCY,165,118,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ EDITTEXT IDC_CPU_FREQUENCY2,218,117,70,15\r
+END\r
+\r
+IDD_FLOPPY DIALOGEX 0, 0, 300, 240\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ COMBOBOX IDC_DF0TEXT,2,22,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_DF0TYPE,115,6,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Write-protected",IDC_STATIC,174,8,59,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_DF0WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,4,10,15\r
+ PUSHBUTTON "Eject",IDC_EJECT0,253,4,30,15\r
+ PUSHBUTTON "...",IDC_DF0,287,4,10,15\r
+ COMBOBOX IDC_DF1TEXT,2,58,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_DF1TYPE,115,42,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Write-protected",IDC_STATIC,174,43,59,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_DF1WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,40,10,15\r
+ PUSHBUTTON "Eject",IDC_EJECT1,253,40,30,15\r
+ PUSHBUTTON "...",IDC_DF1,287,40,10,15\r
+ COMBOBOX IDC_DF2TEXT,2,93,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_DF2TYPE,115,77,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Write-protected",IDC_STATIC,174,77,59,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_DF2WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,75,9,15\r
+ PUSHBUTTON "Eject",IDC_EJECT2,253,75,30,15\r
+ PUSHBUTTON "...",IDC_DF2,287,75,10,15\r
+ COMBOBOX IDC_DF3TEXT,2,128,296,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_DF3TYPE,115,112,57,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Write-protected",IDC_STATIC,174,113,59,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_DF3WP,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,238,111,9,15\r
+ PUSHBUTTON "Eject",IDC_EJECT3,253,110,30,15\r
+ PUSHBUTTON "...",IDC_DF3,287,109,10,15\r
+ GROUPBOX "New Floppy Disk Image",IDC_SETTINGSTEXT,5,183,289,49\r
+ COMBOBOX IDC_FLOPPYTYPE,12,197,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Create Standard Disk [] Creates a standard 880 or 1760 KB ADF disk image.",IDC_CREATE,81,196,97,15\r
+ PUSHBUTTON "Create Custom Disk [] Creates a low level (MFM) ADF disk image (about 2MB). Useful for programs that use non-standard disk formats (for example some save disks or DOS-formatted floppies)",IDC_CREATE_RAW,187,196,101,15\r
+ GROUPBOX "Floppy Drive Emulation Speed",IDC_SETTINGSTEXT2,5,144,289,35\r
+ CONTROL "",IDC_FLOPPYSPD,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,32,154,116,20\r
+ EDITTEXT IDC_FLOPPYSPDTEXT,183,157,101,12,ES_CENTER | ES_READONLY\r
+ PUSHBUTTON "Delete save image",IDC_SAVEIMAGE0,43,5,70,15,NOT WS_VISIBLE\r
+ PUSHBUTTON "Delete save image",IDC_SAVEIMAGE1,43,40,70,15,NOT WS_VISIBLE\r
+ PUSHBUTTON "Delete save image",IDC_SAVEIMAGE2,43,75,70,15,NOT WS_VISIBLE\r
+ PUSHBUTTON "Delete save image",IDC_SAVEIMAGE3,43,110,70,15,NOT WS_VISIBLE\r
+ EDITTEXT IDC_CREATE_NAME,81,215,97,13,ES_AUTOHSCROLL\r
+ RTEXT "Disk label:",IDC_STATIC,15,216,52,10,SS_CENTERIMAGE\r
+ CONTROL "DF0:",IDC_DF0ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,6,34,15\r
+ CONTROL "DF1:",IDC_DF1ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,41,34,15\r
+ CONTROL "DF2:",IDC_DF2ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,76,34,15\r
+ CONTROL "DF3:",IDC_DF3ENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,3,111,34,15\r
+END\r
+\r
+IDD_HARDDISK DIALOGEX 0, 0, 300, 237\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+EXSTYLE WS_EX_CONTEXTHELP\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ CONTROL "List1",IDC_VOLUMELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,0,290,167\r
+ PUSHBUTTON "Add &Directory or Archive...",IDC_NEW_FS,10,171,103,15\r
+ PUSHBUTTON "Add &Hardfile...",IDC_NEW_HF,130,171,74,15\r
+ PUSHBUTTON "Add Ha&rd Drive...",IDC_NEW_HD,220,171,75,15\r
+ PUSHBUTTON "Remove",IDC_REMOVE,235,193,60,15\r
+ PUSHBUTTON "&Properties",IDC_EDIT,235,210,60,15\r
+ CONTROL "Add PC drives at startup",IDC_MAPDRIVES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,192,100,10\r
+ CONTROL "Disable UAEFSDB-support",IDC_NOUAEFSDB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,192,119,10\r
+ CONTROL "Don't use Windows Recycle Bin",IDC_NORECYCLEBIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,203,121,10\r
+ CONTROL "Include network drives..",IDC_MAPDRIVES_NET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,226,101,10\r
+ CONTROL "Include CD/DVD drives..",IDC_MAPDRIVES_CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,215,100,10\r
+ CONTROL "Automount removable drives",IDC_MAPDRIVES_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,110,215,115,10\r
+ CONTROL "Include removable drives..",IDC_MAPDRIVES_REMOVABLE,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,203,100,10\r
+END\r
+\r
+IDD_SOUND DIALOGEX 0, 0, 300, 237\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ COMBOBOX IDC_SOUNDCARDLIST,5,3,291,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "Sound Emulation",IDC_SOUNDSETTINGS,5,20,120,85\r
+ CONTROL "Disabled",IDC_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,35,101,10\r
+ CONTROL "Disabled, but emulated",IDC_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,48,102,10\r
+ CONTROL "Enabled",IDC_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,61,102,10\r
+ CONTROL "Enabled, 100% accurate",IDC_SOUND3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,13,74,101,10\r
+ GROUPBOX "Volume",IDC_STATIC,132,36,164,31\r
+ CONTROL "",IDC_SOUNDVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,44,105,20\r
+ EDITTEXT IDC_SOUNDVOLUME2,247,47,40,12,ES_CENTER | ES_READONLY\r
+ GROUPBOX "Sound Buffer Size",IDC_STATIC,132,73,164,31\r
+ CONTROL "Slider1",IDC_SOUNDBUFFERRAM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,137,81,105,19\r
+ EDITTEXT IDC_SOUNDBUFFERMEM,247,84,40,12,ES_CENTER | ES_READONLY\r
+ GROUPBOX "Settings",IDC_SOUNDINTERPOLATION2,6,106,290,60\r
+ LTEXT "Frequency:",IDC_SOUNDFREQTXT,11,140,53,8,SS_CENTERIMAGE\r
+ COMBOBOX IDC_SOUNDFREQ,13,149,51,75,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP\r
+ LTEXT "Audio filter:",IDC_SOUNDFILTERTXT,209,140,77,8,SS_CENTERIMAGE\r
+ COMBOBOX IDC_SOUNDFILTER,209,149,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ LTEXT "Channel mode:",IDC_SOUNDSTEREOTXT,11,116,57,8,SS_CENTERIMAGE\r
+ COMBOBOX IDC_SOUNDSTEREO,13,125,122,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ LTEXT "Interpolation:",IDC_SOUNDINTERPOLATIONTXT,209,116,75,8,SS_CENTERIMAGE\r
+ COMBOBOX IDC_SOUNDINTERPOLATION,209,125,80,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ LTEXT "Stereo separation:",IDC_SOUNDSTEREOSEPTXT,141,116,63,8,SS_CENTERIMAGE\r
+ COMBOBOX IDC_SOUNDSTEREOSEP,142,125,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ LTEXT "Stereo delay:",IDC_SOUNDSTEREOMIXTXT,141,140,63,8,SS_CENTERIMAGE\r
+ COMBOBOX IDC_SOUNDSTEREOMIX,142,149,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "Floppy Drive Sound Emulation",IDC_STATIC,6,172,220,60\r
+ CONTROL "",IDC_SOUNDDRIVEVOLUME,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,14,186,107,19\r
+ EDITTEXT IDC_SOUNDDRIVEVOLUME2,124,188,40,12,ES_CENTER | ES_READONLY\r
+ COMBOBOX IDC_SOUNDDRIVE,173,187,46,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_SOUNDDRIVESELECT,18,209,202,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_SOUNDSWAP,73,149,62,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ LTEXT "Swap channels:",IDC_SOUNDSWAPTXT,74,140,61,8,SS_CENTERIMAGE\r
+ CONTROL "Automatic switching",IDC_SOUND_AUTO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,89,103,10\r
+ CONTROL "Exclusive mode",IDC_SOUND_EXCLUSIVE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,137,25,154,10\r
+ CONTROL "DirectSound",IDC_SOUND_DS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,181,55,10\r
+ CONTROL "WASAPI",IDC_SOUND_WASAPI,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,193,53,10\r
+ CONTROL "OpenAL",IDC_SOUND_OPENAL,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,205,53,10\r
+ CONTROL "PortAudio",IDC_SOUND_PORTAUDIO,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,235,217,58,10\r
+ GROUPBOX "Drivers",IDC_STATIC,230,172,66,60\r
+END\r
+\r
+IDD_LOADSAVE DIALOGEX 0, 0, 302, 241\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ CONTROL "",IDC_CONFIGTREE,"SysTreeView32",TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,6,3,289,153,WS_EX_CLIENTEDGE\r
+ RTEXT "Name:",IDC_STATIC,4,161,40,15,SS_CENTERIMAGE\r
+ EDITTEXT IDC_EDITNAME,48,162,146,13,ES_AUTOHSCROLL\r
+ RTEXT "Description:",IDC_STATIC,2,182,41,15,SS_CENTERIMAGE\r
+ EDITTEXT IDC_EDITDESCRIPTION,48,183,146,13,ES_AUTOHSCROLL\r
+ RTEXT "Link:",IDC_STATIC,4,204,40,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_CONFIGLINK,48,205,93,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Ignore link",IDC_CONFIGNOLINK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,207,48,10\r
+ EDITTEXT IDC_EDITPATH,199,161,49,15,ES_AUTOHSCROLL | WS_DISABLED\r
+ CONTROL "Autoload",IDC_CONFIGAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,253,163,42,10\r
+ GROUPBOX "Additional Information",IDC_STATIC,199,179,96,38,BS_LEFT\r
+ PUSHBUTTON "View",IDC_VIEWINFO,208,195,37,15\r
+ PUSHBUTTON "Set",IDC_SETINFO,250,195,37,15\r
+ PUSHBUTTON "Load",IDC_QUICKLOAD,5,225,44,15\r
+ PUSHBUTTON "Save",IDC_QUICKSAVE,54,225,44,15\r
+ PUSHBUTTON "Load From...",IDC_LOAD,121,225,49,15\r
+ PUSHBUTTON "Delete",IDC_DELETE,251,225,44,15\r
+ PUSHBUTTON "Save As...",IDC_SAVE,175,225,44,15\r
+END\r
+\r
+IDD_IOPORTS DIALOGEX 0, 0, 300, 228\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "Parallel Port",IDC_STATIC,5,2,291,86\r
+ RTEXT "Printer:",IDC_STATIC,12,15,25,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_PRINTERLIST,49,15,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Flush print job",IDC_FLUSHPRINTER,114,51,58,12\r
+ RTEXT "Autoflush [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,176,49,76,15,SS_NOTIFY | SS_CENTERIMAGE\r
+ EDITTEXT IDC_PRINTERAUTOFLUSH,255,50,25,12,ES_NUMBER\r
+ RTEXT "Type:",IDC_STATIC,15,33,21,15,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PS_PARAMS,114,67,167,12,ES_AUTOHSCROLL\r
+ GROUPBOX "Serial Port",IDC_STATIC,4,92,292,48\r
+ COMBOBOX IDC_SERIAL,49,104,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,15,123,48,12\r
+ CONTROL "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,75,123,55,12\r
+ RTEXT "Out:",IDC_MIDI,10,154,34,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_MIDIOUTLIST,49,154,232,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "In:",IDC_MIDI2,10,174,29,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_MIDIINLIST,49,174,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Direct []Use when emulating serial-link games on two PCs running WinUAE",IDC_SER_DIRECT,\r
+ "Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,135,123,65,12\r
+ CONTROL "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,200,123,78,12\r
+ COMBOBOX IDC_PRINTERTYPELIST,49,33,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Ghostscript extra parameters:",IDC_STATIC,10,66,102,15,SS_CENTERIMAGE\r
+ GROUPBOX "MIDI",IDC_STATIC,5,143,291,51,BS_LEFT\r
+ GROUPBOX "Protection Dongle",IDC_STATIC,5,197,292,30,BS_LEFT\r
+ COMBOBOX IDC_DONGLELIST,50,208,232,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+END\r
+\r
+IDD_GAMEPORTS DIALOGEX 0, 0, 300, 236\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ COMBOBOX IDC_PORT0_JOYS,45,29,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_PORT1_JOYS,45,65,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Swap port 0 and 1",IDC_SWAP,194,101,93,14\r
+ RTEXT "Port 0:",IDC_STATIC,11,28,25,15,SS_CENTERIMAGE\r
+ RTEXT "Port 1:",IDC_STATIC,11,64,25,15,SS_CENTERIMAGE\r
+ LTEXT "X-Arcade layout information []#1",IDC_STATIC,64,87,106,15,SS_NOTIFY | SS_CENTERIMAGE\r
+ GROUPBOX "Mouse and Joystick settings",IDC_STATIC,4,15,292,148\r
+ GROUPBOX "Mouse extra settings",IDC_STATIC,4,165,292,69\r
+ RTEXT "Mouse speed:",IDC_STATIC,17,180,56,10,SS_CENTERIMAGE\r
+ EDITTEXT IDC_INPUTSPEEDM,87,180,25,12,ES_NUMBER\r
+ CONTROL "Install virtual mouse driver",IDC_PORT_TABLET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,187,120,10\r
+ CONTROL "Full tablet input emulation",IDC_PORT_TABLET_FULL,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,220,121,10\r
+ CONTROL "Magic Mouse",IDC_PORT_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,175,119,10\r
+ COMBOBOX IDC_PORT_TABLET_CURSOR,167,201,119,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Magic Mouse cursor mode:",IDC_STATIC,17,204,138,10,SS_CENTERIMAGE\r
+ COMBOBOX IDC_PORT0_JOYSMODE,195,47,91,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_PORT1_JOYSMODE,195,82,91,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_PORT2_JOYS,45,125,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ LTEXT "Parallel port joystick adapter",IDC_STATIC,10,105,147,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_PORT3_JOYS,45,143,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+END\r
+\r
+IDD_CONTRIBUTORS DIALOGEX 0, 0, 411, 242\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION\r
+CAPTION "UAE Authors and Contributors..."\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ DEFPUSHBUTTON "Ok",ID_OK,177,224,53,14\r
+ CONTROL "",IDC_CONTRIBUTORS,"RICHEDIT",TCS_HOTTRACK | TCS_VERTICAL | TCS_RAGGEDRIGHT | TCS_OWNERDRAWFIXED | TCS_MULTISELECT | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,4,5,404,214\r
+END\r
+\r
+IDD_ABOUT DIALOGEX 0, 0, 300, 191\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ CONTROL "",IDC_RICHEDIT1,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,45,10,210,15\r
+ CONTROL "",IDC_RICHEDIT2,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,30,260,13\r
+ PUSHBUTTON "Contributors",IDC_CONTRIBUTORS,110,59,80,15\r
+ CONTROL "",IDC_UAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,128,80,15\r
+ CONTROL "",IDC_PICASSOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | NOT WS_VISIBLE | WS_DISABLED,206,55,80,20\r
+ CONTROL "",IDC_AMIGAHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,109,98,80,20\r
+ CONTROL "",IDC_WINUAEHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,98,80,15\r
+ CONTROL "",IDC_AIABHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | NOT WS_VISIBLE | WS_DISABLED,17,59,80,15\r
+ CONTROL "",IDC_THEROOTS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,153,80,15\r
+ CONTROL "",IDC_CAPS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,128,80,15\r
+ CONTROL "",IDC_ABIME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,110,128,80,15\r
+ CONTROL "",IDC_CLOANTOHOME,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,98,80,20\r
+ CONTROL "",IDC_AMIGASYS,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,20,153,80,15\r
+ CONTROL "",IDC_AMIKIT,"RICHEDIT",TCS_SCROLLOPPOSITE | TCS_RAGGEDRIGHT | TCS_MULTISELECT | WS_DISABLED,200,153,80,15\r
+END\r
+\r
+IDD_MISC1 DIALOGEX 0, 0, 300, 237\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "Miscellaneous Options",IDC_STATIC,8,2,290,136\r
+ CONTROL "Untrap = middle button",IDC_JULIAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,19,110,10\r
+ CONTROL "Show GUI on startup",IDC_SHOWGUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,31,109,10\r
+ CONTROL "Native On-screen LEDs",IDC_SHOWLEDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,141,80,109,10\r
+ CONTROL "Don't show taskbar button",IDC_NOTASKBARBUTTON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,56,109,10\r
+ CONTROL "Use CTRL-F11 to quit",IDC_CTRLF11,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,43,110,10\r
+ GROUPBOX "Keyboard LEDs",IDC_STATIC,7,140,85,94\r
+ COMBOBOX IDC_KBLED1,22,154,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_KBLED2,22,173,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_KBLED3,22,193,56,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "Logging",IDC_STATIC,97,140,202,25\r
+ CONTROL "Create log file",IDC_CREATELOGFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,151,72,10\r
+ CONTROL "Illegal memory accesses",IDC_ILLEGAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,189,151,95,10\r
+ GROUPBOX "State Files",IDC_STATIC,98,167,201,68\r
+ PUSHBUTTON "Load state...",IDC_DOLOADSTATE,105,180,49,14\r
+ PUSHBUTTON "Save state...",IDC_DOSAVESTATE,105,208,49,14\r
+ CONTROL "Enable state recording",IDC_STATE_CAPTURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,182,88,10\r
+ RTEXT "Recording rate (seconds):",IDC_STATIC,157,199,86,10,SS_CENTERIMAGE | WS_TABSTOP\r
+ COMBOBOX IDC_STATE_RATE,248,197,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Recording buffer (MB):",IDC_STATIC,160,219,83,10,SS_CENTERIMAGE | WS_TABSTOP\r
+ COMBOBOX IDC_STATE_BUFFERSIZE,248,217,38,65,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Always on top",IDC_ALWAYSONTOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,69,110,10\r
+ CONTROL "USB mode",IDC_KBLED_USB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,216,64,10\r
+ COMBOBOX IDC_SCSIMODE,213,30,80,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_LANGUAGE,153,117,122,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "Language",IDC_STATIC,138,107,154,27\r
+ CONTROL "Disable screensaver",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,82,109,10\r
+ COMBOBOX IDC_DD_SURFACETYPE,213,63,79,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "DirectDraw display buffer:",IDC_STATIC,195,50,92,10,SS_CENTERIMAGE\r
+ RTEXT "SCSI and CD/DVD access method:",IDC_STATIC,151,12,126,10,SS_CENTERIMAGE\r
+ CONTROL "Synchronize clock",IDC_CLOCKSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,95,111,10\r
+ CONTROL "Faster RTG [] Enables less accurate custom chipset emulation mode when Picasso96 is enabled.",IDC_FASTERRTG,\r
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,19,108,100,10\r
+ CONTROL "RTG On-screen LEDs",IDC_SHOWLEDSRTG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,141,93,109,10\r
+END\r
+\r
+IDD_HARDFILE DIALOGEX 0, 0, 299, 249\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Hardfile Settings"\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ GROUPBOX "Settings",IDC_STATIC,10,5,280,146\r
+ RTEXT "Path:",IDC_HARDFILE_DIR_TEXT,25,18,22,10\r
+ EDITTEXT IDC_PATH_NAME,52,15,213,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_SELECTOR,271,15,11,15\r
+ RTEXT "FileSys:",IDC_HARDFILE_FILESYS_TEXT,13,38,34,10\r
+ EDITTEXT IDC_PATH_FILESYS,52,35,213,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_FILESYS_SELECTOR,271,35,11,15\r
+ RTEXT "Device:",IDC_HARDFILE_DEVICE_TEXT,16,58,31,10\r
+ EDITTEXT IDC_HARDFILE_DEVICE,52,55,66,15,ES_AUTOHSCROLL\r
+ RTEXT "Boot priority:",IDC_HARDFILE_BOOTPRI_TEXT,20,94,48,8\r
+ EDITTEXT IDC_HARDFILE_BOOTPRI,73,90,44,15\r
+ CONTROL "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,53,74,64,10\r
+ PUSHBUTTON "Enable RDB mode",IDC_HDF_RDB,174,55,92,14\r
+ RTEXT "Surfaces:",IDC_SURFACES_TEXT,118,94,32,10\r
+ EDITTEXT IDC_HEADS,155,90,40,15,ES_NUMBER\r
+ RTEXT "Reserved:",IDC_RESERVED_TEXT,197,94,35,10\r
+ EDITTEXT IDC_RESERVED,237,90,40,15,ES_NUMBER\r
+ RTEXT "Sectors:",IDC_SECTORS_TEXT,120,113,30,10\r
+ EDITTEXT IDC_SECTORS,155,111,40,15,ES_NUMBER\r
+ RTEXT "Block size:",IDC_BLOCKSIZE_TEXT,197,113,35,10\r
+ EDITTEXT IDC_BLOCKSIZE,237,111,40,15,ES_NUMBER\r
+ GROUPBOX "New hard disk image file",IDC_STATIC,10,156,280,62\r
+ PUSHBUTTON "Create",IDC_HF_CREATE,23,171,80,14\r
+ EDITTEXT IDC_HF_SIZE,119,171,61,15,ES_NUMBER\r
+ PUSHBUTTON "OK",IDOK,102,226,50,14\r
+ PUSHBUTTON "Cancel",IDCANCEL,158,226,50,14\r
+ EDITTEXT IDC_HF_DOSTYPE,119,194,61,15\r
+ COMBOBOX IDC_HF_TYPE,23,195,80,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_HDF_CONTROLLER,73,112,44,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "DOS type",IDC_STATIC,187,196,32,10,SS_CENTERIMAGE\r
+ RTEXT "MB",IDC_STATIC,185,174,17,10,SS_CENTERIMAGE\r
+ RTEXT "HD Controller:",IDC_STATIC,16,113,52,10,SS_CENTERIMAGE\r
+ CONTROL "Bootable",IDC_HDF_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,136,74,53,10\r
+ CONTROL "Do not mount",IDC_HDF_DONOTMOUNT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,217,74,67,10\r
+ EDITTEXT IDC_HDFINFO,16,131,268,12,ES_CENTER | ES_READONLY\r
+ CONTROL "Sparse file",IDC_HF_SPARSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,168,62,10\r
+ CONTROL "Dynamic HDF",IDC_HF_DYNAMIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,220,180,62,10\r
+END\r
+\r
+IDD_FILESYS DIALOGEX 15, 25, 299, 111\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Volume Settings"\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ LTEXT "Device name:",-1,11,7,54,10\r
+ EDITTEXT IDC_VOLUME_DEVICE,65,5,104,15,ES_AUTOHSCROLL\r
+ LTEXT "Volume label:",-1,13,28,54,10\r
+ EDITTEXT IDC_VOLUME_NAME,65,25,104,15,ES_AUTOHSCROLL\r
+ LTEXT "Path:",-1,38,49,44,10\r
+ EDITTEXT IDC_PATH_NAME,65,46,227,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "Select Directory",IDC_FS_SELECT_DIR,65,66,103,15\r
+ CONTROL "Read/write",IDC_FS_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,174,7,55,10\r
+ RTEXT "Boot priority:",IDC_VOLUME_BOOTPRI_TEXT,178,28,49,8\r
+ EDITTEXT IDC_VOLUME_BOOTPRI,236,25,30,15\r
+ PUSHBUTTON "OK",IDOK,65,91,48,15\r
+ PUSHBUTTON "Cancel",IDCANCEL,120,91,48,15\r
+ PUSHBUTTON "Select Archive or Plain File",IDC_FS_SELECT_FILE,190,66,103,15\r
+ PUSHBUTTON "Eject",IDC_FS_SELECT_EJECT,230,91,62,15\r
+ CONTROL "Bootable",IDC_FS_AUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,236,7,53,10\r
+END\r
+\r
+IDD_SETINFO DIALOGEX 0, 0, 229, 85\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Additional Information Settings"\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ RTEXT "Path:",-1,5,20,24,15,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATH_NAME,35,20,169,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_SELECTOR,210,20,10,15\r
+ PUSHBUTTON "OK",IDOK,120,65,48,15\r
+ PUSHBUTTON "Cancel",IDCANCEL,175,65,48,15\r
+END\r
+\r
+IDD_CHIPSET DIALOGEX 0, 65490, 300, 229\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ GROUPBOX "Chipset",IDC_STATIC,14,11,145,90\r
+ CONTROL "OCS [] Original chipset. A1000 and most A500s.",IDC_OCS,\r
+ "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,26,51,10\r
+ CONTROL "ECS Agnus [] Enhanced chipset (ECS Agnus chip only). CDTV and later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS,\r
+ "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,42,55,10\r
+ CONTROL "ECS Denise [] Enhanced chipset (ECS Denise chip only). Normally paired with ECS Agnus.",IDC_ECS_DENISE,\r
+ "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,42,55,10\r
+ CONTROL "Full ECS [] Full ECS chipset (ECS Agnus and ECS Denise chips). A500+, A600 and A3000.",IDC_ECS,\r
+ "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,58,52,10\r
+ CONTROL "AGA [] Advanced Graphics Architecture chipset. A1200, A4000 and CD32.",IDC_AGA,\r
+ "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,26,51,10\r
+ CONTROL "NTSC [] North American and Japanese display standard, 60Hz refresh rate. Other countries use PAL (50Hz. display refresh rate)",IDC_NTSC,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,58,50,10\r
+ GROUPBOX "Options",IDC_STATIC,168,11,114,89\r
+ CONTROL "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,179,33,96,10\r
+ CONTROL "Cycle-exact [] The most compatible A500 emulation mode. Very fast PC recommended.",IDC_CYCLEEXACT,\r
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,179,46,100,10\r
+ GROUPBOX "Collision Level",IDC_STATIC,14,105,267,48\r
+ CONTROL "None [] Collision hardware emulation disabled.",IDC_COLLISION0,\r
+ "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,121,59,10\r
+ CONTROL "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1,\r
+ "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,137,62,10\r
+ CONTROL "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2,\r
+ "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,121,161,10\r
+ CONTROL "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3,\r
+ "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,100,137,119,10\r
+ GROUPBOX "Sound Emulation",IDC_STATIC,13,159,268,65\r
+ CONTROL "Disabled",IDC_CS_SOUND0,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,37,175,102,10\r
+ CONTROL "Emulated",IDC_CS_SOUND1,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,190,91,10\r
+ CONTROL "Emulated, 100% accurate",IDC_CS_SOUND2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,37,205,95,10\r
+ CONTROL "Genlock connected [] Allow boot sequence to detect genlock. Genlock is not emulated.",IDC_GENLOCK,\r
+ "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,179,59,100,10\r
+ COMBOBOX IDC_CS_EXT,100,80,49,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Chipset Extra",IDC_STATIC,25,79,52,15,SS_CENTERIMAGE\r
+END\r
+\r
+IDD_CHIPSET2 DIALOGEX 0, 65490, 300, 247\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ GROUPBOX "Battery Backed Up Real Time Clock",IDC_STATIC,11,24,275,29\r
+ CONTROL "None",IDC_CS_RTC1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,36,55,10\r
+ CONTROL "MSM6242B",IDC_CS_RTC2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,36,52,10\r
+ CONTROL "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,159,36,46,10\r
+ EDITTEXT IDC_CS_RTCADJUST,215,34,64,13,ES_AUTOHSCROLL\r
+ GROUPBOX "CIA-A TOD Clock Source",IDC_STATIC,11,56,275,29\r
+ CONTROL "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,19,68,63,10\r
+ CONTROL "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,68,85,10\r
+ CONTROL "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,186,68,88,10\r
+ CONTROL "ROM Mirror (A8)",IDC_CS_KSMIRROR_A8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,146,80,10\r
+ CONTROL "A1000 Boot RAM/ROM",IDC_CS_A1000RAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,95,88,10\r
+ CONTROL "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,108,76,10\r
+ CONTROL "CD32 C2P",IDC_CS_CD32C2P,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,108,87,10\r
+ CONTROL "CD32 NVRAM",IDC_CS_CD32NVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,108,84,10\r
+ CONTROL "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,121,47,10\r
+ CONTROL "CDTV SRAM",IDC_CS_CDTVRAM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,120,87,10\r
+ CONTROL "CDTV SRAM Expansion",IDC_CS_CDTVRAMEXP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,120,90,10\r
+ CONTROL "A600/A1200 IDE",IDC_CS_IDE1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,133,79,10\r
+ CONTROL "A4000/A4000T IDE",IDC_CS_IDE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,133,88,10\r
+ CONTROL "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,216,71,10\r
+ EDITTEXT IDC_CS_RAMSEYREV,91,214,45,13,ES_AUTOHSCROLL\r
+ CONTROL "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,229,71,10\r
+ EDITTEXT IDC_CS_FATGARYREV,91,228,45,13,ES_AUTOHSCROLL\r
+ CONTROL "A3000 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,188,76,10\r
+ CONTROL "Compatible Settings",IDC_CS_COMPATIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,8,234,10\r
+ CONTROL "DF0: ID Hardware",IDC_CS_DF0IDHW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,95,92,10\r
+ CONTROL "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,216,81,10\r
+ EDITTEXT IDC_CS_AGNUSREV,232,214,45,13,ES_AUTOHSCROLL\r
+ CONTROL "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,229,81,10\r
+ EDITTEXT IDC_CS_DENISEREV,232,228,45,13,ES_AUTOHSCROLL\r
+ CONTROL "A590/A2091 SCSI",IDC_CS_A2091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,188,76,10\r
+ CONTROL "A4000T SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,188,88,10\r
+ LTEXT "A4091/A4000T SCSI not yet implemented.",IDC_STATIC,17,174,159,8,SS_CENTERIMAGE\r
+ CONTROL "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,133,92,10\r
+ CONTROL "A4091 SCSI",IDC_CS_A4091,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,200,76,10\r
+ CONTROL "CDTV SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,200,76,10\r
+ CONTROL "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,200,101,10\r
+ CONTROL "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,146,92,10\r
+ CONTROL "ROM Mirror (E0)",IDC_CS_KSMIRROR_E0,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,146,80,10\r
+ CONTROL "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,95,80,10\r
+ CONTROL "KB Reset Warning",IDC_CS_RESETWARNING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,159,80,10\r
+ CONTROL "No-EHB Denise",IDC_CS_NOEHB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,94,159,80,10\r
+ CONTROL "Blitter Busy Bug",IDC_CS_BLITTERBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,159,80,10\r
+END\r
+\r
+IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 217\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "Output Properties",IDC_STATIC,5,0,274,126\r
+ EDITTEXT IDC_AVIOUTPUT_FILETEXT,15,15,226,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER,WS_EX_CLIENTEDGE\r
+ PUSHBUTTON "...",IDC_AVIOUTPUT_FILE,249,15,19,12\r
+ CONTROL "Audio",IDC_AVIOUTPUT_AUDIO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,33,39,14\r
+ CONTROL "",IDC_AVIOUTPUT_AUDIO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,34,209,13\r
+ CONTROL "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,39,14\r
+ CONTROL "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,51,209,13\r
+ CONTROL "Disable frame rate limit",IDC_AVIOUTPUT_FRAMELIMITER,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,71,122,10\r
+ CONTROL "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14\r
+ PUSHBUTTON "Save screenshot",IDC_SCREENSHOT,16,141,77,14\r
+ GROUPBOX "Ripper",IDC_STATIC,5,127,274,49\r
+ PUSHBUTTON "Pro Wizard 1.62",IDC_PROWIZARD,192,141,77,14,WS_DISABLED\r
+ CONTROL "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,159,77,14\r
+ GROUPBOX "Input Recorder",IDC_STATIC,5,178,274,33\r
+ CONTROL "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,190,77,14\r
+ CONTROL "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,190,77,14\r
+ CONTROL "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,192,78,10\r
+ CONTROL "Disable sound output",IDC_AVIOUTPUT_NOSOUNDOUTPUT,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,88,123,10\r
+ CONTROL "Disable sound sync",IDC_AVIOUTPUT_NOSOUNDSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,88,120,10\r
+ CONTROL "Capture before filtering",IDC_AVIOUTPUT_ORIGINALSIZE,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,71,120,10\r
+ CONTROL "Take screenshot before filtering",IDC_SCREENSHOT_ORIGINALSIZE,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,160,162,10\r
+END\r
+\r
+IDD_INPUT DIALOGEX 0, 0, 300, 242\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ COMBOBOX IDC_INPUTTYPE,5,5,98,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_INPUTDEVICE,109,5,167,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "",IDC_INPUTDEVICEDISABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,282,8,9,8\r
+ CONTROL "List1",IDC_INPUTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,5,22,290,146\r
+ COMBOBOX IDC_INPUTAMIGACNT,5,174,24,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_INPUTAMIGA,33,174,262,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Joystick dead zone (%):",-1,7,196,79,10,SS_CENTERIMAGE\r
+ EDITTEXT IDC_INPUTDEADZONE,92,195,25,12,ES_NUMBER\r
+ RTEXT "Autofire rate (frames):",-1,10,212,76,10,SS_CENTERIMAGE\r
+ EDITTEXT IDC_INPUTAUTOFIRERATE,92,210,25,12,ES_NUMBER\r
+ RTEXT "Digital joy-mouse speed:",-1,124,196,84,10,SS_CENTERIMAGE\r
+ EDITTEXT IDC_INPUTSPEEDD,215,195,25,12,ES_NUMBER\r
+ RTEXT "Analog joy-mouse speed:",-1,120,212,88,10,SS_CENTERIMAGE\r
+ EDITTEXT IDC_INPUTSPEEDA,215,211,25,12,ES_NUMBER\r
+ PUSHBUTTON "Copy from:",IDC_INPUTCOPY,249,195,45,14\r
+ COMBOBOX IDC_INPUTCOPYFROM,249,211,45,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Swap 1<>2",IDC_INPUTSWAP,249,226,45,14\r
+END\r
+\r
+IDD_FILTER DIALOGEX 0, 0, 296, 241\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "Filter Settings",-1,0,1,294,199\r
+ COMBOBOX IDC_FILTERMODE,20,15,103,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERFILTER,132,15,83,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Reset to defaults",IDC_FILTERDEFAULT,221,15,67,14\r
+ RTEXT "Horiz. size:",-1,7,61,46,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,54,152,19\r
+ EDITTEXT IDC_FILTERHZV,253,56,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Vert. size:",-1,7,81,46,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_FILTERVZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,74,152,19\r
+ EDITTEXT IDC_FILTERVZV,253,76,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Horiz. position:",-1,5,101,55,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_FILTERHO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,94,151,19\r
+ EDITTEXT IDC_FILTERHOV,253,96,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Vert. position:",-1,5,120,55,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_FILTERVO,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,114,151,19\r
+ EDITTEXT IDC_FILTERVOV,253,116,34,12,ES_CENTER | ES_READONLY\r
+ RTEXT "Extra settings:",-1,105,135,57,10,SS_CENTERIMAGE\r
+ CONTROL "Slider1",IDC_FILTERXL,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,174,151,19\r
+ EDITTEXT IDC_FILTERXLV,253,176,34,12,ES_CENTER | ES_READONLY\r
+ COMBOBOX IDC_FILTERSLR,253,151,33,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "Presets",-1,0,203,296,36\r
+ COMBOBOX IDC_FILTERPRESETS,8,217,119,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Load",IDC_FILTERPRESETLOAD,132,216,47,14\r
+ PUSHBUTTON "Save",IDC_FILTERPRESETSAVE,184,216,47,14\r
+ PUSHBUTTON "Delete",IDC_FILTERPRESETDELETE,236,216,47,14\r
+ COMBOBOX IDC_FILTERHZMULT,59,60,35,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERVZMULT,59,80,35,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERXTRA,105,151,138,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERASPECT,14,151,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Keep aspect ratio",IDC_FILTERKEEPASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,168,85,10\r
+ RTEXT "Automatic scaling:",-1,9,38,79,10,SS_CENTERIMAGE\r
+ COMBOBOX IDC_FILTERAUTOSCALE,105,36,140,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERASPECT2,14,180,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+END\r
+\r
+IDD_HARDDRIVE DIALOGEX 0, 0, 380, 76\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Harddrive Settings"\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ LTEXT "Hard drive:",IDC_STATIC,7,11,80,10\r
+ COMBOBOX IDC_HARDDRIVE,49,9,325,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,51,55,10\r
+ DEFPUSHBUTTON "Add hard drive",IDOK,231,48,65,14\r
+ PUSHBUTTON "Cancel",IDCANCEL,319,48,54,14\r
+ DEFPUSHBUTTON "Create hard disk image file",IDC_HARDDRIVE_IMAGE,49,30,115,14\r
+ EDITTEXT IDC_PATH_NAME,183,27,97,15,ES_AUTOHSCROLL | NOT WS_VISIBLE\r
+ COMBOBOX IDC_HDF_CONTROLLER,102,50,41,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "HD Controller:",IDC_STATIC,42,51,52,10,SS_CENTERIMAGE\r
+END\r
+\r
+IDD_MISC2 DIALOGEX 0, 0, 300, 244\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "When Active",IDC_STATIC,8,7,88,73\r
+ RTEXT "Run at priority:",IDC_ACTIVE_PRI,14,17,52,10,SS_CENTERIMAGE | WS_TABSTOP\r
+ COMBOBOX IDC_ACTIVE_PRIORITY,14,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "When Inactive",IDC_STATIC,102,7,92,73\r
+ RTEXT "Run at priority:",IDC_INACTIVE_PRI,109,17,51,10,SS_CENTERIMAGE | WS_TABSTOP\r
+ COMBOBOX IDC_INACTIVE_PRIORITY,109,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Pause emulation",IDC_INACTIVE_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,50,69,10\r
+ CONTROL "Disable sound",IDC_INACTIVE_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,63,79,10\r
+ GROUPBOX "When Minimized",IDC_STATIC,199,7,92,73\r
+ RTEXT "Run at priority:",IDC_MINIMIZED_PRI,207,18,51,10,SS_CENTERIMAGE | WS_TABSTOP\r
+ COMBOBOX IDC_MINIMIZED_PRIORITY,207,29,76,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Pause emulation",IDC_MINIMIZED_PAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,50,69,10\r
+ CONTROL "Disable sound",IDC_MINIMIZED_NOSOUND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,207,63,79,10\r
+ CONTROL "",IDC_ASSOCIATELIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,19,94,164,100\r
+ GROUPBOX "File Extension Associations",IDC_STATIC,8,83,186,138\r
+ PUSHBUTTON "Deassociate all",IDC_ASSOCIATE_OFF,108,200,75,14\r
+ PUSHBUTTON "Associate all",IDC_ASSOCIATE_ON,19,200,75,14\r
+END\r
+\r
+IDD_DISK DIALOGEX 0, 0, 300, 242\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_CONTROL | DS_CENTER | DS_CENTERMOUSE | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ CONTROL "",IDC_DISKLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,4,6,292,196\r
+ PUSHBUTTON "Remove floppy disk image",IDC_DISKLISTREMOVE,156,223,101,15\r
+ COMBOBOX IDC_DISKTEXT,3,205,293,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Insert floppy disk image",IDC_DISKLISTINSERT,41,223,101,15\r
+END\r
+\r
+IDD_PANEL DIALOGEX 0, 0, 420, 278\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+EXSTYLE WS_EX_ACCEPTFILES | WS_EX_CONTROLPARENT\r
+CAPTION "WinUAE Properties"\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ GROUPBOX "",IDC_PANEL_FRAME,112,4,303,247,NOT WS_VISIBLE\r
+ CONTROL "",IDC_PANELTREE,"SysTreeView32",TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_NOSCROLL | WS_BORDER | WS_HSCROLL | WS_TABSTOP,5,5,101,248,WS_EX_CLIENTEDGE\r
+ GROUPBOX "",IDC_PANEL_FRAME_OUTER,110,2,307,251\r
+ PUSHBUTTON "Reset",IDC_RESETAMIGA,5,259,47,14\r
+ PUSHBUTTON "Quit",IDC_QUITEMU,55,259,47,14\r
+ DEFPUSHBUTTON "OK",IDOK,260,259,50,14\r
+ PUSHBUTTON "Cancel",IDCANCEL,313,259,50,14\r
+ PUSHBUTTON "Help",IDHELP,366,259,50,14,WS_DISABLED\r
+ PUSHBUTTON "Restart",IDC_RESTARTEMU,106,259,47,14,NOT WS_VISIBLE\r
+END\r
+\r
+IDD_PATHS DIALOGEX 0, 0, 300, 243\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ LTEXT "System ROMs:",IDC_PATHS_ROML,14,4,260,8,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATHS_ROM,14,15,261,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_PATHS_ROMS,281,15,11,15\r
+ LTEXT "Configuration files:",IDC_PATHS_CONFIGL,14,32,121,8,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATHS_CONFIG,14,42,261,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_PATHS_CONFIGS,281,42,11,15\r
+ LTEXT "Screenshots:",IDC_PATHS_SCREENSHOTL,14,59,260,8,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATHS_SCREENSHOT,14,69,261,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_PATHS_SCREENSHOTS,281,69,11,15\r
+ LTEXT "State files:",IDC_PATHS_STATEFILEL,14,86,260,8,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATHS_SAVESTATE,14,96,261,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_PATHS_SAVESTATES,281,96,11,15\r
+ LTEXT "Videos:",IDC_PATHS_AVIOUTPUTL,14,113,260,8,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATHS_AVIOUTPUT,14,123,261,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_PATHS_AVIOUTPUTS,281,123,11,15\r
+ LTEXT "Saveimages:",IDC_PATHS_SAVEIMAGEL,14,140,261,8,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATHS_SAVEIMAGE,14,151,261,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_PATHS_SAVEIMAGES,281,151,11,15\r
+ PUSHBUTTON "Reset to defaults",IDC_PATHS_DEFAULT,14,196,92,14\r
+ PUSHBUTTON "Rescan ROMs",IDC_ROM_RESCAN,14,212,92,14\r
+ PUSHBUTTON "Clear registry",IDC_RESETREGISTRY,111,212,92,14\r
+ COMBOBOX IDC_PATHS_DEFAULTTYPE,111,197,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Clear disk history",IDC_RESETDISKHISTORY,14,228,92,14\r
+ CONTROL "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,177,32,97,10\r
+ LTEXT "Rips:",IDC_PATHS_RIPSL,13,168,261,8,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PATHS_RIP,13,178,261,15,ES_AUTOHSCROLL\r
+ PUSHBUTTON "...",IDC_PATHS_RIPS,280,178,11,15\r
+END\r
+\r
+IDD_QUICKSTART DIALOGEX 0, 0, 300, 242\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ GROUPBOX "Emulated Hardware",IDC_QUICKSTART_CONFIG,3,0,294,54\r
+ RTEXT "Model:",IDC_STATIC,5,14,50,10,SS_CENTERIMAGE\r
+ COMBOBOX IDC_QUICKSTART_MODEL,59,12,233,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Configuration:",IDC_STATIC,5,33,50,10,SS_CENTERIMAGE\r
+ COMBOBOX IDC_QUICKSTART_CONFIGURATION,59,31,233,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "Compatibility vs Required CPU Power ",IDC_QUICKSTART_COMPA,3,56,294,33\r
+ RTEXT "Best compatibility",IDC_STATIC,13,70,67,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_QUICKSTART_COMPATIBILITY,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,95,65,115,21\r
+ RTEXT "Low compatibility",IDC_STATIC,215,70,63,10,SS_CENTERIMAGE\r
+ GROUPBOX "Host Configuration",IDC_QUICKSTART_HOST,3,91,294,33\r
+ RTEXT "Configuration:",IDC_STATIC,5,105,55,10,SS_CENTERIMAGE\r
+ COMBOBOX IDC_QUICKSTART_HOSTCONFIG,65,103,225,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ GROUPBOX "Emulated Floppy Drives",IDC_QUICKSTART_DF,3,126,294,84\r
+ CONTROL "Floppy drive DF0:",IDC_DF0QENABLE,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,136,72,15\r
+ PUSHBUTTON "Select disk image",IDC_DF0QQ,85,136,98,15\r
+ RTEXT "Write-protected",IDC_STATIC,185,139,56,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_DF0WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,137,10,15\r
+ PUSHBUTTON "Eject",IDC_EJECT0Q,261,136,30,15\r
+ COMBOBOX IDC_DF0TEXTQ,9,154,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Floppy drive DF1:",IDC_DF1QENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,172,71,15\r
+ PUSHBUTTON "Select disk image",IDC_DF1QQ,85,172,98,15\r
+ RTEXT "Write-protected",IDC_STATIC,185,175,55,10,SS_CENTERIMAGE\r
+ CONTROL "",IDC_DF1WPQ,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,246,173,10,15\r
+ PUSHBUTTON "Eject",IDC_EJECT1Q,261,172,30,15\r
+ COMBOBOX IDC_DF1TEXTQ,9,190,282,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Set configuration",IDC_QUICKSTART_SETCONFIG,9,219,72,15,NOT WS_VISIBLE\r
+ GROUPBOX "Mode",IDC_STATIC,190,211,107,27,BS_LEFT\r
+ CONTROL "Start in Quickstart mode",IDC_QUICKSTARTMODE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,197,222,94,10\r
+END\r
+\r
+IDD_FRONTEND DIALOGEX 0, 0, 420, 242\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ CONTROL "",IDC_FE_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,6,9,235,124\r
+ GROUPBOX "",IDC_FE_INFO,249,140,160,95\r
+ GROUPBOX "",IDC_FE_SCREENSHOT,249,7,160,128\r
+END\r
+\r
+IDD_PROGRESSBAR DIALOGEX 0, 0, 229, 58\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Processing..."\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ PUSHBUTTON "Cancel",IDCANCEL,88,40,50,14\r
+ CONTROL "",IDC_PROGRESSBAR,"msctls_progress32",PBS_SMOOTH | WS_BORDER,7,19,215,14\r
+ CTEXT "x",IDC_PROGRESSBAR_TEXT,23,5,187,10,SS_CENTERIMAGE | WS_TABSTOP\r
+END\r
+\r
+IDD_STRINGBOX DIALOGEX 0, 0, 229, 58\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Enter text..."\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ DEFPUSHBUTTON "OK",IDOK,48,39,50,14\r
+ PUSHBUTTON "Cancel",IDCANCEL,151,39,50,14\r
+ EDITTEXT IDC_STRINGBOXEDIT,7,17,214,14,ES_AUTOHSCROLL | ES_WANTRETURN\r
+END\r
+\r
+IDD_DEBUGGER DIALOGEX 0, 0, 454, 368\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
+EXSTYLE WS_EX_CONTROLPARENT\r
+CAPTION "WinUAE Debugger"\r
+FONT 8, "Courier New", 0, 0, 0x0\r
+BEGIN\r
+ EDITTEXT IDC_DBG_OUTPUT1,1,255,370,86,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP\r
+ EDITTEXT IDC_DBG_OUTPUT2,1,79,370,262,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT WS_TABSTOP\r
+ LISTBOX IDC_DBG_MEM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_DASM,1,92,370,249,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ EDITTEXT IDC_DBG_MEMINPUT,1,79,36,12,ES_AUTOHSCROLL | ES_WANTRETURN\r
+ EDITTEXT IDC_DBG_INPUT,1,342,354,12,ES_AUTOHSCROLL | ES_WANTRETURN\r
+ PUSHBUTTON "?",IDC_DBG_HELP,356,342,15,12,NOT WS_TABSTOP\r
+ PUSHBUTTON "Set to PC",IDC_DBG_MEMTOPC,38,79,45,12,NOT WS_TABSTOP\r
+ LISTBOX IDC_DBG_DREG,1,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_AREG,54,1,52,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_AMEM,106,1,231,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_CCR,338,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_SP_VBR,338,44,115,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_MMISC,396,1,57,42,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_PC,1,68,52,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_PREFETCH,54,68,283,10,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_FPREG,372,218,81,66,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_FPSR,372,285,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_MISCCPU,372,320,81,34,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ CONTROL "",IDC_DBG_STATUS,"msctls_statusbar32",0x103,0,355,453,12\r
+ LISTBOX IDC_DBG_BRKPTS,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL\r
+ LISTBOX IDC_DBG_MCUSTOM,372,79,81,138,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_MISC,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL\r
+ LISTBOX IDC_DBG_CUSTOM,1,79,370,262,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_VSCROLL\r
+ CONTROL "Auto set",IDC_DBG_AUTOSET,"Button",BS_AUTOCHECKBOX,84,79,50,12\r
+ LISTBOX IDC_DBG_DASM2,1,79,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+ LISTBOX IDC_DBG_MEM2,1,167,370,87,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT\r
+END\r
+\r
+IDD_DBGMEMINPUT DIALOGEX 0, 0, 150, 58\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
+CAPTION "Enter address..."\r
+FONT 8, "MS Sans Serif", 0, 0, 0x0\r
+BEGIN\r
+ DEFPUSHBUTTON "OK",IDOK,15,39,50,14\r
+ PUSHBUTTON "Cancel",IDCANCEL,75,39,50,14\r
+ EDITTEXT IDC_DBG_MEMINPUT2,20,12,100,14,ES_AUTOHSCROLL | ES_WANTRETURN\r
+ CTEXT "Enter address",IDC_DBG_ADDRINPUTTXT,20,1,100,10,SS_CENTERIMAGE | WS_TABSTOP\r
+END\r
+\r
+IDD_EXPANSION DIALOGEX 0, 0, 300, 206\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ RTEXT "Memory: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,25,44,53,10,SS_NOTIFY | SS_CENTERIMAGE\r
+ CONTROL "",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,40,60,20\r
+ EDITTEXT IDC_P96RAM,152,43,34,12,ES_CENTER | ES_READONLY\r
+ GROUPBOX "RTG Graphics Card",IDC_STATIC,5,12,291,113\r
+ CONTROL "Scale if smaller than display size setting",IDC_RTG_SCALE,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,74,162,10\r
+ CONTROL "Match host and RTG color depth if possible",IDC_RTG_MATCH_DEPTH,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,163,10\r
+ COMBOBOX IDC_RTG_8BIT,211,29,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_RTG_16BIT,211,44,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_RTG_24BIT,211,59,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_RTG_32BIT,211,74,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Always scale in windowed mode",IDC_RTG_SCALE_ALLOW,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,86,162,10\r
+ COMBOBOX IDC_RTG_SCALE_ASPECTRATIO,211,101,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "Aspect ratio:",IDC_STATIC,153,102,52,10,SS_CENTERIMAGE\r
+ RTEXT "Refresh rate:",IDC_STATIC,22,103,51,10,SS_CENTERIMAGE\r
+ COMBOBOX IDC_RTG_VBLANKRATE,77,101,68,150,CBS_DROPDOWN | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "bsdsocket.library [] bsdsocket network library emulation.",IDC_SOCKETS,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,142,148,120,10\r
+ CONTROL "uaenet.device [] Sana 2 compatible network device emulation. WinPcap required.",IDC_SANA2,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,142,160,77,10\r
+ CONTROL "A2065 Z2 [] A2065 Ethernet Zorro II card emulation. WinPcap required.",IDC_A2065,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,233,160,57,10\r
+ GROUPBOX "Network",IDC_STATIC,126,130,169,66\r
+ COMBOBOX IDC_NETDEVICE,132,176,156,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,160,102,10\r
+ CONTROL "Catweasel Z2 emulation [] Catweasel MK2 Zorro II card emulation. Physical Windows compatible Catweasel card and drivers required.",IDC_CATWEASEL,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,148,101,10\r
+ GROUPBOX "Miscellaneous Expansions",IDC_STATIC,5,130,117,66\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Version\r
+//\r
+\r
+VS_VERSION_INFO VERSIONINFO\r
+ FILEVERSION 2,0,2,0\r
+ PRODUCTVERSION 2,0,2,0\r
+ FILEFLAGSMASK 0x3fL\r
+#ifdef _DEBUG\r
+ FILEFLAGS 0x1L\r
+#else\r
+ FILEFLAGS 0x0L\r
+#endif\r
+ FILEOS 0x40004L\r
+ FILETYPE 0x1L\r
+ FILESUBTYPE 0x0L\r
+BEGIN\r
+ BLOCK "StringFileInfo"\r
+ BEGIN\r
+ BLOCK "040904b0"\r
+ BEGIN\r
+ VALUE "FileDescription", "WinUAE"\r
+ VALUE "FileVersion", "2.0.2"\r
+ VALUE "InternalName", "WinUAE"\r
+ VALUE "LegalCopyright", "© 1996-2010 under the GNU Public License (GPL)"\r
+ VALUE "OriginalFilename", "WinUAE.exe"\r
+ VALUE "ProductName", "WinUAE"\r
+ VALUE "ProductVersion", "2.0.2"\r
+ END\r
+ END\r
+ BLOCK "VarFileInfo"\r
+ BEGIN\r
+ VALUE "Translation", 0x409, 1200\r
+ END\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Cursor\r
+//\r
+\r
+IDC_MYHAND CURSOR "H_arrow.cur"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Menu\r
+//\r
+\r
+IDM_SYSTRAY MENU \r
+BEGIN\r
+ POPUP "Menu"\r
+ BEGIN\r
+ MENUITEM "Configuration", ID_ST_CONFIGURATION\r
+ POPUP "Floppy drives"\r
+ BEGIN\r
+ MENUITEM "Eject all drives", ID_ST_EJECTALL\r
+ MENUITEM "DF0:", ID_ST_DF0\r
+ MENUITEM "DF1:", ID_ST_DF1\r
+ MENUITEM "DF2:", ID_ST_DF2\r
+ MENUITEM "DF3:", ID_ST_DF3\r
+ END\r
+ MENUITEM "Reset", ID_ST_RESET\r
+ MENUITEM "Help", ID_ST_HELP\r
+ MENUITEM "Quit WinUAE", ID_ST_QUIT\r
+ END\r
+END\r
+\r
+IDM_DBGCONTEXTMENU MENU \r
+BEGIN\r
+ POPUP "Inactive"\r
+ BEGIN\r
+ POPUP "Copy"\r
+ BEGIN\r
+ MENUITEM "Copy line", ID_DBG_COPYLBLINE\r
+ MENUITEM "Copy all", ID_DBG_COPYLB\r
+ END\r
+ END\r
+ POPUP "Memory"\r
+ BEGIN\r
+ POPUP "Copy"\r
+ BEGIN\r
+ MENUITEM "Copy line", ID_DBG_COPYLBLINE\r
+ MENUITEM "Copy all", ID_DBG_COPYLB\r
+ END\r
+ POPUP "Set top address"\r
+ BEGIN\r
+ MENUITEM "Set to A0", ID_DBG_SETTOA0\r
+ MENUITEM "Set to A1", ID_DBG_SETTOA1\r
+ MENUITEM "Set to A2", ID_DBG_SETTOA2\r
+ MENUITEM "Set to A3", ID_DBG_SETTOA3\r
+ MENUITEM "Set to A4", ID_DBG_SETTOA4\r
+ MENUITEM "Set to A5", ID_DBG_SETTOA5\r
+ MENUITEM "Set to A6", ID_DBG_SETTOA6\r
+ MENUITEM "Set to A7", ID_DBG_SETTOA7\r
+ MENUITEM "Enter address", ID_DBG_ENTERADDR\r
+ END\r
+ END\r
+ POPUP "Disassembly"\r
+ BEGIN\r
+ POPUP "Copy"\r
+ BEGIN\r
+ MENUITEM "Copy line", ID_DBG_COPYLBLINE\r
+ MENUITEM "Copy all", ID_DBG_COPYLB\r
+ END\r
+ POPUP "Breakpoints"\r
+ BEGIN\r
+ MENUITEM "Toggle breakpoint", ID_DBG_TOGGLEBP\r
+ MENUITEM "Clear all breakpoints", ID_DBG_DELETEBPS\r
+ END\r
+ POPUP "Set top address"\r
+ BEGIN\r
+ MENUITEM "Set to PC", ID_DBG_SETTOPC\r
+ MENUITEM "Enter address", ID_DBG_ENTERADDR\r
+ END\r
+ END\r
+END\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// WAVE\r
+//\r
+\r
+IDR_DRIVE_STARTUP_A500_1 WAVE "drive_startup.wav"\r
+IDR_DRIVE_CLICK_A500_1 WAVE "drive_click.wav"\r
+IDR_DRIVE_SPIN_A500_1 WAVE "drive_spin.wav"\r
+IDR_DRIVE_SNATCH_A500_1 WAVE "drive_snatch.wav"\r
+IDR_DRIVE_SPINND_A500_1 WAVE "drive_spinnd.wav"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Bitmap\r
+//\r
+\r
+IDB_XARCADE BITMAP "xarcade-winuae.bmp"\r
+IDB_LCD160X43 BITMAP "lcd.bmp"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// DESIGNINFO\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+GUIDELINES DESIGNINFO \r
+BEGIN\r
+ IDD_FILTER, DIALOG\r
+ BEGIN\r
+ BOTTOMMARGIN, 237\r
+ END\r
+END\r
+#endif // APSTUDIO_INVOKED\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// String Table\r
+//\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_KICKSTART "ROM"\r
+ IDS_DISK "Disk swapper"\r
+ IDS_DISPLAY "Display"\r
+ IDS_HARDDISK "Hard drives"\r
+ IDS_FLOPPY "Floppy drives"\r
+ IDS_ABOUT "About"\r
+ IDS_LOADSAVE "Configurations"\r
+ IDS_AVIOUTPUT "Output"\r
+ IDS_IOPORTS "IO ports"\r
+ IDS_MISC1 "Miscellaneous"\r
+ IDS_MEMORY "RAM"\r
+ IDS_CPU "CPU and FPU"\r
+ IDS_CHIPSET "Chipset"\r
+ IDS_INPUT "Input"\r
+ IDS_FILTER "Filter"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_MISC2 "Pri. & Extensions"\r
+ IDS_PATHS "Paths"\r
+ IDS_QUICKSTART "Quickstart"\r
+ IDS_FRONTEND "Frontend"\r
+ IDS_CHIPSET2 "Adv. Chipset"\r
+ IDS_GAMEPORTS "Game ports"\r
+ IDS_EXPANSION "Expansions"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_EXTTEXT "Floppy disk image files"\r
+ IDS_EXTACTUAL "ADF"\r
+ IDS_SOUND "Sound"\r
+ IDS_CDROM "CD-ROM"\r
+ IDS_FRAMERATE "Every %1Frame"\r
+ IDS_SECOND "second "\r
+ IDS_THIRD "third "\r
+ IDS_FOURTH "fourth "\r
+ IDS_FIFTH "fifth "\r
+ IDS_SIXTH "sixth "\r
+ IDS_SEVENTH "seventh "\r
+ IDS_EIGHTH "eighth "\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_NINTH "ninth "\r
+ IDS_TENTH "tenth "\r
+ IDS_SELECTADF "Select a floppy disk image file..."\r
+ IDS_ADF "Floppy disk image files"\r
+ IDS_CHOOSEBLANK "Choose a blank floppy disk image file..."\r
+ IDS_SELECTHDF "Select a hard disk image file..."\r
+ IDS_HDF "Hard disk image files"\r
+ IDS_SELECTUAE "Select a WinUAE configuration file..."\r
+ IDS_UAE "WinUAE configuration files"\r
+ IDS_SELECTROM "Select a system ROM file..."\r
+ IDS_ROM "System ROM files"\r
+ IDS_SELECTKEY "Select a system ROM key file..."\r
+ IDS_KEY "System ROM key files"\r
+ IDS_SELECTINFO "Select information for your configuration..."\r
+ IDS_NONE "none"\r
+ IDS_VOLUME "Volume"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_SELECTFILESYSROOT "Please select the root directory of the file system..."\r
+ IDS_DEFAULTMIDIOUT "Default MIDI-Out Device"\r
+ IDS_CONTRIBUTORS1 "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"\r
+ IDS_CONTRIBUTORS2 "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation.\nKarsten Bock, Gavin Fance, Dirk Trowe, Christoph Meier and Christian Schindler - Freezer cartridge hardware support.\nMikko Nieminen - Demo compatibility testing.\nArabuusimiehet - [This information is on a need-to-know basis]"\r
+ IDS_INVALIDPRTPORT "The printer you have in this configuration is not valid on this machine.\n"\r
+ IDS_RESTOREUSS "Restore a WinUAE snapshot file"\r
+ IDS_USS "WinUAE snapshot files"\r
+ IDS_WRONGOSVERSION "WinUAE is no longer supported on Windows NT. Please upgrade to either Windows 2000 or Windows XP or a later version."\r
+ IDS_SELECTFLASH "Select a flash or battery-backed RAM file..."\r
+ IDS_FLASH "WinUAE flash or battery-backed RAM file"\r
+ IDS_INPUTHOSTWIDGET "Input source"\r
+ IDS_INPUTAMIGAEVENT "Input target"\r
+ IDS_INPUTAUTOFIRE "Autofire"\r
+ IDS_SAVEUSS "Save a WinUAE snapshot file"\r
+ IDS_MIDIOVERFLOW "Sysexbuffer overflow. Should not happen. Please report this to\nberndroesch1@compuserve.de"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_PATH "Path"\r
+ IDS_RW "R/W"\r
+ IDS_SECTORS "Sectors"\r
+ IDS_SURFACES "Surfaces"\r
+ IDS_RESERVED "Reserved"\r
+ IDS_BLOCKSIZE "Block size"\r
+ IDS_NAME "Name"\r
+ IDS_DESCRIPTION "Description"\r
+ IDS_COULDNOTLOADCONFIG "Could not load the selected configuration!\n"\r
+ IDS_NOHELP "Online help is disabled because the HTML Help functionality is not installed on this system. HTML Help is available from http://www.microsoft.com/downloads/.\n"\r
+ IDS_MUSTSELECTCONFIG "You must select a configuration or enter a name before selecting Load...\n"\r
+ IDS_INVALIDCOMPORT "The serial port you have in this configuration is not valid on this machine.\n"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_HFDSIZE "Size"\r
+ IDS_DEVICE "Device"\r
+ IDS_BOOTPRI "BootPri"\r
+ IDS_FLOPPY_COMPATIBLE " (compatible)"\r
+ IDS_FLOPPY_TURBO "Turbo"\r
+ IDS_YES "yes"\r
+ IDS_NO "no"\r
+ IDS_PRI_ABOVENORMAL "Above Normal"\r
+ IDS_PRI_NORMAL "Normal"\r
+ IDS_PRI_BELOWNORMAL "Below Normal"\r
+ IDS_PRI_LOW "Low"\r
+ IDS_OLDRTGLIBRARY "The installed LIBS:Picasso96/rtg.library (%d.%d) should be updated.\nA newer version is included in the ""Amiga Programs"" directory\n of the WinUAE distribution archive.\n\nNewer library version fixes graphics problems and increases performance."\r
+ IDS_DEFAULT_AF2005 "Amiga Forever 2005+"\r
+ IDS_DEFAULT_AF "Amiga Forever"\r
+ IDS_DEFAULT_WINUAE "WinUAE default (old)"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_SOUND_STEREO2 "Cloned Stereo (4 Channels)"\r
+ IDS_INPUT_CUSTOMEVENT "<Custom event>"\r
+ IDS_DEFAULT_NEWWINUAE "WinUAE default (new)"\r
+ IDS_SOUND_CLONED51 "Cloned Stereo (5.1)"\r
+ IDS_SOUND_51 "5.1 Channels"\r
+ IDS_AUTOMATIC "Automatic"\r
+ IDS_ALL "All"\r
+ IDS_INPUTTOGGLE "Toggle"\r
+ IDS_NETDISCONNECTED "Cable disconnected"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_UNSUPPORTEDPIXELFORMAT \r
+ "Error: unsupported pixel format. Please use a different screen mode.\n"\r
+ IDS_MUSTENTERNAME "You must select a configuration or enter a name before selecting Save...\n"\r
+ IDS_MUSTSELECTCONFIGFORDELETE \r
+ "You must select a configuration or enter a name before selecting Delete...\n"\r
+ IDS_DELETECONFIGCONFIRMATION \r
+ "Are you sure you want to Delete this configuration?\n"\r
+ IDS_DELETECONFIGTITLE "Confirm Delete"\r
+ IDS_MUSTSELECTPATH "You must select a path!"\r
+ IDS_SETTINGSERROR "Settings error"\r
+ IDS_MUSTSELECTNAME "You must select a name for the volume!"\r
+ IDS_MUSTSELECTFILE "You must select a file!"\r
+ IDS_FAILEDHARDFILECREATION "Failed to create hard disk image file..."\r
+ IDS_CREATIONERROR "Creation error"\r
+ IDS_ERRORTITLE "WinUAE message"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_INP "WinUAE Input Recording"\r
+ IDS_RESTOREINP "Playback a WinUAE input recording"\r
+ IDS_SAVEINP "Record a WinUAE input recording"\r
+ IDS_SCREEN_WINDOWED "Windowed"\r
+ IDS_SCREEN_FULLSCREEN "Fullscreen"\r
+ IDS_SCREEN_FULLWINDOW "Full-window"\r
+ IDS_SCREEN_VSYNC "VSync"\r
+ IDS_SCREEN_VSYNC_AUTOSWITCH "AutoVSync"\r
+ IDS_SOUND_MONO "Mono"\r
+ IDS_SOUND_MIXED "Mixed"\r
+ IDS_SOUND_STEREO "Stereo"\r
+ IDS_DISABLED "Disabled"\r
+ IDS_SOUND_FILTER_OFF "Always off"\r
+ IDS_SOUND_FILTER_EMULATED "Emulated (A500)"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_SOUND_FILTER_EMULATED_E "Emulated (A1200)"\r
+ IDS_INPUT_COMPATIBILITY "Compatibility mode"\r
+ IDS_INPUT_CUSTOM "Configuration #%d"\r
+ IDS_INPUT_COPY_DEFAULT "Default"\r
+ IDS_INPUT_COPY_CUSTOM "Config #%d"\r
+ IDS_3D_NO_FILTER "Point (%d-bit)"\r
+ IDS_3D_BILINEAR "Bilinear (%d-bit)"\r
+ IDS_VSYNC_DEFAULT "Default"\r
+ IDS_DRIVESOUND_NONE "No sound"\r
+ IDS_DRIVESOUND_DEFAULT_A500 "A500 (WinUAE built-in)"\r
+ IDS_AVIOUTPUT_NOCODEC "no codec selected"\r
+ IDS_DISK_IMAGENAME "Disk image"\r
+ IDS_DISK_DRIVENAME "Drive"\r
+ IDS_UNSUPPORTEDSCREENMODE \r
+ "The selected screen mode can't be displayed in a window, because %s\nSwitching to full-screen display."\r
+ IDS_UNSUPPORTEDSCREENMODE_1 \r
+ "the desktop is running in an unknown color mode."\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_UNSUPPORTEDSCREENMODE_2 \r
+ "the desktop is running in 8-bit color depth, which WinUAE can't use in windowed mode."\r
+ IDS_UNSUPPORTEDSCREENMODE_3 \r
+ "the desktop is too small for the specified window size."\r
+ IDS_UNSUPPORTEDSCREENMODE_4 \r
+ "you selected an RTG (Picasso96) display with unsupported color depth."\r
+ IDS_FLOPPYTYPE35DD "3.5"" DD"\r
+ IDS_FLOPPYTYPE35HD "3.5"" HD"\r
+ IDS_FLOPPYTYPE525SD "5.25"" SD"\r
+ IDS_FLOPPYTYPEDISABLED "Disabled"\r
+ IDS_STMENUNOFLOPPY "No floppy disk inserted"\r
+ IDS_TREEVIEW_HARDWARE "Hardware"\r
+ IDS_TREEVIEW_HOST "Host"\r
+ IDS_TREEVIEW_MISC "Miscellaneous"\r
+ IDS_TREEVIEW_SETTINGS "Settings"\r
+ IDS_WINUAETITLE_MMB "[Mouse active - press ALT+TAB or middle mouse button to cancel]"\r
+ IDS_WINUAETITLE_NORMAL "[Mouse active - press ALT+TAB to cancel]"\r
+ IDS_STARTEMULATION "Start"\r
+ IDS_TREEVIEW_ABOUT "About"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_NOHARDDRIVES "No hard disks detected that were either empty or RDB-partitioned."\r
+ IDS_DEFAULT_HOST "Default Configuration"\r
+ IDS_SOUND_4CHANNEL "4 Channels"\r
+ IDS_HF_FS_CUSTOM "Custom"\r
+ IDS_SELECTFS "Select file system handler (FastFileSystem, SmartFilesystem, etc.)"\r
+ IDS_KEYJOY "Keyboard Layout A (Numeric keypad, 0 and 5 = Fire)\nKeyboard Layout B (Cursor keys, Right CTRL and ALT = Fire)\nKeyboard Layout C (W=Up S=Down A=Left D=Right, Left ALT = Fire)\nX-Arcade (Left)\nX-Arcade (Right)"\r
+ IDS_STATEFILE_UNCOMPRESSED "Uncompressed"\r
+ IDS_STATEFILE_RAMDUMP "RAM dump"\r
+ IDS_STATEFILE_WAVE "Wave audio dump"\r
+ IDS_SOUND_SWAP_PAULA "Paula only"\r
+ IDS_SOUND_SWAP_AHI "AHI only"\r
+ IDS_SOUND_SWAP_BOTH "Both"\r
+ IDS_SOUND_FILTER_ON_AGA "Always on (A500)"\r
+ IDS_SOUND_FILTER_ON_A500 "Always on (A1200)"\r
+ IDS_DRIVESOUND_PC_FLOPPY "PC floppy drive %c"\r
+ IDS_FLOPPYTYPE35DDESCOM "3.5"" ESCOM"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_NUMSG_NEEDEXT2 "The software uses a non-standard floppy disk format. You may need to use a custom floppy disk image file instead of a standard one. This message will not appear again."\r
+ IDS_NUMSG_NOROMKEY "Could not find system ROM key file."\r
+ IDS_NUMSG_KSROMCRCERROR "System ROM checksum incorrect. The system ROM image file may be corrupt."\r
+ IDS_NUMSG_KSROMREADERROR "Error while reading system ROM."\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_NUMSG_NOEXTROM "No extended ROM found."\r
+ IDS_NUMSG_MODRIP_NOTFOUND "No music modules or packed data found."\r
+ IDS_NUMSG_MODRIP_FINISHED "Scan finished."\r
+ IDS_NUMSG_MODRIP_SAVE "Module/packed data found\n%s\nStart address %08.8X, Size %d bytes\nWould you like to save it?"\r
+ IDS_NUMSG_KS68020 "The selected system ROM requires a 68020 with 32-bit addressing or 68030 or higher CPU."\r
+ IDS_NUMSG_ROMNEED "One of the following system ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."\r
+ IDS_NUMSG_STATEHD "WARNING: Current configuration is not fully compatible with state saves.\nThis message will not appear again."\r
+ IDS_NUMSG_NOCAPS "Selected disk image needs the SPS plugin\nwhich is available from\nhttp//www.softpres.org/"\r
+ IDS_NUMSG_OLDCAPS "You need an updated SPS plugin\nwhich is available from\nhttp//www.softpres.org/"\r
+ IDS_IMGCHK_BOOTBLOCKCRCERROR \r
+ "The selected floppy disk image is not bootable (boot block checksum error)"\r
+ IDS_IMGCHK_BOOTBLOCKNO "The selected floppy disk image is not bootable (no boot block)"\r
+ IDS_IMGCHK_DAMAGED "The selected floppy disk image is damaged or unformatted"\r
+ IDS_IMGCHK_KS2 "The selected floppy disk image requires a 2.04 or later system ROM.\nThe configuration has been updated."\r
+ IDS_IMGCHK_KS3 "The selected floppy disk image requires a 3.0 or later system ROM.\nThe configuration has been updated."\r
+ IDS_ROMSCANEND "Scan of ROMs finished"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_ROM_AVAILABLE "available"\r
+ IDS_ROM_UNAVAILABLE "unavailable"\r
+ IDS_NUMSG_KS68EC020 "The selected system ROM requires a 68020 with 24-bit addressing or higher CPU."\r
+ IDS_ROMSCANNOROMS "No supported system ROMs detected."\r
+ IDS_NUMSG_KICKREP "You need to have a floppy disk (image file) in DF0: to use the system ROM replacement."\r
+ IDS_NUMSG_KICKREPNO "The floppy disk (image file) in DF0: is not compatible with the system ROM replacement functionality."\r
+ IDS_NUMSG_NOROM "Could not load system ROM, trying system ROM replacement."\r
+ IDS_HDCLONE_OK "Hard drive image file created succesfully."\r
+ IDS_HDCLONE_FAIL "Hard drive image file creation failed.\nError code %d:%d."\r
+ IDS_NUMSG_KS68030 "The selected system ROM requires a 68030 CPU."\r
+ IDS_NUMSG_EXPROMNEED "One of the following expansion boot ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."\r
+ IDS_SB_FAVORITENAME "Enter name..."\r
+ IDS_SB_CUSTOMEVENT "Enter custom event string.."\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_QS_MODELS "A500\nA500+\nA600\nA1000\nA1200\nA3000\nA4000\nCD32\nCDTV\nArcadia Multi Select system\nExpanded WinUAE example configuration"\r
+ IDS_QS_MODEL_A500 "1.3 ROM, OCS, 512 KB Chip + 512 KB Slow RAM (most common)\nThis configuration is capable of running most games and demos produced for first-generation hardware. Only few exceptions need a different configuration (e.g. the oldest games tend to be incompatible with this configuration).\n1.3 ROM, ECS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nLater hardware revision of the A500. Nearly 100% compatible with the previous configuration.\n1.3 ROM, ECS Agnus, 1 MB Chip RAM\nFew newer games and demos require this configuration.\n1.3 ROM, OCS Agnus, 512 KB Chip RAM\nVery old (e.g. pre-1988) games and demos may require this configuration.\n1.2 ROM, OCS Agnus, 512 KB Chip RAM\nAs available for the A1000, and installed on the first A500 and A2000 series. Some very old programs only work correctly with this configuration. Note: This system ROM version can only boot from floppy disk (no hard disk boot support).\n1.2 ROM, OCS Agnus, 512 KB Chip RAM + 512 KB Slow RAM\nThis configuration adds expansion memory to the first A500 produced. Try this if your game does not work with newer configurations, but works with the previous one. It could add some features to the game, including faster loading times. Note: This system ROM version can only boot from floppy disk (no hard disk boot support)."\r
+ IDS_QS_MODEL_A500P "Basic non-expanded configuration\nThe A500+ adds an ECS Agnus chip, 1 MB of Chip RAM and a 2.0 ROM to the A500. Many A500 games and demos don't work properly on an A500+.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"\r
+ IDS_QS_MODEL_A600 "Basic non-expanded configuration\nThe A600 is smaller than the A500+ and has an updated 2.0 ROM.\n2 MB Chip RAM expanded configuration\n\n4 MB Fast RAM expanded configuration\n"\r
+ IDS_QS_MODEL_A1000 "512 KB Chip RAM\nThe A1000 was the first model produced, with a configuration equivalent to that of an A500 with OCS chipset. You normally don't need to use this configuration, unless you are nostalgic and would like to hear the short A1000 boot tune\n""ICS"" Denise without EHB support\nVery first A1000 models had Denise without EHB capability.\n256 KB Chip RAM\n Unexpanded A1000. All later A1000 models were sold with a 256 KB RAM expansion built-in."\r
+ IDS_QS_MODEL_A1200 "Basic non-expanded configuration\nUse this configuration to run most AGA demos and games\n4 MB Fast RAM expanded configuration\nSome newer AGA games and demos need an expanded A1200 to run."\r
+ IDS_QS_MODEL_CD32 "CD32\nThe CD32 was one the first 32-bit consoles on the market. It is basically an A1200 with a built-in CD-ROM drive. Insert your CD32 or CDTV CD-ROM into a free CD-ROM drive before starting the emulation.\nCD32 + MPEG Full Motion Video Cartridge (not emulated yet)\n"\r
+ IDS_QS_MODEL_CDTV "CDTV\nThe CDTV was the first model with a built-in CD-ROM drive. Looking like a black CD player, it featured a configuration equivalent to that of an A500 with 1 MB RAM and an ECS chipset.\nFloppy drive and 64KB SRAM card expanded CDTV\n"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_QS_MODEL_UAE "High-end expanded configuration"\r
+ IDS_QS_MODEL_ARCADIA "Arcadia\nArcadia Multi Select system is arcade platform developed by Arcadia and Mastertronic. It is based on an A500 mainboard with ROM cage attached to expansion port. Arcadia ROM files go to ""Cartridge ROM File"" in ROM-panel."\r
+ IDS_QS_MODEL_A3000 "1.4 ROM, 2MB Chip + 8MB Fast\n\n2.04 ROM, 2MB Chip + 8MB Fast\n\n3.1 ROM, 2MB Chip + 8MB Fast\n"\r
+ IDS_QS_MODEL_A4000 "68030, 3.1 ROM, 2MB Chip + 8MB Fast\n\n68040, 3.1 ROM, 2MB Chip + 8MB Fast\n"\r
+ IDS_QS_MODEL_A4000T "A4000T (test)\nA4000T"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_FLOPPYTYPE35DDPC "3.5"" DD (PC)"\r
+ IDS_FLOPPYTYPE35HDPC "3.5"" HD (PC)"\r
+ IDS_JOYMODE_DEFAULT "Default"\r
+ IDS_JOYMODE_MOUSE "Mouse"\r
+ IDS_JOYMODE_JOYSTICK "Joystick"\r
+ IDS_JOYMODE_JOYSTICKANALOG "Analog joystick"\r
+ IDS_JOYMODE_LIGHTPEN "Light pen"\r
+ IDS_JOYMODE_MOUSE_CDTV "CDTV remote mouse"\r
+ IDS_JOYMODE_JOYSTICK_CD32 "CD32 pad"\r
+ IDS_TABLET_BOTH_CURSORS "Show both cursors"\r
+ IDS_TABLET_NATIVE_CURSOR "Show native cursor only"\r
+ IDS_TABLET_HOST_CURSOR "Show host cursor only"\r
+ IDS_AUTOSCALE_DISABLED "Disabled"\r
+ IDS_AUTOSCALE_SCALING "Automatic scaling"\r
+ IDS_AUTOSCALE_RESIZE "Automatic resize"\r
+ IDS_PRINTER_ASCII "ASCII-Only"\r
+END\r
+\r
+STRINGTABLE \r
+BEGIN\r
+ IDS_PRINTER_EPSON9 "Epson Matrix Printer Emulation, 9pin"\r
+ IDS_PRINTER_POSTSCRIPT_DETECTION "PostScript (Passthrough)"\r
+ IDS_PRINTER_POSTSCRIPT_EMULATION \r
+ "PostScript (Emulation, GhostScript required)"\r
+ IDS_PRINTER_PASSTHROUGH "Passthrough"\r
+ IDS_RES_LORES "Lores"\r
+ IDS_RES_HIRES "Hires (normal)"\r
+ IDS_RES_SUPERHIRES "SuperHires"\r
+ IDS_PRINTER_EPSON48 "Epson Matrix Printer Emulation, 48pin"\r
+END\r
+\r
+#endif // English (Neutral) resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Finnish resources\r
+\r
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FIN)\r
+#ifdef _WIN32\r
+LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT\r
+#pragma code_page(1252)\r
+#endif //_WIN32\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// TEXTINCLUDE\r
+//\r
+\r
+1 TEXTINCLUDE \r
+BEGIN\r
+ "resource.\0"\r
+END\r
+\r
+3 TEXTINCLUDE \r
+BEGIN\r
+ "\r\0"\r
+END\r
+\r
+2 TEXTINCLUDE \r
+BEGIN\r
+ "#include ""afxres.h""\r\0"\r
+END\r
+\r
+#endif // APSTUDIO_INVOKED\r
+\r
+#endif // Finnish resources\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+\r
+#ifndef APSTUDIO_INVOKED\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Generated from the TEXTINCLUDE 3 resource.\r
+//\r
+\r\r
+/////////////////////////////////////////////////////////////////////////////\r
+#endif // not APSTUDIO_INVOKED\r
+\r
CONTROL "Blitter Busy Bug",IDC_CS_BLITTERBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,187,159,80,10
END
-IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 203
+IDD_AVIOUTPUT DIALOGEX 0, 0, 288, 217
STYLE DS_LOCALEDIT | DS_SETFONT | DS_CONTROL | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
CONTROL "Video",IDC_AVIOUTPUT_VIDEO,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | BS_FLAT | WS_TABSTOP,15,50,39,14
CONTROL "",IDC_AVIOUTPUT_VIDEO_STATIC,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | SS_SUNKEN | WS_GROUP,59,51,209,13
CONTROL "Disable frame rate limit",IDC_AVIOUTPUT_FRAMELIMITER,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,71,158,10
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,71,122,10
CONTROL "AVI output enabled",IDC_AVIOUTPUT_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,15,103,108,14
- CONTROL "PAL",IDC_AVIOUTPUT_PAL,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,131,103,66,14
- CONTROL "NTSC",IDC_AVIOUTPUT_NTSC,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,204,103,66,14
- CONTROL "Slider1",IDC_AVIOUTPUT_FPS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | TBS_ENABLESELRANGE | WS_TABSTOP,143,74,87,11
- LTEXT "fps",IDC_AVIOUTPUT_FPS_STATIC,237,74,19,8
PUSHBUTTON "Save screenshot",IDC_SCREENSHOT,16,141,77,14
- GROUPBOX "Ripper",IDC_STATIC,5,127,274,38
- PUSHBUTTON "Pro Wizard 1.62",IDC_PROWIZARD,104,141,77,14,WS_DISABLED
- CONTROL "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,141,77,14
- GROUPBOX "Input Recorder",IDC_STATIC,5,166,274,33
- CONTROL "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,178,77,14
- CONTROL "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,178,77,14
- CONTROL "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,180,78,10
+ GROUPBOX "Ripper",IDC_STATIC,5,127,274,49
+ PUSHBUTTON "Pro Wizard 1.62",IDC_PROWIZARD,192,141,77,14,WS_DISABLED
+ CONTROL "Sample ripper",IDC_SAMPLERIPPER_ACTIVATED,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,159,77,14
+ GROUPBOX "Input Recorder",IDC_STATIC,5,178,274,33
+ CONTROL "Record",IDC_INPREC_RECORD,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,192,190,77,14
+ CONTROL "Playback",IDC_INPREC_PLAY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | BS_FLAT,16,190,77,14
+ CONTROL "Alt. playback mode",IDC_INPREC_PLAYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,103,192,78,10
CONTROL "Disable sound output",IDC_AVIOUTPUT_NOSOUNDOUTPUT,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,88,123,10
CONTROL "Disable sound sync",IDC_AVIOUTPUT_NOSOUNDSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,88,120,10
+ CONTROL "Capture before filtering",IDC_AVIOUTPUT_ORIGINALSIZE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,71,120,10
+ CONTROL "Take screenshot before filtering",IDC_SCREENSHOT_ORIGINALSIZE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,160,162,10
END
IDD_INPUT DIALOGEX 0, 0, 300, 242
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,0,0,0
- PRODUCTVERSION 2,0,0,0
+ FILEVERSION 2,0,1,0
+ PRODUCTVERSION 2,0,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "WinUAE"
- VALUE "FileVersion", "2.0.0"
+ VALUE "FileVersion", "2.0.1"
VALUE "InternalName", "WinUAE"
VALUE "LegalCopyright", "© 1996-2009 under the GNU Public License (GPL)"
VALUE "OriginalFilename", "WinUAE.exe"
VALUE "ProductName", "WinUAE"
- VALUE "ProductVersion", "2.0.0"
+ VALUE "ProductVersion", "2.0.1"
END
END
BLOCK "VarFileInfo"
END
END
+
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
IDS_SELECTFILESYSROOT "Please select the root directory of the file system..."
IDS_DEFAULTMIDIOUT "Default MIDI-Out Device"
IDS_CONTRIBUTORS1 "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"
- IDS_CONTRIBUTORS2 "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation.\nKarsten Bock, Gavin Fance, Dirk Trowe, Christoph Meier and Christian Schindler - Freezer cartridge hardware support.\nMikko Nieminen - demo compatibility testing.\nArabuusimiehet - [This information is on a need-to-know basis]"
+ IDS_CONTRIBUTORS2 "Bill Panagouleas - Hardware support\nSpecial thanks to Alexander Kneer and Tobias Abt (The Picasso96 Team)\nSteven Weiser - Postscript printing emulation idea and testing.\nPéter Tóth /Balázs Rátkai/Iván Herczeg/András Arató - Hungarian translation.\nKarsten Bock, Gavin Fance, Dirk Trowe, Christoph Meier and Christian Schindler - Freezer cartridge hardware support.\nMikko Nieminen - Demo compatibility testing.\nArabuusimiehet - [This information is on a need-to-know basis]"
IDS_INVALIDPRTPORT "The printer you have in this configuration is not valid on this machine.\n"
IDS_RESTOREUSS "Restore a WinUAE snapshot file"
IDS_USS "WinUAE snapshot files"
IDS_AVIOUTPUT_NOCODEC "no codec selected"
IDS_DISK_IMAGENAME "Disk image"
IDS_DISK_DRIVENAME "Drive"
- IDS_AGA8BIT "AGA emulation requires a 16-bit or higher display depth.\nSwitching from 8-bit to 16-bit."
IDS_UNSUPPORTEDSCREENMODE
"The selected screen mode can't be displayed in a window, because %s\nSwitching to full-screen display."
IDS_UNSUPPORTEDSCREENMODE_1
#define FS_TEST 0
static WCHAR aufstable[256];
+static UINT fscodepage;
static void err (const char *func, const WCHAR *w, const char *c, UINT cp)
{
WCHAR *au_copy (TCHAR *dst, int maxlen, const char *src)
{
+ dst[0] = 0;
MultiByteToWideChar (CP_ACP, 0, src, -1, dst, maxlen);
return dst;
}
WCHAR *aucp_copy (TCHAR *dst, int maxlen, const char *src, UINT cp)
{
+ dst[0] = 0;
MultiByteToWideChar (cp, 0, src, -1, dst, maxlen);
return dst;
}
char *ua_copy (char *dst, int maxlen, const TCHAR *src)
{
+ dst[0] = 0;
WideCharToMultiByte (CP_ACP, DWFLAGS, src, -1, dst, maxlen, 0, FALSE);
return dst;
}
char *uacp_copy (char *dst, int maxlen, const TCHAR *src, UINT cp)
{
+ dst[0] = 0;
WideCharToMultiByte (cp, DWFLAGS, src, -1, dst, maxlen, 0, FALSE);
return dst;
}
return au (src);
}
-char *ua_fs (const WCHAR *s)
+char *ua_fs (const WCHAR *s, int defchar)
{
char *d;
int len, i;
if (s == NULL)
return NULL;
dc = FALSE;
- len = WideCharToMultiByte (28605, DWFLAGS | WC_NO_BEST_FIT_CHARS, s, -1, NULL, 0, &def, &dc);
+ len = WideCharToMultiByte (fscodepage, DWFLAGS | WC_NO_BEST_FIT_CHARS, s, -1, NULL, 0, &def, &dc);
if (!len) {
err (__FUNCTION__, s, NULL, currprefs.win32_fscodepage);
return strdup ("");
}
d = xmalloc (len + 1);
dc = FALSE;
- WideCharToMultiByte (28605, DWFLAGS | WC_NO_BEST_FIT_CHARS, s, -1, d, len, &def, &dc);
+ WideCharToMultiByte (fscodepage, DWFLAGS | WC_NO_BEST_FIT_CHARS, s, -1, d, len, &def, &dc);
if (dc) {
+ def = 0;
for (i = 0; i < len; i++) {
if (d[i] == 0 || (d[i] < 32 || (d[i] >= 0x7f && d[i] <= 0x9f))) {
WCHAR s2[2];
char d2[2];
s2[0] = s[i];
s2[1] = 0;
- d2[0] = (char)s[i];
- WideCharToMultiByte (0, DWFLAGS, s2, -1, d2, 1, 0, FALSE);
+ if (defchar < 0) {
+ d2[0] = (char)s[i];
+ def = 0;
+ } else {
+ def = (char)defchar;
+ d2[0] = (char)defchar;
+ }
+ WideCharToMultiByte (0, DWFLAGS, s2, -1, d2, 1, defchar >= 0 ? &def : NULL, defchar >= 0 ? &dc : NULL);
d[i] = d2[0];
}
}
return d;
}
-char *ua_fs_copy (char *dst, int maxlen, const TCHAR *src)
+char *ua_fs_copy (char *dst, int maxlen, const TCHAR *src, int defchar)
{
int len, i;
BOOL dc;
if (src == NULL)
return NULL;
dc = FALSE;
- len = WideCharToMultiByte (28605, DWFLAGS | WC_NO_BEST_FIT_CHARS, src, -1, dst, maxlen, &def, &dc);
+ len = WideCharToMultiByte (fscodepage, DWFLAGS | WC_NO_BEST_FIT_CHARS, src, -1, dst, maxlen, &def, &dc);
+ if (!len) {
+ dst[0] = 0;
+ return dst;
+ }
if (dc) {
+ def = 0;
for (i = 0; i < len; i++) {
if (dst[i] == 0) {
WCHAR s2[2];
char d2[2];
s2[0] = src[i];
s2[1] = 0;
- d2[0] = (char)src[i];
- WideCharToMultiByte (0, DWFLAGS, s2, -1, d2, 1, 0, FALSE);
+ if (defchar < 0) {
+ d2[0] = (char)src[i];
+ def = 0;
+ } else {
+ def = (char)defchar;
+ d2[0] = (char)defchar;
+ }
+ WideCharToMultiByte (0, DWFLAGS | (defchar >= 0 ? WC_NO_BEST_FIT_CHARS : 0), s2, -1, d2, 1, defchar >= 0 ? &def : NULL, defchar >= 0 ? &dc : NULL);
dst[i] = d2[0];
}
}
return dst;
}
+static void mbtwc (UINT cp, DWORD flags, LPCSTR src, int len, LPWSTR dst, int maxlen)
+{
+ DWORD err;
+ //write_log (L"CP=%08X F=%x %p %02X %02X %d %p %04X %04X %d", cp, flags, src, (unsigned char)src[0], (unsigned char)src[1], len, dst, dst[0], dst[1], maxlen);
+ err = MultiByteToWideChar (cp, flags, src, len, dst, maxlen);
+ //write_log (L"=%d %04X %04X\n", err, dst[0], dst[1]);
+ if (err)
+ return;
+ err = GetLastError ();
+ write_log (L"\nMBTWC %u:%d\n", cp, err);
+#if 0
+ if (cp != CP_ACP) {
+ cp = CP_ACP;
+ if (MultiByteToWideChar (cp, flags, src, len, dst, maxlen)) {
+ err = GetLastError ();
+ write_log (L"MBTWC2 %u:%d\n", cp, err);
+ }
+ }
+#endif
+}
+
void unicode_init (void)
{
+ static UINT pages[] = { 28605, 28591, 1252, 0 };
int i;
- write_log (L"Filesystem charset (ACP=%u):\n", GetACP ());
+ for (i = 0; fscodepage = pages[i]; i++) {
+ if (MultiByteToWideChar (fscodepage, 0, " ", 1, NULL, 0))
+ break;
+ }
+ write_log (L"Filesystem charset (ACP=%u,FSCP=%u):\n", GetACP (), fscodepage);
for (i = 0; i < 256; i++) {
TCHAR dst1[2], dst2[2];
char src[2];
dst2[0] = 0;
dst2[1] = 0;
aufstable[i] = 0;
- aucp_copy (dst1, 1, src, 0);
- aucp_copy (dst2, 1, src, 28605); // iso-8859-15
+ mbtwc (CP_ACP, 0, src, 1, dst1, 1);
+ mbtwc (fscodepage, 0, src, 1, dst2, 1);// iso-8859-15
if (dst2[0] != dst1[0])
write_log (L" %02X: %04X (%04X)", i, dst1[0], dst2[0]);
else
#include "sound.h"
#include "uae.h"
#include "memory.h"
+#include "rommgr.h"
#include "custom.h"
#include "events.h"
#include "newcpu.h"
static int logging_started;
static DWORD minidumpmode = MiniDumpNormal;
static int doquit;
+static int console_started;
void *globalipc, *serialipc;
int qpcdivisor = 0;
case SC_SCREENSAVE: // Screensaver Trying To Start?
case SC_MONITORPOWER: // Monitor Trying To Enter Powersave?
- // SetThreadExecutionState (ES_CONTINUOUS | ES_DISPLAY_REQUIRED); handles this now
-#if 0
- if (!manual_painting_needed && focus && currprefs.win32_powersavedisabled)
- return 0; // Prevent From Happening
-#endif
+ // SetThreadExecutionState handles this now
break;
default:
return -1;
}
if (!_tcscmp (arg, L"-console")) {
+ console_started = 1;
+ return 1;
+ }
+ if (!_tcscmp (arg, L"-cli")) {
+ console_emulation = 1;
return 1;
}
if (!_tcscmp (arg, L"-log")) {
GetProcessAffinityMask (GetCurrentProcess (), &original_affinity, &sys_aff);
thread = GetCurrentThread ();
- fpucontrol = _controlfp (0, 0) & (_MCW_IC | _MCW_RC | _MCW_PC);
//original_affinity = SetThreadAffinityMask(thread, 1);
+ fpucontrol = _controlfp (0, 0) & (_MCW_IC | _MCW_RC | _MCW_PC);
#if 0
#define MSGFLT_ADD 1
WinMain2 (hInstance, hPrevInstance, lpCmdLine, nCmdShow);
} __except(WIN32_ExceptionFilter (GetExceptionInformation (), GetExceptionCode ())) {
}
- //SetThreadAffinityMask(thread, original_affinity);
+ //SetThreadAffinityMask (thread, original_affinity);
return FALSE;
}
#define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100)
#define GETBDD(x) ((x) % 100)
-#define WINUAEPUBLICBETA 0
+#define WINUAEPUBLICBETA 1
#define LANG_DLL 1
-#define WINUAEBETA L""
-#define WINUAEDATE MAKEBD(2009, 12, 23)
+#define WINUAEBETA L"Beta 1"
+#define WINUAEDATE MAKEBD(2010, 1, 2)
#define WINUAEEXTRA L""
#define WINUAEREV L""
/* Determines if this drive-letter currently has a disk inserted */
int CheckRM (TCHAR *DriveName)
{
- TCHAR filename[MAX_DPATH];
- DWORD dwHold;
- BOOL result = FALSE;
-
- _stprintf (filename, L"%s.", DriveName);
- dwHold = GetFileAttributes (filename);
- if(dwHold != 0xFFFFFFFF)
- result = TRUE;
- return result;
+ TCHAR filename[MAX_DPATH];
+ DWORD dwHold;
+ BOOL result = FALSE;
+
+ _stprintf (filename, L"%s.", DriveName);
+ dwHold = GetFileAttributes (filename);
+ if(dwHold != 0xFFFFFFFF)
+ result = TRUE;
+ return result;
}
/* This function makes sure the volume-name being requested is not already in use, or any of the following
- illegal values: */
+illegal values: */
static TCHAR *illegal_volumenames[] = { L"SYS", L"DEVS", L"LIBS", L"FONTS", L"C", L"L", L"S" };
static int valid_volumename (struct uaedev_mount_info *mountinfo, TCHAR *volumename, int fullcheck)
{
- int i, result = 1, illegal_count = sizeof (illegal_volumenames) / sizeof(TCHAR*);
- for (i = 0; i < illegal_count; i++) {
- if(_tcscmp (volumename, illegal_volumenames[i]) == 0) {
- result = 0;
- break;
+ int i, result = 1, illegal_count = sizeof (illegal_volumenames) / sizeof(TCHAR*);
+ for (i = 0; i < illegal_count; i++) {
+ if(_tcscmp (volumename, illegal_volumenames[i]) == 0) {
+ result = 0;
+ break;
+ }
}
- }
- /* if result is still good, we've passed the illegal names check, and must check for duplicates now */
- if(result && fullcheck) {
- for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) {
- if (mountinfo->ui[i].open && mountinfo->ui[i].volname && _tcscmp (mountinfo->ui[i].volname, volumename) == 0) {
- result = 0;
- break;
- }
+ /* if result is still good, we've passed the illegal names check, and must check for duplicates now */
+ if(result && fullcheck) {
+ for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) {
+ if (mountinfo->ui[i].open && mountinfo->ui[i].volname && _tcscmp (mountinfo->ui[i].volname, volumename) == 0) {
+ result = 0;
+ break;
+ }
+ }
}
- }
- return result;
+ return result;
}
/* Returns 1 if an actual volume-name was found, 2 if no volume-name (so uses some defaults) */
int target_get_volume_name (struct uaedev_mount_info *mtinf, const TCHAR *volumepath, TCHAR *volumename, int size, int inserted, int fullcheck)
{
- int result = 2;
- int drivetype;
-
- drivetype = GetDriveType (volumepath);
- if (inserted) {
- if (GetVolumeInformation (volumepath, volumename, size, NULL, NULL, NULL, NULL, 0) &&
- volumename[0] &&
- valid_volumename (mtinf, volumename, fullcheck)) {
- // +++Bernd Roesch
- if(!_tcscmp (volumename, L"AmigaOS35"))
- _tcscpy (volumename, L"AmigaOS3.5");
- if(!_tcscmp (volumename, L"AmigaOS39"))
- _tcscpy (volumename, L"AmigaOS3.9");
- // ---Bernd Roesch
- if (_tcslen (volumename) > 0)
- result = 1;
+ int result = 2;
+ int drivetype;
+
+ drivetype = GetDriveType (volumepath);
+ if (inserted) {
+ if (GetVolumeInformation (volumepath, volumename, size, NULL, NULL, NULL, NULL, 0) &&
+ volumename[0] &&
+ valid_volumename (mtinf, volumename, fullcheck)) {
+ // +++Bernd Roesch
+ if(!_tcscmp (volumename, L"AmigaOS35"))
+ _tcscpy (volumename, L"AmigaOS3.5");
+ if(!_tcscmp (volumename, L"AmigaOS39"))
+ _tcscpy (volumename, L"AmigaOS3.9");
+ // ---Bernd Roesch
+ if (_tcslen (volumename) > 0)
+ result = 1;
+ }
}
- }
-
- if(result == 2) {
- switch(drivetype)
- {
- case DRIVE_FIXED:
- _stprintf (volumename, L"WinDH_%c", volumepath[0]);
- break;
- case DRIVE_CDROM:
- _stprintf (volumename, L"WinCD_%c", volumepath[0]);
- break;
- case DRIVE_REMOVABLE:
- _stprintf (volumename, L"WinRMV_%c", volumepath[0]);
- break;
- case DRIVE_REMOTE:
- _stprintf (volumename, L"WinNET_%c", volumepath[0]);
- break;
- case DRIVE_RAMDISK:
- _stprintf (volumename, L"WinRAM_%c", volumepath[0]);
- break;
- case DRIVE_UNKNOWN:
- case DRIVE_NO_ROOT_DIR:
- default:
- result = 0;
- break;
+
+ if(result == 2) {
+ switch(drivetype)
+ {
+ case DRIVE_FIXED:
+ _stprintf (volumename, L"WinDH_%c", volumepath[0]);
+ break;
+ case DRIVE_CDROM:
+ _stprintf (volumename, L"WinCD_%c", volumepath[0]);
+ break;
+ case DRIVE_REMOVABLE:
+ _stprintf (volumename, L"WinRMV_%c", volumepath[0]);
+ break;
+ case DRIVE_REMOTE:
+ _stprintf (volumename, L"WinNET_%c", volumepath[0]);
+ break;
+ case DRIVE_RAMDISK:
+ _stprintf (volumename, L"WinRAM_%c", volumepath[0]);
+ break;
+ case DRIVE_UNKNOWN:
+ case DRIVE_NO_ROOT_DIR:
+ default:
+ result = 0;
+ break;
+ }
}
- }
- return result;
+ return result;
}
static int getidfromhandle (HANDLE h)
{
- int drvnum = -1;
- DWORD written, outsize;
- VOLUME_DISK_EXTENTS *vde;
-
- outsize = sizeof (VOLUME_DISK_EXTENTS) + sizeof (DISK_EXTENT) * 32;
- vde = xmalloc (outsize);
- if (DeviceIoControl (h, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0, vde, outsize, &written, NULL)) {
- if (vde->NumberOfDiskExtents > 0)
- drvnum = vde->Extents[0].DiskNumber;
- }
- xfree (vde);
- return drvnum;
+ int drvnum = -1;
+ DWORD written, outsize;
+ VOLUME_DISK_EXTENTS *vde;
+
+ outsize = sizeof (VOLUME_DISK_EXTENTS) + sizeof (DISK_EXTENT) * 32;
+ vde = xmalloc (outsize);
+ if (DeviceIoControl (h, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0, vde, outsize, &written, NULL)) {
+ if (vde->NumberOfDiskExtents > 0)
+ drvnum = vde->Extents[0].DiskNumber;
+ }
+ xfree (vde);
+ return drvnum;
}
static int hfdcheck (TCHAR drive)
{
- HANDLE h;
- TCHAR tmp[16];
- int disknum, i;
-
- _stprintf (tmp, L"\\\\.\\%c:", drive);
- h = CreateFile (tmp, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
- if (h == INVALID_HANDLE_VALUE)
+ HANDLE h;
+ TCHAR tmp[16];
+ int disknum, i;
+
+ _stprintf (tmp, L"\\\\.\\%c:", drive);
+ h = CreateFile (tmp, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (h == INVALID_HANDLE_VALUE)
+ return 0;
+ disknum = getidfromhandle (h);
+ CloseHandle (h);
+ for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) {
+ struct hardfiledata *hfd = get_hardfile_data (i);
+ int reopen = 0;
+ if (!hfd || !(hfd->flags & HFD_FLAGS_REALDRIVE) || !hfd->handle_valid)
+ continue;
+ if (getidfromhandle (hfd->handle) == disknum)
+ return 1;
+ }
return 0;
- disknum = getidfromhandle (h);
- CloseHandle (h);
- for (i = 0; i < MAX_FILESYSTEM_UNITS; i++) {
- struct hardfiledata *hfd = get_hardfile_data (i);
- int reopen = 0;
- if (!hfd || !(hfd->flags & HFD_FLAGS_REALDRIVE) || !hfd->handle_valid)
- continue;
- if (getidfromhandle (hfd->handle) == disknum)
- return 1;
- }
- return 0;
}
static void filesys_addexternals (void)
{
- int drive, drivetype;
- UINT errormode;
- TCHAR volumename[MAX_DPATH] = L"";
- TCHAR volumepath[16];
- DWORD dwDriveMask;
- int drvnum = 0;
-
- errormode = SetErrorMode (SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
- dwDriveMask = GetLogicalDrives ();
- dwDriveMask >>= 2; // Skip A and B drives...
-
- for(drive = 'C'; drive <= 'Z'; ++drive) {
- _stprintf (volumepath, L"%c:\\", drive);
- /* Is this drive-letter valid (it used to check for media in drive) */
- if(dwDriveMask & 1) {
- TCHAR devname[MAX_DPATH];
- BOOL inserted = CheckRM (volumepath); /* Is there a disk inserted? */
- int nok = FALSE;
- int rw = 1;
- drivetype = GetDriveType (volumepath);
- if (inserted && drivetype != DRIVE_NO_ROOT_DIR && drivetype != DRIVE_UNKNOWN) {
- if (hfdcheck (drive)) {
- write_log (L"Drive %c:\\ ignored, was configured as a harddrive\n", drive);
- continue;
- }
- }
- devname[0] = 0;
- for (;;) {
- if (drivetype == DRIVE_CDROM && currprefs.win32_automount_cddrives) {
- _stprintf (devname, L"WinCD_%c", drive);
- rw = 0;
- break;
- }
- if (!inserted) {
- nok = TRUE;
- break;
- }
- if (drivetype == DRIVE_REMOTE && currprefs.win32_automount_netdrives)
- break;
- if (drivetype == DRIVE_FIXED && currprefs.win32_automount_drives)
- break;
- if (drivetype == DRIVE_REMOVABLE && currprefs.win32_automount_removabledrives)
- break;
- nok = TRUE;
- break;
- }
- if (nok)
- continue;
- volumename[0] = 0;
- if (inserted) {
- target_get_volume_name (&mountinfo, volumepath, volumename, MAX_DPATH, inserted, 1);
- if (!volumename[0])
- _stprintf (volumename, L"WinUNK_%c", drive);
- }
- if (drivetype == DRIVE_REMOTE)
- _tcscat (volumepath, L".");
- else
- _tcscat (volumepath, L"..");
- //write_log (L"Drive type %d: '%s' '%s'\n", drivetype, volumepath, volumename);
- add_filesys_unit (devname[0] ? devname : NULL, volumename, volumepath, !rw, 0, 0, 0, 0, -20 - drvnum, 0, 1, 0, 0, 0);
- drvnum++;
- } /* if drivemask */
- dwDriveMask >>= 1;
- }
- SetErrorMode (errormode);
+ int drive, drivetype;
+ UINT errormode;
+ TCHAR volumename[MAX_DPATH] = L"";
+ TCHAR volumepath[16];
+ DWORD dwDriveMask;
+ int drvnum = 0;
+
+ errormode = SetErrorMode (SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
+ dwDriveMask = GetLogicalDrives ();
+ dwDriveMask >>= 2; // Skip A and B drives...
+
+ for(drive = 'C'; drive <= 'Z'; ++drive) {
+ _stprintf (volumepath, L"%c:\\", drive);
+ /* Is this drive-letter valid (it used to check for media in drive) */
+ if(dwDriveMask & 1) {
+ TCHAR devname[MAX_DPATH];
+ BOOL inserted = CheckRM (volumepath); /* Is there a disk inserted? */
+ int nok = FALSE;
+ int rw = 1;
+ drivetype = GetDriveType (volumepath);
+ if (inserted && drivetype != DRIVE_NO_ROOT_DIR && drivetype != DRIVE_UNKNOWN) {
+ if (hfdcheck (drive)) {
+ write_log (L"Drive %c:\\ ignored, was configured as a harddrive\n", drive);
+ continue;
+ }
+ }
+ devname[0] = 0;
+ for (;;) {
+ if (drivetype == DRIVE_CDROM && currprefs.win32_automount_cddrives) {
+ _stprintf (devname, L"WinCD_%c", drive);
+ rw = 0;
+ break;
+ }
+ if (!inserted) {
+ nok = TRUE;
+ break;
+ }
+ if (drivetype == DRIVE_REMOTE && currprefs.win32_automount_netdrives)
+ break;
+ if (drivetype == DRIVE_FIXED && currprefs.win32_automount_drives)
+ break;
+ if (drivetype == DRIVE_REMOVABLE && currprefs.win32_automount_removabledrives)
+ break;
+ nok = TRUE;
+ break;
+ }
+ if (nok)
+ continue;
+ volumename[0] = 0;
+ if (inserted) {
+ target_get_volume_name (&mountinfo, volumepath, volumename, MAX_DPATH, inserted, 1);
+ if (!volumename[0])
+ _stprintf (volumename, L"WinUNK_%c", drive);
+ }
+ if (drivetype == DRIVE_REMOTE)
+ _tcscat (volumepath, L".");
+ else
+ _tcscat (volumepath, L"..");
+ if (currprefs.win32_automount_drives > 1) {
+ devname[0] = drive;
+ devname[1] = 0;
+ }
+ //write_log (L"Drive type %d: '%s' '%s'\n", drivetype, volumepath, volumename);
+ add_filesys_unit (devname[0] ? devname : NULL, volumename, volumepath, !rw, 0, 0, 0, 0, -20 - drvnum, 0, 1, 0, 0, 0);
+ drvnum++;
+ } /* if drivemask */
+ dwDriveMask >>= 1;
+ }
+ SetErrorMode (errormode);
}
#include "gui.h"
#include "options.h"
#include "memory.h"
+#include "rommgr.h"
#include "custom.h"
#include "events.h"
#include "newcpu.h"
COMDLG_FILTERSPEC *fs = NULL;
int filtercnt = 0;
+ static const GUID fsdialogguid = { 0xe768b477, 0x3684, 0x4128, { 0x91, 0x55, 0x8c, 0x8f, 0xd9, 0x2d, 0x16, 0x7b } };
+
+ if (isfullscreen () > 0)
+ guid = &fsdialogguid;
+
hr = -1;
ret = 0;
pSHCreateItemFromParsingName = (SHCREATEITEMFROMPARSINGNAME)GetProcAddress (
return ret;
}
-static BOOL GetOpenFileName_2 (OPENFILENAME *opn, const GUID *guid)
+static BOOL GetOpenFileName_2 (HWND parent, OPENFILENAME *opn, const GUID *guid)
{
- return GetFileDialog (opn, guid, 0);
+ BOOL val;
+ val = GetFileDialog (opn, guid, 0);
+ return val;
}
-static BOOL GetSaveFileName_2 (OPENFILENAME *opn, const GUID *guid)
+static BOOL GetSaveFileName_2 (HWND parent, OPENFILENAME *opn, const GUID *guid)
{
- return GetFileDialog (opn, guid, 1);
+ BOOL val;
+ val = GetFileDialog (opn, guid, 1);
+ return val;
}
int DirectorySelection (HWND hDlg, const GUID *guid, TCHAR *path)
{
+ int val;
OPENFILENAME ofn = { 0 };
ofn.hwndOwner = hDlg;
ofn.lpstrFile = path;
ofn.lpstrInitialDir = path;
ofn.nMaxFile = MAX_DPATH;
- return GetFileDialog (&ofn, NULL, -1);
+ val = GetFileDialog (&ofn, NULL, -1);
+ return val;
}
void write_disk_history (void)
regsetint (NULL, fname, filter[num]);
}
+static UINT_PTR CALLBACK ofnhook (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ HWND hWnd;
+ RECT windowRect;
+ int width, height, w2, h2;
+ struct MultiDisplay *md;
+ NMHDR *nmhdr;
+ int doit = FALSE;
+ static int prevwidth, prevheight;
+
+ if (message == WM_NOTIFY) {
+ nmhdr = (LPNMHDR)lParam;
+ if (nmhdr->code == CDN_INITDONE)
+ doit = TRUE;
+ } else if (message == WM_INITDIALOG) {
+ doit = TRUE;
+ }
+ if (!doit)
+ return FALSE;
+ md = getdisplay (&currprefs);
+ if (!md)
+ return FALSE;
+ w2 = WIN32GFX_GetWidth ();
+ h2 = WIN32GFX_GetHeight ();
+ if (w2 == prevwidth && h2 == prevheight)
+ return FALSE;
+ prevwidth = w2;
+ prevheight = h2;
+ //write_log (L"%dx%d %dx%d (%dx%d)\n", md->rect.left, md->rect.top, md->rect.right, md->rect.bottom, w2, h2);
+ hWnd = GetParent (hDlg);
+ GetWindowRect (hWnd, &windowRect);
+ width = windowRect.right - windowRect.left;
+ height = windowRect.bottom - windowRect.top;
+ if (width > w2)
+ width = w2;
+ if (height > h2)
+ height = h2;
+ MoveWindow (hWnd, md->rect.left + (w2 - width) / 2, md->rect.top + (h2 - height) / 2, width, height, FALSE);
+ return FALSE;
+}
+
+
// Common routine for popping up a file-requester
// flag - 0 for floppy loading, 1 for floppy creation, 2 for loading hdf, 3 for saving hdf
// flag - 4 for loading .uae config-files, 5 for saving .uae config-files
openFileName.lStructSize = sizeof (OPENFILENAME);
openFileName.hwndOwner = hDlg;
openFileName.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST |
- OFN_LONGNAMES | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
+ OFN_LONGNAMES | OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_ENABLESIZING | (isfullscreen () > 0 ? OFN_ENABLEHOOK : 0);
openFileName.lpstrFilter = szFilter;
openFileName.lpstrDefExt = defext;
openFileName.nFilterIndex = previousfilter[flag];
openFileName.nMaxFile = MAX_DPATH;
openFileName.lpstrFileTitle = file_name;
openFileName.nMaxFileTitle = MAX_DPATH;
+ openFileName.lpfnHook = ofnhook;
if (initialdir)
openFileName.lpstrInitialDir = initialdir;
else
if (multi)
openFileName.Flags |= OFN_ALLOWMULTISELECT;
if (flag == 1 || flag == 3 || flag == 5 || flag == 9 || flag == 11 || flag == 16) {
- if (!(result = GetSaveFileName_2 (&openFileName, guid)))
+ if (!(result = GetSaveFileName_2 (hDlg, &openFileName, guid)))
write_log (L"GetSaveFileNameX() failed, err=%d.\n", GetLastError ());
} else {
- if (!(result = GetOpenFileName_2 (&openFileName, guid)))
+ if (!(result = GetOpenFileName_2 (hDlg, &openFileName, guid)))
write_log (L"GetOpenFileNameX() failed, err=%d.\n", GetLastError ());
}
if (result) {
{
{IDC_CLOANTOHOME, FALSE, L"Cloanto's Amiga Forever", L"http://www.amigaforever.com/"},
{IDC_AMIGAHOME, FALSE, L"Amiga Inc.", L"http://www.amiga.com"},
- {IDC_PICASSOHOME, FALSE, L"Picasso96 Home Page", L"http://www.picasso96.cogito.de/"},
+// {IDC_PICASSOHOME, FALSE, L"Picasso96 Home Page", L"http://www.picasso96.cogito.de/"},
{IDC_UAEHOME, FALSE, L"UAE Home Page", L"http://uae.coresystems.de/"},
{IDC_WINUAEHOME, FALSE, L"WinUAE Home Page", L"http://www.winuae.net/"},
- {IDC_AIABHOME, FALSE, L"AIAB", L"http://www.amigainabox.co.uk/"},
+// {IDC_AIABHOME, FALSE, L"AIAB", L"http://www.amigainabox.co.uk/"},
{IDC_THEROOTS, FALSE, L"Back To The Roots", L"http://www.back2roots.org/"},
{IDC_ABIME, FALSE, L"abime.net", L"http://www.abime.net/"},
{IDC_CAPS, FALSE, L"SPS", L"http://www.softpres.org/"},
workprefs.cpu_clock_multiplier = 0;
workprefs.cpu_frequency = _tstof (txt) * 1000000.0;
if (workprefs.cpu_frequency < 1 * 1000000)
- workprefs.cpu_frequency = 1 * 1000000;
+ workprefs.cpu_frequency = 0;
if (workprefs.cpu_frequency >= 99 * 1000000)
- workprefs.cpu_frequency = 99 * 1000000;
+ workprefs.cpu_frequency = 0;
}
}
}
SetDlgItemText (hDlg, IDC_PATH_FILESYS, L"");
SetDlgItemText (hDlg, IDC_HARDFILE_DEVICE, L"");
current_hfdlg.sectors = current_hfdlg.reserved = current_hfdlg.surfaces = 0;
+ current_hfdlg.bootpri = 0;
current_hfdlg.autoboot = 1;
current_hfdlg.donotmount = 0;
sethardfile (hDlg);
};
static struct filterpreset filterpresets[] =
{
- { L"PAL", 8, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 1, 1, 0, 0, 0, 10, 0, 0, 0, 300, 30, 0, 0, 0 },
- { L"D3D Autoscale", 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1 },
- { L"D3D Full Scaling", 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0 },
+ { L"PAL", UAE_FILTER_PAL, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 1, 1, 0, 0, 0, 10, 0, 0, 0, 300, 30, 0, 0, 0 },
+ { L"D3D Autoscale", UAE_FILTER_DIRECT3D, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1 },
+ { L"D3D Full Scaling", UAE_FILTER_DIRECT3D, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0 },
{ NULL }
};
#endif
}
-void gui_hd_led (int unitnum, int led)
+static void gui_flicker_led2 (int led, int unitnum, int status)
{
- static int resetcounter;
- int old;
+ static int resetcounter[LED_MAX];
+ uae_u8 old;
+ uae_u8 *p;
- old = gui_data.hd;
- if (led == 0) {
- resetcounter--;
- if (resetcounter > 0)
+ if (led == LED_HD)
+ p = &gui_data.hd;
+ else if (led == LED_CD)
+ p = &gui_data.cd;
+ else if (led == LED_MD)
+ p = &gui_data.md;
+ else
+ return;
+ old = *p;
+ if (status == 0) {
+ resetcounter[led]--;
+ if (resetcounter[led] > 0)
return;
}
#ifdef RETROPLATFORM
- rp_hd_activity (unitnum, led ? 1 : 0, led == 2 ? 1 : 0);
+ if (led == LED_HD)
+ rp_hd_activity (unitnum, status ? 1 : 0, status == 2 ? 1 : 0);
+ else if (led == LED_CD)
+ rp_cd_activity (unitnum, status);
#endif
- gui_data.hd = led;
- resetcounter = 6;
- if (old != gui_data.hd)
- gui_led (5, gui_data.hd);
+ *p = status;
+ resetcounter[led] = 6;
+ if (old != *p)
+ gui_led (led, *p);
}
-void gui_cd_led (int unitnum, int led)
+void gui_flicker_led (int led, int unitnum, int status)
{
- static int resetcounter;
- int old;
-
- old = gui_data.cd;
- if (led == 0) {
- resetcounter--;
- if (resetcounter > 0)
- return;
+ if (led < 0) {
+ gui_flicker_led2 (LED_HD, 0, 0);
+ gui_flicker_led2 (LED_CD, 0, 0);
+ gui_flicker_led2 (LED_MD, 0, 0);
+ } else {
+ gui_flicker_led2 (led, unitnum, status);
}
- if (led < 0)
- led = 0;
-#ifdef RETROPLATFORM
- rp_cd_activity (unitnum, led);
-#endif
- gui_data.cd = led;
- resetcounter = 6;
- if (old != gui_data.cd)
- gui_led (6, gui_data.cd);
}
void gui_fps (int fps, int idle)
{
gui_data.fps = fps;
gui_data.idle = idle;
- gui_led (7, 0);
- gui_led (8, 0);
- gui_led (9, gui_data.sndbuf_status > 1 || gui_data.sndbuf_status < 0);
+ gui_led (LED_FPS, 0);
+ gui_led (LED_CPU, 0);
+ gui_led (LED_SND, gui_data.sndbuf_status > 1 || gui_data.sndbuf_status < 0);
}
void gui_led (int led, int on)
lcd_update (led, on);
#endif
#ifdef RETROPLATFORM
- if (led >= 1 && led <= 4 && !gui_data.drive_disabled[led - 1]) {
- rp_floppy_track (led - 1, gui_data.drive_track[led - 1]);
- writing = gui_data.drive_writing[led - 1];
+ if (led >= LED_DF0 && led <= LED_DF3 && !gui_data.drive_disabled[led - LED_DF0]) {
+ rp_floppy_track (led - LED_DF0, gui_data.drive_track[led - LED_DF0]);
+ writing = gui_data.drive_writing[led - LED_DF0];
}
rp_update_leds (led, on, writing);
#endif
if (!hStatusWnd)
return;
tt = NULL;
- if (led >= 1 && led <= 4) {
- pos = 6 + (led - 1);
+ if (led >= LED_DF0 && led <= LED_DF3) {
+ pos = 6 + (led - LED_DF0);
ptr = drive_text + pos * 16;
if (gui_data.drive_disabled[led - 1])
_tcscpy (ptr, L"");
tt[0] = 0;
if (_tcslen (p + j) > 0)
_stprintf (tt, L"%s [CRC=%08X]", p + j, gui_data.crc32[led - 1]);
- } else if (led == 0) {
+ } else if (led == LED_POWER) {
pos = 3;
ptr = _tcscpy (drive_text + pos * 16, L"Power");
- } else if (led == 5) {
+ } else if (led == LED_HD) {
pos = 4;
ptr = _tcscpy (drive_text + pos * 16, L"HD");
- } else if (led == 6) {
+ } else if (led == LED_CD) {
pos = 5;
ptr = _tcscpy (drive_text + pos * 16, L"CD");
- } else if (led == 7) {
+ } else if (led == LED_FPS) {
double fps = (double)gui_data.fps / 10.0;
extern int p96vblank;
pos = 2;
_stprintf (ptr, L"FPS: %.1f", fps);
if (pause_emulation)
_tcscpy (ptr, L"PAUSED");
- } else if (led == 8) {
+ } else if (led == LED_CPU) {
pos = 1;
ptr = drive_text + pos * 16;
_stprintf (ptr, L"CPU: %.0f%%", (double)((gui_data.idle) / 10.0));
- } else if (led == 9) {
+ } else if (led == LED_SND) {
pos = 0;
ptr = drive_text + pos * 16;
if (gui_data.sndbuf_status < 3) {
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib portaudio_x86.lib freetype.lib vfw32.lib wtsapi32.lib avrt.lib wininet.lib enet.lib"
+ AdditionalDependencies="ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib portaudio_x86.lib freetype.lib vfw32.lib wtsapi32.lib avrt.lib wininet.lib enet.lib prowizard.lib"
ShowProgress="0"
OutputFile="d:\amiga\winuae.exe"
LinkIncremental="2"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib portaudio_x86.lib freetype.lib vfw32.lib wtsapi32.lib avrt.lib wininet.lib enet.lib"
+ AdditionalDependencies="ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib portaudio_x86.lib freetype.lib vfw32.lib wtsapi32.lib avrt.lib wininet.lib enet.lib prowizard.lib"
OutputFile="d:\amiga\winuae.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib portaudio_x86.lib freetype.lib vfw32.lib wtsapi32.lib avrt.lib wininet.lib enet.lib"
+ AdditionalDependencies="ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib portaudio_x86.lib freetype.lib vfw32.lib wtsapi32.lib avrt.lib wininet.lib enet.lib prowizard.lib"
OutputFile="d:\amiga\winuae.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
RelativePath="..\..\cia.c"
>
</File>
+ <File
+ RelativePath="..\..\consolehook.c"
+ >
+ </File>
<File
RelativePath="..\..\cpudefs.c"
>
RelativePath="..\..\readcpu.c"
>
</File>
+ <File
+ RelativePath="..\..\rommgr.c"
+ >
+ </File>
<File
RelativePath="..\..\sana2.c"
>
<Filter
Name="prowizard"
>
- <File
- RelativePath="..\..\prowizard\misc\misc.c"
- >
- </File>
<File
RelativePath="..\..\moduleripper.c"
>
</File>
- <File
- RelativePath="..\..\prowizard\prowiz.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\misc\testbag.c"
- >
- </File>
- <Filter
- Name="rippers"
- >
- <File
- RelativePath="..\..\prowizard\rippers\AC1D_packer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\AMOS-MusicBank.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\AMOS-PowerPackerBank.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\BP-Soundmonitor.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\BSI-FutureComposer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Bytekiller.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ChipTracker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Crunchmania-Address.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Crunchmania-Simple.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\datacrunchers.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\DefjamCruncher32-pro.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\DigiBooster17.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\DigitalIllusion.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\DoubleAction.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Dragpack100.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Dragpack252.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\EurekaPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\FastTracker2.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\FC-M-Packer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\FuchsTracker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\FutureComposer13.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\FutureComposer14.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\FuzzacPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\GameMusicCreator.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\GNUPacker12.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\GnuPlayer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\GPMO.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\HeatseekerMC10.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\HornetPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\HQC2.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\JamCracker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\KefrensSoundMachine.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\MasterCruncher30-Address.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\MaxPacker12.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\MED-Octamed.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\MegaCruncher-Object.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\MegaCruncher.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\MOD-compatible.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ModuleProtector.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Mugician.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Newtron.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\NewtronOld.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\NoiseFromHeaven.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\NoisePacker1.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\NoisePacker2.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\NoisePacker3.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\NoiseRunner.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\NovoTrade.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\PhaPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\PolkaPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\PowerMusic.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\PowerPacker23.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\PowerPacker30.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\PowerPacker40-library.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\PowerPacker40.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Promizer01.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Promizer10c.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Promizer18a.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Promizer20.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Promizer40.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ProPacker10.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ProPacker21.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ProPacker30.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Prorunner10.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\Prorunner20.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\QuadraComposer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\RelokIt10.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SGT-Packer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\skizzo.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SkytPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SoundFX.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SoundTracker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SoundTracker26.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SpikeCruncher.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StartrekkerPack.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StimPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StoneArtsPlayer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StoneCracker270.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StoneCracker299.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StoneCracker299b.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StoneCracker299d.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StoneCracker300.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\StoneCracker310.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SuperCruncher27.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\SyncroPacker46.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TetraPack102.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TetraPack21.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TetraPack22.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TheDarkDemon.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ThePlayer22a.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ThePlayer30a.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ThePlayer40.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ThePlayer41a.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ThePlayer50a.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ThePlayer60a.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ThePlayer61a.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TimeCruncher17.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TitanicsPlayer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TMK.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TNMCruncher.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TrackerPacker1.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TrackerPacker2.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TrackerPacker3.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TryItCruncher101.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\TurboSqueezer61.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\UnicTracker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\UnicTracker2.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\WantonPacker.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\XannPlayer.c"
- >
- </File>
- <File
- RelativePath="..\..\prowizard\rippers\ZenPacker.c"
- >
- </File>
- </Filter>
</Filter>
<Filter
Name="decompressors"
+Beta 1:
+
+- prowizard is now in static link library (no functional changes)
+- update HDIW=0 or 1 OCS Denise feature, after more research (thanks
+ to yaqube for finding real technical reason), OCS Denise hdiw counter
+ does not reset from last line of previous field to line 9 causing
+ "random" positions to match both start and end of hdiw, including
+ normally unavailable positions. This was fixed in ECS Denise.
+- sometimes cpu frequency was reset to 1000000, now it resets to default
+- set "A500 speed" automatically when switching to cycle exact on the fly
+- renamed "Match A500 speed" to "Approximate A500 or cycle-exact A500/A1200"
+- fixed rare sprite bug introduced in 2.0.0
+- DF3 on screen led reused as internal nvram read/write led in CD32/CDTV
+ modes
+- filter presets were broken
+- replace possible illegal (not in Amiga charset) characters in directory
+ filesystem volume and device names, truncate to 30 characters if longer
+- fixed random Direct3D filter garbage when on screen leds enabled and
+ sometimes even when osd was disabled
+- changed filesystem thread priority back to highest (+2), same as before
+ 2.0, it seems +1 isn't enough in all systems (slow fs performance when
+ main thread is using all CPU time)
+- removed broken URLs in about panel
+- fullscreen and windowed file dialogs have separate position and size
+ settings (Vista and newer only)
+- attempt to center file dialogs in fullscreen mode (XP only)
+- caps lock key supported in key mappings, toggle should be usually
+ enabled if you are mapping host non-caps lock key to Amiga caps lock
+- hardcoded keys (pause, scroll lock etc..) automatically disable
+ hardcoded mapping if it is mapped in input panel (END + mappings are
+ not disabled)
+- num lock or scroll lock mapped to amiga caps lock -> follow led state
+ (just like host caps lock key mapped to amiga caps lock key)
+- filesystem charset conversion fallbacks added, ISO-8859-15 ->
+ ISO-8859-1 -> windows-1252 -> current Windows codepage (not all XP
+ installations have all charsets installed by default, last 2 can have
+ problems with national characters but it is better than nothing)
+- closing GUI debugger window won't close the emulator anymore
+- rar unpack crash fix
+
+2.0.1
+
Beta 3: (RC1)
- emulate OCS Denise "bug", vertical DIW already active, matches again
writeconsole (txt);
}
+TCHAR console_getch (void)
+{
+ if (realconsole) {
+ return getwc (stdin);
+ } else if (consoleopen < 0) {
+ DWORD len;
+ TCHAR out[2];
+
+ for (;;) {
+ out[0] = 0;
+ ReadConsole (stdinput, out, 1, &len, 0);
+ if (len > 0)
+ return out[0];
+ }
+ }
+ return 0;
+}
+
int console_get (TCHAR *out, int maxlen)
{
*out = 0;
if (consoleopen > 0) {
return console_get_gui (out, maxlen);
} else if (realconsole) {
- _fgetts (out, maxlen, stdin);
- return _tcslen (out);
+ DWORD totallen;
+
+ *out = 0;
+ totallen = 0;
+ while (maxlen > 0) {
+ *out = getwc (stdin);
+ if (*out == 13)
+ break;
+ out++;
+ maxlen--;
+ totallen++;
+ }
+ *out = 0;
+ return totallen;
} else if (consoleopen < 0) {
DWORD len, totallen;
--- /dev/null
+ /*
+ * UAE - The Un*x Amiga Emulator
+ *
+ * ROM file management
+ *
+ */
+
+#include "sysconfig.h"
+#include "sysdeps.h"
+
+#include "options.h"
+#include "uae.h"
+#include "gui.h"
+#include "rommgr.h"
+#include "memory.h"
+#include "zfile.h"
+#include "crc32.h"
+
+
+static struct romlist *rl;
+static int romlist_cnt;
+
+struct romlist *romlist_getit (void)
+{
+ return rl;
+}
+
+int romlist_count (void)
+{
+ return romlist_cnt;
+}
+
+TCHAR *romlist_get (struct romdata *rd)
+{
+ int i;
+
+ if (!rd)
+ return 0;
+ for (i = 0; i < romlist_cnt; i++) {
+ if (rl[i].rd->id == rd->id)
+ return rl[i].path;
+ }
+ return 0;
+}
+
+static struct romlist *romlist_getrl (struct romdata *rd)
+{
+ int i;
+
+ if (!rd)
+ return 0;
+ for (i = 0; i < romlist_cnt; i++) {
+ if (rl[i].rd == rd)
+ return &rl[i];
+ }
+ return 0;
+}
+
+static void romlist_cleanup (void);
+void romlist_add (TCHAR *path, struct romdata *rd)
+{
+ struct romlist *rl2;
+
+ if (path == NULL || rd == NULL) {
+ romlist_cleanup ();
+ return;
+ }
+ romlist_cnt++;
+ rl = realloc (rl, sizeof (struct romlist) * romlist_cnt);
+ rl2 = rl + romlist_cnt - 1;
+ rl2->path = my_strdup (path);
+ rl2->rd = rd;
+}
+
+
+struct romdata *getromdatabypath(TCHAR *path)
+{
+ int i;
+ for (i = 0; i < romlist_cnt; i++) {
+ struct romdata *rd = rl[i].rd;
+ if (rd->configname && path[0] == ':') {
+ if (!_tcscmp(path + 1, rd->configname))
+ return rd;
+ }
+ if (!_tcscmp(rl[i].path, path))
+ return rl[i].rd;
+ }
+ return NULL;
+}
+
+#define NEXT_ROM_ID 73
+
+static struct romheader romheaders[] = {
+ { L"Freezer Cartridges", 1 },
+ { L"Arcadia Games", 2 },
+ { NULL, 0 }
+};
+
+#define ALTROM(id,grp,num,size,flags,crc32,a,b,c,d,e) \
+{ L"X", 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, NULL, crc32, a, b, c, d, e },
+#define ALTROMPN(id,grp,num,size,flags,pn,crc32,a,b,c,d,e) \
+{ L"X", 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, pn, crc32, a, b, c, d, e },
+
+static struct romdata roms[] = {
+ { L"Cloanto Amiga Forever ROM key", 0, 0, 0, 0, 0, 2069, 0, 0, 1, ROMTYPE_KEY, 0, 0, NULL,
+ 0x869ae1b1, 0x801bbab3,0x2e3d3738,0x6dd1636d,0x4f1d6fa7,0xe21d5874 },
+ { L"Cloanto Amiga Forever 2006 ROM key", 0, 0, 0, 0, 0, 750, 48, 0, 1, ROMTYPE_KEY, 0, 0, NULL,
+ 0xb01c4b56, 0xbba8e5cd,0x118b8d92,0xafed5693,0x5eeb9770,0x2a662d8f },
+
+ { L"KS ROM v1.0 (A1000)(NTSC)", 1, 0, 1, 0, L"A1000\0", 262144, 1, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x299790ff, 0x00C15406,0xBEB4B8AB,0x1A16AA66,0xC05860E1,0xA7C1AD79 },
+ { L"KS ROM v1.1 (A1000)(NTSC)", 1, 1, 31, 34, L"A1000\0", 262144, 2, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0xd060572a, 0x4192C505,0xD130F446,0xB2ADA6BD,0xC91DAE73,0x0ACAFB4C},
+ { L"KS ROM v1.1 (A1000)(PAL)", 1, 1, 31, 34, L"A1000\0", 262144, 3, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0xec86dae2, 0x16DF8B5F,0xD524C5A1,0xC7584B24,0x57AC15AF,0xF9E3AD6D },
+ { L"KS ROM v1.2 (A1000)", 1, 2, 33, 166, L"A1000\0", 262144, 4, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x9ed783d0, 0x6A7BFB5D,0xBD6B8F17,0x9F03DA84,0xD8D95282,0x67B6273B },
+ { L"KS ROM v1.2 (A500,A1000,A2000)", 1, 2, 33, 180, L"A500\0A1000\0A2000\0", 262144, 5, 0, 0, ROMTYPE_KICK, 0, 0, L"315093-01",
+ 0xa6ce1636, 0x11F9E62C,0xF299F721,0x84835B7B,0x2A70A163,0x33FC0D88 },
+ { L"KS ROM v1.3 (A500,A1000,A2000)", 1, 3, 34, 5, L"A500\0A1000\0A2000\0", 262144, 6, 0, 0, ROMTYPE_KICK, 0, 0, L"315093-02",
+ 0xc4f0f55f, 0x891E9A54,0x7772FE0C,0x6C19B610,0xBAF8BC4E,0xA7FCB785 },
+ { L"KS ROM v1.3 (A3000)(SK)", 1, 3, 34, 5, L"A3000\0", 262144, 32, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0xe0f37258, 0xC39BD909,0x4D4E5F4E,0x28C1411F,0x30869504,0x06062E87 },
+ { L"KS ROM v1.4 (A3000)", 1, 4, 36, 16, L"A3000\0", 524288, 59, 3, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0xbc0ec13f, 0xF76316BF,0x36DFF14B,0x20FA349E,0xD02E4B11,0xDD932B07 },
+ ALTROMPN(59, 1, 1, 262144, ROMTYPE_EVEN, L"390629-02", 0x58327536,0xd1713d7f,0x31474a59,0x48e6d488,0xe3368606,0x1cf3d1e2)
+ ALTROMPN(59, 1, 2, 262144, ROMTYPE_ODD , L"390630-02", 0xfe2f7fb9,0xc05c9c52,0xd014c66f,0x9019152b,0x3f2a2adc,0x2c678794)
+ { L"KS ROM v2.04 (A500+)", 2, 4, 37, 175, L"A500+\0", 524288, 7, 0, 0, ROMTYPE_KICK, 0, 0, L"390979-01",
+ 0xc3bdb240, 0xC5839F5C,0xB98A7A89,0x47065C3E,0xD2F14F5F,0x42E334A1 },
+ { L"KS ROM v2.05 (A600)", 2, 5, 37, 299, L"A600\0", 524288, 8, 0, 0, ROMTYPE_KICK, 0, 0, L"391388-01",
+ 0x83028fb5, 0x87508DE8,0x34DC7EB4,0x7359CEDE,0x72D2E3C8,0xA2E5D8DB },
+ { L"KS ROM v2.05 (A600HD)", 2, 5, 37, 300, L"A600HD\0A600\0", 524288, 9, 0, 0, ROMTYPE_KICK, 0, 0, L"391304-01",
+ 0x64466c2a, 0xF72D8914,0x8DAC39C6,0x96E30B10,0x859EBC85,0x9226637B },
+ { L"KS ROM v2.05 (A600HD)", 2, 5, 37, 350, L"A600HD\0A600\0", 524288, 10, 0, 0, ROMTYPE_KICK, 0, 0, L"391304-02",
+ 0x43b0df7b, 0x02843C42,0x53BBD29A,0xBA535B0A,0xA3BD9A85,0x034ECDE4 },
+ { L"KS ROM v2.04 (A3000)", 2, 4, 37, 175, L"A3000\0", 524288, 71, 3, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x234a7233, 0xd82ebb59,0xafc53540,0xddf2d718,0x7ecf239b,0x7ea91590 },
+ ALTROMPN(71, 1, 1, 262144, ROMTYPE_EVEN, L"390629-03", 0x7db1332b,0x48f14b31,0x279da675,0x7848df6f,0xeb531881,0x8f8f576c)
+ ALTROMPN(71, 1, 2, 262144, ROMTYPE_ODD , L"390630-03", 0xa245dbdf,0x83bab8e9,0x5d378b55,0xb0c6ae65,0x61385a96,0xf638598f)
+
+ { L"KS ROM v3.0 (A1200)", 3, 0, 39, 106, L"A1200\0", 524288, 11, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x6c9b07d2, 0x70033828,0x182FFFC7,0xED106E53,0x73A8B89D,0xDA76FAA5 },
+ ALTROMPN(11, 1, 1, 262144, ROMTYPE_EVEN, L"391523-01", 0xc742a412,0x999eb81c,0x65dfd07a,0x71ee1931,0x5d99c7eb,0x858ab186)
+ ALTROMPN(11, 1, 2, 262144, ROMTYPE_ODD , L"391524-01", 0xd55c6ec6,0x3341108d,0x3a402882,0xb5ef9d3b,0x242cbf3c,0x8ab1a3e9)
+ { L"KS ROM v3.0 (A4000)", 3, 0, 39, 106, L"A4000\0", 524288, 12, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x9e6ac152, 0xF0B4E9E2,0x9E12218C,0x2D5BD702,0x0E4E7852,0x97D91FD7 },
+ ALTROMPN(12, 1, 1, 262144, ROMTYPE_EVEN, L"391513-02", 0x36f64dd0,0x196e9f3f,0x9cad934e,0x181c07da,0x33083b1f,0x0a3c702f)
+ ALTROMPN(12, 1, 2, 262144, ROMTYPE_ODD , L"391514-02", 0x17266a55,0x42fbed34,0x53d1f11c,0xcbde89a9,0x826f2d11,0x75cca5cc)
+ { L"KS ROM v3.1 (A4000)", 3, 1, 40, 70, L"A4000\0", 524288, 13, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x2b4566f1, 0x81c631dd,0x096bbb31,0xd2af9029,0x9c76b774,0xdb74076c },
+ ALTROM(13, 1, 1, 262144, ROMTYPE_EVEN, 0xf9cbecc9,0x138d8cb4,0x3b8312fe,0x16d69070,0xde607469,0xb3d4078e)
+ ALTROM(13, 1, 2, 262144, ROMTYPE_ODD , 0xf8248355,0xc2379547,0x9fae3910,0xc185512c,0xa268b82f,0x1ae4fe05)
+ { L"KS ROM v3.1 (A500,A600,A2000)", 3, 1, 40, 63, L"A500\0A600\0A2000\0", 524288, 14, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0xfc24ae0d, 0x3B7F1493,0xB27E2128,0x30F989F2,0x6CA76C02,0x049F09CA },
+ { L"KS ROM v3.1 (A1200)", 3, 1, 40, 68, L"A1200\0", 524288, 15, 1, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x1483a091, 0xE2154572,0x3FE8374E,0x91342617,0x604F1B3D,0x703094F1 },
+ ALTROMPN(15, 1, 1, 262144, ROMTYPE_EVEN, L"391773-01", 0x08dbf275,0xb8800f5f,0x90929810,0x9ea69690,0xb1b8523f,0xa22ddb37)
+ ALTROMPN(15, 1, 2, 262144, ROMTYPE_ODD , L"391774-01", 0x16c07bf8,0x90e331be,0x1970b0e5,0x3f53a9b0,0x390b51b5,0x9b3869c2)
+ { L"KS ROM v3.1 (A3000)", 3, 1, 40, 68, L"A3000\0", 524288, 61, 2, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0xefb239cc, 0xF8E210D7,0x2B4C4853,0xE0C9B85D,0x223BA20E,0x3D1B36EE },
+ ALTROM(61, 1, 1, 262144, ROMTYPE_EVEN, 0x286b9a0d,0x6763a225,0x8ec493f7,0x408cf663,0x110dae9a,0x17803ad1)
+ ALTROM(61, 1, 2, 262144, ROMTYPE_ODD , 0x0b8cde6a,0x5f02e97b,0x48ebbba8,0x7d516a56,0xb0400c6f,0xc3434d8d)
+ { L"KS ROM v3.1 (A4000)(Cloanto)", 3, 1, 40, 68, L"A4000\0", 524288, 31, 2 | 4, 1, ROMTYPE_KICK, 0, 0, NULL,
+ 0x43b6dd22, 0xC3C48116,0x0866E60D,0x085E436A,0x24DB3617,0xFF60B5F9 },
+ { L"KS ROM v3.1 (A4000)", 3, 1, 40, 68, L"A4000\0", 524288, 16, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0xd6bae334, 0x5FE04842,0xD04A4897,0x20F0F4BB,0x0E469481,0x99406F49 },
+ ALTROM(16, 1, 1, 262144, ROMTYPE_EVEN, 0xb2af34f8,0x24e52b5e,0xfc020495,0x17387ab7,0xb1a1475f,0xc540350e)
+ ALTROM(16, 1, 2, 262144, ROMTYPE_ODD , 0xe65636a3,0x313c7cbd,0xa5779e56,0xf19a41d3,0x4e760f51,0x7626d882)
+ { L"KS ROM v3.1 (A4000T)", 3, 1, 40, 70, L"A4000T\0", 524288, 17, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x75932c3a, 0xB0EC8B84,0xD6768321,0xE01209F1,0x1E6248F2,0xF5281A21 },
+ ALTROMPN(17, 1, 1, 262144, ROMTYPE_EVEN, L"391657-01", 0x0ca94f70,0xb3806eda,0xcb3362fc,0x16a154ce,0x1eeec5bf,0x5bc24789)
+ ALTROMPN(17, 1, 2, 262144, ROMTYPE_ODD , L"391658-01", 0xdfe03120,0xcd7a706c,0x431b04d8,0x7814d3a2,0xd8b39710,0x0cf44c0c)
+ { L"KS ROM v3.X (A4000)(Cloanto)", 3, 10, 45, 57, L"A4000\0", 524288, 46, 2 | 4, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x3ac99edc, 0x3cbfc9e1,0xfe396360,0x157bd161,0xde74fc90,0x1abee7ec },
+
+ { L"CD32 KS ROM v3.1", 3, 1, 40, 60, L"CD32\0", 524288, 18, 1, 0, ROMTYPE_KICKCD32, 0, 0, NULL,
+ 0x1e62d4a5, 0x3525BE88,0x87F79B59,0x29E017B4,0x2380A79E,0xDFEE542D },
+ { L"CD32 extended ROM", 3, 1, 40, 60, L"CD32\0", 524288, 19, 1, 0, ROMTYPE_EXTCD32, 0, 0, NULL,
+ 0x87746be2, 0x5BEF3D62,0x8CE59CC0,0x2A66E6E4,0xAE0DA48F,0x60E78F7F },
+
+ /* plain CD32 rom */
+ { L"CD32 ROM (KS + extended)", 3, 1, 40, 60, L"CD32\0", 2 * 524288, 64, 1, 0, ROMTYPE_KICKCD32 | ROMTYPE_EXTCD32 | ROMTYPE_CD32, 0, 0, NULL,
+ 0xf5d4f3c8, 0x9fa14825,0xc40a2475,0xa2eba5cf,0x325bd483,0xc447e7c1 },
+ /* real CD32 rom dump 391640-03 */
+ ALTROMPN(64, 1, 1, 2 * 524288, ROMTYPE_CD32, L"391640-03", 0xa4fbc94a, 0x816ce6c5,0x07787585,0x0c7d4345,0x2230a9ba,0x3a2902db )
+
+ { L"CD32 MPEG Cartridge ROM", 3, 1, 40, 30, L"CD32FMV\0", 262144, 23, 1, 0, ROMTYPE_CD32CART, 0, 0, NULL,
+ 0xc35c37bf, 0x03ca81c7,0xa7b259cf,0x64bc9582,0x863eca0f,0x6529f435 },
+
+ { L"CDTV extended ROM v1.00", 1, 0, 1, 0, L"CDTV\0", 262144, 20, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL,
+ 0x42baa124, 0x7BA40FFA,0x17E500ED,0x9FED041F,0x3424BD81,0xD9C907BE },
+ ALTROMPN(20, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, L"252606-01", 0x791cb14b,0x277a1778,0x92449635,0x3ffe56be,0x68063d2a,0x334360e4)
+ ALTROMPN(20, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, L"252607-01", 0xaccbbc2e,0x41b06d16,0x79c6e693,0x3c3378b7,0x626025f7,0x641ebc5c)
+ { L"CDTV extended ROM v2.07", 2, 7, 2, 7, L"CDTV\0", 262144, 22, 0, 0, ROMTYPE_EXTCDTV, 0, 0, NULL,
+ 0xceae68d2, 0x5BC114BB,0xA29F60A6,0x14A31174,0x5B3E2464,0xBFA06846 },
+ ALTROM(22, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x36d73cb8,0x9574e546,0x4b390697,0xf28f9a43,0x4e604e5e,0xf5e5490a)
+ ALTROM(22, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x6e84dce7,0x01a0679e,0x895a1a0f,0x559c7253,0xf539606b,0xd447b54f)
+ { L"CDTV/A570 extended ROM v2.30", 2, 30, 2, 30, L"CDTV\0", 262144, 21, 0, 0, ROMTYPE_EXTCDTV, 0, 0, L"391298-01",
+ 0x30b54232, 0xED7E461D,0x1FFF3CDA,0x321631AE,0x42B80E3C,0xD4FA5EBB },
+ ALTROM(21, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x48e4d74f,0x54946054,0x2269e410,0x36018402,0xe1f6b855,0xfd89092b)
+ ALTROM(21, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x8a54f362,0x03df800f,0x032046fd,0x892f6e7e,0xec08b76d,0x33981e8c)
+
+ { L"A1000 bootstrap ROM", 0, 0, 0, 0, L"A1000\0", 65536, 24, 0, 0, ROMTYPE_KICK, 0, 0, NULL,
+ 0x0b1ad2d0, 0xBA93B8B8,0x5CA0D83A,0x68225CC3,0x3B95050D,0x72D2FDD7 },
+ ALTROM(24, 1, 1, 8192, 0, 0x62f11c04, 0xC87F9FAD,0xA4EE4E69,0xF3CCA0C3,0x6193BE82,0x2B9F5FE6)
+ ALTROMPN(24, 2, 1, 4096, ROMTYPE_EVEN | ROMTYPE_8BIT, L"252179-01", 0x42553bc4,0x8855a97f,0x7a44e3f6,0x2d1c88d9,0x38fee1f4,0xc606af5b)
+ ALTROMPN(24, 2, 2, 4096, ROMTYPE_ODD | ROMTYPE_8BIT, L"252180-01", 0x8e5b9a37,0xd10f1564,0xb99f5ffe,0x108fa042,0x362e877f,0x569de2c3)
+
+ { L"The Diagnostic 2.0 (Logica)", 2, 0, 2, 0, L"LOGICA\0", 524288, 72, 0, 0, ROMTYPE_KICK | ROMTYPE_SPECIALKICK, 0, 0, NULL,
+ 0x8484f426, 0xba10d161,0x66b2e2d6,0x177c979c,0x99edf846,0x2b21651e },
+
+ { L"Freezer: Action Replay Mk I v1.00", 1, 0, 1, 0, L"AR\0", 65536, 52, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0x2d921771, 0x1EAD9DDA,0x2DAD2914,0x6441F5EF,0x72183750,0x22E01248 },
+ ALTROM(52, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x82d6eb87, 0x7c9bac11,0x28666017,0xeee6f019,0x63fb3890,0x7fbea355)
+ ALTROM(52, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x40ae490c, 0x81d8e432,0x01b73fd9,0x2e204ebd,0x68af8602,0xb62ce397)
+ { L"Freezer: Action Replay Mk I v1.50", 1, 50, 1, 50, L"AR\0", 65536, 25, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0xd4ce0675, 0x843B433B,0x2C56640E,0x045D5FDC,0x854DC6B1,0xA4964E7C },
+ ALTROM(25, 1, 1, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x7fbd6de2, 0xb5f71a5c,0x09d65ecc,0xa8a3bc93,0x93558461,0xca190228)
+ ALTROM(25, 1, 2, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, 0x43018069, 0xad8ff242,0xb2cbf125,0x1fc53a73,0x581cf57a,0xb69cee00)
+ { L"Freezer: Action Replay Mk II v2.05", 2, 5, 2, 5, L"AR\0", 131072, 26, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0x1287301f, 0xF6601DE8,0x888F0050,0x72BF562B,0x9F533BBC,0xAF1B0074 },
+ { L"Freezer: Action Replay Mk II v2.12", 2, 12, 2, 12, L"AR\0", 131072, 27, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0x804d0361, 0x3194A07A,0x0A82D8B5,0xF2B6AEFA,0x3CA581D6,0x8BA8762B },
+ { L"Freezer: Action Replay Mk II v2.14", 2, 14, 2, 14, L"AR\0", 131072, 28, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0x49650e4f, 0x255D6DF6,0x3A4EAB0A,0x838EB1A1,0x6A267B09,0x59DFF634 },
+ { L"Freezer: Action Replay Mk III v3.09", 3, 9, 3, 9, L"AR\0", 262144, 29, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0x0ed9b5aa, 0x0FF3170A,0xBBF0CA64,0xC9DD93D6,0xEC0C7A01,0xB5436824 },
+ ALTROM(29, 1, 1, 131072, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2b84519f, 0x7841873b,0xf009d834,0x1dfa2794,0xb3751bac,0xf86adcc8)
+ ALTROM(29, 1, 2, 131072, ROMTYPE_ODD | ROMTYPE_8BIT, 0x1d35bd56, 0x6464be16,0x26b51949,0x9e76e4e3,0x409e8016,0x515d48b6)
+ { L"Freezer: Action Replay Mk III v3.17", 3, 17, 3, 17, L"AR\0", 262144, 30, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0xc8a16406, 0x5D4987C2,0xE3FFEA8B,0x1B02E314,0x30EF190F,0x2DB76542 },
+ { L"Freezer: Action Replay 1200", 0, 0, 0, 0, L"AR\0", 262144, 47, 0, 0, ROMTYPE_AR, 0, 1, NULL,
+ 0x8d760101, 0x0F6AB834,0x2810094A,0xC0642F62,0xBA42F78B,0xC0B07E6A },
+
+ { L"Freezer: Action Cartridge Super IV Professional", 0, 0, 0, 0, L"SUPERIV\0", 0, 62, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL,
+ 0xffffffff, 0, 0, 0, 0, 0, L"SuperIV" },
+ { L"Freezer: Action Cart. Super IV Pro (+ROM v4.3)", 4, 3, 4, 3, L"SUPERIV\0", 170368, 60, 0, 0, ROMTYPE_SUPERIV, 0, 1, NULL,
+ 0xe668a0be, 0x633A6E65,0xA93580B8,0xDDB0BE9C,0x9A64D4A1,0x7D4B4801 },
+ { L"Freezer: X-Power Professional 500 v1.2", 1, 2, 1, 2, L"XPOWER\0", 131072, 65, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL,
+ 0x9e70c231, 0xa2977a1c,0x41a8ca7d,0x4af4a168,0x726da542,0x179d5963 },
+ ALTROM(65, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf98742e4,0xe8e683ba,0xd8b38d1f,0x79f3ad83,0xa9e67c6f,0xa91dc96c)
+ ALTROM(65, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdfb9984b,0x8d6bdd49,0x469ec8e2,0x0143fbb3,0x72e92500,0x99f07910)
+ { L"Freezer: X-Power Professional 500 v1.3", 1, 2, 1, 2, L"XPOWER\0", 131072, 68, 0, 0, ROMTYPE_XPOWER, 0, 1, NULL,
+ 0x31e057f0, 0x84650266,0x465d1859,0x7fd71dee,0x00775930,0xb7e450ee },
+ ALTROM(68, 1, 1, 65536, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x0b2ce0c7,0x45ad5456,0x89192404,0x956f47ce,0xf66a5274,0x57ace33b)
+ ALTROM(68, 1, 2, 65536, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x34580c35,0x8ad42566,0x7364f238,0x978f4381,0x08f8d5ec,0x470e72ea)
+ { L"Freezer: Nordic Power v1.5", 1, 5, 1, 5, L"NPOWER\0", 65536, 69, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL,
+ 0x83b4b21c, 0xc56ced25,0x506a5aab,0x3fa13813,0x4fc9e5ae,0x0f9d3709 },
+ ALTROM(69, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xdd207174,0xae67652d,0x64f5db20,0x0f4b2110,0xee59567f,0xfbd90a1b)
+ ALTROM(69, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x8f93d85d,0x73c62d21,0x40c0c092,0x6315b702,0xdd5d0f05,0x3dad7fab)
+ { L"Freezer: Nordic Power v2.0", 2, 0, 2, 0, L"NPOWER\0", 65536, 67, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL,
+ 0xa4db2906, 0x0aec68f7,0x25470c89,0x6b699ff4,0x6623dec5,0xc777466e },
+ ALTROM(67, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xb21be46c,0x50dc607c,0xce976bbd,0x3841eaf0,0x591ddc7e,0xa1939ad2)
+ ALTROM(67, 1, 2, 32768, ROMTYPE_ODD |ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0x96057aed,0xdd9209e2,0x1d5edfc1,0xcdb52abe,0x93de0f35,0xc43da696)
+ { L"Freezer: Nordic Power v3.0", 3, 0, 3, 0, L"NPOWER\0", 65536, 70, 0, 0, ROMTYPE_NORDIC, 0, 1, NULL,
+ 0x72850aef, 0x59c91d1f,0xa8f118f9,0x0bdba05a,0x9ae788d7,0x7a6cc7c9 },
+ ALTROM(70, 1, 1, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xf3330e1f,0x3a597db2,0xb7d11b6c,0xb8e13496,0xc215f223,0x88c4ca3c)
+ ALTROM(70, 1, 2, 32768, ROMTYPE_EVEN|ROMTYPE_SCRAMBLED|ROMTYPE_8BIT, 0xee58e0f9,0x4148f4cb,0xb42cec33,0x8ca144de,0xd4f54118,0xe0f185dd)
+ { L"Freezer: HRTMon v2.32 (built-in)", 0, 0, 0, 0, L"HRTMON\0", 0, 63, 0, 0, ROMTYPE_HRTMON, 0, 1, NULL,
+ 0xffffffff, 0, 0, 0, 0, 0, L"HRTMon" },
+
+ { L"A590/A2091 SCSI boot ROM", 6, 0, 6, 0, L"A590\0A2091\0", 16384, 53, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
+ 0x8396cf4e, 0x5E03BC61,0x8C862ABE,0x7BF79723,0xB4EEF4D2,0x1859A0F2 },
+ ALTROM(53, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, 0xb0b8cf24,0xfcf40175,0x05f4d441,0x814b45d5,0x59c19eab,0x43816b30)
+ ALTROM(53, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2e77bbff,0x8a098845,0x068f32cf,0xa4d34a27,0x8cd290f6,0x1d35a52c)
+ { L"A590/A2091 SCSI boot ROM", 6, 6, 6, 6, L"A590\0A2091\0", 16384, 54, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
+ 0x33e00a7a, 0x739BB828,0xE874F064,0x9360F59D,0x26B5ED3F,0xBC99BB66 },
+ ALTROM(54, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, 0xe536bbb2,0xfd7f8a6d,0xa18c1b02,0xd07eb990,0xc2467a24,0x183ede12)
+ ALTROM(54, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, 0xc0871d25,0xe155f18a,0xbb90cf82,0x0589c15e,0x70559d3b,0x6b391af8)
+ { L"A590/A2091 SCSI boot ROM", 7, 0, 7, 0, L"A590\0A2091\0", 16384, 55, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
+ 0x714a97a2, 0xE50F01BA,0xF2899892,0x85547863,0x72A82C33,0x3C91276E },
+ ALTROM(55, 1, 1, 8192, ROMTYPE_ODD | ROMTYPE_8BIT, 0xa9ccffed,0x149f5bd5,0x2e2d2990,0x4e3de483,0xb9ad7724,0x48e9278e)
+ ALTROM(55, 1, 2, 8192, ROMTYPE_EVEN | ROMTYPE_8BIT, 0x2942747a,0xdbd7648e,0x79c75333,0x7ff3e4f4,0x91de224b,0xf05e6bb6)
+ { L"A590/A2091 SCSI Guru boot ROM", 6, 14, 6, 14, L"A590\0A2091\0", 32768, 56, 0, 0, ROMTYPE_A2091BOOT, 0, 0, NULL,
+ 0x04e52f93, 0x6DA21B6F,0x5E8F8837,0xD64507CD,0x8A4D5CDC,0xAC4F426B },
+ { L"A4091 SCSI boot ROM", 40, 9, 40, 9, L"A4091\0", 32768, 57, 0, 0, ROMTYPE_A4091BOOT, 0, 0, NULL,
+ 0x00000000, 0, 0, 0, 0, 0 },
+ { L"A4091 SCSI boot ROM", 40, 13, 40, 13, L"A4091\0", 32768, 58, 0, 0, ROMTYPE_A4091BOOT, 0, 0, NULL,
+ 0x54cb9e85, 0x3CE66919,0xF6FD6797,0x4923A12D,0x91B730F1,0xFFB4A7BA },
+
+ { L"Arcadia OnePlay 2.11", 0, 0, 0, 0, L"ARCADIA\0", 0, 49, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 },
+ { L"Arcadia TenPlay 2.11", 0, 0, 0, 0, L"ARCADIA\0", 0, 50, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 },
+ { L"Arcadia OnePlay 3.00", 0, 0, 0, 0, L"ARCADIA\0", 0, 51, 0, 0, ROMTYPE_ARCADIABIOS, 0, 0 },
+
+ { L"Arcadia SportTime Table Hockey", 0, 0, 0, 0, L"ARCADIA\0", 0, 33, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia SportTime Bowling", 0, 0, 0, 0, L"ARCADIA\0", 0, 34, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia World Darts", 0, 0, 0, 0, L"ARCADIA\0", 0, 35, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Magic Johnson's Fast Break", 0, 0, 0, 0, L"ARCADIA\0", 0, 36, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Leader Board Golf", 0, 0, 0, 0, L"ARCADIA\0", 0, 37, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Leader Board Golf (alt)", 0, 0, 0, 0, L"ARCADIA\0", 0, 38, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Ninja Mission", 0, 0, 0, 0, L"ARCADIA\0", 0, 39, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Road Wars", 0, 0, 0, 0, L"ARCADIA\0", 0, 40, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Sidewinder", 0, 0, 0, 0, L"ARCADIA\0", 0, 41, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Spot", 0, 0, 0, 0, L"ARCADIA\0", 0, 42, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Space Ranger", 0, 0, 0, 0, L"ARCADIA\0", 0, 43, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia Xenon", 0, 0, 0, 0, L"ARCADIA\0", 0, 44, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+ { L"Arcadia World Trophy Soccer", 0, 0, 0, 0, L"ARCADIA\0", 0, 45, 0, 0, ROMTYPE_ARCADIAGAME, 0, 2 },
+
+ { NULL }
+
+};
+
+void romlist_clear (void)
+{
+ int i;
+ int mask = 0;
+ struct romdata *parent;
+ TCHAR *pn;
+
+ xfree (rl);
+ rl = 0;
+ romlist_cnt = 0;
+ parent = 0;
+ pn = NULL;
+ for (i = 0; roms[i].name; i++) {
+ struct romdata *rd = &roms[i];
+ if (rd->group == 0) {
+ parent = rd;
+ mask = rd->type;
+ pn = parent->partnumber;
+ } else {
+ rd->type &= ~ROMTYPE_MASK;
+ rd->type |= mask & ROMTYPE_MASK;
+ if (rd->partnumber && !pn) {
+ TCHAR *newpn;
+ if (parent->partnumber == NULL)
+ parent->partnumber = my_strdup (L"");
+ newpn = xcalloc ((_tcslen (parent->partnumber) + 1 + _tcslen (rd->partnumber) + 1) * sizeof (TCHAR), 1);
+ if (_tcslen (parent->partnumber) > 0) {
+ _tcscpy (newpn, parent->partnumber);
+ _tcscat (newpn, L"/");
+ }
+ _tcscat (newpn, rd->partnumber);
+ xfree (parent->partnumber);
+ parent->partnumber = newpn;
+ }
+ }
+ }
+}
+
+/* remove rom entries that need 2 or more roms but not everything required is present */
+static void romlist_cleanup (void)
+{
+ int i = 0;
+ while (roms[i].name) {
+ struct romdata *rd = &roms[i];
+ int grp = rd->group >> 16;
+ int ok = 1;
+ int j = i;
+ int k = i;
+ while (rd->name && (rd->group >> 16) == grp && grp > 0) {
+ struct romlist *rl = romlist_getrl (rd);
+ if (!rl)
+ ok = 0;
+ rd++;
+ j++;
+ }
+ if (ok == 0) {
+ while (i < j) {
+ struct romlist *rl = romlist_getrl (&roms[i]);
+ if (rl) {
+ int cnt = romlist_cnt - i - 1;
+ write_log (L"%s '%s' removed from romlist\n", roms[k].name, rl->path);
+ xfree (rl->path);
+ if (cnt > 0)
+ memmove (rl, rl + 1, cnt * sizeof (struct romlist));
+ romlist_cnt--;
+ }
+ i++;
+ }
+ }
+ i++;
+ }
+ for (i = 0; i < romlist_cnt; i++) {
+ struct romlist *rll = &rl[i];
+ //write_log (L"%s (%s)\n", rll->rd->name, rll->path);
+ }
+}
+
+struct romlist **getromlistbyident(int ver, int rev, int subver, int subrev, TCHAR *model, int all)
+{
+ int i, j, ok, out, max;
+ struct romdata *rd;
+ struct romlist **rdout, *rltmp;
+ void *buf;
+ static struct romlist rlstatic;
+
+ for (i = 0; roms[i].name; i++);
+ if (all)
+ max = i;
+ else
+ max = romlist_cnt;
+ buf = xmalloc ((sizeof (struct romlist*) + sizeof (struct romlist)) * (i + 1));
+ rdout = (struct romlist**)buf;
+ rltmp = (struct romlist*)((uae_u8*)buf + (i + 1) * sizeof (struct romlist*));
+ out = 0;
+ for (i = 0; i < max; i++) {
+ ok = 0;
+ if (!all)
+ rd = rl[i].rd;
+ else
+ rd = &roms[i];
+ if (rd->group)
+ continue;
+ if (model && !_tcsicmp (model, rd->name))
+ ok = 2;
+ if (rd->ver == ver && (rev < 0 || rd->rev == rev)) {
+ if (subver >= 0) {
+ if (rd->subver == subver && (subrev < 0 || rd->subrev == subrev) && rd->subver > 0)
+ ok = 1;
+ } else {
+ ok = 1;
+ }
+ }
+ if (!ok)
+ continue;
+ if (model && ok < 2) {
+ TCHAR *p = rd->model;
+ ok = 0;
+ while (*p) {
+ if (!_tcscmp(rd->model, model)) {
+ ok = 1;
+ break;
+ }
+ p = p + _tcslen(p) + 1;
+ }
+ }
+ if (!model && rd->type != ROMTYPE_KICK)
+ ok = 0;
+ if (ok) {
+ if (all) {
+ rdout[out++] = rltmp;
+ rltmp->path = NULL;
+ rltmp->rd = rd;
+ rltmp++;
+ } else {
+ rdout[out++] = &rl[i];
+ }
+ }
+ }
+ if (out == 0) {
+ xfree (rdout);
+ return NULL;
+ }
+ for (i = 0; i < out; i++) {
+ int v1 = rdout[i]->rd->subver * 1000 + rdout[i]->rd->subrev;
+ for (j = i + 1; j < out; j++) {
+ int v2 = rdout[j]->rd->subver * 1000 + rdout[j]->rd->subrev;
+ if (v1 < v2) {
+ struct romlist *rltmp = rdout[j];
+ rdout[j] = rdout[i];
+ rdout[i] = rltmp;
+ }
+ }
+ }
+ rdout[out] = NULL;
+ return rdout;
+}
+
+struct romdata *getarcadiarombyname (TCHAR *name)
+{
+ int i;
+ for (i = 0; roms[i].name; i++) {
+ if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIAGAME || roms[i].type == ROMTYPE_ARCADIAGAME)) {
+ TCHAR *p = roms[i].name;
+ p = p + _tcslen (p) + 1;
+ if (_tcslen (name) >= _tcslen (p) + 4) {
+ TCHAR *p2 = name + _tcslen (name) - _tcslen (p) - 4;
+ if (!memcmp (p, p2, _tcslen (p)) && !memcmp (p2 + _tcslen (p2) - 4, ".zip", 4))
+ return &roms[i];
+ }
+ }
+ }
+ return NULL;
+}
+
+struct romlist **getarcadiaroms(void)
+{
+ int i, out, max;
+ void *buf;
+ struct romlist **rdout, *rltmp;
+
+ max = 0;
+ for (i = 0; roms[i].name; i++) {
+ if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME))
+ max++;
+ }
+ buf = xmalloc ((sizeof (struct romlist*) + sizeof (struct romlist)) * (max + 1));
+ rdout = (struct romlist**)buf;
+ rltmp = (struct romlist*)((uae_u8*)buf + (max + 1) * sizeof (struct romlist*));
+ out = 0;
+ for (i = 0; roms[i].name; i++) {
+ if (roms[i].group == 0 && (roms[i].type == ROMTYPE_ARCADIABIOS || roms[i].type == ROMTYPE_ARCADIAGAME)) {
+ rdout[out++] = rltmp;
+ rltmp->path = NULL;
+ rltmp->rd = &roms[i];
+ rltmp++;
+ }
+ }
+ rdout[out] = NULL;
+ return rdout;
+}
+
+
+static int kickstart_checksum_do (uae_u8 *mem, int size)
+{
+ uae_u32 cksum = 0, prevck = 0;
+ int i;
+ for (i = 0; i < size; i+=4) {
+ uae_u32 data = mem[i]*65536*256 + mem[i+1]*65536 + mem[i+2]*256 + mem[i+3];
+ cksum += data;
+ if (cksum < prevck)
+ cksum++;
+ prevck = cksum;
+ }
+ return cksum == 0xffffffff;
+}
+
+#define ROM_KEY_NUM 3
+struct rom_key {
+ uae_u8 *key;
+ int size;
+};
+
+static struct rom_key keyring[ROM_KEY_NUM];
+
+static void addkey (uae_u8 *key, int size, const TCHAR *name)
+{
+ int i;
+
+ //write_log (L"addkey(%08x,%d,'%s')\n", key, size, name);
+ if (key == NULL || size == 0) {
+ xfree (key);
+ return;
+ }
+ for (i = 0; i < ROM_KEY_NUM; i++) {
+ if (keyring[i].key && keyring[i].size == size && !memcmp (keyring[i].key, key, size)) {
+ xfree (key);
+ //write_log (L"key already in keyring\n");
+ return;
+ }
+ }
+ for (i = 0; i < ROM_KEY_NUM; i++) {
+ if (keyring[i].key == NULL)
+ break;
+ }
+ if (i == ROM_KEY_NUM) {
+ xfree (key);
+ //write_log (L"keyring full\n");
+ return;
+ }
+ keyring[i].key = key;
+ keyring[i].size = size;
+ write_log (L"ROM KEY '%s' %d bytes loaded\n", name, size);
+}
+
+static void addkeyfile (const TCHAR *path)
+{
+ struct zfile *f;
+ int keysize;
+ uae_u8 *keybuf;
+
+ f = zfile_fopen (path, L"rb", ZFD_NORMAL);
+ if (!f)
+ return;
+ zfile_fseek (f, 0, SEEK_END);
+ keysize = zfile_ftell (f);
+ if (keysize > 0) {
+ zfile_fseek (f, 0, SEEK_SET);
+ keybuf = xmalloc (keysize);
+ zfile_fread (keybuf, 1, keysize, f);
+ addkey (keybuf, keysize, path);
+ }
+ zfile_fclose (f);
+}
+
+void addkeydir (const TCHAR *path)
+{
+ TCHAR tmp[MAX_DPATH];
+
+ _tcscpy (tmp, path);
+ if (zfile_exists (tmp)) {
+ int i;
+ for (i = _tcslen (tmp) - 1; i > 0; i--) {
+ if (tmp[i] == '\\' || tmp[i] == '/')
+ break;
+ }
+ tmp[i] = 0;
+ }
+ _tcscat (tmp, L"/");
+ _tcscat (tmp, L"rom.key");
+ addkeyfile (tmp);
+}
+
+int get_keyring (void)
+{
+ int i, num = 0;
+ for (i = 0; i < ROM_KEY_NUM; i++) {
+ if (keyring[i].key)
+ num++;
+ }
+ return num;
+}
+
+int load_keyring (struct uae_prefs *p, TCHAR *path)
+{
+ uae_u8 *keybuf;
+ int keysize;
+ TCHAR tmp[MAX_PATH], *d;
+ int keyids[] = { 0, 48, -1 };
+ int cnt, i;
+
+ free_keyring ();
+ keybuf = target_load_keyfile (p, path, &keysize, tmp);
+ addkey (keybuf, keysize, tmp);
+ for (i = 0; keyids[i] >= 0; i++) {
+ struct romdata *rd = getromdatabyid (keyids[i]);
+ TCHAR *s;
+ if (rd) {
+ s = romlist_get (rd);
+ if (s)
+ addkeyfile (s);
+ }
+ }
+
+ cnt = 0;
+ for (;;) {
+ keybuf = NULL;
+ keysize = 0;
+ tmp[0] = 0;
+ switch (cnt)
+ {
+ case 0:
+ if (path)
+ _tcscpy (tmp, path);
+ break;
+ case 1:
+ _tcscat (tmp, L"rom.key");
+ break;
+ case 2:
+ if (p) {
+ _tcscpy (tmp, p->path_rom);
+ _tcscat (tmp, L"rom.key");
+ }
+ break;
+ case 3:
+ _tcscpy (tmp, L"roms/rom.key");
+ break;
+ case 4:
+ _tcscpy (tmp, start_path_data);
+ _tcscat (tmp, L"rom.key");
+ break;
+ case 5:
+ _stprintf (tmp, L"%s../shared/rom/rom.key", start_path_data);
+ break;
+ case 6:
+ if (p) {
+ for (i = 0; uae_archive_extensions[i]; i++) {
+ if (_tcsstr (p->romfile, uae_archive_extensions[i]))
+ break;
+ }
+ if (!uae_archive_extensions[i]) {
+ _tcscpy (tmp, p->romfile);
+ d = _tcsrchr (tmp, '/');
+ if (!d)
+ d = _tcsrchr (tmp, '\\');
+ if (d)
+ _tcscpy (d + 1, L"rom.key");
+ }
+ }
+ break;
+ case 7:
+ return get_keyring ();
+ }
+ cnt++;
+ if (!tmp[0])
+ continue;
+ addkeyfile (tmp);
+ }
+}
+void free_keyring (void)
+{
+ int i;
+ for (i = 0; i < ROM_KEY_NUM; i++)
+ xfree (keyring[i].key);
+ memset(keyring, 0, sizeof (struct rom_key) * ROM_KEY_NUM);
+}
+
+struct romdata *getromdatabyname (TCHAR *name)
+{
+ TCHAR tmp[MAX_PATH];
+ int i = 0;
+ while (roms[i].name) {
+ if (!roms[i].group) {
+ getromname (&roms[i], tmp);
+ if (!_tcscmp (tmp, name) || !_tcscmp (roms[i].name, name))
+ return &roms[i];
+ }
+ i++;
+ }
+ return 0;
+}
+
+struct romdata *getromdatabyid (int id)
+{
+ int i = 0;
+ while (roms[i].name) {
+ if (id == roms[i].id && roms[i].group == 0)
+ return &roms[i];
+ i++;
+ }
+ return 0;
+}
+
+struct romdata *getromdatabyidgroup (int id, int group, int subitem)
+{
+ int i = 0;
+ group = (group << 16) | subitem;
+ while (roms[i].name) {
+ if (id == roms[i].id && roms[i].group == group)
+ return &roms[i];
+ i++;
+ }
+ return 0;
+}
+
+STATIC_INLINE int notcrc32 (uae_u32 crc32)
+{
+ if (crc32 == 0xffffffff || crc32 == 0x00000000)
+ return 1;
+ return 0;
+}
+
+struct romdata *getromdatabycrc (uae_u32 crc32)
+{
+ int i = 0;
+ while (roms[i].name) {
+ if (roms[i].group == 0 && crc32 == roms[i].crc32 && !notcrc32(crc32))
+ return &roms[i];
+ i++;
+ }
+ return 0;
+}
+
+static int cmpsha1 (uae_u8 *s1, struct romdata *rd)
+{
+ int i;
+
+ for (i = 0; i < SHA1_SIZE / 4; i++) {
+ uae_u32 v1 = (s1[0] << 24) | (s1[1] << 16) | (s1[2] << 8) | (s1[3] << 0);
+ uae_u32 v2 = rd->sha1[i];
+ if (v1 != v2)
+ return -1;
+ s1 += 4;
+ }
+ return 0;
+}
+
+static struct romdata *checkromdata (uae_u8 *sha1, int size, uae_u32 mask)
+{
+ int i = 0;
+ while (roms[i].name) {
+ if (!notcrc32(roms[i].crc32) && roms[i].size >= size) {
+ if (roms[i].type & mask) {
+ if (!cmpsha1 (sha1, &roms[i]))
+ return &roms[i];
+ }
+ }
+ i++;
+ }
+ return NULL;
+}
+
+int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size)
+{
+ int cnt, t, i;
+
+ for (i = ROM_KEY_NUM - 1; i >= 0; i--) {
+ uae_u8 sha1[SHA1_SIZE];
+ struct romdata *rd;
+ int keysize = keyring[i].size;
+ uae_u8 *key = keyring[i].key;
+ if (!key)
+ continue;
+ for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) {
+ mem[cnt] ^= key[t];
+ if (real_size == cnt + 1)
+ t = keysize - 1;
+ }
+ if ((mem[2] == 0x4e && mem[3] == 0xf9) || (mem[0] == 0x11 && (mem[1] == 0x11 || mem[1] == 0x14))) {
+ cloanto_rom = 1;
+ return 1;
+ }
+ get_sha1 (mem, size, sha1);
+ rd = checkromdata (sha1, size, -1);
+ if (rd) {
+ if (rd->cloanto)
+ cloanto_rom = 1;
+ return 1;
+ }
+ if (i == 0)
+ break;
+ for (t = cnt = 0; cnt < size; cnt++, t = (t + 1) % keysize) {
+ mem[cnt] ^= key[t];
+ if (real_size == cnt + 1)
+ t = keysize - 1;
+ }
+ }
+ return 0;
+}
+
+static int decode_rekick_rom_do (uae_u8 *mem, int size, int real_size)
+{
+ uae_u32 d1 = 0xdeadfeed, d0;
+ int i;
+
+ for (i = 0; i < size / 8; i++) {
+ d0 = ((mem[i * 8 + 0] << 24) | (mem[i * 8 + 1] << 16) | (mem[i * 8 + 2] << 8) | mem[i * 8 + 3]);
+ d1 = d1 ^ d0;
+ mem[i * 8 + 0] = d1 >> 24;
+ mem[i * 8 + 1] = d1 >> 16;
+ mem[i * 8 + 2] = d1 >> 8;
+ mem[i * 8 + 3] = d1;
+ d1 = ((mem[i * 8 + 4] << 24) | (mem[i * 8 + 5] << 16) | (mem[i * 8 + 6] << 8) | mem[i * 8 + 7]);
+ d0 = d0 ^ d1;
+ mem[i * 8 + 4] = d0 >> 24;
+ mem[i * 8 + 5] = d0 >> 16;
+ mem[i * 8 + 6] = d0 >> 8;
+ mem[i * 8 + 7] = d0;
+ }
+ return 1;
+}
+
+int decode_rom (uae_u8 *mem, int size, int mode, int real_size)
+{
+ if (mode == 1) {
+ if (!decode_cloanto_rom_do (mem, size, real_size)) {
+#ifndef SINGLEFILE
+ notify_user (NUMSG_NOROMKEY);
+#endif
+ return 0;
+ }
+ return 1;
+ } else if (mode == 2) {
+ decode_rekick_rom_do (mem, size, real_size);
+ return 1;
+ }
+ return 0;
+}
+
+struct romdata *getromdatabydata (uae_u8 *rom, int size)
+{
+ uae_u8 sha1[SHA1_SIZE];
+ uae_u8 tmp[4];
+ uae_u8 *tmpbuf = NULL;
+ struct romdata *ret = NULL;
+
+ if (size > 11 && !memcmp (rom, "AMIROMTYPE1", 11)) {
+ uae_u8 *tmpbuf = xmalloc (size);
+ int tmpsize = size - 11;
+ memcpy (tmpbuf, rom + 11, tmpsize);
+ decode_rom (tmpbuf, tmpsize, 1, tmpsize);
+ rom = tmpbuf;
+ size = tmpsize;
+ }
+#if 0
+ if (size > 0x6c + 524288 && !memcmp (rom, "AMIG", 4)) {
+ uae_u8 *tmpbuf = (uae_u8*)xmalloc (size);
+ int tmpsize = size - 0x6c;
+ memcpy (tmpbuf, rom + 0x6c, tmpsize);
+ decode_rom (tmpbuf, tmpsize, 2, tmpsize);
+ rom = tmpbuf;
+ size = tmpsize;
+ }
+#endif
+ get_sha1 (rom, size, sha1);
+ ret = checkromdata(sha1, size, -1);
+ if (!ret) {
+ get_sha1 (rom, size / 2, sha1);
+ ret = checkromdata (sha1, size / 2, -1);
+ if (!ret) {
+ /* ignore AR IO-port range until we have full dump */
+ memcpy (tmp, rom, 4);
+ memset (rom, 0, 4);
+ get_sha1 (rom, size, sha1);
+ ret = checkromdata (sha1, size, ROMTYPE_AR);
+ memcpy (rom, tmp, 4);
+ }
+ }
+ xfree (tmpbuf);
+ return ret;
+}
+
+struct romdata *getromdatabyzfile (struct zfile *f)
+{
+ int pos, size;
+ uae_u8 *p;
+ struct romdata *rd;
+
+ pos = zfile_ftell (f);
+ zfile_fseek (f, 0, SEEK_END);
+ size = zfile_ftell (f);
+ p = xmalloc (size);
+ if (!p)
+ return 0;
+ memset (p, 0, size);
+ zfile_fseek (f, 0, SEEK_SET);
+ zfile_fread (p, 1, size, f);
+ zfile_fseek (f, pos, SEEK_SET);
+ rd = getromdatabydata (p, size);
+ xfree (p);
+ return rd;
+}
+
+void getromname (struct romdata *rd, TCHAR *name)
+{
+ name[0] = 0;
+ if (!rd)
+ return;
+ while (rd->group)
+ rd--;
+ _tcscat (name, rd->name);
+ if ((rd->subrev || rd->subver) && rd->subver != rd->ver)
+ _stprintf (name + _tcslen (name), L" rev %d.%d", rd->subver, rd->subrev);
+ if (rd->size > 0)
+ _stprintf (name + _tcslen (name), L" (%dk)", (rd->size + 1023) / 1024);
+ if (rd->partnumber && _tcslen (rd->partnumber) > 0)
+ _stprintf (name + _tcslen (name), L" [%s]", rd->partnumber);
+}
+
+struct romlist *getromlistbyromdata (struct romdata *rd)
+{
+ int ids[2];
+
+ ids[0] = rd->id;
+ ids[1] = 0;
+ return getromlistbyids(ids);
+}
+
+struct romlist *getromlistbyids (int *ids)
+{
+ struct romdata *rd;
+ int i, j;
+
+ i = 0;
+ while (ids[i] >= 0) {
+ rd = getromdatabyid (ids[i]);
+ if (rd) {
+ for (j = 0; j < romlist_cnt; j++) {
+ if (rl[j].rd->id == rd->id)
+ return &rl[j];
+ }
+ }
+ i++;
+ }
+ return NULL;
+}
+
+void romwarning (int *ids)
+{
+ int i, exp;
+ TCHAR tmp1[MAX_DPATH], tmp2[MAX_DPATH];
+ TCHAR tmp3[MAX_DPATH];
+
+ exp = 0;
+ tmp2[0] = 0;
+ i = 0;
+ while (ids[i] >= 0) {
+ struct romdata *rd = getromdatabyid (ids[i]);
+ getromname (rd, tmp1);
+ _tcscat (tmp2, L"- ");
+ _tcscat (tmp2, tmp1);
+ _tcscat (tmp2, L"\n");
+ if (rd->type & (ROMTYPE_A2091BOOT | ROMTYPE_A4091BOOT))
+ exp++;
+ i++;
+ }
+ translate_message (exp ? NUMSG_EXPROMNEED : NUMSG_ROMNEED, tmp3);
+ gui_message (tmp3, tmp2);
+}
+
+
+static void byteswap (uae_u8 *buf, int size)
+{
+ int i;
+ for (i = 0; i < size; i += 2) {
+ uae_u8 t = buf[i];
+ buf[i] = buf[i + 1];
+ buf[i + 1] = t;
+ }
+}
+static void wordbyteswap (uae_u8 *buf, int size)
+{
+ int i;
+ for (i = 0; i < size; i += 4) {
+ uae_u8 t;
+ t = buf[i + 0];
+ buf[i + 0] = buf[i + 2];
+ buf[i + 2] = t;
+ t = buf[i + 1];
+ buf[i + 1] = buf[i + 3];
+ buf[i + 3] = t;
+ }
+}
+
+static void mergecd32 (uae_u8 *dst, uae_u8 *src, int size)
+{
+ int i, k;
+ k = 0;
+ for (i = 0; i < size / 2; i += 2) {
+ int j = i + size / 2;
+ dst[k + 1] = src[i + 0];
+ dst[k + 0] = src[i + 1];
+ dst[k + 3] = src[j + 0];
+ dst[k + 2] = src[j + 1];
+ k += 4;
+ }
+#if 0
+ {
+ struct zfile *f;
+ f = zfile_fopen ("c:\\d\\1.rom","wb", ZFD_NORMAL);
+ zfile_fwrite (dst, 1, size, f);
+ zfile_fclose(f);
+ }
+#endif
+}
+
+static void descramble (struct romdata *rd, uae_u8 *data, int size, int odd)
+{
+ int flags = rd->type;
+
+ if (flags & (ROMTYPE_NORDIC | ROMTYPE_XPOWER))
+ descramble_nordicpro (data, size, odd);
+}
+
+static int read_rom_file (uae_u8 *buf, struct romdata *rd)
+{
+ struct zfile *zf;
+ struct romlist *rl = romlist_getrl (rd);
+ uae_char tmp[11];
+
+ if (!rl || _tcslen (rl->path) == 0)
+ return 0;
+ zf = zfile_fopen (rl->path, L"rb", ZFD_NORMAL);
+ if (!zf)
+ return 0;
+ addkeydir (rl->path);
+ zfile_fread (tmp, sizeof tmp, 1, zf);
+ if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) {
+ zfile_fread (buf, rd->size, 1, zf);
+ decode_cloanto_rom_do (buf, rd->size, rd->size);
+ } else {
+ memcpy (buf, tmp, sizeof tmp);
+ zfile_fread (buf + sizeof tmp, rd->size - sizeof (tmp), 1, zf);
+ }
+ zfile_fclose (zf);
+ return 1;
+}
+
+struct zfile *read_rom (struct romdata **prd)
+{
+ struct romdata *rd2 = *prd;
+ struct romdata *rd = *prd;
+ TCHAR *name;
+ int id = rd->id;
+ uae_u32 crc32;
+ int size;
+ uae_u8 *buf, *buf2;
+
+ /* find parent node */
+ for (;;) {
+ if (rd2 == &roms[0])
+ break;
+ if (rd2[-1].id != id)
+ break;
+ rd2--;
+ }
+ *prd = rd2;
+ size = rd2->size;
+ crc32 = rd2->crc32;
+ name = rd->name;
+ buf = xmalloc (size * 2);
+ memset (buf, 0xff, size * 2);
+ if (!buf)
+ return NULL;
+ buf2 = buf + size;
+ while (rd->id == id) {
+ int i, j, add;
+ int ok = 0;
+ uae_u32 flags = rd->type;
+ int odd = (flags & ROMTYPE_ODD) ? 1 : 0;
+
+ add = 0;
+ for (i = 0; i < 2; i++) {
+ memset (buf, 0, size);
+ if (!(flags & (ROMTYPE_EVEN | ROMTYPE_ODD))) {
+ read_rom_file (buf, rd);
+ if (flags & ROMTYPE_CD32) {
+ memcpy (buf2, buf, size);
+ mergecd32 (buf, buf2, size);
+ }
+ add = 1;
+ i++;
+ } else {
+ int romsize = size / 2;
+ if (i)
+ odd = !odd;
+ if (flags & ROMTYPE_8BIT) {
+ read_rom_file (buf2, rd);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd, buf2, romsize, odd);
+ for (j = 0; j < size; j += 2)
+ buf[j + odd] = buf2[j / 2];
+ read_rom_file (buf2, rd + 1);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd + 1, buf2, romsize, !odd);
+ for (j = 0; j < size; j += 2)
+ buf[j + (1 - odd)] = buf2[j / 2];
+ } else {
+ read_rom_file (buf2, rd);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd, buf2, romsize, odd);
+ for (j = 0; j < size; j += 4) {
+ buf[j + 2 * odd + 0] = buf2[j / 2 + 0];
+ buf[j + 2 * odd + 1] = buf2[j / 2 + 1];
+ }
+ read_rom_file (buf2, rd + 1);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd + 1, buf2, romsize, !odd);
+ for (j = 0; j < size; j += 4) {
+ buf[j + 2 * (1 - odd) + 0] = buf2[j / 2 + 0];
+ buf[j + 2 * (1 - odd) + 1] = buf2[j / 2 + 1];
+ }
+ }
+ add = 2;
+ }
+ if (get_crc32 (buf, size) == crc32) {
+ ok = 1;
+ } else {
+ /* perhaps it is byteswapped without byteswap entry? */
+ byteswap (buf, size);
+ if (get_crc32 (buf, size) == crc32)
+ ok = 1;
+ }
+ if (ok) {
+ struct zfile *zf = zfile_fopen_empty (NULL, name, size);
+ if (zf) {
+ zfile_fwrite (buf, size, 1, zf);
+ zfile_fseek (zf, 0, SEEK_SET);
+ }
+ xfree (buf);
+ return zf;
+ }
+ }
+ rd += add;
+
+ }
+ xfree (buf);
+ return NULL;
+}
+
+struct zfile *rom_fopen (const TCHAR *name, const TCHAR *mode, int mask)
+{
+ struct zfile *f;
+ //write_log (L"attempting to load '%s'\n", name);
+ f = zfile_fopen (name, mode, mask);
+ //write_log (L"=%p\n", f);
+ return f;
+}
+
+struct zfile *read_rom_name (const TCHAR *filename)
+{
+ int i;
+ struct zfile *f;
+
+ for (i = 0; i < romlist_cnt; i++) {
+ if (!_tcsicmp (filename, rl[i].path)) {
+ struct romdata *rd = rl[i].rd;
+ f = read_rom (&rd);
+ if (f)
+ return f;
+ }
+ }
+ f = rom_fopen (filename, L"rb", ZFD_NORMAL);
+ if (f) {
+ uae_u8 tmp[11];
+ zfile_fread (tmp, sizeof tmp, 1, f);
+ if (!memcmp (tmp, "AMIROMTYPE1", sizeof tmp)) {
+ struct zfile *df;
+ int size;
+ uae_u8 *buf;
+ addkeydir (filename);
+ zfile_fseek (f, 0, SEEK_END);
+ size = zfile_ftell (f) - sizeof tmp;
+ zfile_fseek (f, sizeof tmp, SEEK_SET);
+ buf = xmalloc (size);
+ zfile_fread (buf, size, 1, f);
+ df = zfile_fopen_empty (f, L"tmp.rom", size);
+ decode_cloanto_rom_do (buf, size, size);
+ zfile_fwrite (buf, size, 1, df);
+ zfile_fclose (f);
+ xfree (buf);
+ zfile_fseek (df, 0, SEEK_SET);
+ f = df;
+ } else {
+ zfile_fseek (f, -((int)sizeof tmp), SEEK_CUR);
+ }
+ }
+ return f;
+}
+
+struct zfile *read_rom_name_guess (const TCHAR *filename)
+{
+ int i, j;
+ struct zfile *f;
+ const TCHAR *name;
+
+ for (i = _tcslen (filename) - 1; i >= 0; i--) {
+ if (filename[i] == '/' || filename[i] == '\\')
+ break;
+ }
+ if (i < 0)
+ return NULL;
+ name = &filename[i];
+
+ for (i = 0; i < romlist_cnt; i++) {
+ TCHAR *n = rl[i].path;
+ for (j = _tcslen (n) - 1; j >= 0; j--) {
+ if (n[j] == '/' || n[j] == '\\')
+ break;
+ }
+ if (j < 0)
+ continue;
+ if (!_tcsicmp (name, n + j)) {
+ struct romdata *rd = rl[i].rd;
+ f = read_rom (&rd);
+ if (f) {
+ write_log (L"ROM %s not found, using %s\n", filename, rl[i].path);
+ return f;
+ }
+ }
+ }
+ return NULL;
+}
+
+void kickstart_fix_checksum (uae_u8 *mem, int size)
+{
+ uae_u32 cksum = 0, prevck = 0;
+ int i, ch = size == 524288 ? 0x7ffe8 : 0x3e;
+
+ mem[ch] = 0;
+ mem[ch + 1] = 0;
+ mem[ch + 2] = 0;
+ mem[ch + 3] = 0;
+ for (i = 0; i < size; i+=4) {
+ uae_u32 data = (mem[i] << 24) | (mem[i + 1] << 16) | (mem[i + 2] << 8) | mem[i + 3];
+ cksum += data;
+ if (cksum < prevck)
+ cksum++;
+ prevck = cksum;
+ }
+ cksum ^= 0xffffffff;
+ mem[ch++] = cksum >> 24;
+ mem[ch++] = cksum >> 16;
+ mem[ch++] = cksum >> 8;
+ mem[ch++] = cksum >> 0;
+}
+
+int kickstart_checksum (uae_u8 *mem, int size)
+{
+ if (!kickstart_checksum_do (mem, size)) {
+#ifndef SINGLEFILE
+ notify_user (NUMSG_KSROMCRCERROR);
+#endif
+ return 0;
+ }
+ return 1;
+}
+
+int configure_rom (struct uae_prefs *p, int *rom, int msg)
+{
+ struct romdata *rd;
+ TCHAR *path = 0;
+ int i;
+
+ i = 0;
+ while (rom[i] >= 0) {
+ rd = getromdatabyid (rom[i]);
+ if (!rd) {
+ i++;
+ continue;
+ }
+ path = romlist_get (rd);
+ if (path)
+ break;
+ i++;
+ }
+ if (!path) {
+ if (msg)
+ romwarning(rom);
+ return 0;
+ }
+ if (rd->type & (ROMTYPE_KICK | ROMTYPE_KICKCD32))
+ _tcscpy (p->romfile, path);
+ if (rd->type & (ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS))
+ _tcscpy (p->romextfile, path);
+ if (rd->type & (ROMTYPE_CD32CART | ROMTYPE_ARCADIAGAME | ROMTYPE_HRTMON | ROMTYPE_XPOWER | ROMTYPE_NORDIC | ROMTYPE_AR | ROMTYPE_SUPERIV))
+ _tcscpy (p->cartfile, path);
+ return 1;
+}
TCHAR sep[] = { FSDB_DIR_SEPARATOR, 0 };
struct uae_prefs currprefs;
-static int debug = 0;
+static int debug = 1;
static int amigatest;
#define WRITE_LOG_BUF_SIZE 4096
zd->tracks = tracks;
for (i = 0; i < tracks; i++) {
uae_u8 *buf, *p;
- caps_loadrevolution (mfm, 0, i, &len);
+ int mrev, gapo;
+ caps_loadtrack (mfm, NULL, 0, i, &len, &mrev, &gapo);
+ //write_log (L"%d: %d %d %d\n", i, mrev, gapo, len);
len /= 8;
buf = p = xmalloc (len);
for (j = 0; j < len / 2; j++) {
typedef int (_stdcall* RARGETDLLVERSION)(void);
static RARGETDLLVERSION pRARGetDllVersion;
-static int rar_resetf (struct zfile *z)
-{
- z->f = _tfopen (z->name, L"rb");
- if (!z->f) {
- zfile_fclose (z);
- return 0;
- }
- return 1;
-}
-
static int canrar (void)
{
static int israr;
HANDLE hArcData;
};
+static int rar_resetf (struct zfile *z)
+{
+ z->f = _tfopen (z->name, z->mode);
+ if (!z->f) {
+ zfile_fclose (z);
+ return 0;
+ }
+ return 1;
+}
static void archive_close_rar (struct RARContext *rc)
{
return archive_directory_arcacc (z, ArchiveFormatRAR);
rc = xcalloc (sizeof (struct RARContext), 1);
zv = zvolume_alloc (z, ArchiveFormatRAR, rc, NULL);
- fclose (z->f); /* bleh, unrar.dll fails to open the archive if it is already open.. */
- z->f = NULL;
+ //fclose (z->f); /* bleh, unrar.dll fails to open the archive if it is already open.. */
+ //z->f = NULL;
rc->OpenArchiveData.ArcNameW = z->name;
rc->OpenArchiveData.OpenMode = RAR_OM_LIST;
rc->hArcData = pRAROpenArchiveEx (&rc->OpenArchiveData);
if (rc->OpenArchiveData.OpenResult != 0) {
xfree (rc);
- if (!rar_resetf (z)) {
- zfile_fclose_archive (zv);
- return NULL;
- }
+// if (!rar_resetf (z)) {
+// zfile_fclose_archive (zv);
+// return NULL;
+// }
zfile_fclose_archive (zv);
return archive_directory_arcacc (z, ArchiveFormatRAR);
}