Commit Graph

11106 Commits

Author SHA1 Message Date
Volker Ruppert
92f48fa92f Implemented MIDI output support for the ES1370 soundcard. Data written to the
UART data port is sent to file or device similar to the SB16.
Minor cleanups in the SB16 code.
2015-04-16 21:18:42 +00:00
Volker Ruppert
2bfe0f523e Some work on the documentation for the "waveout" class methods (not yet complete). 2015-04-14 18:41:39 +00:00
Volker Ruppert
091e01d96c Fixed UART register address in condition and added default status return value. 2015-04-12 10:48:02 +00:00
Volker Ruppert
727fbd23af Fixed possible deadlock when pressing user shortcut or save/restore button.
The button handlers must be placed outside of the critical section.
2015-04-11 10:21:03 +00:00
Volker Ruppert
035b133bac Improved error messages for unsupported internal memory access.
ES1370 is no longer "experimental".
2015-04-11 09:03:17 +00:00
Volker Ruppert
d8ca04c79f The current frame count registers are readable as word (not mentioned in specs).
This fixes the Win98 explorer crash.
Added BX_ERROR for the still unsupported dual output mode.
2015-04-10 21:31:44 +00:00
Volker Ruppert
bad6c96fc7 Fixed possible compilation failure caused by container_of definition (part of
the mixing6 patch by Dawn Teschendorf).
2015-04-10 20:40:25 +00:00
Volker Ruppert
93d9356899 Added documentation for the new lowlevel sound classes. The sections for the
"wavein" and "midiout" feature should be okay. TODO: Update "waveout" methods
subsections.
2015-04-07 17:23:20 +00:00
Volker Ruppert
696c1a6e55 Some Bochs features are still called "experimental". The bus mouse, USB OHCI,
USB UHCI and the E1000 NIC are known to work fine on some guest systems, so
it's safe to remove this attribute.
TODO: Some other Bochs features need to be reviewed for this.
2015-04-07 16:57:36 +00:00
Volker Ruppert
a52bcdfa88 Minor fixes and cleanups in the SB16 code (no functional changes).
- the "remaplist" has 256 entries, but the limit was too high (4096).
- the "patchtable" had 4096 entries, but the index was never > 15.
- removed disabled / outdated code.
2015-04-06 16:03:04 +00:00
Volker Ruppert
72dfda5ee9 Fixed frame register writes (bug in rev. 12705) using QEMU-like code.
TODO: Win98 guest crash after wave output still not fixed.
2015-04-06 12:18:52 +00:00
Volker Ruppert
e20f69b36e Continued sound documentation update (still not complete). 2015-04-06 08:31:23 +00:00
Volker Ruppert
a256414d32 Some work on the ES1370 emulation.
- Undocumented "legacy" register at offset 0x1b is used to probe for the ES1370
  interrupt by the Win9x driver. Using bit #0 to control the IRQ line fixes
  driver installation.
- Added more detailed BX_ERROR messages for the UART registers.
- Small code cleanup in the write handler.
- TODO: fix possible bluescreen in Win98 guest after wave playback.
2015-04-05 11:48:44 +00:00
Volker Ruppert
dd39bbe1c1 Started updating docs after sound code changes (TODO: developer doc). 2015-04-03 15:36:11 +00:00
Volker Ruppert
79278be63f Volume control fixes and improvements
- OPL3: apply FM volume control to the output data.
- SB16: fixed missing volume update after mixer reset.
- soundlow: fixed application of the volume control to the PCM output.
2015-04-03 12:18:53 +00:00
Volker Ruppert
7ce7c70f6d Adjust DAC output timer interval depending on real packet size (fixes output
with XP guest).
2015-04-02 23:21:04 +00:00
Volker Ruppert
10d79f2e9a SB16: fixed output volume calculation.
ES1370: fixed and improved output volume calculation similar to SB16.
TODO: apply volume control to the FM output.
2015-03-31 18:01:52 +00:00
Volker Ruppert
d93eeb98be Updated workspaces after adding Oracle(tm) VM VirtualBox image support. 2015-03-30 20:27:06 +00:00
Volker Ruppert
72cbbe9e8b Fixed incorrect calls of virtual functions in constructor/destructor.
- Removed useless set_pcm_params() call in base class contructor.
- SDL waveout destructor needs to call the unregister_wave_callback() method
  of the SDL stuff, since the base class destructor doesn't do that.
