Skip to content

Commit 0d3a2f5

Browse files
committed
stability release
1 parent 04a6e85 commit 0d3a2f5

6 files changed

Lines changed: 81 additions & 65 deletions

File tree

actions.c

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,32 +1130,22 @@ BOOL set_inf_regs(HWND hwnd)
11301130
registryWriteInf("HKLM\\Software\\D9Switcher\\global", "nine", WINREG_STR, dstfile);
11311131
else
11321132
registryWriteInf("HKLM\\Software\\D9Switcher\\global", "wine", WINREG_STR, dstfile);
1133+
1134+
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\NoMultisample", settingReadDW(CHBX_NO_MULTISAMPLE), dstfile);
1135+
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\AsyncMOBs", settingReadDW(INP_ASYNCMOBS), dstfile);
1136+
1137+
registryWriteInfDWORD("HKLM\\Software\\Mesa3d\\SVGA_GMR_CACHE_ENABLED", settingReadDW(CHBX_GMR_CACHE), dstfile);
11331138

1134-
DWORD stoptions = 0;
1135-
if(isSettingSet(CHBX_ST_16))
1136-
{
1137-
stoptions |= 0x1;
1138-
}
1139-
1140-
if(isSettingSet(CHBX_ST_MOUSE))
1141-
{
1142-
stoptions |= 0x2;
1143-
}
1144-
1145-
if(isSettingSet(CHBX_ST_MOUSE_HIDE))
1139+
if(settingReadDW(IMP_SVGA_MEM_MAX) != 400)
11461140
{
1147-
stoptions |= 0x4;
1141+
registryWriteInfDWORD("HKLM\\Software\\Mesa3D\\global\\SVGA_MEM_MAX", settingReadDW(IMP_SVGA_MEM_MAX), dstfile);
11481142
}
11491143

1150-
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\STSize", settingReadDW(INP_SCREENTARGET), dstfile);
1151-
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\STOptions", stoptions, dstfile);
1152-
1153-
registryWriteInfDWORD("HKLM\\Software\\Mesa3D\\global\\SVGA_BLIT_SURF_TO_SCREEN", settingReadDW(CHBX_BLIT_SURF), dstfile);
1154-
registryWriteInfDWORD("HKLM\\Software\\Mesa3D\\global\\SVGA_DMA_NEED_REREAD", settingReadDW(CHBX_DMA_NEED_REREAD), dstfile);
1155-
1156-
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\NoMultisample", settingReadDW(CHBX_NO_MULTISAMPLE), dstfile);
1157-
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\AsyncMOBs", settingReadDW(INP_ASYNCMOBS), dstfile);
1158-
1144+
registryWriteInfDWORD("HKLM\\Software\\Mesa3D\\global\\MESA_SW_GAMMA_ENABLED", settingReadDW(CHBX_SW_GAMMA), dstfile);
1145+
registryWriteInfDWORD("HKLM\\Software\\Mesa3D\\global\\SVGA_DMA_TO_FB", settingReadDW(CHBX_DMA_TO_FB), dstfile);
1146+
1147+
registryWriteInfDWORD("HKLM\\Software\\VMWSVGA\\HWCursor", settingReadDW(CHBX_HWCURSOR), dstfile);
1148+
11591149
return TRUE;
11601150
}
11611151

