rexdex / recompiler

Xbox360 -> Windows executable converter
MIT License
1.64k stars 81 forks source link

GTA IV crashes after launching #25

Open JayC-03 opened 6 years ago

JayC-03 commented 6 years ago

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

twist84 commented 6 years ago

Should probably use PasteBin for logs

rexdex commented 6 years ago

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.

sumit0190 commented 6 years ago

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.

twist84 commented 6 years ago

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

sumit0190 commented 6 years ago

@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.

rexdex commented 6 years ago

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.

sumit0190 commented 6 years ago

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.

TheExpertNoob commented 2 years ago

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