- [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:
16
zx_ula.cpp
16
zx_ula.cpp
@@ -224,6 +224,9 @@ namespace zx_ula
|
||||
uint16_t sound_pos=0;
|
||||
uint16_t sound_start=0;
|
||||
uint16_t t_sound=0;
|
||||
uint32_t samples_generated=0;
|
||||
uint32_t samples_time =0;
|
||||
uint32_t samples_t=0;
|
||||
|
||||
void audioCallback(void * userdata, uint8_t * stream, int len)
|
||||
{
|
||||
@@ -259,6 +262,7 @@ namespace zx_ula
|
||||
SDL_AudioSpec audioSpec{11025, AUDIO_U8, 1, 0, AUDIO_BUFFER_SIZE>>2, 0, 0, &audioCallback, NULL};
|
||||
sdlAudioDevice = SDL_OpenAudioDevice(NULL, 0, &audioSpec, NULL, 0);
|
||||
sound_enable();
|
||||
samples_time=SDL_GetTicks();
|
||||
}
|
||||
|
||||
void sound_enable()
|
||||
@@ -274,8 +278,20 @@ namespace zx_ula
|
||||
void sound_update(const uint8_t dt)
|
||||
{
|
||||
t_sound += dt;
|
||||
samples_t += dt;
|
||||
if (t_sound>=317) {
|
||||
t_sound-=317;
|
||||
samples_generated++;
|
||||
if (samples_t >=3500000) {
|
||||
printf("%i\n", samples_generated);
|
||||
samples_generated=0;
|
||||
samples_t = 0;
|
||||
}
|
||||
/*if (SDL_GetTicks()>=samples_time+1000) {
|
||||
printf("%i\n", samples_generated);
|
||||
samples_generated=0;
|
||||
samples_time = SDL_GetTicks();
|
||||
}*/
|
||||
//sound_pos = (sound_pos+1) & 0x3ff;
|
||||
//sound_buffer[sound_pos] = ear*128;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user