rexdex/recompiler

GTA IV crashes after launching

Opened this issue · 8 comments

Image: Unimplemented import function 'XNotifyPositionUI' at 0x82A023DC. Crash possible. Image: Unimplemented import function 'XamShowGamerCardUIForXUID' at 0x82A0245C. Crash possible. Image: Unimplemented import function 'XamShowPlayerReviewUI' at 0x82A0246C. Crash possible. Image: Unimplemented import function 'XamShowDirtyDiscErrorUI' at 0x82A0248C. Crash possible. Image: Unimplemented import function 'XMsgStartIORequest' at 0x82A0249C. Crash possible. Image: Unimplemented import function 'XamUserGetName' at 0x82A024AC. Crash possible. Image: Unimplemented import function 'XamUserAreUsersFriends' at 0x82A024CC. Crash possible. Image: Unimplemented import function 'XamUserCheckPrivilege' at 0x82A024DC. Crash possible. Image: Unimplemented import function 'XamGetSystemVersion' at 0x82A024EC. Crash possible. Image: Unimplemented import function 'XamUserCreateStatsEnumerator' at 0x82A024FC. Crash possible. Image: Unimplemented import function 'XamUserCreateAchievementEnumerator' at 0x82A0250C. Crash possible. Image: Unimplemented import function 'XGetGameRegion' at 0x82A0254C. Crash possible. Image: Unimplemented import function 'XamContentGetCreator' at 0x82A025AC. Crash possible. Image: Unimplemented import function 'XamContentGetDeviceData' at 0x82A025CC. Crash possible. Image: Unimplemented import function 'XMsgCancelIORequest' at 0x82A0264C. Crash possible. Image: Unimplemented import function 'XamUserGetSigninInfo' at 0x82A0265C. Crash possible. Image: Unimplemented import function 'XamGetExecutionId' at 0x82A0267C. Crash possible. Image: Unimplemented import function 'XamSessionCreateHandle' at 0x82A02FBC. Crash possible. Image: Unimplemented import function 'XamSessionRefObjByHandle' at 0x82A02FAC. Crash possible. Image: Unimplemented import function 'XamFree' at 0x82A02F9C. Crash possible. Image: Unimplemented import function 'XamUserWriteProfileSettings' at 0x82A02F8C. Crash possible. Image: Unimplemented import function 'XamAlloc' at 0x82A02ECC. Crash possible. Image: Unimplemented import function 'XamVoiceCreate' at 0x82A02D8C. Crash possible. Image: Unimplemented import function 'XamVoiceSubmitPacket' at 0x82A02D7C. Crash possible. Image: Unimplemented import function 'XamVoiceClose' at 0x82A02D6C. Crash possible. Image: Unimplemented import function 'XamVoiceHeadsetPresent' at 0x82A02D5C. Crash possible. Image: Unimplemented import function 'XamUserReadProfileSettings' at 0x82A02D4C. Crash possible. Image: Unimplemented import function 'XamGetPrivateEnumStructureFromHandle' at 0x82A02D3C. Crash possible. Image: Unimplemented import function 'XMsgInProcessCall' at 0x82A02D2C. Crash possible. Image: Unimplemented import function 'XMsgStartIORequestEx' at 0x82A02D1C. Crash possible. Image: Unimplemented import function 'XamCreateEnumeratorHandle' at 0x82A02D0C. Crash possible. Image: Unimplemented import function 'XexGetProcedureAddress' at 0x82A02B7C. Crash possible. Image: Unimplemented import function 'IoInvalidDeviceRequest' at 0x82A02BEC. Crash possible. Image: Unimplemented import function 'ObReferenceObject' at 0x82A02BFC. Crash possible. Image: Unimplemented import function 'IoCreateDevice' at 0x82A02C0C. Crash possible. Image: Unimplemented import function 'IoDeleteDevice' at 0x82A02C1C. Crash possible. Image: Unimplemented import function 'ExAllocatePoolTypeWithTag' at 0x82A02C2C. Crash possible. Image: Unimplemented import function 'ExFreePool' at 0x82A02C3C. Crash possible. Image: Unimplemented import function 'RtlCompareStringN' at 0x82A02C4C. Crash possible. Image: Unimplemented import function 'RtlTimeFieldsToTime' at 0x82A02C5C. Crash possible. Image: Unimplemented import function 'IoCompleteRequest' at 0x82A02C6C. Crash possible. Image: Unimplemented import function 'RtlUpcaseUnicodeChar' at 0x82A02C9C. Crash possible. Image: Unimplemented import function 'ObIsTitleObject' at 0x82A02CAC. Crash possible. Image: Unimplemented import function 'IoCheckShareAccess' at 0x82A02CBC. Crash possible. Image: Unimplemented import function 'IoSetShareAccess' at 0x82A02CCC. Crash possible. Image: Unimplemented import function 'IoRemoveShareAccess' at 0x82A02CDC. Crash possible. Image: Unimplemented import function 'IoDismountVolumeByFileHandle' at 0x82A02CEC. Crash possible. Image: Unimplemented import function 'NtDeviceIoControlFile' at 0x82A02CFC. Crash possible. Image: Unimplemented import function 'IoDismountVolume' at 0x82A029FC. Crash possible. Image: Unimplemented import function 'XeKeysConsolePrivateKeySign' at 0x82A029DC. Crash possible. Image: Unimplemented import function 'XeCryptSha' at 0x82A029AC. Crash possible. Image: Unimplemented import function 'XeKeysConsoleSignatureVerification' at 0x82A0299C. Crash possible. Image: Unimplemented import function 'StfsCreateDevice' at 0x82A0296C. Crash possible. Image: Unimplemented import function 'StfsControlDevice' at 0x82A0295C. Crash possible. Image: Unimplemented import function 'RtlTimeToTimeFields' at 0x82A0280C. Crash possible. Image: Unimplemented import function 'KeSetDisableBoostThread' at 0x82A027DC. Crash possible. Image: Unimplemented import function 'RtlCaptureContext' at 0x82A0274C. Crash possible. Image: Unimplemented import function 'RtlTryEnterCriticalSection' at 0x82A026BC. Crash possible. Image: Unimplemented import function 'KeTryToAcquireSpinLockAtRaisedIrql' at 0x82A02FDC. Crash possible. Image: Unimplemented import function 'KfLowerIrql' at 0x82A02FEC. Crash possible. Image: Unimplemented import function 'KeRaiseIrqlToDpcLevel' at 0x82A02FFC. Crash possible. Image: Unimplemented import function 'XAudioGetVoiceCategoryVolumeChangeMask' at 0x82A0302C. Crash possible. Image: Unimplemented import function 'XMAReleaseContext' at 0x82A0307C. Crash possible. Image: Unimplemented import function 'XMACreateContext' at 0x82A0308C. Crash possible. Image: Unimplemented import function 'XexGetModuleHandle' at 0x82A030DC. Crash possible. Image: 65 unknown functions Visited empty function 'XboxKernel_RtlImageXexHeaderField' CS: trying to enter CS at 82A97FB4h that was not initialized

