void Map4_Set_PPU_Banks() { if ( S.NesHeader.VROMSize > 0 ) { if ( Map4_Chr_Swap() ) { W.PPUBANK[0] = VROMPAGE(MS4.PPU[2] % (Map4_Vsz)); W.PPUBANK[1] = VROMPAGE(MS4.PPU[3] % (Map4_Vsz)); W.PPUBANK[2] = VROMPAGE(MS4.PPU[4] % (Map4_Vsz)); W.PPUBANK[3] = VROMPAGE(MS4.PPU[5] % (Map4_Vsz)); W.PPUBANK[4] = VROMPAGE((MS4.PPU[0] ) % (Map4_Vsz)); W.PPUBANK[5] = VROMPAGE((MS4.PPU[0]+1) % (Map4_Vsz)); W.PPUBANK[6] = VROMPAGE((MS4.PPU[1] ) % (Map4_Vsz)); W.PPUBANK[7] = VROMPAGE((MS4.PPU[1]+1) % (Map4_Vsz)); } else { W.PPUBANK[4] = VROMPAGE(MS4.PPU[2] % (Map4_Vsz)); W.PPUBANK[5] = VROMPAGE(MS4.PPU[3] % (Map4_Vsz)); W.PPUBANK[6] = VROMPAGE(MS4.PPU[4] % (Map4_Vsz)); W.PPUBANK[7] = VROMPAGE(MS4.PPU[5] % (Map4_Vsz)); W.PPUBANK[0] = VROMPAGE((MS4.PPU[0] ) % (Map4_Vsz)); W.PPUBANK[1] = VROMPAGE((MS4.PPU[0]+1) % (Map4_Vsz)); W.PPUBANK[2] = VROMPAGE((MS4.PPU[1] ) % (Map4_Vsz)); W.PPUBANK[3] = VROMPAGE((MS4.PPU[1]+1) % (Map4_Vsz)); } NESCore_Develop_Character_Data(); } else { W.PPUBANK[ 0 ] = CRAMPAGE( 0 ); W.PPUBANK[ 1 ] = CRAMPAGE( 1 ); W.PPUBANK[ 2 ] = CRAMPAGE( 2 ); W.PPUBANK[ 3 ] = CRAMPAGE( 3 ); W.PPUBANK[ 4 ] = CRAMPAGE( 4 ); W.PPUBANK[ 5 ] = CRAMPAGE( 5 ); W.PPUBANK[ 6 ] = CRAMPAGE( 6 ); W.PPUBANK[ 7 ] = CRAMPAGE( 7 ); NESCore_Develop_Character_Data(); } }
/*-------------------------------------------------------------------*/ void Map74_Set_PPU_Banks() { if ( NesHeader.byVRomSize > 0 ) { if ( Map74_Chr_Swap() ) { PPUBANK[ 0 ] = VROMPAGE( Map74_Chr4 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 1 ] = VROMPAGE( Map74_Chr5 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 2 ] = VROMPAGE( Map74_Chr6 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 3 ] = VROMPAGE( Map74_Chr7 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 4 ] = VROMPAGE( ( Map74_Chr01 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 5 ] = VROMPAGE( ( Map74_Chr01 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 6 ] = VROMPAGE( ( Map74_Chr23 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 7 ] = VROMPAGE( ( Map74_Chr23 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); InfoNES_SetupChr(); } else { PPUBANK[ 0 ] = VROMPAGE( ( Map74_Chr01 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 1 ] = VROMPAGE( ( Map74_Chr01 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 2 ] = VROMPAGE( ( Map74_Chr23 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 3 ] = VROMPAGE( ( Map74_Chr23 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 4 ] = VROMPAGE( Map74_Chr4 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 5 ] = VROMPAGE( Map74_Chr5 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 6 ] = VROMPAGE( Map74_Chr6 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 7 ] = VROMPAGE( Map74_Chr7 % ( NesHeader.byVRomSize << 3 ) ); InfoNES_SetupChr(); } } else { if ( Map74_Chr_Swap() ) { PPUBANK[ 0 ] = CRAMPAGE( 0 ); PPUBANK[ 1 ] = CRAMPAGE( 1 ); PPUBANK[ 2 ] = CRAMPAGE( 2 ); PPUBANK[ 3 ] = CRAMPAGE( 3 ); PPUBANK[ 4 ] = CRAMPAGE( 4 ); PPUBANK[ 5 ] = CRAMPAGE( 5 ); PPUBANK[ 6 ] = CRAMPAGE( 6 ); PPUBANK[ 7 ] = CRAMPAGE( 7 ); InfoNES_SetupChr(); } else { PPUBANK[ 0 ] = CRAMPAGE( 0 ); PPUBANK[ 1 ] = CRAMPAGE( 1 ); PPUBANK[ 2 ] = CRAMPAGE( 2 ); PPUBANK[ 3 ] = CRAMPAGE( 3 ); PPUBANK[ 4 ] = CRAMPAGE( 4 ); PPUBANK[ 5 ] = CRAMPAGE( 5 ); PPUBANK[ 6 ] = CRAMPAGE( 6 ); PPUBANK[ 7 ] = CRAMPAGE( 7 ); InfoNES_SetupChr(); } } }
/*-------------------------------------------------------------------*/ void SetBank_PPU() { if( NesHeader.byVRomSize > 0 ) { if( Map245_Reg[0] & 0x80 ) { PPUBANK[ 0 ] = VROMPAGE( Map245_Chr4 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 1 ] = VROMPAGE( Map245_Chr5 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 2 ] = VROMPAGE( Map245_Chr6 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 3 ] = VROMPAGE( Map245_Chr7 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 4 ] = VROMPAGE( ( Map245_Chr01 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 5 ] = VROMPAGE( ( Map245_Chr01 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 6 ] = VROMPAGE( ( Map245_Chr23 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 7 ] = VROMPAGE( ( Map245_Chr23 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); InfoNES_SetupChr(); } else { PPUBANK[ 0 ] = VROMPAGE( ( Map245_Chr01 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 1 ] = VROMPAGE( ( Map245_Chr01 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 2 ] = VROMPAGE( ( Map245_Chr23 + 0 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 3 ] = VROMPAGE( ( Map245_Chr23 + 1 ) % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 4 ] = VROMPAGE( Map245_Chr4 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 5 ] = VROMPAGE( Map245_Chr5 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 6 ] = VROMPAGE( Map245_Chr6 % ( NesHeader.byVRomSize << 3 ) ); PPUBANK[ 7 ] = VROMPAGE( Map245_Chr7 % ( NesHeader.byVRomSize << 3 ) ); InfoNES_SetupChr(); } } else { if( Map245_Reg[0] & 0x80 ) { PPUBANK[ 4 ] = CRAMPAGE( (Map245_Chr01+0)&0x07 ); PPUBANK[ 5 ] = CRAMPAGE( (Map245_Chr01+1)&0x07 ); PPUBANK[ 6 ] = CRAMPAGE( (Map245_Chr23+0)&0x07 ); PPUBANK[ 7 ] = CRAMPAGE( (Map245_Chr23+1)&0x07 ); PPUBANK[ 0 ] = CRAMPAGE( Map245_Chr4&0x07 ); PPUBANK[ 1 ] = CRAMPAGE( Map245_Chr5&0x07 ); PPUBANK[ 2 ] = CRAMPAGE( Map245_Chr6&0x07 ); PPUBANK[ 3 ] = CRAMPAGE( Map245_Chr7&0x07 ); InfoNES_SetupChr(); } else { PPUBANK[ 0 ] = CRAMPAGE( (Map245_Chr01+0)&0x07 ); PPUBANK[ 1 ] = CRAMPAGE( (Map245_Chr01+1)&0x07 ); PPUBANK[ 2 ] = CRAMPAGE( (Map245_Chr23+0)&0x07 ); PPUBANK[ 3 ] = CRAMPAGE( (Map245_Chr23+1)&0x07 ); PPUBANK[ 4 ] = CRAMPAGE( Map245_Chr4&0x07 ); PPUBANK[ 5 ] = CRAMPAGE( Map245_Chr5&0x07 ); PPUBANK[ 6 ] = CRAMPAGE( Map245_Chr6&0x07 ); PPUBANK[ 7 ] = CRAMPAGE( Map245_Chr7&0x07 ); InfoNES_SetupChr(); } } }