This commit is contained in:
Toni Wilen 2012-08-26 14:18:48 +03:00
parent bdcf870e76
commit f4e416cf97
42 changed files with 3726 additions and 1064 deletions

View File

@ -318,12 +318,14 @@ typedef uae_s8 sample8_t;
#define DO_CHANNEL_1(v, c) do { (v) *= audio_channel[c].vol; } while (0)
#define SBASEVAL16(logn) ((logn) == 1 ? SOUND16_BASE_VAL >> 1 : SOUND16_BASE_VAL)
STATIC_INLINE int FINISH_DATA (int data, int bits, int logn)
STATIC_INLINE int FINISH_DATA (int data, int bits)
{
if (14 - bits + logn > 0) {
data >>= 14 - bits + logn;
if (bits == 16) {
return data;
} else if (bits - 16 > 0) {
data >>= bits - 16;
} else {
int shift = bits - 14 - logn;
int shift = 16 - bits;
int right = data & ((1 << shift) - 1);
data <<= shift;
data |= right;
@ -529,7 +531,8 @@ static void sinc_prehandler (unsigned long best_evtime)
for (i = 0; i < 4; i++) {
acd = &audio_channel[i];
output = (acd->current_sample * acd->vol) & acd->adk_mask;
int vol = acd->vol;
output = (acd->current_sample * vol) & acd->adk_mask;
/* if output state changes, record the state change and also
* write data into sinc queue for mixing in the BLEP */
@ -570,12 +573,12 @@ STATIC_INLINE void samplexx_sinc_handler (int *datasp)
int offsetpos = acd->sinc_queue_head & (SINC_QUEUE_LENGTH - 1);
for (j = 0; j < SINC_QUEUE_LENGTH; j += 1) {
int age = acd->sinc_queue_time - acd->sinc_queue[offsetpos].time;
if (age >= SINC_QUEUE_MAX_AGE)
if (age >= SINC_QUEUE_MAX_AGE || age < 0)
break;
sum -= winsinc[age] * acd->sinc_queue[offsetpos].output;
offsetpos = (offsetpos + 1) & (SINC_QUEUE_LENGTH - 1);
}
v = sum >> 17;
v = sum >> 15;
if (v > 32767)
v = 32767;
else if (v < -32768)
@ -590,7 +593,7 @@ static void sample16i_sinc_handler (void)
samplexx_sinc_handler (datas);
data1 = datas[0] + datas[3] + datas[1] + datas[2];
data1 = FINISH_DATA (data1, 16, 2);
data1 = FINISH_DATA (data1, 18);
set_sound_buffers ();
PUT_SOUND_WORD_MONO (data1);
check_sound_buffers ();
@ -616,7 +619,7 @@ void sample16_handler (void)
data0 += data2;
data0 += data3;
data = SBASEVAL16(2) + data0;
data = FINISH_DATA (data, 16, 2);
data = FINISH_DATA (data, 16);
set_sound_buffers ();
PUT_SOUND_WORD_MONO (data);
check_sound_buffers ();
@ -630,7 +633,7 @@ static void sample16i_anti_handler (void)
samplexx_anti_handler (datas);
data1 = datas[0] + datas[3] + datas[1] + datas[2];
data1 = FINISH_DATA (data1, 16, 2);
data1 = FINISH_DATA (data1, 16);
set_sound_buffers ();
PUT_SOUND_WORD_MONO (data1);
check_sound_buffers ();
@ -682,7 +685,7 @@ static void sample16i_rh_handler (void)
ratio = ((audio_channel[3].evtime % delta) << 8) / delta;
data0 += (data3 * (256 - ratio) + data3p * ratio) >> 8;
data = SBASEVAL16(2) + data0;
data = FINISH_DATA (data, 16, 2);
data = FINISH_DATA (data, 16);
set_sound_buffers ();
PUT_SOUND_WORD_MONO (data);
check_sound_buffers ();
@ -754,7 +757,7 @@ static void sample16i_crux_handler (void)
data0 += data3;
data0 += data1;
data = SBASEVAL16(2) + data0;
data = FINISH_DATA (data, 16, 2);
data = FINISH_DATA (data, 16);
set_sound_buffers ();
PUT_SOUND_WORD_MONO (data);
check_sound_buffers ();
@ -786,10 +789,10 @@ void sample16ss_handler (void)
data2 &= audio_channel[2].adk_mask;
data3 &= audio_channel[3].adk_mask;
data0 = FINISH_DATA (data0, 16, 0);
data1 = FINISH_DATA (data1, 16, 0);
data2 = FINISH_DATA (data2, 16, 0);
data3 = FINISH_DATA (data3, 16, 0);
data0 = FINISH_DATA (data0, 14);
data1 = FINISH_DATA (data1, 14);
data2 = FINISH_DATA (data2, 14);
data3 = FINISH_DATA (data3, 14);
set_sound_buffers ();
put_sound_word_left (data0);
put_sound_word_right (data1);
@ -809,10 +812,10 @@ void sample16ss_anti_handler (void)
int datas[4];
samplexx_anti_handler (datas);
data0 = FINISH_DATA (datas[0], 16, 0);
data1 = FINISH_DATA (datas[1], 16, 0);
data2 = FINISH_DATA (datas[2], 16, 0);
data3 = FINISH_DATA (datas[3], 16, 0);
data0 = FINISH_DATA (datas[0], 14);
data1 = FINISH_DATA (datas[1], 14);
data2 = FINISH_DATA (datas[2], 14);
data3 = FINISH_DATA (datas[3], 14);
set_sound_buffers ();
put_sound_word_left (data0);
put_sound_word_right (data1);
@ -830,8 +833,8 @@ static void sample16si_anti_handler (void)
samplexx_anti_handler (datas);
data1 = datas[0] + datas[3];
data2 = datas[1] + datas[2];
data1 = FINISH_DATA (data1, 16, 1);
data2 = FINISH_DATA (data2, 16, 1);
data1 = FINISH_DATA (data1, 15);
data2 = FINISH_DATA (data2, 15);
set_sound_buffers ();
put_sound_word_left (data1);
put_sound_word_right (data2);
@ -844,10 +847,10 @@ void sample16ss_sinc_handler (void)
int datas[4];
samplexx_sinc_handler (datas);
data0 = FINISH_DATA (datas[0], 16, 0);
data1 = FINISH_DATA (datas[1], 16, 0);
data2 = FINISH_DATA (datas[2], 16, 0);
data3 = FINISH_DATA (datas[3], 16, 0);
data0 = FINISH_DATA (datas[0], 16);
data1 = FINISH_DATA (datas[1], 16);
data2 = FINISH_DATA (datas[2], 16);
data3 = FINISH_DATA (datas[3], 16);
set_sound_buffers ();
put_sound_word_left (data0);
put_sound_word_right (data1);
@ -865,8 +868,8 @@ static void sample16si_sinc_handler (void)
samplexx_sinc_handler (datas);
data1 = datas[0] + datas[3];
data2 = datas[1] + datas[2];
data1 = FINISH_DATA (data1, 16, 1);
data2 = FINISH_DATA (data2, 16, 1);
data1 = FINISH_DATA (data1, 17);
data2 = FINISH_DATA (data2, 17);
set_sound_buffers ();
put_sound_word_left (data1);
put_sound_word_right (data2);
@ -892,9 +895,9 @@ void sample16s_handler (void)
data0 += data3;
data1 += data2;
data2 = SBASEVAL16(1) + data0;
data2 = FINISH_DATA (data2, 16, 1);
data2 = FINISH_DATA (data2, 15);
data3 = SBASEVAL16(1) + data1;
data3 = FINISH_DATA (data3, 16, 1);
data3 = FINISH_DATA (data3, 15);
set_sound_buffers ();
put_sound_word_left (data2);
put_sound_word_right (data3);
@ -965,9 +968,9 @@ static void sample16si_crux_handler (void)
data1 += data2;
data0 += data3;
data2 = SBASEVAL16(1) + data0;
data2 = FINISH_DATA (data2, 16, 1);
data2 = FINISH_DATA (data2, 15);
data3 = SBASEVAL16(1) + data1;
data3 = FINISH_DATA (data3, 16, 1);
data3 = FINISH_DATA (data3, 15);
set_sound_buffers ();
put_sound_word_left (data2);
put_sound_word_right (data3);
@ -1019,9 +1022,9 @@ static void sample16si_rh_handler (void)
ratio = ((audio_channel[3].evtime % delta) << 8) / delta;
data0 += (data3 * (256 - ratio) + data3p * ratio) >> 8;
data2 = SBASEVAL16(1) + data0;
data2 = FINISH_DATA (data2, 16, 1);
data2 = FINISH_DATA (data2, 15);
data3 = SBASEVAL16(1) + data1;
data3 = FINISH_DATA (data3, 16, 1);
data3 = FINISH_DATA (data3, 15);
set_sound_buffers ();
put_sound_word_left (data2);
put_sound_word_right (data3);
@ -1105,7 +1108,7 @@ static void audio_deactivate (void)
return;
gui_data.sndbuf_status = 3;
gui_data.sndbuf = 0;
reset_sound ();
pause_sound_buffer ();
clear_sound_buffers ();
audio_event_reset ();
}

View File

@ -881,6 +881,7 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
cfgfile_dwrite (f, _T("gfx_filter_blur"), _T("%d"), p->gfx_filter_blur);
cfgfile_dwrite (f, _T("gfx_filter_noise"), _T("%d"), p->gfx_filter_noise);
cfgfile_dwrite_bool (f, _T("gfx_filter_bilinear"), p->gfx_filter_bilinear != 0);
cfgfile_dwrite (f, _T("gfx_filter_keep_autoscale_aspect"), _T("%d"), p->gfx_filter_keep_autoscale_aspect);
cfgfile_dwrite_str (f, _T("gfx_filter_keep_aspect"), aspects[p->gfx_filter_keep_aspect]);
cfgfile_dwrite_str (f, _T("gfx_filter_autoscale"), autoscale[p->gfx_filter_autoscale]);
cfgfile_dwrite (f, _T("gfx_filter_aspect_ratio"), _T("%d:%d"),
@ -1535,6 +1536,7 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
|| cfgfile_intval (option, value, _T("gfx_luminance"), &p->gfx_luminance, 1)
|| cfgfile_intval (option, value, _T("gfx_contrast"), &p->gfx_contrast, 1)
|| cfgfile_intval (option, value, _T("gfx_gamma"), &p->gfx_gamma, 1)
|| cfgfile_intval (option, value, _T("gfx_filter_keep_autoscale_aspect"), &p->gfx_filter_keep_autoscale_aspect, 1)
|| cfgfile_string (option, value, _T("gfx_filter_mask"), p->gfx_filtermask, sizeof p->gfx_filtermask / sizeof (TCHAR))
|| cfgfile_intval (option, value, _T("filesys_max_size"), &p->filesys_limit, 1)
@ -4255,6 +4257,7 @@ void default_prefs (struct uae_prefs *p, int type)
p->gfx_filter_scanlineratio = (1 << 4) | 1;
p->gfx_filter_keep_aspect = 0;
p->gfx_filter_autoscale = AUTOSCALE_STATIC_AUTO;
p->gfx_filter_keep_autoscale_aspect = 0;
p->gfx_filteroverlay_overscan = 0;
_tcscpy (p->floppyslots[0].df, _T("df0.adf"));

14
cia.cpp
View File

@ -1841,6 +1841,14 @@ static void save_cia_prepare (void)
compute_passed_time ();
}
void restore_cia_start (void)
{
/* Fixes very old statefiles without keyboard state */
kbstate = 3;
setcapslockstate (0);
kblostsynccnt = 0;
}
void restore_cia_finish (void)
{
eventtab[ev_cia].oldcycles = get_cycles ();
@ -2022,10 +2030,12 @@ uae_u8 *restore_keyboard (uae_u8 *src)
restore_u8 ();
restore_u8 ();
restore_u8 ();
if (!(v & 1))
kbstate = 3;
kbcode = restore_u8 ();
kblostsynccnt = restore_u16 ();
if (!(v & 1)) {
kbstate = 3;
kblostsynccnt = 0;
}
return src;
}

View File

@ -250,7 +250,7 @@ static bool bpl1dat_written, bpl1dat_early, bpl1dat_written_at_least_once;
static uae_s16 bpl1mod, bpl2mod;
static uaecptr prevbpl[2][MAXVPOS][8];
static uaecptr bplpt[8], bplptx[8];
static bool brdblank_prevframe[MAXVPOS];
static bool brdblank_prevframe[MAXVPOS * 2 + 2];
/*static int blitcount[256]; blitter debug */
@ -1907,15 +1907,19 @@ static void start_bpl_dma (int hpos, int hstart)
plfstrt_sprite = plfstrt;
fetch_start (hpos);
fetch_cycle = 0;
last_fetch_hpos = hstart;
cycle_diagram_shift = last_fetch_hpos;
reset_bpl_vars ();
ddfstate = DIW_waiting_stop;
compute_toscr_delay (last_fetch_hpos, bplcon1);
/* If someone already wrote BPL1DAT, clear the area between that point and
the real fetch start. */
if (bpl1dat_written_at_least_once && hstart > last_fetch_hpos) {
update_fetch_x (hstart, fetchmode);
bpl1dat_written_at_least_once = false;
} else {
reset_bpl_vars ();
}
#if 0
if (!nodraw ()) {
if (thisline_decision.plfleft >= 0) {
out_nbits = (plfstrt - thisline_decision.plfleft) << (1 + toscr_res);
@ -1924,6 +1928,9 @@ static void start_bpl_dma (int hpos, int hstart)
}
update_toscr_planes ();
}
#endif
last_fetch_hpos = hstart;
cycle_diagram_shift = hstart;
}
/* this may turn on datafetch if program turns dma on during the ddf */
@ -2661,6 +2668,7 @@ static void finish_decisions (void)
if (brdblank_prevframe[vpos] != thisline_decision.brdblank_seen) {
changed = 1;
brdblank_prevframe[vpos] = thisline_decision.brdblank_seen;
//write_log (_T("%d.%d "), vpos, thisline_decision.brdblank_seen);
}
if (changed) {
@ -2959,13 +2967,13 @@ void compute_framesync (void)
int res2, vres2;
res2 = currprefs.gfx_resolution;
if (doublescan)
if (doublescan > 0)
res2++;
if (res2 > RES_MAX)
res2 = RES_MAX;
vres2 = currprefs.gfx_vresolution;
if (doublescan && !islace)
if (doublescan > 0 && !islace)
vres2--;
if (vres2 < 0)
@ -3102,7 +3110,9 @@ void init_hz (bool fullinit)
htotal = MAXHPOS - 1;
maxhpos = htotal + 1;
vblank_hz = 227.0 * 312.0 * 50.0 / (maxvpos * maxhpos);
minfirstline = vsstop;
minfirstline = vsstop > vbstop ? vsstop : vbstop;
if (minfirstline > maxvpos / 2)
minfirstline = vsstop > vsstop ? vbstop : vsstop;
if (minfirstline < 2)
minfirstline = 2;
if (minfirstline >= maxvpos)
@ -3271,8 +3281,9 @@ static uae_u32 REGPARAM2 timehack_helper (TrapContext *context)
/*
* register functions
*/
STATIC_INLINE uae_u16 DENISEID (void)
STATIC_INLINE uae_u16 DENISEID (int *missing)
{
*missing = 0;
if (currprefs.cs_deniserev >= 0)
return currprefs.cs_deniserev;
#ifdef AGA
@ -3284,6 +3295,8 @@ STATIC_INLINE uae_u16 DENISEID (void)
#endif
if (currprefs.chipset_mask & CSMASK_ECS_DENISE)
return 0xFFFC;
if (currprefs.cpu_model == 68000 && (currprefs.cpu_compatible || currprefs.cpu_cycle_exact))
*missing = 1;
return 0xFFFF;
}
STATIC_INLINE uae_u16 DMACONR (int hpos)
@ -6865,6 +6878,7 @@ static uae_u32 REGPARAM2 custom_lgeti (uaecptr addr)
STATIC_INLINE uae_u32 REGPARAM2 custom_wget_1 (int hpos, uaecptr addr, int noput)
{
uae_u16 v;
int missing;
#ifdef JIT
special_mem |= S_READ;
#endif
@ -6889,7 +6903,11 @@ STATIC_INLINE uae_u32 REGPARAM2 custom_wget_1 (int hpos, uaecptr addr, int noput
case 0x01A: v = DSKBYTR (hpos); break;
case 0x01C: v = INTENAR (); break;
case 0x01E: v = INTREQR (); break;
case 0x07C: v = DENISEID (); break;
case 0x07C:
v = DENISEID (&missing);
if (missing)
goto writeonly;
break;
#ifdef AGA
case 0x180: case 0x182: case 0x184: case 0x186: case 0x188: case 0x18A:
@ -6898,11 +6916,14 @@ STATIC_INLINE uae_u32 REGPARAM2 custom_wget_1 (int hpos, uaecptr addr, int noput
case 0x1A4: case 0x1A6: case 0x1A8: case 0x1AA: case 0x1AC: case 0x1AE:
case 0x1B0: case 0x1B2: case 0x1B4: case 0x1B6: case 0x1B8: case 0x1BA:
case 0x1BC: case 0x1BE:
if (!(currprefs.chipset_mask & CSMASK_AGA))
goto writeonly;
v = COLOR_READ ((addr & 0x3E) / 2);
break;
#endif
default:
writeonly:
/* OCS/ECS:
* reading write-only register causes write with last value in chip
* bus (custom registers, chipram, slowram)
@ -7447,7 +7468,7 @@ extern uae_u16 serper;
uae_u8 *save_custom (int *len, uae_u8 *dstptr, int full)
{
uae_u8 *dstbak, *dst;
int i;
int i, dummy;
uae_u32 dskpt;
uae_u16 dsklen, dsksync, dskbytr;
@ -7516,7 +7537,7 @@ uae_u8 *save_custom (int *len, uae_u8 *dstptr, int full)
SW (0); /* 076 ? */
SW (0); /* 078 ? */
SW (0); /* 07A ? */
SW (DENISEID ()); /* 07C DENISEID/LISAID */
SW (DENISEID (&dummy)); /* 07C DENISEID/LISAID */
SW (dsksync); /* 07E DSKSYNC */
SL (cop1lc); /* 080-083 COP1LC */
SL (cop2lc); /* 084-087 COP2LC */

View File

@ -1169,7 +1169,7 @@ static int drive_empty (drive * drv)
if (drv->catweasel)
return catweasel_disk_changed (drv->catweasel) == 0;
#endif
return drv->diskfile == 0;
return drv->diskfile == 0 && drv->dskchange_time >= 0;
}
static void drive_step (drive * drv, int step_direction)
@ -2513,7 +2513,7 @@ void DISK_vsync (void)
drv->dskready = true;
}
/* delay until new disk image is inserted */
if (drv->dskchange_time) {
if (drv->dskchange_time > 0) {
drv->dskchange_time--;
if (drv->dskchange_time == 0) {
drive_insert (drv, &currprefs, i, drv->newname, false);
@ -3787,6 +3787,8 @@ uae_u8 *restore_disk (int num,uae_u8 *src)
drive_insert (floppy + num, &currprefs, num, changed_prefs.floppyslots[num].df, false);
if (drive_empty (floppy + num))
drv->dskchange = true;
} else {
drv->dskchange_time = -1;
}
}
}

View File

@ -340,7 +340,7 @@ extern int lof_store;
#define MAX_DISPLAY_W 362
#define MAX_DISPLAY_H 283
static int gclow, gcloh, gclox, gcloy;
static int gclow, gcloh, gclox, gcloy, gclorealh;
void get_custom_topedge (int *x, int *y)
{
@ -356,6 +356,7 @@ void get_custom_topedge (int *x, int *y)
static void reset_custom_limits (void)
{
gclow = gcloh = gclox = gcloy = 0;
gclorealh = -1;
}
void set_custom_limits (int w, int h, int dx, int dy)
@ -384,7 +385,7 @@ void set_custom_limits (int w, int h, int dx, int dy)
notice_screen_contents_lost ();
}
int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy, int *prealh)
{
int w, h, dx, dy, y1, y2, dbl1, dbl2;
int ret = 0;
@ -399,6 +400,7 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
*ph = gfxvidinfo.outbuffer->outheight;
*pdx = 0;
*pdy = 0;
*prealh = -1;
return 1;
}
@ -406,6 +408,7 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
*ph = gcloh;
*pdx = gclox;
*pdy = gcloy;
*prealh = gclorealh;
if (gclow > 0 && gcloh > 0)
ret = -1;
@ -480,6 +483,15 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
if (dx < 0)
dx = 0;
*prealh = -1;
if (!programmedmode && first_planes_vpos) {
int th = (maxvpos - minfirstline) * 95 / 100;
if (th > h) {
th = xshift (th, dbl1);
*prealh = th;
}
}
dy = xshift (dy, dbl2);
h = xshift (h, dbl1);
@ -521,6 +533,7 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
gcloh = h;
gclox = dx;
gcloy = dy;
gclorealh = *prealh;
*pw = w;
*ph = h;
*pdx = dx;
@ -2696,7 +2709,7 @@ void finish_drawing_frame (void)
hposblank = 0;
pfield_draw_line (vb, line, where2, amiga2aspect_line_map[i1 + 1]);
}
#if 0
/* clear possible old garbage at the bottom if emulated area become smaller */
for (i = last_max_ypos; i < vb->outheight; i++) {
int i1 = i + min_ypos_for_screen;
@ -2708,7 +2721,7 @@ void finish_drawing_frame (void)
if (where2 < 0)
continue;
hposblank = i > last_max_ypos ;// + AMIGA_HEIGHT_EXTRA;
hposblank = i > last_max_ypos || i >= max_ypos_thisframe;
xlinebuffer = vb->linemem;
if (xlinebuffer == 0)
@ -2719,7 +2732,7 @@ void finish_drawing_frame (void)
linestate[line] = LINE_UNDECIDED;
do_flush_line (vb, where2);
}
#endif
if (currprefs.leds_on_screen) {
int slx, sly;
statusline_getpos (&slx, &sly, vb->outwidth, vb->outheight);

View File

@ -1963,7 +1963,7 @@ static TCHAR *get_nname (Unit *unit, a_inode *base, TCHAR *rel, TCHAR **modified
return 0;
/* A file called "." (or whatever else is invalid on this filesystem)
* does not exist, as far as the Amiga side is concerned. */
if (fsdb_name_invalid (rel))
if (fsdb_name_invalid_dir (rel))
return 0;
/* See if we have a file that has the same name as the aname we are
@ -3642,7 +3642,7 @@ static int action_examine_all_do (Unit *unit, uaecptr lock, ExAllKey *eak, uaecp
ok = isofs_readdir (d->isod, fn, &uniq);
else
ok = 0;
} while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid (fn));
} while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid_dir (fn));
if (!ok)
return 0;
} else {
@ -3915,7 +3915,7 @@ static void populate_directory (Unit *unit, a_inode *base)
ok = isofs_readdir (d->isod, fn, &uniq);
else
ok = 0;
} while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid (fn));
} while (ok && d->fstype == FS_DIRECTORY && fsdb_name_invalid_dir (fn));
if (!ok)
break;
/* This calls init_child_aino, which will notice that the parent is

View File

@ -272,7 +272,7 @@ extern bool notice_interlace_seen (bool);
extern void notice_resolution_seen (int, bool);
extern void frame_drawn (void);
extern void redraw_frame (void);
extern int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy);
extern int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy, int *prealh);
extern void set_custom_limits (int w, int h, int dx, int dy);
extern void get_custom_topedge (int *x, int *y);
extern void putpixel (uae_u8 *buf, int bpp, int x, xcolnr c8, int opaq);

View File

@ -113,11 +113,12 @@ extern void fsdb_dir_writeback (a_inode *);
extern int fsdb_used_as_nname (a_inode *base, const TCHAR *);
extern a_inode *fsdb_lookup_aino_aname (a_inode *base, const TCHAR *);
extern a_inode *fsdb_lookup_aino_nname (a_inode *base, const TCHAR *);
extern int fsdb_exists (TCHAR *nname);
extern int fsdb_exists (const TCHAR *nname);
extern int same_aname (const TCHAR *an1, const TCHAR *an2);
/* Filesystem-dependent functions. */
extern int fsdb_name_invalid (const TCHAR *n);
extern int fsdb_name_invalid_dir (const TCHAR *n);
extern int fsdb_fill_file_attrs (a_inode *, a_inode *);
extern int fsdb_set_file_attrs (a_inode *);
extern int fsdb_mode_representable_p (const a_inode *, int);

View File

@ -72,7 +72,7 @@ struct inputevent {
int data;
};
#define MAX_INPUT_QUALIFIERS (8+4)
#define MAX_INPUT_QUALIFIERS (8 + 5)
/* event flags */
#define ID_FLAG_AUTOFIRE 1
@ -84,22 +84,23 @@ struct inputevent {
#define ID_FLAG_GAMEPORTSCUSTOM_MASK (ID_FLAG_GAMEPORTSCUSTOM1 | ID_FLAG_GAMEPORTSCUSTOM2)
#define ID_FLAG_AUTOFIRE_MASK (ID_FLAG_TOGGLE | ID_FLAG_INVERTTOGGLE | ID_FLAG_AUTOFIRE)
#define ID_FLAG_QUALIFIER1 0x00000100000000
#define ID_FLAG_QUALIFIER1_R 0x00000200000000
#define ID_FLAG_QUALIFIER2 0x00000400000000
#define ID_FLAG_QUALIFIER3 0x00001000000000
#define ID_FLAG_QUALIFIER4 0x00004000000000
#define ID_FLAG_QUALIFIER5 0x00010000000000
#define ID_FLAG_QUALIFIER6 0x00040000000000
#define ID_FLAG_QUALIFIER7 0x00100000000000
#define ID_FLAG_QUALIFIER8 0x00400000000000
#define ID_FLAG_QUALIFIER_SPECIAL 0x01000000000000
#define ID_FLAG_QUALIFIER_SPECIAL_R 0x02000000000000
#define ID_FLAG_QUALIFIER_SHIFT 0x04000000000000
#define ID_FLAG_QUALIFIER_CONTROL 0x10000000000000
#define ID_FLAG_QUALIFIER_ALT 0x40000000000000
#define ID_FLAG_QUALIFIER_MASK 0xffffff00000000
#define ID_FLAG_QUALIFIER_MASK_R 0xaaaaaa00000000
#define ID_FLAG_QUALIFIER1 0x000000100000000
#define ID_FLAG_QUALIFIER1_R 0x000000200000000
#define ID_FLAG_QUALIFIER2 0x000000400000000
#define ID_FLAG_QUALIFIER3 0x000001000000000
#define ID_FLAG_QUALIFIER4 0x000004000000000
#define ID_FLAG_QUALIFIER5 0x000010000000000
#define ID_FLAG_QUALIFIER6 0x000040000000000
#define ID_FLAG_QUALIFIER7 0x000100000000000
#define ID_FLAG_QUALIFIER8 0x000400000000000
#define ID_FLAG_QUALIFIER_SPECIAL 0x001000000000000
#define ID_FLAG_QUALIFIER_SPECIAL_R 0x002000000000000
#define ID_FLAG_QUALIFIER_SHIFT 0x004000000000000
#define ID_FLAG_QUALIFIER_CONTROL 0x010000000000000
#define ID_FLAG_QUALIFIER_ALT 0x040000000000000
#define ID_FLAG_QUALIFIER_WIN 0x100000000000000
#define ID_FLAG_QUALIFIER_MASK 0xfffffff00000000
#define ID_FLAG_QUALIFIER_MASK_R 0xaaaaaaa00000000
#define IDEV_WIDGET_NONE 0
#define IDEV_WIDGET_BUTTON 1
@ -113,19 +114,20 @@ struct inputevent {
#define IDEV_MAPPED_INVERTTOGGLE 8
#define IDEV_MAPPED_GAMEPORTSCUSTOM1 16
#define IDEV_MAPPED_GAMEPORTSCUSTOM2 32
#define IDEV_MAPPED_QUALIFIER1 0x00000100000000
#define IDEV_MAPPED_QUALIFIER2 0x00000400000000
#define IDEV_MAPPED_QUALIFIER3 0x00001000000000
#define IDEV_MAPPED_QUALIFIER4 0x00004000000000
#define IDEV_MAPPED_QUALIFIER5 0x00010000000000
#define IDEV_MAPPED_QUALIFIER6 0x00040000000000
#define IDEV_MAPPED_QUALIFIER7 0x00100000000000
#define IDEV_MAPPED_QUALIFIER8 0x00400000000000
#define IDEV_MAPPED_QUALIFIER_SPECIAL 0x01000000000000
#define IDEV_MAPPED_QUALIFIER_SHIFT 0x04000000000000
#define IDEV_MAPPED_QUALIFIER_CONTROL 0x10000000000000
#define IDEV_MAPPED_QUALIFIER_ALT 0x40000000000000
#define IDEV_MAPPED_QUALIFIER_MASK 0xffffff00000000
#define IDEV_MAPPED_QUALIFIER1 0x000000100000000
#define IDEV_MAPPED_QUALIFIER2 0x000000400000000
#define IDEV_MAPPED_QUALIFIER3 0x000001000000000
#define IDEV_MAPPED_QUALIFIER4 0x000004000000000
#define IDEV_MAPPED_QUALIFIER5 0x000010000000000
#define IDEV_MAPPED_QUALIFIER6 0x000040000000000
#define IDEV_MAPPED_QUALIFIER7 0x000100000000000
#define IDEV_MAPPED_QUALIFIER8 0x000400000000000
#define IDEV_MAPPED_QUALIFIER_SPECIAL 0x001000000000000
#define IDEV_MAPPED_QUALIFIER_SHIFT 0x004000000000000
#define IDEV_MAPPED_QUALIFIER_CONTROL 0x010000000000000
#define IDEV_MAPPED_QUALIFIER_ALT 0x040000000000000
#define IDEV_MAPPED_QUALIFIER_WIN 0x100000000000000
#define IDEV_MAPPED_QUALIFIER_MASK 0xfffffff00000000
#define ID_BUTTON_OFFSET 0
#define ID_BUTTON_TOTAL 32

View File

@ -168,7 +168,7 @@ enum aks { AKS_ENTERGUI = 0x200, AKS_SCREENSHOT_FILE, AKS_SCREENSHOT_CLIPBOARD,
AKS_QUALIFIER1, AKS_QUALIFIER2, AKS_QUALIFIER3, AKS_QUALIFIER4,
AKS_QUALIFIER5, AKS_QUALIFIER6, AKS_QUALIFIER7, AKS_QUALIFIER8,
AKS_QUALIFIER_SPECIAL, AKS_QUALIFIER_SHIFT, AKS_QUALIFIER_CONTROL,
AKS_QUALIFIER_ALT
AKS_QUALIFIER_ALT, AKS_QUALIFIER_WIN
};
#define AKS_FIRST AKS_ENTERGUI

View File

@ -8,8 +8,8 @@
*/
#define UAEMAJOR 2
#define UAEMINOR 4
#define UAESUBREV 2
#define UAEMINOR 5
#define UAESUBREV 0
typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang;
@ -298,6 +298,7 @@ struct uae_prefs {
int gfx_filter_saturation, gfx_filter_luminance, gfx_filter_contrast, gfx_filter_gamma;
int gfx_filter_keep_aspect, gfx_filter_aspect;
int gfx_filter_autoscale;
int gfx_filter_keep_autoscale_aspect;
bool immediate_blits;
int waiting_blits;
@ -486,6 +487,7 @@ struct uae_prefs {
TCHAR win32_parjoyport0[MAX_DPATH];
TCHAR win32_parjoyport1[MAX_DPATH];
TCHAR win32_guipage[32];
bool win32_filesystem_mangle_reserved_names;
int statecapturerate, statecapturebuffersize;

View File

@ -113,6 +113,7 @@ extern void restore_audio_finish (void);
extern uae_u8 *restore_cia (int, uae_u8 *);
extern uae_u8 *save_cia (int, int *, uae_u8 *);
extern void restore_cia_finish (void);
extern void restore_cia_start (void);
extern uae_u8 *restore_expansion (uae_u8 *);
extern uae_u8 *save_expansion (int *, uae_u8 *);

View File

@ -635,12 +635,23 @@ static TCHAR *getstring (const TCHAR **pp)
int i;
static TCHAR str[CONFIG_BLEN];
const TCHAR *p = *pp;
bool quoteds = false;
bool quotedd = false;
if (*p == 0)
return 0;
i = 0;
while (*p != 0 && *p !='.' && *p != ',' && i < 1000 - 1)
while (*p != 0 && i < 1000 - 1) {
if (*p == '\"')
quotedd = quotedd ? false : true;
if (*p == '\'')
quoteds = quoteds ? false : true;
if (!quotedd && !quoteds) {
if (*p == '.' || *p == ',')
break;
}
str[i++] = *p++;
}
if (*p == '.' || *p == ',')
p++;
str[i] = 0;
@ -3431,17 +3442,33 @@ static bool process_custom_event (struct uae_input_device *id, int offset, int s
if (!id)
return false;
slotoffset = sub / 4;
slotoffset = sub & ~3;
sub &= 3;
flags = id->flags[offset][slotoffset];
qual = flags & ID_FLAG_QUALIFIER_MASK;
custom = id->custom[offset][slotoffset];
int af = flags & ID_FLAG_AUTOFIRE_MASK;
// check that slots 0 and 2 have same qualifiers, only allow toggle if both are same and neither has autofire
if ((id->flags[offset][slotoffset + 2] & ID_FLAG_QUALIFIER_MASK) != qual ||
(id->custom[offset][slotoffset] == NULL && id->custom[offset][slotoffset + 2] == NULL) ||
(id->flags[offset][slotoffset + 2] & ID_FLAG_AUTOFIRE_MASK) || (af & ID_FLAG_AUTOFIRE_MASK)) {
for (idx = 1; idx < 4; idx++) {
uae_u64 flags2 = id->flags[offset][slotoffset + idx];
TCHAR *custom2 = id->custom[offset][slotoffset + idx];
// all slots must have same qualifier
if ((flags2 & ID_FLAG_QUALIFIER_MASK) != qual)
break;
// no slot must have autofire
if ((flags2 & ID_FLAG_AUTOFIRE_MASK) || (flags & ID_FLAG_AUTOFIRE_MASK))
break;
}
// at least slot 0 and 2 must have custom
if (custom == NULL || id->custom[offset][slotoffset + 2] == NULL)
idx = -1;
if (idx < 4) {
id->flags[offset][slotoffset] &= ~(ID_FLAG_CUSTOMEVENT_TOGGLED1 | ID_FLAG_CUSTOMEVENT_TOGGLED2);
if (checkqualifiers (id->eventid[offset][slotoffset + sub], id->flags[offset][slotoffset + sub], qualmask, NULL)) {
int evt2 = id->eventid[offset][slotoffset + sub];
uae_u64 flags2 = id->flags[offset][slotoffset + sub];
if (checkqualifiers (evt2, flags2, qualmask, NULL)) {
custom = id->custom[offset][slotoffset + sub];
if (state && custom) {
if (autofire)
@ -5432,6 +5459,13 @@ static int put_event_data (const struct inputdevice_functions *id, int devnum, i
if ((flags & (mask1 | mask2)) == (mask1 | mask2))
flags &= ~mask2;
}
if (custom && custom[0] == 0) {
custom = NULL;
eventid = 0;
}
if (eventid <= 0 && !custom) {
flags = 0;
}
ret = -1;
if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) {

View File

@ -1,6 +1,6 @@
/* joystick/mouse port 1 */
DEFEVENT(JOYPORT1_START,_T("Joystick port 1"), AM_INFO, 0,1,0)
DEFEVENT(JOYPORT1_START,_T("[Joystick port 1]"), AM_INFO, 0,1,0)
DEFEVENT(MOUSE1_FIRST, _T(""), AM_DUMMY, 0,0,0)
@ -52,7 +52,7 @@ DEFEVENT(JOY1_CD32_BLUE,_T("Joy1 CD32 Blue"),AM_K,4,1,JOYBUTTON_CD32_BLUE)
/* joystick/mouse port 2 */
DEFEVENT(JOYPORT2_START,_T("Joystick port 2"), AM_INFO, 0,2,0)
DEFEVENT(JOYPORT2_START,_T("[Joystick port 2]"), AM_INFO, 0,2,0)
DEFEVENT(MOUSE2_FIRST, _T(""), AM_DUMMY, 0,0,0)
@ -103,7 +103,7 @@ DEFEVENT(LIGHTPEN_DOWN,_T("Lightpen Down"),AM_K,1,5,DIR_DOWN)
/* parallel port joystick adapter */
DEFEVENT(PAR_JOY1_START, _T("Parallel port joystick adapter"), AM_INFO, 0,3,0)
DEFEVENT(PAR_JOY1_START, _T("[Parallel port joystick adapter]"), AM_INFO, 0,3,0)
DEFEVENT(PAR_JOY1_HORIZ,_T("Parallel Joy1 Horizontal"),AM_JOY_AXIS,0,3,DIR_LEFT|DIR_RIGHT)
DEFEVENT(PAR_JOY1_VERT,_T("Parallel Joy1 Vertical"),AM_JOY_AXIS,0,3,DIR_UP|DIR_DOWN)
@ -137,7 +137,7 @@ DEFEVENT(PAR_JOY_END, _T(""), AM_DUMMY, 0,0,0)
/* qualifiers */
DEFEVENT(SPC_QUALIFIER_START,_T("Qualifiers"),AM_INFO, 0,0,0)
DEFEVENT(SPC_QUALIFIER_START,_T("[Qualifiers]"),AM_INFO, 0,0,0)
DEFEVENT(SPC_QUALIFIER1,_T("Qualifier 1"),AM_KK,0,0,AKS_QUALIFIER1)
DEFEVENT(SPC_QUALIFIER2,_T("Qualifier 2"),AM_KK,0,0,AKS_QUALIFIER2)
@ -151,12 +151,13 @@ DEFEVENT(SPC_QUALIFIER_SPECIAL,_T("Qualifier Special"),AM_KK,0,0,AKS_QUALIFIER_S
DEFEVENT(SPC_QUALIFIER_SHIFT,_T("Qualifier Shift"),AM_KK,0,0,AKS_QUALIFIER_SHIFT)
DEFEVENT(SPC_QUALIFIER_CONTROL,_T("Qualifier Control"),AM_KK,0,0,AKS_QUALIFIER_CONTROL)
DEFEVENT(SPC_QUALIFIER_ALT,_T("Qualifier Alt"),AM_KK,0,0,AKS_QUALIFIER_ALT)
DEFEVENT(SPC_QUALIFIER_WIN,_T("Qualifier Win"),AM_KK,0,0,AKS_QUALIFIER_WIN)
DEFEVENT(SPC_QUALIFIER_END, _T(""), AM_DUMMY, 0,0,0)
/* keys */
DEFEVENT(KEY_START,_T("Keyboard"),AM_INFO, 0,0,0)
DEFEVENT(KEY_START,_T("[Keyboard]"),AM_INFO, 0,0,0)
DEFEVENT(KEY_F1,_T("F1"),AM_K,0,0,AK_F1)
DEFEVENT(KEY_F2,_T("F2"),AM_K,0,0,AK_F2)
@ -315,6 +316,8 @@ DEFEVENT(KEY_7F,_T("Keycode 0x7F"),AM_K,0,0,0x7f)
/* special */
DEFEVENT(SPC_START,_T("[Miscellaneous]"),AM_INFO,0,0,0)
DEFEVENT(SPC_CUSTOM_EVENT,_T("<Custom Event>"),AM_K,0,0,0)
DEFEVENT(SPC_ENTERGUI,_T("Enter GUI"),AM_K,0,0,AKS_ENTERGUI)
DEFEVENT(SPC_SCREENSHOT,_T("Screenshot (file)"),AM_K,0,0,AKS_SCREENSHOT_FILE)

View File

@ -498,6 +498,8 @@ void fixup_prefs (struct uae_prefs *p)
#endif
if (p->maprom && !p->address_space_24)
p->maprom = 0x0f000000;
if ((p->maprom & 0xff000000) && p->address_space_24)
p->maprom = 0x00e00000;
if (p->tod_hack && p->cs_ciaatod == 0)
p->cs_ciaatod = p->ntscmode ? 2 : 1;

View File

@ -2516,8 +2516,8 @@ void memory_reset (void)
protect_roms (true);
}
if (cloanto_rom && currprefs.maprom < 0x01000000)
currprefs.maprom = changed_prefs.maprom = 0;
if ((cloanto_rom || extendedkickmem_size) && currprefs.maprom && currprefs.maprom < 0x01000000)
currprefs.maprom = changed_prefs.maprom = 0x00a80000;
map_banks (&custom_bank, 0xC0, 0xE0 - 0xC0, 0);
map_banks (&cia_bank, 0xA0, 32, 0);
@ -2592,7 +2592,7 @@ void memory_reset (void)
map_banks (&kickmem_bank, 0xF8, 8, 0);
if (currprefs.maprom)
map_banks (&kickram_bank, currprefs.maprom >> 16, 8, 0);
map_banks (&kickram_bank, currprefs.maprom >> 16, extendedkickmem2_size ? 32 : (extendedkickmem_size ? 16 : 8), 0);
/* map beta Kickstarts at 0x200000/0xC00000/0xF00000 */
if (kickmemory[0] == 0x11 && kickmemory[2] == 0x4e && kickmemory[3] == 0xf9 && kickmemory[4] == 0x00) {
uae_u32 addr = kickmemory[5];

View File

@ -33,48 +33,79 @@ int my_setcurrentdir (const TCHAR *curdir, TCHAR *oldcur)
int ret = 0;
if (oldcur)
ret = GetCurrentDirectory (MAX_DPATH, oldcur);
if (curdir)
ret = SetCurrentDirectory (curdir);
if (curdir) {
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, curdir);
namep = path;
} else {
namep = curdir;
}
ret = SetCurrentDirectory (namep);
}
return ret;
}
int my_mkdir (const TCHAR *name)
{
return CreateDirectory (name, NULL) == 0 ? -1 : 0;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
return CreateDirectory (namep, NULL) == 0 ? -1 : 0;
}
static int recycle (const TCHAR *name)
{
DWORD dirattr = GetFileAttributes (name);
DWORD dirattr = GetFileAttributesSafe (name);
bool isdir = dirattr != INVALID_FILE_ATTRIBUTES && (dirattr & FILE_ATTRIBUTE_DIRECTORY);
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if (currprefs.win32_norecyclebin || isdir) {
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
if (currprefs.win32_norecyclebin || isdir || currprefs.win32_filesystem_mangle_reserved_names == false) {
if (isdir)
return RemoveDirectory (name) ? 0 : -1;
return RemoveDirectory (namep) ? 0 : -1;
else
return DeleteFile (name) ? 0 : -1;
return DeleteFile (namep) ? 0 : -1;
} else {
SHFILEOPSTRUCT fos;
HANDLE h;
h = CreateFile (name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
h = CreateFile (namep, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (h != INVALID_HANDLE_VALUE) {
LARGE_INTEGER size;
if (GetFileSizeEx (h, &size)) {
if (size.QuadPart == 0) {
CloseHandle (h);
return DeleteFile (name) ? 0 : -1;
return DeleteFile (namep) ? 0 : -1;
}
}
CloseHandle (h);
}
/* name must be terminated by \0\0 */
TCHAR *p = xcalloc (TCHAR, _tcslen (name) + 2);
TCHAR *p = xcalloc (TCHAR, _tcslen (namep) + 2);
int v;
_tcscpy (p, name);
_tcscpy (p, namep);
memset (&fos, 0, sizeof (fos));
fos.wFunc = FO_DELETE;
fos.pFrom = p;
@ -136,7 +167,21 @@ int my_unlink (const TCHAR *name)
int my_rename (const TCHAR *oldname, const TCHAR *newname)
{
return MoveFile (oldname, newname) == 0 ? -1 : 0;
const TCHAR *onamep, *nnamep;
TCHAR opath[MAX_DPATH], npath[MAX_DPATH];
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (opath, PATHPREFIX);
_tcscat (opath, oldname);
onamep = opath;
_tcscpy (npath, PATHPREFIX);
_tcscat (npath, newname);
nnamep = npath;
} else {
onamep = oldname;
nnamep = newname;
}
return MoveFile (onamep, nnamep) == 0 ? -1 : 0;
}
struct my_opendir_s {
@ -154,7 +199,10 @@ struct my_opendir_s *my_opendir (const TCHAR *name, const TCHAR *mask)
struct my_opendir_s *mod;
TCHAR tmp[MAX_DPATH];
_tcscpy (tmp, name);
tmp[0] = 0;
if (currprefs.win32_filesystem_mangle_reserved_names == false)
_tcscpy (tmp, PATHPREFIX);
_tcscat (tmp, name);
_tcscat (tmp, _T("\\"));
_tcscat (tmp, mask);
mod = xmalloc (struct my_opendir_s, 1);
@ -239,19 +287,50 @@ unsigned int my_write (struct my_openfile_s *mos, void *b, unsigned int size)
return written;
}
static DWORD GetFileAttributesSafe (const TCHAR *name)
BOOL SetFileAttributesSafe (const TCHAR *name, DWORD attr)
{
DWORD attr, last;
DWORD last;
BOOL ret;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
last = SetErrorMode (SEM_FAILCRITICALERRORS);
attr = GetFileAttributes (name);
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
ret = SetFileAttributes (namep, attr);
SetErrorMode (last);
return ret;
}
DWORD GetFileAttributesSafe (const TCHAR *name)
{
DWORD attr, last;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
last = SetErrorMode (SEM_FAILCRITICALERRORS);
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
attr = GetFileAttributes (namep);
SetErrorMode (last);
return attr;
}
int my_existsfile (const TCHAR *name)
{
DWORD attr = GetFileAttributesSafe (name);
DWORD attr;
attr = GetFileAttributesSafe (name);
if (attr == INVALID_FILE_ATTRIBUTES)
return 0;
if (!(attr & FILE_ATTRIBUTE_DIRECTORY))
@ -261,7 +340,9 @@ int my_existsfile (const TCHAR *name)
int my_existsdir (const TCHAR *name)
{
DWORD attr = GetFileAttributesSafe (name);
DWORD attr;
attr = GetFileAttributesSafe (name);
if (attr == INVALID_FILE_ATTRIBUTES)
return 0;
if (attr & FILE_ATTRIBUTE_DIRECTORY)
@ -278,7 +359,16 @@ struct my_openfile_s *my_open (const TCHAR *name, int flags)
DWORD CreationDisposition = OPEN_EXISTING;
DWORD FlagsAndAttributes = FILE_ATTRIBUTE_NORMAL;
DWORD attr;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
mos = xmalloc (struct my_openfile_s, 1);
if (!mos)
return NULL;
@ -295,20 +385,19 @@ struct my_openfile_s *my_open (const TCHAR *name, int flags)
}
if (flags & O_RDWR)
DesiredAccess = GENERIC_READ | GENERIC_WRITE;
if (CreationDisposition == CREATE_ALWAYS && attr != INVALID_FILE_ATTRIBUTES &&
(attr & (FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN)))
SetFileAttributes (name, FILE_ATTRIBUTE_NORMAL);
h = CreateFile (name, DesiredAccess, ShareMode, NULL, CreationDisposition, FlagsAndAttributes, NULL);
if (CreationDisposition == CREATE_ALWAYS && attr != INVALID_FILE_ATTRIBUTES && (attr & (FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN)))
SetFileAttributesSafe (name, FILE_ATTRIBUTE_NORMAL);
h = CreateFile (namep, DesiredAccess, ShareMode, NULL, CreationDisposition, FlagsAndAttributes, NULL);
if (h == INVALID_HANDLE_VALUE) {
DWORD err = GetLastError();
if (err == ERROR_ACCESS_DENIED && (DesiredAccess & GENERIC_WRITE)) {
DesiredAccess &= ~GENERIC_WRITE;
h = CreateFile (name, DesiredAccess, ShareMode, NULL, CreationDisposition, FlagsAndAttributes, NULL);
h = CreateFile (namep, DesiredAccess, ShareMode, NULL, CreationDisposition, FlagsAndAttributes, NULL);
if (h == INVALID_HANDLE_VALUE)
err = GetLastError();
}
if (h == INVALID_HANDLE_VALUE) {
write_log (_T("failed to open '%s' %x %x err=%d\n"), name, DesiredAccess, CreationDisposition, err);
write_log (_T("failed to open '%s' %x %x err=%d\n"), namep, DesiredAccess, CreationDisposition, err);
xfree (mos);
mos = NULL;
goto err;
@ -316,7 +405,7 @@ struct my_openfile_s *my_open (const TCHAR *name, int flags)
}
mos->h = h;
err:
//write_log (_T("open '%s' = %x\n"), name, mos ? mos->h : 0);
//write_log (_T("open '%s' = %x\n"), namep, mos ? mos->h : 0);
return mos;
}
@ -325,22 +414,31 @@ int my_truncate (const TCHAR *name, uae_u64 len)
HANDLE hFile;
BOOL bResult = FALSE;
int result = -1;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if ((hFile = CreateFile (name, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
if ((hFile = CreateFile (namep, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ) ) != INVALID_HANDLE_VALUE )
{
LARGE_INTEGER li;
li.QuadPart = len;
li.LowPart = SetFilePointer (hFile, li.LowPart, &li.HighPart, FILE_BEGIN);
if (li.LowPart == INVALID_SET_FILE_POINTER && GetLastError () != NO_ERROR) {
write_log (_T("truncate: SetFilePointer() failure for %s to posn %d\n"), name, len);
write_log (_T("truncate: SetFilePointer() failure for %s to posn %d\n"), namep, len);
} else {
if (SetEndOfFile (hFile) == TRUE)
result = 0;
}
CloseHandle (hFile);
} else {
write_log (_T("truncate: CreateFile() failed to open %s\n"), name);
write_log (_T("truncate: CreateFile() failed to open %s\n"), namep);
}
return result;
}

View File

@ -59,14 +59,16 @@ static TCHAR *make_uaefsdbpath (const TCHAR *dir, const TCHAR *name)
len = _tcslen (dir) + 1 + 1;
if (name)
len += 1 + _tcslen (name);
if (currprefs.win32_filesystem_mangle_reserved_names == false)
len += _tcslen (PATHPREFIX);
len += 1 + _tcslen (FSDB_FILE);
p = xmalloc (TCHAR, len);
if (!p)
return NULL;
if (name)
_stprintf (p, _T("%s\\%s:%s"), dir, name, FSDB_FILE);
_stprintf (p, _T("%s%s\\%s:%s"), currprefs.win32_filesystem_mangle_reserved_names == false ? PATHPREFIX : _T(""), dir, name, FSDB_FILE);
else
_stprintf (p, _T("%s:%s"), dir, FSDB_FILE);
_stprintf (p, _T("%s%s:%s"), currprefs.win32_filesystem_mangle_reserved_names == false ? PATHPREFIX : _T(""), dir, FSDB_FILE);
return p;
}
@ -131,13 +133,24 @@ static int write_uaefsdb (const TCHAR *dir, uae_u8 *fsdb)
FILETIME t1, t2, t3;
int time_valid = FALSE;
int ret = 0;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, dir);
namep = path;
} else {
namep = dir;
}
p = make_uaefsdbpath (dir, NULL);
dirattr = GetFileAttributes (dir);
dirattr = GetFileAttributesSafe (dir);
dirflag = FILE_ATTRIBUTE_NORMAL;
if (dirattr != INVALID_FILE_ATTRIBUTES && (dirattr & FILE_ATTRIBUTE_DIRECTORY))
dirflag = FILE_FLAG_BACKUP_SEMANTICS; /* argh... */
h = CreateFile (dir, GENERIC_READ, 0,
h = CreateFile (namep, GENERIC_READ, 0,
NULL, OPEN_EXISTING, dirflag, NULL);
if (h != INVALID_HANDLE_VALUE) {
if (GetFileTime (h, &t1, &t2, &t3))
@ -188,7 +201,7 @@ end:
if (attr != INVALID_FILE_ATTRIBUTES)
SetFileAttributes (p, attr);
if (time_valid) {
h = CreateFile (dir, GENERIC_WRITE, 0,
h = CreateFile (namep, GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, dirflag, NULL);
if (h != INVALID_HANDLE_VALUE) {
SetFileTime (h, &t1, &t2, &t3);
@ -258,7 +271,7 @@ static a_inode *aino_from_buf (a_inode *base, uae_u8 *buf, int *winmode)
aino->has_dbentry = 0;
aino->dirty = 0;
aino->db_offset = 0;
if((mode = GetFileAttributes (aino->nname)) == INVALID_FILE_ATTRIBUTES) {
if((mode = GetFileAttributesSafe (aino->nname)) == INVALID_FILE_ATTRIBUTES) {
write_log (_T("xGetFileAttributes('%s') failed! error=%d, aino=%p\n"),
aino->nname, GetLastError (), aino);
return aino;
@ -268,7 +281,7 @@ static a_inode *aino_from_buf (a_inode *base, uae_u8 *buf, int *winmode)
}
/* Return nonzero for any name we can't create on the native filesystem. */
static int fsdb_name_invalid_2 (const TCHAR *n)
static int fsdb_name_invalid_2 (const TCHAR *n, int dir)
{
int i;
static char s1[MAX_DPATH];
@ -279,6 +292,17 @@ static int fsdb_name_invalid_2 (const TCHAR *n)
TCHAR d = (c == '\0' ? c : n[3]);
int l = _tcslen (n), ll;
/* the reserved fsdb filename */
if (_tcscmp (n, FSDB_FILE) == 0)
return -1;
if (dir) {
if (n[0] == '.' && l == 1)
return -1;
if (n[0] == '.' && n[1] == '.' && l == 2)
return -1;
}
if (a >= 'a' && a <= 'z')
a -= 32;
if (b >= 'a' && b <= 'z')
@ -286,6 +310,7 @@ static int fsdb_name_invalid_2 (const TCHAR *n)
if (c >= 'a' && c <= 'z')
c -= 32;
if (currprefs.win32_filesystem_mangle_reserved_names) {
/* reserved dos devices */
ll = 0;
if (a == 'A' && b == 'U' && c == 'X') ll = 3; /* AUX */
@ -301,7 +326,8 @@ static int fsdb_name_invalid_2 (const TCHAR *n)
/* spaces and periods at the end are a no-no */
i = l - 1;
if (n[i] == '.' || n[i] == ' ')
return -1;
return 1;
}
/* these characters are *never* allowed */
for (i = 0; i < NUM_EVILCHARS; i++) {
@ -309,10 +335,6 @@ static int fsdb_name_invalid_2 (const TCHAR *n)
return 1;
}
/* the reserved fsdb filename */
if (_tcscmp (n, FSDB_FILE) == 0)
return -1;
s1[0] = 0;
s2[0] = 0;
ua_fs_copy (s1, MAX_DPATH, n, -1);
@ -325,7 +347,16 @@ static int fsdb_name_invalid_2 (const TCHAR *n)
int fsdb_name_invalid (const TCHAR *n)
{
int v = fsdb_name_invalid_2 (n);
int v = fsdb_name_invalid_2 (n, 0);
if (v <= 0)
return v;
write_log (_T("FILESYS: '%s' illegal filename\n"), n);
return v;
}
int fsdb_name_invalid_dir (const TCHAR *n)
{
int v = fsdb_name_invalid_2 (n, 1);
if (v <= 0)
return v;
write_log (_T("FILESYS: '%s' illegal filename\n"), n);
@ -337,11 +368,9 @@ uae_u32 filesys_parse_mask(uae_u32 mask)
return mask ^ 0xf;
}
int fsdb_exists (TCHAR *nname)
int fsdb_exists (const TCHAR *nname)
{
if (GetFileAttributes(nname) == INVALID_FILE_ATTRIBUTES)
return 0;
return 1;
return GetFileAttributesSafe (nname) != INVALID_FILE_ATTRIBUTES;
}
/* For an a_inode we have newly created based on a filename we found on the
@ -352,7 +381,7 @@ int fsdb_fill_file_attrs (a_inode *base, a_inode *aino)
uae_u8 fsdb[UAEFSDB2_LEN];
int reset = 0;
if((mode = GetFileAttributes(aino->nname)) == INVALID_FILE_ATTRIBUTES) {
if((mode = GetFileAttributesSafe (aino->nname)) == INVALID_FILE_ATTRIBUTES) {
write_log (_T("GetFileAttributes('%s') failed! error=%d, aino=%p dir=%d\n"),
aino->nname, GetLastError(), aino, aino->dir);
return 0;
@ -415,7 +444,7 @@ int fsdb_set_file_attrs (a_inode *aino)
tmpmask = filesys_parse_mask (aino->amigaos_mode);
mode = GetFileAttributes (aino->nname);
mode = GetFileAttributesSafe (aino->nname);
if (mode == INVALID_FILE_ATTRIBUTES)
return ERROR_OBJECT_NOT_AROUND;
mode &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN;
@ -429,7 +458,7 @@ int fsdb_set_file_attrs (a_inode *aino)
mode |= FILE_ATTRIBUTE_SYSTEM;
if (tmpmask & A_FIBF_HIDDEN)
mode |= FILE_ATTRIBUTE_HIDDEN;
SetFileAttributes (aino->nname, mode);
SetFileAttributesSafe (aino->nname, mode);
aino->dirty = 1;
if (aino->volflags & MYVOLUMEINFO_STREAMS) {
@ -523,9 +552,20 @@ TCHAR *fsdb_search_dir (const TCHAR *dirname, TCHAR *rel)
WIN32_FIND_DATA fd;
HANDLE h;
TCHAR *tmp, *p = 0;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
tmp = build_nname (dirname, rel);
h = FindFirstFile (tmp, &fd);
if (!tmp)
return NULL;
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, tmp);
namep = path;
} else {
namep = tmp;
}
h = FindFirstFile (namep, &fd);
if (h != INVALID_HANDLE_VALUE) {
if (_tcscmp (fd.cFileName, rel) == 0)
p = rel;
@ -544,11 +584,22 @@ static a_inode *custom_fsdb_lookup_aino (a_inode *base, const TCHAR *aname, int
HANDLE h;
WIN32_FIND_DATA fd;
static a_inode dummy;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
tmp1 = build_nname (base->nname, UAEFSDB_BEGINSX);
if (!tmp1)
return NULL;
h = FindFirstFile (tmp1, &fd);
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, tmp1);
namep = path;
} else {
namep = tmp1;
}
h = FindFirstFile (namep, &fd);
if (h != INVALID_HANDLE_VALUE) {
do {
if (read_uaefsdb (base->nname, fd.cFileName, fsdb)) {

View File

@ -126,11 +126,11 @@ static struct uae_input_device_kbr_default keytrans_amiga[] = {
{ DIK_LSHIFT, INPUTEVENT_KEY_SHIFT_LEFT, 0, INPUTEVENT_SPC_QUALIFIER_SHIFT },
{ DIK_LCONTROL, INPUTEVENT_KEY_CTRL, 0, INPUTEVENT_SPC_QUALIFIER_CONTROL },
{ DIK_LWIN, INPUTEVENT_KEY_AMIGA_LEFT },
{ DIK_LWIN, INPUTEVENT_KEY_AMIGA_LEFT, 0, INPUTEVENT_SPC_QUALIFIER_WIN },
{ DIK_LMENU, INPUTEVENT_KEY_ALT_LEFT, 0, INPUTEVENT_SPC_QUALIFIER_ALT },
{ DIK_RMENU, INPUTEVENT_KEY_ALT_RIGHT, 0, INPUTEVENT_SPC_QUALIFIER_ALT },
{ DIK_RWIN, INPUTEVENT_KEY_AMIGA_RIGHT },
{ DIK_APPS, INPUTEVENT_KEY_AMIGA_RIGHT },
{ DIK_RWIN, INPUTEVENT_KEY_AMIGA_RIGHT, 0, INPUTEVENT_SPC_QUALIFIER_WIN },
{ DIK_APPS, INPUTEVENT_KEY_AMIGA_RIGHT, 0, INPUTEVENT_SPC_QUALIFIER_WIN },
{ DIK_RCONTROL, INPUTEVENT_KEY_CTRL, 0, INPUTEVENT_SPC_QUALIFIER_CONTROL },
{ DIK_RSHIFT, INPUTEVENT_KEY_SHIFT_RIGHT, 0, INPUTEVENT_SPC_QUALIFIER_SHIFT },

View File

@ -118,9 +118,19 @@ int posixemu_stat (const TCHAR *name, struct _stat64 *statbuf)
FILETIME ft, lft;
HANDLE h;
BY_HANDLE_FILE_INFORMATION fi;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
// FILE_FLAG_BACKUP_SEMANTICS = can also "open" directories
h = CreateFile (name, 0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, NULL);
h = CreateFile (namep, 0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, NULL);
if (h == INVALID_HANDLE_VALUE) {
write_log (_T("Stat CreateFile(%s) failed: %d\n"), name, GetLastError ());
return -1;
@ -135,7 +145,7 @@ int posixemu_stat (const TCHAR *name, struct _stat64 *statbuf)
ft = fi.ftLastWriteTime;
statbuf->st_size = ((uae_u64)fi.nFileSizeHigh << 32) | fi.nFileSizeLow;
} else {
write_log (_T("GetFileInformationByHandle(%s) failed: %d\n"), name, GetLastError ());
write_log (_T("GetFileInformationByHandle(%s) failed: %d\n"), namep, GetLastError ());
return -1;
}
@ -157,7 +167,7 @@ int posixemu_chmod (const TCHAR *name, int mode)
attr |= FILE_ATTRIBUTE_READONLY;
if (mode & FILEFLAG_ARCHIVE)
attr |= FILE_ATTRIBUTE_ARCHIVE;
if (SetFileAttributes (name,attr))
if (SetFileAttributesSafe (name,attr))
return 1;
return -1;
}
@ -182,8 +192,18 @@ static int setfiletime (const TCHAR *name, unsigned int days, int minute, int ti
{
FILETIME LocalFileTime, FileTime;
HANDLE hFile;
const TCHAR *namep;
TCHAR path[MAX_DPATH];
if ((hFile = CreateFile (name, GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, NULL)) == INVALID_HANDLE_VALUE)
if (currprefs.win32_filesystem_mangle_reserved_names == false) {
_tcscpy (path, PATHPREFIX);
_tcscat (path, name);
namep = path;
} else {
namep = name;
}
if ((hFile = CreateFile (namep, GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, NULL)) == INVALID_HANDLE_VALUE)
return 0;
for (;;) {

View File

@ -6,6 +6,7 @@
#define IDS_DISK 2
#define IDS_DISPLAY 3
#define IDC_HARDDRIVE_IMAGE 3
#define IDC_LISTDIALOG_CLEAR 3
#define IDS_HARDDISK 4
#define IDS_FLOPPY 5
#define IDS_ABOUT 6
@ -363,6 +364,10 @@
#define IDS_WSTYLE_MINIMAL 383
#define IDS_WSTYLE_STANDARD 384
#define IDS_WSTYLE_EXTENDED 385
#define IDD_LIST 386
#define IDS_MISCLISTITEMS1 386
#define IDS_MISCLISTITEMS2 387
#define IDS_MISCLISTITEMS3 388
#define IDS_QS_MODELS 1000
#define IDS_QS_MODEL_A500 1001
#define IDS_QS_MODEL_A500P 1002
@ -539,6 +544,9 @@
#define IDC_SAVEIMAGE2 1287
#define IDC_PROWIZARD 1288
#define IDC_SAVEIMAGE3 1288
#define IDC_GUI_FONT 1288
#define IDC_GUI_DEFAULT 1289
#define IDC_GUI_LISTFONT 1290
#define IDC_PORT0_JOYSC 1302
#define IDC_PORT0_KBDA 1303
#define IDC_PORT0_KBDB 1304
@ -664,6 +672,7 @@
#define IDC_DF0WP 1519
#define IDC_OCS 1520
#define IDC_HDFLOPPY 1520
#define IDC_SETTINGSTEXT3 1520
#define IDC_ECS_AGNUS 1521
#define IDC_ECS_DENISE 1522
#define IDC_ECS 1523
@ -682,11 +691,12 @@
#define IDC_MINIMIZED_PAUSE 1531
#define IDC_STATEREC_RECORD 1532
#define IDC_KBLED_USB 1533
#define IDC_STATEREC_CAPTURE2 1533
#define IDC_ACTIVE_PAUSE 1534
#define IDC_KBLED_USB2 1534
#define IDC_ACTIVE_NOSOUND 1535
#define IDC_STATECLEAR 1536
#define IDC_SER_SHARED 1553
#define IDC_GUI_RESIZE 1553
#define IDC_SER_CTSRTS 1554
#define IDC_SER_DIRECT 1555
#define IDC_PSPRINTER 1556
@ -823,6 +833,8 @@
#define IDC_SOUNDCALIBRATE 1641
#define IDC_ACTIVE_PRIORITY 1642
#define IDC_SOUNDDRIVE 1642
#define IDC_KBLED4 1642
#define IDC_GUI_SIZE 1642
#define IDC_INACTIVE_PRIORITY 1643
#define IDC_ACTIVE_PRI 1644
#define IDC_MINIMIZED_PRIORITY 1645
@ -938,6 +950,7 @@
#define IDC_SOUND_AUTO 1709
#define IDC_FILTERKEEPASPECT 1709
#define IDC_CS_RTC 1710
#define IDC_FILTERKEEPAUTOSCALEASPECT 1710
#define IDC_CS_CIAA_TOD1 1711
#define IDC_CS_CIAA_TOD2 1712
#define IDC_CS_EXT 1712
@ -1083,6 +1096,7 @@
#define IDC_MISCLIST 1810
#define IDC_STATENAME 1811
#define IDC_SAMPLER_STEREO 1812
#define IDC_LISTDIALOG_LIST 1813
#define ID__FLOPPYDRIVES 40004
#define ID_FLOPPYDRIVES_DF0 40005
#define ID_ST_CONFIGURATION 40010
@ -1131,9 +1145,9 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 386
#define _APS_NEXT_RESOURCE_VALUE 387
#define _APS_NEXT_COMMAND_VALUE 40050
#define _APS_NEXT_CONTROL_VALUE 1813
#define _APS_NEXT_CONTROL_VALUE 1814
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
@ -18,4 +18,9 @@
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

File diff suppressed because it is too large Load Diff

View File

@ -728,7 +728,7 @@ static int _cdecl portAudioCallback (const void *inputBuffer, void *outputBuffer
int bytestocopy;
int diff;
if (!framesPerBuffer || !s->pafinishsb)
if (!framesPerBuffer || !s->pafinishsb || sdp->deactive)
return paContinue;
if (!s->pacallbacksize)
@ -1702,8 +1702,15 @@ static void restart_sound_buffer2 (struct sound_data *sd)
cf (s->writepos);
}
void pause_sound_buffer (void)
{
sdp->deactive = true;
reset_sound ();
}
void restart_sound_buffer (void)
{
sdp->deactive = false;
restart_sound_buffer2 (sdp);
}

View File

@ -13,6 +13,7 @@ extern uae_u16 *paula_sndbufpt;
extern int paula_sndbufsize;
extern void finish_sound_buffer (void);
extern void restart_sound_buffer (void);
extern void pause_sound_buffer (void);
extern int init_sound (void);
extern void close_sound (void);
extern int setup_sound (void);
@ -33,6 +34,7 @@ struct sound_dp;
struct sound_data
{
int waiting_for_buffer;
int deactive;
int devicetype;
int obtainedfreq;
int paused;

View File

@ -158,6 +158,7 @@ static int recapture;
static int focus;
int mouseactive;
int minimized;
int monitor_off;
static int mm_timerres;
static int timermode, timeon;
@ -683,6 +684,7 @@ static void setmouseactive2 (int active, bool allowpause)
}
void setmouseactive (int active)
{
monitor_off = 0;
setmouseactive2 (active, true);
}
@ -693,6 +695,7 @@ static void winuae_active (HWND hWnd, int minimized)
struct threadpriorities *pri;
write_log (_T("winuae_active(%d)\n"), minimized);
monitor_off = 0;
/* without this returning from hibernate-mode causes wrong timing
*/
timeend ();
@ -733,7 +736,6 @@ static void winuae_active (HWND hWnd, int minimized)
lcd_priority (1);
#endif
clipboard_active (hAmigaWnd, 1);
SetThreadExecutionState (ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
#if USETHREADCHARACTERICS
if (os_vista && AVTask == NULL) {
DWORD taskIndex = 0;
@ -967,6 +969,7 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
switch (message)
{
case WM_INPUT:
monitor_off = 0;
handle_rawinput (lParam);
DefWindowProc (hWnd, message, wParam, lParam);
return 0;
@ -1190,6 +1193,8 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
{
int wm = dinput_winmouse ();
monitor_off = 0;
mx = (signed short) LOWORD (lParam);
my = (signed short) HIWORD (lParam);
mx -= mouseposx;
@ -1345,10 +1350,15 @@ static LRESULT CALLBACK AmigaWindowProc (HWND hWnd, UINT message, WPARAM wParam,
case WM_SYSCOMMAND:
switch (wParam & 0xfff0) // Check System Calls
{
case SC_SCREENSAVE: // Screensaver Trying To Start?
case SC_MONITORPOWER: // Monitor Trying To Enter Powersave?
// SetThreadExecutionState handles this now
case SC_SCREENSAVE: // Screensaver Trying To Start?
break;
case SC_MONITORPOWER: // Monitor Trying To Enter Powersave?
write_log (_T("SC_MONITORPOWER=%d"), lParam);
if ((int)lParam < 0)
monitor_off = 0;
else if ((int)lParam > 0)
monitor_off = 1;
break;
default:
@ -1875,7 +1885,7 @@ void handle_events (void)
{
MSG msg;
int was_paused = 0;
static int cnt;
static int cnt1, cnt2;
if (hStatusWnd && guijoychange && window_led_joy_start > 0) {
guijoychange = false;
@ -1903,10 +1913,18 @@ void handle_events (void)
#ifdef RETROPLATFORM
rp_vsync ();
#endif
cnt = 0;
cnt1 = 0;
while (checkIPC (globalipc, &currprefs));
if (quit_program)
break;
cnt2--;
if (cnt2 <= 0) {
if (currprefs.win32_powersavedisabled)
SetThreadExecutionState (ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
else
SetThreadExecutionState (ES_CONTINUOUS);
cnt2 = 10;
}
}
#if 0
while (PeekMessage (&msg, 0, 0, 0, PM_REMOVE)) {
@ -1920,11 +1938,19 @@ void handle_events (void)
sound_closed = 0;
manual_painting_needed--;
}
cnt--;
if (cnt <= 0) {
cnt1--;
if (cnt1 <= 0) {
figure_processor_speed ();
flush_log ();
cnt = 50 * 5;
cnt1 = 50 * 5;
cnt2--;
if (cnt2 <= 0) {
if (currprefs.win32_powersavedisabled)
SetThreadExecutionState (ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
else
SetThreadExecutionState (ES_CONTINUOUS);
cnt2 = 5;
}
}
}
@ -2904,7 +2930,7 @@ void target_default_options (struct uae_prefs *p, int type)
p->win32_uaescsimode = UAESCSI_CDEMU;
p->win32_borderless = 0;
p->win32_blankmonitors = false;
p->win32_powersavedisabled = 1;
p->win32_powersavedisabled = true;
p->sana2 = 0;
p->win32_rtgmatchdepth = 1;
p->win32_rtgscaleifsmall = 1;
@ -2932,6 +2958,7 @@ void target_default_options (struct uae_prefs *p, int type)
p->win32_automount_cddrives = 0;
p->win32_automount_netdrives = 0;
p->picasso96_modeflags = RGBFF_CLUT | RGBFF_R5G6B5PC | RGBFF_B8G8R8A8;
p->win32_filesystem_mangle_reserved_names = true;
}
}
@ -3035,6 +3062,7 @@ void target_save_options (struct zfile *f, struct uae_prefs *p)
cfgfile_target_dwrite_str (f, _T("parjoyport0"), p->win32_parjoyport0);
cfgfile_target_dwrite_str (f, _T("parjoyport1"), p->win32_parjoyport1);
cfgfile_target_dwrite_str (f, _T("gui_page"), p->win32_guipage);
cfgfile_target_dwrite_bool (f, _T("filesystem_mangle_reserved_names"), p->win32_filesystem_mangle_reserved_names);
}
static int fetchpri (int pri, int defpri)
@ -3107,6 +3135,7 @@ int target_parse_option (struct uae_prefs *p, const TCHAR *option, const TCHAR *
|| cfgfile_string (option, value, _T("gui_page"), p->win32_guipage, sizeof p->win32_guipage / sizeof (TCHAR))
|| cfgfile_intval (option, value, _T("guikey"), &p->win32_guikey, 1)
|| cfgfile_intval (option, value, _T("kbledmode"), &p->win32_kbledmode, 1)
|| cfgfile_yesno (option, value, _T("filesystem_mangle_reserved_names"), &p->win32_filesystem_mangle_reserved_names)
|| cfgfile_intval (option, value, _T("cpu_idle"), &p->cpu_idle, 1));
if (cfgfile_yesno (option, value, _T("rtg_match_depth"), &p->win32_rtgmatchdepth))
@ -5862,13 +5891,11 @@ void fpux_restore (int *v)
#endif
}
typedef BOOL (CALLBACK* SETPROCESSDPIAWARE)(void);
typedef BOOL (CALLBACK* CHANGEWINDOWMESSAGEFILTER)(UINT, DWORD);
int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
SETPROCESSDPIAWARE pSetProcessDPIAware;
DWORD_PTR sys_aff;
HANDLE thread;
@ -5908,13 +5935,8 @@ int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdL
pChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
#endif
pSetProcessDPIAware = (SETPROCESSDPIAWARE)GetProcAddress (
GetModuleHandle (_T("user32.dll")), "SetProcessDPIAware");
if (pSetProcessDPIAware)
pSetProcessDPIAware ();
log_open (NULL, 0, 0);
__try {
WinMain2 (hInstance, hPrevInstance, lpCmdLine, nCmdShow);
} __except(WIN32_ExceptionFilter (GetExceptionInformation (), GetExceptionCode ())) {

View File

@ -19,8 +19,8 @@
#define LANG_DLL 1
//#define WINUAEBETA _T("")
#define WINUAEBETA _T("12")
#define WINUAEDATE MAKEBD(2012, 8, 14)
#define WINUAEBETA _T("13")
#define WINUAEDATE MAKEBD(2012, 8, 26)
#define WINUAEEXTRA _T("")
//#define WINUAEEXTRA _T("AmiKit Preview")
#define WINUAEREV _T("")
@ -37,6 +37,7 @@ extern int manual_painting_needed;
extern int manual_palette_refresh_needed;
extern int mouseactive;
extern int minimized;
extern int monitor_off;
extern int ignore_messages_all;
extern void *globalipc, *serialipc;
@ -195,4 +196,8 @@ struct assext {
struct assext exts[];
void associate_file_extensions (void);
#define PATHPREFIX _T("\\\\?\\")
DWORD GetFileAttributesSafe (const TCHAR *name);
BOOL SetFileAttributesSafe (const TCHAR *name, DWORD attr);
#endif

View File

@ -147,7 +147,8 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
bool specialmode = !isnativevidbuf ();
float mrmx, mrmy, mrsx, mrsy;
int extraw2;
bool doautoaspect = false;
float autoaspectratio;
int filter_horiz_zoom = currprefs.gfx_filter_horiz_zoom;
int filter_vert_zoom = currprefs.gfx_filter_vert_zoom;
@ -232,7 +233,7 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
bool scl = false;
if (scalemode) {
int cw, ch, cx, cy, cv;
int cw, ch, cx, cy, cv, crealh = 0;
static int oxmult, oymult;
filterxmult = 1000 / scale;
@ -276,7 +277,7 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
}
if (scalemode == AUTOSCALE_INTEGER_AUTOSCALE)
ok = get_custom_limits (&cw, &ch, &cx, &cy);
ok = get_custom_limits (&cw, &ch, &cx, &cy, &crealh);
if (scalemode == AUTOSCALE_INTEGER || ok == false)
getmanualpos (&cx, &cy, &cw, &ch);
@ -330,11 +331,11 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
} else if (scalemode == AUTOSCALE_CENTER || scalemode == AUTOSCALE_RESIZE) {
cv = get_custom_limits (&cw, &ch, &cx, &cy);
cv = get_custom_limits (&cw, &ch, &cx, &cy, &crealh);
} else {
cv = get_custom_limits (&cw, &ch, &cx, &cy);
cv = get_custom_limits (&cw, &ch, &cx, &cy, &crealh);
if (cv) {
set_custom_limits (cw, ch, cx, cy);
scl = true;
@ -345,6 +346,12 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
if (!scl)
set_custom_limits (-1, -1, -1, -1);
autoaspectratio = 0;
if (currprefs.gfx_filter_keep_autoscale_aspect && crealh > 0 && (scalemode == AUTOSCALE_NORMAL || scalemode == AUTOSCALE_INTEGER_AUTOSCALE)) {
autoaspectratio = ((float)crealh / ch);
doautoaspect = true;
}
if (currprefs.gfx_api == 0) {
if (cx < 0)
cx = 0;
@ -450,11 +457,14 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
filteroffsetx = -zr->left / scale;
filteroffsety = -zr->top / scale;
if (currprefs.gfx_filter_keep_aspect || currprefs.gfx_filter_aspect != 0) {
bool aspect = false;
int diffx = dr->right - dr->left;
int diffy = dr->bottom - dr->top;
float xmult = 1.0;
float ymult = 1.0;
xmult = 1.0;
ymult = 1.0;
if (currprefs.gfx_filter_keep_aspect || currprefs.gfx_filter_aspect != 0) {
if (currprefs.gfx_filter_keep_aspect) {
if (currprefs.ntscmode) {
@ -470,6 +480,19 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
dstratio = dstratio * 0.95;
}
}
aspect = true;
} else if (doautoaspect) {
aspect = true;
}
if (aspect) {
if (doautoaspect) {
srcratio *= autoaspectratio;
}
if (srcratio > dstratio) {
ymult = ymult * srcratio / dstratio;
@ -500,6 +523,7 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
}
cont:
if (!filter_horiz_zoom_mult && !filter_vert_zoom_mult) {
sizeoffset (dr, zr, extraw, extrah);

View File

@ -930,7 +930,7 @@ bool render_screen (bool immediate)
bool v = false;
render_ok = false;
if (minimized || picasso_on || dx_islost ())
if (minimized || picasso_on || monitor_off || dx_islost ())
return render_ok;
flushymin = 0;
flushymax = currentmode->amiga_height;
@ -1744,7 +1744,7 @@ int check_prefs_changed_gfx (void)
currprefs.gfx_ycenter = changed_prefs.gfx_ycenter;
currprefs.gfx_filter_autoscale = changed_prefs.gfx_filter_autoscale;
get_custom_limits (NULL, NULL, NULL, NULL);
get_custom_limits (NULL, NULL, NULL, NULL, NULL);
fixup_prefs_dimensions (&changed_prefs);
return 1;

View File

@ -91,6 +91,10 @@
#include "rp.h"
#endif
#define GUI_SCALE_DEFAULT 90
#define MIN_GUI_INTERNAL_WIDTH 512
#define MIN_GUI_INTERNAL_HEIGHT 400
#define ARCHIVE_STRING _T("*.zip;*.7z;*.rar;*.lha;*.lzh;*.lzx")
#define DISK_FORMAT_STRING _T("(*.adf;*.adz;*.gz;*.dms;*.fdi;*.ipf;*.exe)\0*.adf;*.adz;*.gz;*.dms;*.fdi;*.ipf;*.exe;*.ima;*.wrp;*.dsq;*.st;") ARCHIVE_STRING _T("\0")
@ -132,6 +136,7 @@ extern int mouseactive;
TCHAR config_filename[256] = _T("");
static TCHAR stored_path[MAX_DPATH];
static int gui_size_changed;
#define Error(x) MessageBox (NULL, (x), _T("WinUAE Error"), MB_OK)
@ -1763,7 +1768,9 @@ int target_cfgfile_load (struct uae_prefs *p, const TCHAR *filename, int type, i
return v;
}
static int gui_width = 640, gui_height = 480;
static int gui_width, gui_height;
static bool gui_resize;
// Internal panel max size: 396, 318
static int mm = 0;
static void m (void)
@ -1812,9 +1819,6 @@ void gui_display (int shortcut)
w = currprefs.gfx_size.width;
h = currprefs.gfx_size.height;
}
scaleresource_setmaxsize (-1, -1);
if (w > 0 && h > 0)
scaleresource_setmaxsize (w, h);
manual_painting_needed++; /* So that WM_PAINT will refresh the display */
flush_log ();
@ -3346,6 +3350,10 @@ static void getqualifiername (TCHAR *p, uae_u64 mask)
_tcscpy (p, _T("Alt"));
} else if (mask == (IDEV_MAPPED_QUALIFIER_ALT << 1)) {
_tcscpy (p, _T("Alt [R]"));
} else if (mask == IDEV_MAPPED_QUALIFIER_WIN) {
_tcscpy (p, _T("Win"));
} else if (mask == (IDEV_MAPPED_QUALIFIER_WIN << 1)) {
_tcscpy (p, _T("Win [R]"));
} else {
int j;
uae_u64 i;
@ -3757,8 +3765,12 @@ void InitializeListView (HWND hDlg)
} else if (lv_type == LV_MISC1) {
int itemids[] = { IDS_MISCLISTITEMS1, IDS_MISCLISTITEMS2, IDS_MISCLISTITEMS3, -1 };
int itemoffset = 0;
int itemcnt = 0;
listview_column_width[0] = 150;
for (i = 0; misclist[i].name; i++) {
TCHAR tmpentry[MAX_DPATH], itemname[MAX_DPATH];
struct miscentry *me = &misclist[i];
int type = me->type;
bool checked = false;
@ -3768,9 +3780,36 @@ void InitializeListView (HWND hDlg)
} else if (me->i) {
checked = ((*me->i) & me->imask) != 0;
}
_tcscpy (itemname, me->name);
for (;;) {
if (itemids[itemcnt] < 0)
break;
WIN32GUI_LoadUIString (itemids[itemcnt], tmpentry, sizeof tmpentry / sizeof (TCHAR));
TCHAR *p = tmpentry;
for (int j = 0; j < itemoffset; j++) {
p = _tcschr (p, '\n');
if (!p || p[1] == 0) {
p = NULL;
itemoffset = 0;
itemcnt++;
break;
}
p++;
}
if (!p)
continue;
TCHAR *p2 = _tcschr (p, '\n');
if (p2) {
*p2 = 0;
_tcscpy (itemname, p);
}
itemoffset++;
break;
}
lvstruct.mask = LVIF_TEXT | LVIF_PARAM;
lvstruct.pszText = me->name;
lvstruct.pszText = itemname;
lvstruct.lParam = 0;
lvstruct.iItem = i;
lvstruct.iSubItem = 0;
@ -4578,6 +4617,9 @@ static void SetupRichText(HWND hDlg, urlinfo *url)
{
CHARFORMAT CharFormat;
CharFormat.cbSize = sizeof (CharFormat);
int my;
scaleresource_getmult (NULL, &my);
SetDlgItemText (hDlg, url->id, url->display);
SendDlgItemMessage (hDlg, url->id, EM_GETCHARFORMAT, 0, (LPARAM)&CharFormat);
@ -7737,7 +7779,16 @@ static void misc_lang (HWND hDlg)
}
}
SendDlgItemMessage (hDlg, IDC_LANGUAGE, CB_SETCURSEL, idx, 0);
SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_RESETCONTENT, 0, 0);
SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_ADDSTRING, 0, (LPARAM)_T("Select"));
SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_ADDSTRING, 0, (LPARAM)_T("110%"));
SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_ADDSTRING, 0, (LPARAM)_T("100%"));
SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_ADDSTRING, 0, (LPARAM)_T(" 90%"));
SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_ADDSTRING, 0, (LPARAM)_T(" 80%"));
SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_SETCURSEL, 0, 0);
}
static void misc_setlang (int v)
{
int i;
@ -7767,6 +7818,12 @@ static void misc_setlang (int v)
exit_gui(0);
}
static void misc_gui_font (HWND hDlg, int fonttype)
{
if (scaleresource_choosefont (hDlg, fonttype))
gui_size_changed = 1;
}
static void values_to_miscdlg (HWND hDlg)
{
TCHAR tmp[MAX_DPATH];
@ -7777,6 +7834,7 @@ static void values_to_miscdlg (HWND hDlg)
misc_kbled (hDlg, IDC_KBLED2, workprefs.keyboard_leds[1]);
misc_kbled (hDlg, IDC_KBLED3, workprefs.keyboard_leds[2]);
CheckDlgButton (hDlg, IDC_KBLED_USB, workprefs.win32_kbledmode);
CheckDlgButton (hDlg, IDC_GUI_RESIZE, gui_resize);
misc_scsi (hDlg);
misc_lang (hDlg);
@ -7936,7 +7994,7 @@ static INT_PTR MiscDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
if (HIWORD (wParam) == CBN_SELENDOK) {
v = SendDlgItemMessage (hDlg, IDC_LANGUAGE, CB_GETCURSEL, 0, 0L);
if (v != CB_ERR)
misc_setlang(v);
misc_setlang (v);
}
break;
case IDC_DXMODE:
@ -7979,6 +8037,32 @@ static INT_PTR MiscDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
switch(wParam)
{
case IDC_GUI_DEFAULT:
scaleresource_setdefaults ();
v = SendDlgItemMessage (hDlg, IDC_GUI_SIZE, CB_GETCURSEL, 0, 0L);
if (v != CB_ERR) {
if (v == 0) {
v = GUI_SCALE_DEFAULT;
} else {
v--;
v = 110 - v * 10;
}
gui_width = GUI_INTERNAL_WIDTH * v / 100;
gui_height = GUI_INTERNAL_HEIGHT * v / 100;
scaleresource_setmult (guiDlg, gui_width, gui_height);
gui_size_changed = 1;
}
break;
case IDC_GUI_FONT:
misc_gui_font (hDlg, 0);
break;
case IDC_GUI_LISTFONT:
misc_gui_font (hDlg, 1);
break;
case IDC_GUI_RESIZE:
gui_resize = ischecked (hDlg, IDC_GUI_RESIZE);
gui_size_changed = 2;
break;
case IDC_ASSOCIATE_ON:
for (i = 0; exts[i].ext; i++)
exts[i].enabled = 1;
@ -9727,16 +9811,21 @@ static void harddiskdlg_volume_notify (HWND hDlg, NM_LISTVIEW *nmlistview)
}
}
static void hilitehd (void)
static void hilitehd (HWND hDlg)
{
int total = ListView_GetItemCount (cachedlist);
if (total <= 0)
if (total <= 0) {
ew (hDlg, IDC_EDIT, FALSE);
ew (hDlg, IDC_REMOVE, FALSE);
return;
}
if (clicked_entry < 0)
clicked_entry = 0;
if (clicked_entry >= total)
clicked_entry = total;
ListView_SetItemState (cachedlist, clicked_entry, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
ew (hDlg, IDC_EDIT, TRUE);
ew (hDlg, IDC_REMOVE, TRUE);
}
static INT_PTR CALLBACK HarddiskDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
@ -9760,7 +9849,7 @@ static INT_PTR CALLBACK HarddiskDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPA
addfloppyhistory_2 (hDlg, 0, IDC_CD_TEXT, HISTORY_CD);
addcdtype (hDlg, IDC_CD_TYPE);
InitializeListView (hDlg);
hilitehd ();
hilitehd (hDlg);
break;
case WM_MOUSEMOVE:
@ -9774,7 +9863,7 @@ static INT_PTR CALLBACK HarddiskDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPA
move_filesys_unitconfig (&workprefs, draggeditems[0], item);
InitializeListView (hDlg);
clicked_entry = item;
hilitehd ();
hilitehd (hDlg);
}
xfree (draggeditems);
break;
@ -9824,16 +9913,16 @@ static INT_PTR CALLBACK HarddiskDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPA
{
case 10001:
clicked_entry--;
hilitehd ();
hilitehd (hDlg);
break;
case 10002:
clicked_entry++;
hilitehd ();
hilitehd (hDlg);
break;
default:
if (harddiskdlg_button (hDlg, wParam)) {
InitializeListView (hDlg);
hilitehd ();
hilitehd (hDlg);
}
break;
}
@ -11696,6 +11785,7 @@ static void init_inputdlg_2 (HWND hDlg)
WIN32GUI_LoadUIString (IDS_INPUT_CUSTOMEVENT, tmp1, MAX_DPATH);
SendDlgItemMessage (hDlg, IDC_INPUTAMIGA, CB_ADDSTRING, 0, (LPARAM)tmp1);
index = 0; af = 0; port = 0;
input_selected_event = -1;
if (input_selected_widget >= 0) {
inputdevice_get_mapping (input_selected_device, input_selected_widget, NULL, &port, name1, custom1, input_selected_sub_num);
cnt = 2;
@ -11714,6 +11804,7 @@ static void init_inputdlg_2 (HWND hDlg)
if (index >= 0) {
SendDlgItemMessage (hDlg, IDC_INPUTAMIGA, CB_SETCURSEL, index, 0);
SendDlgItemMessage (hDlg, IDC_INPUTAMIGACNT, CB_SETCURSEL, input_selected_sub_num, 0);
input_selected_event = index;
}
}
if (input_selected_widget < 0 || workprefs.input_selected_setting == GAMEPORT_INPUT_SETTINGS || port > 0) {
@ -11811,6 +11902,7 @@ static void doinputcustom (HWND hDlg, int newcustom)
&flags, NULL, NULL, custom1, input_selected_sub_num);
if (_tcslen (custom1) > 0 || newcustom) {
if (askinputcustom (hDlg, custom1, sizeof custom1 / sizeof (TCHAR), IDS_SB_CUSTOMEVENT)) {
if (custom1[0])
inputdevice_set_mapping (input_selected_device, input_selected_widget,
NULL, custom1, flags, -1, input_selected_sub_num);
}
@ -11842,6 +11934,7 @@ static void values_from_inputdlg (HWND hDlg, int inputchange)
{
int doselect = 0;
LRESULT item;
bool iscustom = false;
item = SendDlgItemMessage (hDlg, IDC_INPUTAMIGACNT, CB_GETCURSEL, 0, 0L);
if (item != CB_ERR && input_selected_sub_num != item) {
@ -11853,7 +11946,7 @@ static void values_from_inputdlg (HWND hDlg, int inputchange)
}
item = SendDlgItemMessage (hDlg, IDC_INPUTTYPE, CB_GETCURSEL, 0, 0L);
if(item != CB_ERR) {
if (item != CB_ERR) {
if (item != workprefs.input_selected_setting) {
workprefs.input_selected_setting = (int)item;
input_selected_widget = -1;
@ -11864,7 +11957,7 @@ static void values_from_inputdlg (HWND hDlg, int inputchange)
}
}
item = SendDlgItemMessage (hDlg, IDC_INPUTDEVICE, CB_GETCURSEL, 0, 0L);
if(item != CB_ERR) {
if (item != CB_ERR) {
if (item != input_selected_device) {
input_selected_device = (int)item;
input_selected_widget = -1;
@ -11876,22 +11969,26 @@ static void values_from_inputdlg (HWND hDlg, int inputchange)
}
}
item = SendDlgItemMessage (hDlg, IDC_INPUTAMIGA, CB_GETCURSEL, 0, 0L);
if(item != CB_ERR) {
if (item != CB_ERR) {
if (item != input_selected_event) {
uae_u64 flags;
TCHAR custom[MAX_DPATH];
input_selected_event = (int)item;
doselect = 1;
if (item == 1) {
inputdevice_get_mapping (input_selected_device, input_selected_widget,
&flags, NULL, 0, custom, input_selected_sub_num);
if (item == 1 && custom[0] == 0) {
doinputcustom (hDlg, 1);
iscustom = true;
}
}
}
if (inputchange && doselect && input_selected_device >= 0 && input_selected_event >= 0) {
uae_u64 flags;
bool iscustom = false;
TCHAR custom[MAX_DPATH];
if (eventnames[input_selected_event] && !_tcscmp (inputdevice_get_eventinfo (INPUTEVENT_SPC_CUSTOM_EVENT)->name, eventnames[input_selected_event])) {
if (!iscustom && eventnames[input_selected_event] && !_tcscmp (inputdevice_get_eventinfo (INPUTEVENT_SPC_CUSTOM_EVENT)->name, eventnames[input_selected_event])) {
doinputcustom (hDlg, 1);
iscustom = true;
}
@ -12414,15 +12511,155 @@ static int genericpopupmenu (HWND hwnd, TCHAR **items, int *flags, int num)
return item - 1;
}
static void qualifierlistview (HWND list)
{
uae_u64 flags;
int evt;
TCHAR name[256];
TCHAR custom[MAX_DPATH];
evt = inputdevice_get_mapping (input_selected_device, input_selected_widget,
&flags, NULL, name, custom, input_selected_sub_num);
ListView_DeleteAllItems (list);
for (int i = 0; i < MAX_INPUT_QUALIFIERS; i++) {
TCHAR tmp[MAX_DPATH];
getqualifiername (tmp, IDEV_MAPPED_QUALIFIER1 << (i * 2));
LV_ITEM lvi = { 0 };
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.pszText = tmp;
lvi.lParam = 0;
lvi.iItem = i;
lvi.iSubItem = 0;
ListView_InsertItem (list, &lvi);
_tcscpy (tmp, _T("-"));
if (flags & (IDEV_MAPPED_QUALIFIER1 << (i * 2)))
_tcscpy (tmp, _T("*"));
else if (flags & (IDEV_MAPPED_QUALIFIER1 << (i * 2 + 1)))
_tcscpy (tmp, _T("R"));
ListView_SetItemText (list, i, 1, tmp);
}
}
static INT_PTR CALLBACK QualifierProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
static int recursive = 0;
HWND list = GetDlgItem (hDlg, IDC_LISTDIALOG_LIST);
switch (msg)
{
case WM_INITDIALOG:
{
recursive++;
int lvflags = LVS_EX_DOUBLEBUFFER | LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT | LVS_EX_FULLROWSELECT;
ListView_SetExtendedListViewStyleEx (list, lvflags , lvflags);
LV_COLUMN lvc = { 0 };
lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
lvc.iSubItem = 0;
lvc.fmt = LVCFMT_LEFT;
lvc.pszText = _T("Qualifier");
lvc.cx = 150;
ListView_InsertColumn (list, 0, &lvc);
lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
lvc.iSubItem = 1;
lvc.fmt = LVCFMT_LEFT;
lvc.pszText = _T("Selection");
lvc.cx = 150;
ListView_InsertColumn (list, 1, &lvc);
qualifierlistview (list);
recursive--;
}
return TRUE;
case WM_NOTIFY:
if (((LPNMHDR) lParam)->idFrom == IDC_LISTDIALOG_LIST)
{
uae_u64 flags;
int evt;
TCHAR name[256];
TCHAR custom[MAX_DPATH];
int column, entry;
NM_LISTVIEW *nmlistview = (NM_LISTVIEW *) lParam;
list = nmlistview->hdr.hwndFrom;
switch (nmlistview->hdr.code)
{
case NM_RCLICK:
case NM_CLICK:
entry = listview_entry_from_click (list, &column);
if (entry >= 0) {
uae_u64 mask = IDEV_MAPPED_QUALIFIER1 << (entry * 2);
evt = inputdevice_get_mapping (input_selected_device, input_selected_widget,
&flags, NULL, name, custom, input_selected_sub_num);
if (evt <= 0)
name[0] = 0;
if (flags & mask) {
flags &= ~(mask | (mask << 1));
flags |= mask << 1;
} else if (flags & (mask << 1)) {
flags &= ~(mask | (mask << 1));
} else {
flags &= ~(mask | (mask << 1));
flags |= mask;
}
inputdevice_set_mapping (input_selected_device, input_selected_widget,
name, custom, flags, -1, input_selected_sub_num);
qualifierlistview (list);
}
}
}
break;
case WM_COMMAND:
if (recursive)
break;
recursive++;
switch(wParam)
{
case IDC_LISTDIALOG_CLEAR:
{
uae_u64 flags;
int evt;
TCHAR name[256];
TCHAR custom[MAX_DPATH];
evt = inputdevice_get_mapping (input_selected_device, input_selected_widget,
&flags, NULL, name, custom, input_selected_sub_num);
flags &= ~IDEV_MAPPED_QUALIFIER_MASK;
inputdevice_set_mapping (input_selected_device, input_selected_widget,
name, custom, flags, -1, input_selected_sub_num);
qualifierlistview (list);
break;
}
case IDOK:
EndDialog (hDlg, 1);
break;
case IDCANCEL:
EndDialog (hDlg, 0);
break;
}
recursive--;
break;
}
return FALSE;
}
static void input_qualifiers (HWND hDlg)
{
uae_u64 flags;
int evt, item;
int evt;
TCHAR name[256];
TCHAR custom[MAX_DPATH];
TCHAR *names[MAX_INPUT_QUALIFIERS * 2];
int mflags[MAX_INPUT_QUALIFIERS * 2];
TCHAR tmp[MAX_DPATH];
if (input_selected_device < 0 || input_selected_widget < 0)
return;
@ -12431,23 +12668,15 @@ static void input_qualifiers (HWND hDlg)
if (evt <= 0)
name[0] = 0;
for (int i = 0; i < MAX_INPUT_QUALIFIERS * 2; i++) {
getqualifiername (tmp, IDEV_MAPPED_QUALIFIER1 << i);
mflags[i] = 0;
if (flags & (IDEV_MAPPED_QUALIFIER1 << i))
mflags[i] = 1;
names[i] = my_strdup (tmp);
}
item = genericpopupmenu (hDlg, names, mflags, MAX_INPUT_QUALIFIERS * 2);
CustomDialogBox (IDD_LIST, hDlg, QualifierProc);
#if 0
int item = genericpopupmenu (hDlg, names, mflags, MAX_INPUT_QUALIFIERS * 2);
if (item >= 0)
flags ^= IDEV_MAPPED_QUALIFIER1 << item;
inputdevice_set_mapping (input_selected_device, input_selected_widget,
name, custom, flags, -1, input_selected_sub_num);
for (int i = 0; i < MAX_INPUT_QUALIFIERS * 2; i++) {
xfree (names[i]);
}
#endif
}
static void input_toggletoggle (void)
{
@ -12663,6 +12892,7 @@ static void enable_for_hw3ddlg (HWND hDlg)
ew (hDlg, IDC_FILTERKEEPASPECT, v);
ew (hDlg, IDC_FILTERASPECT, v);
ew (hDlg, IDC_FILTERASPECT2, v && workprefs.gfx_filter_keep_aspect);
ew (hDlg, IDC_FILTERKEEPAUTOSCALEASPECT, (workprefs.gfx_filter_autoscale == AUTOSCALE_NORMAL || workprefs.gfx_filter_autoscale == AUTOSCALE_INTEGER_AUTOSCALE));
ew (hDlg, IDC_FILTEROVERLAY, workprefs.gfx_api);
ew (hDlg, IDC_FILTEROVERLAYTYPE, workprefs.gfx_api);
@ -12805,6 +13035,7 @@ static void values_to_hw3ddlg (HWND hDlg)
(workprefs.gfx_filter_aspect == 16 * 256 + 10) ? 6 : 0, 0);
CheckDlgButton (hDlg, IDC_FILTERKEEPASPECT, workprefs.gfx_filter_keep_aspect);
CheckDlgButton (hDlg, IDC_FILTERKEEPAUTOSCALEASPECT, workprefs.gfx_filter_keep_autoscale_aspect != 0);
SendDlgItemMessage (hDlg, IDC_FILTERASPECT2, CB_SETCURSEL,
workprefs.gfx_filter_keep_aspect, 0);
@ -13293,6 +13524,14 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
updatedisplayarea ();
WIN32GFX_WindowMove ();
}
case IDC_FILTERKEEPAUTOSCALEASPECT:
{
workprefs.gfx_filter_keep_autoscale_aspect = currprefs.gfx_filter_keep_autoscale_aspect = ischecked (hDlg, IDC_FILTERKEEPAUTOSCALEASPECT) ? 10 : 0;
enable_for_hw3ddlg (hDlg);
values_to_hw3ddlg (hDlg);
updatedisplayarea ();
WIN32GFX_WindowMove ();
}
break;
default:
if (HIWORD (wParam) == CBN_SELCHANGE || HIWORD (wParam) == CBN_KILLFOCUS) {
@ -13981,20 +14220,30 @@ static BOOL CALLBACK childenumproc (HWND hwnd, LPARAM lParam)
return 1;
}
#define PANEL_X 174
#define PANEL_Y 12
#define PANEL_WIDTH 456
#define PANEL_HEIGHT 396
static void getguisize (HWND hDlg, int *width, int *height)
{
RECT r;
GetClientRect (hDlg, &r);
*width = r.right;
*height = r.bottom;
}
static HWND updatePanel (int id)
{
HWND hDlg = guiDlg;
static HWND hwndTT;
static bool first = true;
RECT r1c, r1w, r2c, r2w, r3c, r3w;
int w, h, pw, ph, x , y, i;
int w, h, x , y, i, pw, ph;
int fullpanel;
struct newresource *tres;
if (first) {
first = false;
getguisize (hDlg, &gui_width, &gui_height);
}
if (cachedlist) {
if (lv_old_type >= 0)
lv_oldidx[lv_old_type] = ListView_GetTopIndex (cachedlist);
@ -14041,16 +14290,19 @@ static HWND updatePanel (int id)
return NULL;
}
fullpanel = ppage[id].fullpanel;
GetWindowRect (GetDlgItem (hDlg, IDC_PANEL_FRAME), &r1w);
GetClientRect (GetDlgItem (hDlg, IDC_PANEL_FRAME), &r1c);
GetWindowRect (hDlg, &r2w);
GetClientRect (hDlg, &r2c);
gui_width = r2c.right;
gui_height = r2c.bottom;
tres = scaleresource (ppage[id].nres, hDlg);
fullpanel = ppage[id].fullpanel;
tres = scaleresource (ppage[id].nres, hDlg, -1);
panelDlg = CreateDialogIndirectParam (tres->inst, tres->resource, hDlg, ppage[id].dlgproc, id);
freescaleresource(tres);
scaleresource_setfont (panelDlg);
GetWindowRect (hDlg, &r3w);
GetClientRect (panelDlg, &r3c);
x = r1w.left - r2w.left;
@ -14069,6 +14321,7 @@ static HWND updatePanel (int id)
SetWindowPos (panelDlg, HWND_TOP, x + (pw - w) / 2, y + (ph - h) / 2, 0, 0,
SWP_NOSIZE | SWP_NOOWNERZORDER);
}
ShowWindow (GetDlgItem (hDlg, IDC_PANEL_FRAME), SW_HIDE);
ShowWindow (GetDlgItem (hDlg, IDC_PANEL_FRAME_OUTER), !fullpanel ? SW_SHOW : SW_HIDE);
ShowWindow (GetDlgItem (hDlg, IDC_PANELTREE), !fullpanel ? SW_SHOW : SW_HIDE);
@ -14216,7 +14469,7 @@ static bool dodialogmousemove (void)
{
if (full_property_sheet || isfullscreen () <= 0)
return false;
if (currprefs.gfx_size_fs.width >= 640 && currprefs.gfx_size.height >= 480)
if (currprefs.gfx_size_fs.width >= gui_width && currprefs.gfx_size.height >= gui_height)
return false;
struct MultiDisplay *mdc = getdisplay (&currprefs);
for (int i = 0; Displays[i].monitorid; i++) {
@ -14253,7 +14506,7 @@ static void centerWindow (HWND hDlg)
SetForegroundWindow (hDlg);
pt1.x = x + 100;
pt1.y = y + (GetSystemMetrics (SM_CYMENU) + GetSystemMetrics (SM_CYBORDER)) / 2;
pt2.x = x + 640 - 100;
pt2.x = x + gui_width - 100;
pt2.y = pt1.y;
if (MonitorFromPoint (pt1, MONITOR_DEFAULTTONULL) == NULL && MonitorFromPoint (pt2, MONITOR_DEFAULTTONULL) == NULL) {
if (isfullscreen () > 0) {
@ -14521,9 +14774,40 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
{
static int recursive = 0;
static int waitfornext;
static int oldwidth, oldheight;
switch (msg)
{
case WM_SIZING:
{
if (!recursive) {
RECT *r = (RECT*)lParam;
if (r->right - r->left < MIN_GUI_INTERNAL_WIDTH)
r->right = r->left + MIN_GUI_INTERNAL_WIDTH;
if (r->bottom - r->top < MIN_GUI_INTERNAL_HEIGHT)
r->bottom = r->top + MIN_GUI_INTERNAL_HEIGHT;
return FALSE;
}
break;
}
case WM_ENTERSIZEMOVE:
if (!recursive) {
getguisize (hDlg, &oldwidth, &oldheight);
return FALSE;
}
break;
case WM_EXITSIZEMOVE:
if (!recursive) {
int w, h;
getguisize (hDlg, &w, &h);
if (w != oldwidth || h != oldheight) {
gui_width = w;
gui_height = h;
gui_size_changed = 1;
}
return FALSE;
}
break;
case WM_DEVICECHANGE:
{
DEV_BROADCAST_HDR *pBHdr = (DEV_BROADCAST_HDR *)lParam;
@ -14564,6 +14848,7 @@ static INT_PTR CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
case WM_INITDIALOG:
waitfornext = 0;
guiDlg = hDlg;
scaleresource_setfont (hDlg);
SendMessage (hDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE(IDI_APPICON)));
if (full_property_sheet) {
TCHAR tmp[100];
@ -14701,7 +14986,7 @@ INT_PTR CustomDialogBox (int templ, HWND hDlg, DLGPROC proc)
res = getresource (templ);
if (!res)
return h;
r = scaleresource (res, hDlg);
r = scaleresource (res, hDlg, -1);
if (r) {
h = DialogBoxIndirect (r->inst, r->resource, hDlg, proc);
freescaleresource (r);
@ -14720,7 +15005,7 @@ HWND CustomCreateDialog (int templ, HWND hDlg, DLGPROC proc)
res = getresource (templ);
if (!res)
return h;
r = scaleresource (res, hDlg);
r = scaleresource (res, hDlg, -1);
if (r) {
h = CreateDialogIndirect (r->inst, r->resource, hDlg, proc);
freescaleresource (r);
@ -14902,6 +15187,31 @@ static int GetSettings (int all_options, HWND hwnd)
currentpage = LOADSAVE_ID;
}
int fmultx = 0, fmulty = 0;
for (;;) {
int v = 0;
gui_width = GUI_INTERNAL_WIDTH * 90 / 100;
gui_height = GUI_INTERNAL_HEIGHT * 90 / 100;
regqueryint (NULL, _T("GUIResize"), &v);
gui_resize = v != 0;
if (full_property_sheet || isfullscreen () == 0) {
regqueryint (NULL, _T("GUISizeX"), &gui_width);
regqueryint (NULL, _T("GUISizeY"), &gui_height);
scaleresource_init (_T(""));
} else if (isfullscreen () < 0) {
regqueryint (NULL, _T("GUISizeFWX"), &gui_width);
regqueryint (NULL, _T("GUISizeFWY"), &gui_height);
scaleresource_init (_T("FW"));
} else if (isfullscreen () > 0) {
regqueryint (NULL, _T("GUISizeFSX"), &gui_width);
regqueryint (NULL, _T("GUISizeFSY"), &gui_height);
scaleresource_init (_T("FS"));
}
if (gui_width < MIN_GUI_INTERNAL_WIDTH)
gui_width = MIN_GUI_INTERNAL_WIDTH;
if (gui_height < MIN_GUI_INTERNAL_HEIGHT)
gui_height = MIN_GUI_INTERNAL_HEIGHT;
if (all_options || !configstore)
CreateConfigStore (NULL, FALSE);
@ -14911,8 +15221,11 @@ static int GetSettings (int all_options, HWND hwnd)
if (first)
write_log (_T("Entering GUI idle loop\n"));
scaleresource_setmaxsize (800, 600);
tres = scaleresource (panelresource, hwnd);
if (fmultx > 0)
scaleresource_setmult (hwnd, -fmultx, -fmulty);
else
scaleresource_setmult (hwnd, gui_width, gui_height);
tres = scaleresource (panelresource, hwnd, gui_resize);
dhwnd = CreateDialogIndirect (tres->inst, tres->resource, hwnd, DialogProc);
dialog_rect.top = dialog_rect.left = 0;
dialog_rect.right = tres->width;
@ -14968,9 +15281,34 @@ static int GetSettings (int all_options, HWND hwnd)
}
if (dialogreturn >= 0)
break;
if (gui_size_changed > 0 && gui_size_changed < 10) {
if (gui_size_changed == 2) {
scaleresource_getmult (&fmultx, &fmulty);
} else {
fmultx = fmulty = 0;
}
gui_size_changed = 10;
SendMessage (dhwnd, WM_COMMAND, IDCANCEL, 0);
}
}
psresult = dialogreturn;
}
if (!gui_size_changed)
break;
if (full_property_sheet || isfullscreen () == 0) {
regsetint (NULL, _T("GUISizeX"), gui_width);
regsetint (NULL, _T("GUISizeY"), gui_height);
} else if (isfullscreen () < 0) {
regsetint (NULL, _T("GUISizeFWX"), gui_width);
regsetint (NULL, _T("GUISizeFWY"), gui_height);
} else if (isfullscreen () > 0) {
regsetint (NULL, _T("GUISizeFSX"), gui_width);
regsetint (NULL, _T("GUISizeFSY"), gui_height);
}
regsetint (NULL, _T("GUIResize"), gui_resize ? 1 : 0);
gui_size_changed = 0;
quit_program = 0;
}
hGUIWnd = NULL;
if (quit_program)

View File

@ -27,12 +27,21 @@ struct newresource
int width, height;
};
extern struct newresource *scaleresource(struct newresource *res, HWND);
extern void freescaleresource(struct newresource*);
extern void scaleresource_setmaxsize(int w, int h);
#define GUI_INTERNAL_WIDTH 800
#define GUI_INTERNAL_HEIGHT 600
#define GUI_INTERNAL_FONT 8
extern struct newresource *scaleresource (struct newresource *res, HWND, int);
extern void freescaleresource (struct newresource*);
extern void scaleresource_setmult (HWND hDlg, int w, int h);
extern void scaleresource_getmult (int *mx, int *my);
extern HWND CustomCreateDialog (int templ, HWND hDlg, DLGPROC proc);
extern INT_PTR CustomDialogBox (int templ, HWND hDlg, DLGPROC proc);
extern struct newresource *getresource(int tmpl);
extern struct newresource *resourcefont(struct newresource*, TCHAR *font, int size);
extern struct newresource *getresource (int tmpl);
extern struct newresource *resourcefont (struct newresource*, TCHAR *font, int size);
extern void scaleresource_init (const TCHAR*);
extern int scaleresource_choosefont (HWND hDlg, int fonttype);
extern void scaleresource_setdefaults (void);
extern void scaleresource_setfont (HWND hDlg);
#endif

View File

@ -25,7 +25,23 @@
#include "win32.h"
#include "win32gui.h"
static int max_w = 800, max_h = 600, mult = 100, pointsize;
#define MAX_GUI_FONTS 2
#define DEFAULT_FONTSIZE 8
static double multx, multy;
static TCHAR fontname_gui[32], fontname_list[32];
static int fontsize_gui = DEFAULT_FONTSIZE;
static int fontsize_list = DEFAULT_FONTSIZE;
static int fontstyle_gui = 0;
static int fontstyle_list = 0;
static int fontweight_gui = FW_REGULAR;
static int fontweight_list = FW_REGULAR;
static int listviews[16];
static int listviewcnt;
static HFONT listviewfont;
static const TCHAR *fontprefix;
#include <pshpack2.h>
typedef struct {
@ -78,6 +94,22 @@ static wchar_t wfont_old[] = _T("MS Sans Serif");
static TCHAR font_vista[] = _T("Segoe UI");
static TCHAR font_xp[] = _T("Tahoma");
static int align (double f)
{
int v = (int)(f + 0.5);
return v;
}
static int mmx (int v)
{
return align ((v * multx) / 100.0 + 0.5);
}
static int mmy (int v)
{
return align ((v * multy) / 100.0 + 0.5);
}
static BYTE *skiptextone (BYTE *s)
{
s -= sizeof (WCHAR);
@ -110,31 +142,49 @@ static BYTE *todword (BYTE *p)
return p;
}
static void modifytemplate (DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2, int id, int mult)
static void modifytemplate (DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2, int id)
{
d->cx = d->cx * mult / 100;
d->cy = d->cy * mult / 100;
d->cx = mmx (d->cx);
d->cy = mmy (d->cy);
}
static void modifytemplatefont (DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2)
{
wchar_t *p = NULL;
if (font_vista_ok)
p = wfont_vista;
else
p = wfont_xp;
if (p && !wcscmp (d2->typeface, wfont_old))
wcscpy (d2->typeface, p);
if (!wcscmp (d2->typeface, wfont_old)) {
wcscpy (d2->typeface, fontname_gui);
d2->pointsize = fontsize_gui;
d2->italic = (fontstyle_gui & ITALIC_FONTTYPE) != 0;
d2->weight = fontweight_gui;
}
}
static void modifyitem (DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2, DLGITEMTEMPLATEEX *dt, int id, int mult)
static void modifyitem (DLGTEMPLATEEX *d, DLGTEMPLATEEX_END *d2, DLGITEMTEMPLATEEX *dt, int id)
{
dt->cy = dt->cy * mult / 100;
dt->cx = dt->cx * mult / 100;
dt->y = dt->y * mult / 100;
dt->x = dt->x * mult / 100;
bool noyscale = false;
if (dt->windowClass[0] != 0xffff && (!_tcsicmp (dt->windowClass, WC_LISTVIEWW) || !_tcsicmp (dt->windowClass, WC_TREEVIEWW)))
listviews[listviewcnt++] = dt->id;
if (multy >= 89 && multy <= 111) {
int wc = 0;
if (dt->windowClass[0] == 0xffff)
wc = dt->windowClass[1];
if (wc == 0x0080 && dt->cy <= 20) // button
noyscale = true;
if (wc == 0x0085) // checkbox
noyscale = true;
if (wc == 0x0081 && dt->cy <= 20) // edit box
noyscale = true;
}
if (!noyscale)
dt->cy = mmy (dt->cy);
dt->cx = mmx (dt->cx);
dt->y = mmy (dt->y);
dt->x = mmx (dt->x);
}
static INT_PTR CALLBACK DummyProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
@ -153,7 +203,7 @@ static INT_PTR CALLBACK DummyProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lP
return FALSE;
}
struct newresource *scaleresource (struct newresource *res, HWND parent)
struct newresource *scaleresource (struct newresource *res, HWND parent, int resize)
{
DLGTEMPLATEEX *d;
DLGTEMPLATEEX_END *d2;
@ -162,6 +212,8 @@ struct newresource *scaleresource (struct newresource *res, HWND parent)
int i;
struct newresource *ns;
listviewcnt = 0;
d = (DLGTEMPLATEEX*)res->resource;
d2 = (DLGTEMPLATEEX_END*)res->resource;
@ -174,10 +226,19 @@ struct newresource *scaleresource (struct newresource *res, HWND parent)
ns->inst = res->inst;
ns->size = res->size;
ns->tmpl = res->tmpl;
ns->resource = (LPCDLGTEMPLATEW)xmalloc (uae_u8, ns->size);
ns->resource = (LPCDLGTEMPLATEW)xmalloc (uae_u8, ns->size + 32);
memcpy ((void*)ns->resource, res->resource, ns->size);
d = (DLGTEMPLATEEX*)ns->resource;
if (resize > 0) {
d->style &= ~DS_MODALFRAME;
d->style |= WS_THICKFRAME;
} else if (resize == 0) {
d->style |= DS_MODALFRAME;
d->style &= ~WS_THICKFRAME;
}
d2 = (DLGTEMPLATEEX_END*)ns->resource;
p = (BYTE*)d + sizeof (DLGTEMPLATEEX);
p = skiptext (p);
@ -198,11 +259,11 @@ struct newresource *scaleresource (struct newresource *res, HWND parent)
if (p != p2)
memmove (p, p2, ns->size - (p2 - (BYTE*)ns->resource));
modifytemplate(d, d2, ns->tmpl, mult);
modifytemplate(d, d2, ns->tmpl);
for (i = 0; i < d->cDlgItems; i++) {
dt = (DLGITEMTEMPLATEEX*)p;
modifyitem (d, d2, dt, ns->tmpl, mult);
modifyitem (d, d2, dt, ns->tmpl);
p += sizeof (DLGITEMTEMPLATEEX);
p = skiptextone (p);
p = skiptext (p);
@ -222,11 +283,241 @@ void freescaleresource (struct newresource *ns)
xfree (ns);
}
void scaleresource_setmaxsize (int w, int h)
static void openfont (bool force)
{
HDC hdc;
int size;
if (listviewfont && !force)
return;
if (listviewfont)
DeleteObject (listviewfont);
hdc = GetDC (NULL);
size = -MulDiv (fontsize_list, GetDeviceCaps (hdc, LOGPIXELSY), 72);
listviewfont = CreateFont (size, 0, 0, 0, fontweight_list, (fontstyle_list & ITALIC_FONTTYPE) != 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, fontname_list);
ReleaseDC (NULL, hdc);
}
void scaleresource_setfont (HWND hDlg)
{
if (!listviewcnt || (!_tcscmp (fontname_gui, fontname_list) && fontsize_gui == fontsize_list && fontstyle_gui == fontstyle_list && fontweight_gui == fontweight_list))
return;
openfont (false);
if (!listviewfont)
return;
for (int i = 0; i < listviewcnt; i++) {
SendMessage (GetDlgItem (hDlg, listviews[i]), WM_SETFONT, WPARAM(listviewfont), FALSE);
}
}
static void setdeffont (void)
{
_tcscpy (fontname_gui, font_vista_ok ? wfont_vista : wfont_xp);
fontsize_gui = DEFAULT_FONTSIZE;
fontstyle_gui = 0;
fontweight_gui = FW_REGULAR;
_tcscpy (fontname_list, font_vista_ok ? wfont_vista : wfont_xp);
fontsize_list = DEFAULT_FONTSIZE;
fontstyle_list = 0;
fontweight_list = FW_REGULAR;
}
static TCHAR *fontreg[2] = { _T("GUIFont"), _T("GUIListFont") };
static void regsetfont (UAEREG *reg, const TCHAR *prefix, const TCHAR *name, const TCHAR *fontname, int fontsize, int fontstyle, int fontweight)
{
TCHAR tmp[256], tmp2[256];
_stprintf (tmp, _T("%s:%d:%d:%d"), fontname, fontsize, fontstyle, fontweight);
_stprintf (tmp2, _T("%s%s"), name, prefix);
regsetstr (reg, tmp2, tmp);
}
static void regqueryfont (UAEREG *reg, const TCHAR *prefix, const TCHAR *name, TCHAR *fontname, int *pfontsize, int *pfontstyle, int *pfontweight)
{
TCHAR tmp2[256], tmp[256], *p1, *p2, *p3, *p4;
int size;
int fontsize, fontstyle, fontweight;
_tcscpy (tmp2, name);
_tcscat (tmp2, prefix);
size = sizeof tmp / sizeof (TCHAR);
if (!regquerystr (reg, tmp2, tmp, &size))
return;
p1 = _tcschr (tmp, ':');
if (!p1)
return;
*p1++ = 0;
p2 = _tcschr (p1, ':');
if (!p2)
return;
*p2++ = 0;
p3 = _tcschr (p2, ':');
if (!p3)
return;
*p3++ = 0;
p4 = _tcschr (p3, ':');
if (p4)
*p4 = 0;
_tcscpy (fontname, tmp);
fontsize = _tstoi (p1);
fontstyle = _tstoi (p2);
fontweight = _tstoi (p3);
if (fontsize == 0)
fontsize = 8;
if (fontsize < 5)
fontsize = 5;
if (fontsize > 20)
fontsize = 20;
*pfontsize = fontsize;
*pfontstyle = fontstyle;
*pfontweight = fontweight;
}
void scaleresource_setdefaults (void)
{
setdeffont ();
for (int i = 0; i < MAX_GUI_FONTS; i++) {
TCHAR tmp[256];
_stprintf (tmp, _T("%s%s"), fontreg[i], fontprefix);
regdelete (NULL, tmp);
}
openfont (true);
}
static int lpx, lpy;
void scaleresource_init (const TCHAR *prefix)
{
if (os_vista)
font_vista_ok = 1;
max_w = w;
max_h = h;
mult = 100;
fontprefix = prefix;
HDC hdc = GetDC (NULL);
lpx = GetDeviceCaps (hdc, LOGPIXELSX);
lpy = GetDeviceCaps (hdc, LOGPIXELSY);
ReleaseDC (NULL, hdc);
setdeffont ();
regqueryfont (NULL, fontprefix, fontreg[0], fontname_gui, &fontsize_gui, &fontstyle_gui, &fontweight_gui);
regqueryfont (NULL, fontprefix, fontreg[1], fontname_list, &fontsize_list, &fontstyle_list, &fontweight_list);
openfont (true);
}
static void sizefont (HWND hDlg, const TCHAR *name, int size, int style, int weight, int *width, int *height)
{
/* ARGH!!! */
HDC hdc = GetDC (hDlg);
size = -MulDiv (size, lpy, 72);
HFONT font = CreateFont (size, 0, 0, 0, weight,
(style & ITALIC_FONTTYPE) != 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, name);
HFONT hFontOld = (HFONT)SelectObject (hdc, font);
TEXTMETRIC tm;
SIZE fsize;
GetTextMetrics (hdc, &tm);
GetTextExtentPoint32 (hdc, _T("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"), 52, &fsize);
*width = (fsize.cx / 26 + 1) / 2;
*height = MulDiv (tm.tmHeight, 72, lpy);
SelectObject (hdc, hFontOld);
DeleteObject (font);
ReleaseDC (hDlg, hdc);
}
void scaleresource_setmult (HWND hDlg, int w, int h)
{
int width, height, width2, height2;
if (w < 0) {
multx = -w;
multy = -h;
return;
}
sizefont (hDlg, fontname_gui, fontsize_gui, fontstyle_gui, fontweight_gui, &width, &height);
sizefont (hDlg, wfont_old, 8, REGULAR_FONTTYPE, FW_REGULAR, &width2, &height2);
h += GetSystemMetrics (SM_CYBORDER) * 2 + GetSystemMetrics (SM_CYCAPTION);
w += GetSystemMetrics (SM_CXSIZEFRAME) * 2;
multx = (w * width2) * 100.0 / (GUI_INTERNAL_WIDTH * width);
multy = (h * height2) * 100.0 / (GUI_INTERNAL_HEIGHT * height);
multx = MulDiv (multx, 96, lpx);
multy = MulDiv (multy, 96, lpy);
}
void scaleresource_getmult (int *mx, int *my)
{
if (mx)
*mx = (int)(multx + 0.5);
if (my)
*my = (int)(multy + 0.5);
}
int scaleresource_choosefont (HWND hDlg, int fonttype)
{
CHOOSEFONT cf = { 0 };
LOGFONT lf = { 0 };
HDC hdc;
TCHAR *fontname[2];
int *fontsize[2], *fontstyle[2], *fontweight[2];
int lm;
fontname[0] = fontname_gui;
fontname[1] = fontname_list;
fontsize[0] = &fontsize_gui;
fontsize[1] = &fontsize_list;
fontstyle[0] = &fontstyle_gui;
fontstyle[1] = &fontstyle_list;
fontweight[0] = &fontweight_gui;
fontweight[1] = &fontweight_list;
cf.lStructSize = sizeof cf;
cf.hwndOwner = hDlg;
cf.Flags = CF_FORCEFONTEXIST | CF_INITTOLOGFONTSTRUCT | CF_NOSCRIPTSEL | CF_SCREENFONTS;
cf.lpLogFont = &lf;
cf.nFontType = REGULAR_FONTTYPE;
cf.iPointSize = *fontsize[fonttype];
hdc = GetDC (NULL);
lm = GetDeviceCaps (hdc, LOGPIXELSY);
_tcscpy (lf.lfFaceName, fontname[fonttype]);
lf.lfHeight = -MulDiv (*fontsize[fonttype], lm, 72);
lf.lfWeight = *fontweight[fonttype];
lf.lfItalic = (*fontstyle[fonttype] & ITALIC_FONTTYPE) != 0;
if (!ChooseFont (&cf)) {
ReleaseDC (NULL, hdc);
return 0;
}
_tcscpy (fontname[fonttype], lf.lfFaceName);
*fontsize[fonttype] = lf.lfHeight;
*fontsize[fonttype] = -MulDiv (*fontsize[fonttype], 72, GetDeviceCaps (hdc, LOGPIXELSY));
*fontstyle[fonttype] = lf.lfItalic ? ITALIC_FONTTYPE : 0;
*fontweight[fonttype] = lf.lfWeight;
ReleaseDC (NULL, hdc);
regsetfont (NULL, fontprefix, fontreg[fonttype], fontname[fonttype], *fontsize[fonttype], *fontstyle[fonttype], *fontweight[fonttype]);
openfont (true);
return 1;
}

View File

@ -113,7 +113,6 @@ Global
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Release|Win32.ActiveCfg = Release|Win32
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Release|x64.ActiveCfg = Release|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Win32.ActiveCfg = Debug|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Win32.Build.0 = Debug|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|x64.ActiveCfg = Debug|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.FullRelease|Win32.ActiveCfg = Release|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.FullRelease|x64.ActiveCfg = Release|Win32

View File

@ -0,0 +1 @@
<Configurations active="Default"><Configuration name="Default"><GuestCommandRemote val="project command through a shared folder"></GuestCommandRemote><ShareFoldersRemote val=""></ShareFoldersRemote><RemoteDebugMonitor val="C:\msvs\Common7\IDE\Remote Debugger\x86\msvsmon.exe"></RemoteDebugMonitor><MonitorName val="VMDebug"></MonitorName><RemoteVM val=""></RemoteVM><StartMode val="No"></StartMode><TerminationModeRemote val="No operation"></TerminationModeRemote><CopyFilesRemote val=""></CopyFilesRemote><PreRemoteCommandLine val=""></PreRemoteCommandLine><PostRemoteCommandLine val=""></PostRemoteCommandLine><RecordingToReplay val=""></RecordingToReplay><ReplayVM val=""></ReplayVM><BaseSnapshotForRecording val=""></BaseSnapshotForRecording><CopyFilesRecord val=""></CopyFilesRecord><PreRecordCommandLine val=""></PreRecordCommandLine><PostRecordCommandLine val=""></PostRecordCommandLine><TerminationModeRecord val="No operation"></TerminationModeRecord><InstanceToDebug val=""></InstanceToDebug><GuestCommandReplay val="project command through a shared folder"></GuestCommandReplay><ShareFoldersRecord val=""></ShareFoldersRecord><RemoteReplayFlag val=""></RemoteReplayFlag><RemoteMachine val=""></RemoteMachine><RemoteReplayVM val=""></RemoteReplayVM><RemoteRecordingToReplay val=""></RemoteRecordingToReplay><RemoteReplayPasscode val=""></RemoteReplayPasscode><HostSearchPath val=""></HostSearchPath></Configuration></Configurations>

View File

@ -0,0 +1,144 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winuae", "winuae_msvc.vcxproj", "{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencpu", "..\gencpu_msvc\gencpu_msvc.vcxproj", "{DEF7ACF7-050E-4069-BB99-5B5D93F60521}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencomp", "..\gencomp_msvc\gencomp_msvc.vcxproj", "{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genblitter", "..\genblitter_msvc\genblitter_msvc.vcxproj", "{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "build68k", "..\build68k_msvc\build68k_msvc.vcxproj", "{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "singlefilehelper", "..\singlefilehelper\singlefilehelper.vcxproj", "{DAF2EB1A-546A-41B3-9755-187562C01E3C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resourcedll", "..\resourcedll\resourcedll.vcxproj", "{C85288FB-A035-42CA-B5FB-8E6214319E97}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fdrawcmd", "..\fdrawcmd\fdrawcmd.vcxproj", "{960E83B5-9118-4EBD-AF50-18EFC1DC764B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ipctester", "..\ipctester\ipctester.vcxproj", "{79BDABE6-5308-4D64-8884-A5A35909D8D3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genlinetoscr", "..\genlinetoscr_msvc\genlinetoscr_msvc.vcxproj", "{E9F73E11-A463-45C6-A733-2BED75852BA1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "decompress", "..\decompress\decompress.vcxproj", "{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uaeunp", "..\uaeunp\uaeunp.vcxproj", "{6181E50C-5F32-42DC-BEF6-827AA8A5429D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "consolewrapper", "..\consolewrapper\consolewrapper.vcxproj", "{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "prowizard", "..\prowizard\prowizard.vcxproj", "{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unpackers", "..\unpackers\unpackers.vcxproj", "{98BA115B-829F-4085-9729-ABD0D779A60A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
FullRelease|Win32 = FullRelease|Win32
FullRelease|x64 = FullRelease|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|Win32.ActiveCfg = Debug|Win32
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|Win32.Build.0 = Debug|Win32
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|x64.ActiveCfg = Debug|x64
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Debug|x64.Build.0 = Debug|x64
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.FullRelease|Win32.Build.0 = FullRelease|Win32
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.FullRelease|x64.ActiveCfg = FullRelease|x64
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.FullRelease|x64.Build.0 = FullRelease|x64
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Release|Win32.ActiveCfg = Release|Win32
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Release|Win32.Build.0 = Release|Win32
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Release|x64.ActiveCfg = Release|x64
{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}.Release|x64.Build.0 = Release|x64
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Debug|Win32.ActiveCfg = Debug|Win32
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Debug|x64.ActiveCfg = Debug|Win32
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Release|Win32.ActiveCfg = Release|Win32
{DEF7ACF7-050E-4069-BB99-5B5D93F60521}.Release|x64.ActiveCfg = Release|Win32
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Debug|Win32.ActiveCfg = Debug|Win32
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Debug|x64.ActiveCfg = Debug|Win32
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Release|Win32.ActiveCfg = Release|Win32
{54197DFF-9CAA-4A9F-B9C2-2881EA04EACB}.Release|x64.ActiveCfg = Release|Win32
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Debug|Win32.ActiveCfg = Debug|Win32
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Debug|x64.ActiveCfg = Debug|Win32
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Release|Win32.ActiveCfg = Release|Win32
{765B0AF0-B8D3-4998-89AF-D6F939E1CD18}.Release|x64.ActiveCfg = Release|Win32
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Debug|Win32.ActiveCfg = Debug|Win32
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Debug|x64.ActiveCfg = Debug|Win32
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Release|Win32.ActiveCfg = Release|Win32
{AF3DBBDE-E006-4DC3-9A26-CB0D7D82AE3C}.Release|x64.ActiveCfg = Release|Win32
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Debug|Win32.ActiveCfg = Debug|Win32
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Debug|x64.ActiveCfg = Debug|Win32
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Release|Win32.ActiveCfg = Release|Win32
{DAF2EB1A-546A-41B3-9755-187562C01E3C}.Release|x64.ActiveCfg = Release|Win32
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Debug|Win32.ActiveCfg = Debug|Win32
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Debug|x64.ActiveCfg = Debug|Win32
{C85288FB-A035-42CA-B5FB-8E6214319E97}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{C85288FB-A035-42CA-B5FB-8E6214319E97}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Release|Win32.ActiveCfg = Release|Win32
{C85288FB-A035-42CA-B5FB-8E6214319E97}.Release|x64.ActiveCfg = Release|Win32
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Debug|Win32.ActiveCfg = Debug|Win32
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Debug|x64.ActiveCfg = Debug|Win32
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Release|Win32.ActiveCfg = Release|Win32
{960E83B5-9118-4EBD-AF50-18EFC1DC764B}.Release|x64.ActiveCfg = Release|Win32
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Debug|Win32.ActiveCfg = Debug|Win32
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Debug|x64.ActiveCfg = Debug|Win32
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Release|Win32.ActiveCfg = Release|Win32
{79BDABE6-5308-4D64-8884-A5A35909D8D3}.Release|x64.ActiveCfg = Release|Win32
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Debug|Win32.ActiveCfg = Debug|Win32
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Debug|x64.ActiveCfg = Debug|Win32
{E9F73E11-A463-45C6-A733-2BED75852BA1}.FullRelease|Win32.ActiveCfg = FullRelease|Win32
{E9F73E11-A463-45C6-A733-2BED75852BA1}.FullRelease|x64.ActiveCfg = FullRelease|Win32
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Release|Win32.ActiveCfg = Release|Win32
{E9F73E11-A463-45C6-A733-2BED75852BA1}.Release|x64.ActiveCfg = Release|Win32
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Debug|Win32.ActiveCfg = Debug|Win32
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Debug|x64.ActiveCfg = Debug|Win32
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.FullRelease|Win32.ActiveCfg = Release|Win32
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.FullRelease|x64.ActiveCfg = Release|Win32
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Release|Win32.ActiveCfg = Release|Win32
{38FAC3FB-A2B7-453F-8A6A-73B97201BB04}.Release|x64.ActiveCfg = Release|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Win32.ActiveCfg = Debug|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|Win32.Build.0 = Debug|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Debug|x64.ActiveCfg = Debug|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.FullRelease|Win32.ActiveCfg = Release|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.FullRelease|x64.ActiveCfg = Release|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Release|Win32.ActiveCfg = Release|Win32
{6181E50C-5F32-42DC-BEF6-827AA8A5429D}.Release|x64.ActiveCfg = Release|Win32
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|Win32.ActiveCfg = Debug|Win32
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Debug|x64.ActiveCfg = Debug|Win32
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.FullRelease|Win32.ActiveCfg = Release|Win32
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.FullRelease|x64.ActiveCfg = Release|Win32
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Release|Win32.ActiveCfg = Release|Win32
{2C44DD04-F5D6-4CC3-B0D6-1F4E51A0D962}.Release|x64.ActiveCfg = Release|x64
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|Win32.ActiveCfg = Debug|Win32
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Debug|x64.ActiveCfg = Debug|Win32
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.FullRelease|Win32.ActiveCfg = Release|Win32
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.FullRelease|x64.ActiveCfg = Release|Win32
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Release|Win32.ActiveCfg = Release|Win32
{8627DA33-98D1-4F60-B404-ECCEE0EE7BF9}.Release|x64.ActiveCfg = Release|x64
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|Win32.ActiveCfg = Debug|Win32
{98BA115B-829F-4085-9729-ABD0D779A60A}.Debug|x64.ActiveCfg = Debug|Win32
{98BA115B-829F-4085-9729-ABD0D779A60A}.FullRelease|Win32.ActiveCfg = Release|Win32
{98BA115B-829F-4085-9729-ABD0D779A60A}.FullRelease|x64.ActiveCfg = Release|Win32
{98BA115B-829F-4085-9729-ABD0D779A60A}.Release|Win32.ActiveCfg = Release|Win32
{98BA115B-829F-4085-9729-ABD0D779A60A}.Release|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,791 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="FullRelease|Win32">
<Configuration>FullRelease</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="FullRelease|x64">
<Configuration>FullRelease</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>winuae</ProjectName>
<ProjectGuid>{4ADAA943-1AC8-4FB5-82E5-4FB753B6C2DA}</ProjectGuid>
<RootNamespace>winuae</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">d:\amiga\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">d:\amiga\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</GenerateManifest>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">d:\amiga\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">d:\amiga\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</GenerateManifest>
<OutDir Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">d:\amiga\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">false</LinkIncremental>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">true</GenerateManifest>
<OutDir Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">d:\amiga\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">false</LinkIncremental>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</GenerateManifest>
<TargetName Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">winuae64</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">winuae64</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">winuae64</TargetName>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;C:\dev\include;$(IncludePath)</IncludePath>
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;C:\dev\lib;C:\dev\WinDDK\7600.16385.1\lib\win7\i386;$(LibraryPath)</LibraryPath>
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;C:\dev\lib;C:\dev\WinDDK\7600.16385.1\lib\win7\i386;$(LibraryPath)</LibraryPath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;C:\dev\include;$(IncludePath)</IncludePath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Include;C:\dev\include;$(IncludePath)</IncludePath>
<ReferencePath Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">$(ReferencePath)</ReferencePath>
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">C:\Program Files %28x86%29\Microsoft DirectX SDK %28June 2010%29\Lib\x86;C:\dev\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Debug/winuae_msvc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;..\..\prowizard\include;..\tun;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINVER=0x0500;_DEBUG;WIN32_IE=0x0700;WIN32;_CRT_SECURE_NO_WARNINGS;D3D_DEBUG_INFO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
<PreprocessKeepComments>false</PreprocessKeepComments>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeaderOutputFile>.\Debug/winuae_msvc.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
<ObjectFileName>.\Debug/</ObjectFileName>
<ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CallingConvention>StdCall</CallingConvention>
<CompileAs>Default</CompileAs>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<EnablePREfast>false</EnablePREfast>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9d.lib;winio.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;libpng15.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;wintab32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;prowizard.lib;lzmalib.lib;libFLAC_static.lib;Avrt.lib;hid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>LIBCMT;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;ddraw.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\Debug/winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<StackReserveSize>2621440</StackReserveSize>
<StackCommitSize>2621440</StackCommitSize>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>
</IgnoreAllDefaultLibraries>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>X64</TargetEnvironment>
<TypeLibraryName>.\Debug/winuae_msvc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;..\..\prowizard\include;..\tun;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINVER=0x0500;_DEBUG;WIN32_IE=0x0700;WIN32;WIN64;_CRT_SECURE_NO_WARNINGS;D3D_DEBUG_INFO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BufferSecurityCheck>true</BufferSecurityCheck>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeaderOutputFile>$(Platform)\$(Configuration)\winuae_msvc.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(Platform)\$(Configuration)\</AssemblerListingLocation>
<ObjectFileName>$(Platform)\$(Configuration)\</ObjectFileName>
<ProgramDataBaseFileName>$(Platform)\$(Configuration)\</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CallingConvention>StdCall</CallingConvention>
<CompileAs>Default</CompileAs>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<EnablePREfast>false</EnablePREfast>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;packet.lib;wpcap.lib;openal32.lib;libpng15.lib;lglcd.lib;wtsapi32.lib;wntab32x.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;avrt.lib;hid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_42.dll;openal32.dll;wintab32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;avrt.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(Platform)\$(Configuration)\winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<StackReserveSize>2621440</StackReserveSize>
<StackCommitSize>2621440</StackCommitSize>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>
</IgnoreAllDefaultLibraries>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae64.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Release/winuae_msvc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;..\..\prowizard\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINVER=0x0500;NDEBUG;_WIN32_IE=0x0700;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<FloatingPointModel>Precise</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<PrecompiledHeaderOutputFile>.\Release/winuae_msvc.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\Release/</AssemblerListingLocation>
<ObjectFileName>.\Release/</ObjectFileName>
<ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<CallingConvention>StdCall</CallingConvention>
<CompileAs>Default</CompileAs>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<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;libpng15.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;wintab32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;enet.lib;lzmalib.lib;prowizard.lib;libFLAC_static.lib;Avrt.lib;hid.lib;zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<AdditionalManifestDependencies>%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;avrt.dll;ddraw.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\Release/winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<StackReserveSize>2621440</StackReserveSize>
<StackCommitSize>2621440</StackCommitSize>
<LargeAddressAware>true</LargeAddressAware>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>
</LinkTimeCodeGeneration>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<FixedBaseAddress>false</FixedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<MinimumRequiredVersion>
</MinimumRequiredVersion>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>X64</TargetEnvironment>
<TypeLibraryName>.\Release/winuae_msvc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINVER=0x0500;NDEBUG;_WIN32_IE=0x0700;WIN32;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<FloatingPointModel>Precise</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderOutputFile>$(Platform)\$(Configuration)/winuae_msvc.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(Platform)\$(Configuration)\</AssemblerListingLocation>
<ObjectFileName>$(Platform)\$(Configuration)\</ObjectFileName>
<ProgramDataBaseFileName>$(Platform)\$(Configuration)\</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<CallingConvention>StdCall</CallingConvention>
<CompileAs>Default</CompileAs>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;packet.lib;wpcap.lib;openal32.lib;libpng15.lib;lglcd.lib;wtsapi32.lib;wntab32x.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;avrt.lib;hid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;avrt.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(Platform)\$(Configuration)\winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<StackReserveSize>0</StackReserveSize>
<StackCommitSize>0</StackCommitSize>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>
</LinkTimeCodeGeneration>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<FixedBaseAddress>false</FixedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae64.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Release/winuae_msvc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;..\..\prowizard\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINVER=0x0500;NDEBUG;_WIN32_IE=0x0700;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<FloatingPointModel>Precise</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<PrecompiledHeaderOutputFile>.\FullRelease/winuae_msvc.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>.\FullRelease/</AssemblerListingLocation>
<ObjectFileName>.\FullRelease/</ObjectFileName>
<ProgramDataBaseFileName>.\FullRelease/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<CallingConvention>StdCall</CallingConvention>
<CompileAs>Default</CompileAs>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<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;libpng15.lib;lglcd.lib;wpcap.lib;packet.lib;openal32.lib;wintab32.lib;portaudio_x86.lib;vfw32.lib;wtsapi32.lib;avrt.lib;enet.lib;prowizard.lib;lzmalib.lib;libFLAC_static.lib;Avrt.lib;hid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<AdditionalManifestDependencies>%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;avrt.dll;ddraw.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\FullRelease/winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<StackReserveSize>2621440</StackReserveSize>
<StackCommitSize>2621440</StackCommitSize>
<LargeAddressAware>true</LargeAddressAware>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<FixedBaseAddress>false</FixedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<MinimumRequiredVersion>
</MinimumRequiredVersion>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae9.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>X64</TargetEnvironment>
<TypeLibraryName>.\Release/winuae_msvc.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<WholeProgramOptimization>true</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\..\include;..\..;..\;..\resources;..\osdep;..\sounddep;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINVER=0x0500;NDEBUG;_WIN32_IE=0x0700;WIN32;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<FloatingPointModel>Precise</FloatingPointModel>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<PrecompiledHeaderOutputFile>$(Platform)\$(Configuration)\winuae_msvc.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(Platform)\$(Configuration)\</AssemblerListingLocation>
<ObjectFileName>$(Platform)\$(Configuration)\</ObjectFileName>
<ProgramDataBaseFileName>$(Platform)\$(Configuration)\</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<CallingConvention>StdCall</CallingConvention>
<CompileAs>Default</CompileAs>
<DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ForcedIncludeFiles>%(ForcedIncludeFiles)</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;ddraw.lib;dxguid.lib;winmm.lib;comctl32.lib;version.lib;vfw32.lib;msacm32.lib;dsound.lib;dinput8.lib;d3d9.lib;d3dx9.lib;setupapi.lib;wininet.lib;dxerr.lib;shlwapi.lib;zlibstat.lib;portaudio_x64.lib;packet.lib;wpcap.lib;openal32.lib;libpng15.lib;lglcd.lib;wtsapi32.lib;wntab32x.lib;enet_x64.lib;prowizard_x64.lib;lzmalib.lib;libFLAC_static.lib;avrt.lib;hid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x64.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;avrt.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(Platform)\$(Configuration)\winuae.pdb</ProgramDatabaseFile>
<SubSystem>Windows</SubSystem>
<StackReserveSize>0</StackReserveSize>
<StackCommitSize>0</StackCommitSize>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<FixedBaseAddress>false</FixedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<Manifest>
<AdditionalManifestFiles>..\resources\winuae64.exe.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\archivers\dms\crc_csum.cpp" />
<ClCompile Include="..\..\archivers\dms\getbits.cpp" />
<ClCompile Include="..\..\archivers\dms\maketbl.cpp" />
<ClCompile Include="..\..\archivers\dms\pfile.cpp" />
<ClCompile Include="..\..\archivers\dms\tables.cpp" />
<ClCompile Include="..\..\archivers\dms\u_deep.cpp" />
<ClCompile Include="..\..\archivers\dms\u_heavy.cpp" />
<ClCompile Include="..\..\archivers\dms\u_init.cpp" />
<ClCompile Include="..\..\archivers\dms\u_medium.cpp" />
<ClCompile Include="..\..\archivers\dms\u_quick.cpp" />
<ClCompile Include="..\..\archivers\dms\u_rle.cpp" />
<ClCompile Include="..\..\archivers\lha\crcio.cpp" />
<ClCompile Include="..\..\archivers\lha\dhuf.cpp" />
<ClCompile Include="..\..\archivers\lha\header.cpp" />
<ClCompile Include="..\..\archivers\lha\huf.cpp" />
<ClCompile Include="..\..\archivers\lha\larc.cpp" />
<ClCompile Include="..\..\archivers\lha\lhamaketbl.cpp" />
<ClCompile Include="..\..\archivers\lha\lharc.cpp" />
<ClCompile Include="..\..\archivers\lha\shuf.cpp" />
<ClCompile Include="..\..\archivers\lha\slide.cpp" />
<ClCompile Include="..\..\archivers\lha\uae_lha.cpp" />
<ClCompile Include="..\..\archivers\lha\util.cpp" />
<ClCompile Include="..\..\archivers\lzx\unlzx.cpp" />
<ClCompile Include="..\..\archivers\wrp\warp.cpp" />
<ClCompile Include="..\..\archivers\zip\unzip.cpp" />
<ClCompile Include="..\..\aros.rom.cpp" />
<ClCompile Include="..\..\calc.cpp" />
<ClCompile Include="..\..\cpuemu_21.cpp" />
<ClCompile Include="..\..\cpuemu_22.cpp" />
<ClCompile Include="..\..\events.cpp" />
<ClCompile Include="..\..\hrtmon.rom.cpp" />
<ClCompile Include="..\..\inputrecord.cpp" />
<ClCompile Include="..\..\isofs.cpp" />
<ClCompile Include="..\..\specialmonitors.cpp" />
<ClCompile Include="..\..\statusline.cpp" />
<ClCompile Include="..\ahidsound_dsonly.cpp" />
<ClCompile Include="..\ahidsound_new.cpp" />
<ClCompile Include="..\avioutput.cpp" />
<ClCompile Include="..\blkdev_win32_ioctl.cpp" />
<ClCompile Include="..\blkdev_win32_spti.cpp" />
<ClCompile Include="..\bsdsock.cpp" />
<ClCompile Include="..\caps\caps_win32.cpp" />
<ClCompile Include="..\cda_play.cpp" />
<ClCompile Include="..\clipboard_win32.cpp" />
<ClCompile Include="..\debug_win32.cpp" />
<ClCompile Include="..\dinput.cpp" />
<ClCompile Include="..\direct3d.cpp" />
<ClCompile Include="..\driveclick_win32.cpp" />
<ClCompile Include="..\dxwrap.cpp" />
<ClCompile Include="..\fsdb_mywin32.cpp" />
<ClCompile Include="..\fsdb_win32.cpp" />
<ClCompile Include="..\hardfile_win32.cpp" />
<ClCompile Include="..\hq2x_d3d.cpp" />
<ClCompile Include="..\ioport.cpp" />
<ClCompile Include="..\keyboard_win32.cpp" />
<ClCompile Include="..\lcd.cpp" />
<ClCompile Include="..\midi.cpp" />
<ClCompile Include="..\mman.cpp" />
<ClCompile Include="..\mp3decoder.cpp" />
<ClCompile Include="..\parser.cpp" />
<ClCompile Include="..\picasso96_win.cpp" />
<ClCompile Include="..\posixemu.cpp" />
<ClCompile Include="..\registry.cpp" />
<ClCompile Include="..\cloanto\RetroPlatformGuestIPC.cpp" />
<ClCompile Include="..\rp.cpp" />
<ClCompile Include="..\scaler.cpp" />
<ClCompile Include="..\scaler_more.cpp" />
<ClCompile Include="..\screenshot.cpp" />
<ClCompile Include="..\serial_win32.cpp" />
<ClCompile Include="..\sounddep\sound.cpp" />
<ClCompile Include="..\unicode.cpp" />
<ClCompile Include="..\win32.cpp" />
<ClCompile Include="..\win32_scaler.cpp" />
<ClCompile Include="..\win32_uaenet.cpp" />
<ClCompile Include="..\win32gfx.cpp" />
<ClCompile Include="..\win32gui.cpp" />
<ClCompile Include="..\win32gui_extra.cpp" />
<ClCompile Include="..\writelog.cpp" />
<ClCompile Include="..\..\a2065.cpp" />
<ClCompile Include="..\..\a2091.cpp" />
<ClCompile Include="..\..\akiko.cpp" />
<ClCompile Include="..\..\amax.cpp" />
<ClCompile Include="..\..\ar.cpp" />
<ClCompile Include="..\..\arcadia.cpp" />
<ClCompile Include="..\..\audio.cpp" />
<ClCompile Include="..\..\autoconf.cpp" />
<ClCompile Include="..\..\blitfunc.cpp" />
<ClCompile Include="..\..\blittable.cpp" />
<ClCompile Include="..\..\blitter.cpp" />
<ClCompile Include="..\..\blkdev.cpp" />
<ClCompile Include="..\..\blkdev_cdimage.cpp" />
<ClCompile Include="..\..\bsdsocket.cpp" />
<ClCompile Include="..\..\catweasel.cpp" />
<ClCompile Include="..\..\cd32_fmv.cpp" />
<ClCompile Include="..\..\cdrom.cpp" />
<ClCompile Include="..\..\cdtv.cpp" />
<ClCompile Include="..\..\cfgfile.cpp" />
<ClCompile Include="..\..\cia.cpp" />
<ClCompile Include="..\..\consolehook.cpp" />
<ClCompile Include="..\..\cpudefs.cpp" />
<ClCompile Include="..\..\cpuemu_0.cpp" />
<ClCompile Include="..\..\cpuemu_11.cpp" />
<ClCompile Include="..\..\cpuemu_12.cpp" />
<ClCompile Include="..\..\cpuemu_20.cpp" />
<ClCompile Include="..\..\cpuemu_31.cpp" />
<ClCompile Include="..\..\cpummu.cpp" />
<ClCompile Include="..\..\cpustbl.cpp" />
<ClCompile Include="..\..\crc32.cpp" />
<ClCompile Include="..\..\custom.cpp" />
<ClCompile Include="..\..\debug.cpp" />
<ClCompile Include="..\..\disk.cpp" />
<ClCompile Include="..\..\diskutil.cpp" />
<ClCompile Include="..\..\dongle.cpp" />
<ClCompile Include="..\..\drawing.cpp" />
<ClCompile Include="..\..\driveclick.cpp" />
<ClCompile Include="..\..\enforcer.cpp" />
<ClCompile Include="..\..\epsonprinter.cpp" />
<ClCompile Include="..\..\expansion.cpp" />
<ClCompile Include="..\..\fdi2raw.cpp" />
<ClCompile Include="..\..\filesys.cpp" />
<ClCompile Include="..\..\fpp.cpp" />
<ClCompile Include="..\..\fsdb.cpp" />
<ClCompile Include="..\..\fsusage.cpp" />
<ClCompile Include="..\..\gayle.cpp" />
<ClCompile Include="..\..\gfxutil.cpp" />
<ClCompile Include="..\..\hardfile.cpp" />
<ClCompile Include="..\..\identify.cpp" />
<ClCompile Include="..\..\inputdevice.cpp" />
<ClCompile Include="..\..\keybuf.cpp" />
<ClCompile Include="..\..\main.cpp" />
<ClCompile Include="..\..\memory.cpp" />
<ClCompile Include="..\..\missing.cpp" />
<ClCompile Include="..\..\native2amiga.cpp" />
<ClCompile Include="..\..\ncr_scsi.cpp" />
<ClCompile Include="..\..\newcpu.cpp" />
<ClCompile Include="..\..\readcpu.cpp" />
<ClCompile Include="..\..\rommgr.cpp" />
<ClCompile Include="..\..\sampler.cpp" />
<ClCompile Include="..\..\sana2.cpp" />
<ClCompile Include="..\..\savestate.cpp" />
<ClCompile Include="..\..\scsi.cpp" />
<ClCompile Include="..\..\scsiemul.cpp" />
<ClCompile Include="..\..\traps.cpp" />
<ClCompile Include="..\..\uaeexe.cpp" />
<ClCompile Include="..\..\uaeipc.cpp" />
<ClCompile Include="..\..\uaelib.cpp" />
<ClCompile Include="..\..\uaeresource.cpp" />
<ClCompile Include="..\..\uaeserial.cpp" />
<ClCompile Include="..\..\zfile.cpp" />
<ClCompile Include="..\..\zfile_archive.cpp" />
<ClCompile Include="..\..\jit\compemu.cpp" />
<ClCompile Include="..\..\jit\compemu_fpp.cpp" />
<ClCompile Include="..\..\jit\compemu_support.cpp" />
<ClCompile Include="..\..\jit\compstbl.cpp" />
<ClCompile Include="..\..\moduleripper.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="..\resources\35floppy.ico" />
<None Include="..\resources\amigainfo.ico" />
<None Include="..\resources\avioutput.ico" />
<None Include="..\resources\chip.ico" />
<None Include="..\resources\configfile.ico" />
<None Include="configfile.ico" />
<None Include="..\resources\cpu.ico" />
<None Include="diskimage.ico" />
<None Include="..\resources\diskimage.ico" />
<None Include="..\resources\Drive.ico" />
<None Include="..\resources\expansion.ico" />
<None Include="expansion.ico" />
<None Include="..\resources\file.ico" />
<None Include="file.ico" />
<None Include="..\resources\folder.ico" />
<None Include="..\resources\h_arrow.cur" />
<None Include="..\resources\icon3.ico" />
<None Include="..\resources\joystick.ico" />
<None Include="..\resources\lcd.bmp" />
<None Include="..\resources\misc.ico" />
<None Include="..\resources\move_dow.ico" />
<None Include="..\resources\move_up.ico" />
<None Include="..\resources\paths.ico" />
<None Include="..\resources\port.ico" />
<None Include="port.ico" />
<None Include="..\resources\quickstart.ico" />
<None Include="..\resources\root.ico" />
<None Include="..\resources\screen.ico" />
<None Include="..\resources\sound.ico" />
<None Include="..\resources\winuae.ico" />
<None Include="..\resources\xarcade-winuae.bmp" />
<None Include="..\resources\drive_click.wav" />
<None Include="..\resources\drive_snatch.wav" />
<None Include="..\resources\drive_spin.wav" />
<None Include="..\resources\drive_spinnd.wav" />
<None Include="..\resources\drive_startup.wav" />
<None Include="..\resources\resource" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\resources\winuae.rc">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\projects\winuae\src\od-win32\resources</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\projects\winuae\src\od-win32\resources</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='FullRelease|Win32'">\projects\winuae\src\od-win32\resources</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">\projects\winuae\src\od-win32\resources</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\projects\winuae\src\od-win32\resources</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\projects\winuae\src\od-win32\resources</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Library Include="..\hq2x16.obj">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<FileType>Document</FileType>
</Library>
<Library Include="..\hq2x32.obj">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<FileType>Document</FileType>
</Library>
<Library Include="..\hq3x16.obj">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<FileType>Document</FileType>
</Library>
<Library Include="..\hq3x32.obj">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<FileType>Document</FileType>
</Library>
<Library Include="..\hq4x16.obj">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<FileType>Document</FileType>
</Library>
<Library Include="..\hq4x32.obj">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='FullRelease|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<FileType>Document</FileType>
</Library>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,626 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="win32">
<UniqueIdentifier>{86cfeeb5-a9b0-4c06-bd94-69c258884a66}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="win32\Resource Files">
<UniqueIdentifier>{5c4c971a-37b6-4c1e-82f1-d225ebb12808}</UniqueIdentifier>
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
<Filter Include="common">
<UniqueIdentifier>{c0e78831-47fa-48a0-a34e-8c3c4410c34b}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="jit">
<UniqueIdentifier>{e76a708a-933c-4af4-bad2-0820d79b6a78}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="prowizard">
<UniqueIdentifier>{dab2f6c7-d741-4002-b0c9-566a1536642a}</UniqueIdentifier>
</Filter>
<Filter Include="unpackers">
<UniqueIdentifier>{a88602d5-1980-49b2-a87a-79afa3ca7346}</UniqueIdentifier>
</Filter>
<Filter Include="unpackers\dms">
<UniqueIdentifier>{6b855260-58da-4be4-b914-621ca2e33ca5}</UniqueIdentifier>
</Filter>
<Filter Include="unpackers\lha">
<UniqueIdentifier>{1af2c9da-63ab-4226-8b97-5544a0a34433}</UniqueIdentifier>
</Filter>
<Filter Include="unpackers\lzx">
<UniqueIdentifier>{99d2fcb7-e014-45fe-a543-4a9b9242a35b}</UniqueIdentifier>
</Filter>
<Filter Include="unpackers\wrp">
<UniqueIdentifier>{d2f2439b-d15d-47d5-bb26-1a9436aef770}</UniqueIdentifier>
</Filter>
<Filter Include="unpackers\xfd">
<UniqueIdentifier>{d69b4a6c-84db-480b-8b80-60a2a3646f6e}</UniqueIdentifier>
</Filter>
<Filter Include="unpackers\zip">
<UniqueIdentifier>{93fcf20a-8921-43e8-b4b9-e5fceb81332d}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\ahidsound_dsonly.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\ahidsound_new.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\avioutput.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\blkdev_win32_ioctl.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\blkdev_win32_spti.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\bsdsock.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\caps\caps_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\clipboard_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\debug_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\dinput.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\direct3d.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\driveclick_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\dxwrap.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\fsdb_mywin32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\fsdb_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\hardfile_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\hq2x_d3d.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\ioport.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\keyboard_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\lcd.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\midi.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\mman.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\parser.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\picasso96_win.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\posixemu.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\registry.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\cloanto\RetroPlatformGuestIPC.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\rp.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\scaler.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\scaler_more.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\screenshot.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\serial_win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\sounddep\sound.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\unicode.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\win32.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\win32_uaenet.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\win32gfx.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\win32gui.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\win32gui_extra.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\writelog.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\..\a2065.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\a2091.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\akiko.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\amax.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\ar.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\arcadia.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\audio.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\autoconf.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\blitfunc.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\blittable.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\blitter.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\blkdev.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\blkdev_cdimage.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\bsdsocket.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\catweasel.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cd32_fmv.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cdrom.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cdtv.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cfgfile.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cia.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\consolehook.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpudefs.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpuemu_0.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpuemu_11.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpuemu_12.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpuemu_20.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpuemu_31.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpummu.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpustbl.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\crc32.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\custom.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\debug.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\disk.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\diskutil.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\dongle.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\drawing.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\driveclick.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\enforcer.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\epsonprinter.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\expansion.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\fdi2raw.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\filesys.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\fpp.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\fsdb.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\fsusage.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\gayle.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\gfxutil.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\hardfile.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\identify.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\inputdevice.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\keybuf.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\main.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\memory.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\missing.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\native2amiga.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\ncr_scsi.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\newcpu.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\readcpu.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\rommgr.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\sampler.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\sana2.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\savestate.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\scsi.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\scsiemul.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\traps.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\uaeexe.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\uaeipc.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\uaelib.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\uaeresource.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\uaeserial.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\zfile.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\zfile_archive.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\jit\compemu.cpp">
<Filter>jit</Filter>
</ClCompile>
<ClCompile Include="..\..\jit\compemu_fpp.cpp">
<Filter>jit</Filter>
</ClCompile>
<ClCompile Include="..\..\jit\compemu_support.cpp">
<Filter>jit</Filter>
</ClCompile>
<ClCompile Include="..\..\jit\compstbl.cpp">
<Filter>jit</Filter>
</ClCompile>
<ClCompile Include="..\..\moduleripper.cpp">
<Filter>prowizard</Filter>
</ClCompile>
<ClCompile Include="..\win32_scaler.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\crc_csum.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\getbits.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\maketbl.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\pfile.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\tables.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\u_deep.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\u_heavy.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\u_init.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\u_medium.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\u_quick.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\dms\u_rle.cpp">
<Filter>unpackers\dms</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\crcio.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\dhuf.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\header.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\huf.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\larc.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\lhamaketbl.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\lharc.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\shuf.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\slide.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\uae_lha.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lha\util.cpp">
<Filter>unpackers\lha</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\lzx\unlzx.cpp">
<Filter>unpackers\lzx</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\wrp\warp.cpp">
<Filter>unpackers\wrp</Filter>
</ClCompile>
<ClCompile Include="..\..\archivers\zip\unzip.cpp">
<Filter>unpackers\zip</Filter>
</ClCompile>
<ClCompile Include="..\..\cpuemu_21.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\mp3decoder.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\cda_play.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\..\inputrecord.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\statusline.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\hrtmon.rom.cpp">
<Filter>win32</Filter>
</ClCompile>
<ClCompile Include="..\..\aros.rom.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\specialmonitors.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\events.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\calc.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\isofs.cpp">
<Filter>common</Filter>
</ClCompile>
<ClCompile Include="..\..\cpuemu_22.cpp">
<Filter>common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\resources\35floppy.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\amigainfo.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\avioutput.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\chip.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\configfile.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="configfile.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\cpu.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="diskimage.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\diskimage.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\Drive.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\expansion.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="expansion.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\file.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="file.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\folder.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\h_arrow.cur">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\icon3.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\joystick.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\lcd.bmp">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\misc.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\move_dow.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\move_up.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\paths.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\port.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="port.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\quickstart.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\root.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\screen.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\sound.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\winuae.ico">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\xarcade-winuae.bmp">
<Filter>win32\Resource Files</Filter>
</None>
<None Include="..\resources\drive_click.wav" />
<None Include="..\resources\drive_snatch.wav" />
<None Include="..\resources\drive_spin.wav" />
<None Include="..\resources\drive_spinnd.wav" />
<None Include="..\resources\drive_startup.wav" />
<None Include="..\resources\resource" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\resources\winuae.rc">
<Filter>win32\Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Library Include="..\hq2x16.obj" />
<Library Include="..\hq2x32.obj" />
<Library Include="..\hq3x16.obj" />
<Library Include="..\hq3x32.obj" />
<Library Include="..\hq4x16.obj" />
<Library Include="..\hq4x32.obj" />
</ItemGroup>
</Project>

View File

@ -1,6 +1,52 @@
- restore only single input target to default.
Beta 13:
- Parallel port audio sampler had very bad quality on some systems. NOTE: Sampler requires exact DirectSound
recording position reporting = not that good results when using some onboard Realteks etc..
(It can be made better but because this is really pointless feature: pay or buy a better PC)
- Very old statefiles triggered keyboard powerup initialization sequence when restored, caused phantom keypresses.
- Sinc audio interpolation filter clipping fixed. (Was always wrong in UAE, was much more noticeable after b11 audio update)
- Input configuration parser didn't parse custom input event strings correctly if it contained '.' or ',' characters.
- Added experimental (and mostly useless) option that removes DOS reserved name restriction (CON is the most popular because
it is also included with WB disks). Note that this causes some interesting side effects: most Windows programs, including
Explorer, won't be able to open any file if it has DOS reserved name... You don't need this option, UAE has always
mangled illegal names transparently (for example CON becomes something like "__uae__con" on host side)
Configuration file only: win32.filesystem_mangle_reserved_names=false (defaults to true if not set)
- Disable screensaver option didn't work, SetThreadExecutionState() needs to be called periodically, not just once,
function documentation is a bit confusing..
- When deciding first visible line and programmed mode: select which is largest, VBSTOP or VSSTOP. (SuperPlus)
- Added Keep autoscale aspect ratio checkbox, only sort of working now...
- Map rom region size mirrors ROM size, address automatically moved to 0xe00000 (512k) or 0xa80000 (1M) if 24-bit CPU.
- Remove interlace artifacts option halved size of display horizontally in some programmed screen modes.
- Portaudio sound and sound was deactivated automatically: sound led kept showing buffer underrun state.
- Disable screen updates if monitor enters power saving mode.
- When restoring state file with floppy image(s) missing (files moved etc..), there still was rare possibility that floppy
drive was reported as empty.
- Some more manual BPLxDAT emulation updates, Sequential Magnet part garbage introduced in previous update is gone.
- Color registers were emulated as non-existing instead of write-only in OCS/ECS modes. (I guess only visible difference
- DENISEID is now non-existing if 68000 prefetch or cycle-exact and OCS Denise. (Programs may misdetect if no prefetch emulated,
and now programs, if they even exist, that misdetect it on real OCS A500 will misdetect it on emulation too! :)
will be more colorful display if program crashes or does weird things and starts reading from color registers..)
- Renamed Paths panel "WinUAE defaults"-paths, meaning of selection should make more sense now.
- Better input qualifier GUI, Windows key default qualifier added.
- Slot #5-#8 custom events didn't work correctly.
- GUI resize and font selection support added (misc panel). It was possible after all, needed only some hacking..
* Default size is now larger then previously.
* This is a hack, rebuilds classic Windows dialog resources on the fly while adjusting GUI element coordinates and size.
* GUI size after resizing may not be exactly what you expected.
* Windows always closes and reopens after resize. It is also normal, can be improved, later if ever..
* Window/Fullwindow/Fullscreen have separate position, size and font settings.
* Less than 80% size not officially supported, overlapping and clipping is normal. Select smaller font.
* Possible future improvements: more preset sizes, some kind of autofit in smaller fullscreen modes.
* I hope GUI now appears to be more modern than it actually is :)
- Version bumped to 2.5.0.
Beta 12:
- Moved cycle-exact option to Chipset group in GUI. Other options are minor options/hacks, CE is not.
- Do not enable wait for blit if immediate blitter is enabled in quickstart mode.
- Added RTG hardware sprite (mouse cursor) enable/disable option. Enabled by default if D3D mode. Was always enabled

View File

@ -31,7 +31,7 @@ static int sampleframes;
static int recordbufferframes;
static float clockspersample;
static int vsynccnt;
static int safepos;
static int safediff;
float sampler_evtime;
static int capture_init (void)
@ -115,7 +115,6 @@ uae_u8 sampler_getsample (int channel)
#endif
static double doffset_offset;
HRESULT hr;
DWORD pos;
DWORD t;
void *p1, *p2;
DWORD len1, len2;
@ -128,6 +127,7 @@ uae_u8 sampler_getsample (int channel)
channel = 0;
if (!inited) {
DWORD pos;
if (!capture_init ()) {
capture_free ();
return 0;
@ -136,6 +136,18 @@ uae_u8 sampler_getsample (int channel)
oldcycles = get_cycles ();
oldoffset = -1;
doffset_offset = 0;
hr = lpDSB2r->GetCurrentPosition (&t, &pos);
if (FAILED (hr)) {
sampler_free ();
return 0;
}
if (t >= pos)
safediff = t - pos;
else
safediff = recordbufferframes * SAMPLESIZE - pos + t;
write_log (_T("SAMPLER: safediff %d %d\n"), safediff, safediff + sampleframes * SAMPLESIZE);
safediff += 4 * sampleframes * SAMPLESIZE;
#if 0
diffsample = 0;
safepos = -recordbufferframes / 10 * SAMPLESIZE;
@ -174,8 +186,12 @@ uae_u8 sampler_getsample (int channel)
samplecnt++;
}
}
hr = lpDSB2r->GetCurrentPosition (&t, &pos);
hr = lpDSB2r->Lock (t, sampleframes * SAMPLESIZE, &p1, &len1, &p2, &len2, 0);
hr = lpDSB2r->GetCurrentPosition (&t, NULL);
int pos = t;
pos -= safediff;
if (pos < 0)
pos += recordbufferframes * SAMPLESIZE;
hr = lpDSB2r->Lock (pos, sampleframes * SAMPLESIZE, &p1, &len1, &p2, &len2, 0);
if (FAILED (hr)) {
write_log (_T("SAMPLER: Lock() failed %x\n"), hr);
return 0;

View File

@ -516,6 +516,7 @@ void restore_state (const TCHAR *filename)
savestate_file = f;
restore_header (chunk);
xfree (chunk);
restore_cia_start ();
changed_prefs.bogomem_size = 0;
changed_prefs.chipmem_size = 0;
changed_prefs.fastmem_size = 0;

View File

@ -3,7 +3,7 @@
*/
/* tables are: a500 off, a500 on, a1200 off, a1200 on, vanilla. */
const int winsinc_integral[5][2048] = {
const int winsinc_integral[5][SINC_QUEUE_MAX_AGE] = {
{
131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,131072,
131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131071,131070,