void wd2793LoadState(WD2793* wd) { SaveState* state = saveStateOpenForRead("wd2793"); wd->step = saveStateGet(state, "step", 0); wd->curStep = saveStateGet(state, "curStep", 0); wd->stepTime = saveStateGet(state, "stepTime", 0); wd->regStatus = (UInt8) saveStateGet(state, "regStatus", 0); wd->regCommand = (UInt8) saveStateGet(state, "regCommand", 0); wd->regSector = (UInt8) saveStateGet(state, "regSector", 0); wd->regTrack = (UInt8) saveStateGet(state, "regTrack", 0); wd->regData = (UInt8) saveStateGet(state, "regData", 0); wd->immediateInt = saveStateGet(state, "immediateInt", 0); wd->intRequest = saveStateGet(state, "intRequest", 0); wd->dataRequest = saveStateGet(state, "dataRequest", 0); wd->dataReady = saveStateGet(state, "dataReady", 0); wd->stepDirection = saveStateGet(state, "stepDirection", 0); wd->headLoaded = saveStateGet(state, "headLoaded", 0); wd->dataRequsetTime = saveStateGet(state, "dataRequsetTime", 0); wd->drive = saveStateGet(state, "drive", 0); wd->sectorOffset = saveStateGet(state, "sectorOffset", 0); wd->dataAvailable = saveStateGet(state, "dataAvailable", 0); wd->diskTrack = (UInt8) saveStateGet(state, "diskTrack", 0); wd->diskTracks[0] = (UInt8) saveStateGet(state, "diskTracks0", 0); wd->diskTracks[1] = (UInt8) saveStateGet(state, "diskTracks1", 0); wd->diskTracks[2] = (UInt8) saveStateGet(state, "diskTracks2", 0); wd->diskTracks[3] = (UInt8) saveStateGet(state, "diskTracks3", 0); wd->diskSide = saveStateGet(state, "diskSide", 0); wd->diskDensity = saveStateGet(state, "diskDensity", 0); saveStateGetBuffer(state, "sectorBuf", wd->sectorBuf, sizeof(wd->sectorBuf)); saveStateClose(state); }
static void loadState(RomMapperOpcodeSaveRam* rm) { SaveState* state = saveStateOpenForRead("mapperOpcodeSaveRam"); saveStateGetBuffer(state, "saveRam", rm->saveRam, 0x8000); saveStateClose(state); }
static void loadState(Ram1kBMirrored* rm) { SaveState* state = saveStateOpenForRead("mapperMirroredRam"); rm->mask = saveStateGet(state, "mask", 0x400); saveStateGetBuffer(state, "ramData", rm->ramData, rm->mask + 1); saveStateClose(state); }
static void loadState(RomMapperMsxAudio* rm) { SaveState* state = saveStateOpenForRead("mapperMsxAudio"); rm->bankSelect = saveStateGet(state, "bankSelect", 0); saveStateGetBuffer(state, "ram", rm->ram, sizeof(rm->ram)); saveStateClose(state); if (rm->y8950 != NULL) { y8950LoadState(rm->y8950); } }
void wd33c93LoadState(WD33C93* wd33c93) { SaveState* state = saveStateOpenForRead("wd33c93"); int old = wd33c93->maxDev; int i; wd33c93->myId = saveStateGet(state, "myId", 0); wd33c93->targetId = saveStateGet(state, "targetId", 0); wd33c93->latch = (UInt8)saveStateGet(state, "latch", 0); wd33c93->phase = saveStateGet(state, "phase", BusFree); wd33c93->counter = saveStateGet(state, "counter", 0); wd33c93->blockCounter = saveStateGet(state, "blockCounter", 0); wd33c93->tc = saveStateGet(state, "tc", 0); wd33c93->maxDev = saveStateGet(state, "maxDev", 8); wd33c93->pBuf = saveStateGet(state, "pBuf", 0) + wd33c93->buffer; //wd33c93->timeout = saveStateGet(state, "timeout", 0); //wd33c93->timerRunning = saveStateGet(state, "timerRunning", 0); saveStateGetBuffer(state, "regs", wd33c93->regs, sizeof(wd33c93->regs)); saveStateGetBuffer(state, "buffer", wd33c93->buffer, BUFFER_SIZE); saveStateClose(state); if (old < wd33c93->maxDev) { for (i = old; i < wd33c93->maxDev; ++i) { wd33c93->dev[i] = wd33c93ScsiDevCreate(wd33c93, i); } } for (i = 0; i < wd33c93->maxDev; ++i) { scsiDeviceLoadState(wd33c93->dev[i]); } /* if (wd33c93->timerRunning) { boardTimerAdd(wd33c93->timer, wd33c93->timeout); } */ }
static void loadState(RomMapperSCCplus* rm) { SaveState* state = saveStateOpenForRead("mapperSCCplus"); char tag[16]; int bank; int i; for (i = 0; i < 4; i++) { sprintf(tag, "romMapper%d", i); rm->romMapper[i] = saveStateGet(state, tag, 0); sprintf(tag, "isRamSegment%d", i); rm->isRamSegment[i] = saveStateGet(state, tag, 0); sprintf(tag, "isMapped%d", i); rm->isMapped[i] = saveStateGet(state, tag, 0); } rm->modeRegister = (UInt8)saveStateGet(state, "modeRegister", 0); rm->sccMode = saveStateGet(state, "sccMode", 0); saveStateGetBuffer(state, "romData", rm->romData, sizeof(rm->romData)); saveStateClose(state); sccLoadState(rm->scc); for (bank = 0; bank < 4; bank++) { if (rm->isMapped[bank]) { slotMapPage(rm->slot, rm->sslot, rm->startPage + bank, rm->romData + 0x2000 * rm->romMapper[bank], 1, 0); } else { slotMapPage(rm->slot, rm->sslot, rm->startPage + bank, rm->romData + 0x20000, 1, 0); } } if (rm->sccMode == SCC_PLUS) { slotMapPage(rm->slot, rm->sslot, rm->startPage + 2, NULL, 1, 0); slotMapPage(rm->slot, rm->sslot, rm->startPage + 3, NULL, 0, 0); } else if (rm->sccMode = SCC_COMPATIBLE) { slotMapPage(rm->slot, rm->sslot, rm->startPage + 2, NULL, 0, 0); slotMapPage(rm->slot, rm->sslot, rm->startPage + 3, NULL, 1, 0); } else { slotMapPage(rm->slot, rm->sslot, rm->startPage + 2, NULL, 1, 0); slotMapPage(rm->slot, rm->sslot, rm->startPage + 3, NULL, 1, 0); } }
static void loadState(RamNormal* rm) { SaveState* state = saveStateOpenForRead("mapperNormalRam"); int i; rm->pages = saveStateGet(state, "pages", 0); saveStateGetBuffer(state, "ramData", rm->ramData, rm->pages * 0x2000); saveStateClose(state); for (i = 0; i < rm->pages; i++) { // slotMapPage(rm->slot, rm->sslot, i + rm->startPage, rm->ramData + 0x2000 * i, 1, 1); } }
static void loadState(RomMapperOpcodeMegaRam* rm) { SaveState* state = saveStateOpenForRead("mapperOpcodeMegaRam"); rm->megaRamLatch[0] = (UInt8)saveStateGet(state, "megaRamLatch0", 0); rm->megaRamLatch[1] = (UInt8)saveStateGet(state, "megaRamLatch1", 0); rm->megaRamLatch[2] = (UInt8)saveStateGet(state, "megaRamLatch2", 0); rm->megaRamLatch[3] = (UInt8)saveStateGet(state, "megaRamLatch3", 0); saveStateGetBuffer(state, "megaRam", rm->megaRam, 0x20000); saveStateClose(state); slotUpdate(rm); }
void archMidiLoadState(void) { SaveState* state = saveStateOpenForRead("ArchMidi"); char buf[64]; int i; // Get history for (i = 0; i < HISTORY_SIZE; i++) { char buf[32]; sprintf(buf, "history_%d", i); midi.out.history.data[i] = saveStateGet(state, buf, 0); } midi.out.history.head = saveStateGet(state, "history_head", 0); for (i = 0; i < 4; i++) { DevInfo* di = NULL; switch (i) { case 0: di = midi.out.current[0]; break; case 1: di = midi.out.current[1]; break; case 2: di = midi.in.current[0]; break; case 3: di = midi.in.current[1]; break; } if (di != NULL) { sprintf(buf, "buffer_%d_count", i); di->buffer.count = saveStateGet(state, buf, 0); sprintf(buf, "buffer_%d_remain", i); di->buffer.remain = saveStateGet(state, buf, 0); // status byte must be resent from di->buffer.data[0] // even if di->buffer.runningStatus was 1 when state saved. di->buffer.runningStatus = 0; sprintf(buf, "buffer_%d_data", i); saveStateGetBuffer(state, buf, di->buffer.data, sizeof(di->buffer.data)); } } saveStateClose(state); midiEnableMt32ToGmMapping(midi.out.mt32ToGm); }
static void loadState(RomMapperPAC* rm) { SaveState* state = saveStateOpenForRead("mapperPAC"); saveStateGetBuffer(state, "sram", rm->sram, sizeof(rm->sram)); saveStateClose(state); rm->sramEnabled = rm->sram[0x1ffe] == 0x4d && rm->sram[0x1fff] == 0x69; if (rm->sramEnabled) { slotMapPage(rm->slot, rm->sslot, rm->startPage, rm->sram, 1, 0); } else { slotUnmapPage(rm->slot, rm->sslot, rm->startPage); } }
static void ym2148LoadState(YM2148* midi) { SaveState* state = saveStateOpenForRead("ym2148"); midi->command = saveStateGet(state, "command", 0); midi->rxData = saveStateGet(state, "rxData", 0); midi->status = saveStateGet(state, "status", 0); midi->sendByte = saveStateGet(state, "sendByte", 0); midi->sendBuffer = saveStateGet(state, "sendBuffer", 0); midi->sendByte = saveStateGet(state, "sendByte", 0); midi->txPending = saveStateGet(state, "txPending", 0); saveStateGetBuffer(state, "rxQueue", midi->rxQueue, sizeof(midi->rxQueue)); midi->rxHead = saveStateGet(state, "rxHead", 0); midi->vector = saveStateGet(state, "vector", 0); saveStateClose(state); }
static void loadState(RomMapperOpcodeModule* rm) { SaveState* state = saveStateOpenForRead("mapperOpcodeModule"); rm->biosLatch = (UInt8)saveStateGet(state, "biosLatch", 0); rm->slotSelect = (UInt8)saveStateGet(state, "slotSelect", 0); rm->megaRamLatch[0] = (UInt8)saveStateGet(state, "megaRamLatch0", 0); rm->megaRamLatch[1] = (UInt8)saveStateGet(state, "megaRamLatch1", 0); rm->megaRamLatch[2] = (UInt8)saveStateGet(state, "megaRamLatch2", 0); rm->megaRamLatch[3] = (UInt8)saveStateGet(state, "megaRamLatch3", 0); saveStateGetBuffer(state, "ram", rm->ram, 0x6000); saveStateClose(state); ay8910LoadState(rm->ay8910); slotUpdate(rm); }
static void loadState(RomMapperMegaRAM* rm) { SaveState* state = saveStateOpenForRead("mapperMegaRAM"); char tag[16]; int i; for (i = 0; i < 4; i++) { sprintf(tag, "romMapper%d", i); rm->romMapper[i] = saveStateGet(state, tag, 0); } rm->writeEnabled = saveStateGet(state, "writeEnabled", 0); rm->size = saveStateGet(state, "size", 0); saveStateGetBuffer(state, "ramData", rm->ramData, rm->size); saveStateClose(state); for (i = 0; i < 4; i++) { slotMapPage(rm->slot, rm->sslot, rm->startPage + i, rm->ramData + rm->romMapper[i] * 0x2000, 1, rm->writeEnabled); slotMapPage(rm->slot, rm->sslot, rm->startPage + i + 4, rm->ramData + rm->romMapper[i] * 0x2000, 1, rm->writeEnabled); } }