Commit Graph

387 Commits

Author SHA1 Message Date
Cacodemon345
0f160acb68 Make internal floppy disk controller the default 2026-01-14 01:17:10 +06:00
Miran Grča
110cdbdf9a Merge pull request #6672 from Domppari/hdd_audio_prototype
Support for HDD sound emulation
2026-01-04 21:42:11 +01:00
Domppari
ebe651761b Initial HDD sound implementation using IBM example drive 2026-01-03 21:24:33 +02:00
Alexander Babikov
2b99bf64bd Merge machine_getname_ex into machine_getname 2026-01-01 22:27:41 +05:00
Domppari
d35da5a5c1 Fixes recalibration not working correclty with audio profiles, even when no audio was selected. 2025-12-27 22:29:08 +02:00
starfrost
c768f2dd08 Merge branch '86Box:master' into bugfixes 2025-12-22 22:36:25 +00:00
starfrost013
7860e06f8a Remove all non-library _MSC_VER checks 2025-12-22 22:36:15 +00:00
OBattler
0055af732a Increase MAX_IMAGE_PATH_LEN to 4096 bytes (to fix that config.c warning) and make sure all file name arrays are of that length (no more hardcoded 512 or 1024). 2025-12-22 23:33:56 +01:00
RichardG867
7513769b4b Fix missing None floppy sound preset on 40-track drives 2025-12-21 20:40:30 -03:00
OBattler
82fa8beccb Change the #ifdef. 2025-12-21 22:28:39 +01:00
OBattler
eca6011a3e FDD Audio: #ifdef out the unused variable. 2025-12-21 22:23:45 +01:00
Domppari
42e0fb6726 Enhance FDD audio support for BIOS POST mode:
- Implement detection of BIOS vendor and corresponding audio samples for seek operations.
- Add support for loading and playing POST mode seek samples based on BIOS vendor.
- Reset seek state on FDD close and reset functions.
2025-12-21 22:45:16 +02:00
Domppari
2afa0e7503 FDD Support for detecting if in BIOS POST test mode or normal operations mode. Used to change FDD audio samples for the drive to match real HW BIOS FDD POST test sounds. 2025-12-19 21:56:23 +02:00
Toni Riikonen
6e090318f1 Setting default seek time (10ms) for fdd seeks, as 0ms seek time causes issues on some OS'ses. Also enabled to use seek-times defined for fdd audio profile "None". 2025-12-14 13:43:42 +02:00
OBattler
bb16350c24 FDD Audio: Fix the loading of the configuration file so it does not depend on the current working directory. 2025-11-30 08:15:56 +01:00
Toni Riikonen
93b2a60db6 fdd_audio.c loads now samples from assets folder using assets infra function.
src/CMakeLists.txt rollbacked to original, no assets copying.
Fixed assets infra function to check for "assets/" - 7 characters, not 5 (as in "roms/"
2025-11-29 23:15:20 +02:00
Toni Riikonen
d9fdde0683 Merge branch '86Box:master' into feature/separate_samples_for_each_fdd_track_seek 2025-11-29 18:11:27 +02:00
OBattler
e140db7d14 Always take the PCjr path for 0-step seeks, fixes 1B/V3 without breaking 386BSD. 2025-11-29 06:40:53 +01:00
Toni Riikonen
b4539c0527 And...remove the unnecessary rom.h include 2025-11-28 22:27:29 +02:00
Toni Riikonen
bb61421931 Removed commented include and updated samples readme.txt 2025-11-28 22:25:02 +02:00
Toni Riikonen
0d164c1a80 Add all fdd sound samples and sound profile configration file to assets/sounds/fdd
Updated configuration and sample loading from assets subfolder.
Update CMakeLists.txt to include assets-folder in the build and install.
2025-11-28 22:19:58 +02:00
Toni Riikonen
a6d0c96123 Removed config_path 2025-11-28 01:00:38 +02:00
Toni Riikonen
11edd4ee8a Refactor fdd_audio_load_profiles to simplify path handling 2025-11-28 00:48:11 +02:00
Toni Riikonen
09efaeeb29 FDD audio selection to None + disabled if drive not selected. Load audio profiles on audio settings change to take immediate action when VM already running. 2025-11-26 23:08:47 +02:00
Toni Riikonen
a786ab8436 Separate seek samples for all seeks from 1-79-1 2025-11-24 12:43:46 +02:00
Toni Riikonen
a2fe28e6df Limit audio profile selection to the identical tracks. 40 track audio profiles for 40 track drives, 80 track profiles to 80 track drives. 2025-11-03 21:48:11 +02:00
Toni Riikonen
56ffe0cab8 Separate audio sample support for each seek 0-79, 79->0. 2025-10-28 21:38:57 +02:00
Toni Riikonen
c34dad9aa6 Implemented support for seek down samples and seek down timings. 2025-10-03 22:41:26 +03:00
OBattler
375033c5b0 FDD Audio: Remove the exe_path extern. 2025-10-02 05:13:21 +02:00
OBattler
2a41ed657d Introduce a way to open a configuration file from the ROMs directory using rom_fopen and switch the FDD Audio configuration reader to it. 2025-10-01 23:21:58 +02:00
Toni Riikonen
0beb22722a Configurable FDD sound emulation timings (#6263)
* Initial spindle emulation working for windows atleast

* Spingle motor spin-up, spin-down implemented with smooth transitions to motor-on loop.

* Moved fdd audio emulation to a separate file

* Multiple drives sound emulation

* Single sector movement sound emulations implemented

* Rename project to Immersive86Box and update details

Updated README to reflect the new project name and added details about the Immersive86Box features and future plans.

* Revise contribution guidelines in CONTRIBUTING.md

* Update vulnerability reporting instructions

* System fan-sound next feature after basic fdd sound emulation is ready

* v0.5 multitrack audio seek sfx

* Removed unnecessary stuff

* no .vs folder for git

* Added currently used fdd sound effects and readme.txt for source of the files and intallation instructions

* Add audio emulation installation instructions

Added instructions for audio emulation installation.

* Code and audio samples merged

* Simplify audio emulation installation instructions

* FDC seeking fixed, not instant anymore drive is set to busy during the operation and when it's finished at call fdc to set the appropriate fdc flags.

Also added time logic to fdd to calculate seek duration and a callback function for it.

* FDD sound samples volume control

* Menu options to enable / disable fdd sound for all drives.
DISABLE_FDD_AUDIO definition added, to disable the feature via cmake/build.

* Revert readme etc. changes

* Revert "Revise contribution guidelines in CONTRIBUTING.md"

This reverts commit 98a0478225.

* Revert "Update vulnerability reporting instructions"

This reverts commit 7d32cb659b.

* Fixed merge issue

* Removed excess files

* Fixed PCJr seeking not to break the FDC implementation. Now seeking will take the "correct" amount of time for each system and the seek time is based on the track count. E.g. 40 track FDD system causes 40 track seek time to be 80/40 * 6ms * 40 tracks + 50ms = 480ms + 50ms -> 530ms.

80 track system full seek is 80/80 * 6ms * 80 + 50ms = 530ms, 40 track seek would take 240 + 50 = 290ms.

* Fixed PS/1, PS/2 and PS/55 FDD issues.

* FDD_AUDIO: Updating samples looked in executablePath/samples and if now found there, looks in the executable directory

* Updated installation instructions

* Removed samples path strcat use

* fdd_audio 5.25 samples and support added

* FDD audio timing/volume tunings

* Timing fixes for authentity and special longer timings for PCJr

* Fixed second drive motor keeps running when first drive is only accessed.

* Fixed PCJr random failure issue, timings

* CodeQL fix for load_wav-function. Check the filename to be proper filename

* Revert "Fixed second drive motor keeps running when first drive is only accessed."

This reverts commit 307b173ae7.

* Teac 5.25" drive samples added. Added per drive audio selection to FDD settings.

* Fixed merge issue

* Fixed readme to include only Mitsumi samples under CC-BY license

* Fixes merge problem

* Fixes #6220: OS/2 Warp 3.0 install disk issue and NT 3.1 floppy disk issues. Changed the fdc->stat bit to 0x10 which states fdc busy. Previous implementation with seek time 0, set the ready flag 0x80 immediadely - which was correct for that time, but now as the drive is busy during seek, the value should 0x10. Implemented a backup for fdd commands during fdd seek to be processes after the seek is completed.

* Fixed FDD reset

* Floppy disk audio now gets settings from fdd_audio_profiles.cfg stored in roms/floppy -directory. Floppy settings audio seledtions are also populated by the settings from this config.

* Changed samples per track, not seek_duration_per_track

* Removed commented code.
Returned total_track in configration

* Fixed CodeQL errors

---------

Co-authored-by: Toni Riikonen <domppari@hotmail.com>
2025-10-01 21:07:23 +02:00
Toni Riikonen
387f583345 Fixed CodeQL errors 2025-10-01 21:29:07 +03:00
Toni Riikonen
2afa71c8ec Changed samples per track, not seek_duration_per_track 2025-10-01 20:50:18 +03:00
Toni Riikonen
9ff459f1f5 Floppy disk audio now gets settings from fdd_audio_profiles.cfg stored in roms/floppy -directory. Floppy settings audio seledtions are also populated by the settings from this config. 2025-10-01 15:49:49 +03:00
Toni Riikonen
e5fb4469de Fixed FDD reset 2025-09-29 22:13:41 +03:00
Toni Riikonen
02adf13eaf Merge remote-tracking branch 'upstream/master' 2025-09-29 22:04:17 +03:00
OBattler
55af553ac4 Fix floppy drive behavior, fixes floppy drives in turbo mode on some machines. 2025-09-29 20:19:51 +02:00
Toni Riikonen
6a94c2c364 Merge pull request #9 from 86Box/master
Merge from upstream mster
2025-09-29 21:12:02 +03:00
OBattler
4d35eee630 FDD: When a drive is set to turbo mode, keep it silent and bring back the fast seeks. 2025-09-29 00:15:40 +02:00
Toni Riikonen
00e901dd54 Merge 86box/master 2025-09-27 22:28:30 +03:00
OBattler
fe0277c031 FDC: Fix a warning and the incorrect status flags. 2025-09-27 13:28:23 +02:00
Toni Riikonen
836f855683 Fixes #6220 floppy disk issues with OS/2 and NT 3.1 systems (#6232)
* Initial spindle emulation working for windows atleast

* Spingle motor spin-up, spin-down implemented with smooth transitions to motor-on loop.

* Moved fdd audio emulation to a separate file

* Multiple drives sound emulation

* Single sector movement sound emulations implemented

* Rename project to Immersive86Box and update details

Updated README to reflect the new project name and added details about the Immersive86Box features and future plans.

* Revise contribution guidelines in CONTRIBUTING.md

* Update vulnerability reporting instructions

* System fan-sound next feature after basic fdd sound emulation is ready

* v0.5 multitrack audio seek sfx

* Removed unnecessary stuff

* no .vs folder for git

* Added currently used fdd sound effects and readme.txt for source of the files and intallation instructions

* Add audio emulation installation instructions

Added instructions for audio emulation installation.

* Code and audio samples merged

* Simplify audio emulation installation instructions

* FDC seeking fixed, not instant anymore drive is set to busy during the operation and when it's finished at call fdc to set the appropriate fdc flags.

Also added time logic to fdd to calculate seek duration and a callback function for it.

* FDD sound samples volume control

* Menu options to enable / disable fdd sound for all drives.
DISABLE_FDD_AUDIO definition added, to disable the feature via cmake/build.

* Revert readme etc. changes

* Revert "Revise contribution guidelines in CONTRIBUTING.md"

This reverts commit 98a0478225.

* Revert "Update vulnerability reporting instructions"

This reverts commit 7d32cb659b.

* Fixed merge issue

* Removed excess files

* Fixed PCJr seeking not to break the FDC implementation. Now seeking will take the "correct" amount of time for each system and the seek time is based on the track count. E.g. 40 track FDD system causes 40 track seek time to be 80/40 * 6ms * 40 tracks + 50ms = 480ms + 50ms -> 530ms.

80 track system full seek is 80/80 * 6ms * 80 + 50ms = 530ms, 40 track seek would take 240 + 50 = 290ms.

* Fixed PS/1, PS/2 and PS/55 FDD issues.

* FDD_AUDIO: Updating samples looked in executablePath/samples and if now found there, looks in the executable directory

* Updated installation instructions

* Removed samples path strcat use

* fdd_audio 5.25 samples and support added

* FDD audio timing/volume tunings

* Timing fixes for authentity and special longer timings for PCJr

* Fixed second drive motor keeps running when first drive is only accessed.

* Fixed PCJr random failure issue, timings

* CodeQL fix for load_wav-function. Check the filename to be proper filename

* Revert "Fixed second drive motor keeps running when first drive is only accessed."

This reverts commit 307b173ae7.

* Teac 5.25" drive samples added. Added per drive audio selection to FDD settings.

* Fixes merge problem

* Fixes #6220: OS/2 Warp 3.0 install disk issue and NT 3.1 floppy disk issues. Changed the fdc->stat bit to 0x10 which states fdc busy. Previous implementation with seek time 0, set the ready flag 0x80 immediadely - which was correct for that time, but now as the drive is busy during seek, the value should 0x10. Implemented a backup for fdd commands during fdd seek to be processes after the seek is completed.

---------

Co-authored-by: Toni Riikonen <domppari@hotmail.com>
2025-09-27 04:51:38 -04:00
Toni Riikonen
b1dfe5320c Fixes #6220: OS/2 Warp 3.0 install disk issue and NT 3.1 floppy disk issues. Changed the fdc->stat bit to 0x10 which states fdc busy. Previous implementation with seek time 0, set the ready flag 0x80 immediadely - which was correct for that time, but now as the drive is busy during seek, the value should 0x10. Implemented a backup for fdd commands during fdd seek to be processes after the seek is completed. 2025-09-27 09:54:41 +03:00
Toni Riikonen
6cd9395d2c Fixes merge problem 2025-09-25 20:23:08 +03:00
Toni Riikonen
28bc20707e Merge 86box master to Immersive86box master 2025-09-22 21:28:55 +03:00
OBattler
4f0cdcad0b FDD Audio: Halve the volume again. 2025-09-22 18:47:16 +02:00
OBattler
c0b7ad4b94 More fixes. 2025-09-22 18:10:45 +02:00
OBattler
3dc819de6e FDD Audio: Fix sound when sound is set to INT16 and halve the volume. 2025-09-22 18:08:27 +02:00
OBattler
151c3d8730 Fixes to the floppy samples work. 2025-09-22 01:30:11 +02:00
Toni Riikonen
1859e7cf68 Floppy disks sound emulation prototype for reviewing (#6166)
* Initial spindle emulation working for windows atleast

* Spingle motor spin-up, spin-down implemented with smooth transitions to motor-on loop.

* Moved fdd audio emulation to a separate file

* Multiple drives sound emulation

* Single sector movement sound emulations implemented

* Rename project to Immersive86Box and update details

Updated README to reflect the new project name and added details about the Immersive86Box features and future plans.

* Revise contribution guidelines in CONTRIBUTING.md

* Update vulnerability reporting instructions

* System fan-sound next feature after basic fdd sound emulation is ready

* v0.5 multitrack audio seek sfx

* Removed unnecessary stuff

* no .vs folder for git

* Added currently used fdd sound effects and readme.txt for source of the files and intallation instructions

* Add audio emulation installation instructions

Added instructions for audio emulation installation.

* Code and audio samples merged

* Simplify audio emulation installation instructions

* FDC seeking fixed, not instant anymore drive is set to busy during the operation and when it's finished at call fdc to set the appropriate fdc flags.

Also added time logic to fdd to calculate seek duration and a callback function for it.

* FDD sound samples volume control

* Menu options to enable / disable fdd sound for all drives.
DISABLE_FDD_AUDIO definition added, to disable the feature via cmake/build.

* Revert readme etc. changes

* Revert "Revise contribution guidelines in CONTRIBUTING.md"

This reverts commit 98a0478225.

* Revert "Update vulnerability reporting instructions"

This reverts commit 7d32cb659b.

* Fixed merge issue

* Removed excess files

* Fixed PCJr seeking not to break the FDC implementation. Now seeking will take the "correct" amount of time for each system and the seek time is based on the track count. E.g. 40 track FDD system causes 40 track seek time to be 80/40 * 6ms * 40 tracks + 50ms = 480ms + 50ms -> 530ms.

80 track system full seek is 80/80 * 6ms * 80 + 50ms = 530ms, 40 track seek would take 240 + 50 = 290ms.

* Fixed PS/1, PS/2 and PS/55 FDD issues.

* FDD_AUDIO: Updating samples looked in executablePath/samples and if now found there, looks in the executable directory

* Updated installation instructions

* Removed samples path strcat use

* fdd_audio 5.25 samples and support added

* FDD audio timing/volume tunings

* Timing fixes for authentity and special longer timings for PCJr

* Fixed second drive motor keeps running when first drive is only accessed.

* Fixed PCJr random failure issue, timings

* CodeQL fix for load_wav-function. Check the filename to be proper filename

* Revert "Fixed second drive motor keeps running when first drive is only accessed."

This reverts commit 307b173ae7.

* Teac 5.25" drive samples added. Added per drive audio selection to FDD settings.

* Fixed mistake in samples folder recreation

---------

Co-authored-by: Toni Riikonen <domppari@hotmail.com>
2025-09-22 01:03:07 +02:00