_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;
}
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;
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;
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;
}
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;
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) {
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)) {
}
bpldmasetuphpos = -1;
bpldmasetupphase = 0;
+ ddfstrt_old_hpos = -1;
if (plf_state > plf_active)
plf_state = plf_idle;
ddf_change = vpos;
decide_line (hpos);
ddfstrt_old_hpos = hpos;
- ddfstrt_old_vpos = vpos;
ddfstrt = v;
calcdiw ();
if (ddfstop > 0xD4 && (ddfstrt & 4) == 4) {
#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
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;
}
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);
}
workprefs.immediate_blits = 0;
workprefs.gfx_framerate = 1;
+ workprefs.cachesize = 0;
}
}
workprefs.collision_level = IsDlgButtonChecked (hDlg, IDC_COLLISION0) ? 0
+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