gameboy memory domains: make consistent between gambatte and GBhawk
This commit is contained in:
parent
af2f87deac
commit
7e00b7892f
|
@ -12,26 +12,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
|
||||||
var domains = new List<MemoryDomain>
|
var domains = new List<MemoryDomain>
|
||||||
{
|
{
|
||||||
new MemoryDomainDelegate(
|
new MemoryDomainDelegate(
|
||||||
"Main RAM",
|
"WRAM",
|
||||||
RAM.Length,
|
RAM.Length,
|
||||||
MemoryDomain.Endian.Little,
|
MemoryDomain.Endian.Little,
|
||||||
addr => RAM[addr],
|
addr => RAM[addr],
|
||||||
(addr, value) => RAM[addr] = value,
|
(addr, value) => RAM[addr] = value,
|
||||||
1),
|
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(
|
new MemoryDomainDelegate(
|
||||||
"ROM",
|
"ROM",
|
||||||
_rom.Length,
|
_rom.Length,
|
||||||
|
@ -45,12 +31,33 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
|
||||||
MemoryDomain.Endian.Little,
|
MemoryDomain.Endian.Little,
|
||||||
addr => VRAM[addr],
|
addr => VRAM[addr],
|
||||||
(addr, value) => VRAM[addr] = value,
|
(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)
|
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);
|
domains.Add(CartRam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
CreateMemoryDomain(LibGambatte.MemoryAreas.wram, "WRAM");
|
CreateMemoryDomain(LibGambatte.MemoryAreas.wram, "WRAM");
|
||||||
CreateMemoryDomain(LibGambatte.MemoryAreas.rom, "ROM");
|
CreateMemoryDomain(LibGambatte.MemoryAreas.rom, "ROM");
|
||||||
CreateMemoryDomain(LibGambatte.MemoryAreas.vram, "VRAM");
|
CreateMemoryDomain(LibGambatte.MemoryAreas.vram, "VRAM");
|
||||||
CreateMemoryDomain(LibGambatte.MemoryAreas.cartram, "CartRAM");
|
|
||||||
CreateMemoryDomain(LibGambatte.MemoryAreas.oam, "OAM");
|
CreateMemoryDomain(LibGambatte.MemoryAreas.oam, "OAM");
|
||||||
CreateMemoryDomain(LibGambatte.MemoryAreas.hram, "HRAM");
|
CreateMemoryDomain(LibGambatte.MemoryAreas.hram, "HRAM");
|
||||||
|
|
||||||
|
@ -57,6 +56,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
LibGambatte.gambatte_cpuwrite(GambatteState, (ushort)addr, val);
|
LibGambatte.gambatte_cpuwrite(GambatteState, (ushort)addr, val);
|
||||||
}, 1));
|
}, 1));
|
||||||
|
|
||||||
|
CreateMemoryDomain(LibGambatte.MemoryAreas.cartram, "CartRAM");
|
||||||
|
|
||||||
MemoryDomains = new MemoryDomainList(_memoryDomains);
|
MemoryDomains = new MemoryDomainList(_memoryDomains);
|
||||||
(ServiceProvider as BasicServiceProvider).Register<IMemoryDomains>(MemoryDomains);
|
(ServiceProvider as BasicServiceProvider).Register<IMemoryDomains>(MemoryDomains);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue