add loongarch cmake fix and chinese document

This commit is contained in:
zhaozhen 2021-09-26 22:48:28 +08:00
parent 4cac721e74
commit 8da46ee305
3 changed files with 125 additions and 4 deletions

View File

@ -13,7 +13,6 @@ option(NOLOADADDR "Set to ON to avoid fixing the load address of Box64" OFF)
option(NOGIT "Set to ON if not building from a git clone repo (like when building from a zip download from github)" ${NOGIT})
if(LARCH64)
set(LD80BITS OFF CACHE BOOL "")
message(WARNING ${LD80BITS})
set(NOALIGN OFF CACHE BOOL "")
set(ARM_DYNAREC OFF CACHE BOOL "")
endif()
@ -72,8 +71,8 @@ elseif(TEGRAX1)
set(CMAKE_ASM_FLAGS "-pipe -march=armv8-a+crc+simd+crypto -mcpu=cortex-a57+crypto")
elseif(LARCH64)
add_definitions(-DLARCH64)
add_definitions(-pipe)
set(CMAKE_ASM_FLAGS "-pipe")
add_definitions(-pipe -march=loongarch64)
set(CMAKE_ASM_FLAGS "-pipe -march=loongarch64")
elseif(ARM_DYNAREC)
set(CMAKE_ASM_FLAGS "-pipe -march=armv8-a+crc+simd+crypto")
endif()

View File

