Releases: ptitSeb/box86
Releases · ptitSeb/box86
v0.3.6
What's Changed
=> Speedup dynarec, and allow the use of BIGBLOCK 2 or 3 combined with CALLRET on more software
- Wrapping: More libs and function wrapping (gtk3, vulkan...)
- Reworked X11 Callback handling, for better stability
- Reworked exit and the load/unload of libs
- Some more profiles in box86rc
- More SSE3+ opcodes in dynarec
- 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
- PageSize detection and handling dynamic. Larger than 4K pagesize will be handled automaticaly.
- Lots of improvments in x87 handling (virtual stack, rounding, ffree, etc.)
More details in New release blog
Contributions
- Add more info about neon vfpv3 to COMPILE.md by @mocsy in #917
- box86rc: additional compatibility flags for UE3 based games by @airidosas252 in #921
- Wrap png_set_flush for libpng16 by @ValdikSS in #925
- More wrappers by @ValdikSS in #926
- Added build flags for Jetson Orin and xavier by @leonpano2006 in #928
- [CI] Update NDK to 25b for Android Builds by @KreitinnSoftware in #929
- Fix for xavier and orin no ARM_DYNAREC by @leonpano2006 in #930
- fix if(_aarch64 for TEGRA_194 and TEGRA_234 by @leonpano2006 in #931
- again quick fix(i alreadey made meny mistakes) by @leonpano2006 in #932
- Update getopts @GLIBC_2.0 variables (optarg, ...) by @ValdikSS in #933
- Add forgotten GOM definition for _dl_find_object wrapper in libdl by @ValdikSS in #938
- [WRAPPER] Fixed a typo in the signature of my___libc_start_main by @xctan in #941
- [DYNAREC] Fixed 66 C1 /5 SHR opcode. by @Chenhoyog in #946
- Fix rounding of some x87 instructions by @Hagb in #951
- Set rounding mode for some rounding functions of libm by @Hagb in #953
- update X86WINE, libxxf86vm1:armhf by @mio-19 in #955
- feat: add BOX86_RCFILE support by @shenmo7192 in #960
New Contributors
- @mocsy made their first contribution in #917
- @airidosas252 made their first contribution in #921
- @ValdikSS made their first contribution in #925
- @leonpano2006 made their first contribution in #928
- @xctan made their first contribution in #941
- @Chenhoyog made their first contribution in #946
- @Hagb made their first contribution in #951
- @shenmo7192 made their first contribution in #960
Full Changelog: v0.3.4...v0.3.6
v0.3.4
What's Changed
=> Mostly a stability update with improved elfloader again, and added SSE 4.2 support (still need to work on the Dynarec part of this)
=> Some work also to reduce the memory footprint
- X86Libs: Updated libstdc++ & libgcc_s
- X86Libs: Use x86 version of libunwind (it's needed by wine)
- Dynarec: Fixed some flags propagation issues inside blocks
- Dynarec: Improved Strong Memory Model emulation, introducing a 3rd level
- CPU: Remoworked how INT, priviliged opcodes and teh Trace flags works
- CPU: Added full support for SSE4.2
- ElfLoader: rework how elf memory is handled
- 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 for ADLink Ampere Altra
- OS: Added profile to build for Android and Termux.
Contributions
- Fixed typo in README.md by @Jai-JAP in #864
- [ANDROID] Fix Most Library Names by @KreitinnSoftware in #868
- [ANDROID] Fix libdl.so library name by @KreitinnSoftware in #869
- [ANDROID] Remove PreInit Array Warning and Fixed libc name when calle… by @KreitinnSoftware in #871
- Add fstatat, use --image-base instead of -Ttext-segment on Clang, and Fix PreInit Array Warning for Android by @KreitinnSoftware in #874
- Added wrapped symbol posix_spawn_file_actions_addclose to libc by @KreitinnSoftware in #881
- Backport of 64mb block size change from box64 by @Raezroth in #886
- [ANDROID] Fix Compiling by @mcagabe19 in #893
- [ANDROID] Fix Clang Compiling by @mcagabe19 in #894
- [ANDROID]Fix Termux installation path by @Creeper-xie in #895
- [TERMUX] Fix Building by @mcagabe19 in #897
- [MAIN] Making same as box64 output and fix termux make install by @mcagabe19 in #898
- [TERMUX] Fix debian packaging by @mcagabe19 in #899
- [TERMUX] Some fixes by @mcagabe19 in #900
- [CMAKE] Enable Re-Building Wrappers in TERMUX build by @mcagabe19 in #901
- [TERMUX] Complex math fix in libm by @mcagabe19 in #905
- [ANDROID] Fix pthread_mutex_destroy called on destroyed mutex by @KreitinnSoftware in #909
New Contributors
- @KreitinnSoftware made their first contribution in #868
- @Raezroth made their first contribution in #886
- @mcagabe19 made their first contribution in #893
- @Creeper-xie made their first contribution in #895
Full Changelog: v0.3.2...v0.3.4
v0.3.2
What's Changed
=> Mostly a stability update with improved elfloader, fixed opcodes and refined profiles
- Better syscall handling
- Fixed some wrapped functions, added some others
- Introduced another wrapper helper
- Added some more opcodes
- Added a cosimulation mode (to compare the behaviour of the dynarec against the interpreter)
- Added support of FASTNAN for some more opcodes
- Reduced memory footprint
- Added BOX86_NOSANDBOX (adds an argument to the command line)
- Added an ukrainian translation
Contributions
- add -dnogit=1 flag to debian rules by @ryanfortner in #778
- Fix ARM64 Compile Instructions by @Fancy2209 in #779
- steam: install additional libraries to suppress wrong ELF class errors by @Moldytzu in #784
- steam: install mesa for armhf if present for arm64 by @Moldytzu in #786
- install_steam.sh: More deps by @sevan in #790
- docs/COMPILE.md: Use trusted.gpg.d by @sevan in #792
- Fix libjpeg62 wrapping error by @wannacu in #793
- Add a tool to generate wrapping library by @wannacu in #803
- Latest Batch of PKGBUILDS by @Jai-JAP in #804
- add missing \ to debian rules by @ryanfortner in #812
- add NO_LIB_INSTALL and NO_CONF_INSTALL by @josch in #822
- Remove dynablocklist by @ptitSeb in #824
- -noreactlogin deleted from Steam by @Ilya114 in #825
- fix typo by @mio-19 in #831
- Clean up of the rebuild_wrappers script by @rajdakin in #843
- Ukrainian translate of README by @Ilya114 in #845
- Fix links in README's by @Ilya114 in #846
New Contributors
- @Fancy2209 made their first contribution in #779
- @sevan made their first contribution in #790
- @josch made their first contribution in #822
- @Ilya114 made their first contribution in #825
- @mio-19 made their first contribution in #831
Full Changelog: v0.3.0...v0.3.2
v0.3.0
What's Changed
- Added rcfile handling: box86 now read
/etc/box86.box86rc
and~/.box86rc
and apply per process parameters
=> Every program can be finetuned, for speed or just to make them work - Added BOX86_DYNAREC_FORWARD to allow bigger Dynarec block to be build
- Refactored Strong Memory Model emulation (faster and more accurate)
- Box86 now return a custom name for the CPU instal of P4, build with Box86 and the cpu name it's running on
- Improved memory protection tracking and signal handling, again
- More wrapped libs (especially on the gtk familly)
- More wrapped functions
- Added support for CreateDeviceEx in d3dadapter9, for better gallium nine support
- Improved dladdr/dladdr1 wrapped function
- Some fixes to flags handling in the Dynarec on some special cases
- Added specific suppport for RK3588 board (needed some hack in signal handling, probably due to the use of a non mainlined kernel)
- 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)
Contributions
- Docs: Add note about installing the correct package from my apt repo on arm64. by @Itai-Nelken in #727
- Fix typos in README.md by @Jai-JAP in #729
- update debian pkg changelog for 0.2.8 release by @ryanfortner in #733
- Ignore steam dbus warning by @ChisBread in #737
- Add some instructions. by @ye-yeshun in #738
- [BOX86RC] add EMULATED_LIBS for dontstarve_steam by @q4a in #756
- Bug and warning fixes by @rajdakin in #758
- Fix some wrapping error by @wannacu in #771
- Fix some errors by @wannacu in #776
- Fix some wrapping error by @wannacu in #777
New Contributors
- @ChisBread made their first contribution in #737
- @q4a made their first contribution in #756
Full Changelog: v0.2.8...v0.3.0
v0.2.8
What's Changed
- Wrapped more vulkan function, dxvk 2.0 now works
- Added support for overriden malloc/free functions
- Improved elf loader
- Improved dlsym handling with RTLD_NEXT
- Added BOX86_DYNAREC_SAFEFLAGS to allow finetuning Dynarec generated code handling of flags accross function calls and returns.
- Added BOX86_BASH to setup x86 bash binary, so shell script can be run in x86 world
- Added BOX86_ROLLING_LOG to have details log only on crash
- Improved TLS Size handling (Unity3D games now works)
- Improved
execv
family of function to have better box86 integration - Added a few more wrapped libs, like FAudio
- Improved gtk, SDL2, GL, vulkan (and more) wrapping
- Improved Signal Handling and memory protection traking
- Added some basic support for statically linked program. Thread are not working yet, but memory allocation and file access does.
- Highlights:
=> with the use of the new SafeFlags, some C# Windows program now runs fine (it's forced when the Vara family of software is detected)
=> With the basic support of statcaly linked program, old emulator like modeler for linux works. Program with threads like mugen for linux still doesn't
=> The bash integration is usefull for device with no binfmt integration or for script that check the machine it's running on
Contributions
- add LX2160A config by @lizthegrey in #612
- Grammar and formatting COMPILE.md by @Radiicall in #615
- Update README.md by @everypizza1 in #617
- docs: add instructions for Debian-based Linux by @ryanfortner in #622
- Fix typoes in readme by @ryanfortner in #621
- Various improvements to install_steam.sh by @ryanfortner in #620
- docs: remove unnecessary newline by @ryanfortner in #624
- fix: the first parameter of realpath may be null by @ye-yeshun in #630
- Add 6 wrapped function to libdrm, and 2 to libexpat. by @cjy880927 in #632
- Fix #610 by @rajdakin in #634
- some floating point instructions by @ye-yeshun in #637
- Fix Typo in readme x86_64 -> x86 by @Jai-JAP in #642
- Fix grammar by @Jai-JAP in #645
- Test wine preload by @ptitSeb in #649
- Align address when call mprotect by @wannacu in #651
- Added 66 0F 7D HSUBPD opcode by @wannacu in #652
- add TEGRAX1 and TEGRAX1ARM32 targets on ubuntu-18.04 by @theofficialgman in #654
- automatically install 32 bit libraries if 64 bit OS is detected in install_steam.sh by @Moldytzu in #659
- mention gcc-arm-linux-gnueabihf in compile.md by @Moldytzu in #660
- Add libc6:armhf install to RPi4 aarch64 build info by @WheezyE in #685
- Updated wine install for RPiOS bullseye 32/64bit by @WheezyE in #689
- Add atomic add opcodes by @Trass3r in #695
- steam: disable modern login and pass arguments to client by @Moldytzu in #700
- Modify sizeof(instsize_t) to 1 byte by @liuli0217 in #721
- Add MOV GS:od, AL by @liuli0217 in #722
New Contributors
- @lizthegrey made their first contribution in #612
- @Radiicall made their first contribution in #615
- @everypizza1 made their first contribution in #617
- @cjy880927 made their first contribution in #632
- @theofficialgman made their first contribution in #654
- @Trass3r made their first contribution in #695
- @liuli0217 made their first contribution in #721
Full Changelog: v0.2.6...v0.2.8
v0.2.6
What's Changed
- Added an option to get generated -NAN on SSE2 operation
- Many small fixes and improvement to get steam and SteamPlay working (along with box64)
- Added some workaround for program calling uname to mimic x86 system
- Added some more Vulkan extensions
- Added some granularity to mmap64, and generic memory protection tracking improvment, to mimic x86 system (for wine stagging and proton)
- Better clone syscall and libc implementation
- Improved wrapping of GTK libs
- More wrapped libs (more gtk libs, like gstreamer-1.0 among other non-gtk libs too)
- More wrapped functions(with some tricky one, like dladdr1)
- Some fixes and improvment to some wrapped functions
- Refactor Dynarec:
- better handling of SSE/x87 registers
- optimisation to limit float/double conversion
- better handling of "internal" jump inside a dynablock
- Improved elfloader
- Improved some tests
- A few fixes in some Dynarec opcodes
- Don't quit on unsupported syscall, return -1 / ENOSYS error
- A bit more optimisation in some Dynarec opcodes
Contributions
- [DOC] Chinese doc and some typo fix by @Seas0 in #504
- Fix broken link in pkgbuilds by @Moldytzu in #505
- Improve readme by @ryanfortner in #508
- Chores: Chinese doc refine and some code refine by @Seas0 in #517
- Move all _GNU_SOURCE defination to the file head by @Seas0 in #526
- Making ctest -j$(nproc) work as intended and fix a typo in github action configuration by @Seas0 in #536
- Some improvement on Github Action configuration by @Seas0 in #539
- Fix rk3399 PKGBUILD by @asppsa in #542
- Don't use cross-compile GCC on 32-bit systems by @asppsa in #541
- Update PKGBUILD files to match rk3399 one by @asppsa in #543
- Remove temporary test output file by @Seas0 in #546
- Minor fix in action configuration by @Seas0 in #547
- Fix Android build by @io12 in #551
- Add Android builds to GitHub Actions by @io12 in #553
- Add Debian packaging files by @ryanfortner in #555
- Various packaging improvements by @ryanfortner in #556
- Make postinst script failsafe by @MichaIng in #563
- [ImgBot] Optimize images by @MichaIng in #564
- Add note to use box64 to run x86_64 applications by @WheezyE in #573
- Update CMakeLists.txt by @Mzed3D in #579
- Added dummy wrapped libharfbuzz and libcairo-gobject by @wannacu in #582
- Added wrapped libvkd3d by @wannacu in #583
- Add some function wrapper of libx11 by @wannacu in #585
- [DYNAREC] Added check of dyn's size by @wannacu in #589
- Update PKGBUILDS by @Jai-JAP in #605
- Fix pkgver in PKGBUILDS by @Jai-JAP in #611
New Contributors
v0.2.4
What's Changed
- Some work on Dynarec to limit the number of mutex use, and also allow smaller block to be built (for JIT'd programs)
- Introduce BOX86_DYNAREC_STRONGMEM, like with box64 (not found any program that needs that yet)
- More vulkan wrapped function (so dkvk works, at least with RX550)
- Reworked Elfloader part, with better handling of versionned symbols
- Improve speed for x87 code (by avoiding many float<->double conversion)
- Improve speed of the custom allocator used by dynarec and Hash (speedup loading)
- Added a detection of box64 in uname call, to expose an x86_64 system instead of i386 one
- Added a fix for linking box86 on system using glibc 2.34+
- A few more wrapped libs
- More ARM hardware option in CMake (Phytium, SD845)
- Changed a bit struture of Dynarec, switching some operations from Pass1 to Pass0
- Small fixes to elfloader
- Some fixes and improvments on wrapped libs (mainly gtk2, gtk3 and d3dadpter)
- Better VSyscall implementation
- Fixed the "Alternate" handling (address shadowing on x86 side)
- A few opcodes border case fixes
- Improved wrapper helpers (from rajdakin)
- Added a mecanism to cancel a Dynarec block construction if it triggers a segfault (instead of a crash)
- Improvment to the handling of longjmp inside signal handlers
Contributions
- Fix bolded 'Notes about Wine' section in readme by @WheezyE in #391
- Fix typo in README by @JinShil in #402
- Update X86WINE.md with cosmetic edits by @WheezyE in #403
- Added wrapped libv4l2.so.0 by @wannacu in #409
- Update COMPILE.md by @WheezyE in #411
- Update archlinux/* by @Jai-JAP in #420
- Set the internal vtable for D3D9 structs by @icecream95 in #422
- Add a couple stubs for SDL 2.0.14 & Fix ld-linux.so wrapper for ppcle by @lifning in #427
- [DYNAREC] Added 66 0F 38 06 opcode by @wannacu in #432
- Fixed INC/DEC (for lazy flags) by @piz-ewing in #434
- move LICENSE back to root by @ryanfortner in #444
- Upgrade of the rebuild_wrappers script (and a bit more) by @rajdakin in #449
- use GOM to wrap FT_Outline_Decompose (libfreetype) by @wannacu in #450
- add 'palignr' 'psignw' 'lzcnt' instructions. by @ye-yeshun in #451
- fix LDS and LES by @ye-yeshun in #454
- General fixes and definitions for GO Advance clones by @JohnnyonFlame in #455
- Note for Tegra users by @Heasterian in #458
- Add Snapdragon 845 compilation by @Heasterian in #480
- Update CMakeLists.txt by @Heasterian in #484
- Add A64 profile by @Danct12 in #488
- compiling instructions for Tinker Board 1/1S by @Moldytzu in #490
- Fixed some ARM instructions in the printer by @rajdakin in #494
- chores: adding auto build via Github Action and some typo fix by @Seas0 in #500
- Adding missing macro for Tokitori 2+ patch to fix compile error … by @Seas0 in #501
New Contributors
- @JinShil made their first contribution in #402
- @lifning made their first contribution in #427
- @piz-ewing made their first contribution in #434
- @ye-yeshun made their first contribution in #451
- @JohnnyonFlame made their first contribution in #455
- @Heasterian made their first contribution in #458
- @Danct12 made their first contribution in #488
v0.2.2
What's Changed
- Reworked some elfloader relocation mecanism
- Removed old "smart linker" and replace with a simple "jump table"
- Also removed CALL/RET optomisation from Dynarec, simple Jump Table is faster
- Reworked all memory protection tracking
- A few more wrapped libs and wrapped functions
- A few more opcodes
- A few more dynarec opcodes
- Some optimisation in Dynarec around ZF and CF flags handlings, and LL/GE/LE/G conditionnal opcodes
- Some changes to the "cancel threads" handling
- Some changes to the "thread once" handling
Contributions
- Clarified a bit more documentation, fixed a lot of typos and removed some redundant codes. by @QueenPew in #311
- Update notes about Steam by @MichaIng in #325
- Added the CLZ and RBIT opcodes by @rajdakin in #328
- Moved the documentation to "docs/" folder. by @SpacingBat3 in #339
- Some documentation fixes and improvements. by @SpacingBat3 in #340
- Fixed link to "x86primop.c". by @SpacingBat3 in #345
- Move install instructions higher up and add pi-apps mention by @mobilegmyt in #348
- Create X86WINE.md by @WheezyE in #350
- Update X86WINE.md by @WheezyE in #353
- working on glib2 and png16 by @meveric in #356
- Update README.md by @WheezyE in #357
- Update X86WINE.md by @WheezyE in #358
- Improve X86WINE.md by @Itai-Nelken in #359
- Update X86WINE.md by @WheezyE in #360
- Add RPI4ARM64 compiling instructions. by @Jai-JAP in #363
- [CMAKE] Fixed builds with '.c' in the path by @rajdakin in #367
- Initial Android support attempt by @io12 in #372
- Improved box86 a bit, added an automation by @rajdakin in #374
- Added documentation to the python scripts by @rajdakin in #375
- Stabilized test 11 by @rajdakin in #376
- Libraries free order fix by @rajdakin in #377
- Added two linking tests by @rajdakin in #387
- Fixed rpaths for tests 15 and 16 by @rajdakin in #388
New Contributors
- @mobilegmyt made their first contribution in #348
- @Itai-Nelken made their first contribution in #359
v0.2.0
What's Changed
- Improvements on x86 Flags handling.
- A few more opcode has been added.
- A few potential BusError are now fixed.
- Added the BOX86_NOVULKAN en. var. . This is used to disable the wrapping of vulkan libraries.
- Improvments on libc O_XXXX flags handling.
- Box86 now uses a custom allocator for Dynarec and Hash tables.
- Improved the wrapping of pulse audio.
- Optimisation to a few Dynarec opcode (like SHRD/SHLD).
- Improved the tracking of memory protection.
- A few more wrapping of libraries (like libgssapi_krb5).
- More function wrapping on libturbojpeg
- Preliminary support for POWER9 (ppcle) build
- Many contributions to remove typos and rephrase the README, COMPILE and USAGE documents
Contributions
- Typo fix by @RickAndTired in #276
- Updated the PKGBUILDS by @SpacingBat3 in #275
- Basic support for little-endian PowerPC and POWER9. by @eerykitty in #279
- Fix a typo by @Hacker1245 in #292
- Add flag for RPI4 with arm64+armhf multiatch by @kalashnikovdmitryv in #297
- Update README.md by @QueenPew in #298
- Updated documentation by @QueenPew in #302
- Remove the //TODO: in USAGE.md by @QueenPew in #303
- Simplified code by @QueenPew in #309
New Contributors
- @RickAndTired made their first contribution in #276
- @eerykitty made their first contribution in #279
- @Hacker1245 made their first contribution in #292
- @kalashnikovdmitryv made their first contribution in #297
v0.1.8
- Fixes on some float to int x86 convertions opcodes.
- Reworked all callback mecanisms.
- Added libturbojpeg wrapping (and a hack for zoom to force using native one).
- Added the BOX86_SAFEMMAP env. var.
- Reworked Dynarec's memory manager.
- Added a few opcodes.
- Improve elfloader to not force PltResolver all the time (fixing SuperHexagon and maybe other)
- Reworked Exet and Cancel Thread mecanism.
- Added wrapped libldap_r and liblber library (used by wine)
- Reworked Dynarec block handling, and remove the "AddMark" mecanism that wasn't efficient enough
- Added TokiTori 2+ detection and runtime patch on the Raspberry Pi platform
- Fixes on elfloader with TLS object.