Files
atari2600/source/main.cpp
T
Raimon @ quifisraimon 12d1dc6ff1 - [NEW] Configuració per a compilar i depurar des de vscode
- [FIX] Meimades per a que es calle el compilaor al dir-li -Wall
- [NEW] Reestructurats els simbols, 6502dis probablement acabe desapareguent
- [NEW] Reactivats els breakpoints i next (pas a pas sense entrar en subrutines)
- [NEW] Nou motor de desensamblat
- [NEW] Ja es mostren tots els simbols en el desensamblat
- [NEW] Syntax colorets en el desensamblat
2026-09-21 12:52:55 +02:00

52 lines
1.5 KiB
C++

#include <SDL3/SDL.h>
#include "atari2600.h"
#include "rom.h"
#include "ui.h"
#include "ui_window.h"
#include "6502debugger.h"
#include "6502dis.h"
int main(int argc, char *argv[]) {
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
if (argc > 1) {
rom::load(argv[1]);
} else {
rom::load("combat.bin");
}
m6502dis::symbols::load();
atari2600::init();
atari2600::pause();
m6502debugger::show();
int wait = 16;
SDL_Event e;
while (!atari2600::is_quitting()) {
wait--;
if (wait==0) {
wait = 16;
if (atari2600::is_paused()) SDL_WaitEventTimeout(NULL, 1000);
while (SDL_PollEvent(&e)) {
//bool result = true;
if (e.type == SDL_EVENT_QUIT) { atari2600::quit(); break; }
if (e.type == SDL_EVENT_KEY_DOWN) {
if (atari2600::is_paused()) {
switch (e.key.scancode) {
case SDL_SCANCODE_F10: atari2600::step(); m6502debugger::refresh(); break;
case SDL_SCANCODE_F11: m6502debugger::next(); break;
default: break;
}
}
}
SDL_Window* window = SDL_GetWindowFromEvent(&e);
if (!ui::window::sendEvent(SDL_GetWindowID(window), &e)) { atari2600::quit(); break; }
}
}
if (!atari2600::is_paused()) atari2600::step();
ui::setClicked(false);
}
SDL_Quit();
return 0;
}