-
-
Notifications
You must be signed in to change notification settings - Fork 289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
America's Army: Rise of a Soldier: Floor texture Broken #1008
Comments
There are four textures involved, three are DXT1 ( Relevant combiner:
Constants:
As a quick verification, I set the fragColor to each of the textures and each one produced the output I'd expect, so something is going wrong in the combiner. It does use fog, but I verified that r0.rgb is wrong (and fog is entirely disabled in the frame I captured) |
Looks like stage 6 of the combiner is what blacks it out: Vertex shader is quite complex:
oD0.a comes from v0.w |
I wrote some tooling to make it easier to process these large shaders. Here's the (huge)
|
The issue here is similar to #365. In this case, it's a difference in how The key is in
where |
Fixes xemu-project#1008 The nv2a returns 0 for anything multiplied by zero, including exceptional values such as Inf and NaN. Desktop GPUs do not enforce this, leading to conditions where NaNs wipe out calculations and lead to erroneous behavior. [Test](https://github.com/abaire/nxdk_vsh_tests/blob/main/src/tests/americasarmyshader.cpp) [HW Results](https://github.com/abaire/nxdk_vsh_tests_golden_results/wiki/Results-AmericasArmyShader)
Hey @Triticum0 I assume you didn't mean to close this by merging the #1045 into your own repo? |
Didn't know that could happen |
Fixes xemu-project#1008 The nv2a returns 0 for anything multiplied by zero, including exceptional values such as Inf and NaN. Desktop GPUs do not enforce this, leading to conditions where NaNs wipe out calculations and lead to erroneous behavior. [Test](https://github.com/abaire/nxdk_vsh_tests/blob/main/src/tests/americasarmyshader.cpp) [HW Results](https://github.com/abaire/nxdk_vsh_tests_golden_results/wiki/Results-AmericasArmyShader)
Fixes xemu-project#1008 The nv2a returns 0 for anything multiplied by zero, including exceptional values such as Inf and NaN. Desktop GPUs do not enforce this, leading to conditions where NaNs wipe out calculations and lead to erroneous behavior. [Test](https://github.com/abaire/nxdk_vsh_tests/blob/main/src/tests/americasarmyshader.cpp) [HW Results](https://github.com/abaire/nxdk_vsh_tests_golden_results/wiki/Results-AmericasArmyShader)
how can i fix my game with this bug? |
Fixes #1008 The nv2a returns 0 for anything multiplied by zero, including exceptional values such as Inf and NaN. Desktop GPUs do not enforce this, leading to conditions where NaNs wipe out calculations and lead to erroneous behavior. [Test](https://github.com/abaire/nxdk_vsh_tests/blob/main/src/tests/americasarmyshader.cpp) [HW Results](https://github.com/abaire/nxdk_vsh_tests_golden_results/wiki/Results-AmericasArmyShader)
Title
https://xemu.app/titles/55530043/#America-s-Army-Rise-of-a-Soldier
Bug Description
When going in-game the floor textures black
Expected Behavior
It should be green
xemu Version
Version: 0.7.25
Branch: master
Commit: 7d6da22
Date: Tue May 31 08:20:36 PM UTC 2022
System Information
Additional Context
No response
The text was updated successfully, but these errors were encountered: