GBHawk: Fix cart RAM domain

This commit is contained in:
alyosha-tas 2020-04-20 18:49:55 -04:00
parent 53fb3b19a8
commit f54a36ab9a
3 changed files with 35 additions and 2 deletions

View File

@ -57,7 +57,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
if (cart_RAM != null)
{
var CartRam = new MemoryDomainByteArray("CartRAM", MemoryDomain.Endian.Little, cart_RAM, true, 1);
var CartRam = new MemoryDomainDelegate(
"CartRAM",
cart_RAM.Length,
MemoryDomain.Endian.Little,
addr => cart_RAM[addr],
(addr, value) => cart_RAM[addr] = value,
1);
domains.Add(CartRam);
}

View File

@ -1,4 +1,5 @@
using System.IO;
using System;
using System.IO;
using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Nintendo.GBHawk

View File

@ -136,6 +136,32 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
return ReadMemoryLow(addr);
}
public override byte PeekMemoryHigh(ushort addr)
{
if ((Core.cart_RAM != null) && (RAM_bank <= RAM_mask))
{
if (((addr - 0xA000) + RAM_bank * 0x2000) < Core.cart_RAM.Length)
{
return Core.cart_RAM[(addr - 0xA000) + RAM_bank * 0x2000];
}
else
{
return 0xFF;
}
}
if ((RAM_bank >= 8) && (RAM_bank <= 0xC))
{
//Console.WriteLine("reg: " + (RAM_bank - 8) + " value: " + RTC_regs_latch[RAM_bank - 8] + " cpu: " + Core.cpu.TotalExecutedCycles);
return RTC_regs_latch[RAM_bank - 8];
}
else
{
return 0x0;
}
}
public override void WriteMemory(ushort addr, byte value)
{
if (addr < 0x8000)