Skip to content

Releases: ptitSeb/box64

v0.4.0

03 Jan 15:56

Choose a tag to compare

What's Changed

This version added many important refactors: the opcode prefix decoder for Dynarec, libGL and Vulkan, the FSGSBASE support, making segments handling easier and faster.
=> Improved compatibility across all architecture, allowing more DRM protected game to run
=> the prefix refactor helped removed lots of redundant source file, simplifying maintenance
=> BOX32 is getting more and more stable, even if still not 100% ok. But Steam is more stable than before, runs on all architecture. And some gameoverlay UI works, on OpenGL games.

More details in New release blog

Contributions

  • Added preliminary unit test runner by @ksco in #3045
  • [LA64_DYNAREC] Fix SSE CMPPD, wrong reg operand for cUN cOR. by @phorcys in #3068
  • Bundle OpenSSL by @LukeShortCloud in #3069
  • [BUNDLE] Add libgcc by @LukeShortCloud in #3070
  • [TEST] Some minor fixes to the test runner by @ksco in #3072
  • [BOX32] Enlarged xcb connects size again for Linux Steam by @ksco in #3074
  • [WRAPPER] Fix no more slot for glib2 GSourceFunc callback by @xiangzhai in #3075
  • [ENV] Added a new BOX64_ARCH option by @ksco in #3076
  • [RCFILE] Added steamwebhelper entry for RISC-V by @ksco in #3077
  • [LA64_DYNAREC] Added x87 support by @ksco in #3078
  • [LA64_DYNAREC] Added more opcodes by @ksco in #3079
  • [LA64] Fixed LBT signal handling, also refined la64noext support by @ksco in #3080
  • [LA64_DYNAREC] Added a few more opcodes by @ksco in #3081
  • [RV64_DYNAREC] Added DB /2 FIST opcode by @ksco in #3082
  • [DYNAREC] Fixed native_fprem/native_fprem1 (fixed the camera issue of FlatOut/FlatOut2) by @ksco in #3083
  • [LA64_DYNAREC] Added unaligned F0 81/83 /0,5 LOCK ADD/SUB opcodes by @ksco in #3084
  • [DYNAREC] Fixed getX64Address empty block handling by @ksco in #3085
  • [ENV] Introduced BOX64_PCLMULQDQ by @ksco in #3086
  • [RCFILE] Optimized Windows Steam download speed for LA64 and RV64 by @ksco in #3087
  • [TRACE] Fix flags output for better parsing by @ckrinitsin in #3090
  • [LA64_DYNAREC] Add more base ops. by @phorcys in #3091
  • [LA64] Fixed LBT signal handling for ABI 1.0 by @ksco in #3088
  • [LA64_DYNAREC] Add more 00 opcodes. by @phorcys in #3092
  • [WRAPPER] Add some wrappers for libm by @xiangzhai in #3094
  • [WRAPPER] Add wrapper for rintl by @xiangzhai in #3097
  • [LA64_DYNAREC] Add more ops. by @phorcys in #3096
  • [LA64_DYNAREC] Replaced the ADDSL macro from RV64 to ALSL_D by @ksco in #3098
  • [LA64_DYNAREC] Fixed a typo in last commit by @ksco in #3099
  • [LA64_DYNAREC] Add LOCK BTS/BTR. by @phorcys in #3093
  • [STEAM] Added docs and some tweaks for Linux Steam, also added a new env var for it by @ksco in #3101
  • [LA64_DYNAREC] Add more 64 opcodes. by @phorcys in #3100
  • [TEST] Added cputype option by @ksco in #3102
  • [LA64_DYNAREC] Add more opcodes for steam. by @phorcys in #3104
  • [TEST] Added flags checking by @ksco in #3105
  • [LA64_DYNAREC] Add ADX opcodes. by @phorcys in #3103
  • [RV64_DYNAREC] Refined SHL/SHR opcodes OF handling by @ksco in #3106
  • [RV64_DYNAREC] Refined ROL/ROR opcodes OF handling by @ksco in #3109
  • [LA64_DYNAREC] Add rol16/rol16c opcodes. by @phorcys in #3110
  • [RV64_DYNAREC] Refined SHLD/SHRD flags emulation by @ksco in #3111
  • [RV64_DYNAREC] Refined MUL/DIV flags emulation by @ksco in #3112
  • [RV64_DYNAREC] Refined LZCNT/TZCNT flags emulation by @ksco in #3113
  • [LA64_DYNAREC] Add macros help unaligned lock opcodes. by @phorcys in #3107
  • [RV64_DYNAREC] Refined BSF/BSR opcodes flags emulation by @ksco in #3114
  • [INTERP] Refined BSF/BSR ud value by @ksco in #3115
  • [INTERP] Refined UD behaviour of 16bit ROL/ROR opcodes by @ksco in #3116
  • [ARM64_DYNAREC] Refined UD behaviour of 16bit ROL/ROR opcodes by @ksco in #3117
  • [CMAKE] Fix typo by @Red54 in #3122
  • [BOX32][WRAPPER] Added a missing 32bits function to libc by @Azkali in #3124
  • [LA64_DYNAREC] Add more 32/64 bits arith lock opcodes. by @phorcys in #3118
  • [LA64_DYNAREC] Add rol8 opcodes. by @phorcys in #3120
  • [LA64_DYNAREC] Fix avx V{/P}GATHER{DD/DQ/DPD/DPS/QD/QPS}. by @phorcys in #3121
  • [LA64_DYNAREC] Add more 32/64 lock opcodes. by @phorcys in #3126
  • [RV64_DYNAREC] Refined more flags computation by @ksco in #3129
  • [DOCS] fix typos by @Red54 in #3131
  • [RV64_DYNAREC] Refined some more flags computation by @ksco in #3133
  • [RV64_DYNAREC] Small improvments on some invalid opcodes handling by @ksco in #3134
  • [LA64_DYNAREC] Opt rol with LBT insts. by @phorcys in #3130
  • [LA64_DYNAREC] Add 8bits lock op macros. by @phorcys in #3127
  • [ARM64_DYNAREC] Refined BSR/BSF undefined behaviour by @ksco in #3135
  • [RV64_DYNAREC] Refined BSR/BSF undefined behaviour by @ksco in #3136
  • [CORE] Print logs to stderr by default by @ksco in #3137
  • [LA64_DYNAREC] Update lock 32/64 macro. by @phorcys in #3139
  • [LA64_DYNAREC] Refined register names by @ksco in #3140
  • [LA64_DYNAREC] Refined BSF/BSR opcodes and fixed some typos by @ksco in #3141
  • [LA64_DYNAREC] Refined some more flags computation by @ksco in #3142
  • [DYNAREC] Fixed some safeflags testing code by @ksco in #3143
  • [LA64_DYNAREC] Refined more flags computation by @ksco in #3144
  • [LA64_DYNAREC] Refined more flags computation by @ksco in #3145
  • [LA64_DYNAREC] Fixed more regressions introduced in 14e3d05 and 44822bb by @ksco in #3147
  • [RCFILE] Removed some obsolete hacks on Linux Steam by @ksco in #3148
  • [LA64_DYNAREC] Refined more flags computation by @ksco in #3151
  • [RV64_DYNAREC] Fixed some minor issues for 16bit SHLD/SHRD opcodes by @ksco in #3150
  • [LA64_DYNAREC] Refined more flags computation by @ksco in #3152
  • [RV64_DYNAREC] Fixed some typos for nativeflags by @ksco in #3153
  • [INTERP] Refined BSF/BSR undefined behaviour by @ksco in #3154
  • [LA64_DYNAREC] Add 66 F0 0F B1 LOCK CMPXCHG Ew, Gw. by @phorcys in #3149
  • [LA64_DYNAREC] Refined more flags computation by @ksco in #3156
  • [LA64_DYNAREC] Add 66 8C MOV Ew, Seg. by @phorcys in #3155
  • [LA64_DYNAREC] Added more opcodes by @ksco in #3158
  • [LA64_DYNAREC] Add 66 87 (LOCK) XCHG Ew, Gw. by @phorcys in #3157
  • Add block lookup cache to optimize findBlock() by @devarajabc in #3160
  • [LA64_DYNAREC] Added a few more opcodes by @ksco in #3161
  • [LA64] Optimized CRC chksum with native instructions by @ksco in #3163
  • [LA64] Fixed a typo in last PR by @ksco in #3164
  • [RV64_DYNAREC][LA64_DYNAREC] Fixed a wrong modreg test in nativeflags by @ksco in #3165
  • [CORE] Added back the logging prefix by @ksco in #3166
  • [TRACE][BOX32] Fixed a crash in nanosleep tracing by @ksco in #3167
  • [BOX32] Silence a false warning by @ksco in #3169
  • [BOX32] Implemented getdents syscall by @ksco in https://github.com/ptitSeb/box6...
Read more

v0.3.8

13 Oct 12:12

Choose a tag to compare

