NESHawk - break off INesBoard and NesBoardBase into separate files

This commit is contained in:
adelikat 2020-03-19 19:05:59 -05:00
parent 74620559ea
commit 8bcab5af79
245 changed files with 2577 additions and 2553 deletions

View File

@ -4,7 +4,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
//AKA half of mapper 034 (the other half is BxROM which is entirely different..)
public sealed class AVE_NINA_001 : NES.NESBoardBase
public sealed class AVE_NINA_001 : NesBoardBase
{
//configuration
int prg_bank_mask_32k, chr_bank_mask_4k;
@ -41,7 +41,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -49,18 +49,18 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int ofs = addr & ((1 << 12) - 1);
bank_4k = chr_banks_4k[bank_4k];
addr = (bank_4k << 12) | ofs;
return VROM[addr];
return Vrom[addr];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
addr |= (prg_bank_32k << 15);
return ROM[addr];
return Rom[addr];
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
switch (addr)
{
@ -78,7 +78,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
break;
default:
//apparently these regs are patched in over the WRAM..
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
break;
}
}
@ -88,7 +88,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
// according to the latest on nesdev:
// mapper 079: [.... PCCC] @ 4100
// mapper 113: [MCPP PCCC] @ 4100 (no games for this are in bootgod)
class AVE_NINA_006 : NES.NESBoardBase
class AVE_NINA_006 : NesBoardBase
{
//configuration
int prg_bank_mask_32k, chr_bank_mask_8k;
@ -141,7 +141,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
//FCEUX responds to this for PRG writes as well.. ?
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
addr &= 0x4100;
switch (addr)
@ -158,7 +158,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (isMapper79)
{
@ -166,33 +166,33 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
addr |= (prg_bank_32k << 15);
// Some HES games are coming in with only 16 kb of PRG
// Othello, and Sidewinder for instance
if (ROM.Length < 0x8000)
if (Rom.Length < 0x8000)
{
addr &= 0x3FFF;
}
return ROM[addr];
return Rom[addr];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
addr |= ((chr_bank_8k & chr_bank_mask_8k) << 13);
return VROM[addr];
return Vrom[addr];
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}

View File

@ -5,7 +5,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//generally mapper7
[NES.INESBoardImplPriority]
public sealed class AxROM : NES.NESBoardBase
public sealed class AxROM : NesBoardBase
{
//configuration
bool bus_conflict;
@ -58,30 +58,30 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
prg_mask_32k = Cart.prg_size / 32 - 1;
SetMirrorType(NES.NESBoardBase.EMirrorType.OneScreenA);
SetMirrorType(NesBoardBase.EMirrorType.OneScreenA);
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (Cart.prg_size == 16)
{
return ROM[(addr & 0x3FFF) | prg << 15];
return Rom[(addr & 0x3FFF) | prg << 15];
}
return ROM[addr | prg << 15];
return Rom[addr | prg << 15];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (ROM != null && bus_conflict)
if (Rom != null && bus_conflict)
value = HandleNormalPRGConflict(addr,value);
prg = value & prg_mask_32k;
if ((value & 0x10) == 0)
SetMirrorType(NES.NESBoardBase.EMirrorType.OneScreenA);
SetMirrorType(NesBoardBase.EMirrorType.OneScreenA);
else
SetMirrorType(NES.NESBoardBase.EMirrorType.OneScreenB);
SetMirrorType(NesBoardBase.EMirrorType.OneScreenB);
}
public override void SyncState(Serializer ser)

View File

@ -30,7 +30,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
Every real instance of [1], [2], [3], [4] had 128K or 256K of each of chr and prg.
*/
public sealed class BANDAI_FCG_1 : NES.NESBoardBase
public sealed class BANDAI_FCG_1 : NesBoardBase
{
//configuration
int prg_bank_mask_16k, chr_bank_mask_1k;
@ -222,10 +222,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 9:
switch (value & 3)
{
case 0: SetMirrorType(NES.NESBoardBase.EMirrorType.Vertical); break;
case 1: SetMirrorType(NES.NESBoardBase.EMirrorType.Horizontal); break;
case 2: SetMirrorType(NES.NESBoardBase.EMirrorType.OneScreenA); break;
case 3: SetMirrorType(NES.NESBoardBase.EMirrorType.OneScreenB); break;
case 0: SetMirrorType(NesBoardBase.EMirrorType.Vertical); break;
case 1: SetMirrorType(NesBoardBase.EMirrorType.Horizontal); break;
case 2: SetMirrorType(NesBoardBase.EMirrorType.OneScreenA); break;
case 3: SetMirrorType(NesBoardBase.EMirrorType.OneScreenB); break;
}
break;
case 0xA:
@ -233,7 +233,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (jump2)
irq_counter = irq_latch;
// all write acknolwedge
IRQSignal = false;
IrqSignal = false;
break;
case 0xB:
if (jump2)
@ -267,7 +267,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
//NES.LogLine("writewram {0:X4} = {1:X2}", addr, value);
if (regs_wram_enable)
@ -277,10 +277,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else if (jump2)
{
WRAM[addr] = value;
Wram[addr] = value;
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
//NES.LogLine("writeprg {0:X4} = {1:X2}", addr, value);
if (regs_prg_enable)
@ -305,7 +305,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
// reading any addr in 6000:7fff returns a single bit from the eeprom
// in bit 4.
@ -324,17 +324,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return ret;
}
return WRAM[addr];
return Wram[addr];
}
public override void ClockCPU()
public override void ClockCpu()
{
if (irq_enabled)
{
if (irq_counter == 0x0000)
{
IRQSignal = true;
IrqSignal = true;
irq_counter--;
}
else
@ -347,7 +347,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_16k = addr >> 14;
int ofs = addr & ((1 << 14) - 1);
@ -355,7 +355,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
addr = (bank_16k << 14) | ofs;
if (jump2)
addr = addr + (jump2_outer_bank << 18);
return ROM[addr];
return Rom[addr];
}
int CalcPPUAddress(int addr)
@ -367,29 +367,29 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return (bank_1k << 10) | ofs;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
if (vram)
return VRAM[addr];
return Vram[addr];
else
return VROM[CalcPPUAddress(addr)];
return Vrom[CalcPPUAddress(addr)];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
if (vram)
VRAM[addr] = value;
Vram[addr] = value;
}
else
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
@ -404,7 +404,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (jump2)
{
return WRAM;
return Wram;
}
return null;

View File

@ -3,7 +3,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// http://wiki.nesdev.com/w/index.php/INES_Mapper_096
public sealed class BANDAI_74_161_02_74 : NES.NESBoardBase
public sealed class BANDAI_74_161_02_74 : NesBoardBase
{
int chr_block;
int chr_pos = 0;
@ -35,19 +35,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("prg_bank_16k", ref prg_bank_32k);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prg_bank_32k = (byte)(value & 0x03);
chr_block = (value >> 2) & 0x01;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_32k = prg_bank_32k & prg_bank_mask_32k;
return ROM[(bank_32k << 15) + addr];
return Rom[(bank_32k << 15) + addr];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -55,32 +55,32 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (chr_block == 1)
{
return VRAM[(0x1000 * 3 * 2) + addr];
return Vram[(0x1000 * 3 * 2) + addr];
}
else
{
return VRAM[(0x1000 * 3) + addr];
return Vram[(0x1000 * 3) + addr];
}
}
else
{
if (chr_block == 1)
{
return VRAM[(0x1000 * chr_pos * 2) + addr];
return Vram[(0x1000 * chr_pos * 2) + addr];
}
else
{
return VRAM[(0x1000 * chr_pos * 2) + addr];
return Vram[(0x1000 * chr_pos * 2) + addr];
}
}
}
else
{
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
@ -88,31 +88,31 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (chr_block == 1)
{
VRAM[(0x1000 * 3 * 2) + addr] = value;
Vram[(0x1000 * 3 * 2) + addr] = value;
}
else
{
VRAM[(0x1000 * 3) + addr] = value;
Vram[(0x1000 * 3) + addr] = value;
}
}
{
if (chr_block == 1)
{
VRAM[(0x1000 * chr_pos * 2) + addr] = value;
Vram[(0x1000 * chr_pos * 2) + addr] = value;
}
else
{
VRAM[(0x1000 * chr_pos * 2) + addr] = value;
Vram[(0x1000 * chr_pos * 2) + addr] = value;
}
}
}
else
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
public override void AddressPPU(int addr)
public override void AddressPpu(int addr)
{
byte newpos;
if ((addr & 0x3000) != 0x2000) return;
@ -123,7 +123,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
chr_pos = newpos;
}
base.AddressPPU(addr);
base.AddressPpu(addr);
}
}
}

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class BANDAI_74_161_161_32 : NES.NESBoardBase
public sealed class BANDAI_74_161_161_32 : NesBoardBase
{
//Mapper 70
//Example Games:
@ -48,29 +48,29 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
prg_banks_16k[0] = prg_bank_16k;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prg_bank_16k = (byte)((value >> 4) & 15);
chr = value & 15;
SyncPRG();
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_16k = addr >> 14;
int ofs = addr & ((1 << 14) - 1);
bank_16k = prg_banks_16k[bank_16k];
bank_16k &= prg_bank_mask_16k;
addr = (bank_16k << 14) | ofs;
return ROM[addr];
return Rom[addr];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[(addr & 0x1FFF) + (chr * 0x2000)];
return Vrom[(addr & 0x1FFF) + (chr * 0x2000)];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -8,7 +8,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
// Magic Jewelry 2 (Unl)
public class Bonza : NES.NESBoardBase
public class Bonza : NesBoardBase
{
private int _chrReg;
private int _prgReg;
@ -33,36 +33,36 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("prgReg", ref _prgReg);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
_prgReg = addr & 1;
_chrReg = (addr >> 1) & 7;
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr == 0x1000)
{
return 0;
}
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[(_prgReg * 0x8000) + (addr & 0x7FFF)];
return Rom[(_prgReg * 0x8000) + (addr & 0x7FFF)];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
// Magic Jewelry has no VROM and does not write chr regs
if (addr < 0x2000 && VROM != null)
if (addr < 0x2000 && Vrom != null)
{
return VROM[(_chrReg * 0x2000) + (addr & 0x1FFF)];
return Vrom[(_chrReg * 0x2000) + (addr & 0x1FFF)];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -3,7 +3,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
//AKA half of mapper 034 (the other half is AVE_NINA_001 which is entirely different..)
public sealed class BxROM : NES.NESBoardBase
public sealed class BxROM : NesBoardBase
{
//configuration
int prg_bank_mask_32k;
@ -47,35 +47,35 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
addr |= (prg_bank_32k << 15);
return ROM[addr];
return Rom[addr];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
value = HandleNormalPRGConflict(addr, value);
prg_bank_32k = value & prg_bank_mask_32k;
chr_bank_8k = ((value >> 4) & 0xF) & chr_bank_mask_8k;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr<0x2000)
{
if (VRAM != null)
if (Vram != null)
{
return VRAM[addr];
return Vram[addr];
}
else
{
return VROM[addr | (chr_bank_8k << 13)];
return Vrom[addr | (chr_bank_8k << 13)];
}
}
else
{
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}

View File

@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//Cybernoid
[NES.INESBoardImplPriority]
public sealed class CNROM : NES.NESBoardBase
public sealed class CNROM : NesBoardBase
{
//configuration
int prg_byte_mask, chr_mask;
@ -96,7 +96,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (bus_conflict)
value = HandleNormalPRGConflict(addr, value);
@ -135,7 +135,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (chr_enabled == false)
{
@ -143,11 +143,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
if (addr < 0x2000)
{
return VROM[addr + (chr << 13)];
return Vrom[addr + (chr << 13)];
}
else
{
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
@ -159,9 +159,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(chr_enabled), ref chr_enabled);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr & prg_byte_mask];
return Rom[addr & prg_byte_mask];
}
}
}

View File

@ -2,7 +2,7 @@ using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class CPROM : NES.NESBoardBase
public sealed class CPROM : NesBoardBase
{
//generally mapper 13
@ -32,33 +32,33 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//TODO - assert that mirror type is vertical?
//set it in the cart?
SetMirrorType(NES.NESBoardBase.EMirrorType.Vertical);
SetMirrorType(NesBoardBase.EMirrorType.Vertical);
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
value = HandleNormalPRGConflict(addr,value);
chr = value&3;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x1000)
return VRAM[addr];
return Vram[addr];
else if(addr<0x2000)
return VRAM[addr - 0x1000 + (chr << 12)];
else return base.ReadPPU(addr);
return Vram[addr - 0x1000 + (chr << 12)];
else return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x1000)
VRAM[addr] = value;
Vram[addr] = value;
else if (addr < 0x2000)
VRAM[addr - 0x1000 + (chr << 12)] = value;
else base.WritePPU(addr,value);
Vram[addr - 0x1000 + (chr << 12)] = value;
else base.WritePpu(addr,value);
}
public override void SyncState(Serializer ser)

View File

@ -5,7 +5,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
//AKA mapper 071
//TODO - apparently this mapper contains good nes timing test cases
public sealed class Camerica_Mapper071 : NES.NESBoardBase
public sealed class Camerica_Mapper071 : NesBoardBase
{
//configuration
int prg_bank_mask_16k;
@ -55,7 +55,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr &= 0x7000;
switch (addr)
@ -76,18 +76,18 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_16k = addr >> 14;
int ofs = addr & ((1 << 14) - 1);
bank_16k = prg_banks_16k[bank_16k];
addr = (bank_16k << 14) | ofs;
return ROM[addr];
return Rom[addr];
}
}
//AKA mapper 232
class Camerica_Mapper232 : NES.NESBoardBase
class Camerica_Mapper232 : NesBoardBase
{
//configuration
int prg_bank_mask_16k;
@ -128,7 +128,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr &= 0x4000;
switch (addr)
@ -152,13 +152,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
prg_banks_16k[1] &= prg_bank_mask_16k;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_16k = addr >> 14;
int ofs = addr & ((1 << 14) - 1);
bank_16k = prg_banks_16k[bank_16k];
addr = (bank_16k<<14) | ofs;
return ROM[addr];
return Rom[addr];
}
}

