diff --git a/src/gameboy.cpp b/src/gameboy.cpp index 15190d3..9c92479 100644 --- a/src/gameboy.cpp +++ b/src/gameboy.cpp @@ -44,15 +44,15 @@ void GameBoy::start(std::string bootrom, std::string game) { addressSpace.loadGame(game); bool quit = false; + uint32_t cyclesSince = 0; + while (!quit) { // Event loop: Check and handle SDL events - // if(SDL_PollEvent(&event)) - // { - // if(event.type == SDL_QUIT) - // { - // quit = true; // Set the quit flag when the close button is hit - // } - // } + if (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + quit = true; // Set the quit flag when the close button is hit + } + } opcodeHandler(); interruptHandler(); @@ -61,7 +61,7 @@ void GameBoy::start(std::string bootrom, std::string game) { if (PC > 0xFF && addressSpace.getBootromState()) { addressSpace.unmapBootrom(); } - int cyclesSince = cyclesSinceLastRefresh(); + cyclesSince = cyclesSinceLastRefresh(); if (cyclesSince > FRAME_DURATION) { lastRefresh = cycles; SDL2present(); diff --git a/src/opcode.cpp b/src/opcode.cpp index d9397e3..eeaa683 100644 --- a/src/opcode.cpp +++ b/src/opcode.cpp @@ -388,6 +388,7 @@ void GameBoy::opcodeHandler() { //printf("PC:0x%.2x, Opcode:0x%.2x\n", PC, addressSpace[PC]); if (PC == 0x100) { printf("LY:0x%.2x\n", (*LY)); + exit(1); // printf("PC:0x%.2x, Opcode:0x%.2x\n", PC, addressSpace[PC]); // printf("IME:%b IF:0x%.2x IE:0x%.2x\n", IME, (*IF), (*IE)); }