This commit is contained in:
TheBrokenRail 2022-07-15 17:27:21 -04:00
parent c4e26c5be2
commit ed9bef8492
10 changed files with 48 additions and 90 deletions

View File

@ -1 +1 @@
2.3.13 2.4.0

View File

@ -2,6 +2,11 @@
## Launch Sequence ## Launch Sequence
### Common
1. The launcher forks itself
1. The child process continues the launch sequence.
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
@ -34,12 +39,11 @@ The Media Layer handles MCPI's graphics calls and user input. It replaces MCPI's
This sub-component re-implements a subset of SDL 1.2 calls with GLFW. It also provides a few utility functions that are used internally by MCPI-Reborn. This sub-component re-implements a subset of SDL 1.2 calls with GLFW. It also provides a few utility functions that are used internally by MCPI-Reborn.
The utility functions include: The utility functions include:
* Taking Screenshots
* Fullscreen * Fullscreen
* Audio * Audio
* Etc * Etc
This is always compiled for the host system's architecture. This is always compiled for the host system's architecture unless the Media Layer Proxy is disabled.
This was created because SDL 1.2 has numerous bugs and is in-general unsupported. This was created because SDL 1.2 has numerous bugs and is in-general unsupported.
@ -60,21 +64,13 @@ 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 (and disallowed). Using this in server-mode is redundant.
#### 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.
This is always compiled for ARM. This is always compiled for ARM.
#### Stubs
This sub-component implements stubs for various redundant libraries used by MCPI to silence linker errors.
This is always compiled for ARM.
##### What To Stub And What To Patch?
Most libraries (like ``bcm_host``) can just be replaced with stubs, because they don't need to do anything and aren't used by anything else. However, some libraries (like EGL and X11) might be used by some of MCPI-Reborn's dependencies (like GLFW) so instead of being replaced by a stub, each call is manually patched out from MCPI. A stub is still generated just in case that library isn't present on the system to silence linker errors, but it is only loaded if no other version is available.
#### Headers #### Headers
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.

View File

@ -1,21 +1,11 @@
# Building # Building
## Build Dependencies ## Dependencies
* Common
* ARM Compiler
* Host Compiler
* CMake
* Host Architecture Dependencies
* Client Mode Only
* OpenAL
## Runtime Dependencies ### Debian/Ubuntu
* Non-ARM Host Architectures ```sh
* QEMU User-Mode ./scripts/install-dependencies.sh
* Host Architecture Dependencies ```
* Client Mode Only
* OpenGL ES 2.0
* OpenAL
## Instructions ## Instructions
```sh ```sh
@ -29,4 +19,4 @@
``` ```
### Environment Variables ### Environment Variables
- ``MCPI_TOOLCHAIN_USE_DEFAULT_SEARCH_PATHS``: Use Default CMake Search Paths Rather Than Guessing * ``MCPI_TOOLCHAIN_USE_DEFAULT_SEARCH_PATHS``: Use Default CMake Search Paths Rather Than Guessing

View File

@ -1,5 +1,20 @@
# Changelog # Changelog
**2.4.0**
* [Modding SDK](../example-mods/README.md)
* Cache Blacklist/Whitelist
* More Reliable AppImages
* CMake Refactors
* Disable Broken Touchscreen-Specific Block Outline Behavior
* Add ``Remove Forced GUI Lag (Can Break Joining Servers)`` Feature Flag (Disabled By Default)
* Add ``Add Buckets`` Feature Flag (Enabled By Default)
* Add ``Classic HUD`` Feature Flag (Enabled By Default)
* Add ``Translucent Toolbar`` Feature Flag (Enabled By Default)
* Fix Sound Pitch/Volume/Attenuation
* Fix Holding Left-Click When Attacking
* Don't Force EGL (Should Fix Some NVIDIA Systems)
* Performance Fixes
**2.3.13** **2.3.13**
* Fix Texture Bug * Fix Texture Bug

View File

