diff options
Diffstat (limited to 'src/nes/nes.cc')
| -rw-r--r-- | src/nes/nes.cc | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/nes/nes.cc b/src/nes/nes.cc index 2a44ced..0579735 100644 --- a/src/nes/nes.cc +++ b/src/nes/nes.cc @@ -1,4 +1,5 @@ #include "nes/nes.hh" +#include "nes/mapper.hh" #include "nes/display.hh" #include "nes/util/rgb.hh" #include <iostream> @@ -8,6 +9,8 @@ namespace nes nes::nes(cartridge cartridge, display& display) : cartridge_{ std::move(cartridge) } , display_{ display } + , mapper_{ mapper::select(cartridge_) } + , cpu_{ ppu_, mapper_, controller_1_, controller_2_ } { if (!cartridge_.is_valid()) { @@ -15,12 +18,18 @@ namespace nes std::abort(); } - display.clear(rgb::from_hex(0xFF0000)); - display.switch_buffers(); + display_.clear(rgb{ animation_progress_, animation_progress_, animation_progress_ }); + display_.switch_buffers(); } - auto nes::step(std::uint64_t delta_ms) -> void + auto nes::step(std::chrono::microseconds const delta) -> void { - std::cout << "Step: " << delta_ms << "ms\n"; + current_cycles_ += cycle_count::from_duration(delta); + cpu_.step_to(current_cycles_); + ppu_.step_to(current_cycles_); + + animation_progress_ -= 2; + display_.clear(rgb{ animation_progress_, animation_progress_, animation_progress_ }); + display_.switch_buffers(); } } // namespace nes
\ No newline at end of file |
