- [FIX] la cpu ja actualitza el registre R com toca
- [FIX] EI no activa les interrupcions fins a després de la següent instrucció, like in real life - [FIX] actualitzar el offset de la UI després de usar el debugger - [ONGOING] Depurant el jittering del só. Ara executa 10 instruccions de CPu per cada bucle, per a que vaja mes apresa i no es retrase el cheneraor de só - Afegit el TAP de Las Tres Luces de Glaurung pa provar
This commit is contained in:
18
main.cpp
18
main.cpp
@@ -172,25 +172,29 @@ int main(int argc, char *argv[])
|
||||
zxscreen::redraw();
|
||||
} else {
|
||||
//if (z80::getPC()==0x05C8) zx_tape::go_berserk();
|
||||
uint8_t dt = z80::step();
|
||||
t_states += dt;
|
||||
zx_tape::update(dt);
|
||||
|
||||
while (zx_tape::getplaying() && zx_tape::getberserk())
|
||||
{
|
||||
zx_tape::update(z80::step());
|
||||
}
|
||||
|
||||
zx_ula::sound_update(dt);
|
||||
zxscreen::refresh(dt);
|
||||
// En cada bucle fem 10 pasos de la CPU, sino s'ofega
|
||||
for (int i=0;i<10;++i) {
|
||||
uint8_t dt = z80::step();
|
||||
t_states += dt;
|
||||
zx_tape::update(dt);
|
||||
|
||||
zx_ula::sound_update(dt);
|
||||
zxscreen::refresh(dt);
|
||||
}
|
||||
|
||||
if (t_states>=3500000)
|
||||
if (t_states>=350000)
|
||||
{
|
||||
//if (SDL_GetTicks()>=time+1000)
|
||||
//printf("%i\n", SDL_GetTicks()-(time+1000));
|
||||
//else
|
||||
// printf("%i\n", SDL_GetTicks()-(time+1000));
|
||||
//t_states = 0;
|
||||
//printf("%i: %i\n", SDL_GetTicks()-(time+1000), t_states);
|
||||
while (SDL_GetTicks()<time+100) {}
|
||||
t_states -= 350000;
|
||||
time = SDL_GetTicks();
|
||||
|
||||
Reference in New Issue
Block a user