neshawk - fix NES mapper 31 CHR-ROM support #470
This commit is contained in:
parent
8a1fd67497
commit
36f56f3530
|
@ -26,34 +26,35 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
switch (Cart.board_type)
|
||||
{
|
||||
case "MAPPER031":
|
||||
Cart.vram_size = 8;
|
||||
break;
|
||||
case "MAPPER0031-00":
|
||||
AssertVram(8);
|
||||
AssertChr(0, 8);
|
||||
if(Cart.chr_size == 0)
|
||||
Cart.vram_size = 8;
|
||||
break;
|
||||
case "MAPPER0031-00":
|
||||
AssertVram(8);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
SetMirrorType(CalculateMirrorType(Cart.pad_h, Cart.pad_v));
|
||||
AssertChr(0);
|
||||
AssertPrg(16, 32, 64, 128, 256, 512, 1024);
|
||||
Cart.wram_size = 0;
|
||||
prg_bank_mask_4k = Cart.prg_size / 4 - 1;
|
||||
prg[7] = prg_bank_mask_4k;
|
||||
prg[7] = prg_bank_mask_4k;
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void WriteEXP(int addr, byte value)
|
||||
{
|
||||
if (addr >= 0x1000)
|
||||
prg[addr & 0x07] = value & prg_bank_mask_4k;
|
||||
else
|
||||
base.WriteEXP(addr, value);
|
||||
}
|
||||
public override void WriteEXP(int addr, byte value)
|
||||
{
|
||||
if (addr >= 0x1000)
|
||||
prg[addr & 0x07] = value & prg_bank_mask_4k;
|
||||
else
|
||||
base.WriteEXP(addr, value);
|
||||
}
|
||||
|
||||
public override byte ReadPRG(int addr)
|
||||
{
|
||||
return ROM[prg[(addr & 0x7000)>>12] << 12 | addr & 0x0fff];
|
||||
return ROM[prg[(addr & 0x7000) >> 12] << 12 | addr & 0x0fff];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue