summaryrefslogtreecommitdiff
path: root/sys/src/games
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2014-02-25 23:18:26 +0100
committeraiju <devnull@localhost>2014-02-25 23:18:26 +0100
commit1a67cd2c4400bc5e0a6f79b2be0b1fc1b324ad64 (patch)
treef1cfef642d645af302dcc173da2ee97bb291f77b /sys/src/games
parentd8489586ecaa1c80a93537f20dcf2a28757f4340 (diff)
games/nes: fixed reload flags
Diffstat (limited to 'sys/src/games')
-rw-r--r--sys/src/games/nes/apu.c10
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)--;
}