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