From dc037036d039e14c0484c5f2213255eb90db3e59 Mon Sep 17 00:00:00 2001 From: Toni Riikonen Date: Fri, 19 Sep 2025 22:52:36 +0300 Subject: [PATCH 1/2] FDD audio timing/volume tunings --- src/floppy/fdd.c | 5 +++-- src/floppy/fdd_audio.c | 10 +++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/floppy/fdd.c b/src/floppy/fdd.c index 43b200f27..8a38b2139 100644 --- a/src/floppy/fdd.c +++ b/src/floppy/fdd.c @@ -318,8 +318,9 @@ fdd_seek(int drive, int track_diff) // Count actual seek time (6ms per track + 50ms base) // 80 tracks -> 50 + 6 * 80 = 530ms - double seek_ratio = 80.0 / (double)drive_types[fdd[drive].type].max_track; - uint64_t seek_time_us = (50000 + (abs(actual_track_diff) * 6000 * seek_ratio)) * TIMER_USEC; + //double seek_ratio = 80.0 / (double)drive_types[fdd[drive].type].max_track; + double seek_ratio = 1.0; + uint64_t seek_time_us = (15000 + (abs(actual_track_diff) * 6000 * seek_ratio)) * TIMER_USEC; if (!fdd_seek_timer[drive].callback) { timer_add(&(fdd_seek_timer[drive]), fdd_seek_complete_callback, &drives[drive], 0); } diff --git a/src/floppy/fdd_audio.c b/src/floppy/fdd_audio.c index 10b6e9bbb..900041c8d 100644 --- a/src/floppy/fdd_audio.c +++ b/src/floppy/fdd_audio.c @@ -101,31 +101,31 @@ static drive_audio_samples_t samples_525 = { .filename = "Panasonic_JU-475-5_5.25_1.2MB_motor_start_48000_16_1_PCM.wav", .buffer = NULL, .samples = 0, - .volume = 0.2f + .volume = 1.0f }, .spindlemotor_loop = { .filename = "Panasonic_JU-475-5_5.25_1.2MB_motor_loop_48000_16_1_PCM.wav", .buffer = NULL, .samples = 0, - .volume = 0.2f + .volume = 1.0f }, .spindlemotor_stop = { .filename = "Panasonic_JU-475-5_5.25_1.2MB_motor_stop_48000_16_1_PCM.wav", .buffer = NULL, .samples = 0, - .volume = 0.2f + .volume = 1.0f }, .single_track_step = { .filename = "Panasonic_JU-475-5_5.25_1.2MB_track_step_48000_16_1_PCM.wav", .buffer = NULL, .samples = 0, - .volume = 1.0f + .volume = 2.0f }, .multi_track_seek = { .filename = "Panasonic_JU-475-5_5.25_1.2MB_seekup_40_tracks_285ms_5ms_per_track_48000_16_1_PCM.wav", .buffer = NULL, .samples = 0, - .volume = 1.0f + .volume = 2.0f } }; From b8f61913b05b5117316a3a3a1f4bd8298a25fee7 Mon Sep 17 00:00:00 2001 From: Toni Riikonen Date: Fri, 19 Sep 2025 23:20:08 +0300 Subject: [PATCH 2/2] Timing fixes for authentity and special longer timings for PCJr --- src/floppy/fdd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/floppy/fdd.c b/src/floppy/fdd.c index 8a38b2139..d4fef4fd8 100644 --- a/src/floppy/fdd.c +++ b/src/floppy/fdd.c @@ -316,15 +316,13 @@ fdd_seek(int drive, int track_diff) return; } - // Count actual seek time (6ms per track + 50ms base) - // 80 tracks -> 50 + 6 * 80 = 530ms - //double seek_ratio = 80.0 / (double)drive_types[fdd[drive].type].max_track; - double seek_ratio = 1.0; - uint64_t seek_time_us = (15000 + (abs(actual_track_diff) * 6000 * seek_ratio)) * TIMER_USEC; if (!fdd_seek_timer[drive].callback) { timer_add(&(fdd_seek_timer[drive]), fdd_seek_complete_callback, &drives[drive], 0); } + double initial_seek_time = FDC_FLAG_PCJR & fdd_fdc->flags ? 50000.0 : 15000.0; + double track_seek_time = FDC_FLAG_PCJR & fdd_fdc->flags ? 10000.0 : 6000.0; + uint64_t seek_time_us = (initial_seek_time + (abs(actual_track_diff) * track_seek_time)) * TIMER_USEC; timer_set_delay_u64(&fdd_seek_timer[drive], seek_time_us); }