@ -1,7 +1,7 @@
# Dedicated Server # Dedicated Server
The dedicated server is a version of Minecraft: Pi Edition modified to run in a headless environment. It loads settings from a ``server.properties`` file. The dedicated server is a version of Minecraft: Pi Edition modified to run in a headless environment. It loads settings from a ``server.properties`` file.
This server is also compatible with MCPE Alpha v0.6.1. This server is also compatible with MCPE Alpha v0.6.1[^1].
## Setup ## Setup
@ -15,3 +15,5 @@ An official Docker image is also provided: [thebrokenrail/minecraft-pi-reborn-se
* Player data is not saved because of limitations with MCPE LAN worlds * Player data is not saved because of limitations with MCPE LAN worlds
* An easy workaround is to place your inventory in a chest before logging off * An easy workaround is to place your inventory in a chest before logging off
* Survival Mode servers are incompatible with unmodded MCPI * Survival Mode servers are incompatible with unmodded MCPI
[^1]: The exception to this is buckets, those will crash MCPE players.

View File

@ -3,25 +3,23 @@
## AppImage ## AppImage
Download packages [here](https://jenkins.thebrokenrail.com/job/minecraft-pi-reborn/job/master/lastSuccessfulBuild/artifact/out/). Download packages [here](https://jenkins.thebrokenrail.com/job/minecraft-pi-reborn/job/master/lastSuccessfulBuild/artifact/out/).
### System Requirements
* Debian Buster/Ubuntu 18.04 Or Higher
* QEMU User-Mode
* Debian/Ubuntu: ``sudo apt install qemu-user``
* Arch: ``sudo pacman -Sy qemu-user``
* Client-Only Dependencies
* Graphics Drivers
* GTK+ 3
* Debian/Ubuntu: ``sudo apt install libgtk-3-0``
* Arch: ``sudo pacman -Sy gtk3``
* OpenAL
* Debian/Ubuntu: ``sudo apt install libopenal1``
* Arch: ``sudo pacman -Sy 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.
### Picking A Package
#### Name Format
```
minecraft-pi-reborn-<Variant>_X.Y.Z_<Architecture>
```
#### Picking A Variant
* ``client``: Client mode, use this if you want to play MCPI.
* ``server``: Server mode, use this if you want to host a dedicated MCPI server.
#### Picking An Architecture
* ``amd64``: x86_64, use this if you are using a device with an AMD or Intel processor.
* ``armhf``: ARM 32-Bit, use this if you are using an ARM device (like a Raspberry Pi).
* ``arm64``: ARM 64-Bit, ``armhf`` but for 64-bit devices.
## Flatpak ## Flatpak
<a href="https://flathub.org/apps/details/com.thebrokenrail.MCPIReborn"><img width="240" alt="Download On Flathub" src="https://flathub.org/assets/badges/flathub-badge-en.svg" /></a> <a href="https://flathub.org/apps/details/com.thebrokenrail.MCPIReborn"><img width="240" alt="Download On Flathub" src="https://flathub.org/assets/badges/flathub-badge-en.svg" /></a>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 156 KiB

@ -1 +1 @@
Subproject commit 6dd526fb1a9c16c3170a0ebd2b5c73e4a2719245 Subproject commit c50d53160fa9b579dda0d0a4f9a7c2512940df8e

View File

@ -88,7 +88,7 @@ void init_touch() {
unsigned char outline_patch[4] = {(unsigned char) (block_outlines ? !touch_gui : touch_gui), 0x00, 0x50, 0xe3}; // "cmp r0, #0x1" or "cmp r0, #0x0" unsigned char outline_patch[4] = {(unsigned char) (block_outlines ? !touch_gui : touch_gui), 0x00, 0x50, 0xe3}; // "cmp r0, #0x1" or "cmp r0, #0x0"
patch((void *) 0x4a210, outline_patch); patch((void *) 0x4a210, outline_patch);
if (block_outlines) { if (block_outlines) {
// Diable Broken Touchscreen-Specific Block Outline Behavior // Disable Broken Touchscreen-Specific Block Outline Behavior
unsigned char block_highlight_patch[4] = {0x03, 0x00, 0x53, 0xe1}; // "cmp r3, r3" unsigned char block_highlight_patch[4] = {0x03, 0x00, 0x53, 0xe1}; // "cmp r3, r3"
patch((void *) 0x494b4, block_highlight_patch); patch((void *) 0x494b4, block_highlight_patch);
} }

View File

@ -1,43 +0,0 @@
#!/bin/sh
set -e
if [ ! -z "${MCPI_CUSTOM_APT_REPO}" ]; then
echo "${MCPI_CUSTOM_APT_REPO}"
exit 0
fi
ID="$(sed -n -e 's/^ID=//p' /etc/os-release)"
ID_LIKE="$(sed -n -e 's/^ID_LIKE=//p' /etc/os-release)"
VERSION_CODENAME="$(sed -n -e 's/^VERSION_CODENAME=//p' /etc/os-release)"
OUT=""
get_apt_sources() {
if [ "${1}" = "ubuntu" ]; then
OUT="deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu/ ${VERSION_CODENAME} main restricted
deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu/ ${VERSION_CODENAME}-updates main restricted
deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu/ ${VERSION_CODENAME} universe
deb [arch=i386,amd64] http://archive.ubuntu.com/ubuntu/ ${VERSION_CODENAME}-updates universe
deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ ${VERSION_CODENAME} main restricted
deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ ${VERSION_CODENAME}-updates main restricted
deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ ${VERSION_CODENAME} universe
deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ ${VERSION_CODENAME}-updates universe"
elif [ "${1}" = "debian" ]; then
OUT="deb https://deb.debian.org/debian/ ${VERSION_CODENAME} main"
if [ "${VERSION_CODENAME}" != "sid" ] && [ "${VERSION_CODENAME}" != "unstable" ] && [ "${VERSION_CODENAME}" != "experimental" ]; then
OUT="${OUT}
deb https://deb.debian.org/debian/ ${VERSION_CODENAME}-updates main"
fi
fi
}
get_apt_sources "${ID}"
if [ -z "${OUT}" ]; then
get_apt_sources "${ID_LIKE}"
fi
if [ ! -z "${OUT}" ]; then
echo "${OUT}"
else
echo "Unsupported Distribution: ${ID}" 1>&2
exit 1
fi