版本发布 8
## 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](https://box86.org/2025/03/new-box64-v0-3-4-released/) ## Contributors * [LA64_DYNAREC] Added AES opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2122 * [CORE] Refine runtime messages by @jserv in https://github.com/ptitSeb/box64/pull/2125 * [LA64_DYNAREC] Added more 660F opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2127 * [LA64] SIGRTMAX is 127 for ABI 1.0 by @xiangzhai in https://github.com/ptitSeb/box64/pull/2134 * [WRAPPER] Added libcairo.so.2 as one of NEEDED_LIBS for gtk3 (#2136) by @xiangzhai in https://github.com/ptitSeb/box64/pull/2137 * [LA64_DYNAREC] Added more opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2145 * [RV64_DYNAREC] New register mapping by @ksco in https://github.com/ptitSeb/box64/pull/2139 * [RV64_DYNAREC] Reworked ZEROUP and freed t0 by @xctan in https://github.com/ptitSeb/box64/pull/2147 * [RV64_DYNAREC] Reinitialize sew after callret by @ksco in https://github.com/ptitSeb/box64/pull/2148 * [RV64_DYNAREC] Fixed some TO_NAT usages by @ksco in https://github.com/ptitSeb/box64/pull/2149 * [RV64_DYNAREC] Optimize push/pop with xtheadmemidx by @ksco in https://github.com/ptitSeb/box64/pull/2150 * [WRAPPER] Made gtkclass.c less likely to be recompiled by @ksco in https://github.com/ptitSeb/box64/pull/2153 * [RV64_DYNAREC] Fixed more regressions by @ksco in https://github.com/ptitSeb/box64/pull/2157 * [LA64_DYNAREC] Added PTEST opcode by @xiangzhai in https://github.com/ptitSeb/box64/pull/2158 * [CMAKE] Fixed linking issue with mold by @xctan in https://github.com/ptitSeb/box64/pull/2159 * [RV64_DYNAREC] Extended simple wrapper for more int types by @xctan in https://github.com/ptitSeb/box64/pull/2160 * Added initial GDBJIT support by @ksco in https://github.com/ptitSeb/box64/pull/2162 * [GDBJIT] Show x64pc in gdb, also added documentation by @ksco in https://github.com/ptitSeb/box64/pull/2163 * [LA64_DYNAREC] Added POPCNT opcode and fixed an issue too by @ksco in https://github.com/ptitSeb/box64/pull/2164 * [GDBJIT] Refined RV64 and LA64 support by @ksco in https://github.com/ptitSeb/box64/pull/2165 * [RV64_DYNAREC] Added unaligned support to CMPXCHG8B opcode by @ksco in https://github.com/ptitSeb/box64/pull/2166 * [RV64_DYNAREC] Fixed CMPXCHG8B by @ksco in https://github.com/ptitSeb/box64/pull/2167 * [RV64_DYNAREC] Fixed 32bit ADDIz by @ksco in https://github.com/ptitSeb/box64/pull/2168 * [RV64_DYNAREC] Added more LOCK prefix opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2169 * [RV64_DYNAREC] Fixed 32bits SUBz by @ksco in https://github.com/ptitSeb/box64/pull/2170 * [LA64_DYNAREC] Fix VPICKVE2GR_WU typo by @xiangzhai in https://github.com/ptitSeb/box64/pull/2171 * [LA64_DYNAREC] Added CLC and PMOVZXBW opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2172 * [LA64_DYNAREC] A few minor optimizations by @ksco in https://github.com/ptitSeb/box64/pull/2174 * [GDBJIT] Display DynaRec info in source file by @ksco in https://github.com/ptitSeb/box64/pull/2179 * [LA64_DYNAREC] Added ROUNDSD and CVTDQ2PD opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2173 * [GDBJIT] Unified the experience for all the backends by @ksco in https://github.com/ptitSeb/box64/pull/2183 * [GDBJIT] Display register mapping annotations by @ksco in https://github.com/ptitSeb/box64/pull/2185 * [RV64_DYNAREC] Made nativeflags works with 8/16bit fast path by @ksco in https://github.com/ptitSeb/box64/pull/2187 * [RV64_DYNAREC] Added a fast path to SHR Ew, Ib by @ksco in https://github.com/ptitSeb/box64/pull/2188 * [RV64_DYNAREC] Small optim to emit_and32c by @ksco in https://github.com/ptitSeb/box64/pull/2189 * [LA64_DYNAREC] Fixed 32bit ADDIz and SUBz by @ksco in https://github.com/ptitSeb/box64/pull/2191 * [LA64_DYNAREC] Optimized some 16bit shift opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2192 * [LA64_DYNAREC] Fixed some LBT path issues by @ksco in https://github.com/ptitSeb/box64/pull/2193 * [WRAPPED][BOX32] Redirected a few old symbols by @ksco in https://github.com/ptitSeb/box64/pull/2194 * [LA64_DYNAREC] Fixed various issues in LBT path by @ksco in https://github.com/ptitSeb/box64/pull/2197 * Add SDL_RenderGeometryRaw wrapped function to SDL2 by @DragonSWDev in https://github.com/ptitSeb/box64/pull/2195 * [RV64_DYNAREC] Fixed nativeflags tmp register usage by @ksco in https://github.com/ptitSeb/box64/pull/2199 * [LA64_DYNAREC] Small optim to MOVHPS by @ksco in https://github.com/ptitSeb/box64/pull/2200 * [LA64_DYNAREC] Fixed 66 0F PTEST opcode by @ksco in https://github.com/ptitSeb/box64/pull/2201 * [LA64_DYNAREC] Added nativeflags support by @ksco in https://github.com/ptitSeb/box64/pull/2202 * [RV64_DYNAREC] Fixed a regression in #2187 by @ksco in https://github.com/ptitSeb/box64/pull/2203 * [WRAPPED] Always return ENOSYS in the deprecated sysctl by @ksco in https://github.com/ptitSeb/box64/pull/2204 * [RCFILE] Added sekiro.exe entry by @ksco in https://github.com/ptitSeb/box64/pull/2206 * [RV64_DYNAREC] Fixed various lock usage in geted ([LA64_DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2207 * [RV64_DYNAREC] Added more opcodes ([LA64_DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2205 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2208 * [LA64_DYNAREC] Added MOVLPD and MOVHPD opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2198 * [DYNAREC] Cleanup modreg by @ksco in https://github.com/ptitSeb/box64/pull/2209 * [LA64_DYNAREC] Added IRET opcode by @ksco in https://github.com/ptitSeb/box64/pull/2210 * [LA64_DYNAREC] Added more opcodes and fixed CVTTPD2DQ by @ksco in https://github.com/ptitSeb/box64/pull/2211 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2213 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2214 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2215 * [LA64_DYNAREC] Added hardware wall-clock support by @ksco in https://github.com/ptitSeb/box64/pull/2216 * [DYNAREC] Implement perf map by @xiangzhai in https://github.com/ptitSeb/box64/pull/2212 * [LA64_DYNAREC] Fixed some minor issues on LBT path by @ksco in https://github.com/ptitSeb/box64/pull/2218 * [LA64_DYNAREC] Some minor fixes on bad variable usage by @ksco in https://github.com/ptitSeb/box64/pull/2221 * Use uname -m to get CPU architecture by @4Darmygeometry in https://github.com/ptitSeb/box64/pull/2222 * [DOCS] Improve cross-build instructions by @devarajabc in https://github.com/ptitSeb/box64/pull/2196 * Spelling/typo fixes in code and documentation updates by @olegos2 in https://github.com/ptitSeb/box64/pull/2223 * [ANDROID] Add a few ALTNAMEs and unwrap ifdefs for lib names by @olegos2 in https://github.com/ptitSeb/box64/pull/2224 * [WRAPPED][ANDROID] Add libGL ALTNAME by @olegos2 in https://github.com/ptitSeb/box64/pull/2225 * [DYNAREC] Appended instruction name to symbol by @xiangzhai in https://github.com/ptitSeb/box64/pull/2228 * Document `BOX64_ARG0` argv[0] rewriting variable by @ValdikSS in https://github.com/ptitSeb/box64/pull/2234 * Fix crash with incorrect argv[0]: rewrite it only if "box64" is present by @ValdikSS in https://github.com/ptitSeb/box64/pull/2233 * [WRAPPED] Added xdr_string and xdr_free by @xiangzhai in https://github.com/ptitSeb/box64/pull/2235 * [WRAPPED] Added monstartup by @xiangzhai in https://github.com/ptitSeb/box64/pull/2241 * Port rounding of some x87 instructions from Box86 by @Hagb in https://github.com/ptitSeb/box64/pull/2242 * [RV64_DYNAREC] Fixed some typos by @xctan in https://github.com/ptitSeb/box64/pull/2244 * [RV64_DYNAREC] Fixed MOVMSKPS RVV 1.0 path by @ksco in https://github.com/ptitSeb/box64/pull/2246 * [SIGNAL][RV64] Added special unaligned cases handling by @ksco in https://github.com/ptitSeb/box64/pull/2248 * [RV64_DYNAREC] Disabled dynamic sew on MOVDQA as a workaround by @ksco in https://github.com/ptitSeb/box64/pull/2249 * [RV64_DYNAREC] Fixed a 16bit SHR pastpath edge case by @ksco in https://github.com/ptitSeb/box64/pull/2251 * [SIGNAL][RV64] Supported more opcodes for special cases by @ksco in https://github.com/ptitSeb/box64/pull/2253 * [CI] Create Box64 Packages for MiceWine (.rat) by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/2256 * [RV64_DYNAREC] Fixed SET_ELEMENT_WIDTH by @ksco in https://github.com/ptitSeb/box64/pull/2260 * [CORE] Simplified xhead* detection and standardized extension display by @ksco in https://github.com/ptitSeb/box64/pull/2261 * [RV64_DYNAREC] Fixed offsetof(x64emu_t, scratch) usage overflow ([LA64_DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2262 * [RV64_DYNAREC] Fixed stack out of sync in native call by @ksco in https://github.com/ptitSeb/box64/pull/2263 * [RV64_DYNAREC] Fixed simm12 overflow in some places ([LA64_DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2264 * [ARM64_DYNAREC] Removed an unused arg in SET_DFNONE by @ksco in https://github.com/ptitSeb/box64/pull/2266 * [RV64_DYNAREC] Optimized 16bit constant ROL opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2267 * [RV64_DYNAREC] Optimized 16bit constant ROR opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2268 * [RV64_DYNAREC] Optimized 16bit constant RCL/RCR opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2270 * [RV64_DYNAREC] Refined printer for more thead instructions by @ksco in https://github.com/ptitSeb/box64/pull/2272 * [RCFILE] Add MiSide Profile by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/2276 * [ENV] Initial refactor of env variables infrastructure by @ksco in https://github.com/ptitSeb/box64/pull/2274 * [ENV] Optimized BOX64ENV log a bit by @ksco in https://github.com/ptitSeb/box64/pull/2277 * Changed some functions name and visibility by @ksco in https://github.com/ptitSeb/box64/pull/2278 * Added [BOX64] prefix for all the stdout logs by @ksco in https://github.com/ptitSeb/box64/pull/2279 * Fixed various issues introduced in the env infra refactor by @ksco in https://github.com/ptitSeb/box64/pull/2281 * [DOCS] Auto-generated USAGE.md and box64.pod by @ksco in https://github.com/ptitSeb/box64/pull/2283 * [RV64_DYNAREC] Added fastnan handling to more 0F opcodes (fixes CI) by @ksco in https://github.com/ptitSeb/box64/pull/2284 * [LA64_DYNAREC] Added fastnan handling to more 0F opcodes (fixes CI) by @ksco in https://github.com/ptitSeb/box64/pull/2285 * Clean up UnityPlayer.dll detection from my_mmap64 by @ksco in https://github.com/ptitSeb/box64/pull/2286 * [ENV] Fixed zydis initialization regression by @ksco in https://github.com/ptitSeb/box64/pull/2287 * [DYNAREC] Added preliminary per-file settings by @ksco in https://github.com/ptitSeb/box64/pull/2288 * [RV64_DYNAREC] Added codegen for unaligned stores by @xctan in https://github.com/ptitSeb/box64/pull/2289 * [RV64_DYNAREC] Restricted add/sub RSP optimization ([LA64_DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2292 * [RV64_DYNAREC] Force priv opcode flags to be at least defered if safeflags=2 ([LA64_DYNREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2293 * [RV64_DYNAREC] Removed some TABLE64 usage by @ksco in https://github.com/ptitSeb/box64/pull/2291 * [RV64_DYNAREC] Optimized GETIP by @ksco in https://github.com/ptitSeb/box64/pull/2294 * [RV64_DYNAREC] Added unaligned codegen for MOVSW by @xctan in https://github.com/ptitSeb/box64/pull/2296 * [ENV] Fixed the type of BOX64_DYNAREC_STRONGMEM by @xctan in https://github.com/ptitSeb/box64/pull/2298 * [RV64_DYNAREC] Fixed lui/auipc immediate in the printer by @xctan in https://github.com/ptitSeb/box64/pull/2299 * [CI] Fixed xuantie-qemu build by @ksco in https://github.com/ptitSeb/box64/pull/2306 * [ENV] Fixed crash when rcfile does not exist (for #2295) by @ksco in https://github.com/ptitSeb/box64/pull/2307 * [RV64_DYNAREC] Fixed F2 0F E6 opcode for vector by @ksco in https://github.com/ptitSeb/box64/pull/2310 * [ENV] More tweaks on recoding env mapping by @ksco in https://github.com/ptitSeb/box64/pull/2309 * Added auto-generated x64Int3 printer by @ksco in https://github.com/ptitSeb/box64/pull/2311 * [DOCS] Added per-file settings documentation by @ksco in https://github.com/ptitSeb/box64/pull/2317 * [LA64_DYNAREC] Added 64 88 MOV opcode by @ksco in https://github.com/ptitSeb/box64/pull/2318 * [DYNAREC] Optimized grab_segdata calls on MODREG by @ksco in https://github.com/ptitSeb/box64/pull/2319 * [RV64_DYNAREC] Small optim to 64 A1/A3 opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2320 * [LA64_DYNAREC] Fixed F3 0F MOVSLDUP opcode by @ksco in https://github.com/ptitSeb/box64/pull/2321 * [LA64_DYNAREC] Added more 66 0F 38 opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2322 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2323 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2324 * [ARM64_DYNAREC] Added more aligned optim cases for REP MOVSB by @ksco in https://github.com/ptitSeb/box64/pull/2326 * [RV64_DYNAREC] Added aligned optim case for REP MOVSB by @ksco in https://github.com/ptitSeb/box64/pull/2327 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2328 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2330 * [RV64_DYNAREC] Minor fixes and improvements on various opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2331 * [ARM64_DYNAREC] Minor simplifications with the usage of GETEX by @ksco in https://github.com/ptitSeb/box64/pull/2332 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2333 * [LA64_DYNAREC] Fixed newly added 66 0F BA /4 BT opcode by @ksco in https://github.com/ptitSeb/box64/pull/2336 * [DYNAREC] Fixed diff logging prefix of pass2&3 by @ksco in https://github.com/ptitSeb/box64/pull/2337 * [LA64_DYNREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2338 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2339 * [LA64_DYNAREC] Added preliminary optimization for REP MOVSB by @ksco in https://github.com/ptitSeb/box64/pull/2340 * [LA64_DYNAREC] Added F2 0F 7D HSUBPS opcode by @ksco in https://github.com/ptitSeb/box64/pull/2341 * [LA64_DYNAREC] Added F3 0F 52 RSQRTSS opcode by @ksco in https://github.com/ptitSeb/box64/pull/2343 * [ARM64_DYNAREC] Fixed wrong COUNT operand in VPSLL{W,D,Q} by @wannacu in https://github.com/ptitSeb/box64/pull/2344 * fix VPMASKMOV and VMASKMOVP by @ye-yeshun in https://github.com/ptitSeb/box64/pull/2342 * [RV64_DYNAREC] Minor fixes and improvements to TEST opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2352 * [ARM64_DYNAREC] Added some BMI.0F38 opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/2347 * [RV64_DYNAREC] Minor fixes and improvements to CMP opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2353 * [RV64_DYNAREC] Minor optimization to CMOV opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2354 * [RV64_DYNAREC] Added a fastpath to SHL/SHR CL opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2355 * [RV64_DYNAREC] Fixed F3 0F 11,12 opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/2356 * [COSIM] Print decoded instruction mnemonics if trace enabled by @ksco in https://github.com/ptitSeb/box64/pull/2357 * [ARM64_DYNAREC] Add some opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/2358 * [BOX64RC] Add Zenless Zone Zero Config by @mcagabe19 in https://github.com/ptitSeb/box64/pull/2363 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2366 * [LA64_DYNAREC] Added more SSE4 opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2370 * [LA64_DYNAREC] Minor optims and fixes to some opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2371 * [ARM64_DYNAREC] Added more AVX opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/2372 * [DYNAREC] Print decoded instruction mnemonics for missing opcodes if trace enabled by @ksco in https://github.com/ptitSeb/box64/pull/2373 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2374 * [INTERP] Added 66 0F 19 NOP opcode ([DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2375 * [INTERP] Added 0F 19 NOP opcode ([DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2376 * [INTERP] Added more nops ([DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2377 * [INTERP] Added more nops ([DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2378 * [BUNDLE] Add script to bundle x86 libraries by @LukeShortCloud in https://github.com/ptitSeb/box64/pull/2380 * [RV64_DYNAREC] Optimized unaligned path for REP MOVSB by @ksco in https://github.com/ptitSeb/box64/pull/2381 * [RV64_DYNAREC] Small changes to SET_DFNONE to make it safer ([LA64_DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2382 * Fixed dlsym_error logs prefix by @ksco in https://github.com/ptitSeb/box64/pull/2383 * [RV64_DYNAREC] Fixed a regression introduced recently ([LA64_DYNAREC] too) by @ksco in https://github.com/ptitSeb/box64/pull/2384 * [WRAPPER] Display Box64 version in Vulkan driver info by @xctan in https://github.com/ptitSeb/box64/pull/2385 * [CORE] Display Box64 version info in mangohud by @ksco in https://github.com/ptitSeb/box64/pull/2386 * [CORE] Rework on function hookMangoHud by @ksco in https://github.com/ptitSeb/box64/pull/2387 * [DYNAREC] Minor optimizations to SHL/SHR Ed, CL fastpath by @ksco in https://github.com/ptitSeb/box64/pull/2392 * [RCFILE] Added support for perfile dynarec dump by @ksco in https://github.com/ptitSeb/box64/pull/2393 * [ARM64_DYNAREC] Fixed a regression in LOCK XADD opcode by @ksco in https://github.com/ptitSeb/box64/pull/2394 * Made error logs prefix has red color by @ksco in https://github.com/ptitSeb/box64/pull/2396 * Made some tweaks to banner and help message by @ksco in https://github.com/ptitSeb/box64/pull/2397 * [RV64_DYNAREC] Added more MMX opcodes for vector and fixes too by @ksco in https://github.com/ptitSeb/box64/pull/2399 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2400 * Debian shlibdeps exclude fixes by @sigmaris in https://github.com/ptitSeb/box64/pull/2403 * [RV64_DYNAREC] Fixed swapCache scratch register usage by @ksco in https://github.com/ptitSeb/box64/pull/2405 * [RV64_DYNAREC] Fixed some minor typos by @ksco in https://github.com/ptitSeb/box64/pull/2406 * Fixed Box32 for Winlator Glibc by @alexvorxx in https://github.com/ptitSeb/box64/pull/2404 * [CORE] Limited some syscalls for Android build by @ksco in https://github.com/ptitSeb/box64/pull/2412 * [RCFILE] Fixed load addr parse issue by @ksco in https://github.com/ptitSeb/box64/pull/2413 * [RCFILE] Added range gdbjit support by @ksco in https://github.com/ptitSeb/box64/pull/2414 * [RV64_DYNAREC] Minor optimizations to sign mask extraction instructions for vector by @ksco in https://github.com/ptitSeb/box64/pull/2416 * [WRAPPER] add gnutls_fips140_set_mode by @liuli0217 in https://github.com/ptitSeb/box64/pull/2417 * Fix undefined reference to `epoll_pwait2' for LA64 ABI 1.0 by @xiangzhai in https://github.com/ptitSeb/box64/pull/2422 * [RV64_DYNAREC] Rollback some falsy optimization in the xtheadvector path by @ksco in https://github.com/ptitSeb/box64/pull/2426 * [RV64_DYNAREC] Optimized PMOVZX and PMOVSX opcodes for vector 1.0 by @ksco in https://github.com/ptitSeb/box64/pull/2430 ## New Contributors * @DragonSWDev made their first contribution in https://github.com/ptitSeb/box64/pull/2195 * @4Darmygeometry made their first contribution in https://github.com/ptitSeb/box64/pull/2222 * @ValdikSS made their first contribution in https://github.com/ptitSeb/box64/pull/2234 * @Hagb made their first contribution in https://github.com/ptitSeb/box64/pull/2242 * @ye-yeshun made their first contribution in https://github.com/ptitSeb/box64/pull/2342 * @LukeShortCloud made their first contribution in https://github.com/ptitSeb/box64/pull/2380 * @sigmaris made their first contribution in https://github.com/ptitSeb/box64/pull/2403 * @alexvorxx made their first contribution in https://github.com/ptitSeb/box64/pull/2404 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.3.2...v0.3.4
## 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](https://box86.org/2024/12/new-version-of-box64-v0-3-2-and-box86-v0-3-8/) ## Contributors * [LA64_DYNAREC] Added more opcodes and a minor fix too by @ksco in https://github.com/ptitSeb/box64/pull/1662 * Remove the flags adjustment in `GO_TRACE` for RISC-V 64 by @Coekjan in https://github.com/ptitSeb/box64/pull/1663 * [DYNAREC] Fixed `ymm0_purge` for some instructions by @rajdakin in https://github.com/ptitSeb/box64/pull/1664 * fix some spelling mistakes by @josch in https://github.com/ptitSeb/box64/pull/1668 * [RV64_DYNAREC] Cleanup for removed rv64_lock_cas_dq by @iv-m in https://github.com/ptitSeb/box64/pull/1670 * [Wrapped] Added sqlite3_exec by @kaixindeken in https://github.com/ptitSeb/box64/pull/1671 * Revert "[Wrapped] Added sqlite3_exec" by @ptitSeb in https://github.com/ptitSeb/box64/pull/1673 * Wrap `sqlite3_exec` for libsqlite3 by @Coekjan in https://github.com/ptitSeb/box64/pull/1674 * Wrapped libtiff5 and libltdl7 by @kaixindeken in https://github.com/ptitSeb/box64/pull/1677 * Fix hidden error in PR 1677 by @kaixindeken in https://github.com/ptitSeb/box64/pull/1678 * [LA64_DYNAREC] Added 2 more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1680 * build: fix PKGBUILD-rk3xxx pkgname was set to box86 by @Rippanda12 in https://github.com/ptitSeb/box64/pull/1681 * [RV64_DYNAREC] Fixed some bugs for VMP by @xctan in https://github.com/ptitSeb/box64/pull/1679 * [ARM64_DYNAREC] Fixed OR Ew, Gw by @ksco in https://github.com/ptitSeb/box64/pull/1682 * [LA64_DYNAREC] Remove xMASK and fixed 86 XCHG opcode by @ksco in https://github.com/ptitSeb/box64/pull/1683 * [RV64_DYNAREC] Clear high 32bits when write back as single by @ksco in https://github.com/ptitSeb/box64/pull/1684 * [RV64_DYNAREC] Fixed GETGXSS_empty on upper bits handling by @ksco in https://github.com/ptitSeb/box64/pull/1685 * [LA64_DYNAREC] Fixed some opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1686 * [LA64_DYNAREC] Fixed CMPSD by @ksco in https://github.com/ptitSeb/box64/pull/1687 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1688 * [LA64_DYNAREC] Added more opcodes and fixed SHUFPD opcode by @ksco in https://github.com/ptitSeb/box64/pull/1690 * [LA64_DYNAREC] Added more opcodes and fixed more issues by @ksco in https://github.com/ptitSeb/box64/pull/1692 * [RV64_DYNAREC] Added vlen detection by @ksco in https://github.com/ptitSeb/box64/pull/1694 * [RV64_DYNAREC] Show missing opcodes in vector implementation by @ksco in https://github.com/ptitSeb/box64/pull/1695 * [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1696 * [RV64_DYNAREC] Added 66 0F 38 00 PSHUFB for vector by @ksco in https://github.com/ptitSeb/box64/pull/1697 * [RV64_DYNAREC] Added vector SEW cache by @ksco in https://github.com/ptitSeb/box64/pull/1698 * [RV64_DYNAREC] Added more 66 0F 38 opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1699 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1700 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1701 * [DYNAREC] Fixed CI failures for RV64 and LA64 by @ksco in https://github.com/ptitSeb/box64/pull/1702 * [RV64_DYNAREC] Fixed vector infra by @ksco in https://github.com/ptitSeb/box64/pull/1705 * [RV64_DYNAREC] Fixed more issues in the vector infrastructure by @ksco in https://github.com/ptitSeb/box64/pull/1706 * Update README_UK.md by @Ilya114 in https://github.com/ptitSeb/box64/pull/1709 * [RV64_DYNAREC] Fixed flag generation in IMUL/MUL opcode by @xctan in https://github.com/ptitSeb/box64/pull/1715 * [LA64_DYNAREC] Fixed flag generation in IMUL/MUL opcode by @ksco in https://github.com/ptitSeb/box64/pull/1716 * [INTERP] Fixed some undefined behaviour by @ksco in https://github.com/ptitSeb/box64/pull/1717 * [RV64_DYNAREC] Fixed register conflict with GETEB macro by @xctan in https://github.com/ptitSeb/box64/pull/1718 * [RV64_DYNAREC] Fixed register conflict in the GETSEB marco by @xctan in https://github.com/ptitSeb/box64/pull/1719 * [RV64_DYNAREC] Removed TODOs on GETEX and GETEM macros by @ksco in https://github.com/ptitSeb/box64/pull/1720 * [RV64_DYNAREC] Fixed FNSTSW opcode by @ksco in https://github.com/ptitSeb/box64/pull/1721 * [RV64_DYNAREC] Fixed misused BNE_NEXT in emit_ro{l,r}32 by @xctan in https://github.com/ptitSeb/box64/pull/1723 * [RV64_DYNAREC] Fixed fpu_flags handling and enabled cosim in CI by @ksco in https://github.com/ptitSeb/box64/pull/1722 * [RV64_DYNAREC] Fixed OF generation in emit_sar16c by @xctan in https://github.com/ptitSeb/box64/pull/1724 * [RV64_DYNAREC] Fixed more register conflicts by @ksco in https://github.com/ptitSeb/box64/pull/1726 * [RV64_DYNAREC] Fixed pending flags for large 8 & 16 bit const shifts by @xctan in https://github.com/ptitSeb/box64/pull/1728 * [RV64_DYNAREC] Fixed ROL/ROR RCX, CL by @xctan in https://github.com/ptitSeb/box64/pull/1729 * [RV64_DYNAREC] Fixed flags for shrd/shld with constant 0 shift by @ksco in https://github.com/ptitSeb/box64/pull/1730 * [RV64_DYNAREC] More fixes by @xctan in https://github.com/ptitSeb/box64/pull/1732 * [RV64_DYNAREC] Fixed 0F BA /5 BTS opcode by @ksco in https://github.com/ptitSeb/box64/pull/1733 * [RV64_DYNAREC] Fixed extcacheUnwind regression by @ksco in https://github.com/ptitSeb/box64/pull/1734 * [RV64,LA64_DYNAREC] Small change when handling long CC INT 3 opcode by @ksco in https://github.com/ptitSeb/box64/pull/1736 * Added 1 more gtk3 function wrapper by @ksco in https://github.com/ptitSeb/box64/pull/1737 * [RV64_DYNAREC] Added 66 0F 3A 63 PCMPISTRI opcode and fixed some issues by @ksco in https://github.com/ptitSeb/box64/pull/1735 * Added more curl function wrapper by @ksco in https://github.com/ptitSeb/box64/pull/1738 * [LA64_DYNAREC] Port recent RV64 fixes by @ksco in https://github.com/ptitSeb/box64/pull/1739 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1740 * Udate upstream by @ptitSeb in https://github.com/ptitSeb/box64/pull/1741 * [RV64_DYNAREC] Slightly improved LOCK CMPXCHG16B opcode by @ksco in https://github.com/ptitSeb/box64/pull/1743 * Update upstream by @ptitSeb in https://github.com/ptitSeb/box64/pull/1744 * [RV64_DYNAREC] Disable vector extension by default until it's ready by @ksco in https://github.com/ptitSeb/box64/pull/1746 * [RV64_DYNAREC] Fixed various issues in vector infra by @ksco in https://github.com/ptitSeb/box64/pull/1750 * [RV64_DYNAREC] Fixed more issues in the vector infrastructure by @ksco in https://github.com/ptitSeb/box64/pull/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 https://github.com/ptitSeb/box64/pull/1754 * [EMU] [ARM64_DYNAREC] Fix Some Warnings on Clang Compilers by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1757 * [RV64_DYNAREC] Fix some typos in docs and dynarec/rv64 by @wangguidong1999 in https://github.com/ptitSeb/box64/pull/1758 * Added preliminary Box32 support by @ptitSeb in https://github.com/ptitSeb/box64/pull/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 https://github.com/ptitSeb/box64/pull/1762 * [CTEST] Use BOX64_LD_LIBRARY_PATH instead of default LD_LIBRARY_PATH by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1764 * [RV64_DYNAREC] Added a fast path for some 8bit opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1763 * [RV64_DYNAREC] Added a fast path for some 16bit opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1765 * [BOX32][RV64_DYNAREC] Added preliminary box32 support to RV64 by @ksco in https://github.com/ptitSeb/box64/pull/1766 * [BOX32][RV64_DYNAREC] Fixed more issues and enable CI for box32 by @ksco in https://github.com/ptitSeb/box64/pull/1767 * [RV64_DYNAREC] Optimized jump_to_next using XTheadBb instructions by @ksco in https://github.com/ptitSeb/box64/pull/1768 * [RV64_DYNAREC] Fixed a falsy optimization, better EMIT macro by @ksco in https://github.com/ptitSeb/box64/pull/1769 * [BOX32][LA64_DYNAREC] Added preliminary box32 support by @ksco in https://github.com/ptitSeb/box64/pull/1773 * Wrapped 1 more function for libxcb by @ksco in https://github.com/ptitSeb/box64/pull/1776 * [CI] Added 60s timeout per test by @ksco in https://github.com/ptitSeb/box64/pull/1777 * [RV64_DYNAREC] Refactored rv64_printer by @ksco in https://github.com/ptitSeb/box64/pull/1779 * [RV64_DYNAREC] Added xthead* extensions to the new printer by @ksco in https://github.com/ptitSeb/box64/pull/1781 * [DYNAREC] fix BICS encoding by @JunChi1022 in https://github.com/ptitSeb/box64/pull/1783 * [WRAPPED] Merged types D/K and Y/y in 64bits wrapped libs by @rajdakin in https://github.com/ptitSeb/box64/pull/1784 * [BOX32] Fixed build with mold by @ksco in https://github.com/ptitSeb/box64/pull/1785 * [WRAPPED] Added back some libc function wrappers by @ksco in https://github.com/ptitSeb/box64/pull/1788 * [CI] Speedup CI by removing some unnecessary targets by @ksco in https://github.com/ptitSeb/box64/pull/1790 * [X64LIBS] Changed x86/x64 libs install directory to prevent conflicts by @ksco in https://github.com/ptitSeb/box64/pull/1791 * [CI] Refactored CI by @ksco in https://github.com/ptitSeb/box64/pull/1795 * [WRAPPED] Removed GOS, renamed GODW into GOWD by @rajdakin in https://github.com/ptitSeb/box64/pull/1797 * Eliminate duplicate hash calculations for `getSymbolInSymbolMaps` by @Coekjan in https://github.com/ptitSeb/box64/pull/1801 * Wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/1799 * [WRAPPED] Update libc wrappers by @rajdakin in https://github.com/ptitSeb/box64/pull/1800 * Upgraded the wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/1803 * [WRAPPERHELPER] General improvements by @rajdakin in https://github.com/ptitSeb/box64/pull/1804 * [WRAPPED] Fixed some libc wrapped functions by @rajdakin in https://github.com/ptitSeb/box64/pull/1806 * Better wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/1807 * [WRAPPERHELPER] Fixed preprocessor logic, moved type validation to machine by @rajdakin in https://github.com/ptitSeb/box64/pull/1808 * [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1811 * [RV64_DYNAREC] Added 66 0F D4 PADDQ opcode for vector and fixes SEW cache transform by @ksco in https://github.com/ptitSeb/box64/pull/1812 * Better wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/1813 * [WRAPPERS] Fixed some wrong wrappings by @rajdakin in https://github.com/ptitSeb/box64/pull/1814 * [SDORYON1] Oryon1 (Snapdragon Elite) support by @powpingdone in https://github.com/ptitSeb/box64/pull/1786 * [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1815 * [RV64_DYNAREC] Added more 0F opcodes for vector and optimized some opcodes too by @ksco in https://github.com/ptitSeb/box64/pull/1816 * [RV64_DYNAREC] Added more 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1817 * [RV64_DYNAREC] Fixed a typo on vector_sew initialization (for #1818) by @ksco in https://github.com/ptitSeb/box64/pull/1819 * [RV64_DYNAREC] Refactored vector SEW tracking by @ksco in https://github.com/ptitSeb/box64/pull/1820 * [DYNAREC] fix page calculation error by @JunChi1022 in https://github.com/ptitSeb/box64/pull/1822 * [RV64_DYNAREC] Added 1 more opcode for vector and some refactor and fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1824 * [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1829 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1830 * [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1831 * [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1832 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1833 * [RV64_DYNAREC] Fixed some found issues in vector by @ksco in https://github.com/ptitSeb/box64/pull/1834 * [RV64_DYNAREC] Fixed more unaligned issues for vector by @ksco in https://github.com/ptitSeb/box64/pull/1835 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1836 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1837 * [RV64_DYNAREC] Added more 66 0F opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1838 * [RV64_DYNAREC] Fixed more issues catched on real machine by @ksco in https://github.com/ptitSeb/box64/pull/1839 * [RV64_DYNAREC] Added 62 opcode by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1840 * [RV64_DYNAREC] Added more opcodes and fixed more issues for vector by @ksco in https://github.com/ptitSeb/box64/pull/1842 * Improve the wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/1844 * [WRAPPERHELPER] Added predefined mark-simple and conversions by @rajdakin in https://github.com/ptitSeb/box64/pull/1845 * [LA64_DYNAREC] Fixed a typo in GETGB by @ksco in https://github.com/ptitSeb/box64/pull/1846 * [WRAPPERHELPER] Fixed some bugs, added partial multiarch support by @rajdakin in https://github.com/ptitSeb/box64/pull/1847 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1848 * [WRAPPERHELPER] Fixed the wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/1850 * [RV64_DYNAREC] Added more opcode for vector and reinitialize sew after external call by @ksco in https://github.com/ptitSeb/box64/pull/1851 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1852 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1853 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1855 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1857 * [RV64_DYNAREC] Fixed 66 0F 38 2B PACKUSDW opcode by @ksco in https://github.com/ptitSeb/box64/pull/1861 * [RV64_DYNAREC] Allowed disabling V extension by @ksco in https://github.com/ptitSeb/box64/pull/1862 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1863 * [LA64_DYNAREC][BOX32] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1864 * [RV64_DYNAREC][BOX32] Improved some 66 prefix opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1865 * [RV64_DYNAREC][BOX32] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1866 * [LA64_DYNAREC][BOX32] Improved some 66 prefix opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1867 * [BOX32][WRAPPER] Fixed null checking in my32_SDL_SetVideoMode by @ksco in https://github.com/ptitSeb/box64/pull/1868 * [BOX32][WRAPPER] Added preliminary wrapper for SDL2 (postal1 works) by @ksco in https://github.com/ptitSeb/box64/pull/1872 * [BOX32][WRAPPER] Refined SDL2 display mode wrapping by @ksco in https://github.com/ptitSeb/box64/pull/1874 * [LA64_DYNAREC] Fixed emit_add16 LBT implementation by @ksco in https://github.com/ptitSeb/box64/pull/1875 * [LA64_DYNAREC] Added unaligned support to CMPXCHG8B by @ksco in https://github.com/ptitSeb/box64/pull/1877 * [ARM64_DYNAREC] Small optim on 0F C7 /1 inst name by @ksco in https://github.com/ptitSeb/box64/pull/1878 * [RV64_DYNAREC] Refined RISC-V vector disassembler by @xctan in https://github.com/ptitSeb/box64/pull/1880 * [BOX32][WRAPPER] Wrapped more SDL2 functions by @ksco in https://github.com/ptitSeb/box64/pull/1881 * [ANDROID][BOX32] Fix Android Build, and add correct libc, libm, libdl library names on library_list_32.h by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1883 * [RV64_DYNAREC] Refined RISC-V vector emitter by @ksco in https://github.com/ptitSeb/box64/pull/1884 * [RV64_DYNAREC] Minor optimization on vector_vsetvli by @ksco in https://github.com/ptitSeb/box64/pull/1885 * [RV64_DYNAREC] Eliminate redundant vsetvli by tracking its usage by @ksco in https://github.com/ptitSeb/box64/pull/1886 * [ANDROID][BOX32] Fix __libc_init, Fix Some Warnings by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1887 * Various box32 wrapped libs and script fixes by @rajdakin in https://github.com/ptitSeb/box64/pull/1889 * [WRAPPERHELPER] Added box32 and line number support in the wrapperhelper by @rajdakin in https://github.com/ptitSeb/box64/pull/1890 * [RV64_DYNAREC] Added preliminary xtheadvector support by @ksco in https://github.com/ptitSeb/box64/pull/1892 * [CI] Added xtheadvector testing by @ksco in https://github.com/ptitSeb/box64/pull/1894 * [WRAPPERHELPER] Forgot to add the Makefile by @rajdakin in https://github.com/ptitSeb/box64/pull/1895 * [DYNAREC] Added a new missing mode for fallback opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1896 * [RV64_DYNAREC] Added more opcodes for xtheadvector and fixed more issues by @ksco in https://github.com/ptitSeb/box64/pull/1897 * Fixed RV64 `isSimpleWrapper` by @rajdakin in https://github.com/ptitSeb/box64/pull/1898 * [RV64_DYNAREC] Added more opcodes for xtheadvector by @ksco in https://github.com/ptitSeb/box64/pull/1899 * [RV64] Allowed disabling more extensions by @ksco in https://github.com/ptitSeb/box64/pull/1904 * [DYNAREC] Tweaking indirect jumps for CALL/RET to use the return address stack by @ksco in https://github.com/ptitSeb/box64/pull/1907 * [DYNAREC] Optimized CALL/RET RAS for out of dynablock jumps by @ksco in https://github.com/ptitSeb/box64/pull/1909 * [RV64_DYNAREC] Fixed CVTSS2SD and CVTSD2SS opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1913 * [RV64_DYNAREC] Added more opcodes and small optimizations by @ksco in https://github.com/ptitSeb/box64/pull/1914 * [BOX32] Fixed fcntl flock macros definitions by @ksco in https://github.com/ptitSeb/box64/pull/1915 * [RV64_DYNAREC] Added more boilerplate for vector by @ksco in https://github.com/ptitSeb/box64/pull/1916 * x[RV64_DYNAREC] Added 1 more opcode for vector, some fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1917 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1918 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1919 * [RV64_DYNAREC] Added more opcode for vector and some fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1920 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1923 * [RV64_DYNAREC] Split 660f.c to speedup compilation a bit by @ksco in https://github.com/ptitSeb/box64/pull/1924 * [RV64_DYNAREC] Fixed an issue in CVTTSD2SI for vector by @ksco in https://github.com/ptitSeb/box64/pull/1925 * [RV64_DYNAREC] Wrapped icuuc75 by @ksco in https://github.com/ptitSeb/box64/pull/1926 * [RV64_DYNAREC] Fixed 66 0F 38 17 PTEST opcode for vector by @ksco in https://github.com/ptitSeb/box64/pull/1927 * [RV64_DYNAREC] Fixed more issues for vector by @ksco in https://github.com/ptitSeb/box64/pull/1928 * [CORE] Refactored %pid trace file handling by @ksco in https://github.com/ptitSeb/box64/pull/1933 * [RV64_DYNAREC][LA64_DYNAREC] Fixed various issues by @ksco in https://github.com/ptitSeb/box64/pull/1940 * [RV64_DYNAREC] Added a few more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1941 * Fix compilation error in my_x11_xevent.c (#1938) and dynarec_rv64_helper.c by @devarajabc in https://github.com/ptitSeb/box64/pull/1952 * [RV64_DYNAREC] Optimized horizontal opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1955 * [RV64_DYNAREC] Added 1 more 66 0F opcode for vector by @ksco in https://github.com/ptitSeb/box64/pull/1956 * [RV64_DYNAREC] Refined `fpu_{push,pop}cache` for vector by @ksco in https://github.com/ptitSeb/box64/pull/1960 * [RV64_DYNAREC] Implemented the first AVX128 opcode for scalar only by @ksco in https://github.com/ptitSeb/box64/pull/1962 * [RV64_DYNAREC] Added more opcodes for vector (some other minor fixes too...) by @ksco in https://github.com/ptitSeb/box64/pull/1966 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1968 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1969 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1970 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1972 * [RV64_DYNAREC] Fixed MAXSS and MAXSD for vector by @ksco in https://github.com/ptitSeb/box64/pull/1974 * [RV64_DYNAREC] Fixed 66 0F C2 CMPPD opcode for scalar and more by @ksco in https://github.com/ptitSeb/box64/pull/1975 * [INTERP] Fixed overflow checking for convertion opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1976 * [WRAPPERHELPER] Better wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/1977 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1978 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1979 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1980 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1981 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1982 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1983 * [rbtree]The name of rbtree is set error. by @zymayunyan in https://github.com/ptitSeb/box64/pull/1984 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1987 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1989 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1991 * [RV64_DYNAREC] Added more opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1992 * [RV64_DYNAREC] Added more SSE opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/1999 * [WRAPPER] Wrapped 3 more symbols for libc by @ksco in https://github.com/ptitSeb/box64/pull/2000 * [WRAPPED32] Added an errno-aware calling convention by @rajdakin in https://github.com/ptitSeb/box64/pull/2006 * [RBTREE] Unify naming and prevent unintended symbol exposure by @jserv in https://github.com/ptitSeb/box64/pull/2005 * [RV64_DYNAREC] Fixed some GETEX_vector usage by @ksco in https://github.com/ptitSeb/box64/pull/2008 * [RV64_DYNAREC] Added mmx infra for vector by @ksco in https://github.com/ptitSeb/box64/pull/2011 * [CORE][LA64] Check LASX and display its existence by @ksco in https://github.com/ptitSeb/box64/pull/2016 * [RV64_DYNAREC] Added more MMX opcodes for vector by @ksco in https://github.com/ptitSeb/box64/pull/2017 * [RV64_DYNAREC] Made eflags emulation branchless with xtheadcondmov by @ksco in https://github.com/ptitSeb/box64/pull/2019 * [RV64_DYNAREC] Added more MMX opcodes for vector by @xctan in https://github.com/ptitSeb/box64/pull/2024 * [RV64_DYNAREC] Added more MMX opcodes for vector by @xctan in https://github.com/ptitSeb/box64/pull/2026 * [RV64_DYNAREC] Prefer AMO* instructions over LR/SC when possible by @ksco in https://github.com/ptitSeb/box64/pull/2028 * [RV64_DYNAREC] Added more MMX opcodes for vector by @xctan in https://github.com/ptitSeb/box64/pull/2027 * Update README.md by @Pro42good in https://github.com/ptitSeb/box64/pull/2022 * Minor adjustments to README, updated README_CN by @ksco in https://github.com/ptitSeb/box64/pull/2032 * [LA64] Implement convert x64_va_list_t to sysv_varargs for float (#2025) by @xiangzhai in https://github.com/ptitSeb/box64/pull/2031 * [DYNAREC] Added a experimental BOX64_DYNAREC_WEAKBARRIER option by @ksco in https://github.com/ptitSeb/box64/pull/2033 * [RV64_DYNAREC] Added more MMX opcodes for vector by @xctan in https://github.com/ptitSeb/box64/pull/2035 * [RV64_DYNAREC] Added more MMX opcodes for vector by @xctan in https://github.com/ptitSeb/box64/pull/2037 * [WRAPPER] Fixed myStackAlignGVariantNew and refined the test too by @ksco in https://github.com/ptitSeb/box64/pull/2038 * [WRAPPER]my_dbus_message_get_args() args type error by @liuli0217 in https://github.com/ptitSeb/box64/pull/2042 * [DYNAREC] Reworked strong memory emulation by @ksco in https://github.com/ptitSeb/box64/pull/2043 * [CI] Generate and upload .wcp file for Winlator by @ksco in https://github.com/ptitSeb/box64/pull/2045 * [ARM64_DYNAREC] Re-enable weakbarrier for dmb.ishst by @ksco in https://github.com/ptitSeb/box64/pull/2048 * [ARM64_DYNAREC] Added weakbarrier=2 to disable last write barriers by @ksco in https://github.com/ptitSeb/box64/pull/2049 * update pressure_vessel function with additional valid BOX86_LD_LIBRAR… by @theofficialgman in https://github.com/ptitSeb/box64/pull/2050 * [ARM64_DYNAREC] More optimizations on strongmem emulation by @ksco in https://github.com/ptitSeb/box64/pull/2051 * [DYNAREC] Reuse strongmem infra for all backends by @ksco in https://github.com/ptitSeb/box64/pull/2052 * [LA64_DYNAREC] Added more opcodes for JDK by @ksco in https://github.com/ptitSeb/box64/pull/2055 * Reworked on mmap address alignments for a performance regression by @ksco in https://github.com/ptitSeb/box64/pull/2057 * [WRAPPERHELPER] Added support to cast to enum by @rajdakin in https://github.com/ptitSeb/box64/pull/2061 * [RV64_DYNAREC] Minor optimizations on CMPXCHG by @ksco in https://github.com/ptitSeb/box64/pull/2062 * [ARM64_DYNAREC] Generate corresponding hint instruction for PAUSE by @ksco in https://github.com/ptitSeb/box64/pull/2063 * [RV64_DYNAREC] Added, fixed, and optimized opcodes by @xctan in https://github.com/ptitSeb/box64/pull/2059 * [CORE] Enhanced BOX64_DYNAREC_RV64NOEXT by @xctan in https://github.com/ptitSeb/box64/pull/2065 * [ARM64_DYNAREC] Use YIELD instead of WFE by @ksco in https://github.com/ptitSeb/box64/pull/2066 * Fix `#pragma once` handling in the wrapperhelper by @rajdakin in https://github.com/ptitSeb/box64/pull/2067 * [LA64_DYNAREC] Add adc8, adc8c, adc16 and testadc by @xiangzhai in https://github.com/ptitSeb/box64/pull/2069 * [ARM64_DYNAREC] Added DYNAREC_PAUSE option for hint instructions by @ksco in https://github.com/ptitSeb/box64/pull/2070 * Add the '--gst' option to the wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/2072 * [RBTREE] Document the rationale for memory management by @devarajabc in https://github.com/ptitSeb/box64/pull/2060 * [RV64_DYNAREC] Fixed vector SSE unpack opcodes by @xctan in https://github.com/ptitSeb/box64/pull/2074 * [RV64_DYNAREC] Fixed vector packed logical shift opcodes by @xctan in https://github.com/ptitSeb/box64/pull/2075 * [LA64_DYNAREC] Added SBB opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2076 * Fixed a parsing error in the wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/2079 * [WRAPPERHELPER] Accept and ignore semicolons instead of declarations by @rajdakin in https://github.com/ptitSeb/box64/pull/2081 * [RV64_DYNAREC] Fixed more regressions for vector by @ksco in https://github.com/ptitSeb/box64/pull/2082 * [LA64_DYNAREC] Added nativeflags option support by @ksco in https://github.com/ptitSeb/box64/pull/2084 * [RV64_DYNAREC] Fixed another regression in vector by @ksco in https://github.com/ptitSeb/box64/pull/2086 * [LA64_DYNAREC] Added LEA opcode by @xiangzhai in https://github.com/ptitSeb/box64/pull/2087 * [RV64_DYNAREC] Fix PTEST X_CF typo by @xiangzhai in https://github.com/ptitSeb/box64/pull/2088 * [WRAPPERHELPER] Transform from function to data if needed by @rajdakin in https://github.com/ptitSeb/box64/pull/2089 * [RV64] Added nan propagation emulation for interpreter and DynaRec by @ksco in https://github.com/ptitSeb/box64/pull/2091 * Android Long Double handling by @ptitSeb in https://github.com/ptitSeb/box64/pull/2101 * [LA64_DYNAREC] Added INSB, INSD, OUTSB and OUTSD opcodes by @xiangzhai in https://github.com/ptitSeb/box64/pull/2100 * [RV64_DYNAREC] Added simple opcodes fusion as "native flags" by @ksco in https://github.com/ptitSeb/box64/pull/2102 * [CMAKE] Fixed typos by @ksco in https://github.com/ptitSeb/box64/pull/2104 * [WRAPPER] Wrapped more symbols in libcrypto3 by @ksco in https://github.com/ptitSeb/box64/pull/2105 * [LA64_DYNAREC] Fixed sign extension of 8-bit immediate in 66 opcodes by @ksco in https://github.com/ptitSeb/box64/pull/2106 * [DYNAREC] Introduced TO_NAT to ease register mapping changes in future by @ksco in https://github.com/ptitSeb/box64/pull/2111 * [LA64_DYNAREC] Added HLT opcode by @xiangzhai in https://github.com/ptitSeb/box64/pull/2112 * [LA64_DYNAREC] Added XOR AX, Iw opcode by @xiangzhai in https://github.com/ptitSeb/box64/pull/2116 * [WRAPPERHELPER] Fixed a use-after-free issue by @rajdakin in https://github.com/ptitSeb/box64/pull/2118 * [DYNAREC] Fixed a typo which leads to regression by @ksco in https://github.com/ptitSeb/box64/pull/2121 ## New Contributors * @iv-m made their first contribution in https://github.com/ptitSeb/box64/pull/1670 * @Rippanda12 made their first contribution in https://github.com/ptitSeb/box64/pull/1681 * @wangguidong1999 made their first contribution in https://github.com/ptitSeb/box64/pull/1758 * @JunChi1022 made their first contribution in https://github.com/ptitSeb/box64/pull/1783 * @powpingdone made their first contribution in https://github.com/ptitSeb/box64/pull/1786 * @devarajabc made their first contribution in https://github.com/ptitSeb/box64/pull/1952 * @zymayunyan made their first contribution in https://github.com/ptitSeb/box64/pull/1984 * @jserv made their first contribution in https://github.com/ptitSeb/box64/pull/2005 * @xiangzhai made their first contribution in https://github.com/ptitSeb/box64/pull/2031 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.3.0...v0.3.2
## 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 https://github.com/ptitSeb/box64/pull/1518 * [LA64_DYNAREC] Fixed LOCK XCHG byte opcode fallback path by @ksco in https://github.com/ptitSeb/box64/pull/1519 * [LA64_DYNAREC] Fixed some non-lbt flags comutation issues by @ksco in https://github.com/ptitSeb/box64/pull/1520 * [LA64_DYNAREC] Fixed more issues here and there by @ksco in https://github.com/ptitSeb/box64/pull/1521 * Wrapped libpsl5 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1523 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1525 * [RV64_DYNAREC] Fixed LOCK XCHG byte opcode by @ksco in https://github.com/ptitSeb/box64/pull/1526 * [LA64_DYNAREC] Added CMPXCHG8B and CMPXCHG16B opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1527 * [LA64_DYNAREC] Added more opcodes and some fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1528 * Redirect pthread_yield to sched_yield by @ksco in https://github.com/ptitSeb/box64/pull/1529 * Workaround on a race condition on SDL_GetThreadID by @ksco in https://github.com/ptitSeb/box64/pull/1530 * Fix unclosed item list by @Coekjan in https://github.com/ptitSeb/box64/pull/1532 * Fix typo on box64 config file by @Coekjan in https://github.com/ptitSeb/box64/pull/1533 * [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in https://github.com/ptitSeb/box64/pull/1535 * Added more MMX opcodes and some optimizations too by @xctan in https://github.com/ptitSeb/box64/pull/1537 * Wrapped libssh2 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1538 * [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in https://github.com/ptitSeb/box64/pull/1539 * [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in https://github.com/ptitSeb/box64/pull/1542 * [LA64_DYNAREC] Fixed 0F C2 CMPPS opcode by @ksco in https://github.com/ptitSeb/box64/pull/1543 * [RV64_DYNAREC] Fixed LOCK CMPXCHG unaligned version by @ksco in https://github.com/ptitSeb/box64/pull/1544 * [LA64_DYNAREC] Added LOCK CMPXCHG unaligned version by @ksco in https://github.com/ptitSeb/box64/pull/1545 * Detects extensions even if dynarec is disabled at runtime by @ksco in https://github.com/ptitSeb/box64/pull/1546 * [INTERP] Rework on the 16b emulation for LA64 by @ksco in https://github.com/ptitSeb/box64/pull/1547 * [LA64_DYNAREC] Added more opcodes and fixed ADC opcode by @ksco in https://github.com/ptitSeb/box64/pull/1548 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1549 * Try to fix mmap64 already defined error in custommem.c by @rtissera in https://github.com/ptitSeb/box64/pull/1552 * [RV64_DYNAREC] Added more MMX opcodes and some optimizations too by @xctan in https://github.com/ptitSeb/box64/pull/1557 * [LA64_DYNAREC] Fixed emit_or16 by @ksco in https://github.com/ptitSeb/box64/pull/1559 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1558 * [LA64_DYNAREC] Fixed LOCK DEC opcode by @ksco in https://github.com/ptitSeb/box64/pull/1560 * Wrapped libp11-kit by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1562 * Wrapped libtasn1-6 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1563 * [RV64_DYNAREC] Fixed some opcodes caught by cosim by @xctan in https://github.com/ptitSeb/box64/pull/1561 * Wrapped libnettle8 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1567 * [RV64_DYNAREC] Fixed sign extension of 8-bit immediate in 66 opcodes by @xctan in https://github.com/ptitSeb/box64/pull/1568 * Update README.md by @Pro42good in https://github.com/ptitSeb/box64/pull/1572 * Update README.md by @Pro42good in https://github.com/ptitSeb/box64/pull/1573 * Wrapped libunistring2 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1577 * Wrapped libhogweed6 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1579 * Added more wrapped function to libunistring2 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1582 * Fixed some vulkan wrapper functions by @ksco in https://github.com/ptitSeb/box64/pull/1585 * [DYNAREC_RV64] Fixed 16bit LOCK ADD issue by @ksco in https://github.com/ptitSeb/box64/pull/1584 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1590 * Fixed some symbols not found error for libc and libresolv wrapping by @ksco in https://github.com/ptitSeb/box64/pull/1591 * Added more wrapped functions by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1593 * [RV64_DYNAREC] Fixed and refined F0 81,83 LOCK prefix opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1595 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1597 * [RV64_DYNAREC] Improved 0F AE opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1596 * Added more wrapped functions to gmp and idn2 by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1598 * [RV64_DYNAREC] Fixed potential issue of jump_to_next by @ksco in https://github.com/ptitSeb/box64/pull/1600 * Update arm64_immenc.c by @salt431 in https://github.com/ptitSeb/box64/pull/1602 * switch to maintained Pi-Apps-Coders apt repo by @theofficialgman in https://github.com/ptitSeb/box64/pull/1605 * Add missing wrappings for winewayland.so by @strobo5 in https://github.com/ptitSeb/box64/pull/1599 * [RV64_DYNAREC] Added unaligned support for F0 /5 LOCK SUB opcode by @ksco in https://github.com/ptitSeb/box64/pull/1607 * Wrapped pthread_cond_signal with aligned cond like others by @ksco in https://github.com/ptitSeb/box64/pull/1608 * [RCFILE] Added Goat Simulator profile by @ksco in https://github.com/ptitSeb/box64/pull/1609 * [RV64_DYNAREC] Fixed regression on D9 E5 FXAM opcode by @ksco in https://github.com/ptitSeb/box64/pull/1616 * Compile Dynarec With ARMv8-A ASM Flags without Hardware Profile on Android Builds Too by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1617 * small fix for ROR and ROL by @liuli0217 in https://github.com/ptitSeb/box64/pull/1618 * [RV64_DYNAREC] Detect vector extension by @ksco in https://github.com/ptitSeb/box64/pull/1619 * [RV64_DYNAREC] Added vector instructions emitter by @ksco in https://github.com/ptitSeb/box64/pull/1621 * Wrapped more functions by @ksco in https://github.com/ptitSeb/box64/pull/1624 * Wrapped libsqlite3 by @ksco in https://github.com/ptitSeb/box64/pull/1625 * Handle `.relr.dyn` section by @Coekjan in https://github.com/ptitSeb/box64/pull/1626 * Add missing func declaration: `get_first_jump_addr` by @Coekjan in https://github.com/ptitSeb/box64/pull/1627 * Updated box64.box64rc by @Pro42good in https://github.com/ptitSeb/box64/pull/1630 * [RV64_DYNAREC] Added DF default /4 opcode by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1631 * [RV64_DYNAREC] modify DF default /4 opcode by @zohanzephyr in https://github.com/ptitSeb/box64/pull/1633 * [RV64_DYNAREC] Added preliminary RVV infra and PXOR opcode for demonstration by @ksco in https://github.com/ptitSeb/box64/pull/1632 * [LA64_DYNAREC] Fixed F2 0F 70 PSHUFLW opcode by @ksco in https://github.com/ptitSeb/box64/pull/1634 * Wrap some functions for libc by @Coekjan in https://github.com/ptitSeb/box64/pull/1635 * Impl `sys_getpgrp` & `sys_getpgid` by @Coekjan in https://github.com/ptitSeb/box64/pull/1637 * [DYNAREC] Fixed IMUL sign extension issue by @ksco in https://github.com/ptitSeb/box64/pull/1639 * [VULKAN] Add Wrapped VK_KHR_android_surface by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1643 * Should not follow symlinks on `argv[0]` path resolution by @Coekjan in https://github.com/ptitSeb/box64/pull/1644 * [INTERPRETER] Added 64 66 8D opcode and fix 66 8D opcode by @factfinding in https://github.com/ptitSeb/box64/pull/1648 * Set last_ip to an unclean state at the end of CALL by @ksco in https://github.com/ptitSeb/box64/pull/1650 * Mask `rs2` when using `bext` instruction if `rex.w` is not set by @Coekjan in https://github.com/ptitSeb/box64/pull/1653 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1654 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1656 * [WRAPPED] Added NSS_Init by @rajdakin in https://github.com/ptitSeb/box64/pull/1657 * [LA64_DYNAREC] Fixed ADC/SBC usage by @ksco in https://github.com/ptitSeb/box64/pull/1658 * Fixes by @rajdakin in https://github.com/ptitSeb/box64/pull/1659 ## New Contributors * @Coekjan made their first contribution in https://github.com/ptitSeb/box64/pull/1532 * @rtissera made their first contribution in https://github.com/ptitSeb/box64/pull/1552 * @Pro42good made their first contribution in https://github.com/ptitSeb/box64/pull/1572 * @salt431 made their first contribution in https://github.com/ptitSeb/box64/pull/1602 * @strobo5 made their first contribution in https://github.com/ptitSeb/box64/pull/1599 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.2.8...v0.3.0
## 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](https://box86.org/2024/05/new-version-of-box64-v0-2-8-and-box86-v0-3-6/) ## Contributions * [DYNAREC_RV64] Fixed some bugs in x87 infra by @ksco in https://github.com/ptitSeb/box64/pull/1143 * [DYNAREC_RV64] Added FILD/FISTP i64 optimization by @ksco in https://github.com/ptitSeb/box64/pull/1145 * [RCFILE] Added FL64 Profile by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1149 * [WRAPPER] add dbus_message_iter_get_element_count auto wrapper by @liuli0217 in https://github.com/ptitSeb/box64/pull/1153 * [DYNAREC_RV64] Added more opcodes and fixes by @ksco in https://github.com/ptitSeb/box64/pull/1154 * [DYNAREC_RV64] Fixed some bugs in the dynarec for ETS2 by @ksco in https://github.com/ptitSeb/box64/pull/1155 * Cleanup some code by @xctan in https://github.com/ptitSeb/box64/pull/1157 * [DYNAREC_RV64] Added more opcodes for ets2 by @ksco in https://github.com/ptitSeb/box64/pull/1158 * [DYNAREC_RV64] Fixed shift masks for GI by @xctan in https://github.com/ptitSeb/box64/pull/1160 * [DYNAREC_RV64] Ported INT 3/29 from arm by @xctan in https://github.com/ptitSeb/box64/pull/1161 * [DYNAREC_RV64] Added more opcodes for ets2 by @ksco in https://github.com/ptitSeb/box64/pull/1162 * [INTERP] Added 64 66 39 CMP opcode (for #1156) by @ksco in https://github.com/ptitSeb/box64/pull/1166 * [DYNAREC_RV64] Added more opcodes for VMP-protected GI by @xctan in https://github.com/ptitSeb/box64/pull/1164 * [DYNAREC_RV64] Added more opcodes for VMP-protected GI by @xctan in https://github.com/ptitSeb/box64/pull/1168 * [RCFILE] Disable CALL/RET optimization for zoom (#1170) by @ksco in https://github.com/ptitSeb/box64/pull/1174 * [CMakelist] Remove a "#" by @Creeper-xie in https://github.com/ptitSeb/box64/pull/1173 * [WRAPPER] Added 4 more wrapped glib2 functions (for #1175) by @ksco in https://github.com/ptitSeb/box64/pull/1176 * [DYNAREC_RV64] Fixed a nasty bug in GETEX, but left optim opportunity for later by @ksco in https://github.com/ptitSeb/box64/pull/1178 * [MEMORY] Switched from a sparse array to a red-black tree by @rajdakin in https://github.com/ptitSeb/box64/pull/1180 * Remove FASTPAGE/HOTPAGE docs by @tristanmorgan in https://github.com/ptitSeb/box64/pull/1181 * [WRAPPERS] Add a `isSimpleWrapper` function for RV64 by @rajdakin in https://github.com/ptitSeb/box64/pull/1185 * [DYNAREC_RV64] Added CALL/RET optimization by @ksco in https://github.com/ptitSeb/box64/pull/1183 * expose minimal libxcb-xinput wrapper by @fbenkstein in https://github.com/ptitSeb/box64/pull/1192 * [DYNAREC_RV64] Fixed a wrong Zba optimization by @ksco in https://github.com/ptitSeb/box64/pull/1193 * [DYNAREC_RV64] Added more opcodes and fixed X87_PUSH/POP macros by @ksco in https://github.com/ptitSeb/box64/pull/1194 * [RV64_DYNAREC] Fixed 66 0F B6 MOVZX opcode by @xctan in https://github.com/ptitSeb/box64/pull/1196 * [RBTREE] Reverted memory tracking to 32 bits by @rajdakin in https://github.com/ptitSeb/box64/pull/1201 * [RV64_DYNAREC] Fixed 66 87 XCHG opcode by @xctan in https://github.com/ptitSeb/box64/pull/1198 * Fixes by @rajdakin in https://github.com/ptitSeb/box64/pull/1207 * [DYNAREC_RV64] Enable basic simple wrapper optimization by @ksco in https://github.com/ptitSeb/box64/pull/1215 * add optimize build flag for Jetson orin and xavier by @leonpano2006 in https://github.com/ptitSeb/box64/pull/1219 * Add 'BOX64_MMAP32' to help info by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1220 * [WRAPPERS] Fixed some typos in rebuild_wrappers.py by @xctan in https://github.com/ptitSeb/box64/pull/1227 * [X64LIBS] mbedtls libs by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1232 * system/box64.conf.cmake: change rule name to be box64 specific by @josch in https://github.com/ptitSeb/box64/pull/1233 * Added mknod syscall by @ksco in https://github.com/ptitSeb/box64/pull/1236 * When BOX64_VERSION is set, just print the version and exit by @josch in https://github.com/ptitSeb/box64/pull/1238 * [DOCS] Fix a typo in temrux building by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1240 * [WRAPPER] Regenerated the wrapper files by @rajdakin in https://github.com/ptitSeb/box64/pull/1241 * [X64EMU] Fix for linux clang by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1243 * [ANDROID] Fix GLib and GObject Library Names by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1247 * [DYNAREC_RV64] f23 and f24 are save in a same place by @factfinding in https://github.com/ptitSeb/box64/pull/1251 * Wrapped libraries refactor by @rajdakin in https://github.com/ptitSeb/box64/pull/1257 * [ANDROID] BOX64_SHOWBT Now show Emulated BT on Android by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1258 * more wrapped functions in libxcb-randr and libcap by @Coreforge in https://github.com/ptitSeb/box64/pull/1260 * [CI] Add Android Tests by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/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 https://github.com/ptitSeb/box64/pull/1270 * [DYNAREC_RV64] Added more opcodes and some minor optimizations by @ksco in https://github.com/ptitSeb/box64/pull/1272 * [LIBTOOL] Fixed my_pthread_attr_init by @ksco in https://github.com/ptitSeb/box64/pull/1274 * [DYNAREC_RV64] Minor OF flag fixes and optimizations for emit shift utils by @ksco in https://github.com/ptitSeb/box64/pull/1275 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1276 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1277 * [RV64_DYNAREC] Added 2 more 66 0F opcodes for test17 by @ksco in https://github.com/ptitSeb/box64/pull/1278 * [RV64_DYNAREC] Added all missing 66 0F opcodes for test17 by @ksco in https://github.com/ptitSeb/box64/pull/1281 * [RV64_DYNAREC] Added missing 0F 38 00 PSHUFB opcode for test23 by @ksco in https://github.com/ptitSeb/box64/pull/1282 * [RV64_INTERP] Comply CMPXCHG16B with dynarec by @ksco in https://github.com/ptitSeb/box64/pull/1288 * [RV64_DYNAREC] Optimized XOR Ew, Gw when Ew == Gw by @xctan in https://github.com/ptitSeb/box64/pull/1289 * [RV64_DYNAREC] Fixed RDTSC handling by @ksco in https://github.com/ptitSeb/box64/pull/1291 * [CI] Repeat until-pass for unstable platform by @ksco in https://github.com/ptitSeb/box64/pull/1292 * [RV64_INTERP] Added TSC freq support by @ksco in https://github.com/ptitSeb/box64/pull/1293 * LARCH64 dynarec by @factfinding in https://github.com/ptitSeb/box64/pull/1295 * [LONGAARCH_DYNAREC] Added 00...05 and 28...2D opcodes by @factfinding in https://github.com/ptitSeb/box64/pull/1297 * [CI] Added loongarch64 by @ksco in https://github.com/ptitSeb/box64/pull/1298 * [LA64_DYNAREC] Added some LBT instructions by @ksco in https://github.com/ptitSeb/box64/pull/1299 * [LA64_DYNAREC] Removed F_OF2 trick as it's unnecessary by @ksco in https://github.com/ptitSeb/box64/pull/1300 * [LA64_DYNAREC] Added basic LBT support, setup xMASK by @ksco in https://github.com/ptitSeb/box64/pull/1302 * [LA64_DYNAREC] Added LBT support to all implemented emit functions and fixed some typos by @ksco in https://github.com/ptitSeb/box64/pull/1303 * [LA64_DYNAREC] Added more opcodes and fixed more things by @ksco in https://github.com/ptitSeb/box64/pull/1304 * [LA64_DYNAREC] Added 1 more opcode and more fixes by @ksco in https://github.com/ptitSeb/box64/pull/1305 * [LA64_DYNAREC] Added 70-7F Jcc opcodes, refine printer and some fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1307 * [LA64_DYNAREC] Adopt to ARM64 way of CALL/RET optim since there is a dedicated register by @ksco in https://github.com/ptitSeb/box64/pull/1309 * [LA64_DYNAREC] Added more opcodes with CALL/RET optimization by @ksco in https://github.com/ptitSeb/box64/pull/1310 * [LA64_DYNAREC] Added CC native call support, fixed call_c by @ksco in https://github.com/ptitSeb/box64/pull/1312 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1313 * [LA64_DYNAREC] Added more and more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1314 * Added a warning on interpreter only build when DynaRec is available by @ksco in https://github.com/ptitSeb/box64/pull/1316 * [LA64_DYNAREC] Enable co-simulation and fixed an important issue by @ksco in https://github.com/ptitSeb/box64/pull/1317 * [LA64_DYNAREC] Added more opcodes and more fixes, SuperHexagon is working by @ksco in https://github.com/ptitSeb/box64/pull/1319 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1321 * [LA64_DYNAREC] Added more opcodes by @factfinding in https://github.com/ptitSeb/box64/pull/1322 * [WRAPPER] Fixed a typo in the signature of my___libc_start_main by @xctan in https://github.com/ptitSeb/box64/pull/1323 * [LA64_DYNAREC] Utilizing bitmanip instructions because they're great by @ksco in https://github.com/ptitSeb/box64/pull/1324 * [LA64] Detect the existence of LBT extension by @ksco in https://github.com/ptitSeb/box64/pull/1325 * [LA64_DYNAREC] Added more and more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1326 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1327 * [LA64_DYNAREC] Made eflags synchronization lazy by @ksco in https://github.com/ptitSeb/box64/pull/1329 * [LA64_DYNAREC] Added more opcodes and some fixes in the printer by @ksco in https://github.com/ptitSeb/box64/pull/1330 * [LA64_DYNAREC] Added more opcodes and some fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1331 * [LA64_DYNAREC] Added more opcodes and more instructions in emitter and printer by @ksco in https://github.com/ptitSeb/box64/pull/1332 * Added 2 pthread wraps by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1334 * [ARM64_DYNAREC] Fixed some typos by @ksco in https://github.com/ptitSeb/box64/pull/1336 * [RV64_DYNAREC] Added 66 0F 38 61 PCMPESTRI opcode and some refactors too by @ksco in https://github.com/ptitSeb/box64/pull/1337 * Fixed a warning by @ksco in https://github.com/ptitSeb/box64/pull/1335 * some gcrypt wrapping by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1338 * [ARM] Added immediate encoding by @rajdakin in https://github.com/ptitSeb/box64/pull/1340 * [LA64_DYNAREC] Added C1 /4 and /6 opcodes and some fix by @factfinding in https://github.com/ptitSeb/box64/pull/1341 * [ARM64_DYNAREC] Fixed a falsy optimization on PSHUFHW by @ksco in https://github.com/ptitSeb/box64/pull/1344 * [DYNAREC] Made shift operations handle count==0 more uniformly by @ksco in https://github.com/ptitSeb/box64/pull/1345 * [DYNAREC] Revert some fasly changes to the shift opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1346 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1354 * [LA64_DYNAREC] Added more opcodes and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/1355 * [LA64_DYNAREC] Added more LBT instructions to the printer by @ksco in https://github.com/ptitSeb/box64/pull/1356 * Update GH-Actions workflows to remove Node.js deprecation warning. by @tristanmorgan in https://github.com/ptitSeb/box64/pull/1359 * [LA64_DYNAREC] Added some FP/LSX/LASX instructions to the emitter by @ksco in https://github.com/ptitSeb/box64/pull/1374 * [LA64_DYNAREC] Added CMOVcc opcodes and some fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1375 * [REFACTOR] Refactor main.c by @Howard0o0 in https://github.com/ptitSeb/box64/pull/1362 * update clang-format for IFX and QUOTE by @f1yby in https://github.com/ptitSeb/box64/pull/1390 * [LA64_DYNAREC] Added basic SSE infra and 66 0F 6E MOVD opcode by @ksco in https://github.com/ptitSeb/box64/pull/1391 * Add BOX64_RCFILE variable by @olegos2 in https://github.com/ptitSeb/box64/pull/1392 * [LA64_DYNAREC] Fixed EBBACK by @ksco in https://github.com/ptitSeb/box64/pull/1399 * [LA64_DYNAREC] Added more SSE/SSE2 instructions by @ksco in https://github.com/ptitSeb/box64/pull/1400 * [RV64_DYNAREC] Fixed some issue with x87 stack managment (ported from ARM64) by @ksco in https://github.com/ptitSeb/box64/pull/1401 * Create libssl/libcrypto symlinks by @ksco in https://github.com/ptitSeb/box64/pull/1402 * Force the use of spaces in .clang-format by @ksco in https://github.com/ptitSeb/box64/pull/1406 * [RV64_DYNAREC] Add more opcodes by @LiZhuoheng-coder in https://github.com/ptitSeb/box64/pull/1405 * [RV64_DYNAREC] Add 1E/1F opcode by @LiZhuoheng-coder in https://github.com/ptitSeb/box64/pull/1407 * [RV64_DYNAREC] Added 0F 70 PSHUFW opcode by @ksco in https://github.com/ptitSeb/box64/pull/1408 * [LA64_DYNAREC] Added more SSE/SSE2 instructions by @factfinding in https://github.com/ptitSeb/box64/pull/1410 * [LA64_DYNAREC] Fixed SSE issues by @ksco in https://github.com/ptitSeb/box64/pull/1415 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1416 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1417 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1418 * [DYNAREC] Fixed REP opcodes for correct register state recovery by @ksco in https://github.com/ptitSeb/box64/pull/1420 * [LA64_DYNAREC] Fixed missing LBT path and more by @ksco in https://github.com/ptitSeb/box64/pull/1419 * [LA64_DYNAREC] Added more SSE/SSE2 instructions by @factfinding in https://github.com/ptitSeb/box64/pull/1421 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1422 * [LA64_DYNAREC] Added more opcode and fixes by @ksco in https://github.com/ptitSeb/box64/pull/1423 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1424 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1425 * [RV64_DYNAREC] Fixed various bugs in shift instructions by @xctan in https://github.com/ptitSeb/box64/pull/1426 * [LA64_DYNAREC] Fixed 0F A3 BT opcode by @ksco in https://github.com/ptitSeb/box64/pull/1427 * [LA64_DYNAREC] Refined MOV64 macros by @ksco in https://github.com/ptitSeb/box64/pull/1430 * Add Oxygen Not Included to box64rc by @sehraf in https://github.com/ptitSeb/box64/pull/1431 * [LA64_DYNAREC] Added more opcodes to the printer by @ksco in https://github.com/ptitSeb/box64/pull/1433 * [LA64_DYNAREC] Small fix on emit_or32c LBT path by @ksco in https://github.com/ptitSeb/box64/pull/1436 * [RV64_DYNAREC] Implementation of some CRC32 instructions by @kaixindeken in https://github.com/ptitSeb/box64/pull/1435 * [LA64_DYNAREC] Made the CALLRET optimization complete by @ksco in https://github.com/ptitSeb/box64/pull/1438 * [LA64_DYNAREC] Added more opcodes and fixed more issues by @ksco in https://github.com/ptitSeb/box64/pull/1439 * [RV64_DYNAREC] Fixed 66 C7 MOV opcode by @ksco in https://github.com/ptitSeb/box64/pull/1440 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1441 * [DYNAREC] Fixed shift xw macros by @ksco in https://github.com/ptitSeb/box64/pull/1443 * [LA64_DYNAREC] Added 1 more opcode and some fixes too by @ksco in https://github.com/ptitSeb/box64/pull/1444 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1447 * [RV64_DYNAREC] Added more opcodes by @LiZhuoheng-coder in https://github.com/ptitSeb/box64/pull/1451 * [DYNAREC] Fixed CF flag computation by @ksco in https://github.com/ptitSeb/box64/pull/1453 * Wrapped 1 more function for mpg123 by @ksco in https://github.com/ptitSeb/box64/pull/1454 * [RCFILE] Added Yandare Simulator Profile by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1459 * [DYNAREC] Fixed emit_shift functions and more by @ksco in https://github.com/ptitSeb/box64/pull/1466 * [RCFILE] Update weixin profile by @ksco in https://github.com/ptitSeb/box64/pull/1467 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1468 * [LA64_DYNAREC] Added more useful extensions detection by @ksco in https://github.com/ptitSeb/box64/pull/1469 * [LA64_DYNAREC] Added more opcodes and fixes by @ksco in https://github.com/ptitSeb/box64/pull/1472 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1473 * Fixed my_prepare_thread in dynarec build by @ksco in https://github.com/ptitSeb/box64/pull/1474 * [RV64_DYNAREC] Fixed DIV and IDIV for zero divisor by @xctan in https://github.com/ptitSeb/box64/pull/1476 * [COSIM] Added thread-safe tests by @ksco in https://github.com/ptitSeb/box64/pull/1477 * [LA64_DYNAREC] Fixed dynarec infra by @ksco in https://github.com/ptitSeb/box64/pull/1479 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1480 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1481 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1482 * [RV64_DYNAREC] Added some missing fastnan handling by @ksco in https://github.com/ptitSeb/box64/pull/1483 * [RV64_DYNAREC] Remove useless code by @ksco in https://github.com/ptitSeb/box64/pull/1484 * [DYNAREC][32BITS] Fixed and improved 66 prefix opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1485 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1486 * Added wrapping of libicuuc64 and libicui18n64 by @ksco in https://github.com/ptitSeb/box64/pull/1487 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1488 * [RV64_DYNAREC] Fixed OF flag computation by @ksco in https://github.com/ptitSeb/box64/pull/1489 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1490 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1491 * [DYNAREC] Small improvements to atomic functions by @ksco in https://github.com/ptitSeb/box64/pull/1492 * [DYNAREC_LA64] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1496 * [RV64_DYNAREC] Fix SIGABRT handling in x87cache testing by @kaixindeken in https://github.com/ptitSeb/box64/pull/1498 * [LA64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1503 * Added more symbols for libcrypto by @ksco in https://github.com/ptitSeb/box64/pull/1504 * [INTERPRETER] Fixed CMPXCHG16B opcode for la64 by @ksco in https://github.com/ptitSeb/box64/pull/1506 * [LA64_DYNAREC] Fixed LOCK ADD opcode by @ksco in https://github.com/ptitSeb/box64/pull/1507 * [LA64_DYNAREC] Fixed 66 0F 67 PACKUSWB opcode by @ksco in https://github.com/ptitSeb/box64/pull/1508 * [INTERPRETER] Added more opcodes and fixed some opcodes too by @ksco in https://github.com/ptitSeb/box64/pull/1511 * [ARM64_DYNAREC] Fixed PSLLD/PSLLQ opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1512 * [RV64_DYNAREC] Fixed some MMX opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1513 * [RV64] Made Zba and Xthead* detection mutually exclusive by @ksco in https://github.com/ptitSeb/box64/pull/1514 ## New Contributors * @fbenkstein made their first contribution in https://github.com/ptitSeb/box64/pull/1192 * @leonpano2006 made their first contribution in https://github.com/ptitSeb/box64/pull/1219 * @factfinding made their first contribution in https://github.com/ptitSeb/box64/pull/1251 * @Coreforge made their first contribution in https://github.com/ptitSeb/box64/pull/1260 * @Howard0o0 made their first contribution in https://github.com/ptitSeb/box64/pull/1362 * @f1yby made their first contribution in https://github.com/ptitSeb/box64/pull/1390 * @olegos2 made their first contribution in https://github.com/ptitSeb/box64/pull/1392 * @sehraf made their first contribution in https://github.com/ptitSeb/box64/pull/1431 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.2.6...v0.2.8
## 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 vrsion 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 https://github.com/ptitSeb/box64/pull/942 * [ARM64_DYNAREC] Added 0F F1/F3/F7 opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/941 * Allow running at NULL, and trigger a segfault (backport from box86 5cdc1b9fa2238938e49176fcd937a1294c55a03d ) by @rafael2k in https://github.com/ptitSeb/box64/pull/948 * Added (66) 0F 2A/2C/2D opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/951 * [ARM64_DYNAREC] Added some opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/959 * [ANDROID] Try to create an Android build, porting box86 Android build by @ptitSeb in https://github.com/ptitSeb/box64/pull/962 * [ARM64_DYNAREC] Added some opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/964 * Update README_CN.md by @shenmo7192 in https://github.com/ptitSeb/box64/pull/968 * [RV64_DYNAREC] Added thead vendor extension detection by @ksco in https://github.com/ptitSeb/box64/pull/969 * [DYNAREC_RV64] Added support for xtheadba by @ksco in https://github.com/ptitSeb/box64/pull/970 * [CI] Test RISCV with bit-manipulation extensions on by @ksco in https://github.com/ptitSeb/box64/pull/972 * [CI] Upgrade QEMU to 8.1.0 by @ksco in https://github.com/ptitSeb/box64/pull/973 * [RV64_DYNAREC] Added some support for XTheadBb extension by @ksco in https://github.com/ptitSeb/box64/pull/977 * Fixed a typo in README.md by @Jai-JAP in https://github.com/ptitSeb/box64/pull/983 * [CI] Use qemu snapshots from archlinux archive by @ksco in https://github.com/ptitSeb/box64/pull/987 * [CI] Run tests w/ and w/o DynaRec by @ksco in https://github.com/ptitSeb/box64/pull/988 * [RV64_DYNAREC] Added more support for XTheadBb extension by @ksco in https://github.com/ptitSeb/box64/pull/989 * Add SDL_RenderWindowToLogical and SDL_SetSurfaceColorMod wrapped functions for #939 by @seeschloss in https://github.com/ptitSeb/box64/pull/991 * [RV64_DYNAREC] Added more support for XTheadBs extension by @ksco in https://github.com/ptitSeb/box64/pull/993 * Update dynarec_arm64_emit_math.c by @liuli0217 in https://github.com/ptitSeb/box64/pull/994 * [RV64_DYNAREC] Added more support for XTheadMemPair extension by @ksco in https://github.com/ptitSeb/box64/pull/995 * [ANDROID] Remove PreInit Array Warning and Fix libdl name by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1001 * Add mbrtoc32 wrapped function for dfhack (fixes a dfhack crash, see #939) by @seeschloss in https://github.com/ptitSeb/box64/pull/1003 * Add __sF, __assert2 Symbol and set PThread Symbols on libc by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1004 * [ANDROID] Fix Most Library Names by @KreitinnSoftware in https://github.com/ptitSeb/box64/pull/1005 * Add c32rtomb wrapped function for dfhack (fixes console, part of issue #939) by @seeschloss in https://github.com/ptitSeb/box64/pull/1008 * Added Snapdragon 8 Gen 2 profile by @strongtz in https://github.com/ptitSeb/box64/pull/1009 * [ARM64_DYNAREC] Take dynarec64_DA into account by @AndreRH in https://github.com/ptitSeb/box64/pull/1014 * [RV64_DYNAREC] Fix a build warning by @ksco in https://github.com/ptitSeb/box64/pull/1020 * Add a new vulkan extension: VK_KHR_maintenance5 by @strongtz in https://github.com/ptitSeb/box64/pull/1021 * [WRAPPER] Added missing function signature by @ksco in https://github.com/ptitSeb/box64/pull/1024 * [DYNAREC] Fix x87cache issues by @ksco in https://github.com/ptitSeb/box64/pull/1025 * [CI] Do not regenerate functions list when running in CI by @ksco in https://github.com/ptitSeb/box64/pull/1028 * [COSIM] Fix x87 testing by @ksco in https://github.com/ptitSeb/box64/pull/1029 * fix emit_sar32c() ZF maybe set error. by @liuli0217 in https://github.com/ptitSeb/box64/pull/1034 * [INTERP] Fix fpu_round by @ksco in https://github.com/ptitSeb/box64/pull/1030 * [WRAPPER] Fixed my_mmap64 on MAP_FIXED handling, helps wine 8.18 by @ksco in https://github.com/ptitSeb/box64/pull/1039 * [DYNAREC_RV64] Fixed opcode DB /5 FLD tbyte (for #871) by @ksco in https://github.com/ptitSeb/box64/pull/1040 * [DYNAREC_RV64] Fixed x87 FCOMI opcodes (for #872) by @ksco in https://github.com/ptitSeb/box64/pull/1041 * [WRAPPER] Fixed my_execl by @wannacu in https://github.com/ptitSeb/box64/pull/1044 * [ELFLOADER] Fixed align issue (may help #1057) by @ksco in https://github.com/ptitSeb/box64/pull/1058 * [COSIM] Fix GO_TRACE by @ksco in https://github.com/ptitSeb/box64/pull/1059 * [RV64_DYNAREC] Added a few opcodes for minipad2.exe by @ksco in https://github.com/ptitSeb/box64/pull/1061 * [RV64_DYNAREC] [32BITS] Added more opcodes for minipad2.exe by @ksco in https://github.com/ptitSeb/box64/pull/1062 * ADLINK with Ampere by @joespeed in https://github.com/ptitSeb/box64/pull/1069 * Change blokc size to 64kb by @Raezroth in https://github.com/ptitSeb/box64/pull/1071 * [RV64_DYNAREC] Fixed zbb andn optimization by @ksco in https://github.com/ptitSeb/box64/pull/1074 * [RV64_DYNAREC] Added FD STD, fixed FC CLD and F3 A4 REP MOVSB (for minipad2) by @ksco in https://github.com/ptitSeb/box64/pull/1075 * [RV64_DYNAREC] Added 64 8F POP & 67 66 89 MOV opcodes (for minipad2.exe) by @ksco in https://github.com/ptitSeb/box64/pull/1076 * [DYNAREC_RV64] Fixed FCOMP opcode by @ksco in https://github.com/ptitSeb/box64/pull/1080 * [DYNAREC_RV64] Added more opcode for minipad2.exe by @ksco in https://github.com/ptitSeb/box64/pull/1081 * [DYNAREC_RV64] Fixed BTS BTR BTC for zbs extension by @ksco in https://github.com/ptitSeb/box64/pull/1084 * [CMAKE] Add WITH_MOLD option by @ksco in https://github.com/ptitSeb/box64/pull/1085 * [SIGNAL] Fixed copyUCTXreg2Emu by @ksco in https://github.com/ptitSeb/box64/pull/1086 * [DYNAREC_RV64] Fixed emit_ror32 by @ksco in https://github.com/ptitSeb/box64/pull/1087 * [ANDROID] Added missing wrappedandroidshmem def headers by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1088 * [DOCS] Add mold usage to COMPILE.md by @kaixindeken in https://github.com/ptitSeb/box64/pull/1089 * [DYNAREC_RV64] Fixed BTS BTR BTC again by @ksco in https://github.com/ptitSeb/box64/pull/1090 * [ANDROID] Fix Compiling by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1091 * [ANDROID] Use TERMUX Define Instead ANDROID by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1093 * [WRAPPERS] Added fallback glXSwapIntervalEXT function if not present by @ksco in https://github.com/ptitSeb/box64/pull/1092 * [ANDROID] Fix Clang Compiling by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1094 * [ANDROID]Fix Termux installation path by @Creeper-xie in https://github.com/ptitSeb/box64/pull/1095 * [DYNAREC_RV64] Added missing fallbacks in x87 opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1096 * [DYNAREC][INTERPRETER] Rework on 6C/6D/6E/6F opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1098 * [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in https://github.com/ptitSeb/box64/pull/1099 * [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in https://github.com/ptitSeb/box64/pull/1100 * Fix spelling in README.md by @JulianGro in https://github.com/ptitSeb/box64/pull/1101 * [DOCS] Termux Compiling by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1102 * [TERMUX] Added faked wrapped termux-exec and simplified output by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1103 * [TERMUX] Fix make install by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1106 * [TERMUX] Fix debian packaging by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1107 * [DOCS] Added missing library for #1108 by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1109 * [TERMUX] Fix loading box64rc and lib x86_64-linux-gnu path on termux by @Creeper-xie in https://github.com/ptitSeb/box64/pull/1110 * [DOCS] Updated termux building instructions by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1113 * [DYNAREC_RV64] Refine printer and add support for Zb* extensions by @ksco in https://github.com/ptitSeb/box64/pull/1115 * [DYNAREC_RV64] Added more dasm support for thead extensions by @ksco in https://github.com/ptitSeb/box64/pull/1118 * [DOCS] Updated TERMUX Building by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1121 * [DYNAREC_RV64] Use a temporary solution to get things to work by @ksco in https://github.com/ptitSeb/box64/pull/1122 * [DYNAREC_RV64] Added unaligned support for some LOCK opcodes by @ksco in https://github.com/ptitSeb/box64/pull/1123 * [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in https://github.com/ptitSeb/box64/pull/1126 * [DYNAREC_RV64] Added more and more opcodes for flatout.exe by @ksco in https://github.com/ptitSeb/box64/pull/1128 * [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in https://github.com/ptitSeb/box64/pull/1132 * [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in https://github.com/ptitSeb/box64/pull/1133 * [DYNAREC_RV64] Added more opcodes for flatout.exe by @ksco in https://github.com/ptitSeb/box64/pull/1134 * fix emit_shr16 by @liuli0217 in https://github.com/ptitSeb/box64/pull/1135 * [LIBRARIES] Fixed lowercase libXrandr lib call by @mcagabe19 in https://github.com/ptitSeb/box64/pull/1137 * Raspberry Pi 5 support by @sundhaug92 in https://github.com/ptitSeb/box64/pull/1138 * [ARM64_DYNAREC] fix emit_shld16(c) by @liuli0217 in https://github.com/ptitSeb/box64/pull/1141 * Fix raspi5 building by @mcagabe19no2fa in https://github.com/ptitSeb/box64/pull/1142 ## New Contributors * @liuli0217 made their first contribution in https://github.com/ptitSeb/box64/pull/942 * @rafael2k made their first contribution in https://github.com/ptitSeb/box64/pull/948 * @shenmo7192 made their first contribution in https://github.com/ptitSeb/box64/pull/968 * @seeschloss made their first contribution in https://github.com/ptitSeb/box64/pull/991 * @KreitinnSoftware made their first contribution in https://github.com/ptitSeb/box64/pull/1001 * @joespeed made their first contribution in https://github.com/ptitSeb/box64/pull/1069 * @Raezroth made their first contribution in https://github.com/ptitSeb/box64/pull/1071 * @mcagabe19 made their first contribution in https://github.com/ptitSeb/box64/pull/1088 * @Creeper-xie made their first contribution in https://github.com/ptitSeb/box64/pull/1095 * @JulianGro made their first contribution in https://github.com/ptitSeb/box64/pull/1101 * @sundhaug92 made their first contribution in https://github.com/ptitSeb/box64/pull/1138 * @mcagabe19no2fa made their first contribution in https://github.com/ptitSeb/box64/pull/1142 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.2.4...v0.2.6
## 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 https://github.com/ptitSeb/box64/pull/547 * Rv64 dynarec by @ptitSeb in https://github.com/ptitSeb/box64/pull/550 * [RV64_DYNAREC] Added 29 SUB opcode by @ksco in https://github.com/ptitSeb/box64/pull/553 * [RV64_DYNAREC] Added (81/83) SUB opcode by @ksco in https://github.com/ptitSeb/box64/pull/554 * [RV64_DYNAREC] Added 8B MOV opcode by @xctan in https://github.com/ptitSeb/box64/pull/555 * [RV64_DYNAREC] Fixed scratch register conflict for SUB by @ksco in https://github.com/ptitSeb/box64/pull/556 * [RV64_DYNAREC] Added 31 XOR opcode by @ksco in https://github.com/ptitSeb/box64/pull/560 * [RV64_DYNAREC] Small optimization for 31 XOR opcode by @ksco in https://github.com/ptitSeb/box64/pull/561 * [RV64_DYNAREC] Added C1 /7 SAR opcode by @xctan in https://github.com/ptitSeb/box64/pull/559 * [RV64_DYNAREC] Added 85 TEST opcode by @ksco in https://github.com/ptitSeb/box64/pull/563 * [RV64_DYNAREC] Added {81,83} /0 ADD opcode by @xctan in https://github.com/ptitSeb/box64/pull/564 * [RV64_DYNAREC] Added 39 CMP opcode and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/565 * [RV64_DYNAREC] Added C6 MOV opcode by @ksco in https://github.com/ptitSeb/box64/pull/566 * [RV64_DYNAREC] Added 80 /7 CMP opcode by @ksco in https://github.com/ptitSeb/box64/pull/567 * [RV64_DYNAREC] Added F3 0F 1E NOP opcode by @ksco in https://github.com/ptitSeb/box64/pull/570 * [RV64_DYNAREC] Optimize MOV64 emitter by @ksco in https://github.com/ptitSeb/box64/pull/572 * [RV64_DYNAREC] Added {C1,D1} /{5,7} opcode and some fixes by @xctan in https://github.com/ptitSeb/box64/pull/569 * [RV64_DYNAREC] Added 01 ADD opcode by @xctan in https://github.com/ptitSeb/box64/pull/573 * [RV64_DYNAREC] Added (81/83) /7 CMP opcode by @ksco in https://github.com/ptitSeb/box64/pull/571 * [RV64_DYNAREC] Added 98 CWDE opcode by @xctan in https://github.com/ptitSeb/box64/pull/574 * [RV64_DYNAREC] Added 68 PUSH opcode by @xctan in https://github.com/ptitSeb/box64/pull/575 * [RV64_DYNAREC] Added C1 /(4/6) SHL opcode by @ksco in https://github.com/ptitSeb/box64/pull/577 * [RV64_DYNAREC] Added 3B CMP opcode by @xctan in https://github.com/ptitSeb/box64/pull/578 * [RV64_DYNAREC] Added 0F AF IMUL opcode by @ksco in https://github.com/ptitSeb/box64/pull/579 * [RV64_DYNAREC] Added 2B SUB opcode by @xctan in https://github.com/ptitSeb/box64/pull/580 * [RV64_DYNAREC] Added 03 ADD opcode by @xctan in https://github.com/ptitSeb/box64/pull/582 * Enable test for RV64 and ARM64 in CI by @ksco in https://github.com/ptitSeb/box64/pull/583 * [CI] Avoid copying files by @ksco in https://github.com/ptitSeb/box64/pull/584 * [RV64_DYNAREC] A8 TEST opcode by @ksco in https://github.com/ptitSeb/box64/pull/586 * [RV64_DYNAREC] Added 33 XOR opcode by @ksco in https://github.com/ptitSeb/box64/pull/587 * [RV64_DYNAREC] Fixed B6 MOVZX opcode by @ksco in https://github.com/ptitSeb/box64/pull/588 * [RV64_DYNAREC] Fixed 63 MOVSXD opcode by @ksco in https://github.com/ptitSeb/box64/pull/589 * [RV64_DYNAREC] Fixed BF MOVSX opcode by @ksco in https://github.com/ptitSeb/box64/pull/590 * Added FF /0 INC opcode by @xctan in https://github.com/ptitSeb/box64/pull/592 * [RV64_DYNAREC] Added more opcode by @ksco in https://github.com/ptitSeb/box64/pull/591 * [RV64_DYNAREC] Added 80 /4 AND opcode by @ksco in https://github.com/ptitSeb/box64/pull/594 * [RV64_DYNAREC] Added 80 /3 SBB opcode by @ksco in https://github.com/ptitSeb/box64/pull/597 * [RV64_DYNAREC] Added 66 3D CMP opcode by @ksco in https://github.com/ptitSeb/box64/pull/598 * [RV64_DYNAREC] Added 66 89 MOV opcode by @ksco in https://github.com/ptitSeb/box64/pull/599 * [RV64_DYNAREC] Added more opcode by @ksco in https://github.com/ptitSeb/box64/pull/600 * [RV64_DYNAREC] Added {21,23} AND opcode by @xctan in https://github.com/ptitSeb/box64/pull/602 * [RV64_DYNAREC] Added C0 /{4,5,6,7} opcode by @xctan in https://github.com/ptitSeb/box64/pull/601 * [RV64_DYNAREC] Added 6B IMUL opcode by @xctan in https://github.com/ptitSeb/box64/pull/603 * [RV64_DYNAREC] Added F0 0F C1 LOCK XADD opcode by @ksco in https://github.com/ptitSeb/box64/pull/604 * [RV64_DYNAREC] Added 19 SBB opcode by @ksco in https://github.com/ptitSeb/box64/pull/605 * [RV64_DYNAREC] Fixed lr.d and sc.d instruction name in printer by @xctan in https://github.com/ptitSeb/box64/pull/606 * [RV64_DYNAREC] Added B0 MOV opcode and small optim by @xctan in https://github.com/ptitSeb/box64/pull/607 * [RV64_DYNAREC] Added some opcodes by @xctan in https://github.com/ptitSeb/box64/pull/608 * [RV64_DYNAREC] Added AB STOSD opcode by @ksco in https://github.com/ptitSeb/box64/pull/611 * [RV64_DYNAREC] Added more opcode by @ksco in https://github.com/ptitSeb/box64/pull/612 * [RV64_DYNAREC] Fixed 88 MOV opcode by @ksco in https://github.com/ptitSeb/box64/pull/613 * [RV64_DYNAREC] Added more opcodes by @xctan in https://github.com/ptitSeb/box64/pull/614 * [RV64_DYNAREC] Added more opcodes by @xctan in https://github.com/ptitSeb/box64/pull/617 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/618 * [RV64_DYNAREC] Added more opcodes and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/619 * docs/COMPILE.md: Use trusted.gpg.d by @sevan in https://github.com/ptitSeb/box64/pull/620 * [RV64_DYNAREC] Fixed register name of float load/store in printer by @xctan in https://github.com/ptitSeb/box64/pull/621 * [RV64_DYNAREC] Added A5 REP MOVSD opcode by @ksco in https://github.com/ptitSeb/box64/pull/622 * [ARM64_DYNAREC] Fixed UFLAG_OP12 helper macro by @ksco in https://github.com/ptitSeb/box64/pull/623 * [RV64_DYNAREC] Fixed F7 /6 DIV opcode by @ksco in https://github.com/ptitSeb/box64/pull/624 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/625 * Update README by @ksco in https://github.com/ptitSeb/box64/pull/626 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/628 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/629 * [RV64_DYNAREC] Added more opcodes and optimize printer output by @xctan in https://github.com/ptitSeb/box64/pull/630 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/631 * [RV64_DYNAREC] Added more opcodes & some fixes & some optimizations by @ksco in https://github.com/ptitSeb/box64/pull/632 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/633 * [RV64_DYNAREC] Fixed minor issues by @ksco in https://github.com/ptitSeb/box64/pull/636 * Latest batch of PKGBUILD updates by @Jai-JAP in https://github.com/ptitSeb/box64/pull/637 * [RV64_DYNAREC] Fixes and some optims by @ksco in https://github.com/ptitSeb/box64/pull/638 * fix some spelling mistakes by @josch in https://github.com/ptitSeb/box64/pull/640 * add manual page in pod format by @josch in https://github.com/ptitSeb/box64/pull/641 * [RV64_DYNAREC] Added D8 /0 FADD opcode by @xctan in https://github.com/ptitSeb/box64/pull/642 * [RV64_DYNAREC] Added more D8 opcodes by @xctan in https://github.com/ptitSeb/box64/pull/646 * [RV64_DYNAREC] Fixed issues caught by newly added cosim framework by @ksco in https://github.com/ptitSeb/box64/pull/645 * [RV64_DYNAREC] Fixed more issues caught by cosim by @ksco in https://github.com/ptitSeb/box64/pull/647 * [RV64_DYNAREC] Added some 66 0F Pxxx opcodes by @ksco in https://github.com/ptitSeb/box64/pull/650 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/651 * [RV64_DYNAREC] Added DF F0+i FCOMIP and DF /0 FILD opcodes by @xctan in https://github.com/ptitSeb/box64/pull/649 * [RV64_DYNAREC] Added 0F 2E,2F opcode & some fixes in printer by @ksco in https://github.com/ptitSeb/box64/pull/653 * [RV64_DYNAREC] Added more SS opcodes by @ksco in https://github.com/ptitSeb/box64/pull/654 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/655 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/656 * Add wrapperhelper from box86 by @Jai-JAP in https://github.com/ptitSeb/box64/pull/657 * First pass toward a better wrapper helper by @rajdakin in https://github.com/ptitSeb/box64/pull/658 * [RV64_DYNAREC] Added some DE opcodes by @xctan in https://github.com/ptitSeb/box64/pull/659 * [RV64_DYNAREC] Added more opcodes for Stardew Valley by @ksco in https://github.com/ptitSeb/box64/pull/660 * [RV64_DYNAREC] Small fixes caught by cosim by @ksco in https://github.com/ptitSeb/box64/pull/661 * [RV64_DYNAREC] Reverted changes to GETED and fixed emit_and32* by @ksco in https://github.com/ptitSeb/box64/pull/663 * [RV64_DYNAREC] Added 0F BA /4 BT opcode & some fixes by @ksco in https://github.com/ptitSeb/box64/pull/664 * [RV64_DYNAREC] Added more opcodes for Stardew Valley by @ksco in https://github.com/ptitSeb/box64/pull/666 * [INTERP] Added 66 0F 2B MOVNTPD opcode & fixed some edge cases by @ksco in https://github.com/ptitSeb/box64/pull/668 * [RV64_DYNAREC] Added more opcodes from SSE tests by @ksco in https://github.com/ptitSeb/box64/pull/669 * CMakeLists: Allow installation without any config files by @fredldotme in https://github.com/ptitSeb/box64/pull/670 * [RV64_DYNAREC] Added more opcodes for Stardew Valley by @ksco in https://github.com/ptitSeb/box64/pull/671 * [RV64_DYNAREC] Added more SSE opcodes for Stardew Valley by @ksco in https://github.com/ptitSeb/box64/pull/672 * [RV64_DYNAREC] Added more opcodes for Stardew Valley and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/673 * [RV64_DYNAREC] Added more opcodes for Stardew Valley and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/674 * [RV64_DYNAREC] Added more opcodes for SV and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/676 * [TESTS] Disable compiler optimizations for test17 and some related fixes by @ksco in https://github.com/ptitSeb/box64/pull/677 * [RV64_DYNAREC] Small optim for F2 0F 5D MINSD opcode by @ksco in https://github.com/ptitSeb/box64/pull/678 * [RV64_DYNAREC] Added more 66 0F opcode for SV by @ksco in https://github.com/ptitSeb/box64/pull/680 * add missing \ to debian rules by @ryanfortner in https://github.com/ptitSeb/box64/pull/681 * [RV64_DYNAREC] Added more opcode for SV and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/683 * [RV64_DYNAREC] Added more opcodes for SV by @ksco in https://github.com/ptitSeb/box64/pull/684 * [RV64_DYNAREC] Fixed emit_sub8/16 by @ksco in https://github.com/ptitSeb/box64/pull/685 * [RV64_DYNAREC] Added more opcodes for SV, some fixes & optims also by @ksco in https://github.com/ptitSeb/box64/pull/686 * [RV64_DYNAREC] Added more opcodes for SV by @xctan in https://github.com/ptitSeb/box64/pull/687 * Fixed broken in-project links by @ksco in https://github.com/ptitSeb/box64/pull/689 * [RV64_DYNAREC] Add more opcodes for SV by @ksco in https://github.com/ptitSeb/box64/pull/688 * exclude libstdc++.so.5 in dh_shlibdeps by @amazingfate in https://github.com/ptitSeb/box64/pull/692 * [RV64_DYNAREC] Added more opcodes for SV by @xctan in https://github.com/ptitSeb/box64/pull/693 * [RV64_DYNAREC] Added more opcodes for SV and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/694 * [RV64_DYNAREC] Added 0F AE /0,/1 opcodes by @ksco in https://github.com/ptitSeb/box64/pull/696 * [RV64_DYNAREC] Added more 66 0F opcodes for SV and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/697 * [TESTS] Make test09 deterministic by @ksco in https://github.com/ptitSeb/box64/pull/698 * [RV64_DYNAREC] Added more opcodes for SV by @xctan in https://github.com/ptitSeb/box64/pull/699 * [RV64_DYNAREC] Added more opcodes for SV by @ksco in https://github.com/ptitSeb/box64/pull/700 * [WRAPPER] Fixed a libFLAC func wrapper (for #701) by @ksco in https://github.com/ptitSeb/box64/pull/702 * [WRAPPER] Fixed mpg123 wrapper by @ksco in https://github.com/ptitSeb/box64/pull/704 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/705 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/706 * [WRAPPER] Added more fontconfig wrapped functions by @ksco in https://github.com/ptitSeb/box64/pull/708 * [ELF] Fixed a use-after-free issue by @ksco in https://github.com/ptitSeb/box64/pull/709 * [RV64_DYNAREC] Added more opcode and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/710 * [RV64_DYNAREC] Added more opcodes by @xctan in https://github.com/ptitSeb/box64/pull/712 * Fixed a broken link in README by @ksco in https://github.com/ptitSeb/box64/pull/713 * [RV64_DYNAREC] Fixed some bugs by @ksco in https://github.com/ptitSeb/box64/pull/714 * [RV64_DYNAREC] Remove 66 0F 3A 0B ROUNDSD opcode for now by @ksco in https://github.com/ptitSeb/box64/pull/715 * [RV64_DYNAREC] Added more opcodes and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/716 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/717 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/718 * Added more gtk3 wrapped functions by @LiZhuoheng-coder in https://github.com/ptitSeb/box64/pull/720 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/719 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/721 * [WRAPPER] Fix my___vsnprintf_chk by @xctan in https://github.com/ptitSeb/box64/pull/722 * [RV64_DYNAREC] Added A1/A2/A3 MOV opcodes by @ksco in https://github.com/ptitSeb/box64/pull/723 * [RV64_DYNAREC] Added more opcodes for SV by @xctan in https://github.com/ptitSeb/box64/pull/726 * Added more gtk3 wrapped functions by @LiZhuoheng-coder in https://github.com/ptitSeb/box64/pull/727 * Added more gtk3 wrapped functions by @LiZhuoheng-coder in https://github.com/ptitSeb/box64/pull/731 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/730 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/733 * [RV64_DYNAREC] Added more 66 0F opcodes by @ksco in https://github.com/ptitSeb/box64/pull/734 * Added support for builtin type distinction (long/long long) by @rajdakin in https://github.com/ptitSeb/box64/pull/735 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/736 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/737 * [RV64_DYNAREC] Added more opcodes by @xctan in https://github.com/ptitSeb/box64/pull/739 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/743 * [DYNAREC_RV64] Fixed 8F POP opcode by @ksco in https://github.com/ptitSeb/box64/pull/746 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/745 * [RV64_DYNAREC] Added more opcodes by @xctan in https://github.com/ptitSeb/box64/pull/747 * [RV64_DYNAREC] Added 66 64 8B MOV opcode by @ksco in https://github.com/ptitSeb/box64/pull/749 * [RV64_DYNAREC] Added more opcodes by @xctan in https://github.com/ptitSeb/box64/pull/751 * [RV64_DYNAREC] Added more opcodes for Bastion and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/753 * [RV64_DYNAREC] Fixed 66 0F C6 SHUFPD opcode by @xctan in https://github.com/ptitSeb/box64/pull/756 * [RV64_DYNAREC] Added more opcodes for Unciv by @ksco in https://github.com/ptitSeb/box64/pull/757 * [RV64_DYNAREC] Added more opcode for Unciv and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/759 * [RV64_DYNAREC] Added some AES opcodes by @ksco in https://github.com/ptitSeb/box64/pull/761 * Added some mpg123 wrapped functions by @ksco in https://github.com/ptitSeb/box64/pull/762 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/764 * [RV64_DYNAREC] Fixed 66 0F 3A 0B ROUNDSD opcode by @xctan in https://github.com/ptitSeb/box64/pull/765 * [RV64_DYNAREC] Fixed typos in (67) 88 MOV opcode by @ksco in https://github.com/ptitSeb/box64/pull/767 * [WRAPPER] Used RunFunctionFmt for better sign-extend handling by @ksco in https://github.com/ptitSeb/box64/pull/768 * Added link to Wine guide, fixed link to Chinese readme by @Ilya114 in https://github.com/ptitSeb/box64/pull/773 * [RV64_DYNAREC] Added more opcodes and a small fix by @ksco in https://github.com/ptitSeb/box64/pull/774 * [RV64_DYNAREC] Added more opcodes and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/775 * Added 1 libx11 symbol for #758 by @ksco in https://github.com/ptitSeb/box64/pull/776 * [ARM64_DYNAREC] Remove redundant code by @ksco in https://github.com/ptitSeb/box64/pull/777 * [RV64_DYNAREC] Added more opcodes and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/778 * [RV64_DYNAREC] Added more 0F MMX opcodes and some fixes by @ksco in https://github.com/ptitSeb/box64/pull/780 * [DYNAREC] Fix jump table not free on exit by @kaixindeken in https://github.com/ptitSeb/box64/pull/781 * [RV64_DYNAREC] Forget mmx float reg only needed by @ksco in https://github.com/ptitSeb/box64/pull/782 * [RV64_DYNAREC] Use the new x9 scratch register by @ksco in https://github.com/ptitSeb/box64/pull/784 * [RV64_DYNAREC] Added some missing fixes on GETEX by @ksco in https://github.com/ptitSeb/box64/pull/785 * [WRAPPER] Added 1 more symbol for libc (for #787) by @ksco in https://github.com/ptitSeb/box64/pull/788 * [WRAPPER] Fixed stack align on varargs (for #789) by @ksco in https://github.com/ptitSeb/box64/pull/790 * [WRAPPER] Added vwprintf (for #793) by @ksco in https://github.com/ptitSeb/box64/pull/794 * [WRAPPER] Added 4 more libc dprintf wrappers by @ksco in https://github.com/ptitSeb/box64/pull/798 * [RV64_DYNAREC] Fixed 66 0F 38 2B PACKUSDW opcode by @ksco in https://github.com/ptitSeb/box64/pull/802 * [RV64_DYNAREC] Fixed 66 0F CMOV opcodes by @ksco in https://github.com/ptitSeb/box64/pull/804 * [RV64_DYNAREC] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/806 * [WRAPPER] Added some wayland function wrappers by @ksco in https://github.com/ptitSeb/box64/pull/807 * [RV64_DYNAREC] Added F3 0F B8 POPCNT opcode and fixed LOCK CMPXCHG16B for ML2 by @xctan in https://github.com/ptitSeb/box64/pull/808 * [RV64_DYNAREC] Fixed geted32 by @ksco in https://github.com/ptitSeb/box64/pull/811 * [RV64_DYNAREC] Fixed 6B IMUL opcode by @ksco in https://github.com/ptitSeb/box64/pull/812 * [RV64_DYNAREC] Added F0 80 /1 LOCK OR opcode for ICEY by @xctan in https://github.com/ptitSeb/box64/pull/815 * [RV64_DYNAREC] Added more opcodes for ICEY by @xctan in https://github.com/ptitSeb/box64/pull/816 * [RV64_DYNAREC] Small optim on GETGX/GETGM helper macros by @ksco in https://github.com/ptitSeb/box64/pull/817 * [ARM64_DYNAREC] Fixed PUSH rsp when double pushing by @ksco in https://github.com/ptitSeb/box64/pull/821 * [DYNAREC] Fixed native_fprem by @ksco in https://github.com/ptitSeb/box64/pull/822 * [DYNAREC] Fixed call_c issues by @ksco in https://github.com/ptitSeb/box64/pull/823 * [DYNAREC_RV64] Fixed 9x SETcc opcodes by @ksco in https://github.com/ptitSeb/box64/pull/824 * [WRAPPER] Added some more libc wrappers by @ksco in https://github.com/ptitSeb/box64/pull/826 * [INTERPRETER] Added 66 0F 38 37 PCMPGTQ opcode by @ksco in https://github.com/ptitSeb/box64/pull/827 * [DYNAREC_RV64] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/828 * [WRAPPER] Added more libicu wrapped functions (for #829) by @ksco in https://github.com/ptitSeb/box64/pull/831 * ryanfortner's package now has a different name by @mio-19 in https://github.com/ptitSeb/box64/pull/834 * [WRAPPER] Rework on libharfbuzz wrapper by @ksco in https://github.com/ptitSeb/box64/pull/836 * Reduce duplication of compile instructions by @xDoge26 in https://github.com/ptitSeb/box64/pull/837 * [WRAPPER] Added more symbols for openssl wrapper by @ksco in https://github.com/ptitSeb/box64/pull/847 * [WRAPPER] Added more gtk functions by @ksco in https://github.com/ptitSeb/box64/pull/849 * [32BITS] Use 32-bit types to compute 32-bit addresses. by @julliard in https://github.com/ptitSeb/box64/pull/851 * [INTERP] Added more opcodes by @ksco in https://github.com/ptitSeb/box64/pull/852 * [WRAPPER] Added more symbols for nss3 by @ksco in https://github.com/ptitSeb/box64/pull/853 * [DYNAREC_RV64] Small optim to FLAGS_ADJUST_TO11 by @ksco in https://github.com/ptitSeb/box64/pull/854 * [DYNAREC_RV64] Fixed a typo by @ksco in https://github.com/ptitSeb/box64/pull/855 * [32BITS][DYNAREC] Added basic 32 bits RV64 support by @ksco in https://github.com/ptitSeb/box64/pull/856 * A few cosmetic fixes by @julliard in https://github.com/ptitSeb/box64/pull/858 * [32BTIS][DYNAREC_RV64] Added support for 32bits by @ksco in https://github.com/ptitSeb/box64/pull/861 * [DYNAREC_RV64] Fixed A0 MOV AL,Ob by @ksco in https://github.com/ptitSeb/box64/pull/866 * [32BITS][RV64_DYNAREC] Hanlding of STll struct in FILD/FISTP by @ksco in https://github.com/ptitSeb/box64/pull/868 * [DYNAREC] Fix push rsp instruction by @julliard in https://github.com/ptitSeb/box64/pull/875 * A few Push/Pop fixes and cleanups by @julliard in https://github.com/ptitSeb/box64/pull/878 * [WRAPPER HELPER] Improve Record Parsing by @wannacu in https://github.com/ptitSeb/box64/pull/880 * Cleaner wrapper generator script by @rajdakin in https://github.com/ptitSeb/box64/pull/889 * Update package name in COMPILE.md by @ryanfortner in https://github.com/ptitSeb/box64/pull/894 * remove executable bits by @josch in https://github.com/ptitSeb/box64/pull/896 * add /usr/x86_64-linux-gnu/lib to the shared library search path by @josch in https://github.com/ptitSeb/box64/pull/901 * Use CMAKE_SYSTEM_PROCESSOR instead of CMAKE_HOST_SYSTEM_PROCESSOR by @josch in https://github.com/ptitSeb/box64/pull/902 * Ukrainian translate of README by @Ilya114 in https://github.com/ptitSeb/box64/pull/908 * Little fixes by @Ilya114 in https://github.com/ptitSeb/box64/pull/909 * [RV64_DYNAREC] Added more opcodes for Yuzu by @xctan in https://github.com/ptitSeb/box64/pull/911 * Add missing curly brackets by @AndreRH in https://github.com/ptitSeb/box64/pull/919 * Spelling fixes by @AndreRH in https://github.com/ptitSeb/box64/pull/920 * [ARM64_DYNAREC] Fixed BT/BTC/BTR/BTS opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/922 * Add a new vulkan extension: VK_EXT_descriptor_buffer by @strongtz in https://github.com/ptitSeb/box64/pull/923 * [RV64_DYNAREC] Added movbe opcode by @wannacu in https://github.com/ptitSeb/box64/pull/926 * [ARM64_DYNAREC] Correct PF caculation by @wannacu in https://github.com/ptitSeb/box64/pull/928 * Added some opcode by @wannacu in https://github.com/ptitSeb/box64/pull/929 * [RV64_DYNAREC] Added E0/E1/E2/E3 opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/934 * Fixed wild pointer error for my_context->elfs while calling my___libc_start_main by @kaixindeken in https://github.com/ptitSeb/box64/pull/937 * Added some opcodes by @wannacu in https://github.com/ptitSeb/box64/pull/936 ## New Contributors * @xctan made their first contribution in https://github.com/ptitSeb/box64/pull/555 * @sevan made their first contribution in https://github.com/ptitSeb/box64/pull/620 * @josch made their first contribution in https://github.com/ptitSeb/box64/pull/640 * @amazingfate made their first contribution in https://github.com/ptitSeb/box64/pull/692 * @LiZhuoheng-coder made their first contribution in https://github.com/ptitSeb/box64/pull/720 * @Ilya114 made their first contribution in https://github.com/ptitSeb/box64/pull/773 * @kaixindeken made their first contribution in https://github.com/ptitSeb/box64/pull/781 * @mio-19 made their first contribution in https://github.com/ptitSeb/box64/pull/834 * @xDoge26 made their first contribution in https://github.com/ptitSeb/box64/pull/837 * @AndreRH made their first contribution in https://github.com/ptitSeb/box64/pull/919 * @strongtz made their first contribution in https://github.com/ptitSeb/box64/pull/923 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.2.2...v0.2.4
## 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 * update debian changelog for 0.2.0 release by @ryanfortner in https://github.com/ptitSeb/box64/pull/474 * Add support for Rpi3 on 64-bit ARM (aarch64) by @neildavis in https://github.com/ptitSeb/box64/pull/494 * more swap for rpi3 by @colin-i in https://github.com/ptitSeb/box64/pull/499 * use sighandler_t instead of __sighandler_t so it compiles for musl by @stevenvandenbrandenstift in https://github.com/ptitSeb/box64/pull/500 * [BOX64RC] add EMULATED_LIBS for dontstarve_steam_x64 by @q4a in https://github.com/ptitSeb/box64/pull/502 * Update x64emu.c by @RainbowC0 in https://github.com/ptitSeb/box64/pull/507 * Changes for Alpine by @RainbowC0 in https://github.com/ptitSeb/box64/pull/508 * Fixed parameter order for BOX64_DYNAREC_HOTPAGE env parsing. by @tristanmorgan in https://github.com/ptitSeb/box64/pull/511 * D3dadapter9 support (Galliumnine) by @ptitSeb in https://github.com/ptitSeb/box64/pull/515 * wrapped: Wrap two more gsettings functions by @fredldotme in https://github.com/ptitSeb/box64/pull/518 * wrap _XAsyncErrorHandler by @alyssarosenzweig in https://github.com/ptitSeb/box64/pull/521 * [DYNAREC] Fix a couple of typos by @julliard in https://github.com/ptitSeb/box64/pull/526 * Steamwebhelper compatibility by @ptitSeb in https://github.com/ptitSeb/box64/pull/534 * [RISCV] Get pc from ucontext_t for RV64 by @ksco in https://github.com/ptitSeb/box64/pull/536 * [ARM64] Fixed a typo in arm64_lock_incif0 by @ksco in https://github.com/ptitSeb/box64/pull/543 * [DYNAREC] Simplify arm64 lock file by @ksco in https://github.com/ptitSeb/box64/pull/544 ## New Contributors * @neildavis made their first contribution in https://github.com/ptitSeb/box64/pull/494 * @colin-i made their first contribution in https://github.com/ptitSeb/box64/pull/499 * @stevenvandenbrandenstift made their first contribution in https://github.com/ptitSeb/box64/pull/500 * @q4a made their first contribution in https://github.com/ptitSeb/box64/pull/502 * @RainbowC0 made their first contribution in https://github.com/ptitSeb/box64/pull/507 * @tristanmorgan made their first contribution in https://github.com/ptitSeb/box64/pull/511 * @alyssarosenzweig made their first contribution in https://github.com/ptitSeb/box64/pull/521 * @julliard made their first contribution in https://github.com/ptitSeb/box64/pull/526 * @ksco made their first contribution in https://github.com/ptitSeb/box64/pull/536 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.2.0...v0.2.2
## 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 * update debian changelog for 0.2.0 release by @ryanfortner in https://github.com/ptitSeb/box64/pull/474 * Add support for Rpi3 on 64-bit ARM (aarch64) by @neildavis in https://github.com/ptitSeb/box64/pull/494 * more swap for rpi3 by @colin-i in https://github.com/ptitSeb/box64/pull/499 * use sighandler_t instead of __sighandler_t so it compiles for musl by @stevenvandenbrandenstift in https://github.com/ptitSeb/box64/pull/500 * [BOX64RC] add EMULATED_LIBS for dontstarve_steam_x64 by @q4a in https://github.com/ptitSeb/box64/pull/502 * Update x64emu.c by @RainbowC0 in https://github.com/ptitSeb/box64/pull/507 * Changes for Alpine by @RainbowC0 in https://github.com/ptitSeb/box64/pull/508 * Fixed parameter order for BOX64_DYNAREC_HOTPAGE env parsing. by @tristanmorgan in https://github.com/ptitSeb/box64/pull/511 * D3dadapter9 support (Galliumnine) by @ptitSeb in https://github.com/ptitSeb/box64/pull/515 * wrapped: Wrap two more gsettings functions by @fredldotme in https://github.com/ptitSeb/box64/pull/518 * wrap _XAsyncErrorHandler by @alyssarosenzweig in https://github.com/ptitSeb/box64/pull/521 * [DYNAREC] Fix a couple of typos by @julliard in https://github.com/ptitSeb/box64/pull/526 * Steamwebhelper compatibility by @ptitSeb in https://github.com/ptitSeb/box64/pull/534 * [RISCV] Get pc from ucontext_t for RV64 by @ksco in https://github.com/ptitSeb/box64/pull/536 * [ARM64] Fixed a typo in arm64_lock_incif0 by @ksco in https://github.com/ptitSeb/box64/pull/543 * [DYNAREC] Simplify arm64 lock file by @ksco in https://github.com/ptitSeb/box64/pull/544 ## New Contributors * @neildavis made their first contribution in https://github.com/ptitSeb/box64/pull/494 * @colin-i made their first contribution in https://github.com/ptitSeb/box64/pull/499 * @stevenvandenbrandenstift made their first contribution in https://github.com/ptitSeb/box64/pull/500 * @q4a made their first contribution in https://github.com/ptitSeb/box64/pull/502 * @RainbowC0 made their first contribution in https://github.com/ptitSeb/box64/pull/507 * @tristanmorgan made their first contribution in https://github.com/ptitSeb/box64/pull/511 * @alyssarosenzweig made their first contribution in https://github.com/ptitSeb/box64/pull/521 * @julliard made their first contribution in https://github.com/ptitSeb/box64/pull/526 * @ksco made their first contribution in https://github.com/ptitSeb/box64/pull/536 **Full Changelog**: https://github.com/ptitSeb/box64/compare/v0.2.0...v0.2.2