首页
/ FEX-Emu 2501版本发布:WINE集成与自修改代码支持

FEX-Emu 2501版本发布:WINE集成与自修改代码支持

2025-06-18 23:14:00作者:邬祺芯Juliet

项目简介

FEX-Emu是一款创新的x86/x86-64模拟器,专为ARM64架构设计。它通过动态二进制翻译技术,在ARM64设备上高效运行x86应用程序和游戏。该项目持续优化性能并扩展功能支持,最新发布的2501版本带来了多项重要改进。

WINE集成支持

本次更新最显著的改进是正式支持了WINE WoW64和Arm64ec软件包。通过在Ubuntu PPA仓库中新增的fex-emu-wine包,用户现在可以直接在AArch64架构的WINE环境中运行x86和x86-64应用程序。

这项集成消除了大量CPU开销,显著提升了在WINE中运行Windows应用程序的性能。不过需要注意的是,当前上游WINE版本可能还不能完全兼容这些构建,用户需要参考相关文档进行配置。

自修改代码与调试标志支持

为了应对现代反篡改和反调试软件的挑战,FEX-Emu 2501版本实现了对自修改代码和陷阱标志(Trap Flag)的部分支持:

  1. 自修改代码支持:特别针对Denuvo等反篡改技术使用的内联自修改代码模式。FEX利用这些代码通常生成无效指令的特点,能够早期检测并处理这类代码块。

  2. 陷阱标志处理:修复了某些不良行为启动程序使用的反调试技术。这些程序通过陷阱标志在调试环境和非调试环境中的不同表现来检测调试器,FEX现在能正确处理这种情况。

需要注意的是,目前这些功能主要在WINE环境下实现,在原生Linux模拟中的支持可能还不完整。

JIT编译器优化与修复

FEX-Emu的核心组件JIT编译器在本版本中获得了多项重要修复和性能改进:

  1. 原子操作修复:修正了FEAT_LRCPC2扩展中小立即数偏移未对齐原子操作的补丁问题,提高了支持新指令的硬件上的模拟稳定性。

  2. 浮点到整数转换:修复了浮点值转换为整数时溢出处理的重大问题。这一修复解决了多个游戏中的关键问题,包括《The Talos Principle》音频中断、《SOMA》交互失效等。

  3. 3DNow!指令修复:虽然现代游戏已不再使用3DNow!指令集,但为保持对老游戏兼容性,修复了ModRM解码问题并增加了相关测试用例。

  4. H0F3A表解码:修正了REX_W前缀处理逻辑,防止因编译器填充导致的指令解码错误。

  5. SVE优化:为支持SVE的硬件添加了80位加载/存储指令优化,进一步提升了x87代码的执行效率。

系统要求变更

随着功能演进,FEX-Emu提高了最低内核版本要求:

  • 从5.0升级到5.15版本
  • 基于2021年发布的LTS内核
  • 与Ubuntu 22.04支持的内核版本保持一致

平台支持调整

由于ArchLinux政策变更,FEX-Emu正式停止了对该发行版的支持。ArchLinux不再允许AUR仓库中包含不支持x86-64的软件包,而FEX专为AArch64设计,因此无法继续提供官方支持。

技术细节改进

除上述主要变更外,2501版本还包含多项底层优化:

  1. 改进了EFLAGS重建和上下文处理
  2. 优化了线程管理和内存泄漏修复
  3. 增强了GDB服务器功能
  4. 改进了系统调用处理
  5. 增加了更多测试用例
  6. 更新了依赖库版本

这些改进共同提升了FEX-Emu的稳定性、兼容性和性能,使其在ARM设备上运行x86应用程序的能力更上一层楼。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
202
2.17 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
208
285
pytorchpytorch
Ascend Extension for PyTorch
Python
61
94
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
977
575
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
550
83
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.02 K
399
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
393
27
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
1.2 K
133