void DoCHRdealy() { int i; for (i=0; i<100; i++) DoCHR(i); }
static DECLFW(Mapper23_write) { if((A&0xF000)==0x8000) { PRGBanks[0] = V; DoPRG(); } else if((A&0xF000)==0xA000) { PRGBanks[1] = V; DoPRG(); } else { A|=((A>>2)&0x3)|((A>>4)&0x3)|((A>>6)&0x3); A&=0xF003; if(A>=0xb000 && A<=0xe003) { int x=((A>>1)&1)|((A-0xB000)>>11); CHRBanks[x]&=(0xF0)>>((A&1)<<2); CHRBanks[x]|=(V&0xF)<<((A&1)<<2); DoCHR(); } else switch(A)
static DECLFW(Mapper67_write) { A&=0xF800; if((A&0x800) && A<=0xb800) { CHRBanks[(A - 0x8800) >> 12] = V; DoCHR(); }
static DECLFW(Mapper22_write) { if(A<=0xAFFF) { switch(A&0xF000) { case 0x8000:PRGBanks[0] = V; DoPRG(); break; case 0xa000:PRGBanks[1] = V; DoPRG(); break; case 0x9000:Mirroring = V & 3; DoMirroring(); break; } } else { A&=0xF003; if(A>=0xb000 && A<=0xe003) { int x=(A&1)|((A-0xB000)>>11); CHRBanks[x]&=(0xF0)>>((A&2)<<1); CHRBanks[x]|=(V&0xF)<<((A&2)<<1); DoCHR(); } }