changelog.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
0.6.2024.39
2+
! stability fixes
3+
! double buffering support (or emulation)
4+
! Hires <-> VGA mode switching correctly
5+
- Gamma support (disabled by default)
6+
- Increased compatibility list
7+
18
0.6.2024.38
29
! no hard wired modes on DDHAL (1280x800 didn't work for example)
310
! no unknown control to DIP (causes BSOD)

settings.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
#define ST_DEF 0
3737
#define VRAM_DEF 128
38+
#define SVGA_MEM_MAX 400
3839
#define DEFAULT_INST_PATH "C:\\drivers\\softgpu"
3940

4041
#define T_CHECKBOX 1
@@ -85,17 +86,16 @@ static const settings_item_t settings_def[] =
8586
{LBX_PROFILE, T_DROPDOWN, 24, "profile", 0, NULL, NULL, 0, 0},
8687
{INP_PATH, T_INPUT_STR, 25, "path", 0, DEFAULT_INST_PATH, NULL, 0, 0},
8788
{INP_VRAM_LIMIT, T_INPUT_NUM, 26, "vram", VRAM_DEF, NULL, NULL, 0, 0},
88-
{INP_SCREENTARGET, T_INPUT_NUM, 27, "screentarget_mb", ST_DEF, NULL, NULL, 0, 0},
89-
{CHBX_ST_16, T_CHECKBOX, 28, "screentarget_16bpp", 0, NULL, NULL, 0, 0},
90-
{CHBX_ST_MOUSE, T_CHECKBOX, 29, "screentarget_mouse", 0, NULL, NULL, 0, 0},
91-
{CHBX_ST_MOUSE_HIDE, T_CHECKBOX, 30, "screentarget_mouse_hide", 0, NULL, NULL, 0, 0},
9289
{CHBX_DOTCOM, T_CHECKBOX, 31, "dotcom", 0, NULL, NULL, 0, 0},
9390
{CHBX_WS2, T_CHECKBOX, 32, "ws2", 0, NULL, NULL, 0, 0},
94-
{CHBX_BLIT_SURF, T_CHECKBOX, 33, "blit_surf", 0, NULL, NULL, 0, 0},
95-
{CHBX_DMA_NEED_REREAD, T_CHECKBOX, 34, "dma_need_reread", 1, NULL, NULL, 0, 0},
96-
{CHBX_MESA_DOWNGRADE, T_CHECKBOX, 35, "mesa_downgrade", 1, NULL, NULL, 0, 0},
9791
{CHBX_NO_MULTISAMPLE, T_CHECKBOX, 36, "no_multisample", 0, NULL, NULL, 0, 0},
9892
{INP_ASYNCMOBS, T_INPUT_NUM, 37, "asyncmobs", 1, NULL, NULL, 0, 0},
93+
{CHBX_GMR_CACHE, T_CHECKBOX, 38, "gmrcache", 0, NULL, NULL, 0, 0},
94+
{IMP_SVGA_MEM_MAX, T_INPUT_NUM, 39, "svgamemmax", SVGA_MEM_MAX, NULL, NULL, 0, 0},
95+
{CHBX_SW_GAMMA, T_CHECKBOX, 40, "swgamma", 0, NULL, NULL, 0, 0},
96+
{CHBX_DMA_TO_FB, T_CHECKBOX, 41, "dmatofb", 0, NULL, NULL, 0, 0},
97+
{CHBX_HWCURSOR, T_CHECKBOX, 42, "hwcursor", 0, NULL, NULL, 0, 0},
98+
{CHBX_MESA_DOWNGRADE, T_CHECKBOX, 43, "mesa_downgrade", 0, NULL, NULL, 0, 0},
9999
{0, 0, 0, NULL, 0, NULL, NULL, 0, 0}
100100
};
101101

softgpu.h

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,27 @@
9292

9393
#define BTN_CUSTOM 40
9494

95-
#define INP_SCREENTARGET 41
96-
#define CHBX_ST_16 42
97-
#define CHBX_ST_MOUSE 43
98-
#define CHBX_ST_MOUSE_HIDE 44
95+
//#define INP_SCREENTARGET 41
96+
//#define CHBX_ST_16 42
97+
//#define CHBX_ST_MOUSE 43
98+
//#define CHBX_ST_MOUSE_HIDE 44
9999

100100
#define CHBX_DOTCOM 45
101101
#define CHBX_WS2 46
102102

103-
#define CHBX_BLIT_SURF 47
104-
#define CHBX_DMA_NEED_REREAD 48
103+
//#define CHBX_BLIT_SURF 47
104+
//#define CHBX_DMA_NEED_REREAD 48
105105

106106
#define CHBX_MESA_DOWNGRADE 49
107107
#define CHBX_NO_MULTISAMPLE 50
108108
#define INP_ASYNCMOBS 51
109109

110+
#define CHBX_GMR_CACHE 52
111+
#define IMP_SVGA_MEM_MAX 53
112+
#define CHBX_SW_GAMMA 54
113+
#define CHBX_DMA_TO_FB 55
114+
#define CHBX_HWCURSOR 56
115+
110116
BOOL isSettingSet(DWORD menu);
111117
void writeSettings();
112118
int intSettings(int type);

softgpu.ini

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ ws2path=redist\ws2setup.exe
3636
default_profile=6
3737
default_path=C:\drivers\SG24.38
3838
mesa_alt=mesa23
39-
settings_level=36
39+
;settings_level=36
4040

