summaryrefslogtreecommitdiff
path: root/lib/nes/ppu.cc
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-01-27 13:34:21 +0100
committerHannes Schulze <haschu0103@outlook.de>2025-01-27 13:34:21 +0100
commit117f584b3f3d7945732a29848eb6d4ead1f57bee (patch)
tree9335389f8417e642919f25b888be07e3b723cf4a /lib/nes/ppu.cc
parent211aa79044e776859409ca7fbad104291a494e26 (diff)
refactor iNES parser
Diffstat (limited to 'lib/nes/ppu.cc')
-rw-r--r--lib/nes/ppu.cc11
1 files changed, 3 insertions, 8 deletions
diff --git a/lib/nes/ppu.cc b/lib/nes/ppu.cc
index 7ac2155..815224f 100644
--- a/lib/nes/ppu.cc
+++ b/lib/nes/ppu.cc
@@ -239,14 +239,14 @@ namespace nes
sprite_count_ = 0;
for (auto i = unsigned{ 0 }; i < sprite_max_count; ++i)
{
- auto const s = get_sprite(i);
- auto const row = static_cast<int>(scanline_) - static_cast<int>(s.y);
+ auto const s = sprite{ &oam_[i * 4] };
+ auto const row = static_cast<int>(scanline_) - static_cast<int>(s.get_y());
if (row < 0 || static_cast<unsigned>(row) >= height) { continue; }
if (sprite_count_ < 8)
{
sprites_[sprite_count_].pattern = fetch_sprite_pattern(s, static_cast<unsigned>(row));
- sprites_[sprite_count_].x = s.x;
+ sprites_[sprite_count_].x = s.get_x();
sprites_[sprite_count_].is_in_front = !s.get_behind_background();
sprites_[sprite_count_].is_sprite_zero = i == 0;
sprite_count_ += 1;
@@ -587,11 +587,6 @@ namespace nes
return tile_size;
}
- auto ppu::get_sprite(unsigned const i) const -> sprite
- {
- return sprite{ oam_[i * 4 + 0], oam_[i * 4 + 1], oam_[i * 4 + 2], oam_[i * 4 + 3] };
- }
-
auto ppu::get_tile_bitplane(
pattern_table const pattern_table, tile const tile, unsigned const row, bitplane const bitplane) -> std::uint8_t
{