Lots of unimplemented stuff

Should probably use PasteBin for logs

Well, it looks like that with most of the games ATM. Those functions should be implemented properly or at least valid stub for them should be created.

We are still trying to implement all functions (or atleast put stubs in their place), so such messages will become rarer in the near future - at the moment, there isn't much we can do about this. A commercial game, or even any homebrew for that matter, relies on hundreds of such functions to do even the simplest things, so it's unlikely ATM that anything even remotely playable would run without such messages.

Just to side track this issue a bit
MODE 4 not implemented in function cpu::op::vupkd3d128
vsubuws function not defined in cpu::op

@theTwist84 Issue #19 deals with a couple of missing vector instructions as well. These instructions are emitted correctly and defined in xenonCpu, so just as with a few earlier instructions, I am guessing there has been a merge issue. rex is working on it, although I can take these up if they really do lack an implementation.

I've fixed most of the vector instructions today. I'm left with vupkd3d128/vpkd3d128 which is a very tough instruction with practically no documentation.

Aah, the infamous VMX128 instructions. I hate NDAs because of things like this, but on the other hand, it is often fun reverse engineering this kind of stuff.

5-years later: Even the bootanim.xex fails. I suppose seeing what goes on when the animation starts is still rater cool. I did get the dolphin example to run today.

Function 'KeQueryBasePriorityThread' is already registered as import symbol.
Function 'KeSetBasePriorityThread' is already registered as import symbol.
Image: Unimplemented import function 'XexGetModuleSection' at 0x98040BDC. Crash possible.
Image: Unimplemented import function 'HalSendSMCMessage' at 0x98040C0C. Crash possible.
Image: Unimplemented import function 'XeCryptRandom' at 0x98040C4C. Crash possible.
Image: Unimplemented import function 'VdGetGraphicsAsicID' at 0x98040C6C. Crash possible.
Image: Unimplemented import function 'VdInitializeEDRAM' at 0x98040E1C. Crash possible.
Image: Unimplemented import function 'KeSetPriorityThread' at 0x98040EEC. Crash possible.
Image: Unimplemented import function 'XAudioGetVoiceCategoryVolumeChangeMask' at 0x98040F5C. Crash possible.
Image: Unimplemented import function 'XMAEnableContext' at 0x98040F9C. Crash possible.
Image: Unimplemented import function 'XMAIsInputBuffer1Valid' at 0x98040FAC. Crash possible.
Image: Unimplemented import function 'XMAIsInputBuffer0Valid' at 0x98040FBC. Crash possible.
Image: Unimplemented import function 'XMASetOutputBufferValid' at 0x98040FCC. Crash possible.
Image: Unimplemented import function 'XMAGetOutputBufferWriteOffset' at 0x98040FDC. Crash possible.
Image: Unimplemented import function 'XMASetOutputBufferReadOffset' at 0x98040FEC. Crash possible.
Image: Unimplemented import function 'XMADisableContext' at 0x98040FFC. Crash possible.
Image: Unimplemented import function 'XMAGetOutputBufferReadOffset' at 0x9804100C. Crash possible.
Image: Unimplemented import function 'XMASetInputBufferReadOffset' at 0x9804101C. Crash possible.
Image: Unimplemented import function 'XMABlockWhileInUse' at 0x9804102C. Crash possible.
Image: Unimplemented import function 'XMACreateContext' at 0x9804103C. Crash possible.
Image: Unimplemented import function 'XMAReleaseContext' at 0x9804104C. Crash possible.
Image: Unimplemented import function 'XMASetInputBuffer1Valid' at 0x9804105C. Crash possible.
Image: Unimplemented import function 'XMASetInputBuffer1' at 0x9804106C. Crash possible.
Image: Unimplemented import function 'XMASetLoopData' at 0x9804107C. Crash possible.
Image: Unimplemented import function 'XMASetInputBuffer0Valid' at 0x9804108C. Crash possible.
Image: Unimplemented import function 'XMASetInputBuffer0' at 0x9804109C. Crash possible.
Image: Unimplemented import function 'XMAInitializeContext' at 0x980410AC. Crash possible.
Image: Unimplemented import function 'XMAIsOutputBufferValid' at 0x980410BC. Crash possible.
Image: 26 unknown functions
Process: Thread '(null)' (ID=2) removed from thread list