summaryrefslogtreecommitdiff
path: root/sys/src/games
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2014-02-24 19:50:02 +0100
committeraiju <devnull@localhost>2014-02-24 19:50:02 +0100
commit60c3c3b3dbf4e1ae03c1a376babec80900c14ecb (patch)
tree85466a2a7f52fbb6daddd2824c15dccfaca2e479 /sys/src/games
parent9486df09c2455ee3b22df8507db77e7d7276ad58 (diff)
games/nes: added uxrom (mapper 2)
Diffstat (limited to 'sys/src/games')
-rw-r--r--sys/src/games/nes/mem.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/sys/src/games/nes/mem.c b/sys/src/games/nes/mem.c
index c7c8b15ad..a19725ef2 100644
--- a/sys/src/games/nes/mem.c
+++ b/sys/src/games/nes/mem.c
@@ -138,6 +138,36 @@ t:
}
static void
+uxrom(int p, u8int v)
+{
+ static u8int b;
+
+ if(p < 0)
+ switch(p){
+ case INIT:
+ prgsh = 14;
+ chrsh = 13;
+ prgb[1] = prg + (nprg - 1) * 0x4000;
+ chrb[0] = chr;
+ break;
+ case SAVE:
+ put8(b);
+ return;
+ case RSTR:
+ b = get8();
+ break;
+ case SCAN:
+ return;
+ default:
+ nope(p);
+ return;
+ }
+ else
+ b = v % nprg;
+ prgb[0] = prg + b * 0x4000;
+}
+
+static void
mmc3(int p, u8int v)
{
static u8int m, b[8], l, n, en;
@@ -258,6 +288,7 @@ axrom(int p, u8int v)
void (*mapper[256])(int, u8int) = {
[0] nrom,
[1] mmc1,
+ [2] uxrom,
[4] mmc3,
[7] axrom,
};