2015-03-29 15:53:56 +00:00
Volker Ruppert
3e54ff2e36 Added Oracle(tm) VM VirtualBox image support (VDI version 1.1). Patch written
by Ben Lunt plus some additions (bximage fixes, big endian support).
TODO: update MSVC workspace files.
2015-03-29 14:27:32 +00:00
Stanislav Shwartsman
080ceb8293 don't crash when running on 386 with no FPU model 2015-03-27 21:39:24 +00:00
Volker Ruppert
601493c89a Moved output volume calculation to a separate method and prepared volume
control for the FM output.
TODO #1: handle volume control in the opl code.
TODO #2: check if the output level calculation is correct.
2015-03-27 15:49:40 +00:00
Stanislav Shwartsman
c360ddf60c correctly report memory type for EPT page table accesses
TODO: support memory type for guest physical access under EPT
TODO: support memory type for SVM nested paging 
TODO: check what happens when PAT is not enabled in CPU configuration
2015-03-23 20:27:36 +00:00
Stanislav Shwartsman
7b33674a54 update CHANGES 2015-03-21 20:33:17 +00:00
Stanislav Shwartsman
05635a9534 call correctly resolve_memtype function 2015-03-21 20:28:22 +00:00
Stanislav Shwartsman
56323b2806 bugfixes 2015-03-21 20:15:57 +00:00
Stanislav Shwartsman
a55c5e4eb8 correctly report memory type for page table accesses in x86 mode (not in EPT or SVM nested paging yet)
TODO: support memory type with EPT / nested paging
TODO: check what happens when PAT is not enabled in CPU configuration
2015-03-21 20:08:58 +00:00
Volker Ruppert
422a06652d Fixed bximage compilation on big endian hosts. 2015-03-20 18:01:52 +00:00
Volker Ruppert
49e265f5f8 Added save/restore support for the OPL3 waveform selection. 2015-03-19 16:47:25 +00:00
Volker Ruppert
3ab5b052a1 Sound driver 'win': changed output rate to 20 packets per second. 2015-03-17 20:55:51 +00:00
Volker Ruppert
927e55f077 Improved mixer thread mutex handling.
- Moved BX_INIT_MUTEX() call to start_mixer_thread() to reduce code duplication.
- Call BX_FINI_MUTEX() only when the mixer thread and mutex was really used.
2015-03-16 19:02:31 +00:00
Volker Ruppert
8bf10dc15c Fixed compilation error caused by #endif location. 2015-03-16 18:28:29 +00:00
Volker Ruppert
7c351a16dc Cleaned up speaker output mode handling (no functional changes). 2015-03-15 06:58:59 +00:00
Volker Ruppert
924201f694 Added capability to handle floating point values with save/restore.
Improved OPL3 save/restore support.
2015-03-13 21:28:40 +00:00
Volker Ruppert
8fe902686c Separated sound lowlevel base class from dummy driver. The base class returns
NULL for all services and the dummy driver provides the stubs. Now falling
back to the dummy driver if the wavein or midiout services are not provided
by the selected driver.
2015-03-10 20:56:44 +00:00
Volker Ruppert
d097b79a08 Added minimal documentation for the sound configuartion changes. 2015-03-09 18:33:51 +00:00
Volker Ruppert
327f987a18 Added the capability to set up the sound driver per service. The global
sound option for setting up one driver for all services is still available.
2015-03-06 22:54:30 +00:00
Stanislav Shwartsman
e79185b0a0 refactor memtype methods 2015-03-02 20:51:59 +00:00
Stanislav Shwartsman
36f7bf0ba6 fixed ept memtype printout 2015-03-01 21:04:34 +00:00
Stanislav Shwartsman
8134dc67af supporting memory type provided by page tables with PCD,PWT and PAT bits
TODO: support memory type with EPT
TODO: support memory type for intermediate page table accesses
TODO: check what happens when PAT is not enabled in CPU configuration
2015-03-01 20:55:23 +00:00
Stanislav Shwartsman
9932384df3 fixed visual studio warning 2015-03-01 19:44:06 +00:00
Stanislav Shwartsman
53041981f7 supply PAT required memory type bits through new combined access interface 2015-02-28 14:06:04 +00:00
Stanislav Shwartsman
25b02dac4b code reorg before PAT memory type support 2015-02-28 14:01:11 +00:00
Stanislav Shwartsman
b74036d2d8 another try to fix the weird compilation error 2015-02-26 20:34:24 +00:00
Stanislav Shwartsman
4e859202a1 attemp to fix compilation issue 2015-02-25 19:43:47 +00:00
Volker Ruppert
cbfbaaacb7 Added BX_HAVE_SOUND_* definitions to simplify code. 2015-02-23 21:32:34 +00:00
Stanislav Shwartsman
1e1c893041 introduce new 64bit packed register type and implement pat/mtrr and mmx registers through it 2015-02-23 21:17:33 +00:00
Stanislav Shwartsman
2bad0d0d12 fixed link error with debugger enabled, small speed optimization 2015-02-23 19:55:55 +00:00
Stanislav Shwartsman
2448c0cf74 fixed complation err 2015-02-23 17:55:09 +00:00
Stanislav Shwartsman
6c6b670551 fixed typo causing compilation error 2015-02-22 21:33:26 +00:00