15 changed files with 374 additions and 1 deletions
@ -0,0 +1,50 @@
|
||||
name: Miyoo Mini Release Build |
||||
|
||||
on: |
||||
release: |
||||
types: [created] |
||||
workflow_dispatch: |
||||
|
||||
jobs: |
||||
miyoo-mini: |
||||
runs-on: ubuntu-22.04 |
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v2 |
||||
with: |
||||
fetch-depth: 0 |
||||
|
||||
- name: Install toolchain |
||||
working-directory: ${{github.workspace}} |
||||
run: sudo Packaging/miyoo_mini/setup_toolchain.sh |
||||
|
||||
- name: Build |
||||
working-directory: ${{github.workspace}} |
||||
run: > |
||||
source Packaging/miyoo_mini/toolchain_env.sh && |
||||
Packaging/miyoo_mini/build.sh |
||||
|
||||
- name: Upload-OnionOS-Package |
||||
if: ${{ !env.ACT }} |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: devilutionx-onion-os.zip |
||||
path: build-miyoo-mini/devilutionx-onion-os.zip |
||||
|
||||
- name: Upload-miniUI-Package |
||||
if: ${{ !env.ACT }} |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: devilutionx-miniui.zip |
||||
path: build-miyoo-mini/devilutionx-miniui.zip |
||||
|
||||
- name: Update Release |
||||
if: ${{ github.event_name == 'release' && github.event.action == 'created' && !env.ACT }} |
||||
uses: ncipollo/release-action@v1 |
||||
with: |
||||
artifacts: "build-miyoo-mini/devilutionx-onion-os.zip,build-miyoo-mini/devilutionx-miniui.zip" |
||||
allowUpdates: true |
||||
omitBody: true |
||||
omitName: true |
||||
omitPrereleaseDuringUpdate: true |
||||
token: ${{ secrets.GITHUB_TOKEN }} |
||||
@ -0,0 +1,30 @@
|
||||
set(BUILD_ASSETS_MPQ OFF) |
||||
set(USE_SDL1 ON) |
||||
set(NONET ON) |
||||
set(DEVILUTIONX_SYSTEM_LIBSODIUM OFF) |
||||
set(DEVILUTIONX_SYSTEM_BZIP2 OFF) |
||||
|
||||
set(SDL1_VIDEO_MODE_BPP 32) |
||||
set(SDL1_VIDEO_MODE_FLAGS SDL_HWSURFACE) |
||||
set(SDL1_FORCE_SVID_VIDEO_MODE ON) |
||||
|
||||
set(PREFILL_PLAYER_NAME ON) |
||||
set(DEFAULT_AUDIO_SAMPLE_RATE 44100) |
||||
|
||||
# The mini's buttons are connected via GPIO and are mapped to keyboard inputs |
||||
set(HAS_KBCTRL 1) |
||||
set(KBCTRL_BUTTON_DPAD_LEFT SDLK_LEFT) |
||||
set(KBCTRL_BUTTON_DPAD_RIGHT SDLK_RIGHT) |
||||
set(KBCTRL_BUTTON_DPAD_UP SDLK_UP) |
||||
set(KBCTRL_BUTTON_DPAD_DOWN SDLK_DOWN) |
||||
set(KBCTRL_BUTTON_B SDLK_SPACE) # Select spell |
||||
set(KBCTRL_BUTTON_A SDLK_LCTRL) # Attack |
||||
set(KBCTRL_BUTTON_Y SDLK_LSHIFT) # cast spell |
||||
set(KBCTRL_BUTTON_X SDLK_LALT) # pickup item |
||||
set(KBCTRL_BUTTON_RIGHTSHOULDER SDLK_t) # use mana potion |
||||
set(KBCTRL_BUTTON_LEFTSHOULDER SDLK_e) # use health potion |
||||
set(KBCTRL_BUTTON_START SDLK_TAB) # Use L2 for panel hotkeys |
||||
set(KBCTRL_BUTTON_BACK SDLK_BACKSPACE) # Use R2 for spell hotkeys |
||||
|
||||
# Map start to menu and select to automap. |
||||
set(REMAP_KEYBOARD_KEYS "{SDLK_RETURN,SDLK_ESCAPE},{SDLK_RCTRL,SDLK_TAB}") |
||||
@ -0,0 +1,109 @@
|
||||
#!/usr/bin/env bash |
||||
set -euo pipefail |
||||
|
||||
declare -r PACKAGING_DIR=`cd -- "$(dirname "$0")" >/dev/null 2>&1; pwd -P` |
||||
declare -r CFLAGS="-O3 -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7ve -Wall" |
||||
declare -r LDFLAGS="-lSDL -lmi_sys -lmi_gfx -s -lSDL -lSDL_image" |
||||
declare -r BUILD_DIR="build-miyoo-mini" |
||||
declare -r MIYOO_CUSTOM_SDL_REPO="https://github.com/Brocky/SDL-1.2-miyoo-mini.git" |
||||
declare -r MIYOO_CUSTOM_SDL_BRANCH="miniui-miyoomini" |
||||
|
||||
main() { |
||||
# ensure we are in devilutionx root |
||||
cd "$PACKAGING_DIR/../.." |
||||
|
||||
rm -f "$BUILD_DIR/CMakeCache.txt" |
||||
cmake_configure -DCMAKE_BUILD_TYPE=Release |
||||
cmake_build |
||||
package_onion |
||||
package_miniui |
||||
} |
||||
|
||||
cmake_configure() { |
||||
cmake -S. -B"$BUILD_DIR" \ |
||||
"-DTARGET_PLATFORM=miyoo_mini" \ |
||||
-DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \ |
||||
-DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \ |
||||
-DBUILD_TESTING=OFF \ |
||||
-DCMAKE_FIND_ROOT_PATH="/opt/miyoomini-toolchain/arm-linux-gnueabihf/sysroot" \ |
||||
"$@" |
||||
} |
||||
|
||||
cmake_build() { |
||||
cmake --build "$BUILD_DIR" |
||||
} |
||||
|
||||
build_custom_sdl() { |
||||
# make clean folder for custom SDL build |
||||
rm -rf $BUILD_DIR/CustomSDL |
||||
mkdir $BUILD_DIR/CustomSDL |
||||
|
||||
# clone the repo and build the lib |
||||
cd $BUILD_DIR/CustomSDL |
||||
git clone $MIYOO_CUSTOM_SDL_REPO --branch $MIYOO_CUSTOM_SDL_BRANCH --single-branch . |
||||
./make.sh |
||||
|
||||
# change back to devilutionx root |
||||
cd "$PACKAGING_DIR/../.." |
||||
cp -rfL "$BUILD_DIR/CustomSDL/build/.libs/libSDL-1.2.so.0" "$BUILD_DIR/OnionOS/Emu/PORTS/Binaries/Diablo.port/lib/libSDL-1.2.so.0" |
||||
} |
||||
|
||||
prepare_onion_skeleton() { |
||||
mkdir -p $BUILD_DIR/OnionOS |
||||
|
||||
# Copy basic skeleton |
||||
cp -rf Packaging/miyoo_mini/skeleton_OnionOS/* $BUILD_DIR/OnionOS |
||||
|
||||
# ensure devilutionx asset dir |
||||
mkdir -p $BUILD_DIR/OnionOS/Emu/PORTS/Binaries/Diablo.port/assets |
||||
|
||||
# ensure lib dir for custom SDL |
||||
mkdir -p $BUILD_DIR/OnionOS/Emu/PORTS/Binaries/Diablo.port/lib |
||||
|
||||
# ensure config dir |
||||
mkdir -p $BUILD_DIR/OnionOS/Saves/CurrentProfile/config/DevilutionX |
||||
|
||||
# ensure save dir |
||||
mkdir -p $BUILD_DIR/OnionOS/Saves/CurrentProfile/saves/DevilutionX |
||||
} |
||||
|
||||
package_onion() { |
||||
prepare_onion_skeleton |
||||
build_custom_sdl |
||||
# copy assets |
||||
cp -rf $BUILD_DIR/assets/* $BUILD_DIR/OnionOS/Emu/PORTS/Binaries/Diablo.port/assets |
||||
# copy executable |
||||
cp -f $BUILD_DIR/devilutionx $BUILD_DIR/OnionOS/Emu/PORTS/Binaries/Diablo.port/devilutionx |
||||
|
||||
rm -f $BUILD_DIR/onion.zip |
||||
|
||||
cd $BUILD_DIR/OnionOS |
||||
zip -r ../devilutionx-onion-os.zip . |
||||
cd "$PACKAGING_DIR/../.." |
||||
} |
||||
|
||||
prepare_miniui_skeleton() { |
||||
mkdir -p $BUILD_DIR/MiniUI |
||||
|
||||
# copy basic skeleton |
||||
cp -rf Packaging/miyoo_mini/skeleton_MiniUI/* $BUILD_DIR/MiniUI |
||||
|
||||
# ensure devilutionx asset dir |
||||
mkdir -p $BUILD_DIR/MiniUI/Diablo/assets |
||||
} |
||||
|
||||
package_miniui() { |
||||
prepare_miniui_skeleton |
||||
# copy assets |
||||
cp -rf $BUILD_DIR/assets/* $BUILD_DIR/MiniUI/Diablo/assets |
||||
# copy executable |
||||
cp -f $BUILD_DIR/devilutionx $BUILD_DIR/MiniUI/Diablo/devilutionx |
||||
|
||||
rm -f $BUILD_DIR/miniui.zip |
||||
|
||||
cd $BUILD_DIR/MiniUI |
||||
zip -r ../devilutionx-miniui.zip . |
||||
cd "$PACKAGING_DIR/../.." |
||||
} |
||||
|
||||
main |
||||
@ -0,0 +1,49 @@
|
||||
#!/bin/sh |
||||
|
||||
main() { |
||||
install_dependencies |
||||
install_toolchain |
||||
} |
||||
|
||||
install_toolchain() { |
||||
TOOLCHAIN_VERSION=v0.0.2 |
||||
TOOLCHAIN_TAR="miyoomini-toolchain.tar.xz" |
||||
|
||||
TOOLCHAIN_ARCH=`uname -m` |
||||
if [ "$TOOLCHAIN_ARCH" = "aarch64" ]; then |
||||
TOOLCHAIN_REPO=miyoomini-toolchain-buildroot-aarch64 |
||||
else |
||||
TOOLCHAIN_REPO=miyoomini-toolchain-buildroot |
||||
fi |
||||
|
||||
TOOLCHAIN_URL="https://github.com/shauninman/$TOOLCHAIN_REPO/releases/download/$TOOLCHAIN_VERSION/$TOOLCHAIN_TAR" |
||||
|
||||
cd /opt |
||||
wget "$TOOLCHAIN_URL" |
||||
echo "extracting remote toolchain $TOOLCHAIN_VERSION ($TOOLCHAIN_ARCH)" |
||||
|
||||
tar xf "./$TOOLCHAIN_TAR" |
||||
rm -rf "./$TOOLCHAIN_TAR" |
||||
} |
||||
|
||||
install_dependencies() { |
||||
apt-get -y update && apt-get -y install \ |
||||
bc \ |
||||
build-essential \ |
||||
bzip2 \ |
||||
bzr \ |
||||
cmake \ |
||||
cmake-curses-gui \ |
||||
cpio \ |
||||
git \ |
||||
libncurses5-dev \ |
||||
make \ |
||||
rsync \ |
||||
scons \ |
||||
tree \ |
||||
unzip \ |
||||
wget \ |
||||
zip |
||||
} |
||||
|
||||
main |
||||
@ -0,0 +1,12 @@
|
||||
#!/bin/sh |
||||
|
||||
cd "$(dirname "$0")" |
||||
HOME="$USERDATA_PATH" |
||||
|
||||
if [ -f "DIABDAT.MPQ" ] || [ -f "spawn.mpq" ]; then |
||||
./devilutionx |
||||
else |
||||
show "okay.png" |
||||
say "Missing DIABDAT.MPQ!"$'\n\n'"Please see readme.txt"$'\n'"in the Diablo folder"$'\n'"on your SD card."$'\n' |
||||
confirm only |
||||
fi |
||||
@ -0,0 +1,37 @@
|
||||
devilutionx(Diablo port) for MiniUI |
||||
==================================== |
||||
|
||||
Installation |
||||
-------- |
||||
- Copy this folder onto your SD card in the location /Roms/Native Games (SH)/ |
||||
|
||||
For the full game: |
||||
- Get the DIABDAT.MPQ from either the CD or GOG release (https://github.com/diasurgical/devilutionX/wiki/Extracting-the-.MPQs-from-the-GoG-installer) |
||||
- Copy the DIABDAT.MPQ into this folder |
||||
- Optional: If you want to also play the Hellfire expansion, copy hellfire.mpq, hfmonk.mpq, hfmusic.mpq, hfvoice.mpq into this fodler aswell |
||||
|
||||
For the free shareware version: |
||||
- Get the spawn.mpq (https://github.com/diasurgical/devilutionx-assets/releases/download/v2/spawn.mpq) |
||||
- Copy the spawn.mpq into this folder |
||||
|
||||
Controls |
||||
-------- |
||||
- D-Pad: move |
||||
- A: Attack nearest enemy, talk to NPC, pickup/place in inventory, OK in menus |
||||
- B: select spell, back in menus |
||||
- X: pickup items, open chests and doors, use item in inventory |
||||
- Y: cast spell, delete character in main menu |
||||
- L: use health item from belt |
||||
- R: use mana potion from belt |
||||
- Start: game menu (alt: L2 + Up) |
||||
- Select: toggle automap (alt: Start + Down) |
||||
|
||||
- L2 show quick acess overlay |
||||
- L2 + Up: game menu |
||||
- L2 + Down: toggle automap |
||||
- L2 + Left: character sheet |
||||
- L2 + Right: inventory |
||||
- L2 + Y: quest log |
||||
- L2 + B: spell book |
||||
- R2 + D-Pad: simulate mouse |
||||
- R2 + A;B;X;Y: spell hotkeys |
||||
@ -0,0 +1,23 @@
|
||||
#!/bin/sh |
||||
|
||||
progdir=`cd -- "$(dirname "$0")" >/dev/null 2>&1; pwd -P` |
||||
savedir="/mnt/SDCARD/Saves/CurrentProfile/saves/DevilutionX" |
||||
configdir="/mnt/SDCARD/Saves/CurrentProfile/config/DevilutionX" |
||||
|
||||
cd $progdir |
||||
|
||||
if [ -f "./FILES_HERE/DIABDAT.MPQ" ] || [ -f "./FILES_HERE/spawn.mpq" ]; then |
||||
# Timer initialisation |
||||
cd /mnt/SDCARD/App/PlayActivity |
||||
./playActivity "init" |
||||
|
||||
export LD_LIBRARY_PATH="$progdir/lib:$LD_LIBRARY_PATH" |
||||
SDL_HIDE_BATTERY=1 $progdir/devilutionx --data-dir $progdir/FILES_HERE --save-dir $savedir --config-dir $configdir |
||||
|
||||
# Timer registration |
||||
cd /mnt/SDCARD/App/PlayActivity |
||||
./playActivity "Diablo" |
||||
else |
||||
cd "/mnt/SDCARD/Emu/PORTS/Binaries/missingFile" |
||||
./infoPanel |
||||
fi |
||||
|
After Width: | Height: | Size: 32 KiB |
@ -0,0 +1,38 @@
|
||||
devilutionx(Diablo port) for OnionOS |
||||
==================================== |
||||
|
||||
Installation |
||||
-------- |
||||
- Activate the Ports Collection inside the Onion Installer on your device |
||||
- Copy everything from this archive to the root of your sd card |
||||
|
||||
For the full game: |
||||
- Get the DIABDAT.MPQ from either the CD or GOG release (https://github.com/diasurgical/devilutionX/wiki/Extracting-the-.MPQs-from-the-GoG-installer) |
||||
- Copy the DIABDAT.MPQ into Emu/PORTS/Binaries/Diablo.port/FILES_HERE |
||||
- Optional: If you want to also play the Hellfire expansion, copy hellfire.mpq, hfmonk.mpq, hfmusic.mpq, hfvoice.mpq into the same folder |
||||
|
||||
For the free shareware version: |
||||
- Get the spawn.mpq (https://github.com/diasurgical/devilutionx-assets/releases/download/v2/spawn.mpq) |
||||
- Copy the spawn.mpq into Emu/PORTS/Binaries/Diablo.port/FILES_HERE |
||||
|
||||
Controls |
||||
-------- |
||||
- D-Pad: move |
||||
- A: Attack nearest enemy, talk to NPC, pickup/place in inventory, OK in menus |
||||
- B: select spell, back in menus |
||||
- X: pickup items, open chests and doors, use item in inventory |
||||
- Y: cast spell, delete character in main menu |
||||
- L: use health item from belt |
||||
- R: use mana potion from belt |
||||
- Start: game menu (alt: L2 + Up) |
||||
- Select: toggle automap (alt: Start + Down) |
||||
|
||||
- L2 show quick acess overlay |
||||
- L2 + Up: game menu |
||||
- L2 + Down: toggle automap |
||||
- L2 + Left: character sheet |
||||
- L2 + Right: inventory |
||||
- L2 + Y: quest log |
||||
- L2 + B: spell book |
||||
- R2 + D-Pad: simulate mouse |
||||
- R2 + A;B;X;Y: spell hotkeys |
||||
@ -0,0 +1,6 @@
|
||||
#!/bin/sh |
||||
|
||||
export PATH="/opt/miyoomini-toolchain/usr/bin:${PATH}:/opt/miyoomini-toolchain/usr/arm-linux-gnueabihf/sysroot/bin" |
||||
export CROSS_COMPILE=/opt/miyoomini-toolchain/usr/bin/arm-linux-gnueabihf- |
||||
export PREFIX=/opt/miyoomini-toolchain/usr/arm-linux-gnueabihf/sysroot/usr |
||||
export UNION_PLATFORM=miyoomini |
||||
Loading…
Reference in new issue