发新话题
打印

【教学】微软安装光盘集成教学系列(3)Directx 8替换为DX9

【教学】微软安装光盘集成教学系列(3)Directx 8替换为DX9


http://www.msfn.org/board/index.php?showtopic=10665
以上是我在MSFN发的帖子,没什么时间翻译回中文了。就贴英文的出来吧!^_^,
为了照顾国内的朋友,还是再简单翻译一下吧
具体过程如下:
Many people use batch files such as "start wait ........\dxsetup.exe" to update Directx 8.1 to Directx 9.0, but why windows setup intall Directx 8.1 first ,and then install Directx 9.0last? , BTW, I think it will get more time for windows setup.
许多做集成光盘的朋友使用"start wait ........\dxsetup.exe"的批命令处理文件来把DX8升级到DX9,但是为什么要让windows 安装程序先安装DX8,然后又安装DX9呢?我想这会浪费很多的时间
so, I replace the Directx 8.1 install with Directx 9.0 install during windows setup:
所以,我直接把安装光盘上的DX8替换成DX9
1)download DirectX 9.0b Redistributable here:
http://download.microsoft.com/downl...x90b_redist.exe
首先,下载DX9版本,这个连接是英文的,中文的自己找一找!
2)Execute dx90b_redist.exe, accept the EULA, then choose to extract to temp folder:
运行dx90b_redist.exe。选择接受许可协议,然后释放文件到临时目录\temp
3)del ususe files on this temp folder, only keep two files:
BDAXP.CAB
DXNT.CAB
把temp目录的文件全部删除,仅保留:
BDAXP.CAB
DXNT.CAB

