Commit Graph

16 Commits

Author SHA1 Message Date
Andrea
fa6d2f7c12 Fix initial volume of SSI263 and after a Load State. (PR #1383)
It was set at the maximum level rather than the Mockingboard volume.
2025-02-22 14:38:04 +00:00
TomCh
5bc7e495bf Restore SSI263 continuous phoneme playback from save-state (#1372, PR #1376)
. Defer each SSI263's DSInit() until SSI263::Play() & Update() are called.
. Refactor DSInit(): rename to Init() for consistency with MockingboardCardManager class.
. m_currentActivePhoneme: never return to -1 value, instead OR with kPhonemeLeadoutFlag.
. Save-state: Mockingboard v13: deprecate SS_YAML_KEY_SSI263_ACTIVE_PHONEME.
2025-02-08 13:37:50 +00:00
Andrea
3a3663d9d6 More cleanup (PR #1357)
SoundBuffer: move Windows only flags to DXSoundBuffer.
Remove out of date _MSC_VER checks (pre-VS2019).
2025-01-04 12:35:31 +00:00
Jamiras
a2b03483ee Add SoundBuffer interface (PR #1352)
This replaces the LPDIRECTSOUNDBUFFER pointer with a pure virtual class and an implementation that wraps the LPDIRECTSOUNDBUFFER, allowing other sound implementations without having to simulate the exact alignment of a DIRECTSOUNDBUFFER object.

Additionally, moves the DSInit and DSUninit calls out of the SoundCore.cpp file (into a new DXSoundBuffer.cpp (for Windows)), allowing them to be appropriately reimplemented in a non-DirectSound environment.
2024-12-30 12:42:26 +00:00
Andrea
35f176e4d8 Replace DWORD -> uint32_t. (PR #1350)
Some have been left where tightly coupled with the Win32 API.
2024-12-21 12:32:00 +00:00
tomcw
b5544142e0 MB: Refactor IsActive() to IsActiveToPreventFullSpeed() (#1340) 2024-11-20 21:00:38 +00:00
tomcw
d896e1cec2 MB: Fix for SSI263 phoneme blocking enhanced disk II full-speed mode. (Fixes #1340) 2024-11-18 21:27:56 +00:00
Andrea
4b18918e0f Mockingboard: define sample rate and number of channels only once. (PR #1223) 2023-05-05 21:49:26 +01:00
Andrea
a648c3e607 Mockingboard: do not play sound unless a card is present. (PR #1222) 2023-05-02 21:47:01 +01:00
tomcw
96a386a77a Config->Sound: improve UX for extra MB cards when cmd-line is empty 2023-04-29 09:47:50 +01:00
TomCh
5ba153c244 Add support for SD Music card (PR #1217)
Differences compared to Mockingboard:
. Only one 6522
. AY8913 is selected by address b7

Add cmd line: -sN sdmusic
Add cmd line: -mb-audit (to enable selection of additional sound cards, eg. for mb-audit)
2023-04-28 16:41:22 +01:00
TomCh
273d07d83f Support MegaAudio card for testing mb-audit (PR #1211)
Differences compared to Mockingboard:
. TIMER1 underflows to $FFFE before it's reloaded with latch.
. TIMER1's LATCH=$0000 gets interpreted as $FFFF.
. Partial TIMER2 support: IFR.T2 gets set on underflow. But T2 reads as 0x00FF.
. AY register reads are unsupported (always read as 0).

Config->Sound: show 'MEGA Audio' in drop-down menus only if it was specified on the cmd line.
2023-04-12 18:19:18 +01:00
tomcw
d61d348f94 Fix comment 2023-01-29 13:37:07 +00:00
tomcw
cf722ff0cc Fix so that MockingboardCardMgr asserts IRQ based on the wired-OR sum of all MB card's 6522s. (Fixes #1173) 2023-01-29 13:32:55 +00:00
tomcw
c56d341bdb Remove old debug code 2023-01-28 20:56:54 +00:00
TomCh
71c67cf132 Refactor Mockingboard into a class (#1171)
Mockingboard or Phasor cards can be inserted into any slot.
Change Config->Sound to that slots 4+5 to be individually selected for the 3 soundcard types.
Add MockingboardCardManager class to manage multiple cards and mix the sound buffers.
2023-01-28 18:15:28 +00:00