- 
                Notifications
    
You must be signed in to change notification settings  - Fork 173
 
Description
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.