Skip to content

Commit b41c541

Browse files
committed
new release
1 parent 9b31a6d commit b41c541

File tree

13 files changed

+166
-49
lines changed

13 files changed

+166
-49
lines changed

README.md

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Not all renderers supporting all application/games, performance expectation is i
5454
| llvmlipe (128 bits) | SSE ||||||| 4.5 ||||| 10-15 |
5555
| llvmlipe (256 bits) | SSE, AVX ||||||| 4.5 ||||| 12-20 |
5656
| SVGA3D | SVGA-II (gen9) ||||||| 2.1 ||||| 30-100 |
57-
| SVGA3D | SVGA-II (gen10)||||||| 4.1 ||||| 30-80 |
57+
| SVGA3D | SVGA-II (gen10)||||||| 3.3-4.3 ||||| 30-80 |
5858
| qemu-3dfx | [qemu-3dfx](https://github.com/kjliew/qemu-3dfx) ||||||| native ||| ✔ * | ✔ * | native/2 * |
5959

6060
(*) Note for qemu-3dfx: performance depends on CPU emulation - you can reach about 1/2 of native GPU performance when using KVM acceleration on x86-64 host, about 1/5 when using Hyper-V, and about from 1/100 when is using accelerated emulation and about 1/1000 when using full emulation. DOS Glide and *native* Glide wrapper isn't part of SoftGPU. You have to compile it from source or you can [donate qemu-3dfx author](https://github.com/kjliew/qemu-3dfx#donation).
@@ -68,10 +68,26 @@ Hypervisor translation to real HW GPU:
6868
| softpipe | framebuffer | all |
6969
| llvmlipe | framebuffer | all |
7070
| SVGA3D (gen 9) | DX9/OpenGL 2.1 | VirtualBox 6+7, VMware Workstation |
71-
| SVGA3D (gen 10) | DX11/Vulkan | VirtualBox 7 |
71+
| SVGA3D (gen 10) | DX11/Vulkan | VirtualBox 7, VMware Workstation |
7272
| qemu-3dfx | native OpenGL | QEMU with qemu-3dfx patch|
7373

7474

75+
VMware Virtual Machine HW compatibility:
76+
77+
| Level | GPU generation | OpenGL version | HW 3D in SoftGPU |
78+
| :------- |:-------------: | :------------- | :--------------- |
79+
| 17.x | vGPU10 | 4.1, 4,3 ||
80+
| 16.x | vGPU10 | 4.1 ||
81+
| ESXi 7.0 | vGPU10 | 3.3 ||
82+
| 15.x | vGPU10 | 3.3 ||
83+
| 14.x | vGPU10 | 3.3 ||
84+
| ESXi 6.5 | vGPU10 | 3.3 ||
85+
| 12.x | vGPU10 | 3.3 ||
86+
| 11.x | vGPU10 | - ||
87+
| 10.x | vGPU9 | 2.1 ||
88+
| 9.x | vGPU9 | 2.1 ||
89+
90+
7591
## Download
7692
ISO image or ZIP package can be downloaded on release page: https://github.com/JHRobotics/softgpu/releases/
7793

@@ -84,8 +100,10 @@ General instruction for most machines:
84100
3) [optional] install **PATCHMEM by rloew** and increase VM memory (1024 MB is usually enough)
85101
4) [optional] install audio drivers ([the most common drivers are below](#extra-drivers))[^1]
86102
5) Run setup with `softgpu.exe`
87-
6) [optional] Install additional drivers, for example USB (if you added USB controller)
88-
7) Have fun!
103+
6) Select *Hypervisor preset* to match your VM software
104+
7) Press *Install!*
105+
8) [optional] Install additional drivers, for example USB (if you added USB controller)
106+
9) Have fun!
89107

90108
[^1]: Do this before install/update DirectX redistributable, because audio drivers usually overwrite DX files with outdated versions.
91109

@@ -188,11 +206,11 @@ Here are some brief steps for individual virtualisation software:
188206
10) Insert SoftGPU iso (can be downloaded in Releases) and run `softgpu.exe`
189207
11) Select profile match to your VirtualBox version
190208

191-
![SoftGPU profile selection](resource/docs/profile.png)
209+
![SoftGPU profile selection](resource/docs/profileb.png)
192210

