diff options
author | aiju <devnull@localhost> | 2014-02-25 23:18:26 +0100 |
---|---|---|
committer | aiju <devnull@localhost> | 2014-02-25 23:18:26 +0100 |
commit | 1a67cd2c4400bc5e0a6f79b2be0b1fc1b324ad64 (patch) | |
tree | f1cfef642d645af302dcc173da2ee97bb291f77b /sys/src/games | |
parent | d8489586ecaa1c80a93537f20dcf2a28757f4340 (diff) |
games/nes: fixed reload flags
Diffstat (limited to 'sys/src/games')
-rw-r--r-- | sys/src/games/nes/apu.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/src/games/nes/apu.c b/sys/src/games/nes/apu.c index 30d6399c7..afaa1cfd6 100644 --- a/sys/src/games/nes/apu.c +++ b/sys/src/games/nes/apu.c @@ -80,9 +80,10 @@ doenv(void) if(i == 2) continue; m = mem[0x4000 + 4 * i]; - if((apuctr[RELOAD] & (1<<i)) != 0) + if((apuctr[RELOAD] & (1<<i)) != 0){ *a = 0xf0 | m & 0x0f; - else if((*a & 0x0f) == 0){ + apuctr[RELOAD] &= ~(1<<i); + }else if((*a & 0x0f) == 0){ *a |= m & 0x0f; if((*a & 0xf0) == 0){ if((m & 0x20) != 0) @@ -93,9 +94,10 @@ doenv(void) (*a)--; } a = apuctr + TRILIN; - if((*a & 0x80) != 0) + if((apuctr[RELOAD] & (1<<2)) != 0){ *a = mem[0x4008]; - else if(*a != 0) + apuctr[RELOAD] &= ~(1<<2); + }else if(*a != 0) (*a)--; } |