imported winuaesrc1600b8.zip

This commit is contained in:
Toni Wilen 2009-01-11 12:37:40 +02:00
parent 32aa38ef51
commit 441e3d0126
540 changed files with 997 additions and 616 deletions

0
ChangeLog Executable file → Normal file
View File

0
a2091.c Executable file → Normal file
View File

0
akiko.c Executable file → Normal file
View File

0
akiko2.c Executable file → Normal file
View File

0
amax.c Executable file → Normal file
View File

0
ar.c Executable file → Normal file
View File

0
arcadia.c Executable file → Normal file
View File

0
archivers/7z/7zAlloc.c Executable file → Normal file
View File

0
archivers/7z/7zAlloc.h Executable file → Normal file
View File

0
archivers/7z/7zBuffer.c Executable file → Normal file
View File

0
archivers/7z/7zBuffer.h Executable file → Normal file
View File

0
archivers/7z/7zCrc.c Executable file → Normal file
View File

0
archivers/7z/7zCrc.h Executable file → Normal file
View File

0
archivers/7z/7zDecode.c Executable file → Normal file
View File

0
archivers/7z/7zDecode.h Executable file → Normal file
View File

0
archivers/7z/7zExtract.c Executable file → Normal file
View File

0
archivers/7z/7zExtract.h Executable file → Normal file
View File

0
archivers/7z/7zHeader.c Executable file → Normal file
View File

0
archivers/7z/7zHeader.h Executable file → Normal file
View File

0
archivers/7z/7zIn.c Executable file → Normal file
View File

0
archivers/7z/7zIn.h Executable file → Normal file
View File

0
archivers/7z/7zItem.c Executable file → Normal file
View File

0
archivers/7z/7zItem.h Executable file → Normal file
View File

0
archivers/7z/7zMain.c Executable file → Normal file
View File

0
archivers/7z/7zMethodID.c Executable file → Normal file
View File

0
archivers/7z/7zMethodID.h Executable file → Normal file
View File

0
archivers/7z/7zTypes.h Executable file → Normal file
View File

0
archivers/7z/LzmaDecode.c Executable file → Normal file
View File

0
archivers/7z/LzmaDecode.h Executable file → Normal file
View File

0
archivers/7z/LzmaTypes.h Executable file → Normal file
View File

0
archivers/dms/cdata.h Executable file → Normal file
View File

0
archivers/dms/crc_csum.c Executable file → Normal file
View File

0
archivers/dms/crc_csum.h Executable file → Normal file
View File

0
archivers/dms/getbits.c Executable file → Normal file
View File

0
archivers/dms/getbits.h Executable file → Normal file
View File

0
archivers/dms/maketbl.c Executable file → Normal file
View File

0
archivers/dms/maketbl.h Executable file → Normal file
View File

0
archivers/dms/pfile.c Executable file → Normal file
View File

0
archivers/dms/pfile.h Executable file → Normal file
View File

0
archivers/dms/tables.c Executable file → Normal file
View File

0
archivers/dms/tables.h Executable file → Normal file
View File

0
archivers/dms/u_deep.c Executable file → Normal file
View File

0
archivers/dms/u_deep.h Executable file → Normal file
View File

0
archivers/dms/u_heavy.c Executable file → Normal file
View File

0
archivers/dms/u_heavy.h Executable file → Normal file
View File

0
archivers/dms/u_init.c Executable file → Normal file
View File

0
archivers/dms/u_init.h Executable file → Normal file
View File

0
archivers/dms/u_medium.c Executable file → Normal file
View File

0
archivers/dms/u_medium.h Executable file → Normal file
View File

0
archivers/dms/u_quick.c Executable file → Normal file
View File

0
archivers/dms/u_quick.h Executable file → Normal file
View File

0
archivers/dms/u_rle.c Executable file → Normal file
View File

0
archivers/dms/u_rle.h Executable file → Normal file
View File

0
archivers/lha/crcio.c Executable file → Normal file
View File

0
archivers/lha/dhuf.c Executable file → Normal file
View File

0
archivers/lha/header.c Executable file → Normal file
View File

0
archivers/lha/huf.c Executable file → Normal file
View File

0
archivers/lha/larc.c Executable file → Normal file
View File

0
archivers/lha/lha.h Executable file → Normal file
View File

0
archivers/lha/lha_macro.h Executable file → Normal file
View File

0
archivers/lha/lhamaketbl.c Executable file → Normal file
View File

0
archivers/lha/lharc.c Executable file → Normal file
View File

0
archivers/lha/shuf.c Executable file → Normal file
View File

