From 3cbbc5fd686947f54690a1ea08727cf9310a86d3 Mon Sep 17 00:00:00 2001 From: "Raimon @ quifisraimon" Date: Mon, 20 Jul 2026 13:55:02 +0200 Subject: [PATCH] - [CHG] Netejada l'interficie del ay-3-8912 - [FIX] Llevat el retras en la UI, encara no se si puja la CPU a lo loco, a vore quan ho prove amb el portatil --- ay-3-8912.cpp | 13 ------------- ay-3-8912.h | 1 - main.cpp | 1 + zx_system.cpp | 8 ++++++-- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/ay-3-8912.cpp b/ay-3-8912.cpp index 93f7300..555ba14 100644 --- a/ay-3-8912.cpp +++ b/ay-3-8912.cpp @@ -1,7 +1,4 @@ #include "ay-3-8912.h" -#include "z80.h" -#include -#include "zx_ula.h" #define MIXER_REG_A_TONE 0x01 #define MIXER_REG_B_TONE 0x02 @@ -23,7 +20,6 @@ namespace audio float cycles_per_sample; uint8_t volume_table[16] {0,2,3,4,6,8,11,16,23,32,45,64,90,128,180,255}; - SDL_AudioDeviceID sdlAudioDevice; uint8_t selected_register {0}; uint8_t registers[16]; @@ -112,13 +108,6 @@ namespace audio } } - void init() - { - reset(); - z80::connect_port(0xfffd, 0xffff, audio::read_register, audio::select_register); - z80::connect_port(0xbffd, 0xffff, nullptr, audio::write_register); - } - void reset() { enabled = true; @@ -209,8 +198,6 @@ namespace audio if ((registers[7] & MIXER_REG_C_TONE)==0) channel_c_level &= channel_c_tone_level; if ((registers[7] & MIXER_REG_C_NOISE)==0) channel_c_level &= noise_level; - //zx_ula::set_border_color(channel_a_tone_level&0xf); - const uint8_t channel_a_volume = (registers[8]&0x10) ? envelope_volume : registers[8]&0xf; const uint8_t channel_b_volume = (registers[9]&0x10) ? envelope_volume : registers[9]&0xf; const uint8_t channel_c_volume = (registers[10]&0x10) ? envelope_volume : registers[10]&0xf; diff --git a/ay-3-8912.h b/ay-3-8912.h index 6ea1731..45eb476 100644 --- a/ay-3-8912.h +++ b/ay-3-8912.h @@ -8,7 +8,6 @@ namespace audio int read_register(int port); void write_register(int port, int val); - void init(); void reset(); void update(uint32_t dt); diff --git a/main.cpp b/main.cpp index 5d3e6b2..b8562fd 100644 --- a/main.cpp +++ b/main.cpp @@ -321,6 +321,7 @@ int main(int argc, char *argv[]) ui::menu::show(); zxscreen::present(); + wait = 1; } if (wait == 0) { diff --git a/zx_system.cpp b/zx_system.cpp index 53624ff..4b69ecd 100644 --- a/zx_system.cpp +++ b/zx_system.cpp @@ -54,7 +54,9 @@ namespace zx_system z80::connect_port(0xfe, 0x0001, zx_ula::port_in, zx_ula::port_out); mem::init(ZX_128K); zxscreen::init(SCREEN_MODE_128K); - audio::init(); + audio::reset(); + z80::connect_port(0xfffd, 0xffff, audio::read_register, audio::select_register); + z80::connect_port(0xbffd, 0xffff, nullptr, audio::write_register); speaker::init(); speaker::register_source(zx_ula::get_sample); speaker::register_source(audio::get_sample); @@ -74,7 +76,9 @@ namespace zx_system z80::connect_port(0xfe, 0x0001, zx_ula::port_in, zx_ula::port_out); mem::init(ZX_PLUS3); zxscreen::init(SCREEN_MODE_128K); - audio::init(); + audio::reset(); + z80::connect_port(0xfffd, 0xffff, audio::read_register, audio::select_register); + z80::connect_port(0xbffd, 0xffff, nullptr, audio::write_register); speaker::init(); speaker::register_source(zx_ula::get_sample); speaker::register_source(audio::get_sample);