View File

@ -3,7 +3,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// Adapted from
public sealed class CamericaGoldenFive : NES.NESBoardBase
public sealed class CamericaGoldenFive : NesBoardBase
{
private byte[] regs = new byte[2];
@ -32,7 +32,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("reg", ref regs, false);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr < 0x2000) // 80000
{
@ -48,15 +48,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x4000)
{
return ROM[((regs[0]) << 14) + (addr & 0x3FFF)];
return Rom[((regs[0]) << 14) + (addr & 0x3FFF)];
}
else
{
return ROM[((regs[1]) << 14) + (addr & 0x3FFF)];
return Rom[((regs[1]) << 14) + (addr & 0x3FFF)];
}
}
}

View File

@ -6,7 +6,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// Mapper 83 seems to be a hacky mess that represents 3 different Cony cartridges
// http://problemkaputt.de/everynes.htm#mapper83cony
public class ConyA : NES.NESBoardBase
public class ConyA : NesBoardBase
{
private byte[] prg_regs = new byte[4];
private byte[] low = new byte[4]; // some kind of security feature?
@ -63,7 +63,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 3: SetMirrorType(EMirrorType.OneScreenB); break;
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr)
{
@ -95,7 +95,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 0x0200:
IRQCount &= 0xFF00; IRQCount |= value;
IRQSignal = false;
IrqSignal = false;
break;
case 0x0201:
IRQCount &= 0xFF;
@ -107,7 +107,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
Mirroring();
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -123,7 +123,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank = chr_regs[7];
bank &= chr_bank_mask_2k;
return VROM[(bank << 11) + (addr & 0x7FF)];
return Vrom[(bank << 11) + (addr & 0x7FF)];
}
else
{
@ -131,23 +131,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int bank = chr_regs[index];
bank |= ((bank & 0x30) << 4);
bank &= 0xFF;
return VROM[(bank << 10) + (addr & 0x3FF)];
return Vrom[(bank << 10) + (addr & 0x3FF)];
}
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if ((mode & 0x40) > 0)
{
if (addr < 0x4000)
{
return ROM[(((bank & 0x7) & 0x3F) << 14) + (addr & 0x3FFF)];
return Rom[(((bank & 0x7) & 0x3F) << 14) + (addr & 0x3FFF)];
}
return ROM[((((bank & 0x7) & 0x30) | 0x7) << 14) + (addr & 0x3FFF)];
return Rom[((((bank & 0x7) & 0x30) | 0x7) << 14) + (addr & 0x3FFF)];
}
else
{
@ -157,14 +157,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (index == 3)
bank = prg_bank_mask_8k;
return ROM[(bank << 13) + (addr & 0x1FFF)];
return Rom[(bank << 13) + (addr & 0x1FFF)];
}
}
public override void ClockCPU()
public override void ClockCpu()
{
if (IRQa)
{
@ -172,33 +172,33 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (IRQCount == 0)
{
IRQCount = 0xFFFF;
IRQSignal = true;
IrqSignal = true;
IRQa = false;
}
}
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1100 && addr <= 0x1103)
low[addr & 0x3] = value;
else
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr == 0x1000)
return (byte)((NES.DB & 0xFC) | 0);
else if (addr >= 0x1100 && addr <= 0x1103)
return low[addr & 0x3];
else
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
}
public class ConyB : NES.NESBoardBase
public class ConyB : NesBoardBase
{
private byte[] prg_regs = new byte[4];
private byte[] low = new byte[4]; // some kind of security feature?
@ -254,7 +254,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 3: SetMirrorType(EMirrorType.OneScreenB); break;
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr)
{
@ -286,7 +286,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 0x0200:
IRQCount &= 0xFF00; IRQCount |= value;
IRQSignal = false;
IrqSignal = false;
break;
case 0x0201:
IRQCount &= 0xFF;
@ -298,7 +298,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
Mirroring();
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -313,30 +313,30 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (index == 3)
bank = chr_regs[7];
return VROM[(bank << 11) + (addr & 0x7FF)];
return Vrom[(bank << 11) + (addr & 0x7FF)];
} else
{
int index = (addr >> 10) & 0x7;
int bank = chr_regs[index];
bank |= ((bank & 0x30) << 4);
return VROM[(bank << 10) + (addr & 0x3FF)];
return Vrom[(bank << 10) + (addr & 0x3FF)];
}
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if ((mode & 0x40)>0)
{
if (addr < 0x4000)
{
return ROM[((bank&0x3F) << 14) + (addr & 0x3FFF)];
return Rom[((bank&0x3F) << 14) + (addr & 0x3FFF)];
}
return ROM[(((bank & 0x30) | 0xF) << 14) + (addr & 0x3FFF)];
return Rom[(((bank & 0x30) | 0xF) << 14) + (addr & 0x3FFF)];
} else
{
int index = (addr >> 13) & 0x3;
@ -346,14 +346,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (index == 3)
bank = prg_bank_mask_8k;
return ROM[(bank << 13) + (addr & 0x1FFF)];
return Rom[(bank << 13) + (addr & 0x1FFF)];
}
}
public override void ClockCPU()
public override void ClockCpu()
{
if (IRQa)
{
@ -361,35 +361,35 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (IRQCount==0)
{
IRQCount = 0xFFFF;
IRQSignal = true;
IrqSignal = true;
IRQa = false;
}
}
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1100 && addr <= 0x1103)
low[addr & 0x3] = value;
else
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr == 0x1000)
return (byte)((NES.DB & 0xFC) | 0);
else if (addr >= 0x1100 && addr <= 0x1103)
return low[addr & 0x3];
else
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
}
public class ConyC : NES.NESBoardBase
public class ConyC : NesBoardBase
{
private byte[] prg_regs = new byte[2];
private byte[] chr_regs = new byte[8];
@ -429,7 +429,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(prg_regs), ref prg_regs, false);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr == 0)
{
@ -444,7 +444,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
else if (addr == 0x200)
{
IRQCount &= 0xFF00; IRQCount |= value;
IRQSignal = false;
IrqSignal = false;
}
else if (addr == 0x201)
@ -459,29 +459,29 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
int index = (addr >> 10) & 0x7;
int bank = chr_regs[index];
return VROM[(bank << 10) + (addr & 0x3FF)];
return Vrom[(bank << 10) + (addr & 0x3FF)];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x4000)
{
return ROM[(prg_regs[0] << 14) + (addr & 0x3FFF)];
return Rom[(prg_regs[0] << 14) + (addr & 0x3FFF)];
}
return ROM[(prg_regs[1] << 14) + (addr & 0x3FFF)];
return Rom[(prg_regs[1] << 14) + (addr & 0x3FFF)];
}
public override void ClockCPU()
public override void ClockCpu()
{
if (IRQa)
{
@ -489,7 +489,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (IRQCount == 0)
{
IRQCount = 0xFFFF;
IRQSignal = IRQ_enable;
IrqSignal = IRQ_enable;
}
}
}

View File

@ -38,7 +38,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr < 0x1000)
{
@ -120,7 +120,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(exp), ref exp, false);
}
public override void NESSoftReset()
public override void NesSoftReset()
{
Array.Clear(exp, 0, 4);
}

View File

@ -18,7 +18,7 @@ using BizHawk.Emulation.Cores.Components;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
[NES.INESBoardImplPriorityAttribute]
public sealed class ExROM : NES.NESBoardBase
public sealed class ExROM : NesBoardBase
{
//configuraton
int prg_bank_mask_8k, chr_bank_mask_1k; //board setup (to be isolated from mmc5 code later, when we need the separate mmc5 class)
@ -195,14 +195,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
int? bbank = MaskWRAM(bank);
if (bbank.HasValue)
WRAM[(int)bbank << 13 | offs] = value;
Wram[(int)bbank << 13 | offs] = value;
}
byte ReadWRAMActual(int bank, int offs)
{
int? bbank = MaskWRAM(bank);
return bbank.HasValue
? WRAM[(int)bbank << 13 | offs]
? Wram[(int)bbank << 13 | offs]
: NES.DB;
}
@ -268,12 +268,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return addr;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
addr = MapCHR(addr);
return (VROM ?? VRAM)[addr];
return (Vrom ?? Vram)[addr];
}
addr -= 0x2000;
@ -333,7 +333,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (addr < 0x2000)
{
addr = MapCHR(addr);
return (VROM ?? VRAM)[addr];
return (Vrom ?? Vram)[addr];
}
addr -= 0x2000;
@ -388,12 +388,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
if (VRAM != null)
VRAM[MapCHR(addr)] = value;
if (Vram != null)
Vram[MapCHR(addr)] = value;
}
else
{
@ -421,11 +421,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WriteWRAM(int addr, byte value) => WriteWRAMActual(wram_bank, addr & 0x1fff, value);
public override void WriteWram(int addr, byte value) => WriteWRAMActual(wram_bank, addr & 0x1fff, value);
public override byte ReadWRAM(int addr) => ReadWRAMActual(wram_bank, addr & 0x1fff);
public override byte ReadWram(int addr) => ReadWRAMActual(wram_bank, addr & 0x1fff);
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
byte ret;
int offs = addr & 0x1fff;
@ -434,7 +434,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (ram)
ret = ReadWRAMActual(bank, offs);
else
ret = ROM[bank << 13 | offs];
ret = Rom[bank << 13 | offs];
if (addr < 0x4000)
audio.ReadROMTrigger(ret);
return ret;
@ -445,7 +445,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (addr >= 0x8000)
return PeekPRG(addr - 0x8000);
if (addr >= 0x6000)
return ReadWRAM(addr - 0x6000);
return ReadWram(addr - 0x6000);
return PeekEXP(addr - 0x4000);
}
@ -458,20 +458,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (ram)
ret = ReadWRAMActual(bank, offs);
else
ret = ROM[bank << 13 | offs];
ret = Rom[bank << 13 | offs];
//if (addr < 0x4000)
// audio.ReadROMTrigger(ret);
return ret;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
int bank = PRGGetBank(addr, out var ram);
if (ram)
WriteWRAMActual(bank, addr & 0x1fff, value);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
//NES.LogLine("MMC5 WriteEXP: ${0:x4} = ${1:x2}", addr, value);
if (addr >= 0x1000 && addr <= 0x1015)
@ -585,7 +585,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
product_high = (byte)((result>>8) & 0xFF);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
byte ret = 0xFF;
switch (addr)
@ -663,10 +663,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
void SyncIRQ()
{
IRQSignal = (irq_pending && irq_enabled) || irq_audio;
IrqSignal = (irq_pending && irq_enabled) || irq_audio;
}
public override void ClockPPU()
public override void ClockPpu()
{
if (NES.ppu.ppur.status.cycle != 336)
return;
@ -703,7 +703,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
public override void ClockCPU()
public override void ClockCpu()
{
audio.Clock();
}

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public class Mapper006 : NES.NESBoardBase
public class Mapper006 : NesBoardBase
{
private int _reg;
@ -40,7 +40,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("irqCount", ref _irqCount);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
// Mirroring
if (addr == 0x2FE || addr == 0x2FF)
@ -87,44 +87,44 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
_reg = value;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank = addr < 0x4000
? (_reg >> 2) & 0x3F
: 7;
bank &= _prgMask16k;
return ROM[(bank * 0x4000) + (addr & 0x3FFF)];
return Rom[(bank * 0x4000) + (addr & 0x3FFF)];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VRAM[((_reg & 3) * 0x2000) + (addr & 0x1FFF)];
return Vram[((_reg & 3) * 0x2000) + (addr & 0x1FFF)];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
VRAM[((_reg & 3) * 0x2000) + (addr & 0x1FFF)] = value;
Vram[((_reg & 3) * 0x2000) + (addr & 0x1FFF)] = value;
}
else
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
public override void ClockCPU()
public override void ClockCpu()
{
if (_irqEnable)
{

View File

@ -3,7 +3,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public class Mapper017 : NES.NESBoardBase
public class Mapper017 : NesBoardBase
{
private byte[] prg_regs_8k = new byte[4];
private byte[] chr_regs_1k = new byte[8];
@ -40,7 +40,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
switch (addr & 0x7FF)
{
@ -110,38 +110,38 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(irq_count), ref irq_count);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = prg_regs_8k[addr >> 13];
bank_8k &= prg_mask_8k;
int offset = addr & 0x1FFF;
return ROM[bank_8k << 13 | offset];
return Rom[bank_8k << 13 | offset];
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000 && VRAM != null)
if (addr < 0x2000 && Vram != null)
{
VRAM[addr] = value;
Vram[addr] = value;
}
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
if (VRAM != null) return VRAM[addr];
if (Vram != null) return Vram[addr];
int bank_1k = chr_regs_1k[addr >> 10];
bank_1k &= chr_mask_1k;
int offset = addr & 0x3FF;
return VROM[bank_1k << 10 | offset];
return Vrom[bank_1k << 10 | offset];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void ClockCPU()
public override void ClockCpu()
{
if (irq_enable)
{

View File

@ -1,6 +1,6 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public class FS304 : NES.NESBoardBase
public class FS304 : NesBoardBase
{
// waixing?
@ -27,7 +27,7 @@
return true;
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
switch (addr & 0x1300)
{
@ -47,9 +47,9 @@
prg &= prg_mask_32k;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr | prg << 15];
return Rom[addr | prg << 15];
}
}
}

View File

@ -1,6 +1,6 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Farid_UNROM_8_in_1 : NES.NESBoardBase
public sealed class Farid_UNROM_8_in_1 : NesBoardBase
{
// http://forums.nesdev.com/viewtopic.php?f=9&t=11099
@ -27,7 +27,7 @@
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prginner = value & 7;
int newc = value >> 7;
@ -41,11 +41,11 @@
c = newc;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bnk = addr >= 0x4000 ? 7 : prginner;
bnk |= prgouter << 3;
return ROM[bnk << 14 | addr & 0x3fff];
return Rom[bnk << 14 | addr & 0x3fff];
}
public override void SyncState(BizHawk.Common.Serializer ser)
@ -57,7 +57,7 @@
ser.Sync(nameof(prgouter), ref prgouter);
}
public override void NESSoftReset()
public override void NesSoftReset()
{
e = 0;
prgouter = 0;

View File

@ -4,7 +4,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// this is an internal testing thing, not really for using
public class GameGenie : NES.NESBoardBase
public class GameGenie : NesBoardBase
{
static byte[] PatternTables = new byte[256];
@ -49,23 +49,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x4000)
return NES.DB;
else
return ROM[addr & 0xfff];
return Rom[addr & 0xfff];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr >= 0x2000)
return base.ReadPPU(addr);
return base.ReadPpu(addr);
else
return PatternTables[addr & 0xff];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
NES.LogLine("{0:x4}<={1:x2}", addr + 0x8000, value);
}

View File

@ -14,7 +14,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//TODO - bus conflicts
[NES.INESBoardImplPriority]
public sealed class GxROM : NES.NESBoardBase
public sealed class GxROM : NesBoardBase
{
//configuraton
int prg_mask, chr_mask;
@ -55,21 +55,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr + (prg<<15)];
return Rom[addr + (prg<<15)];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VROM[addr + (chr << 13)];
return Vrom[addr + (chr << 13)];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
chr = ((value & 7) & chr_mask);
prg = (((value>>4) & 3) & prg_mask);

View File

@ -9,7 +9,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//Metal Fighter
[NES.INESBoardImplPriority]
public sealed class IC_74x377 : NES.NESBoardBase
public sealed class IC_74x377 : NesBoardBase
{
//configuration
int prg_bank_mask_32k, chr_bank_mask_8k;
@ -53,21 +53,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr + (prg_bank_32k << 15)];
return Rom[addr + (prg_bank_32k << 15)];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VROM[addr + (chr_bank_8k << 13)];
return Vrom[addr + (chr_bank_8k << 13)];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (bus_conflict_50282)
{
@ -75,12 +75,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//if (addr == 0)
// return;
// this is what nesdev wiki does. seems to give same results as above?
value = (byte)((value | 1) & ReadPRG(addr));
value = (byte)((value | 1) & ReadPrg(addr));
}
if (bus_conflict)
{
byte old_value = value;
value &= ReadPRG(addr);
value &= ReadPrg(addr);
//Bible Adventures (Unl) (V1.3) [o1].nes will exercise this bus conflict, but not really test it. (works without bus conflict emulation
Debug.Assert(old_value == value, "Found a test case of Discrete_74x377 bus conflict. please report.");
}

View File

@ -0,0 +1,53 @@
using System.Collections.Generic;
using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public interface INesBoard
{
// base class pre-configuration
void Create(NES nes);
// one-time inherited classes configuration
bool Configure(NES.EDetectionOrigin origin);
// one-time base class configuration (which can take advantage of any information setup by the more-informed Configure() method)
void PostConfigure();
// gets called once per PPU clock, for boards with complex behaviour which must be monitoring clock (i.e. mmc3 irq counter)
void ClockPpu();
// gets called once per CPU clock; typically for boards with M2 counters
void ClockCpu();
byte PeekCart(int addr);
byte ReadPrg(int addr);
byte ReadPpu(int addr);
byte PeekPPU(int addr);
void AddressPpu(int addr);
byte ReadWram(int addr);
byte ReadExp(int addr);
byte ReadReg2xxx(int addr);
byte PeekReg2xxx(int addr);
void WritePrg(int addr, byte value);
void WritePpu(int addr, byte value);
void WriteWram(int addr, byte value);
void WriteExp(int addr, byte value);
void WriteReg2xxx(int addr, byte value);
void NesSoftReset();
void AtVsyncNmi();
byte[] SaveRam { get; }
byte[] Wram { get; set; }
byte[] Vram { get; set; }
byte[] Rom { get; set; }
byte[] Vrom { get; set; }
void SyncState(Serializer ser);
bool IrqSignal { get; }
//mixes the board's custom audio into the supplied sample buffer
void ApplyCustomAudio(short[] samples);
Dictionary<string, string> InitialRegisterValues { get; set; }
}
}

