Box86 Versions Save

Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices

v0.1.4

2 years ago

What's Changed

  • Change in Dynarec's memory handling, to simplify it (and hopefully optimized it).
  • Even more opcodes added.
  • And some more Dynarec opcodes.
  • Fixed some issue were PltResolver was injected but should not be.
  • Fixed many Dynarec and non dynarec opcodes.
  • Improved Signal handling.
  • Added a few more wrapped libraries (like curl).
  • Gallium9 is now wrapped (thx @icecream95).
  • Fixed and simplied many wrapped functions (especialy the one where a callback is involved).
  • Fixed Dynarec "freeing" a Dynablock sometimes causing a corruption of the heap (generally happens in case of JIT code).
  • Optimized the way LOCK prefix work when using Dynarec on ARM.
  • improvements to the ARM opcode Printer (for dumping Dynarec blocks) improvement (thx @rajdakin).

Contributions

New Contributors

v0.1.6

2 years ago

What's Changed

  • Changes in Dynarec to make flags optimizations before CALL and RET opcode less aggressive.
  • Added a Vulkan wrapper.
  • Improved wrapping of SDL_mixer/ SDL2_mixer libraries.
  • Improved wrapping of some GTK structures.
  • Added a quick and dirty wrapping of GTK3 (based on current GTK2).
  • Improved the signal handling, should be more stable now (the signal handler from syscall still need some works).
  • Added the RK3399 profile, and some hints to build 32bits box86 on 64bits OS.
  • Fixed some wrapped printf formating not handled correctly.
  • Fixed some buserror with the new LOCK mecanism handling.
  • A few more Dynarec opcodes added.
  • If winedbg is tried to be launched, exit without launching it (it doesn't work anyways).

Contributions

New Contributors

v0.1.8

2 years ago
  • 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.

v0.2.0

2 years ago

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

New Contributors

v0.2.4

2 years ago

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

New Contributors

v0.2.2

2 years ago

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

New Contributors