Compare commits
159 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e1462b07e6 | |||
| adf31d5eb1 | |||
| 0e5083931f | |||
| 6bf5ec5145 | |||
| fc2f525052 | |||
| 3250cc27f5 | |||
| 71d1f5a9f9 | |||
| 4415537deb | |||
| 041295f058 | |||
| 360f4882d2 | |||
| 1894ffca46 | |||
| 8a1547a6e5 | |||
| eb4142835e | |||
| f3413bfd26 | |||
| e2e51ade18 | |||
| e9268c4467 | |||
| 2da8cf50c9 | |||
| 739225d222 | |||
| 7b01a7bf2e | |||
| 8499286899 | |||
| 319207e795 | |||
| 255ea2da26 | |||
| 8470f41c29 | |||
| 7c42a63ceb | |||
| 8b7109f603 | |||
| 483849b977 | |||
| 54d7ed365b | |||
| 7022eca36b | |||
| 1c58bcc3e9 | |||
| 44888584c4 | |||
| de170e9746 | |||
| 29b9b4a5a7 | |||
| 35a2ce4bfe | |||
| 17f5983771 | |||
| d901223ade | |||
| 88a5b3ff48 | |||
| e93ea5b919 | |||
| 5875ed880a | |||
| 8649085862 | |||
| eaad45879a | |||
| 3e1318edc0 | |||
| 47e386197d | |||
| 43777996a8 | |||
| b424e4d57e | |||
| 228f9fecea | |||
| b6151c131a | |||
| 38e12a33c4 | |||
| 8215b97cb8 | |||
| 91769a0e3e | |||
| dd2e952cf5 | |||
| 8bc72638c3 | |||
| 8a14cd1096 | |||
| d4d88de827 | |||
| 10e429d8f7 | |||
| db60f64f8e | |||
| f45d65381f | |||
| ef014a35e6 | |||
| 2d962bbb8c | |||
| 8a0315a2df | |||
| b61db77020 | |||
| 90823fad5a | |||
| 1f16987215 | |||
| 1ee0f5a654 | |||
| ec27775e81 | |||
| abcb3ad94b | |||
| fe78ae21a6 | |||
| 80d3114f79 | |||
| 1de22d816c | |||
| 004adaae14 | |||
| a3ab0e2bdf | |||
| b8a3998c51 | |||
| 31cbeb929b | |||
| d09cd4ffcd | |||
| a57cdc6f77 | |||
| 5bccc8a340 | |||
| dc4b27d65a | |||
| 0dcd52e5c7 | |||
| e5ad4e6f11 | |||
| e3ee258a92 | |||
| 30dcd7946f | |||
| b728e671bf | |||
| 2845baad6c | |||
| 1785a70f22 | |||
| 772fe2bb92 | |||
| 37db034815 | |||
| 5b4d8edf51 | |||
| 1a46d2ec96 | |||
| a6ceda989e | |||
| 4b90ae48c7 | |||
| ea76550fc7 | |||
| ccfa31a245 | |||
| 806398a65b | |||
| eeca7626d8 | |||
| f3d60e0ddd | |||
| 92ba43d675 | |||
| 18bf4b315f | |||
| 3221d8a988 | |||
| 5d8c3c8883 | |||
| 69681e608f | |||
| 719bb87eda | |||
| fa875596f2 | |||
| 94a5311cba | |||
| 461cc0930f | |||
| aa5379a8e0 | |||
| bf37645d72 | |||
| 3b65eaa4ef | |||
| c7ef690bc2 | |||
| 3be7eff02c | |||
| 39dcc0a73c | |||
| 80de5cc179 | |||
| f5e113c5aa | |||
| 52a08daf04 | |||
| 4587ca6dbe | |||
| 256ab01630 | |||
| 072838613a | |||
| aedae12e63 | |||
| 9c321862ca | |||
| 412b60a02f | |||
| 1876435e98 | |||
| 27d35e5a92 | |||
| 12dddc5e8e | |||
| 17a8f460e0 | |||
| 4cae72463e | |||
| a60d46141b | |||
| 68cd04175d | |||
| b2f0cae9ec | |||
| 06b512faa9 | |||
| c879c97066 | |||
| 9945041888 | |||
| 49e740b6f2 | |||
| 67191665df | |||
| 262958a2eb | |||
| e86e0ff693 | |||
| 4e1e180d21 | |||
| 50aed798a1 | |||
| 0ccff93fae | |||
| db0d179b37 | |||
| 0d2454ed65 | |||
| 412e9e262f | |||
| 7363e1c264 | |||
| 317c057e86 | |||
| 2b336a4582 | |||
| 7c5cccaf92 | |||
| 0127cbcf62 | |||
| a461d8f6fb | |||
| e0a1b23525 | |||
| 3228843886 | |||
| 9f61e635d2 | |||
| c7180762d9 | |||
| 178471bf20 | |||
| 5576f93ef6 | |||
| 88625c4350 | |||
| 98ec5519cf | |||
| 2f32abb511 | |||
| 8c4d4738cc | |||
| ccdd8e63ff | |||
| 5f0c0c8e2f | |||
| ef042be5ea | |||
| 0498d36428 |
@@ -0,0 +1,63 @@
|
||||
name: 'Install newer compiler'
|
||||
description: 'Installs ${compiler}-${version} from the distro repos when available, or from apt.llvm.org for clang on apt distros. Errors out for combinations without a known install path.'
|
||||
inputs:
|
||||
compiler:
|
||||
description: 'gcc or clang'
|
||||
required: true
|
||||
version:
|
||||
description: 'major version to install'
|
||||
required: true
|
||||
available_in_distro:
|
||||
description: 'true if compiler-${version} is in the distro repos (verify-compiler output)'
|
||||
required: true
|
||||
packageManager:
|
||||
description: 'apt, dnf, pacman, or zypper'
|
||||
required: true
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- shell: bash
|
||||
run: |
|
||||
install_apt() {
|
||||
local compiler="$1" version="$2"
|
||||
case "$compiler" in
|
||||
gcc) apt-get -y install "gcc-${version}" "g++-${version}" ;;
|
||||
clang) apt-get -y install "clang-${version}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_zypper() {
|
||||
local compiler="$1" version="$2"
|
||||
case "$compiler" in
|
||||
gcc) zypper --non-interactive in "gcc${version}" "gcc${version}-c++" ;;
|
||||
clang) zypper --non-interactive in "clang${version}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
bootstrap_apt_llvm_and_install() {
|
||||
local version="$1"
|
||||
apt-get update
|
||||
apt-get -y install --no-install-recommends wget lsb-release gnupg ca-certificates software-properties-common
|
||||
wget -q https://apt.llvm.org/llvm.sh
|
||||
chmod +x llvm.sh
|
||||
./llvm.sh "$version"
|
||||
}
|
||||
|
||||
fail_no_path() {
|
||||
local compiler="$1" version="$2"
|
||||
echo "Minimum version not readily available." >&2
|
||||
echo "An alternative installation method for ${compiler} ${version} is needed." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
compiler='${{ inputs.compiler }}'
|
||||
version='${{ inputs.version }}'
|
||||
available_in_distro='${{ inputs.available_in_distro }}'
|
||||
package_manager='${{ inputs.packageManager }}'
|
||||
|
||||
case "$package_manager:$available_in_distro:$compiler" in
|
||||
apt:true:*) install_apt "$compiler" "$version" ;;
|
||||
apt:false:clang) bootstrap_apt_llvm_and_install "$version" ;;
|
||||
zypper:true:*) install_zypper "$compiler" "$version" ;;
|
||||
*) fail_no_path "$compiler" "$version" ;;
|
||||
esac
|
||||
@@ -0,0 +1,16 @@
|
||||
name: 'Install SDL2_net from source'
|
||||
description: 'Build and install SDL2_net from source. Used when the distro-shipped SDL2_net is older than 2.2.0 (no cmake config file).'
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- shell: bash
|
||||
run: |
|
||||
if [ "$(id -u)" -ne 0 ]; then SUDO=sudo; else SUDO=""; fi
|
||||
mkdir -p deps
|
||||
if [ ! -d "deps/SDL2_net-2.2.0" ]; then
|
||||
curl -fsSL https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz | tar xz -C deps
|
||||
fi
|
||||
cd deps/SDL2_net-2.2.0
|
||||
./configure
|
||||
make
|
||||
$SUDO make install
|
||||
@@ -0,0 +1,18 @@
|
||||
name: 'Install tinyxml2 from source'
|
||||
description: 'Build and install tinyxml2 from source. Used when the distro-shipped tinyxml2 is older than 10.0.0 (no cmake config file).'
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- shell: bash
|
||||
run: |
|
||||
if [ "$(id -u)" -ne 0 ]; then SUDO=sudo; else SUDO=""; fi
|
||||
mkdir -p deps
|
||||
if [ ! -d "deps/tinyxml2-10.0.0" ]; then
|
||||
curl -fsSL https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz | tar xz -C deps
|
||||
fi
|
||||
cd deps/tinyxml2-10.0.0
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
$SUDO make install
|
||||
@@ -0,0 +1,72 @@
|
||||
name: 'Verify compiler version meets the project minimum'
|
||||
description: 'Compares the installed compiler against the version in linux-build-deps/minimum-${compiler}-version.txt and reports whether we need to install a newer version and whether that version is available in the distro repos.'
|
||||
inputs:
|
||||
compiler:
|
||||
description: 'gcc or clang'
|
||||
required: true
|
||||
packageManager:
|
||||
description: 'apt, dnf, pacman, or zypper'
|
||||
required: true
|
||||
outputs:
|
||||
needs_install:
|
||||
description: 'true if default version is below the minimum'
|
||||
value: ${{ steps.check.outputs.needs_install }}
|
||||
available_in_distro:
|
||||
description: 'true if compiler-${min} can be installed from the distro repos'
|
||||
value: ${{ steps.check.outputs.available_in_distro }}
|
||||
cc:
|
||||
description: 'resolved C compiler binary name to use downstream'
|
||||
value: ${{ steps.check.outputs.cc }}
|
||||
cxx:
|
||||
description: 'resolved C++ compiler binary name to use downstream'
|
||||
value: ${{ steps.check.outputs.cxx }}
|
||||
version:
|
||||
description: 'the minimum version read from linux-build-deps/minimum-${compiler}-version.txt'
|
||||
value: ${{ steps.check.outputs.version }}
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- id: check
|
||||
shell: bash
|
||||
run: |
|
||||
get_min() { cat "linux-build-deps/minimum-$1-version.txt"; }
|
||||
get_default_major() { "$1" --version 2>/dev/null | head -1 | grep -oE '[0-9]+' | head -1; }
|
||||
cxx_for() { case "$1" in gcc) echo g++ ;; clang) echo clang++ ;; esac; }
|
||||
|
||||
probe_distro() {
|
||||
local compiler="$1" min="$2" package_manager="$3"
|
||||
case "$package_manager" in
|
||||
apt) apt-cache show "${compiler}-${min}" >/dev/null 2>&1 ;;
|
||||
dnf) return 1 ;; # Fedora ships a single gcc/clang version, no -N packages
|
||||
pacman) return 1 ;; # Arch ships a single gcc/clang version, no -N packages
|
||||
zypper) zypper -n se -x "${compiler}${min}" 2>/dev/null | grep -q "${compiler}${min}" ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
compiler='${{ inputs.compiler }}'
|
||||
package_manager='${{ inputs.packageManager }}'
|
||||
min=$(get_min "$compiler")
|
||||
default_major=$(get_default_major "$compiler")
|
||||
cc_base="$compiler"
|
||||
cxx_base=$(cxx_for "$compiler")
|
||||
|
||||
if [ -n "$default_major" ] && [ "$default_major" -ge "$min" ]; then
|
||||
needs_install=false
|
||||
cc="$cc_base"; cxx="$cxx_base"
|
||||
available_in_distro=true
|
||||
else
|
||||
needs_install=true
|
||||
cc="$cc_base-$min"; cxx="$cxx_base-$min"
|
||||
probe_distro "$cc_base" "$min" "$package_manager" && available_in_distro=true || available_in_distro=false
|
||||
fi
|
||||
|
||||
echo "compiler=$compiler min=$min default_major=${default_major:-NONE}"
|
||||
echo "needs_install=$needs_install available_in_distro=$available_in_distro cc=$cc cxx=$cxx"
|
||||
{
|
||||
echo "needs_install=$needs_install"
|
||||
echo "available_in_distro=$available_in_distro"
|
||||
echo "cc=$cc"
|
||||
echo "cxx=$cxx"
|
||||
echo "version=$min"
|
||||
} >> "$GITHUB_OUTPUT"
|
||||
@@ -0,0 +1,23 @@
|
||||
ports:
|
||||
- name: libsdl2
|
||||
select: [ universal ]
|
||||
- name: libsdl2_net
|
||||
select: [ universal ]
|
||||
- name: libpng
|
||||
select: [ universal ]
|
||||
- name: glew
|
||||
select: [ universal ]
|
||||
- name: libzip
|
||||
select: [ universal ]
|
||||
- name: nlohmann-json
|
||||
select: [ universal ]
|
||||
- name: tinyxml2
|
||||
select: [ universal ]
|
||||
- name: libogg
|
||||
select: [ universal ]
|
||||
- name: libopus
|
||||
select: [ universal ]
|
||||
- name: opusfile
|
||||
select: [ universal ]
|
||||
- name: libvorbis
|
||||
select: [ universal ]
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
with:
|
||||
submodules: true
|
||||
- name: Configure ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
uses: hendrikmuhs/ccache-action@v1.2.22
|
||||
with:
|
||||
save: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
key: ${{ runner.os }}-otr-ccache-${{ github.ref }}-${{ github.sha }}
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt) libzip-dev zipcmp zipmerge ziptool
|
||||
sudo apt-get install -y $(cat linux-build-deps/apt.txt)
|
||||
- name: Restore Cached deps folder
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
@@ -36,9 +36,12 @@ jobs:
|
||||
path: deps
|
||||
- name: Create deps folder
|
||||
run: mkdir -p deps
|
||||
- name: Add ccache to PATH
|
||||
run: |
|
||||
echo "/usr/lib/ccache" >> "$GITHUB_PATH"
|
||||
echo "/usr/local/opt/ccache/libexec" >> "$GITHUB_PATH"
|
||||
- name: Install latest SDL
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
if [ ! -d "deps/SDL2-2.30.3" ]; then
|
||||
wget https://github.com/libsdl-org/SDL/releases/download/release-2.30.3/SDL2-2.30.3.tar.gz
|
||||
tar -xzf SDL2-2.30.3.tar.gz -C deps
|
||||
@@ -48,23 +51,14 @@ jobs:
|
||||
make -j 10
|
||||
sudo make install
|
||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Install latest tinyxml2
|
||||
run: |
|
||||
sudo apt-get remove libtinyxml2-dev
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
if [ ! -d "deps/tinyxml2-10.0.0" ]; then
|
||||
wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz
|
||||
tar -xzf 10.0.0.tar.gz -C deps
|
||||
fi
|
||||
cd deps/tinyxml2-10.0.0
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
- uses: ./.github/actions/install-sdl2-net
|
||||
- name: Copy SDL libs to multiarch dir
|
||||
run: sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Remove distro tinyxml2
|
||||
run: sudo apt-get remove libtinyxml2-dev
|
||||
- uses: ./.github/actions/install-tinyxml2
|
||||
- name: Generate soh.o2r
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release
|
||||
cmake --build build-cmake --config Release --target GenerateSohOtr -j3
|
||||
- name: Upload soh.o2r
|
||||
@@ -82,46 +76,17 @@ jobs:
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- name: Setup Macports
|
||||
uses: melusina-org/setup-macports@v1
|
||||
with:
|
||||
parameters: '.github/macports.yml'
|
||||
- name: Configure ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
uses: hendrikmuhs/ccache-action@v1.2.22
|
||||
with:
|
||||
create-symlink: true
|
||||
key: ${{ runner.os }} # ccache-macos-{{ timestamp }}
|
||||
max-size: "2G"
|
||||
evict-old-files: job
|
||||
save: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
key: ${{ runner.os }}-14-ccache-${{ github.ref }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-14-ccache-${{ github.ref }}
|
||||
${{ runner.os }}-14-ccache
|
||||
# Needed to apply sudo for macports cache restore
|
||||
- name: Install gtar wrapper
|
||||
run: |
|
||||
sudo mv /opt/homebrew/bin/gtar /opt/homebrew/bin/gtar.orig
|
||||
sudo cp .github/workflows/gtar /opt/homebrew/bin/gtar
|
||||
sudo chmod +x /opt/homebrew/bin/gtar
|
||||
- name: Restore Cached MacPorts
|
||||
id: restore-cache-macports
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
key: ${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-14-macports-${{ hashFiles('.github/workflows/macports-deps.txt') }}-
|
||||
${{ runner.os }}-14-macports-
|
||||
path: /opt/local/
|
||||
# Updated PATH applies to the next step and onwards
|
||||
- name: Install MacPorts (if necessary)
|
||||
run: |
|
||||
if command -v /opt/local/bin/port 2>&1 >/dev/null; then
|
||||
echo "MacPorts already installed"
|
||||
else
|
||||
echo "Installing MacPorts"
|
||||
wget https://github.com/macports/macports-base/releases/download/v2.11.5/MacPorts-2.11.5-14-Sonoma.pkg
|
||||
sudo installer -pkg ./MacPorts-2.11.5-14-Sonoma.pkg -target /
|
||||
fi
|
||||
echo "/opt/local/bin:/opt/local/sbin" >> "$GITHUB_PATH"
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew uninstall --ignore-dependencies libpng
|
||||
sudo port install $(cat .github/workflows/macports-deps.txt)
|
||||
brew install ninja
|
||||
- name: Download soh.o2r
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
@@ -129,9 +94,8 @@ jobs:
|
||||
path: build-cmake/soh
|
||||
- name: Build SoH
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/opt/homebrew/opt/ccache/libexec:/usr/local/opt/ccache/libexec:$PATH"
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DBUILD_REMOTE_CONTROL=1
|
||||
cmake --build build-cmake --config Release --parallel 10
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DBUILD_REMOTE_CONTROL=1
|
||||
cmake --build build-cmake -j
|
||||
(cd build-cmake && cpack)
|
||||
|
||||
mv _packages/*.dmg SoH.dmg
|
||||
@@ -143,12 +107,6 @@ jobs:
|
||||
path: |
|
||||
SoH.dmg
|
||||
readme.txt
|
||||
- name: Save Cache MacPorts
|
||||
if: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
key: ${{ steps.restore-cache-macports.outputs.cache-primary-key }}
|
||||
path: /opt/local/
|
||||
|
||||
build-linux:
|
||||
needs: generate-soh-otr
|
||||
@@ -161,9 +119,9 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
|
||||
sudo apt-get install -y $(cat linux-build-deps/apt.txt)
|
||||
- name: Configure ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
uses: hendrikmuhs/ccache-action@v1.2.22
|
||||
with:
|
||||
save: ${{ github.ref_name == github.event.repository.default_branch }}
|
||||
key: ${{ runner.os }}-ccache-${{ github.ref }}-${{ github.sha }}
|
||||
@@ -181,9 +139,12 @@ jobs:
|
||||
path: deps
|
||||
- name: Create deps folder
|
||||
run: mkdir -p deps
|
||||
- name: Add ccache to PATH
|
||||
run: |
|
||||
echo "/usr/lib/ccache" >> "$GITHUB_PATH"
|
||||
echo "/usr/local/opt/ccache/libexec" >> "$GITHUB_PATH"
|
||||
- name: Install latest SDL
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
if [ ! -d "deps/SDL2-2.30.3" ]; then
|
||||
wget https://github.com/libsdl-org/SDL/releases/download/release-2.30.3/SDL2-2.30.3.tar.gz
|
||||
tar -xzf SDL2-2.30.3.tar.gz -C deps
|
||||
@@ -193,35 +154,15 @@ jobs:
|
||||
make -j 10
|
||||
sudo make install
|
||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Install latest SDL_net
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
if [ ! -d "deps/SDL2_net-2.2.0" ]; then
|
||||
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz
|
||||
tar -xzf SDL2_net-2.2.0.tar.gz -C deps
|
||||
fi
|
||||
cd deps/SDL2_net-2.2.0
|
||||
./configure
|
||||
make -j 10
|
||||
sudo make install
|
||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Install latest tinyxml2
|
||||
run: |
|
||||
sudo apt-get remove libtinyxml2-dev
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
if [ ! -d "deps/tinyxml2-10.0.0" ]; then
|
||||
wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz
|
||||
tar -xzf 10.0.0.tar.gz -C deps
|
||||
fi
|
||||
cd deps/tinyxml2-10.0.0
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
- uses: ./.github/actions/install-sdl2-net
|
||||
- name: Copy SDL libs to multiarch dir
|
||||
run: sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Remove distro tinyxml2
|
||||
run: sudo apt-get remove libtinyxml2-dev
|
||||
- uses: ./.github/actions/install-tinyxml2
|
||||
- name: Install libzip without crypto
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
sudo apt-get remove -y libzip-dev
|
||||
if [ ! -d "deps/libzip-1.10.1" ]; then
|
||||
wget https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.gz
|
||||
tar -xzf libzip-1.10.1.tar.gz -C deps
|
||||
@@ -240,7 +181,6 @@ jobs:
|
||||
path: build-cmake/soh
|
||||
- name: Build SoH
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_REMOTE_CONTROL=1
|
||||
cmake --build build-cmake --config Release -j3
|
||||
(cd build-cmake && cpack -G External)
|
||||
@@ -277,7 +217,7 @@ jobs:
|
||||
with:
|
||||
submodules: true
|
||||
- name: Configure sccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
uses: hendrikmuhs/ccache-action@v1.2.22
|
||||
with:
|
||||
variant: sccache
|
||||
max-size: "2G"
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
exec sudo /opt/homebrew/bin/gtar.orig "$@"
|
||||
@@ -1 +0,0 @@
|
||||
libsdl2 +universal libsdl2_net +universal libpng +universal glew +universal libzip +universal nlohmann-json +universal tinyxml2 +universal libogg +universal libopus +universal opusfile +universal libvorbis +universal
|
||||
@@ -5,68 +5,200 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
setup:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
distros: ${{ steps.set-matrix.outputs.distros }}
|
||||
steps:
|
||||
- name: Resolve distro images
|
||||
id: set-matrix
|
||||
uses: actions/github-script@v9
|
||||
with:
|
||||
script: |
|
||||
const today = new Date().toISOString().slice(0, 10);
|
||||
const fetchJson = async (url) => {
|
||||
const res = await fetch(url);
|
||||
if (!res.ok) throw new Error(`${url} -> ${res.status}`);
|
||||
return res.json();
|
||||
};
|
||||
|
||||
// All non-EOL Ubuntu LTS releases.
|
||||
const ubuntuCycles = await fetchJson('https://endoflife.date/api/ubuntu.json');
|
||||
const ubuntu = ubuntuCycles
|
||||
.filter(c => c.lts === true && c.eol > today)
|
||||
.map(c => ({ image: `ubuntu:${c.cycle}`, packageManager: 'apt' }));
|
||||
|
||||
// All non-EOL Fedora releases.
|
||||
const fedoraCycles = await fetchJson('https://endoflife.date/api/fedora.json');
|
||||
const fedora = fedoraCycles
|
||||
.filter(c => c.eol > today)
|
||||
.map(c => ({ image: `fedora:${c.cycle}`, packageManager: 'dnf' }));
|
||||
|
||||
// Rolling.
|
||||
const arch = [{ image: 'archlinux:base', packageManager: 'pacman' }];
|
||||
|
||||
// Rolling Tumbleweed and all non-EOL Leap releases.
|
||||
const leapCycles = await fetchJson('https://endoflife.date/api/opensuse.json');
|
||||
const opensuse = [
|
||||
{ image: 'opensuse/tumbleweed:latest', packageManager: 'zypper' },
|
||||
...leapCycles
|
||||
.filter(c => c.eol > today)
|
||||
.map(c => ({ image: `opensuse/leap:${c.cycle}`, packageManager: 'zypper' })),
|
||||
];
|
||||
|
||||
// Previous, current, and next Debian releases.
|
||||
const debian = ['oldstable', 'stable', 'testing']
|
||||
.map(t => ({ image: `debian:${t}`, packageManager: 'apt' }));
|
||||
|
||||
const distros = [...ubuntu, ...fedora, ...arch, ...opensuse, ...debian];
|
||||
core.info(`Resolved distros: ${JSON.stringify(distros)}`);
|
||||
core.setOutput('distros', JSON.stringify(distros));
|
||||
build:
|
||||
needs: setup
|
||||
name: build (${{ matrix.distro.image }}, ${{ matrix.cc }})
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
image: ["archlinux:base", "opensuse/tumbleweed:latest", "ubuntu:mantic", "debian:bookworm", "fedora:39"]
|
||||
distro: ${{ fromJSON(needs.setup.outputs.distros) }}
|
||||
cc: ["gcc", "clang"]
|
||||
include:
|
||||
- cxx: g++
|
||||
cc: gcc
|
||||
- cxx: clang++
|
||||
cc: clang
|
||||
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
image: ${{ matrix.distro.image }}
|
||||
steps:
|
||||
- name: Install dependencies (pacman)
|
||||
if: ${{ matrix.image == 'archlinux:base' }}
|
||||
- name: Bootstrap git
|
||||
run: |
|
||||
echo arch
|
||||
echo pacman -S ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
|
||||
pacman -Syu --noconfirm
|
||||
pacman -S --noconfirm ${{ matrix.cc }} git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net
|
||||
- name: Install dependencies (dnf)
|
||||
if: ${{ matrix.image == 'fedora:39' }}
|
||||
run: |
|
||||
echo fedora
|
||||
echo dnf install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel
|
||||
dnf -y upgrade
|
||||
dnf -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} wget git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools tinyxml2-devel spdlog-devel
|
||||
- name: Install dependencies (apt)
|
||||
if: ${{ matrix.image == 'ubuntu:mantic' || matrix.image == 'debian:bookworm' }}
|
||||
run: |
|
||||
echo debian based
|
||||
echo apt-get install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
|
||||
apt-get update
|
||||
apt-get -y full-upgrade
|
||||
apt-get -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev
|
||||
- name: Install dependencies (zypper)
|
||||
if: ${{ matrix.image == 'opensuse/tumbleweed:latest' }}
|
||||
run: |
|
||||
echo openSUSE
|
||||
echo zypper in ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} ${{ matrix.cc == 'clang' && 'libstdc++-devel' || '' }} git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||
zypper --non-interactive dup
|
||||
zypper --non-interactive in ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} ${{ matrix.cc == 'clang' && 'libstdc++-devel' || '' }} git cmake ninja SDL2-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel
|
||||
- name: Install latest nlohmann
|
||||
if: ${{ matrix.image == 'fedora:39' }}
|
||||
run: |
|
||||
wget https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.tar.gz
|
||||
tar -xzvf v3.11.3.tar.gz
|
||||
cd json-3.11.3
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
sudo make install
|
||||
case "${{ matrix.distro.packageManager }}" in
|
||||
apt) apt-get update && apt-get -y install git ;;
|
||||
dnf) dnf -y install git ;;
|
||||
pacman) pacman -Sy --noconfirm git ;;
|
||||
zypper) zypper --non-interactive in git ;;
|
||||
esac
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install dependencies (pacman)
|
||||
if: ${{ matrix.distro.packageManager == 'pacman' }}
|
||||
run: |
|
||||
pacman -Syu --noconfirm
|
||||
pacman -S --noconfirm ${{ matrix.cc }} $(cat linux-build-deps/pacman.txt)
|
||||
- name: Install dependencies (dnf)
|
||||
if: ${{ matrix.distro.packageManager == 'dnf' }}
|
||||
run: |
|
||||
dnf -y upgrade
|
||||
dnf -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} $(cat linux-build-deps/dnf.txt)
|
||||
- name: Install dependencies (apt)
|
||||
if: ${{ matrix.distro.packageManager == 'apt' }}
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get -y full-upgrade
|
||||
apt-get -y install ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'g++') || '' }} $(cat linux-build-deps/apt.txt)
|
||||
- name: Install dependencies (zypper)
|
||||
if: ${{ matrix.distro.packageManager == 'zypper' }}
|
||||
run: |
|
||||
zypper --non-interactive dup
|
||||
zypper --non-interactive in ${{ matrix.cc }} ${{ (matrix.cxx == 'g++' && 'gcc-c++') || '' }} ${{ matrix.cc == 'clang' && 'libstdc++-devel' || '' }} $(cat linux-build-deps/zypper.txt)
|
||||
- name: Verify compiler version
|
||||
id: verify-compiler
|
||||
uses: ./.github/actions/verify-compiler
|
||||
with:
|
||||
compiler: ${{ matrix.cc }}
|
||||
packageManager: ${{ matrix.distro.packageManager }}
|
||||
- name: Install newer compiler
|
||||
if: ${{ steps.verify-compiler.outputs.needs_install == 'true' }}
|
||||
uses: ./.github/actions/install-newer-compiler
|
||||
with:
|
||||
compiler: ${{ matrix.cc }}
|
||||
version: ${{ steps.verify-compiler.outputs.version }}
|
||||
available_in_distro: ${{ steps.verify-compiler.outputs.available_in_distro }}
|
||||
packageManager: ${{ matrix.distro.packageManager }}
|
||||
- name: Verify/update cmake
|
||||
run: |
|
||||
ver_le() { [ "$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -1)" = "$1" ]; }
|
||||
required=$(grep -m1 -oE '[0-9]+\.[0-9]+(\.[0-9]+)?' CMakeLists.txt)
|
||||
installed=$(cmake --version | grep -m1 -oE '[0-9]+\.[0-9]+(\.[0-9]+)?')
|
||||
echo "cmake required: $required installed: $installed"
|
||||
if ver_le "$required" "$installed"; then
|
||||
echo "ok"
|
||||
else
|
||||
case "${{ matrix.distro.packageManager }}" in
|
||||
apt) DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends pipx ;;
|
||||
dnf) dnf -y install pipx ;;
|
||||
pacman) pacman -S --noconfirm python-pipx ;;
|
||||
zypper) zypper --non-interactive in python3-pipx ;;
|
||||
esac
|
||||
pipx install cmake
|
||||
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
||||
fi
|
||||
- name: Verify/update tinyxml2
|
||||
id: tinyxml2-check
|
||||
if: ${{ matrix.distro.packageManager == 'apt' }}
|
||||
run: |
|
||||
if find /usr -iname 'tinyxml2*config.cmake' 2>/dev/null | grep -q .; then
|
||||
echo "ok"
|
||||
echo "needs_install=false" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
apt-get remove -y libtinyxml2-dev
|
||||
apt-get install -y curl
|
||||
echo "needs_install=true" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
- uses: ./.github/actions/install-tinyxml2
|
||||
if: ${{ steps.tinyxml2-check.outputs.needs_install == 'true' }}
|
||||
- name: Verify/update SDL2_net
|
||||
id: sdl2-net-check
|
||||
if: ${{ matrix.distro.packageManager == 'apt' }}
|
||||
run: |
|
||||
if find /usr -iname 'sdl2_net*config.cmake' 2>/dev/null | grep -q .; then
|
||||
echo "ok"
|
||||
echo "needs_install=false" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
apt-get install -y curl
|
||||
echo "needs_install=true" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
- uses: ./.github/actions/install-sdl2-net
|
||||
if: ${{ steps.sdl2-net-check.outputs.needs_install == 'true' }}
|
||||
# https://github.com/fmtlib/fmt/issues/4807
|
||||
- name: Check fmt/clang consteval compat
|
||||
id: fmt-check
|
||||
shell: bash
|
||||
run: |
|
||||
cat > /tmp/fmt-consteval-test.cpp <<'EOF'
|
||||
#include <fmt/format.h>
|
||||
int main() { auto s = fmt::format(FMT_STRING("{}"), 42); return 0; }
|
||||
EOF
|
||||
if "$CXX" -std=c++20 -c /tmp/fmt-consteval-test.cpp -o /tmp/fmt-consteval-test.o; then
|
||||
echo "ok — fmt/clang consteval compatible"
|
||||
echo "needs_workaround=false" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "incompatible — applying workaround"
|
||||
echo "needs_workaround=true" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
env:
|
||||
CXX: ${{ steps.verify-compiler.outputs.cxx }}
|
||||
- name: Build SoH
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_REMOTE_CONTROL=1
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_REMOTE_CONTROL=1 ${EXTRA_CMAKE_FLAGS}
|
||||
cmake --build build-cmake --config Release -j3
|
||||
env:
|
||||
CC: ${{ matrix.cc }}
|
||||
CXX: ${{ matrix.cxx }}
|
||||
CC: ${{ steps.verify-compiler.outputs.cc }}
|
||||
CXX: ${{ steps.verify-compiler.outputs.cxx }}
|
||||
# https://github.com/fmtlib/fmt/issues/4807
|
||||
EXTRA_CMAKE_FLAGS: ${{ steps.fmt-check.outputs.needs_workaround == 'true' && '-DCMAKE_CXX_FLAGS=-DFMT_CONSTEVAL=constexpr' || '' }}
|
||||
build-nix:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- uses: cachix/install-nix-action@v31
|
||||
- name: Build SoH in nix dev shell
|
||||
run: |
|
||||
nix develop ./linux-build-deps -c bash -c '
|
||||
cmake --no-warn-unused-cli -H. -Bbuild-cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_REMOTE_CONTROL=1
|
||||
cmake --build build-cmake --config Release -j3
|
||||
'
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
[submodule "libultraship"]
|
||||
path = libultraship
|
||||
url = https://github.com/kenix3/libultraship.git
|
||||
branch = port-maintenance
|
||||
[submodule "ZAPDTR"]
|
||||
path = ZAPDTR
|
||||
url = https://github.com/harbourmasters/ZAPDTR
|
||||
|
||||
@@ -81,10 +81,24 @@ add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/utf-8>)
|
||||
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/Zc:preprocessor>)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
if(NOT CMAKE_VS_PLATFORM_NAME)
|
||||
set(CMAKE_VS_PLATFORM_NAME "x64")
|
||||
endif()
|
||||
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" MATCHES "^[Aa][Rr][Mm]64$")
|
||||
set(SOH_WINDOWS_ARM64 TRUE)
|
||||
else()
|
||||
set(SOH_WINDOWS_ARM64 FALSE)
|
||||
endif()
|
||||
|
||||
include(CMake/automate-vcpkg.cmake)
|
||||
|
||||
set(VCPKG_TRIPLET x64-windows-static)
|
||||
set(VCPKG_TARGET_TRIPLET x64-windows-static)
|
||||
if(SOH_WINDOWS_ARM64)
|
||||
set(VCPKG_TRIPLET arm64-windows-static)
|
||||
set(VCPKG_TARGET_TRIPLET arm64-windows-static)
|
||||
endif()
|
||||
|
||||
vcpkg_bootstrap()
|
||||
vcpkg_install_packages(zlib bzip2 libzip libpng sdl2 sdl2-net glew glfw3 nlohmann-json tinyxml2 spdlog libogg libvorbis opus opusfile)
|
||||
@@ -103,7 +117,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
message("${CMAKE_VS_PLATFORM_NAME} architecture in use")
|
||||
|
||||
if(NOT ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64"
|
||||
OR "${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32"))
|
||||
OR "${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32"
|
||||
OR SOH_WINDOWS_ARM64))
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} arch is not supported!")
|
||||
endif()
|
||||
endif()
|
||||
@@ -121,6 +136,10 @@ set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
||||
set(CMAKE_OBJCXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
||||
endif()
|
||||
# IEEE 754 compliant floating-point rounding on arm64 macOS
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
add_compile_options(-Xarch_arm64 -ffp-contract=off)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE )
|
||||
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build." FORCE)
|
||||
|
||||
@@ -86,107 +86,77 @@ C:\Program Files\CMake\bin\cmake.exe --build build-cmake --target ExtractAssetHe
|
||||
```
|
||||
|
||||
## Linux
|
||||
### Clone the repo and enter the directory
|
||||
```sh
|
||||
git clone https://github.com/HarbourMasters/Shipwright.git
|
||||
cd Shipwright
|
||||
```
|
||||
### Install dependencies
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Minimum compiler versions:
|
||||
> - GCC: see [`linux-build-deps/minimum-gcc-version.txt`](../linux-build-deps/minimum-gcc-version.txt)
|
||||
> - Clang: see [`linux-build-deps/minimum-clang-version.txt`](../linux-build-deps/minimum-clang-version.txt)
|
||||
|
||||
#### Debian/Ubuntu
|
||||
```sh
|
||||
# using gcc
|
||||
apt-get install gcc g++ git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev libopusfile-dev libvorbis-dev
|
||||
apt-get install gcc g++ $(cat linux-build-deps/apt.txt)
|
||||
|
||||
# or using clang
|
||||
apt-get install clang git cmake ninja-build lsb-release libsdl2-dev libpng-dev libsdl2-net-dev libzip-dev zipcmp zipmerge ziptool nlohmann-json3-dev libtinyxml2-dev libspdlog-dev libopengl-dev libopusfile-dev libvorbis-dev
|
||||
apt-get install clang $(cat linux-build-deps/apt.txt)
|
||||
```
|
||||
#### Arch
|
||||
```sh
|
||||
# using gcc
|
||||
pacman -S gcc git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net opusfile libvorbis
|
||||
pacman -S gcc $(cat linux-build-deps/pacman.txt)
|
||||
|
||||
# or using clang
|
||||
pacman -S clang git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net opusfile libvorbis
|
||||
pacman -S clang $(cat linux-build-deps/pacman.txt)
|
||||
```
|
||||
#### Fedora
|
||||
```sh
|
||||
# using gcc
|
||||
dnf install gcc gcc-c++ git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel opusfile-devel libvorbis-devel
|
||||
dnf install gcc gcc-c++ $(cat linux-build-deps/dnf.txt)
|
||||
|
||||
# or using clang
|
||||
dnf install clang git cmake ninja-build lsb_release SDL2-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel opusfile-devel libvorbis-devel
|
||||
dnf install clang $(cat linux-build-deps/dnf.txt)
|
||||
```
|
||||
#### openSUSE
|
||||
```sh
|
||||
# using gcc
|
||||
zypper in gcc gcc-c++ $(cat linux-build-deps/zypper.txt)
|
||||
|
||||
# or using clang
|
||||
zypper in clang libstdc++-devel $(cat linux-build-deps/zypper.txt)
|
||||
```
|
||||
#### Nix
|
||||
You can use a `flake.nix` file to instantly setup a development environment using [Nix](https://nixos.org/). Write this `flake.nix` file in the root directory:
|
||||
This repository provides a [`linux-build-deps/flake.nix`](../linux-build-deps/flake.nix) for setting up a development environment using [Nix](https://nixos.org/).
|
||||
|
||||
```nix
|
||||
{
|
||||
description = "Shipwright development environment";
|
||||
Run
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
# Build tools
|
||||
clang
|
||||
git
|
||||
cmake
|
||||
ninja
|
||||
lsb-release
|
||||
pkg-config
|
||||
|
||||
# SDL2 libraries
|
||||
SDL2
|
||||
SDL2.dev
|
||||
SDL2_net
|
||||
|
||||
# Other libraries
|
||||
libpng
|
||||
libzip
|
||||
nlohmann_json
|
||||
tinyxml-2
|
||||
spdlog
|
||||
libGL
|
||||
libGL.dev
|
||||
bzip2
|
||||
|
||||
# X11 libraries
|
||||
xorg.libX11
|
||||
|
||||
# Audio libraries
|
||||
libogg
|
||||
libogg.dev
|
||||
libvorbis
|
||||
libvorbis.dev
|
||||
libopus
|
||||
libopus.dev
|
||||
opusfile
|
||||
opusfile.dev
|
||||
];
|
||||
shellHook = ''
|
||||
echo "Shipwright development environment loaded"
|
||||
echo "Available tools: clang, git, cmake, ninja"
|
||||
'';
|
||||
};
|
||||
});
|
||||
}
|
||||
```sh
|
||||
nix develop ./linux-build-deps
|
||||
```
|
||||
|
||||
Now type `nix develop` and you will be dropped into a shell with all dependencies, ensuring that all build commands work.
|
||||
from the repo root and you'll be dropped into a shell with all dependencies, ensuring that all build commands work.
|
||||
|
||||
### Verify cmake version
|
||||
Older distros may ship a cmake older than this project requires. Compare:
|
||||
```sh
|
||||
cmake --version # your installed version
|
||||
head -1 CMakeLists.txt # the project's required minimum
|
||||
```
|
||||
If your cmake is too old, you can install a newer version via:
|
||||
- [pypi](https://pypi.org/project/cmake/)
|
||||
- [kitware apt repo](https://apt.kitware.com/) (Ubuntu only)
|
||||
- [Homebrew](https://formulae.brew.sh/formula/cmake)
|
||||
|
||||
### Build
|
||||
|
||||
_Note: If you're using Visual Studio Code, the [CMake Tools plugin](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools) makes it very easy to just press run and debug._
|
||||
|
||||
```bash
|
||||
# Clone the repo and enter the directory
|
||||
git clone https://github.com/HarbourMasters/Shipwright.git
|
||||
cd Shipwright
|
||||
|
||||
# Clone the submodules
|
||||
git submodule update --init
|
||||
|
||||
@@ -207,6 +177,32 @@ cmake --build build-cmake
|
||||
# To develop the project open the repository in VSCode (or your preferred editor)
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> Some older distros ship packages without the cmake config files SoH's `find_package` calls need. If cmake fails with `Could not find a package configuration file provided by "<package>"`.
|
||||
>
|
||||
> Known failing package versions:
|
||||
> - [tinyxml2](https://github.com/leethomason/tinyxml2) < 10.0.0
|
||||
> - [SDL2_net](https://github.com/libsdl-org/SDL_net) < 2.2.0
|
||||
>
|
||||
> You can install a newer version of that package either
|
||||
>
|
||||
> by using [Homebrew](https://brew.sh/):
|
||||
> ```sh
|
||||
> brew install <package>
|
||||
> ```
|
||||
> When invoking cmake, add `-DCMAKE_PREFIX_PATH=$(brew --prefix)` so it knows to search brew's prefix for the installed package.
|
||||
>
|
||||
> ***OR***
|
||||
>
|
||||
> by building from source:
|
||||
>
|
||||
> Reference examples:
|
||||
> - [`.github/actions/install-tinyxml2/action.yml`](../.github/actions/install-tinyxml2/action.yml)
|
||||
> - [`.github/actions/install-sdl2-net/action.yml`](../.github/actions/install-sdl2-net/action.yml)
|
||||
|
||||
> [!TIP]
|
||||
> There are known incompatibilities between some newer versions of `clang` and older versions of [`{fmt}`](https://github.com/fmtlib/fmt) (see https://github.com/fmtlib/fmt/issues/4807). If you see a `call to consteval function 'fmt::basic_format_string<...>' is not a constant expression` error, you can work around it by passing `-DCMAKE_CXX_FLAGS=-DFMT_CONSTEVAL=constexpr` to `cmake`.
|
||||
|
||||
### Generate a distributable
|
||||
After compiling the project you can generate a distributable by running of the following:
|
||||
```bash
|
||||
@@ -231,7 +227,7 @@ cmake --build build-cmake --target ExtractAssetHeaders
|
||||
```
|
||||
|
||||
## macOS
|
||||
Requires Xcode (or xcode-tools) && `sdl2, libpng, glew, ninja, cmake, tinyxml2, nlohmann-json, libzip, opusfile, libvorbis` (can be installed via [homebrew](https://brew.sh/), macports, etc)
|
||||
Requires Xcode (or xcode-tools) && `sdl2, sdl2_net, libpng, glew, ninja, cmake, tinyxml2, nlohmann-json, libzip, opusfile, libvorbis` (can be installed via [homebrew](https://brew.sh/), macports, etc)
|
||||
|
||||
**Important: For maximum performance make sure you have ninja build tools installed!**
|
||||
|
||||
@@ -246,7 +242,7 @@ cd ShipWright
|
||||
git submodule update --init
|
||||
|
||||
# Install development dependencies (assuming homebrew)
|
||||
brew install sdl2 libpng glew ninja cmake tinyxml2 nlohmann-json libzip opusfile libvorbis
|
||||
brew install sdl2 sdl2_net libpng glew ninja cmake tinyxml2 nlohmann-json libzip opusfile libvorbis
|
||||
|
||||
# Generate Ninja project
|
||||
# Add `-DCMAKE_BUILD_TYPE:STRING=Release` if you're packaging
|
||||
@@ -342,4 +338,4 @@ To get this step working on your fork, you'll need to add a machine to your own
|
||||
You'll have to enable the ability to run unsigned scripts through PowerShell. To do this, open Powershell as administrator and run `set-executionpolicy remotesigned`. Most dependencies get installed as part of the CI process. You will also need to separately install 7z and add it to the PATH so `7z` can be run as a command. [Chocolatey](https://chocolatey.org/) or other package managers can be used to install it easily.
|
||||
|
||||
### Runner on UNIX systems
|
||||
If you're on macOS or Linux take a look at `macports-deps.txt` or `apt-deps.txt` to see the dependencies expected to be on your machine.
|
||||
If you're on macOS or Linux take a look at `.github/macports.yml` or `.github/workflows/apt-deps.txt` to see the dependencies expected to be on your machine.
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Linux build dependencies
|
||||
|
||||
This directory contains plaintext files with package lists and minimum version information for building on Linux systems.
|
||||
|
||||
## `apt` vs others
|
||||
|
||||
The CI workflows that run on PRs and pushes use GH actions Ubuntu runners, so it is very unlikely `apt.txt` will be missing anything. The other package list files are only verified by the `test-builds-on-distros` workflow, which is triggered manually.
|
||||
|
||||
## How you can help
|
||||
|
||||
If you run into a missing package issue when building please let us know! A PR updating the appropriate package list file would be wonderful, but opening a GH issue or just saying something on Discord works too!
|
||||
@@ -1 +1 @@
|
||||
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build libogg-dev libopus-dev opus-tools libopusfile-dev libvorbis-dev libespeak-ng-dev
|
||||
libusb-dev libusb-1.0-0-dev libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev nlohmann-json3-dev libtinyxml2-dev libspdlog-dev ninja-build libogg-dev libopus-dev opus-tools libopusfile-dev libvorbis-dev libespeak-ng-dev libzip-dev zipcmp zipmerge ziptool git cmake lsb-release
|
||||
@@ -0,0 +1 @@
|
||||
git cmake ninja-build lsb_release SDL2-devel SDL2_net-devel libpng-devel libzip-devel libzip-tools nlohmann-json-devel tinyxml2-devel spdlog-devel opusfile-devel libvorbis-devel
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
description = "Shipwright development environment";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
pinned.url = "github:NixOS/nixpkgs/e6f23dc08d3624daab7094b701aa3954923c6bbb";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, pinned, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pinned-pkgs = pinned.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
# Build tools
|
||||
git
|
||||
cmake
|
||||
ninja
|
||||
lsb-release
|
||||
pkg-config
|
||||
|
||||
# SDL2 libraries
|
||||
SDL2
|
||||
SDL2.dev
|
||||
SDL2_net
|
||||
|
||||
# Assets pipeline
|
||||
python3
|
||||
imagemagick
|
||||
|
||||
# Other libraries
|
||||
libpng
|
||||
libzip
|
||||
nlohmann_json
|
||||
tinyxml-2
|
||||
spdlog
|
||||
libGL
|
||||
libGL.dev
|
||||
bzip2
|
||||
|
||||
# X11 libraries
|
||||
libx11
|
||||
|
||||
# Audio libraries
|
||||
libogg
|
||||
libogg.dev
|
||||
libvorbis
|
||||
libvorbis.dev
|
||||
libopus
|
||||
libopus.dev
|
||||
opusfile
|
||||
opusfile.dev
|
||||
|
||||
# Runtime dependencies
|
||||
zenity
|
||||
] ++ [
|
||||
# Version of clang-format used by decomp
|
||||
pinned-pkgs.clang_14
|
||||
];
|
||||
shellHook = ''
|
||||
echo "Shipwright development environment loaded"
|
||||
echo "Available tools: clang, git, cmake, ninja, python3"
|
||||
'';
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
16
|
||||
@@ -0,0 +1 @@
|
||||
10
|
||||
@@ -0,0 +1 @@
|
||||
git cmake ninja lsb-release sdl2 libpng libzip nlohmann-json tinyxml2 spdlog sdl2_net opusfile libvorbis python
|
||||
@@ -0,0 +1 @@
|
||||
git cmake ninja SDL2-devel SDL2_net-devel libpng16-devel libzip-devel libzip-tools nlohmann_json-devel tinyxml2-devel spdlog-devel libogg-devel libvorbis-devel libopus-devel opusfile-devel glew-devel libglvnd-devel Mesa-libGLESv2-devel
|
||||
@@ -22,10 +22,21 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
if(NOT CMAKE_VS_PLATFORM_NAME)
|
||||
set(CMAKE_VS_PLATFORM_NAME "x64")
|
||||
endif()
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" MATCHES "^[Aa][Rr][Mm]64$")
|
||||
set(SOH_WINDOWS_ARM64 TRUE)
|
||||
else()
|
||||
set(SOH_WINDOWS_ARM64 FALSE)
|
||||
endif()
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64" OR SOH_WINDOWS_ARM64)
|
||||
set(SOH_WINDOWS_64BIT TRUE)
|
||||
else()
|
||||
set(SOH_WINDOWS_64BIT FALSE)
|
||||
endif()
|
||||
message("${CMAKE_VS_PLATFORM_NAME} architecture in use")
|
||||
|
||||
if(NOT ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64"
|
||||
OR "${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32"))
|
||||
OR "${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32"
|
||||
OR SOH_WINDOWS_ARM64))
|
||||
message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} arch is not supported!")
|
||||
endif()
|
||||
endif()
|
||||
@@ -142,11 +153,6 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
set_source_files_properties(soh/Enhancements/custom-message/CustomMessageManager.h PROPERTIES COMPILE_FLAGS "/utf-8")
|
||||
endif()
|
||||
|
||||
# handle Network removals
|
||||
if (!BUILD_REMOTE_CONTROL)
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/crowd-control/")
|
||||
endif()
|
||||
|
||||
# handle speechsynthesizer removals
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
list(FILTER soh__ EXCLUDE REGEX "soh/Enhancements/speechsynthesizer/Darwin")
|
||||
@@ -235,7 +241,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
VS_GLOBAL_KEYWORD "Win32Proj"
|
||||
)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
if(SOH_WINDOWS_64BIT)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
INTERPROCEDURAL_OPTIMIZATION_RELEASE "TRUE"
|
||||
)
|
||||
@@ -259,7 +265,7 @@ endif()
|
||||
################################################################################
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
if(SOH_WINDOWS_64BIT)
|
||||
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
|
||||
$<$<CONFIG:Debug>:
|
||||
MultiThreadedDebug
|
||||
@@ -297,16 +303,13 @@ FetchContent_MakeAvailable(dr_libs)
|
||||
find_package(SDL2)
|
||||
set(SDL2-INCLUDE ${SDL2_INCLUDE_DIRS})
|
||||
|
||||
if (BUILD_REMOTE_CONTROL)
|
||||
find_package(SDL2_net)
|
||||
|
||||
if(NOT SDL2_net_FOUND)
|
||||
message(STATUS "SDL2_net not found (it's possible the version installed is too old). Disabling BUILD_REMOTE_CONTROL.")
|
||||
set(BUILD_REMOTE_CONTROL 0)
|
||||
message(STATUS "SDL2_net not found (it's possible the version installed is too old).")
|
||||
else()
|
||||
set(SDL2-NET-INCLUDE ${SDL_NET_INCLUDE_DIRS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (ESPEAK)
|
||||
add_compile_definitions(ESPEAK=1)
|
||||
@@ -329,7 +332,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE assets
|
||||
)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
if(SOH_WINDOWS_64BIT)
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
"$<$<CONFIG:Debug>:"
|
||||
"_DEBUG;"
|
||||
@@ -339,7 +342,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
"$<$<CONFIG:Release>:"
|
||||
"NDEBUG;"
|
||||
">"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>"
|
||||
"INCLUDE_GAME_PRINTF;"
|
||||
"F3DEX_GBI_2"
|
||||
"UNICODE;"
|
||||
@@ -396,7 +398,6 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
|
||||
"NDEBUG;"
|
||||
">"
|
||||
"F3DEX_GBI_2;"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:ENABLE_REMOTE_CONTROL>;"
|
||||
"_CONSOLE;"
|
||||
"_CRT_SECURE_NO_WARNINGS;"
|
||||
"ENABLE_OPENGL;"
|
||||
@@ -410,17 +411,16 @@ endif()
|
||||
# Compile and link options
|
||||
################################################################################
|
||||
if(MSVC)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
if(SOH_WINDOWS_64BIT)
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
$<$<CONFIG:Debug>:
|
||||
/w;
|
||||
/Od
|
||||
>
|
||||
$<$<CONFIG:Release>:
|
||||
/Oi;
|
||||
/Gy;
|
||||
/W3
|
||||
>
|
||||
/W3;
|
||||
/bigobj;
|
||||
/sdl-;
|
||||
/permissive-;
|
||||
@@ -442,12 +442,12 @@ if(MSVC)
|
||||
/permissive-;
|
||||
/MP;
|
||||
/sdl-;
|
||||
/w;
|
||||
/W3;
|
||||
${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT};
|
||||
${DEFAULT_CXX_EXCEPTION_HANDLING}
|
||||
)
|
||||
endif()
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
if(SOH_WINDOWS_64BIT)
|
||||
target_link_options(${PROJECT_NAME} PRIVATE
|
||||
$<$<CONFIG:Debug>:
|
||||
/INCREMENTAL
|
||||
@@ -635,14 +635,14 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
link_libraries(Opus::opus)
|
||||
find_package(OpusFile CONFIG REQUIRED)
|
||||
link_libraries(OpusFile::opusfile CONFIG REQUIRED)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
if(SOH_WINDOWS_64BIT)
|
||||
set(ADDITIONAL_LIBRARY_DEPENDENCIES
|
||||
"libultraship;"
|
||||
"ZAPDLib;"
|
||||
"glu32;"
|
||||
"SDL2::SDL2;"
|
||||
"SDL2::SDL2main;"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net-static>"
|
||||
"SDL2_net::SDL2_net-static"
|
||||
"glfw;"
|
||||
"winmm;"
|
||||
"imm32;"
|
||||
@@ -708,7 +708,7 @@ else()
|
||||
"Vorbis::vorbisfile"
|
||||
"Opus::opus"
|
||||
"Opusfile::Opusfile"
|
||||
"$<$<BOOL:${BUILD_REMOTE_CONTROL}>:SDL2_net::SDL2_net>"
|
||||
"SDL2_net::SDL2_net"
|
||||
${CMAKE_DL_LIBS}
|
||||
Threads::Threads
|
||||
)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"gRandoSettings": {
|
||||
"BigPoeTargetCount": 1,
|
||||
"BlueFireArrows": 1,
|
||||
"BombchuBag": 1,
|
||||
"BombchuBag": 2,
|
||||
"BossKeysanity": 5,
|
||||
"ClosedForest": 2,
|
||||
"CuccosToReturn": 1,
|
||||
@@ -21,11 +21,13 @@
|
||||
"LacsRewardCount": 10,
|
||||
"LacsRewardOptions": 1,
|
||||
"LockOverworldDoors": 1,
|
||||
"MedallionLockedTrials": 1,
|
||||
"MixBosses": 1,
|
||||
"MixDungeons": 1,
|
||||
"MixGrottos": 1,
|
||||
"MixInteriors": 1,
|
||||
"MixOverworld": 1,
|
||||
"MixThievesHideout": 1,
|
||||
"MixedEntrances": 1,
|
||||
"RainbowBridge": 7,
|
||||
"ScrubsPrices": 2,
|
||||
@@ -35,12 +37,16 @@
|
||||
"Shuffle100GSReward": 1,
|
||||
"ShuffleAdultTrade": 1,
|
||||
"ShuffleBeanFairies": 1,
|
||||
"ShuffleBeanSouls": 1,
|
||||
"ShuffleBeehives": 1,
|
||||
"ShuffleBossEntrances": 2,
|
||||
"ShuffleBossSouls": 2,
|
||||
"ShuffleBushes": 1,
|
||||
"ShuffleChildWallet": 1,
|
||||
"ShuffleClimb": 1,
|
||||
"ShuffleCows": 1,
|
||||
"ShuffleCrates": 3,
|
||||
"ShuffleCrawl": 1,
|
||||
"ShuffleDekuNutBag": 1,
|
||||
"ShuffleDekuStickBag": 1,
|
||||
"ShuffleDungeonsEntrances": 2,
|
||||
@@ -50,7 +56,9 @@
|
||||
"ShuffleFreestanding": 3,
|
||||
"ShuffleFrogSongRupees": 1,
|
||||
"ShuffleGanonBossKey": 9,
|
||||
"ShuffleGanonTowerEntrance": 1,
|
||||
"ShuffleGerudoToken": 1,
|
||||
"ShuffleGrab": 1,
|
||||
"ShuffleGrass": 3,
|
||||
"ShuffleGrottosEntrances": 1,
|
||||
"ShuffleInteriorsEntrances": 2,
|
||||
@@ -59,18 +67,21 @@
|
||||
"ShuffleMerchants": 3,
|
||||
"ShuffleOcarinaButtons": 1,
|
||||
"ShuffleOcarinas": 1,
|
||||
"ShuffleOpenChest": 1,
|
||||
"ShuffleOverworldEntrances": 1,
|
||||
"ShuffleOverworldSpawns": 1,
|
||||
"ShuffleOwlDrops": 1,
|
||||
"ShufflePots": 3,
|
||||
"ShuffleScrubs": 2,
|
||||
"ShuffleSongs": 2,
|
||||
"ShuffleSpeak": 1,
|
||||
"ShuffleStoneFairies": 1,
|
||||
"ShuffleSwim": 1,
|
||||
"ShuffleThievesHideoutEntrances": 1,
|
||||
"ShuffleTrees": 1,
|
||||
"ShuffleTokens": 3,
|
||||
"ShuffleWarpSongs": 1,
|
||||
"ShuffleWeirdEgg": 1,
|
||||
"SkipEponaRace": 1,
|
||||
"StartingAge": 2,
|
||||
"StartingHearts": 0,
|
||||
"StartingMapsCompasses": 5,
|
||||
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 391 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 499 B |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 656 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 417 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 349 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 419 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 358 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 421 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 397 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 421 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 371 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 421 B |
|
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 225 B |
|
Before Width: | Height: | Size: 984 B After Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 929 B After Width: | Height: | Size: 212 B |
|
Before Width: | Height: | Size: 953 B After Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 922 B After Width: | Height: | Size: 204 B |
|
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 217 B |
|
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 941 B After Width: | Height: | Size: 140 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 243 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 257 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 352 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 290 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 295 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 992 B After Width: | Height: | Size: 228 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 253 B |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 657 B |
|
Before Width: | Height: | Size: 973 B After Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 289 B |
|
Before Width: | Height: | Size: 1005 B After Width: | Height: | Size: 233 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 247 B |
@@ -7,6 +7,9 @@
|
||||
#define dgCustomBowDL "__OTR__objects/object_custom_equip/gCustomBowDL"
|
||||
static const ALIGN_ASSET(2) char gCustomBowDL[] = dgCustomBowDL;
|
||||
|
||||
#define dgCustomFPSBowDL "__OTR__objects/object_custom_equip/gCustomFPSBowDL"
|
||||
static const ALIGN_ASSET(2) char gCustomFPSBowDL[] = dgCustomFPSBowDL;
|
||||
|
||||
#define dgCustomHammerDL "__OTR__objects/object_custom_equip/gCustomHammerDL"
|
||||
static const ALIGN_ASSET(2) char gCustomHammerDL[] = dgCustomHammerDL;
|
||||
|
||||
@@ -16,12 +19,27 @@ static const ALIGN_ASSET(2) char gCustomHookshotDL[] = dgCustomHookshotDL;
|
||||
#define dgCustomLongshotDL "__OTR__objects/object_custom_equip/gCustomLongshotDL"
|
||||
static const ALIGN_ASSET(2) char gCustomLongshotDL[] = dgCustomLongshotDL;
|
||||
|
||||
#define dgCustomFPSSlingshotDL "__OTR__objects/object_custom_equip/gCustomFPSSlingshotDL"
|
||||
static const ALIGN_ASSET(2) char gCustomFPSSlingshotDL[] = dgCustomFPSSlingshotDL;
|
||||
|
||||
#define dgCustomFPSHookshotDL "__OTR__objects/object_custom_equip/gCustomFPSHookshotDL"
|
||||
static const ALIGN_ASSET(2) char gCustomFPSHookshotDL[] = dgCustomFPSHookshotDL;
|
||||
|
||||
#define dgCustomFPSLongshotDL "__OTR__objects/object_custom_equip/gCustomFPSLongshotDL"
|
||||
static const ALIGN_ASSET(2) char gCustomFPSLongshotDL[] = dgCustomFPSLongshotDL;
|
||||
|
||||
#define dgCustomHookshotTipDL "__OTR__objects/object_custom_equip/gCustomHookshotTipDL"
|
||||
static const ALIGN_ASSET(2) char gCustomHookshotTipDL[] = dgCustomHookshotTipDL;
|
||||
|
||||
#define dgCustomHookshotChainDL "__OTR__objects/object_custom_equip/gCustomHookshotChainDL"
|
||||
static const ALIGN_ASSET(2) char gCustomHookshotChainDL[] = dgCustomHookshotChainDL;
|
||||
|
||||
#define dgCustomLongshotTipDL "__OTR__objects/object_custom_equip/gCustomLongshotTipDL"
|
||||
static const ALIGN_ASSET(2) char gCustomLongshotTipDL[] = dgCustomLongshotTipDL;
|
||||
|
||||
#define dgCustomLongshotChainDL "__OTR__objects/object_custom_equip/gCustomLongshotChainDL"
|
||||
static const ALIGN_ASSET(2) char gCustomLongshotChainDL[] = dgCustomLongshotChainDL;
|
||||
|
||||
#define dgCustomSlingshotDL "__OTR__objects/object_custom_equip/gCustomSlingshotDL"
|
||||
static const ALIGN_ASSET(2) char gCustomSlingshotDL[] = dgCustomSlingshotDL;
|
||||
|
||||
|
||||
@@ -510,5 +510,30 @@ static const ALIGN_ASSET(2) char gLinkAdultVtx_0340A0[] = dgLinkAdultVtx_0340A0;
|
||||
#define dgLinkAdultVtx_02E7E0 "__OTR__objects/object_link_boy/gLinkAdultVtx_02E7E0"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultVtx_02E7E0[] = dgLinkAdultVtx_02E7E0;
|
||||
|
||||
// Adult-fitted mask display lists (for use when adult Link wears child masks via the AdultMasks enhancement)
|
||||
#define dgLinkAdultKeatonMaskDL "__OTR__objects/object_link_boy/gLinkAdultKeatonMaskDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultKeatonMaskDL[] = dgLinkAdultKeatonMaskDL;
|
||||
|
||||
#define dgLinkAdultSkullMaskDL "__OTR__objects/object_link_boy/gLinkAdultSkullMaskDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultSkullMaskDL[] = dgLinkAdultSkullMaskDL;
|
||||
|
||||
#define dgLinkAdultSpookyMaskDL "__OTR__objects/object_link_boy/gLinkAdultSpookyMaskDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultSpookyMaskDL[] = dgLinkAdultSpookyMaskDL;
|
||||
|
||||
#define dgLinkAdultBunnyHoodDL "__OTR__objects/object_link_boy/gLinkAdultBunnyHoodDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultBunnyHoodDL[] = dgLinkAdultBunnyHoodDL;
|
||||
|
||||
#define dgLinkAdultGoronMaskDL "__OTR__objects/object_link_boy/gLinkAdultGoronMaskDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultGoronMaskDL[] = dgLinkAdultGoronMaskDL;
|
||||
|
||||
#define dgLinkAdultZoraMaskDL "__OTR__objects/object_link_boy/gLinkAdultZoraMaskDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultZoraMaskDL[] = dgLinkAdultZoraMaskDL;
|
||||
|
||||
#define dgLinkAdultGerudoMaskDL "__OTR__objects/object_link_boy/gLinkAdultGerudoMaskDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultGerudoMaskDL[] = dgLinkAdultGerudoMaskDL;
|
||||
|
||||
#define dgLinkAdultMaskOfTruthDL "__OTR__objects/object_link_boy/gLinkAdultMaskOfTruthDL"
|
||||
static const ALIGN_ASSET(2) char gLinkAdultMaskOfTruthDL[] = dgLinkAdultMaskOfTruthDL;
|
||||
|
||||
|
||||
#endif // OBJECTS_OBJECT_LINK_BOY_H
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<Texture Name="object_bvTLUT_01DBB0" OutName="object_bvTLUT_01DBB0" Format="rgba16" Width="16" Height="16" Offset="0x1DBB0" AddedByScript="true"/>
|
||||
<Texture Name="object_bvTLUT_01E6B0" OutName="object_bvTLUT_01E6B0" Format="rgba16" Width="16" Height="16" Offset="0x1E6B0" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="i8" Width="128" Height="120" Offset="0x1230"/>
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="ia8" Width="128" Height="120" Offset="0x1230"/>
|
||||
|
||||
<Skeleton Name="gBarinadeBodySkel" Type="Normal" LimbType="Standard" Offset="0x15B18"/>
|
||||
<Skeleton Name="gBarinadeSupportSkel" Type="Flex" LimbType="Standard" Offset="0x17498"/>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<Texture Name="object_fdTLUT_000A58" OutName="object_fdTLUT_000A58" Format="rgba16" Width="4" Height="4" Offset="0xA58" AddedByScript="true"/>
|
||||
<Texture Name="object_fdTLUT_0032A8" OutName="object_fdTLUT_0032A8" Format="rgba16" Width="16" Height="16" Offset="0x32A8" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="i8" Width="128" Height="120" Offset="0xD700"/>
|
||||
<Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="ia8" Width="128" Height="120" Offset="0xD700"/>
|
||||
|
||||
<!-- Skeletons -->
|
||||
<Skeleton Name="gVolvagiaLeftArmSkel" Type="Normal" LimbType="Standard" Offset="0x114E0"/>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<Animation Name="gPhantomHorseFenceJumpAnim" Offset="0xC180"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="i8" Width="128" Height="120" Offset="0x59A0"/>
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="ia8" Width="128" Height="120" Offset="0x59A0"/>
|
||||
|
||||
<!-- Energy attack DLists -->
|
||||
<DList Name="gPhantomWarpDL" Offset="0xFAA0"/>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<DList Name="gGanondorfRightHandOpenDL" Offset="0xC9E8"/>
|
||||
|
||||
<!-- Ganondorf Title Card Texture -->
|
||||
<Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="i8" Width="128" Height="120" Offset="0xCF00"/>
|
||||
<Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="ia8" Width="128" Height="120" Offset="0xCF00"/>
|
||||
|
||||
<!-- Ganondorf Animation -->
|
||||
<Animation Name="gGanondorfEndingFloatAnim" Offset="0x11348"/> <!-- Original name is "ONOLEE" (lit. "Curse you!" from his in-game dialogue) -->
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
<Texture Name="gGohmaIrisTex" OutName="gohma_iris" Format="rgba16" Width="32" Height="32" Offset="0x193A8"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="i8" Width="128" Height="120" Offset="0x19BA8"/>
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="ia8" Width="128" Height="120" Offset="0x19BA8"/>
|
||||
|
||||
<!-- Door -->
|
||||
<DList Name="gGohmaDoorDL" Offset="0x1EC20"/>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<Texture Name="object_kingdodongo_Tex_016D90" OutName="tex_00016D90" Format="rgba16" Width="8" Height="8" Offset="0x16D90"/>
|
||||
<Texture Name="object_kingdodongo_Tex_016E10" OutName="tex_00016E10" Format="rgba16" Width="32" Height="16" Offset="0x16E10"/>
|
||||
<Texture Name="object_kingdodongo_Tex_017210" OutName="tex_00017210" Format="rgba16" Width="8" Height="32" Offset="0x17210"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="i8" Width="128" Height="120" Offset="0x17410"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="ia8" Width="128" Height="120" Offset="0x17410"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B010" LimbType="Standard" Offset="0x1B010"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B01C" LimbType="Standard" Offset="0x1B01C"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B028" LimbType="Standard" Offset="0x1B028"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Texture Name="object_moTex_005520" OutName="object_moTex_005520" Format="ia16" Width="32" Height="32" Offset="0x5520" AddedByScript="true"/>
|
||||
<Texture Name="object_moTex_005D20" OutName="object_moTex_005D20" Format="ia16" Width="32" Height="32" Offset="0x5D20" AddedByScript="true"/>
|
||||
<!-- Morpha's Title Card -->
|
||||
<Texture Name="gMorphaTitleCardTex" Format="i8" Width="128" Height="120" Offset="0x1010"/>
|
||||
<Texture Name="gMorphaTitleCardTex" Format="ia8" Width="128" Height="120" Offset="0x1010"/>
|
||||
|
||||
<!-- DLists for Morpha's Core -->
|
||||
<DList Name="gMorphaCoreMembraneDL" Offset="0x6700"/>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<Texture Name="object_sstTex_01A730" OutName="object_sstTex_01A730" Format="rgba16" Width="4" Height="16" Offset="0x1A730" AddedByScript="true"/>
|
||||
<Texture Name="object_sstTex_01A7B0" OutName="object_sstTex_01A7B0" Format="rgba16" Width="16" Height="16" Offset="0x1A7B0" AddedByScript="true"/>
|
||||
<!-- Boss Title Card -->
|
||||
<Texture Name="gBongoTitleCardTex" OutName="bongo_title_card" Format="i8" Width="128" Height="120" Offset="0x13D80"/>
|
||||
<Texture Name="gBongoTitleCardTex" OutName="bongo_title_card" Format="ia8" Width="128" Height="120" Offset="0x13D80"/>
|
||||
|
||||
<!-- Skeletons -->
|
||||
<Skeleton Name="gBongoLeftHandSkel" Type="Flex" LimbType="Standard" Offset="0x04DE0"/>
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
<DList Name="gTwinrovaBroomIceTrailDL" Offset="0x2DEB0"/>
|
||||
<DList Name="gTwinrovaBroomFireJetDL" Offset="0x2DFB0"/>
|
||||
<DList Name="gTwinrovaBroomFireTrailDL" Offset="0x2E098"/>
|
||||
<Texture Name="gTwinrovaTitleCardTex" OutName="title_card" Format="i8" Width="128" Height="120" Offset="0x2E170"/>
|
||||
<Texture Name="gTwinrovaTitleCardTex" OutName="title_card" Format="ia8" Width="128" Height="120" Offset="0x2E170"/>
|
||||
<Limb Name="gTwinrovaPelvisLimb" LimbType="Standard" Offset="0x31D70"/>
|
||||
<Limb Name="gTwinrovaSash1Limb" LimbType="Standard" Offset="0x31D7C"/>
|
||||
<Limb Name="gTwinrovaSash2Limb" LimbType="Standard" Offset="0x31D88"/>
|
||||
|
||||
@@ -1,52 +1,52 @@
|
||||
<Root>
|
||||
<File Name="object_bv" Segment="6">
|
||||
<Texture Name="gBarinadeTitleCardENGTex" OutName="barinade_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x1230" />
|
||||
<Texture Name="gBarinadeTitleCardGERTex" OutName="barinade_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x2630" />
|
||||
<Texture Name="gBarinadeTitleCardFRATex" OutName="barinade_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x3a30" />
|
||||
<Texture Name="gBarinadeTitleCardENGTex" OutName="barinade_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x1230" />
|
||||
<Texture Name="gBarinadeTitleCardGERTex" OutName="barinade_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x2630" />
|
||||
<Texture Name="gBarinadeTitleCardFRATex" OutName="barinade_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x3a30" />
|
||||
</File>
|
||||
<File Name="object_fd" Segment="6">
|
||||
<Texture Name="gVolvagiaBossTitleCardENGTex" OutName="volvagia_boss_eng_title_card" Format="i8" Width="128" Height="40" Offset="0xd700" />
|
||||
<Texture Name="gVolvagiaBossTitleCardGERTex" OutName="volvagia_boss_ger_title_card" Format="i8" Width="128" Height="40" Offset="0xeb00" />
|
||||
<Texture Name="gVolvagiaBossTitleCardFRATex" OutName="volvagia_boss_fra_title_card" Format="i8" Width="128" Height="40" Offset="0xff00" />
|
||||
<Texture Name="gVolvagiaBossTitleCardENGTex" OutName="volvagia_boss_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0xd700" />
|
||||
<Texture Name="gVolvagiaBossTitleCardGERTex" OutName="volvagia_boss_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0xeb00" />
|
||||
<Texture Name="gVolvagiaBossTitleCardFRATex" OutName="volvagia_boss_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0xff00" />
|
||||
</File>
|
||||
<File Name="object_fhg" Segment="6">
|
||||
<Texture Name="gPhantomGanonTitleCardENGTex" OutName="phantom_ganon_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x59a0" />
|
||||
<Texture Name="gPhantomGanonTitleCardGERTex" OutName="phantom_ganon_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x6da0" />
|
||||
<Texture Name="gPhantomGanonTitleCardFRATex" OutName="phantom_ganon_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x81a0" />
|
||||
<Texture Name="gPhantomGanonTitleCardENGTex" OutName="phantom_ganon_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x59a0" />
|
||||
<Texture Name="gPhantomGanonTitleCardGERTex" OutName="phantom_ganon_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x6da0" />
|
||||
<Texture Name="gPhantomGanonTitleCardFRATex" OutName="phantom_ganon_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x81a0" />
|
||||
</File>
|
||||
<File Name="object_ganon" Segment="6">
|
||||
<Texture Name="gGanondorfTitleCardENGTex" OutName="ganondorf_eng_title_card" Format="i8" Width="128" Height="40" Offset="0xcf00" />
|
||||
<Texture Name="gGanondorfTitleCardGERTex" OutName="ganondorf_ger_title_card" Format="i8" Width="128" Height="40" Offset="0xe300" />
|
||||
<Texture Name="gGanondorfTitleCardFRATex" OutName="ganondorf_fra_title_card" Format="i8" Width="128" Height="40" Offset="0xf700" />
|
||||
<Texture Name="gGanondorfTitleCardENGTex" OutName="ganondorf_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0xcf00" />
|
||||
<Texture Name="gGanondorfTitleCardGERTex" OutName="ganondorf_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0xe300" />
|
||||
<Texture Name="gGanondorfTitleCardFRATex" OutName="ganondorf_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0xf700" />
|
||||
</File>
|
||||
<File Name="object_ganon2" Segment="6">
|
||||
<Texture Name="gGanonTitleCardENGTex" OutName="ganon_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x21a90" />
|
||||
<Texture Name="gGanonTitleCardGERTex" OutName="ganon_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x22e90" />
|
||||
<Texture Name="gGanonTitleCardFRATex" OutName="ganon_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x24290" />
|
||||
<Texture Name="gGanonTitleCardENGTex" OutName="ganon_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x21a90" />
|
||||
<Texture Name="gGanonTitleCardGERTex" OutName="ganon_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x22e90" />
|
||||
<Texture Name="gGanonTitleCardFRATex" OutName="ganon_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x24290" />
|
||||
</File>
|
||||
<File Name="object_goma" Segment="6">
|
||||
<Texture Name="gGohmaTitleCardENGTex" OutName="gohma_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x19ba8" />
|
||||
<Texture Name="gGohmaTitleCardGERTex" OutName="gohma_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x1afa8" />
|
||||
<Texture Name="gGohmaTitleCardFRATex" OutName="gohma_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x1c3a8" />
|
||||
<Texture Name="gGohmaTitleCardENGTex" OutName="gohma_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x19ba8" />
|
||||
<Texture Name="gGohmaTitleCardGERTex" OutName="gohma_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x1afa8" />
|
||||
<Texture Name="gGohmaTitleCardFRATex" OutName="gohma_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x1c3a8" />
|
||||
</File>
|
||||
<File Name="object_kingdodongo" Segment="6">
|
||||
<Texture Name="gKingDodongoTitleCardENGTex" OutName="king_dodongo_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x17410" />
|
||||
<Texture Name="gKingDodongoTitleCardGERTex" OutName="king_dodongo_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x18810" />
|
||||
<Texture Name="gKingDodongoTitleCardFRATex" OutName="king_dodongo_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x19c10" />
|
||||
<Texture Name="gKingDodongoTitleCardENGTex" OutName="king_dodongo_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x17410" />
|
||||
<Texture Name="gKingDodongoTitleCardGERTex" OutName="king_dodongo_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x18810" />
|
||||
<Texture Name="gKingDodongoTitleCardFRATex" OutName="king_dodongo_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x19c10" />
|
||||
</File>
|
||||
<File Name="object_mo" Segment="6">
|
||||
<Texture Name="gMorphaTitleCardENGTex" OutName="morpha_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x1010" />
|
||||
<Texture Name="gMorphaTitleCardGERTex" OutName="morpha_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x2410" />
|
||||
<Texture Name="gMorphaTitleCardFRATex" OutName="morpha_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x3810" />
|
||||
<Texture Name="gMorphaTitleCardENGTex" OutName="morpha_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x1010" />
|
||||
<Texture Name="gMorphaTitleCardGERTex" OutName="morpha_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x2410" />
|
||||
<Texture Name="gMorphaTitleCardFRATex" OutName="morpha_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x3810" />
|
||||
</File>
|
||||
<File Name="object_sst" Segment="6">
|
||||
<Texture Name="gBongoTitleCardENGTex" OutName="bongo_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x13d80" />
|
||||
<Texture Name="gBongoTitleCardGERTex" OutName="bongo_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x15180" />
|
||||
<Texture Name="gBongoTitleCardFRATex" OutName="bongo_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x16580" />
|
||||
<Texture Name="gBongoTitleCardENGTex" OutName="bongo_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x13d80" />
|
||||
<Texture Name="gBongoTitleCardGERTex" OutName="bongo_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x15180" />
|
||||
<Texture Name="gBongoTitleCardFRATex" OutName="bongo_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x16580" />
|
||||
</File>
|
||||
<File Name="object_tw" Segment="6">
|
||||
<Texture Name="gTwinrovaTitleCardENGTex" OutName="twinrova_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x2e170" />
|
||||
<Texture Name="gTwinrovaTitleCardGERTex" OutName="twinrova_ger_title_card" Format="i8" Width="128" Height="40" Offset="0x2f570" />
|
||||
<Texture Name="gTwinrovaTitleCardFRATex" OutName="twinrova_fra_title_card" Format="i8" Width="128" Height="40" Offset="0x30970" />
|
||||
<Texture Name="gTwinrovaTitleCardENGTex" OutName="twinrova_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x2e170" />
|
||||
<Texture Name="gTwinrovaTitleCardGERTex" OutName="twinrova_ger_title_card" Format="ia8" Width="128" Height="40" Offset="0x2f570" />
|
||||
<Texture Name="gTwinrovaTitleCardFRATex" OutName="twinrova_fra_title_card" Format="ia8" Width="128" Height="40" Offset="0x30970" />
|
||||
</File>
|
||||
</Root>
|
||||
@@ -38,7 +38,7 @@
|
||||
<Texture Name="object_bvTLUT_01DBB0" OutName="object_bvTLUT_01DBB0" Format="rgba16" Width="16" Height="16" Offset="0x1C7B0" AddedByScript="true"/>
|
||||
<Texture Name="object_bvTLUT_01E6B0" OutName="object_bvTLUT_01E6B0" Format="rgba16" Width="16" Height="16" Offset="0x1D2B0" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="i8" Width="128" Height="80" Offset="0x1230"/>
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="ia8" Width="128" Height="80" Offset="0x1230"/>
|
||||
|
||||
<Skeleton Name="gBarinadeBodySkel" Type="Normal" LimbType="Standard" Offset="0x14718"/>
|
||||
<Skeleton Name="gBarinadeSupportSkel" Type="Flex" LimbType="Standard" Offset="0x16098"/>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<Texture Name="object_fdTLUT_000A58" OutName="object_fdTLUT_000A58" Format="rgba16" Width="4" Height="4" Offset="0xA58" AddedByScript="true"/>
|
||||
<Texture Name="object_fdTLUT_0032A8" OutName="object_fdTLUT_0032A8" Format="rgba16" Width="16" Height="16" Offset="0x32A8" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<!-- <Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="i8" Width="128" Height="80" Offset="0xD700"/> -->
|
||||
<!-- <Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="ia8" Width="128" Height="80" Offset="0xD700"/> -->
|
||||
|
||||
<!-- Skeletons -->
|
||||
<Skeleton Name="gVolvagiaLeftArmSkel" Type="Normal" LimbType="Standard" Offset="0x100E0"/>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<Animation Name="gPhantomHorseFenceJumpAnim" Offset="0xAD80"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="i8" Width="128" Height="80" Offset="0x59A0"/>
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="ia8" Width="128" Height="80" Offset="0x59A0"/>
|
||||
|
||||
<!-- Energy attack DLists -->
|
||||
<DList Name="gPhantomWarpDL" Offset="0xE6A0"/>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<DList Name="gGanondorfRightHandOpenDL" Offset="0xC9E8"/>
|
||||
|
||||
<!-- Ganondorf Title Card Texture -->
|
||||
<!-- <Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="i8" Width="128" Height="80" Offset="0xCF00"/> -->
|
||||
<!-- <Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="ia8" Width="128" Height="80" Offset="0xCF00"/> -->
|
||||
|
||||
<!-- Ganondorf Animation -->
|
||||
<Animation Name="gGanondorfEndingFloatAnim" Offset="0xFF48"/> <!-- Original name is "ONOLEE" (lit. "Curse you!" from his in-game dialogue) -->
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
<Texture Name="gGohmaIrisTex" OutName="gohma_iris" Format="rgba16" Width="32" Height="32" Offset="0x193A8"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="i8" Width="128" Height="80" Offset="0x19BA8"/>
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="ia8" Width="128" Height="80" Offset="0x19BA8"/>
|
||||
|
||||
<!-- Door -->
|
||||
<DList Name="gGohmaDoorDL" Offset="0x1D820"/>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<Texture Name="object_kingdodongo_Tex_016D90" OutName="tex_00016D90" Format="rgba16" Width="8" Height="8" Offset="0x16D90"/>
|
||||
<Texture Name="object_kingdodongo_Tex_016E10" OutName="tex_00016E10" Format="rgba16" Width="32" Height="16" Offset="0x16E10"/>
|
||||
<Texture Name="object_kingdodongo_Tex_017210" OutName="tex_00017210" Format="rgba16" Width="8" Height="32" Offset="0x17210"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="i8" Width="128" Height="80" Offset="0x17410"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="ia8" Width="128" Height="80" Offset="0x17410"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B010" LimbType="Standard" Offset="0x19C10"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B01C" LimbType="Standard" Offset="0x19C1C"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B028" LimbType="Standard" Offset="0x19C28"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Texture Name="object_moTex_005520" OutName="object_moTex_005520" Format="ia16" Width="32" Height="32" Offset="0x4120" AddedByScript="true"/>
|
||||
<Texture Name="object_moTex_005D20" OutName="object_moTex_005D20" Format="ia16" Width="32" Height="32" Offset="0x4920" AddedByScript="true"/>
|
||||
<!-- Morpha's Title Card -->
|
||||
<Texture Name="gMorphaTitleCardTex" Format="i8" Width="128" Height="80" Offset="0x1010"/>
|
||||
<Texture Name="gMorphaTitleCardTex" Format="ia8" Width="128" Height="80" Offset="0x1010"/>
|
||||
<Texture Name="gMorphaWaterTex" Format="rgba16" Width="32" Height="32" Offset="0x7470"/>
|
||||
|
||||
<!-- DLists for Morpha's Core -->
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<Texture Name="object_sstTex_01A730" OutName="object_sstTex_01A730" Format="rgba16" Width="4" Height="16" Offset="0x19330" AddedByScript="true"/>
|
||||
<Texture Name="object_sstTex_01A7B0" OutName="object_sstTex_01A7B0" Format="rgba16" Width="16" Height="16" Offset="0x193B0" AddedByScript="true"/>
|
||||
<!-- Boss Title Card -->
|
||||
<Texture Name="gBongoTitleCardTex" OutName="bongo_title_card" Format="i8" Width="128" Height="80" Offset="0x13D80"/>
|
||||
<Texture Name="gBongoTitleCardTex" OutName="bongo_title_card" Format="ia8" Width="128" Height="80" Offset="0x13D80"/>
|
||||
|
||||
<!-- Skeletons -->
|
||||
<Skeleton Name="gBongoLeftHandSkel" Type="Flex" LimbType="Standard" Offset="0x04DE0"/>
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
<DList Name="gTwinrovaBroomIceTrailDL" Offset="0x2DEB0"/>
|
||||
<DList Name="gTwinrovaBroomFireJetDL" Offset="0x2DFB0"/>
|
||||
<DList Name="gTwinrovaBroomFireTrailDL" Offset="0x2E098"/>
|
||||
<Texture Name="gTwinrovaTitleCardTex" OutName="title_card" Format="i8" Width="128" Height="80" Offset="0x2E170"/>
|
||||
<Texture Name="gTwinrovaTitleCardTex" OutName="title_card" Format="ia8" Width="128" Height="80" Offset="0x2E170"/>
|
||||
<Limb Name="gTwinrovaPelvisLimb" LimbType="Standard" Offset="0x30970"/>
|
||||
<Limb Name="gTwinrovaSash1Limb" LimbType="Standard" Offset="0x3097C"/>
|
||||
<Limb Name="gTwinrovaSash2Limb" LimbType="Standard" Offset="0x30988"/>
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
<Root>
|
||||
<File Name="object_bv" Segment="6">
|
||||
<Texture Name="gBarinadeTitleCardJPNTex" OutName="barinade_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x1230" />
|
||||
<Texture Name="gBarinadeTitleCardENGTex" OutName="barinade_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x2630" />
|
||||
<Texture Name="gBarinadeTitleCardJPNTex" OutName="barinade_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x1230" />
|
||||
<Texture Name="gBarinadeTitleCardENGTex" OutName="barinade_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x2630" />
|
||||
</File>
|
||||
<File Name="object_fd" Segment="6">
|
||||
<Texture Name="gVolvagiaBossTitleCardJPNTex" OutName="volvagia_boss_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0xd700" />
|
||||
<Texture Name="gVolvagiaBossTitleCardENGTex" OutName="volvagia_boss_eng_title_card" Format="i8" Width="128" Height="40" Offset="0xeb00" />
|
||||
<Texture Name="gVolvagiaBossTitleCardJPNTex" OutName="volvagia_boss_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0xd700" />
|
||||
<Texture Name="gVolvagiaBossTitleCardENGTex" OutName="volvagia_boss_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0xeb00" />
|
||||
</File>
|
||||
<File Name="object_fhg" Segment="6">
|
||||
<Texture Name="gPhantomGanonTitleCardJPNTex" OutName="phantom_ganon_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x59a0" />
|
||||
<Texture Name="gPhantomGanonTitleCardENGTex" OutName="phantom_ganon_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x6da0" />
|
||||
<Texture Name="gPhantomGanonTitleCardJPNTex" OutName="phantom_ganon_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x59a0" />
|
||||
<Texture Name="gPhantomGanonTitleCardENGTex" OutName="phantom_ganon_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x6da0" />
|
||||
</File>
|
||||
<File Name="object_ganon" Segment="6">
|
||||
<Texture Name="gGanondorfTitleCardJPNTex" OutName="ganondorf_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0xcf00" />
|
||||
<Texture Name="gGanondorfTitleCardENGTex" OutName="ganondorf_eng_title_card" Format="i8" Width="128" Height="40" Offset="0xe300" />
|
||||
<Texture Name="gGanondorfTitleCardJPNTex" OutName="ganondorf_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0xcf00" />
|
||||
<Texture Name="gGanondorfTitleCardENGTex" OutName="ganondorf_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0xe300" />
|
||||
</File>
|
||||
<File Name="object_ganon2" Segment="6">
|
||||
<Texture Name="gGanonTitleCardJPNTex" OutName="ganon_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x21a90" />
|
||||
<Texture Name="gGanonTitleCardENGTex" OutName="ganon_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x22e90" />
|
||||
<Texture Name="gGanonTitleCardJPNTex" OutName="ganon_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x21a90" />
|
||||
<Texture Name="gGanonTitleCardENGTex" OutName="ganon_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x22e90" />
|
||||
</File>
|
||||
<File Name="object_goma" Segment="6">
|
||||
<Texture Name="gGohmaTitleCardJPNTex" OutName="gohma_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x19ba8" />
|
||||
<Texture Name="gGohmaTitleCardENGTex" OutName="gohma_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x1afa8" />
|
||||
<Texture Name="gGohmaTitleCardJPNTex" OutName="gohma_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x19ba8" />
|
||||
<Texture Name="gGohmaTitleCardENGTex" OutName="gohma_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x1afa8" />
|
||||
</File>
|
||||
<File Name="object_kingdodongo" Segment="6">
|
||||
<Texture Name="gKingDodongoTitleCardJPNTex" OutName="king_dodongo_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x17410" />
|
||||
<Texture Name="gKingDodongoTitleCardENGTex" OutName="king_dodongo_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x18810" />
|
||||
<Texture Name="gKingDodongoTitleCardJPNTex" OutName="king_dodongo_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x17410" />
|
||||
<Texture Name="gKingDodongoTitleCardENGTex" OutName="king_dodongo_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x18810" />
|
||||
</File>
|
||||
<File Name="object_mo" Segment="6">
|
||||
<Texture Name="gMorphaTitleCardJPNTex" OutName="morpha_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x1010" />
|
||||
<Texture Name="gMorphaTitleCardENGTex" OutName="morpha_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x2410" />
|
||||
<Texture Name="gMorphaTitleCardJPNTex" OutName="morpha_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x1010" />
|
||||
<Texture Name="gMorphaTitleCardENGTex" OutName="morpha_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x2410" />
|
||||
</File>
|
||||
<File Name="object_sst" Segment="6">
|
||||
<Texture Name="gBongoTitleCardJPNTex" OutName="bongo_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x13d80" />
|
||||
<Texture Name="gBongoTitleCardENGTex" OutName="bongo_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x15180" />
|
||||
<Texture Name="gBongoTitleCardJPNTex" OutName="bongo_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x13d80" />
|
||||
<Texture Name="gBongoTitleCardENGTex" OutName="bongo_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x15180" />
|
||||
</File>
|
||||
<File Name="object_tw" Segment="6">
|
||||
<Texture Name="gTwinrovaTitleCardJPNTex" OutName="twinrova_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x2e170" />
|
||||
<Texture Name="gTwinrovaTitleCardENGTex" OutName="twinrova_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x2f570" />
|
||||
<Texture Name="gTwinrovaTitleCardJPNTex" OutName="twinrova_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x2e170" />
|
||||
<Texture Name="gTwinrovaTitleCardENGTex" OutName="twinrova_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x2f570" />
|
||||
</File>
|
||||
</Root>
|
||||
@@ -38,7 +38,7 @@
|
||||
<Texture Name="object_bvTLUT_01DBB0" OutName="object_bvTLUT_01DBB0" Format="rgba16" Width="16" Height="16" Offset="0x1C7B0" AddedByScript="true"/>
|
||||
<Texture Name="object_bvTLUT_01E6B0" OutName="object_bvTLUT_01E6B0" Format="rgba16" Width="16" Height="16" Offset="0x1D2B0" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="i8" Width="128" Height="80" Offset="0x1230"/>
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="ia8" Width="128" Height="80" Offset="0x1230"/>
|
||||
|
||||
<Skeleton Name="gBarinadeBodySkel" Type="Normal" LimbType="Standard" Offset="0x14718"/>
|
||||
<Skeleton Name="gBarinadeSupportSkel" Type="Flex" LimbType="Standard" Offset="0x16098"/>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<Texture Name="object_fdTLUT_000A58" OutName="object_fdTLUT_000A58" Format="rgba16" Width="4" Height="4" Offset="0xA58" AddedByScript="true"/>
|
||||
<Texture Name="object_fdTLUT_0032A8" OutName="object_fdTLUT_0032A8" Format="rgba16" Width="16" Height="16" Offset="0x32A8" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<!-- <Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="i8" Width="128" Height="80" Offset="0xD700"/> -->
|
||||
<!-- <Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="ia8" Width="128" Height="80" Offset="0xD700"/> -->
|
||||
|
||||
<!-- Skeletons -->
|
||||
<Skeleton Name="gVolvagiaLeftArmSkel" Type="Normal" LimbType="Standard" Offset="0x100E0"/>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<Animation Name="gPhantomHorseFenceJumpAnim" Offset="0xAD80"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="i8" Width="128" Height="80" Offset="0x59A0"/>
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="ia8" Width="128" Height="80" Offset="0x59A0"/>
|
||||
|
||||
<!-- Energy attack DLists -->
|
||||
<DList Name="gPhantomWarpDL" Offset="0xE6A0"/>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<DList Name="gGanondorfRightHandOpenDL" Offset="0xC9E8"/>
|
||||
|
||||
<!-- Ganondorf Title Card Texture -->
|
||||
<!-- <Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="i8" Width="128" Height="80" Offset="0xCF00"/> -->
|
||||
<!-- <Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="ia8" Width="128" Height="80" Offset="0xCF00"/> -->
|
||||
|
||||
<!-- Ganondorf Animation -->
|
||||
<Animation Name="gGanondorfEndingFloatAnim" Offset="0xFF48"/> <!-- Original name is "ONOLEE" (lit. "Curse you!" from his in-game dialogue) -->
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
<Texture Name="gGohmaIrisTex" OutName="gohma_iris" Format="rgba16" Width="32" Height="32" Offset="0x193A8"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="i8" Width="128" Height="80" Offset="0x19BA8"/>
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="ia8" Width="128" Height="80" Offset="0x19BA8"/>
|
||||
|
||||
<!-- Door -->
|
||||
<DList Name="gGohmaDoorDL" Offset="0x1D820"/>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<Texture Name="object_kingdodongo_Tex_016D90" OutName="tex_00016D90" Format="rgba16" Width="8" Height="8" Offset="0x16D90"/>
|
||||
<Texture Name="object_kingdodongo_Tex_016E10" OutName="tex_00016E10" Format="rgba16" Width="32" Height="16" Offset="0x16E10"/>
|
||||
<Texture Name="object_kingdodongo_Tex_017210" OutName="tex_00017210" Format="rgba16" Width="8" Height="32" Offset="0x17210"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="i8" Width="128" Height="80" Offset="0x17410"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="ia8" Width="128" Height="80" Offset="0x17410"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B010" LimbType="Standard" Offset="0x19C10"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B01C" LimbType="Standard" Offset="0x19C1C"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B028" LimbType="Standard" Offset="0x19C28"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Texture Name="object_moTex_005520" OutName="object_moTex_005520" Format="ia16" Width="32" Height="32" Offset="0x4120" AddedByScript="true"/>
|
||||
<Texture Name="object_moTex_005D20" OutName="object_moTex_005D20" Format="ia16" Width="32" Height="32" Offset="0x4920" AddedByScript="true"/>
|
||||
<!-- Morpha's Title Card -->
|
||||
<Texture Name="gMorphaTitleCardTex" Format="i8" Width="128" Height="80" Offset="0x1010"/>
|
||||
<Texture Name="gMorphaTitleCardTex" Format="ia8" Width="128" Height="80" Offset="0x1010"/>
|
||||
<Texture Name="gMorphaWaterTex" Format="rgba16" Width="32" Height="32" Offset="0x7470"/>
|
||||
|
||||
<!-- DLists for Morpha's Core -->
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<Texture Name="object_sstTex_01A730" OutName="object_sstTex_01A730" Format="rgba16" Width="4" Height="16" Offset="0x19330" AddedByScript="true"/>
|
||||
<Texture Name="object_sstTex_01A7B0" OutName="object_sstTex_01A7B0" Format="rgba16" Width="16" Height="16" Offset="0x193B0" AddedByScript="true"/>
|
||||
<!-- Boss Title Card -->
|
||||
<Texture Name="gBongoTitleCardTex" OutName="bongo_title_card" Format="i8" Width="128" Height="80" Offset="0x13D80"/>
|
||||
<Texture Name="gBongoTitleCardTex" OutName="bongo_title_card" Format="ia8" Width="128" Height="80" Offset="0x13D80"/>
|
||||
|
||||
<!-- Skeletons -->
|
||||
<Skeleton Name="gBongoLeftHandSkel" Type="Flex" LimbType="Standard" Offset="0x04DE0"/>
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
<DList Name="gTwinrovaBroomIceTrailDL" Offset="0x2DEB0"/>
|
||||
<DList Name="gTwinrovaBroomFireJetDL" Offset="0x2DFB0"/>
|
||||
<DList Name="gTwinrovaBroomFireTrailDL" Offset="0x2E098"/>
|
||||
<Texture Name="gTwinrovaTitleCardTex" OutName="title_card" Format="i8" Width="128" Height="80" Offset="0x2E170"/>
|
||||
<Texture Name="gTwinrovaTitleCardTex" OutName="title_card" Format="ia8" Width="128" Height="80" Offset="0x2E170"/>
|
||||
<Limb Name="gTwinrovaPelvisLimb" LimbType="Standard" Offset="0x30970"/>
|
||||
<Limb Name="gTwinrovaSash1Limb" LimbType="Standard" Offset="0x3097C"/>
|
||||
<Limb Name="gTwinrovaSash2Limb" LimbType="Standard" Offset="0x30988"/>
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
<Root>
|
||||
<File Name="object_bv" Segment="6">
|
||||
<Texture Name="gBarinadeTitleCardJPNTex" OutName="barinade_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x1230" />
|
||||
<Texture Name="gBarinadeTitleCardENGTex" OutName="barinade_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x2630" />
|
||||
<Texture Name="gBarinadeTitleCardJPNTex" OutName="barinade_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x1230" />
|
||||
<Texture Name="gBarinadeTitleCardENGTex" OutName="barinade_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x2630" />
|
||||
</File>
|
||||
<File Name="object_fd" Segment="6">
|
||||
<Texture Name="gVolvagiaBossTitleCardJPNTex" OutName="volvagia_boss_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0xd700" />
|
||||
<Texture Name="gVolvagiaBossTitleCardENGTex" OutName="volvagia_boss_eng_title_card" Format="i8" Width="128" Height="40" Offset="0xeb00" />
|
||||
<Texture Name="gVolvagiaBossTitleCardJPNTex" OutName="volvagia_boss_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0xd700" />
|
||||
<Texture Name="gVolvagiaBossTitleCardENGTex" OutName="volvagia_boss_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0xeb00" />
|
||||
</File>
|
||||
<File Name="object_fhg" Segment="6">
|
||||
<Texture Name="gPhantomGanonTitleCardJPNTex" OutName="phantom_ganon_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x59a0" />
|
||||
<Texture Name="gPhantomGanonTitleCardENGTex" OutName="phantom_ganon_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x6da0" />
|
||||
<Texture Name="gPhantomGanonTitleCardJPNTex" OutName="phantom_ganon_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x59a0" />
|
||||
<Texture Name="gPhantomGanonTitleCardENGTex" OutName="phantom_ganon_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x6da0" />
|
||||
</File>
|
||||
<File Name="object_ganon" Segment="6">
|
||||
<Texture Name="gGanondorfTitleCardJPNTex" OutName="ganondorf_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0xcf00" />
|
||||
<Texture Name="gGanondorfTitleCardENGTex" OutName="ganondorf_eng_title_card" Format="i8" Width="128" Height="40" Offset="0xe300" />
|
||||
<Texture Name="gGanondorfTitleCardJPNTex" OutName="ganondorf_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0xcf00" />
|
||||
<Texture Name="gGanondorfTitleCardENGTex" OutName="ganondorf_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0xe300" />
|
||||
</File>
|
||||
<File Name="object_ganon2" Segment="6">
|
||||
<Texture Name="gGanonTitleCardJPNTex" OutName="ganon_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x21a90" />
|
||||
<Texture Name="gGanonTitleCardENGTex" OutName="ganon_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x22e90" />
|
||||
<Texture Name="gGanonTitleCardJPNTex" OutName="ganon_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x21a90" />
|
||||
<Texture Name="gGanonTitleCardENGTex" OutName="ganon_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x22e90" />
|
||||
</File>
|
||||
<File Name="object_goma" Segment="6">
|
||||
<Texture Name="gGohmaTitleCardJPNTex" OutName="gohma_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x19ba8" />
|
||||
<Texture Name="gGohmaTitleCardENGTex" OutName="gohma_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x1afa8" />
|
||||
<Texture Name="gGohmaTitleCardJPNTex" OutName="gohma_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x19ba8" />
|
||||
<Texture Name="gGohmaTitleCardENGTex" OutName="gohma_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x1afa8" />
|
||||
</File>
|
||||
<File Name="object_kingdodongo" Segment="6">
|
||||
<Texture Name="gKingDodongoTitleCardJPNTex" OutName="king_dodongo_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x17410" />
|
||||
<Texture Name="gKingDodongoTitleCardENGTex" OutName="king_dodongo_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x18810" />
|
||||
<Texture Name="gKingDodongoTitleCardJPNTex" OutName="king_dodongo_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x17410" />
|
||||
<Texture Name="gKingDodongoTitleCardENGTex" OutName="king_dodongo_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x18810" />
|
||||
</File>
|
||||
<File Name="object_mo" Segment="6">
|
||||
<Texture Name="gMorphaTitleCardJPNTex" OutName="morpha_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x1010" />
|
||||
<Texture Name="gMorphaTitleCardENGTex" OutName="morpha_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x2410" />
|
||||
<Texture Name="gMorphaTitleCardJPNTex" OutName="morpha_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x1010" />
|
||||
<Texture Name="gMorphaTitleCardENGTex" OutName="morpha_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x2410" />
|
||||
</File>
|
||||
<File Name="object_sst" Segment="6">
|
||||
<Texture Name="gBongoTitleCardJPNTex" OutName="bongo_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x13d80" />
|
||||
<Texture Name="gBongoTitleCardENGTex" OutName="bongo_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x15180" />
|
||||
<Texture Name="gBongoTitleCardJPNTex" OutName="bongo_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x13d80" />
|
||||
<Texture Name="gBongoTitleCardENGTex" OutName="bongo_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x15180" />
|
||||
</File>
|
||||
<File Name="object_tw" Segment="6">
|
||||
<Texture Name="gTwinrovaTitleCardJPNTex" OutName="twinrova_jpn_title_card" Format="i8" Width="128" Height="40" Offset="0x2e170" />
|
||||
<Texture Name="gTwinrovaTitleCardENGTex" OutName="twinrova_eng_title_card" Format="i8" Width="128" Height="40" Offset="0x2f570" />
|
||||
<Texture Name="gTwinrovaTitleCardJPNTex" OutName="twinrova_jpn_title_card" Format="ia8" Width="128" Height="40" Offset="0x2e170" />
|
||||
<Texture Name="gTwinrovaTitleCardENGTex" OutName="twinrova_eng_title_card" Format="ia8" Width="128" Height="40" Offset="0x2f570" />
|
||||
</File>
|
||||
</Root>
|
||||
@@ -38,7 +38,7 @@
|
||||
<Texture Name="object_bvTLUT_01DBB0" OutName="object_bvTLUT_01DBB0" Format="rgba16" Width="16" Height="16" Offset="0x1DBB0" AddedByScript="true"/>
|
||||
<Texture Name="object_bvTLUT_01E6B0" OutName="object_bvTLUT_01E6B0" Format="rgba16" Width="16" Height="16" Offset="0x1E6B0" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="i8" Width="128" Height="120" Offset="0x1230"/>
|
||||
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="ia8" Width="128" Height="120" Offset="0x1230"/>
|
||||
|
||||
<Skeleton Name="gBarinadeBodySkel" Type="Normal" LimbType="Standard" Offset="0x15B18"/>
|
||||
<Skeleton Name="gBarinadeSupportSkel" Type="Flex" LimbType="Standard" Offset="0x17498"/>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<Texture Name="object_fdTLUT_000A58" OutName="object_fdTLUT_000A58" Format="rgba16" Width="4" Height="4" Offset="0xA58" AddedByScript="true"/>
|
||||
<Texture Name="object_fdTLUT_0032A8" OutName="object_fdTLUT_0032A8" Format="rgba16" Width="16" Height="16" Offset="0x32A8" AddedByScript="true"/>
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="i8" Width="128" Height="120" Offset="0xD700"/>
|
||||
<Texture Name="gVolvagiaTitleCardTex" OutName="volvagia_boss_title_card" Format="ia8" Width="128" Height="120" Offset="0xD700"/>
|
||||
|
||||
<!-- Skeletons -->
|
||||
<Skeleton Name="gVolvagiaLeftArmSkel" Type="Normal" LimbType="Standard" Offset="0x114E0"/>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<Animation Name="gPhantomHorseFenceJumpAnim" Offset="0xC180"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="i8" Width="128" Height="120" Offset="0x59A0"/>
|
||||
<Texture Name="gPhantomGanonTitleCardTex" OutName="phantom_ganon_title_card" Format="ia8" Width="128" Height="120" Offset="0x59A0"/>
|
||||
|
||||
<!-- Energy attack DLists -->
|
||||
<DList Name="gPhantomWarpDL" Offset="0xFAA0"/>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<DList Name="gGanondorfRightHandOpenDL" Offset="0xC9E8"/>
|
||||
|
||||
<!-- Ganondorf Title Card Texture -->
|
||||
<Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="i8" Width="128" Height="120" Offset="0xCF00"/>
|
||||
<Texture Name="gGanondorfTitleCardTex" OutName="ganondorf_title_card" Format="ia8" Width="128" Height="120" Offset="0xCF00"/>
|
||||
|
||||
<!-- Ganondorf Animation -->
|
||||
<Animation Name="gGanondorfEndingFloatAnim" Offset="0x11348"/> <!-- Original name is "ONOLEE" (lit. "Curse you!" from his in-game dialogue) -->
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
<Texture Name="gGohmaIrisTex" OutName="gohma_iris" Format="rgba16" Width="32" Height="32" Offset="0x193A8"/>
|
||||
|
||||
<!-- Boss title card -->
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="i8" Width="128" Height="120" Offset="0x19BA8"/>
|
||||
<Texture Name="gGohmaTitleCardTex" OutName="gohma_title_card" Format="ia8" Width="128" Height="120" Offset="0x19BA8"/>
|
||||
|
||||
<!-- Door -->
|
||||
<DList Name="gGohmaDoorDL" Offset="0x1EC20"/>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<Texture Name="object_kingdodongo_Tex_016D90" OutName="tex_00016D90" Format="rgba16" Width="8" Height="8" Offset="0x16D90"/>
|
||||
<Texture Name="object_kingdodongo_Tex_016E10" OutName="tex_00016E10" Format="rgba16" Width="32" Height="16" Offset="0x16E10"/>
|
||||
<Texture Name="object_kingdodongo_Tex_017210" OutName="tex_00017210" Format="rgba16" Width="8" Height="32" Offset="0x17210"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="i8" Width="128" Height="120" Offset="0x17410"/>
|
||||
<Texture Name="gKingDodongoTitleCardTex" OutName="title_card" Format="ia8" Width="128" Height="120" Offset="0x17410"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B010" LimbType="Standard" Offset="0x1B010"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B01C" LimbType="Standard" Offset="0x1B01C"/>
|
||||
<Limb Name="object_kingdodongo_Limb_01B028" LimbType="Standard" Offset="0x1B028"/>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Texture Name="object_moTex_005520" OutName="object_moTex_005520" Format="ia16" Width="32" Height="32" Offset="0x5520" AddedByScript="true"/>
|
||||
<Texture Name="object_moTex_005D20" OutName="object_moTex_005D20" Format="ia16" Width="32" Height="32" Offset="0x5D20" AddedByScript="true"/>
|
||||
<!-- Morpha's Title Card -->
|
||||
<Texture Name="gMorphaTitleCardTex" Format="i8" Width="128" Height="120" Offset="0x1010"/>
|
||||
<Texture Name="gMorphaTitleCardTex" Format="ia8" Width="128" Height="120" Offset="0x1010"/>
|
||||
<Texture Name="gMorphaWaterTex" Format="rgba16" Width="32" Height="32" Offset="0x8870"/>
|
||||
|
||||
<!-- DLists for Morpha's Core -->
|
||||
|
||||