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 reset(int hard) { read4 = mem_getread(4); mem_setread(4,read); mem_setread(5,read); mem_setprg32(8,0); mem_setchr8(0,0); }
void mapper90_init(int r) { int i; mem_setread(0x5,mapper90_read_mul); mem_setwrite(0x5,mapper90_write_mul); mem_setwrite(0x8,mapper90_write_prg); mem_setwrite(0x9,mapper90_write_chrlo); mem_setwrite(0xA,mapper90_write_chrhi); mem_setwrite(0xB,mapper90_write_nt); mem_setwrite(0xC,mapper90_write_irq); mem_setwrite(0xD,mapper90_write_control); for(i=0;i<8;i++) { prg[i & 3] = 0; chrlo[i] = 0; chrhi[i] = 0; nt[i & 3] = 0; } bankmode = 0; mul[0] = mul[1] = 0; onebyte = 0; irqenabled = 0; irqmode = 0; irqxor = 0; irqlo = irqhi = 0; mirror = 0; revision = r; syncprg(); syncchr(); syncnt(); }
void nes_reset(int hard) { int i; if(nes->rom == 0) return; //set default read/write handlers for(i=0;i<16;i++) { mem_setread(i,0); mem_setwrite(i,0); } //set rom read handlers (mappers might use these) for(i=8;i<16;i++) mem_setread(i,nes_read_rom); //ram mem_setreadptr(0,nes->ram); mem_setwriteptr(0,nes->ram); mem_setreadptr(1,nes->ram); mem_setwriteptr(1,nes->ram); //ppu mem_setread(2,ppu_read); mem_setwrite(2,ppu_write); mem_setread(3,ppu_read); mem_setwrite(3,ppu_write); //apu mem_setread(4,nes_read_4000); mem_setwrite(4,nes_write_4000); //mapper will set its read/write handlers nes->mapper->reset(hard); nes->frame_irqmode = 0; apu_reset(hard); ppu_reset(); dead6502_reset(); if(hard) { memset(nes->ram,0,0x800); for(i=0;i<32;i++) pal_write(i,startup_pal[i]); } log_message("nes reset ok\n"); }