_stprintf(tmp, _T("floppy%dsubtypeid"), i);
cfgfile_dwrite_escape(f, tmp, _T("%s"), p->floppyslots[i].dfxsubtypeid);
}
+ if (p->floppyslots[i].dfxprofile[0]) {
+ _stprintf(tmp, _T("floppy%dprofile"), i);
+ cfgfile_dwrite_escape(f, tmp, _T("%s"), p->floppyslots[i].dfxprofile);
+ }
}
_stprintf (tmp, _T("floppy%dsound"), i);
cfgfile_dwrite (f, tmp, _T("%d"), p->floppyslots[i].dfxclick);
if (cfgfile_string_escape(option, value, tmpbuf, p->floppyslots[i].dfxsubtypeid, sizeof p->floppyslots[i].dfxsubtypeid / sizeof(TCHAR))) {
return 1;
}
+ _stprintf(tmpbuf, _T("floppy%dprofile"), i);
+ if (cfgfile_string_escape(option, value, tmpbuf, p->floppyslots[i].dfxprofile, sizeof p->floppyslots[i].dfxprofile / sizeof(TCHAR))) {
+ return 1;
+ }
}
if (cfgfile_intval (option, value, _T("chipmem_size"), &dummyint, 1)) {
bridge_type[dr] = type;
FloppyBridgeAPI *bridge = NULL;
int id = _tstol(p->floppyslots[dr].dfxsubtypeid);
- const TCHAR *name = _tcschr(p->floppyslots[dr].dfxsubtypeid, ':');
- if (name) {
- name++;
- for (int i = 0; i < bridgeprofiles.size(); i++) {
- FloppyBridgeAPI::FloppyBridgeProfileInformation fbpi = bridgeprofiles.at(i);
- if (fbpi.profileID == id && !_tcscmp(fbpi.name, name)) {
- bridge = FloppyBridgeAPI::createDriverFromProfileID(id);
- break;
- }
- }
- if (!bridge) {
+ if (p->floppyslots[dr].dfxprofile[0]) {
+ char *a = ua(p->floppyslots[dr].dfxprofile);
+ bridge = FloppyBridgeAPI::createDriverFromString(a);
+ xfree(a);
+ }
+ if (!bridge) {
+ const TCHAR *name = _tcschr(p->floppyslots[dr].dfxsubtypeid, ':');
+ if (name) {
+ name++;
for (int i = 0; i < bridgeprofiles.size(); i++) {
FloppyBridgeAPI::FloppyBridgeProfileInformation fbpi = bridgeprofiles.at(i);
- if (!_tcscmp(fbpi.name, name)) {
- bridge = FloppyBridgeAPI::createDriverFromProfileID(fbpi.profileID);
+ if (fbpi.profileID == id && !_tcscmp(fbpi.name, name)) {
+ bridge = FloppyBridgeAPI::createDriverFromProfileID(id);
break;
}
}
+ if (!bridge) {
+ for (int i = 0; i < bridgeprofiles.size(); i++) {
+ FloppyBridgeAPI::FloppyBridgeProfileInformation fbpi = bridgeprofiles.at(i);
+ if (!_tcscmp(fbpi.name, name)) {
+ bridge = FloppyBridgeAPI::createDriverFromProfileID(fbpi.profileID);
+ break;
+ }
+ }
+ }
}
}
if (!bridge) {