This is our third release!
This is the first release of felix86 that can run AAA games, like Witcher 3 and Crysis.
Compatibility list: https://felix86.com/compat/
Blog post for the biggest changes we did this month: https://felix86.com/AAA-Games/
Follow us on twitter: @felix86_emu
Join our discord server for any questions: https://discord.gg/TgBxgFwByU
What's Changed
- Slight signal fixes by @OFFTKP in #121
- Rewrite freelist allocator by @OFFTKP in #124
- Atomic 8/16 bit ADD by @OFFTKP in #120
- cpuid: Fix broken opcode table by @misterjdrg in #125
- Remove v1/ by @OFFTKP in #126
- Bump version by @OFFTKP in #127
- Reduce minimum CMake version by @OFFTKP in #129
- Make AC flag changeable by @OFFTKP in #130
- Remove leftover debugging printf by @OFFTKP in #131
- Split up utility.hpp by @ggrtk in #128
- Add EGL and warnings in CMakeLists for missing headers by @OFFTKP in #132
- Disable SSE in cpuid if the relevant config is set by @OFFTKP in #133
- Add cmpxhg for 8-bit and 16-bit operands by @OFFTKP in #134
- ioctl: Add filename to unknown ioctl warning by @misterjdrg in #135
- ioctl: fs handlers by @misterjdrg in #136
- Add comment by @OFFTKP in #137
- Replace signal deferring with blocking by @OFFTKP in #140
- Ignore glDebugMessageCallback for now by @OFFTKP in #141
- ioctl_tty:
TCGETSandTIOCGWINSZby @misterjdrg in #143 - Hide emulator from /proc/self/maps by @OFFTKP in #144
- Stub seccomp syscall by @OFFTKP in #145
- Add 32-bit chmod by @OFFTKP in #147
- Implement 32-bit semctl by @OFFTKP in #148
- Warn on unknown ioctls instead of erroring by @OFFTKP in #149
- Fix 80-bit x87 store by @OFFTKP in #152
- Implement movntq by @OFFTKP in #153
- Implement getpgid by @OFFTKP in #154
- syscall: add
accept4and fixacceptby @misterjdrg in #158 - Add binfmt_misc detection and run execve'd apps through binfmt_misc if possible by @OFFTKP in #155
- Don't run scripts natively when binfmt_misc is active by @OFFTKP in #160
- Restore argv0 after execve by @OFFTKP in #165
- Allow empty directories for unpacking rootfs by @OFFTKP in #156
- Include path in rootfs doesn't exist error by @OFFTKP in #166
- Symlink /tmp in rootfs by @OFFTKP in #167
- Implement XLAT by @OFFTKP in #168
- Even more execve woes by @OFFTKP in #169
- Chdir inside rootfs when running by @OFFTKP in #171
- Update guide by @OFFTKP in #172
- Block all signals in logging server by @OFFTKP in #173
- Implement sendfile syscall by @OFFTKP in #174
- Implement semtimedop by @OFFTKP in #175
- Implement getgroups by @OFFTKP in #176
- Implement sigprocmask by @OFFTKP in #177
- Implement clone without CLONE_VM by @OFFTKP in #178
- Implement unaligned cmpxchg8b by @OFFTKP in #179
- Implement flistxattr and llistxattr by @OFFTKP in #180
- Implement waitid by @OFFTKP in #183
- Stub getdents and 64-bit waitid by @OFFTKP in #184
- Warn for rare clone flags + a couple syscalls by @OFFTKP in #185
- Allow some more clone flags and fix mount by @OFFTKP in #186
- general: Compiler warning cleanups and new syscall by @misterjdrg in #164
- Allow for building static-pie by @OFFTKP in #188
- Use function pointers instead of hardcoding addresses by @OFFTKP in #191
- Revert static stuff for now by @OFFTKP in #190
- Warn for gcc-14 bug by @OFFTKP in #192
- Update biscuit by @OFFTKP in #122
- Disable Zvbb for now by @OFFTKP in #195
- Use function pointers for instruction handlers by @OFFTKP in #194
- Update biscuit and revert Zvbb disabling by @OFFTKP in #196
- Initial no RVV porting work by @OFFTKP in #197
- Add warning for no $HOME in binfmt registration by @OFFTKP in #198
- Add tty ioctl by @OFFTKP in #199
- Some more 32-bit syscalls and fixes by @OFFTKP in #202
- Implement fstatat64 and pidfd syscalls by @OFFTKP in #203
- Fix wine-preloader by @OFFTKP in #205
- Use same CPUID in both 32-bit and 64-bit mode by @OFFTKP in #206
- Add lock instructions to counts by @OFFTKP in #208
- Invalidate blocks on unmap and remap by @OFFTKP in #209
- Don't cache include lookups by @OFFTKP in #210
- Fix symlink checking in resolve(path) by @OFFTKP in #211
- Resolve umount to inside rootfs by @OFFTKP in #212
- Allow log server to run independently by @OFFTKP in #213
- Undo signal guard before execve by @OFFTKP in #215
- 64-bit vDSO support by @OFFTKP in #214
- Refactor to use mounts instead of symlinks and resolve symlinkers in emulator by @OFFTKP in #216
- Fix problems with null paths in utimensat and felix86-mounter improvements by @OFFTKP in #217
- Unlink shouldn't resolve links by @OFFTKP in #218
- Fix epoll_wait by @OFFTKP in #219
- Make sure we switch for every opcode by @OFFTKP in #220
- Use gettid in error by @OFFTKP in #221
- Use RESOLVE_IN_ROOT for path resolving by @OFFTKP in #222
- Don't deallocate on exit by @OFFTKP in #223
- Fix pmovmskb for mmx by @OFFTKP in #225
- Fix relative path scripts by @OFFTKP in #226
- Better our CI by @OFFTKP in #224
- Make latest artifact link dynamic by @OFFTKP in #227
New Contributors
- @misterjdrg made their first contribution in #125
- @ggrtk made their first contribution in #128
Full Changelog: 25.06...25.07