What's Changed

  • This version introduce DynaCache, a disk cache for the generated native code. It's not enabled by default for now (but it will use cache file if present by default). It can dramaticaly speedup the load of program (try with linux factorio for example). This version also improve in the volatile metadata handling. There is a massive compatiblity improvment for box32 and on all dynarec in general too. And few more function wrapping...

    => DynaCache for faster loading of program, and avoid runtime hicups
    => Better box32 compatibility (much less "Out of Memory" error)
    => Unity3D games on Wyland are working now
    => Volatile Metadata fully supported and handled, making games like Starfield to just work.
    => More work on AVX support for RV64 & LA64. LA64 almost there, while RV64 has Scalar only support (no hardware vector support yet for AVX)

More details in New release blog

Contributions

  • [WOW64] Moved things around for the future by @ksco in #2712
  • [RBTREE] Refine the naming scheme by @devarajabc in #2717
  • [TRACE] Added support for libzydis v4.x and removed the in-house zydis header by @ksco in #2720
  • [TRACE] Fixed explicit BOX64_TRACE=0 by @ksco in #2721
  • [DYNAREC] Sync indirect lookup handling and some cleanup by @ksco in #2722
  • [ARM64_DYNAREC] Removed redundant flags save/restore around call_c by @ksco in #2725
  • [WOW64] Added a minimal Windows runtime by @ksco in #2723
  • [TRACE] Bring back in-house zydis header for v3.x by @ksco in #2727
  • [WOW64] Small refinement to tls slots usage by @ksco in #2726
  • [WOW64] Small improvement to grab_segdata by @ksco in #2728
  • [INTERP] Fixed 64/65 67 64bit rex decoding by @ksco in #2729
  • [ARM64_DYNAREC] Added 64/65 67 89/8B 64bits opcodes by @ksco in #2730
  • [CPUID] Do not warn on the Hypervisor interface query by @ksco in #2732
  • [WRAPPER] Added 2 more functions to libc (for #2731) by @ksco in #2733
  • [ARM64_DYNAREC] Fixed some typos related ymm unneeded tracing (helps #2724) by @ksco in #2735
  • Bundle fix permissions by @LukeShortCloud in #2738
  • [WRAPPER] Wrapped a few more functions in gio2 and libresolv by @ksco in #2737
  • [ANDROID] Unimportant updates by @ksco in #2741
  • [DOCS] Reworked Wine usage guide by @ksco in #2743
  • [WOW64] Inherit the build type from main project by @ksco in #2746
  • [TERMUX] Better handling of non-exists pthread functions by @ksco in #2748
  • [CMAKE] Limit the optim level to O1 on bionic build by @ksco in #2749
  • [RCFILE] Updated MiSide profile by @ksco in #2751
  • [WOW64] Refactored host extention detection and added preliminary support for WowBox64 by @ksco in #2752
  • [WOW64] Finished host extension detection by @ksco in #2755
  • [BIONIC] Fixed some compilation warnings by @ksco in #2756
  • Fixed compilation errors by @ksco in #2757
  • [DYNACACHE][RV64] Added const table for later use in internal relocation by @ksco in #2758
  • [DYNACACHE][RV64] More work on internal reloc by @ksco in #2759
  • [DOCS] Performance as the top section in USAGE.md by @ksco in #2760
  • [DYNACACHE] Make sure dynacache folder ends with pathsep by @ksco in #2761
  • [DYNACACHE][RV64] Enabled dynacache for RV64 by @ksco in #2762
  • Add map64_customMalloc to reduce internal fragmentation by @devarajabc in #2764
  • [LA64_DYNAREC]Add basic avx support for la64. by @phorcys in #2745
  • [DYNAREC] Removed some unused code by @ksco in #2767
  • [CI] Upgraded QEMU and loongarch64 toolchains by @ksco in #2768
  • [DYNACACHE][LA64] Added const table for later use in internal relocation by @ksco in #2770
  • [LA64_DYNAREC] Add la64 avx load/store ops part 1. by @phorcys in #2766
  • [WRAPPER] additional wrapped symbols by @airidosas252 in #2765
  • [LA64_DYNAREC] Add la64 avx load/store ops part 2. by @phorcys in #2773
  • [LA64_DYNAREC] Add la64 avx load/store ops part 3. by @phorcys in #2774
  • [DYNACACHE][LA64] More work on internal reloc by @ksco in #2779
  • [LA64_DYNAREC] Removed some redundant macro definitions by @ksco in #2778
  • [LA64_DYNAREC] Optimized GETIP macro by @ksco in #2781
  • [LA64_DYNAREC] Add la64 avx load/store ops part 4. by @phorcys in #2775
  • [LA64_DYNAREC] Removed some TABLE64 usage by @ksco in #2782
  • [WRAPPER] Wrapper XCreateWindow when Display's resource_alloc is x64 entry (#2788) by @xiangzhai in #2789
  • [WRAPPER] Add bridge for Display's resource_alloc when directly call XOpenIM but not XOpenDisplay by @xiangzhai in #2795
  • [LA64_DYNAREC] Fix VEX.0f.17 VMOVHPS, one break missing. by @phorcys in #2798
  • [WRAPPER] Wrapper xmlMemGet and xmlMemSetup by @xiangzhai in #2799
  • [LA64_DYNAREC] Add la64 avx bitwise ops. by @phorcys in #2780
  • [LA64_DYNAREC] Opt/fix la64 avx mov ops. by @phorcys in #2800
  • [LA64_DYNAREC] Fix la64 avx->sse same reg migration. by @phorcys in #2801
  • [LA64_DYNAREC] Fix/Opt la64 avx movsx/movzx ops. by @phorcys in #2804
  • [LA64_DYNAREC] Add la64 avx shift ops with imm operand. by @phorcys in #2805
  • [LA64_DYNAREC] Add la64 avx BMI2 shift ops. by @phorcys in #2807
  • [LA64_DYNAREC] Optimized some SSE shift opcodes by @ksco in #2813
  • [LA64_DYNAREC] Add la64 avx shift ops. by @phorcys in #2806
  • [LA64_DYNAREC] Fix la64 VMASKMOVPS,VMOVHPD. by @phorcys in #2811
  • [LA64_DYNAREC] Add la64 avx arith ops , part 1. by @phorcys in #2814
  • [LA64_DYNAREC] Optimized PMADDUBSW opcodes by @ksco in #2817
  • [LA64_DYNAREC] Add la64 avx arith ops, part2. by @phorcys in #2816
  • [BUNDLE] Add sqlite3 by @LukeShortCloud in #2819
  • [LA64_DYNAREC] Add la64 avx pack/unpack ops , part 1. by @phorcys in #2818
  • [BUNDLE] Add usable libraries from GLIBC package by @LukeShortCloud in #2821
  • box64-bundle-x86-libs.csv: fix libffi library by @fboudra in #2825
  • [LA64_DYNAREC] Add la64 avx pack/unpack ops , part 2. by @phorcys in #2823
  • [BUNDLE] List install dependencies for Arch Linux by @LukeShortCloud in #2827
  • [BUNDLE] Add ncurses by @LukeShortCloud in #2828
  • [BUNDLE] Check for broken symlinks by @LukeShortCloud in #2829
  • [LA64_DYNAREC] Add la64 avx pack/unpack ops , part 3 blend ops. by @phorcys in #2824
  • [RCFILE] Add profile for Subnautica by @LukeShortCloud in #2831
  • [RCFILE] Update profile for BeamNG by @LukeShortCloud in #2832
  • [BUNDLE] Add hidapi by @LukeShortCloud in #2833
  • [LA64_DYNAREC] add la64 avx pack/unpack ops, part4. by @phorcys in #2830
  • [DYNACACHE]LA64] Enabled dynacache for LA64 by @ksco in #2836
  • [LA64_DYNAREC] add la64 avx pack/unpack ops, part5. by @phorcys in #2837
  • [LA64_DYNAREC] Add la64 avx FMA insts. by @phorcys in #2838
  • [LA64_DYNAREC] Add la64 avx float arith ops, part 1. by @phorcys in #2840
  • [BOX32] Enable personality setting for RV64 and LA64 by @ksco in #2841
  • [LA64_DYNAREC] Add la64 avx float ops , part 2. by @phorcys in #2842
  • [RV64_DYNAREC][LA64_DYNAREC] Simplified defered flags handling and limited case where UpdateFlags is actualy called by @ksco in #2844
  • [WR...
Read more

v0.3.6

06 Jun 13:37

Choose a tag to compare

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/...
Read more

v0.3.4

10 Mar 16:14

Choose a tag to compare

What's Changed

  • This version is Faster and more compatible:
  • => The RV64 backend got faster and more stable, with lots of RVV 1.0 / xThreadVector support to emulate SSE/SSE2+ opcode (no AVX yet)
  • => On ARM64, Box64 now support more DRM types than before.
  • => BOX32 can run steam now. At least on ARM64 backend, it's still not working on RV64 and LA64 for now.
  • Added support to emulate Windows Syscall (needs Proton and a 48bits address space for now)
  • Added BOX64_DYNAREC_DIRTY to have a faster (but less safe) way to handle code that write in it's current page
  • Added a few rarely used opcodes
  • Added experimental support for GDBJIT, that allow an x86/x86_64 program to be debugged on ARM/RV64/LA64 platform with x86 regs and opcode view (might generate a lot of file tho)
  • Added support for Perf tools in a similar way if GDBJIT, to have an x86 fine view of the performances
  • Reworked undefined flags for common operations, to be similar to real CPU
  • Reworked cpuid handling, adding BOX64_CPUTYPE support to select Intel/AMD emulation (no 3DNow! support on AMD for now)
  • Reworked ucontext link to be closer to the real thing (and make it more simple)
  • Improved memory traking, file descriptor backed memory map, and detect wine loaded dll
  • Introduced settings per library and dll (mostly for Dynarec)
  • Wrapper: More functions addes, and some fixes too
  • BOX32: Many fixes around pthreads wrapping
  • BOX32: More functions wrapped.
  • BOX32: More libraies wrapped.
  • BOX32: Some reworks on how high memory (higher than 32bits) is masked, and can be used for Dynarec blocks.
  • Dynarec: The usual batch of fixes, improvments and opcodes additions on all 3 supported backend
  • Dynarec: Some fixes to NativeFlags handling, both on ARM64 and RV64
  • Dynarec: Added optimized REP MOVSB (expected for default CPUTYPE=0, according to new cpuid return)
  • Dynarec: LA64: more opcoded addes, using hardware extensions like AES
  • Dynarec: RV64: More work on using RVV 1.0 and xTheadVector extension to emulate SSE/SSE2+ opcodes
  • Dynarec: RV64: Added informations on flags when building blocks, to be used when a signal happens to rebuild a x86 context more accurate
  • Dynarec: ARM64: Reworked undefined flags for common operations, to be similar to real CPU
  • Dynarec: ARM64: Added informations on flags and xmm/ymm/x87 register when building blocks, to be used when a signal happens to rebuild a x86 context 100% accurate
  • TRACE: Reworked how trace for wrapped function call is printed.
  • TRACE: Reworked logs to prefix each line with a (optionaly colored) BOX32 or BOX64
  • COSIM: Some rework on cosim to limit false negative, especialy when handling x87 operations
  • LA64: Added limited support for ABI 1.0
  • CI: github CI now also generate MiceWine .rat archive, along with Winlator .wcp archive and regular linux builds.
  • RCFile: Added many new games profiles (both for speed improvment or for compatibilty)

More details in New release blog

Contributors

  • [LA64_DYNAREC] Added AES opcodes by @xiangzhai in #2122
  • [CORE] Refine runtime messages by @jserv in #2125
  • [LA64_DYNAREC] Added more 660F opcodes by @xiangzhai in #2127
  • [LA64] SIGRTMAX is 127 for ABI 1.0 by @xiangzhai in #2134
  • [WRAPPER] Added libcairo.so.2 as one of NEEDED_LIBS for gtk3 (#2136) by @xiangzhai in #2137
  • [LA64_DYNAREC] Added more opcodes by @xiangzhai in #2145
  • [RV64_DYNAREC] New register mapping by @ksco in #2139
  • [RV64_DYNAREC] Reworked ZEROUP and freed t0 by @xctan in #2147
  • [RV64_DYNAREC] Reinitialize sew after callret by @ksco in #2148
  • [RV64_DYNAREC] Fixed some TO_NAT usages by @ksco in #2149
  • [RV64_DYNAREC] Optimize push/pop with xtheadmemidx by @ksco in #2150
  • [WRAPPER] Made gtkclass.c less likely to be recompiled by @ksco in #2153
  • [RV64_DYNAREC] Fixed more regressions by @ksco in #2157
  • [LA64_DYNAREC] Added PTEST opcode by @xiangzhai in #2158
  • [CMAKE] Fixed linking issue with mold by @xctan in #2159
  • [RV64_DYNAREC] Extended simple wrapper for more int types by @xctan in #2160
  • Added initial GDBJIT support by @ksco in #2162
  • [GDBJIT] Show x64pc in gdb, also added documentation by @ksco in #2163
  • [LA64_DYNAREC] Added POPCNT opcode and fixed an issue too by @ksco in #2164
  • [GDBJIT] Refined RV64 and LA64 support by @ksco in #2165
  • [RV64_DYNAREC] Added unaligned support to CMPXCHG8B opcode by @ksco in #2166
  • [RV64_DYNAREC] Fixed CMPXCHG8B by @ksco in #2167
  • [RV64_DYNAREC] Fixed 32bit ADDIz by @ksco in #2168
  • [RV64_DYNAREC] Added more LOCK prefix opcodes by @ksco in #2169
  • [RV64_DYNAREC] Fixed 32bits SUBz by @ksco in #2170
  • [LA64_DYNAREC] Fix VPICKVE2GR_WU typo by @xiangzhai in #2171
  • [LA64_DYNAREC] Added CLC and PMOVZXBW opcodes by @xiangzhai in #2172
  • [LA64_DYNAREC] A few minor optimizations by @ksco in #2174
  • [GDBJIT] Display DynaRec info in source file by @ksco in #2179
  • [LA64_DYNAREC] Added ROUNDSD and CVTDQ2PD opcodes by @xiangzhai in #2173
  • [GDBJIT] Unified the experience for all the backends by @ksco in #2183
  • [GDBJIT] Display register mapping annotations by @ksco in #2185
  • [RV64_DYNAREC] Made nativeflags works with 8/16bit fast path by @ksco in #2187
  • [RV64_DYNAREC] Added a fast path to SHR Ew, Ib by @ksco in #2188
  • [RV64_DYNAREC] Small optim to emit_and32c by @ksco in #2189
  • [LA64_DYNAREC] Fixed 32bit ADDIz and SUBz by @ksco in #2191
  • [LA64_DYNAREC] Optimized some 16bit shift opcodes by @ksco in #2192
  • [LA64_DYNAREC] Fixed some LBT path issues by @ksco in #2193
  • [WRAPPED][BOX32] Redirected a few old symbols by @ksco in #2194
  • [LA64_DYNAREC] Fixed various issues in LBT path by @ksco in #2197
  • Add SDL_RenderGeometryRaw wrapped function to SDL2 by @DragonSWDev in #2195
  • [RV64_DYNAREC] Fixed nativeflags tmp register usage by @ksco in #2199
  • [LA64_DYNAREC] Small optim to MOVHPS by @ksco in #2200
  • [LA64_DYNAREC] Fixed 66 0F PTEST opcode by @ksco in #2201
  • [LA64_DYNAREC] Added nativeflags support by @ksco in #2202
  • [RV64_DYNAREC] Fixed a regression in #2187 by @ksco in #2203
  • [WRAPPED] Always return ENOSYS in the deprecated sysctl by @ksco in #2204
  • [RCFILE] Added sekiro.exe entry by @ksco in #2206
  • [RV64_DYNAREC] Fixed various lock usage in geted ([LA64_DYNAREC] too) by @ksco in #2207
  • [RV64_DYNAREC] Added more opcodes ([LA64_DYNAREC] too) by @ksco in #2205
  • [LA64_DYNAREC] Added more opcodes by @ksco in #2208
  • [LA64_DYNAREC] Added MOVLPD and MOVHPD opcodes by @xiangzhai in #2198
  • [DYNAREC] Cleanup modreg by @ksco in #2209
  • [LA64_DYNAREC] Added IRET opcode by @ksco in #2210
  • [LA64_DYNAREC] Added more opcodes and fixed CVTTPD2DQ by @ksco in #2211
  • [LA64_DYNAREC] Added more opcodes by @ksco in #2213
  • [LA64_DYNAREC] Added more opcodes by @ksco in #2214
  • [LA64_DYNAREC] Added more opcodes by @ksco in #2215
  • [LA64_DYNAREC] Added hardware wall-clock support by @ksco in #2216
  • [DYNAREC] Implement perf map by @xiangzhai in #2212
  • [LA64_DYNAREC] Fixed some minor issues on LBT path by @ksco in #2218
  • [LA64_DYNAREC] Some minor fixes on bad variable usage by @ksco in #2221
  • Use uname -m to get CPU architecture by @4Darmygeometry in #2222
  • [DOCS] Improve cross-build instructions by @devarajabc in #2196
  • Spelling/typo fixes in code and documentation updates by @olegos2 in #2223
  • [ANDROID] Add a few ALTNAMEs and unwrap ifdefs for lib names by @olegos2 in #2224
  • [WRAPPED][ANDROID] Add libGL ALTNAME by @olegos2 in #2225
  • [DYNAR...
Read more

v0.3.2

06 Dec 15:10

Choose a tag to compare

What's Changed

  • Introduced Box32 to run 32bits apps on 64bits OS
  • => Box32 is a build option for Box64, and is disabled by default
  • => Optionnal binfmt integration available for Box32 => Wrapped some basics libs, including graphics and sounds so a few games already works
  • => Work In Progress, many issues remain to be fixed, but some Linux games are playable
  • Introduced Native Flags. Can be controled with BOX64_DYNAREC_NATIVEFLAGS, but enabled by default
  • => Available on the 3 Dynarec backend, with different implementations
  • => ARM64 Dynarec build have all AVX/AVX2 extensions enabled by default
  • => Can lead to large speedup on certain cases
  • Improved Strong Memory Model emulation, with better default options and a more efficiant emulation
  • Dynarec: RV64: using RVV (and XThreadVector) to implement SSEx opcodes, with some massive speedup when used!
  • Some bugfix and improvment in the Signal handler and internal memory tracking
  • Improvment to TRAP signal generation and Handling
  • Improved CPUID opcodes again, and the various virtual file in /proc that represent those data
  • Improved some x87 operations, like long double handling and infinity comparisons...
  • Dynarec: ARM64 fixes to a few opcodes
  • Dynarec: RV64 fixes to many opcodes
  • Dynarec: LA64 fixes to a few opcodes
  • Dynarec: RV64 fixes and improvments on LOCK prefixes opcodes
  • Dynarec: Many optimisation on some individual opcodes, an all 3 backends
  • WRAPPING: More libs and functions wrapped. Some wrapping fixes too
  • WREPPING: New wrapperhelper to help coding new wrapping & fixing/enhancing existing one
  • ElfLoader: Improved object fetching
  • New build profile for SD865 and ORYON
  • Changed the installation folder of x86 libs to avoid conflict with linux distro
  • Added a few syscalls
  • Some more Vulkan extensions wrapped
  • More work on build system, and github CI (generating WCP archive), with some fixes on the Android version (still not 100% operational)

More details in New release blog

Contributors

  • [LA64_DYNAREC] Added more opcodes and a minor fix too by @ksco in #1662
  • Remove the flags adjustment in GO_TRACE for RISC-V 64 by @Coekjan in #1663
  • [DYNAREC] Fixed ymm0_purge for some instructions by @rajdakin in #1664
  • fix some spelling mistakes by @josch in #1668
  • [RV64_DYNAREC] Cleanup for removed rv64_lock_cas_dq by @iv-m in #1670
  • [Wrapped] Added sqlite3_exec by @kaixindeken in #1671
  • Revert "[Wrapped] Added sqlite3_exec" by @ptitSeb in #1673
  • Wrap sqlite3_exec for libsqlite3 by @Coekjan in #1674
  • Wrapped libtiff5 and libltdl7 by @kaixindeken in #1677
  • Fix hidden error in PR 1677 by @kaixindeken in #1678
  • [LA64_DYNAREC] Added 2 more opcodes by @ksco in #1680
  • build: fix PKGBUILD-rk3xxx pkgname was set to box86 by @Rippanda12 in #1681
  • [RV64_DYNAREC] Fixed some bugs for VMP by @xctan in #1679
  • [ARM64_DYNAREC] Fixed OR Ew, Gw by @ksco in #1682
  • [LA64_DYNAREC] Remove xMASK and fixed 86 XCHG opcode by @ksco in #1683
  • [RV64_DYNAREC] Clear high 32bits when write back as single by @ksco in #1684
  • [RV64_DYNAREC] Fixed GETGXSS_empty on upper bits handling by @ksco in #1685
  • [LA64_DYNAREC] Fixed some opcodes by @ksco in #1686
  • [LA64_DYNAREC] Fixed CMPSD by @ksco in #1687
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1688
  • [LA64_DYNAREC] Added more opcodes and fixed SHUFPD opcode by @ksco in #1690
  • [LA64_DYNAREC] Added more opcodes and fixed more issues by @ksco in #1692
  • [RV64_DYNAREC] Added vlen detection by @ksco in #1694
  • [RV64_DYNAREC] Show missing opcodes in vector implementation by @ksco in #1695
  • [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in #1696
  • [RV64_DYNAREC] Added 66 0F 38 00 PSHUFB for vector by @ksco in #1697
  • [RV64_DYNAREC] Added vector SEW cache by @ksco in #1698
  • [RV64_DYNAREC] Added more 66 0F 38 opcodes for vector by @ksco in #1699
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1700
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1701
  • [DYNAREC] Fixed CI failures for RV64 and LA64 by @ksco in #1702
  • [RV64_DYNAREC] Fixed vector infra by @ksco in #1705
  • [RV64_DYNAREC] Fixed more issues in the vector infrastructure by @ksco in #1706
  • Update README_UK.md by @Ilya114 in #1709
  • [RV64_DYNAREC] Fixed flag generation in IMUL/MUL opcode by @xctan in #1715
  • [LA64_DYNAREC] Fixed flag generation in IMUL/MUL opcode by @ksco in #1716
  • [INTERP] Fixed some undefined behaviour by @ksco in #1717
  • [RV64_DYNAREC] Fixed register conflict with GETEB macro by @xctan in #1718
  • [RV64_DYNAREC] Fixed register conflict in the GETSEB marco by @xctan in #1719
  • [RV64_DYNAREC] Removed TODOs on GETEX and GETEM macros by @ksco in #1720
  • [RV64_DYNAREC] Fixed FNSTSW opcode by @ksco in #1721
  • [RV64_DYNAREC] Fixed misused BNE_NEXT in emit_ro{l,r}32 by @xctan in #1723
  • [RV64_DYNAREC] Fixed fpu_flags handling and enabled cosim in CI by @ksco in #1722
  • [RV64_DYNAREC] Fixed OF generation in emit_sar16c by @xctan in #1724
  • [RV64_DYNAREC] Fixed more register conflicts by @ksco in #1726
  • [RV64_DYNAREC] Fixed pending flags for large 8 & 16 bit const shifts by @xctan in #1728
  • [RV64_DYNAREC] Fixed ROL/ROR RCX, CL by @xctan in #1729
  • [RV64_DYNAREC] Fixed flags for shrd/shld with constant 0 shift by @ksco in #1730
  • [RV64_DYNAREC] More fixes by @xctan in #1732
  • [RV64_DYNAREC] Fixed 0F BA /5 BTS opcode by @ksco in #1733
  • [RV64_DYNAREC] Fixed extcacheUnwind regression by @ksco in #1734
  • [RV64,LA64_DYNAREC] Small change when handling long CC INT 3 opcode by @ksco in #1736
  • Added 1 more gtk3 function wrapper by @ksco in #1737
  • [RV64_DYNAREC] Added 66 0F 3A 63 PCMPISTRI opcode and fixed some issues by @ksco in #1735
  • Added more curl function wrapper by @ksco in #1738
  • [LA64_DYNAREC] Port recent RV64 fixes by @ksco in #1739
  • [RV64_DYNAREC] Added more opcodes by @ksco in #1740
  • Udate upstream by @ptitSeb in #1741
  • [RV64_DYNAREC] Slightly improved LOCK CMPXCHG16B opcode by @ksco in #1743
  • Update upstream by @ptitSeb in #1744
  • [RV64_DYNAREC] Disable vector extension by default until it's ready by @ksco in #1746
  • [RV64_DYNAREC] Fixed various issues in vector infra by @ksco in #1750
  • [RV64_DYNAREC] Fixed more issues in the vector infrastructure by @ksco in #1755
  • [ANDROID] Not use 'libbsd.so' as needed lib and don't define NEEDED_LIBS_234 for Android Too, Use BOX64_LD_LIBRARY_PATH instead of LD_LIBRARY_PATH on CTEST by @KreitinnSoftware in #1754
  • [EMU] [ARM64_DYNAREC] Fix Some Warnings on Clang Compilers by @KreitinnSoftware in #1757
  • [RV64_DYNAREC] Fix some typos in docs and dynarec/rv64 by @wangguidong1999 in #1758
  • Added preliminary Box32 support by @ptitSeb in #1760
  • Revert "[ANDROID] Not use 'libbsd.so' as needed lib and don't define NEEDED_LIBS_234 for Android Too, Use BOX64_LD_LIBRARY_PATH instead of LD_LIBRARY_PATH on CTEST" by @KreitinnSoftware in #1762
  • [CTEST] Use BOX64_LD_LIBRARY_PATH instead of default LD_LIBRARY_PATH by @KreitinnSoftware in #1764
  • [RV64_DYNAREC] Added a fast path for some 8bit opcodes by @ksco in #1763
  • [RV64_DYNAREC] Added a fast path for some 16bit opcodes by @ksco in #1765
  • [BOX32][RV64_DYNAREC] Added preliminary box32 support to RV64 by @ksco in #1766
  • [BOX3...
Read more

v0.3.0

09 Jul 09:06

Choose a tag to compare

What's Changed

  • AVX and AVX2 implemented, along with BMI1, BMI2, ADX, FMA, F16C and RDANDR extension!
  • Introduced BOX64_AVX env. var. to enable/disable AVX extension:
    => BOX64_AVX=1 enable AVX, BMI1, F16C and VAES extension
    => BOX64_AVX=2 also enable AVX2, BMI2, FMA, ADX,VPCLMULQDQ and RDRAND
  • Dynarec: Implemented most AVX/AVX2 and friends in ARM64 Dynarec (using only NEON, so available on all ARM64 CPU)
    => ARM64 Dynarec build have all AVX/AVX2 extensions enabled by default
  • Improved CPUID opcodes, adding a few leaf, fixing same. Returnning an Haswell type of CPU now (was Pentium IV before)
  • Dynarec: Small optim in the emit_pf helper, on all 3 backends
  • Dynarec: ARM64 some fixes to a few opcodes
  • Dynarec: LA64 many new opcodes added, and fixes.
  • Dynarec: RV64 some new opcodes added, many fixes.
  • Dynarec: RV64 Adding some infrastructure to use RVV (if available) for SIMD emulation.
  • Dynarec: Many small changes and fixes around handling of x87, registers and internal jump.
  • WRAPPING: Added a workaround on SDL_GetThreadID to fix a race condition that was happening mostly on LA64 and broke many SDL games
  • WRAPPING: More libs and functions wrapped. Some wrapping fixes too (including a nasty error on some rare libGL functions)
  • WRAPPING: Wayland is now supported. Wine-wayland at least works now
  • Dynarec: LA64 improved LOCK CMPXCHG handling, and better 16Byte LOCK handling too (fixes many Unity3D games)
  • Dynarec: RV64 improved LOCK CMPXCHG handling
  • COSIM: Many fixes and improvment, to make BOX64_DYNAREC_TEST more usable
  • Detect when a Wine program use UnityPlayer.dll to atumaticaly use BOX64_DYNAREC_STRONGMEM=1 (unless it's already set), so more games just work
  • ElfLoader: Added a new type of relocation

Contributions

  • [DYNAREC] Simplified emit_pf helper by @ksco in #1518
  • [LA64_DYNAREC] Fixed LOCK XCHG byte opcode fallback path by @ksco in #1519
  • [LA64_DYNAREC] Fixed some non-lbt flags comutation issues by @ksco in #1520
  • [LA64_DYNAREC] Fixed more issues here and there by @ksco in #1521
  • Wrapped libpsl5 by @zohanzephyr in #1523
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1525
  • [RV64_DYNAREC] Fixed LOCK XCHG byte opcode by @ksco in #1526
  • [LA64_DYNAREC] Added CMPXCHG8B and CMPXCHG16B opcodes by @ksco in #1527
  • [LA64_DYNAREC] Added more opcodes and some fixes too by @ksco in #1528
  • Redirect pthread_yield to sched_yield by @ksco in #1529
  • Workaround on a race condition on SDL_GetThreadID by @ksco in #1530
  • Fix unclosed item list by @Coekjan in #1532
  • Fix typo on box64 config file by @Coekjan in #1533
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1535
  • Added more MMX opcodes and some optimizations too by @xctan in #1537
  • Wrapped libssh2 by @zohanzephyr in #1538
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1539
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1542
  • [LA64_DYNAREC] Fixed 0F C2 CMPPS opcode by @ksco in #1543
  • [RV64_DYNAREC] Fixed LOCK CMPXCHG unaligned version by @ksco in #1544
  • [LA64_DYNAREC] Added LOCK CMPXCHG unaligned version by @ksco in #1545
  • Detects extensions even if dynarec is disabled at runtime by @ksco in #1546
  • [INTERP] Rework on the 16b emulation for LA64 by @ksco in #1547
  • [LA64_DYNAREC] Added more opcodes and fixed ADC opcode by @ksco in #1548
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1549
  • Try to fix mmap64 already defined error in custommem.c by @rtissera in #1552
  • [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in #1557
  • [LA64_DYNAREC] Fixed emit_or16 by @ksco in #1559
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1558
  • [LA64_DYNAREC] Fixed LOCK DEC opcode by @ksco in #1560
  • Wrapped libp11-kit by @zohanzephyr in #1562
  • Wrapped libtasn1-6 by @zohanzephyr in #1563
  • [RV64_DYNAREC] Fixed some opcodes caught by cosim by @xctan in #1561
  • Wrapped libnettle8 by @zohanzephyr in #1567
  • [RV64_DYNAREC] Fixed sign extension of 8-bit immediate in 66 opcodes by @xctan in #1568
  • Update README.md by @Pro42good in #1572
  • Update README.md by @Pro42good in #1573
  • Wrapped libunistring2 by @zohanzephyr in #1577
  • Wrapped libhogweed6 by @zohanzephyr in #1579
  • Added more wrapped function to libunistring2 by @zohanzephyr in #1582
  • Fixed some vulkan wrapper functions by @ksco in #1585
  • [DYNAREC_RV64] Fixed 16bit LOCK ADD issue by @ksco in #1584
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1590
  • Fixed some symbols not found error for libc and libresolv wrapping by @ksco in #1591
  • Added more wrapped functions by @zohanzephyr in #1593
  • [RV64_DYNAREC] Fixed and refined F0 81,83 LOCK prefix opcodes by @ksco in #1595
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1597
  • [RV64_DYNAREC] Improved 0F AE opcodes by @ksco in #1596
  • Added more wrapped functions to gmp and idn2 by @zohanzephyr in #1598
  • [RV64_DYNAREC] Fixed potential issue of jump_to_next by @ksco in #1600
  • Update arm64_immenc.c by @salt431 in #1602
  • switch to maintained Pi-Apps-Coders apt repo by @theofficialgman in #1605
  • Add missing wrappings for winewayland.so by @strobo5 in #1599
  • [RV64_DYNAREC] Added unaligned support for F0 /5 LOCK SUB opcode by @ksco in #1607
  • Wrapped pthread_cond_signal with aligned cond like others by @ksco in #1608
  • [RCFILE] Added Goat Simulator profile by @ksco in #1609
  • [RV64_DYNAREC] Fixed regression on D9 E5 FXAM opcode by @ksco in #1616
  • Compile Dynarec With ARMv8-A ASM Flags without Hardware Profile on Android Builds Too by @KreitinnSoftware in #1617
  • small fix for ROR and ROL by @liuli0217 in #1618
  • [RV64_DYNAREC] Detect vector extension by @ksco in #1619
  • [RV64_DYNAREC] Added vector instructions emitter by @ksco in #1621
  • Wrapped more functions by @ksco in #1624
  • Wrapped libsqlite3 by @ksco in #1625
  • Handle .relr.dyn section by @Coekjan in #1626
  • Add missing func declaration: get_first_jump_addr by @Coekjan in #1627
  • Updated box64.box64rc by @Pro42good in #1630
  • [RV64_DYNAREC] Added DF default /4 opcode by @zohanzephyr in #1631
  • [RV64_DYNAREC] modify DF default /4 opcode by @zohanzephyr in #1633
  • [RV64_DYNAREC] Added preliminary RVV infra and PXOR opcode for demonstration by @ksco in #1632
  • [LA64_DYNAREC] Fixed F2 0F 70 PSHUFLW opcode by @ksco in #1634
  • Wrap some functions for libc by @Coekjan in #1635
  • Impl sys_getpgrp & sys_getpgid by @Coekjan in #1637
  • [DYNAREC] Fixed IMUL sign extension issue by @ksco in #1639
  • [VULKAN] Add Wrapped VK_KHR_android_surface by @KreitinnSoftware in #1643
  • Should not follow symlinks on argv[0] path resolution by @Coekjan in #1644
  • [INTERPRETER] Added 64 66 8D opcode and fix 66 8D opcode by @factfinding in #1648
  • Set last_ip to an unclean state at the end of CALL by @ksco in #1650
  • Mask rs2 when using bext instruction if rex.w is not set by @Coekjan in #1653
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1654
  • [LA64_DYNAREC] Added more opcodes by @ksco...
Read more

v0.2.8

21 May 15:47

Choose a tag to compare

What's Changed

=> Linux Games can now load even on a 16K pagesize machine like a mac M1, and games (including Unity3D ones) can be played with no issues.
=> Hack to enable Vulkan driver on Wine/WOW64 games to allocate 32bits compatible memory, allowing dxvk on 32bits games.
=> RiSC-V can run more linux games. Game on Wine are still a bit slow, and dxvk still have issues
=> Loongarch dynarec! Linux games are running, and with good speed, especialy on 3A6000 platforms. Games on Wine are not working yet due to 16k pagesize limitation
=> BIGBLOCK 2 and 3 combined with CALLRET can be used on more software now and can gives some good speed boosts.

  • Wrapping: More libs and function wrapping (gtk3, vulkan...)
  • Reworked X11 Callback handling, for better stability
  • Reworked exit and the load/unload of libs and symbol resolution
  • Some more profiles in box64rc
  • Better way to rename executable (including wine ones) so driver like mesa can apply the correct profile
  • Reworked memory managment in the Dynarec, limiting amount of dynamic allocation
  • Improved memory tracking and managment. Also introduce BOX64_MMAP32 to force 32bits compatible mmap for external libs (like mesa)
  • Reworked memory managment in the Dynarec, limiting amount of dynamic allocation
  • Lots of improvments in x87 handling (virtual stack, rounding, ffree, etc.)
  • Dynarec: ARM64 some opcodes optimisation, especialy shift and rotation ones
  • Dynarec: RV64 lots of opcoded added. =>
  • Dynarec: Added Loogarch backend! Note that Loongarch are 16K pagesize platform by default.
  • Dynarec: Better handling of large block in the dynarec
  • Dynarec: Lots of improvments and fixes to BOX86_DYNAREC_CALLRET optimisation.

More details in New release blog

Contributions

  • [DYNAREC_RV64] Fixed some bugs in x87 infra by @ksco in #1143
  • [DYNAREC_RV64] Added FILD/FISTP i64 optimization by @ksco in #1145
  • [RCFILE] Added FL64 Profile by @mcagabe19 in #1149
  • [WRAPPER] add dbus_message_iter_get_element_count auto wrapper by @liuli0217 in #1153
  • [DYNAREC_RV64] Added more opcodes and fixes by @ksco in #1154
  • [DYNAREC_RV64] Fixed some bugs in the dynarec for ETS2 by @ksco in #1155
  • Cleanup some code by @xctan in #1157
  • [DYNAREC_RV64] Added more opcodes for ets2 by @ksco in #1158
  • [DYNAREC_RV64] Fixed shift masks for GI by @xctan in #1160
  • [DYNAREC_RV64] Ported INT 3/29 from arm by @xctan in #1161
  • [DYNAREC_RV64] Added more opcodes for ets2 by @ksco in #1162
  • [INTERP] Added 64 66 39 CMP opcode (for #1156) by @ksco in #1166
  • [DYNAREC_RV64] Added more opcodes for VMP-protected GI by @xctan in #1164
  • [DYNAREC_RV64] Added more opcodes for VMP-protected GI by @xctan in #1168
  • [RCFILE] Disable CALL/RET optimization for zoom (#1170) by @ksco in #1174
  • [CMakelist] Remove a "#" by @Creeper-xie in #1173
  • [WRAPPER] Added 4 more wrapped glib2 functions (for #1175) by @ksco in #1176
  • [DYNAREC_RV64] Fixed a nasty bug in GETEX, but left optim opportunity for later by @ksco in #1178
  • [MEMORY] Switched from a sparse array to a red-black tree by @rajdakin in #1180
  • Remove FASTPAGE/HOTPAGE docs by @tristanmorgan in #1181
  • [WRAPPERS] Add a isSimpleWrapper function for RV64 by @rajdakin in #1185
  • [DYNAREC_RV64] Added CALL/RET optimization by @ksco in #1183
  • expose minimal libxcb-xinput wrapper by @fbenkstein in #1192
  • [DYNAREC_RV64] Fixed a wrong Zba optimization by @ksco in #1193
  • [DYNAREC_RV64] Added more opcodes and fixed X87_PUSH/POP macros by @ksco in #1194
  • [RV64_DYNAREC] Fixed 66 0F B6 MOVZX opcode by @xctan in #1196
  • [RBTREE] Reverted memory tracking to 32 bits by @rajdakin in #1201
  • [RV64_DYNAREC] Fixed 66 87 XCHG opcode by @xctan in #1198
  • Fixes by @rajdakin in #1207
  • [DYNAREC_RV64] Enable basic simple wrapper optimization by @ksco in #1215
  • add optimize build flag for Jetson orin and xavier by @leonpano2006 in #1219
  • Add 'BOX64_MMAP32' to help info by @KreitinnSoftware in #1220
  • [WRAPPERS] Fixed some typos in rebuild_wrappers.py by @xctan in #1227
  • [X64LIBS] mbedtls libs by @mcagabe19 in #1232
  • system/box64.conf.cmake: change rule name to be box64 specific by @josch in #1233
  • Added mknod syscall by @ksco in #1236
  • When BOX64_VERSION is set, just print the version and exit by @josch in #1238
  • [DOCS] Fix a typo in temrux building by @mcagabe19 in #1240
  • [WRAPPER] Regenerated the wrapper files by @rajdakin in #1241
  • [X64EMU] Fix for linux clang by @mcagabe19 in #1243
  • [ANDROID] Fix GLib and GObject Library Names by @KreitinnSoftware in #1247
  • [DYNAREC_RV64] f23 and f24 are save in a same place by @factfinding in #1251
  • Wrapped libraries refactor by @rajdakin in #1257
  • [ANDROID] BOX64_SHOWBT Now show Emulated BT on Android by @KreitinnSoftware in #1258
  • more wrapped functions in libxcb-randr and libcap by @Coreforge in #1260
  • [CI] Add Android Tests by @KreitinnSoftware in #1263
  • [ANDROID] Fix Build When Compiling with NDK 26b, [CI] Download Basic Android Libs from 'termux-docker' and update NDK to 26b by @KreitinnSoftware in #1270
  • [DYNAREC_RV64] Added more opcodes and some minor optimizations by @ksco in #1272
  • [LIBTOOL] Fixed my_pthread_attr_init by @ksco in #1274
  • [DYNAREC_RV64] Minor OF flag fixes and optimizations for emit shift utils by @ksco in #1275
  • [RV64_DYNAREC] Added more opcodes by @ksco in #1276
  • [RV64_DYNAREC] Added more opcodes by @ksco in #1277
  • [RV64_DYNAREC] Added 2 more 66 0F opcodes for test17 by @ksco in #1278
  • [RV64_DYNAREC] Added all missing 66 0F opcodes for test17 by @ksco in #1281
  • [RV64_DYNAREC] Added missing 0F 38 00 PSHUFB opcode for test23 by @ksco in #1282
  • [RV64_INTERP] Comply CMPXCHG16B with dynarec by @ksco in #1288
  • [RV64_DYNAREC] Optimized XOR Ew, Gw when Ew == Gw by @xctan in #1289
  • [RV64_DYNAREC] Fixed RDTSC handling by @ksco in #1291
  • [CI] Repeat until-pass for unstable platform by @ksco in #1292
  • [RV64_INTERP] Added TSC freq support by @ksco in #1293
  • LARCH64 dynarec by @factfinding in #1295
  • [LONGAARCH_DYNAREC] Added 00...05 and 28...2D opcodes by @factfinding in #1297
  • [CI] Added loongarch64 by @ksco in #1298
  • [LA64_DYNAREC] Added some LBT instructions by @ksco in #1299
  • [LA64_DYNAREC] Removed F_OF2 trick as it's unnecessary by @ksco in #1300
  • [LA64_DYNAREC] Added basic LBT support, setup xMASK by @ksco in #1302
  • [LA64_DYNAREC] Added LBT support to all implemented emit functions and fixed some typos by @ksco in #1303
  • [LA64_DYNAREC] Added more opcodes and fixed more things by @ksco in #1304
  • [LA64_DYNAREC] Added 1 more opcode and more fixes by @ksco in #1305
  • [LA64_DYNAREC] Added 70-7F Jcc opcodes, refine printer and some fixes too by @ksco in #1307
  • [LA64_DYNAREC] Adopt to ARM64 way of CALL/RET optim since there is a dedicated register by @ksco in #1309
  • [LA64_DYNAREC] Added more opcodes with CALL/RET optimization by @ksco in #1310
  • [LA64_DYNAREC] Added CC native call support, fixed call_c by @ksco in #1312
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1313
  • [LA64_DYNAREC] Added more and more opcodes by @ksco in #1314
  • Added a warning on interpreter only bui...
Read more

v0.2.6

15 Dec 18:33

Choose a tag to compare

What's Changed

=> More hadware support, more functions wrapped for an improve compatibity
=> More CPU extension, with ARM64 hardware support when possible, and improved CALLRET optimisation for an improved speed of emulation
=> Some work also to reduce the memory footprint

  • X64Libs: Updated libstdc++ & libgcc_s
  • X64Libs: Use x86_64 version of libunwind (it's needed by wine)
  • Dynarec: More opcodes on ARM64 & RV64
  • Dynarec: Fixed some flags propagation issues inside blocks
  • Dynarec: Improved Strong Memory Model emulation, introducing a 3rd level
  • Dynarec: ARM64: reworked shift and bit opcodes flags handling
  • Dynarec: RV64: Many fixes, making Wow64 apps running
  • Dynarec: ARM64: Added support for SSE4.2 (with CRC32 if supported by CPU)
  • Dynarec: ARM64: Added support for SHA (with hardware support if CPU allows it)
  • Dynarec: ARM64: The CALLRET optimisation has been improved and is now default
  • CPU: Remoworked how INT, priviliged opcodes and teh Trace flags works
  • CPU: Added full support for SSE4.2
  • CPU: Added full support for SHA extension
  • ElfLoader: rework how elf memory is handled
  • Emulation: Added some more syscalls
  • Emulation: Better handling of Signal (also handling SIGMAX correctly)
  • Emulation: Better support for POKEUSER/PEEKUSER (helps Windows Unity games)
  • Wrapping: More libs and some fixes in function wrapping (gtk3, vulkan...)
  • Wrapping: Removed faked libunwind wrapping
  • Hardware: Added more profile, with support ADLink Ampere Altra, Qualcomm 8Gen3, and Pi5 machines
  • OS: Added profile to build for Android and Termux.
  • OS: New option to use mold for a high speed link

Contributions

  • Update my_posix_spawnp() by @liuli0217 in #942
  • [ARM64_DYNAREC] Added 0F F1/F3/F7 opcodes by @wannacu in #941
  • Allow running at NULL, and trigger a segfault (backport from box86 5cdc1b9fa2238938e49176fcd937a1294c55a03d ) by @rafael2k in #948
  • Added (66) 0F 2A/2C/2D opcodes by @wannacu in #951
  • [ARM64_DYNAREC] Added some opcodes by @wannacu in #959
  • [ANDROID] Try to create an Android build, porting box86 Android build by @ptitSeb in #962
  • [ARM64_DYNAREC] Added some opcodes by @wannacu in #964
  • Update README_CN.md by @shenmo7192 in #968
  • [RV64_DYNAREC] Added thead vendor extension detection by @ksco in #969
  • [DYNAREC_RV64] Added support for xtheadba by @ksco in #970
  • [CI] Test RISCV with bit-manipulation extensions on by @ksco in #972
  • [CI] Upgrade QEMU to 8.1.0 by @ksco in #973
  • [RV64_DYNAREC] Added some support for XTheadBb extension by @ksco in #977
  • Fixed a typo in README.md by @Jai-JAP in #983
  • [CI] Use qemu snapshots from archlinux archive by @ksco in #987
  • [CI] Run tests w/ and w/o DynaRec by @ksco in #988
  • [RV64_DYNAREC] Added more support for XTheadBb extension by @ksco in #989
  • Add SDL_RenderWindowToLogical and SDL_SetSurfaceColorMod wrapped functions for #939 by @seeschloss in #991
  • [RV64_DYNAREC] Added more support for XTheadBs extension by @ksco in #993
  • Update dynarec_arm64_emit_math.c by @liuli0217 in #994
  • [RV64_DYNAREC] Added more support for XTheadMemPair extension by @ksco in #995
  • [ANDROID] Remove PreInit Array Warning and Fix libdl name by @KreitinnSoftware in #1001
  • Add mbrtoc32 wrapped function for dfhack (fixes a dfhack crash, see #939) by @seeschloss in #1003
  • Add __sF, __assert2 Symbol and set PThread Symbols on libc by @KreitinnSoftware in #1004
  • [ANDROID] Fix Most Library Names by @KreitinnSoftware in #1005
  • Add c32rtomb wrapped function for dfhack (fixes console, part of issue #939) by @seeschloss in #1008
  • Added Snapdragon 8 Gen 2 profile by @strongtz in #1009
  • [ARM64_DYNAREC] Take dynarec64_DA into account by @AndreRH in #1014
  • [RV64_DYNAREC] Fix a build warning by @ksco in #1020
  • Add a new vulkan extension: VK_KHR_maintenance5 by @strongtz in #1021
  • [WRAPPER] Added missing function signature by @ksco in #1024
  • [DYNAREC] Fix x87cache issues by @ksco in #1025
  • [CI] Do not regenerate functions list when running in CI by @ksco in #1028
  • [COSIM] Fix x87 testing by @ksco in #1029
  • fix emit_sar32c() ZF maybe set error. by @liuli0217 in #1034
  • [INTERP] Fix fpu_round by @ksco in #1030
  • [WRAPPER] Fixed my_mmap64 on MAP_FIXED handling, helps wine 8.18 by @ksco in #1039
  • [DYNAREC_RV64] Fixed opcode DB /5 FLD tbyte (for #871) by @ksco in #1040
  • [DYNAREC_RV64] Fixed x87 FCOMI opcodes (for #872) by @ksco in #1041
  • [WRAPPER] Fixed my_execl by @wannacu in #1044
  • [ELFLOADER] Fixed align issue (may help #1057) by @ksco in #1058
  • [COSIM] Fix GO_TRACE by @ksco in #1059
  • [RV64_DYNAREC] Added a few opcodes for minipad2.exe by @ksco in #1061
  • [RV64_DYNAREC] [32BITS] Added more opcodes for minipad2.exe by @ksco in #1062
  • ADLINK with Ampere by @joespeed in #1069
  • Change blokc size to 64kb by @Raezroth in #1071
  • [RV64_DYNAREC] Fixed zbb andn optimization by @ksco in #1074
  • [RV64_DYNAREC] Added FD STD, fixed FC CLD and F3 A4 REP MOVSB (for minipad2) by @ksco in #1075
  • [RV64_DYNAREC] Added 64 8F POP & 67 66 89 MOV opcodes (for minipad2.exe) by @ksco in #1076
  • [DYNAREC_RV64] Fixed FCOMP opcode by @ksco in #1080
  • [DYNAREC_RV64] Added more opcode for minipad2.exe by @ksco in #1081
  • [DYNAREC_RV64] Fixed BTS BTR BTC for zbs extension by @ksco in #1084
  • [CMAKE] Add WITH_MOLD option by @ksco in #1085
  • [SIGNAL] Fixed copyUCTXreg2Emu by @ksco in #1086
  • [DYNAREC_RV64] Fixed emit_ror32 by @ksco in #1087
  • [ANDROID] Added missing wrappedandroidshmem def headers by @mcagabe19 in #1088
  • [DOCS] Add mold usage to COMPILE.md by @kaixindeken in #1089
  • [DYNAREC_RV64] Fixed BTS BTR BTC again by @ksco in #1090
  • [ANDROID] Fix Compiling by @mcagabe19 in #1091
  • [ANDROID] Use TERMUX Define Instead ANDROID by @mcagabe19 in #1093
  • [WRAPPERS] Added fallback glXSwapIntervalEXT function if not present by @ksco in #1092
  • [ANDROID] Fix Clang Compiling by @mcagabe19 in #1094
  • [ANDROID]Fix Termux installation path by @Creeper-xie in #1095
  • [DYNAREC_RV64] Added missing fallbacks in x87 opcodes by @ksco in #1096
  • [DYNAREC][INTERPRETER] Rework on 6C/6D/6E/6F opcodes by @ksco in #1098
  • [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in #1099
  • [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in #1100
  • Fix spelling in README.md by @JulianGro in #1101
  • [DOCS] Termux Compiling by @mcagabe19 in #1102
  • [TERMUX] Added faked wrapped termux-exec and simplified output by @mcagabe19 in #1103
  • [TERMUX] Fix make install by @mcagabe19 in #1106
  • [TERMUX] Fix debian packaging by @mcagabe19 in #1107
  • [DOCS] Added missing library for #1108 by @mcagabe19 in #1109
  • [TERMUX] Fix loading box64rc and lib x86_64-linux-gnu path on termux by @Creeper-xie in #1110
  • [DOCS] Updated termux building instructions by @mcagabe19 in #1113
  • [DYNAREC_RV64] Refine printer and add support for Zb* extensions by @ksco in #1115
  • [DYNAREC_RV64] Added more dasm support for thead extensions by @ksco in #1118
  • [DOCS] Updated TERMUX Building by @mcagabe19 in #1121
  • [DYNAREC_RV64] Use a temporary solution to get things to work by @ksco in https...
Read more

v0.2.4

19 Aug 15:28

Choose a tag to compare

What's Changed

=> Dynarec now support RISC-V, large speedup on RISC-V 64, were games are now playable (like Stardew Valley on a Vision Five 2)
=> Improved compatibility with more fixes in elf handling, more wrapped libs and functiond, more fixed opcodes and refined profile
=> Support for 32bits process in Wine with experimental WOW64

  • Added Dynarec for RISC-V
  • Added partial 32 bits support (WoW64 works)
  • Changed cpuid to display box64
  • Fixed steam, again
  • Improved hacked version for overridden malloc/free functions
  • More wrapped libs
  • More wrapped functions and syscalls
  • Reduced memory footprint
  • Added support for the BIND_NOW flags in ELF files
  • Added RTLD_NOLOAD support
  • Fixed some typos and general cleanup, again
  • Added a cosimulation mode (to compare the behaviour of the dynarec with the interpreter)
  • Added FASTNAN/FASTROUND handling for more opcodes
  • Better float/double/long double handling
  • Better dlopen/dlclose handling
  • More games in the rc file
  • Added BOX64_DYNAREC_MISSING to show only missing opcode, independantly of the log level
  • Added BOX64_RESERVE_HIGH to reserve addresses above 47bits
  • Improved multitreading support
  • Ukrainian translation of the README

Contributions

  • add -dnogit=1 flag to debian rules by @ryanfortner in #547
  • Rv64 dynarec by @ptitSeb in #550
  • [RV64_DYNAREC] Added 29 SUB opcode by @ksco in #553
  • [RV64_DYNAREC] Added (81/83) SUB opcode by @ksco in #554
  • [RV64_DYNAREC] Added 8B MOV opcode by @xctan in #555
  • [RV64_DYNAREC] Fixed scratch register conflict for SUB by @ksco in #556
  • [RV64_DYNAREC] Added 31 XOR opcode by @ksco in #560
  • [RV64_DYNAREC] Small optimization for 31 XOR opcode by @ksco in #561
  • [RV64_DYNAREC] Added C1 /7 SAR opcode by @xctan in #559
  • [RV64_DYNAREC] many many more commit by @ksco & @xctan
  • docs/COMPILE.md: Use trusted.gpg.d by @sevan in #620
  • [RV64_DYNAREC] Fixed register name of float load/store in printer by @xctan in #621
  • [RV64_DYNAREC] Added A5 REP MOVSD opcode by @ksco in #622
  • [ARM64_DYNAREC] Fixed UFLAG_OP12 helper macro by @ksco in #623
  • [RV64_DYNAREC] Fixed F7 /6 DIV opcode by @ksco in #624
  • [RV64_DYNAREC] Added more opcodes by @ksco in #625
  • Update README by @ksco in #626
  • Latest batch of PKGBUILD updates by @Jai-JAP in #637
  • [RV64_DYNAREC] Fixes and some optims by @ksco in #638
  • fix some spelling mistakes by @josch in #640
  • add manual page in pod format by @josch in #641
  • Add wrapperhelper from box86 by @Jai-JAP in #657
  • First pass toward a better wrapper helper by @rajdakin in #658
  • CMakeLists: Allow installation without any config files by @fredldotme in #670
  • add missing \ to debian rules by @ryanfortner in #681
  • exclude libstdc++.so.5 in dh_shlibdeps by @amazingfate in #692
  • [TESTS] Make test09 deterministic by @ksco in #698
  • [WRAPPER] Fixed a libFLAC func wrapper (for #701) by @ksco in #702
  • [WRAPPER] Fixed mpg123 wrapper by @ksco in #704
  • [WRAPPER] Added more fontconfig wrapped functions by @ksco in #708
  • [ELF] Fixed a use-after-free issue by @ksco in #709
  • Fixed a broken link in README by @ksco in #713
  • Added more gtk3 wrapped functions by @LiZhuoheng-coder in #720
  • [WRAPPER] Fix my___vsnprintf_chk by @xctan in #722
  • Added more gtk3 wrapped functions by @LiZhuoheng-coder in #727
  • Added more gtk3 wrapped functions by @LiZhuoheng-coder in #731
  • Added support for builtin type distinction (long/long long) by @rajdakin in #735
  • Added some mpg123 wrapped functions by @ksco in #762
  • Added link to Wine guide, fixed link to Chinese readme by @Ilya114 in #773
  • [DYNAREC] Fix jump table not free on exit by @kaixindeken in #781
  • [WRAPPER] Added 1 more symbol for libc (for #787) by @ksco in #788
  • [WRAPPER] Fixed stack align on varargs (for #789) by @ksco in #790
  • [WRAPPER] Added vwprintf (for #793) by @ksco in #794
  • [WRAPPER] Added 4 more libc dprintf wrappers by @ksco in #798
  • [WRAPPER] Added some wayland function wrappers by @ksco in #807
  • [ARM64_DYNAREC] Fixed PUSH rsp when double pushing by @ksco in #821
  • [DYNAREC] Fixed native_fprem by @ksco in #822
  • [DYNAREC] Fixed call_c issues by @ksco in #823
  • [DYNAREC_RV64] Fixed 9x SETcc opcodes by @ksco in #824
  • [WRAPPER] Added some more libc wrappers by @ksco in #826
  • [INTERPRETER] Added 66 0F 38 37 PCMPGTQ opcode by @ksco in #827
  • [WRAPPER] Added more libicu wrapped functions (for #829) by @ksco in #831
  • ryanfortner's package now has a different name by @mio-19 in #834
  • [WRAPPER] Rework on libharfbuzz wrapper by @ksco in #836
  • Reduce duplication of compile instructions by @xDoge26 in #837
  • [WRAPPER] Added more symbols for openssl wrapper by @ksco in #847
  • [WRAPPER] Added more gtk functions by @ksco in #849
  • [32BITS] Use 32-bit types to compute 32-bit addresses. by @julliard in #851
  • [INTERP] Added more opcodes by @ksco in #852
  • [WRAPPER] Added more symbols for nss3 by @ksco in #853
  • [32BITS][DYNAREC] Added basic 32 bits RV64 support by @ksco in #856
  • A few cosmetic fixes by @julliard in #858
  • [32BTIS][DYNAREC_RV64] Added support for 32bits by @ksco in #861
  • [DYNAREC_RV64] Fixed A0 MOV AL,Ob by @ksco in #866
  • [32BITS][RV64_DYNAREC] Hanlding of STll struct in FILD/FISTP by @ksco in #868
  • [DYNAREC] Fix push rsp instruction by @julliard in #875
  • A few Push/Pop fixes and cleanups by @julliard in #878
  • [WRAPPER HELPER] Improve Record Parsing by @wannacu in #880
  • Cleaner wrapper generator script by @rajdakin in #889
  • Update package name in COMPILE.md by @ryanfortner in #894
  • remove executable bits by @josch in #896
  • add /usr/x86_64-linux-gnu/lib to the shared library search path by @josch in #901
  • Use CMAKE_SYSTEM_PROCESSOR instead of CMAKE_HOST_SYSTEM_PROCESSOR by @josch in #902
  • Ukrainian translate of README by @Ilya114 in #908
  • Little fixes by @Ilya114 in #909
  • [RV64_DYNAREC] Added more opcodes for Yuzu by @xctan in #911
  • Add missing curly brackets by @AndreRH in #919
  • Spelling fixes by @AndreRH in #920
  • [ARM64_DYNAREC] Fixed BT/BTC/BTR/BTS opcodes by @wannacu in #922
  • Add a new vulkan extension: VK_EXT_descriptor_buffer by @strongtz in #923
  • [RV64_DYNAREC] Added movbe opcode by @wannacu in #926
  • [ARM64_DYNAREC] Correct PF caculation by @wannacu in #928
  • Added some opcode by @wannacu in #929
  • [RV64_DYNAREC] Added E0/E1/E2/E3 opcodes by @wannacu in #934
  • Fixed wild pointer error for my_context->elfs while calling my___libc_start_main by @kaixindeken in #937
  • Added some opcodes by @wannacu in #936

New Contributors

Read more

v0.2.2

10 Mar 16:42

Choose a tag to compare

What's Changed

  • Added a hacked version for overriden malloc/free functions, enabling libcef (and derivative) to work.
    => Steam Large mode and new BigPicture are working
    => Heroic Launcher is working
  • Added rcfile handling: box64 now read /etc/box64.box64rc and ~/.box64rc and apply per process parameters
    => Every program can be finetuned, for speed or just to make them work
  • Added BOX64_DYNAREC_CALLRET to optimized CALL/RET opcode using semi-direct native CALL/RET (get more than 10% speedup)
  • Added BOX64_DYNAREC_FORWARD to allow bigger Dynarec block to be build (can get more then 30% of Speedup!)
  • Improved memory protection tracking and signal handling, again
  • Box64 now return a custom name for the CPU instal of P4, build with Box64 and the cpu name it's running on
  • Simplified mutex handling (faster, cleaner)
  • Reduce memory used by the memory tracking (memory almost divide by 4 is some critical use case)
  • Added d3dadapter9 wrapping
    => gallium nine is now supported on box64 too
  • More wrapped libs (especially on the gtk familly)
  • Improved/fixed some Syscall handling
  • Refactored Strong Memory Model emulation (faster and more accurate)
  • Added some more opcode to ARM64 Dynarec, and fixed some other
  • Some fixes to flags handling in the Dynarec on some special cases
  • Refactor library loading/unloading, with refcount.
  • Some special cases fixes for dlopen (fixes deadcells, maybe others too)
  • Improved mmap mapping, espcially with MAP_32BITS flag
  • More wrapped functions and syscalls
  • Lots of improvment in the Rounding of float & double (Dynarec and Interpretor), and proper handling of denormals when converting to/from 80 bits long double
  • Added specific suppport for RK3588 board (needed some hack in signal handling, probably due to the use of a non mainlined kernel)
  • More support on the RV64 port
  • More support to build under musl environment

Contributions

New Contributors

Full Changelog: v0.2.0...v0.2.2