View File

@ -7,7 +7,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//the 4screen implementation is a bit of a guess, but it seems to work
public sealed class IREM_74_161_161_21_138 : NES.NESBoardBase
public sealed class IREM_74_161_161_21_138 : NesBoardBase
{
int chr, prg;
public override bool Configure(NES.EDetectionOrigin origin)
@ -36,40 +36,40 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(prg), ref prg);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
chr = (value >> 4) & 0x0F;
prg = value & 0x0F;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x0800)
return VROM[addr + (chr * 0x0800)];
return Vrom[addr + (chr * 0x0800)];
else if (addr < 0x2000)
return VRAM[addr];
return Vram[addr];
else if (addr < 0x2800)
return VRAM[addr & 0x7ff];
else return base.ReadPPU(addr);
return Vram[addr & 0x7ff];
else return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x0800)
return;
else if (addr < 0x2000)
VRAM[addr] = value;
Vram[addr] = value;
else if (addr < 0x2800)
VRAM[addr & 0x7ff] = value;
else base.WritePPU(addr, value);
Vram[addr & 0x7ff] = value;
else base.WritePpu(addr, value);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x8000)
return ROM[addr + (prg * 0x8000)];
return Rom[addr + (prg * 0x8000)];
else
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
}
}

View File

@ -5,7 +5,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//iNES Mapper 97
//Kaiketsu Yanchamaru (Kid Niki 1)
public sealed class IREM_TAM_S1 : NES.NESBoardBase
public sealed class IREM_TAM_S1 : NesBoardBase
{
int prg_bank_mask_16k;
byte prg_bank_16k;
@ -41,7 +41,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
prg_banks_16k[1] = prg_bank_16k;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prg_bank_16k = (byte)(value & 15);
SyncPRG();
@ -64,14 +64,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_16k = addr >> 14;
int ofs = addr & ((1 << 14) - 1);
bank_16k = prg_banks_16k[bank_16k];
bank_16k &= prg_bank_mask_16k;
addr = (bank_16k << 14) | ofs;
return ROM[addr];
return Rom[addr];
}
}
}

View File

@ -8,7 +8,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//Major League
//Kaiketsu Yanchamaru 2
public sealed class Irem_G101 : NES.NESBoardBase
public sealed class Irem_G101 : NesBoardBase
{
//configuration
int prg_bank_mask, chr_bank_mask;
@ -74,7 +74,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
else SetMirrorType(EMirrorType.Horizontal);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr &= 0xF007;
switch (addr)
@ -112,7 +112,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -121,13 +121,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_1k = chr_regs_1k[bank_1k];
bank_1k &= chr_bank_mask;
addr = (bank_1k << 10) | ofs;
return VROM[addr];
return Vrom[addr];
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = addr >> 13;
int ofs = addr & ((1 << 13) - 1);
@ -135,7 +135,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_8k = prg_regs_8k[bank_8k];
bank_8k &= prg_bank_mask;
addr = (bank_8k << 13) | ofs;
return ROM[addr];
return Rom[addr];
}
}
}

View File

@ -9,7 +9,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//NOTE - fceux support for this mapper has some kind of -4 cpu cycle delay built into the timer. not sure yet whether we need that
public sealed class Irem_H3001 : NES.NESBoardBase
public sealed class Irem_H3001 : NesBoardBase
{
//configuration
int prg_bank_mask, chr_bank_mask;
@ -69,7 +69,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}*/
public override void ClockCPU()
public override void ClockCpu()
{
if (irq_counter == 0) return;
if (!irq_counter_enabled) return;
@ -81,20 +81,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
void SyncIRQ()
{
IRQSignal = irq_asserted;
IrqSignal = irq_asserted;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = addr >> 13;
int ofs = addr & ((1 << 13) - 1);
bank_8k = prg_regs_8k[bank_8k];
bank_8k &= prg_bank_mask;
addr = (bank_8k << 13) | ofs;
return ROM[addr];
return Rom[addr];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -103,13 +103,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_1k = chr_regs_1k[bank_1k];
bank_1k &= chr_bank_mask;
addr = (bank_1k << 10) | ofs;
return VROM[addr];
return Vrom[addr];
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr)
{

View File

@ -14,7 +14,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
Ninja Jajamaru Kun - JF_06
Argus (J) - JF_07
*/
public sealed class JALECO_JF_05_06_07 : NES.NESBoardBase
public sealed class JALECO_JF_05_06_07 : NesBoardBase
{
int prg_byte_mask;
int chr;
@ -56,24 +56,24 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(chr), ref chr);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
// 2 bits, but flipped
chr = value << 1 & 2 | value >> 1 & 1;
chr &= chr_mask_8k;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[addr | chr << 13];
return Vrom[addr | chr << 13];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr & prg_byte_mask];
return Rom[addr & prg_byte_mask];
}
}
}

View File

@ -9,7 +9,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//Moero!! Pro Yakyuu (Black)
//Moero!! Pro Yakyuu (Red)
public sealed class JALECO_JF_13 : NES.NESBoardBase
public sealed class JALECO_JF_13 : NesBoardBase
{
//configuration
int prg_bank_mask_32k;
@ -39,23 +39,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x8000)
return ROM[addr + (prg * 0x8000)];
return Rom[addr + (prg * 0x8000)];
else
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[(addr & 0x1FFF) + (chr * 0x2000)];
return Vrom[(addr & 0x1FFF) + (chr * 0x2000)];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
switch (addr & 0x1000)
{

View File

@ -15,7 +15,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//when the top 2 bits arent 0, theyre written to the latch
//interestingly, this works (for pinball quest) only when bus conflicts are applied, otherwise the game cant get past the title
public sealed class JALECO_JF_17 : NES.NESBoardBase
public sealed class JALECO_JF_17 : NesBoardBase
{
//configuration
int prg_bank_mask_16k;
@ -64,7 +64,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(chr_banks_8k), ref chr_banks_8k, false);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
//Console.WriteLine("MAP {0:X4} = {1:X2}", addr, value);
@ -86,20 +86,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
addr = ApplyMemoryMap(14, prg_banks_16k, addr);
return ROM[addr];
return Rom[addr];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
addr = ApplyMemoryMap(13, chr_banks_8k, addr);
return base.ReadPPUChr(addr);
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
}
}

View File

@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//Near Identical to Jaleco JF 17, except for a slight PRG setup
public sealed class JALECO_JF_19 : NES.NESBoardBase
public sealed class JALECO_JF_19 : NesBoardBase
{
//configuration
int prg_bank_mask_16k;
@ -61,7 +61,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(chr_banks_8k), ref chr_banks_8k, false);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
//Console.WriteLine("MAP {0:X4} = {1:X2}", addr, value);
@ -92,20 +92,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
SyncMap();
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
addr = ApplyMemoryMap(14, prg_banks_16k, addr);
return ROM[addr];
return Rom[addr];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
addr = ApplyMemoryMap(13, chr_banks_8k, addr);
return base.ReadPPUChr(addr);
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
}
}

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class JALECO_SS8806 : NES.NESBoardBase
public sealed class JALECO_SS8806 : NesBoardBase
{
//http://wiki.nesdev.com/w/index.php/INES_Mapper_018
@ -61,7 +61,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr += 0x8000; //temporary
@ -191,12 +191,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
break;
case 0xF000:
// ack irq and reset
IRQSignal = false;
IrqSignal = false;
irqclock = irqreload;
break;
case 0xF001:
// ack irq and set values
IRQSignal = false;
IrqSignal = false;
irqcountpaused = (value & 1) == 0;
if ((value & 8) == 8)
irqcountwidth = 4;
@ -216,14 +216,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
public override void ClockCPU()
public override void ClockCpu()
{
if (!irqcountpaused)
{
int newclock = irqclock - 1;
if (squeeze(newclock) > squeeze(irqclock))
{
IRQSignal = true;
IrqSignal = true;
irqclock = irqreload;
}
else
@ -245,12 +245,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = addr >> 13;
bank_8k = prg_banks_8k[bank_8k];
bank_8k &= prg_bank_mask_8k;
return ROM[(bank_8k * 0x2000) + (addr & 0x1FFF)];
return Rom[(bank_8k * 0x2000) + (addr & 0x1FFF)];
}
private int MapCHR(int addr)
@ -262,16 +262,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return addr;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
addr = MapCHR(addr);
if (VROM != null)
return VROM[addr];
else return VRAM[addr];
if (Vrom != null)
return Vrom[addr];
else return Vram[addr];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
}
}

View File

@ -21,7 +21,7 @@ Other chips used: Sunsoft-1
* Bio Senshi Dan - Increaser Tono Tatakai [allegedly; but it does not work]
*/
public sealed class Jaleco_JF_11_14 : NES.NESBoardBase
public sealed class Jaleco_JF_11_14 : NesBoardBase
{
int chr, prg;
@ -43,23 +43,23 @@ Other chips used: Sunsoft-1
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x8000)
return ROM[addr + (prg * 0x8000)];
return Rom[addr + (prg * 0x8000)];
else
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[(addr & 0x1FFF) + (chr * 0x2000)];
return Vrom[(addr & 0x1FFF) + (chr * 0x2000)];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
prg = (value >> 4) & 3;
chr = (value & 15);

