Example #1
0
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);
}
Example #3
0
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);
}
Example #4
0
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);
    }
}
Example #5
0
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);
    }
}
Example #7
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);
    }
}
Example #8
0
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);
}
Example #9
0
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);
}
Example #10
0
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);
    }
}
Example #11
0
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);
}
Example #13
0
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);
    }
}