public void DebugNametable(bool text) { for (var n = 0; n < 4; n++) { var startPos = PPU.NAMETABLE + n * PPU.NAMETABLE_FULL_LENGTH; var offsetX = (n % 2 == 0 ? 0 : 30 * 8); var offsetY = n < 2 ? 0 : 240; var startAttributes = startPos + PPU.NAMETABLE_TILES_LENGTH; for (var j = 0; j < 30; j++) { for (var i = 0; i < 32; i++) { var ind = _ppu.ReadPpu(startPos++); if (!text) { DrawSprite(GetSprite(1, ind), i * 8 + offsetX, j * 8 + offsetY); } else { DrawText(i * 8 + offsetX, j * 8 + offsetY, ind.ToString("X2"), 12); } } } for (var j = 0; j < 30 / 4; j++) { for (var i = 0; i < 32 / 4; i++) { var attr = _ppu.ReadPpu(startAttributes++); if (text) { //DrawText(i * 32+16 + offsetX, j * 32+16 + offsetY, attr.ToString("X2"), 14, Color.Magenta); } } } } if (!text) { for (var i = 0; i < 32; i++) { DrawHorzontalLine(0, i * 32, 1000); if (i < 18) { DrawVerticalLine(0, i * 32, 1000); } } } }