View File

@ -4,7 +4,7 @@ using BizHawk.Common.NumberExtensions;
// http://wiki.nesdev.com/w/index.php/INES_Mapper_228
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class MLT_ACTION52 : NES.NESBoardBase
public sealed class MLT_ACTION52 : NesBoardBase
{
[MapperProp]
public bool prg_mode = false;
@ -58,7 +58,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1800)
{
@ -66,7 +66,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr >= 0x1800)
{
@ -74,11 +74,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
//$8000-FFFF: [.... ..CC] Low 2 bits of CHR
//A~[..MH HPPP PPO. CCCC]
@ -117,25 +117,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VROM[((chr_reg & chr_bank_mask_8k) * 0x2000) + addr];
return Vrom[((chr_reg & chr_bank_mask_8k) * 0x2000) + addr];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (prg_mode == false)
{
int bank = (prg_reg >> 1) & prg_bank_mask_32k;
return ROM[(bank * 0x8000) + addr + chip_offset];
return Rom[(bank * 0x8000) + addr + chip_offset];
}
else
{
return ROM[((prg_reg & prg_bank_mask_16k) * 0x4000) + (addr & 0x3FFF) + chip_offset];
return Rom[((prg_reg & prg_bank_mask_16k) * 0x4000) + (addr & 0x3FFF) + chip_offset];
}
}
}

View File

@ -3,7 +3,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class MLT_MAX15 : NES.NESBoardBase
public sealed class MLT_MAX15 : NesBoardBase
{
//http://wiki.nesdev.com/w/index.php/INES_Mapper_234
@ -33,7 +33,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void NESSoftReset()
public override void NesSoftReset()
{
mode = false;
block_high = 0;
@ -41,7 +41,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
prg_bank = 0;
chr_bank_high = 0;
reg_0_locked = false;
base.NESSoftReset();
base.NesSoftReset();
SetMirrorType(EMirrorType.Vertical);
}
@ -56,11 +56,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr < 0x7F80)
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
else
{
@ -106,7 +106,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank;
if (mode)
@ -118,18 +118,18 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank = (block_high << 1) | block_low;
}
byte value = ROM[((bank & prg_bank_mask_32k) * 0x8000) + (addr & 0x7FFF)];
byte value = Rom[((bank & prg_bank_mask_32k) * 0x8000) + (addr & 0x7FFF)];
if (addr >= 0x7F80)
{
WritePRG(addr, value);
WritePrg(addr, value);
}
return value;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -143,9 +143,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank = (block_high << 3) | (block_low << 2) | chr_bank_high;
}
return VROM[((bank & chr_bank_mask_8k) * 0x2000) + (addr & 0x1FFF)];
return Vrom[((bank & chr_bank_mask_8k) * 0x2000) + (addr & 0x1FFF)];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -48,7 +48,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(wram_l_enabled_write), ref wram_l_enabled_write);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr & 0x6001)
{
@ -73,10 +73,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
break;
}
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr < 0x1000)
return;
@ -90,10 +90,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bool write_enabled = (block == 1) ? wram_h_enabled_write : wram_l_enabled_write;
if (write_enabled && block_enabled)
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
byte open_bus = 0xFF; //open bus
if (addr < 0x1000)
@ -110,7 +110,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return open_bus;
if (block_enabled)
return base.ReadWRAM(addr);
return base.ReadWram(addr);
return 0;
}

View File

@ -51,23 +51,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
bool oldIrqType;
public NES.NESBoardBase.EMirrorType MirrorType
public NesBoardBase.EMirrorType MirrorType
{
get
{
switch (mirror)
{
default:
case 0: return NES.NESBoardBase.EMirrorType.Vertical;
case 1: return NES.NESBoardBase.EMirrorType.Horizontal;
case 2: return NES.NESBoardBase.EMirrorType.OneScreenA;
case 3: return NES.NESBoardBase.EMirrorType.OneScreenB;
case 0: return NesBoardBase.EMirrorType.Vertical;
case 1: return NesBoardBase.EMirrorType.Horizontal;
case 2: return NesBoardBase.EMirrorType.OneScreenA;
case 3: return NesBoardBase.EMirrorType.OneScreenB;
}
}
}
protected NES.NESBoardBase board;
public MMC3(NES.NESBoardBase board, int num_prg_banks)
protected NesBoardBase board;
public MMC3(NesBoardBase board, int num_prg_banks)
{
MirrorMask = 1;
this.board = board;
@ -309,19 +309,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public abstract class MMC3Board_Base : NES.NESBoardBase
public abstract class MMC3Board_Base : NesBoardBase
{
//state
public MMC3 mmc3;
public int extra_vrom;
public override void AddressPPU(int addr)
public override void AddressPpu(int addr)
{
mmc3.AddressPPU(addr);
}
public override void ClockPPU()
public override void ClockPpu()
{
mmc3.ClockPPU();
}
@ -355,42 +355,42 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return addr;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
addr = MapCHR(addr);
if (VROM != null)
return VROM[addr + extra_vrom];
else return VRAM[addr];
if (Vrom != null)
return Vrom[addr + extra_vrom];
else return Vram[addr];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
if (VRAM == null) return;
if (Vram == null) return;
addr = MapCHR(addr);
VRAM[addr] = value;
Vram[addr] = value;
}
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
mmc3.WritePRG(addr, value);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = Get_PRGBank_8K(addr);
bank_8k &= prg_mask;
addr = (bank_8k << 13) | (addr & 0x1FFF);
return ROM[addr];
return Rom[addr];
}
protected virtual void BaseSetup()

View File

@ -30,9 +30,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int block0, block1;
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
block0 = value & 1;
block1 = (value >> 4) & 1;
}

View File

@ -31,7 +31,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (!mmc3.wram_enable || mmc3.wram_write_protect)
return;

View File

@ -29,9 +29,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int block_select;
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
switch (addr & 0x6001)
{

View File

@ -35,13 +35,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int block, prg;
bool mode;
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (!mmc3.wram_enable || mmc3.wram_write_protect) return;
mode = value.Bit(0);
prg = (value >> 4) & 3;
block = (value >> 6) & 3;
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}

View File

@ -37,21 +37,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void NESSoftReset()
public override void NesSoftReset()
{
lock_regs = false;
prg_block_size = false;
chr_block_size = false;
prg_or = 0;
chr_or = 0;
base.NESSoftReset();
base.NesSoftReset();
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (lock_regs)
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
else
{
@ -68,14 +68,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = Get_PRGBank_8K(addr);
bank_8k &= PRG_AND();
bank_8k |= PRG_OR();
bank_8k &= prg_mask;
addr = (bank_8k << 13) | (addr & 0x1FFF);
return ROM[addr];
return Rom[addr];
}
private int PRG_AND()

View File

@ -22,7 +22,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return false;
}
VRAM = new byte[2048];
Vram = new byte[2048];
if (Cart.chr_size == 0 && Cart.board_type == "MAPPER074")
throw new Exception("Mapper074 carts MUST have chr rom!");
@ -30,61 +30,61 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
int bank = Get_CHRBank_1K(addr);
if (bank == 0x08)
{
VRAM[addr & 0x03FF] = value;
Vram[addr & 0x03FF] = value;
}
else if (bank == 0x09)
{
VRAM[(addr & 0x03FF) + 0x400] = value;
Vram[(addr & 0x03FF) + 0x400] = value;
}
// Ying Kiong Chuan Qi, no VROM
// Nestopia maps this to mapper 224, perhaps we should do the same instead of attempt to account for this scenario here
else
{
addr = MapCHR(addr);
VRAM[addr & (VRAM.Length - 1)] = value;
Vram[addr & (Vram.Length - 1)] = value;
}
}
else
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
int bank = Get_CHRBank_1K(addr);
if (bank == 0x08)
{
return VRAM[addr & 0x03FF];
return Vram[addr & 0x03FF];
}
if (bank == 0x09)
{
return VRAM[(addr & 0x03FF) + 0x400];
return Vram[(addr & 0x03FF) + 0x400];
}
addr = MapCHR(addr);
// Ying Kiong Chuan Qi, no VROM
// Nestopia maps this to mapper 224, perhaps we should do the same instead of attempt to account for this scenario here
if (VROM == null)
if (Vrom == null)
{
return VRAM[addr];
return Vram[addr];
}
return VROM[addr];
return Vrom[addr];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -34,7 +34,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("expregs", ref EXPREGS, false);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if ((addr & 0x7) == 0 && addr >= 0x1000)
{
@ -42,7 +42,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if ((addr & 0x7) == 0)
{
@ -50,7 +50,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr & 0x6000)
{
@ -60,39 +60,39 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 0x2000: //$A000
value = (byte)((value & 0xC0) | sec[value & 0x07]);
EXPREGS[1] = 1;
base.WritePRG(0, value);
base.WritePrg(0, value);
break;
case 0x4000: //$C000
if(EXPREGS[1] == 1)
{
EXPREGS[1] = 0;
base.WritePRG(1, value);
base.WritePrg(1, value);
}
break;
case 0x6000: //$E000
if (value > 0)
{
base.WritePRG(0x6001, value);
base.WritePRG(0x4000, value);
base.WritePRG(0x4001, value);
base.WritePrg(0x6001, value);
base.WritePrg(0x4000, value);
base.WritePrg(0x4001, value);
}
else
{
base.WritePRG(0x6000, value);
base.WritePrg(0x6000, value);
}
break;
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if ((EXPREGS[0] & 0x80) > 0)
{
var bank = EXPREGS[0] & 0x1F & prg_mask_16;
return ROM[(bank << 14) + (addr & 0x3FFF)];
return Rom[(bank << 14) + (addr & 0x3FFF)];
}
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
}
}

View File

@ -36,9 +36,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bool prg_mode_mapper;
int prg_page, chr_block_or;
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
switch (addr & 1)
{
case 0:

View File

@ -29,7 +29,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(exRegs), ref exRegs, false);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr >= 0x1000)
{
@ -37,11 +37,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1000) // 0x5000-0x5FFF
{
@ -49,7 +49,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = addr >> 13;
@ -66,10 +66,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_8k &= prg_mask;
addr = (bank_8k << 13) | (addr & 0x1FFF);
return ROM[addr];
return Rom[addr];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr < 0x2000)
{
@ -91,13 +91,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
else if ((addr & 1)>0)
base.WritePRG(addr, value);
base.WritePrg(addr, value);
else //if (addr==0)
base.WritePRG(0, value);
base.WritePrg(0, value);
}
else
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
}
}

View File

@ -30,7 +30,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("expregs", ref EXPREGS, false);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1000)
{
@ -48,44 +48,44 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr < 0x2000)
{
switch ((addr + 0x8000) & 0x8001)
{
case 0x8000: base.WritePRG(0x8000, (byte)((value & 0xC0) | sec[value&7])); break;
case 0x8001: base.WritePRG(0x8001, value); break;
case 0x8000: base.WritePrg(0x8000, (byte)((value & 0xC0) | sec[value&7])); break;
case 0x8001: base.WritePrg(0x8001, value); break;
}
}
else
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if ((EXPREGS[0] & 0x40) > 0)
{
var bank = (EXPREGS[0] & 5) | ((EXPREGS[0] & 8) >> 2) | ((EXPREGS[0] & 0x20) >> 2);
if ((EXPREGS[0] & 2) > 0)
{
return ROM[((bank >> 1) << 15) + (addr & 0x7FFF)];
return Rom[((bank >> 1) << 15) + (addr & 0x7FFF)];
}
else
{
return ROM[(bank << 14) + (addr & 0x3FFF)];
return Rom[(bank << 14) + (addr & 0x3FFF)];
}
}
else
{
//return (byte)(base.ReadPRG(addr) & 0x3F);
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
}
}

View File

@ -26,14 +26,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(reg), ref reg);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr == 1) // 0x6001
{
reg = value;
}
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
protected override int Get_PRGBank_8K(int addr)

View File

@ -45,16 +45,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int bank = mmc3.regs[addr < 0x1000 ? latch0 ? 1 : 0 : latch1 ? 4 : 2];
if (bank == 0)
ret = VRAM[addr & 0xfff];
ret = Vram[addr & 0xfff];
else
ret = VROM[(addr & 0xfff) + (((bank >> 2) & real_chr_mask) << 12)];
ret = Vrom[(addr & 0xfff) + (((bank >> 2) & real_chr_mask) << 12)];
}
else
ret = base.ReadPPU(addr);
ret = base.ReadPpu(addr);
return ret;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
byte ret;
if (addr < 0x2000)
@ -62,12 +62,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int bank = mmc3.regs[addr < 0x1000 ? latch0 ? 1 : 0 : latch1 ? 4 : 2];
if (bank == 0)
ret = VRAM[addr & 0xfff];
ret = Vram[addr & 0xfff];
else
ret = VROM[(addr & 0xfff) + (((bank >> 2) & real_chr_mask) << 12)];
ret = Vrom[(addr & 0xfff) + (((bank >> 2) & real_chr_mask) << 12)];
}
else
ret = base.ReadPPU(addr);
ret = base.ReadPpu(addr);
// latch processes for the next read
switch (addr & 0x3ff8)
@ -80,16 +80,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return ret;
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
int bank = mmc3.regs[addr < 0x1000 ? latch0 ? 1 : 0 : latch1 ? 4 : 2];
if (bank == 0)
VRAM[addr & 0xfff] = value;
Vram[addr & 0xfff] = value;
}
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
}

View File

