- Afegim el tap i el savestate de Alien 8 per a provar
- Provant el berserk mode - Medint els t-states de altra forma - iff1, iff2 i im afegits al array de registres de la cpu - [NEW] getRegs() del modul z80 - [NEW] loadstate() i savestate() al modul z80debug - [NEW] "load arxiu" i "save arxiu" en consola per a carregar i guardar savestates - [ONGOING] "tape load arxiu" i "tape play" per a canviar de cinta i playarla - Buffer de audio més gran. Ara el buffer es circular. Continuem intentant desfer-se del jittering
This commit is contained in:
48
z80debug.cpp
48
z80debug.cpp
@@ -3,6 +3,7 @@
|
||||
#include "z80.h"
|
||||
#include "z80dis.h"
|
||||
#include "zx_ula.h"
|
||||
#include "zx_tape.h"
|
||||
namespace z80debug
|
||||
{
|
||||
#define CHR_W 6
|
||||
@@ -421,16 +422,33 @@ namespace z80debug
|
||||
int address = getnum(cmd);
|
||||
if (address<0 || address>65536) { strcpy(console_error, "Illegal memory address"); return; }
|
||||
mem_viewer_pos = address;
|
||||
} else if (strcmp(cmd, "st")==0 || strcmp(cmd, "save")==0) {
|
||||
getcmd();
|
||||
char filename[256];
|
||||
strcpy(filename, cmd);
|
||||
savestate(filename);
|
||||
} else if (strcmp(cmd, "l")==0 || strcmp(cmd, "load")==0) {
|
||||
getcmd();
|
||||
char filename[256];
|
||||
strcpy(filename, cmd);
|
||||
//getcmd();
|
||||
//char address[256];
|
||||
//strcpy(address, cmd);
|
||||
//loadngo(filename, address);
|
||||
loadstate(filename);
|
||||
} else if (strcmp(cmd, "t")==0 || strcmp(cmd, "tape")==0) {
|
||||
getcmd();
|
||||
char address[256];
|
||||
strcpy(address, cmd);
|
||||
loadngo(filename, address);
|
||||
}
|
||||
}
|
||||
if (strcmp(cmd, "load")==0) {
|
||||
getcmd();
|
||||
char filename[256];
|
||||
strcpy(filename, cmd);
|
||||
zx_tape::load(filename);
|
||||
} else if (strcmp(cmd, "play")==0) {
|
||||
zx_tape::play();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const bool isbreak(const uint16_t address, const uint8_t type)
|
||||
{
|
||||
@@ -465,4 +483,24 @@ namespace z80debug
|
||||
z80::setPC(address);
|
||||
is_debugging = false;
|
||||
}
|
||||
|
||||
void savestate(const char *filename)
|
||||
{
|
||||
uint8_t *regs = z80::getRegs();
|
||||
uint8_t *memory = z80::getMem();
|
||||
FILE *f = fopen(filename, "wb");
|
||||
fwrite(regs, 31, 1, f);
|
||||
fwrite(&memory[16*1024], 48*1024, 1, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
void loadstate(const char *filename)
|
||||
{
|
||||
uint8_t *regs = z80::getRegs();
|
||||
uint8_t *memory = z80::getMem();
|
||||
FILE *f = fopen(filename, "rb");
|
||||
fread(regs, 31, 1, f);
|
||||
fread(&memory[16*1024], 48*1024, 1, f);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user