- [FIX] Al anar de 10 en 10 steps de vegades se botaba breakpoints

- [FIX] Ara cada renderer te la seua textura de font
- [CHG] Continuar l'execució ja no tanca el debugger
- [NEW] En la memòria no tocada actual o en avanç, se "adivina" quina es la instrucció
- [FIX] Resetejar el spectrum borrava la ROM
- [NEW] Anar avant o arrere en el temps mou el cursor del desensamblador
This commit is contained in:
2024-12-10 13:56:24 +01:00
parent 68d53af1b4
commit f462afe56c
6 changed files with 81 additions and 64 deletions

View File

@@ -16,6 +16,8 @@ namespace zxscreen
SDL_Window *win = nullptr;
SDL_Renderer *ren = nullptr;
SDL_Texture *tex = nullptr;
SDL_Texture *uitex = nullptr;
uint8_t zoom = 1;
bool fullscreen = false;
int fullscreen_scale = 1;
@@ -106,7 +108,6 @@ namespace zxscreen
if (e->type == SDL_KEYDOWN) {
if (e->key.keysym.scancode==SDL_SCANCODE_ESCAPE) {
z80debug::pause();
ui::setrenderer(zxscreen::getrenderer());
zxscreen::redraw();
} else if (e->key.keysym.scancode==SDL_SCANCODE_F1) {
zxscreen::decZoom();
@@ -133,6 +134,7 @@ namespace zxscreen
if (win) ui::window::unregisterWindow(SDL_GetWindowID(win));
if (tex) SDL_DestroyTexture(tex);
if (uitex) SDL_DestroyTexture(uitex);
if (ren) SDL_DestroyRenderer(ren);
if (win) SDL_DestroyWindow(win);
@@ -140,6 +142,7 @@ namespace zxscreen
win = SDL_CreateWindow("ZX Spectrum Screen", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 352*z, 296*z, fullscreen?SDL_WINDOW_FULLSCREEN_DESKTOP:SDL_WINDOW_SHOWN);
ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);
tex = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, 352, 296);
uitex = ui::createtexture(ren);
ui::window::registerWindow(SDL_GetWindowID(win), eventHandler);
@@ -178,15 +181,11 @@ namespace zxscreen
{
if (color_addr[t_screen] != 0)
{
if (color_addr[t_screen] == 1)
{
if (color_addr[t_screen] == 1) {
*(ptr_pixel++) = border_color;
*(ptr_pixel++) = border_color;
//pixels_draw+=2;
}
else
{
} else {
uint8_t color = memory[color_addr[t_screen]];
uint8_t c1 = color&0x7, c2 = (color>>3)&0x7;
if ((color&0x80) && flash) { c1=c2; c2=color&0x7; }
@@ -230,6 +229,8 @@ namespace zxscreen
{
if (zx_tape::getplaying() && zx_tape::getOption(ZXTAPE_OPTION_FAST_LOAD)) return;
ui::setrenderer(ren, uitex);
Uint32* pixels;
int pitch;
SDL_LockTexture(tex, NULL, (void**)&pixels, &pitch);