0
archivers/lha/slide.c Executable file → Normal file
View File

0
archivers/lha/uae_lha.c Executable file → Normal file
View File

0
archivers/lha/util.c Executable file → Normal file
View File

0
archivers/lzx/unlzx.c Executable file → Normal file
View File

0
archivers/wrp/warp.c Executable file → Normal file
View File

0
archivers/wrp/warp.h Executable file → Normal file
View File

0
archivers/xfd/main.c Executable file → Normal file
View File

0
archivers/xfd/xfd.c Executable file → Normal file
View File

0
archivers/xfd/xfdmaster.h Executable file → Normal file
View File

0
archivers/zip/unzip.c Executable file → Normal file
View File

0
archivers/zip/unzip.h Executable file → Normal file
View File

0
audio.c Executable file → Normal file
View File

0
autoconf.c Executable file → Normal file
View File

0
blitops.c Executable file → Normal file
View File

15
blitter.c Executable file → Normal file
View File

@ -954,9 +954,18 @@ static void blit_bltset (int con)
{
int i;
blitdesc = bltcon1 & 2;
blt_info.blitashift = bltcon0 >> 12;
blt_info.blitdownashift = 16 - blt_info.blitashift;
blt_info.blitbshift = bltcon1 >> 12;
blt_info.blitdownbshift = 16 - blt_info.blitbshift;
if (bltstate != BLT_done && con == 2)
return;
blitline = bltcon1 & 1;
blitfill = bltcon1 & 0x18;
blitdesc = bltcon1 & 2;
blit_ch = (bltcon0 & 0x0f00) >> 8;
if (blitline) {
@ -992,10 +1001,6 @@ static void blit_bltset (int con)
blit_nod = 0;
}
blt_info.blitashift = bltcon0 >> 12;
blt_info.blitdownashift = 16 - blt_info.blitashift;
blt_info.blitbshift = bltcon1 >> 12;
blt_info.blitdownbshift = 16 - blt_info.blitbshift;
}
static void blit_modset (void)

0
blkdev.c Executable file → Normal file
View File

0
bsdsocket.c Executable file → Normal file
View File

0
build68k.c Executable file → Normal file
View File

0
catweasel.c Executable file → Normal file
View File

0
cd32_fmv.c Executable file → Normal file
View File

0
cdrom.c Executable file → Normal file
View File

0
cdtv.c Executable file → Normal file
View File

4
cfgfile.c Executable file → Normal file
View File

@ -524,6 +524,7 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
cfgfile_write (f, "gfx_lores=%s\n", p->gfx_resolution == 0 ? "true" : "false");
cfgfile_write (f, "gfx_resolution=%s\n", lorestype1[p->gfx_resolution]);
cfgfile_write (f, "gfx_lores_mode=%s\n", loresmode[p->gfx_lores_mode]);
cfgfile_write (f, "gfx_flickerfixer=%s\n", p->gfx_scandoubler ? "true" : "false");
cfgfile_write (f, "gfx_linemode=%s\n", linemode1[p->gfx_linedbl]);
cfgfile_write (f, "gfx_fullscreen_amiga=%s\n", fullmodes[p->gfx_afullscreen]);
cfgfile_write (f, "gfx_fullscreen_picasso=%s\n", fullmodes[p->gfx_pfullscreen]);
@ -940,6 +941,7 @@ static int cfgfile_parse_host (struct uae_prefs *p, char *option, char *value)
|| cfgfile_yesno (option, value, "gfx_vsync", &p->gfx_avsync)
|| cfgfile_yesno (option, value, "gfx_vsync_picasso", &p->gfx_pvsync)
|| cfgfile_yesno (option, value, "gfx_blacker_than_black", &p->gfx_blackerthanblack)
|| cfgfile_yesno (option, value, "gfx_flickerfixer", &p->gfx_scandoubler)
|| cfgfile_yesno (option, value, "show_leds", &p->leds_on_screen)
|| cfgfile_yesno (option, value, "synchronize_clock", &p->tod_hack)
|| cfgfile_yesno (option, value, "magic_mouse", &p->input_magic_mouse)
@ -3013,7 +3015,7 @@ void default_prefs (struct uae_prefs *p, int type)
p->gfx_filter_filtermode = 0;
p->gfx_filter_scanlineratio = (1 << 4) | 1;
p->gfx_filter_keep_aspect = 0;
p->gfx_filter_autoscale = 1;
p->gfx_filter_autoscale = 0;
strcpy (p->df[0], "df0.adf");
strcpy (p->df[1], "df1.adf");

0
cia.c Executable file → Normal file
View File