@ -18,25 +18,25 @@
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr += 0x8000;
switch (addr & 0xE001)
{
case 0x8000: break; //?
case 0x8001: base.WritePRG(0xA000,value); break;
case 0x8001: base.WritePrg(0xA000,value); break;
case 0xA000:
value = (byte)scramble_A000(value);
base.WritePRG(0x8000,value);
base.WritePrg(0x8000,value);
break;
case 0xA001: break; //?
case 0xC000: base.WritePRG(0x8001, value); break;
case 0xC000: base.WritePrg(0x8001, value); break;
case 0xC001:
base.WritePRG(0xC000, value);
base.WritePRG(0xC001, value);
base.WritePrg(0xC000, value);
base.WritePrg(0xC001, value);
break;
default:
base.WritePRG(addr, value);
base.WritePrg(addr, value);
break;
}
}

View File

@ -29,49 +29,49 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("expregs", ref exRegs, false);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr == 0)
{
exRegs[1] = 1;
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
else if ((addr == 0x0001) && (exRegs[1] > 0))
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
else
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr == 0x1000) // 0x5000
{
exRegs[0] = value;
}
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr == 0x0000)
{
exRegs[0] = value;
}
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr >= 0x1000)
{
return prot_data[exRegs[1] & 3];
}
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
private byte MMc3_cmd => (byte)(mmc3.chr_mode ? 0x80 : 0);
@ -86,7 +86,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return base.Get_CHRBank_1K(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if ((exRegs[0] & 0x80) > 0)
{
@ -95,16 +95,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if ((exRegs[0] & 0x40) > 0)
{
return ROM[((bank >> 2) << 15) + addr];
return Rom[((bank >> 2) << 15) + addr];
}
return ROM[((bank >> 1) << 15) + addr]; // hacky! two mappers in one! need real hw carts to test
return Rom[((bank >> 1) << 15) + addr]; // hacky! two mappers in one! need real hw carts to test
}
return ROM[(bank << 14) + (addr & 0x3FFF)];
return Rom[(bank << 14) + (addr & 0x3FFF)];
}
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
}
}

View File

@ -30,9 +30,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return (prg * 4) + block_8k;
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
int prg_a = value & 0xF;
int prg_b = (value>>4)&0xF;
prg = prg_a | prg_b;
@ -44,9 +44,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(prg), ref prg);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
WriteWRAM(addr, value);
WriteWram(addr, value);
}
}

View File

@ -25,27 +25,27 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr >= 0x2000)
{
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
int bank_1k = Get_CHRBank_1K(addr);
if (bank_1k.Bit(7))
{
//this is referencing chr ram
return VRAM[addr & 0x7FF];
return Vram[addr & 0x7FF];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr >= 0x2000)
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
return;
}
@ -53,9 +53,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (bank_1k.Bit(7))
{
//this is referencing chr ram
VRAM[addr & 0x7FF] = value;
Vram[addr & 0x7FF] = value;
}
else base.WritePPU(addr, value);
else base.WritePpu(addr, value);
}
}

View File

@ -14,70 +14,70 @@
default:
return false;
}
VRAM = new byte[4096];
Vram = new byte[4096];
BaseSetup();
return true;
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
int bank = Get_CHRBank_1K(addr);
if (bank == 0x08)
{
VRAM[addr & 0x03FF] = value;
Vram[addr & 0x03FF] = value;
}
else if (bank == 0x09)
{
VRAM[(addr & 0x03FF) + 0x400] = value;
Vram[(addr & 0x03FF) + 0x400] = value;
}
if (bank == 0x0A)
{
VRAM[addr & 0x03FF + 0x800] = value;
Vram[addr & 0x03FF + 0x800] = value;
}
else if (bank == 0x0B)
{
VRAM[(addr & 0x03FF) + 0xC00] = value;
Vram[(addr & 0x03FF) + 0xC00] = value;
}
}
else
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
int bank = Get_CHRBank_1K(addr);
if (bank == 0x08)
{
byte value = VRAM[addr & 0x03FF];
byte value = Vram[addr & 0x03FF];
return value;
}
else if (bank == 0x09)
{
return VRAM[(addr & 0x03FF) + 0x400];
return Vram[(addr & 0x03FF) + 0x400];
}
else if (bank == 0x0A)
{
return VRAM[(addr & 0x03FF) + 0x800];
return Vram[(addr & 0x03FF) + 0x800];
}
else if (bank == 0x0B)
{
return VRAM[(addr & 0x03FF) + 0xC00];
return Vram[(addr & 0x03FF) + 0xC00];
}
else
{
addr = MapCHR(addr);
return VROM[addr + extra_vrom];
return Vrom[addr + extra_vrom];
}
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
}
}

View File

@ -14,20 +14,20 @@
default:
return false;
}
VRAM = new byte[2048];
Vram = new byte[2048];
BaseSetup();
return true;
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
VRAM[addr & 0x7FF] = value;
Vram[addr & 0x7FF] = value;
}
else
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
@ -38,27 +38,27 @@
return bank_1k;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
int bank = GetBankNum(addr);
if (bank == 0x00)
{
return VRAM[addr & 0x03FF];
return Vram[addr & 0x03FF];
}
else if (bank == 0x01)
{
return VRAM[(addr & 0x03FF) + 0x400];
return Vram[(addr & 0x03FF) + 0x400];
}
else
{
addr = MapCHR(addr);
return VROM[addr + extra_vrom];
return Vrom[addr + extra_vrom];
}
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
}
}

View File

@ -20,39 +20,39 @@
return true;
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr >= 0x1000)
{
return WRAM[addr-0x1000];
return Wram[addr-0x1000];
}
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1000)
{
WRAM[addr - 0x1000] = value;
Wram[addr - 0x1000] = value;
}
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (!mmc3.wram_enable || mmc3.wram_write_protect) return;
base.WriteWRAM(addr+0x1000, value);
base.WriteWram(addr+0x1000, value);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
if (!mmc3.wram_enable) return NES.DB;
return base.ReadWRAM(addr+0x1000);
return base.ReadWram(addr+0x1000);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -60,19 +60,19 @@
if (bank_1k<=3)
{
return VRAM[(bank_1k << 10) + (addr & 0x3FF)];
return Vram[(bank_1k << 10) + (addr & 0x3FF)];
}
else
{
addr = MapCHR(addr);
return VROM[addr + extra_vrom];
return Vrom[addr + extra_vrom];
}
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
@ -80,7 +80,7 @@
if (bank_1k <= vram_bank_mask_1k)
{
VRAM[(bank_1k << 10) + (addr & 0x3FF)] = value;
Vram[(bank_1k << 10) + (addr & 0x3FF)] = value;
}
else
{
@ -88,7 +88,7 @@
}
}
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
}

View File

@ -31,7 +31,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -39,19 +39,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (bank_1k<=3)
{
return VRAM[(bank_1k << 10) + (addr & 0x3FF)];
return Vram[(bank_1k << 10) + (addr & 0x3FF)];
}
else
{
addr = MapCHR(addr);
return VROM[addr + extra_vrom];
return Vrom[addr + extra_vrom];
}
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
@ -59,7 +59,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (bank_1k <= vram_bank_mask_1k)
{
VRAM[(bank_1k << 10) + (addr & 0x3FF)] = value;
Vram[(bank_1k << 10) + (addr & 0x3FF)] = value;
}
else
{
@ -67,7 +67,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
}

View File

@ -42,7 +42,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.EndSection();
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr < 0x1000)
{
@ -54,7 +54,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
// addresses are scrambled
if (addr >= 0x4000)
@ -65,18 +65,18 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
addr = (addr & 0xFFFE) | ((addr >> 2) & 1) | ((addr >> 3) & 1) | ((addr >> 1) & 1);
}
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (prgmode)
{
return ROM[addr | prgreg << 15];
return Rom[addr | prgreg << 15];
}
else
{
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
}

View File

@ -31,7 +31,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//This board has 512k CHR ROM, so the ByteBuffer in the base class deosn't suffice.
public int[] chr_regs_1k_512 = new int[8];
public Mapper197_MMC3(NES.NESBoardBase board, int num_prg_banks) : base(board, num_prg_banks)
public Mapper197_MMC3(NesBoardBase board, int num_prg_banks) : base(board, num_prg_banks)
{
}

View File

@ -29,24 +29,24 @@
return val;
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr >= 0x1000)
{
return WRAM[addr - 0x1000];
return Wram[addr - 0x1000];
}
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1000)
{
WRAM[addr - 0x1000] = value;
Wram[addr - 0x1000] = value;
}
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
}
}

View File

@ -32,7 +32,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(exRegs), ref exRegs, false);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -42,43 +42,43 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (mmc3.regs[0]<8)
{
return VRAM[(mmc3.regs[0] << 10) + (addr & 0x3FF)];
return Vram[(mmc3.regs[0] << 10) + (addr & 0x3FF)];
} else
{
return VROM[(mmc3.regs[0] << 10) + (addr & 0x3FF)];
return Vrom[(mmc3.regs[0] << 10) + (addr & 0x3FF)];
}
}
else if (addr<0x800)
{
if (exRegs[2] < 8)
{
return VRAM[(exRegs[2] << 10) + (addr & 0x3FF)];
return Vram[(exRegs[2] << 10) + (addr & 0x3FF)];
}
else
{
return VROM[(exRegs[2] << 10) + (addr & 0x3FF)];
return Vrom[(exRegs[2] << 10) + (addr & 0x3FF)];
}
}
else if (addr < 0xC00)
{
if (mmc3.regs[1] < 8)
{
return VRAM[(mmc3.regs[1] << 10) + (addr & 0x3FF)];
return Vram[(mmc3.regs[1] << 10) + (addr & 0x3FF)];
}
else
{
return VROM[(mmc3.regs[1] << 10) + (addr & 0x3FF)];
return Vrom[(mmc3.regs[1] << 10) + (addr & 0x3FF)];
}
}
else
{
if (exRegs[3] < 8)
{
return VRAM[(exRegs[3] << 10) + (addr & 0x3FF)];
return Vram[(exRegs[3] << 10) + (addr & 0x3FF)];
}
else
{
return VROM[(exRegs[3] << 10) + (addr & 0x3FF)];
return Vrom[(exRegs[3] << 10) + (addr & 0x3FF)];
}
}
}
@ -87,19 +87,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int bank_1k = Get_CHRBank_1K(addr);
if (bank_1k < 8)
{
return VRAM[(bank_1k << 10) + (addr & 0x3FF)];
return Vram[(bank_1k << 10) + (addr & 0x3FF)];
}
else
{
return VROM[(bank_1k << 10) + (addr & 0x3FF)];
return Vrom[(bank_1k << 10) + (addr & 0x3FF)];
}
}
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
@ -109,7 +109,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (mmc3.regs[0] < 8)
{
VRAM[(mmc3.regs[0] << 10) + (addr & 0x3FF)]=value;
Vram[(mmc3.regs[0] << 10) + (addr & 0x3FF)]=value;
}
else
{
@ -120,7 +120,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (exRegs[2] < 8)
{
VRAM[(exRegs[2] << 10) + (addr & 0x3FF)]=value;
Vram[(exRegs[2] << 10) + (addr & 0x3FF)]=value;
}
else
{
@ -131,7 +131,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (mmc3.regs[1] < 8)
{
VRAM[(mmc3.regs[1] << 10) + (addr & 0x3FF)]=value;
Vram[(mmc3.regs[1] << 10) + (addr & 0x3FF)]=value;
}
else
{
@ -142,7 +142,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (exRegs[3] < 8)
{
VRAM[(exRegs[3] << 10) + (addr & 0x3FF)]=value;
Vram[(exRegs[3] << 10) + (addr & 0x3FF)]=value;
}
else
{
@ -155,7 +155,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int bank_1k = Get_CHRBank_1K(addr);
if (bank_1k < 8)
{
VRAM[(bank_1k << 10) + (addr & 0x3FF)]=value;
Vram[(bank_1k << 10) + (addr & 0x3FF)]=value;
}
else
{
@ -164,7 +164,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
protected override int Get_PRGBank_8K(int addr)
@ -181,14 +181,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return base.Get_PRGBank_8K(addr);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if ((addr == 1) && ((mmc3.cmd & 0x8) > 0))
{
exRegs[mmc3.cmd & 3] = value;
}
else
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
}
}

View File

@ -31,12 +31,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
block = value & 0x03;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = Get_PRGBank_8K(addr);
bank_8k &= prg_mask;
@ -62,7 +62,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
addr = (bank_8k << 13) | (addr & 0x1FFF);
return ROM[addr];
return Rom[addr];
}
int MapCHR2(int addr)
@ -92,22 +92,22 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return addr;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
addr = MapCHR2(addr);
if (VROM != null)
return VROM[addr + extra_vrom];
else return VRAM[addr];
if (Vrom != null)
return Vrom[addr + extra_vrom];
else return Vram[addr];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override void NESSoftReset()
public override void NesSoftReset()
{
block = 0;
base.NESSoftReset();
base.NesSoftReset();
}
}
}

View File

