You are here

[Fixed]Halo Combat Evolved crashes with PAL

4 posts / 0 new
Last post
Bennieboj
Bennieboj's picture
Offline
Last seen: 4 years 10 months ago
Joined: 2010-09-16 07:28
[Fixed]Halo Combat Evolved crashes with PAL

Hi everyone,

I want to make Halo Combat Evolved (not Custom Edition) Portable.
There already is a launcher out there but since it's written in autoit3 and it doesn't backup the registry and such I wanted to do better. The only problem is that Halo doesn't like it when a process is attached to it, then it throws an exception, gathers data and closes/crashes.
This wasn't the case with the already existing launcher, I don't know why.

I already made a launcher in Autohotkey(a fork of AutoIt3), the game started normally, but it couldn't handle registry key as good as PAL. I tried to convert it to PAL. This works, all the registy keys/save files are backed up, but now the game crashes on startup. This doesn't happen when I start the normal game exe, so it should be caused by PAL somehow.
Does anybody have any idea what's the cause of this problem or how I could solve this problem?
Maybe custom code?

Thanks for your time!

AHK (Basic) code that worked (I suppose only only the launching of the exe is important):

; gameexe was halo.exe
; gamepath was A_WorkingDir
Runwait, %gameexe%, %gamepath%

launcher.ini

[Launch]
ProgramExecutable=Halo\halo.exe
WorkingDirectory=%PAL:AppDir%\Halo
LaunchAppAfterSplash=true
RunAsAdmin=force
SinglePortableAppInstance=true

[Activate]
Registry=true

[RegistryKeys]
haloHKCU=HKCU\Software\Microsoft\Microsoft Games\Halo

[RegistryCleanupIfEmpty]
1=HKCU\Software\Microsoft\Microsoft Games

; [FileWrite1]
; Type=Replace
; File=%PAL:DataDir%\settings\aomx.reg
; Find=%PAL:LastDrive%
; Replace=%PAL:Drive%

; [FileWrite2]
; Type=Replace
; File=%PAL:DataDir%\settings\aomx.reg
; Find=%PAL:LastPackagePartialDir:DoubleBackslash%
; Replace=%PAL:PackagePartialDir:DoubleBackslash%

[DirectoriesMove]
MyDoc=%DOCUMENTS%\My Games\Halo

[DirectoriesCleanupIfEmpty]
1=%DOCUMENTS%\My Games

custom.nsh (needed to register the latest msxml files)

${SegmentFile}

${SegmentPrePrimary}
    ExecWait 'RegSvr32 /S "$AppDirectory\Halo\msxml4\msxml4.dll"'
!macroend

${SegmentPostPrimary}
    ExecWait 'RegSvr32 /U /S "$AppDirectory\Halo\msxml4\msxml4.dll"'
!macroend
Chris Morgan
Chris Morgan's picture
Offline
Last seen: 8 years 11 months ago
Joined: 2007-04-15 21:08
Most likely: working directory

Not having set the working directory with the base app requiring it is the most likely cause. There could be others, too, and without seeing the launcher INI file and the AHK code which works I can't comment any further.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Bennieboj
Bennieboj's picture
Offline
Last seen: 4 years 10 months ago
Joined: 2010-09-16 07:28
Added the code you asked for

Sorry for not adding the code, fixed now.
Thanks for looking into this!

Yes, I set the working directory!

Bennieboj
Bennieboj's picture
Offline
Last seen: 4 years 10 months ago
Joined: 2010-09-16 07:28
Fixed (I guess)

I've added -Vidmode W,H,R as a command line parameter
from: http://hce.halomaps.org/index.cfm?nid=309
If you're gonna use this, read the description and the warning very carefully, don't ever overdo with the R(refresh) parameter!!

/thread

Yes, I set the working directory!

Log in or register to post comments