193211
12) Click on *Install!*
194212
13) You maybe need some reboots (after MSVCRT and DX installation) and run `softgpu.exe` again.
195-
14) After complete and final reboot system should start in 640x480 in 256 colours
213+
14) After complete and final reboot system should start in 640x480 in 256 colours or in 32-bit colours.
196214
15) Right click on desktop, Properties -> Settings and set the resolution (which you wish for) and colours:
197215
- to 32 bits for 98/Me, because only in 32 bit real HW screen acceleration works and applications are much faster
198216
- to 16 bits for 95, because 95 can't set colour depth on runtime (reboot is required) and lots of old applications can't start in 32 bits (all Glide for example)
@@ -220,7 +238,7 @@ VBoxManage setextradata "My Windows 98" "VBoxInternal/TM/TSCTiedToExecution" 1
220238
VBoxManage modifyvm "My Windows 98" --cpu-profile "AMD Ryzen 7 1800X Eight-Core"
221239
```
222240

223-
### vGPU9 vs. vGPU10
241+
#### vGPU9 vs. vGPU10
224242

225243
There are 2 variant of graphical HW acceleration in VirtualBox 7:
226244

@@ -249,25 +267,23 @@ VBoxManage setextradata "My Windows 98" "VBoxInternal/Devices/vga/0/Config/VMSVG
249267

250268

251269
### VMware Workstation setup with HW acceleration
252-
SoftGPU with HW acceleration was tested only with lasted version of VMware Workstation (17.0.0 build-20800274), if you'll be successful with older version or free VMware player, please let me know.
270+
SoftGPU with HW acceleration was tested only with lasted version of VMware Workstation (17 and 17.5), if you'll be successful with older version or free VMware player, please let me know.
253271

254272
#### General information
255273
- Use **Windows 98 SE**, newer Mesa is not currently working in 95 and Windows 98 FE (first edition) hasn't supporting WDM sound cards so you might have a problem with sound.
256274
- **Fresh install**, Windows 9x doesn't like hardware changes and if you import import VM from somewhere, strange problems may occur.
257-
- **no VMware additions**, ~because they only contain basic display driver,~ contain mouse integration driver and tray program which **is replacing display driver to VMware default display driver** [and some integration utilities](https://github.com/JHRobotics/softgpu/issues/14). If you want mouse integration driver (but is useless for gaming with mouse) alone driver is [listed below](#extra-drivers).
258-
- set as hardware compatibility **Workstation 9.x** and VM type **Windows 2000 Server**. VMware in other cases is comparing installed addition tools version and features with hypervisor version and if they don't match refuses to expose SVGA 3D commands to guest.
275+
- SoftGPU is now partly compatible with **VMware additions**, when you decided to install it, please uncheck "SVGA driver".
276+
- (optional) set as hardware compatibility to **Workstation 9.x** for vGPU9 or leave it on default level for vGPU10.
259277

260278
#### Step by step guide
261279
1) Create new VM - from menu File->New Virtual Machine
262280
2) In wizard choose *Custom (advanced)* click on next:
263-
- As *Hardware compatibility* select **Workstation 9.x** (important)
264-
265-
![](resource/docs/vmw-setup-1.png)
266-
281+
- For **vGPU9** in *Hardware compatibility* select **Workstation 9.x**
282+
- For **vGPU10** leave *Hardware compatibility* on default choice.
267283
- Select *I will install the operating system later.*
268-
- As *Guest operating system* choice **Microsoft Windows** and as *Version* select **Windows 2000 Server** (important)
284+
- As *Guest operating system* choice **Microsoft Windows** and as *Version* select **Windows 98** (this is optional, driver itself reporting system version)
269285

270-
![](resource/docs/vmw-setup-2.png)
286+
![](resource/docs/vmw-setup-2b.png)
271287

272288
- Type VM name and number of processors keep on *1*
273289
- Set the memory to 512 MB (but without additional patches not more!)
@@ -281,7 +297,7 @@ SoftGPU with HW acceleration was tested only with lasted version of VMware Works
281297
![](resource/docs/vmw-setup-3.png)
282298

283299
- click on *USB Controller* and set *USB compatibility* to **USB 1.1** or remove USB controller completely
284-
- click on *Display* but make sure, that **Accelerate 3D graphics** is turned **off** for installation = VMWare 7.x is painfully slow on 4/8-bit mode when is 3D acceleration enabled. So, turn in off for installation and turn in on after SoftGPU is installed.
300+
- click on *Display* but make sure, that **Accelerate 3D graphics** is turned **off** for installation = VMware 17.x is painfully slow on 4/8-bit mode when is 3D acceleration enabled. So, turn in off for installation and turn in on after SoftGPU is installed. On VMware 17.5 this was fixed, so you can enable HW acceleration before installation.
285301

286302
- (optional) click on *Printer* and click *Remove* (if you don't plan to use this feature, you'll save yourself from a pointless warning message)
287303
- click on *New CD/DVD (IDE)* and point *Use ISO image file* to your Windows 98 installation CD ISO.
@@ -294,18 +310,22 @@ SoftGPU with HW acceleration was tested only with lasted version of VMware Works
294310
5) Install the Windows 98 - this step is really pain, VMware VM in BIOS VGA mode is hyper slow and mouse isn't usable - you have navigate through installation by keyboard (`TAB`, `Shift`+`TAB`, cursor keys, `Enter`).
295311
- TIP: apply [patcher9x](https://github.com/JHRobotics/patcher9x). If you have Intel 11th gen. CPU or newer or AMD Ryzen (any model) or other AMD ZEN architecture CPU and newer, this is necessary.
296312
6) After installation isn't system very usable until you'll install GPU driver! So, insert **SoftGPU iso** (can be downloaded in Releases) and run `softgpu.exe`.
297-
7) Click on *Install!*
298-
8) You maybe need some reboots (after MSVCRT and DX installation) and run `softgpu.exe` again.
299-
9) After complete and final reboot system should start in 640x480 in 32 bits per pixel colors.
300-
10) If you have mouse trouble, open *Device Manager* (by cursor keys select *My Computer* and press `Alt`+`Enter` to open properties), then disable all *HID-compliant mouse*. Reboot VM after done!
313+
7) Set *Hypervisor preset* to **VMware Workstation (compatible)**. ("Compatible" profile install bit older Mesa but works for both vGPU9 and vGPU10).
314+
315+
![VMware profile](resource/docs/profile-vmw.png)
316+
317+
8) Click on *Install!*
318+
9) You maybe need some reboots (after MSVCRT and DX installation) and run `softgpu.exe` again.
319+
10) After complete and final reboot system should start in 640x480 in 32 bits per pixel colors.
320+
11) If you have mouse trouble, open *Device Manager* (by cursor keys select *My Computer* and press `Alt`+`Enter` to open properties), then disable all *HID-compliant mouse*. Reboot VM after done!
301321

302322
![VMware HID devices disabled](resource/docs/vmw-hid.png)
303323

304-
11) Turn off VM, open VM setting and under Display check **Accelerate 3D graphics**
324+
12) Turn off VM, open VM setting and under Display check **Accelerate 3D graphics**
305325

306326
![](resource/docs/vmw-setup-4.png)
307327

308-
12) Start VM and use `glchecker.exe` to verify settings.
328+
13) Start VM and use `glchecker.exe` to verify settings.
309329

310330

311331
### VMware Workstation Player

actions.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,9 @@ BOOL set_inf_regs(HWND hwnd)
11531153
registryWriteInfDWORD("HKLM\\Software\\Mesa3D\\global\\SVGA_BLIT_SURF_TO_SCREEN", settingReadDW(CHBX_BLIT_SURF), dstfile);
11541154
registryWriteInfDWORD("HKLM\\Software\\Mesa3D\\global\\SVGA_DMA_NEED_REREAD", settingReadDW(CHBX_DMA_NEED_REREAD), dstfile);
11551155

1156+
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\NoMultisample", settingReadDW(CHBX_NO_MULTISAMPLE), dstfile);
1157+
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\AsyncMOBs", settingReadDW(INP_ASYNCMOBS), dstfile);
1158+
11561159
return TRUE;
11571160
}
11581161

changelog.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
0.6.2024.36
2+
! fixed missing non English chars
3+
! VMWare vGPU10 support
4+
! fixed memory waste when allocating large regions
5+
! better handling out-of-memory errors
6+
! profiles for different hypervisors
7+
- Better HW detection
8+
- Driver: fixed race-conditional bugs
9+
- Driver: SVGA screen target support
10+
- Driver: Smooth font support
11+
- Driver: driver version reporting to HV
12+
- Driver: better VMware support
13+
- Mesa/SVGA: better memory limitation
14+
- Mesa/SVGA: screen target support (vGPU10, VBox only)
15+
- Mesa/SVGA: OpenGL 4.1 (vGPU10, VBox), 4.3 (vGPU10, VMware)
16+
- Mesa/SVGA: better compatibility detection
17+
- Mesa/LLVMpipe: LLVM 18.1.8
18+
- Mesa/LLVMpipe: OpenGL 4.5
19+
- Mesa/Nine: fixed diffuse lights
20+
- Mesa: faster readpixels
21+
- Wine: S3TC support (by @hpvb)
22+
- Wine: explorer, iexplore blacklisted
23+
- Increased compatibility list
24+
125
0.5.2024.29
226
! Wine works on Windows 95
327
! OpenGlide works with MiniGL wrappers

resource/docs/profile-vmw.png

20.5 KB
Loading

resource/docs/profileb.png

17.3 KB
Loading

resource/docs/vmw-setup-2b.png

20.1 KB
Loading

settings.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ static const settings_item_t settings_def[] =
9494
{CHBX_BLIT_SURF, T_CHECKBOX, 33, "blit_surf", 0, NULL, NULL, 0, 0},
9595
{CHBX_DMA_NEED_REREAD, T_CHECKBOX, 34, "dma_need_reread", 1, NULL, NULL, 0, 0},
9696
{CHBX_MESA_DOWNGRADE, T_CHECKBOX, 35, "mesa_downgrade", 1, NULL, NULL, 0, 0},
97+
{CHBX_NO_MULTISAMPLE, T_CHECKBOX, 36, "no_multisample", 0, NULL, NULL, 0, 0},
98+
{INP_ASYNCMOBS, T_INPUT_NUM, 37, "asyncmobs", 1, NULL, NULL, 0, 0},
9799
{0, 0, 0, NULL, 0, NULL, NULL, 0, 0}
98100
};
99101

softgpu.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,18 @@ void about(HWND hwnd)
5858
"Components\n"
5959
"VMDisp9x: %s\n"
6060
"Mesa9x: %s\n"
61-
/*"Mesa9x (SSE): %s\n"*/
61+
"Mesa9x (alt.): %s\n"
6262
"Wine9x: %s\n"
6363
"OpenGlide9x: %s\n"
6464
"SIMD95: %s\n\n"
6565
"more on: https://github.com/JHRobotics/softgpu\n",
6666
SOFTGPU_VERSION_STR,
67-
iniValue("[version]", "vmdisp9x"),
68-
iniValue("[version]", "mesa9x"),
69-
/*iniValue("[version]", "mesa9x_sse"),*/
70-
iniValue("[version]", "wine9x"),
71-
iniValue("[version]", "openglide9x"),
72-
iniValue("[version]", "simd95")
67+
iniValueDef("[version]", "vmdisp9x", "-"),
68+
iniValueDef("[version]", "mesa9x_main", "-"),
69+
iniValueDef("[version]", "mesa9x_alt", "-"),
70+
iniValueDef("[version]", "wine9x", "-"),
71+
iniValueDef("[version]", "openglide9x", "-"),
72+
iniValueDef("[version]", "simd95", "-")
7373
);
7474

7575
MessageBoxA(hwnd, txtbuf, "About SoftGPU", MB_OK);
@@ -904,7 +904,7 @@ int main(int argc, const char *argv[])
904904
/* init and calculate settings */
905905
settingsReset();
906906

907-
font = CreateFontA(DPIX(16), 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, NULL);
907+
font = CreateFontA(DPIY(16), 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, NULL);
908908

909909
win_main = CreateWindowA(WND_SOFTGPU_CLASS_NAME, WINDOW_TITLE, SOFTGPU_WIN_STYLE|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, DPIX(600), DPIY(420), 0, 0, NULL, 0);
910910
win_cust = CreateWindowA(WND_SOFTGPU_CUR_CLASS_NAME, WINDOW_TITLE, SOFTGPU_WIN_STYLE|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, DPIX(300), DPIY(400), 0, 0, NULL, 0);
@@ -947,7 +947,7 @@ int main(int argc, const char *argv[])
947947

948948
if(need_reboot)
949949
{
950-
ExitWindowsEx(EWX_REBOOT | EWX_FORCE, SHTDN_REASON_MAJOR_HARDWARE | SHTDN_REASON_MINOR_INSTALLATION);
950+
ExitWindowsEx(EWX_REBOOT, SHTDN_REASON_MAJOR_HARDWARE | SHTDN_REASON_MINOR_INSTALLATION);
951951
}
952952

953953
/* SHGetPathFromIDListA creates some co-threads, this kill them too */

softgpu.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@
104104
#define CHBX_DMA_NEED_REREAD 48
105105

106106
#define CHBX_MESA_DOWNGRADE 49
107+
#define CHBX_NO_MULTISAMPLE 50
108+
#define INP_ASYNCMOBS 51
107109

108110
BOOL isSettingSet(DWORD menu);
109111
void writeSettings();

softgpu.ini

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
; - no UTF here, only OEM charset
1010
; - names ARE cASe sensitive
1111
;
12-
; THIS FILE IS ONLY FOR VERSION 0.5 DON'T USE IT WITH FUTURE VERSIONS!
12+
; THIS FILE IS ONLY FOR VERSION 0.6 DON'T USE IT WITH FUTURE VERSIONS!
1313
;
1414
[softgpu]
1515
dx8target=4.8.0.400
@@ -34,7 +34,7 @@ ws2path=redist\ws2setup.exe
3434
;ie98=redist\ie6setup\ie6setup.exe
3535
;ie98.ver=Internet Explorer 6.0
3636
default_profile=6
37-
default_path=C:\drivers\SG24.35
37+
default_path=C:\drivers\SG24.36
3838
mesa_alt=mesa23
3939

4040
[defaults]
@@ -50,6 +50,8 @@ screentarget_mouse=0
5050
blit_surf=0
5151
dma_need_reread=1
5252
mesa_downgrade=0
53+
no_multisample=0
54+
asyncmobs=1
5355

5456
[profile]
5557
name=QEMU (software 3D only)
@@ -84,10 +86,17 @@ name=VirtualBox 7.0.16 and newer
8486
blit_surf=1
8587

8688
[profile]
87-
name=VMware Workstation 16, 17
89+
name=VMware Workstation (compatible)
8890
blit_surf=0
8991
dma_need_reread=0
9092
mesa_downgrade=1
93+
no_multisample=1
94+
95+
[profile]
96+
name=VMware Workstation (vGPU10 only)
97+
blit_surf=0
98+
dma_need_reread=0
99+
no_multisample=1
91100

92101
[pci]
93102
name=VirtualBox VGA
@@ -107,7 +116,7 @@ inf=VBoxSvga
107116

108117
[pci]
109118
name=VMware SVGA II
110-
desc=OpenGL 2.1 in VirtualBox 6.1 and VMware. OpenGL 2.1/3.3/4.1 in VirtualBox 7.
119+
desc=OpenGL 2.1/3.3/4.1/4.3 in VMware. OpenGL 2.1/4.1 in VirtualBox.
111120
ven=0x15AD
112121
dev=0x0405
113122
subsys=0x040515AD
@@ -141,9 +150,10 @@ error=1
141150
desc=ISA VGA or PCI VGA without PCI bus detected, this can't work! Please check Device manager before continue!
142151
143152
[version]
144-
vmdisp9x=1.2024.0.57
145-
mesa9x=24.1.2.90
146-
wine9x=1.7.55.36
153+
vmdisp9x=1.2024.0.72
154+
mesa9x_main=24.1.4.107
155+
mesa9x_alt=23.1.9.107
156+
wine9x=1.7.55.38
147157
openglide9x=0.1.2024.17
148158
simd95=1.0.0.0
149159
@@ -167,6 +177,12 @@ HKLM\Software\DDSwitcher\wmplayer.exe;system
167177
HKLM\Software\DDSwitcher\DivX Player 2.1.exe;system
168178
HKLM\Software\DDSwitcher\PowerDVD.exe;system
169179
HKLM\Software\DDSwitcher\winamp.exe;system
180+
HKLM\Software\DDSwitcher\gta-vc.exe;system
181+
HKLM\Software\DDSwitcher\gta3.exe;system
182+
HKLM\Software\DDSwitcher\gta_sa.exe;system
183+
HKLM\Software\DDSwitcher\3DMark03.exe;system
184+
HKLM\Software\DDSwitcher\3DMark2001.exe;system
185+
HKLM\Software\DDSwitcher\3DMark2001SE.exe;system
170186
HKLM\Software\OpenGlide\Hitman.exe\NumTMU;2
171187
HKLM\Software\OpenGlide\u9.icd\HideCursor;2
172188
HKLM\Software\OpenGlide\u9.exe\HideCursor;2

0 commit comments

Comments
 (0)