Jump to content
Compatible Support Forums
Sign in to follow this  
DosFreak

Doom 3 won't install on 9x/NT4/2003. Here's the fix:

Recommended Posts

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.

Share this post


Link to post

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×