Skip to content

v0.2.8

Compare
Choose a tag to compare
@ptitSeb ptitSeb released this 21 May 15:47
· 866 commits to main since this release

What's Changed

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

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

More details in New release blog

Contributions

  • [DYNAREC_RV64] Fixed some bugs in x87 infra by @ksco in #1143
  • [DYNAREC_RV64] Added FILD/FISTP i64 optimization by @ksco in #1145
  • [RCFILE] Added FL64 Profile by @mcagabe19 in #1149
  • [WRAPPER] add dbus_message_iter_get_element_count auto wrapper by @liuli0217 in #1153
  • [DYNAREC_RV64] Added more opcodes and fixes by @ksco in #1154
  • [DYNAREC_RV64] Fixed some bugs in the dynarec for ETS2 by @ksco in #1155
  • Cleanup some code by @xctan in #1157
  • [DYNAREC_RV64] Added more opcodes for ets2 by @ksco in #1158
  • [DYNAREC_RV64] Fixed shift masks for GI by @xctan in #1160
  • [DYNAREC_RV64] Ported INT 3/29 from arm by @xctan in #1161
  • [DYNAREC_RV64] Added more opcodes for ets2 by @ksco in #1162
  • [INTERP] Added 64 66 39 CMP opcode (for #1156) by @ksco in #1166
  • [DYNAREC_RV64] Added more opcodes for VMP-protected GI by @xctan in #1164
  • [DYNAREC_RV64] Added more opcodes for VMP-protected GI by @xctan in #1168
  • [RCFILE] Disable CALL/RET optimization for zoom (#1170) by @ksco in #1174
  • [CMakelist] Remove a "#" by @Creeper-xie in #1173
  • [WRAPPER] Added 4 more wrapped glib2 functions (for #1175) by @ksco in #1176
  • [DYNAREC_RV64] Fixed a nasty bug in GETEX, but left optim opportunity for later by @ksco in #1178
  • [MEMORY] Switched from a sparse array to a red-black tree by @rajdakin in #1180
  • Remove FASTPAGE/HOTPAGE docs by @tristanmorgan in #1181
  • [WRAPPERS] Add a isSimpleWrapper function for RV64 by @rajdakin in #1185
  • [DYNAREC_RV64] Added CALL/RET optimization by @ksco in #1183
  • expose minimal libxcb-xinput wrapper by @fbenkstein in #1192
  • [DYNAREC_RV64] Fixed a wrong Zba optimization by @ksco in #1193
  • [DYNAREC_RV64] Added more opcodes and fixed X87_PUSH/POP macros by @ksco in #1194
  • [RV64_DYNAREC] Fixed 66 0F B6 MOVZX opcode by @xctan in #1196
  • [RBTREE] Reverted memory tracking to 32 bits by @rajdakin in #1201
  • [RV64_DYNAREC] Fixed 66 87 XCHG opcode by @xctan in #1198
  • Fixes by @rajdakin in #1207
  • [DYNAREC_RV64] Enable basic simple wrapper optimization by @ksco in #1215
  • add optimize build flag for Jetson orin and xavier by @leonpano2006 in #1219
  • Add 'BOX64_MMAP32' to help info by @KreitinnSoftware in #1220
  • [WRAPPERS] Fixed some typos in rebuild_wrappers.py by @xctan in #1227
  • [X64LIBS] mbedtls libs by @mcagabe19 in #1232
  • system/box64.conf.cmake: change rule name to be box64 specific by @josch in #1233
  • Added mknod syscall by @ksco in #1236
  • When BOX64_VERSION is set, just print the version and exit by @josch in #1238
  • [DOCS] Fix a typo in temrux building by @mcagabe19 in #1240
  • [WRAPPER] Regenerated the wrapper files by @rajdakin in #1241
  • [X64EMU] Fix for linux clang by @mcagabe19 in #1243
  • [ANDROID] Fix GLib and GObject Library Names by @KreitinnSoftware in #1247
  • [DYNAREC_RV64] f23 and f24 are save in a same place by @factfinding in #1251
  • Wrapped libraries refactor by @rajdakin in #1257
  • [ANDROID] BOX64_SHOWBT Now show Emulated BT on Android by @KreitinnSoftware in #1258
  • more wrapped functions in libxcb-randr and libcap by @Coreforge in #1260
  • [CI] Add Android Tests by @KreitinnSoftware in #1263
  • [ANDROID] Fix Build When Compiling with NDK 26b, [CI] Download Basic Android Libs from 'termux-docker' and update NDK to 26b by @KreitinnSoftware in #1270
  • [DYNAREC_RV64] Added more opcodes and some minor optimizations by @ksco in #1272
  • [LIBTOOL] Fixed my_pthread_attr_init by @ksco in #1274
  • [DYNAREC_RV64] Minor OF flag fixes and optimizations for emit shift utils by @ksco in #1275
  • [RV64_DYNAREC] Added more opcodes by @ksco in #1276
  • [RV64_DYNAREC] Added more opcodes by @ksco in #1277
  • [RV64_DYNAREC] Added 2 more 66 0F opcodes for test17 by @ksco in #1278
  • [RV64_DYNAREC] Added all missing 66 0F opcodes for test17 by @ksco in #1281
  • [RV64_DYNAREC] Added missing 0F 38 00 PSHUFB opcode for test23 by @ksco in #1282
  • [RV64_INTERP] Comply CMPXCHG16B with dynarec by @ksco in #1288
  • [RV64_DYNAREC] Optimized XOR Ew, Gw when Ew == Gw by @xctan in #1289
  • [RV64_DYNAREC] Fixed RDTSC handling by @ksco in #1291
  • [CI] Repeat until-pass for unstable platform by @ksco in #1292
  • [RV64_INTERP] Added TSC freq support by @ksco in #1293
  • LARCH64 dynarec by @factfinding in #1295
  • [LONGAARCH_DYNAREC] Added 00...05 and 28...2D opcodes by @factfinding in #1297
  • [CI] Added loongarch64 by @ksco in #1298
  • [LA64_DYNAREC] Added some LBT instructions by @ksco in #1299
  • [LA64_DYNAREC] Removed F_OF2 trick as it's unnecessary by @ksco in #1300
  • [LA64_DYNAREC] Added basic LBT support, setup xMASK by @ksco in #1302
  • [LA64_DYNAREC] Added LBT support to all implemented emit functions and fixed some typos by @ksco in #1303
  • [LA64_DYNAREC] Added more opcodes and fixed more things by @ksco in #1304
  • [LA64_DYNAREC] Added 1 more opcode and more fixes by @ksco in #1305
  • [LA64_DYNAREC] Added 70-7F Jcc opcodes, refine printer and some fixes too by @ksco in #1307
  • [LA64_DYNAREC] Adopt to ARM64 way of CALL/RET optim since there is a dedicated register by @ksco in #1309
  • [LA64_DYNAREC] Added more opcodes with CALL/RET optimization by @ksco in #1310
  • [LA64_DYNAREC] Added CC native call support, fixed call_c by @ksco in #1312
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1313
  • [LA64_DYNAREC] Added more and more opcodes by @ksco in #1314
  • Added a warning on interpreter only build when DynaRec is available by @ksco in #1316
  • [LA64_DYNAREC] Enable co-simulation and fixed an important issue by @ksco in #1317
  • [LA64_DYNAREC] Added more opcodes and more fixes, SuperHexagon is working by @ksco in #1319
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1321
  • [LA64_DYNAREC] Added more opcodes by @factfinding in #1322
  • [WRAPPER] Fixed a typo in the signature of my___libc_start_main by @xctan in #1323
  • [LA64_DYNAREC] Utilizing bitmanip instructions because they're great by @ksco in #1324
  • [LA64] Detect the existence of LBT extension by @ksco in #1325
  • [LA64_DYNAREC] Added more and more opcodes by @ksco in #1326
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1327
  • [LA64_DYNAREC] Made eflags synchronization lazy by @ksco in #1329
  • [LA64_DYNAREC] Added more opcodes and some fixes in the printer by @ksco in #1330
  • [LA64_DYNAREC] Added more opcodes and some fixes too by @ksco in #1331
  • [LA64_DYNAREC] Added more opcodes and more instructions in emitter and printer by @ksco in #1332
  • Added 2 pthread wraps by @mcagabe19 in #1334
  • [ARM64_DYNAREC] Fixed some typos by @ksco in #1336
  • [RV64_DYNAREC] Added 66 0F 38 61 PCMPESTRI opcode and some refactors too by @ksco in #1337
  • Fixed a warning by @ksco in #1335
  • some gcrypt wrapping by @mcagabe19 in #1338
  • [ARM] Added immediate encoding by @rajdakin in #1340
  • [LA64_DYNAREC] Added C1 /4 and /6 opcodes and some fix by @factfinding in #1341
  • [ARM64_DYNAREC] Fixed a falsy optimization on PSHUFHW by @ksco in #1344
  • [DYNAREC] Made shift operations handle count==0 more uniformly by @ksco in #1345
  • [DYNAREC] Revert some fasly changes to the shift opcodes by @ksco in #1346
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1354
  • [LA64_DYNAREC] Added more opcodes and some fixes by @ksco in #1355
  • [LA64_DYNAREC] Added more LBT instructions to the printer by @ksco in #1356
  • Update GH-Actions workflows to remove Node.js deprecation warning. by @tristanmorgan in #1359
  • [LA64_DYNAREC] Added some FP/LSX/LASX instructions to the emitter by @ksco in #1374
  • [LA64_DYNAREC] Added CMOVcc opcodes and some fixes too by @ksco in #1375
  • [REFACTOR] Refactor main.c by @Howard0o0 in #1362
  • update clang-format for IFX and QUOTE by @f1yby in #1390
  • [LA64_DYNAREC] Added basic SSE infra and 66 0F 6E MOVD opcode by @ksco in #1391
  • Add BOX64_RCFILE variable by @olegos2 in #1392
  • [LA64_DYNAREC] Fixed EBBACK by @ksco in #1399
  • [LA64_DYNAREC] Added more SSE/SSE2 instructions by @ksco in #1400
  • [RV64_DYNAREC] Fixed some issue with x87 stack managment (ported from ARM64) by @ksco in #1401
  • Create libssl/libcrypto symlinks by @ksco in #1402
  • Force the use of spaces in .clang-format by @ksco in #1406
  • [RV64_DYNAREC] Add more opcodes by @LiZhuoheng-coder in #1405
  • [RV64_DYNAREC] Add 1E/1F opcode by @LiZhuoheng-coder in #1407
  • [RV64_DYNAREC] Added 0F 70 PSHUFW opcode by @ksco in #1408
  • [LA64_DYNAREC] Added more SSE/SSE2 instructions by @factfinding in #1410
  • [LA64_DYNAREC] Fixed SSE issues by @ksco in #1415
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1416
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1417
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1418
  • [DYNAREC] Fixed REP opcodes for correct register state recovery by @ksco in #1420
  • [LA64_DYNAREC] Fixed missing LBT path and more by @ksco in #1419
  • [LA64_DYNAREC] Added more SSE/SSE2 instructions by @factfinding in #1421
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1422
  • [LA64_DYNAREC] Added more opcode and fixes by @ksco in #1423
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1424
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1425
  • [RV64_DYNAREC] Fixed various bugs in shift instructions by @xctan in #1426
  • [LA64_DYNAREC] Fixed 0F A3 BT opcode by @ksco in #1427
  • [LA64_DYNAREC] Refined MOV64 macros by @ksco in #1430
  • Add Oxygen Not Included to box64rc by @sehraf in #1431
  • [LA64_DYNAREC] Added more opcodes to the printer by @ksco in #1433
  • [LA64_DYNAREC] Small fix on emit_or32c LBT path by @ksco in #1436
  • [RV64_DYNAREC] Implementation of some CRC32 instructions by @kaixindeken in #1435
  • [LA64_DYNAREC] Made the CALLRET optimization complete by @ksco in #1438
  • [LA64_DYNAREC] Added more opcodes and fixed more issues by @ksco in #1439
  • [RV64_DYNAREC] Fixed 66 C7 MOV opcode by @ksco in #1440
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1441
  • [DYNAREC] Fixed shift xw macros by @ksco in #1443
  • [LA64_DYNAREC] Added 1 more opcode and some fixes too by @ksco in #1444
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1447
  • [RV64_DYNAREC] Added more opcodes by @LiZhuoheng-coder in #1451
  • [DYNAREC] Fixed CF flag computation by @ksco in #1453
  • Wrapped 1 more function for mpg123 by @ksco in #1454
  • [RCFILE] Added Yandare Simulator Profile by @mcagabe19 in #1459
  • [DYNAREC] Fixed emit_shift functions and more by @ksco in #1466
  • [RCFILE] Update weixin profile by @ksco in #1467
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1468
  • [LA64_DYNAREC] Added more useful extensions detection by @ksco in #1469
  • [LA64_DYNAREC] Added more opcodes and fixes by @ksco in #1472
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1473
  • Fixed my_prepare_thread in dynarec build by @ksco in #1474
  • [RV64_DYNAREC] Fixed DIV and IDIV for zero divisor by @xctan in #1476
  • [COSIM] Added thread-safe tests by @ksco in #1477
  • [LA64_DYNAREC] Fixed dynarec infra by @ksco in #1479
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1480
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1481
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1482
  • [RV64_DYNAREC] Added some missing fastnan handling by @ksco in #1483
  • [RV64_DYNAREC] Remove useless code by @ksco in #1484
  • [DYNAREC][32BITS] Fixed and improved 66 prefix opcodes by @ksco in #1485
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1486
  • Added wrapping of libicuuc64 and libicui18n64 by @ksco in #1487
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1488
  • [RV64_DYNAREC] Fixed OF flag computation by @ksco in #1489
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1490
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1491
  • [DYNAREC] Small improvements to atomic functions by @ksco in #1492
  • [DYNAREC_LA64] Added more opcodes by @ksco in #1496
  • [RV64_DYNAREC] Fix SIGABRT handling in x87cache testing by @kaixindeken in #1498
  • [LA64_DYNAREC] Added more opcodes by @ksco in #1503
  • Added more symbols for libcrypto by @ksco in #1504
  • [INTERPRETER] Fixed CMPXCHG16B opcode for la64 by @ksco in #1506
  • [LA64_DYNAREC] Fixed LOCK ADD opcode by @ksco in #1507
  • [LA64_DYNAREC] Fixed 66 0F 67 PACKUSWB opcode by @ksco in #1508
  • [INTERPRETER] Added more opcodes and fixed some opcodes too by @ksco in #1511
  • [ARM64_DYNAREC] Fixed PSLLD/PSLLQ opcodes by @ksco in #1512
  • [RV64_DYNAREC] Fixed some MMX opcodes by @ksco in #1513
  • [RV64] Made Zba and Xthead* detection mutually exclusive by @ksco in #1514

New Contributors

Full Changelog: v0.2.6...v0.2.8