Commit Graph

13684 Commits

Author SHA1 Message Date
Volker Ruppert
07047ee279 Win32 gui: Fixed key release if both shift keys are pressed. 2024-11-17 11:59:39 +01:00
Stanislav Shwartsman
2f9903c8fe On configurations with no FPU CR0.ET (CR0[4]) should be always clear to indicate no 387 FPU is present 2024-11-16 22:11:17 +02:00
Stanislav Shwartsman
40489da225 add bxdiasm into .gitignore 2024-11-16 19:07:53 +02:00
Stanislav Shwartsman
305539aae6 added comments to cpuid and msr defs 2024-11-16 19:07:53 +02:00
Volker Ruppert
abe3a6fba3 Voodoo1: Fixed deadlock after restore with Voodoo output on.
- Added missing FBI FIFO enabled state in save/restore list.
- Call recompute_video_memory() in after_restore_state() to make FIFO work.
- Small cleanup.
2024-11-16 09:15:14 +01:00
Volker Ruppert
35e93508ac Banshee/Voodoo3 BitBlt: Fixed negative srcXY and dstXY values. 2024-11-15 17:11:27 +01:00
Volker Ruppert
637b9d4c94 Banshee/Voodoo3: Fixes and additions for the desktop / overlay mode.
- Added save / restore support for overlay parameters.
- Attempt to fix cursor background in fullscreen 3d mode.
2024-11-14 19:53:25 +01:00
Stanislav Shwartsman
241a3900bb add APX CPUID and XCR0 flag to enums in header files 2024-11-14 20:15:06 +02:00
Volker Ruppert
16959231ed Banshee/Voodoo3: Fixes and additions for the desktop / overlay mode.
- Added 24 / 32 bpp chroma key check support.
- YUV-to-RGB conversion fixes by Vort.
2024-11-14 17:41:37 +01:00
Stanislav Shwartsman
33eb1733e5
Initial support for AVX10.2 implementation (#382)
Includes:
New CPU feature flag: AVX10.2
AVX 10.2 EVEX.U field for 256-bit SAE/RC support
AMX_AVX512 ISA extension
AVX 10.2 new instructions
   - BF arithmetic instructions
   - New scalar compare instructions updating EFLAGS
   - AVX10.2 VNNI instructions
   - AVX10.2 MINMAX instructions
   - AVX10.2 saturating convert with truncation instructions
   - AVX10.2 zero-extending partial vector copy instructions
   - AVX10.2 saturating byte convert instructions
   - AVX10.2 BF8/HF8 convert instructions and BF/HF8 support
   - Misc

a lot of rework in softfloat3e code to support above and optimize the
code
2024-11-14 14:51:31 +02:00
Volker Ruppert
ae7b67242f Banshee/Voodoo3: Some changes in the chroma key code.
- Bugfix: Show video overlay if the chroma key check is disabled.
- Removed unused code for 8 bpp.
- TODO: Added 24 / 32 bpp chroma key support.
2024-11-13 23:10:11 +01:00
Volker Ruppert
69f7eadc73 Banshee/Voodoo3: Added 16 bpp chroma key code for desktop / overlay mode.
24 / 32 bpp support will be added if this code work correctly.
2024-11-13 17:06:21 +01:00
Volker Ruppert
f101007952 Banshee/Voodoo3: Fixed possible segfault caused by previous commit. 2024-11-12 21:35:36 +01:00
Volker Ruppert
c0d9481b91 Banshee/Voodoo3: Added YUV format support for screen-to-screen BitBlt. 2024-11-12 19:02:59 +01:00
Volker Ruppert
b100d354e7 Banshee/Voodoo3: Some work on the YUV format support.
- Added YUV planar space write support.
- Added YUV format support for screen-to-screen stretching BitBlt function.
TODO: YUV format overlay still has issues.
2024-11-12 16:43:50 +01:00
Volker Ruppert
c41a2ae00d Banshee/Voodoo3: Some changes for the desktop / overlay mode.
- Added color support for overlay format 5 (YUYV / untested).
- Fixed the horizontal / vertical scaling register write code.
2024-11-10 15:51:03 +01:00
Volker Ruppert
f243d9026c Update CHANGES. 2024-11-10 10:04:58 +01:00
Volker Ruppert
48e772b9d0 Banshee/Voodoo3: Added color support for overlay format 6 (UYVY).
TODO: check dimensions of the overlay window.
2024-11-10 09:51:58 +01:00
Volker Ruppert
a72b336274 Banshee/Voodoo3: Some improvements for the desktop / overlay mode.
- 24 / 32 bpp desktop support
- Overlay scaling support
- Force a display redraw after overlay parameter change.
2024-11-09 17:35:40 +01:00
Stanislav Shwartsman
c0864aba13 use faster version of vector register write for SM3 code 2024-11-09 17:18:01 +02:00
Stanislav Shwartsman
af738622c0 fix decoding attributes for several opcodes 2024-11-09 16:52:15 +02:00
Stanislav Shwartsman
e68b7c36ed rename ATTR_VEX_L0 to ATTR_VL128 in fetchdecode_evex.h 2024-11-09 16:41:49 +02:00
Volker Ruppert
29b63b2cb3 Banshee/Voodoo3: Some optimizations for the desktop / overlay mode.
- Redraw the overlay region only instead of full screen.
- Set up overlay parameters at register writes.
TODO list:
- 24 / 32 bpp desktop support
- Overlay color conversion YUV -> RGB
- Overlay scaling support
2024-11-09 13:47:51 +01:00
Stanislav Shwartsman
ebf7b92243 fix disasm after EVEX opcode handlers rename 2024-11-09 12:39:28 +02:00
Stanislav Shwartsman
b232272a97 simplify AMX code for checking tile consistency to avoid code duplications 2024-11-09 12:31:19 +02:00
Volker Ruppert
365c45bd80 Rewrite of the Voodoo update code.
- Moved Banshee/Voodoo3 desktop update code to banshee.cc.
- Added desktop / overlay mode testing code for the 16 bpp case.
- Added basic UYUV format decoding for black and white output.
- Only the fullscreen overlay mode is handled in voodoo.cc.
- Reduce BX_ERROR messages when writing to vidProcCfg register.
2024-11-08 21:48:10 +01:00
Stanislav Shwartsman
e9cdc92542 allow changing of AC and ID bits in EFLAGS only if 486 or newer CPU model 2024-11-08 01:02:43 +02:00
Stanislav Shwartsman
42c985ec09 allow updating VIP and VIF in EFLAGS only if VME features is enabled 2024-11-08 00:58:24 +02:00
Stanislav Shwartsman
f30cdc367a Added i486DX4 CPUID model which could be enabled even if compiled with CPU_LEVEL=4 only 2024-11-06 15:51:17 +02:00
Stanislav Shwartsman
890cc3acdf added one more rule CPUID sanity checks 2024-11-06 07:23:29 +02:00
Stanislav Shwartsman
ca8daea663 move BRAND STRING parameter from CPUID to CPU option
CPUID option will be removed soon
2024-11-06 07:16:37 +02:00
Stanislav Shwartsman
6409fd68de added more CPUID sanity checks on the way to generic_cpuid removal 2024-11-06 00:36:31 +02:00
Stanislav Shwartsman
605840b6f2 rename macro for better spelling 2024-11-06 00:01:17 +02:00
Stanislav Shwartsman
adc373859c move some AVX512 functions definitions to avx_cvt.cc to avoid code duplication 2024-11-05 23:46:54 +02:00
Stanislav Shwartsman
4648bdfc05 use macroses to implement AVX convert functions
helps to reduce code duplication
2024-11-05 23:42:05 +02:00
Stanislav Shwartsman
9114302129 fix "ADD_FEATURES" implementation 2024-11-05 21:14:40 +02:00
Vort
5daba7ed43
Use more precise timestamps for slowdown_timer (#377)
Should fix #228.

Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-11-05 09:19:58 +01:00
Jonas Termansen
905293b6f2
Fix printf format issues. (#379)
These issues appear when -Werror=format on 32-bit platforms depending on
the exact definitions of uint64_t and size_t.

It doesn't appear that bochs uses %zu for size_t -- since you support
Windows platforms, unclear if that would work for you. If so, that's
definitely correct rather than the unsigned long cast.
2024-11-05 06:29:45 +02:00
Jonas Termansen
3932aeac12
Get DESTDIR from the environment and add distclean target. (#378)
autoconf-based packages conventionally respect the DESTDIR environment
variable rather needing to explicitly override it.

Likewise the distclean target is conventionally named distclean rather
than dist-clean. This change adds a top-level alias to be compatible.

These changes are needed to build bochs on my infrastructure without
having to special case bochs or locally patch it.
2024-11-04 22:35:07 +02:00
Volker Ruppert
5767dd64ab Banshee/Voodoo3: Report some more unsupported features.
The most important unimplemented feature is the combined desktop / overlay
display mode as shown in issue #369.
2024-11-04 16:30:25 +01:00
Stanislav Shwartsman
0c33c6153e implement ADD_FEATURES similar to EXCLUDE_FEATURES
it allows to add any feature to selected pre-defined CPUID model
2024-11-03 23:01:00 +02:00
Stanislav Shwartsman
35001a23ae small coding style update 2024-11-03 22:42:19 +02:00
Volker Ruppert
f5717a9340 Added some documentation for the VBE memory size option. 2024-11-03 21:36:23 +01:00
Volker Ruppert
c511f3f270 Added VBE memory size option (requires latest VGABIOS).
Setting VBE memory size to 4, 8, 16 and 32 MB is now possible. Since a memory
size change can also change the number of available modes and the value for
"number of image pages" in the mode info it is required to use the latest
VGABIOS binary.
Related changes:
- Make sure the VBE entry appears at index 1 of VGA extension option list.
- Removed all memory size constants and use BX_VGA_THIS s.memsize instead.

TODO: Remove the static mode info table and create it dynamicly similar to
      Banshee and Cirrus.
2024-11-03 19:44:55 +01:00
Volker Ruppert
8562c955bf Updated LGPL'd VGABIOS from GitHub repository.
This change is required for implementing VBE memory size option.
New official release of the LGPL'd VGABIOS coming soon.
2024-11-03 19:11:49 +01:00
Stanislav Shwartsman
c09656db29 according to SDM for VSCALEF* instructions, denormal is not reported for Src2 2024-11-01 18:42:48 +02:00
Stanislav Shwartsman
b1ea77be65 update comment for min/max functions in softfloat3e 2024-11-01 15:59:25 +02:00
Volker Ruppert
87eeb9dcfa Cirrus: In text mode always use the standard VGA update code. 2024-10-31 18:52:09 +01:00
Stanislav Shwartsman
47b05e55e1 revert lock handling change
after checking agains Intel reference decoder (Xed) it shown few mismatches.
The mismatches are not functionally important - some very long instructions with lock prefix would cause #UD (due to badly placed lock prefix) insetad of #GP due to excessive opcode length
Seems like Xed evaluates entire instruction to the end and only then converts it to #UD due to lock prefix
2024-10-30 06:18:46 +02:00
Volker Ruppert
2ddb701433 Cirrus: Fixed lags caused by incorrect redraw value for backward BitBlt. 2024-10-29 22:00:36 +01:00