internal void StartFrame() { _state.CurrentLine = 0; _state.CurrentWY = _state.WY; if (!_state.Enabled) { return; } // WINDOW TRANSPARENCY if (_updateDebugTargets[(int)DebugTargets.Window]) { DrawFuncs.DrawTransparency(_disDef, _debugInternalTargets[(int)DebugTargets.Window], _disDef.ScreenPixelCountX, 0, 0, _disDef.ScreenPixelCountX, _disDef.ScreenPixelCountY); } // SPRITES TRANSPARENCY if (_updateDebugTargets[(int)DebugTargets.SpriteLayer]) { DrawFuncs.DrawTransparency(_disDef, _debugInternalTargets[(int)DebugTargets.SpriteLayer], _disDef.ScreenPixelCountX, 0, 0, _disDef.ScreenPixelCountX, _disDef.ScreenPixelCountY); } }
internal void DrawSprite(uint[] spriteData, int spriteCode, int pX, int pY) { DrawFuncs.DrawTransparency(_disDef, spriteData, 8, 0, 0, 8, 16); if (_state.LCDCBits[2]) { spriteCode = spriteCode & 0xFE; // We remove the last bit } // We draw the top part byte[] pixels = DisFuncs.GetTileData(_disDef, _memory, 0x8000, spriteCode, _state.LCDCBits[2]); DrawFuncs.DrawTile(_pixelLookupTable, _disDef, spriteData, _tempPixelBuffer, 8, pixels, pX, pY, _disDef.ScreenPixelCountX, _disDef.ScreenPixelCountY); }