Skip to content

felix86 26.10

Latest

Choose a tag to compare

@OFFTKP OFFTKP released this 01 Oct 11:41
26.10
24c158b

felix86 26.10 is released! Denuvo, EA, and Battle.net games now work, optimizations landed, and we improved loading time in Monster Hunter World by more than 5x.

Read the blog post: https://felix86.com/felix86-26-10/

Compatibility list: https://felix86.com/compat/

Twitter, Bluesky, Discord

What's Changed

  • Linux: Slightly randomize stack by @OFFTKP in #731
  • Recompiler: Fix 32-bit WRFSBASE and WRGSBASE not zero-extending by @OFFTKP in #730
  • Linux: Make PTRACE_GETREGSET write iov_len by @OFFTKP in #735
  • Recompiler: Add hot block and remove unnecessary switchToX87 calls by @OFFTKP in #733
  • Recompiler: Optimize push/pop chains by @OFFTKP in #732
  • Recompiler: Introduce 32-bit reduced precision optimizations by @OFFTKP in #736
  • Chore: Remove unused functions by @OFFTKP in #729
  • Linux: Make /proc/self/auxv emulation configurable by @OFFTKP in #738
  • Chore: Bump version by @OFFTKP in #737
  • Recompiler: Warn or fault better on unaligned atomics we can't emulate by @OFFTKP in #739
  • Recompiler: Don't use riscv_get_mnemonic in native_pass by @OFFTKP in #740
  • Recompiler: Revert "Avoid unnecessary mprotect calls (#721)" by @OFFTKP in #742
  • Common: Validate binfmt_misc installation on startup by @OFFTKP in #741
  • Common: Fix thunking when libraries are not in rootfs by @OFFTKP in #743
  • Recompiler: Increase scan ahead count by @OFFTKP in #744
  • Linux: Various signal related fixes by @OFFTKP in #745
  • Linux: Fix tracing child when not supposed to by @OFFTKP in #746
  • Linux: Add some more wayland thunk funcs by @OFFTKP in #747
  • Linux: Guest memory tracking by @hazelwiss in #645
  • Common: Reinitialize some locks on fork by @OFFTKP in #748
  • Common: Fix various allocator nits by @OFFTKP in #749
  • Recompiler: Longjmp if scan ahead faults by @OFFTKP in #750
  • Linux: Only handle SMC on store and writeable regions by @OFFTKP in #751
  • Recompiler: Set MADV_HUGEPAGE for code cache by @OFFTKP in #752
  • Common: Make sure to read config before applying environment by @OFFTKP in #753
  • Common: Fix warn message being printed twice by @OFFTKP in #754
  • Recompiler: Don't hardcode regs in CMPXCHG16B by @OFFTKP in #755
  • Recompiler: Reduce lea code duplication by @OFFTKP in #756
  • Linux: Fix getcwd returning bad size by @OFFTKP in #757
  • Linux: Fix some flaky gvisor tests by @OFFTKP in #758
  • Tools: Add latency measurer by @OFFTKP in #759
  • CI: Switch to older create-github-app-token version by @OFFTKP in #760
  • Recompiler: Optimize MOVD/MOVQ by @OFFTKP in #761
  • Recompiler: Optimize MOVD/MOVQ again by @OFFTKP in #762
  • Tools: Measure more instructions in latency measurer by @OFFTKP in #763
  • Tools: Raise latency measurer necessary delta for edit by @OFFTKP in #764
  • Linux: Emulate /proc//exe of other processes by @OFFTKP in #765
  • Linux: Fix 32-bit PTRACE_SETSIGINFO by @OFFTKP in #766
  • Linux: Fix potential deadlock when forking during malloc by @OFFTKP in #767
  • Linux: Clean up host stack on exit by @OFFTKP in #768
  • Recompiler: Optimize (V)UNPCK instructions by @OFFTKP in #769
  • Recompiler: Optimize SHUFPD by @OFFTKP in #770
  • Recompiler: Optimize conversions and vector stores by @OFFTKP in #772
  • Thunks: Add VK_KHR_present_wait2 by @OFFTKP in #773
  • Linux: Reset locks on vfork by @OFFTKP in #774
  • Recompiler: Optimize call/ret by @hazelwiss in #771
  • Linux: Don't take handle_wild_sigsegv path on force_defer_synchronous by @OFFTKP in #775
  • Common: Add per-executable profiles by @OFFTKP in #776
  • Recompiler: Implement movzx word, word by @OFFTKP in #777
  • Recompiler: Fix assertion in big block ending in certain instrs by @OFFTKP in #778
  • Recompiler: Fix wrong translation_sizes for first instruction by @OFFTKP in #780
  • Recompiler: Implement inline SMC by @OFFTKP in #781
  • Chore: Fix string format warnings by @OFFTKP in #779
  • Recompiler: Fix inline SMC detection hitting backwards writes by @OFFTKP in #782
  • Recompiler: Optimize MSVC strstr by @OFFTKP in #783
  • Linux: Only add hacky envs if they are missing by @OFFTKP in #785
  • Thunks: Implement VK_AMD_buffer_marker by @OFFTKP in #786
  • Recompiler: Update RIP after x87 operation by @OFFTKP in #784
  • Linux: Handle signal happening right before futex lock by @OFFTKP in #787
  • Recompiler: Optimize MOV+SHUFPS to PSHUFD by @OFFTKP in #788
  • Tools: Fix regression in REPL by @OFFTKP in #789
  • Linux: Lock and unlock our semaphores before and after forks by @OFFTKP in #790
  • Chore: Slightly optimize Zydis decoding by @OFFTKP in #791
  • Recompiler, Linux: Fault on non-executable pages by @OFFTKP in #792
  • Chore: Reduce code duplication a bit by @OFFTKP in #793
  • Recompiler: Allow SMC on helper RMW functions by @OFFTKP in #794
  • Recompiler: Implement VMCALL by @OFFTKP in #797
  • Thunks: Add some wayland thunks by @OFFTKP in #796
  • Recompiler: Implement SHA extension by @OFFTKP in #795
  • Recompiler: Handle unaligned lock inc/dec dword by @OFFTKP in #798
  • Linux: Fake number of online cores by @OFFTKP in #799
  • Linux: Fix int 0x2d on Wine by @OFFTKP in #800
  • Chore: Remove unnecessary configurations by @OFFTKP in #801
  • Recompiler: Add inaccurate_conversions config by @OFFTKP in #802
  • Linux: Better online core emulation by @OFFTKP in #803
  • Recompiler: Optimize SHA256MSG1 by @OFFTKP in #804
  • CI: Strip release build by @OFFTKP in #805

Full Changelog: 26.09...26.10