xemu
xemu copied to clipboard
NV_PGRAPH_TEXFILTER_SIGNED not supported
Bug Description
The following games are known to be affected by the following assert block:
https://github.com/mborgerson/xemu/blob/aa7acc8f64e64bb517a0bd0e5e41672671e61df1/hw/xbox/nv2a/pgraph.c#L5786
That code handles asserts for NV_PGRAPH_TEXFILTER0_ASIGNED, NV_PGRAPH_TEXFILTER0_RSIGNED, NV_PGRAPH_TEXFILTER0_GSIGNED and NV_PGRAPH_TEXFILTER0_BSIGNED which are not supported.
Only the first triggered assert is categorized
A-Signed (possibly also R,G,B):
Pirates: The Legend of Black Kat
R-Signed (possibly also G,B):
American McGee Presents: Scrapland
Bass Pro Shops: Trophy Bass 2007
Ninja Gaiden Black
Power Drome
SWAT: Global Strike Team
Urban Chaos: Riot Response
Midnight Club 3: DUB Edition
G-Signed (possibly also B):
Crimson Skies: High Road to Revenge (Also triggers B-Signed)
Stake: Fortune Fighters
Tork: Prehistoric Punk
Wings of War
Buffy the vampire slayer
No games are known to be triggered exclusively by B
To my understanding this flag means the texture sampler component range is in range ~[-1.0, +1.0] instead of ~[0.0, 1.0]. Someone should check which D3D state is responsible for even turning this feature on, what kind of sampler it is, which of the components are signed and why (because I can't think of any sane reason to do this other than volume textures or cubemaps; and even then it should affect almost all components).
We should also have a unit test to test this behaviour (which should be fairly simple, as it only has to pass-through texture sampler bits to the framebuffer for readback).
Additional Context
This was ripped directly from https://github.com/xqemu/xqemu/issues/75 So big thank to JayFoxRox for the information. He has also started work on an implementation on his personal repository JayFoxRox#36 If anyone want to finish what he started. There a lot of useful info on the pull request which will be very useful if anyone interested. *This is based of this issue https://github.com/xqemu/xqemu/issues/25 I'm not sure if its G or R or both based on the conflicting information on the issue. It doesn't assert on xemu due you removing the assertion in c9df1d1. so don't know which one it is for now may update the issue at a later date.
Issue linking
https://xemu.app/titles/45410012/ https://xemu.app/titles/454c0001/ https://xemu.app/titles/56550049/ https://xemu.app/titles/534300f7/ https://xemu.app/titles/45410015/ https://xemu.app/titles/4d530021/ https://xemu.app/titles/4d440004/ https://xemu.app/titles/55530040/ https://xemu.app/titles/54540018/ https://xemu.app/titles/5443000d/ https://xemu.app/titles/56560025/ https://xemu.app/titles/54540079/ https://xemu.app/titles/4253000b/
Updated
Note: Games with missing signed textures exhibit lighting and water surface texture issues.
I believe this also affects Dead or Alive 2 Ultimate, specifically in the Bio Lab stage's cloning tubes' liquid.
https://xemu.app/titles/54430006/
Current Release (0.7.88):
Custom Build (Found on the linked closed NGB bug) I believe 0.7.84 with f0abe3c reverted by @pas-de-2 :