@ -45,22 +45,22 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("expregs", ref exRegs, false);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[(exRegs[5] << 15) + addr];
return Rom[(exRegs[5] << 15) + addr];
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr >= 0x1800) // 0x5800-0x5FFF
{
return exRegs[addr & 3];
}
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x800 && addr < 0x1000) // 0x4800-0x4FFF
{
@ -82,11 +82,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
else
{
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr >= 0x800 && addr < 0x1000) // 0x6800 - 0x6FFF
{
@ -94,7 +94,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
}

View File

@ -124,16 +124,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr == 0x1000) { exRegs[0] = value; sync_prg_2(); }
if (addr == 0x1001) { exRegs[1] = value; }
if (addr == 0x1007) { exRegs[2] = value; mmc3.reg_addr = 0; sync_prg_2(); }
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (!is_mk3)
{
@ -142,10 +142,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (addr == 0x0007) { exRegs[2] = value; mmc3.reg_addr = 0; sync_prg_2(); }
}
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr += 0x8000;
switch (addr &= 0xE001)
@ -153,7 +153,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 0x8000:
if (exRegs[2]==0)
{
base.WritePRG(0x0000, value);
base.WritePrg(0x0000, value);
sync_prg(0);
sync_prg(2);
}
@ -164,7 +164,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if ((exRegs[3]>0) && ((exRegs[0] & 0x80) == 0 || (mmc3.reg_addr & 0x7) < 6))
{
exRegs[3] = 0;
base.WritePRG(0x0001, value);
base.WritePrg(0x0001, value);
if (mmc3.reg_addr==7)
sync_prg(1);
else if ((mmc3.reg_addr==6) && mmc3.prg_mode)
@ -175,7 +175,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
base.WritePRG(0x0001, value);
base.WritePrg(0x0001, value);
if (mmc3.reg_addr == 7)
sync_prg(1);
else if ((mmc3.reg_addr == 6) && mmc3.prg_mode)
@ -190,7 +190,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
value = (byte)((value & 0xC0) | regs_sec[value & 0x07]);
exRegs[3] = 1;
base.WritePRG(0x0000, value);
base.WritePrg(0x0000, value);
sync_prg(0);
sync_prg(2);
}
@ -207,7 +207,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
break;
case 0xA001:
base.WritePRG(0x4001, value);
base.WritePrg(0x4001, value);
break;
case 0xC000:
if (exRegs[2]>0)
@ -220,32 +220,32 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
SetMirrorType(EMirrorType.Horizontal);
}
else
base.WritePRG(0x4000, value);
base.WritePrg(0x4000, value);
break;
case 0xC001:
if (exRegs[2]>0)
base.WritePRG(0x6001, value);
base.WritePrg(0x6001, value);
else
base.WritePRG(0x4001, value);
base.WritePrg(0x4001, value);
break;
case 0xE000:
base.WritePRG(0x6000, value);
base.WritePrg(0x6000, value);
break;
case 0xE001:
if (exRegs[2]>0)
{
base.WritePRG(0x4000, value);
base.WritePRG(0x4001, value);
base.WritePrg(0x4000, value);
base.WritePrg(0x4001, value);
}
else
{
base.WritePRG(0x6001, value);
base.WritePrg(0x6001, value);
}
break;
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -258,16 +258,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_1k &= chr_mask_1k;
addr = (bank_1k << 10) | (addr & 0x3FF);
return VROM[addr];
return Vrom[addr];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank = addr >> 13;
bank = prg_regs_8k[bank];
return ROM[(bank << 13) + (addr & 0x1FFF)];
return Rom[(bank << 13) + (addr & 0x1FFF)];
}
}
}

View File

@ -65,7 +65,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr == 0x1000)
{
@ -99,21 +99,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
exRegs[2] = value;
}
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch ((addr + 0x8000) & 0xE001)
{
case 0x8000:
if (exRegs[2] > 0)
{
base.WritePRG(0x4000, value);
base.WritePrg(0x4000, value);
}
else
{
base.WritePRG(0x0000, value);
base.WritePrg(0x0000, value);
sync_prg();
}
break;
@ -123,12 +123,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
value = (byte)((value & 0xC0) | regs_sec[value & 0x07]);
exRegs[3] = 1;
base.WritePRG(0x0000, value);
base.WritePrg(0x0000, value);
sync_prg();
}
else
{
base.WritePRG(0x0001, value);
base.WritePrg(0x0001, value);
sync_prg();
}
break;
@ -138,7 +138,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if ((exRegs[3] > 0) && ((exRegs[0] & 0x80) == 0 || (mmc3.reg_addr & 0x7) < 6))
{
exRegs[3] = 0;
base.WritePRG(0x0001, value);
base.WritePrg(0x0001, value);
sync_prg();
}
}
@ -167,16 +167,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
} else
{
base.WritePRG(0x2001, value);
base.WritePrg(0x2001, value);
}
break;
}
if (addr>=0x4000)
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -188,17 +188,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_1k |= (exRegs[1] << 8 & 0x300);
bank_1k &= chr_mask_1k;
addr = (bank_1k << 10) | (addr & 0x3FF);
return VROM[addr];
return Vrom[addr];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank = addr >> 13;
bank = prg_regs_8k[bank];
return ROM[(bank << 13) + (addr & 0x1FFF)];
return Rom[(bank << 13) + (addr & 0x1FFF)];
}
}
}

View File

@ -54,7 +54,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr<0x2000)
{
@ -105,43 +105,43 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
else
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_prg = addr >> 13;
bank_prg = prgregs[bank_prg] & prg_mask;
return ROM[((bank_prg << 13) + (addr & 0x1FFF))];
return Rom[((bank_prg << 13) + (addr & 0x1FFF))];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr<0x2000)
{
int bank_chr = addr >> 10;
bank_chr = chrregs[bank_chr] & chr_mask;
if (VROM != null)
if (Vrom != null)
{
return VROM[((bank_chr << 10) + (addr & 0x3FF))];
return Vrom[((bank_chr << 10) + (addr & 0x3FF))];
}
return VRAM[((bank_chr << 10) + (addr & 0x3FF))];
return Vram[((bank_chr << 10) + (addr & 0x3FF))];
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
int bank_chr = addr >> 10;
bank_chr = chrregs[bank_chr];
VRAM[((bank_chr << 10) + (addr & 0x3FF))]=value;
Vram[((bank_chr << 10) + (addr & 0x3FF))]=value;
}
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
public override void SyncState(Serializer ser)

View File

@ -20,24 +20,24 @@
return true;
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr>0x1000)
{
WRAM[addr + 0x4000 - (0x5000 - 0x2000)] = value;
Wram[addr + 0x4000 - (0x5000 - 0x2000)] = value;
}
else
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr > 0x1000)
{
return WRAM[addr + 0x4000 - (0x5000 - 0x2000)];
return Wram[addr + 0x4000 - (0x5000 - 0x2000)];
}
else
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
}
}

View File

@ -29,32 +29,32 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(reg), ref reg);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr < 0x20)
{
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
return reg;
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
return reg;
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr < 0x20)
{
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
reg = (byte)lut[value & 3];
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
reg = (byte)lut[value & 3];
}

View File

@ -30,7 +30,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = Get_PRGBank_8K(addr);
bank_8k &= 0x3F;
@ -46,19 +46,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_8k &= prg_mask;
addr = (bank_8k << 13) | (addr & 0x1FFF);
return ROM[addr];
return Rom[addr];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (addr == 0)
{
chr_mode = value.Bit(7);
}
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -66,25 +66,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (addr < 0x1000)
{
return VRAM[addr + 0x1000];
return Vram[addr + 0x1000];
}
else
{
return VRAM[addr - 0x1000];
return Vram[addr - 0x1000];
}
}
else
{
return VRAM[addr];
return Vram[addr];
}
}
else
{
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
@ -92,21 +92,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
if (addr < 0x1000)
{
VRAM[addr + 0x1000] = value;
Vram[addr + 0x1000] = value;
}
else
{
VRAM[addr - 0x1000] = value;
Vram[addr - 0x1000] = value;
}
}
else
{
VRAM[addr] = value;
Vram[addr] = value;
}
}
else
{
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
}

View File

@ -30,7 +30,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(piratecrap), ref piratecrap);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
piratecrap = value.Bit(1);
}

View File

@ -18,9 +18,9 @@
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
base.WritePRG(addr & 0x6000 | addr >> 10 & 1, (byte)(addr & 0xff));
base.WritePrg(addr & 0x6000 | addr >> 10 & 1, (byte)(addr & 0xff));
}
}
}

View File

@ -27,19 +27,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(regs), ref regs, false);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
if (regs[0] > 0)
{
return WRAM[addr];
return Wram[addr];
}
else
{
return (byte)(WRAM[addr] ^ regs[1]);
return (byte)(Wram[addr] ^ regs[1]);
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr)
{
@ -51,7 +51,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
break;
}
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
}
}

View File

@ -13,9 +13,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(block), ref block);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
SetMirrorType(mmc3.MirrorType); //often redundant, but gets the job done
}
@ -51,11 +51,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return (base.Get_CHRBank_1K(addr) & 0x7F) + block * 128;
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
return (byte)block;
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (mmc3.wram_enable && !mmc3.wram_write_protect)
{

View File

@ -48,15 +48,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(chr_mask), ref chr_mask_1k);
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr == 0x1000) { exRegs[0] = value; }
if (addr == 0x1001) { exRegs[1] = value; }
base.WriteEXP(addr, value);
base.WriteExp(addr, value);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr += 0x8000;
@ -76,30 +76,30 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
value = (byte)((value & 0xC0) | regs_sec[value & 0x07]);
exRegs[2] = 1;
base.WritePRG(0x0000, value);
base.WritePrg(0x0000, value);
}
else if (addr < 0xE000)
{
if (exRegs[2] >0)
{
exRegs[2] = 0;
base.WritePRG(0x0001, value);
base.WritePrg(0x0001, value);
}
}
else if (addr < 0xF000)
{
// nothing
base.WritePRG(0x6000, value);
base.WritePrg(0x6000, value);
}
else
{
base.WritePRG(0x6001, value);
base.WritePRG(0x4000, value);
base.WritePRG(0x4001, value);
base.WritePrg(0x6001, value);
base.WritePrg(0x4000, value);
base.WritePrg(0x4001, value);
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -108,23 +108,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank_1k |= (exRegs[1] << 6 & 0x100);
bank_1k &= chr_mask_1k;
addr = (bank_1k << 10) | (addr & 0x3FF);
return VROM[addr];
return Vrom[addr];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank = exRegs[0] & 0xF;
if ((exRegs[0] & 0x80)>0)
{
if ((exRegs[0] & 0x20)>0)
{
return ROM[((bank >> 1) << 15) + (addr & 0x7FFF)];
return Rom[((bank >> 1) << 15) + (addr & 0x7FFF)];
}
else
{
return ROM[((bank) << 14) + (addr & 0x3FFF)];
return Rom[((bank) << 14) + (addr & 0x3FFF)];
}
}
@ -132,7 +132,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
bank = mmc3.Get_PRGBank_8K(addr);
bank &= prg_mask_8k;
return ROM[(bank << 13) + (addr & 0x1FFF)];
return Rom[(bank << 13) + (addr & 0x1FFF)];
}
}

View File

@ -36,18 +36,18 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(exnmt), ref exnmt);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (exmode.Bit(1))
{
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
else
{
int b = addr >> 13;
b = exprg[b];
b &= prg_mask;
return ROM[addr & 0x1fff | b << 13];
return Rom[addr & 0x1fff | b << 13];
}
}
@ -60,7 +60,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
static readonly byte[] modes = { 5, 5, 3, 1 };
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -76,17 +76,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank = exchr[addr >> 10];
}
bank &= chr_mask;
return VROM[addr & 0x3ff | bank << 10];
return Vrom[addr & 0x3ff | bank << 10];
}
else
{
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
// this is stupid as hell
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
//Console.WriteLine("{0:x4}:{1:x2}", addr, value);
@ -103,14 +103,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
switch (addr & 0x6001)
{
case 0x0000: base.WritePRG(0x0000, value); break;
case 0x0001: base.WritePRG(0x0001, value); break;
case 0x0000: base.WritePrg(0x0000, value); break;
case 0x0001: base.WritePrg(0x0001, value); break;
case 0x2000: SinkMirror(true); break;
case 0x2001: base.WritePRG(0x2001, value); break;
case 0x4000: base.WritePRG(0x4000, value); break;
case 0x4001: base.WritePRG(0x4001, value); break;
case 0x6000: base.WritePRG(0x6000, value); break;
case 0x6001: base.WritePRG(0x6001, value); break;
case 0x2001: base.WritePrg(0x2001, value); break;
case 0x4000: base.WritePrg(0x4000, value); break;
case 0x4001: base.WritePrg(0x4001, value); break;
case 0x6000: base.WritePrg(0x6000, value); break;
case 0x6001: base.WritePrg(0x6001, value); break;
}
}

View File

@ -51,7 +51,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
int nt = value >> 7;
@ -92,28 +92,28 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
if ((addr & 0x6001) != 0x2000)
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000) return base.ReadPPU(addr);
if (addr < 0x2000) return base.ReadPpu(addr);
else
{
int nt = ((addr - 0x2000) >> 10) & 0x3;
addr = 0x2000 + (addr & 0x3FF) + (nametables[nt] << 10);
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000) base.WritePPU(addr, value);
if (addr < 0x2000) base.WritePpu(addr, value);
else
{
int nt = ((addr - 0x2000) >> 10) & 0x3;
addr = 0x2000 + (addr & 0x3FF) + (nametables[nt] << 10);
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}

View File

@ -24,7 +24,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
@ -34,15 +34,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
addr = ((bank_1k&0x3f) << 10) | (addr & 0x3FF);
addr &= 0x1FFF;
return VRAM[addr];
return Vram[addr];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
@ -52,14 +52,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
addr = ((bank_1k & 0x3f) << 10) | (addr & 0x3FF);
addr &= 0x1FFF;
VRAM[addr] = value;
Vram[addr] = value;
}
//else
// if this address is mapped to chrrom and not chrram, the write just does nothing
//base.WritePPU(addr, value);
}
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}

View File

@ -33,20 +33,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//and that even though 8KB is really here, only 4KB gets used.
//still, purists could validate it.
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
//read patterns from mapper controlled area
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
else
{
return VRAM[addr & 0xFFF];
return Vram[addr & 0xFFF];
}
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{
@ -54,7 +54,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
VRAM[addr & 0xFFF] = value;
Vram[addr & 0xFFF] = value;
}
}

View File

