Comment by NooneAtAll3
10 hours ago
I'm still baffled by RE community aiming for "100% asm match", needing to reproduce specific compiler version, instead of aiming for functional equivalence and cleaner code
is there really no tools whatsoever that produce proof certificates for "these two functions do the same thing"?
Game behavior can be tied so closely to quirky hardware behavior that I doubt such a tool would be simple to create. You’d have to verify that your code produces the same hardware state. And different (ie more efficient) code almost by definition produces a different hardware state than the original code. Thus changing the game.
Really though? You have to try really hard to make your code that unstable - and well written code isn't that.
Seems more like voodoo.
Who said games were well written? Older games are often very sloppy and buggy, and abuse the specific hardware they're designed for to get extra performance, unique graphical effects, etc.
Emulators constantly run into games that don't run because of specific hardware nuances that may or may not have been intentionally used (Ex. relying on exact cycle counts, reading uninitialized memory, changing values while they're used, etc.).
1 reply →
Because byte-for-byte identical output is far easier to measure than trying to test for functional equivalence.
This is also partly a preservation activity so (as best we can create it) identical code generating identical output is a big part of the point.
It's usually just the first sweep to make sure everything is understood and documented before you start to make mods.
No. Halting problem.