- 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:
2024-12-02 15:32:09 +01:00
parent 4a9b13126b
commit 18406d4332
9 changed files with 95 additions and 33 deletions

View File

@@ -28,7 +28,7 @@ int main(int argc, char *argv[])
zx_ula::sound_init();
zx_tape::load("abusimbel.tap");
zx_tape::load("alien8.tap");
if (argc==3) { z80debug::loadngo(argv[1], argv[2]); }
@@ -80,6 +80,7 @@ int main(int argc, char *argv[])
zxscreen::redraw();
}
if (e.key.keysym.scancode==SDL_SCANCODE_F12) {
zx_tape::go_berserk();
zx_tape::play();
}
if (e.key.keysym.scancode==SDL_SCANCODE_F11) {
@@ -98,11 +99,22 @@ int main(int argc, char *argv[])
uint8_t dt = z80::step();
t_states += dt;
zx_tape::update(dt);
while (zx_tape::berserk())
{
zx_tape::update(z80::step());
}
zx_ula::sound_update(dt);
zxscreen::refresh(dt);
if (t_states>=350000)
if (t_states>=3500000)
{
//if (SDL_GetTicks()>=time+1000)
//printf("%i\n", SDL_GetTicks()-(time+1000));
//else
// printf("%i\n", SDL_GetTicks()-(time+1000));
//t_states = 0;
while (SDL_GetTicks()<time+100) {}
t_states -= 350000;
time = SDL_GetTicks();