static DECLFW(Mapper76_write) { switch(A&0xE001){ case 0x8000: MMC3_cmd = V; break; case 0x8001: switch(MMC3_cmd&0x07){ case 2: VROM_BANK2(0x000,V);break; case 3: VROM_BANK2(0x800,V);break; case 4: VROM_BANK2(0x1000,V);break; case 5: VROM_BANK2(0x1800,V);break; case 6: if(MMC3_cmd&0x40) ROM_BANK8(0xC000,V); else ROM_BANK8(0x8000,V); break; case 7: ROM_BANK8(0xA000,V); break; } break; case 0xA000: MIRROR_SET(V&1); break; } }
static DECLFW(Mapper33_write) { //printf("%04x:%02x, %d\n",A,V,scanline); A&=0xF003; if(A>=0xA000 && A<=0xA003) VROM_BANK1(0x1000+((A&3)<<10),V); else switch(A) { case 0x8000:if(!is48) MIRROR_SET((V>>6)&1); ROM_BANK8(0x8000,V); break; case 0x8001:ROM_BANK8(0xA000,V); break; case 0x8002:VROM_BANK2(0x0000,V);break; case 0x8003:VROM_BANK2(0x0800,V);break; } }