Commit Graph

12385 Commits

Author SHA1 Message Date
Volker Ruppert
f845457362 Implemented usage of the color lookup table (CLUT) for gamma correction during
video refresh in 16 bpp modes. The Banshee also uses this feature in 16 bpp
desktop mode in addition to 3D modes. The code for the pen calculation comes
from the original Voodoo patch for DOSBox. Since it was unused there, I had
disabled it when porting to Bochs.
2020-09-23 14:24:17 +00:00
Volker Ruppert
3aba63304a Added BX_INFO for unimplemented trilinear textures and small code cleanup. 2020-09-18 19:29:47 +00:00
Volker Ruppert
439152d2e4 Implementing 64 bit read access to VRAM fixes background pattern issues in XP. 2020-09-18 15:24:12 +00:00
Volker Ruppert
fa36ec0e87 Fixed i/o access map and changed some messages to BX_DEBUG. 2020-09-18 09:35:52 +00:00
Volker Ruppert
052db63202 Some work on the Voodoo Banshee emulation.
- Fixed serious issues in 16 bpp mode of XP guest (clipped y value).
- Added BX_ERROR messages for unsupported features.
- Added / updated comments.
- TODO #1: Background pattern issues in XP guest still remain in all modes.
- TODO #2: Some small issues in Win9x guests caused by monochrome host blts.
2020-09-17 20:26:52 +00:00
Volker Ruppert
9d2d3cd759 Some changes in the Voodoo code for better performance in 3D mode.
- Now using semaphores instead of events in the Voodoo 3D code.
- Handle swapbuffer command flag "swap in sync with vertical retrace".
2020-09-15 18:55:03 +00:00
Volker Ruppert
07e30e4f83 Some work on the Bochs multithreading code.
- Removed SDL specific code to reduce dependencies. SDL works okay with
  pthreads or win32 implementations.
