Game-compatibility: RainbowSix 3 [Tom Clancy's Rainbow Six 3] [US-019] [1.01]

Created on 6 Jan 2018  路  6Comments  路  Source: Cxbx-Reloaded/game-compatibility

Description

The game gets to the bootup loading screen before throwing an exception. No sound is present.

Received Exception Code 0xC0000005 @ EIP := 0x51106E0F

Dumps

RainbowSix3_Xbe.txt
RainbowSix3_KrnlDebug.txt
RainbowSix 3_HLECache.txt

Status

Previous behavior:
None Reported.

Current behavior:
The game gets to the bootup loading screen before throwing an exception. No sound is present.

Screenshots

capture

Additional Information

Tested on commit: f5ea8c693bc1d5a52dfc609ceae58aebf7a4a9f8 (Jan 05, 2018)

issue-audio issue-files issue-timing issue-video region-japan region-other region-us-canada state-interactive type-retail xdk-5659

All 6 comments

New XBE with direct FTP dump from disc drive.

Xbe.txt

With Pull Request #848 (git commit 5ce5da70368d5a3b0129b059a05c43e26fedf078), the game now gets passed the Ubisoft intro, the game intro (but ends quickly without pressing any buttons), and the ESRB online rating warning before throwing an exception:

Received Exception Code 0xC0000005 @ EIP := 0x0405A5FE

I traced the error down to the patched D3DTexture_GetSurfaceLevel2 function:

HLECache: 0x003b9000 -> D3DTexture_GetSurfaceLevel2 PATCHED

In that function, this function call is returning a null pointer:

IDirect3DTexture8 *pHostTexture = GetHostTexture(pThis);

Tracing back up further, GetHostTexture() returns the value of pThis->Lock. In this case, pThis->Lock = 0x0, which causes a nullptr exception when this line is executed shorty after:

HRESULT hRet = pHostTexture->GetSurfaceLevel(Level, &pNewHostSurface);

Placing a data breakpoint on pThis->Lock shows only one place where it is being modified before the exception is thrown. A 'rep movs' instruction seems to set the value. From the debug KrnlDebug logs and the disassembly of the location where pThis->Lock is modified, it looks like NV2A operations are occurring, but nothing is happening of course since the N2Va operations are NOPs essentially...At this point I do not know where to take the debug further and will defer to the experts.

KrnlDebug.txt

Sounds like a missing direct3d patch. Either a function we implement and didn't find in this title, or one we don't know about at all. Game needs investigation to figure out what function it is. (Currently we need to patch all functions that alter the Lock field)

Description


Cxbx-Reloaded (Version 16256597 (May 16 2018))

The menus are displayed completely, it is possible to come in-game. The hud is displayed completely, but no environment graphics, the sound output is perfect. The intro videos are not played or are not displayed graphically. Once in-game you can move and look around (but only the hud is displayed), no error messages appear.

Status

Previous behavior:

state-booting

Current behavior:

state-interactive

Screenshots

image
image
image

Nightvision is disorted, Thermal vision is just a blank blue. Some soundeffects are missing from the start (ingame) like zooming in. Many other soundeffects get lost after a minute while in a mission, they also don麓t come back when restarting mission etc. Game gets stuck when loading a NEW mission, restarting played mission will work. Ingame saving doesn麓t work, outputs this error message:

error 5

Not being able to get into missions anymore, it麓s worse now. Crashing and getting this error where the loading sequence should be (has always been a black screen)
CXBX

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bryce13950 picture bryce13950  路  3Comments

ghost picture ghost  路  3Comments

PatrickvL picture PatrickvL  路  3Comments

heavycube4u picture heavycube4u  路  3Comments

PatrickvL picture PatrickvL  路  3Comments