gameboy memory domains: make consistent between gambatte and GBhawk

This commit is contained in:
alyosha-tas 2020-03-20 20:04:58 -04:00
parent af2f87deac
commit 7e00b7892f
2 changed files with 26 additions and 18 deletions

View File

@ -12,26 +12,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
var domains = new List<MemoryDomain>
{
new MemoryDomainDelegate(
"Main RAM",
"WRAM",
RAM.Length,
MemoryDomain.Endian.Little,
addr => RAM[addr],
(addr, value) => RAM[addr] = value,
1),
new MemoryDomainDelegate(
"Zero Page RAM",
ZP_RAM.Length,
MemoryDomain.Endian.Little,
addr => ZP_RAM[addr],
(addr, value) => ZP_RAM[addr] = value,
1),
new MemoryDomainDelegate(
"System Bus",
0X10000,
MemoryDomain.Endian.Little,
addr => PeekSystemBus(addr),
(addr, value) => PokeSystemBus(addr, value),
1),
new MemoryDomainDelegate(
"ROM",
_rom.Length,
@ -45,12 +31,33 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
MemoryDomain.Endian.Little,
addr => VRAM[addr],
(addr, value) => VRAM[addr] = value,
1)
1),
new MemoryDomainDelegate(
"OAM",
OAM.Length,
MemoryDomain.Endian.Little,
addr => OAM[addr],
(addr, value) => OAM[addr] = value,
1),
new MemoryDomainDelegate(
"HRAM",
ZP_RAM.Length,
MemoryDomain.Endian.Little,
addr => ZP_RAM[addr],
(addr, value) => ZP_RAM[addr] = value,
1),
new MemoryDomainDelegate(
"System Bus",
0X10000,
MemoryDomain.Endian.Little,
addr => PeekSystemBus(addr),
(addr, value) => PokeSystemBus(addr, value),
1),
};
if (cart_RAM != null)
{
var CartRam = new MemoryDomainByteArray("Cart RAM", MemoryDomain.Endian.Little, cart_RAM, true, 1);
var CartRam = new MemoryDomainByteArray("CartRAM", MemoryDomain.Endian.Little, cart_RAM, true, 1);
domains.Add(CartRam);
}

View File

@ -32,7 +32,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
CreateMemoryDomain(LibGambatte.MemoryAreas.wram, "WRAM");
CreateMemoryDomain(LibGambatte.MemoryAreas.rom, "ROM");
CreateMemoryDomain(LibGambatte.MemoryAreas.vram, "VRAM");
CreateMemoryDomain(LibGambatte.MemoryAreas.cartram, "CartRAM");
CreateMemoryDomain(LibGambatte.MemoryAreas.oam, "OAM");
CreateMemoryDomain(LibGambatte.MemoryAreas.hram, "HRAM");
@ -57,6 +56,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
LibGambatte.gambatte_cpuwrite(GambatteState, (ushort)addr, val);
}, 1));
CreateMemoryDomain(LibGambatte.MemoryAreas.cartram, "CartRAM");
MemoryDomains = new MemoryDomainList(_memoryDomains);
(ServiceProvider as BasicServiceProvider).Register<IMemoryDomains>(MemoryDomains);
}