Game-compatibility: Halo [Halo - Combat Evolved] [MS-004] [1.01]

Created on 15 Aug 2017  Â·  32Comments  Â·  Source: Cxbx-Reloaded/game-compatibility

Issues:

  • Crash on bootup (=XNetGetEthernetLinkStatus+0x7ab)

_From @haradons on May 25, 2017 22:50_

Didn't see anything as far as error codes for Halo. As soon as it boots up it crashes.
image

image
KrnlDebug.txt

_Copied from original issue: Cxbx-Reloaded/Cxbx-Reloaded#479_

issue-input issue-regression issue-video language-english region-japan region-other region-us-canada state-unresponsive type-retail xbe-tampered-with xdk-3911 xdk-3925 xdk-3936 xdk-3937 xdk-3948

Most helpful comment

KrnlDebug.txt
Gets into Menu, however menu is completely black, once through the menu:
image
image
Then starts playing a cut scene with this rendered:
image
image
image
image
image

Finally gets stuck repeating some lines of dialog from the cutscene

All 32 comments

At some point in time we should compare the symbol addresses we write to our HLE cache file of Halo, to the symbol addresses Xeon had in it's halo.ini file. Perhaps our symbol detection is still not entirely correct, or we could lack a crucial patch. (Although I'd rather see us patch _less_ instead of _more_ functions.)

_From @LukeUsher on June 1, 2017 9:0_

