SMS: Fix Fray (vert lock update)
This commit is contained in:
parent
5794d9c992
commit
e334af157e
|
@ -40,7 +40,7 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
||||||
|
|
||||||
for (int xTile = 0; xTile < 32; xTile++)
|
for (int xTile = 0; xTile < 32; xTile++)
|
||||||
{
|
{
|
||||||
if (xTile == 24 && VerticalScrollLock)
|
if (xTile == lock_tile_start && VerticalScrollLock)
|
||||||
{
|
{
|
||||||
vertOffset = ScanLine;
|
vertOffset = ScanLine;
|
||||||
yTile = vertOffset / 8;
|
yTile = vertOffset / 8;
|
||||||
|
|
|
@ -77,6 +77,10 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
||||||
private int NameTableMaskBit;
|
private int NameTableMaskBit;
|
||||||
private bool JPN_Compat =false;
|
private bool JPN_Compat =false;
|
||||||
|
|
||||||
|
// For SMS, the last 8 x-tiles are fixed if vertscroll (reg[0].bit(7)) is set, but on GG it must be
|
||||||
|
// only the last 7 or Fray displays incorrectly
|
||||||
|
private int lock_tile_start;
|
||||||
|
|
||||||
// preprocessed state assist stuff.
|
// preprocessed state assist stuff.
|
||||||
public int[] Palette = new int[32];
|
public int[] Palette = new int[32];
|
||||||
public byte[] PatternBuffer = new byte[0x8000];
|
public byte[] PatternBuffer = new byte[0x8000];
|
||||||
|
@ -96,7 +100,9 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
||||||
if (mode == VdpMode.GameGear) CRAM = new byte[64];
|
if (mode == VdpMode.GameGear) CRAM = new byte[64];
|
||||||
DisplayType = displayType;
|
DisplayType = displayType;
|
||||||
if (mode == VdpMode.SMS) { JPN_Compat = region_compat; }
|
if (mode == VdpMode.SMS) { JPN_Compat = region_compat; }
|
||||||
NameTableBase = CalcNameTableBase();
|
NameTableBase = CalcNameTableBase();
|
||||||
|
|
||||||
|
lock_tile_start = mode == VdpMode.SMS ? 24 : 25;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte ReadData()
|
public byte ReadData()
|
||||||
|
|
Loading…
Reference in New Issue