- Prepared semaphore support for the use in the Voodoo code (thanks to Luigi B.).
2020-09-14 18:43:45 +00:00
Volker Ruppert
6f323dd9fd Some changes for the Banshee emulation.
- Polygon fill: Check if pixels are within clip window.
- Polygon fill: Added error message for unimplemented pattern ROPs.
- Some cleanups in the code for pattern ROPs with transparency.
2020-09-14 18:06:56 +00:00
Volker Ruppert
8b41cc3ff7 Fixed graphics snapshot in Banshee 3D mode. 2020-09-13 09:12:43 +00:00
Volker Ruppert
2429bb7891 Banshee: Fixed video memory offset calculation for tiled LFB space writes. 2020-09-12 12:24:46 +00:00
Volker Ruppert
dcebc1185c Setting up memory for TMU #1 fixes segfault Voodoo3 DirectX test. 2020-09-11 20:23:50 +00:00
Volker Ruppert
d7d3d27f57 Some work on the Voodoo Banshee emulation.
- Implemented 2D command "Polygon Fill".
- Changed some log messages to BX_DEBUG.
2020-09-11 07:08:47 +00:00
Volker Ruppert
42738bf8c9 Some work on the "polygon fill" code (drawing upper left vertex for now). 2020-09-09 08:12:07 +00:00
Volker Ruppert
3183103896 Some small Voodoo changes.
- Voodoo 1/2: fixed behaviour when resetting with Voodoo output on.
- Banshee / Voodoo3: locking render_mutex not necessary when writing i/o regs.
2020-09-06 16:52:18 +00:00
Volker Ruppert
bdb7954732 Some small changes for the vnet server support.
- bxhub: initialize DHCP "net" IP address.
- DHCP: increase lease time to 24 hours.
- DHCP: simplified broadcast IP address handling.
2020-09-05 08:39:25 +00:00
Volker Ruppert
b76e10a600 Added basic support for the debugger command 'info device "voodoo"'
(Banshee/Voodoo3 only).
2020-09-03 18:17:36 +00:00
Volker Ruppert
3f13ea21ca Disable the gui debugger if GTK+ is required but not found. 2020-09-03 15:19:37 +00:00
Volker Ruppert
a16a4a0886 Some improvements for the vnet config file support.
- Added options "net" for the IP address space and "ftp" for the FTP server.
- Added some sanity checks for the IP address configuration.
- Added sample config file.
2020-09-03 14:23:06 +00:00
Volker Ruppert
8bbcc7c65e Save / restore: renamed register methods of device cores (fixes warnings in
FreeBSD gcc 9.3).
2020-09-03 06:45:39 +00:00
Volker Ruppert
748b6a1279 Fixed gcc 9.3 warnings in case C++17 support is enabled. 2020-09-02 08:35:44 +00:00
Volker Ruppert
600228148d Fixed some gcc 9.3 warnings. 2020-09-01 20:13:56 +00:00
Volker Ruppert
77f377a36f Fixed compilation in the MSVC plugins case. 2020-08-30 08:34:57 +00:00
Volker Ruppert
fbc8921b0a Some changes on the "vnet" networking module.
- Added new config file options "host", "dns" and "dhcpstart" (similar to slirp).
- modified bx_vnet_pktmover_c class to be compatible with other modules.
- On TFTP RRQ check file presence directly (fixes iPXE boot).
2020-08-29 17:45:42 +00:00
Volker Ruppert
a96065314c Started implementing config file support for the 'vnet' module similar to the
'slirp' one. File name can be specified with the "script" parameter. Currently
supported parameters: bootfile, hostname and pktlog.
2020-08-25 19:04:05 +00:00
Volker Ruppert
32e4eecd8e Fixed compilation with win32 gui enabled. 2020-08-24 15:31:14 +00:00
Volker Ruppert
b558f19338 Prepared vnet server for setting up client hostname from config. 2020-08-24 11:22:37 +00:00
Volker Ruppert
0e72952798 Fixed hostname reporting in DHCP reply. 2020-08-23 10:54:16 +00:00
Volker Ruppert
9cbe03f7f2 Pressing the "m" button in gui command mode writes a marker to log file.
Removed now obsolete patch.
2020-08-21 19:12:37 +00:00
Volker Ruppert
eaf4beb474 Moving include statements of Bochs internal headers makes gui dependencies
created on Linux work correctly work on Windows. Fixed a warning on MSVC.
2020-08-21 15:18:44 +00:00
Volker Ruppert
ec9bae94c7 Some small changes for Banshee/Voodoo3 BitBlt.
- Added stub for host-to-screen stretch blt.
- Improved stub for "polygon fill" command.
2020-08-20 09:20:23 +00:00
Volker Ruppert
5e6d0b7545 Some small changes for Banshee/Voodoo3.
- Added support for host-to-screen pattern blts with color source.
- Added stub for "polygon fill".
2020-08-16 20:43:49 +00:00
Volker Ruppert
8d607c4886 Some small changes for Banshee/Voodoo3.
- Fixed start address for the gui screen update in 3D overlay mode.
- Small optimization for drawing transparent monochrome bitmaps.
- In the restore case start the fifo thread in after_restore_state().
- Report unimplemented colorkey feature (test case missing).
- TODO: issues in some Windows guests still not fixed.
2020-08-16 13:37:50 +00:00
Volker Ruppert
843e7ea557 Some fixes for Banshee / Voodoo3.
- Save/restore additions for 2D desktop mode.
- Fixed pitch in 3D overlay mode for hardware cursor.
- TODO list:
  - Minor issues in explorer navigation bar of Win98SE.
  - Ugly background pattern under software cursor and XP start menu.
  - Segfault after switching to 3D mode at XP Direct3D test (Voodoo3 only).
  - Serious display issues in 16 bpp modes of XP guest (Voodoo3 only).
