md: correct hscroll offset calculation. genesis core 10% less embarassing.
This commit is contained in:
parent
377dce08d7
commit
40a427e68f
|
@ -43,8 +43,8 @@ namespace BizHawk.Emulation.Consoles.Sega
|
|||
// Its way simple in comparison. But the PCE sprite renderer is way worse than gen.
|
||||
for (int x = 0; x < FrameWidth; x++)
|
||||
{
|
||||
int xTile = Math.Abs(((x - xScroll) / 8) % NameTableWidth);
|
||||
int xOfs = Math.Abs(x - xScroll) & 7;
|
||||
int xTile = Math.Abs(((x + (1024-xScroll)) / 8) % NameTableWidth);
|
||||
int xOfs = Math.Abs((x + (1024-xScroll)) & 7);
|
||||
int cellOfs = nameTableBase + (yTile * NameTableWidth * 2) + (xTile * 2);
|
||||
int nameTableEntry = VRAM[cellOfs] | (VRAM[cellOfs+1] << 8);
|
||||
int patternNo = nameTableEntry & 0x7FF;
|
||||
|
@ -71,7 +71,8 @@ namespace BizHawk.Emulation.Consoles.Sega
|
|||
{
|
||||
// todo scroll values
|
||||
int hscroll = VRAM[HScrollTableAddr + 0] | (VRAM[HScrollTableAddr + 1] << 8);
|
||||
hscroll &= 0x3FFF;
|
||||
hscroll &= 0x3FF;
|
||||
//Console.WriteLine("ScrollA: " + hscroll);
|
||||
//hscroll = 24;
|
||||
int vscroll = VSRAM[0] & 0x3FFF;
|
||||
RenderBackgroundScanline(hscroll, vscroll, NameTableAddrA, 2, 5);
|
||||
|
@ -80,7 +81,8 @@ namespace BizHawk.Emulation.Consoles.Sega
|
|||
void RenderScrollB()
|
||||
{
|
||||
int hscroll = VRAM[HScrollTableAddr + 2] | (VRAM[HScrollTableAddr + 3] << 8);
|
||||
hscroll &= 0x3FFF;
|
||||
hscroll &= 0x3FF;
|
||||
//Console.WriteLine("ScrollB: " + hscroll);
|
||||
//hscroll = 24;
|
||||
int vscroll = VSRAM[1] & 0x3FFF;
|
||||
RenderBackgroundScanline(hscroll, vscroll, NameTableAddrB, 1, 4);
|
||||
|
|
Loading…
Reference in New Issue