Doom 3 won't install on 9x/NT4/2003. Here's the fix:
Quote:darkgamorck Ars Praetorian Tribus: Greenville, SC Registered: August 07, 2001 Posts: 1919 AIM does not support status - click here for the profile. Mood of the topic. posted August 02, 2004 01:11 Reply With QuoteEdit or Delete Message Okay guys.
http://episteme.arstechnica.com/eve/ubb.x?a=tpc&s=50009562&f=39309975&m=478001635631
Quote:darkgamorck
Ars Praetorian
Tribus: Greenville, SC
Registered: August 07, 2001
Posts: 1919
AIM does not support status - click here for the profile.
Mood of the topic. posted August 02, 2004 01:11 Reply With QuoteEdit or Delete Message
Okay guys. Apparently the installer package for Doom III is setup to disallow install to a 1) Windows 2003 and 2) Windows 9x and 3) Windows NT 4.0. While we all know that item 3 really isn't an issue as NT couldn't run this game anyway.... the other two have got a few people ticked off. In an effort to combat this, I have written a VBScript that modifies the Windows Installer package "Doom 3.msi" provided on the CD and removes these restrictions.
Below is the code:
'Fixes Doom 3.msi file and allows it to install to Windows 2003 and allows you to run the MSI file directly.
'by darkgamorck aka gamorck. Remember the MSI file must NOT be opened by any process while this code is running.
'To execute this code save it into a VBS file. And drag the Doom 3.msi file onto it. This will produce a nice new
'MSI file that enables you to install it anywhere (even on win9x in theory). How you install with this MSI file is
'your own problem. You can reburn a new CD replacing the old MSI file with this new one. Or you can run setup.exe /A
'and administratively copy all of the files to some directly - replace the resulting MSI file in that directory and then
'execute setup that way. Whatever way works for you works for me.
'Cheers.
Option Explicit
Const msiOpenDatabaseModeReadOnly = 0
Const msiOpenDatabaseModeTransact = 1
Dim argNum, argCount:argCount = Wscript.Arguments.Count
If (argCount < 1) Then
Wscript.Echo "Please supply the name of the msi file to be modified."
Wscript.Quit 1
End If
' Scan arguments for valid SQL keyword and to determine if any update operations
Dim openMode : openMode = msiOpenDatabaseModeReadOnly
openMode = msiOpenDatabaseModeTransact
' Connect to Windows installer object
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError
' Open database
Dim databasePath:databasePath = Wscript.Arguments(0)
Dim database : Set database = installer.OpenDatabase(databasePath, openMode) : CheckError
' Process SQL statements and delete the crap out of this installer!
Dim query, view, record, message, rowData, columnCount, delim, column
Set view = database.OpenView("Delete from LaunchCondition") : CheckError
view.Execute
wscript.echo "Launch Conditions Removed"
Set view = database.OpenView("Delete from InstallExecuteSequence where Action='OnCheckSilentInstall'")
view.Execute
wscript.echo "OnCheckSilentInstall step removed"
Set view = database.OpenView("Delete from Property where Property = 'ISSETUPDRIVEN'")
view.Execute
wscript.echo "Property ISSETUPDRIVEN removed"
Set view = database.OpenView("INSERT INTO Property (Property,Value) VALUES ('ISSETUPDRIVEN',1)")
view.Execute
wscript.echo "Property ISSETUPDRIVEN added"
database.Commit
Wscript.Quit 0
Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbLf & errRec.FormatText
End If
Fail message
End Sub
Sub Fail(message)
Wscript.Echo message
Wscript.Quit 2
End Sub
It's quite simple really. After executing this you will need to integrate it into the CD or replace the MSI dumped to disk during an Admin network install of the package (setup.exe /A). After this you should be able to install and perhaps even play Doom 3 on any Windows compatible system you wish (though I doubt Windows NT 4.0 will even work and I somewhat doubt that 9x will either).
I hope this helps somebody out there other than myself. Cheers.
Quote:darkgamorck
Ars Praetorian
Tribus: Greenville, SC
Registered: August 07, 2001
Posts: 1919
AIM does not support status - click here for the profile.
Mood of the topic. posted August 02, 2004 01:11 Reply With QuoteEdit or Delete Message
Okay guys. Apparently the installer package for Doom III is setup to disallow install to a 1) Windows 2003 and 2) Windows 9x and 3) Windows NT 4.0. While we all know that item 3 really isn't an issue as NT couldn't run this game anyway.... the other two have got a few people ticked off. In an effort to combat this, I have written a VBScript that modifies the Windows Installer package "Doom 3.msi" provided on the CD and removes these restrictions.
Below is the code:
'Fixes Doom 3.msi file and allows it to install to Windows 2003 and allows you to run the MSI file directly.
'by darkgamorck aka gamorck. Remember the MSI file must NOT be opened by any process while this code is running.
'To execute this code save it into a VBS file. And drag the Doom 3.msi file onto it. This will produce a nice new
'MSI file that enables you to install it anywhere (even on win9x in theory). How you install with this MSI file is
'your own problem. You can reburn a new CD replacing the old MSI file with this new one. Or you can run setup.exe /A
'and administratively copy all of the files to some directly - replace the resulting MSI file in that directory and then
'execute setup that way. Whatever way works for you works for me.
'Cheers.
Option Explicit
Const msiOpenDatabaseModeReadOnly = 0
Const msiOpenDatabaseModeTransact = 1
Dim argNum, argCount:argCount = Wscript.Arguments.Count
If (argCount < 1) Then
Wscript.Echo "Please supply the name of the msi file to be modified."
Wscript.Quit 1
End If
' Scan arguments for valid SQL keyword and to determine if any update operations
Dim openMode : openMode = msiOpenDatabaseModeReadOnly
openMode = msiOpenDatabaseModeTransact
' Connect to Windows installer object
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError
' Open database
Dim databasePath:databasePath = Wscript.Arguments(0)
Dim database : Set database = installer.OpenDatabase(databasePath, openMode) : CheckError
' Process SQL statements and delete the crap out of this installer!
Dim query, view, record, message, rowData, columnCount, delim, column
Set view = database.OpenView("Delete from LaunchCondition") : CheckError
view.Execute
wscript.echo "Launch Conditions Removed"
Set view = database.OpenView("Delete from InstallExecuteSequence where Action='OnCheckSilentInstall'")
view.Execute
wscript.echo "OnCheckSilentInstall step removed"
Set view = database.OpenView("Delete from Property where Property = 'ISSETUPDRIVEN'")
view.Execute
wscript.echo "Property ISSETUPDRIVEN removed"
Set view = database.OpenView("INSERT INTO Property (Property,Value) VALUES ('ISSETUPDRIVEN',1)")
view.Execute
wscript.echo "Property ISSETUPDRIVEN added"
database.Commit
Wscript.Quit 0
Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbLf & errRec.FormatText
End If
Fail message
End Sub
Sub Fail(message)
Wscript.Echo message
Wscript.Quit 2
End Sub
It's quite simple really. After executing this you will need to integrate it into the CD or replace the MSI dumped to disk during an Admin network install of the package (setup.exe /A). After this you should be able to install and perhaps even play Doom 3 on any Windows compatible system you wish (though I doubt Windows NT 4.0 will even work and I somewhat doubt that 9x will either).
I hope this helps somebody out there other than myself. Cheers.
Participate on our website and join the conversation
This topic is archived. New comments cannot be posted and votes cannot be cast.