Update Docs

This commit is contained in:
TheBrokenRail 2022-09-23 17:55:38 -04:00
parent 29bc6faf3d
commit ab1dbd2996
5 changed files with 22 additions and 18 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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.

View File

@ -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");
} }

View File

@ -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 {