game-compatibility
game-compatibility copied to clipboard
4D5307EA - Forza Motorsport 2
Tested with benvanik/xenia@76efd13
Issues:
Game goes through intro titles fine, displays a black menu
Screenshots:
Should be able to find the section, it clearly exists under XEX_HEADER_RESOURCE_INFO. Try it again maybe?
Yeah it goes past that point now
Updated status:
Tested with benvanik/xenia@c3ecb1b
Crashes with unhandled exception error when querying priority of a thread (see here). thread_ is "empty" as per VS debugger.
It may be just because I only have 4 logical processors on my machine, I know I have problems with other games e.g. Minecraft doesn't work for me.
Stacktrace:
> xenia.exe!xe::kernel::XThread::QueryPriority() Line 597 C++
xenia.exe!xe::kernel::xboxkrnl::KeSetBasePriorityThread_shim(xe::cpu::frontend::PPCContext_s * ppc_context, xe::kernel::KernelState * kernel_state) Line 282 C++
[External Code]
Tags : state-crash
thread_ should not be NULL in that state. ExCreateThread calls XThread::Create which initializes thread_.
According to your logs, thread creation is successful. Could you look into why thread_ is still NULL? I'm also assuming you're running Windows, not Linux.
Yeah I'm on Windows 10 (on Linux, xenia does not fully compile yet anyway).
I'll try to find what is happening with thread_, might not have time soon, so in a coupe of days I should have an update.
So I tried to find the cause of the crash, but wasn't successful...
By debugging, I found out that sometimes the "thread_" value is not NULL (but points to garbage), and once it even started the game properly! This tells me it's either memory corrpution somehow, or the value gets destroyed (unique_ptr decides the value is not used anymore).
Other than that, I don't know what is happening...
Found it.
KeSetBasePriorityThread(0000183C, 00000011)
0x183c is a thread handle, not a pointer. The workaround here needs to be incremeted. With 0x2000 it works well :)
I guess the same workaround here needs to be updated right? @DrChat it was you who introduced the workaround in KeSetBasePriorityThread_shim, is it safe to increase it?
As for the game, will update the status once the fix is commited.
Yeah, though I'm wondering why they're even doing that. The first parameter is supposed to be a pointer, not a handle. Xboxkrnl would crash if they did that there.
Edit: Should be fixed in benvanik/xenia#447
Tested the fix and it does works, good job on the real fix :)
Okay, cool. Could you update the issue with new info on how far it gets/etc?
Sure!
With ignore_undefined_externs=true
, the game crashes.
With ignore_undefined_externs=false
, you get the error message box for undefined extern, which says undefined extern call to 8294F2E8 KeSetCurrentStackPointers
If you leave the message box there, the game continues in the background. Audio works (you hear the intro videos of Turn 10, Microsoft Studios, the intro video, etc). I get no display, black screen only (because AMD GPU...).
There are some libav errors in the log, only at the beginning though: 1st
!> 0000000C libav: overflow in spectral RLE, ignoring
2nd (Various frame numbers and size for this one, biggest frame number I see is 77)
w> 0000000C libav: frame[0] would have to skip 432 bits
3rd
w> 0000000C libav: Reserved bit
w> 0000000C libav: is not implemented. Update your Libav version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
w> 0000000C libav: If you want to help, upload a sample of this file to ftp://upload.libav.org/incoming/ and contact the libav-devel mailing list.
A> 0000000C libav failed to decode a frame!
4th
!> 0000000C libav: invalid number of fill bits
A> 0000000C libav failed to decode a frame!
I can upload the full log if needed, I let xenia go until Catalyst had enough and crashed, so the log is ~170MB!
https://gist.github.com/DrChat/47a7ce5225a0a5a85613
Stuff that into xboxkrnl_threading.cc and see what happens
Unhandled exception at 0x00007FF62DE36596 in xenia.exe: 0xC0000005: Access violation writing location 0x0000000000C4A070.
I updated the gist link - retry it please
Got a hold of a copy. The game now suffers from the same issue as #217.
something new
Update
just tested for update logs and see the results. Xenia drawn correctly the intro but after into Xenia crash with stopped working.
Tested
On (https://github.com/benvanik/xenia/commit/a148b965f19a99e4ea6c346075bd19de19f085fc)
Issues
crash after intros
Log
File (http://www.mediafire.com/file/2bfjuja5u68lh15/Forza2_161030.rar)
Labels
- state-intro
- state-crash
Update
plays the intro but after them Xenia has crashed.
Unhandled exception at 0x000000006DFBF0F0 (nvoglv64.dll) in xenia.exe: Fatal program exit requested.
Tested
On (https://github.com/benvanik/xenia/commit/70bd283e80125932339f23a54e5efcb3c74f0456)
Log file
Labels
- state-intro
- state-crash
Update
Unhandled exception at 0x000000005DE9E094 (nvoglv64.dll) in xenia.exe: Fatal program exit requested.
Tested
On (https://github.com/benvanik/xenia/commit/39cb957f1b827bc7f991dc19ee5f7a6f25aa50fb)
Log file
FM2_39cb957f_intro_crash_gpu.zip
Labels
- state-intro
- state-crash
Update:
Instant crash...
!> 00000044 ResolvePath(\Device\Harddisk0) failed - no root found
GPU:
writes to unk. register
- 0081
- 0082
- 1E4E
Unimplemented:
- XamInputGetUserVibrationLevel
- XInputdFFGetDeviceInfo
- XInputdFFSetEffect
- XInputdFFUpdateEffect
- XInputdFFEffectOperation
- XInputdFFDeviceControl
- XInputdFFSetDeviceGain
- XInputdFFCancelIo
- XInputdFFSetRumble
Tested:
On (https://github.com/benvanik/xenia/commit/eecc9d0aea1a0c841d9ddfa0d182c22a10ea4f86)
Log:
Labels:
- state-crash
- regression
- kernel-unimplemented-feature
- xam-input-problems
Tested on https://github.com/xenia-project/xenia/commit/2de0e26
Runs fine with slight stuttering up until ~36s of gameplay, then it completely locks up Xenia and closes (last screenshot).
!> 00000044 ResolvePath(\Device\Harddisk0\) failed - no root found
!> 00000044 ResolvePath(update:\) failed - no root found
!> 00000044 ResolvePath(Placeholder.fsb) failed - no root found
!> 00000044 ResolvePath(UIFrontEnd.fsb) failed - no root found
!> 00000044 ResolvePath(UIInGame.fsb) failed - no root found
!> 00000044 Unimplemented XLIVEBASE message app=000000FC, msg=00058037, arg1=00CA1000, arg2=4032F870
!> 00000044 undefined extern call to 8294E778 NetDll_getsockopt
!> 000018AC ResolvePath(Transmissions.fsb) failed - no root found
!> 000018AC ResolvePath(SuperChargers.fsb) failed - no root found
!> 000018AC ResolvePath(Turbos.fsb) failed - no root found
!> 000018AC ResolvePath(Damage.fsb) failed - no root found
!> 000018AC ResolvePath(Wind.fsb) failed - no root found
!> 000018AC ResolvePath(Tires.fsb) failed - no root found
!> 000018AC ResolvePath(Suspension.fsb) failed - no root found
!> 000018AC ResolvePath(Collisions.fsb) failed - no root found
...
start 35 fps then crash in race after 3 minute.
I have only black screen in latest build.
@Slo2018 Which renderer? d3d12, or Vulkan?
Can confirm on latest master
Renderer: D3D12
Last ingame commit is https://github.com/xenia-project/xenia/commit/2507f1a819310220230e5a9f03c34f40f634098b
Regression caused by https://github.com/xenia-project/xenia/commit/003c02c6404a0b795afe1309076fb629b1394be5
@Slo2018 Which renderer? d3d12, or Vulkan?
D3D12.
ingame again https://github.com/xenia-project/xenia/commit/803fa0cba9416a73425bc44cc886a1826ca06d70
Forza Motorsport 2 has no issue saving game progress, and it will make a profile for you where save files are stored, attempting to replace the file with another one (I grabbed the save data from my xbox hard drive and put it on my PC, to test whether my save file would work) will greet you with this loading screen (whether or not the "Saving Data" screen is indefinite has yet to be determined)
This may have to do with the fact that FM2 specifically (I think with almost every Forza game) checks to see if you are logged onto the same Xbox profile the save data was created on, but I could be entirely wrong.
Save still not working and i can't create profile.
works fine now, i just cant create a save profile. I press 'sign in' and it doesnt do anything