Example #1
0
void nes_setrun(NES *nes, int run)
{
    if (run) { nes_textout(nes, 0, 222, "running", 2000, 1); }
    else     { nes_textout(nes, 0, 222, "paused" , -1  , 1); Sleep(16); }
    nes->isrunning = run;
    nes->ispaused  = 0;
    if (!run) while (!nes->ispaused) Sleep(1);
}
Example #2
0
void nes_reset(NES *nes)
{
    // disable ndb debugging will make cpu keep running
    ndb_set_debug(&(nes->ndb), NDB_DEBUG_MODE_DISABLE);
    nes->request_reset = 1; // request reset
    nes_textout(nes, 0, 222, "reset", 2000, 1);
}
Example #3
0
int nes_load_replay(NES *nes, char *file)
{
    FILE *fpsrc   = fopen(file, "rb");
    FILE *fpdst   = NULL;
    int   running = 0;
    int   ret     = 0;

    // pause nes thread if running
    running = nes_getrun(nes);
    if (running) nes_setrun(nes, 0);

    // close lastreplay file
    if (nes->replay.fp) {
        fclose(nes->replay.fp);
        nes->replay.fp = NULL;
    }

    fpdst = fopen(nes->replay.fname, "wb");
    ret   = copyfile(fpdst, fpsrc);

    // set replay to play mode
    nes->replay.mode = NES_REPLAY_PLAY;

    // reset nes
    nes_reset(nes);

    // show text
    nes_textout(nes, 0, 222, "replay", -1, 2);

    // resume running
    if (running) nes_setrun(nes, 1);

    return ret;
}