
Box64 v0.4.2 Update Released for Winlator and Similar Emulators
#https://github.com/ptitSeb/box64/releases/tag/v0.4.2
What's Changed
- This version add lots on unconnected new things, like a PPC64LE backend, Vulkan overlay support or more Dynarec finetuning!
=> Vulkan x64 overlay support. That means using the linux version of Steam, Fossilize & GameOverlayUI will work.
=> Many dynarec refactors, especially on ARM64 & LA64 with fixes to speed regression introduced with the the last 2 releases and improved compatibility.
=> Support for SteamRT3 & new Proton 11
=> New PCC64LE in the work. Not finished, but usable already. Note that the platform seems to use a 64k pagesize by default, so compatibility will suffer on this platform.
More details in New release blog
Contributions
- [WRAPPER] Wrapped more symbols for gio2 and glib2 by @ksco in #3330
- [ELF] Fix SIGSEGV when calling dlinfo RTLD_DI_LINKMAP for emulated code by @matthewabbott in #3331
- Bundle fixes by @LukeShortCloud in #3332
- [LA64_DYNAREC] Refined more RCL/RCR opcodes by @ksco in #3333
- [LA64_DYNAREC] Refined more RCL opcodes by @ksco in #3335
- [WRAPPER][BOX32] Wrapped 1 more symbol for sdl2 by @ksco in #3336
- [LA64_DYNAREC] More work on safeflags, removed some obeslete code ([ARM_DYNAREC] too) by @ksco in #3339
- [RCFILE] Apply safeflags=2 for libjvm by @ksco in #3340
- [LA64_DYNAREC] Enabled 1 more pattern for nativeflags by @ksco in #3341
- Change signal handling function to use signal_to_x64 by @Aqua-Peak in #3307
- [WRAPPER] Make libresolv symbols runtime-resolved (res_*/dn_expand) by @yzewei in #3342
- [LA64_DYNAREC] Refined RCR32 opcode by @ksco in #3343
- [WRAPPER] Wrapped more gtk classes and functions by @ksco in #3344
- [LA64_DYNAREC] Enabled more patterns for nativeflags by @ksco in #3345
- [LA64_DYNAREC] Fix IDIV Ew dividend construction by @yzewei in #3346
- [WRAPPER] More work on gtk wrapping by @ksco in #3347
- [LA64_DYNAREC] Fixed F0 20 LOCK AND opcode by @ksco in #3348
- [LA64_DYNAREC] Fixed 66 0F 73 /6 PSLLQ opcode by @ksco in #3349
- [LA64_DYNAREC] Removed LASX from hard dependencies by @ksco in #3350
- [LA64_DYNAREC] Added non-LASX path for some SSE opcodes by @ksco in #3356
- [LA64_DYNAREC] Fix IDIV Ew with sign-extended DX:AX by @yzewei in #3354
- [LA64_DYNAREC] Fixed DIV Ew as well by @ksco in #3355
- [LA64_DYNAREC] Refined more opcodes by @ksco in #3358
- [LA64_DYNAREC] Handled more invalid opcodes by @ksco in #3359
- [LA64_DYNAREC] Fixed geted16 ([RV64_DYNAREC] too) by @ksco in #3360
- [DYNAREC] Fixed RDFSBASE and WRFSBASE opcodes by @ksco in #3361
- [LA64_DYNAREC] Fixed a special-case of SHLD/SHRD opcodes ([RV64_DYNAREC] too) by @ksco in #3362
- [LA64_DYNAREC] Small fixes to AVX VPSRAW/VPSRAD opcodes by @ksco in #3363
- [ELFLOADER] Added support for memfd created library by @ksco in #3364
- A small change to test runner by @ksco in #3366
- [WRAPPER] Wrapped more symbols for libresolv by @ksco in #3365
- [LA64_DYNAREC] Small optim to a few sign-exntension opcodes by @ksco in #3372
- [LA64_DYNAREC] Enabled CALLRET optim for FAR opcodes by @ksco in #3368
- [WRAPPER] Try dlopen(libbsd) before dlopen(NULL) by @yzewei in #3373
- [LA64_DYNAREC] Small fix to iret_to_next by @ksco in #3375
- [WRAPPER] Provide weak arc4random in libc by @yzewei in #3376
- [LA64_DYNAREC] Fixed CALL FAR opcode ([ARM64_DYNAREC] too) by @ksco in #3377
- [LA64_DYNAREC] Fixed some typos for 16-bit LOCK INC/DEC opcodes by @ksco in #3378
- [LA64_DYNAREC] Minor optimizations for non-lbt path by @ksco in #3379
- [LA64_DYNAREC] Fixed more issues for non-lbt path by @ksco in #3380
- [INTERP] Added DE /2 /3 opcodes by @ksco in #3381
- [INTERP] Fixed subnormal handling of f16 to f32 by @ksco in #3382
- WRAPPER] Add missing libc/selinux/ssl symbols by @yzewei in #3385
- Some more minor changes to test runner by @ksco in #3387
- [RCFILE] Removed an invalid profile by @ksco in #3388
- [RV64_DYNAREC] Fix delta_ip range checks ([LA64_DYNAREC] too) by @Aqua-Peak in #3386
- [ARM64_DYNAREC] Fixed a typo in iret_to_next() by @ksco in #3391
- [ARM64_DYNAREC] Fixed 32-bit VGATHER opcodes ([INTERP] too) by @ksco in #3392
- [LA64_DYNAREC] Fixed 32-bit VGATHER opcodes by @ksco in #3393
- [DYNAREC] Fixed a CRC32 decoding issue ([INTERP] too) by @ksco in #3395
- [RCFILE] Made file priority outweighs BOX64_ARCH by @ksco in #3398
- [WRAPPER] Wrapped 1 more dbus symbol SDL3 uses by @ksco in #3401
- [LA64_DYNAREC] Refined more 16-bit rotate opcodes by @ksco in #3403
- [LA64_DYNAREC] Refined more 16bit shift opcodes by @ksco in #3404
- [WRAPPER] wrapped ncurses curterm via set_curterm; add selinux symbol to (mkdir, find) by @yzewei in #3400
- [LA64_DYNAREC] Refactored the handling of deferred flags by @ksco in #3405
- [LA64_DYNAREC] Fixed AVX VPMASKMOVD/Q opcode by @ksco in #3406
- [BOX32] Removed redundant logging prefix by @ksco in #3407
- [WRAPPER] torch running miss symbol by @yzewei in #3411
- [SYSINFO] Refactored sysinfo module by @ksco in #3410
- [WRAPPER] fenv exception mask transform by @yzewei in #3412
- [LA64_DYNAREC] Removed fastnan path on certain opcodes ([RV64_DYNAREC] too) by @ksco in #3414
- [WRAPPER] Wrapped a few more symbols for libc by @ksco in #3413
- [LA64_DYNAREC] Removed more fastnan path on certain opcodes ([RV64_DYNAREC] too) by @ksco in #3417
- Updated README by @ksco in #3418
- [WRAPPER] Submitted some leftovers by @ksco in #3419
- [WRAPPER] Wrapped more symbols for libnettle8 and lzma by @ksco in #3420
- [SYSCALL] Added 2 more syscalls by @ksco in #3421
- [WRAPPER] Wrapped libc argp_parse by @ksco in #3423
- [WRAPPER] add libc/libselinux/libgmp missing symbols by @yzewei in #3422
- [WRAPPER] Wrapped more symbols for pam and libm by @ksco in #3424
- [DYNAREC] Small optimization for PUSH imm opcodes by @ksco in #3426
- [LA64_DYNAREC] Fixed regression introduced in b798e0d by @ksco in #3427
- [WRAPPER] Add lzma/nettle symbols by @yzewei in #3425
- [BOX32] Fixed wrong offset for many x11 32-bit structures by @ksco in #3428
- [LA64_DYNAREC] Fixed a typo in emit_rcr8c and some cosmetic changes too by @ksco in #3429
- [ELFLOADER] Small log prefix fix by @ksco in #3430
- [SYSINFO] Fixed a missing initialization by @ksco in #3431
- [RCFILE] Updated ZenlessZoneZero profile by @ksco in #3432
- [RCFILE] Revealed a secret by @ksco in #3433
- [SYSINFO] Fixed initialization errors in sysinfo by @ksco in #3434
- [SYSINFO] Fixed initialization errors in sysinfo cont'd by @ksco in #3435
- [DOCS] A Small polish to README by @ksco in #3436
- [CORE] Fixed zydis initialization regression introduced in #3434 by @ksco in #3437
- [LA64_DYNAREC] Fixed 66 0F 15 UNPCKHPD opcode by @ksco in #3438
- [LA64_DYNAREC] Fixed AVX VCMPSS/D opcodes by @ksco in #3439
- [LA64_DYNAREC] Fixed AVX VMOVSS/D opcodes by @ksco in #3440
- [LA64_DYNAREC] Fixed and refined 66F30F opcodes by @ksco in #3441
- [LA64_DYNAREC] Workaround for emit_sbb8 lbt path by @ksco in #3442
- [LA64_DYNAREC] Fixed 6B IMUL load immediate ([RV64_DYNAREC] too) by @ksco in #3443
- [ENV] Added a new option for debugging, and made it default by @ksco in #3444
- [LA64_DYNAREC] Added 66 D9 /6 FNSTENV opcode by @ksco in #3445
- [DYNAREC] Aligned fpu_reset_cache implementation by @ksco in #3446
- [LA64_DYNAREC] Added and fixed fastround=0 path for some opcodes by @ksco in #3448
- [WRAPPER] Add missing libc/crypto/ssl/glib/gomp/sqlite symbols by @yzewei in #3450
- [ELF] Fixed mangohud integration regression for OpenGL introduced by the Vulkan Overlays support by @ksco in #3451
- [SYSINFO] Support model name by @zqb-all in #3454
- [WRAPPER] Fixed the xmlCreatePushParserCtxt function by @yzewei in #3456
- [WRAPPER] Wrapped more symbols for libgl by @ksco in #3449
- [CORE][LA64] Fixed non-lasx resolving order by @ksco in #3458
- [WRAPPER] Fixed atfork handler by @devarajabc in #3460
- [ELF] Fix ABS_ADDR for LA64 ABI 1.0 by @xiangzhai in #3461
- [SYSINFO] Fixed reentrancy handling by @ksco in #3463
- [LA64_DYNAREC] Improved 0F AE opcodes by @ksco in #3466
- [WRAPPER] fix libc argp_parse bridging; add selinux symbols by @yzewei in #3462
- [STEAM] Registered VERSION_CODENAME env. var. for better compatibility by @ksco in #3465
- [WRAPPER] Fixed __cxa_atexit where dso_handle can be NULL (for #3467) by @ksco in #3468
- [ELF] Clean up native symbol resolving stuff by @ksco in #3469
- Fix missing braces in x64run0f.c opcode 0x00 handler by @devarajabc in #3471
- x87: Manually raise FE_OVERFLOW/FE_UNDERFLOW flags in LD2D conversion by @yzewei in #3472
- Fix undefined behavior in EXTRQ/INSERTQ by @devarajabc in #3473
- Fix missing return in openat syscall wrapper by @devarajabc in #3477
- [LA64_DYNAREC] Fix call_c arg setup clobbering A0-mapped regs by @yzewei in #3476
- Fix memory leak of mmaplist_t->chunks and allocator mismatch by @devarajabc in #3479
- Add missing ClearCache after ARCH_UDF by @devarajabc in #3480
- Fix incorrect page-alignment test preventing mprotect() by @devarajabc in #3481
- Fix 32-bit shift overflow in 64-bit BTR/BTC by @devarajabc in #3483