github ptitSeb/box64 v0.4.2

9 hours ago

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
  • [LA64_DYNAREC] Close the fastnan path for MINSS/MAXSS/VMINSS/VMAXSS to correct NaN semantics. by @yzewei in #3486
  • [DEBIAN] Support RISCV by @zqb-all in #3488
  • [FIX]: separate sse4_2 and sha_ni by @yzewei in #3490
  • Snapdragon 8 Elite Gen 5 optimization flags by @airidosas252 in #3489
  • [DYNAREC] Added STRONGMEM=4 by @ksco in #3491
  • Fix incorrect bit shift in fpu_do_free by @devarajabc in #3492
  • Fix incorrect dlinfo RTLD_DI_LINKMAP usage in initWrappedLib by @kg233 in #3494
  • [ARM64_DYNAREC] Fix BICxw flag handling by @devarajabc in #3495
  • [WRAPPER] Wrapped 1 more symbol for libc by @ksco in #3497
  • [ARM64_DYNAREC] Fix operator precedence issue by @devarajabc in #3498
  • Fix size calculation in my_strlcat by @devarajabc in #3500
  • [BUNDLE] Add libmbed libraries by @LukeShortCloud in #3501
  • [BUNDLE] Add libpng12 libraries by @LukeShortCloud in #3502
  • [BUNDLE] Fix 'libstdc++.so.6' download by @LukeShortCloud in #3503
  • [BUNDLE] Add 'libz.so' libraries by @LukeShortCloud in #3504
  • [WRAPPER] Fix libpam conversation callback ABI by @yzewei in #3506
  • x87: Fix FPREM/FPREM1 semantics in dynarec and interpreter by @yzewei in #3505
  • Fix epoll_create1 flag register in my_syscall handling by @devarajabc in #3507
  • [BUNDLE] Better explain why it is needed by @LukeShortCloud in #3509
  • Bundle libstdcpp5 by @LukeShortCloud in #3510
  • Fix dst->key.which to src->key.which in SDL event by @devarajabc in #3511
  • Fix use-before-set in inplace_XRRMonitorInfo_enlarge by @devarajabc in #3512
  • [BOX32] Fix ARPL (0x63) semantics and add regression test by @FrontMage in #3513
  • [ENV] Added a new env. var. BOX64_FORCE_LD_PRELOAD by @ksco in #3514
  • [BOX32][WRAPPER] Fix inverted condition in del_cond() by @devarajabc in #3517
  • [BOX32] Fix missing get_attr() by @devarajabc in #3518
  • [BOX32] Add MAP_FAILED check in my32_prepare_thread by @devarajabc in #3520
  • [BOX32][WRAPPER] Fix XRRGetPanning shrinking wrong variable by @devarajabc in #3521
  • [CI] Add stale issues workflow by @LukeShortCloud in #3522
  • [WRAPPER] Add SDL3 (libSDL3.so.0) wrapper for OldUnreal game support by @runlevel5 in #3530
  • Fix fesetenv/feupdateenv SIGSEGV on ppc64le with x86 FE_DFL_ENV sentinel by @runlevel5 in #3533
  • [LA64_DYNAREC] Removed many redundant native mnemonics printer by @ksco in #3538
  • Added some auto-generated leftovers by @ksco in #3539
  • [ELFLOADER] Added back MAP_FIXED flag by @ksco in #3540
  • [INTERP][COSIM] Disabled GPF emissions in cosim mode by @ksco in #3541
  • [BUNDLE] Add missing symlink by @LukeShortCloud in #3508
  • Fix ELF loader crash on hosts with >4KB page sizes (e.g. 64KB) by @runlevel5 in #3546
  • [WRAPPER] Fix my_fegetround() to convert native rounding mode to x86 format by @runlevel5 in #3548
  • [WRAPPER] Reworked libxml2 by @ksco in #3550
  • [DYNAREC] Replace hardcoded jmpnext trampoline size with per-arch JMPNEXT_SIZE macro by @runlevel5 in #3551
  • [WRAPPER] Add libomp.so.5 wrapper by @runlevel5 in #3543
  • [DYNAREC] Fix protectDB/protectDBJumpTable stripping PROT_WRITE from data regions on large-page hosts (fix #3556) by @runlevel5 in #3557
  • Add per-thread native sigaltstack for internal signal handlers by @runlevel5 in #3559
  • [TOOLS] Add rbtree_walk() and optional dynablock size histogram by @runlevel5 in #3558
  • [BUNDLE] Add manual symlinks first by @LukeShortCloud in #3561
  • [wrapped] Add some missing symbols by @yzewei in #3549
  • [RV64_DYNAREC] fix rv64 epilog by @zqb-all in #3565
  • [RV64_DYNAREC] Fix OF flag position in copyUCTXreg2Emu by @zqb-all in #3567
  • [BOX32] Fix ELF loading on 64KB page systems by @runlevel5 in #3566
  • [RV64_DYNAREC] Use SRLIW for 32-bit SF extraction in emit_cmp32_0 by @zqb-all in #3569
  • [BOX32][WRAPPER] Enable __isoc99_vfscanf and __isoc99_vsscanf in wrapped libc by @runlevel5 in #3570
  • [LA64_DYNAREC] Fixed non-lbt path of SF computation in emit_cmp32_0 by @ksco in #3572
  • [WRAPPER] Fix SDL Vulkan bridge2 passing wrong fnc2 (regression from c7bc293) by @runlevel5 in #3578
  • Fix execl/execle/execlp varargs argument corruption by @gigachadmma69 in #3582
  • [WRAPPER] Fix xmlMemGet typo by @xiangzhai in #3585
  • [WRAPPER] Fix g_type_module_register_type forgot to findFct other callbacks for my_GTypeInfo_t by @xiangzhai in #3586
  • Hook ogg_sync_pageout to fix use-after-free in statically-linked libogg by @runlevel5 in #3589
  • [PPC64LE] Add PPC64LE platform support (interpreter-only) by @runlevel5 in #3591
  • dynarec: fail-close readable-range guards for FillBlock/native-call probes by @FrontMage in #3590
  • [BOX32][WRAPPER] Add libSDL2-2.0.so.1 to 32-bit library list by @runlevel5 in #3595
  • [BOX32][WRAPPER] Add libpulse-simple wrapper for BOX32 by @runlevel5 in #3598
  • Bundle emulated libs list by @LukeShortCloud in #3600
  • [WRAPPERHELPER] Added an x86-specific inclusion specification file by @rajdakin in #3601
  • [WRAPPER] Add libvpx wrapper for VP8/VP9 codec support by @runlevel5 in #3594
  • [WRAPPERHELPER] Fixed x86-specific inclusion specification file by @rajdakin in #3602
  • Implement SDL3 callback wrappers for timer, event, hint, and log functions by @gigachadmma69 in #3581
  • Enable 7 missing functions in Box32 libc and librt wrappers by @gigachadmma69 in #3583
  • Enable seekdir, telldir, getdelim, getline in Box32 libc wrapper by @gigachadmma69 in #3580
  • wrapped32: enable missing libm and libpthread entries by @gigachadmma69 in #3584
  • [WRAPPER] Add libayatana-indicator3.so.7 and libayatana-ido3-0.4.so.0 wrappers by @runlevel5 in #3553
  • [BOX32][WRAPPER] Add libogg wrapper for BOX32 by @runlevel5 in #3596
  • cpuid: Enable Invariant TSC bit for Intel CPU type by @gigachadmma69 in #3579
  • [WRAPPER] Fix atexit in the shared library failed to be called by @xiangzhai in #3611
  • [Fix] Crash caused by concurrent operation of the exit phase and worker threads (teardown lifecycle race) by @yzewei in #3610
  • [BOX32][WRAPPER] Add wrapper for libvorbis by @runlevel5 in #3597
  • Fix segfault when BOX64_VERSION env var is set (ftrace NULL dereference) by @yoinks-yoinks in #3613
  • wrapped32: enable 65 missing libresolv entries by @gigachadmma69 in #3603
  • [LA64_DYNAREC] Use a new printer by @ksco in #3614
  • Implement ov_read_filter callback wrapper for libvorbisfile by @gigachadmma69 in #3604
  • [LA64_DYNAREC] Matched old format on the new printer by @ksco in #3618
  • [PPC64LE] Add PPC64LE dynarec infrastructure with MOV opcodes by @runlevel5 in #3592
  • [BOX32] Fix copy-paste bug in SDL_ShowMessageBox by @devarajabc in #3619
  • [BUNDLE] Remove libvorbis by @LukeShortCloud in #3625
  • [PPC64LE_DYNAREC] Add stack and basic opcodes (PUSH/POP, NOP, XCHG, LEAVE) by @runlevel5 in #3620
  • [BUNDLE] Mention AlmaLinux Vault repository by @LukeShortCloud in #3628
  • [BUNDLE] Add 'libassuan.so.0' by @LukeShortCloud in #3629
  • [LA64_DYNAREC] fix COMISS/UCOMISS flags state handling by @yzewei in #3631
  • [BOX32] Fix vorbis pcmout/lapout/analysis_buffer pointer conversion by @runlevel5 in #3630
  • [BUNDLE] Remove libogg by @LukeShortCloud in #3626
  • [WRAPPER] Fix dbus callback return type and format string bugs by @gigachadmma69 in #3634
  • [WRAPPER] fix CRYPTO_get_ex_new_index callbacks && add some symbol by @yzewei in #3637
  • Fix box64 -t for systems with page sizes larger than 4K by @runlevel5 in #3638
  • Fix ALSA callback copy-paste bugs in find* lookup functions by @gigachadmma69 in #3639
  • [PPC64LE_DYNAREC] Add MOV, NOP/XCHG, MOVSXD, CWDE/CDQ opcodes by @runlevel5 in #3633
  • [WRAPPER] Wrapped icuuc68 and icui18n68 by @ksco in #3640
  • [LA64_DYNAREC] Added 66 0F 38 41 PHMINPOSUW opcode by @ksco in #3641
  • [TEST] Go more aggressive on buffer size by @ksco in #3643
  • [LA64_DYNAREC] Fixed 0F 6E MOVD opcode decoding error by @ksco in #3644
  • [LA64_DYNAREC] Added fastnan=0 path to F3 0F 51 SQRTSS opcode by @ksco in #3646
  • [LA64_DYNAREC] Fixed register conflicts for 66 0F BA opcodes by @ksco in #3647
  • [LA64_DYNAREC] Fixed MULX opcode by @ksco in #3649
  • [WOW64] Fix build with llvm-mingw 20260224 by @AndreRH in #3653
  • [LA64_DYNAREC] Fixed scratch register conflict for 66 0F 38 63 PCMPISTRI opcode ([RV64_DYNAREC] too) by @ksco in #3654
  • [INTERP] Added a bunch of NEG opcode, DynaRec TBD by @ksco in #3655
  • [LA64_DYNAREC] Fixed MULX again, but it's 32bit path this time by @ksco in #3658
  • [LA64_DYNAREC] Fixed F0 F7 /3 LOCK NEG opcode by @ksco in #3656
  • [RV64_DYNAREC] config vector before VLE in sse_get_reg_vector by @zqb-all in #3624
  • [WOW64] Fixed build on my machine by @ksco in #3660
  • [CI] Added *.def to CI workflow dispatch path by @ksco in #3662
  • [PPC64LE_DYNAREC] Add ADD opcodes (0x00-0x05) and emitters by @runlevel5 in #3652
  • [ARM64_DYNAREC] Fixed scratch register conflict for BZHI opcode by @ksco in #3661
  • [WRAPPER] Wrapped more symbols used by rpcs3 by @ksco in #3665
  • [WRAPPERHELPER] Added support for versioned symbols (libpthread) and other minor features by @rajdakin in #3671
  • [WRAPPERHELPER] Added typedef translation pre-reservation by @rajdakin in #3672
  • [WRAPPER] Wrapped 1 more symbol for libc by @rroohhh in #3673
  • [INTERP] Fixed RDRAND and RDPID by @ksco in #3674
  • [INTERP] Fixed RDRAND and RDPID again by @ksco in #3675
  • [LA64_DYNAREC] Added SGDT/SIDT opcodes by @ksco in #3676
  • [PPC64LE_DYNAREC] Add OR (0x08-0x0D), AND (0x20-0x25), XOR (0x30-0x35) and SUB (0x28-0x2D) opcodes and emitters by @runlevel5 in #3668
  • [LA64_DYNAREC] Refactored AVX infrastructure by @ksco in #3679
  • [LA64_DYNAREC] Fixed AVX VRSQRTSS/VRCPSS opcodes by @ksco in #3680
  • [LA64_DYNAREC] Fixed x87 FISTTP fastround=0 path by @ksco in #3681
  • [PPC64LE_DYNAREC] Add helper macros by @runlevel5 in #3677
  • [LA64_DYNAREC] Fixed VCVTPS2PH opcode by @ksco in #3685
  • [LA64_DYNAREC] Fixed AVX to SSE migration by @ksco in #3682
  • [WRAPPER] Add wrapper for libmvec.so.1 by @runlevel5 in #3683
  • [LA64_DYNAREC] Fixed scratch conflicts for VCVTPS2PH opcode by @ksco in #3687
  • [LA64_DYNAREC] Fixed avx_get_reg for readonly 128bit case by @ksco in #3688
  • [WRAPPER] ioctl number x86_64 -> ppc64le translation by @runlevel5 in #3689
  • [WRAPPER] Ported the steam vulkan hack to 64-bit by @ksco in #3692
  • [RCFILE] Fix one game profile by @Mikura-Kyouka in #3695
  • [WRAPPER] Fixed 5d9e853 by @ksco in #3696
  • [WRAPPER] Wrapped 1 more symbol for libc by @ksco in #3698
  • [PPC64LE_DYNAREC] Add CMP, TEST, ADC and SBB opcodes by @runlevel5 in #3684
  • [CI] Bumped llvm-mingw to 20260311 by @ksco in #3700
  • [RV64_DYNAREC] Fixed LOOP opcodes by @ksco in #3701
  • [RV64_DYNAREC] Fixed 66 0F 3A ROUND opcodes sign-bit preserving by @ksco in #3702
  • [PPC64LE_DYNAREC] Add opcodes (0x80-0x83) by @runlevel5 in #3706
  • [WRAPPER] Add missing cairo/ssl/gssapi/harfbuzz/selinux symbols by @yzewei in #3708
  • [TEST] Made json buffer dynamic by @ksco in #3711
  • [LA64_DYNAREC] Added !fastnan handling for DIVSS opcode by @ksco in #3712
  • [LA64_DYNAREC] Fixed AVX VPINSRB opcode by @ksco in #3713
  • [LA64_DYNAREC] Removed assert in x87_get_current_cache ([RV64_DYNAREC] too) by @ksco in #3710
  • [LA64_DYNAREC] Fixed SSE PCMPEQQ opcode by @ksco in #3714
  • [TEST] Tracked MMX registers by @ksco in #3715
  • [PPC64LE_DYNAREC] Add more opcodes by @runlevel5 in #3709
  • [INTERP] Fixed cvtf32_16 by @ksco in #3718
  • [INTERP][DYNAREC] Fixed CRC32 register preservation by @ksco in #3719
  • [LA64_DYNAREC] Fixed F0 80 /4 LOCK AND opcode by @ksco in #3721
  • [ARM64_DYNAREC] Fixed register conflicts for ARPL opcode by @ksco in #3722
  • [ARM64_DYNAREC] Fixed 16-bit LOCK XOR opcode by @ksco in #3723
  • [ARM64_DYNAREC] Aligned UD flags with interpreter for ANDN opcode by @ksco in #3724
  • [INTERP][ARM64_DYNAREC] Fixed BZHI PF computation by @ksco in #3726
  • [ARM64_DYNAREC] Fixed a typo in 16-bit LOCK SUB opcode by @ksco in #3727
  • [ARM64_DYNAREC] Fixed 16-bit LOCK OR opcode by @ksco in #3728
  • [INTERP] Fixed VPSLLW/D opcodes by @ksco in #3729
  • [WRAPPER] Fix XML_ParserCreate_MM wrapping by @zqb-all in #3686
  • [INTERP] Fixed cvtf32_16 again by @ksco in #3731
  • [ARM64_DYNAREC] Fixed BSF/BSR PF computation by @ksco in #3732
  • [ARM64_DYNAREC] Fixed IOC bit reset for CVTTPD2PI/CVTPD2PI opcodes by @ksco in #3733
  • [INTERP] Fixed a regression introduced in #3719 by @ksco in #3735
  • [LA64_DYNAREC] Fixed CF tracing for ADC/SBB opcodes by @ksco in #3736
  • [LA64_DYNAREC] Fixed Gx equals Ex case for VCVTPD2DQ by @ksco in #3737
  • [INTERP] Fixed BZHI opcode by @ksco in #3738
  • [INTERP][DYNAREC] Reworked PF computaion for ANDN opcode by @ksco in #3740
  • [LA64_DYNAREC] Reworked fastnan handling by @ksco in #3739
  • [LA64_DYNAREC] Fixed BSF/BSR PF computation by @ksco in #3741
  • [LA64_DYNAREC] Fixed LOCK NEG opcode by @ksco in #3742
  • [INTERP] Fixed nan propagation edge-cases for various opcodes by @ksco in #3734
  • [INTERP] Fixed cvtf16_32 SNaN handling by @ksco in #3751
  • [ARM64_DYNAREC] Fixed CF computation for 16-bit LOCK ADC/SBB by @ksco in #3752
  • [ARM64_DYNAREC] Fixed nan propagation typo for VADDSS/D and other similar opcodes by @ksco in #3753
  • [ARM64_DYNAREC] Fixed nan propagation for ADDPS and similar opcodes by @ksco in #3754
  • [ARM64_DYNAREC] Fixed IOC bit reset for CVTTPS2PI/CVTPS2PI opcodes by @ksco in #3755
  • [ARM64_DYNAREC] Fixed ANDN PF computation (again) by @ksco in #3756
  • [ARM64_DYNAREC] Fixed YMM zero tracking for dynablock entry instructions by @ksco in #3757
  • [ARM64_DYNAREC] Refined SNaN propagation for various opcodes by @ksco in #3758
  • Fixed sse42_compare_string_explicit_len for length=INT_MIN by @ksco in #3759
  • [ARM64_DYNAREC] Fixed CMPXCHG8B CASPALw equal case by @ksco in #3760
  • [ARM64_DYNAREC] Fixed cmpxchg modreg ed=rax case by @ksco in #3761
  • [ARM64_DYNAREC] Fixed a edge case of df tracking for LOCK CMPXCHG16B opcode by @ksco in #3762
  • [INTERP] Fixed ADC/SBB opcodes CAS retry corrupting CF by @ksco in #3764
  • [ARM64_DYNAREC] Fixed ADC/SBB opcodes CAS retry corrupting CF by @ksco in #3765
  • [DYNAREC] Fixed XADD where source register overlapping memory base by @ksco in #3766
  • [INTERP] Fixed cvtf32_16 SNaN -> QNaN conversion by @ksco in #3767
  • [ARM64_DYNAREC] Fixed a regression introduced in #3766 by @ksco in #3768
  • [ARM64_DYNAREC] Removed VMASKMOVPS/D ymm zero gate by @ksco in #3769
  • [INTERP] Fixed BEXTR opcode by @ksco in #3770
  • [ARM64_DYNAREC] Better fix for #3762 by @ksco in #3772
  • [TEST] Supported baking env variables settings into test by @ksco in #3773
  • [TEST] Support array values in baked-in variables for combinatorial runs by @ksco in #3774
  • [ARM64_DYNAREC] Fixed uninitilized scratch registers for VCVTTPD2DQ opcode by @ksco in #3776
  • [ARM64_DYNAREC] Fixed LOCK NOT opcode non atomics path by @ksco in #3777
  • [TEST][BOX32] Added proper handling for running 32-bit tests on non-Box32 builds by @ksco in #3780
  • [TEST] Optimized combo with dynarec=0 by @ksco in #3781
  • [BOX32] Add library path used by Debian "cross" packages by @a9ix in #3785
  • [LA64_DYNAREC] Fixed LOCK XADD opcode flags computation by @ksco in #3786
  • [LA64_DYNAREC] Fixed PCMPESTRI opcode by @ksco in #3787
  • [LA64_DYNAREC] Fixed BSF/BSR pf computtation by @ksco in #3788
  • [TEST] Refactored arg parsing and allow to run single combo by number by @ksco in #3789
  • [DYNAREC] Fixed callret=2 with always_test out-of-bounds read by @ksco in #3790
  • [LA64_DYNAREC] Fixed dec32 non-lbt path SF computation by @ksco in #3792
  • [LA64_DYNAREC] Fixed amadd_db.b use in lock opcodes by @ksco in #3793
  • [DYNAREC] Fixed 69 IMUL opcode load immediate by @ksco in #3795

New Contributors

Full Changelog: v0.4.0...v0.4.2

Don't miss a new box64 release

NewReleases is sending notifications on new releases.