@ -6,6 +6,8 @@ Linux Userspace x86_64 Emulator with a twist
----
![box64 build status](https://app.travis-ci.com/ptitSeb/box64.svg?branch=main)
[中文](README_CN.md)
Box64 lets you run x86_64 Linux programs (such as games) on non-x86_64 Linux systems, like ARM (host system needs to be 64bit little-endian).
You can find many more Box64 video on Youtube in the [MicroLinux](https://www.youtube.com/channel/UCwFQAEj1lp3out4n7BeBatQ), [Pi Labs](https://www.youtube.com/channel/UCgfQjdc5RceRlTGfuthBs7g) or [The Byteman](https://www.youtube.com/channel/UCEr8lpIJ3B5Ctc5BvcOHSnA) Channels
@ -76,7 +78,7 @@ GTK libraries are not wrapped yet on box64 (contrary to box86). Many games use g
Notes about Steam
----
Not that Steam is an hybrid 32buts / 64bits. You NEED box86 to run steam, as the client app is a 32bits binaries. It also use a 64bits local server binaries, but like most stuff using libsef/chromium. it's not working correctly on box64 for now.
Not that Steam is an hybrid 32buts / 64bits. You NEED box86 to run steam, as the client app is a 32bits binaries. It also use a 64bits local server binaries, but like most stuff using libcef/chromium. it's not working correctly on box64 for now.
So: no Steam for now on box64.
----
@ -103,6 +105,7 @@ There are many ways to contribute: code contribution, financial, hardware and ad
So, in no particular order, I want to thank:
* For their major code contribution: rajdakin
* For their major financial contribution: FlyingFathead, stormchaser3000
* For hardware contribution and LoongArch migration: [xiaoji](https://www.linuxgame.cn/), Deepin Beijing Develop Team
* For their hardware contribution: [Radxa](https://rockpi.org/), [Pine64](https://www.pine64.org/)
* For their continous advertisement of box64 project: salva ([microLinux](https://www.youtube.com/channel/UCwFQAEj1lp3out4n7BeBatQ)), [PILab](https://www.youtube.com/channel/UCgfQjdc5RceRlTGfuthBs7g)/[TwisterOS](https://twisteros.com/) team, [The Byteman](https://www.youtube.com/channel/UCEr8lpIJ3B5Ctc5BvcOHSnA), [NicoD](https://www.youtube.com/channel/UCpv7NFr0-9AB5xoklh3Snhg), ekianjo ([Boilingsteam](https://boilingsteam.com/))

119
docs/README_CN.md Normal file
View File

@ -0,0 +1,119 @@
# box64
![Official logo](img/Box64Logo.png "Official Logo")
Linux上用户空间的x86_64应用模拟器
----
![box64 build status](https://app.travis-ci.com/ptitSeb/box64.svg?branch=main)
[English](README.md)
在ARM或其他非X86_64架构的Linux操作系统上使用Box64可以运行x86_64 Linux程序例如游戏请注意主机系统需要**64位小端**。
您可以在Youtube的[MicroLinux](https://www.youtube.com/channel/UCwFQAEj1lp3out4n7BeBatQ)、[Pi Labs](https://www.youtube.com/channel/UCgfQjdc5RceRlTGfuthBs7g)或[The Byteman](https://www.youtube.com/channel/UCEr8lpIJ3B5Ctc5BvcOHSnA)频道找到更多Box64视频。
Box64使用了一些“系统”库的原生版本例如libc、libm、SDL和OpenGL所以它很容易与大多数应用程序集成和使用并且在很多情况下性能会出奇的高。点击[此处](https://box86.org/index.php/2021/06/game-performances/)查看示例的基准测试分析。
Box64为ARM64平台集成了DynaRec动态重编译器比仅使用解释器提升5到10倍性能。关于Dynarec如何工作的更多信息可以在[这里](https://box86.org/2021/07/inner-workings-a-high%e2%80%91level-view-of-box86-and-a-low%e2%80%91level-view-of-the-dynarec/)找到。
DynaRec需要针对不同平台编写一部分汇编代码目前仅支持ARM64。
一些x64内部操作码使用“Realmode X86 Emulator Library”的部分内容请参阅[x64primop.c](../src/emu/x64primop.c)了解版权详情
<img src="img/Box64Icon.png" width="96" height="96">
Logo和图标由grayduck制作感谢!
----
使用方法
----
若干环境变量可以设置Box64的行为。
点击[这里](USAGE.md)了解所有的环境变量和它们的作用。
请注意Box64的Dynarec提供了一种机制来处理JIT代码包含内存保护和段错误信号处理程序。简单地说如果您想用GDB来调试一个使用JIT代码的运行程序比如mono/Unity3D您仍然会触发很多“正常”的段错误。建议在GDB中使用类似于`handle SIGSEGV nostop`的东西,不要在每个段错误时都停止,如果您想捕获段错误,可以在`signals.c`中的`my_memprotectionhandler`中放置一个断点。
----
编译/安装
----
> 编译说明可以在[这里](COMPILE.md)查看。
----
版本历史
----
版本日志在[这里](CHANGELOG.md)。
----
32位平台的注意事项
----
Box64的工作原理是直接将函数调用从x86_64转换到主机系统主机系统Box64运行的系统需要有64位的库。Box64并不包括任何64位<->32位的转换。
所以请理解Box64只能运行64位的Linux二进制文件。对于32位的二进制文件需要Box86在64位的操作系统上需要所有的multiarch库或一些proot技巧
请注意,许多(基于mojo的)安装程序即使存在x86_64版本但在检测到架构为ARM64时会退回到"x86"这时会尝试使用如果有box86进行安装。这时你可以使用一个假的"uname",当它的参数为"-m"时返回"x86_64"。
----
关于Unity游戏模拟的注意事项
----
当前Unity游戏模拟是一件碰运气的事情。Unity使用Mono它的信号表示并不总能100%成功模拟)。
您还应该注意一些Unity3D游戏需要OpenGL 3+目前在ARM SBC单板计算机上提供OpenGL 3+是很棘手的。
所以并不是所有的Unity游戏都能工作而且可能需要很高的OpenGL配置但现在很多游戏都能工作。
提示如果游戏开始后在显示任何东西之前退出在Pi4上使用`MESA_GL_VERSION_OVERRIDE=3.2`在Panfrost上使用`PAN_MESA_DEBUG=gl3`来使用更高的配置文件。
----
关于GTK程序的注意事项
----
GTK库尚未封装在Box64内与Box86相反。许多游戏包括设置都使用gtk例如Unity游戏的屏幕选择对话框。有些Unity游戏可以在没有该对话框的情况下运行使用默认设置还有一些不能。您需要将一套gtk x86_64库放在游戏目录或其他一些Box64识别的目录中以获得gtk支持。Box64有计划封装GTK原生库。
----
关于Steam的注意事项
----
Steam并不是32位/64位混合的而是32位的因此您需要Box86才能运行Steam。Steam也使用64位的本地服务器程序但像大多数使用libcef/chromium的程序一样在box64上暂时无法正常工作。
所以目前在box64上无法运行Steam。
----
关于Wine的注意事项
----
box64支持64位Wine但请注意64位的Wine还包含32位的组件以便能够运行32位的Windws程序。32位程序需要Box86没有它就不能运行。在Box64和Box86共存的系统上设置64位Wine可以同时运行32位和64位windows程序只需分别使用 `wine``wine64`)。
----
关于Vulkan注意事项
----
Box64尚未封装原生Vulkan库有计划这么做但目前vulkan程序不能在box64上运行。
----
结语
----
我要感谢所有为 box64 开发做出贡献的人。
贡献方式有很多种:代码贡献、财务帮助、捐赠捐赠和广告合作!
以下感谢不分先后:
* 代码贡献rajdakin
* 财务帮助FlyingFathead, stormchaser3000
* 硬件捐赠:[Radxa](https://rockpi.org/), [Pine64](https://www.pine64.org/)
* 硬件捐赠和LoongArch迁移[xiaoji](https://www.linuxgame.cn)
* 为本项目持续的宣传salva ([microLinux](https://www.youtube.com/channel/UCwFQAEj1lp3out4n7BeBatQ)), [PILab](https://www.youtube.com/channel/UCgfQjdc5RceRlTGfuthBs7g)/[TwisterOS](https://twisteros.com/) team, [The Byteman](https://www.youtube.com/channel/UCEr8lpIJ3B5Ctc5BvcOHSnA), [NicoD](https://www.youtube.com/channel/UCpv7NFr0-9AB5xoklh3Snhg), ekianjo ([Boilingsteam](https://boilingsteam.com/))
我还要感谢很多人,即使他们只参与了一次本项目。
(如果你的项目中使用了Box64请不要忘记提及)