diff --git a/trunk/src/boards/fk23c.cpp b/trunk/src/boards/fk23c.cpp index 604d5160..d7b3889f 100644 --- a/trunk/src/boards/fk23c.cpp +++ b/trunk/src/boards/fk23c.cpp @@ -30,26 +30,22 @@ static uint32 CHRRAMSize; static void BMCFK23CCW(uint32 A, uint8 V) { - if(EXPREGS[0]&0x40) - setchr8(EXPREGS[2]|unromchr); - else if(EXPREGS[0]&0x20) { - setchr1r(0x10, A, V); - } - else - { - uint16 base=(EXPREGS[2]&0x7F)<<3; - if(EXPREGS[3]&2) - { - int cbase=(MMC3_cmd&0x80)<<5; - setchr1(A,V|base); - setchr1(0x0000^cbase,DRegBuf[0]|base); - setchr1(0x0400^cbase,EXPREGS[6]|base); - setchr1(0x0800^cbase,DRegBuf[1]|base); - setchr1(0x0c00^cbase,EXPREGS[7]|base); - } - else - setchr1(A,V|base); - } + if(EXPREGS[0]&0x40) + setchr8(EXPREGS[2]|unromchr); + else if(EXPREGS[0]&0x20) { + setchr1r(0x10, A, V); + } else { + uint16 base=(EXPREGS[2]&0x7F)<<3; + if(EXPREGS[3]&2) { + int cbase=(MMC3_cmd&0x80)<<5; + setchr1(A,V|base); + setchr1(0x0000^cbase,DRegBuf[0]|base); + setchr1(0x0400^cbase,EXPREGS[6]|base); + setchr1(0x0800^cbase,DRegBuf[1]|base); + setchr1(0x0c00^cbase,EXPREGS[7]|base); + } else + setchr1(A,V|base); + } } //some games are wired differently, and this will need to be changed. @@ -86,110 +82,110 @@ static int prg_mask; //PRG wrapper static void BMCFK23CPW(uint32 A, uint8 V) { - uint32 bank = (EXPREGS[1] & 0x1F); - uint32 hiblock = ((EXPREGS[0] & 8) << 4)|((EXPREGS[0] & 0x80) << 1)|(UNIFchrrama?((EXPREGS[2] & 0x40)<<3):0); - uint32 block = (EXPREGS[1] & 0x60) | hiblock; - uint32 extra = (EXPREGS[3] & 2); + uint32 bank = (EXPREGS[1] & 0x1F); + uint32 hiblock = ((EXPREGS[0] & 8) << 4)|((EXPREGS[0] & 0x80) << 1)|(UNIFchrrama?((EXPREGS[2] & 0x40)<<3):0); + uint32 block = (EXPREGS[1] & 0x60) | hiblock; + uint32 extra = (EXPREGS[3] & 2); +// FCEU_printf("0:%04X:%02X\n",A,V); - if((EXPREGS[0]&7)==4) - setprg32(0x8000,EXPREGS[1]>>1); - else if ((EXPREGS[0]&7)==3) - { - setprg16(0x8000,EXPREGS[1]); - setprg16(0xC000,EXPREGS[1]); - } - else - { - if(EXPREGS[0]&3) - { + if((EXPREGS[0]&7)==4) + setprg32(0x8000,EXPREGS[1]>>1); + else if ((EXPREGS[0]&7)==3) { + setprg16(0x8000,EXPREGS[1]); + setprg16(0xC000,EXPREGS[1]); + } else { + if(EXPREGS[0]&3) { uint32 blocksize = (6)-(EXPREGS[0]&3); uint32 mask = (1<Power=BMCFK23CPower; - info->Reset=BMCFK23CReset; - AddExState(EXPREGS, 8, 0, "EXPR"); - AddExState(&unromchr, 1, 0, "UCHR"); - AddExState(&dipswitch, 1, 0, "DPSW"); + GenMMC3_Init(info, 512, 256, 8, 0); + cwrap=BMCFK23CCW; + pwrap=BMCFK23CPW; + info->Power=BMCFK23CPower; + info->Reset=BMCFK23CReset; + AddExState(EXPREGS, 8, 0, "EXPR"); + AddExState(&unromchr, 1, 0, "UCHR"); + AddExState(&dipswitch, 1, 0, "DPSW"); prg_bonus = 1; if(MasterRomInfoParams.find("bonus") != MasterRomInfoParams.end()) @@ -267,21 +266,21 @@ void BMCFK23CA_Init(CartInfo *info) { is_BMCFK23CA = true; - GenMMC3_Init(info, 512, 256, 8, 0); - cwrap=BMCFK23CCW; - pwrap=BMCFK23CPW; - info->Power=BMCFK23CAPower; - info->Reset=BMCFK23CReset; - info->Close=BMCFK23CAClose; + GenMMC3_Init(info, 512, 256, 8, 0); + cwrap=BMCFK23CCW; + pwrap=BMCFK23CPW; + info->Power=BMCFK23CAPower; + info->Reset=BMCFK23CReset; + info->Close=BMCFK23CAClose; CHRRAMSize=8192; - CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSize); - SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSize, 1); - AddExState(CHRRAM, CHRRAMSize, 0, "CRAM"); + CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSize); + SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSize, 1); + AddExState(CHRRAM, CHRRAMSize, 0, "CRAM"); - AddExState(EXPREGS, 8, 0, "EXPR"); - AddExState(&unromchr, 1, 0, "UCHR"); - AddExState(&dipswitch, 1, 0, "DPSW"); + AddExState(EXPREGS, 8, 0, "EXPR"); + AddExState(&unromchr, 1, 0, "UCHR"); + AddExState(&dipswitch, 1, 0, "DPSW"); prg_bonus = 1; if(MasterRomInfoParams.find("bonus") != MasterRomInfoParams.end())