8000 Release v0.3.6 Β· ptitSeb/box64 Β· GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

v0.3.6

Latest
Compare
Choose a tag to compare
@ptitSeb ptitSeb released this 06 Jun 13:37
· 68 commits to main since this release

What's Changed

  • This version introduces wowbox64.dll for Hangover; the ability to use the Volatile Metadata of Windows executables for x64 wine; and some better x87/SSE/AVX handling
    => WowBox64 can be built directly from Box64 repo, and can be found in the CI artifacts also
    => it also supports a subset of BOX64_XXXX settings, which can be set from command line or via a setting file ".box64rc" in the Wine prefix home
    => Volatile Metadata, when present, allows only applying strong memory ordering when needed, as marked by the compiler, giving overall better performances
    => The precision control bit of x87 is now handled, allowing some older games to run correctly
    => More work has been done in the handling of precise NaN and Round handling in SSE & AVX opcodes
  • Added/fixed some Syscalls, helping Go programs
  • Wrapper: more functions added, and some fixes too. Vulkan is 1.4 now, among other things
  • Wrapper: Added a few more wrapped libs (like some avcodec and friends)
  • Improve internal memory allocator (with a dedicated allocator for small memory allocations), and fixed some issues around it
  • Improve internal mmaped file tracking
  • Box32: Some small refactoring around memory management and internal memory allocations
  • Box32: More functions wrapped
  • Box32: More libraries wrapped
  • ARM64: Added support for Atomic extension in many internal functions (not related to Dynarec).
  • ARM64: Added support for CRC2 extension for internal CRC functions
  • Interp: A few fixes to some opcodes, and better NAN handling on some selected SSE/AVX opcodes
  • Interp: Added a few opcodes with exotic prefixes
  • Dynarec: Introcude BOX64_DYNAREC_ROUND=2 to handle x87 precision control bit (ARM64 and RV64, LA64 still doesn't handle x87 yet)
  • Dynarec: Some small optimizations on Strongmem emulation, making it more efficient
  • Dynarec: Some speed optimizations on code that do SMC and waiting slot
  • Dynarec: Added CALLRET=2 to improve call/ret optimization compatibility with SMC code
  • Dynarec: ARM64: Various optimizations and fixes on some opcodes, especially AVX ones
  • Dynarec: ARM64: Added missing FASTNAN=0 handling on some SSE/AVX opcodes
  • Dynarec: ARM64: Added some exotic prefixed opcodes
  • Dynarec: ARM64: Avoid purging XMM/YMM register on intra-block loop if possible
  • Dynarec: RV64: Many fixes and improvments around x87 emulation
  • Dynarec: RV64: Added some more missing opcodes, especially some LOCK prefixed ones and many MMX ones
  • Dynarec: RV64: Various fixes on some existing opcodes
  • Dynarec: RV64: Improved nativeflags handling, allowing for more cases to use it
  • Dynarec: LA64: Added some more opcodes and MMX handling
  • Dynarec: LA64: Various fixes to some existing opcodes
  • Android: Improved signal handling, structure alignment, and transformation
  • WowBox64: Created the dll, with RcFile, Env. Var. handling and log printout (both ARM64 Dynarec and Interpreter available)
  • Cosim: Various fixes and improvements to limit false negatives and improve readability of logs
  • RcFile: A few fixes for some values that would be ignored

More details in New release blog

Contributors

  • [WRAPPER] missing functions and features by @airidosas252 in #2434
  • Bundle more libs by @LukeShortCloud in #2419
  • [COSIM] Show hex values in STx diff logs by @ksco in #2436
  • [RV64_DYNAREC] Fixed some x87 rounding cases for fastround=0 by @ksco in #2437
  • [DOCS] Added ranged gdbjit documentation by @ksco in #2440
  • [RV64_DYNAREC] Minor x87 changes to enable test31 by @ksco in #2441
  • [RV64_DYNAREC] Minor D8..DF opcodes refactor by @ksco in #2442
  • [RV64_DYNAREC] More minor changes and fixes to x87 opcodes by @ksco in #2443
  • Note about binfmt_misc by @FZXO11 in #2445
  • [RV64_DYNAREC] Added 66 F0 0F B1 LOCK CMPXCHG opcode by @ksco in #2447
  • [DYNAREC] Fixed minor issues for F0 0F B0/B1 LOCK CMPXCHG opcodes by @ksco in #2448
  • [RCFILE] Added profile for HSR Game by @shenmo7192 in #2450
  • [RV64_DYNAREC] Fixed many minor issues by @ksco in #2451
  • [RCFILE] Update steamwebhelper profile by @ksco in #2452
  • Fixed a bug in the wrapper helper due to variadic arguments by @rajdakin in #2455
  • [RV64_DYNAREC] Fixed some DD prefixed x87 opcodes by @ksco in #2463
  • [RV64_DYNAREC] Fixed scratch conflicts with fastround=0 in some x87 opcodes by @ksco in #2464
  • [RV64_DYNAREC] Small optim to vsetvli usage by @ksco in #2465
  • [RV64_DYNAREC] Fixed D9 E5 FXAM opcode by @ksco in #2466
  • [RV64_DYNAREC] Minor improvement to DD /7 FNSTSW opcode by @ksco in #2467
  • [RV64_DYNAREC] Fixed 66 0F 6A PUNPCKHDQ opcodes by @ksco in #2468
  • [INTERP] Fixed Interpreter to have new test30 running on RISC-V by @ksco in #2470
  • [LA64_DYNAREC] Added more opcodes by @ksco in #2472
  • [LA64_DYNAREC] Added more opcodes by @ksco in #2473
  • [LA64_DYNAREC] Added more opcodes by @ksco in #2475
  • [LA64_DYNAREC] Added preliminary MMX support by @ksco in #2476
  • [LA64_DYNAREC] Added more MMX opcodes by @ksco in #2477
  • [LA64_DYNAREC] Added more MMX opcodes by @ksco in #2479
  • Some cosmetic changes to C header files by @ksco in #2487
  • Added os.h for future usage by @ksco in #2488
  • [LA64_DYNAREC] Fix f0.80.1 LOCK OR, LoongArch ANDI is zero-extended. by @phorcys in #2489
  • Introduced box64cpu.h for exported interpreter and dynarec functions by @ksco in #2490
  • Moved more OS-dependent functions to os.h by @ksco in #2491
  • Moved some emit functions to os.h by @ksco in #2494
  • [LA64_DYNAREC] Add more sse ops by @phorcys in #2493
  • [CI] Enable cppThreads_32bits in the CI by @ksco in #2496
  • Moved more functions to os.h by @ksco in #2497
  • [INTERP] Fixed a nan propagation issue on RISC-V by @ksco in #2498
  • Decoupled alternate functions from bridge by @ksco in #2500
  • [LA64_DYNAREC] Optimize la64 MAXPD/MAXPS. by @phorcys in #2499
  • Corrected arguments of my_epoll_pwait2 by @kpyrkosz in #2501
  • Add __localtime64 and __time64 in box32 mode by @kpyrkosz in #2502
  • [CMAKE]: Fix arm64 build by @cjy880927 in #2507
  • [WOW64] Add wow64 PE build scaffolding by @ksco in #2513
  • [ARM64_DYNAREC] Fixed some dangling else warnings by @ksco in #2514
  • Added backtrace.h for holding backtrace-related functions by @ksco in #2515
  • Moved emit functions to seperate files from signals.h by @ksco in #2516
  • Made custommem OS-independent by @ksco in #2517
  • [WOW64] More work on the PE wow64 build by @ksco in #2518
  • [WOW64] More tweaks towards PE build by @ksco in #2519
  • [WOW64] Splitted freq and cleanup functions from x64emu by @ksco in #2521
  • [LA64_DYNAREC] Update la64 mmx infra. by @phorcys in #2524
  • [LA64_DYNAREC] Add mmx related mov op by @phorcys in #2526
  • [LA64_DYNAREC] Optimize sse_setround by @phorcys in #2527
  • [WOW64] More tweaks for PE build by @ksco in #2528
  • [LA64_DYNAREC] Add mmx shift ops. by @phorcys in #2529
  • [LA64_DYNAREC] Add mmx arith ops. by @phorcys in #2530
  • [RV64_DYNAREC] fix MASKMOVQ by @phorcys in #2531
  • [WOW64] Added non-functional PE build by @ksco in #2532
  • [LA64_DYNAREC] Add mmx cmp ops. by @phorcys in #2533
  • Eliminated many compilation warnings by @ksco in #2535
  • [WOW64] Added PE build to the build system by @ksco in #2537
  • [LA64_DYNAREC] Add mmx pack/unpack ops. by @phorcys in #2536
  • [WOW64] More tweaks to CMake PE build by @ksco in #2541
  • [LA64_DYNAREC] Add SSE1/SSE2's cvt mmx ops. by @phorcys in #2538
  • [WOW64] Finished skeleton code for PE build by @ksco in #2542
  • [LA64_DYNAREC]Add/Fix more SSE/MMX ops by @phorcys in #2543
  • Merge mmapmem into mapallmem by @devarajabc in #2550
  • [RV64_DYNAREC] Added X87DOUBLE=2 support by @ksco in #2553
  • [ENV][COSIM] Enable x87double only if it's off by @ksco in #2554
  • [RV64_DYNAREC][TRACE][COSIM] Improve x87 fiability in dynarec trace and cosim scenario by @ksco in #2555
  • [DYNAREC] More handling of low precision x87 flag change by @ksco in #2556
  • [RV64_DYNAREC] Better handling of x87double=2 by @ksco in #2560
  • [RBTREE] Cache boundary nodes and remove add_range() by @devarajabc in #2557
  • [LA64_DYNAREC] Add SSSE3's mmx ops. by @phorcys in #2559
  • [DYNAREC] Added a x87pc test and some cosmetic changes too by @ksco in #2561
  • Fixed an edge case in rb_unset by @rajdakin in #2562
  • Added some missing newlines by @ksco in #2567
  • [ARM64_DYNAREC] Minor optim to MOVNTDQA by @ksco in #2568
  • [DYNAREC] Added ranged Dynablock dump by @ksco in #2570
  • [LA64_DYNAREC] Add POPCNT/TZCNT/LZCNT ops. by @phorcys in #2566
  • [LA64_DYNAREC] Add/Opt more mmx/sse ops by @phorcys in #2565
  • [RV64_DYNAREC] Fixed x87 cache swapping by @ksco in #2571
  • [SIGNAL] Better signal logging when trace enabled by @ksco in #2572
  • [RV64_DYNAREC] Minor adjustment to dynarec_missing=2 by @ksco in #2578
  • Show Dynarec architecture in version string by @ksco in #2580
  • [RV64_DYNAREC] Optimized rv64 printer for pseudo and jump instructions by @ksco in #2581
  • [RV64_DYNAREC] Small optimization to LEA opcode by @ksco in #2582
  • [RV64_DYNAREC] Minor optim to 8 bit TEST opcode by @ksco in #2583
  • Fixed 02423c2 by @rajdakin in #2584
  • Use setProtection_mmap in NewBrick by @devarajabc in #2599
  • Added a simple PE loaded dedicated for volatileMetadata by @ksco in #2607
  • [NON4KPAGE] Fix AllocLoadElfMemory multiblocks wrong alignment (#2608) by @xiangzhai in #2609
  • [DYNAREC] Use PE volatile metadata in dynarec by @ksco in #2610
  • [ENV] Refactored file-mapping handling by @ksco in #2612
  • [GDBJIT] Added a new option to register debuginfo only after trapped into signalhandler by @ksco in #2614
  • [WOW64] Initial implementation patches by @AndreRH in #2619
  • [DOCS] Include RV64 and LARCH64 DynaRec options by @devarajabc in #2621
  • [Docs] Fix the format of Commit 816c4bd by @devarajabc in #2622
  • [CI] Check WOW64 build in the CI by @ksco in #2623
  • wow64 part2 (dont squash) by @AndreRH in #2624
  • [RV64_DYNAREC] Added more mmx opcodes by @ksco in #2626
  • [RV64_DYNAREC] Added more mmx opcodes by @ksco in #2627
  • [RV64_DYNAREC] Added more mmx opcodes by @ksco in #2630
  • [DOCS] improve consistency between documentation and code by @sehraf in #2631
  • [RV64_DYNAREC] Added more mmx opcodes by @ksco in #2629
  • [DOCS] Align usage.json and env.h by @ksco in #2633
  • [RV64_DYNAREC] Fixed a typo introduced lately by @ksco in #2634
  • [RV64_DYNAREC] Added and optimized some SSE/MMX opcodes by @ksco in #2635
  • [DYNAREC] More minor changes to missing VEX prefixed opcodes by @ksco in #2636
  • [RV64_DYNAREC] Added more opcodes for vector by @ksco in #2637
  • [DYNAREC] Fixed alternate address testing when retrieving dynablock by @ksco in #2638
  • [RV64_DYNAREC] Added F2 0F F0 LDDQU opcode for vector by @ksco in #2639
  • [RV64_DYNAREC] Enabled native flags optimization for SETcc opcodes by @ksco in #2640
  • wow64 part3 (dont squash) by @AndreRH in #2647
  • [RV64] Improved vendor extension detection to avoid conflicts (for #2645) by @ksco in #2648
  • [RV64_DYNAREC] Improved POPCNT and fixed some scratch conflicts by @ksco in #2651
  • [RV64_DYNAREC] Fixed more potential scratch register conflicts by @ksco in #2652
  • [DYNAREC] Removed unnecessary volatile metadata barriers by @ksco in #2653
  • [RV64_DYNAREC] Implemented unaligned path for LOCK INC/DEC opcodes by @ksco in #2656
  • Reprint env configs when special libraries detected by @ksco in #2657
  • [RV64_DYNAREC] Fixed a typo in 66 F0 0F LOCK CMPXCHG opcode by @ksco in #2658
  • [RV64_DYNAREC] Enable nativeflags optimization for more patterns by @ksco in #2659
  • wow64 part4 (dont squash) by @AndreRH in #2660
  • [CMAKE] Removed the hard dependency between dynarec and main executable to speed up build by @ksco in #2662
  • Added -k option to kill all box64 instances by @ksco in #2661
  • [RV64_DYNAREC] Optimized some opcodes with xtheadbb by @ksco in #2663
  • [RV64_DYNAREC] Optimized CLZ macro with xtheadbb by @ksco in #2664
  • [RV64_DYNAREC] Improved emit_pf with Zbb by @ksco in #2665
  • wow64 part5(dont squash) by @AndreRH in #2667
  • [RV64_DYNAREC] Minor nativeflags optim to LEA and CMOVcc opcodes by @ksco in #2669
  • [RV64_DYNAREC] Improved ret_to_epilog with xtheadmemidx by @ksco in #2670
  • [RV64_DYNAREC] Added more opcodes to printer by @ksco in #2671
  • [CMAKE] Fixed dependency issues introduced recently by @ksco in #2673
  • [RV64_DYNAREC] Removed useless zero-ups in some emit_* functions by @ksco in #2672
  • wow64 final (dont squash) by @AndreRH in #2675
  • [RV64_DYNAREC] Fixed regression introduced in #2669 by @ksco in #2676
  • [DYNAREC] Fixed expected return address in bridged native call by @ksco in #2677
  • [ARM64_DYNAREC] Fixed a warning by @ksco in #2678
  • [WOW64] Supported logging to stdout by @ksco in #2679
  • [ARM64_DYNAREC] Small optim to modreg CMPXCHG by @ksco in #2680
  • [WOW64][ENV] Clean up a bit by @ksco in #2681
  • [WOW64] Added more missing pieces and the interpreter works by @ksco in #2682
  • [WOW64] Print banner at startup by @ksco in #2685
  • fix: env BOX64_EMULATED_LIBS triggers sigsegv by @liuli0217 in #2686
  • [WRAPPER] Implement myStackAlignGVariantNew for g_variant_new by @xiangzhai in #2687
  • [WOW64] Added support for cosim by @ksco in #2683
  • [DYNAREC] Ported 37ed49c to RV64 and LA64 by @ksco in #2690
  • [DYNAREC] Fixed a prefix typo in dynarec dump by @ksco in #2693
  • [WOW64] Improved RIP handling on INT n by @ksco in #2692
  • [CI] Upload libwowbox64.dll to CI artifacts by @ksco in #2696
  • [WRAPPER] Fixed some xcb-image wrappings by @ksco in #2697
  • [WOW64] Override DOS stub to Wine builtin DLL by @ksco in #2698
  • [RBTREE] Update comments on red-black tree usage by @devarajabc in #2694
  • [WOW64] The name is WowBox64 by @ksco in #2699
  • [ENV][WOW64] Not every env var applies to WowBox64 by @ksco in #2700
  • [DOCS] Updated COMPILE.md about WowBox64 by @ksco in #2701
  • [WOW64] More cleanups and implemented a few more BTCpu functions by @ksco in #2702
  • [WOW64] Added rcfile support by @ksco in #2708
  • [WOW64] The official file name is wowbox64.dll by @ksco in #2709

New Contributors

Full Changelog: v0.3.4...v0.3.6

0