void fme7_sync() { int i; //special case prg page if(prg[0] & 0x40) if(prg[0] & 0x80) mem_setsram8(6,0); else mem_unsetcpu8(6); else mem_setprg8(6,prg[0] & 0x3F); //set prg pages mem_setprg8(0x8,prg[1]); mem_setprg8(0xA,prg[2]); mem_setprg8(0xC,prg[3]); mem_setprg8(0xE,-1); //set chr pages for(i=0;i<8;i++) mem_setchr1(i,chr[i]); switch(mirror) { case 0: ppu_setmirroring(MIRROR_V); break; case 1: ppu_setmirroring(MIRROR_H); break; case 2: ppu_setmirroring(MIRROR_1L); break; case 3: ppu_setmirroring(MIRROR_1H); break; } }
void mmc2_sync() { mem_setprg8(0x8,PRGBank); mem_setprg8(0xA,0xD); mem_setprg8(0xC,0xE); mem_setprg8(0xE,0xF); mem_setchr4(0,LatchA[LatchAState]); mem_setchr4(4,LatchB[LatchBState]); ppu_setmirroring(Mirroring); }
static void sync() { int i; mem_setchr2(0,chr[0]); mem_setchr2(2,chr[1]); for(i=4;i<8;i++) mem_setchr1(i,chr[i - 2]); mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg16(0xC,0xFF); }
static void sync() { int i; mem_setwram8(6,0); mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg8(0xC,prg[2]); mem_setprg8(0xE,0xFF); for(i=0;i<8;i++) mem_setchr1(i,chr[i]); }
static void sync() { int i; mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg16(0xC,0x1F); for(i=0;i<8;i++) mem_setchr1(i,chr[i] >> map[4]); if(mirror & 1) ppu_setmirroring(MIRROR_H); else ppu_setmirroring(MIRROR_V); }
static void sync_34x3() { u8 *reg = namcot108_getregs(); mem_setchr2(0,(reg[0] & 0x3F) >> 1); mem_setchr2(2,(reg[1] & 0x3F) >> 1); mem_setchr1(4,reg[2] | 0x40); mem_setchr1(5,reg[3] | 0x40); mem_setchr1(6,reg[4] | 0x40); mem_setchr1(7,reg[5] | 0x40); mem_setprg8(0x8,reg[6]); mem_setprg8(0xA,reg[7]); mem_setprg16(0xC,0xFF); }
static void sync() { int i; mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg8(0xC,prg[2]); mem_setprg8(0xE,-1); for(i=0;i<8;i++) mem_setchr1(i,chr[i]); if(mirror & 0x80) ppu_setmirroring(MIRROR_V); else ppu_setmirroring(MIRROR_H); }
static void sync() { int i; mem_setprg16(0x8,prg[0]); mem_setprg8(0xC,prg[1]); mem_setprg8(0xE,0xFF); for(i=0;i<8;i++) mem_setchr1(i,chr[i]); switch(mirror & 0xC) { case 0x0: mem_setmirroring(MIRROR_V); break; case 0x4: mem_setmirroring(MIRROR_H); break; case 0x8: mem_setmirroring(MIRROR_1L); break; case 0xC: mem_setmirroring(MIRROR_1H); break; } }
static void sync() { int i; if(nes->cart->wram.size) mem_setwram4(7,0); mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg16(0xC,0xFF); for(i=0;i<8;i++) mem_setchr1(i,chr[i] >> map[4]); switch(mirror) { case 0: mem_setmirroring(MIRROR_V); break; case 1: mem_setmirroring(MIRROR_H); break; case 2: mem_setmirroring(MIRROR_1L); break; case 3: mem_setmirroring(MIRROR_1H); break; } }
static void sync() { int i; for(i=0;i<4;i++) mem_setprg8(8 + (i * 2),prg[i]); for(i=0;i<8;i++) mem_setchr1(i,chr[i]); ppu_setmirroring(mirror); }
static void sync() { int i; u8 chrxor = (control & 0x80) >> 5; if((control & 0x40) == 0) { mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg8(0xC,prg[2]); } else { mem_setprg8(0xA,prg[0]); mem_setprg8(0xC,prg[1]); mem_setprg8(0x8,prg[2]); } mem_setprg8(0xE,-1); for(i=0;i<8;i++) mem_setchr1(i ^ chrxor,chr[i]); if((control & 0x80) == 0) { mem_setchr2(0 ^ chrxor,chr[0] >> 1); mem_setchr2(2 ^ chrxor,chr[2] >> 1); }
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 syncprg() { if((bankmode & 0x80) == 0) //dont map in rom at $6000-7FFF mem_unsetcpu8(6); switch(bankmode & 7) { case 0: mem_setprg8(0x6,(prg[3] << 2) + 3); mem_setprg8(0x8,0xFC); mem_setprg8(0xA,0xFD); mem_setprg8(0xC,0xFE); mem_setprg8(0xE,0xFF); break; case 1: mem_setprg8(0x6,(prg[3] << 1) + 1); mem_setprg8(0x8,prg[1]); mem_setprg8(0xA,prg[1] + 1); mem_setprg8(0xC,0xFE); mem_setprg8(0xE,0xFF); break; case 2: mem_setprg8(0x6,prg[3]); mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg8(0xC,prg[2]); mem_setprg8(0xE,0xFF); break; case 3: mem_setprg8(0x6,reverse(prg[3])); mem_setprg8(0x8,reverse(prg[0])); mem_setprg8(0xA,reverse(prg[1])); mem_setprg8(0xC,reverse(prg[2])); mem_setprg8(0xE,0xFF); break; case 4: mem_setprg8(0x6,(prg[3] << 2) + 3); mem_setprg8(0x8,0xFC); mem_setprg8(0xA,0xFD); mem_setprg8(0xC,0xFE); mem_setprg8(0xE,0xFF); break; case 5: mem_setprg8(0x6,(prg[3] << 1) + 1); mem_setprg8(0x8,prg[1]); mem_setprg8(0xA,prg[1] + 1); mem_setprg8(0xC,prg[3]); mem_setprg8(0xE,prg[3] + 1); break; case 6: mem_setprg8(0x6,prg[3]); mem_setprg8(0x8,prg[0]); mem_setprg8(0xA,prg[1]); mem_setprg8(0xC,prg[2]); mem_setprg8(0xE,prg[3]); break; case 7: mem_setprg8(0x6,reverse(prg[3])); mem_setprg8(0x8,reverse(prg[0])); mem_setprg8(0xA,reverse(prg[1])); mem_setprg8(0xC,reverse(prg[2])); mem_setprg8(0xE,reverse(prg[3])); break; } }