Commit Graph

12989 Commits

Author SHA1 Message Date
Volker Ruppert
c1f93f0c94 Added PCM recording support using the PulseAudio simple API. 2024-04-01 21:29:55 +02:00
Volker Ruppert
6e4a4fcef3 Updated VS2019 workspace files. 2024-04-01 14:23:28 +02:00
Volker Ruppert
2979ba4b3a Lowlevel sound support: Attempt to fix issue #270.
If resampler is not present, flush output before changing PCM parameters.
2024-04-01 10:31:51 +02:00
Volker Ruppert
78ce6be17d Fixed compilation of vncsrv gui in Cygwin. 2024-04-01 09:01:27 +02:00
Volker Ruppert
d345dc85dd Enable PulseAudio support for more platforms, but not yet for Windows.
On Windows PulseAudio uses pthreads which seem to be in conflict with the native
Windows threads used by Bochs.
2024-04-01 00:23:23 +02:00
Stanislav Shwartsman
3657e40437 convert FSCALE to softfloat3e style 2024-03-31 15:24:12 +03:00
Volker Ruppert
6ac761894c Added lowlevel sound output support using the PulseAudio simple API.
TODO: PulseAudio also supports sound recording and it's portable (Windows).
2024-03-31 13:19:43 +02:00
Stanislav Shwartsman
725aa43b9c fix extern 2024-03-30 19:44:14 +03:00
Stanislav Shwartsman
7c1a23037a convert FEXTRACT to softfloat3e style
remove more softfloat2 code which is not in use anymore
2024-03-30 19:35:08 +03:00
Volker Ruppert
ba1a0441ab Setting GTK version number in config.h fixes GTK3 compilation.
GTK3 forbids to include gtkversion.h directly.
2024-03-30 16:59:06 +01:00
Stanislav Shwartsman
c91b7bf117 convert float128 uses to softfloat3e
remove more now unused softfloat2 stuff
2024-03-30 15:36:43 +03:00
Volker Ruppert
110bb94e3a Updated VS2019 project files after latest softfloat3e changes. 2024-03-30 12:48:22 +01:00
Volker Ruppert
e58f9b46f6 BXSHARE: For backward compatibility read default value from registry
key if BX_SHARE_PATH doesn't exist.
2024-03-30 12:28:25 +01:00
Volker Ruppert
676eb9f37d Added support for showing X dialog box when parsing options.
Changed init order to: XInitThreads(), XOpenDisplay(), SIM->set_notify_callback()
and then parse display library options.
2024-03-30 11:11:07 +01:00
Volker Ruppert
1924cd457e Gui options parser: Don't panic after showing error message box. 2024-03-30 08:05:53 +01:00
Volker Ruppert
51a73a00e8 Fixed compilation error with minimal configuration. 2024-03-29 20:29:58 +01:00
Volker Ruppert
ed20d44090 Added new gui method parse_common_gui_options().
Simplified gui option handling with it in sdl, sdl2, win32 and x11 guis.
The sdl and sdl2 guis now also support "gui_debug:globalini".
2024-03-29 20:12:41 +01:00
Stanislav Shwartsman
6d4f132977 remove now unused function 2024-03-29 20:14:13 +03:00
Stanislav Shwartsman
c372a77392 tab2space 2024-03-29 20:13:57 +03:00
Stanislav Shwartsman
a04ec3716a better handling of denormal in extF80_rem 2024-03-29 16:23:15 +03:00
Stanislav Shwartsman
af18912529 GTK debugger: Set GTK_DISABLE_DEPRECATED only for GTK 2.
The current code fails to compile otherwise with GTK 3.
(was accidentially removed by prev commit)
2024-03-29 16:04:17 +03:00
Stanislav Shwartsman
eef84bbbfc fixed warnings 2024-03-29 16:02:11 +03:00
Stanislav Shwartsman
446408eb74 remove redundant files from softfloat3e source code 2024-03-29 16:00:22 +03:00
Volker Ruppert
1bbd4ed535 Added gui debugger option extension "globalini" fur the win32 and x11 guis.
Use this display library line to read/write ini from BXSHARE path:

display_library: x, options="gui_debug:globalini"

NOTE: Using $BXSHARE at this point doesn't work yet since the common parser code
expands the variable and Bochs finally exits with a panic (needs to be reviewed).