0
core.cw4.c Executable file → Normal file
View File

0
cpu_small.c Executable file → Normal file
View File

0
cpummu.c Executable file → Normal file
View File

0
cpuopti.c Executable file → Normal file
View File

0
cpustbl_small.c Executable file → Normal file
View File

0
cputbl_small.h Executable file → Normal file
View File

0
crc32.c Executable file → Normal file
View File

54
custom.c Executable file → Normal file
View File

@ -141,6 +141,8 @@ static uae_u16 lof;
static int next_lineno, prev_lineno;
static enum nln_how nextline_how;
static int lof_changed = 0;
static int scandoubled_line;
/* Stupid genlock-detection prevention hack.
* We should stop calling vsync_handler() and
* hstop_handler() completely but it is not
@ -392,6 +394,11 @@ STATIC_INLINE int nodraw (void)
return !currprefs.cpu_cycle_exact && framecnt != 0;
}
static int doflickerfix (void)
{
return currprefs.gfx_linedbl && doublescan < 0 && interlace_seen;
}
uae_u32 get_copper_address (int copno)
{
switch (copno) {
@ -2339,13 +2346,12 @@ STATIC_INLINE int color_changes_differ (struct draw_info *dip, struct draw_info
/* End of a horizontal scan line. Finish off all decisions that were not
* made yet. */
static void finish_decisions (void)
static void finish_decisions (int hpos)
{
struct draw_info *dip;
struct draw_info *dip_old;
struct decision *dp;
int changed;
int hpos = current_hpos ();
if (nodraw ())
return;
@ -2452,7 +2458,7 @@ static void reset_decisions (void)
fetch_state = fetch_not_started;
if (plfstate > plf_active)
plfstate = plf_idle;
plfstate = plf_idle;
if (plfstate == plf_active && !(currprefs.chipset_mask & CSMASK_ECS_AGNUS))
plfstate = plf_idle;
@ -2621,7 +2627,7 @@ void init_hz (void)
eventtab[ev_hsync].evtime = get_cycles() + HSYNCTIME;
events_schedule ();
if (hzc) {
interlace_seen = bplcon0 & 4;
interlace_seen = (bplcon0 & 4) ? 1 : 0;
reset_drawing ();
}
compute_vsynctime ();
@ -4362,6 +4368,8 @@ static void do_sprites (int hpos)
if (vpos < sprite_vblank_endline)
return;
if (doflickerfix () && !(next_lineno & 1))
return;
#ifndef CUSTOM_SIMPLE
maxspr = hpos;
@ -4753,27 +4761,28 @@ static void CIA_vsync_prehandler (int dotod)
ciavsync_counter++;
}
static uaecptr prevbpl[MAXVPOS][8];
static void hsync_scandoubler (int line, int lof)
static uaecptr prevbpl[2][MAXVPOS][8];
static void hsync_scandoubler (int lof)
{
int i;
uaecptr bpl[8];
for (i = 0; i < 8; i++) {
bpl[i] = prevbpl[vpos][i];
prevbpl[vpos][i] = bplpt[i];
bplpt[i] = bpl[i];
prevbpl[lof][vpos][i] = bplpt[i];
bplpt[i] = prevbpl[1 - lof][vpos - lof][i];
}
next_lineno++;
scandoubled_line = 1;
reset_decisions ();
finish_decisions ();
plfstate = plf_idle;
finish_decisions (maxhpos);
hsync_record_line_state (next_lineno, nln_normal, thisline_changed);
hardware_line_completed (next_lineno);
for (i = 0; i < 8; i++) {
bplpt[i] = prevbpl[vpos][i];
}
scandoubled_line = 0;
next_lineno--;
for (i = 0; i < 8; i++)
bplpt[i] = prevbpl[lof][vpos][i];
}
static void hsync_handler (void)
@ -4782,7 +4791,7 @@ static void hsync_handler (void)
if (!nocustom ()) {
sync_copper_with_cpu (maxhpos, 0);
finish_decisions ();
finish_decisions (hpos);
if (thisline_decision.plfleft != -1) {
if (currprefs.collision_level > 1)
do_sprite_collisions ();
@ -4861,6 +4870,10 @@ static void hsync_handler (void)
cycle_diagram_free_cycles[f_fetchmode][GET_RES (f_bplcon0)][GET_PLANES_LIMIT (f_bplcon0)]);
}
hardware_line_completed (next_lineno);
if (doflickerfix ()) {
hsync_scandoubler (lof ? 1 : 0);
next_lineno++;
}
}
/* In theory only an equality test is needed here - but if a program
@ -4921,13 +4934,14 @@ static void hsync_handler (void)
if ((bplcon0 & 4) && currprefs.gfx_linedbl)
notice_interlace_seen ();
nextline_how = nln_normal;
if (currprefs.gfx_linedbl && doublescan < 0) {
if (doflickerfix ()) {
lineno *= 2;
hsync_scandoubler (lineno, lof);
} else if (currprefs.gfx_linedbl && (doublescan == 0 || interlace_seen)) {
if (!lof)
lineno++;
} else if (currprefs.gfx_linedbl && (doublescan <= 0 || interlace_seen > 0)) {
lineno *= 2;
nextline_how = currprefs.gfx_linedbl == 1 ? nln_doubled : nln_nblack;
if ((bplcon0 & 4) || (interlace_seen && !lof)) {
if ((bplcon0 & 4) || (interlace_seen > 0 && !lof)) {
if (!lof) {
lineno++;
nextline_how = nln_lower;

2
debug.c Executable file → Normal file
View File

@ -1035,6 +1035,8 @@ static void deepcheatsearch (char **c)
addrcnt += size;
cnt++;
}
if (cnt > 0)
console_out ("\n");
listcheater (1, size);
} else {
console_out ("Now continue with 'g' and use 'D' again after you have lost another life\n");

View File

@ -1,4 +0,0 @@
[ViewState]
Mode=
Vid=
FolderType=NotSpecified

25
disk.c Executable file → Normal file
View File

@ -1148,7 +1148,7 @@ static int drive_running (drive * drv)
return !drv->motoroff;
}
static void motordelay_func(uae_u32 v)
static void motordelay_func (uae_u32 v)
{
floppy[v].motordelay = 0;
}
@ -1177,7 +1177,7 @@ static void drive_motor (drive * drv, int off)
write_log (" ->motor off");
if (currprefs.cpu_model <= 68010 && currprefs.m68k_speed == 0) {
drv->motordelay = 1;
event2_newevent2(30, drv - floppy, motordelay_func);
event2_newevent2 (30, drv - floppy, motordelay_func);
}
}
drv->motoroff = off;
@ -2123,7 +2123,7 @@ void DISK_check_change (void)
if (drv->dskready_down_time > 0)
drv->dskready_down_time--;
/* emulate drive motor turn on time */
if (drv->dskready_time && !drive_empty(drv)) {
if (drv->dskready_time > 0 && !drive_empty(drv)) {
drv->dskready_time--;
if (drv->dskready_time == 0)
drv->dskready = 1;
@ -2270,15 +2270,18 @@ uae_u8 DISK_status (void)
st &= ~0x20;
}
} else {
/* report drive ID */
if (drv->idbit && currprefs.dfxtype[dr] != DRV_35_DD_ESCOM)
st &= ~0x20;
/* dskrdy needs some cycles after switching the motor off.. (Pro Tennis Tour) */
if (drv->motordelay) {
write_log ("MOTORDELAY! %x\n", M68K_GETPC);
st &= ~0x20;
drv->motordelay = 0;
if (currprefs.cs_df0idhw || dr > 0) {
/* report drive ID */
if (drv->idbit && currprefs.dfxtype[dr] != DRV_35_DD_ESCOM)
st &= ~0x20;
} else {
/* non-ID internal drive: mirror real dskready */
if (drv->dskready)
st &= ~0x20;
}
/* dskrdy needs some cycles after switching the motor off.. (Pro Tennis Tour) */
if (!currprefs.cs_df0idhw && dr == 0 && drv->motordelay)
st &= ~0x20;
}
if (drive_track0 (drv))
st &= ~0x10;

48
drawing.c Executable file → Normal file
View File

@ -215,7 +215,7 @@ uae_sem_t gui_sem;
int inhibit_frame;
int framecnt = 0;
int frame_redraw_necessary;
static int frame_redraw_necessary;
static int picasso_redraw_necessary;
#ifdef XLINECHECK
@ -364,7 +364,7 @@ int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
dx = 1;
dbl2 = dbl1 = currprefs.gfx_linedbl ? 1 : 0;
if (doublescan && !interlace_seen) {
if (doublescan && interlace_seen <= 0) {
dbl1--;
dbl2--;
}
@ -458,13 +458,13 @@ void get_custom_mouse_limits (int *pw, int *ph, int *pdx, int *pdy, int dbl)
dx = xshift (dx, res_shift);
dbl2 = dbl1 = currprefs.gfx_linedbl ? 1 : 0;
if ((doublescan || interlace_seen) && !dbl) {
if ((doublescan || interlace_seen > 0) && !dbl) {
dbl1--;
dbl2--;
}
if (interlace_seen)
if (interlace_seen > 0)
dbl2++;
if (!interlace_seen && dbl)
if (interlace_seen <= 0 && dbl)
dbl2--;
h = xshift (h, dbl1);
dy = xshift (dy, dbl2);
@ -1668,7 +1668,7 @@ static void init_aspect_maps (void)
return;
linedbld = linedbl = currprefs.gfx_linedbl;
if (doublescan > 0 && !interlace_seen) {
if (doublescan > 0 && interlace_seen <= 0) {
linedbl = 0;
linedbld = 1;
}
@ -1932,7 +1932,9 @@ static void pfield_draw_line (int lineno, int gfx_ypos, int follow_ypos)
dp_for_drawing = line_decisions + lineno;
dip_for_drawing = curr_drawinfo + lineno;
switch (linestate[lineno]) {
switch (linestate[lineno])
{
case LINE_REMEMBERED_AS_PREVIOUS:
if (!warned)
write_log ("Shouldn't get here... this is a bug.\n"), warned++;
@ -2216,7 +2218,7 @@ static void center_image (void)
/* @@@ interlace_seen used to be (bplcon0 & 4), but this is probably
* better. */
if (prev_x_adjust != visible_left_border || prev_y_adjust != thisframe_y_adjust)
frame_redraw_necessary |= (interlace_seen && linedbl) ? 2 : 1;
frame_redraw_necessary |= (interlace_seen > 0 && linedbl) ? 2 : 1;
max_diwstop = 0;
min_diwstart = 10000;
@ -2633,40 +2635,40 @@ void finish_drawing_frame (void)
for (i = 0; i < max_ypos_thisframe; i++) {
int i1 = i + min_ypos_for_screen;
int line = i + thisframe_y_adjust_real;
int where;
int where2;
if (linestate[line] == LINE_UNDECIDED)
break;
where = amiga2aspect_line_map[i1];
if (where >= gfxvidinfo.height)
where2 = amiga2aspect_line_map[i1];
if (where2 >= gfxvidinfo.height)
break;
if (where < 0)
if (where2 < 0)
continue;
pfield_draw_line (line, where, amiga2aspect_line_map[i1 + 1]);
pfield_draw_line (line, where2, amiga2aspect_line_map[i1 + 1]);
}
/* clear possible old garbage at the bottom if emulated area become smaller */
for (i = last_max_ypos; i < gfxvidinfo.height; i++) {
int i1 = i + min_ypos_for_screen;
int line = i + thisframe_y_adjust_real;
int where = amiga2aspect_line_map[i1];
int where2 = amiga2aspect_line_map[i1];
xcolnr tmp;
if (where >= gfxvidinfo.height)
if (where2 >= gfxvidinfo.height)
break;
if (where < 0)
if (where2 < 0)
continue;
tmp = colors_for_drawing.acolors[0];
colors_for_drawing.acolors[0] = getxcolor (0);
xlinebuffer = gfxvidinfo.linemem;
if (xlinebuffer == 0)
xlinebuffer = row_map[where];
xlinebuffer = row_map[where2];
xlinebuffer -= linetoscr_x_adjust_bytes;
fill_line ();
linestate[line] = LINE_UNDECIDED;
do_flush_line (where);
do_flush_line (where2);
colors_for_drawing.acolors[0] = tmp;
}
@ -2745,12 +2747,15 @@ void redraw_frame (void)
void vsync_handle_redraw (int long_frame, int lof_changed)
{
last_redraw_point++;
if (lof_changed || ! interlace_seen || last_redraw_point >= 2 || long_frame) {
if (lof_changed || interlace_seen <= 0 || last_redraw_point >= 2 || long_frame || doublescan < 0) {
last_redraw_point = 0;
if (framecnt == 0)
finish_drawing_frame ();
interlace_seen = 0;
if (interlace_seen > 0)
interlace_seen = -1;
else if (interlace_seen == -1)
interlace_seen = 0;
/* At this point, we have finished both the hardware and the
* drawing frame. Essentially, we are outside of all loops and
@ -2884,6 +2889,9 @@ static void gfxbuffer_reset (void)
void notice_interlace_seen (void)
{
// non-lace to lace switch (non-lace active at least one frame)?
if (interlace_seen == 0)
frame_redraw_necessary = 2;
interlace_seen = 1;
frame_res_lace = 1;
}

0
driveclick.c Executable file → Normal file
View File

Some files were not shown because too many files have changed in this diff Show More