A7800: fix Basketbrawl and summer games
This commit is contained in:
parent
de1a312262
commit
51e8ef94d0
|
@ -16,7 +16,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsram[addr - 0x1000];
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (addr < 0x4000)
|
||||
|
@ -27,7 +27,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsbios[addr - 0x3000];
|
||||
}
|
||||
|
||||
return Core.RAM[0x800 + addr & 0x7FF];
|
||||
return 0;
|
||||
// return Core.RAM[0x800 + addr & 0x7FF];
|
||||
}
|
||||
|
||||
if (addr < 0x8000 && Core.is_pokey)
|
||||
|
@ -47,7 +48,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._bios[addr - (0x10000 - Core._bios.Length)];
|
||||
}
|
||||
|
||||
return 0x00;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public override void WriteMemory(ushort addr, byte value)
|
||||
|
@ -68,7 +69,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
}
|
||||
else
|
||||
{
|
||||
Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
// no mirror here on hardware
|
||||
// Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
}
|
||||
}
|
||||
else if (addr < 0x8000 && Core.is_pokey)
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsram[addr - 0x1000];
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (addr < 0x4000)
|
||||
|
@ -29,7 +29,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsbios[addr - 0x3000];
|
||||
}
|
||||
|
||||
return Core.RAM[0x800 + addr & 0x7FF];
|
||||
return 0;
|
||||
//return Core.RAM[0x800 + addr & 0x7FF];
|
||||
}
|
||||
|
||||
// cartridge and other OPSYS
|
||||
|
@ -68,7 +69,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
}
|
||||
else
|
||||
{
|
||||
Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
// no mirror here on hardware
|
||||
// Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsram[addr - 0x1000];
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (addr < 0x4000)
|
||||
|
@ -29,7 +29,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsbios[addr - 0x3000];
|
||||
}
|
||||
|
||||
return Core.RAM[0x800 + addr & 0x7FF];
|
||||
return 0;
|
||||
// return Core.RAM[0x800 + addr & 0x7FF];
|
||||
}
|
||||
|
||||
// cartridge and other OPSYS
|
||||
|
@ -52,7 +53,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return RAM[(tempRet1 << 8) + tempRet2];
|
||||
}
|
||||
|
||||
return 0x00;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public override void WriteMemory(ushort addr, byte value)
|
||||
|
@ -73,7 +74,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
}
|
||||
else
|
||||
{
|
||||
Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
// no mirror here on hardware
|
||||
// Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsram[addr - 0x1000];
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (addr < 0x4000)
|
||||
|
@ -29,7 +29,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsbios[addr - 0x3000];
|
||||
}
|
||||
|
||||
return Core.RAM[0x800 + addr & 0x7FF];
|
||||
return 0;
|
||||
// return Core.RAM[0x800 + addr & 0x7FF];
|
||||
}
|
||||
|
||||
// cartridge and other OPSYS
|
||||
|
@ -93,7 +94,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
}
|
||||
else
|
||||
{
|
||||
Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
// no mirror here on hardware
|
||||
// Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using BizHawk.Common;
|
||||
using BizHawk.Common.NumberExtensions;
|
||||
using System;
|
||||
|
||||
namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
||||
{
|
||||
|
@ -18,7 +19,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
{
|
||||
return Core._hsram[addr - 0x1000];
|
||||
}
|
||||
return 0xFF;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (addr < 0x4000)
|
||||
|
@ -37,7 +39,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return 0;
|
||||
}
|
||||
|
||||
return Core.RAM[0x800 + addr & 0x7FF];
|
||||
// This RAm mirror doesn't exist, otherwise Sumer Games has graphics glitches
|
||||
return 0;
|
||||
}
|
||||
|
||||
// cartridge and other OPSYS
|
||||
|
@ -74,8 +77,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._rom[tempAddr + 2 * 0x4000];
|
||||
}
|
||||
|
||||
// Should never get here, but in case we do just return FF
|
||||
return 0xFF;
|
||||
// Should never get here, but in case we do just return 0
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (Core.cart_RAM > 0)
|
||||
|
@ -92,8 +95,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
}
|
||||
|
||||
// this would correspond to reading from 0x4000-0x5FFF with only 8k of RAM
|
||||
// Let's just return FF for now
|
||||
return 0xFF;
|
||||
// Let's just return 0 for now
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (Core.is_pokey)
|
||||
|
@ -101,7 +104,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core.pokey.ReadReg(addr & 0xF);
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public override void WriteMemory(ushort addr, byte value)
|
||||
|
@ -119,6 +122,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
// could be either RAM mirror or ROM
|
||||
if (addr >= 0x3000 && Core._hsbios != null)
|
||||
{
|
||||
|
||||
}
|
||||
else if (Core.is_pokey_450 && (addr >= 0x450) && (addr < 0x480))
|
||||
{
|
||||
|
@ -129,7 +133,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
}
|
||||
else
|
||||
{
|
||||
Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
// This mirror doesn't exist, otherwise Summer Games has graphics glitches
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core._hsram[addr - 0x1000];
|
||||
}
|
||||
|
||||
return 0xFF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (addr < 0x4000)
|
||||
|
@ -35,7 +35,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
return Core.pokey.ReadReg(addr & 0xF);
|
||||
}
|
||||
|
||||
return Core.RAM[0x800 + addr & 0x7FF];
|
||||
return 0;
|
||||
//return Core.RAM[0x800 + addr & 0x7FF];
|
||||
}
|
||||
|
||||
// cartridge and other OPSYS
|
||||
|
@ -92,7 +93,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
}
|
||||
else
|
||||
{
|
||||
Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
// no mirror here on hardware
|
||||
// Core.RAM[0x800 + addr & 0x7FF] = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -12,6 +12,8 @@ SHADOW
|
|||
7. RAM 001X X000 0000 0000 - 001X X111 1111 1111
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
||||
{
|
||||
public partial class A7800Hawk
|
||||
|
@ -81,7 +83,8 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
|||
if ((addr >= 0x2800) && (addr < 0x3000))
|
||||
{
|
||||
// this mirror evidently does not exist on hardware despite being in the documentation
|
||||
return 0xFF;// RAM[(addr & 0x7FF) + 0x800];
|
||||
// must return 0 or Summer Games will deadlock at event start screen
|
||||
return 0x0;// RAM[(addr & 0x7FF) + 0x800];
|
||||
}
|
||||
|
||||
if ((addr >= 0x3000) && (addr < 0x4000))
|
||||
|
|
Loading…
Reference in New Issue