}
+static void expansion_init_cards(struct uae_prefs *p, bool log)
+{
+ if (savestate_state != STATE_RESTORE || restore_cardno == 0) {
+ expansion_add_autoconfig(p);
+ expansion_init_cards(p);
+ expansion_autoconfig_sort(p);
+ }
+ expansion_parse_cards(p, log);
+}
+
void expansion_scan_autoconfig(struct uae_prefs *p, bool log)
{
cfgfile_compatibility_romtype(p);
- expansion_add_autoconfig(p);
- expansion_init_cards(p);
- expansion_autoconfig_sort(p);
- expansion_parse_cards(p, log);
+ expansion_init_cards(p, log);
}
void expamem_reset (int hardreset)
allocate_expamem ();
expamem_bank.name = _T("Autoconfig [reset]");
- expansion_add_autoconfig(&currprefs);
- expansion_init_cards(&currprefs);
- expansion_autoconfig_sort(&currprefs);
- expansion_parse_cards(&currprefs, true);
+ expansion_init_cards(&currprefs, true);
// this also resets all autoconfig devices
devices_reset_ext(hardreset);
if (dstptr)
dst = dstbak = dstptr;
else
- dstbak = dst = xmalloc(uae_u8, 1000);
+ dstbak = dst = xmalloc(uae_u8, 10000);
save_u32(3);
save_u32(0);
save_u32(cardnum);
save_u32(ec->size);
save_u32(ec->flags);
save_string(ec->name);
+ //write_log(_T("%d %08x %08x %08x %s\n"), cardnum, ec->base, ec->size, ec->flags, ec->name);
for (int j = 0; j < 16; j++) {
save_u8(ec->aci.autoconfig_bytes[j]);
}
ec->base = restore_u32();
ec->size = restore_u32();
ec->flags = restore_u32();
- s = restore_string();
- xfree(s);
+ ec->name = restore_string();
+
for (int j = 0; j < 16; j++) {
ec->aci.autoconfig_bytes[j] = restore_u8();
}
currprefs.uaeboard = changed_prefs.uaeboard = 0;
}
}
- uae_u32 dev_num = 0;
uae_u32 romtype = restore_u32();
+ //write_log(_T("%d %08x %08x %08x %08x %s\n"), cardnum, ec->base, ec->size, ec->flags, romtype, ec->name);
if (romtype != 0xffffffff) {
- dev_num = restore_u32();
+ uae_u32 dev_num = restore_u32();
ec->aci.devnum = dev_num;
struct boardromconfig* brc = get_device_rom(&currprefs, romtype, dev_num, NULL);
if (!brc) {
ec->aci.prefs = &currprefs;
ec->aci.ert = ec->ert;
ec->aci.rc = rc;
+ //write_log(_T("%d %08x %08x %08x %08x %s\n"), i, ec->base, ec->size, ec->flags, _T(""), ec->name);
if (rc && ec->ert) {
_tcscpy(ec->aci.name, ec->ert->friendlyname);
if (ec->ert->init) {