Skip to content

Floating-point precision issues in VU0 (macrocode/microcode) and VU1 #165

Description

@gustavoauneth

In vu0 and vu1, in both macrocode and microcode, if you want to achieve something more precise, there's a problem with the hardware (or at least it's an obvious problem): if you multiply 1 by X, there's no guarantee that the result will be X, although X * 1 guarantees it.
In theory for the game programmer, it's just multiplying X * 1 instead of 1 * X, but for us we would have to emulate this technique, these links may be useful:

Detecting emu vu floats
PS2 Floating Point Rust
DobbieStation Issue 51
EEFloat
PCSX2 commit 0392a64e992ac3fa5445dbe484933616cb204674
Emulating ps2 floating point nums ieee-754 diffs part 1

It's debatable whether or not we need to be super precise with floating-point numbers, because perhaps some games will take advantage of this problem, or maybe the programmer who created it isn't even aware of it.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions