X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=boards%2Fmmc3.c;h=bfee5cdb1f9076525efebd1f628145e029de6307;hp=63459101e24ee0e73590dcf57c21e99768b93cb2;hb=e7f5287861e2da956537a6db8abb26f9a26255f8;hpb=e2d0dd92bfad989cce4270fc0ac5a712476c7c50 diff --git a/boards/mmc3.c b/boards/mmc3.c index 6345910..bfee5cd 100644 --- a/boards/mmc3.c +++ b/boards/mmc3.c @@ -287,12 +287,25 @@ void GenMMC3Power(void) FCEU_CheatAddRAM(1,0x7000,WRAM); SetReadHandler(0x7000,0x7FFF,MAWRAMMMC6); SetWriteHandler(0x7000,0x7FFF,MBWRAMMMC6); +#ifdef ASM_6502 + // asm code needs pages to be set again.. + Page[14]=Page[15]=WRAM-0x7000; +#endif } else { FCEU_CheatAddRAM(wrams>>10,0x6000,WRAM); SetReadHandler(0x6000,0x6000+wrams-1,MAWRAM); SetWriteHandler(0x6000,0x6000+wrams-1,MBWRAM); +#ifdef ASM_6502 + { + int addr; + for (addr=0x6000; addr < 0x6000+wrams-0x7ff; addr += 0x800) + { + Page[addr>>11]=WRAM - 0x6000; + } + } +#endif } if(!(mmc3opts&2)) FCEU_dwmemset(WRAM,0,wrams); @@ -558,7 +571,7 @@ static DECLFW(M45Write) } EXPREGS[EXPREGS[4]]=V; EXPREGS[4]=(EXPREGS[4]+1)&3; - if(!EXPREGS[4]) + if(!EXPREGS[4]) { FCEU_printf("CHROR %02x, PRGOR %02x, CHRAND %02x, PRGAND %02x\n",EXPREGS[0],EXPREGS[1],EXPREGS[2],EXPREGS[3]); FCEU_printf("CHR0 %03x, CHR1 %03x, PRG0 %03x, PRG1 %03x\n", @@ -1528,6 +1541,10 @@ static void M254_Power(void) GenMMC3Power(); SetWriteHandler(0x8000,0xBFFF,M254Write); SetReadHandler(0x6000,0x7FFF,MR254WRAM); +#ifdef ASM_6502 + // hrrr.. can't handle those evil xors here.. + Page[12]=Page[13]=Page[14]=Page[15]=WRAM-0x6000; +#endif } void Mapper254_Init(CartInfo *info)