Project

General

Profile

Actions

Emulator Issues #13865

closed

fmadds does not match hardware

Emulator Issues #13865: fmadds does not match hardware

Added by flacs 7 months ago. Updated about 1 month ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
2512-211

Description

This was debugged by Feder from the Mario Strikers community.

fmadds(0x42480000, 0xBC88CC38, 0x1B1C72A0)

hardware: 0xBF55BF17
Dolphin: 0xBF55BF18

The issue can also be reproduced with fadds(fmul(0x42480000, 0xBC88CC38), 0xBC88CC38) but this violates the programming model which forbids passing an f64 value to an f32 instruction.

Note that the last operand is quite close to zero.

A good fix would make the interpreter precise and find an approach for the JITs that makes Mario Strikers Charged on Dolphin not desync with hardware.

magumagu's softfp branch from 2014: https://github.com/magumagu/dolphin/tree/softfp
Mario Strikers discord: https://discord.com/invite/de2YaWg

Updated by flacs 7 months ago Actions #1

  • Description updated (diff)

Geotale points out that a 32-bit FMA (as opposed to 64-bit FMA + conversion) fixes the issue. This actually happened months ago and I missed it v.v

Updated by JMC4789 about 1 month ago Actions #2

  • Status changed from Accepted to Fixed
  • Fixed in set to 2512-259

Confirmed on the Strikers server.

Updated by JMC4789 about 1 month ago Actions #3

  • Fixed in changed from 2512-259 to 2512-211
Actions

Also available in: PDF Atom