Skip to content

Commit

Permalink
reuse a few
Browse files Browse the repository at this point in the history
  • Loading branch information
feos committed Aug 9, 2016
1 parent 168120a commit 7324a7e
Showing 1 changed file with 32 additions and 16 deletions.
48 changes: 32 additions & 16 deletions BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.Core.cs
Expand Up @@ -683,7 +683,7 @@ public byte ReadReg2xxx(ushort addr)
return Board.ReadReg2xxx(addr);
}

public byte ReadRegDelegate(ushort addr)
public byte ReadRegs(ushort addr)
{
return ReadReg(addr);
}
Expand All @@ -702,35 +702,43 @@ public byte ReadWRAM(ushort addr)

private void RegisterReadDelegates()
{
ReadMemoryDelegate ReadROMDelegate = new ReadMemoryDelegate(ReadROM);
ReadMemoryDelegate ReadRAMDelegate = new ReadMemoryDelegate(ReadRAM);
ReadMemoryDelegate ReadRAMMirrorsDelegate = new ReadMemoryDelegate(ReadRAMMirrors);
ReadMemoryDelegate ReadReg2xxxDelegate = new ReadMemoryDelegate(ReadReg2xxx);
ReadMemoryDelegate ReadRegsDelegate = new ReadMemoryDelegate(ReadRegs);
ReadMemoryDelegate ReadEXPDelegate = new ReadMemoryDelegate(ReadEXP);
ReadMemoryDelegate ReadWRAMDelegate = new ReadMemoryDelegate(ReadWRAM);

for (int addr = 0; addr < 0x10000; addr++)
{
if (addr >= 0x8000)
{
ReadDelegates[addr] = new ReadMemoryDelegate(ReadROM);
ReadDelegates[addr] = ReadROMDelegate;
}
else if (addr < 0x0800)
{
ReadDelegates[addr] = new ReadMemoryDelegate(ReadRAM);
ReadDelegates[addr] = ReadRAMDelegate;
}
else if (addr < 0x2000)
{
ReadDelegates[addr] = new ReadMemoryDelegate(ReadRAMMirrors);
ReadDelegates[addr] = ReadRAMMirrorsDelegate;
}
else if (addr < 0x4000)
{
ReadDelegates[addr] = new ReadMemoryDelegate(ReadReg2xxx);
ReadDelegates[addr] = ReadReg2xxxDelegate;
}
else if (addr < 0x4020)
{
ReadDelegates[addr] = new ReadMemoryDelegate(ReadRegDelegate);
ReadDelegates[addr] = ReadRegsDelegate;
}
else if (addr < 0x6000)
{
ReadDelegates[addr] = new ReadMemoryDelegate(ReadEXP);
ReadDelegates[addr] = ReadEXPDelegate;
}
else
{
continue;
ReadDelegates[addr] = ReadWRAMDelegate;
}
}
}
Expand Down Expand Up @@ -792,7 +800,7 @@ public void WriteReg2xxx(ushort addr, byte value)
Board.WriteReg2xxx(addr, value);
}

public void WriteRegDelegate(ushort addr, byte value)
public void WriteRegs(ushort addr, byte value)
{
WriteReg(addr, value);
}
Expand All @@ -811,35 +819,43 @@ public void WriteWRAM(ushort addr, byte value)

private void RegisterWriteDelegates()
{
WriteMemoryDelegate WriteROMDelegate = new WriteMemoryDelegate(WriteROM);
WriteMemoryDelegate WriteRAMDelegate = new WriteMemoryDelegate(WriteRAM);
WriteMemoryDelegate WriteRAMMirrorsDelegate = new WriteMemoryDelegate(WriteRAMMirrors);
WriteMemoryDelegate WriteReg2xxxDelegate = new WriteMemoryDelegate(WriteReg2xxx);
WriteMemoryDelegate WriteRegsDelegate = new WriteMemoryDelegate(WriteRegs);
WriteMemoryDelegate WriteEXPDelegate = new WriteMemoryDelegate(WriteEXP);
WriteMemoryDelegate WriteWRAMDelegate = new WriteMemoryDelegate(WriteWRAM);

for (int addr = 0; addr < 0x10000; addr++)
{
if (addr >= 0x8000)
{
WriteDelegates[addr] = new WriteMemoryDelegate(WriteROM);
WriteDelegates[addr] = WriteROMDelegate;
}
else if (addr < 0x0800)
{
WriteDelegates[addr] = new WriteMemoryDelegate(WriteRAM);
WriteDelegates[addr] = WriteRAMDelegate;
}
else if (addr < 0x2000)
{
WriteDelegates[addr] = new WriteMemoryDelegate(WriteRAMMirrors);
WriteDelegates[addr] = WriteRAMMirrorsDelegate;
}
else if (addr < 0x4000)
{
WriteDelegates[addr] = new WriteMemoryDelegate(WriteReg2xxx);
WriteDelegates[addr] = WriteReg2xxxDelegate;
}
else if (addr < 0x4020)
{
WriteDelegates[addr] = new WriteMemoryDelegate(WriteRegDelegate);
WriteDelegates[addr] = WriteRegsDelegate;
}
else if (addr < 0x6000)
{
WriteDelegates[addr] = new WriteMemoryDelegate(WriteEXP);
WriteDelegates[addr] = WriteEXPDelegate;
}
else
{
continue;
WriteDelegates[addr] = WriteWRAMDelegate;
}
}
}
Expand Down

0 comments on commit 7324a7e

Please sign in to comment.