Update Docs
This commit is contained in:
parent
29bc6faf3d
commit
ab1dbd2996
@ -28,6 +28,7 @@ file(WRITE "${toolchain_dir}/toolchain.cmake"
|
|||||||
"set(CMAKE_CXX_COMPILER \"\${CMAKE_CURRENT_LIST_DIR}/bin/arm-none-linux-gnueabihf-g++\")\n"
|
"set(CMAKE_CXX_COMPILER \"\${CMAKE_CURRENT_LIST_DIR}/bin/arm-none-linux-gnueabihf-g++\")\n"
|
||||||
"set(CMAKE_SYSTEM_NAME \"Linux\")\n"
|
"set(CMAKE_SYSTEM_NAME \"Linux\")\n"
|
||||||
"set(CMAKE_SYSTEM_PROCESSOR \"arm\")\n"
|
"set(CMAKE_SYSTEM_PROCESSOR \"arm\")\n"
|
||||||
|
"set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)\n"
|
||||||
)
|
)
|
||||||
set(CMAKE_TOOLCHAIN_FILE "${toolchain_dir}/toolchain.cmake" CACHE STRING "" FORCE)
|
set(CMAKE_TOOLCHAIN_FILE "${toolchain_dir}/toolchain.cmake" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
@ -3,20 +3,23 @@
|
|||||||
## Launch Sequence
|
## Launch Sequence
|
||||||
|
|
||||||
### Common
|
### Common
|
||||||
1. The launcher forks itself
|
1. The launcher forks itself.
|
||||||
1. The child process continues the launch sequence.
|
1. The child process continues the launch sequence.
|
||||||
2. The original process monitors the child process for crashes.
|
2. The original process monitors the child process for crashes.
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
1. The launcher is started by the user
|
1. The launcher is started by the user.
|
||||||
1. The launcher starts several Zenity dialogs to configure MCPI-Reborn
|
1. The launcher starts several Zenity dialogs to configure MCPI-Reborn.
|
||||||
2. The launcher replaces itself with MCPI
|
1. If the corresponding environmental variable for a setting is specified, it will be used instead of the dialog.
|
||||||
1. MCPI-Reborn components are loaded using ``LD_PRELOAD`` and ``LD_LIBRARY_PATH``
|
2. If a setting is cached, then the dialog's default value will be the cached value instead of the normal default.
|
||||||
2. If the Media Layer Proxy is enabled, the Media Layer Proxy Client is started as a sub-process
|
3. When configuration has been completed, the settings specified will be cached.
|
||||||
|
2. The launcher replaces itself with MCPI.
|
||||||
|
1. MCPI-Reborn components are loaded using ``LD_PRELOAD`` and ``LD_LIBRARY_PATH``.
|
||||||
|
2. If the Media Layer Proxy is enabled, then the Media Layer Proxy Client is started as a sub-process.
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
1. The launcher is started by the user
|
1. The launcher is started by the user.
|
||||||
2. The launcher replaces itself with MCPI
|
2. The launcher replaces itself with MCPI.
|
||||||
|
|
||||||
## Components
|
## Components
|
||||||
|
|
||||||
@ -25,7 +28,8 @@ This component configures the various environmental variables required for MCPI-
|
|||||||
|
|
||||||
The environmental variables configured by this component includes:
|
The environmental variables configured by this component includes:
|
||||||
* ``LD_PRELOAD``
|
* ``LD_PRELOAD``
|
||||||
* ``LD_LIBRAR_PATH``
|
* ``LD_LIBRARY_PATH``
|
||||||
|
* ``GCONV_PATH``
|
||||||
* ``MCPI_FEATURE_FLAGS``
|
* ``MCPI_FEATURE_FLAGS``
|
||||||
* ``MCPI_RENDER_DISTANCE``
|
* ``MCPI_RENDER_DISTANCE``
|
||||||
* ``MCPI_USERNAME``
|
* ``MCPI_USERNAME``
|
||||||
@ -64,7 +68,7 @@ It is made of two parts:
|
|||||||
|
|
||||||
While proxying all Media Layer Core API calls across UNIX pipes does hurt performance, it is better than emulating the entire graphics stack.
|
While proxying all Media Layer Core API calls across UNIX pipes does hurt performance, it is better than emulating the entire graphics stack.
|
||||||
|
|
||||||
Using this in server-mode is redundant.
|
Using this in server-mode is redundant (but is possible).
|
||||||
|
|
||||||
#### Extras
|
#### Extras
|
||||||
This sub-component contains code that must always be linked directly to MCPI.
|
This sub-component contains code that must always be linked directly to MCPI.
|
||||||
@ -75,7 +79,7 @@ This is always compiled for ARM.
|
|||||||
This sub-component includes headers for SDL, GLES, and EGL allowing easy (cross-)compilation.
|
This sub-component includes headers for SDL, GLES, and EGL allowing easy (cross-)compilation.
|
||||||
|
|
||||||
### Mods
|
### Mods
|
||||||
This component links directly to MCPI and patches it to modify its behavior.
|
This component patches MCPI to modify its behavior. It's loaded using ``LD_PRELOAD``.
|
||||||
|
|
||||||
This is always compiled for ARM.
|
This is always compiled for ARM.
|
||||||
|
|
||||||
@ -95,8 +99,7 @@ This component contains all MCPI symbols.
|
|||||||
MCPI-Reborn has several dependencies:
|
MCPI-Reborn has several dependencies:
|
||||||
* MCPI (Bundled)
|
* MCPI (Bundled)
|
||||||
* GLFW (Only In Client Mode; Bundled)
|
* GLFW (Only In Client Mode; Bundled)
|
||||||
* Open GL ES 2.0
|
* OpenGL ES 2.0
|
||||||
* EGL
|
|
||||||
* OpenAL (Only In Client Mode)
|
* OpenAL (Only In Client Mode)
|
||||||
* ZLib (Required By LibPNG; Bundled)
|
* ZLib (Required By LibPNG; Bundled)
|
||||||
* LibPNG (Bundled)
|
* LibPNG (Bundled)
|
||||||
|
@ -7,15 +7,15 @@ Download packages [here](https://jenkins.thebrokenrail.com/job/minecraft-pi-rebo
|
|||||||
* Debian Buster/Ubuntu 18.04 Or Higher
|
* Debian Buster/Ubuntu 18.04 Or Higher
|
||||||
* QEMU User-Mode
|
* QEMU User-Mode
|
||||||
* Debian/Ubuntu: ``sudo apt install qemu-user``
|
* Debian/Ubuntu: ``sudo apt install qemu-user``
|
||||||
* Arch: ``sudo pacman -Sy qemu-user``
|
* Arch: ``sudo pacman -S qemu-user``
|
||||||
* Client-Only Dependencies
|
* Client-Only Dependencies
|
||||||
* Graphics Drivers
|
* Graphics Drivers
|
||||||
* GTK+ 3
|
* GTK+ 3
|
||||||
* Debian/Ubuntu: ``sudo apt install libgtk-3-0``
|
* Debian/Ubuntu: ``sudo apt install libgtk-3-0``
|
||||||
* Arch: ``sudo pacman -Sy gtk3``
|
* Arch: ``sudo pacman -S gtk3``
|
||||||
* OpenAL
|
* OpenAL
|
||||||
* Debian/Ubuntu: ``sudo apt install libopenal1``
|
* Debian/Ubuntu: ``sudo apt install libopenal1``
|
||||||
* Arch: ``sudo pacman -Sy openal``
|
* Arch: ``sudo pacman -S openal``
|
||||||
|
|
||||||
### Running
|
### Running
|
||||||
Follow [these](https://docs.appimage.org/introduction/quickstart.html#how-to-run-an-appimage) instructions.
|
Follow [these](https://docs.appimage.org/introduction/quickstart.html#how-to-run-an-appimage) instructions.
|
||||||
|
@ -46,7 +46,7 @@ launcher_cache load_cache() {
|
|||||||
stream.read((char *) &cache_version, 1);
|
stream.read((char *) &cache_version, 1);
|
||||||
if (stream.eof() || cache_version != (unsigned char) CACHE_VERSION) {
|
if (stream.eof() || cache_version != (unsigned char) CACHE_VERSION) {
|
||||||
if (!stream.eof()) {
|
if (!stream.eof()) {
|
||||||
WARN("Invalid Launcher Cache Version (Expected: %i, Actual: %i)", CACHE_VERSION, cache_version);
|
WARN("Invalid Launcher Cache Version (Expected: %i, Actual: %i)", (int) CACHE_VERSION, (int) cache_version);
|
||||||
} else {
|
} else {
|
||||||
WARN("Unable To Read Launcher Cache Version");
|
WARN("Unable To Read Launcher Cache Version");
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ __attribute__((noreturn)) void safe_execvpe(const char *const argv[], const char
|
|||||||
int ret = execvpe(argv[0], (char *const *) argv, (char *const *) envp);
|
int ret = execvpe(argv[0], (char *const *) argv, (char *const *) envp);
|
||||||
if (ret == -1) {
|
if (ret == -1) {
|
||||||
if (errno == ENOENT && strcmp(argv[0], "qemu-qrm")) {
|
if (errno == ENOENT && strcmp(argv[0], "qemu-qrm")) {
|
||||||
ERR("Unable to find QEMU! To install on Ubuntu/Debian, run \"sudo apt install qemu-user\". To install on Arch Linux, run \"sudo pacman -Sy qemu-user\".");
|
ERR("Unable to find QEMU! To install on Ubuntu/Debian, run \"sudo apt install qemu-user\". To install on Arch Linux, run \"sudo pacman -S qemu-user\".");
|
||||||
}
|
}
|
||||||
ERR("Unable To Execute Program: %s: %s", argv[0], strerror(errno));
|
ERR("Unable To Execute Program: %s: %s", argv[0], strerror(errno));
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user