4141
[defaults]
4242
dxflags=0
@@ -53,6 +53,9 @@ dma_need_reread=1
5353
mesa_downgrade=0
5454
no_multisample=0
5555
asyncmobs=1
56+
hwcursor=0
57+
dmatofb=0
58+
gmrcache=0
5659

5760
[profile]
5861
name=QEMU (software 3D only)
@@ -70,34 +73,40 @@ name=VirtualBox 6.1.0 - 6.1.46
7073
rgb565=1
7174
blit_surf=1
7275
dxflags=1
76+
dmatofb=1
7377

7478
[profile]
7579
name=VirtualBox 6.1.48 - 6.1.50
7680
dxflags=1
7781
blit_surf=1
82+
dmatofb=1
7883

7984
[profile]
8085
name=VirtualBox 7.0.0 - 7.0.14
8186
dxflags=1
8287
rgb565=1
8388
blit_surf=1
89+
dmatofb=1
8490

8591
[profile]
8692
name=VirtualBox 7.0.16 and newer
8793
blit_surf=1
94+
dmatofb=1
8895

8996
[profile]
9097
name=VMware Workstation (compatible)
9198
blit_surf=0
9299
dma_need_reread=0
93100
mesa_downgrade=1
94101
no_multisample=1
102+
hwcursor=1
95103

96104
[profile]
97105
name=VMware Workstation (vGPU10 only)
98106
blit_surf=0
99107
dma_need_reread=0
100108
no_multisample=1
109+
hwcursor=1
101110

102111
[pci]
103112
name=VirtualBox VGA
@@ -151,10 +160,10 @@ error=1
151160
desc=ISA VGA or PCI VGA without PCI bus detected, this can't work! Please check Device manager before continue!
152161
153162
[version]
154-
vmdisp9x=1.2024.0.75
155-
mesa9x_main=24.1.5.108
156-
mesa9x_alt=23.1.9.108
157-
wine9x=1.7.55.38
163+
vmdisp9x=1.2024.0.87
164+
mesa9x_main=24.1.5.114
165+
mesa9x_alt=23.1.9.114
166+
wine9x=1.7.55.40
158167
openglide9x=0.1.2024.17
159168
simd95=1.0.0.0
160169
@@ -184,6 +193,8 @@ HKLM\Software\DDSwitcher\gta_sa.exe;system
184193
HKLM\Software\DDSwitcher\3DMark03.exe;system
185194
HKLM\Software\DDSwitcher\3DMark2001.exe;system
186195
HKLM\Software\DDSwitcher\3DMark2001SE.exe;system
196+
HKLM\Software\DDSwitcher\Carm95.exe;system
197+
HKLM\Software\DDSwitcher\HCopter.exe;system
187198
HKLM\Software\OpenGlide\Hitman.exe\NumTMU;2
188199
HKLM\Software\OpenGlide\u9.icd\HideCursor;2
189200
HKLM\Software\OpenGlide\u9.exe\HideCursor;2
@@ -204,3 +215,5 @@ HKLM\Software\DDSwitcher\empires.exe;system
204215
HKLM\Software\DDSwitcher\heroes3.exe;system
205216
HKLM\Software\DDSwitcher\Oni.exe;system
206217
HKLM\Software\Mesa3D\Oni.exe\MESA_EXTENSION_MAX_YEAR;2001
218+
HKLM\Software\Mesa3D\xtremecr.exe\MESA_EXTENSION_MAX_YEAR;2004
219+
HKLM\Software\Mesa3D\litecr.exe\MESA_EXTENSION_MAX_YEAR;2004

window.c

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -334,41 +334,41 @@ void softgpu_cur_window_create(HWND hwnd, LPARAM lParam)
334334
DRAW_DIRECTION_DOWN;
335335