@ -8,9 +8,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
[NES.INESBoardImplPriority]
public sealed class TxROM : MMC3Board_Base
{
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
base.WritePRG(addr, value);
base.WritePrg(addr, value);
SetMirrorType(mmc3.MirrorType); //often redundant, but gets the job done
}
@ -19,7 +19,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
get
{
if (!Cart.wram_battery) return null;
return WRAM;
return Wram;
//some boards have a wram that is backed-up or not backed-up. need to handle that somehow
//(nestopia splits it into NVWRAM and WRAM but i didnt like that at first.. but it may player better with this architecture)
}

View File

@ -3,7 +3,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper015 : NES.NESBoardBase
public sealed class Mapper015 : NesBoardBase
{
//configuration
int prg_bank_mask_8k;
@ -41,13 +41,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
addr = ApplyMemoryMap(13, prg_banks_8k, addr);
return ROM[addr];
return Rom[addr];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
int mode = addr & 3;
int prg_high = value & 0x3F;

View File

@ -3,7 +3,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// http://wiki.nesdev.com/w/index.php/User:Tepples/Multi-discrete_mapper
public sealed class Mapper028 : NES.NESBoardBase
public sealed class Mapper028 : NesBoardBase
{
// config
int chr_mask_8k;
@ -131,13 +131,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
if (addr >= 0x1000)
reg = value & 0x81;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (reg)
{
@ -162,25 +162,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VRAM[addr | chr << 13];
return Vram[addr | chr << 13];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
VRAM[addr | chr << 13] = value;
Vram[addr | chr << 13] = value;
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[(addr & 0x3fff) | (addr < 0x4000 ? prglo : prghi) << 14];
return Rom[(addr & 0x3fff) | (addr < 0x4000 ? prglo : prghi) << 14];
}
public override void SyncState(Serializer ser)

View File

@ -1,7 +1,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// what is this?
public class Mapper029 : NES.NESBoardBase
public class Mapper029 : NesBoardBase
{
int prg;
int chr;
@ -27,30 +27,30 @@
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
chr = value & 3;
prg = (value >> 2) & prg_bank_mask_16k;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank = addr >= 0x4000 ? prg_bank_mask_16k : prg;
return ROM[bank << 14 | addr & 0x3fff];
return Rom[bank << 14 | addr & 0x3fff];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VRAM[addr | chr << 13];
return Vram[addr | chr << 13];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
VRAM[addr | chr << 13] = value;
Vram[addr | chr << 13] = value;
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
}

View File

@ -4,7 +4,7 @@ using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public class Mapper030 : NES.NESBoardBase
public class Mapper030 : NesBoardBase
{
enum flashmode { fm_default, fm_erase, fm_write, fm_id }
@ -108,7 +108,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
static readonly int[] addr_bank = new int[5] { 1, 0, 1, 1, 0 };
static readonly byte[] addr_data = new byte[5] { 0xAA, 0x55, 0x80, 0xAA, 0x55 };
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if ((!Cart.wram_battery) || (addr >= 0x4000))
{
@ -173,7 +173,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
increment_flash_write_count(addr);
for (int i = 0; i < 0x1000; i++)
flash_rom[(prg << 14 | addr & 0x3000) + i + Cart.prg_size] = ROM[(prg << 14 | addr & 0x3000) + i];
flash_rom[(prg << 14 | addr & 0x3000) + i + Cart.prg_size] = Rom[(prg << 14 | addr & 0x3000) + i];
}
flash_rom[Cart.prg_size + (prg << 14 | addr & 0x3fff)] &= value;
flash_state = 0;
@ -187,7 +187,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank = addr >= 0x4000 ? prg_bank_mask_16k : prg;
if (Cart.wram_battery)
@ -216,23 +216,23 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (get_flash_write_count(addr) > 0)
return flash_rom[Cart.prg_size + (bank << 14 | addr & 0x3fff)];
}
return ROM[bank << 14 | addr & 0x3fff];
return Rom[bank << 14 | addr & 0x3fff];
}
public override byte[] SaveRam => flash_rom;
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VRAM[addr | chr << 13];
return base.ReadPPU(addr);
return Vram[addr | chr << 13];
return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
VRAM[addr | chr << 13] = value;
Vram[addr | chr << 13] = value;
else
base.WritePPU(addr, value);
base.WritePpu(addr, value);
}
}
}

View File

@ -2,7 +2,7 @@ using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper034 : NES.NESBoardBase
public sealed class Mapper034 : NesBoardBase
{
// zombie board that tries to handle both bxrom and ave-nina at once
@ -35,25 +35,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return (VROM ?? VRAM)[addr & 0xfff | chr[addr >> 12] << 12];
return (Vrom ?? Vram)[addr & 0xfff | chr[addr >> 12] << 12];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr | prg << 15];
return Rom[addr | prg << 15];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prg = value & prg_bank_mask_32k;
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
switch (addr)
{
@ -68,7 +68,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
break;
default:
// on NINA, the regs sit on top of WRAM
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
break;
}
}

View File

@ -7,7 +7,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
// mapper036
// Strike Wolf (MGC-014) [!].nes
// Using https://wiki.nesdev.com/w/index.php/INES_Mapper_036
public sealed class Mapper036 : NES.NESBoardBase
public sealed class Mapper036 : NesBoardBase
{
int chr;
int prg;
@ -34,31 +34,31 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[addr | chr << 13];
return Vrom[addr | chr << 13];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr | prg << 15];
return Rom[addr | prg << 15];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
// either hack emulation of a weird bus conflict, or crappy pirate safeguard
prg = (R >> 4) & prg_mask;
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
return (byte)(R | (NES.DB & 0xCF));
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
Console.WriteLine(addr);
Console.WriteLine(value);

View File

@ -3,7 +3,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// Crime Busters (Brazil) (Unl)
public sealed class Mapper038 : NES.NESBoardBase
public sealed class Mapper038 : NesBoardBase
{
//configuraton
int prg_mask, chr_mask;
@ -29,18 +29,18 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr + (prg << 15)];
return Rom[addr + (prg << 15)];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VROM[addr + (chr << 13)];
return Vrom[addr + (chr << 13)];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
void writereg(byte value)
@ -51,13 +51,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
// the standard way to access this register is at 7000:7fff, but due to
// hardware design, f000:ffff also works
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
//if ((addr & 0x7000) == 0x7000)
// writereg(value);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if ((addr & 0x1000) == 0x1000)
writereg(value);

View File

@ -3,7 +3,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// smb2j (us pirate)
public sealed class Mapper040 : NES.NESBoardBase
public sealed class Mapper040 : NesBoardBase
{
int prg = 0;
int irqcnt = 0;
@ -23,25 +23,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
// bank 6 fixed
return ROM[addr + 0xc000];
return Rom[addr + 0xc000];
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if ((addr & 0x6000) == 0x4000)
addr += prg;
return ROM[addr + 0x8000];
return Rom[addr + 0x8000];
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr & 0x6000)
{
case 0x0000:
irqcnt = 0;
IRQSignal = false;
IrqSignal = false;
irqactive = false;
break;
case 0x2000:
@ -56,7 +56,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void ClockCPU()
public override void ClockCpu()
{
if (irqactive)
{
@ -64,7 +64,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (irqcnt >= 4096)
{
irqcnt = 4096;
IRQSignal = true;
IrqSignal = true;
}
}
}

View File

@ -3,7 +3,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// caltron 6 in 1
public sealed class Mapper041 : NES.NESBoardBase
public sealed class Mapper041 : NesBoardBase
{
int prg;
int chr;
@ -25,7 +25,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr < 0x800)
{
@ -37,7 +37,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
if (regenable)
{
@ -46,17 +46,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[addr | chr << 13];
return Vrom[addr | chr << 13];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr | prg << 15];
return Rom[addr | prg << 15];
}
public override void SyncState(Serializer ser)

View File

@ -5,7 +5,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// pirate FDS conversion
// this is probably two different boards, but they seem to work well enough the same
public sealed class Mapper042 : NES.NESBoardBase
public sealed class Mapper042 : NesBoardBase
{
int prg = 0;
int chr = 0;
@ -37,7 +37,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr &= 0x6003;
switch (addr)
@ -60,7 +60,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
{
irqcnt = 0;
irqenable = false;
IRQSignal = false;
IrqSignal = false;
}
else
irqenable = true;
@ -68,16 +68,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
return ROM[addr | 0x18000];
return Rom[addr | 0x18000];
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
return ROM[addr | prg << 13];
return Rom[addr | prg << 13];
}
public override void ClockCPU()
public override void ClockCpu()
{
if (irqenable)
{
@ -86,7 +86,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (irqcnt >= 32768)
irqcnt -= 32768;
IRQSignal = irqcnt >= 24576;
IrqSignal = irqcnt >= 24576;
}
}
@ -99,17 +99,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync(nameof(irqcnt), ref irqcnt);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
if (VRAM != null)
return VRAM[addr];
if (Vram != null)
return Vram[addr];
else
return VROM[addr | chr << 13];
return Vrom[addr | chr << 13];
}
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper043 : NES.NESBoardBase
public sealed class Mapper043 : NesBoardBase
{
int prg = 0;
int irqcnt = 0;
@ -28,7 +28,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
addr += 0x4000;
@ -44,74 +44,74 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 0x4122:
irqenable = (value & 1) == 1;
IRQSignal = false;
IrqSignal = false;
irqcnt = 0;
break;
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr += 0x8000;
switch (addr & 0xF1FF)
{
case 0x8122:
irqenable = (value & 1) == 1;
IRQSignal = false;
IrqSignal = false;
irqcnt = 0;
break;
}
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
if (addr > 0x1000)
{
return ROM[(addr - 0x1000) + 8 * 0x2000];
return Rom[(addr - 0x1000) + 8 * 0x2000];
}
else return base.ReadEXP(addr);
else return base.ReadExp(addr);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
if (swap)
{
return ROM[addr];
return Rom[addr];
}
else
{
return ROM[addr + 0x4000];
return Rom[addr + 0x4000];
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x2000)
{
return ROM[addr + 0x2000];
return Rom[addr + 0x2000];
}
else if (addr < 0x4000)
{
return ROM[addr - 0x2000];
return Rom[addr - 0x2000];
}
else if (addr < 0x6000)
{
return ROM[(addr - 0x4000) + prg * 0x2000];
return Rom[(addr - 0x4000) + prg * 0x2000];
}
else
{
if (swap)
{
return ROM[(addr - 0x6000) + 8 * 0x2000];
return Rom[(addr - 0x6000) + 8 * 0x2000];
}
else
{
return ROM[(addr - 0x6000) + 9 * 0x2000];
return Rom[(addr - 0x6000) + 9 * 0x2000];
}
}
}
public override void ClockCPU()
public override void ClockCpu()
{
if (irqenable)
{
@ -120,7 +120,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (irqcnt >= 4096)
{
irqenable = false;
IRQSignal = true;
IrqSignal = true;
}
}
}

View File

@ -37,11 +37,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (lock_regs)
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
else
{
@ -68,22 +68,22 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void NESSoftReset()
public override void NesSoftReset()
{
lock_regs = false;
cur_reg = 0;
regs = new byte[4];
base.NESSoftReset();
base.NesSoftReset();
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = Get_PRGBank_8K(addr);
bank_8k &= (regs[3] & 0x3F) ^ 0x3F;
bank_8k |= regs[1];
bank_8k &= prg_mask;
addr = (bank_8k << 13) | (addr & 0x1FFF);
return ROM[addr];
return Rom[addr];
}
private int CHR_AND()

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper046 : NES.NESBoardBase
public sealed class Mapper046 : NesBoardBase
{
//Rumblestation 15-in-1 (Unl).nes
@ -23,32 +23,32 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
int prg_bank_32k_H, prg_bank_32k_L,
chr_bank_8k_H, chr_bank_8k_L;
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
prg_bank_32k_H = value & 0x0F;
chr_bank_8k_H = value >> 4;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prg_bank_32k_L = value & 0x01;
chr_bank_8k_L = (value >> 4) & 0x07;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VROM[addr + (((chr_bank_8k_H << 3) + chr_bank_8k_L) * 0x2000)];
return Vrom[addr + (((chr_bank_8k_H << 3) + chr_bank_8k_L) * 0x2000)];
}
else return base.ReadPPU(addr);
else return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
//TODO: High bits
int offset = (prg_bank_32k_H << 1) + prg_bank_32k_L;
return ROM[addr + (offset * 0x8000)];
return Rom[addr + (offset * 0x8000)];
}
public override bool Configure(NES.EDetectionOrigin origin)

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper051 : NES.NESBoardBase
public sealed class Mapper051 : NesBoardBase
{
private int _bank;
private int _mode = 2;
@ -21,11 +21,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void NESSoftReset()
public override void NesSoftReset()
{
_bank = 0;
_mode = 2;
base.NESSoftReset();
base.NesSoftReset();
}
public override void SyncState(Serializer ser)
@ -35,7 +35,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
ser.Sync("mode", ref _mode);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
int prgBank8k;
if ((_mode & 0x02) > 0)
@ -47,10 +47,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
prgBank8k = ((_bank & 4) << 2) | 0x2F;
}
return ROM[(prgBank8k * 0x2000) + addr];
return Rom[(prgBank8k * 0x2000) + addr];
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int prgBank16k_8;
int prgBank16k_C;
@ -72,15 +72,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
if (addr < 0x4000)
{
return ROM[(prgBank16k_8 * 0x4000) + (addr & 0x3FFF)];
return Rom[(prgBank16k_8 * 0x4000) + (addr & 0x3FFF)];
}
else
{
return ROM[(prgBank16k_C * 0x4000) + (addr & 0x3FFF)];
return Rom[(prgBank16k_C * 0x4000) + (addr & 0x3FFF)];
}
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (addr < 0x2000)
{
@ -89,11 +89,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
_bank = value & 0x0F;
if ((addr & 0x4000) > 0)

View File

@ -4,7 +4,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
// Supervision 16-in-1 [p1].nes
public sealed class Mapper053 : NES.NESBoardBase
public sealed class Mapper053 : NesBoardBase
{
private byte _reg0;
private byte _reg1;
@ -39,7 +39,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
SetMirrorType(mir ? EMirrorType.Horizontal : EMirrorType.Vertical);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (!_reg0.Bit(4))
{
@ -48,16 +48,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
_reg1 = value;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (Prg16kMode)
{
@ -66,24 +66,24 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
? (((_reg0 & 0xF) << 3) | (_reg1 & 7)) + 2
: (((_reg0 & 0xF) << 3) | 7) + 2;
return ROM[(bank * 0x4000) + (addr & 0x3FFF)];
return Rom[(bank * 0x4000) + (addr & 0x3FFF)];
}
return base.ReadPRG(addr);
return base.ReadPrg(addr);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
// First 32kb of PRG is for the intro game picker, 4 is to offset that
int bank = (((_reg0 & 0xF) << 4) | 0xF) + 4;
return ROM[(bank * 0x2000) + (addr & 0x1FFF)];
return Rom[(bank * 0x2000) + (addr & 0x1FFF)];
}
}
// Supervision 16-in-1 [U][p1][!].unf
// Same as Mapper 53, except the 32kb PRG chip is at the end of the ROM space instead of the beginning
// These could have been combined to reduce some code, but at the cost of being more convoluted
public sealed class UNIF_BMC_Supervision16in1 : NES.NESBoardBase
public sealed class UNIF_BMC_Supervision16in1 : NesBoardBase
{
private byte _reg0;
private byte _reg1;
@ -118,7 +118,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
SetMirrorType(mir ? EMirrorType.Horizontal : EMirrorType.Vertical);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (!_reg0.Bit(4))
{
@ -127,16 +127,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
base.WriteWRAM(addr, value);
base.WriteWram(addr, value);
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
_reg1 = value;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (Prg16kMode)
{
@ -145,18 +145,18 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
? (((_reg0 & 0xF) << 3) | (_reg1 & 7))
: (((_reg0 & 0xF) << 3) | 7);
return ROM[(bank * 0x4000) + (addr & 0x3FFF)];
return Rom[(bank * 0x4000) + (addr & 0x3FFF)];
}
// Intro screen on the last 512kb chip
return ROM[0x200000 + addr];
return Rom[0x200000 + addr];
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
// First 32kb of PRG is for the intro game picker, 4 is to offset that
int bank = (((_reg0 & 0xF) << 4) | 0xF);
return ROM[(bank * 0x2000) + (addr & 0x1FFF)];
return Rom[(bank * 0x2000) + (addr & 0x1FFF)];
}
}
}

