From 60c3c3b3dbf4e1ae03c1a376babec80900c14ecb Mon Sep 17 00:00:00 2001 From: aiju Date: Mon, 24 Feb 2014 19:50:02 +0100 Subject: [PATCH] games/nes: added uxrom (mapper 2) --- sys/src/games/nes/mem.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) 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 @@ -137,6 +137,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) { @@ -258,6 +288,7 @@ axrom(int p, u8int v) void (*mapper[256])(int, u8int) = { [0] nrom, [1] mmc1, + [2] uxrom, [4] mmc3, [7] axrom, };