diff options
author | aiju <devnull@localhost> | 2014-02-24 19:50:02 +0100 |
---|---|---|
committer | aiju <devnull@localhost> | 2014-02-24 19:50:02 +0100 |
commit | 60c3c3b3dbf4e1ae03c1a376babec80900c14ecb (patch) | |
tree | 85466a2a7f52fbb6daddd2824c15dccfaca2e479 /sys/src/games | |
parent | 9486df09c2455ee3b22df8507db77e7d7276ad58 (diff) |
games/nes: added uxrom (mapper 2)
Diffstat (limited to 'sys/src/games')
-rw-r--r-- | sys/src/games/nes/mem.c | 31 |
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, }; |