aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaroslav Hensl <jara@hensl.cz>2023-07-09 14:25:04 +0200
committerJaroslav Hensl <jara@hensl.cz>2023-07-09 14:25:04 +0200
commit47b0c297d5719a9a3e72c4199f99ba6d0c793b68 (patch)
tree1305c1b3c11569c9b66ee69154bcf39074ec513c
parent5c960bb64ec38204536dc3fb52a347d229a6768b (diff)
downloadvmdisp9x-47b0c297d5719a9a3e72c4199f99ba6d0c793b68.tar.gz
API level and README updatev1.2023.0.10
-rw-r--r--.gitignore1
-rw-r--r--README.md14
-rw-r--r--makefile2
-rw-r--r--version.h2
4 files changed, 15 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index 7ae0c2a..ec7e88b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,4 +13,5 @@
*.exe
*.bat
*.bak
+*.backup
boxv9x.img
diff --git a/README.md b/README.md
index 3c0427c..cd4405a 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,8 @@ Supported and tested virtualization software are:
- VirtualBox 6.1 (2D, hardware OpenGL 2.1 through DX9 or OpenGL)
- VirtualBox 7.0 (2D, hardware OpenGL 2.1 through DX9 or OpenGL)
- VMWare Player 16 (2D, software 3D)
-- ~~VMWare Player 17 (2D, software 3D)~~
+- VMWare Workstation 17 (2D, hardware OpenGL 2.1)
+- QEMU 7.x, 8.0 (2D, software 3D)
2D driver is very generic and probably works with other Virtualization software as well, 3D part required my Mesa port = https://github.com/JHRobotics/mesa9x. See its documentation for more info.
@@ -23,6 +24,9 @@ Driver is based on [Michal Necasek's VirtualBox driver](http://www.os2museum.com
- added 32bit mini-VDD driver stub (required for future development to better support for 16-bit applications)
- added access to VMWare/VBox SVGA registers and FIFO to support real 3D acceleration from user space driver
+QEMU support (`-vga std`) is from [Philip Kelley driver modification](https://github.com/phkelley/boxv9x)
+
+
## OpenGL ICD support
OpenGL is much more driver independent than DirectX, if fact, there is only 1 (ONE by words) function that needs to be served by driver, 0x1101. More on https://github.com/JHRobotics/mesa9x
@@ -38,9 +42,14 @@ There no DDI support in this driver, but here is Wine project (and with set call
Of course, there is alternative for DX8 and DX9 called Swiftshader 2.0
+## QEMU
+QEMU is supported since **v1.2023.0.10**. Supported adapters are `-vga std` which using modified VBE driver (`qemumini.drv`) and `-vga vmware` where VMware driver now works but is limited to 32 bpp colors only. I plan to support *VirGL* in future, but currently no 3D acceleration isn't available in QEMU.
+
## Technical
`*.drv` = 16bit driver runs in 16-bit protected mode in RING 3 (!) but with access to I/O instructions
+
`*.vxd` = 32bit driver runs in 32-bit protected mode in RING 0
+
`*.dll` = 32bit user library runs in 32-bit protected mode in RING 3
## Security
@@ -56,7 +65,8 @@ Edit `makefile` to enable addition logging and you can read original [readdev.tx
## Todo
- Complete recomended mini-VDD function in [minivdd.c](minivdd.c), stubs here and cites from original MSDN are in comments.
- Complete GPU10 functions (with synchronization with Mesa)
-- DDI?
+- VirGL
+- DDI
## External links
http://www.os2museum.com/wp/windows-9x-video-minidriver-hd/
diff --git a/makefile b/makefile
index 32591bb..666a793 100644
--- a/makefile
+++ b/makefile
@@ -8,7 +8,7 @@ OBJS = dibthunk.obj dibcall.obj enable.obj init.obj palette.obj &
INCS = -I$(%WATCOM)\h\win -Iddk -Ivmware
-VER_BUILD = 9
+VER_BUILD = 10
FLAGS = -DDRV_VER_BUILD=$(VER_BUILD) -DCAP_R5G6B5_ALWAYS_WRONG
diff --git a/version.h b/version.h
index a0d77b1..270964f 100644
--- a/version.h
+++ b/version.h
@@ -5,7 +5,7 @@
#define DRV_STR(x) DRV_STR_(x)
/* DRV, VXD and DLL have to have the same */
-#define DRV_API_LEVEL 20230628UL
+#define DRV_API_LEVEL 20230707UL
/* on binaries equals 1 and for INF is 1 = separate driver, 2 = softgpu pack */
#define DRV_VER_MAJOR 1