MCPcopy Create free account
hub / github.com/TASEmulators/fceux / CSync

Function CSync

src/boards/onebus.cpp:95–120  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93}
94
95static void CSync(void) {
96 static const uint8 midx[8] = { 0, 1, 2, 0, 3, 4, 5, 0 };
97 uint8 mask = 0xff >> midx[ppu201x[0xa] & 7];
98 uint32 block = ((cpu410x[0x0] & 0x0f) << 11) + ((ppu201x[0x8] & 0x70) << 4) + (ppu201x[0xa] & (~mask));
99 uint32 cswap = (mmc3cmd & 0x80) << 5;
100
101 uint8 bank0 = ppu201x[0x6] & (~1);
102 uint8 bank1 = ppu201x[0x6] | 1;
103 uint8 bank2 = ppu201x[0x7] & (~1);
104 uint8 bank3 = ppu201x[0x7] | 1;
105 uint8 bank4 = ppu201x[0x2];
106 uint8 bank5 = ppu201x[0x3];
107 uint8 bank6 = ppu201x[0x4];
108 uint8 bank7 = ppu201x[0x5];
109
110 setchr1(0x0000 ^ cswap, block | (bank0 & mask));
111 setchr1(0x0400 ^ cswap, block | (bank1 & mask));
112 setchr1(0x0800 ^ cswap, block | (bank2 & mask));
113 setchr1(0x0c00 ^ cswap, block | (bank3 & mask));
114 setchr1(0x1000 ^ cswap, block | (bank4 & mask));
115 setchr1(0x1400 ^ cswap, block | (bank5 & mask));
116 setchr1(0x1800 ^ cswap, block | (bank6 & mask));
117 setchr1(0x1c00 ^ cswap, block | (bank7 & mask));
118
119 setmirror((mirror ^ 1) & 1);
120}
121
122static void Sync(void) {
123 PSync();

Callers 2

SyncFunction · 0.85
DECLFWFunction · 0.85

Calls 2

setchr1Function · 0.85
setmirrorFunction · 0.85

Tested by

no test coverage detected