4)Extraxt this two .cab files to one folder"dx9"
把这两个.cab文件全部提取到一个目录:\dx9
5)open the file named"dxver.inf",and then mark all it will addreg or delreg
key to regfiles:
[version]
Signature="$Windows NT$"
[DefaultInstall]
AddReg=add.reg
[add.reg]
HKLM,"%DX%"
HKLM,"%DX%","Version",,"4.09.00.0902"
HKLM,"%DX%","RC",,"2"
HKLM,"%DX%","Debug",,"0"
HKLM,"%DX%","InstalledVersion",0x00030001,00,00,00,09,00,00,00,00
[Strings]
DX = "Software\Microsoft\DirectX"
打开dxver.inf,把里面的内容全部记录下来
6)ren this filenameyou need to del the old files"dinput.dll" first.etc)
dinput.xpg--->dinput.dll
dinput8.xpg--->dinput8.dll
dxapi.xpg---->dxapi.sys
gcdef.xpg---->gcdef.dll
joy.xpg---->joy.cpl
pid.xpg---->pid.dll
把dx9目录里的上述文件改名(你首先要删除某些文件。例如dinput.dll等等)
7)del all the *.inf/*.sys/*.png/*.ini
,but keep the file "dxdllreg.inf"
;if you don't del *.sys files ,you will get a warning box during GUI setup "driver whql"
删除所有的*.inf/*.sys/*.png/*.ini,但保留dxdllreg.inf
8)ren dpnlobby.dll to dpnlobby.xpg
ren dpnaddr.dll to dpnaddr.xpg
ren dx9bdaxp.cat to dx9bda.cat
依次把上面3个文件改名
9)remove dx9bda.cat and dxxp.cat to \i386\svcpack.and then add lines in you svcpack.inf "[ProductCatalogsToInstall] ":
dxxp.cat
dx9bda.cat
把dxxp.cat、dx9bda.cat复制到\i386\svcpack,并且在 svcpack.inf 里的[ProductCatalogsToInstall] 内添加
dxxp.cat
dx9bda.cat

10)create the files dx9.reg:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay8\Service Providers\DPNSPModemModem]
"Friendly Name"="DirectPlay8 moden Provider Object"
"GUID"="{6D4A3650-628D-11D2-AE0F-006097B01411}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay8\Service Providers\DPNSPModemSerial]
"Friendly Name"="DirectPlay8 serial Provider Object"
"GUID"="{743B5D60-628D-11D2-AE0F-006097B01411}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay8\Service Providers\DPNSPWinsockIPX]
"Friendly Name"="DirectPlay8 IPX Provider Object"
"GUID"="{53934290-628D-11D2-AE0F-006097B01411}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay8\Service Providers\DPNSPWinsockTCP]
"Friendly Name"="DirectPlay8 TCP/IP Provider Object"
"GUID"="{EBFE7BA0-628D-11D2-AE0F-006097B01411}"
[HKEY_CLASSES_ROOT\CLSID\{6D4A3650-628D-11D2-AE0F-006097B01411}]
@="DirectPlay8 Modem Provider Object"
[HKEY_CLASSES_ROOT\CLSID\{6D4A3650-628D-11D2-AE0F-006097B01411}\InProcServer32]
@="dpnet.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{6D4A3650-628D-11D2-AE0F-006097B01411}\ProgID]
@="DirectPlay8SPModem.Modem.1"
[HKEY_CLASSES_ROOT\CLSID\{6D4A3650-628D-11D2-AE0F-006097B01411}\VersionIndependentProgID]
@="DirectPlay8SPModem.Modem"
[HKEY_CLASSES_ROOT\CLSID\{743B5D60-628D-11D2-AE0F-006097B01411}]
@="DirectPlay8 Serial Provider Object"
[HKEY_CLASSES_ROOT\CLSID\{743B5D60-628D-11D2-AE0F-006097B01411}\InProcServer32]
@="dpnet.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{743B5D60-628D-11D2-AE0F-006097B01411}\ProgID]
@="DirectPlay8SPModem.Serial.1"
[HKEY_CLASSES_ROOT\CLSID\{743B5D60-628D-11D2-AE0F-006097B01411}\VersionIndependentProgID]
@="DirectPlay8SPModem.Serial"
[HKEY_CLASSES_ROOT\CLSID\{53934290-628D-11D2-AE0F-006097B01411}]
@="DirectPlay8 WSock IPX Provider Object"
[HKEY_CLASSES_ROOT\CLSID\{53934290-628D-11D2-AE0F-006097B01411}\InProcServer32]
@="dpnet.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{53934290-628D-11D2-AE0F-006097B01411}\ProgID]
@="DirectPlay8SPWSock.IPX.1"
[HKEY_CLASSES_ROOT\CLSID\{53934290-628D-11D2-AE0F-006097B01411}\VersionIndependentProgID]
@="DirectPlay8SPWSock.IPX"
[HKEY_CLASSES_ROOT\CLSID\{EBFE7BA0-628D-11D2-AE0F-006097B01411}]
@="DirectPlay8 WSock TCPIP Provider Object"
[HKEY_CLASSES_ROOT\CLSID\{EBFE7BA0-628D-11D2-AE0F-006097B01411}\InProcServer32]
@="dpnet.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{EBFE7BA0-628D-11D2-AE0F-006097B01411}\ProgID]
@="DirectPlay8SPWSock.TCPIP.1"
[HKEY_CLASSES_ROOT\CLSID\{EBFE7BA0-628D-11D2-AE0F-006097B01411}\VersionIndependentProgID]
@="DirectPlay8SPWSock.TCPIP"

;
;这里会在下次启动的时候调入cleanup.cmd,以便替换dpnlobby.dll 和dpnaddr.dll
;
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
"CLEANUP"=hex(2):63,00,6d,00,64,00,20,00,2f,00,63,00,20,00,73,00,74,00,61,00,\
72,00,74,00,20,00,2f,00,6d,00,69,00,6e,00,20,00,63,00,6d,00,64,00,20,00,2f,\
00,63,00,20,00,25,00,53,00,59,00,53,00,54,00,45,00,4d,00,52,00,4f,00,4f,00,\
54,00,25,00,5c,00,53,00,59,00,53,00,54,00,45,00,4d,00,33,00,32,00,5c,00,43,\
00,4c,00,45,00,41,00,4e,00,55,00,50,00,2e,00,43,00,4d,00,44,00,00,00
; it would call the cleanup.cmd at next boot
;cleanup.cmd will replace dpnlobby.dll and dpnaddr.dll
建立如上内容的dx9.reg的文件
11)create the file named"dx9.inf"
[version]
Signature="$Windows NT$"
[DefaultInstall]
AddReg=add.reg
[add.reg]
HKLM,"%DX%"
HKLM,"%DX%","Version",,"4.09.00.0902"
HKLM,"%DX%","RC",,"2"
HKLM,"%DX%","Debug",,"0"
HKLM,"%DX%","InstalledVersion",0x00030001,00,00,00,09,00,00,00,00
HKLM,"%KEY_WIN_CURVER%\RunOnce","dx9_dllreg",0x00020002, "%systemroot%\system32\dxdllreg.exe"
HKLM,"%KEY_WIN_CURVER%\RunOnce","dx9_update",0x00020002, "%systemroot%\regedit.exe /s %systemroot%\system32\dx9.reg"
[Strings]
KEY_WIN_CURVER="Software\Microsoft\Windows\CurrentVersion"
DX = "Software\Microsoft\DirectX"
建立如上内容的dx9.inf文件
12)create the file name"cleanup.cmd":
IF EXIST %SYSTEMROOT%\SYSTEM32\dllcache\dpnaddr.dll REN %SYSTEMROOT%\SYSTEM32\dpnaddr.dll dpnaddr.OLD > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\dpnaddr.XPG copy "%SYSTEMROOT%\SYSTEM32\dpnaddr.XPG" "%SYSTEMROOT%\SYSTEM32\dllcache\dpnaddr.dll" > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\dllcache\dpnlobby.dlL REN %SYSTEMROOT%\SYSTEM32\dpnlobby.dlL dpnlobby.OLD > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\dpnlobby.XPG copy "%SYSTEMROOT%\SYSTEM32\dpnlobby.XPG" "%SYSTEMROOT%\SYSTEM32\dllcache\dpnlobby.dll" > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\dpnaddr.dll REN %SYSTEMROOT%\SYSTEM32\dpnaddr.dll dpnaddr.OLD > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\dpnaddr.XPG REN %SYSTEMROOT%\SYSTEM32\dpnaddr.XPG dpnaddr.DLL > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\dpnlobby.dlL REN %SYSTEMROOT%\SYSTEM32\dpnlobby.dlL dpnlobby.OLD > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\dpnlobby.XPG REN %SYSTEMROOT%\SYSTEM32\dpnlobby.XPG dpnlobby.dlL > NUL
IF EXIST %SYSTEMROOT%\SYSTEM32\CLEANUP.CMD DEL %SYSTEMROOT%\SYSTEM32\CLEANUP.CMD > NUL
建立如上内容的cleanup.cmd文件
13)at last "dx9 "folder look like this:
最后你的dx9目录应该类似这样:
amstream.dll
d3d8.dll
d3d8thk.dll
d3d9.dll-------;>new
d3dim700.dll
ddraw.dll
ddrawex.dll
devenum.dll
dijoy.hlp
dimap.dll
dinput.dll
dinput8.dll
dmband.dll
dmcompos.dll
dmime.dll
dmloader.dll
dmscript.dll
dmstyle.dll
dmsynth.dll
dmusic.dll
dplaysvr.exe
dplayx.dll
dpmodemx.dll
dpnaddr.XPG;--->new
dpnet.dll
dpnhpast.dll
dpnhupnp.dll
dpnlobby.XPG;----->new
dpnsvr.exe
dpvacm.dll
dpvoice.dll
dpvsetup.exe
dpvvox.dll
dpwsockx.dll
dsdmo.dll
dsdmoprp.dll
dsound.dll
dsound3d.dll
dswave.dll
dx7vb.dll
dx8vb.dll
dxdiachs.chm
dxdiag.chm
dxdiag.exe
dxdiagn.dll;--->new
dxdllreg.exe;-->new
dxdllreg.inf;-->new
encapi.dll
ksuser.dll
mciqtz32.dll
msdmo.dll
mswebdvd.dll
qasf.dll
qcap.dll
qdv.dll
qdvd.dll
qedit.dll
qedwipes.dll
quartz.dll
dx9.reg;-->new
dx9.inf;-->new
cleanup.cmd;-->new
14)compress all files on the folder dx9 (*.exe/*.dll/*.xpg/*.inf),and then copy to \i386 folder,you can found new files between dx8 and dx9:
把所有DX9目录下的文件压缩,复制到\i386,以下是新的文件
d3d9.dll;----->new
dpnaddr.XPG;----->new
dpnlobby.XPG;----->new
dxdiagn.dll;--->new
dxdllreg.inf;-->new
dxdllreg.exe;---->new
dx9.reg;-->new
dx9.inf;-->new
cleanup.cmd;-->new
15)edit the file dosnet.inf and txtsetup.sif, add the newfile in them:
编辑你的 dosnet.inf 和 txtsetup.sif,把下面的文件加进去
dosnet.inf:
d1,d3d9.dll;----->new
d1,dpnaddr.XPG;----->new
d1,dpnlobby.XPG;----->new
d1,dxdiagn.dll;--->new
d1,dxdllreg.inf;-->new
d1,dxdllreg.exe;--->new
d1,dx9.reg;-->new
d1,dx9.inf;-->new
d1,cleanup.cmd;-->new
txtsetup.sif:
d3d9.dll=100,,,,,,,2,0,0
dpnaddr.XPG=100,,,,,,,2,0,0
dpnlobby.XPG=100,,,,,,,2,0,0
dxdiagn.dll=100,,,,,,,2,0,0
dxdllreg.inf=100,,,,,,,2,0,0
dxdllreg.exe=100,,,,,,,2,0,0
dx9.reg=100,,,,,,,2,0,0
dx9.inf=100,,,,,,,2,0,0
cleandup.cmd=100,,,,,,,2,0,0
16)now in you winnt.sif you can use [guirunone] to run dx9.inf
you can use cmdlines.txt to run it.....
最后,你可以在winnt.sif里面的 [guirunone] 段内运行dx9.inf
运行语法可参考微软相关网站:
"rundll32 setupapi,InstallHinfSection DefaultInstall 128 %10%\dx9.inf"
;Because I had replace WMP8 to WMP9 .I don't use this two way ,but add the laylist of "dx9.inf" in the wmp.inf.
; why use cleanup.cmd to replace dpnlobby.dll and dpnaddr.dll? because I found if I replace them on \i386, during windows setup , the OLE regdll section will get error ,so I need to do this .
为什么要用 cleanup.cmd 来替换dpnlobby.dll 和dpnaddr.dll?,而不是直接替换\i386目录下的?因为不这样做的话。OLE控件注册的时候就会报错,只有先用DX8版本的注册后,再替换才可以。

TOP

【教学】微软安装光盘集成教学系列(3)Directx 8替换为DX9

多谢 微软破解中心 给我们带来这些知识,希望继续介绍些好东西。
威望加 1 。

TOP

【教学】微软安装光盘集成教学系列(3)Directx 8替换为DX9

有一个问题,上边说:
6)ren this filenameyou need to del the old files"dinput.dll" first.etc)
dinput.xpg--->dinput.dll
dinput8.xpg--->dinput8.dll
dxapi.xpg---->dxapi.sys
gcdef.xpg---->gcdef.dll
joy.xpg---->joy.cpl
pid.xpg---->pid.dll
把dx9目录里的上述文件改名(你首先要删除某些文件。例如dinput.dll等等)
7)del all the *.inf/*.sys/*.png/*.ini
,but keep the file "dxdllreg.inf"
;if you don't del *.sys files ,you will get a warning box during GUI setup "driver whql"
删除所有的*.inf/*.sys/*.png/*.ini,但保留dxdllreg.inf
既然*.sys要删,为什么dxapi.xpg还要改成dxapi.sys?

TOP

【教学】微软安装光盘集成教学系列(3)Directx 8替换为DX9

看原贴吧,明白多了

TOP

【教学】微软安装光盘集成教学系列(3)Directx 8替换为DX9

我见过的最有水平的贴子!
好好学习,天天向上!

TOP

发新话题