37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#include "src/Nes.h"
|
|
#include "src/Window.h"
|
|
#include "src/SdlKeyboardController.h"
|
|
|
|
#include <functional>
|
|
#include <chrono>
|
|
#include <thread>
|
|
|
|
int main() {
|
|
|
|
using namespace std::placeholders;
|
|
|
|
nes::Nes device;
|
|
nes::SdlWindow window(nes::Ppu::SCREEN_WIDTH, nes::Ppu::SCREEN_HEIGHT);
|
|
window.setSize(nes::Ppu::SCREEN_WIDTH * 4, nes::Ppu::SCREEN_HEIGHT * 4);
|
|
|
|
device.setNewFrameCallback(std::bind(&nes::SdlWindow::drawFrame, &window, _1));
|
|
device.connect(std::make_shared<SdlKeyboardController>());
|
|
device.insertCartridge("/home/selim/Downloads/smb.nes");
|
|
//device.insertCartridge("/Users/selim/Documents/nestest.nes");
|
|
//device.insertCartridge("C:\\Users\\selim\\Documents\\nestest.nes");
|
|
|
|
SDL_Event e;
|
|
uint64_t cycles = 0;
|
|
while (cycles < 1000000000) {
|
|
device.tick();
|
|
cycles++;
|
|
|
|
while(SDL_PollEvent(&e));
|
|
|
|
//int64_t us = static_cast<int64_t>(1000000000.0/(60*nes::Ppu::SCREEN_WIDTH*nes::Ppu::SCREEN_HEIGHT));
|
|
//std::this_thread::sleep_for(std::chrono::nanoseconds(1));
|
|
}
|
|
|
|
return 0;
|
|
}
|