Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
n64: Fix 32-bit signed integer multiplication and division when the i…
…nput operands are not sign-extended 32-bit values. (#1701) Verified by the test ROM at https://github.com/Thar0/N64-IntegerMulDiv-Test, see the readme there for full details. Note that the behavior of the div instruction is still not well-understood when bits 31 and 63 of the divisor in rt are not equal. These will still give incorrect results for now. The test ROM classifies tests with such inputs in "failed emulations" since their behavior is not understood well enough, while "failures" consists of tests with inputs whose behavior is known and still failed. Ares result before this patch: ![image](https://github.com/user-attachments/assets/f6e68e2c-b4be-4b38-8a5a-e7c2950817b1) Hardware result (apologies for the poor video quality 😬) ![image](https://github.com/user-attachments/assets/51b5c5be-75cb-48a3-9828-9ed638722966) Ares result after this patch: ![image](https://github.com/user-attachments/assets/6f19524b-eaa4-47c5-9e6a-1dd77ca400e4)
- Loading branch information