Skip to content

Fallout: New Vegas Black screen if 3DNow! and AMD CPUID is enabled. #4827

@Sonicadvance1

Description

@Sonicadvance1

Documenting this so I don't forget this.
Need to enable CPUID_AMD in CPUID so the D3D{8,9}x library enables a 3DNow! codepath. Once that codepath is enabled then the game blackscreens immediately. Even the intro logos don't show up.

Tested the game on an actual Phenom that supports 3DNow! and it had no issue rendering the game on Linux+Proton.

There are some minor implementation differences between FEX and Phenom

        4516 - host/Test_64Bit_3DNow/86.asm (Failed) <- Expected fail, only supported on geode.
        4517 - host/Test_64Bit_3DNow/87.asm (Failed) <- Expected fail, only supported on geode.
        4522 - host/Test_64Bit_3DNow/96.asm (Failed) <- Tolerance check is off in FEX unittests
        4523 - host/Test_64Bit_3DNow/97.asm (Failed) <- Tolerance check is off in FEX unittests
        4528 - host/Test_64Bit_3DNow/A6.asm (Failed) <- Expected fail, reciprocal step is only a move on geode/fex, not Phenom
        4529 - host/Test_64Bit_3DNow/A7.asm (Failed) <- Expected fail, reciprocal step is only a move on geode/fex, not Phenom
        4534 - host/Test_64Bit_3DNow/B6.asm (Failed) <- Expected fail, reciprocal step is only a move on geode/fex, not Phenom

Worst case will be if the reciprocals need to have their Newton-Raphson iteration implementated as per Phenom specs. If that /is/ the case that would mean Geode would have the same rendering bug as FEX.

Before I attempt writing a softfloat implementation of those for the 3DNow! reciprocals, I'm going to attempt CPUID spoofing since it might be conflicting or something.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions