aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-28 20:34:37 +0200
committerlemon <lsof@mailbox.org>2022-08-28 20:34:37 +0200
commit3529875bf083302c89158fe2981ad01f2c5d97f7 (patch)
treee146f9b0d2e036daacef68397aa196541b976ee9 /examples
parent888873e0994a5a7ae21a75d515e55e0df890e3d6 (diff)
attempt
Diffstat (limited to 'examples')
-rw-r--r--examples/nesemu1/nesemu1.cff16
1 files changed, 8 insertions, 8 deletions
diff --git a/examples/nesemu1/nesemu1.cff b/examples/nesemu1/nesemu1.cff
index f971091..bcfa3ca 100644
--- a/examples/nesemu1/nesemu1.cff
+++ b/examples/nesemu1/nesemu1.cff
@@ -105,7 +105,7 @@ struct GamePak {
switch {
case write and addr >= 0x8000 and this.mapperno == 7; // e.g. Rare games
this->setrom(0x8000, 0x8000, val & 7);
- for let i = 0; i++ < 4; {
+ for let i = 0; i < 4; i++ {
this.nta[i] = &this.nram[0x400 * ((val >> 4) & 1)];
}
case write and addr >= 0x8000 and this.mapperno == 2; // e.g. Rockman, Castlevania
@@ -218,7 +218,7 @@ struct PPU {
bgaddr (4, 1), showbg (11,1) bool, // reg 3 (w)
spsize (5, 1) bool, showsp (12,1) bool, oamaddr (24, 8),
slaveflag (6, 1) bool, showbgsp (11,2), oamdata (24, 2),
- nmienable (7, 1) bool, emprgb (12, 3), oamindex (26, 2),
+ nmienable (7, 1) bool, emprgb (13,3), oamindex (26, 2),
},
palette [32]u8,
oam [256]u8, oam2 [8]PPUSpr, oam3 [8]PPUSpr,
@@ -240,7 +240,7 @@ struct PPU {
i &= 0x3FFF;
if i >= 0x3F00 {
if i % 4 == 0 { i &= 0x0F; }
- return &ppu.palette[i & 31];
+ return &ppu.palette[i & 0x1F];
}
if i < 0x2000 {
return &g_pak.vbanks[(i / VROM_GRANULARITY) % VROM_PAGES][i % VROM_GRANULARITY];
@@ -291,7 +291,7 @@ struct PPU {
ppu.readbuffer = *t;
}
refreshopenbus(res);
- ppu.vaddr.#raw += (ppu.reg.invblank ? 32 : 1); // update address
+ ppu.vaddr.#raw += (ppu.reg.inc!=0 ? 32 : 1); // update address
}
return res;
}
@@ -357,7 +357,7 @@ struct PPU {
case 5; // pattern table bytes
ppu.tilepat = *mmap(ppu, ppu.pat_addr);
case 7; // interleave bits of the two pattern bytes
- let p = ppu.tilepat | (*mmap(ppu, ppu.pat_addr|8) << 8);
+ let p uint = ppu.tilepat | (*mmap(ppu, ppu.pat_addr|8) << 8);
p = (p&0xF00F) | ((p&0x0F00)>>4) | ((p&0x00F0)<<4);
p = (p&0xC3C3) | ((p&0x3030)>>2) | ((p&0x0C0C)<<2);
p = (p&0x9999) | ((p&0x4444)>>1) | ((p&0x2222)<<1);
@@ -378,7 +378,7 @@ struct PPU {
++ppu.sprinpos; // next sprite
if ppu.sproutpos < 8 { ppu.oam2[ppu.sproutpos].y = ppu.sprtmp; }
if ppu.sproutpos < 8 { ppu.oam2[ppu.sproutpos].sprindex = ppu.reg.oamindex; }
- let y1 = ppu.sprtmp, y2 int = y1 + (ppu.reg.spsize ? 16 : 8);
+ let y1 = ppu.sprtmp, y2 int = ppu.sprtmp + (ppu.reg.spsize ? 16 : 8);
if !(ppu.scanline >= y2 and ppu.scanline < y2) {
ppu.reg.oamaddr = ppu.sprinpos != 2 ? ppu.reg.oamaddr + 3 : 8;
}
@@ -407,8 +407,8 @@ struct PPU {
if showbg { // pick a pixel from shift registers
pixel = (ppu.bg_shift_pat >> (xpos*2)) & 3;
attr = (ppu.bg_shift_attr >> (xpos*2)) & (pixel != 0 ? 3 : 0);
- } else if ppu.vaddr.#raw & 0x3F00 == 0x3F00 and ppu.reg.showbgsp == 0 {
- pixel = ppu.vaddr.#raw;
+ } else if ppu.vaddr.raw & 0x3F00 == 0x3F00 and ppu.reg.showbgsp == 0 {
+ pixel = ppu.vaddr.raw;
}
// overlay the sprites