A7800Hawk: FINALLY fix Scrapyard Dog

-Also fix a typo in memory domains
This commit is contained in:
alyosha-tas 2017-07-29 18:05:23 -04:00 committed by GitHub
parent d96f26452c
commit bba8cc3202
2 changed files with 18 additions and 16 deletions

View File

@ -44,18 +44,18 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
1), 1),
new MemoryDomainDelegate( new MemoryDomainDelegate(
"Ram Block 0", "Ram Block 0",
0xB0, 0xC0,
MemoryDomain.Endian.Little, MemoryDomain.Endian.Little,
addr => RAM[addr+0x840], addr => RAM[addr+0x840],
(addr, value) => RAM[addr+0x840] = value, (addr, value) => RAM[addr+0x800] = value,
1 1
), ),
new MemoryDomainDelegate( new MemoryDomainDelegate(
"Ram Block 1", "Ram Block 1",
0xB0, 0xC0,
MemoryDomain.Endian.Little, MemoryDomain.Endian.Little,
addr => RAM[addr+0x940], addr => RAM[addr+0x940],
(addr, value) => RAM[addr+0x940] = value, (addr, value) => RAM[addr+0x900] = value,
1 1
), ),
new MemoryDomainDelegate( new MemoryDomainDelegate(

View File

@ -301,6 +301,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
if (cycle == 454) if (cycle == 454)
{ {
scanline++; scanline++;
cycle = 0; cycle = 0;
Core.tia._hsyncCnt = 0; Core.tia._hsyncCnt = 0;
Core.cpu.RDY = true; Core.cpu.RDY = true;
@ -482,13 +483,16 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
{ {
GFX_Objects[header_counter].obj[i * ch_size + 1] = 0; GFX_Objects[header_counter].obj[i * ch_size + 1] = 0;
} }
if (ch_size == 1) if (i != 0)
{ {
graphics_read_time -= 6; if (ch_size == 1)
} {
else graphics_read_time -= 6;
{ }
graphics_read_time -= 9; else
{
graphics_read_time -= 9;
}
} }
} }
@ -506,11 +510,6 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
} }
} }
} }
if (graphics_read_time == 0)
{
graphics_read_time = 3;
}
} }
else else
{ {
@ -523,7 +522,10 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
if (((current_DLL_H16 && addr_t.Bit(12)) || (current_DLL_H8 && addr_t.Bit(11))) && (addr_t >= 0x8000)) if (((current_DLL_H16 && addr_t.Bit(12)) || (current_DLL_H8 && addr_t.Bit(11))) && (addr_t >= 0x8000))
{ {
GFX_Objects[header_counter].obj[i] = 0; GFX_Objects[header_counter].obj[i] = 0;
graphics_read_time -= 3; if (i != 0)
{
graphics_read_time -= 3;
}
} }
else else
{ {