diff options
author | Jaroslav Hensl <jara@hensl.cz> | 2025-04-03 20:08:07 +0200 |
---|---|---|
committer | Jaroslav Hensl <jara@hensl.cz> | 2025-04-03 20:08:07 +0200 |
commit | 7f67373008e78b82b6633040b194bb6413882db6 (patch) | |
tree | 29988f7385560ed5420df22727de65b27997242c | |
parent | 9f18830a51a54b4068538a216fcbc8f3a782127e (diff) | |
download | vmdisp9x-7f67373008e78b82b6633040b194bb6413882db6.tar.gz |
runtime config update + inf update
-rw-r--r-- | 3d_accel.h | 26 | ||||
-rw-r--r-- | makefile | 2 | ||||
-rw-r--r-- | version.h | 4 | ||||
-rw-r--r-- | vmdisp9x.inf | 33 | ||||
-rw-r--r-- | vxd_main.c | 4 | ||||
-rw-r--r-- | vxd_svga.c | 6 |
6 files changed, 51 insertions, 24 deletions
@@ -217,7 +217,7 @@ void mouse_erase(); #define MOUSE_BUFFER_SIZE 65535
/* helper for some hacks */
-BOOL FBHDA_page_modify(DWORD flat_address, DWORD size, BYTE *new_data);
+BOOL FBHDA_page_modify(DWORD flat_address, DWORD size, const BYTE *new_data);
/*
* VMWare SVGA-II API
@@ -410,4 +410,28 @@ BOOL VESA_setmode(DWORD w, DWORD h, DWORD bpp); #pragma pack(pop)
+/* DLL handlers */
+#define VMDISP9X_LIB "vmdisp9x.dll"
+
+typedef FBHDA_t *(__cdecl *FBHDA_setup_t)();
+typedef void (__cdecl *FBHDA_access_begin_t)(DWORD flags);
+typedef void (__cdecl *FBHDA_access_end_t)(DWORD flags);
+typedef void (__cdecl *FBHDA_access_rect_t)(DWORD left, DWORD top, DWORD right, DWORD bottom);
+typedef BOOL (__cdecl *FBHDA_swap_t)(DWORD offset);
+typedef BOOL (__cdecl *FBHDA_page_modify_t)(DWORD flat_address, DWORD size, const BYTE *new_data);
+typedef void (__cdecl *FBHDA_clean_t)(void);
+
+typedef struct _fbhda_lib_t
+{
+ HMODULE lib;
+ LONG lock;
+ FBHDA_setup_t pFBHDA_setup;
+ FBHDA_access_begin_t pFBHDA_access_begin;
+ FBHDA_access_end_t pFBHDA_access_end;
+ FBHDA_access_rect_t pFBHDA_access_rect;
+ FBHDA_swap_t pFBHDA_swap;
+ FBHDA_page_modify_t pFBHDA_page_modify;
+ FBHDA_clean_t pFBHDA_clean;
+} fbhda_lib_t;
+
#endif /* __3D_ACCEL_H__ */
@@ -12,7 +12,7 @@ OBJS += & INCS = -I$(%WATCOM)\h\win -Iddk -Ivmware
-VER_BUILD = 94
+VER_BUILD = 99
FLAGS = -DDRV_VER_BUILD=$(VER_BUILD)
@@ -4,11 +4,11 @@ #define DRV_STR_(x) #x
#define DRV_STR(x) DRV_STR_(x)
-/* on binaries equals 1 and for INF is 1 = separate driver, 2 = softgpu pack */
+/* 4 = Windows 95, 95, Me */
#define DRV_VER_MAJOR 4
/* the YEAR */
-#define DRV_VER_MINOR 2024
+#define DRV_VER_MINOR 2025
/* build version is deducted fom GIT */
#define DRV_VER_BUILD_FAILBACK 1
diff --git a/vmdisp9x.inf b/vmdisp9x.inf index 1550597..96ad1f5 100644 --- a/vmdisp9x.inf +++ b/vmdisp9x.inf @@ -5,10 +5,10 @@ ; QEMU STD Win9x display driver
; QEMU QXL Win9x display driver
; Copyright 2012-2022, The OS/2 Museum
-; 2023-2024, Jaroslav Hensl
+; 2023-2025, Jaroslav Hensl
[version]
-DriverVer=01/01/2024, 1.2024.0.0
+DriverVer=01/01/2025, 4.2025.0.0
Class=DISPLAY
signature="$CHICAGO$"
Provider=%Mfg%
@@ -41,7 +41,7 @@ qxlmini.vxd=1 ;wined3d:winedd.dll=1
;wined3d:wined8.dll=1
;wined3d:wined9.dll=1
-;wined3d:winetray.exe=1
+;switcher:winetray.exe=1
;3dfx:3dfxSpl2.dll=1,3dfx
;3dfx:3dfxSpl3.dll=1,3dfx
;3dfx:3dfxVGL.dll=1,3dfx
@@ -127,7 +127,7 @@ vmwsmini.vxd,,,0x00000004 ;wined3d:winedd.dll,,,0x00000004
;wined3d:wined8.dll,,,0x00000004
;wined3d:wined9.dll,,,0x00000004
-;wined3d:winetray.exe,,,0x00000004
+;switcher:winetray.exe,,,0x00000004
;nine:mesa89.dll,,,0x00000004
;nine:mesa99.dll,,,0x00000004
@@ -159,6 +159,9 @@ HKR,MODES HKR,CURRENT
HKLM,Software\Microsoft\Windows\CurrentVersion\OpenGLdrivers,SOFTWARE
HKLM,Software\Microsoft\Windows\CurrentVersion\OpenGLdrivers,VMWSVGA
+HKLM,Software\Microsoft\Windows\CurrentVersion\OpenGLdrivers,QEMUFX
+HKLM,Software\Microsoft\Windows\CurrentVersion\Run,WineTray
+HKLM,Software\vmdisp9x\svga
[VM.AddReg]
HKR,,Ver,,4.0
@@ -228,22 +231,22 @@ HKR,"MODES\32\1600,1200" HKR,"MODES\32\1680,1050"
HKR,"MODES\32\1920,1080"
HKR,"MODES\32\1920,1200"
-HKLM,Software\vmdisp9x,FORCE_QEMU3DFX,,0
-HKLM,Software\vmdisp9x,FORCE_SOFTWARE,,0
-HKLM,Software\vmdisp9x,GAMMA_QUIRK,,2
-HKLM,Software\VMWSVGA,RGB565bug,,0
-HKLM,Software\VMWSVGA,CommandBuffers,,1
-HKLM,Software\VMWSVGA,VRAMLimit,,128
-HKLM,Software\VMWSVGA,PreferFIFO,,1
+HKLM,Software\vmdisp9x\driver,FORCE_QEMU3DFX,,0
+HKLM,Software\vmdisp9x\driver,FORCE_SOFTWARE,,0
+HKLM,Software\vmdisp9x\driver,GAMMA_QUIRK,,2
+HKLM,Software\vmdisp9x\svga,RGB565bug,,0
+HKLM,Software\vmdisp9x\svga,CommandBuffers,,1
+HKLM,Software\vmdisp9x\svga,VRAMLimit,,128
+HKLM,Software\vmdisp9x\svga,PreferFIFO,,1
HKLM,Software\Microsoft\Windows\CurrentVersion\OpenGLdrivers,QEMUFX,2,"qmfxgl32.dll"
;mesa:HKLM,Software\Microsoft\Windows\CurrentVersion\OpenGLdrivers,SOFTWARE,2,"mesa3d.dll"
;mesa:HKLM,Software\Microsoft\Windows\CurrentVersion\OpenGLdrivers,VMWSVGA,2,"vmwsgl32.dll"
-;mesa:HKLM,Software\Mesa3D\global,LP_NATIVE_VECTOR_WIDTH,,128
-;mesa:HKLM,Software\Mesa3D\global,SVGA_CLEAR_DX_FLAGS,,0
-
+;mesa:HKLM,Software\vmdisp9x\apps\global\mesa,LP_NATIVE_VECTOR_WIDTH,,128
+;mesa:HKLM,Software\vmdisp9x\apps\global\mesa,SVGA_CLEAR_DX_FLAGS,,0
[DX.addReg]
;mefix:HKLM,System\CurrentControlSet\Control\SessionManager\KnownDLLs,DDRAW,2,"ddrawme.dll"
+;switcher:HKLM,Software\Microsoft\Windows\CurrentVersion\Run,WineTray,2,"winetray.exe"
[VM.QXGA]
HKR,"MODES\8\2048,1080"
@@ -383,6 +386,6 @@ QemuStd.DeviceDesc="QEMU STD VGA PCI Adapter" QemuQXL.DeviceDesc="QEMU QXL VGA PCI Adapter"
[VM.regextra]
-;swvoodoo:HKLM,Software\vmdisp9x,OVERLAY_1_SIZE,,8
+;swvoodoo:HKLM,Software\vmdisp9x\driver,OVERLAY_1_SIZE,,8
; extra registry section for installers (eg. SoftGPU)
; please do not add any other section below these lines!
@@ -451,7 +451,7 @@ void __declspec(naked) VXD_API_entry() }
}
-const char reg_path[] = "Software\\vmdisp9x";
+const char reg_path[] = "Software\\vmdisp9x\\driver";
extern DWORD gamma_quirk;
static void configure_FBHDA()
@@ -580,7 +580,7 @@ void Device_Init_proc(DWORD VM) static DWORD io_open_cnt = 0;
-BOOL FBHDA_page_modify(DWORD flat_address, DWORD size, BYTE *new_data)
+BOOL FBHDA_page_modify(DWORD flat_address, DWORD size, const BYTE *new_data)
{
DWORD page = _PAGE(flat_address);
DWORD pages = 1;
@@ -97,7 +97,7 @@ BOOL mouse_get_rect(DWORD *ptr_left, DWORD *ptr_top, /*
* strings
*/
-static char SVGA_conf_path[] = "Software\\VMWSVGA";
+static char SVGA_conf_path[] = "Software\\vmdisp9x\\svga";
static char SVGA_conf_hw_cursor[] = "HWCursor";
/* ^ recovered */
static char SVGA_conf_vram_limit[] = "VRAMLimit";
@@ -105,12 +105,12 @@ static char SVGA_conf_rgb565bug[] = "RGB565bug"; static char SVGA_conf_cb[] = "CommandBuffers";
static char SVGA_conf_pref_fifo[] = "PreferFIFO";
static char SVGA_conf_hw_version[] = "HWVersion";
-static char SVGA_vxd_name[] = "vmwsmini.vxd";
-
static char SVGA_conf_disable_multisample[] = "NoMultisample";
static char SVGA_conf_reg_multisample[] = "RegMultisample";
static char SVGA_conf_async_mobs[] = "AsyncMOBs";
+static char SVGA_vxd_name[] = "vmwsmini.vxd";
+
svga_saved_state_t svga_saved_state = {FALSE};
/**
|