There are quite a few things going on with Halo that make it problematic to emulate. Xeon had game specifics hacks for it too (There's a flag in the .ini file for a Halo memory hack).

I do check Halo/work on it quite often, but no notable progress so far. I suspect that once Patrick's Work In Progress branch is merged in, we'll be closer to getting it working, among other things, Halo seems to like creating and using resources without calling Register.

_From @blueshogun96 on June 5, 2017 0:30_

@LukeUsher, I do recall that day when sir caustik said that Halo likes to modify its textures at odd times. I guess that's a hint. Also, there's a hack where the bunk videos are skipped intentionally. At one point, I do recall a screenshot of Cxbx running the intro video upside down. The halo thing was quite a mystery to me as I couldn't quite figure out myself what the issue was.

Shogun

I'll definitely look into this one, once my work in progress branch is nearing is completion

_From @ergo720 on July 25, 2017 13:45_

Well, with the latest build, it now crashes with a different error.
PAL, win10, 3ca1a354

KrnlDebug.txt
1.01: Xbe.txt

halo

As of commit 4fd2c7c2e9691079cfd0523f66c388cd27569518 (Jan 12 2018), Halo still crashes before anything is shown with a new exception:

Received Exception Code 0xC0000005 @ EIP := 0x001B7CA7(=send+0x6a83)

1.09: Halo_Xbe.txt
KrnlDebug.txt

Additional information: Tested JPN version with 4fd2c7c2.
After loading intro.bik, write to unknown address then crashed.

[0x0EC0] WARN: EmuX86_Write(0x83434000, 0x00000000) [Unknown address]
[0x0EC0] WARN: EmuX86_Write(0x83434002, 0x00000000) [Unknown address]
[0x0EC0] WARN: EmuX86_Write(0x83434004, 0x00000000) [Unknown address]
[0x0EC0] WARN: EmuX86_Write(0x83434006, 0x00000000) [Unknown address]

1.06: Xbe (JP).txt
KrnlDebug.zip

Crashes with error but plays some looped audio before it does. I only heard audio on first try. I tried several more times and never heard anything again but got the same error.

EDIT: I found that if I delete the related folder in %appdata% before boot I can get Halo to boot with audio.

Cxbx-Reloaded
---------------------------
Received Exception Code 0xC0000005 @ EIP := 0x001B7CA7(=send+0x6a83)

  Press "OK" to terminate emulation.
  Press "Cancel" to debug.
---------------------------
OK   Cancel   
---------------------------

KrnlDebug.txt
1.09: Xbe.txt
Halo-b6a274a6.txt

Tested on 735a4bcf (Feb 6 2018)

It causes a null exception when calling D3DDevice_GetBackBuffer function. Perhaps related this issue by https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/924.

Cxbx-Reloaded
---------------------------
Received Exception Code 0xC0000005 @ EIP := 0x00000000(=unknown+0x0)

  Press "OK" to terminate emulation.
  Press "Cancel" to debug.
---------------------------
OK   キャンセル   
---------------------------

null

KrnlDebug.txt

Tested on d57aa2be

Actually, it looks like D3DDevice_GetBackBuffer AND D3DDevice_GetBackBuffer2 aren't assigned, but only the first is verified, not the latter, which is probably the cause for this exception

D3DDevice_GetBackBuffer must be assigned, or how did it get called? It's shown in the stack trace...

Hm. Then perhaps it's calling convention or arguments aren't declared right...

Still strange how the cursor indicates the call to D3DDevice_GetBackBuffer2 failed. Which implies the trampoline to D3DDevice_GetBackBuffer isn't assigned, even though the call originates from EmuPatch_D3DDevice_GetBackBuffer...

But regardless, the trampoline to D3DDevice_GetBackBuffer2 isn't assigned checked...

@LukeUsher @PatrickvL I am sorry for making you confused. This is a matter of my repository.
I tested on Automated Builds, but D3DDevice_GetBackBuffer does not cause a crash.

On the latest builds, Halo shows some in-menu graphics, however it's pretty buggy, and can only be viewed with the 'disable pixel shader' hack, otherwise it's just all a black screen. The sound is pretty stuttery also.

Menus can be navigated, but I've found it often just ends up freezing during the first 5 seconds or so of interaction...

halo

About intro FMV playback. Fixed by https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/pull/1002 writing to an unknown address. Still blackscreen with/without the 'disable pixel shader' hack, but the sound is good.

HLE: black screen with audio playing then stuck forever
LLE: reaches title screen with audio but doesn't get in-game and cxbx just quits the emulation. Also it's extremely slow (almost always 1 FPS)
halo
KrnlDebug-HLE.zip
KrnlDebug-LLE.txt

KrnlDebug.txt
Gets into Menu, however menu is completely black, once through the menu:
image
image
Then starts playing a cut scene with this rendered:
image
image
image
image
image

Finally gets stuck repeating some lines of dialog from the cutscene

The game boots. I get a black screen with the intro audio/music. Then the game crashes.

1.09: Xbe.txt

KrnlDebug.txt

Tested on:
Intel Xeon W3565 3.20GHz CPU
NVIDIA GeForce GT 730 2GB GPU
24GB DDR3 RAM

Boots in the August 3, 2019 build, the FMVs play sound, but only show a black and red gradient, then goes into a menu with corrupted text, crashes upon starting campaign or when selecting a map for multiplayer
image

On Cxbx-Reloaded/cxbx-reloaded@c282b1e8 the game has regressed, going back to a black screen with sound, and has remained this way up to Cxbx-Reloaded/cxbx-reloaded@e5dc2e5e

@LanHikariDS that commit doesn't appear in this list : https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/commits/develop - could you post a direct link to it?

https://ci.appveyor.com/project/SoullessSentinel/cxbx-reloaded/builds/28037247 This build, however the regression has been ironed out in Cxbx-Reloaded/cxbx-reloaded@12880255, so this is a moot point

https://ci.appveyor.com/project/SoullessSentinel/cxbx-reloaded/builds/28037247 This build, however the regression has been ironed out in 12880255 (Oct 14, 2019), so this is a moot point

this build is still black screen with sound for me ^
the current build 1769 doesnt boot it at all.

Levels load, and have been for quite a while. Though more often than not, the levels won't load properly (A valid load is denoted by humming sound effect, as the final game does)
However, there seems to be a discrepancy between game versions and their functionality. In build c03a2f8b, v1.01 can load Pillar of Autumn just fine, and even get in-game (With some visual issues), whereas v1.08 will always crash upon trying to load PoA (Even with a valid load)
image
v1.08 will load Halo and The Truth and Reconciliation with a valid load, but the graphics are heavily broken, and will crash soon after gameplay starts.

Levels load, and have been for quite a while. Though more often than not, the levels won't load properly (A valid load is denoted by humming sound effect, as the final game does)
However, there seems to be a discrepancy between game versions and their functionality. In build c03a2f8b, v1.01 can load Pillar of Autumn just fine, and even get in-game (With some visual issues), whereas v1.08 will always crash upon trying to load PoA (Even with a valid load)
image
v1.08 will load Halo and The Truth and Reconciliation with a valid load, but the graphics are heavily broken, and will crash soon after gameplay starts.

Behaviour like this is pretty common, that’s why we ask for different versions to be counted as different games in the compatibility tracker

You say as we just closed two different Halo pages for being dupes...

@LanHikariDS #945 was garbage. You're more than welcome to make a report with a version other than 1.01.

936 was also closed, and that one was decent, at the very least

latest dev build loads but if exclusive fullscreen is checked

image

The most recent build only produces a black screen.

KrnlDebug.txt

Was this page helpful?
0 / 5 - 0 ratings

Related issues

PatrickvL picture PatrickvL  Â·  3Comments

fatjohnny118 picture fatjohnny118  Â·  3Comments

fatjohnny118 picture fatjohnny118  Â·  3Comments

mnadareski picture mnadareski  Â·  3Comments

hotzenplotz3000 picture hotzenplotz3000  Â·  3Comments