TODO: Add shared parser code for all guis and add this feature for SDL, SDL2 and
wxWidgets guis.
2024-03-29 10:40:59 +01:00
Volker Ruppert
aff2b42203 Added panic for legacy BIOS if there is no VGA ROM at C000:0000h.
This is a workaround for issue #155.
2024-03-28 18:55:04 +01:00
Volker Ruppert
504f68e6bd Fixed warnings in the GTK debugger code. 2024-03-27 17:33:19 +01:00
Volker Ruppert
44d644c2c2 Some more user doc updates and updating Bochs website URL. 2024-03-26 19:36:12 +01:00
Volker Ruppert
ca8c9936b9 Debugger gui: Added support for using ini file from BXSHARE path.
If BXSHARE variable is defined (or BX_SHARE_PATH set in Windows registry)
and an existing ini file is copied to this location, the gui will use it
instead of the local ini file (issue #195).
TODO: Specify the ini file priority with an addition to the 'gui_debug'
parameter of the display library option.
2024-03-25 20:08:02 +01:00
Volker Ruppert
187411e25f In shortcut script .conf.linux added support for enabling debugger.
The debugger now can be enabled without setting CONFIGURE_ARGS.
To turn it on use

./.conf.linux normal debugger

or

./.conf.linux plugins debugger
2024-03-25 19:50:06 +01:00
Volker Ruppert
9daf6e9f50 Updated most of the user doc after transition to GIT / GitHub. 2024-03-25 17:53:04 +01:00
Volker Ruppert
e9c66051bd Fixes from Debian package of Bochs 2.8.
- Use macro PKG_PROG_PKG_CONFIG to detect pkg-config.
- Removed obsolete file from Makefile.in.
2024-03-24 19:49:22 +01:00
Volker Ruppert
1fcb27f55d Don't include links from /usr/lib/.build-id in binary RPM package. 2024-03-24 18:33:20 +01:00
Volker Ruppert
78c5b21313 Some NSIS script additions and developer doc updates. 2024-03-24 16:51:56 +01:00
Volker Ruppert
b9c0cb6d6f Check for GTK3 if GTK2 is not found.
This is required by the GTK-based enhanced debugger gui.
2024-03-24 09:38:12 +01:00
Volker Ruppert
5a129be330 NSIS Makefile fixes. 2024-03-23 17:07:03 +01:00
Volker Ruppert
21428f1abb Fixed some warnings when running autoconf 2.71. 2024-03-23 15:39:25 +01:00
Volker Ruppert
7f5b9e08d7 Update CHANGES 2024-03-23 13:55:39 +01:00
Volker Ruppert
7cd532db9a Removed legacy libltdl code and force using system libltdl instead. 2024-03-23 12:02:56 +01:00
Volker Ruppert
8a81eebedb Don't enable USB debugger automatically if plugin support is enabled.
The current code of the USB debugger doesn't meet the requirements for compiling
with plugins present. It should not access devices directly but use the parameter
tree instead.
Don't include USB debugger resources if not present.
2024-03-23 07:32:50 +01:00
Volker Ruppert
542a3f9b6a MSVC workspaces: Added new USB debugger files to gui.vcxproj.
Renamed USB EHCI and USB UHCI folders in plugin workspace files.
Attempt fix plugin version for compiling with Bochs debugger / USB debugger.
FIXME: USB debugger doesn't link yet.
2024-03-22 20:23:38 +01:00
Volker Ruppert
012860f593 Finished work on the MSVC workspace files.
Fixed IntDir / OutDir settings in remaining project files.
Removed obsolete defines required by ancient FPU emulator.
2024-03-21 18:13:59 +01:00
Volker Ruppert
a9d2e8f419 Some more work on the MSVC workspace files.
Don't generate debug information for release builds (plugin DLLs).
2024-03-20 18:19:40 +01:00
Shwartsman
3fa94f758a PR "check for both UHCI and OHCI when enabling EHCI #291" with configure support 2024-03-19 22:11:49 +02:00
Volker Ruppert
9d9d5b22eb Some work on the MSVC workspace files.
Don't generate debug information for release builds.
Fixed some of the "OutDir" settings.
TODO: review all "OutDir" settings, debug information in plugin DLLs.
2024-03-19 19:32:00 +01:00
Volker Ruppert
27e0ccb500 Added missing references to softfloat3e. 2024-03-18 22:11:48 +01:00
Volker Ruppert
b5070d0d6f Updated MSVC workspace for Bochs with plugin support. 2024-03-18 21:32:42 +01:00
Benjamin David Lunt
4e378cbcf2
check the nps bit before operating on the psm bit (#290)
The PSM bit is only valid if NPS = 0 and a few other minor additions and
syntax fixes
2024-03-18 07:04:31 +02:00
Benjamin David Lunt
e3274339e2
Allow BX_SHARE_PATH to be used in BIOS paths (#288)
This allows the Window's Environment variable BX_SHARE_PATH to be used
in paths within your bochsrc file.

Environment variable:
`BX_SHARE_PATH`
Value:
`D:\some\path`

Before:
`romimage: file=D:/some/path/bios/BIOS-bochs-latest`
After:
`romimage: file=$BXSHARE/bios/BIOS-bochs-latest`

Please note that I don't know why the parameter was initially empty. Was
this to catch a base/default parameter?
If the `lpValueName` parameter is NULL or an empty string, Windows will
return a (possibly non-existent) default value.
With this PR, we specify the actual parameter of `BX_SHARE_PATH`.
2024-03-18 07:03:07 +02:00
Benjamin David Lunt
d94445257e
add spaces and correct alignment to source (#289) 2024-03-18 06:58:49 +02:00
Volker Ruppert
7e9d9c16e8 Adding reference to softfloat3e.lib fixes building Bochs with VS2019.
TODO: Update plugins workspace.
2024-03-17 20:53:16 +01:00
Volker Ruppert
a5a992c792 VGA_MEM_FIX: Removed legacy VGA code and VGA_MEM_FIX definition. 2024-03-17 15:58:27 +01:00
Volker Ruppert
9fbaadd894 Started updating the standard workspace for MSVC.
Updated AVX and FPU project files to make them compile. Added new project file
for the softfloat3e module. With the current version the softfloat3e.lib is created,
but it doesn't link with bochs.exe, so the build fails with more than 100 unresolved
externals. Manually linking on the MSVC command line using the created *.lib and *.obj
files works and bochs.exe is usable. I still haven't found out why linking from
the IDE fails.
TODO: After fixing this issue, updating the plugins workspace should be no problem.
2024-03-17 14:19:03 +01:00
Stanislav Shwartsman
8f7df199b9
convert floatx80_round_to_int to softfloat3e (#287)
Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
2024-03-16 19:08:44 +02:00
Stanislav Shwartsman
9fa35f4596
convert to softfloat3e several floatx80 uses (#278) 2024-03-15 22:53:48 +02:00
Justin Moore
aac6dd5d13
Bump BIOSROMSZ to 4M to accommodate OVMF (#284)
OVMF is 4 megabytes by default, so in order to avoid customizing their
build process we'll want to accommodate a 4M BIOS in Bochs.
2024-03-15 19:26:56 +01:00
Volker Ruppert
a3ff473642 Modified softfloat3e Makefile to fix compüilation with MSVC nmake.
Since GNU make and MSVC nmake need special rules for compiling this module that
causes failure with the other 'make' variant, the configure script needs to
comment out incompatible rules. Using symbols GNU_MAKE_ONLY and NMAKE_ONLY to
enable only one of the rulesets only.
Since one of the MSVC nmake rules uses curly brackets the shortcut script
.conf.win64-vcpp needs to be modified to exclude cpu/softfloat3e/Makefile
from removal of these usually unwanted characters.
2024-03-15 18:55:18 +01:00
Vort
c2891e5ff6
Fix Windows 11 boot, #280 (partial revert of b24bf1d) (#285) 2024-03-15 18:02:07 +02:00
Volker Ruppert
4b0c9a711f Continued work on developer docs. 2024-03-15 14:39:48 +01:00
Benjamin David Lunt
2314cbcfe1
wheel mouse button (#282)
If not in wheel-mouse mode, don't report the wheel button event
2024-03-13 21:14:05 +02:00
Volker Ruppert
7d037af569 Fixed compilation of USB debugger if the win32 gui is not present. 2024-03-13 17:03:21 +01:00
Stephen Kitt
fe7b4b4fcb
Stub the bxInstrument_c class too (#281)
The instrument stub needs this, otherwise

./configure --enable-instrumentation && make

fails because bxInstrument_c isn't declared.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2024-03-13 06:53:35 +02:00
Volker Ruppert
667e885b2e Started updating the documentation after transition to GIT.
- Website repository is now GIT, but still hosted on SF.
- Creating SVN snapshot section is now obsolete.
- Prepared Makefile for compiling outside of the source tree.
2024-03-12 19:11:04 +01:00
Volker Ruppert
57ea1bad99 Fixed compilation outside of the source tree.
To implement this, softfloat3e needs a Makefile created by configure script
to set up the real SOURCE_DIR.
TODO: Fix compilation with MSVC nmake (Makefile line 278 fails).
2024-03-11 21:46:12 +01:00
Vort
4b07de86c7
Fix cross compilation (#279) 2024-03-11 10:09:51 +02:00
Stanislav Shwartsman
5a7224fc9f remove SOFTFLOAT_ROUND_ODD rounding mode which not needed for x86 emu 2024-03-10 20:36:38 +02:00
Vort
f31b115e20
Add static link support for bxhub and bximage (#277) 2024-03-10 17:23:13 +02:00
Stanislav Shwartsman
d350c008e2
add softfloat3e library to Bochs to replace old softfloat2 (to get fp… (#259)
…16 support)

with a lot of my updates, cleanups and extensions for x86 features like
denormal and/or undeflow/overflow handling

---------

Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
2024-03-10 17:10:55 +02:00
Stanislav Shwartsman
b80ddeebf6 fix CHANGES after 2.8 2024-03-10 16:46:27 +02:00
Benjamin David Lunt
557976bee1
Initial start of the USB Debugger (#165)
This is the start of the Experimental USB Debugger (currently for the
Windows platform only).

Currently only supports the UHCI and xHCI controllers. The remaining
function of these two controllers and the two remaining controllers are
in the works and will be added to when time allows.

The User.dbk has been updated with (temporary) html files at
https://www.fysnet.net/bochs/user/index.html showing the process to
invoke and use the USB debugger (Section 5.8).

In its completion, this debugger will allow you to view and modify most
aspects of the specified USB controller. For example, currently you can
view and modify a TRB listed in the xHCI's Command or Event Ring. Other
aspects will be added.

I do not use and am not fluent in the use of `configure`,
`configure.ac`, and associated configuration files. I also don't use the
`gui/Makefile.in` file.

Someone that is more fluent in the way these files work, please add the
necessary items to successfully compile this PR.

---------

Co-authored-by: Shwartsman <stanislav.shwartsman@intel.com>
2024-03-10 13:05:41 +02:00
Volker Ruppert
09778e275d Updated version number after release. 2024-03-10 09:45:03 +01:00
Volker Ruppert
9177c93e4e Preparing Bochs release 2.8. 2024-03-10 07:59:37 +01:00
Volker Ruppert
ead3c2e3f6 Renamed flag VER_SVN to VER_DEV and related changes. 2024-03-09 20:18:25 +01:00
Volker Ruppert
f34df21662 Remove the unwanted *.la files before building the file list.
RPM version >= 4.17 deletes those files so we have to make sure that they are
not in the list.
2024-03-09 17:45:24 +01:00
Volker Ruppert
3fbf474b9d Attempt to fix the libdir issue when compiling with plugins on Ubuntu.
This change may not fix the RPM build failure in release workflow.
2024-03-09 14:11:53 +01:00
Volker Ruppert
1307853e13 VVFAT: Fixed short name genaration in case base name length is > 8. 2024-03-06 17:09:34 +01:00
Volker Ruppert
2990c09fdc Updated LGPL'd VGABIOS to version 0.9a. 2024-03-03 19:51:23 +01:00
Volker Ruppert
a30d446d37 Reverted previous commit - release workflow still fails. 2024-03-02 09:04:05 +01:00
Volker Ruppert
348cb05b38 Temporarily disable plugins support for release build script testing. 2024-03-02 08:52:30 +01:00
Shwartsman
7b42a7848d update make_rpm script for configure.ac 2024-03-01 18:45:17 +02:00
Volker Ruppert
a92cbdd946 Banshee/Voodoo3: Lock buffer swapping while rendering screen.
This should fix issue #264.
2024-02-25 15:53:48 +01:00
Volker Ruppert
62fe299545 Update CHANGES. 2024-02-25 11:24:27 +01:00
Volker Ruppert
be3e664dff Allow setting disabled parameters in the bochsrc / command line stage.
Dependencies should work completely in the config interface stage and coherency
check should be done in device init. This change should make the oder of parameters
in bochsrc / command line less strict (issue #263).
2024-02-25 11:08:11 +01:00
Stanislav Shwartsman
3ff8fd5cd7 merge FCOMPP and FUCOMPP to same method to reduce code duplication 2024-02-20 07:22:58 +02:00
Volker Ruppert
e31e42a4c8 Update CHANGES. 2024-02-19 18:10:28 +01:00
Volker Ruppert
662fb097fe Erase BIOS flash space in case the specified image file is not found.
Disable loading flash data feature for the current Bochs BIOS.
2024-02-19 17:52:52 +01:00
Benjamin David Lunt
2c4fcc7981
Changed = to ==
Changed = to ==
I think this was a simple mistake and since there was no way to test it until now, it didn't show up.
2024-02-19 09:18:16 +02:00
Volker Ruppert
4455da0e1b Perform win32 gui internal palette swapping only in case of a bpp change. 2024-02-18 18:20:49 +01:00
Volker Ruppert
abdbc52f22 Finally enabled the VGA_MEM_FIX code.
The legacy code could be removed after release Bochs 2.8 if there are no issues.
2024-02-18 11:03:31 +01:00
Volker Ruppert
171697da03 Fixed save/restore with debugger enabled. 2024-02-17 09:23:39 +01:00
Volker Ruppert
cc162522bb Fixed compilation with VGA_MEM_FIX not set. 2024-02-17 08:59:00 +01:00
Volker Ruppert
9e6d839caa VGA_MEM_FIX: Force a refresh of the text buffer on mode change and restore. 2024-02-17 08:53:25 +01:00
Volker Ruppert
75d76db967 Cirrus: Added support for 4-bpp VBE modes with original VGABIOS. 2024-02-16 14:23:56 +01:00
Benjamin David Lunt
e4d8ca494f
Update usb_ehci.cc (#271)
No reason to stop executing the Async list simply because the driver
didn't clear the IAA bit in the Status register.

Normally, a driver should clear it, but there is no instruction in the
specification to stop the Async list simply because this bit isn't
cleared.

Debug log is still present to inform the user.

Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-02-15 16:53:29 +01:00
Volker Ruppert
1ff88fdd05 VGA_MEM_FIX: Added text buffer in legacy format to simplify text update.
Using character / attribute pairs expected by the gui text update makes the
update code simpler and faster.
TODO: If possible add a buffer for active text font data.
2024-02-13 17:38:52 +01:00
Shwartsman
7b5fb0b749 AVX-512 VREDUCE* should never raise #Denormal, #Overflow or #Underflow 2024-02-12 21:15:43 -06:00
Volker Ruppert
57d38ffb86 VGA_MEM_FIX: Added memory size mask to fix planar VGA modes. 2024-02-12 22:12:34 +01:00
Volker Ruppert
117f71a185 VGA_MEM_FIX: Some odd/even mode changes for correctness.
Offset must be shifted left by 2 instead of 1.
Even offset writes can go to plane 0 and 2, odd ones to plane 1 and 3.
2024-02-12 16:58:38 +01:00
Volker Ruppert
30c1e74627 VGA_MEM_FIX: Next attempt to fix odd/even mode related issues.
Now using the sequencer 'odd/even disable' switch to determine mode.
2024-02-11 17:11:48 +01:00
Volker Ruppert
549d052e34 VGA_MEM_FIX: Picked a better name for the sequencer odd/even disable switch. 2024-02-11 14:49:12 +01:00
Volker Ruppert
0e5800bf98 VGA_MEM_FIX: Fixed cursor address of the invisible cursor.
Now using the highest address of the default text mode buffer.
2024-02-11 13:40:02 +01:00
Volker Ruppert
39155bd3ae VGA_MEM_FIX: Temporary fix for special memory access mode in modeX.
In odd/even mode fall back to planar mode if "chain odd/even" bit is 0.
2024-02-11 09:37:06 +01:00
Volker Ruppert
945ee597f0 Added currently disabled set of fixes for the VGA memory management.
- Added disabled definition VGA_MEM_FIX in vgacore.h. The VGA core code works as
  usual unless you uncomment the define.
- Added correct implementation of the "chain four" and "odd/even" addressing mode.
  This should fix the Debian / GRUB boot issue (#257) with both Bochs VBE and Cirrus.
- Added some compatibility code to make the gui text update work as usual.
- Tested all VGA modes except 256-color word mode (no test case).
- Some more testing with old DOS games may be required before I enable it by default
  and finally remove the legacy code.
2024-02-10 17:30:24 +01:00
Volker Ruppert
fd68912dc7 Small cleanups in the VGA core code.
The text snapshot buffer is now allocated dynamicly.
2024-02-10 14:00:09 +01:00
Shwartsman
e7ef67f89b bugfix for float64_getmant 2024-02-10 13:27:16 +01:00
Volker Ruppert
4ab88c3d8f Cirrus: The first MB of video memory is always accessible. 2024-02-10 10:36:39 +01:00
Volker Ruppert
5c715aa9a3 Fixed clipping parameters in Banshee/Voodoo3 (issue #236).
Added 'clip_mask' with width depending on model.
Fixed VGA display issue discovered with Voodoo3.
2024-02-09 15:03:32 +01:00
Volker Ruppert
e5ff346368 Some fixes and cleanups after latest changes.
- Fixed Cirrus text mode output.
- VBE now using it's own 'line_offset' value.
- Since font change is now handled in update(), removing gui method set_text_charbyte().
2024-02-09 14:34:01 +01:00
Volker Ruppert
e53cf3b962 VBE/VGA: More accurate implementation of GRUB save/restore support.
Added VGA chain4 mode read/write support from VBE frame buffer.
Handle charmap update in update() using modified 'vga_mem_udated' flag.
Added temporary code for chain four memory addressing.
TODO: VGA memory handling rewrite including odd/even mode support.
2024-02-08 23:05:48 +01:00
Stanislav Shwartsman
c3269722f4 fixed spelling in comment 2024-02-07 00:18:06 +02:00
Volker Ruppert
1221217a7d VBE: Preserve original line offset while in VBE mode. 2024-02-06 21:49:59 +01:00
Volker Ruppert
4e6b4165f5 Added workaround for the save/restore function of the GRUB bootloader.
The VGA core needs an extensive rewrite to support it correctly with
both Bochs VBE and Cirrus.
2024-02-06 20:36:15 +01:00
Stanislav Shwartsman
ad8c21437f fix segfault @ 'step all' command in single-processor config 2024-02-05 22:06:24 +02:00
Benjamin David Lunt
3525a89b7a
Update usb_xhci.cc (#262) : The EDTLA should be updated for OUT going packets too.
The EDTLA should be updated for OUT going packets too.
2024-02-05 07:08:31 +02:00
Benjamin David Lunt
17a7a30c10
Update usb_xhci.cc (#260) : Don't check the size of a non-existent segment in an event ring table.
Don't check the size of a non-existent segment in an event ring table.
2024-02-05 07:08:05 +02:00
Benjamin David Lunt
f1e4e6757e
Update usb_xhci.cc (#255)
Update conditional compilation due to conflicting statements in
different versions of the specs on the `ep_context->ep_state` value
initialization during a `SetAddress` command.
2024-02-04 08:12:04 +02:00
Volker Ruppert
6391cf0093 Fixes for VBE 4-bpp modes support.
Row address must be 32 bit wide and VGA compatible display end is limited to 1023.
TODO: Fix VGA compatible setup for VBE modes in VGABIOS.
2024-02-03 18:02:10 +01:00
Volker Ruppert
cd0feed380 VGA core: Added support for extended 4-bpp modes (tested with Cirrus). 2024-02-03 14:51:12 +01:00
Vort
5474eb6963
Cirrus: Add support for palette modes with pixel frequency > 85 MHz (#254)
It allows to use 1152x864x8 mode with [original
BIOS](https://github.com/bochs-emu/Bochs/files/14130753/cl-gd5446_pci_vga_bios_version_1.31.zip).
2024-02-03 14:12:40 +01:00
Stanislav Shwartsman
37341c8838 fixed massive code duplication 2024-02-02 22:36:56 +02:00
Volker Ruppert
6aec66d210 Cirrus: Fixed tile x/y calculation for double scan and double width. 2024-02-02 20:49:38 +01:00
Volker Ruppert
ca482ab98e Cirrus: Handle double scan and double width at banked memory writes.
TODO: Cursor still looks incorrect with modeset test program.
2024-02-02 19:00:15 +01:00
Stanislav Shwartsman
f3537f282a Legacy form of XRSTOR loads the MXCSR register from memory whenever the
RFBM[1](SSE) or RFBM[2](AVX) is set, regardless of the values of XSTATE_BV[1] and XSTATE_BV[2]
2024-02-02 08:43:36 +02:00
rofl0r
fb8fc563ab
bximage: flush stdout after asking a question (#251)
otherwise the question may not even arrive there, depending on the
implementation-defined behaviour of stdio buffering.
fixes display of questions with musl libc.
2024-02-01 22:54:31 +02:00
Shwartsman
88fb948088 updates to paging code for debugability and code duplication reduction 2024-02-01 15:15:26 +02:00
Shwartsman
3ed8639bfa some style notation to avoid errors and make code cleaner to read 2024-01-30 20:08:42 +02:00
Volker Ruppert
92eb0e12be Cirrus: Added double width support to fix up aspect ratio in double scan mode.
TODO: Hardware cursor code untested - test program doesn't use it.
2024-01-30 18:28:47 +01:00
Song Ziming
9b5c43821e
Init LDR whenever x2APIC mode is enabled (#250)
According to Intel SDM vol3 11.12.10.2 (Deriving Logical x2APIC ID from
the Local x2APIC ID), "The LDR initialization occurs whenever the x2APIC
mode is enabled".
2024-01-30 08:47:22 +02:00
Stanislav Shwartsman
e54048c163 XSAVEC/XSAVEC: don't allow 'compaction' of SSE state
this bug also prevented win10 from booting
2024-01-29 22:11:08 +02:00
Volker Ruppert
347a1bef56 Voodoo3: In double width mode also double hardware cursor width.
Improved mode reporting and fixed possible segfault caused by invalid pitch.
2024-01-29 19:33:29 +01:00
Stanislav Shwartsman
cf40e63b87 XRSTOR: correct 'format' for case compaction is not enabled 2024-01-29 19:40:21 +02:00
Stanislav Shwartsman
7aa8489b1a fixed severe XRSTOR emulation issue, prevented boot of Win10 2024-01-29 18:40:19 +02:00
Stanislav Shwartsman
6554f9b7b6 a little code optimization, no impact on correctness 2024-01-29 15:28:25 +02:00
Stanislav Shwartsman
0cfa33733e correct clear_busy for shadow stack in case of IRET - should use old SSP 2024-01-29 15:08:54 +02:00
Stanislav Shwartsman
b373890b05 fix supervisor shadow stack EPT violation detection 2024-01-28 22:03:57 +02:00
Stanislav Shwartsman
2f0338fe0c fixed bug in MOVDIR64B - source and destination were swapped 2024-01-28 21:38:57 +02:00
Stanislav Shwartsman
41202ebb68 bugfix for supervisor shadow stack and VMX 2024-01-28 20:57:43 +02:00
Volker Ruppert
d4d1fff83b NE2000: Don't check PCI slot config in parser, but then in init code.
TODO (for other devices):
The parser code should not expect that a specific config parameter is
already set. Only the device init code should bring all things together.
2024-01-28 17:50:14 +01:00
Volker Ruppert
14f6753ad8 Voodoo 1/2: Final attempt to implement byte writes correctly.
Simply shift byte to the right position and write 0's elsewhere.
2024-01-28 16:57:17 +01:00
Shwartsman
4de017762a fixed permission check for CET
added SSP save/restore is SMM code
fixed CET_S state in_use calculation
2024-01-28 17:25:21 +02:00
Volker Ruppert
4ee4b89102 Voodoo 1/2: Next attempt to implement byte writes.
New code: read 32-bit, mask out required byte, apply new byte, write 32-bit.
2024-01-28 14:43:58 +01:00
Volker Ruppert
caef53a4a1 Voodoo 1/2: Added support for dword aligned byte writes.
TODO: For unaligned writes the voodoo_w() function needs to be modified.
2024-01-28 11:05:16 +01:00
Volker Ruppert
2c4b9e9457 Don't set up tiles for update if screen parameters are invalid. 2024-01-28 10:31:06 +01:00
Benjamin David Lunt
19fc78d2db
Update usb_xhci.cc (#245)
reset closer to real hardware
2024-01-28 08:42:41 +02:00
finnbrudal
106e7fa03a
Fix XHCI Address Device command (#244)
Was sending the SET_ADDRESS request using the wrong (old) slot context.
2024-01-28 07:22:09 +02:00
Stanislav Shwartsman
58663d3c68 fix bug intoduced in c4689f284c 2024-01-27 23:05:38 +02:00
Volker Ruppert
3ec05e8f05 Voodoo 1/2: Added support for 8 and 16 byte writes (issue #241).
Also added 16-bit read support. Odd data size and address support not done yet.
2024-01-27 18:58:22 +01:00
Stanislav Shwartsman
c4689f284c fix spurious read of potentially non-existing SECONDARY_VMEXIT_CTRLS 2024-01-27 18:38:14 +02:00
Stanislav Shwartsman
b685996081 fixed compilation 2024-01-27 18:30:22 +02:00
Stanislav Shwartsman
ae61538847 create classes for Vmexec controls for robustness 2024-01-27 18:04:00 +02:00
Stanislav Shwartsman
035fb1edaa create class for Pin-Based VMEXEC controls for robustness
create class for Vmentry controls for robustness
create class for Vmexit controls for robustness
2024-01-27 15:14:29 +02:00
Stanislav Shwartsman
38b1bbf4ff Implemented VMX 'Shadow Stack Prematurely Busy' and secondary VMEXIT controls 2024-01-27 13:34:51 +02:00
Stanislav Shwartsman
e14b126198 fixed rounding to float16 (found during AVX512_FP16 development)
used Softfloat3 code as reference
2024-01-26 22:53:39 +02:00
Stanislav Shwartsman
093d4428ec read less bits for mask with DOUBLE precision elements 2024-01-26 20:36:29 +02:00
Shwartsman
0e1c5e35ff added error message for unimplemented access len in bx_voodoo_1_2_c::mem_read_handler 2024-01-26 09:45:00 +02:00
Volker Ruppert
30a61c2a51 Banshee/Voodoo3 fixes in mem_write_linear (issue #231).
- Applied memory mask to start address.
- Consider half mode and double width for redraw setup.
2024-01-25 19:57:28 +01:00
Shwartsman
437ddc96fc Addressing Black screen in Descent II: Destination Quartzon 3dfx OEM with Voodoo #238 2024-01-24 17:04:21 +02:00
Shwartsman
995e8fb6c6 let Bochs debugger switch CPU by simply typing 'cpu N' command insetad of doing 'set $cpu = N' 2024-01-23 23:13:20 +02:00
Shwartsman
164772103a use 'a' as 'all' in debugger 2024-01-23 19:25:56 +02:00
Shwartsman
b5bcbfced0 fix segfault @exit with debugger introduced by previous commit 2024-01-23 16:11:15 +02:00
Shwartsman
fb42896000 better support of SMP in debugger methods 2024-01-23 11:08:05 +02:00
Stanislav Shwartsman
ae0c9df317 compile stand alone disasm tool even if BX_DEBUGGER is configured in 2024-01-22 22:13:28 +02:00
Volker Ruppert
a663b9d1d0 Minor Banshee/Voodoo3 changes.
- Update pens when switching from / to 3D mode.
- Improved BX_ERROR message for unimplemented feature.
2024-01-22 20:23:40 +01:00
Volker Ruppert
75757e9852 Banshee/Voodoo3: Fixed overlay stride. 2024-01-22 16:37:18 +01:00
Stanislav Shwartsman
a2296e5d2a when printing instruction disassembly in debugger add status "(halted)" about halted CPU 2024-01-21 23:00:55 +02:00
Stanislav Shwartsman
c1a65ff7c4 introduce a method to switch dbg_cpu when needed 2024-01-21 22:39:59 +02:00
Shwartsman
0141f2767c fixed compilation for i386 config and with no SVM 2024-01-21 22:03:53 +02:00
Shwartsman
e960e574f4 this annoying message happens always when debugger is closed
change to BX_INFO
2024-01-21 17:44:17 +02:00
Shwartsman
8abfde13d7 complete support of SVM Nested Walk in dbg including 'page' command 2024-01-21 17:44:17 +02:00
Volker Ruppert
ea0b208970 Cirrus: Implemented double scan support for color depth > 8.
TODO: Screen width not adjusted yet (should be done similar to Voodoo3).
2024-01-21 10:09:30 +01:00
Benjamin David Lunt
9820cf934e
Update ohci_core.cc (#232)
On a buffer underrun (Short Packet), we still need to update the CBP

---------

Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-21 06:56:35 +01:00
Benjamin David Lunt
7851bf8ce1
Update hdimage.cc (#233)
Change an ERROR to a PANIC when a .lock file is found.
2024-01-21 06:39:48 +01:00
Volker Ruppert
7ad1fd0088 Update CHANGES. 2024-01-20 23:27:30 +01:00
Volker Ruppert
db0d16ff09 Banshee: Double the screen width in 'half mode' if height > width. 2024-01-20 22:30:47 +01:00
Shwartsman
f014160835 Add Bochs intenal debugger welcome message and improve help command 2024-01-20 21:09:46 +02:00
Volker Ruppert
ab32c8a2bb Update CHANGES and 'vga: update_freq' in docs. 2024-01-20 10:59:34 +01:00
Shwartsman
4eae91f1ca addressing issue Possible Undefined Behavior in NEG_EdR() and NEG_EdM() #227 2024-01-20 08:19:43 +02:00
Shwartsman
35abc682cb Merge fix for "Crash when floppy image file is missing #229" 2024-01-20 07:53:26 +02:00
Shwartsman
d9d07c03ec update CHANGES with critical ADOX fix 2024-01-19 20:35:54 +02:00
Shwartsman
dd9aaa7325 Fixed OF flag for ADOX instruction
The OF flag defintion is different from OF of other instructions
Instead it is defined as:
The instruction sets the OF flag with the **carry** generated by the unsigned addition of the operands.
2024-01-19 20:30:47 +02:00
Volker Ruppert
6e48bc78fc VGA core: Implemented a more accurate vertical timing.
Now using one timer with two alternating periods. A modification of the timer code
wasn't necessary. The update mode vsync is not yet affected by this change.
2024-01-19 18:40:13 +01:00
Volker Ruppert
4112a10fbd Update changes 2024-01-18 23:42:45 +01:00
Volker Ruppert
b382358e80 Banshee: Attempt to fix redraw in case bitblt is used in 3D mode. 2024-01-18 20:32:29 +01:00
Volker Ruppert
6770a355ae Cirrus: Fixed redraw issue caused by misaligned bitblt region.
If x0 + width exceeds the screen width, mark tile(s) on the left side of the screen, too.
This should finally fix issue #221.
2024-01-17 22:12:30 +01:00
Volker Ruppert
c66d6f1a0e Cirrus: Fixed possible segfault caused by missing address wrap.
- Added address wrap in cpu-to-video transparent bitblt.
- Added BX_DEBUG for address wrap detection and fixed redraw parameters.
TODO: Check other methods for possible segfaults.
2024-01-17 19:23:08 +01:00
Shwartsman
9d5bfa9064 UINTR: uitt_addr[3:0] are reserved and must be cleared before reading UITT entry 2024-01-17 14:52:49 +02:00
Stanislav Shwartsman
0f677ccfc6 change comments 2024-01-16 21:23:45 +02:00
Stanislav Shwartsman
c5436a4891 update CHANGES 2024-01-16 20:58:39 +02:00
finnbrudal
3455581a71
Cirrus: BLT System-to-screen Dword Pointer (GR2F[6:5]) implemented (#223)
Bits 5-6 of the left side clipping register have been implemented.

Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-16 19:10:06 +01:00
Stanislav Shwartsman
f8d1050a3f
Implemented SVM VM_CR_MSR and INIT redirection feature (#220)
Save and restore SVM MSRs
2024-01-16 07:42:28 +02:00
Vort
ba7c8ed57a
Cancel topmost mode after leaving fullscreen mode (#224)
`HWND_TOPMOST` should be cancelled with `HWND_NOTOPMOST` when it is not
needed anymore.

Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-16 00:03:32 +01:00
Volker Ruppert
8528604888 Cirrus: Corrected redraw fix for backward BitBlt. 2024-01-15 23:28:23 +01:00
Volker Ruppert
bcfe5e129f Cirrus: Fixed redraw values for backward BitBlt. 2024-01-15 17:11:25 +01:00
Shwartsman
d965a16a7d cosmetic updates for SVM code 2024-01-14 20:30:04 +02:00
Volker Ruppert
77fffc1336 SDL: Cleaned up fullscreen toggle functions.
FIXME: Window height sometimes not restored correctly (observed on Linux / X11).
2024-01-14 17:49:44 +01:00
Volker Ruppert
103b4fa8eb SDL2: Save / restore window position when using fullscreen toggle.
FIXME: Display updates can fail after toggle (observed on Linux / X11).
2024-01-14 17:00:05 +01:00
Shwartsman
e4deec2aca cleanups and code updates before thinking of INIT redirection implementation for AMD SVM 2024-01-14 12:55:43 +02:00
Shwartsman
61a35063c5 remove all ifdefs from features.h
I'd like features bitmasks to be independent on Bochs compilation flags
so let all flags to be 'exists' even if corresponding feature is not compiled in.
2024-01-14 12:51:41 +02:00
Volker Ruppert
9fdb898dfe SDL / SDL2: change fullscreen toggle to key combination ALT+ENTER.
TODO: Fix some issues related to this feature.
2024-01-14 11:41:01 +01:00
Volker Ruppert
04ed1e8fd2 Some more VGA timing handling chages.
- Changing status of 'update_mode_vsync' is no longer supported at runtime.
  If disabled, changing the value is only valid between 1 and 75.
- Modify vtotal_usec if frequency to high before activating vsync_timer.
2024-01-14 10:13:39 +01:00
Volker Ruppert
2585b6ff68 SDL2: Don't show dialog box if Bochs is killed with SIGTERM. 2024-01-14 07:01:31 +01:00