From 117f584b3f3d7945732a29848eb6d4ead1f57bee Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Mon, 27 Jan 2025 13:34:21 +0100 Subject: refactor iNES parser --- lib/nes/ppu.cc | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'lib/nes/ppu.cc') 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(scanline_) - static_cast(s.y); + auto const s = sprite{ &oam_[i * 4] }; + auto const row = static_cast(scanline_) - static_cast(s.get_y()); if (row < 0 || static_cast(row) >= height) { continue; } if (sprite_count_ < 8) { sprites_[sprite_count_].pattern = fetch_sprite_pattern(s, static_cast(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 { -- cgit v1.3.1