xemu-project / xemu

Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
https://xemu.app
Other
2.57k stars 258 forks source link

Voodoo Vince: Models, textures and sprites do not render correctly #943

Open doinkers opened 2 years ago

doinkers commented 2 years ago

Title

https://xemu.app/titles/4d53005f/ MS-095

Bug Description

Models, textures and sprites flicker constantly. They only seem to stablise and stop flickering at certain camera angles, or when the camera is very close (See the shop window in the intro sequence).

The signpost and windows in the intro sequence flicker until the camera is very close, and the fire/flame sprites also flicker.

Voodoo Vince is invisible for most of the game, only flickering in and out every now and again. Enemies, doors and collectable objects suffer from the same problem, making gameplay difficult.

Intro sequence featuring glitchy windows, and flickering fire:

https://user-images.githubusercontent.com/105917902/169510134-97181482-4e98-42d2-bddf-792c893bffc3.mp4

Short gameplay video, featuring invisible Vince, flickering collectables, doors and enemies:

https://user-images.githubusercontent.com/105917902/169511559-8d1392ba-38ea-4d2b-aef4-16a9e327648f.mp4

This game also suffers from slight audio issues, which are already being tracked in general at #904

Otherwise, game performance seemed mostly stable at ~30FPS

Expected Behavior

All models, textures and sprites are expected to render properly.

Gameplay from original hardware

xemu Version

Version: 0.7.17 Branch: master Commit: 66b57dca9c5c461c13cd44f977bd357677200be3 Date: Fri May 20 01:10:05 UTC 2022

Currently "works" on latest version.

System Information

CPU: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz OS Platform: Windows OS Version: Windows Manufacturer: ATI Technologies Inc. GPU Model: AMD Radeon RX 5600 XT Driver: 4.0.14800 Core Profile Context 22.4.2 30.0.15021.7000 Shader: 4.60

Additional Context

No response

abaire commented 2 years ago

I took some initial renderdoc caps and they seem very atypical. I see a bunch of vertex explosions, some odd looking textures, and interestingly there appear to be frames in which vince is not drawn at all, but is composited in from a separate frame at the very end. In these frames the vince texture doesn't seem to be used at all (even though I have captures where vince is clearly present in the final buffer).

UPDATE: Spent a bit more time looking into this and confirmed that it doesn't appear to be doing a draw with the vince model at all. I wrote some filter functions for renderdoc, looked at a capture with vince and found that it draws the entire model in one pass (> 3000 vertices). Ran the filter function looking for draws with > 1000 vertices on a capture pointed into a corner with missing vince (to reduce onscreen geometry) and there are only a handful of complex meshes, all of them clearly models of plants. I don't see any "EMPTY NV097_SET_BEGIN_END" messages in the log (my first guess would be that xemu is somehow misplacing the geometry).

doinkers commented 1 year ago

Same behaviour as of v0.7.90.

LargeSurge commented 8 months ago

experiencing the same issue. playing on version 0.7.113.0. at first I thought it was an error with lighting effects, but now I have absolutely no idea what's happening.

memetrusidovski commented 5 months ago

Same issue. if anyone has a solution let me know please!