336336
LABEL(0, CUST_WIDTH, LINE_HEIGHT, "SVGA settings", 0);
337+
338+
CHECKBOX(CHBX_DMA_TO_FB, CUST_WIDTH, LINE_HEIGHT, "DMA surface to framebuffer (VB)");
339+
CHECKBOX(CHBX_HWCURSOR, CUST_WIDTH, LINE_HEIGHT, "HW cursor (VMW, in VB bugged)");
340+
341+
CHECKBOX(CHBX_BUG_DX_FLAGS, CUST_WIDTH, LINE_HEIGHT, "DX flags (VB <= 7.0.14)");
342+
CHECKBOX(CHBX_BUG_PREFER_FIFO, CUST_WIDTH, LINE_HEIGHT, "Prefer FIFO (VME)");
343+
CHECKBOX(CHBX_BUG_RGB565, CUST_WIDTH, LINE_HEIGHT, "RGB565 (VB < 7.0.10, < 6.1.46)");
344+
345+
CHECKBOX(CHBX_MESA_DOWNGRADE, CUST_WIDTH, LINE_HEIGHT, "Downgrade Mesa3D (VMW vGPU9)");
346+
347+
CHECKBOX(CHBX_NO_MULTISAMPLE, CUST_WIDTH, LINE_HEIGHT, "Disable multisample (VMW)");
348+
349+
draw_y += LINE_HEIGHT;
337350

338-
CHECKBOX(CHBX_BLIT_SURF, CUST_WIDTH, LINE_HEIGHT, "Blit surface to screen (VBox)");
339-
CHECKBOX(CHBX_DMA_NEED_REREAD, CUST_WIDTH, LINE_HEIGHT, "DMA need reread (VBox)");
340-
341-
CHECKBOX(CHBX_BUG_DX_FLAGS, CUST_WIDTH, LINE_HEIGHT, "DX flags (VBox <= 7.0.14)");
342-
CHECKBOX(CHBX_BUG_PREFER_FIFO, CUST_WIDTH, LINE_HEIGHT, "Prefer FIFO (VMware)");
343-
CHECKBOX(CHBX_BUG_RGB565, CUST_WIDTH, LINE_HEIGHT, "RGB565 (VBox < 7.0.10, < 6.1.46)");
344-
345-
CHECKBOX(CHBX_MESA_DOWNGRADE, CUST_WIDTH, LINE_HEIGHT, "Downgrade Mesa3D (VMware)");
346-
347-
CHECKBOX(CHBX_NO_MULTISAMPLE, CUST_WIDTH, LINE_HEIGHT, "Disable multisample (VMware)");
348-
351+
LABEL(0, CUST_WIDTH, LINE_HEIGHT, "Experimental settings", 0);
352+
// draw_y += LINE_HL;
353+
349354
DRAW_DIRECTION_RIGHT;
350355
LABEL(0, 200, LINE_HEIGHT, "Async MOBs: ", 0);
351356
INPUT(INP_ASYNCMOBS, 50, LINE_HEIGHT, "", 0);
352-
draw_x = DRAW_START_X;
353357
draw_y += LINE_HEIGHT;
358+
draw_x = DRAW_START_X;
354359
DRAW_DIRECTION_DOWN;
355-
356-
draw_y += LINE_HL;
357-
358-
LABEL(0, CUST_WIDTH, LINE_HEIGHT, "SVGA screen target (experimental)", 0);
359-
360+
361+
CHECKBOX(CHBX_GMR_CACHE, CUST_WIDTH, LINE_HEIGHT, "GMR cache (vGPU9, inefficient)");
362+
CHECKBOX(CHBX_SW_GAMMA, CUST_WIDTH, LINE_HEIGHT, "Enable gamma globaly (slow)");
363+
360364
DRAW_DIRECTION_RIGHT;
361-
362-
LABEL(0, 200, LINE_HEIGHT, "Screen target surface (MB): ", 0);
363-
INPUT(INP_SCREENTARGET, 50, LINE_HEIGHT, "", 0);
364-
365+
LABEL(0, 200, LINE_HEIGHT, "SVGA RAM limit (MB): ", 0);
366+
INPUT(IMP_SVGA_MEM_MAX, 50, LINE_HEIGHT, "", 0);
365367
draw_x = DRAW_START_X;
366368
draw_y += LINE_HEIGHT;
367369
DRAW_DIRECTION_DOWN;
368370

369-
CHECKBOX(CHBX_ST_16, CUST_WIDTH, LINE_HEIGHT, "Screen target for 16bpp");
370-
CHECKBOX(CHBX_ST_MOUSE, CUST_WIDTH, LINE_HEIGHT, "Screen target accelerated mouse");
371-
CHECKBOX(CHBX_ST_MOUSE_HIDE, CUST_WIDTH, LINE_HEIGHT, "Screen target mouse hide");
372-
371+
//LABEL(0, 200, LINE_HEIGHT, "VB = VirtualBox, VMW = WMware Workstation ", 0);
372+
373373
settingsApply(hwnd);
374374
}

0 commit comments

Comments
 (0)