It's in the mupen64-amd64 SVN trunk right now. It was a large effort - I basically duplicated all of the 32-bit dynarec source files, renamed it to x86_64, and rewrote the whole thing to operate natively on x86_64 CPUs, but only using the 32-bit operations for maximum compatibility with the current 32-bit code and thus fewer bugs. It's a little slower than the 32-bit dynarec right now (it will take more memory as well, as the 64-bit code takes more space), but after optimizing the code to take advantage of the bigger registers and expanded register file of the x86_64, it will probably be faster (or take less CPU to run at real-time speed). It's not perfect yet, some games throw exceptions - so there's at least 1 bug left. But SM64 and mkart played perfectly. This is one of the most fascinating pieces of code that I've ever worked on. It is structured as self-modifying code: the C code (after compilation, at run time) writes assembly code translated from the r4300 state machine to the Intel/AMD CPU, then it assembles and runs it. And the running automatically-generated assembly code can call back into the functions in the C code. Quite ingenious.
Once I fix the outstanding problems and optimize it, I'll make a new release of mupen64-amd64. Until then, beta testers are welcome as usual to get the source from svn and play with it.Report any issues or observations here.


Report any issues or observations here.
Reply With Quote




