It shouldn't be too hard to modify the normal MMC3 script to work, let me try:
Code:
board <- {
mappernum = 37, vram_mirrorfind = false, ppu_ramfind = false,
cpu_rom = {
size_base = 0x40000, size_max = 0x40000,
banksize = 0x2000,
},
ppu_rom = {
size_base = 0x40000, size_max = 0x40000,
banksize = 0x0400
}
};
function cpu_dump(d, pagesize, banksize) {
for (local o = 0; o < 4; o ++) {
cpu_write(d, 0xa001, 0x80); //enable outer bank register
cpu_write(d, 0x6000, (o<<1) | (o&1)); // set outer bank
for(local i = 0; i < 8; i ++) {
cpu_write(d, 0x8000, 6);
cpu_write(d, 0x8001, i);
cpu_read(d, 0x8000, banksize);
}
}
}
function ppu_dump(d, pagesize, banksize) {
for (local o = 0; o < 8; o += 4) {
cpu_write(d, 0xa001, 0x80); // enable outer bank register
cpu_write(d, 0x6000, o); // set outer bank
for(local i = 0; i < 128; i ++){
cpu_write(d, 0x8000, 2);
cpu_write(d, 0x8001, i);
ppu_read(d, 0x1000, banksize);
}
}
}
Using this on an ordinary MMC3 board would trash its save RAM, so don't do that.