From e80d6fcd7f3bdd087626e41e5f9c54a3a2737027 Mon Sep 17 00:00:00 2001 From: Sour Date: Sun, 24 Feb 2019 10:30:19 -0500 Subject: [PATCH] PPU: Mode 6 support (incomplete) --- Core/Ppu.cpp | 16 ++++++++++++++-- Core/Ppu.h | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Core/Ppu.cpp b/Core/Ppu.cpp index 9cdf3ef..bf881e7 100644 --- a/Core/Ppu.cpp +++ b/Core/Ppu.cpp @@ -313,6 +313,18 @@ void Ppu::RenderMode5() RenderBgColor(); } +template +void Ppu::RenderMode6() +{ + RenderSprites<3, forMainScreen>(); + RenderTilemap<0, 4, true, forMainScreen>(); + RenderSprites<2, forMainScreen>(); + RenderSprites<1, forMainScreen>(); + RenderTilemap<0, 4, false, forMainScreen>(); + RenderSprites<0, forMainScreen>(); + RenderBgColor(); +} + template void Ppu::RenderMode7() { @@ -375,8 +387,8 @@ void Ppu::RenderScanline() break; case 6: - RenderTilemap<0, 8, false, true>(); - RenderBgColor(); + RenderMode6(); + RenderMode6(); break; case 7: diff --git a/Core/Ppu.h b/Core/Ppu.h index 31f0318..920ae1a 100644 --- a/Core/Ppu.h +++ b/Core/Ppu.h @@ -145,6 +145,7 @@ private: template void RenderMode3(); template void RenderMode4(); template void RenderMode5(); + template void RenderMode6(); template void RenderMode7(); void RenderScanline();