static void sync() { static u8 oldreg1 = 0x10; u8 reg1 = mmc1_getlowchr(); mmc1_syncmirror(); mmc1_syncsram(); mem_setvram8(0,0); if(reg1 & 0x10) { irqenabled = 0; irqcounter = 0; cpu_clear_irq(IRQ_MAPPER); } else irqenabled = 1; if(prglock) { mem_setprg32(8,0); if((oldreg1 & 0x10) == 0 && (reg1 & 0x10) == 0x10) prglock = 0; } else { if(reg1 & 8) mmc1_syncprg(7,8); else mem_setprg32(8,(reg1 >> 1) & 3); } oldreg1 = reg1; }
static void reset(int hard) { read4 = mem_getread(4); mem_setread(4,read); mem_setread(5,read); mem_setprg32(8,0); mem_setchr8(0,0); }
void sachen_tca01_init(int hard) { read4 = mem_getread(4); mem_setread(4,read_reg); mem_setread(5,read_reg); mem_setprg32(8,0); mem_setchr8(0,0); }
static void sync() { u8 data = latch_data; if(latch_addr >= 0x8000) data = nes_read_rom(latch_addr) & (data | 1); mem_setprg32(8,data & 0xF); mem_setchr8(0,(data >> 4) & 0xF); }
static void sync() { mem_setprg32(8,prg); mem_setvram8(0,0); switch(mirror) { case 0: ppu_setmirroring(MIRROR_H); break; case 1: ppu_setmirroring(MIRROR_V); break; case 2: ppu_setmirroring(MIRROR_1L); break; case 3: ppu_setmirroring(MIRROR_1H); break; } }
static void sync() { if(latch_addr & 0x1E) { mem_setprg16(0x8,latch_addr & 0x1F); mem_setprg16(0xC,latch_addr & 0x1F); } else { mem_setprg32(8,0); } mem_setchr8(0,latch_addr & 0x1F); mem_setmirroring(((latch_addr >> 5) & 1) ^ 1); }
static void reset(int hard) { mem_setwramsize(8); //initialize all bank pointers mem_setprg4(6,8); mem_setwram4(7,0); mem_setprg32(8,0); mem_setchr8(0,0); //get pointers to the data prg6 = mem_getreadptr(6); sram7 = mem_getreadptr(7); //remove pointers to memory mem_setreadptr(6,0); mem_setreadptr(7,0); mem_setwriteptr(7,0); //insert the function pointers from here mem_setreadfunc(6,read6); mem_setreadfunc(7,read7); mem_setwritefunc(7,write7); }
static void syncprg() { mem_setprg8(0x6,prg[0] & 0x7F); switch(prgsize) { case 0: mem_setprg32(8,prg[4]); break; case 1: mem_setprg16(0x8,prg[2]); mem_setprg16(0xC,prg[2]); break; case 2: mem_setprg16(0x8,prg[2]); mem_setprg8(0xC,prg[3]); mem_setprg8(0xE,prg[4]); break; case 3: mem_setprg8(0x8,prg[1]); mem_setprg8(0xA,prg[2]); mem_setprg8(0xC,prg[3]); mem_setprg8(0xE,prg[4]); break; } }
static void sync() { mem_setprg32(8,0); mem_setchr8(0,reg >> 7); }
static void sync() { mem_setprg32(8,latch_addr & 0xFF); mem_setchr8(0,latch_addr & 0xFF); }
static void sync() { mem_setprg32(8,latch_reg); mem_setvram8(0,0); }
static void sync() { mem_setprg32(8,(reg & 4) & 1); mem_setchr8(0,reg & 3); }
static void sync() { mem_setprg32(8,reg[0] & 7); mem_setchr8(0,((reg[0] & 0x18) >> 1) | (reg[1] & 3)); ppu_setmirroring(((~reg[0]) >> 5) & 1); }