@@ -77,7 +77,7 @@ BOOL failure_continue(HWND hwnd)
7777 strcat (buf , "\n" );
7878 i ++ ;
7979 }
80-
80+
8181 int t = MessageBoxA (hwnd , buf , "FAIL" , MB_ICONINFORMATION | MB_YESNO | MB_DEFBUTTON2 );
8282
8383 if (t == IDNO )
@@ -380,12 +380,14 @@ void delete_bad_dx_files()
380380 strcpy (syspath + syspath_len , "\\ddraw.dll" );
381381 if (is_wrapper (syspath , FALSE))
382382 {
383+ removeROFlag (syspath );
383384 DeleteFileA (syspath );
384385 }
385386
386387 strcpy (syspath + syspath_len , "\\d3d8.dll" );
387388 if (is_wrapper (syspath , FALSE))
388389 {
390+ removeROFlag (syspath );
389391 DeleteFileA (syspath );
390392 }
391393
@@ -460,6 +462,7 @@ void setInstallSrc(const char *path)
460462 src_path = path ;
461463}
462464
465+ #if 0
463466static void fix_ddraw (const char * file )
464467{
465468 const uint8_t search [] = {
@@ -521,10 +524,12 @@ static void fix_ddraw(const char* file)
521524 if (fr != NULL ) fclose (fr );
522525 };
523526}
527+ #endif
524528
525529static HANDLE filescopy_thread = 0 ;
526530static int copiedfiles = 0 ;
527531
532+ #if 0
528533static BOOL has_sys_ddraw = FALSE;
529534static BOOL has_sys_d3d8 = FALSE;
530535static BOOL has_sys_d3d9 = FALSE;
@@ -636,6 +641,7 @@ void backup_sysfiles()
636641 }
637642 }
638643}
644+ #endif
639645
640646BOOL voodoo_copy (HWND hwnd )
641647{
@@ -685,7 +691,7 @@ DWORD WINAPI filescopy_proc(LPVOID lpParameter)
685691
686692 copiedfiles = copydir (src_path , install_path );
687693
688- backup_sysfiles ();
694+ // backup_sysfiles();
689695
690696 return 0 ;
691697}
@@ -955,6 +961,7 @@ BOOL setLimitVRAM(char *buf, size_t bufs)
955961 return FALSE;
956962}
957963
964+ #if 0
958965BOOL setLineSyscopy (char * buf , size_t bufs )
959966{
960967 (void )bufs ;
@@ -998,6 +1005,7 @@ BOOL setLineSyscopy(char *buf, size_t bufs)
9981005
9991006 return TRUE;
10001007}
1008+ #endif
10011009
10021010BOOL setLine3DFX (char * buf , size_t bufs )
10031011{
@@ -1018,11 +1026,32 @@ BOOL setLine3DFX(char *buf, size_t bufs)
10181026 return TRUE;
10191027}
10201028
1021- BOOL setMesaDowngrade (char * buf , size_t bufs )
1029+ BOOL setLineSwitcher (char * buf , size_t bufs )
10221030{
10231031 (void )bufs ;
10241032
1025- if (isSettingSet (CHBX_MESA_DOWNGRADE ))
1033+ BOOL all_on_hal = isSettingSet (RAD_DD_HAL ) && isSettingSet (RAD_D8_HAL ) && isSettingSet (RAD_D9_HAL );
1034+
1035+ if (!all_on_hal )
1036+ {
1037+ int line_start = sizeof (";switcher:" )- 1 ;
1038+ int line_len = strlen (buf );
1039+ int i ;
1040+
1041+ for (i = 0 ; i < line_len - line_start + 1 ; i ++ )
1042+ {
1043+ buf [i ] = buf [i + line_start ];
1044+ }
1045+ }
1046+
1047+ return TRUE;
1048+ }
1049+
1050+ BOOL setMesaAlternate (char * buf , size_t bufs )
1051+ {
1052+ (void )bufs ;
1053+
1054+ if (isSettingSet (CHBX_MESA_ALT ))
10261055 {
10271056 const char * mesadir = iniValue ("[softgpu]" , "mesa_alt" );
10281057 if (mesadir )
@@ -1036,21 +1065,24 @@ BOOL setMesaDowngrade(char *buf, size_t bufs)
10361065}
10371066
10381067linerRule_t infFixRules [] = {
1039- {"CopyFiles=VBox.Copy,Dx.Copy,DX.CopyBackup,Voodoo.Copy" , TRUE, TRUE, setLineVbox },
1040- {"CopyFiles=VMSvga.Copy,Dx.Copy,DX.CopyBackup,Voodoo.Copy" , TRUE, TRUE, setLineSvga },
1041- {"CopyFiles=Qemu.Copy,Dx.Copy,DX.CopyBackup,Voodoo.Copy" , TRUE, TRUE, setLineQemu },
1042- {"AddReg=VBox.AddReg,VM.AddReg,DX.addReg,VM.regextra" , TRUE, TRUE, setLineVboxReg },
1043- {"AddReg=VMSvga.AddReg,VM.AddReg,DX.addReg,VM.regextra" , TRUE, TRUE, setLineSvgaReg },
1044- {"AddReg=Qemu.AddReg,VM.AddReg,DX.addReg,VM.regextra" , TRUE, TRUE, setLineQemuReg },
1045- {"HKLM,Software\\VMWSVGA,RGB565bug,,0" , TRUE, TRUE, setBug565 },
1046- {"HKLM,Software\\VMWSVGA,PreferFIFO,,0" , TRUE, TRUE, setBugPreferFifo },
1047- {"HKLM,Software\\Mesa3D\\global,SVGA_CLEAR_DX_FLAGS,,1" , TRUE, TRUE, setBugDxFlags },
1048- {"HKLM,Software\\VMWSVGA,VRAMLimit,," , FALSE, TRUE, setLimitVRAM },
1049- {";mefix:" , FALSE, TRUE, setLineMeFix },
1050- {";syscopy:" , FALSE, TRUE, setLineSyscopy },
1051- {";3dfx:" , FALSE, TRUE, setLine3DFX },
1052- {"mesa3d.dll=1" , TRUE, TRUE, setMesaDowngrade },
1053- {"vmwsgl32.dll=1" , TRUE, TRUE, setMesaDowngrade },
1068+ {"CopyFiles=VBox.Copy,Dx.Copy,DX.CopyBackup,Voodoo.Copy" , TRUE, TRUE, setLineVbox },
1069+ {"CopyFiles=VMSvga.Copy,Dx.Copy,DX.CopyBackup,Voodoo.Copy" , TRUE, TRUE, setLineSvga },
1070+ {"CopyFiles=Qemu.Copy,Dx.Copy,DX.CopyBackup,Voodoo.Copy" , TRUE, TRUE, setLineQemu },
1071+ {"AddReg=VBox.AddReg,VM.AddReg,DX.addReg,VM.regextra" , TRUE, TRUE, setLineVboxReg },
1072+ {"AddReg=VMSvga.AddReg,VM.AddReg,DX.addReg,VM.regextra" , TRUE, TRUE, setLineSvgaReg },
1073+ {"AddReg=Qemu.AddReg,VM.AddReg,DX.addReg,VM.regextra" , TRUE, TRUE, setLineQemuReg },
1074+ {"HKLM,Software\\vmdisp9x\\svga,RGB565bug,,0" , TRUE, TRUE, setBug565 },
1075+ {"HKLM,Software\\vmdisp9x\\svga,PreferFIFO,,1" , TRUE, TRUE, setBugPreferFifo },
1076+ {"HKLM,Software\\vmdisp9x\\apps\\global\\mesa,SVGA_CLEAR_DX_FLAGS,,0" , TRUE, TRUE, setBugDxFlags },
1077+ {"HKLM,Software\\vmdisp9x\\svga,VRAMLimit,,128" , FALSE, TRUE, setLimitVRAM },
1078+ //{";mefix:", FALSE, TRUE, setLineMeFix},
1079+ //{";syscopy:", FALSE, TRUE, setLineSyscopy},
1080+ {";switcher:" , FALSE, TRUE, setLineSwitcher },
1081+ {";3dfx:" , FALSE, TRUE, setLine3DFX },
1082+ {"mesa3d.dll=1" , TRUE, TRUE, setMesaAlternate },
1083+ {"vmwsgl32.dll=1" , TRUE, TRUE, setMesaAlternate },
1084+ {"mesa98.dll=1" , TRUE, TRUE, setMesaAlternate },
1085+ {"mesa99.dll=1" , TRUE, TRUE, setMesaAlternate },
10541086 {NULL , FALSE, FALSE, NULL }
10551087};
10561088
@@ -1116,35 +1148,39 @@ BOOL set_inf_regs(HWND hwnd)
11161148 strcat (dstfile , "\\" );
11171149 strcat (dstfile , iniValue ("[softgpu]" , "drvfile" ));
11181150
1119- if (isSettingSet (RAD_DD_HAL ))
1120- registryWriteInf ("HKLM\\Software\\DDSwitcher \\global" , "system" , WINREG_STR , dstfile );
1151+ if (isSettingSet (RAD_DD_WINE ))
1152+ registryWriteInf ("HKLM\\Software\\vmdisp9x \\global\\global\\ddraw " , "wine" , WINREG_STR , dstfile );
11211153 else
1122- registryWriteInf ("HKLM\\Software\\DDSwitcher \\global" , "wine " , WINREG_STR , dstfile );
1154+ registryWriteInf ("HKLM\\Software\\vmdisp9x \\global\\global\\ddraw " , "system " , WINREG_STR , dstfile );
11231155
11241156 if (isSettingSet (RAD_D8_NINE ))
1125- registryWriteInf ("HKLM\\Software\\D8Switcher\\global" , "ninemore" , WINREG_STR , dstfile );
1157+ registryWriteInf ("HKLM\\Software\\vmdisp9x\\global\\global\\d3d8" , "nine" , WINREG_STR , dstfile );
1158+ else if (isSettingSet (RAD_D8_NINE ))
1159+ registryWriteInf ("HKLM\\Software\\vmdisp9x\\global\\global\\d3d8" , "wine" , WINREG_STR , dstfile );
11261160 else
1127- registryWriteInf ("HKLM\\Software\\D8Switcher \\global" , "wine " , WINREG_STR , dstfile );
1161+ registryWriteInf ("HKLM\\Software\\vmdisp9x \\global\\global\\d3d8 " , "system " , WINREG_STR , dstfile );
11281162
11291163 if (isSettingSet (RAD_D9_NINE ))
1130- registryWriteInf ("HKLM\\Software\\D9Switcher\\global" , "nine" , WINREG_STR , dstfile );
1164+ registryWriteInf ("HKLM\\Software\\vmdisp9x\\global\\global\\d3d9" , "nine" , WINREG_STR , dstfile );
1165+ else if (isSettingSet (RAD_D8_NINE ))
1166+ registryWriteInf ("HKLM\\Software\\vmdisp9x\\global\\global\\d3d9" , "wine" , WINREG_STR , dstfile );
11311167 else
1132- registryWriteInf ("HKLM\\Software\\D9Switcher \\global" , "wine " , WINREG_STR , dstfile );
1168+ registryWriteInf ("HKLM\\Software\\vmdisp9x \\global\\global\\d3d9 " , "system " , WINREG_STR , dstfile );
11331169
1134- registryWriteInfDWORD ("HKLM\\Software\\VMWSVGA \\NoMultisample" , settingReadDW (CHBX_NO_MULTISAMPLE ), dstfile );
1135- registryWriteInfDWORD ("HKLM\\Software\\VMWSVGA \\AsyncMOBs" , settingReadDW (INP_ASYNCMOBS ), dstfile );
1170+ registryWriteInfDWORD ("HKLM\\Software\\vmdisp9x\\svga \\NoMultisample" , settingReadDW (CHBX_NO_MULTISAMPLE ), dstfile );
1171+ registryWriteInfDWORD ("HKLM\\Software\\vmdisp9x\\svga \\AsyncMOBs" , settingReadDW (INP_ASYNCMOBS ), dstfile );
11361172
1137- registryWriteInfDWORD ("HKLM\\Software\\Mesa3d \\SVGA_GMR_CACHE_ENABLED" , settingReadDW (CHBX_GMR_CACHE ), dstfile );
1173+ registryWriteInfDWORD ("HKLM\\Software\\vmdisp9x\\global\\mesa \\SVGA_GMR_CACHE_ENABLED" , settingReadDW (CHBX_GMR_CACHE ), dstfile );
11381174
11391175 if (settingReadDW (IMP_SVGA_MEM_MAX ) != 400 )
11401176 {
1141- registryWriteInfDWORD ("HKLM\\Software\\Mesa3D \\global\\SVGA_MEM_MAX" , settingReadDW (IMP_SVGA_MEM_MAX ), dstfile );
1177+ registryWriteInfDWORD ("HKLM\\Software\\vmdisp9x \\global\\mesa \\SVGA_MEM_MAX" , settingReadDW (IMP_SVGA_MEM_MAX ), dstfile );
11421178 }
1143-
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 );
11461179
1147- registryWriteInfDWORD ("HKLM\\Software\\VMWSVGA\\HWCursor" , settingReadDW (CHBX_HWCURSOR ), dstfile );
1180+ registryWriteInfDWORD ("HKLM\\Software\\vmdisp9x\\global\\mesa\\MESA_SW_GAMMA_ENABLED" , settingReadDW (CHBX_SW_GAMMA ), dstfile );
1181+ registryWriteInfDWORD ("HKLM\\Software\\vmdisp9x\\global\\mesa\\SVGA_DMA_TO_FB" , settingReadDW (CHBX_DMA_TO_FB ), dstfile );
1182+
1183+ registryWriteInfDWORD ("HKLM\\Software\\vmdisp9x\\svga\\HWCursor" , settingReadDW (CHBX_HWCURSOR ), dstfile );
11481184
11491185 return TRUE;
11501186}
@@ -1161,7 +1197,8 @@ BOOL apply_reg_fixes(HWND hwnd)
11611197 strcat (dstfile , "\\" );
11621198 strcat (dstfile , iniValue ("[softgpu]" , "drvfile" ));
11631199
1164- if (version_compare (& sysver , & WINVERME ) < 0 )
1200+ //if(version_compare(&sysver, &WINVERME) < 0)
1201+ if (1 ) /* delete in all cases */
11651202 {
11661203 registryDeleteInf ("HKLM\\System\\CurrentControlSet\\Control\\SessionManager\\KnownDLLs\\DDRAW" , dstfile );
11671204 }
0 commit comments