View File

@ -3,7 +3,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper057 : NES.NESBoardBase
public sealed class Mapper057 : NesBoardBase
{
// http://wiki.nesdev.com/w/index.php/INES_Mapper_057
@ -41,7 +41,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr &= 0x8800;
if (addr == 0)
@ -72,28 +72,28 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
//Console.WriteLine("chr page = {0}", chr_reg);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (prg_mode)
{
return ROM[((prg_reg >> 1) * 0x8000) + addr];
return Rom[((prg_reg >> 1) * 0x8000) + addr];
}
else
{
return ROM[(prg_reg * 0x4000) + (addr & 0x3FFF)];
return Rom[(prg_reg * 0x4000) + (addr & 0x3FFF)];
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VROM[(chr_reg * 0x2000) + addr];
return Vrom[(chr_reg * 0x2000) + addr];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
return (byte)(Mapper57_DipSwitch & 3);
}

View File

@ -4,7 +4,7 @@ using BizHawk.Common.NumberExtensions;
// http://wiki.nesdev.com/w/index.php/INES_Mapper_058
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper058 : NES.NESBoardBase
public sealed class Mapper058 : NesBoardBase
{
bool prg_mode = false;
int chr_reg;
@ -35,7 +35,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prg_mode = addr.Bit(6);
if (addr.Bit(7))
@ -51,25 +51,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
chr_reg = (addr >> 3) & 0x07;
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (prg_mode == false)
{
return ROM[((prg_reg >> 1) * 0x8000) + addr];
return Rom[((prg_reg >> 1) * 0x8000) + addr];
}
else
{
return ROM[(prg_reg * 0x4000) + (addr & 0x3FFF)];
return Rom[(prg_reg * 0x4000) + (addr & 0x3FFF)];
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
return VROM[(chr_reg * 0x2000) + addr];
return Vrom[(chr_reg * 0x2000) + addr];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper063 : NES.NESBoardBase
public sealed class Mapper063 : NesBoardBase
{
int prg0, prg1, prg2, prg3;
bool open_bus;
@ -21,11 +21,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
// not sure on initial mirroring
SetMirrorType(EMirrorType.Vertical);
WritePRG(0, 0);
WritePrg(0, 0);
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
open_bus = ((addr & 0x0300) == 0x0300);
@ -37,7 +37,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
SetMirrorType((addr & 0x01) > 0 ? EMirrorType.Horizontal : EMirrorType.Vertical);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
if (addr < 0x2000)
{
@ -47,7 +47,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
return ROM[addr + prg0 * 0x2000];
return Rom[addr + prg0 * 0x2000];
}
}
else if (addr < 0x4000)
@ -58,16 +58,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
else
{
return ROM[(addr - 0x2000) + prg1 * 0x2000];
return Rom[(addr - 0x2000) + prg1 * 0x2000];
}
}
else if (addr < 0x6000)
{
return ROM[(addr - 0x4000) + prg2 * 0x2000];
return Rom[(addr - 0x4000) + prg2 * 0x2000];
}
else
{
return ROM[(addr - 0x6000) + prg3 * 0x2000];
return Rom[(addr - 0x6000) + prg3 * 0x2000];
}
}

View File

@ -30,7 +30,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
int a = addr & 0xe000;
if (a == 0x4000)
@ -38,7 +38,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
else if (a == 0x6000)
audio.RegWrite(value);
else
base.WritePRG(addr, value);
base.WritePrg(addr, value);
}
public override void SyncState(Serializer ser)
@ -47,14 +47,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
audio.SyncState(ser);
}
public override void ClockCPU()
public override void ClockCpu()
{
audio.Clock();
base.ClockCPU();
base.ClockCpu();
}
}
public class Sunsoft_FME7 : NES.NESBoardBase
public class Sunsoft_FME7 : NesBoardBase
{
//configuration
int prg_bank_mask_8k, chr_bank_mask_1k, wram_bank_mask_8k;
@ -138,7 +138,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
addr &= 0xE000;
switch (addr)
@ -196,10 +196,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
void SyncIrq()
{
IRQSignal = irq_asserted;
IrqSignal = irq_asserted;
}
public override void ClockCPU()
public override void ClockCpu()
{
if (!irq_countdown) return;
irq_counter--;
@ -221,14 +221,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}*/
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = addr >> 13;
int ofs = addr & ((1<<13)-1);
bank_8k = prg_banks_8k[bank_8k];
bank_8k &= prg_bank_mask_8k;
addr = (bank_8k << 13) | ofs;
return ROM[addr];
return Rom[addr];
}
int CalcWRAMAddress(int addr, int bank_mask_8k)
@ -249,37 +249,37 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return (bank_1k<<10) | ofs;
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[CalcPPUAddress(addr)];
else return base.ReadPPU(addr);
return Vrom[CalcPPUAddress(addr)];
else return base.ReadPpu(addr);
}
public override void WritePPU(int addr, byte value)
public override void WritePpu(int addr, byte value)
{
if (addr < 0x2000)
{ }
else base.WritePPU(addr, value);
else base.WritePpu(addr, value);
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
if (!wram_ram_selected)
{
addr = CalcWRAMAddress(addr, prg_bank_mask_8k);
return ROM[addr];
return Rom[addr];
}
else if (!wram_ram_enabled)
return 0xFF; //empty bus
else
{
addr = CalcWRAMAddress(addr, wram_bank_mask_8k);
return WRAM[addr];
return Wram[addr];
}
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
if (!wram_ram_selected) return;
else if (!wram_ram_enabled)
@ -287,7 +287,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
else
{
addr = CalcWRAMAddress(addr, wram_bank_mask_8k);
WRAM[addr] = value;
Wram[addr] = value;
}
}

View File

@ -3,7 +3,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper078 : NES.NESBoardBase
public sealed class Mapper078 : NesBoardBase
{
bool holydiver;
int chr;
@ -49,7 +49,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
prg_banks_16k[0] = prg_bank_16k;
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
prg_bank_16k = (byte)(value & 7);
SyncPRG();
@ -72,22 +72,22 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
chr = (value >> 4);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_16k = addr >> 14;
int ofs = addr & ((1 << 14) - 1);
bank_16k = prg_banks_16k[bank_16k];
bank_16k &= prg_bank_mask_16k;
addr = (bank_16k << 14) | ofs;
return ROM[addr];
return Rom[addr];
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
return VROM[(addr & 0x1FFF) + (chr * 0x2000)];
return Vrom[(addr & 0x1FFF) + (chr * 0x2000)];
else
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -3,7 +3,7 @@ using BizHawk.Common.NumberExtensions;
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper090 : NES.NESBoardBase
public sealed class Mapper090 : NesBoardBase
{
byte[] prg_regs = new byte[4];
int[] chr_regs = new int[8];
@ -100,11 +100,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
return true;
}
public override void NESSoftReset()
public override void NesSoftReset()
{
InitValues();
base.NESSoftReset();
base.NesSoftReset();
}
private void InitValues()
@ -329,7 +329,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void WritePRG(int addr, byte value)
public override void WritePrg(int addr, byte value)
{
switch (addr & 0x7007)
{
@ -495,20 +495,20 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int offset = addr & 0x1FFF;
int bank = prg_banks[addr >> 13];
bank &= prg_bank_mask_8k;
return ROM[bank << 13 | offset];
return Rom[bank << 13 | offset];
}
public override byte ReadWRAM(int addr)
public override byte ReadWram(int addr)
{
return sram_prg ? ROM[ram_bank << 13 | addr & 0x1FFF] : base.ReadWRAM(addr);
return sram_prg ? Rom[ram_bank << 13 | addr & 0x1FFF] : base.ReadWram(addr);
}
public override byte ReadEXP(int addr)
public override byte ReadExp(int addr)
{
switch (addr & 0x1807)
{
@ -527,11 +527,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
case 0x1807:
return ram_bytes[addr - 0x1803];
default:
return base.ReadEXP(addr);
return base.ReadExp(addr);
}
}
public override void WriteEXP(int addr, byte value)
public override void WriteExp(int addr, byte value)
{
switch (addr)
{
@ -553,7 +553,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void ClockCPU()
public override void ClockCpu()
{
if (irq_source == 0)
{
@ -599,7 +599,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
SyncIRQ(irq_pending);
}
public override void AddressPPU(int addr)
public override void AddressPpu(int addr)
{
int a12 = (addr >> 12) & 1;
bool rising_edge = (a12 == 1 && a12_old == 0);
@ -620,7 +620,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
bank &= chr_bank_mask_1k;
int offset = addr & 0x3FF;
return VROM[bank << 10 | offset];
return Vrom[bank << 10 | offset];
}
if (nt_advanced_control) //Read from Nametables
@ -637,7 +637,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
return VROM[nt << 10 | offset];
return Vrom[nt << 10 | offset];
}
else
{
@ -645,7 +645,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (irq_source == 2)
{
@ -671,7 +671,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
break;
}
return VROM[bank << 10 | offset];
return Vrom[bank << 10 | offset];
}
if (nt_advanced_control) //Read from Nametables
@ -688,11 +688,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
return VROM[nt << 10 | offset];
return Vrom[nt << 10 | offset];
}
else
{
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
}
}

View File

@ -2,7 +2,7 @@
namespace BizHawk.Emulation.Cores.Nintendo.NES
{
public sealed class Mapper91 : NES.NESBoardBase
public sealed class Mapper91 : NesBoardBase
{
/*
*Note: Street Fighter III (Unl) is actually mapper 197. However variations such as Street Fighter III (9 Fighter) and Mari Street Fighter III use this mapper
@ -51,7 +51,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
base.SyncState(ser);
}
public override void WriteWRAM(int addr, byte value)
public override void WriteWram(int addr, byte value)
{
switch (addr & 0x7003)
{
@ -84,34 +84,34 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
}
}
public override void ClockPPU()
public override void ClockPpu()
{
mmc3.ClockPPU();
}
public override void AddressPPU(int addr)
public override void AddressPpu(int addr)
{
mmc3.AddressPPU(addr);
}
public override byte ReadPPU(int addr)
public override byte ReadPpu(int addr)
{
if (addr < 0x2000)
{
int bank_2k = (addr >> 11);
bank_2k = chr_regs_2k[bank_2k];
bank_2k &= chr_bank_mask_2k;
return VROM[(bank_2k * 0x800) + (addr & 0x7ff)];
return Vrom[(bank_2k * 0x800) + (addr & 0x7ff)];
}
return base.ReadPPU(addr);
return base.ReadPpu(addr);
}
public override byte ReadPRG(int addr)
public override byte ReadPrg(int addr)
{
int bank_8k = addr >> 13;
bank_8k = prg_regs_8k[bank_8k];
bank_8k &= prg_bank_mask_8k;
return ROM[(bank_8k * 0x2000) + (addr & 0x1FFF)];
return Rom[(bank_8k * 0x2000) + (addr & 0x1FFF)];
}
}
}

Some files were not shown because too many files have changed in this diff Show More