2020-08-14 16:22:59 +00:00
Volker Ruppert
28de72b0ea Added support for setting up the network bootfile in the bxhub utility.
TODO: Implement configurable bootfile in the vnet module.
2020-08-09 17:24:08 +00:00
Volker Ruppert
52d52029dd Fixes in slirp and vnet networking module to make iPXE booting.
- Moved server ID and lease time options to the top of the DHCP reply.
- Increase TFTP buffer size as expected by iPXE.
- TODO: The vnet module still has boot file name hardcoded.
2020-08-08 19:23:35 +00:00
Volker Ruppert
5de465b5b1 Fixed some gcc 9.3 warnings. 2020-08-06 20:21:14 +00:00
Volker Ruppert
bf1d96e7e0 Using the correct variable type fixes Cirrus pattern copy issues introduced with
the segfault fix.
2020-08-03 18:25:10 +00:00
Volker Ruppert
f545071b4d Added support for modifier keys in gui command mode (shift, control, alt, caps lock).
- Enter command mode with F7 key only, but no modifier pressed.
- Pressing / releasing modifier key only doesn't leave command mode.
- Changed some headerbar button access keys using modifiers (e.g. shift + c
  calls config button handler). See user doc for all supported keys.
2020-07-30 20:04:31 +00:00
Volker Ruppert
08d8782810 Fixed PCI ROM init in case VGA adapter is ISA. 2020-07-26 12:05:21 +00:00
Volker Ruppert
83d4f73885 Fixed PCI ROM init in case VGA adapter is ISA. 2020-07-26 12:04:14 +00:00
Volker Ruppert
b00873c909 Fixed parameter cleanup after adding "multiple NICs" support. 2020-07-23 21:35:27 +00:00
Stanislav Shwartsman
267340ba73 add missing ; - did someone ever tried to compiled #ifdef ANDROID? 2020-07-19 17:23:29 +00:00
Volker Ruppert
c28a07b5f1 Some gui command mode changes.
- win32: fixed mode after fullscreen toggle
- call floppy button handlers using 'a' and 'b' keys
2020-07-18 13:36:21 +00:00
Volker Ruppert
548f87b4e5 Added "command mode" support to the win32 gui, including fullscreen toggle
support.
2020-07-17 16:12:21 +00:00
Volker Ruppert
87c4b701fc Added "command mode" support to the legacy SDL gui, including fullscreen
toggle support. Updated related documentation sections.
2020-07-16 15:22:45 +00:00
Volker Ruppert
413388dfa3 Added support for calling headerbar button handlers or perform other actions
with keypress combination. This feature is currently supported by the x and
sdl2 guis only and it can be activated with the "cmdmode" (command mode)
display library option. If enabled, pressing the F7 key enters this mode (shown
in the leftmost statusbar item) and the next keypress (except F7) is not sent
to the emmulated keyboard. If the key is supported, the associated action is
performed. Both x and sdl2 support calling the handlers of 8 headerbar buttons.
The sdl2 gui additionaly supports toggling fullscreen / windowed mode.

Supported keys:
c - Press the Copy button
e - Press the Config button
f - Toggle fullscreen mode (sdl2 only)
n - Press the Snapshot button
o - Press the Power button
p - Press the Paste button
r - Press the Reset button
s - Press the Suspend button
u - Press the User button
F7 - Send F7 keypress to emulation

TODO: add support for other guis.
2020-07-15 16:26:46 +00:00
Volker Ruppert
a28257429f Fixed random segfaults and deadlocks caused by the wx status bar handling.
Moved status bar update to the gui thread and added a new event type called
BX_ASYNC_EVT_STATUSBAR to invoke it. Changed size and style of the status bar
items.
2020-07-10 08:13:17 +00:00
Volker Ruppert
650d8d919a Enable the new speaker volume control for the lowlevel sound support only. 2020-07-08 21:31:49 +00:00
Volker Ruppert
b66f7fb0cf Updated both MSVC (VS2013Ex) workspace files for current SVN. 2020-07-04 11:52:15 +00:00
Volker Ruppert
04330cb693 Fix for clients not supporting 'rfbEncodingNewFBSize'. 2020-06-30 18:36:57 +00:00