- [CHG] Separat mòdul "gbscreen" en mòduls "ppu" i "display"

- [CHG] Constants de interrupcions tretes a la seua propia capçalera
- [CHG] Renombrat mòdul APU a apu
This commit is contained in:
2026-06-03 12:10:42 +02:00
parent 816b12e3b8
commit 88a02d49f7
11 changed files with 290 additions and 269 deletions
+22 -20
View File
@@ -3,9 +3,10 @@
#include "sm83.h"
#include "mem.h"
#include "ppu.h"
#include "sm83dis.h"
#include "debug.h"
#include "gbscreen.h"
#include "display.h"
#include <SDL2/SDL.h>
#include <string.h>
#include "ui.h"
@@ -21,25 +22,25 @@ namespace actions
{
const uint8_t dt = sm83::step();
debug::cont();
gbscreen::refresh(dt);
ppu::refresh(dt);
}
int decZoom(int value)
{
gbscreen::decZoom();
display::decZoom();
return 0;
}
int incZoom(int value)
{
gbscreen::incZoom();
display::incZoom();
return 0;
}
int fullscreen(int value)
{
gbscreen::toggleFullscreen();
return gbscreen::getFullscreen();
display::toggleFullscreen();
return display::getFullscreen();
}
int showAnalyzer(int value)
@@ -72,7 +73,8 @@ int main(int argc, char *argv[])
sm83dis::loadSymbols();
sm83::reset();
gbscreen::init(0);
ppu::init();
display::init();
debug::init();
ui::menu::init();
@@ -88,7 +90,7 @@ int main(int argc, char *argv[])
menu = ui::menu::addsubmenu("SCREEN");
ui::menu::addoption(menu, "DEC ZOOM", actions::decZoom);
ui::menu::addoption(menu, "INC ZOOM", actions::incZoom);
ui::menu::addbooloption(menu, "FULLSCREEN", gbscreen::getFullscreen(), actions::fullscreen);
ui::menu::addbooloption(menu, "FULLSCREEN", display::getFullscreen(), actions::fullscreen);
menu = ui::menu::addsubmenu("EMULATION");
ui::menu::addbooloption(menu, "STOP ON INVALID OP", sm83::getOption(SM83_OPTION_STOP_ON_INVALID), actions::decZoom);
@@ -123,12 +125,12 @@ int main(int argc, char *argv[])
debug::history::gototop();
const uint8_t dt = sm83::step();
debug::cont();
gbscreen::refresh(dt);
ppu::refresh(dt);
}
} else if (e.key.keysym.scancode==SDL_SCANCODE_F8) {
if (!debug::debugging()) {
debug::stop();
gbscreen::redraw();
display::redraw();
} else {
debug::show();
}
@@ -138,8 +140,8 @@ int main(int argc, char *argv[])
debug::history::gototop();
const uint8_t dt = sm83::step();
debug::refresh();
gbscreen::refresh(dt);
gbscreen::redraw();
ppu::refresh(dt);
display::redraw();
//z80analyze::refresh();
}
} else if (e.key.keysym.scancode==SDL_SCANCODE_F11) {
@@ -148,8 +150,8 @@ int main(int argc, char *argv[])
debug::history::gototop();
const uint8_t dt = debug::next();
debug::refresh();
gbscreen::refresh(dt);
gbscreen::redraw();
ppu::refresh(dt);
display::redraw();
//z80analyze::refresh();
}
} else if (e.key.keysym.scancode==SDL_SCANCODE_F12) {
@@ -158,8 +160,8 @@ int main(int argc, char *argv[])
debug::history::gototop();
const uint8_t dt = debug::stepout();
debug::refresh();
gbscreen::refresh(dt);
gbscreen::redraw();
ppu::refresh(dt);
display::redraw();
//z80analyze::refresh();
}
}
@@ -178,13 +180,13 @@ int main(int argc, char *argv[])
for (int i=0;i<20;++i) {
if (debug::isbreak(sm83::getPC(), 9)) {
debug::stop();
gbscreen::redraw();
display::redraw();
break;
} else {
uint8_t dt = sm83::step();
t_states += dt;
//zx_ula::sound_update(dt);
gbscreen::refresh(dt);
ppu::refresh(dt);
if (debug::debugging()) break;
}
}
@@ -200,9 +202,9 @@ int main(int argc, char *argv[])
} else if (!debug::debugging() && debug::paused()) {
gbscreen::redraw(false);
display::redraw(false);
ui::menu::show();
gbscreen::present();
display::present();
}
ui::setClicked(false);
}