From b2a0472def2a55a4b2a6d2532801aa6c37097cad Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 5 Dec 2009 16:54:43 +0200 Subject: [PATCH] imported winuaesrc2000b25.zip --- arcadia.c | 4 +-- cfgfile.c | 15 ++++++++-- custom.c | 20 +++++-------- od-win32/win32.h | 6 ++-- od-win32/win32gui.c | 55 +++++++++++++++++++++--------------- od-win32/winuaechangelog.txt | 12 ++++++++ 6 files changed, 70 insertions(+), 42 deletions(-) diff --git a/arcadia.c b/arcadia.c index f0abcbb1..73c21d64 100644 --- a/arcadia.c +++ b/arcadia.c @@ -181,14 +181,14 @@ static int load_roms (struct arcadiarom *rom) _stprintf (path, L"%s%d", xpath, i + 1); if (!load_rom8 (path, arbmemory + 2 * 65536 * i + offset, rom->extra)) { if (i == 0) - write_log (L"Arcadia: %s rom load failed ('%s')\n", rom->type == ARCADIA_BIOS ? "bios" : "game", path); + write_log (L"Arcadia: %s rom load failed ('%s')\n", rom->type == ARCADIA_BIOS ? L"bios" : L"game", path); break; } i++; } if (i == 0) return 0; - write_log (L"Arcadia: %s rom %s loaded\n", rom->type == ARCADIA_BIOS ? "bios" : "game", xpath); + write_log (L"Arcadia: %s rom %s loaded\n", rom->type == ARCADIA_BIOS ? L"bios" : L"game", xpath); return 1; } diff --git a/cfgfile.c b/cfgfile.c index 91899640..c08354ef 100644 --- a/cfgfile.c +++ b/cfgfile.c @@ -1462,7 +1462,7 @@ struct uaedev_config_info *add_filesys_config (struct uae_prefs *p, int index, int i; TCHAR *s; - if (devname && _tcslen (devname) > 0) { + if (index < 0 && devname && _tcslen (devname) > 0) { for (i = 0; i < p->mountitems; i++) { if (p->mountconfig[i].devname && !_tcscmp (p->mountconfig[i].devname, devname)) return 0; @@ -3908,7 +3908,8 @@ static int bip_super (struct uae_prefs *p, int config, int compa, int romcheck) static int bip_arcadia (struct uae_prefs *p, int config, int compa, int romcheck) { - int roms[4]; + int roms[4], i; + struct romlist **rl; p->bogomem_size = 0; p->chipset_mask = 0; @@ -3932,6 +3933,16 @@ static int bip_arcadia (struct uae_prefs *p, int config, int compa, int romcheck roms[3] = -1; if (!configure_rom (p, roms, romcheck)) return 0; + rl = getarcadiaroms (); + for (i = 0; rl[i]; i++) { + if (config-- == 0) { + roms[0] = rl[i]->rd->id; + roms[1] = -1; + configure_rom (p, roms, 0); + break; + } + } + xfree (rl); return 1; } diff --git a/custom.c b/custom.c index 6c91450f..f3cdc2f4 100644 --- a/custom.c +++ b/custom.c @@ -239,7 +239,7 @@ static unsigned int bplcon0, bplcon1, bplcon2, bplcon3, bplcon4; static unsigned int bplcon0d, bplcon0dd, bplcon0_res, bplcon0_planes, bplcon0_planes_limit; static unsigned int diwstrt, diwstop, diwhigh; static int diwhigh_written; -static unsigned int ddfstrt, ddfstop, ddfstrt_old_hpos, ddfstrt_old_vpos; +static unsigned int ddfstrt, ddfstop, ddfstrt_old_hpos; static int ddf_change, badmode, diw_change; static int fmode; static int bplcon1_hpos; @@ -967,18 +967,13 @@ STATIC_INLINE maybe_check (int hpos) static void bpldmainitdelay (int hpos) { - int needdelay = 1; int hposa; hposa = hpos + BPLCON_AGNUS_DELAY; ddf_change = vpos; - if (hposa >= maxhpos - 1) - needdelay = 0; - if (hposa < 0x14) - needdelay = 0; - if (!needdelay) { - BPLCON0_Denise (hposa, bplcon0); - setup_fmodes (hposa); + if (hposa < 0x14) { + BPLCON0_Denise (hpos, bplcon0); + setup_fmodes (hpos); return; } if (bpldmasetuphpos < 0) { @@ -1875,9 +1870,8 @@ STATIC_INLINE void decide_line (int hpos) ok = 1; /* hack warning.. Writing to DDFSTRT when DMA should start must be ignored * (correct fix would be emulate this delay for every custom register, but why bother..) */ - if (ddfstrt_old_vpos == vpos) - if (hpos - 2 == ddfstrt_old_hpos) - ok = 0; + if (hpos - 2 == ddfstrt_old_hpos) + ok = 0; } if (ok) { if (dmaen (DMA_BITPLANE)) { @@ -2593,6 +2587,7 @@ static void reset_decisions (void) } bpldmasetuphpos = -1; bpldmasetupphase = 0; + ddfstrt_old_hpos = -1; if (plf_state > plf_active) plf_state = plf_idle; @@ -3590,7 +3585,6 @@ static void DDFSTRT (int hpos, uae_u16 v) ddf_change = vpos; decide_line (hpos); ddfstrt_old_hpos = hpos; - ddfstrt_old_vpos = vpos; ddfstrt = v; calcdiw (); if (ddfstop > 0xD4 && (ddfstrt & 4) == 4) { diff --git a/od-win32/win32.h b/od-win32/win32.h index 9d9ef198..fabc8882 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -18,9 +18,9 @@ #define WINUAEPUBLICBETA 1 #define LANG_DLL 1 -#define WINUAEBETA L"Beta 24" -#define WINUAEDATE MAKEBD(2009, 12, 4) -#define WINUAEEXTRA L"RC2" +#define WINUAEBETA L"Beta 25" +#define WINUAEDATE MAKEBD(2009, 12, 5) +#define WINUAEEXTRA L"RC3" #define WINUAEREV L"" #define IHF_WINDOWHIDDEN 6 diff --git a/od-win32/win32gui.c b/od-win32/win32gui.c index 47f8e577..0a8609d5 100644 --- a/od-win32/win32gui.c +++ b/od-win32/win32gui.c @@ -4133,7 +4133,7 @@ static void init_quickstartdlg_tooltip (HWND hDlg, TCHAR *tt) static void init_quickstartdlg (HWND hDlg) { static int firsttime; - int i, j, idx, idx2, qssize; + int i, j, idx, idx2, qssize, total; TCHAR tmp1[2 * MAX_DPATH], tmp2[MAX_DPATH], hostconf[MAX_DPATH]; TCHAR *p1, *p2; @@ -4179,29 +4179,39 @@ static void init_quickstartdlg (HWND hDlg) } SendDlgItemMessage (hDlg, IDC_QUICKSTART_MODEL, CB_SETCURSEL, idx2, 0); - WIN32GUI_LoadUIString (amodels[quickstart_model].id, tmp1, sizeof (tmp1) / sizeof (TCHAR)); - _tcscat (tmp1, L"\n"); - p1 = tmp1; - init_quickstartdlg_tooltip (hDlg, 0); + total = 0; SendDlgItemMessage (hDlg, IDC_QUICKSTART_CONFIGURATION, CB_RESETCONTENT, 0, 0L); - i = 0; - for (;;) { - p2 = _tcschr (p1, '\n'); - if (!p2) - break; - *p2++= 0; - SendDlgItemMessage (hDlg, IDC_QUICKSTART_CONFIGURATION, CB_ADDSTRING, 0, (LPARAM)p1); - p1 = p2; - p2 = _tcschr (p1, '\n'); - if (!p2) - break; - *p2++= 0; - if (quickstart_conf == i && _tcslen (p1) > 0) - init_quickstartdlg_tooltip (hDlg, p1); - p1 = p2; - i++; + if (amodels[quickstart_model].id == IDS_QS_MODEL_ARCADIA) { + struct romlist **rl = getarcadiaroms (); + for (i = 0; rl[i]; i++) { + SendDlgItemMessage (hDlg, IDC_QUICKSTART_CONFIGURATION, CB_ADDSTRING, 0, (LPARAM)rl[i]->rd->name); + total++; + } + xfree (rl); + } else { + WIN32GUI_LoadUIString (amodels[quickstart_model].id, tmp1, sizeof (tmp1) / sizeof (TCHAR)); + _tcscat (tmp1, L"\n"); + p1 = tmp1; + init_quickstartdlg_tooltip (hDlg, 0); + total = 0; + for (;;) { + p2 = _tcschr (p1, '\n'); + if (!p2) + break; + *p2++= 0; + SendDlgItemMessage (hDlg, IDC_QUICKSTART_CONFIGURATION, CB_ADDSTRING, 0, (LPARAM)p1); + p1 = p2; + p2 = _tcschr (p1, '\n'); + if (!p2) + break; + *p2++= 0; + if (quickstart_conf == total && _tcslen (p1) > 0) + init_quickstartdlg_tooltip (hDlg, p1); + p1 = p2; + total++; + } } - if (quickstart_conf >= i) + if (quickstart_conf >= total) quickstart_conf = 0; SendDlgItemMessage (hDlg, IDC_QUICKSTART_CONFIGURATION, CB_SETCURSEL, quickstart_conf, 0); @@ -5254,6 +5264,7 @@ static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l } workprefs.immediate_blits = 0; workprefs.gfx_framerate = 1; + workprefs.cachesize = 0; } } workprefs.collision_level = IsDlgButtonChecked (hDlg, IDC_COLLISION0) ? 0 diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 040fb572..c93efeb1 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,16 @@ +Beta 25: (RC3) + +- directory filesystem parameter (label, bootpri, rw) changes were + ignored unless device name was also changed (b22) +- BPLCON0 change was partially ignored if hpos was >= e0 (b17) +- disable JIT when cycle exact is ticked in GUI +- added Quickstart Arcadia ROM selection (lists all roms) +- random jumping single black scanline bug finally fixed (variable + that was not reset properly caused BPL DMA emulation to think this + line had BPL DMA disabled) I finally managed to duplicate this bug + 100% using Arcadia Leaderboard.. + Beta 24: (RC2) - non 8 divisible width and avi video recording crash fix -- 2.47.3