示例#1
0
static void gbcSaveSRAM()
{
	if (enable_sram && save_sram) {
		sram_save();
		save_sram = 0;
	}
}
示例#2
0
void loader_unload()
{
	sram_save();
	if (romfile) free(romfile);
	if (sramfile) free(sramfile);
	if (saveprefix) free(saveprefix);
	if (rom.bank) free(rom.bank);
	if (ram.sbank) free(ram.sbank);
	romfile = sramfile = saveprefix = 0;
	rom.bank = 0;
	ram.sbank = 0;
	mbc.type = mbc.romsize = mbc.ramsize = mbc.batt = 0;
}
示例#3
0
void emu_reset()
{
        sram_save();
        rtc_save();

        hw_reset();
        lcd_reset();
        cpu_reset();
        mbc_reset();
        sound_reset();

        init = 0;
}
示例#4
0
void dma_write_sram(struct pi_controller* pi)
{
    size_t i;
    size_t length = (pi->regs[PI_RD_LEN_REG] & 0xffffff) + 1;

    uint8_t* sram = pi->sram.data;
    uint8_t* dram = (uint8_t*)pi->ri->rdram.dram;
    uint32_t cart_addr = pi->regs[PI_CART_ADDR_REG] - 0x08000000;
    uint32_t dram_addr = pi->regs[PI_DRAM_ADDR_REG];

    for(i = 0; i < length; ++i)
        sram[(cart_addr+i)^S8] = dram[(dram_addr+i)^S8];

    sram_save(&pi->sram);
}
示例#5
0
void loader_unload()
{
#if 0 //fndef __PALM__
	sram_save();
	if (romfile) free(romfile);
	if (sramfile) free(sramfile);
	if (saveprefix) free(saveprefix);
#endif
	if (rom.bank) free(rom.bank);
	if (ram.sbank) free(ram.sbank);
	romfile = sramfile = saveprefix = 0;
	rom.bank = 0;
	ram.sbank = 0;
	mbc.type = mbc.romsize = mbc.ramsize = mbc.batt = 0;
}
示例#6
0
static void cleanup()
{
	sram_save();
	rtc_save();
	/* IDEA - if error, write emergency savestate..? */
}