Compare commits
292 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f896f126f | |||
| 4166dbf907 | |||
| 2af99dfc3a | |||
| 6d2fd664fb | |||
| 000a5d28f3 | |||
| aea46e7cb2 | |||
| 44d3f1ccbb | |||
| bd3ee64d81 | |||
| 9be85df4b2 | |||
| d0041d28ea | |||
| 5324dfae67 | |||
| 25ceca0fbf | |||
| c4b90d0bfe | |||
| 512336f858 | |||
| 42ff9742ed | |||
| 37c0345529 | |||
| 359cc3d5f6 | |||
| c146ca4aa5 | |||
| 8f0f8c7644 | |||
| 1b63f4ca1a | |||
| 7d20509b5b | |||
| 37390c441f | |||
| 853bff3e41 | |||
| 7a96e700bf | |||
| 16ee259d0b | |||
| 6562823b72 | |||
| 4aee3b6cc9 | |||
| 19d8d38082 | |||
| 579087e527 | |||
| 831711a459 | |||
| e72eeb95aa | |||
| ead17892fe | |||
| 1861335cf0 | |||
| 660c3ec3b0 | |||
| 92fa54c3f9 | |||
| 08828da9fc | |||
| c4ce2f10cd | |||
| 38c31d2d4e | |||
| 40b6dae261 | |||
| ac506c8b3e | |||
| 059df8187e | |||
| 82b6c48497 | |||
| fe71cdfbb6 | |||
| 6f8207d3bb | |||
| d56899dd0b | |||
| b6e9e9cd0f | |||
| 6f9c31dd6c | |||
| b47d538e62 | |||
| 330da0b5ec | |||
| 1fa31410c2 | |||
| 2149cd1fdd | |||
| 0f6147f41d | |||
| 693f778b60 | |||
| b10e489cc6 | |||
| ad60ad7c2b | |||
| 196de9d05d | |||
| bd05cb8b5d | |||
| d434941724 | |||
| 44906598e4 | |||
| ff1d8a9e9d | |||
| 0f40472c1a | |||
| 2af952b180 | |||
| 5f708251a6 | |||
| 94ad837c02 | |||
| 62bd4b0ba7 | |||
| 77cc91d0de | |||
| fb8dacbc69 | |||
| f6ce7e6492 | |||
| 04d0cd8532 | |||
| b099b5649b | |||
| ca23d87a3a | |||
| 21d82e7c4c | |||
| 2aa7c71eac | |||
| 2a0a31ae7e | |||
| f5bcc6dccf | |||
| f7703e14e8 | |||
| 0c43fe7e48 | |||
| 545bc21fbe | |||
| 21a3bd9f5c | |||
| f682102c96 | |||
| c9c7fc7df6 | |||
| e76b990c8a | |||
| 533ee9379a | |||
| 7f5f4251ca | |||
| bd07a56022 | |||
| b2698fa126 | |||
| 72b12890fd | |||
| 58ef377d87 | |||
| 1b158015e6 | |||
| 0ade1aad69 | |||
| 356d959b70 | |||
| b157cc5a16 | |||
| 2bd8316d54 | |||
| 264623f40a | |||
| 866882e4c6 | |||
| d9008938f8 | |||
| 76e99ffe19 | |||
| 1ce9634f65 | |||
| 39acd71fc4 | |||
| 73052617ed | |||
| 095066ffcd | |||
| 1c00d56053 | |||
| 7c558ae089 | |||
| 60f4f71495 | |||
| 2117d98178 | |||
| 4a89c20ac9 | |||
| eb28d114cd | |||
| 5d32343919 | |||
| ce115272cd | |||
| dbcc6b4818 | |||
| 0a67e42f6c | |||
| 76ceda3118 | |||
| a5bf135541 | |||
| 0d54cb15df | |||
| 981c6348ab | |||
| d3f864cea9 | |||
| 21466192e5 | |||
| 72777a0eb2 | |||
| b13f6f4b70 | |||
| 7551fba3d2 | |||
| 109345e94d | |||
| e07de4b3b5 | |||
| 05723bc8d6 | |||
| b74be9196c | |||
| 0daa91f4e3 | |||
| 1fc6a2f08f | |||
| 27d7cb0bc1 | |||
| 2df6acc908 | |||
| c91a044d46 | |||
| afc61e65ee | |||
| 7f5221b149 | |||
| f0be8c7b0c | |||
| f481b86386 | |||
| 061e232685 | |||
| 9ec091a636 | |||
| f7bb807940 | |||
| 17aeec4b13 | |||
| 2cb4a6ee7e | |||
| 448b4e49d3 | |||
| c1ddeec02a | |||
| 60b206140d | |||
| 390bdf10f6 | |||
| fef230bc87 | |||
| 29daec879b | |||
| 23d2e4a2cc | |||
| 95fe6b492b | |||
| df6da69f7d | |||
| 96dd7073e4 | |||
| 231b7eecca | |||
| e25b11c5ac | |||
| ff94d35ea9 | |||
| 6e4b1aec2a | |||
| 3d30f1701a | |||
| ffbaef7823 | |||
| 656e593a67 | |||
| 6a09934e3b | |||
| d238533aba | |||
| 7860f88241 | |||
| e8e4afbbcd | |||
| 4a4f7e6d96 | |||
| 12e1814dad | |||
| 9325e6d0a5 | |||
| 494bdcdb25 | |||
| 868689ce3e | |||
| 3f3f4ff3ef | |||
| 68c8f50a71 | |||
| 3d8752b3aa | |||
| f4f10e4a49 | |||
| 6b93da37d4 | |||
| 6cd7066706 | |||
| 877fc2dcca | |||
| 1e6ec1bdda | |||
| 27f961ac4f | |||
| deb47ea430 | |||
| d275740c88 | |||
| 8934274c67 | |||
| 2c10bca615 | |||
| b19c72070d | |||
| 3a4a260e21 | |||
| 7c3c662eba | |||
| e60f2b0c55 | |||
| 2241635ac5 | |||
| 218971c4a9 | |||
| 462ab00c7e | |||
| 622d8c4aff | |||
| 75782e4019 | |||
| 66b2d2d5fa | |||
| 8c87bc13db | |||
| 67421179e4 | |||
| 1e9f8df33b | |||
| 8f9dc17752 | |||
| df1e26d4cd | |||
| fdf9d51444 | |||
| 242a35c3a0 | |||
| f57cae120d | |||
| 177194ca5a | |||
| 3218b2def2 | |||
| 8a76a3aa83 | |||
| 5771e6cd1f | |||
| e14fcf92d2 | |||
| 612700c2ab | |||
| 4e08eca1b9 | |||
| 44f963e310 | |||
| 544460d909 | |||
| f6c310ae84 | |||
| 9b020c0986 | |||
| 3617b2e5b7 | |||
| 72dcf3466b | |||
| 0aab836d1f | |||
| 9fe7839f9a | |||
| 22efba8cd7 | |||
| 1e2b60c6e0 | |||
| 279553e6b3 | |||
| 0df5060541 | |||
| 47f206825d | |||
| 569013535e | |||
| 589e25948e | |||
| 170a9103f9 | |||
| ec4cee787c | |||
| 7a75fe8411 | |||
| 6d6c1c8c32 | |||
| 21ae445548 | |||
| 5c21bb0b8a | |||
| 6b6cfa5ebe | |||
| 402d7dd3b7 | |||
| 0629140357 | |||
| beb414eb0a | |||
| 2422c94f6b | |||
| e5bc5188e7 | |||
| eb222f3998 | |||
| a1cb921042 | |||
| e79bd2587d | |||
| cb5faa1ac8 | |||
| 37f31116b3 | |||
| 52a976489b | |||
| 643a98244b | |||
| a58705eaf4 | |||
| a9e7faa180 | |||
| 4291ec8252 | |||
| 2a9d93dd65 | |||
| 33539be458 | |||
| 6e417713b9 | |||
| 1b9962dfc2 | |||
| 1b9ab52e35 | |||
| 261db2c3e1 | |||
| 7964bde063 | |||
| 1e178c4497 | |||
| c0ad43e509 | |||
| d6dbaacb03 | |||
| d9662ab63b | |||
| 52b182d4dc | |||
| 12737143c7 | |||
| a335aba987 | |||
| edceb2d460 | |||
| 7c8be2153c | |||
| 32ad0ab4b8 | |||
| a5f7478b99 | |||
| 207d38e476 | |||
| c36e9cc32d | |||
| 745444fa90 | |||
| 750ae907c2 | |||
| 2e4a19c0ee | |||
| f665326a67 | |||
| 418d0f8e6c | |||
| 13b8f26435 | |||
| ba5d5c25d1 | |||
| 6be1f28d7b | |||
| 15a6568607 | |||
| 1fe862515d | |||
| 6eef813e5d | |||
| 76c9895432 | |||
| 048207eb7d | |||
| 170b9c1224 | |||
| 1e7cf8858f | |||
| 4b10a887a6 | |||
| ff3548a1b6 | |||
| fda198db76 | |||
| 7f06087cef | |||
| 6ae28273d1 | |||
| 5b2a50cac2 | |||
| 1e258318a1 | |||
| 156de816fb | |||
| ba13e6b2c4 | |||
| ecb10e6ac2 | |||
| ab104623a7 | |||
| f42f86e3ef | |||
| 85bccab1bb | |||
| 5ce4e75bd2 | |||
| 4d8c70fb1f | |||
| 17b1a8e7fd | |||
| a95b1067b4 | |||
| a6120811d5 |
@@ -0,0 +1,27 @@
|
||||
FROM mcr.microsoft.com/devcontainers/cpp:ubuntu-22.04
|
||||
|
||||
RUN apt-get update && apt-get install -y libsdl2-dev libsdl2-net-dev libpng-dev libglew-dev ninja-build
|
||||
|
||||
# Install latest SDL2
|
||||
RUN wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz && \
|
||||
tar -xzf SDL2-2.26.1.tar.gz && \
|
||||
cd SDL2-2.26.1 && \
|
||||
./configure && \
|
||||
make && \
|
||||
make install && \
|
||||
cd .. && \
|
||||
rm -rf SDL2-2.26.1 && \
|
||||
rm SDL2-2.26.1.tar.gz && \
|
||||
cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
|
||||
# Install latest SDL2_net
|
||||
RUN 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 && \
|
||||
cd SDL2_net-2.2.0 && \
|
||||
./configure && \
|
||||
make && \
|
||||
make install && \
|
||||
cd .. && \
|
||||
rm -rf SDL2_net-2.2.0 && \
|
||||
rm SDL2_net-2.2.0.tar.gz && \
|
||||
cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
@@ -0,0 +1,29 @@
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
|
||||
{
|
||||
"name": "SoH",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile"
|
||||
},
|
||||
|
||||
// Features to add to the dev container. More info: https://containers.dev/features.
|
||||
// "features": {},
|
||||
|
||||
// Configure tool-specific properties.
|
||||
"customizations": {
|
||||
// Configure properties specific to VS Code.
|
||||
"vscode": {
|
||||
"settings": {},
|
||||
"extensions": []
|
||||
}
|
||||
}
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "gcc -v",
|
||||
|
||||
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||
// "remoteUser": "root"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
* text=auto eol=lf
|
||||
@@ -6,26 +6,59 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
extract-assets:
|
||||
runs-on: [ self-hosted, asset-builder ]
|
||||
generate-soh-otr:
|
||||
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
- name: Extract assets
|
||||
- name: ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
with:
|
||||
key: ${{ runner.os }}-soh-otr-ccache
|
||||
- name: Install dependencies
|
||||
if: ${{ !vars.LINUX_RUNNER }}
|
||||
run: |
|
||||
cp ../../../ZELOOTD.z64 OTRExporter/baserom_non_mq.z64
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
|
||||
- name: Install latest SDL
|
||||
if: ${{ !vars.LINUX_RUNNER }}
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz
|
||||
tar -xzf SDL2-2.26.1.tar.gz
|
||||
cd SDL2-2.26.1
|
||||
./configure
|
||||
make -j 10
|
||||
sudo make install
|
||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Install latest SDL_net
|
||||
if: ${{ !vars.LINUX_RUNNER }}
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
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
|
||||
cd 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: Generate soh.otr
|
||||
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 --target ExtractAssets --config Release
|
||||
zip -r assets.zip soh/assets
|
||||
cmake --build build-cmake --config Release --target ZAPD
|
||||
mkdir Extract
|
||||
cp -r OTRExporter/assets/ ./Extract/assets
|
||||
./build-cmake/ZAPD/ZAPD.out botr -se OTR --norom
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: assets
|
||||
path: assets.zip
|
||||
name: soh.otr
|
||||
path: soh.otr
|
||||
retention-days: 1
|
||||
build-macos:
|
||||
needs: extract-assets
|
||||
runs-on: macos-12
|
||||
needs: generate-soh-otr
|
||||
runs-on: ${{ (vars.MAC_RUNNER && fromJSON(vars.MAC_RUNNER)) || 'macos-12' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
@@ -35,12 +68,14 @@ jobs:
|
||||
with:
|
||||
key: ${{ runner.os }}-ccache
|
||||
- name: Install gtar wrapper
|
||||
if: ${{ !vars.MAC_RUNNER }}
|
||||
run: |
|
||||
sudo mv /usr/local/bin/gtar /usr/local/bin/gtar.orig
|
||||
sudo cp .github/workflows//gtar /usr/local/bin/gtar
|
||||
sudo chmod +x /usr/local/bin/gtar
|
||||
- name: Cache MacPorts
|
||||
id: cache-macports
|
||||
if: ${{ !vars.MAC_RUNNER }}
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: /opt/local/
|
||||
@@ -48,6 +83,7 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-macports-
|
||||
- name: Install MacPorts (if necessary)
|
||||
if: ${{ !vars.MAC_RUNNER }}
|
||||
run: |
|
||||
if [ -d /opt/local/ ]; then
|
||||
echo "MacPorts already installed"
|
||||
@@ -57,21 +93,21 @@ jobs:
|
||||
fi
|
||||
echo "/opt/local/bin:/opt/local/sbin" >> $GITHUB_PATH
|
||||
- name: Install dependencies
|
||||
if: ${{ !vars.MAC_RUNNER }}
|
||||
run: |
|
||||
brew uninstall --ignore-dependencies libpng
|
||||
sudo port install $(cat .github/workflows/macports-deps.txt)
|
||||
brew install ninja
|
||||
- name: Restore assets
|
||||
- name: Download soh.otr
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: assets
|
||||
name: soh.otr
|
||||
- name: Build SoH
|
||||
run: |
|
||||
unzip -o assets.zip
|
||||
|
||||
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 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
|
||||
cmake --build build-cmake --config Release --parallel 10
|
||||
mv soh.otr build-cmake/soh
|
||||
(cd build-cmake && cpack)
|
||||
|
||||
mv _packages/*.dmg SoH.dmg
|
||||
@@ -84,31 +120,44 @@ jobs:
|
||||
SoH.dmg
|
||||
readme.txt
|
||||
build-linux:
|
||||
needs: extract-assets
|
||||
runs-on: ubuntu-20.04
|
||||
needs: generate-soh-otr
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
gcc: 10
|
||||
archive-suffix: compatibility
|
||||
- os: ubuntu-22.04
|
||||
gcc: 12
|
||||
archive-suffix: performance
|
||||
runs-on: ${{ (matrix.os == 'ubuntu-20.04' && ((vars.LINUX_COMPATIBILITY_RUNNER && fromJSON(vars.LINUX_COMPATIBILITY_RUNNER)) || matrix.os)) || (matrix.os == 'ubuntu-22.04' && ((vars.LINUX_PERFORMANCE_RUNNER && fromJSON(vars.LINUX_PERFORMANCE_RUNNER)) || matrix.os)) }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install dependencies
|
||||
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y $(cat .github/workflows/apt-deps.txt)
|
||||
- name: ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
with:
|
||||
key: ${{ runner.os }}-ccache
|
||||
key: ${{ matrix.os }}-ccache
|
||||
- name: Install latest SDL
|
||||
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
wget https://www.libsdl.org/release/SDL2-2.24.1.tar.gz
|
||||
tar -xzf SDL2-2.24.1.tar.gz
|
||||
cd SDL2-2.24.1
|
||||
wget https://www.libsdl.org/release/SDL2-2.26.1.tar.gz
|
||||
tar -xzf SDL2-2.26.1.tar.gz
|
||||
cd SDL2-2.26.1
|
||||
./configure
|
||||
make -j 10
|
||||
sudo make install
|
||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Install latest SDL_net
|
||||
if: ${{ (matrix.os == 'ubuntu-20.04' && !vars.LINUX_COMPATIBILITY_RUNNER) || (matrix.os == 'ubuntu-22.04' && !vars.LINUX_PERFORMANCE_RUNNER) }}
|
||||
run: |
|
||||
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
wget https://www.libsdl.org/projects/SDL_net/release/SDL2_net-2.2.0.tar.gz
|
||||
@@ -118,35 +167,32 @@ jobs:
|
||||
make -j 10
|
||||
sudo make install
|
||||
sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/
|
||||
- name: Restore assets
|
||||
- name: Download soh.otr
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: assets
|
||||
name: soh.otr
|
||||
- name: Build SoH
|
||||
run: |
|
||||
unzip -o assets.zip
|
||||
|
||||
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 --target OTRGui -j3
|
||||
cmake --build build-cmake --config Release -j3
|
||||
(cd build-cmake && cpack -G External)
|
||||
|
||||
mv README.md readme.txt
|
||||
mv build-cmake/*.appimage soh.appimage
|
||||
env:
|
||||
CC: gcc-10
|
||||
CXX: g++-10
|
||||
CC: gcc-${{ matrix.gcc }}
|
||||
CXX: g++-${{ matrix.gcc }}
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: soh-linux
|
||||
name: soh-linux-${{ matrix.archive-suffix }}
|
||||
path: |
|
||||
soh.appimage
|
||||
readme.txt
|
||||
build-switch:
|
||||
needs: extract-assets
|
||||
runs-on: ubuntu-latest
|
||||
needs: generate-soh-otr
|
||||
runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
||||
container:
|
||||
image: devkitpro/devkita64:latest
|
||||
steps:
|
||||
@@ -154,6 +200,9 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ninja-build
|
||||
- name: Fix dubious ownership error
|
||||
if: ${{ vars.LINUX_RUNNER }}
|
||||
run: git config --global --add safe.directory '*'
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
@@ -161,73 +210,73 @@ jobs:
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
with:
|
||||
key: ${{ runner.os }}-switch-ccache
|
||||
- name: Restore assets
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: assets
|
||||
- name: Build SoH
|
||||
run: |
|
||||
unzip -o assets.zip
|
||||
|
||||
cmake -H. -Bbuild-switch -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache
|
||||
cmake --build build-switch --target soh_nro -j3
|
||||
|
||||
mv build-switch/soh/*.nro soh.nro
|
||||
mv README.md readme.txt
|
||||
- name: Download soh.otr
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: soh.otr
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: soh-switch
|
||||
path: |
|
||||
soh.nro
|
||||
soh.otr
|
||||
readme.txt
|
||||
build-wiiu:
|
||||
needs: extract-assets
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: devkitpro/devkitppc:latest
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ninja-build
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
- name: ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
with:
|
||||
key: ${{ runner.os }}-wiiu-ccache
|
||||
- name: Restore assets
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: assets
|
||||
- name: Build SoH
|
||||
run: |
|
||||
unzip -o assets.zip
|
||||
# build-wiiu:
|
||||
# needs: generate-soh-otr
|
||||
# runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }}
|
||||
# container:
|
||||
# image: devkitpro/devkitppc:latest
|
||||
# steps:
|
||||
# - name: Install dependencies
|
||||
# if: ${{ !vars.LINUX_RUNNER }}
|
||||
# run: |
|
||||
# sudo apt-get update
|
||||
# sudo apt-get install -y ninja-build
|
||||
# - uses: actions/checkout@v3
|
||||
# with:
|
||||
# submodules: true
|
||||
# - name: ccache
|
||||
# uses: hendrikmuhs/ccache-action@v1.2
|
||||
# with:
|
||||
# key: ${{ runner.os }}-wiiu-ccache
|
||||
# - name: Build SoH
|
||||
# run: |
|
||||
# cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache
|
||||
# cmake --build build-wiiu --target soh_wuhb --config Release -j3
|
||||
|
||||
cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache
|
||||
cmake --build build-wiiu --target soh_wuhb --config Release -j3
|
||||
|
||||
mv build-wiiu/soh/*.rpx soh.rpx
|
||||
mv build-wiiu/soh/*.wuhb soh.wuhb
|
||||
mv README.md readme.txt
|
||||
env:
|
||||
DEVKITPRO: /opt/devkitpro
|
||||
DEVKITPPC: /opt/devkitpro/devkitPPC
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: soh-wiiu
|
||||
path: |
|
||||
soh.rpx
|
||||
soh.wuhb
|
||||
readme.txt
|
||||
# mv build-wiiu/soh/*.rpx soh.rpx
|
||||
# mv build-wiiu/soh/*.wuhb soh.wuhb
|
||||
# mv README.md readme.txt
|
||||
# env:
|
||||
# DEVKITPRO: /opt/devkitpro
|
||||
# DEVKITPPC: /opt/devkitpro/devkitPPC
|
||||
# - name: Download soh.otr
|
||||
# uses: actions/download-artifact@v3
|
||||
# with:
|
||||
# name: soh.otr
|
||||
# - name: Upload build
|
||||
# uses: actions/upload-artifact@v3
|
||||
# with:
|
||||
# name: soh-wiiu
|
||||
# path: |
|
||||
# soh.rpx
|
||||
# soh.wuhb
|
||||
# soh.otr
|
||||
# readme.txt
|
||||
build-windows:
|
||||
needs: extract-assets
|
||||
runs-on: windows-latest
|
||||
needs: generate-soh-otr
|
||||
runs-on: ${{ (vars.WINDOWS_RUNNER && fromJSON(vars.WINDOWS_RUNNER)) || 'windows-latest' }}
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
if: ${{ !vars.WINDOWS_RUNNER }}
|
||||
run: |
|
||||
choco install ninja
|
||||
Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force
|
||||
@@ -238,26 +287,30 @@ jobs:
|
||||
uses: dcvz/ccache-action@27b9f33213c0079872f064f6b6ba0233dfa16ba2
|
||||
with:
|
||||
key: ${{ runner.os }}-ccache
|
||||
- name: Restore assets
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: assets
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: Setup 7-Zip
|
||||
run: |
|
||||
"C:\Program Files\7-Zip" >> $env:GITHUB_PATH
|
||||
- name: Build SoH
|
||||
run: |
|
||||
7z x assets.zip -aoa
|
||||
|
||||
set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH"
|
||||
cmake -S . -B build-windows -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
||||
cmake --build build-windows --target OTRGui --config Release --parallel 10
|
||||
cmake --build build-windows --config Release --parallel 10
|
||||
cd build-windows
|
||||
cpack -G ZIP
|
||||
|
||||
mkdir soh-windows
|
||||
mv ./x64/Release/soh.exe ./soh-windows/soh.exe
|
||||
mkdir soh-windows/debug
|
||||
mkdir soh-windows/mods
|
||||
New-Item soh-windows/mods/custom_otr_files_go_here.txt -type file
|
||||
mv ./x64/Release/soh.pdb ./soh-windows/debug/soh.pdb
|
||||
mv ./README.md ./soh-windows/readme.txt
|
||||
mv ./build-windows/gamecontrollerdb.txt ./soh-windows/gamecontrollerdb.txt
|
||||
mv ./build-windows/OTRGui/assets ./soh-windows
|
||||
mv ./build-windows/ZAPD/ZAPD.exe ./soh-windows/assets/extractor/ZAPD.exe
|
||||
- name: Download soh.otr
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: soh.otr
|
||||
path: soh-windows
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: soh-windows
|
||||
path: _packages/*.zip
|
||||
path: soh-windows
|
||||
|
||||
@@ -409,8 +409,7 @@ DebugObj/*
|
||||
ReleaseObj/*
|
||||
.tags
|
||||
tags
|
||||
oot.otr
|
||||
oot-mq.otr
|
||||
*.otr
|
||||
*.sav
|
||||
shipofharkinian.ini
|
||||
shipofharkinian.json
|
||||
@@ -447,4 +446,6 @@ CTestTestfile.cmake
|
||||
_deps
|
||||
*/extract_assets_cmake*
|
||||
/build*
|
||||
build.c
|
||||
|
||||
soh/build.c
|
||||
soh/properties.h
|
||||
|
||||
@@ -2,13 +2,11 @@ cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)
|
||||
|
||||
set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
|
||||
#set(CMAKE_C_STANDARD 11 CACHE STRING "The C standard to use") - issue with soh compile with MSVC
|
||||
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
|
||||
|
||||
project(Ship LANGUAGES C CXX
|
||||
VERSION 5.1.3)
|
||||
set(PROJECT_BUILD_NAME "BRADLEY DELTA" CACHE STRING "")
|
||||
project(Ship VERSION 7.0.0 LANGUAGES C CXX)
|
||||
set(PROJECT_BUILD_NAME "Spock Alfa" CACHE STRING "")
|
||||
set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "")
|
||||
|
||||
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh)
|
||||
@@ -27,7 +25,7 @@ set(VCPKG_TRIPLET x64-windows-static)
|
||||
set(VCPKG_TARGET_TRIPLET x64-windows-static)
|
||||
|
||||
vcpkg_bootstrap()
|
||||
vcpkg_install_packages(zlib bzip2 libpng SDL2 SDL2-net GLEW glfw3)
|
||||
vcpkg_install_packages(zlib bzip2 libpng sdl2 sdl2-net glew glfw3)
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
@@ -92,7 +90,7 @@ add_subdirectory(libultraship ${CMAKE_BINARY_DIR}/libultraship)
|
||||
add_subdirectory(ZAPDTR/ZAPD ${CMAKE_BINARY_DIR}/ZAPD)
|
||||
add_subdirectory(OTRExporter)
|
||||
add_subdirectory(soh)
|
||||
if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin|NintendoSwitch|CafeOS")
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows|Linux")
|
||||
add_subdirectory(OTRGui)
|
||||
endif()
|
||||
|
||||
@@ -102,20 +100,31 @@ set_property(TARGET soh PROPERTY APPIMAGE_ICON_FILE "${CMAKE_BINARY_DIR}/sohIcon
|
||||
|
||||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||
install(PROGRAMS "${CMAKE_SOURCE_DIR}/scripts/linux/appimage/soh.sh" DESTINATION . COMPONENT appimage)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/soh.otr" DESTINATION . COMPONENT appimage)
|
||||
endif()
|
||||
|
||||
find_package(Python3 COMPONENTS Interpreter)
|
||||
|
||||
# Target to generate OTRs
|
||||
add_custom_target(
|
||||
ExtractAssets
|
||||
# CMake versions prior to 3.17 do not have the rm command, use remove instead for older versions
|
||||
COMMAND ${CMAKE_COMMAND} -E $<IF:$<VERSION_LESS:${CMAKE_VERSION},3.17>,remove,rm> -f oot.otr oot-mq.otr
|
||||
COMMAND ${CMAKE_COMMAND} -E $<IF:$<VERSION_LESS:${CMAKE_VERSION},3.17>,remove,rm> -f oot.otr oot-mq.otr soh.otr
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive
|
||||
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -DSYSTEM_NAME=${CMAKE_SYSTEM_NAME} -DTARGET_DIR="$<TARGET_FILE_DIR:ZAPD>" -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DBINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/copy-existing-otrs.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
|
||||
COMMENT "Running asset extraction..."
|
||||
DEPENDS ZAPD
|
||||
BYPRODUCTS oot.otr ${CMAKE_SOURCE_DIR}/oot.otr oot-mq.otr ${CMAKE_SOURCE_DIR}/oot-mq.otr
|
||||
BYPRODUCTS oot.otr ${CMAKE_SOURCE_DIR}/oot.otr oot-mq.otr ${CMAKE_SOURCE_DIR}/oot-mq.otr ${CMAKE_SOURCE_DIR}/soh.otr
|
||||
)
|
||||
|
||||
# Target to generate headers
|
||||
add_custom_target(
|
||||
ExtractAssetHeaders
|
||||
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter/extract_assets.py -z "$<TARGET_FILE:ZAPD>" --non-interactive --gen-headers
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/OTRExporter
|
||||
COMMENT "Generating asset headers..."
|
||||
DEPENDS ZAPD
|
||||
)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#include "AnimationExporter.h"
|
||||
#include <Animation.h>
|
||||
#include <resource/type/Animation.h>
|
||||
|
||||
void OTRExporter_Animation::Save(ZResource* res, const fs::path& outPath, BinaryWriter* writer)
|
||||
{
|
||||
ZAnimation* anim = (ZAnimation*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::Animation);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_Animation);
|
||||
|
||||
ZNormalAnimation* normalAnim = dynamic_cast<ZNormalAnimation*>(anim);
|
||||
ZCurveAnimation* curveAnim = dynamic_cast<ZCurveAnimation*>(anim);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#include "AudioExporter.h"
|
||||
#include "Main.h"
|
||||
#include <Animation.h>
|
||||
#include <Utils/MemoryStream.h>
|
||||
#include <Globals.h>
|
||||
#include <Utils/File.h>
|
||||
@@ -30,7 +29,7 @@ void OTRExporter_Audio::WriteSampleEntryReference(ZAudio* audio, SampleEntry* en
|
||||
|
||||
void OTRExporter_Audio::WriteSampleEntry(SampleEntry* entry, BinaryWriter* writer)
|
||||
{
|
||||
WriteHeader(nullptr, "", writer, Ship::ResourceType::AudioSample, Ship::Version::Rachael);
|
||||
WriteHeader(nullptr, "", writer, Ship::ResourceType::SOH_AudioSample, Ship::Version::Rachael);
|
||||
|
||||
writer->Write(entry->codec);
|
||||
writer->Write(entry->medium);
|
||||
@@ -82,7 +81,7 @@ void OTRExporter_Audio::Save(ZResource* res, const fs::path& outPath, BinaryWrit
|
||||
{
|
||||
ZAudio* audio = (ZAudio*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::Audio, Ship::Version::Rachael);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_Audio, Ship::Version::Rachael);
|
||||
|
||||
// Write Samples as individual files
|
||||
for (auto pair : audio->samples)
|
||||
@@ -115,7 +114,7 @@ void OTRExporter_Audio::Save(ZResource* res, const fs::path& outPath, BinaryWrit
|
||||
MemoryStream* fntStream = new MemoryStream();
|
||||
BinaryWriter fntWriter = BinaryWriter(fntStream);
|
||||
|
||||
WriteHeader(nullptr, "", &fntWriter, Ship::ResourceType::AudioSoundFont, Ship::Version::Rachael);
|
||||
WriteHeader(nullptr, "", &fntWriter, Ship::ResourceType::SOH_AudioSoundFont, Ship::Version::Rachael);
|
||||
|
||||
fntWriter.Write((uint32_t)i);
|
||||
fntWriter.Write(audio->soundFontTable[i].medium);
|
||||
@@ -174,7 +173,7 @@ void OTRExporter_Audio::Save(ZResource* res, const fs::path& outPath, BinaryWrit
|
||||
MemoryStream* seqStream = new MemoryStream();
|
||||
BinaryWriter seqWriter = BinaryWriter(seqStream);
|
||||
|
||||
WriteHeader(nullptr, "", &seqWriter, Ship::ResourceType::AudioSequence, Ship::Version::Rachael);
|
||||
WriteHeader(nullptr, "", &seqWriter, Ship::ResourceType::SOH_AudioSequence, Ship::Version::Rachael);
|
||||
|
||||
seqWriter.Write((uint32_t)seq.size());
|
||||
seqWriter.Write(seq.data(), seq.size());
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
void OTRExporter_Background::Save(ZResource* res, const fs::path& outPath, BinaryWriter* writer)
|
||||
{
|
||||
ZBackground* bg = (ZBackground*)res;
|
||||
|
||||
WriteHeader(bg, outPath, writer, Ship::ResourceType::SOH_Background);
|
||||
|
||||
writer->Write((uint32_t)bg->GetRawDataSize());
|
||||
|
||||
auto data = bg->parent->GetRawData();
|
||||
writer->Write((char*)data.data() + bg->GetRawDataIndex(), bg->GetRawDataSize());
|
||||
|
||||
@@ -158,16 +158,19 @@ endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../ZAPDTR/ZAPD/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/ZAPDUtils
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../ZAPDTR/lib/tinyxml2
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/include
|
||||
# TODO: these should no longer be necessary if we were to link against LUS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/src/resource
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/src/resource/types
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/spdlog/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/src/graphic/Fast3D/U64
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/Mercury
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/tinyxml2
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/ZAPDUtils
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/StormLib/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/spdlog/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/nlohmann-json/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/src/resource
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../soh/soh
|
||||
.
|
||||
)
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#include "CollisionExporter.h"
|
||||
#include <Resource.h>
|
||||
#include <libultraship/bridge.h>
|
||||
|
||||
void OTRExporter_Collision::Save(ZResource* res, const fs::path& outPath, BinaryWriter* writer)
|
||||
{
|
||||
ZCollisionHeader* col = (ZCollisionHeader*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::CollisionHeader);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_CollisionHeader);
|
||||
|
||||
writer->Write(col->absMinX);
|
||||
writer->Write(col->absMinY);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#include "CutsceneExporter.h"
|
||||
#include <Resource.h>
|
||||
#include <libultraship/bridge.h>
|
||||
|
||||
void OTRExporter_Cutscene::Save(ZResource* res, const fs::path& outPath, BinaryWriter* writer)
|
||||
{
|
||||
ZCutscene* cs = (ZCutscene*)res;
|
||||
|
||||
WriteHeader(cs, outPath, writer, Ship::ResourceType::Cutscene);
|
||||
WriteHeader(cs, outPath, writer, Ship::ResourceType::SOH_Cutscene);
|
||||
|
||||
//writer->Write((uint32_t)cs->commands.size() + 2 + 2);
|
||||
writer->Write((uint32_t)0);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <Utils/BitConverter.h>
|
||||
#include "StrHash64/StrHash64.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
#include "PR/ultra64/gbi.h"
|
||||
#include <libultraship/libultra/gbi.h>
|
||||
#include <Globals.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
#define GFX_SIZE 8
|
||||
|
||||
#define gsDPSetCombineLERP2(a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, \
|
||||
#define gsDPSetCombineLERP_NoMacros(a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, \
|
||||
a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1) \
|
||||
{ \
|
||||
_SHIFTL(G_SETCOMBINE, 24, 8) | \
|
||||
@@ -76,7 +76,7 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina
|
||||
F3DZEXOpcode opF3D = (F3DZEXOpcode)opcode;
|
||||
|
||||
if ((int)opF3D == G_DL)// || (int)opF3D == G_BRANCH_Z)
|
||||
opcode = (uint8_t)G_DL_OTR;
|
||||
opcode = (uint8_t)G_DL_OTR_HASH;
|
||||
|
||||
if ((int)opF3D == G_MTX)
|
||||
opcode = (uint8_t)G_MTX_OTR;
|
||||
@@ -85,10 +85,10 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina
|
||||
opcode = (uint8_t)G_BRANCH_Z_OTR;
|
||||
|
||||
if ((int)opF3D == G_VTX)
|
||||
opcode = (uint8_t)G_VTX_OTR;
|
||||
opcode = (uint8_t)G_VTX_OTR_HASH;
|
||||
|
||||
if ((int)opF3D == G_SETTIMG)
|
||||
opcode = (uint8_t)G_SETTIMG_OTR;
|
||||
opcode = (uint8_t)G_SETTIMG_OTR_HASH;
|
||||
|
||||
word0 += (opcode << 24);
|
||||
|
||||
@@ -607,7 +607,7 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina
|
||||
int32_t ab1 = (data & 0b00000000000000000000000000000000000000000000000000000000111000) >> 3;
|
||||
int32_t ad1 = (data & 0b00000000000000000000000000000000000000000000000000000000000111) >> 0;
|
||||
|
||||
Gfx value = {gsDPSetCombineLERP2(a0, b0, c0, d0, aa0, ab0, ac0, ad0, a1, b1, c1, d1, aa1, ab1, ac1, ad1)};
|
||||
Gfx value = { gsDPSetCombineLERP_NoMacros(a0, b0, c0, d0, aa0, ab0, ac0, ad0, a1, b1, c1, d1, aa1, ab1, ac1, ad1)};
|
||||
word0 = value.words.w0;
|
||||
word1 = value.words.w1;
|
||||
}
|
||||
@@ -686,7 +686,7 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina
|
||||
|
||||
Gfx value = {gsDPSetTextureImage(fmt, siz, www + 1, __)};
|
||||
word0 = value.words.w0 & 0x00FFFFFF;
|
||||
word0 += (G_SETTIMG_OTR << 24);
|
||||
word0 += (G_SETTIMG_OTR_HASH << 24);
|
||||
//word1 = value.words.w1;
|
||||
word1 = 0;
|
||||
|
||||
@@ -754,7 +754,7 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina
|
||||
|
||||
word0 = value.words.w0;
|
||||
word0 &= 0x00FFFFFF;
|
||||
word0 += (G_VTX_OTR << 24);
|
||||
word0 += (G_VTX_OTR_HASH << 24);
|
||||
word1 = value.words.w1;
|
||||
|
||||
writer->Write(word0);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "ZArray.h"
|
||||
//#include "OTRExporter.h"
|
||||
#include <Utils/BinaryWriter.h>
|
||||
#include <Resource.h>
|
||||
#include <libultraship/bridge.h>
|
||||
#include "VersionInfo.h"
|
||||
|
||||
class OTRExporter : public ZResourceExporter
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <Archive.h>
|
||||
#include "Main.h"
|
||||
#include "Exporter.h"
|
||||
#include "BackgroundExporter.h"
|
||||
#include "TextureExporter.h"
|
||||
#include "RoomExporter.h"
|
||||
@@ -22,6 +23,7 @@
|
||||
#include <Utils/MemoryStream.h>
|
||||
#include <Utils/BinaryWriter.h>
|
||||
#include <bit>
|
||||
#include <mutex>
|
||||
|
||||
std::string otrFileName = "oot.otr";
|
||||
std::shared_ptr<Ship::Archive> otrArchive;
|
||||
@@ -62,35 +64,34 @@ static void ExporterParseFileMode(const std::string& buildMode, ZFileMode& fileM
|
||||
|
||||
static void ExporterProgramEnd()
|
||||
{
|
||||
uint32_t crc = 0xFFFFFFFF;
|
||||
const uint8_t endianness = (uint8_t)Endianness::Big;
|
||||
|
||||
if (Globals::Instance->fileMode == ZFileMode::ExtractDirectory)
|
||||
{
|
||||
std::string romPath = Globals::Instance->baseRomPath.string();
|
||||
const std::vector<uint8_t>& romData = File::ReadAllBytes(romPath);
|
||||
crc = BitConverter::ToUInt32BE(romData, 0x10);
|
||||
printf("Creating version file...\n");
|
||||
|
||||
// Get crc from rom
|
||||
std::string romPath = Globals::Instance->baseRomPath.string();
|
||||
std::vector<uint8_t> romData = File::ReadAllBytes(romPath);
|
||||
uint32_t crc = BitConverter::ToUInt32BE(romData, 0x10);
|
||||
uint8_t endianness = (uint8_t)Endianness::Big;
|
||||
|
||||
// Write crc to version file
|
||||
fs::path versionPath("Extract/version");
|
||||
MemoryStream* versionStream = new MemoryStream();
|
||||
BinaryWriter writer(versionStream);
|
||||
writer.SetEndianness(Endianness::Big);
|
||||
writer.Write(endianness);
|
||||
writer.Write(crc);
|
||||
std::ofstream versionFile(versionPath.c_str(), std::ios::out | std::ios::binary);
|
||||
versionFile.write(versionStream->ToVector().data(), versionStream->GetLength());
|
||||
versionFile.flush();
|
||||
versionFile.close();
|
||||
writer.Close();
|
||||
MemoryStream *versionStream = new MemoryStream();
|
||||
BinaryWriter writer(versionStream);
|
||||
writer.SetEndianness(Endianness::Big);
|
||||
writer.Write(endianness);
|
||||
writer.Write(crc);
|
||||
writer.Close();
|
||||
|
||||
printf("Created version file.\n");
|
||||
|
||||
printf("Generating OTR Archive...\n");
|
||||
otrArchive = Ship::Archive::CreateArchive(otrFileName, 40000);
|
||||
|
||||
for (auto item : files) {
|
||||
otrArchive->AddFile("version", (uintptr_t)versionStream->ToVector().data(), versionStream->GetLength());
|
||||
|
||||
for (const auto& item : files)
|
||||
{
|
||||
std::string fName = item.first;
|
||||
if (fName.find("gTitleZeldaShieldLogoMQTex") != std::string::npos && !ZRom(romPath).IsMQ())
|
||||
{
|
||||
@@ -100,46 +101,76 @@ static void ExporterProgramEnd()
|
||||
fName.replace(pos, 27, "gTitleZeldaShieldLogoTex");
|
||||
}
|
||||
}
|
||||
auto fileData = item.second;
|
||||
const auto& fileData = item.second;
|
||||
otrArchive->AddFile(fName, (uintptr_t)fileData.data(),
|
||||
fileData.size());
|
||||
fileData.size());
|
||||
}
|
||||
|
||||
// Add any additional files that need to be manually copied...
|
||||
auto lst = Directory::ListFiles("Extract");
|
||||
|
||||
for (auto item : lst)
|
||||
{
|
||||
std::vector<std::string> splitPath = StringHelper::Split(item, ".");
|
||||
|
||||
if (splitPath.size() >= 3) {
|
||||
std::string extension = splitPath.at(splitPath.size() - 1);
|
||||
std::string format = splitPath.at(splitPath.size() - 2);
|
||||
splitPath.pop_back();
|
||||
splitPath.pop_back();
|
||||
std::string afterPath = std::accumulate(splitPath.begin(), splitPath.end(), std::string(""));
|
||||
if (extension == "png" && (format == "rgba32" || format == "rgb5a1" || format == "i4" || format == "i8" || format == "ia4" || format == "ia8" || format == "ia16" || format == "ci4" || format == "ci8")) {
|
||||
Globals::Instance->buildRawTexture = true;
|
||||
Globals::Instance->BuildAssetTexture(item, ZTexture::GetTextureTypeFromString(format), afterPath);
|
||||
Globals::Instance->buildRawTexture = false;
|
||||
|
||||
auto fileData = File::ReadAllBytes(afterPath);
|
||||
printf("otrArchive->AddFile(%s)\n", StringHelper::Split(afterPath, "Extract/")[1].c_str());
|
||||
otrArchive->AddFile(StringHelper::Split(afterPath, "Extract/")[1], (uintptr_t)fileData.data(), fileData.size());
|
||||
}
|
||||
}
|
||||
|
||||
auto fileData = File::ReadAllBytes(item);
|
||||
printf("otrArchive->AddFile(%s)\n", StringHelper::Split(item, "Extract/")[1].c_str());
|
||||
otrArchive->AddFile(StringHelper::Split(item, "Extract/")[1], (uintptr_t)fileData.data(), fileData.size());
|
||||
}
|
||||
|
||||
//otrArchive->AddFile("Audiobank", (uintptr_t)Globals::Instance->GetBaseromFile("Audiobank").data(), Globals::Instance->GetBaseromFile("Audiobank").size());
|
||||
//otrArchive->AddFile("Audioseq", (uintptr_t)Globals::Instance->GetBaseromFile("Audioseq").data(), Globals::Instance->GetBaseromFile("Audioseq").size());
|
||||
//otrArchive->AddFile("Audiotable", (uintptr_t)Globals::Instance->GetBaseromFile("Audiotable").data(), Globals::Instance->GetBaseromFile("Audiotable").size());
|
||||
}
|
||||
}
|
||||
otrArchive = nullptr;
|
||||
delete fileWriter;
|
||||
files.clear();
|
||||
|
||||
// Add any additional files that need to be manually copied...
|
||||
if (File::Exists("soh.otr")) {
|
||||
return;
|
||||
}
|
||||
const auto& lst = Directory::ListFiles("Extract");
|
||||
std::shared_ptr<Ship::Archive> sohOtr = Ship::Archive::CreateArchive("soh.otr", 4096);
|
||||
//sohOtr->AddFile("version", (uintptr_t)versionStream->ToVector().data(), versionStream->GetLength());
|
||||
|
||||
for (const auto& item : lst)
|
||||
{
|
||||
std::vector<std::string> splitPath = StringHelper::Split(item, ".");
|
||||
|
||||
if (splitPath.size() >= 3)
|
||||
{
|
||||
const std::string extension = splitPath.at(splitPath.size() - 1);
|
||||
const std::string format = splitPath.at(splitPath.size() - 2);
|
||||
splitPath.pop_back();
|
||||
splitPath.pop_back();
|
||||
std::string afterPath = std::accumulate(splitPath.begin(), splitPath.end(), std::string(""));
|
||||
if (extension == "png" && (format == "rgba32" || format == "rgb5a1" || format == "i4" || format == "i8" || format == "ia4" || format == "ia8" || format == "ia16" || format == "ci4" || format == "ci8"))
|
||||
{
|
||||
ZTexture tex(nullptr);
|
||||
Globals::Instance->buildRawTexture = true;
|
||||
tex.FromPNG(item, ZTexture::GetTextureTypeFromString(format));
|
||||
printf("sohOtr->AddFile(%s)\n", StringHelper::Split(afterPath, "Extract/")[1].c_str());
|
||||
|
||||
OTRExporter_Texture exporter;
|
||||
|
||||
MemoryStream* stream = new MemoryStream();
|
||||
BinaryWriter writer(stream);
|
||||
|
||||
exporter.Save(&tex, "", &writer);
|
||||
|
||||
std::string src = tex.GetBodySourceCode();
|
||||
writer.Write((char *)src.c_str(), src.size());
|
||||
|
||||
std::vector<char> fileData = stream->ToVector();
|
||||
sohOtr->AddFile(StringHelper::Split(afterPath, "Extract/assets/")[1], (uintptr_t)fileData.data(), fileData.size());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (item.find("accessibility") != std::string::npos)
|
||||
{
|
||||
std::string extension = splitPath.at(splitPath.size() - 1);
|
||||
splitPath.pop_back();
|
||||
if (extension == "json")
|
||||
{
|
||||
const auto &fileData = File::ReadAllBytes(item);
|
||||
printf("Adding accessibility texts %s\n", StringHelper::Split(item, "texts/")[1].c_str());
|
||||
sohOtr->AddFile(StringHelper::Split(item, "Extract/assets/")[1], (uintptr_t)fileData.data(), fileData.size());
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
const auto& fileData = File::ReadAllBytes(item);
|
||||
printf("sohOtr->AddFile(%s)\n", StringHelper::Split(item, "Extract/")[1].c_str());
|
||||
sohOtr->AddFile(StringHelper::Split(item, item.find("Extract/assets/") != std::string::npos ? "Extract/assets/" : "Extract/")[1], (uintptr_t)fileData.data(), fileData.size());
|
||||
}
|
||||
sohOtr = nullptr;
|
||||
}
|
||||
|
||||
static void ExporterParseArgs(int argc, char* argv[], int& i)
|
||||
{
|
||||
@@ -228,6 +259,11 @@ static void ExporterResourceEnd(ZResource* res, BinaryWriter& writer)
|
||||
//printf("Exported Resource End %s in %zums\n", res->GetName().c_str(), diff);
|
||||
}
|
||||
|
||||
static void ExporterProcessCompilable(tinyxml2::XMLElement* reader)
|
||||
{
|
||||
std::string nodeName = reader->Name();
|
||||
}
|
||||
|
||||
static void ExporterXMLBegin()
|
||||
{
|
||||
}
|
||||
@@ -247,13 +283,14 @@ void AddFile(std::string fName, std::vector<char> data)
|
||||
}
|
||||
}
|
||||
|
||||
static void ImportExporters()
|
||||
void ImportExporters()
|
||||
{
|
||||
// In this example we set up a new exporter called "EXAMPLE".
|
||||
// By running ZAPD with the argument -se EXAMPLE, we tell it that we want to use this exporter for our resources.
|
||||
ExporterSet* exporterSet = new ExporterSet();
|
||||
exporterSet->processFileModeFunc = ExporterProcessFileMode;
|
||||
exporterSet->parseFileModeFunc = ExporterParseFileMode;
|
||||
exporterSet->processCompilableFunc = ExporterProcessCompilable;
|
||||
exporterSet->parseArgsFunc = ExporterParseArgs;
|
||||
exporterSet->beginFileFunc = ExporterFileBegin;
|
||||
exporterSet->endFileFunc = ExporterFileEnd;
|
||||
@@ -286,6 +323,3 @@ static void ImportExporters()
|
||||
|
||||
InitVersionInfo();
|
||||
}
|
||||
|
||||
// When ZAPD starts up, it will automatically call the below function, which in turn sets up our exporters.
|
||||
REGISTER_EXPORTER(ImportExporters);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <Archive.h>
|
||||
#include <libultraship/bridge.h>
|
||||
|
||||
extern std::shared_ptr<Ship::Archive> otrArchive;
|
||||
extern std::map<std::string, std::vector<char>> files;
|
||||
|
||||
@@ -5,7 +5,7 @@ void OTRExporter_Path::Save(ZResource* res, const fs::path& outPath, BinaryWrite
|
||||
{
|
||||
ZPath* path = (ZPath*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::Path);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_Path);
|
||||
|
||||
writer->Write((uint32_t)path->pathways.size());
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#include "PlayerAnimationExporter.h"
|
||||
#include <Resource.h>
|
||||
#include <libultraship/bridge.h>
|
||||
|
||||
void OTRExporter_PlayerAnimationExporter::Save(ZResource* res, const fs::path& outPath, BinaryWriter* writer)
|
||||
{
|
||||
ZPlayerAnimationData* anim = (ZPlayerAnimationData*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::PlayerAnimation);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_PlayerAnimation);
|
||||
|
||||
auto start = std::chrono::steady_clock::now();
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <ZRoom/Commands/SetAlternateHeaders.h>
|
||||
#include "CollisionExporter.h"
|
||||
#include "DisplayListExporter.h"
|
||||
#include "Resource.h"
|
||||
#include <libultraship/bridge.h>
|
||||
#include <Globals.h>
|
||||
#include <ZRoom/Commands/SetExitList.h>
|
||||
#include <ZRoom/Commands/SetPathways.h>
|
||||
@@ -39,7 +39,7 @@ void OTRExporter_Room::Save(ZResource* res, const fs::path& outPath, BinaryWrite
|
||||
{
|
||||
ZRoom* room = (ZRoom*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::Room);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_Room);
|
||||
|
||||
writer->Write((uint32_t)room->commands.size());
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "SkeletonExporter.h"
|
||||
#include <Resource.h>
|
||||
#include <libultraship/bridge.h>
|
||||
#include <Globals.h>
|
||||
#include "DisplayListExporter.h"
|
||||
|
||||
@@ -7,7 +7,7 @@ void OTRExporter_Skeleton::Save(ZResource* res, const fs::path& outPath, BinaryW
|
||||
{
|
||||
ZSkeleton* skel = (ZSkeleton*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::Skeleton);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_Skeleton);
|
||||
|
||||
writer->Write((uint8_t)skel->type);
|
||||
writer->Write((uint8_t)skel->limbType);
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
#include "SkeletonLimbExporter.h"
|
||||
#include "DisplayListExporter.h"
|
||||
#include <Resource.h>
|
||||
#include <libultraship/bridge.h>
|
||||
#include <Globals.h>
|
||||
|
||||
void OTRExporter_SkeletonLimb::Save(ZResource* res, const fs::path& outPath, BinaryWriter* writer)
|
||||
{
|
||||
ZLimb* limb = (ZLimb*)res;
|
||||
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SkeletonLimb);
|
||||
WriteHeader(res, outPath, writer, Ship::ResourceType::SOH_SkeletonLimb);
|
||||
|
||||
writer->Write((uint8_t)limb->type);
|
||||
writer->Write((uint8_t)limb->skinSegmentType);
|
||||
|
||||
@@ -5,7 +5,7 @@ void OTRExporter_Text::Save(ZResource* res, const fs::path& outPath, BinaryWrite
|
||||
{
|
||||
ZText* txt = (ZText*)res;
|
||||
|
||||
WriteHeader(txt, outPath, writer, Ship::ResourceType::Text);
|
||||
WriteHeader(txt, outPath, writer, Ship::ResourceType::SOH_Text);
|
||||
|
||||
writer->Write((uint32_t)txt->messages.size());
|
||||
|
||||
|
||||
@@ -17,9 +17,10 @@ void OTRExporter_Texture::Save(ZResource* res, const fs::path& outPath, BinaryWr
|
||||
|
||||
writer->Write((uint32_t)tex->GetRawDataSize());
|
||||
|
||||
auto data = tex->parent->GetRawData();
|
||||
|
||||
writer->Write((char*)data.data() + tex->GetRawDataIndex(), tex->GetRawDataSize());
|
||||
if (tex->parent != nullptr) {
|
||||
auto data = tex->parent->GetRawData();
|
||||
writer->Write((char*)data.data() + tex->GetRawDataIndex(), tex->GetRawDataSize());
|
||||
}
|
||||
|
||||
auto end = std::chrono::steady_clock::now();
|
||||
size_t diff = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
|
||||
|
||||
@@ -1,27 +1,25 @@
|
||||
#include "VersionInfo.h"
|
||||
#include <Resource.h>
|
||||
#include <libultraship/bridge.h>
|
||||
|
||||
std::map<Ship::ResourceType, uint32_t> resourceVersions;
|
||||
|
||||
void InitVersionInfo()
|
||||
{
|
||||
resourceVersions = std::map<Ship::ResourceType, uint32_t> {
|
||||
{ Ship::ResourceType::Animation, 0 },
|
||||
{ Ship::ResourceType::Model, 0 },
|
||||
{ Ship::ResourceType::SOH_Animation, 0 },
|
||||
{ Ship::ResourceType::Texture, 0 },
|
||||
{ Ship::ResourceType::Material, 0 },
|
||||
{ Ship::ResourceType::PlayerAnimation, 0 },
|
||||
{ Ship::ResourceType::SOH_PlayerAnimation, 0 },
|
||||
{ Ship::ResourceType::DisplayList, 0 },
|
||||
{ Ship::ResourceType::Room, 0 },
|
||||
{ Ship::ResourceType::CollisionHeader, 0 },
|
||||
{ Ship::ResourceType::Skeleton, 0 },
|
||||
{ Ship::ResourceType::SkeletonLimb, 0 },
|
||||
{ Ship::ResourceType::SOH_Room, 0 },
|
||||
{ Ship::ResourceType::SOH_CollisionHeader, 0 },
|
||||
{ Ship::ResourceType::SOH_Skeleton, 0 },
|
||||
{ Ship::ResourceType::SOH_SkeletonLimb, 0 },
|
||||
{ Ship::ResourceType::Matrix, 0 },
|
||||
{ Ship::ResourceType::Path, 0 },
|
||||
{ Ship::ResourceType::SOH_Path, 0 },
|
||||
{ Ship::ResourceType::Vertex, 0 },
|
||||
{ Ship::ResourceType::Cutscene, 0 },
|
||||
{ Ship::ResourceType::SOH_Cutscene, 0 },
|
||||
{ Ship::ResourceType::Array, 0 },
|
||||
{ Ship::ResourceType::Text, 0 },
|
||||
{ Ship::ResourceType::SOH_Text, 0 },
|
||||
{ Ship::ResourceType::Blob, 0 },
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "VtxExporter.h"
|
||||
#include "Resource.h"
|
||||
#include <libultraship/bridge.h>
|
||||
#include "VersionInfo.h"
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define Z64CUTSCENE_H
|
||||
|
||||
#if 0
|
||||
#include "ultra64.h"
|
||||
#include <libultraship/libultra.h>
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 entrance; // entrance index upon which the cutscene should trigger
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"file1": "File 1",
|
||||
"file2": "File 2",
|
||||
"file3": "File 3",
|
||||
"options": "Options",
|
||||
"copy": "Copy",
|
||||
"erase": "Erase",
|
||||
"quit": "Quit",
|
||||
"confirm": "Yes",
|
||||
"audio_stereo": "Sound - Stereo",
|
||||
"audio_mono": "Sound - Mono",
|
||||
"audio_headset": "Sound - Headset",
|
||||
"audio_surround": "Sound - Surround",
|
||||
"target_switch": "Targetting Mode - Switch",
|
||||
"target_hold": "Targetting Mode - Hold"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"file1": "Fichier 1",
|
||||
"file2": "Fichier 2",
|
||||
"file3": "Fichier 3",
|
||||
"options": "Options",
|
||||
"copy": "Copier",
|
||||
"erase": "Effacer",
|
||||
"quit": "Retour",
|
||||
"confirm": "Oui",
|
||||
"audio_stereo": "Son - Stéréo",
|
||||
"audio_mono": "Son - Mono",
|
||||
"audio_headset": "Son - Casque",
|
||||
"audio_surround": "Son - Surround",
|
||||
"target_switch": "Visée - Fixe",
|
||||
"target_hold": "Visée - Maintenue"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"file1": "Datei 1",
|
||||
"file2": "Datei 2",
|
||||
"file3": "Datei 3",
|
||||
"options": "Optionen",
|
||||
"copy": "Kopieren",
|
||||
"erase": "Löschen",
|
||||
"quit": "Zurück",
|
||||
"confirm": "Ja",
|
||||
"audio_stereo": "Sound - Stereo",
|
||||
"audio_mono": "Sound - Mono",
|
||||
"audio_headset": "Sound - Kopfhörer",
|
||||
"audio_surround": "Sound - Surround",
|
||||
"target_switch": "Zielerfassung - Einmal drücken",
|
||||
"target_hold": "Zielerfassung - Trigger halten"
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"health": "health $0",
|
||||
"magic": "magic $0",
|
||||
"rupees": "rupees $0",
|
||||
"0": "Deku Stick $0",
|
||||
"1": "Deku Nut $0",
|
||||
"2": "Bomb $0",
|
||||
"3": "Fairy Bow $0",
|
||||
"4": "Fire Arrow",
|
||||
"5": "Din's Fire",
|
||||
"6": "Fairy Slingshot $0",
|
||||
"7": "Fairy Ocarina",
|
||||
"8": "Ocarina of Time",
|
||||
"9": "Bombchu $0",
|
||||
"10": "Hookshot",
|
||||
"11": "Longshot",
|
||||
"12": "Ice Arrow",
|
||||
"13": "Farore's Wind",
|
||||
"14": "Boomerang",
|
||||
"15": "Lens of Truth",
|
||||
"16": "Magic Beans $0",
|
||||
"17": "Megaton Hammer",
|
||||
"18": "Light Arrow",
|
||||
"19": "Nayru's Love",
|
||||
"20": "Empty Bottle",
|
||||
"21": "Red Potion",
|
||||
"22": "Green Potion",
|
||||
"23": "Blue Potion",
|
||||
"24": "Fairy",
|
||||
"25": "Fish",
|
||||
"26": "Milk Bottle",
|
||||
"27": "Ruto's Letter",
|
||||
"28": "Blue Fire",
|
||||
"29": "Bugs",
|
||||
"30": "Big Poe",
|
||||
"31": "Milk Bottle (Half)",
|
||||
"32": "Poe",
|
||||
"33": "Weird Egg",
|
||||
"34": "Chicken",
|
||||
"35": "Zelda's Letter",
|
||||
"36": "Keaton Mask",
|
||||
"37": "Skull Mask",
|
||||
"38": "Spooky Mask",
|
||||
"39": "Bunny Mask",
|
||||
"40": "Goron Mask",
|
||||
"41": "Zora Mask",
|
||||
"42": "Gerudo Mask",
|
||||
"43": "Mask of Truth",
|
||||
"44": "Sold Out",
|
||||
"45": "Pocket Egg",
|
||||
"46": "Pocket Cucco",
|
||||
"47": "Cojiro",
|
||||
"48": "Odd Mushroom",
|
||||
"49": "Odd Potion",
|
||||
"50": "Saw",
|
||||
"51": "Broken Sword",
|
||||
"52": "Prescription",
|
||||
"53": "Eyeball Frog",
|
||||
"54": "Eyedrops",
|
||||
"55": "Claim Check",
|
||||
"56": "Bow Fire Arrow",
|
||||
"57": "Bow Ice Arrow",
|
||||
"58": "Bow Light Arrow",
|
||||
"59": "Kokiri Sword",
|
||||
"60": "Master Sword",
|
||||
"61": "Giant's Knife",
|
||||
"62": "Deku Shield",
|
||||
"63": "Hylian Shield",
|
||||
"64": "Mirror Shield",
|
||||
"65": "Kokiri Tunic",
|
||||
"66": "Goron Tunic",
|
||||
"67": "Zora Tunic",
|
||||
"68": "Kokiri Boots",
|
||||
"69": "Iron Boots",
|
||||
"70": "Hover Boots",
|
||||
"71": "Bullet Bag (Holds 30)",
|
||||
"72": "Bullet Bag (Holds 40)",
|
||||
"73": "Bullet Bag (Holds 50)",
|
||||
"74": "Quiver (Holds 30)",
|
||||
"75": "Quiver (Holds 40)",
|
||||
"76": "Quiver (Holds 50)",
|
||||
"77": "Bomb Bag (Holds 20)",
|
||||
"78": "Bomb Bag (Holds 30)",
|
||||
"79": "Bomb Bag (Holds 40)",
|
||||
"80": "Goron's Bracelet",
|
||||
"81": "Silver Gauntlets",
|
||||
"82": "Golden Gauntlets",
|
||||
"83": "Silver Scale",
|
||||
"84": "Golden Scale",
|
||||
"85": "Giant's Knife (Broken)",
|
||||
"86": "WALLET ADULT",
|
||||
"87": "Giant's Wallet",
|
||||
"88": "Deku Seeds",
|
||||
"89": "Fishing Pole",
|
||||
"90": "Minuet of Forest",
|
||||
"91": "Bolero of Fire",
|
||||
"92": "Serenade of Water",
|
||||
"93": "Requiem of Spirit",
|
||||
"94": "Nocturne of Shadow",
|
||||
"95": "Prelude of Light",
|
||||
"96": "Zelda's Lullaby",
|
||||
"97": "Epona's Song",
|
||||
"98": "Saria's Song",
|
||||
"99": "Sun's Song",
|
||||
"100": "Song of Time",
|
||||
"101": "Song of Storms",
|
||||
"102": "Forest Medallion",
|
||||
"103": "Fire Medallion",
|
||||
"104": "Water Medallion",
|
||||
"105": "Spirit Medallion",
|
||||
"106": "Shadow Medallion",
|
||||
"107": "Light Medallion",
|
||||
"108": "Kokiri's Emerald",
|
||||
"109": "Goron's Ruby",
|
||||
"110": "Zora Sapphire",
|
||||
"111": "Stone of Agony",
|
||||
"112": "Gerudo's Card",
|
||||
"113": "Skulltula Token $0",
|
||||
"114": "Heart Container $0",
|
||||
"115": "Piece of Heart",
|
||||
"116": "Boss Key",
|
||||
"117": "Compass",
|
||||
"118": "Dungeon Map",
|
||||
"119": "Small Key",
|
||||
"120": "MAGIC SMALL",
|
||||
"121": "MAGIC LARGE",
|
||||
"122": "PIECE OF HEART 2",
|
||||
"123": "INVALID 1",
|
||||
"124": "INVALID 2",
|
||||
"125": "INVALID 3",
|
||||
"126": "INVALID 4",
|
||||
"127": "INVALID 5",
|
||||
"128": "INVALID 6",
|
||||
"129": "INVALID 7",
|
||||
"130": "Milk",
|
||||
"131": "Recovery Heart",
|
||||
"132": "Green Rupee",
|
||||
"133": "Blue Rupee",
|
||||
"134": "Red Rupee",
|
||||
"135": "Purple Rupee",
|
||||
"136": "Gold Rupee",
|
||||
"137": "INVALID 8",
|
||||
"138": "STICKS 5",
|
||||
"139": "STICKS 10",
|
||||
"140": "NUTS 5",
|
||||
"141": "NUTS 10",
|
||||
"142": "BOMBS 5",
|
||||
"143": "BOMBS 10",
|
||||
"144": "BOMBS 20",
|
||||
"145": "BOMBS 30",
|
||||
"146": "ARROWS SMALL",
|
||||
"147": "ARROWS MEDIUM",
|
||||
"148": "ARROWS LARGE",
|
||||
"149": "SEEDS 30",
|
||||
"150": "BOMBCHUS 5",
|
||||
"151": "BOMBCHUS 20",
|
||||
"152": "STICK UPGRADE 20",
|
||||
"153": "STICK UPGRADE 30",
|
||||
"154": "NUT UPGRADE 30",
|
||||
"155": "NUT UPGRADE 40",
|
||||
"255": "",
|
||||
"256": "Haunted Wasteland",
|
||||
"257": "Gerudos Fortress",
|
||||
"258": "Gerudo Valley",
|
||||
"259": "Hylia Lakeside",
|
||||
"260": "Lon Lon Ranch",
|
||||
"261": "Market",
|
||||
"262": "Hyrule Field",
|
||||
"263": "Death Mountain",
|
||||
"264": "Kakariko Village",
|
||||
"265": "Lost Woods",
|
||||
"266": "Kokiri Forest",
|
||||
"267": "Zoras Domain",
|
||||
"268": "",
|
||||
"269": "",
|
||||
"270": "",
|
||||
"271": "",
|
||||
"272": "",
|
||||
"273": "",
|
||||
"274": "",
|
||||
"275": "",
|
||||
"276": "",
|
||||
"277": "",
|
||||
"278": "",
|
||||
"279": "",
|
||||
"280": "",
|
||||
"281": "",
|
||||
"282": "",
|
||||
"283": "",
|
||||
"284": "",
|
||||
"285": "",
|
||||
"286": "",
|
||||
"287": "",
|
||||
"288": "",
|
||||
"289": "",
|
||||
"290": "",
|
||||
"291": "",
|
||||
"292": "Hyrule Field",
|
||||
"293": "Kakariko Village",
|
||||
"294": "Graveyard",
|
||||
"295": "Zoras River",
|
||||
"296": "Kokiri Forest",
|
||||
"297": "Sacred Forest Meadow",
|
||||
"298": "Lake Hylia",
|
||||
"299": "Zoras Domain",
|
||||
"300": "Zoras Fountain",
|
||||
"301": "Gerudo Valley",
|
||||
"302": "Lost Woods",
|
||||
"303": "Desert Colossus",
|
||||
"304": "Gerudo's Fortress",
|
||||
"305": "Haunted Wasteland",
|
||||
"306": "Market",
|
||||
"307": "Hyrule Castle",
|
||||
"308": "Death Mountain Trail",
|
||||
"309": "Death Mountain Crater",
|
||||
"310": "Goron City",
|
||||
"311": "Lon Lon Ranch",
|
||||
"312": "Question Mark",
|
||||
"313": "Ganon's Castle"
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"health": "vie $0",
|
||||
"magic": "magie $0",
|
||||
"rupees": "rubis $0",
|
||||
"0": "Bâton Mojo $0",
|
||||
"1": "Noix Mojo $0",
|
||||
"2": "Bombes $0",
|
||||
"3": "Arc des Fées $0",
|
||||
"4": "Flèche de Feu",
|
||||
"5": "Feu de Din",
|
||||
"6": "Lance-Pierre des Fées $0",
|
||||
"7": "Ocarina des Fées",
|
||||
"8": "Ocarina of Temps",
|
||||
"9": "Missiles Teigneux $0",
|
||||
"10": "Grappin",
|
||||
"11": "Super Grappin",
|
||||
"12": "Flèche de Glace",
|
||||
"13": "Vent de Farore",
|
||||
"14": "Boomerang",
|
||||
"15": "Monocle de Vérité",
|
||||
"16": "Haricot Magique $0",
|
||||
"17": "Masse des Titans",
|
||||
"18": "Flèche de Lumière",
|
||||
"19": "Amour de Nayru",
|
||||
"20": "Bouteille Vide",
|
||||
"21": "Potion Rouge",
|
||||
"22": "Potion Verte",
|
||||
"23": "Potion Bleue",
|
||||
"24": "Fée",
|
||||
"25": "Poisson",
|
||||
"26": "Lait de Lon Lon",
|
||||
"27": "Lettre de Ruto",
|
||||
"28": "Flammme Bleue",
|
||||
"29": "Insectes",
|
||||
"30": "Âme",
|
||||
"31": "Lait de Lon Lon (moitié)",
|
||||
"32": "Esprit",
|
||||
"33": "Oeuf Curieux",
|
||||
"34": "Poulet",
|
||||
"35": "Lettre de Zelda",
|
||||
"36": "Masque du Renard",
|
||||
"37": "Masque de Mort",
|
||||
"38": "Masque d'Effroi",
|
||||
"39": "Masque du Lapin",
|
||||
"40": "Masque de Goron",
|
||||
"41": "Masque de Zora",
|
||||
"42": "Masque de Gerudo",
|
||||
"43": "Masque de Vérité",
|
||||
"44": "VENDU",
|
||||
"45": "Oeuf de Poche",
|
||||
"46": "Cocotte de poche",
|
||||
"47": "P'tit Poulet",
|
||||
"48": "Champignon suspect",
|
||||
"49": "Mixture suspecte",
|
||||
"50": "Scie du chasseur",
|
||||
"51": "Épée de Goron (brisée)",
|
||||
"52": "Ordonnance",
|
||||
"53": "Crapaud-qui-louche",
|
||||
"54": "Gouttes",
|
||||
"55": "Certificat",
|
||||
"56": "Arc et Flèche de Feu",
|
||||
"57": "Arc et Flèche de Glace",
|
||||
"58": "Arc et Flèche de Lumière",
|
||||
"59": "Épée Kokiri",
|
||||
"60": "Épée de Légende",
|
||||
"61": "Lame des Géants",
|
||||
"62": "Bouclier Mojo",
|
||||
"63": "Bouclier Hylien",
|
||||
"64": "Bouclier Miroir",
|
||||
"65": "Tunique Kokiri",
|
||||
"66": "Tunique Goron",
|
||||
"67": "Tunique Zora",
|
||||
"68": "Bottes Kokiri",
|
||||
"69": "Bottes de plomb",
|
||||
"70": "Bottes des airs",
|
||||
"71": "Sac de graines (Contient 30)",
|
||||
"72": "Sac de graines (Contient 40)",
|
||||
"73": "Sac de graines (Contient 50)",
|
||||
"74": "Carquois (Contient 30)",
|
||||
"75": "Carquois (Contient 40)",
|
||||
"76": "Carquois (Contient 50)",
|
||||
"77": "Sac de bombes (Contient 20)",
|
||||
"78": "Sac de bombes (Contient 30)",
|
||||
"79": "Sac de bombes (Contient 40)",
|
||||
"80": "Bracelet Goron",
|
||||
"81": "Gantelets d'argent",
|
||||
"82": "Gentelets d'or",
|
||||
"83": "Écaille d'argent",
|
||||
"84": "Écaille d'or",
|
||||
"85": "Lame des Géants (Brisée)",
|
||||
"86": "GRANDE BOURSE",
|
||||
"87": "Bourse de Géant",
|
||||
"88": "Deku Seeds",
|
||||
"89": "Canne à pèche",
|
||||
"90": "Menuet des Bois",
|
||||
"91": "Boléro du Feu",
|
||||
"92": "Sérénade de l'Eau",
|
||||
"93": "Requiem des Esprits",
|
||||
"94": "Nocturne de l'Ombre",
|
||||
"95": "Prélude de la Lumière",
|
||||
"96": "Berceuse de Zelda",
|
||||
"97": "Chant d'Epona",
|
||||
"98": "Chant de Saria",
|
||||
"99": "Chant du Soleil",
|
||||
"100": "Chant du Temps",
|
||||
"101": "Chant des Tempêtes",
|
||||
"102": "Médaillon de la Forêt",
|
||||
"103": "Médaillon du Feu",
|
||||
"104": "Médaillon de l'Eau",
|
||||
"105": "Médaillon de l'Esprit",
|
||||
"106": "Médaillon de l'Ombre",
|
||||
"107": "Médaillon de la Lumière",
|
||||
"108": "Émeraude Kokiri",
|
||||
"109": "Rubis Goron",
|
||||
"110": "Saphir Zora",
|
||||
"111": "Pierre de Souffrance",
|
||||
"112": "Carte Gerudo",
|
||||
"113": "Skulltula d'or $0",
|
||||
"114": "Coeur d'Énergie $0",
|
||||
"115": "Quart de Coeur",
|
||||
"116": "Clé d'or",
|
||||
"117": "Boussole",
|
||||
"118": "Carte du Donjon",
|
||||
"119": "Petite Clé",
|
||||
"120": "PETITE BOUTEILLE DE MAGIE",
|
||||
"121": "GRANDE BOUTEILLE DE MAGIE",
|
||||
"122": "QUART DE COEUR 2",
|
||||
"123": "INVALIDE 1",
|
||||
"124": "INVALIDE 2",
|
||||
"125": "INVALIDE 3",
|
||||
"126": "INVALIDE 4",
|
||||
"127": "INVALIDE 5",
|
||||
"128": "INVALIDE 6",
|
||||
"129": "INVALIDE 7",
|
||||
"130": "Lait de Lon Lon",
|
||||
"131": "Coeur de Vie",
|
||||
"132": "Rubis Vert",
|
||||
"133": "Rubis Bleu",
|
||||
"134": "Rubis Rouge",
|
||||
"135": "Rubis Pourpre",
|
||||
"136": "Énorme Rubis",
|
||||
"137": "INVALIDE 8",
|
||||
"138": "BÂTON MOJO 5",
|
||||
"139": "BÂTON MOJO 10",
|
||||
"140": "NOIX MOJO 5",
|
||||
"141": "NOIX MOJO 10",
|
||||
"142": "BOMBES 5",
|
||||
"143": "BOMBES 10",
|
||||
"144": "BOMBES 20",
|
||||
"145": "BOMBES 30",
|
||||
"146": "ARROWS SMALL",
|
||||
"147": "ARROWS MEDIUM",
|
||||
"148": "ARROWS LARGE",
|
||||
"149": "GRAINES MOJO 30",
|
||||
"150": "MISSILES TEIGNEUX 5",
|
||||
"151": "MISSILES TEIGNEUX 20",
|
||||
"152": "AMÉLIORATION BÂTON MOJO 20",
|
||||
"153": "AMÉLIORATION BÂTON MOJO 30",
|
||||
"154": "AMÉLIORATION NOIX MOJO 30",
|
||||
"155": "AMÉLIORATION NOIX MOJO 40",
|
||||
"255": "",
|
||||
"256": "Désert Hanté",
|
||||
"257": "Forteresse Gerudo",
|
||||
"258": "Vallée Gerudo",
|
||||
"259": "Laboratoire du Lac",
|
||||
"260": "Ranch Lon Lon",
|
||||
"261": "Place du Marché",
|
||||
"262": "Plaine d'Hyrule",
|
||||
"263": "Montagne du Péril",
|
||||
"264": "Village Cocorico",
|
||||
"265": "Bois Perdus",
|
||||
"266": "Forêt Kokiri",
|
||||
"267": "Domaine Zora",
|
||||
"268": "",
|
||||
"269": "",
|
||||
"270": "",
|
||||
"271": "",
|
||||
"272": "",
|
||||
"273": "",
|
||||
"274": "",
|
||||
"275": "",
|
||||
"276": "",
|
||||
"277": "",
|
||||
"278": "",
|
||||
"279": "",
|
||||
"280": "",
|
||||
"281": "",
|
||||
"282": "",
|
||||
"283": "",
|
||||
"284": "",
|
||||
"285": "",
|
||||
"286": "",
|
||||
"287": "",
|
||||
"288": "",
|
||||
"289": "",
|
||||
"290": "",
|
||||
"291": "",
|
||||
"292": "Plaine d'Hyrule",
|
||||
"293": "Village Cocorico",
|
||||
"294": "Cimetière",
|
||||
"295": "Rivière Zora",
|
||||
"296": "Forêt Kokiri",
|
||||
"297": "Bosquet Sacré",
|
||||
"298": "Lac Hylia",
|
||||
"299": "Domaine Zora",
|
||||
"300": "Fountaine Zora",
|
||||
"301": "Vallée Gerudo",
|
||||
"302": "Bois Perdus",
|
||||
"303": "Colosse du Désert",
|
||||
"304": "Forteresse Gerudo",
|
||||
"305": "Désert Hanté",
|
||||
"306": "Place du Marché",
|
||||
"307": "Château d'Hyrule",
|
||||
"308": "Chemin du Péril",
|
||||
"309": "Cratère du Péril",
|
||||
"310": "Village Goron",
|
||||
"311": "Ranch Lon Lon",
|
||||
"312": "Point d'interrogation",
|
||||
"313": "Château de Ganon"
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"health": "Energie $0",
|
||||
"magic": "Magie $0",
|
||||
"rupees": "Rubine $0",
|
||||
"0": "Deku-Stab $0",
|
||||
"1": "Deku-Nuß $0",
|
||||
"2": "Bombe $0",
|
||||
"3": "Feen-Bogen $0",
|
||||
"4": "Feuer-Pfeil",
|
||||
"5": "Dins Feuerinferno",
|
||||
"6": "Feen-Schleuder $0",
|
||||
"7": "Feen-Okarina",
|
||||
"8": "Okarina der Zeit",
|
||||
"9": "Krabbelmine $0",
|
||||
"10": "Fanghaken",
|
||||
"11": "Enterhaken",
|
||||
"12": "Eis-Pfeil",
|
||||
"13": "Farores Donnersturm",
|
||||
"14": "Bumerang",
|
||||
"15": "Auge der Wahrheit",
|
||||
"16": "Wundererbsen $0",
|
||||
"17": "Stahlhammer",
|
||||
"18": "Licht-Pfeil",
|
||||
"19": "Nayrus Umarmung",
|
||||
"20": "Flasche",
|
||||
"21": "Rotes Elixier",
|
||||
"22": "Grünes Elixier",
|
||||
"23": "Blaues Elixier",
|
||||
"24": "Fee",
|
||||
"25": "Fisch",
|
||||
"26": "Milch",
|
||||
"27": "Brief",
|
||||
"28": "Blaues Feuer",
|
||||
"29": "Käfer",
|
||||
"30": "Nachtschwärmer",
|
||||
"31": "Milch (1/2)",
|
||||
"32": "Irrlicht",
|
||||
"33": "Seltsames Ei",
|
||||
"34": "Huhn",
|
||||
"35": "Zeldas Brief",
|
||||
"36": "Fuchs-Maske",
|
||||
"37": "Schädel-Maske",
|
||||
"38": "Geister-Maske",
|
||||
"39": "Hasenohren",
|
||||
"40": "Goronen-Maske",
|
||||
"41": "Zora-Maske",
|
||||
"42": "Gerudo-Maske",
|
||||
"43": "Maske des Wissens",
|
||||
"44": "Verkauft",
|
||||
"45": "Ei",
|
||||
"46": "Kiki",
|
||||
"47": "Henni",
|
||||
"48": "Schimmelpilz",
|
||||
"49": "Modertrank",
|
||||
"50": "Säge",
|
||||
"51": "Goronen-Schwert (zerbrochen)",
|
||||
"52": "Rezept",
|
||||
"53": "Glotzfrosch",
|
||||
"54": "Augentropfen",
|
||||
"55": "Zertifikat",
|
||||
"56": "Bogen Feuer-Pfeil",
|
||||
"57": "Bogen Eis-Pfeil",
|
||||
"58": "Bogen Licht-Pfeil",
|
||||
"59": "Kokiri-Schwert",
|
||||
"60": "Master-Schwert",
|
||||
"61": "Langschwert",
|
||||
"62": "Deku-schild",
|
||||
"63": "Hylia-Schild",
|
||||
"64": "Spiegel-Schild",
|
||||
"65": "Kokiri-Rüstung",
|
||||
"66": "Goronen-Rüstung",
|
||||
"67": "Zora-Rüstung",
|
||||
"68": "Lederstiefel",
|
||||
"69": "Eisenstiefel",
|
||||
"70": "Gleitstiefel",
|
||||
"71": "Munitionstasche (30)",
|
||||
"72": "Munitionstasche (40)",
|
||||
"73": "Munitionstasche (50)",
|
||||
"74": "Köcher (30)",
|
||||
"75": "Köcher (40)",
|
||||
"76": "Köcher (50)",
|
||||
"77": "Bombentasche (20)",
|
||||
"78": "Bombentasche (30)",
|
||||
"79": "Bombentasche (40)",
|
||||
"80": "Goronen-Armband",
|
||||
"81": "Krafthandschuh",
|
||||
"82": "Titanhandschuh",
|
||||
"83": "Silberschuppe",
|
||||
"84": "Goldschuppe",
|
||||
"85": "Langschwert (gebrochen)",
|
||||
"86": "Große Börse",
|
||||
"87": "Riesenbörse",
|
||||
"88": "Deku-Kerne",
|
||||
"89": "Angel",
|
||||
"90": "Menuett des Waldes",
|
||||
"91": "Bolero des Feuers",
|
||||
"92": "Serenade des Wassers",
|
||||
"93": "Requiem der Geister",
|
||||
"94": "Nocturne des Schattens",
|
||||
"95": "Kantate des Lichts",
|
||||
"96": "Zeldas Wiegenlied",
|
||||
"97": "Eponas Lied",
|
||||
"98": "Salias Lied",
|
||||
"99": "Hymne der Sonne",
|
||||
"100": "Hymne der Zeit",
|
||||
"101": "Song of Storms",
|
||||
"102": "Amulett des Waldes",
|
||||
"103": "Amulett des Feuers",
|
||||
"104": "Amulett des Wassers",
|
||||
"105": "Amulett der Geister",
|
||||
"106": "Amulett des Schattens",
|
||||
"107": "Amulett des Lichts",
|
||||
"108": "Kokiri-Smaragd",
|
||||
"109": "Goronen-Opal",
|
||||
"110": "Zora-Saphir",
|
||||
"111": "Stein des Wissens",
|
||||
"112": "Gerudo-Paß",
|
||||
"113": "Skulltula-Symbol $0",
|
||||
"114": "Herzcontainer $0",
|
||||
"115": "Herzteil",
|
||||
"116": "Master-Schlüssel",
|
||||
"117": "Kompaß",
|
||||
"118": "Labyrinth-Karte",
|
||||
"119": "Kleiner Schlüssel",
|
||||
"120": "MAGIE KLEIN",
|
||||
"121": "MAGIE GROß",
|
||||
"122": "HERZTEIL 2",
|
||||
"123": "UNGÜLTIG 1",
|
||||
"124": "UNGÜLTIG 2",
|
||||
"125": "UNGÜLTIG 3",
|
||||
"126": "UNGÜLTIG 4",
|
||||
"127": "UNGÜLTIG 5",
|
||||
"128": "UNGÜLTIG 6",
|
||||
"129": "UNGÜLTIG 7",
|
||||
"130": "Milch",
|
||||
"131": "Herz",
|
||||
"132": "ein Rubin",
|
||||
"133": "5 Rubine",
|
||||
"134": "20 Rubine",
|
||||
"135": "50 Rubine",
|
||||
"136": "200 Rubine",
|
||||
"137": "UNGÜLTIG 8",
|
||||
"138": "STÄBE 5",
|
||||
"139": "STÄBE 10",
|
||||
"140": "NÜSSE 5",
|
||||
"141": "NÜSSE 10",
|
||||
"142": "BOMBEN 5",
|
||||
"143": "BOMBEN 10",
|
||||
"144": "BOMBEN 20",
|
||||
"145": "BOMBEN 30",
|
||||
"146": "PFEILE KLEIN",
|
||||
"147": "PFEILE MITTEL",
|
||||
"148": "PFEILE GROß",
|
||||
"149": "KERNE 30",
|
||||
"150": "KRABBELMINEN 5",
|
||||
"151": "KRABBELMINEN 20",
|
||||
"152": "STAB UPGRADE 20",
|
||||
"153": "STAB UPGRADE 30",
|
||||
"154": "NUß UPGRADE 30",
|
||||
"155": "NUß UPGRADE 40",
|
||||
"255": "",
|
||||
"256": "Gespensterwüste",
|
||||
"257": "Gerudo-Festung",
|
||||
"258": "Gerudotal",
|
||||
"259": "Hylia-See",
|
||||
"260": "Lon Lon-Farm",
|
||||
"261": "Marktplatz",
|
||||
"262": "Hylianische Steppe",
|
||||
"263": "Todesberg",
|
||||
"264": "Kakariko",
|
||||
"265": "Verlorene Wälder",
|
||||
"266": "Kokiri-Wald",
|
||||
"267": "Zoras Reich",
|
||||
"268": "",
|
||||
"269": "",
|
||||
"270": "",
|
||||
"271": "",
|
||||
"272": "",
|
||||
"273": "",
|
||||
"274": "",
|
||||
"275": "",
|
||||
"276": "",
|
||||
"277": "",
|
||||
"278": "",
|
||||
"279": "",
|
||||
"280": "",
|
||||
"281": "",
|
||||
"282": "",
|
||||
"283": "",
|
||||
"284": "",
|
||||
"285": "",
|
||||
"286": "",
|
||||
"287": "",
|
||||
"288": "",
|
||||
"289": "",
|
||||
"290": "",
|
||||
"291": "",
|
||||
"292": "Hylianische Steppe",
|
||||
"293": "Kakariko",
|
||||
"294": "Friedhof",
|
||||
"295": "Zora-Fluss",
|
||||
"296": "Kokiri-Wald",
|
||||
"297": "Heilige Lichtung",
|
||||
"298": "Hylia-See",
|
||||
"299": "Zoras Reich",
|
||||
"300": "Zoras Quelle",
|
||||
"301": "Gerudotal",
|
||||
"302": "Verlorene Wälder",
|
||||
"303": "Wüstenkoloss",
|
||||
"304": "Gerudo-Festung",
|
||||
"305": "Gespensterwüste",
|
||||
"306": "Marktplatz",
|
||||
"307": "Schloß Hyrule",
|
||||
"308": "Pfad zum Todesberg",
|
||||
"309": "Todeskrater",
|
||||
"310": "Goronia",
|
||||
"311": "Lon Lon-Farm",
|
||||
"312": "Fragezeichen",
|
||||
"313": "Teufelsturm"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"minutes_plural" : "$0 minutes",
|
||||
"minutes_singular" : "$0 minute",
|
||||
"seconds_plural" : "$0 seconds",
|
||||
"seconds_singular" : "$0 second",
|
||||
"input_button_a": "the A button",
|
||||
"input_button_b": "the B button",
|
||||
"input_button_c": "the C button",
|
||||
"input_button_l": "the L button",
|
||||
"input_button_r": "the R button",
|
||||
"input_button_z": "the Z button",
|
||||
"input_button_c_up": "C Up",
|
||||
"input_button_c_down": "C Down",
|
||||
"input_button_c_left": "C Left",
|
||||
"input_button_c_right": "C Right",
|
||||
"input_analog_stick": "the Analog Stick",
|
||||
"input_d_pad": "the D-Pad"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"minutes_plural" : "$0 minutes",
|
||||
"minutes_singular" : "$0 minute",
|
||||
"seconds_plural" : "$0 secondes",
|
||||
"seconds_singular" : "$0 seconde",
|
||||
"input_button_a": "le bouton A",
|
||||
"input_button_b": "le bouton B",
|
||||
"input_button_c": "le bouton C",
|
||||
"input_button_l": "le bouton L",
|
||||
"input_button_r": "le bouton R",
|
||||
"input_button_z": "le bouton Z",
|
||||
"input_button_c_up": "C Haut",
|
||||
"input_button_c_down": "C Bas",
|
||||
"input_button_c_left": "C Gauche",
|
||||
"input_button_c_right": "C Droit",
|
||||
"input_analog_stick": "le Stick Analogique",
|
||||
"input_d_pad": "D-Pad"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"minutes_plural" : "$0 Minuten",
|
||||
"minutes_singular" : "eine Minute",
|
||||
"seconds_plural" : "$0 Sekunden",
|
||||
"seconds_singular" : "eine Sekunde",
|
||||
"input_button_a": "den A-Knopf",
|
||||
"input_button_b": "den B-Knopf",
|
||||
"input_button_c": "den C-Knopf",
|
||||
"input_button_l": "den L-Knopf",
|
||||
"input_button_r": "den R-Knopf",
|
||||
"input_button_z": "den Z-Knopf",
|
||||
"input_button_c_up": "C Oben",
|
||||
"input_button_c_down": "C Unten",
|
||||
"input_button_c_left": "C Links",
|
||||
"input_button_c_right": "C Rechts",
|
||||
"input_analog_stick": "den Analog-Stick",
|
||||
"input_d_pad": "das Steuerkreuz"
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"0": "Inside the Deku Tree",
|
||||
"1": "Dodongo's Cavern",
|
||||
"2": "Inside Jabu-Jabu's Belly",
|
||||
"3": "Forest Temple",
|
||||
"4": "Fire Temple",
|
||||
"5": "Water Temple",
|
||||
"6": "Spirit Temple",
|
||||
"7": "Shadow Temple",
|
||||
"8": "Bottom of The Well",
|
||||
"9": "Ice Cavern",
|
||||
"10": "", // Stairs to Ganondorf's Lair (No title card)
|
||||
"11": "Gerudo Training Ground",
|
||||
"12": "Thieves' Hideout",
|
||||
"13": "Ganon's Castle",
|
||||
"14": "", // Escape from Ganon's Castle (No title card)
|
||||
"15": "", // Escape from Ganon's Castle 5 (No title card)x
|
||||
"16": "Treasure Box Shop",
|
||||
"17": "Parasitic Armored Arachnid - Gohma",
|
||||
"18": "Infernal Dinosaur - King Dodongo",
|
||||
"19": "Bio-electric Anemone - Barinade",
|
||||
"20": "Evil Spirit from Beyond - Phantom Ganon",
|
||||
"21": "Subterranean Lava Dragon - Volvagia",
|
||||
"22": "Giant Aquatic Amoeba - Morpha",
|
||||
"23": "Sorceress Sisters - Twinrova",
|
||||
"24": "Phantom Shadow Beast - Bongo Bongo",
|
||||
"25": "Great King of Evil - Ganondorf",
|
||||
"26": "",
|
||||
"27": "", // Entrance to Market (No title card)
|
||||
"28": "",
|
||||
"29": "",
|
||||
"30": "Back Alley",
|
||||
"31": "Back Alley",
|
||||
"32": "Market",
|
||||
"33": "Market",
|
||||
"34": "Market",
|
||||
"35": "", // Temple of Time Exterior (No title card)
|
||||
"36": "SCENE_SHRINE_N",
|
||||
"37": "SCENE_SHRINE_R",
|
||||
"38": "", // House of the Know-it-All Brothers (No title card)
|
||||
"39": "", // House of Twins (No title card)
|
||||
"40": "", // House of the Great Mido (No title card)
|
||||
"41": "", // Saria's House (No title card)
|
||||
"42": "", // Kakariko House 1 (No title card)
|
||||
"43": "", // Back Alley House 1 (No title card)
|
||||
"44": "Bazaar",
|
||||
"45": "Kokiri Shop",
|
||||
"46": "Goron Shop",
|
||||
"47": "Zora Shop",
|
||||
"48": "", // Closed Shop (No title card)
|
||||
"49": "Potion Shop",
|
||||
"50": "", // Bombchu Shop (No title card)
|
||||
"51": "Happy Mask Shop",
|
||||
"52": "", // Link's House (No title card)
|
||||
"53": "", // Dog Lady's House (No title card)
|
||||
"54": "Stable",
|
||||
"55": "", // Impa's House (No title card)
|
||||
"56": "Lakeside Laboratory",
|
||||
"57": "", // Running Man's Tent (No title card)
|
||||
"58": "Gravekeepers Hut",
|
||||
"59": "Great Fairy's Fountain",
|
||||
"60": "Fairy's Fountain",
|
||||
"61": "Great Fairy's Fountain",
|
||||
"62": "", // Grottos (No title card)
|
||||
"63": "", // Tomb 1 (No title card)
|
||||
"64": "", // Tomb 2 (No title card)
|
||||
"65": "Royal Family's Tomb",
|
||||
"66": "Shooting Gallery",
|
||||
"67": "Temple of Time",
|
||||
"68": "Chamber of The Sages",
|
||||
"69": "Castle Courtyard",
|
||||
"70": "Castle Courtyard",
|
||||
"71": "", // Goddesses Cutscene (No title card)
|
||||
"72": "Unknown Place",
|
||||
"73": "Fishing Pond",
|
||||
"74": "Castle Courtyard",
|
||||
"75": "Bombchu Bowling Alley",
|
||||
"76": "", // Lon Lon Ranch House/Silo (No title card)
|
||||
"77": "", // Guard House (No title card)
|
||||
"78": "", // Potion Shop (No title card)
|
||||
"79": "Ganon",
|
||||
"80": "House of Skulltula",
|
||||
"81": "Hyrule Field",
|
||||
"82": "Kakariko Village",
|
||||
"83": "Graveyard",
|
||||
"84": "Zora's River",
|
||||
"85": "Kokiri Forest",
|
||||
"86": "Sacred Forest Meadow",
|
||||
"87": "Lake Hylia",
|
||||
"88": "Zoras Domain",
|
||||
"89": "Zoras Fountain",
|
||||
"90": "Gerudo Valley",
|
||||
"91": "Lost Woods",
|
||||
"92": "Desert Colossus",
|
||||
"93": "Gerudo's Fortress",
|
||||
"94": "Haunted Wasteland",
|
||||
"95": "Hyrule Castle",
|
||||
"96": "Death Mountain Trail",
|
||||
"97": "Death Mountain Crater",
|
||||
"98": "Goron City",
|
||||
"99": "Lon Lon Ranch",
|
||||
"100": "",
|
||||
"101": "", // Debug: Test Map (No title card)
|
||||
"102": "", // Debug: Test Room (No title card)
|
||||
"103": "", // Debug: Depth Test (No title card)
|
||||
"104": "", // Debug: Stalfos Miniboss Room (No title card)
|
||||
"105": "", // Debug: Stalfos Boss Room (No title card)
|
||||
"106": "", // Debug: Dark Link Room (No title card)
|
||||
"107": "",
|
||||
"108": "", // Debug: SRD Room (No title card)
|
||||
"109": "" // Debug: Treasure Chest Warp (No title card)
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"0": "Abre Mojo",
|
||||
"1": "Caverne Dodongo",
|
||||
"2": "Ventre de Jabu-Jabu",
|
||||
"3": "Temple de la Forêt",
|
||||
"4": "Temple du Feu",
|
||||
"5": "Temple de l'Eau",
|
||||
"6": "Temple de l'Esprit",
|
||||
"7": "Temple de l'Ombre",
|
||||
"8": "Puits",
|
||||
"9": "Caverne Polaire",
|
||||
"10": "", // Escaliers vers le Repaire de Ganondorf (No title card)
|
||||
"11": "Gymnase Gerudo",
|
||||
"12": "Repaire des Voleurs",
|
||||
"13": "Tour de Ganon",
|
||||
"14": "", // Fuite du Château de Ganon (No title card)
|
||||
"15": "", // Fuite du Château de Ganon 5 (No title card)
|
||||
"16": "Chasse aux Trésors",
|
||||
"17": "Monstre Insectoide Géant - Gohma",
|
||||
"18": "Dinosaure Infernal - King Dodongo",
|
||||
"19": "Anémone Bio-Electrique - Barinade",
|
||||
"20": "Esprit Maléfique de l'Au-Delà - Ganon Spectral",
|
||||
"21": "Dragon des Profondeurs - Volcania",
|
||||
"22": "Amibe Aquatique Géante - Morpha",
|
||||
"23": "Sorcières Jumelles - Duo Maléfique",
|
||||
"24": "Monstre de l'Ombre - Bongo Bongo",
|
||||
"25": "Seigneur du Malin - Ganondorf",
|
||||
"26": "",
|
||||
"27": "", // Entrée vers le Marché (No title card)
|
||||
"28": "",
|
||||
"29": "",
|
||||
"30": "Ruelle",
|
||||
"31": "Ruelle",
|
||||
"32": "Place du Marché",
|
||||
"33": "Place du Marché",
|
||||
"34": "Place du Marché",
|
||||
"35": "", // Extérieur du Temple du Temps (No title card)
|
||||
"36": "SCENE_SHRINE_N",
|
||||
"37": "SCENE_SHRINE_R",
|
||||
"38": "", // Cabane des Frères Je-Sais-Tout (No title card)
|
||||
"39": "", // Cabane des Jumelles (No title card)
|
||||
"40": "", // Cabane du Grand Mido (No title card)
|
||||
"41": "", // Cabane de Saria (No title card)
|
||||
"42": "", // Maison du Village Cocorico 1 (No title card)
|
||||
"43": "", // Maison de la Ruelle 1 (No title card)
|
||||
"44": "Bazar",
|
||||
"45": "Boutique Kokiri",
|
||||
"46": "Boutique Goron",
|
||||
"47": "Boutique Zora",
|
||||
"48": "", // Magasin Fermé (No title card)
|
||||
"49": "Apothicaire",
|
||||
"50": "", // Magasin de Missiles (No title card)
|
||||
"51": "Foire aux Masques",
|
||||
"52": "", // Cabane de Link (No title card)
|
||||
"53": "", // Dog Lady's House (No title card)
|
||||
"54": "Étable",
|
||||
"55": "", // Maison d'Impa (No title card)
|
||||
"56": "Laboratoire du Lac",
|
||||
"57": "", // Tente du Marathonien (No title card)
|
||||
"58": "Cabane du fossoyeur",
|
||||
"59": "Fountaine Royale des Fées",
|
||||
"60": "Fountaine des Fées",
|
||||
"61": "Fountaine Royale des Fées",
|
||||
"62": "", // Grottes (No title card)
|
||||
"63": "", // Tombe 1 (No title card)
|
||||
"64": "", // Tombe 2 (No title card)
|
||||
"65": "Tombe Royale",
|
||||
"66": "Jeu d'adresse",
|
||||
"67": "Temple du Temps",
|
||||
"68": "Sanctuaire des Sages",
|
||||
"69": "Cour du Château",
|
||||
"70": "Cour du Château",
|
||||
"71": "", // Goddesses Cutscene (No title card)
|
||||
"72": "Endroit Inconnu",
|
||||
"73": "Étang",
|
||||
"74": "Cour du Château",
|
||||
"75": "Bowling Teigneux",
|
||||
"76": "", // Lon Lon Ranch House/Silo (No title card)
|
||||
"77": "", // Guard House (No title card)
|
||||
"78": "", // Potion Shop (No title card)
|
||||
"79": "Ganon",
|
||||
"80": "Maison des Araignées",
|
||||
"81": "Plaine d'Hyrule",
|
||||
"82": "Village Cocorico",
|
||||
"83": "Cimetière",
|
||||
"84": "Fleuve Zora",
|
||||
"85": "Forêt Kokiri",
|
||||
"86": "Bosquet Sacré",
|
||||
"87": "Lac Hylia",
|
||||
"88": "Domaine Zora",
|
||||
"89": "Fontaine Zora",
|
||||
"90": "Vallée Gerudo",
|
||||
"91": "Bois Perdu",
|
||||
"92": "Colosse du Désert",
|
||||
"93": "Forteresse Gerudo",
|
||||
"94": "Désert Hanté",
|
||||
"95": "Château d'Hyrule",
|
||||
"96": "Chemin du Péril",
|
||||
"97": "Cratère du Péril",
|
||||
"98": "Village Goron",
|
||||
"99": "Ranch Lon Lon",
|
||||
"100": "",
|
||||
"101": "", // Debug: Test Map (No title card)
|
||||
"102": "", // Debug: Test Room (No title card)
|
||||
"103": "", // Debug: Depth Test (No title card)
|
||||
"104": "", // Debug: Stalfos Miniboss Room (No title card)
|
||||
"105": "", // Debug: Stalfos Boss Room (No title card)
|
||||
"106": "", // Debug: Dark Link Room (No title card)
|
||||
"107": "",
|
||||
"108": "", // Debug: SRD Room (No title card)
|
||||
"109": "" // Debug: Treasure Chest Warp (No title card)
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"0": "Im Deku-Baum",
|
||||
"1": "Dodongos Höhle",
|
||||
"2": "Jabu-Jabus Bauch",
|
||||
"3": "Waldtempel",
|
||||
"4": "Feuertempel",
|
||||
"5": "Wassertempel",
|
||||
"6": "Geistertempel",
|
||||
"7": "Schattentempel",
|
||||
"8": "Grund des Brunnens",
|
||||
"9": "Eishöhle",
|
||||
"10": "", // Treppe zu Ganondorfs Verließ (Keine Title-Card)
|
||||
"11": "Gerudo-Arena",
|
||||
"12": "Diebesversteck",
|
||||
"13": "Ganons Schloß",
|
||||
"14": "", // Flucht aus Ganons Schloß (Keine Title-Card)
|
||||
"15": "", // Flucht aus Ganons Schloß 5 (Keine Title-Card)
|
||||
"16": "Truhenlotterie",
|
||||
"17": "Gepanzerter Spinnenparasit - Gohma",
|
||||
"18": "Infernosaurus - King Dodongo",
|
||||
"19": "Elektroterristrisches Biotentakel - Barinade",
|
||||
"20": "Reitendes Unheil - Phantom-Ganon",
|
||||
"21": "Subterraner Lavadrachoid - Volvagia",
|
||||
"22": "Aquamöbes Wassertentakel - Morpha",
|
||||
"23": "Höllische Hexenarmada - Killa Ohmaz",
|
||||
"24": "Bestialische Schattenmonstrosität - Bongo Bongo",
|
||||
"25": "Großmeister des Bösen - Ganondorf",
|
||||
"26": "",
|
||||
"27": "", // Eingang zum Marktplatz (Keine Title-Card)
|
||||
"28": "",
|
||||
"29": "",
|
||||
"30": "Seitenstraße",
|
||||
"31": "Seitenstraße",
|
||||
"32": "Marktplatz",
|
||||
"33": "Marktplatz",
|
||||
"34": "Marktplatz",
|
||||
"35": "", // Vor der Zitadelle der Zeit (Keine Title-Card)
|
||||
"36": "SCENE_SHRINE_N",
|
||||
"37": "SCENE_SHRINE_R",
|
||||
"38": "", // Haus der Allwissenden Brüder (Keine Title-Card)
|
||||
"39": "", // Haus der Zwillinge (Keine Title-Card)
|
||||
"40": "", // Midos Haus (Keine Title-Card)
|
||||
"41": "", // Salias Haus (Keine Title-Card)
|
||||
"42": "", // Kakariko Haus 1 (Keine Title-Card)
|
||||
"43": "", // Steinstraßen Haus 1 (Keine Title-Card)
|
||||
"44": "Basar",
|
||||
"45": "Kokiri-Laden",
|
||||
"46": "Goronen-Laden",
|
||||
"47": "Zora-Laden",
|
||||
"48": "", // Geschlossener Laden (Keine Title-Card)
|
||||
"49": "Magie-Laden",
|
||||
"50": "", // Krabbelminen-Laden (Keine Title-Card)
|
||||
"51": "Maskenhändler",
|
||||
"52": "", // Links Haus (Keine Title-Card)
|
||||
"53": "", // Haus der Hunde-Dame (Keine Title-Card)
|
||||
"54": "Stall",
|
||||
"55": "", // Impas Haus (Keine Title-Card)
|
||||
"56": "Hylia-See Laboratorium",
|
||||
"57": "", // Zelt des Rennläufers (Keine Title-Card)
|
||||
"58": "Hütte des Totengräbers",
|
||||
"59": "Feen-Quelle",
|
||||
"60": "Feen-Brunnen",
|
||||
"61": "Feen-Quelle",
|
||||
"62": "", // Grotten (Keine Title-Card)
|
||||
"63": "", // Grab 1 (Keine Title-Card)
|
||||
"64": "", // Grab 2 (Keine Title-Card)
|
||||
"65": "Königsgrab",
|
||||
"66": "Schießbude",
|
||||
"67": "Zitadelle der Zeit",
|
||||
"68": "Halle der Weisen",
|
||||
"69": "Burghof",
|
||||
"70": "Burghof",
|
||||
"71": "", // Göttinnen Cutscene (Keine Title-Card)
|
||||
"72": "Unbekannter Ort",
|
||||
"73": "Fischweiher",
|
||||
"74": "Burghof",
|
||||
"75": "Minenbowlingbahn",
|
||||
"76": "", // Lon Lon-Farm Haus/Silo (Keine Title-Card)
|
||||
"77": "", // Wachposten (Keine Title-Card)
|
||||
"78": "", // Magie-Laden (Keine Title-Card)
|
||||
"79": "Ganon",
|
||||
"80": "Skulltulas Haus",
|
||||
"81": "Hylianische Steppe",
|
||||
"82": "Kakariko",
|
||||
"83": "Friedhof",
|
||||
"84": "Zora-Fluß",
|
||||
"85": "Kokiri-Wald",
|
||||
"86": "Waldlichtung",
|
||||
"87": "Hylia-See",
|
||||
"88": "Zoras Reich",
|
||||
"89": "Zoras Quelle",
|
||||
"90": "Gerudotal",
|
||||
"91": "Verlorene Wälder",
|
||||
"92": "Wüstenkoloss",
|
||||
"93": "Gerudo-Festung",
|
||||
"94": "Geisterwüste",
|
||||
"95": "Schloß Hyrule",
|
||||
"96": "Pfad zum Todesberg",
|
||||
"97": "Todeskrater",
|
||||
"98": "Goronia",
|
||||
"99": "Lon Lon-Farm",
|
||||
"100": "",
|
||||
"101": "", // Debug: Test Karte (Keine Title-Card)
|
||||
"102": "", // Debug: Test Raum (Keine Title-Card)
|
||||
"103": "", // Debug: Tiefen Test (Keine Title-Card)
|
||||
"104": "", // Debug: Stalfos-Ritter Miniboss Raum (Keine Title-Card)
|
||||
"105": "", // Debug: Stalfos-Ritter Boss Raum (Keine Title-Card)
|
||||
"106": "", // Debug: Schwarzer Link Raum (Keine Title-Card)
|
||||
"107": "",
|
||||
"108": "", // Debug: SRD Raum (Keine Title-Card)
|
||||
"109": "" // Debug: Schatzkisten Teleport (Keine Title-Card)
|
||||
}
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 379 B |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,21 @@
|
||||
<DisplayList Version="0">
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_003"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/gShipLogoDL_tri_0"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_003"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_002"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/gShipLogoDL_tri_1"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_002"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/gShipLogoDL_tri_2"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_001"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/gShipLogoDL_tri_3"/>
|
||||
<CallDisplayList Path="textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_001"/>
|
||||
<PipeSync/>
|
||||
<SetGeometryMode G_LIGHTING="1" />
|
||||
<ClearGeometryMode G_TEXTURE_GEN="1" />
|
||||
<SetCombineLERP A0="G_CCMUX_0" B0="G_CCMUX_0" C0="G_CCMUX_0" D0="G_CCMUX_SHADE" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_ENVIRONMENT" A1="G_CCMUX_0" B1="G_CCMUX_0" C1="G_CCMUX_0" D1="G_CCMUX_SHADE" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_ENVIRONMENT"/>
|
||||
<Texture S="65535" T="65535" Level="0" Tile="0" On="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,241 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="3" V01="6" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="4"/>
|
||||
<Triangle1 V00="6" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="7" V01="9" V02="10"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="10" V02="11"/>
|
||||
<Triangle1 V00="11" V01="13" V02="12"/>
|
||||
<Triangle1 V00="11" V01="14" V02="13"/>
|
||||
<Triangle1 V00="11" V01="15" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="2" V01="3" V02="0"/>
|
||||
<Triangle1 V00="3" V01="4" V02="0"/>
|
||||
<Triangle1 V00="4" V01="3" V02="5"/>
|
||||
<Triangle1 V00="6" V01="4" V02="5"/>
|
||||
<Triangle1 V00="7" V01="8" V02="9"/>
|
||||
<Triangle1 V00="7" V01="10" V02="8"/>
|
||||
<Triangle1 V00="10" V01="11" V02="8"/>
|
||||
<Triangle1 V00="10" V01="12" V02="11"/>
|
||||
<Triangle1 V00="13" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="3" V01="6" V02="4"/>
|
||||
<Triangle1 V00="7" V01="8" V02="9"/>
|
||||
<Triangle1 V00="7" V01="10" V02="8"/>
|
||||
<Triangle1 V00="11" V01="8" V02="10"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="48" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="6" V01="7" V02="4"/>
|
||||
<Triangle1 V00="4" V01="7" V02="8"/>
|
||||
<Triangle1 V00="7" V01="9" V02="8"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="10" V01="13" V02="11"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="62" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="78" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="7" V01="8" V02="5"/>
|
||||
<Triangle1 V00="7" V01="9" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="8"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="94" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="110" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<Triangle1 V00="3" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="8"/>
|
||||
<Triangle1 V00="6" V01="9" V02="7"/>
|
||||
<Triangle1 V00="9" V01="10" V02="7"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="11" V01="12" V02="10"/>
|
||||
<Triangle1 V00="11" V01="13" V02="12"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="124" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="140" Count="15"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="1" V02="3"/>
|
||||
<Triangle1 V00="4" V01="3" V02="5"/>
|
||||
<Triangle1 V00="6" V01="5" V02="3"/>
|
||||
<Triangle1 V00="7" V01="6" V02="3"/>
|
||||
<Triangle1 V00="7" V01="8" V02="6"/>
|
||||
<Triangle1 V00="6" V01="9" V02="5"/>
|
||||
<Triangle1 V00="5" V01="9" V02="10"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="10" V01="12" V02="5"/>
|
||||
<Triangle1 V00="5" V01="12" V02="13"/>
|
||||
<Triangle1 V00="4" V01="5" V02="13"/>
|
||||
<Triangle1 V00="13" V01="14" V02="4"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="155" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="171" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="0" V01="5" V02="4"/>
|
||||
<Triangle1 V00="0" V01="6" V02="5"/>
|
||||
<Triangle1 V00="4" V01="7" V02="3"/>
|
||||
<Triangle1 V00="8" V01="7" V02="4"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="10" V01="9" V02="8"/>
|
||||
<Triangle1 V00="8" V01="11" V02="10"/>
|
||||
<Triangle1 V00="8" V01="12" V02="11"/>
|
||||
<Triangle1 V00="10" V01="13" V02="9"/>
|
||||
<Triangle1 V00="14" V01="13" V02="10"/>
|
||||
<Triangle1 V00="14" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="187" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="2" V01="3" V02="0"/>
|
||||
<Triangle1 V00="2" V01="4" V02="3"/>
|
||||
<Triangle1 V00="0" V01="5" V02="1"/>
|
||||
<Triangle1 V00="6" V01="5" V02="0"/>
|
||||
<Triangle1 V00="6" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="11" V02="8"/>
|
||||
<Triangle1 V00="12" V01="13" V02="11"/>
|
||||
<Triangle1 V00="14" V01="13" V02="12"/>
|
||||
<Triangle1 V00="14" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="203" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="0" V01="4" V02="3"/>
|
||||
<Triangle1 V00="0" V01="5" V02="4"/>
|
||||
<Triangle1 V00="5" V01="6" V02="4"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="8" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="6"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="12" V01="13" V02="10"/>
|
||||
<Triangle1 V00="13" V01="14" V02="10"/>
|
||||
<Triangle1 V00="15" V01="14" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="219" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="6" V01="3" V02="5"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="7" V01="8" V02="6"/>
|
||||
<Triangle1 V00="7" V01="9" V02="8"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="10" V01="13" V02="11"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="233" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="249" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="265" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="9" V01="11" V02="12"/>
|
||||
<Triangle1 V00="9" V01="12" V02="13"/>
|
||||
<Triangle1 V00="14" V01="15" V02="7"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="281" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="3" V01="6" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="4"/>
|
||||
<Triangle1 V00="6" V01="8" V02="7"/>
|
||||
<Triangle1 V00="9" V01="8" V02="6"/>
|
||||
<Triangle1 V00="10" V01="9" V02="6"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="9" V01="12" V02="8"/>
|
||||
<Triangle1 V00="13" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="297" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="2" V01="3" V02="0"/>
|
||||
<Triangle1 V00="3" V01="4" V02="0"/>
|
||||
<Triangle1 V00="5" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="7" V02="6"/>
|
||||
<Triangle1 V00="6" V01="9" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="8"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="11" V01="13" V02="12"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="311" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="3" V01="4" V02="0"/>
|
||||
<Triangle1 V00="3" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="8"/>
|
||||
<Triangle1 V00="6" V01="9" V02="7"/>
|
||||
<Triangle1 V00="7" V01="9" V02="10"/>
|
||||
<Triangle1 V00="7" V01="10" V02="11"/>
|
||||
<Triangle1 V00="11" V01="10" V02="12"/>
|
||||
<Triangle1 V00="11" V01="12" V02="13"/>
|
||||
<Triangle1 V00="12" V01="8" V02="13"/>
|
||||
<Triangle1 V00="12" V01="6" V02="8"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_0" VertexBufferIndex="0" VertexOffset="325" Count="8"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<Triangle1 V00="3" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="4" V02="5"/>
|
||||
<Triangle1 V00="6" V01="7" V02="4"/>
|
||||
<Triangle1 V00="0" V01="7" V02="6"/>
|
||||
<Triangle1 V00="0" V01="2" V02="7"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_1" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="7" V02="5"/>
|
||||
<Triangle1 V00="7" V01="8" V02="5"/>
|
||||
<Triangle1 V00="7" V01="9" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="8"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_1" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="6" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_1" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<Triangle1 V00="3" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="4" V02="5"/>
|
||||
<Triangle1 V00="6" V01="7" V02="4"/>
|
||||
<Triangle1 V00="8" V01="7" V02="6"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="10" V01="12" V02="13"/>
|
||||
<Triangle1 V00="13" V01="12" V02="14"/>
|
||||
<Triangle1 V00="13" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_1" VertexBufferIndex="0" VertexOffset="48" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="2" V01="4" V02="3"/>
|
||||
<Triangle1 V00="2" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="8"/>
|
||||
<Triangle1 V00="8" V01="9" V02="6"/>
|
||||
<Triangle1 V00="9" V01="10" V02="6"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="11" V01="12" V02="10"/>
|
||||
<Triangle1 V00="10" V01="12" V02="13"/>
|
||||
<Triangle1 V00="12" V01="14" V02="13"/>
|
||||
<Triangle1 V00="15" V01="13" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_1" VertexBufferIndex="0" VertexOffset="64" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="1" V02="0"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="0" V02="5"/>
|
||||
<Triangle1 V00="6" V01="4" V02="5"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="8" V01="6" V02="7"/>
|
||||
<Triangle1 V00="9" V01="8" V02="7"/>
|
||||
<Triangle1 V00="7" V01="10" V02="9"/>
|
||||
<Triangle1 V00="11" V01="12" V02="13"/>
|
||||
<Triangle1 V00="14" V01="11" V02="13"/>
|
||||
<Triangle1 V00="15" V01="14" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_1" VertexBufferIndex="0" VertexOffset="80" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="2" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="1" V02="5"/>
|
||||
<Triangle1 V00="6" V01="4" V02="5"/>
|
||||
<Triangle1 V00="6" V01="5" V02="7"/>
|
||||
<Triangle1 V00="8" V01="6" V02="7"/>
|
||||
<Triangle1 V00="7" V01="9" V02="8"/>
|
||||
<Triangle1 V00="10" V01="8" V02="9"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="11" V01="12" V02="10"/>
|
||||
<Triangle1 V00="10" V01="12" V02="13"/>
|
||||
<Triangle1 V00="12" V01="14" V02="13"/>
|
||||
<Triangle1 V00="14" V01="15" V02="13"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="0" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="6" V01="7" V02="8"/>
|
||||
<Triangle1 V00="6" V01="9" V02="7"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="10" V01="13" V02="11"/>
|
||||
<Triangle1 V00="13" V01="10" V02="14"/>
|
||||
<Triangle1 V00="15" V01="14" V02="10"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="16" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="0" V02="2"/>
|
||||
<Triangle1 V00="4" V01="3" V02="2"/>
|
||||
<Triangle1 V00="4" V01="2" V02="5"/>
|
||||
<Triangle1 V00="6" V01="4" V02="5"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="5" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="5" V02="9"/>
|
||||
<Triangle1 V00="5" V01="10" V02="9"/>
|
||||
<Triangle1 V00="5" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="8" V02="9"/>
|
||||
<Triangle1 V00="12" V01="9" V02="13"/>
|
||||
<Triangle1 V00="14" V01="12" V02="13"/>
|
||||
<Triangle1 V00="13" V01="15" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="32" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="2" V01="3" V02="0"/>
|
||||
<Triangle1 V00="3" V01="2" V02="4"/>
|
||||
<Triangle1 V00="4" V01="2" V02="5"/>
|
||||
<Triangle1 V00="5" V01="2" V02="6"/>
|
||||
<Triangle1 V00="2" V01="7" V02="6"/>
|
||||
<Triangle1 V00="8" V01="6" V02="7"/>
|
||||
<Triangle1 V00="7" V01="9" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="8"/>
|
||||
<Triangle1 V00="11" V01="5" V02="6"/>
|
||||
<Triangle1 V00="11" V01="6" V02="12"/>
|
||||
<Triangle1 V00="13" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="48" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="1" V02="0"/>
|
||||
<Triangle1 V00="3" V01="0" V02="4"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="4" V01="6" V02="5"/>
|
||||
<Triangle1 V00="3" V01="5" V02="7"/>
|
||||
<Triangle1 V00="3" V01="7" V02="8"/>
|
||||
<Triangle1 V00="8" V01="9" V02="3"/>
|
||||
<Triangle1 V00="10" V01="9" V02="8"/>
|
||||
<Triangle1 V00="10" V01="8" V02="11"/>
|
||||
<Triangle1 V00="12" V01="9" V02="10"/>
|
||||
<Triangle1 V00="12" V01="13" V02="9"/>
|
||||
<Triangle1 V00="12" V01="14" V02="13"/>
|
||||
<Triangle1 V00="12" V01="15" V02="14"/>
|
||||
<Triangle1 V00="14" V01="1" V02="13"/>
|
||||
<Triangle1 V00="14" V01="2" V02="1"/>
|
||||
<Triangle1 V00="13" V01="1" V02="3"/>
|
||||
<Triangle1 V00="13" V01="3" V02="9"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="64" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="0" V02="2"/>
|
||||
<Triangle1 V00="3" V01="2" V02="4"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="6" V01="3" V02="5"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="7" V01="8" V02="6"/>
|
||||
<Triangle1 V00="9" V01="10" V02="11"/>
|
||||
<Triangle1 V00="9" V01="12" V02="10"/>
|
||||
<Triangle1 V00="13" V01="10" V02="12"/>
|
||||
<Triangle1 V00="13" V01="12" V02="14"/>
|
||||
<Triangle1 V00="15" V01="13" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="80" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="3" V01="6" V02="4"/>
|
||||
<Triangle1 V00="7" V01="6" V02="3"/>
|
||||
<Triangle1 V00="7" V01="8" V02="6"/>
|
||||
<Triangle1 V00="9" V01="8" V02="7"/>
|
||||
<Triangle1 V00="9" V01="10" V02="8"/>
|
||||
<Triangle1 V00="11" V01="10" V02="9"/>
|
||||
<Triangle1 V00="11" V01="12" V02="10"/>
|
||||
<Triangle1 V00="13" V01="12" V02="11"/>
|
||||
<Triangle1 V00="13" V01="11" V02="14"/>
|
||||
<Triangle1 V00="15" V01="13" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="96" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="2" V01="3" V02="0"/>
|
||||
<Triangle1 V00="3" V01="4" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="0"/>
|
||||
<Triangle1 V00="6" V01="7" V02="8"/>
|
||||
<Triangle1 V00="6" V01="9" V02="7"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="10" V01="13" V02="11"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="110" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="6" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="5"/>
|
||||
<Triangle1 V00="6" V01="8" V02="7"/>
|
||||
<Triangle1 V00="6" V01="9" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="8"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="15" V01="12" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="126" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="0" V02="3"/>
|
||||
<Triangle1 V00="4" V01="3" V02="5"/>
|
||||
<Triangle1 V00="6" V01="4" V02="5"/>
|
||||
<Triangle1 V00="7" V01="6" V02="5"/>
|
||||
<Triangle1 V00="8" V01="6" V02="7"/>
|
||||
<Triangle1 V00="8" V01="7" V02="9"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="11" V01="10" V02="12"/>
|
||||
<Triangle1 V00="13" V01="11" V02="12"/>
|
||||
<Triangle1 V00="13" V01="12" V02="14"/>
|
||||
<Triangle1 V00="15" V01="13" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="142" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="1" V01="0" V02="3"/>
|
||||
<Triangle1 V00="1" V01="3" V02="4"/>
|
||||
<Triangle1 V00="4" V01="3" V02="5"/>
|
||||
<Triangle1 V00="4" V01="6" V02="1"/>
|
||||
<Triangle1 V00="6" V01="7" V02="1"/>
|
||||
<Triangle1 V00="6" V01="8" V02="7"/>
|
||||
<Triangle1 V00="8" V01="9" V02="7"/>
|
||||
<Triangle1 V00="7" V01="9" V02="10"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="12" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="158" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="7" V01="5" V02="4"/>
|
||||
<Triangle1 V00="7" V01="4" V02="8"/>
|
||||
<Triangle1 V00="9" V01="7" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="7"/>
|
||||
<Triangle1 V00="10" V01="9" V02="11"/>
|
||||
<Triangle1 V00="12" V01="10" V02="11"/>
|
||||
<Triangle1 V00="13" V01="12" V02="11"/>
|
||||
<Triangle1 V00="13" V01="11" V02="14"/>
|
||||
<Triangle1 V00="14" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="174" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="6" V01="3" V02="5"/>
|
||||
<Triangle1 V00="7" V01="6" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="11" V01="10" V02="9"/>
|
||||
<Triangle1 V00="11" V01="12" V02="10"/>
|
||||
<Triangle1 V00="13" V01="12" V02="11"/>
|
||||
<Triangle1 V00="11" V01="14" V02="13"/>
|
||||
<Triangle1 V00="14" V01="15" V02="13"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="190" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="4" V01="6" V02="5"/>
|
||||
<Triangle1 V00="4" V01="7" V02="6"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="13" V01="12" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="206" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="1" V01="3" V02="2"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="7" V01="5" V02="4"/>
|
||||
<Triangle1 V00="7" V01="8" V02="5"/>
|
||||
<Triangle1 V00="9" V01="8" V02="7"/>
|
||||
<Triangle1 V00="9" V01="7" V02="10"/>
|
||||
<Triangle1 V00="11" V01="9" V02="10"/>
|
||||
<Triangle1 V00="12" V01="11" V02="10"/>
|
||||
<Triangle1 V00="13" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="222" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="1" V02="0"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<Triangle1 V00="5" V01="4" V02="3"/>
|
||||
<Triangle1 V00="5" V01="3" V02="6"/>
|
||||
<Triangle1 V00="7" V01="5" V02="6"/>
|
||||
<Triangle1 V00="7" V01="6" V02="8"/>
|
||||
<Triangle1 V00="9" V01="7" V02="8"/>
|
||||
<Triangle1 V00="9" V01="8" V02="10"/>
|
||||
<Triangle1 V00="11" V01="12" V02="13"/>
|
||||
<Triangle1 V00="11" V01="13" V02="14"/>
|
||||
<Triangle1 V00="11" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="238" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="0" V02="3"/>
|
||||
<Triangle1 V00="4" V01="3" V02="5"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="6" V01="7" V02="4"/>
|
||||
<Triangle1 V00="6" V01="8" V02="7"/>
|
||||
<Triangle1 V00="6" V01="9" V02="8"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="10" V01="13" V02="11"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="252" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="0" V02="2"/>
|
||||
<Triangle1 V00="4" V01="3" V02="2"/>
|
||||
<Triangle1 V00="2" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="8"/>
|
||||
<Triangle1 V00="9" V01="8" V02="7"/>
|
||||
<Triangle1 V00="9" V01="7" V02="10"/>
|
||||
<Triangle1 V00="7" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="13" V02="14"/>
|
||||
<Triangle1 V00="15" V01="12" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="268" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="1" V01="3" V02="2"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="6" V01="7" V02="4"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="11"/>
|
||||
<Triangle1 V00="8" V01="11" V02="12"/>
|
||||
<Triangle1 V00="13" V01="8" V02="12"/>
|
||||
<Triangle1 V00="12" V01="14" V02="13"/>
|
||||
<Triangle1 V00="15" V01="13" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="284" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="5"/>
|
||||
<Triangle1 V00="5" V01="6" V02="3"/>
|
||||
<Triangle1 V00="6" V01="7" V02="3"/>
|
||||
<Triangle1 V00="8" V01="3" V02="7"/>
|
||||
<Triangle1 V00="9" V01="8" V02="7"/>
|
||||
<Triangle1 V00="7" V01="10" V02="9"/>
|
||||
<Triangle1 V00="10" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="10" V02="13"/>
|
||||
<Triangle1 V00="14" V01="12" V02="13"/>
|
||||
<Triangle1 V00="14" V01="13" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="300" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="3" V01="4" V02="0"/>
|
||||
<Triangle1 V00="3" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="8"/>
|
||||
<Triangle1 V00="6" V01="9" V02="7"/>
|
||||
<Triangle1 V00="10" V01="9" V02="6"/>
|
||||
<Triangle1 V00="11" V01="10" V02="6"/>
|
||||
<Triangle1 V00="11" V01="6" V02="12"/>
|
||||
<Triangle1 V00="13" V01="12" V02="6"/>
|
||||
<Triangle1 V00="13" V01="6" V02="8"/>
|
||||
<Triangle1 V00="10" V01="14" V02="9"/>
|
||||
<Triangle1 V00="9" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_2" VertexBufferIndex="0" VertexOffset="316" Count="5"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="0" V02="2"/>
|
||||
<Triangle1 V00="3" V01="4" V02="0"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
<DisplayList Version="0">
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="0" Count="15"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="5" V01="6" V02="3"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="7" V01="8" V02="6"/>
|
||||
<Triangle1 V00="7" V01="9" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="8"/>
|
||||
<Triangle1 V00="9" V01="11" V02="10"/>
|
||||
<Triangle1 V00="8" V01="10" V02="12"/>
|
||||
<Triangle1 V00="8" V01="12" V02="13"/>
|
||||
<Triangle1 V00="6" V01="8" V02="13"/>
|
||||
<Triangle1 V00="6" V01="13" V02="14"/>
|
||||
<Triangle1 V00="1" V01="6" V02="14"/>
|
||||
<Triangle1 V00="1" V01="3" V02="6"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="15" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<Triangle1 V00="3" V01="5" V02="4"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="7" V01="6" V02="8"/>
|
||||
<Triangle1 V00="7" V01="8" V02="9"/>
|
||||
<Triangle1 V00="9" V01="8" V02="10"/>
|
||||
<Triangle1 V00="9" V01="10" V02="11"/>
|
||||
<Triangle1 V00="10" V01="12" V02="11"/>
|
||||
<Triangle1 V00="13" V01="14" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="31" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="1" V02="0"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<Triangle1 V00="4" V01="5" V02="1"/>
|
||||
<Triangle1 V00="4" V01="6" V02="5"/>
|
||||
<Triangle1 V00="6" V01="7" V02="5"/>
|
||||
<Triangle1 V00="6" V01="8" V02="7"/>
|
||||
<Triangle1 V00="7" V01="8" V02="9"/>
|
||||
<Triangle1 V00="7" V01="9" V02="10"/>
|
||||
<Triangle1 V00="7" V01="10" V02="11"/>
|
||||
<Triangle1 V00="7" V01="11" V02="12"/>
|
||||
<Triangle1 V00="5" V01="7" V02="12"/>
|
||||
<Triangle1 V00="5" V01="12" V02="13"/>
|
||||
<Triangle1 V00="2" V01="5" V02="13"/>
|
||||
<Triangle1 V00="2" V01="1" V02="5"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="45" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="3" V01="5" V02="6"/>
|
||||
<Triangle1 V00="3" V01="6" V02="7"/>
|
||||
<Triangle1 V00="7" V01="1" V02="3"/>
|
||||
<Triangle1 V00="7" V01="8" V02="1"/>
|
||||
<Triangle1 V00="9" V01="10" V02="11"/>
|
||||
<Triangle1 V00="12" V01="11" V02="10"/>
|
||||
<Triangle1 V00="12" V01="10" V02="13"/>
|
||||
<Triangle1 V00="14" V01="12" V02="13"/>
|
||||
<Triangle1 V00="14" V01="13" V02="15"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="61" Count="14"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="2" V02="3"/>
|
||||
<Triangle1 V00="4" V01="0" V02="3"/>
|
||||
<Triangle1 V00="4" V01="5" V02="0"/>
|
||||
<Triangle1 V00="6" V01="5" V02="4"/>
|
||||
<Triangle1 V00="6" V01="7" V02="5"/>
|
||||
<Triangle1 V00="8" V01="9" V02="10"/>
|
||||
<Triangle1 V00="8" V01="11" V02="9"/>
|
||||
<Triangle1 V00="12" V01="11" V02="8"/>
|
||||
<Triangle1 V00="12" V01="13" V02="11"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="75" Count="15"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="5" V01="6" V02="3"/>
|
||||
<Triangle1 V00="5" V01="7" V02="6"/>
|
||||
<Triangle1 V00="3" V01="6" V02="8"/>
|
||||
<Triangle1 V00="3" V01="8" V02="1"/>
|
||||
<Triangle1 V00="9" V01="10" V02="11"/>
|
||||
<Triangle1 V00="9" V01="12" V02="10"/>
|
||||
<Triangle1 V00="13" V01="12" V02="9"/>
|
||||
<Triangle1 V00="13" V01="14" V02="12"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="90" Count="15"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<Triangle1 V00="3" V01="5" V02="4"/>
|
||||
<Triangle1 V00="4" V01="5" V02="6"/>
|
||||
<Triangle1 V00="4" V01="6" V02="7"/>
|
||||
<Triangle1 V00="7" V01="6" V02="8"/>
|
||||
<Triangle1 V00="9" V01="10" V02="11"/>
|
||||
<Triangle1 V00="9" V01="12" V02="10"/>
|
||||
<Triangle1 V00="13" V01="12" V02="9"/>
|
||||
<Triangle1 V00="13" V01="14" V02="12"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="105" Count="16"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="0" V01="3" V02="1"/>
|
||||
<Triangle1 V00="4" V01="3" V02="0"/>
|
||||
<Triangle1 V00="4" V01="5" V02="3"/>
|
||||
<Triangle1 V00="3" V01="5" V02="6"/>
|
||||
<Triangle1 V00="7" V01="3" V02="6"/>
|
||||
<Triangle1 V00="7" V01="6" V02="8"/>
|
||||
<Triangle1 V00="7" V01="8" V02="9"/>
|
||||
<Triangle1 V00="1" V01="3" V02="7"/>
|
||||
<Triangle1 V00="10" V01="11" V02="12"/>
|
||||
<Triangle1 V00="13" V01="10" V02="12"/>
|
||||
<Triangle1 V00="13" V01="12" V02="14"/>
|
||||
<Triangle1 V00="15" V01="13" V02="14"/>
|
||||
<LoadVertices Path="textures/nintendo_rogo_static/gShipLogoDL_vtx_3" VertexBufferIndex="0" VertexOffset="121" Count="5"/>
|
||||
<Triangle1 V00="0" V01="1" V02="2"/>
|
||||
<Triangle1 V00="3" V01="1" V02="0"/>
|
||||
<Triangle1 V00="3" V01="4" V02="1"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,335 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="0" Y="-5" Z="11" S="391" T="-468" R="0" G="10" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="-6" Z="13" S="391" T="-447" R="162" G="39" B="76" A="255"/>
|
||||
<Vtx X="0" Y="-6" Z="13" S="408" T="-447" R="94" G="39" B="76" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="-27" S="120" T="-327" R="81" G="50" B="84" A="255"/>
|
||||
<Vtx X="1" Y="0" Z="-21" S="171" T="-251" R="185" G="93" B="49" A="255"/>
|
||||
<Vtx X="2" Y="2" Z="-27" S="181" T="-327" R="175" G="50" B="84" A="255"/>
|
||||
<Vtx X="-2" Y="0" Z="-21" S="130" T="-251" R="71" G="93" B="49" A="255"/>
|
||||
<Vtx X="2" Y="0" Z="-20" S="185" T="-228" R="188" G="87" B="63" A="255"/>
|
||||
<Vtx X="-3" Y="0" Z="-20" S="116" T="-228" R="68" G="87" B="63" A="255"/>
|
||||
<Vtx X="-5" Y="-1" Z="-17" S="83" T="-191" R="88" G="79" B="46" A="255"/>
|
||||
<Vtx X="5" Y="-1" Z="-17" S="218" T="-191" R="168" G="79" B="46" A="255"/>
|
||||
<Vtx X="-6" Y="-1" Z="-11" S="70" T="-103" R="92" G="87" B="7" A="255"/>
|
||||
<Vtx X="6" Y="-1" Z="-11" S="231" T="-103" R="164" G="87" B="7" A="255"/>
|
||||
<Vtx X="0" Y="-1" Z="-1" S="151" T="35" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-1" Y="-1" Z="0" S="139" T="48" R="202" G="115" B="0" A="255"/>
|
||||
<Vtx X="-6" Y="-1" Z="3" S="70" T="94" R="75" G="78" B="190" A="255"/>
|
||||
<Vtx X="0" Y="-1" Z="1" S="151" T="60" R="0" G="115" B="54" A="255"/>
|
||||
<Vtx X="-1" Y="-1" Z="0" S="139" T="48" R="202" G="115" B="0" A="255"/>
|
||||
<Vtx X="-6" Y="-1" Z="3" S="70" T="94" R="75" G="78" B="190" A="255"/>
|
||||
<Vtx X="6" Y="-1" Z="3" S="231" T="94" R="181" G="78" B="190" A="255"/>
|
||||
<Vtx X="1" Y="-1" Z="0" S="162" T="48" R="54" G="115" B="0" A="255"/>
|
||||
<Vtx X="6" Y="-1" Z="-11" S="231" T="-103" R="164" G="87" B="7" A="255"/>
|
||||
<Vtx X="0" Y="-1" Z="-1" S="151" T="35" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-1" Y="-6" Z="13" S="65" T="-396" R="162" G="39" B="76" A="255"/>
|
||||
<Vtx X="0" Y="-8" Z="12" S="48" T="-424" R="114" G="12" B="55" A="255"/>
|
||||
<Vtx X="0" Y="-6" Z="13" S="49" T="-396" R="94" G="39" B="76" A="255"/>
|
||||
<Vtx X="-1" Y="-8" Z="12" S="65" T="-424" R="142" G="12" B="55" A="255"/>
|
||||
<Vtx X="0" Y="-12" Z="14" S="49" T="-483" R="83" G="232" B="94" A="255"/>
|
||||
<Vtx X="-1" Y="-12" Z="14" S="65" T="-483" R="173" G="232" B="94" A="255"/>
|
||||
<Vtx X="0" Y="2" Z="12" S="-34" T="-437" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="3" Y="3" Z="11" S="-55" T="-468" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="0" Y="3" Z="11" S="-55" T="-437" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="0" Y="2" Z="12" S="-34" T="-437" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="3" Y="2" Z="12" S="-34" T="-468" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="3" Y="3" Z="11" S="-55" T="-468" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="4" Y="2" Z="12" S="20" T="-447" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="6" Y="3" Z="11" S="-1" T="-478" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="4" Y="3" Z="11" S="-1" T="-447" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="6" Y="2" Z="12" S="20" T="-478" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-1" Y="-12" Z="14" S="-372" T="-427" R="173" G="232" B="94" A="255"/>
|
||||
<Vtx X="0" Y="-13" Z="13" S="-389" T="-438" R="84" G="161" B="250" A="255"/>
|
||||
<Vtx X="0" Y="-12" Z="14" S="-389" T="-427" R="83" G="232" B="94" A="255"/>
|
||||
<Vtx X="-1" Y="-13" Z="13" S="-372" T="-438" R="172" G="161" B="250" A="255"/>
|
||||
<Vtx X="0" Y="-11" Z="11" S="-389" T="-468" R="0" G="146" B="64" A="255"/>
|
||||
<Vtx X="-1" Y="2" Z="12" S="221" T="-475" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="11" S="200" T="-444" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="12" S="221" T="-444" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-1" Y="3" Z="11" S="200" T="-476" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-4" Y="3" Z="11" S="186" T="-444" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-6" Y="2" Z="12" S="165" T="-476" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-4" Y="2" Z="12" S="165" T="-444" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-6" Y="3" Z="11" S="186" T="-475" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-1" Y="-8" Z="12" S="212" T="-395" R="142" G="12" B="55" A="255"/>
|
||||
<Vtx X="-1" Y="-6" Z="13" S="221" T="-422" R="162" G="39" B="76" A="255"/>
|
||||
<Vtx X="0" Y="-5" Z="11" S="206" T="-444" R="0" G="10" B="127" A="255"/>
|
||||
<Vtx X="0" Y="-11" Z="11" S="186" T="-357" R="0" G="146" B="64" A="255"/>
|
||||
<Vtx X="-1" Y="-12" Z="14" S="221" T="-333" R="173" G="232" B="94" A="255"/>
|
||||
<Vtx X="-1" Y="-13" Z="13" S="207" T="-327" R="172" G="161" B="250" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="20" T="-494" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="0" S="28" T="-447" R="183" G="183" B="73" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="28" T="-494" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="0" S="20" T="-447" R="183" G="73" B="73" A="255"/>
|
||||
<Vtx X="1" Y="4" Z="0" S="427" T="389" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="8" Y="4" Z="-1" S="415" T="495" R="85" G="163" B="239" A="255"/>
|
||||
<Vtx X="8" Y="4" Z="0" S="427" T="495" R="73" G="183" B="73" A="255"/>
|
||||
<Vtx X="0" Y="4" Z="-1" S="415" T="377" R="0" G="155" B="179" A="255"/>
|
||||
<Vtx X="-1" Y="5" Z="0" S="-343" T="-272" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="-1" S="-330" T="-71" R="0" G="130" B="15" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="-1" S="-330" T="-272" R="0" G="125" B="236" A="255"/>
|
||||
<Vtx X="-1" Y="19" Z="0" S="-343" T="-71" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="-1" S="-132" T="-270" R="0" G="130" B="15" A="255"/>
|
||||
<Vtx X="1" Y="5" Z="0" S="-144" T="-69" R="87" G="61" B="70" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="-1" S="-132" T="-69" R="0" G="125" B="236" A="255"/>
|
||||
<Vtx X="1" Y="19" Z="0" S="-144" T="-270" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="-431" T="-469" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="1" Y="28" Z="0" S="-441" T="-456" R="68" G="149" B="0" A="255"/>
|
||||
<Vtx X="1" Y="27" Z="0" S="-431" T="-456" R="87" G="61" B="70" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="-1" S="-441" T="-469" R="0" G="149" B="188" A="255"/>
|
||||
<Vtx X="-1" Y="28" Z="0" S="-431" T="-469" R="188" G="149" B="0" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="-421" T="-456" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="-421" T="-469" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="-1" S="-431" T="-456" R="0" G="149" B="188" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="-5" T="-177" R="54" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-2" T="-148" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="-2" T="-178" R="0" G="115" B="54" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-5" T="-148" R="97" G="206" B="66" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-2" T="-105" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-5" T="-104" R="98" G="50" B="64" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-2" T="-96" R="0" G="73" B="104" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-5" T="-96" R="104" G="73" B="0" A="255"/>
|
||||
<Vtx X="2" Y="28" Z="0" S="35" T="-483" R="107" G="188" B="0" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="-3" S="48" T="-447" R="0" G="73" B="152" A="255"/>
|
||||
<Vtx X="2" Y="29" Z="0" S="48" T="-483" R="104" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="-3" S="35" T="-447" R="0" G="188" B="149" A="255"/>
|
||||
<Vtx X="2" Y="28" Z="0" S="-330" T="-475" R="107" G="188" B="0" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="3" S="-344" T="-439" R="0" G="73" B="104" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="3" S="-330" T="-438" R="0" G="188" B="107" A="255"/>
|
||||
<Vtx X="2" Y="29" Z="0" S="-344" T="-475" R="104" G="73" B="0" A="255"/>
|
||||
<Vtx X="-3" Y="29" Z="0" S="200" T="-444" R="152" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="-3" S="186" T="-481" R="0" G="188" B="149" A="255"/>
|
||||
<Vtx X="-3" Y="28" Z="0" S="186" T="-444" R="149" G="188" B="0" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="-3" S="200" T="-481" R="0" G="73" B="152" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="3" S="165" T="-445" R="0" G="73" B="104" A="255"/>
|
||||
<Vtx X="-3" Y="28" Z="0" S="152" T="-481" R="149" G="188" B="0" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="3" S="152" T="-444" R="0" G="188" B="107" A="255"/>
|
||||
<Vtx X="-3" Y="29" Z="0" S="165" T="-481" R="152" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="-2" T="-14" R="0" G="115" B="54" A="255"/>
|
||||
<Vtx X="-1" Y="31" Z="0" S="-5" T="-43" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-1" Y="29" Z="0" S="-5" T="-14" R="202" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-2" T="-43" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-2" T="-43" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="34" Z="0" S="-5" T="-87" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="-1" Y="31" Z="0" S="-5" T="-43" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-2" T="-87" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="35" Z="0" S="-5" T="-96" R="152" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-2" T="-96" R="0" G="73" B="104" A="255"/>
|
||||
<Vtx X="-1" Y="29" Z="0" S="-2" T="68" R="202" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-5" T="39" R="187" G="201" B="164" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="-5" T="68" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-1" Y="31" Z="0" S="-2" T="39" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-5" T="-5" R="189" G="55" B="163" A="255"/>
|
||||
<Vtx X="-1" Y="34" Z="0" S="-2" T="-5" R="129" G="0" B="0" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-5" T="-14" R="0" G="73" B="152" A="255"/>
|
||||
<Vtx X="-1" Y="35" Z="0" S="-2" T="-14" R="152" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="-1" T="-221" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-4" T="-251" R="97" G="206" B="66" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="-4" T="-222" R="54" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-1" T="-251" R="187" G="201" B="164" A="255"/>
|
||||
<Vtx X="-1" Y="35" Z="0" S="-350" T="-271" R="152" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-345" T="-266" R="104" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-345" T="-271" R="0" G="73" B="152" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-350" T="-266" R="0" G="73" B="104" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-1" T="-251" R="189" G="55" B="163" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-4" T="-260" R="104" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-4" T="-251" R="98" G="50" B="64" A="255"/>
|
||||
<Vtx X="0" Y="35" Z="0" S="-1" T="-260" R="0" G="73" B="152" A="255"/>
|
||||
<Vtx X="1" Y="19" Z="0" S="434" T="-341" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-1" S="445" T="-447" R="105" G="193" B="33" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="0" S="434" T="-447" R="73" G="183" B="74" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="-1" S="445" T="-329" R="0" G="130" B="15" A="255"/>
|
||||
<Vtx X="-1" Y="21" Z="0" S="391" T="-393" R="169" G="61" B="69" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-1" S="379" T="-287" R="166" G="90" B="0" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="0" S="391" T="-287" R="183" G="74" B="73" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="-1" S="379" T="-405" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-1" S="371" T="-287" R="166" G="90" B="0" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="-1" S="371" T="-405" R="0" G="127" B="0" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="-1" S="379" T="-524" R="90" G="90" B="0" A="255"/>
|
||||
<Vtx X="1" Y="21" Z="0" S="391" T="-418" R="87" G="61" B="69" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="0" S="391" T="-524" R="73" G="74" B="73" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="-1" S="371" T="-524" R="90" G="90" B="0" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-2" S="363" T="-464" R="91" G="85" B="231" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="-2" S="363" T="-524" R="73" G="73" B="183" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="-2" S="363" T="-405" R="0" G="97" B="82" A="255"/>
|
||||
<Vtx X="-5" Y="21" Z="-2" S="363" T="-346" R="165" G="87" B="236" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-2" S="363" T="-287" R="183" G="73" B="183" A="255"/>
|
||||
<Vtx X="-1" Y="21" Z="0" S="-55" T="-437" R="169" G="61" B="69" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="0" S="-31" T="-331" R="183" G="183" B="74" A="255"/>
|
||||
<Vtx X="-1" Y="19" Z="0" S="-31" T="-437" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="0" S="-55" T="-331" R="183" G="74" B="73" A="255"/>
|
||||
<Vtx X="-1" Y="19" Z="0" S="427" T="389" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-1" S="439" T="495" R="151" G="193" B="33" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="-1" S="439" T="377" R="0" G="130" B="15" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="0" S="427" T="495" R="183" G="183" B="74" A="255"/>
|
||||
<Vtx X="0" Y="4" Z="-1" S="-461" T="-495" R="0" G="155" B="179" A="255"/>
|
||||
<Vtx X="1" Y="-1" Z="0" S="-473" T="-427" R="54" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="-1" Z="-1" S="-461" T="-427" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="1" Y="4" Z="0" S="-473" T="-496" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="-1" Y="4" Z="0" S="281" T="-423" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="-1" Z="-1" S="293" T="-492" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-1" Y="-1" Z="0" S="281" T="-491" R="202" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="4" Z="-1" S="293" T="-423" R="0" G="155" B="179" A="255"/>
|
||||
<Vtx X="1" Y="4" Z="0" S="-29" T="-262" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="-1" Z="1" S="-17" T="-331" R="0" G="115" B="54" A="255"/>
|
||||
<Vtx X="1" Y="-1" Z="0" S="-29" T="-331" R="54" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="4" Z="1" S="-17" T="-263" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="1" Y="5" Z="0" S="-29" T="-250" R="87" G="61" B="70" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="0" S="-132" T="-251" R="73" G="73" B="73" A="255"/>
|
||||
<Vtx X="8" Y="4" Z="0" S="-132" T="-262" R="73" G="183" B="73" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="1" S="-17" T="-251" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="1" Y="19" Z="0" S="-29" T="-50" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="1" S="-17" T="-50" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="1" Y="21" Z="0" S="-29" T="-25" R="87" G="61" B="69" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="0" S="-132" T="-25" R="73" G="74" B="73" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="0" S="-132" T="-50" R="73" G="183" B="74" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="1" S="-17" T="-26" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="1" Y="27" Z="0" S="-29" T="50" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="1" S="-17" T="50" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="1" Y="27" Z="0" S="-29" T="58" R="87" G="61" B="70" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="1" S="-17" T="50" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="1" Y="27" Z="0" S="-29" T="50" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="0" S="-75" T="58" R="73" G="73" B="73" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="0" S="-75" T="50" R="73" G="183" B="73" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="1" S="-17" T="57" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="1" Y="28" Z="0" S="-29" T="68" R="68" G="149" B="0" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="1" S="-17" T="68" R="0" G="149" B="68" A="255"/>
|
||||
<Vtx X="0" Y="4" Z="1" S="-5" T="0" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="-1" Z="0" S="-17" T="68" R="202" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="-1" Z="1" S="-5" T="68" R="0" G="115" B="54" A="255"/>
|
||||
<Vtx X="-1" Y="4" Z="0" S="-17" T="0" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="1" S="-5" T="-12" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="5" Z="0" S="-17" T="-12" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="1" S="-5" T="-213" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="19" Z="0" S="-17" T="-213" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="1" S="-5" T="-238" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="19" Z="0" S="-17" T="-213" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="1" S="-5" T="-213" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="21" Z="0" S="-17" T="-238" R="169" G="61" B="69" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="-17" T="-313" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="1" S="-5" T="-313" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="-17" T="-321" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="1" S="-5" T="-321" R="0" G="0" B="127" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="1" S="-5" T="-331" R="0" G="149" B="68" A="255"/>
|
||||
<Vtx X="-1" Y="28" Z="0" S="-17" T="-331" R="188" G="149" B="0" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-1" S="-431" T="-436" R="166" G="90" B="0" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-2" S="-431" T="-427" R="183" G="73" B="183" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-2" S="-407" T="-427" R="158" G="20" B="177" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-1" S="-407" T="-444" R="151" G="193" B="33" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-1" S="-431" T="-444" R="166" G="90" B="0" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="0" S="-407" T="-456" R="183" G="183" B="74" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="0" S="-407" T="-456" R="183" G="183" B="74" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="0" S="-431" T="-456" R="183" G="74" B="73" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-1" S="-431" T="-444" R="166" G="90" B="0" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-2" S="-431" T="-456" R="98" G="20" B="177" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="-2" S="-455" T="-456" R="73" G="73" B="183" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="-1" S="-455" T="-448" R="90" G="90" B="0" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-1" S="-431" T="-439" R="105" G="193" B="33" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="-1" S="-455" T="-439" R="90" G="90" B="0" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="0" S="-431" T="-427" R="73" G="183" B="74" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="0" S="-455" T="-427" R="73" G="74" B="73" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="-1" S="-418" T="-468" R="98" G="79" B="20" A="255"/>
|
||||
<Vtx X="8" Y="4" Z="0" S="-407" T="-456" R="73" G="183" B="73" A="255"/>
|
||||
<Vtx X="8" Y="4" Z="-1" S="-407" T="-468" R="85" G="163" B="239" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="0" S="-418" T="-456" R="73" G="73" B="73" A="255"/>
|
||||
<Vtx X="1" Y="5" Z="0" S="457" T="-341" R="87" G="61" B="70" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="-1" S="445" T="-447" R="98" G="79" B="20" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="-1" S="445" T="-329" R="0" G="125" B="236" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="0" S="457" T="-447" R="73" G="73" B="73" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="0" S="-133" T="-291" R="183" G="73" B="73" A="255"/>
|
||||
<Vtx X="-9" Y="4" Z="-1" S="-144" T="-303" R="171" G="163" B="239" A="255"/>
|
||||
<Vtx X="-9" Y="4" Z="0" S="-144" T="-291" R="183" G="183" B="73" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="-1" S="-133" T="-303" R="158" G="79" B="20" A="255"/>
|
||||
<Vtx X="-1" Y="5" Z="0" S="450" T="389" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="-1" S="439" T="495" R="158" G="79" B="20" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="0" S="450" T="495" R="183" G="73" B="73" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="-1" S="439" T="377" R="0" G="125" B="236" A="255"/>
|
||||
<Vtx X="-1" Y="4" Z="0" S="434" T="-341" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="-9" Y="4" Z="-1" S="422" T="-447" R="171" G="163" B="239" A="255"/>
|
||||
<Vtx X="0" Y="4" Z="-1" S="422" T="-329" R="0" G="155" B="179" A="255"/>
|
||||
<Vtx X="-9" Y="4" Z="0" S="434" T="-447" R="183" G="183" B="73" A="255"/>
|
||||
<Vtx X="-1" Y="5" Z="0" S="-125" T="-521" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="-9" Y="4" Z="0" S="-113" T="-415" R="183" G="183" B="73" A="255"/>
|
||||
<Vtx X="-1" Y="4" Z="0" S="-113" T="-521" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="0" S="-125" T="-415" R="183" G="73" B="73" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="-15" T="-417" R="0" G="129" B="253" A="255"/>
|
||||
<Vtx X="1" Y="21" Z="0" S="-3" T="-492" R="87" G="61" B="69" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="-1" S="-15" T="-493" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="1" Y="27" Z="0" S="-3" T="-417" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="-1" Y="21" Z="0" S="-27" T="-492" R="169" G="61" B="69" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="-15" T="-417" R="0" G="129" B="253" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="-1" S="-15" T="-492" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="-27" T="-417" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-137" T="-282" R="102" G="185" B="27" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="0" S="-144" T="-270" R="73" G="73" B="73" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="0" S="-137" T="-270" R="73" G="183" B="73" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-144" T="-282" R="90" G="90" B="0" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-137" T="-282" R="102" G="185" B="27" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-144" T="-291" R="73" G="73" B="183" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-144" T="-282" R="90" G="90" B="0" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-137" T="-291" R="103" G="30" B="188" A="255"/>
|
||||
<Vtx X="1" Y="27" Z="0" S="-348" T="-474" R="87" G="195" B="70" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-360" T="-427" R="102" G="185" B="27" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="0" S="-348" T="-427" R="73" G="183" B="73" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="-360" T="-486" R="0" G="129" B="253" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="0" S="408" T="-468" R="183" G="73" B="73" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="415" T="-456" R="154" G="185" B="27" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="0" S="415" T="-468" R="183" G="183" B="73" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="408" T="-456" R="166" G="90" B="0" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="408" T="-447" R="183" G="73" B="183" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="415" T="-447" R="153" G="30" B="188" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="-372" T="-474" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="-360" T="-427" R="154" G="185" B="27" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="-372" T="-474" R="169" G="195" B="70" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="0" S="-372" T="-427" R="183" G="183" B="73" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="-360" T="-427" R="154" G="185" B="27" A="255"/>
|
||||
<Vtx X="-1" Y="27" Z="0" S="-156" T="-378" R="169" G="61" B="70" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="-144" T="-425" R="166" G="90" B="0" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="0" S="-156" T="-425" R="183" G="73" B="73" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="-144" T="-366" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="-136" T="-425" R="183" G="73" B="183" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="-136" T="-366" R="0" G="90" B="166" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-144" T="-307" R="90" G="90" B="0" A="255"/>
|
||||
<Vtx X="1" Y="27" Z="0" S="-156" T="-354" R="87" G="61" B="70" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="0" S="-156" T="-307" R="73" G="73" B="73" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-136" T="-307" R="73" G="73" B="183" A="255"/>
|
||||
<Vtx X="0" Y="-13" Z="13" S="173" T="-444" R="84" G="161" B="250" A="255"/>
|
||||
<Vtx X="0" Y="-11" Z="11" S="151" T="-415" R="0" G="146" B="64" A="255"/>
|
||||
<Vtx X="0" Y="-12" Z="14" S="186" T="-438" R="83" G="232" B="94" A="255"/>
|
||||
<Vtx X="0" Y="-8" Z="12" S="177" T="-376" R="114" G="12" B="55" A="255"/>
|
||||
<Vtx X="0" Y="-12" Z="14" S="186" T="-438" R="83" G="232" B="94" A="255"/>
|
||||
<Vtx X="0" Y="-11" Z="11" S="151" T="-415" R="0" G="146" B="64" A="255"/>
|
||||
<Vtx X="0" Y="-5" Z="11" S="171" T="-327" R="0" G="10" B="127" A="255"/>
|
||||
<Vtx X="0" Y="-6" Z="13" S="186" T="-349" R="94" G="39" B="76" A="255"/>
|
||||
<Vtx X="8" Y="21" Z="-2" S="495" T="-143" R="73" G="73" B="183" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-2" S="471" T="-143" R="98" G="20" B="177" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-2" S="495" T="-83" R="91" G="85" B="231" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-2" S="487" T="-78" R="11" G="222" B="134" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="-2" S="471" T="-24" R="0" G="31" B="133" A="255"/>
|
||||
<Vtx X="-4" Y="21" Z="-2" S="488" T="31" R="243" G="222" B="134" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-2" S="471" T="94" R="158" G="20" B="177" A="255"/>
|
||||
<Vtx X="-5" Y="21" Z="-2" S="495" T="35" R="165" G="87" B="236" A="255"/>
|
||||
<Vtx X="-9" Y="21" Z="-2" S="495" T="94" R="183" G="73" B="183" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="450" T="436" R="0" G="90" B="166" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="450" T="495" R="73" G="73" B="183" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="458" T="495" R="103" G="30" B="188" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="458" T="436" R="0" G="51" B="140" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="450" T="377" R="183" G="73" B="183" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="458" T="377" R="153" G="30" B="188" A="255"/>
|
||||
<Vtx X="-1" Y="28" Z="0" S="269" T="-389" R="188" G="149" B="0" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="3" S="253" T="-423" R="0" G="188" B="107" A="255"/>
|
||||
<Vtx X="-3" Y="28" Z="0" S="253" T="-373" R="149" G="188" B="0" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="1" S="269" T="-407" R="0" G="149" B="68" A="255"/>
|
||||
<Vtx X="1" Y="28" Z="0" S="285" T="-407" R="68" G="149" B="0" A="255"/>
|
||||
<Vtx X="2" Y="28" Z="0" S="302" T="-423" R="107" G="188" B="0" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="-1" S="285" T="-389" R="0" G="149" B="188" A="255"/>
|
||||
<Vtx X="0" Y="28" Z="-3" S="302" T="-373" R="0" G="188" B="149" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="26" T="-419" R="0" G="115" B="202" A="255"/>
|
||||
<Vtx X="2" Y="29" Z="0" S="-1" T="-396" R="104" G="73" B="0" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="-3" S="48" T="-396" R="0" G="73" B="152" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="22" T="-419" R="54" G="115" B="0" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="3" S="-1" T="-447" R="0" G="73" B="104" A="255"/>
|
||||
<Vtx X="0" Y="29" Z="0" S="22" T="-424" R="0" G="115" B="54" A="255"/>
|
||||
<Vtx X="-1" Y="29" Z="0" S="26" T="-424" R="202" G="115" B="0" A="255"/>
|
||||
<Vtx X="-3" Y="29" Z="0" S="48" T="-447" R="152" G="73" B="0" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,98 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="3" Y="34" Z="-1" S="302" T="-467" R="72" G="84" B="194" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="0" S="293" T="-423" R="64" G="160" B="202" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="-1" S="302" T="-423" R="72" G="172" B="194" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="0" S="293" T="-467" R="64" G="96" B="202" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="0" S="-128" T="-469" R="64" G="96" B="202" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="0" S="-135" T="-425" R="23" G="154" B="183" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="0" S="-128" T="-425" R="64" G="160" B="202" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="0" S="-135" T="-469" R="23" G="102" B="183" A="255"/>
|
||||
<Vtx X="4" Y="31" Z="0" S="-147" T="-425" R="234" G="160" B="176" A="255"/>
|
||||
<Vtx X="4" Y="34" Z="0" S="-147" T="-469" R="234" G="96" B="176" A="255"/>
|
||||
<Vtx X="5" Y="31" Z="0" S="-156" T="-425" R="59" G="186" B="168" A="255"/>
|
||||
<Vtx X="5" Y="34" Z="0" S="-156" T="-469" R="59" G="70" B="168" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="1" S="112" T="-416" R="183" G="171" B="61" A="255"/>
|
||||
<Vtx X="2" Y="34" Z="0" S="104" T="-460" R="193" G="96" B="54" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="0" S="104" T="-416" R="193" G="160" B="54" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="1" S="112" T="-460" R="183" G="85" B="61" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="1" S="260" T="-423" R="226" G="175" B="94" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="1" S="253" T="-467" R="183" G="85" B="61" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="1" S="253" T="-423" R="183" G="171" B="61" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="1" S="260" T="-467" R="226" G="81" B="94" A="255"/>
|
||||
<Vtx X="4" Y="31" Z="1" S="271" T="-423" R="25" G="172" B="92" A="255"/>
|
||||
<Vtx X="4" Y="34" Z="1" S="271" T="-467" R="25" G="84" B="92" A="255"/>
|
||||
<Vtx X="5" Y="31" Z="1" S="281" T="-423" R="84" G="178" B="56" A="255"/>
|
||||
<Vtx X="5" Y="34" Z="1" S="281" T="-467" R="84" G="78" B="56" A="255"/>
|
||||
<Vtx X="5" Y="34" Z="1" S="-401" T="-471" R="84" G="78" B="56" A="255"/>
|
||||
<Vtx X="5" Y="31" Z="0" S="-389" T="-427" R="59" G="186" B="168" A="255"/>
|
||||
<Vtx X="5" Y="34" Z="0" S="-389" T="-471" R="59" G="70" B="168" A="255"/>
|
||||
<Vtx X="5" Y="31" Z="1" S="-401" T="-427" R="84" G="178" B="56" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-1" T="-178" R="187" G="201" B="164" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="-1" S="-5" T="-221" R="171" G="82" B="209" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="-1" S="-5" T="-178" R="171" G="174" B="210" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-1" T="-221" R="189" G="55" B="163" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="70" T="-417" R="97" G="206" B="66" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="74" T="-460" R="34" G="89" B="84" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="70" T="-460" R="98" G="50" B="64" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="74" T="-417" R="33" G="166" B="84" A="255"/>
|
||||
<Vtx X="1" Y="34" Z="0" S="82" T="-461" R="12" G="97" B="81" A="255"/>
|
||||
<Vtx X="1" Y="31" Z="0" S="82" T="-417" R="12" G="159" B="81" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="0" S="94" T="-417" R="227" G="157" B="75" A="255"/>
|
||||
<Vtx X="2" Y="34" Z="0" S="94" T="-461" R="227" G="99" B="75" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="0" S="104" T="-416" R="193" G="160" B="54" A="255"/>
|
||||
<Vtx X="2" Y="34" Z="0" S="104" T="-460" R="193" G="96" B="54" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="-1" S="151" T="-416" R="171" G="174" B="210" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="-1" S="151" T="-460" R="171" G="82" B="209" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="-1" S="143" T="-460" R="205" G="85" B="177" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="-1" S="143" T="-416" R="205" G="171" B="177" A="255"/>
|
||||
<Vtx X="1" Y="34" Z="-1" S="135" T="-460" R="242" G="84" B="161" A="255"/>
|
||||
<Vtx X="1" Y="31" Z="-1" S="135" T="-416" R="242" G="172" B="161" A="255"/>
|
||||
<Vtx X="1" Y="31" Z="-1" S="135" T="-416" R="242" G="172" B="161" A="255"/>
|
||||
<Vtx X="1" Y="34" Z="-1" S="135" T="-460" R="242" G="84" B="161" A="255"/>
|
||||
<Vtx X="2" Y="34" Z="-1" S="123" T="-460" R="35" G="83" B="166" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="-1" S="123" T="-416" R="35" G="173" B="166" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="-1" S="113" T="-416" R="72" G="172" B="194" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="-1" S="113" T="-460" R="72" G="84" B="194" A="255"/>
|
||||
<Vtx X="4" Y="31" Z="0" S="-72" T="-478" R="234" G="160" B="176" A="255"/>
|
||||
<Vtx X="5" Y="31" Z="0" S="-64" T="-485" R="59" G="186" B="168" A="255"/>
|
||||
<Vtx X="5" Y="31" Z="1" S="-76" T="-489" R="84" G="178" B="56" A="255"/>
|
||||
<Vtx X="4" Y="31" Z="1" S="-84" T="-481" R="25" G="172" B="92" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="0" S="-77" T="-467" R="23" G="154" B="183" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="1" S="-89" T="-471" R="226" G="175" B="94" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="1" S="-86" T="-461" R="183" G="171" B="61" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="0" S="-74" T="-458" R="64" G="160" B="202" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="0" S="-79" T="-454" R="193" G="160" B="54" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="-1" S="-67" T="-450" R="72" G="172" B="194" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="0" S="-76" T="-441" R="227" G="157" B="75" A="255"/>
|
||||
<Vtx X="3" Y="31" Z="-1" S="-67" T="-450" R="72" G="172" B="194" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="0" S="-79" T="-454" R="193" G="160" B="54" A="255"/>
|
||||
<Vtx X="2" Y="31" Z="-1" S="-64" T="-438" R="35" G="173" B="166" A="255"/>
|
||||
<Vtx X="1" Y="31" Z="-1" S="-67" T="-426" R="242" G="172" B="161" A="255"/>
|
||||
<Vtx X="1" Y="31" Z="0" S="-79" T="-430" R="12" G="159" B="81" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="-1" S="-73" T="-419" R="205" G="171" B="177" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-85" T="-423" R="33" G="166" B="84" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="-1" S="-83" T="-415" R="171" G="174" B="210" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-86" T="-415" R="187" G="201" B="164" A="255"/>
|
||||
<Vtx X="0" Y="31" Z="0" S="-88" T="-420" R="97" G="206" B="66" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-111" T="-488" R="189" G="55" B="163" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-113" T="-484" R="98" G="50" B="64" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-110" T="-481" R="34" G="89" B="84" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="-1" S="-107" T="-489" R="171" G="82" B="209" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="-1" S="-98" T="-484" R="205" G="85" B="177" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="0" S="-110" T="-481" R="34" G="89" B="84" A="255"/>
|
||||
<Vtx X="1" Y="34" Z="0" S="-104" T="-474" R="12" G="97" B="81" A="255"/>
|
||||
<Vtx X="0" Y="34" Z="-1" S="-98" T="-484" R="205" G="85" B="177" A="255"/>
|
||||
<Vtx X="1" Y="34" Z="-1" S="-92" T="-477" R="242" G="84" B="161" A="255"/>
|
||||
<Vtx X="2" Y="34" Z="-1" S="-89" T="-466" R="35" G="83" B="166" A="255"/>
|
||||
<Vtx X="2" Y="34" Z="0" S="-101" T="-462" R="227" G="99" B="75" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="-1" S="-92" T="-453" R="72" G="84" B="194" A="255"/>
|
||||
<Vtx X="2" Y="34" Z="0" S="-104" T="-450" R="193" G="96" B="54" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="0" S="-98" T="-446" R="64" G="96" B="202" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="1" S="-110" T="-442" R="183" G="85" B="61" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="0" S="-101" T="-436" R="23" G="102" B="183" A="255"/>
|
||||
<Vtx X="3" Y="34" Z="1" S="-113" T="-433" R="226" G="81" B="94" A="255"/>
|
||||
<Vtx X="4" Y="34" Z="1" S="-109" T="-422" R="25" G="84" B="92" A="255"/>
|
||||
<Vtx X="4" Y="34" Z="0" S="-97" T="-426" R="234" G="96" B="176" A="255"/>
|
||||
<Vtx X="5" Y="34" Z="1" S="-101" T="-415" R="84" G="78" B="56" A="255"/>
|
||||
<Vtx X="5" Y="34" Z="0" S="-89" T="-418" R="59" G="70" B="168" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,323 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="-2" Y="1" Z="-22" S="-343" T="-266" R="155" G="77" B="11" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="-26" S="-350" T="-196" R="71" G="66" B="82" A="255"/>
|
||||
<Vtx X="-3" Y="5" Z="-28" S="-343" T="-169" R="183" G="100" B="227" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-22" S="-343" T="-71" R="101" G="77" B="11" A="255"/>
|
||||
<Vtx X="3" Y="5" Z="-28" S="-343" T="-169" R="73" G="100" B="227" A="255"/>
|
||||
<Vtx X="2" Y="3" Z="-26" S="-350" T="-141" R="185" G="66" B="82" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="5" S="-348" T="-432" R="82" G="187" B="69" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="5" S="-343" T="-368" R="82" G="185" B="66" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="5" S="-343" T="-432" R="118" G="227" B="38" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="5" S="-348" T="-367" R="118" G="226" B="35" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-528" T="-505" R="4" G="95" B="85" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-522" T="-510" R="85" G="196" B="73" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-529" T="-510" R="71" G="88" B="58" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-522" T="-506" R="53" G="243" B="115" A="255"/>
|
||||
<Vtx X="6" Y="3" Z="11" S="-510" T="-495" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="4" Y="3" Z="11" S="-510" T="-464" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="3" Y="3" Z="11" S="-510" T="-452" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="4" Y="3" Z="11" S="-510" T="-464" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-528" T="-505" R="4" G="95" B="85" A="255"/>
|
||||
<Vtx X="0" Y="3" Z="11" S="-510" T="-421" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-1" Y="3" Z="11" S="-510" T="-398" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="-528" T="-314" R="252" G="95" B="85" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="11" S="-510" T="-367" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-4" Y="3" Z="11" S="-510" T="-355" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-6" Y="3" Z="11" S="-510" T="-324" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="-522" T="-314" R="203" G="243" B="115" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="-522" T="-309" R="171" G="196" B="73" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="-529" T="-310" R="185" G="88" B="58" A="255"/>
|
||||
<Vtx X="-6" Y="2" Z="12" S="-489" T="-324" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="12" S="-473" T="-309" R="156" G="221" B="70" A="255"/>
|
||||
<Vtx X="-4" Y="2" Z="12" S="-489" T="-355" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="12" S="-473" T="-409" R="0" G="215" B="120" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="12" S="-489" T="-367" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-4" Y="2" Z="12" S="-489" T="-355" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="12" S="-473" T="-409" R="0" G="215" B="120" A="255"/>
|
||||
<Vtx X="-1" Y="2" Z="12" S="-489" T="-398" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="0" Y="2" Z="12" S="-489" T="-421" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="3" Y="2" Z="12" S="-489" T="-452" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="4" Y="2" Z="12" S="-489" T="-464" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="12" S="-473" T="-510" R="100" G="221" B="70" A="255"/>
|
||||
<Vtx X="6" Y="2" Z="12" S="-489" T="-495" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-522" T="-506" R="53" G="243" B="115" A="255"/>
|
||||
<Vtx X="6" Y="3" Z="11" S="-510" T="-495" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="3" Y="3" Z="11" S="-510" T="-452" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="4" Y="3" Z="11" S="-510" T="-464" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="7" Y="-10" Z="-10" S="70" T="194" R="104" G="186" B="237" A="255"/>
|
||||
<Vtx X="2" Y="-9" Z="-17" S="136" T="95" R="21" G="160" B="176" A="255"/>
|
||||
<Vtx X="6" Y="-8" Z="-17" S="85" T="94" R="92" G="201" B="188" A="255"/>
|
||||
<Vtx X="7" Y="-10" Z="-10" S="70" T="194" R="104" G="186" B="237" A="255"/>
|
||||
<Vtx X="2" Y="-13" Z="-10" S="137" T="196" R="26" G="134" B="231" A="255"/>
|
||||
<Vtx X="2" Y="-9" Z="-17" S="136" T="95" R="21" G="160" B="176" A="255"/>
|
||||
<Vtx X="2" Y="-13" Z="4" S="137" T="393" R="27" G="132" B="9" A="255"/>
|
||||
<Vtx X="7" Y="-10" Z="4" S="70" T="391" R="106" G="186" B="6" A="255"/>
|
||||
<Vtx X="2" Y="-11" Z="11" S="137" T="495" R="19" G="169" B="91" A="255"/>
|
||||
<Vtx X="7" Y="-9" Z="11" S="74" T="494" R="84" G="207" B="82" A="255"/>
|
||||
<Vtx X="0" Y="-11" Z="11" S="175" T="495" R="0" G="146" B="64" A="255"/>
|
||||
<Vtx X="-2" Y="-11" Z="11" S="196" T="495" R="237" G="169" B="91" A="255"/>
|
||||
<Vtx X="-2" Y="-13" Z="4" S="195" T="393" R="229" G="132" B="9" A="255"/>
|
||||
<Vtx X="-7" Y="-10" Z="4" S="263" T="391" R="150" G="186" B="6" A="255"/>
|
||||
<Vtx X="-7" Y="-9" Z="11" S="259" T="494" R="172" G="207" B="82" A="255"/>
|
||||
<Vtx X="-7" Y="-10" Z="-10" S="263" T="194" R="152" G="186" B="237" A="255"/>
|
||||
<Vtx X="-2" Y="-13" Z="-10" S="195" T="196" R="230" G="134" B="231" A="255"/>
|
||||
<Vtx X="-3" Y="-9" Z="-17" S="197" T="95" R="235" G="160" B="176" A="255"/>
|
||||
<Vtx X="-6" Y="-8" Z="-17" S="248" T="94" R="164" G="201" B="188" A="255"/>
|
||||
<Vtx X="3" Y="0" Z="-21" S="335" T="-265" R="74" G="215" B="161" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-22" S="346" T="-287" R="101" G="77" B="11" A="255"/>
|
||||
<Vtx X="3" Y="0" Z="-21" S="330" T="-265" R="70" G="191" B="172" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="306" T="-211" R="81" G="166" B="218" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="302" T="-211" R="89" G="177" B="211" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="-10" S="305" T="-112" R="95" G="172" B="248" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="-10" S="309" T="-112" R="91" G="168" B="248" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="5" S="342" T="94" R="82" G="185" B="66" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="5" S="346" T="94" R="118" G="226" B="35" A="255"/>
|
||||
<Vtx X="2" Y="-1" Z="-22" S="140" T="-416" R="100" G="222" B="185" A="255"/>
|
||||
<Vtx X="2" Y="2" Z="-28" S="140" T="-327" R="29" G="191" B="151" A="255"/>
|
||||
<Vtx X="3" Y="2" Z="-28" S="151" T="-328" R="93" G="233" B="172" A="255"/>
|
||||
<Vtx X="1" Y="-1" Z="-22" S="133" T="-416" R="29" G="170" B="168" A="255"/>
|
||||
<Vtx X="-2" Y="2" Z="-28" S="81" T="-327" R="227" G="191" B="151" A="255"/>
|
||||
<Vtx X="-2" Y="-1" Z="-22" S="88" T="-416" R="227" G="170" B="168" A="255"/>
|
||||
<Vtx X="-2" Y="-1" Z="-22" S="81" T="-416" R="156" G="222" B="185" A="255"/>
|
||||
<Vtx X="-2" Y="-1" Z="-22" S="81" T="-416" R="156" G="222" B="185" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="-28" S="70" T="-328" R="163" G="233" B="172" A="255"/>
|
||||
<Vtx X="-2" Y="2" Z="-28" S="81" T="-327" R="227" G="191" B="151" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-22" S="-380" T="405" R="101" G="77" B="11" A="255"/>
|
||||
<Vtx X="3" Y="2" Z="-28" S="-366" T="495" R="93" G="233" B="172" A="255"/>
|
||||
<Vtx X="3" Y="5" Z="-28" S="-330" T="488" R="73" G="100" B="227" A="255"/>
|
||||
<Vtx X="2" Y="-1" Z="-22" S="-403" T="409" R="100" G="222" B="185" A="255"/>
|
||||
<Vtx X="3" Y="0" Z="-21" S="-395" T="385" R="74" G="215" B="161" A="255"/>
|
||||
<Vtx X="3" Y="-2" Z="-21" S="-414" T="398" R="81" G="253" B="159" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="-398" T="338" R="81" G="166" B="218" A="255"/>
|
||||
<Vtx X="6" Y="-8" Z="-17" S="-495" T="336" R="92" G="201" B="188" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="-10" S="-397" T="239" R="91" G="168" B="248" A="255"/>
|
||||
<Vtx X="7" Y="-10" Z="-10" S="-529" T="237" R="104" G="186" B="237" A="255"/>
|
||||
<Vtx X="7" Y="-10" Z="4" S="-525" T="39" R="106" G="186" B="6" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="5" S="-398" T="30" R="118" G="226" B="35" A="255"/>
|
||||
<Vtx X="7" Y="-9" Z="11" S="-509" T="-64" R="84" G="207" B="82" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="11" S="-387" T="-61" R="102" G="218" B="66" A="255"/>
|
||||
<Vtx X="7" Y="-9" Z="11" S="-509" T="-64" R="84" G="207" B="82" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="5" S="-398" T="30" R="118" G="226" B="35" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="5" S="-335" T="33" R="82" G="187" B="69" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-330" T="-61" R="53" G="243" B="115" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="12" S="-378" T="-71" R="100" G="221" B="70" A="255"/>
|
||||
<Vtx X="-4" Y="3" Z="11" S="-510" T="-355" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="12" S="-489" T="-367" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="11" S="-510" T="-367" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-4" Y="2" Z="12" S="-489" T="-355" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="5" S="-55" T="-479" R="174" G="187" B="69" A="255"/>
|
||||
<Vtx X="-8" Y="-1" Z="5" S="-59" T="-415" R="174" G="185" B="66" A="255"/>
|
||||
<Vtx X="-7" Y="-1" Z="5" S="-55" T="-415" R="138" G="226" B="35" A="255"/>
|
||||
<Vtx X="-8" Y="4" Z="5" S="-59" T="-480" R="138" G="227" B="38" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-11" S="412" T="-103" R="174" G="97" B="6" A="255"/>
|
||||
<Vtx X="6" Y="-1" Z="3" S="418" T="93" R="181" G="78" B="190" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="3" S="431" T="94" R="223" G="119" B="228" A="255"/>
|
||||
<Vtx X="6" Y="-1" Z="-11" S="399" T="-103" R="164" G="87" B="7" A="255"/>
|
||||
<Vtx X="5" Y="0" Z="-17" S="404" T="-191" R="185" G="99" B="36" A="255"/>
|
||||
<Vtx X="5" Y="-1" Z="-17" S="391" T="-191" R="168" G="79" B="46" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-20" S="404" T="-228" R="186" G="82" B="68" A="255"/>
|
||||
<Vtx X="2" Y="0" Z="-20" S="391" T="-229" R="188" G="87" B="63" A="255"/>
|
||||
<Vtx X="1" Y="0" Z="-21" S="395" T="-252" R="185" G="93" B="49" A="255"/>
|
||||
<Vtx X="1" Y="1" Z="-21" S="408" T="-252" R="167" G="83" B="38" A="255"/>
|
||||
<Vtx X="2" Y="2" Z="-27" S="418" T="-329" R="175" G="50" B="84" A="255"/>
|
||||
<Vtx X="2" Y="3" Z="-26" S="431" T="-328" R="185" G="66" B="82" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-22" S="-2" T="134" R="101" G="77" B="11" A="255"/>
|
||||
<Vtx X="2" Y="3" Z="-26" S="0" T="68" R="185" G="66" B="82" A="255"/>
|
||||
<Vtx X="1" Y="1" Z="-21" S="-11" T="144" R="167" G="83" B="38" A="255"/>
|
||||
<Vtx X="3" Y="1" Z="-20" S="14" T="159" R="5" G="126" B="18" A="255"/>
|
||||
<Vtx X="3" Y="1" Z="-20" S="14" T="159" R="5" G="126" B="18" A="255"/>
|
||||
<Vtx X="1" Y="1" Z="-21" S="-11" T="144" R="167" G="83" B="38" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-20" S="3" T="167" R="186" G="82" B="68" A="255"/>
|
||||
<Vtx X="5" Y="0" Z="-17" S="36" T="204" R="185" G="99" B="36" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="51" T="200" R="254" G="127" B="6" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-11" S="50" T="292" R="174" G="97" B="6" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="4" S="65" T="495" R="246" G="89" B="166" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="3" S="50" T="489" R="223" G="119" B="228" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="4" S="-31" T="495" R="0" G="90" B="166" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="4" S="-31" T="492" R="0" G="104" B="183" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="3" S="-112" T="489" R="33" G="119" B="228" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="4" S="-128" T="495" R="10" G="89" B="166" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="-11" S="-112" T="292" R="82" G="97" B="6" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="-17" S="-113" T="200" R="2" G="127" B="6" A="255"/>
|
||||
<Vtx X="-5" Y="0" Z="-17" S="-99" T="204" R="71" G="99" B="36" A="255"/>
|
||||
<Vtx X="-4" Y="1" Z="-20" S="-76" T="159" R="251" G="126" B="18" A="255"/>
|
||||
<Vtx X="-3" Y="1" Z="-20" S="-66" T="167" R="70" G="82" B="68" A="255"/>
|
||||
<Vtx X="-4" Y="1" Z="-20" S="-76" T="159" R="251" G="126" B="18" A="255"/>
|
||||
<Vtx X="-5" Y="0" Z="-17" S="-99" T="204" R="71" G="99" B="36" A="255"/>
|
||||
<Vtx X="-2" Y="1" Z="-21" S="-52" T="144" R="89" G="83" B="38" A="255"/>
|
||||
<Vtx X="-2" Y="1" Z="-22" S="-60" T="134" R="155" G="77" B="11" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="-26" S="-62" T="68" R="71" G="66" B="82" A="255"/>
|
||||
<Vtx X="-4" Y="1" Z="-20" S="-80" T="158" R="199" G="109" B="224" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="-17" S="-113" T="200" R="2" G="127" B="6" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="-17" S="-117" T="199" R="170" G="85" B="216" A="255"/>
|
||||
<Vtx X="-8" Y="0" Z="-10" S="-132" T="297" R="165" G="88" B="250" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="4" S="-128" T="495" R="10" G="89" B="166" A="255"/>
|
||||
<Vtx X="-8" Y="0" Z="4" S="-132" T="494" R="144" G="45" B="216" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="-26" S="-68" T="-341" R="71" G="66" B="82" A="255"/>
|
||||
<Vtx X="3" Y="5" Z="-28" S="-89" T="-415" R="73" G="100" B="227" A="255"/>
|
||||
<Vtx X="-3" Y="5" Z="-28" S="-89" T="-331" R="183" G="100" B="227" A="255"/>
|
||||
<Vtx X="2" Y="3" Z="-26" S="-68" T="-404" R="185" G="66" B="82" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="-27" S="-55" T="-341" R="81" G="50" B="84" A="255"/>
|
||||
<Vtx X="2" Y="3" Z="-26" S="-68" T="-404" R="185" G="66" B="82" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="-26" S="-68" T="-341" R="71" G="66" B="82" A="255"/>
|
||||
<Vtx X="2" Y="2" Z="-27" S="-55" T="-404" R="175" G="50" B="84" A="255"/>
|
||||
<Vtx X="3" Y="1" Z="-20" S="255" T="70" R="57" G="109" B="224" A="255"/>
|
||||
<Vtx X="3" Y="0" Z="-21" S="246" T="76" R="70" G="191" B="172" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-22" S="261" T="94" R="101" G="77" B="11" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="242" T="29" R="89" G="177" B="211" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="252" T="29" R="86" G="85" B="216" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="-10" S="251" T="-70" R="91" G="88" B="250" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="-10" S="239" T="-70" R="95" G="172" B="248" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="4" S="248" T="-267" R="112" G="45" B="216" A="255"/>
|
||||
<Vtx X="7" Y="-1" Z="5" S="231" T="-279" R="82" G="185" B="66" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="5" S="294" T="-278" R="118" G="227" B="38" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="4" S="302" T="-268" R="65" G="75" B="176" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="302" T="-372" R="71" G="88" B="58" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="302" T="-372" R="71" G="88" B="58" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="295" T="-373" R="85" G="196" B="73" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="5" S="294" T="-278" R="118" G="227" B="38" A="255"/>
|
||||
<Vtx X="-6" Y="-1" Z="3" S="-343" T="-272" R="75" G="78" B="190" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="3" S="-330" T="-272" R="33" G="119" B="228" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="4" S="-331" T="-355" R="0" G="104" B="183" A="255"/>
|
||||
<Vtx X="6" Y="-1" Z="3" S="-343" T="-438" R="181" G="78" B="190" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="3" S="-330" T="-438" R="223" G="119" B="228" A="255"/>
|
||||
<Vtx X="2" Y="1" Z="-22" S="-2" T="134" R="101" G="77" B="11" A="255"/>
|
||||
<Vtx X="3" Y="1" Z="-20" S="14" T="159" R="5" G="126" B="18" A="255"/>
|
||||
<Vtx X="3" Y="1" Z="-20" S="18" T="158" R="57" G="109" B="224" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="51" T="200" R="254" G="127" B="6" A="255"/>
|
||||
<Vtx X="6" Y="0" Z="-17" S="55" T="199" R="86" G="85" B="216" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="-10" S="70" T="297" R="91" G="88" B="250" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="4" S="65" T="495" R="246" G="89" B="166" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="4" S="70" T="494" R="112" G="45" B="216" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="4" S="264" T="101" R="242" G="91" B="168" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="363" T="100" R="71" G="88" B="58" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="4" S="263" T="97" R="65" G="75" B="176" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="364" T="105" R="4" G="95" B="85" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="4" S="264" T="300" R="14" G="91" B="168" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="364" T="296" R="252" G="95" B="85" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="363" T="301" R="185" G="88" B="58" A="255"/>
|
||||
<Vtx X="-8" Y="4" Z="4" S="263" T="304" R="191" G="75" B="176" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="5" S="-59" T="-509" R="82" G="187" B="69" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-64" T="-416" R="85" G="196" B="73" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="11" S="-59" T="-415" R="53" G="243" B="115" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="5" S="-64" T="-510" R="118" G="227" B="38" A="255"/>
|
||||
<Vtx X="2" Y="-11" Z="11" S="415" T="370" R="19" G="169" B="91" A="255"/>
|
||||
<Vtx X="0" Y="-5" Z="11" S="327" T="391" R="0" G="10" B="127" A="255"/>
|
||||
<Vtx X="0" Y="-11" Z="11" S="415" T="391" R="0" G="146" B="64" A="255"/>
|
||||
<Vtx X="7" Y="-9" Z="11" S="385" T="304" R="84" G="207" B="82" A="255"/>
|
||||
<Vtx X="7" Y="-9" Z="11" S="385" T="304" R="84" G="207" B="82" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="11" S="263" T="305" R="102" G="218" B="66" A="255"/>
|
||||
<Vtx X="0" Y="-5" Z="11" S="327" T="391" R="0" G="10" B="127" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="11" S="263" T="400" R="0" G="205" B="116" A="255"/>
|
||||
<Vtx X="-4" Y="0" Z="-21" S="379" T="72" R="182" G="215" B="161" A="255"/>
|
||||
<Vtx X="-4" Y="0" Z="-21" S="375" T="72" R="186" G="191" B="172" A="255"/>
|
||||
<Vtx X="-2" Y="1" Z="-22" S="391" T="94" R="155" G="77" B="11" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="-17" S="351" T="18" R="175" G="166" B="218" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="-17" S="346" T="18" R="167" G="177" B="211" A="255"/>
|
||||
<Vtx X="-8" Y="-1" Z="-10" S="349" T="-81" R="161" G="172" B="248" A="255"/>
|
||||
<Vtx X="-7" Y="-1" Z="-10" S="354" T="-81" R="165" G="168" B="248" A="255"/>
|
||||
<Vtx X="-8" Y="-1" Z="5" S="386" T="-287" R="174" G="185" B="66" A="255"/>
|
||||
<Vtx X="-7" Y="-1" Z="5" S="391" T="-287" R="138" G="226" B="35" A="255"/>
|
||||
<Vtx X="-2" Y="1" Z="-21" S="448" T="16" R="89" G="83" B="38" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="-27" S="458" T="94" R="81" G="50" B="84" A="255"/>
|
||||
<Vtx X="-3" Y="3" Z="-26" S="471" T="93" R="71" G="66" B="82" A="255"/>
|
||||
<Vtx X="-2" Y="1" Z="-21" S="448" T="16" R="89" G="83" B="38" A="255"/>
|
||||
<Vtx X="-2" Y="0" Z="-21" S="435" T="17" R="71" G="93" B="49" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="-27" S="458" T="94" R="81" G="50" B="84" A="255"/>
|
||||
<Vtx X="-3" Y="1" Z="-20" S="444" T="-6" R="70" G="82" B="68" A="255"/>
|
||||
<Vtx X="-3" Y="0" Z="-20" S="431" T="-6" R="68" G="87" B="63" A="255"/>
|
||||
<Vtx X="-5" Y="-1" Z="-17" S="431" T="-43" R="88" G="79" B="46" A="255"/>
|
||||
<Vtx X="-5" Y="0" Z="-17" S="444" T="-43" R="71" G="99" B="36" A="255"/>
|
||||
<Vtx X="-6" Y="-1" Z="-11" S="439" T="-130" R="92" G="87" B="7" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="-11" S="452" T="-131" R="82" G="97" B="6" A="255"/>
|
||||
<Vtx X="-6" Y="-1" Z="3" S="458" T="-327" R="75" G="78" B="190" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="3" S="471" T="-327" R="33" G="119" B="228" A="255"/>
|
||||
<Vtx X="-4" Y="1" Z="-20" S="23" T="-373" R="199" G="109" B="224" A="255"/>
|
||||
<Vtx X="-2" Y="1" Z="-22" S="29" T="-396" R="155" G="77" B="11" A="255"/>
|
||||
<Vtx X="-4" Y="0" Z="-21" S="14" T="-379" R="186" G="191" B="172" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="-17" S="10" T="-333" R="167" G="177" B="211" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="-17" S="20" T="-333" R="170" G="85" B="216" A="255"/>
|
||||
<Vtx X="-8" Y="0" Z="-10" S="19" T="-235" R="165" G="88" B="250" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="-17" S="20" T="-333" R="170" G="85" B="216" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="-17" S="10" T="-333" R="167" G="177" B="211" A="255"/>
|
||||
<Vtx X="-8" Y="-1" Z="-10" S="7" T="-235" R="161" G="172" B="248" A="255"/>
|
||||
<Vtx X="-8" Y="0" Z="4" S="16" T="-37" R="144" G="45" B="216" A="255"/>
|
||||
<Vtx X="-8" Y="-1" Z="5" S="-1" T="-26" R="174" G="185" B="66" A="255"/>
|
||||
<Vtx X="-8" Y="4" Z="5" S="62" T="-26" R="138" G="227" B="38" A="255"/>
|
||||
<Vtx X="-8" Y="4" Z="4" S="70" T="-36" R="191" G="75" B="176" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="70" T="67" R="185" G="88" B="58" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="63" T="68" R="171" G="196" B="73" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="-348" T="-366" R="171" G="196" B="73" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="5" S="-343" T="-273" R="174" G="187" B="69" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="-343" T="-367" R="203" G="243" B="115" A="255"/>
|
||||
<Vtx X="-8" Y="4" Z="5" S="-348" T="-272" R="138" G="227" B="38" A="255"/>
|
||||
<Vtx X="-2" Y="-11" Z="11" S="415" T="430" R="237" G="169" B="91" A="255"/>
|
||||
<Vtx X="0" Y="-11" Z="11" S="415" T="409" R="0" G="146" B="64" A="255"/>
|
||||
<Vtx X="0" Y="-5" Z="11" S="327" T="409" R="0" G="10" B="127" A="255"/>
|
||||
<Vtx X="-7" Y="-9" Z="11" S="385" T="495" R="172" G="207" B="82" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="11" S="263" T="495" R="154" G="218" B="66" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="11" S="263" T="400" R="0" G="205" B="116" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="12" S="230" T="-327" R="100" G="221" B="70" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="12" S="230" T="-428" R="0" G="215" B="120" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="11" S="221" T="-332" R="102" G="218" B="66" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="11" S="221" T="-428" R="0" G="205" B="116" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="11" S="221" T="-523" R="154" G="218" B="66" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="12" S="230" T="-529" R="156" G="221" B="70" A="255"/>
|
||||
<Vtx X="-2" Y="2" Z="-28" S="-89" T="-403" R="227" G="191" B="151" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="-28" S="-96" T="-415" R="163" G="233" B="172" A="255"/>
|
||||
<Vtx X="-3" Y="5" Z="-28" S="-132" T="-415" R="183" G="100" B="227" A="255"/>
|
||||
<Vtx X="2" Y="2" Z="-28" S="-89" T="-343" R="29" G="191" B="151" A="255"/>
|
||||
<Vtx X="-3" Y="5" Z="-28" S="-132" T="-415" R="183" G="100" B="227" A="255"/>
|
||||
<Vtx X="3" Y="5" Z="-28" S="-132" T="-331" R="73" G="100" B="227" A="255"/>
|
||||
<Vtx X="2" Y="2" Z="-28" S="-89" T="-343" R="29" G="191" B="151" A="255"/>
|
||||
<Vtx X="3" Y="2" Z="-28" S="-96" T="-331" R="93" G="233" B="172" A="255"/>
|
||||
<Vtx X="-1" Y="3" Z="11" S="-510" T="-398" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="-1" Y="2" Z="12" S="-489" T="-398" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="0" Y="2" Z="12" S="-489" T="-421" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="0" Y="3" Z="11" S="-510" T="-421" R="0" G="21" B="125" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="4" S="364" T="300" R="242" G="91" B="168" A="255"/>
|
||||
<Vtx X="7" Y="4" Z="4" S="364" T="304" R="65" G="75" B="176" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="4" S="418" T="304" R="112" G="45" B="216" A="255"/>
|
||||
<Vtx X="7" Y="0" Z="4" S="418" T="300" R="246" G="89" B="166" A="255"/>
|
||||
<Vtx X="0" Y="0" Z="4" S="418" T="201" R="0" G="90" B="166" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="4" S="364" T="101" R="14" G="91" B="168" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="4" S="418" T="101" R="10" G="89" B="166" A="255"/>
|
||||
<Vtx X="-8" Y="0" Z="4" S="418" T="97" R="144" G="45" B="216" A="255"/>
|
||||
<Vtx X="-8" Y="0" Z="4" S="418" T="97" R="144" G="45" B="216" A="255"/>
|
||||
<Vtx X="-8" Y="4" Z="4" S="364" T="97" R="191" G="75" B="176" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="4" S="364" T="101" R="14" G="91" B="168" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="11" S="-189" T="486" R="154" G="218" B="66" A="255"/>
|
||||
<Vtx X="-7" Y="0" Z="12" S="-180" T="495" R="156" G="221" B="70" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="11" S="-132" T="486" R="203" G="243" B="115" A="255"/>
|
||||
<Vtx X="-7" Y="4" Z="5" S="-137" T="392" R="174" G="187" B="69" A="255"/>
|
||||
<Vtx X="-7" Y="-1" Z="5" S="-199" T="395" R="138" G="226" B="35" A="255"/>
|
||||
<Vtx X="-7" Y="-9" Z="11" S="-311" T="488" R="172" G="207" B="82" A="255"/>
|
||||
<Vtx X="-7" Y="-10" Z="4" S="-327" T="385" R="150" G="186" B="6" A="255"/>
|
||||
<Vtx X="-7" Y="-1" Z="-10" S="-199" T="185" R="165" G="168" B="248" A="255"/>
|
||||
<Vtx X="-7" Y="-10" Z="-10" S="-330" T="188" R="152" G="186" B="237" A="255"/>
|
||||
<Vtx X="-6" Y="-8" Z="-17" S="-297" T="89" R="164" G="201" B="188" A="255"/>
|
||||
<Vtx X="-6" Y="0" Z="-17" S="-200" T="87" R="175" G="166" B="218" A="255"/>
|
||||
<Vtx X="-4" Y="-2" Z="-21" S="-216" T="29" R="175" G="253" B="159" A="255"/>
|
||||
<Vtx X="-4" Y="0" Z="-21" S="-197" T="41" R="182" G="215" B="161" A="255"/>
|
||||
<Vtx X="-2" Y="-1" Z="-22" S="-205" T="18" R="156" G="222" B="185" A="255"/>
|
||||
<Vtx X="-4" Y="-2" Z="-21" S="-216" T="29" R="175" G="253" B="159" A="255"/>
|
||||
<Vtx X="-4" Y="0" Z="-21" S="-197" T="41" R="182" G="215" B="161" A="255"/>
|
||||
<Vtx X="-2" Y="1" Z="-22" S="-182" T="22" R="155" G="77" B="11" A="255"/>
|
||||
<Vtx X="-3" Y="2" Z="-28" S="-168" T="-69" R="163" G="233" B="172" A="255"/>
|
||||
<Vtx X="-3" Y="5" Z="-28" S="-132" T="-62" R="183" G="100" B="227" A="255"/>
|
||||
<Vtx X="-2" Y="-2" Z="-22" S="-313" T="-419" R="232" G="199" B="145" A="255"/>
|
||||
<Vtx X="2" Y="-9" Z="-17" S="-213" T="-360" R="21" G="160" B="176" A="255"/>
|
||||
<Vtx X="-3" Y="-9" Z="-17" S="-213" T="-423" R="235" G="160" B="176" A="255"/>
|
||||
<Vtx X="2" Y="-2" Z="-22" S="-313" T="-360" R="24" G="199" B="145" A="255"/>
|
||||
<Vtx X="-2" Y="-1" Z="-22" S="-326" T="-412" R="227" G="170" B="168" A="255"/>
|
||||
<Vtx X="-2" Y="-1" Z="-22" S="-330" T="-419" R="156" G="222" B="185" A="255"/>
|
||||
<Vtx X="-4" Y="-2" Z="-21" S="-319" T="-435" R="175" G="253" B="159" A="255"/>
|
||||
<Vtx X="-6" Y="-8" Z="-17" S="-237" T="-475" R="164" G="201" B="188" A="255"/>
|
||||
<Vtx X="1" Y="-1" Z="-22" S="-326" T="-366" R="29" G="170" B="168" A="255"/>
|
||||
<Vtx X="2" Y="-1" Z="-22" S="-330" T="-359" R="100" G="222" B="185" A="255"/>
|
||||
<Vtx X="2" Y="-2" Z="-22" S="-313" T="-360" R="24" G="199" B="145" A="255"/>
|
||||
<Vtx X="2" Y="-1" Z="-22" S="-330" T="-359" R="100" G="222" B="185" A="255"/>
|
||||
<Vtx X="3" Y="-2" Z="-21" S="-319" T="-343" R="81" G="253" B="159" A="255"/>
|
||||
<Vtx X="6" Y="-8" Z="-17" S="-237" T="-307" R="92" G="201" B="188" A="255"/>
|
||||
<Vtx X="2" Y="-9" Z="-17" S="-213" T="-360" R="21" G="160" B="176" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,128 @@
|
||||
<Vertex Version="0">
|
||||
<Vtx X="0" Y="19" Z="-1" S="-529" T="-189" R="0" G="130" B="15" A="255"/>
|
||||
<Vtx X="8" Y="17" Z="-3" S="-493" T="-308" R="93" G="215" B="77" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-1" S="-529" T="-308" R="105" G="193" B="33" A="255"/>
|
||||
<Vtx X="0" Y="17" Z="-3" S="-493" T="-190" R="0" G="195" B="112" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-1" S="-529" T="-71" R="151" G="193" B="33" A="255"/>
|
||||
<Vtx X="-9" Y="17" Z="-3" S="-493" T="-71" R="163" G="215" B="77" A="255"/>
|
||||
<Vtx X="0" Y="13" Z="-4" S="-444" T="-190" R="0" G="233" B="125" A="255"/>
|
||||
<Vtx X="-9" Y="13" Z="-4" S="-444" T="-72" R="159" G="241" B="81" A="255"/>
|
||||
<Vtx X="0" Y="9" Z="-4" S="-390" T="-190" R="0" G="28" B="124" A="255"/>
|
||||
<Vtx X="-9" Y="9" Z="-4" S="-390" T="-72" R="160" G="18" B="82" A="255"/>
|
||||
<Vtx X="0" Y="6" Z="-3" S="-350" T="-190" R="0" G="86" B="94" A="255"/>
|
||||
<Vtx X="-9" Y="6" Z="-3" S="-350" T="-72" R="156" G="53" B="58" A="255"/>
|
||||
<Vtx X="8" Y="6" Z="-3" S="-350" T="-308" R="100" G="53" B="58" A="255"/>
|
||||
<Vtx X="8" Y="9" Z="-4" S="-390" T="-309" R="96" G="18" B="82" A="255"/>
|
||||
<Vtx X="8" Y="13" Z="-4" S="-444" T="-309" R="97" G="241" B="81" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-2" S="-172" T="-520" R="158" G="20" B="177" A="255"/>
|
||||
<Vtx X="-9" Y="17" Z="-3" S="-181" T="-481" R="163" G="215" B="77" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-1" S="-156" T="-520" R="151" G="193" B="33" A="255"/>
|
||||
<Vtx X="-9" Y="17" Z="-3" S="-190" T="-485" R="168" G="39" B="174" A="255"/>
|
||||
<Vtx X="-9" Y="13" Z="-4" S="-202" T="-430" R="159" G="241" B="81" A="255"/>
|
||||
<Vtx X="-9" Y="13" Z="-5" S="-213" T="-430" R="172" G="17" B="162" A="255"/>
|
||||
<Vtx X="-9" Y="9" Z="-5" S="-211" T="-375" R="171" G="236" B="163" A="255"/>
|
||||
<Vtx X="-9" Y="9" Z="-4" S="-201" T="-375" R="160" G="18" B="82" A="255"/>
|
||||
<Vtx X="-9" Y="6" Z="-3" S="-191" T="-328" R="173" G="195" B="181" A="255"/>
|
||||
<Vtx X="-9" Y="6" Z="-3" S="-183" T="-334" R="156" G="53" B="58" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="-2" S="-171" T="-313" R="169" G="174" B="212" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="-1" S="-156" T="-319" R="158" G="79" B="20" A="255"/>
|
||||
<Vtx X="-9" Y="4" Z="-1" S="-156" T="-307" R="171" G="163" B="239" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="-2" S="-330" T="-189" R="0" G="31" B="133" A="255"/>
|
||||
<Vtx X="-9" Y="17" Z="-3" S="-297" T="-306" R="168" G="39" B="174" A="255"/>
|
||||
<Vtx X="-9" Y="19" Z="-2" S="-330" T="-307" R="158" G="20" B="177" A="255"/>
|
||||
<Vtx X="0" Y="19" Z="-2" S="-330" T="-189" R="0" G="31" B="133" A="255"/>
|
||||
<Vtx X="0" Y="17" Z="-3" S="-297" T="-188" R="0" G="54" B="141" A="255"/>
|
||||
<Vtx X="-9" Y="17" Z="-3" S="-297" T="-306" R="168" G="39" B="174" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-2" S="-330" T="-70" R="98" G="20" B="177" A="255"/>
|
||||
<Vtx X="8" Y="17" Z="-3" S="-297" T="-70" R="88" G="39" B="174" A="255"/>
|
||||
<Vtx X="0" Y="13" Z="-5" S="-243" T="-187" R="0" G="22" B="131" A="255"/>
|
||||
<Vtx X="8" Y="13" Z="-5" S="-243" T="-69" R="84" G="17" B="162" A="255"/>
|
||||
<Vtx X="0" Y="9" Z="-5" S="-189" T="-188" R="0" G="229" B="132" A="255"/>
|
||||
<Vtx X="8" Y="9" Z="-5" S="-189" T="-69" R="85" G="236" B="163" A="255"/>
|
||||
<Vtx X="8" Y="6" Z="-3" S="-144" T="-70" R="83" G="195" B="181" A="255"/>
|
||||
<Vtx X="0" Y="6" Z="-3" S="-144" T="-188" R="0" G="176" B="157" A="255"/>
|
||||
<Vtx X="-9" Y="6" Z="-3" S="-144" T="-306" R="173" G="195" B="181" A="255"/>
|
||||
<Vtx X="-9" Y="9" Z="-5" S="-189" T="-306" R="171" G="236" B="163" A="255"/>
|
||||
<Vtx X="-9" Y="13" Z="-5" S="-243" T="-306" R="172" G="17" B="162" A="255"/>
|
||||
<Vtx X="0" Y="6" Z="-3" S="455" T="215" R="0" G="176" B="157" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="-2" S="433" T="333" R="169" G="174" B="212" A="255"/>
|
||||
<Vtx X="-9" Y="6" Z="-3" S="455" T="333" R="173" G="195" B="181" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="-2" S="433" T="215" R="0" G="144" B="195" A="255"/>
|
||||
<Vtx X="8" Y="6" Z="-3" S="455" T="97" R="83" G="195" B="181" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="-2" S="433" T="97" R="87" G="174" B="212" A="255"/>
|
||||
<Vtx X="8" Y="4" Z="-1" S="418" T="97" R="85" G="163" B="239" A="255"/>
|
||||
<Vtx X="0" Y="4" Z="-1" S="418" T="215" R="0" G="155" B="179" A="255"/>
|
||||
<Vtx X="-9" Y="4" Z="-1" S="418" T="333" R="171" G="163" B="239" A="255"/>
|
||||
<Vtx X="8" Y="4" Z="-1" S="358" T="-499" R="85" G="163" B="239" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="-2" S="344" T="-494" R="87" G="174" B="212" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="-1" S="358" T="-488" R="98" G="79" B="20" A="255"/>
|
||||
<Vtx X="8" Y="6" Z="-3" S="332" T="-472" R="100" G="53" B="58" A="255"/>
|
||||
<Vtx X="8" Y="6" Z="-3" S="323" T="-478" R="83" G="195" B="181" A="255"/>
|
||||
<Vtx X="8" Y="9" Z="-4" S="314" T="-431" R="96" G="18" B="82" A="255"/>
|
||||
<Vtx X="8" Y="9" Z="-5" S="304" T="-432" R="85" G="236" B="163" A="255"/>
|
||||
<Vtx X="8" Y="13" Z="-4" S="312" T="-376" R="97" G="241" B="81" A="255"/>
|
||||
<Vtx X="8" Y="9" Z="-4" S="314" T="-431" R="96" G="18" B="82" A="255"/>
|
||||
<Vtx X="8" Y="9" Z="-5" S="304" T="-432" R="85" G="236" B="163" A="255"/>
|
||||
<Vtx X="8" Y="13" Z="-5" S="302" T="-377" R="84" G="17" B="162" A="255"/>
|
||||
<Vtx X="8" Y="17" Z="-3" S="324" T="-321" R="88" G="39" B="174" A="255"/>
|
||||
<Vtx X="8" Y="17" Z="-3" S="334" T="-325" R="93" G="215" B="77" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-2" S="342" T="-287" R="98" G="20" B="177" A="255"/>
|
||||
<Vtx X="8" Y="19" Z="-1" S="358" T="-287" R="105" G="193" B="33" A="255"/>
|
||||
<Vtx X="0" Y="6" Z="-3" S="455" T="215" R="0" G="86" B="94" A="255"/>
|
||||
<Vtx X="8" Y="5" Z="-1" S="483" T="97" R="98" G="79" B="20" A="255"/>
|
||||
<Vtx X="8" Y="6" Z="-3" S="455" T="97" R="100" G="53" B="58" A="255"/>
|
||||
<Vtx X="0" Y="5" Z="-1" S="483" T="215" R="0" G="125" B="236" A="255"/>
|
||||
<Vtx X="-9" Y="6" Z="-3" S="455" T="333" R="156" G="53" B="58" A="255"/>
|
||||
<Vtx X="-9" Y="5" Z="-1" S="483" T="333" R="158" G="79" B="20" A="255"/>
|
||||
<Vtx X="0" Y="25" Z="-2" S="-407" T="-368" R="0" G="191" B="109" A="255"/>
|
||||
<Vtx X="4" Y="24" Z="-3" S="-383" T="-427" R="96" G="254" B="83" A="255"/>
|
||||
<Vtx X="4" Y="25" Z="-2" S="-407" T="-427" R="99" G="216" B="69" A="255"/>
|
||||
<Vtx X="0" Y="24" Z="-3" S="-383" T="-368" R="0" G="252" B="127" A="255"/>
|
||||
<Vtx X="-5" Y="25" Z="-2" S="-407" T="-309" R="157" G="216" B="69" A="255"/>
|
||||
<Vtx X="-5" Y="24" Z="-3" S="-383" T="-309" R="160" G="254" B="83" A="255"/>
|
||||
<Vtx X="0" Y="21" Z="-2" S="-348" T="-368" R="0" G="97" B="82" A="255"/>
|
||||
<Vtx X="-5" Y="21" Z="-2" S="-348" T="-309" R="165" G="87" B="236" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-2" S="-348" T="-427" R="91" G="85" B="231" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="407" T="-388" R="0" G="51" B="140" A="255"/>
|
||||
<Vtx X="-5" Y="25" Z="-3" S="422" T="-447" R="174" G="49" B="172" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="407" T="-447" R="153" G="30" B="188" A="255"/>
|
||||
<Vtx X="0" Y="25" Z="-3" S="422" T="-388" R="0" G="65" B="147" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="407" T="-329" R="103" G="30" B="188" A="255"/>
|
||||
<Vtx X="4" Y="25" Z="-3" S="422" T="-329" R="82" G="49" B="172" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="245" T="-456" R="153" G="30" B="188" A="255"/>
|
||||
<Vtx X="-5" Y="25" Z="-2" S="240" T="-439" R="157" G="216" B="69" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="253" T="-457" R="154" G="185" B="27" A="255"/>
|
||||
<Vtx X="-5" Y="25" Z="-3" S="232" T="-437" R="174" G="49" B="172" A="255"/>
|
||||
<Vtx X="-5" Y="24" Z="-3" S="239" T="-413" R="160" G="254" B="83" A="255"/>
|
||||
<Vtx X="-5" Y="24" Z="-3" S="231" T="-412" R="171" G="3" B="161" A="255"/>
|
||||
<Vtx X="-5" Y="21" Z="-3" S="243" T="-380" R="172" G="209" B="172" A="255"/>
|
||||
<Vtx X="-5" Y="21" Z="-2" S="251" T="-380" R="165" G="87" B="236" A="255"/>
|
||||
<Vtx X="-4" Y="21" Z="-2" S="253" T="-373" R="243" G="222" B="134" A="255"/>
|
||||
<Vtx X="0" Y="27" Z="-1" S="391" T="-388" R="0" G="129" B="253" A="255"/>
|
||||
<Vtx X="4" Y="25" Z="-2" S="407" T="-447" R="99" G="216" B="69" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="391" T="-447" R="102" G="185" B="27" A="255"/>
|
||||
<Vtx X="0" Y="25" Z="-2" S="407" T="-388" R="0" G="191" B="109" A="255"/>
|
||||
<Vtx X="-5" Y="27" Z="-1" S="391" T="-329" R="154" G="185" B="27" A="255"/>
|
||||
<Vtx X="-5" Y="25" Z="-2" S="407" T="-329" R="157" G="216" B="69" A="255"/>
|
||||
<Vtx X="0" Y="25" Z="-3" S="-473" T="-368" R="0" G="65" B="147" A="255"/>
|
||||
<Vtx X="-5" Y="24" Z="-3" S="-449" T="-427" R="171" G="3" B="161" A="255"/>
|
||||
<Vtx X="-5" Y="25" Z="-3" S="-473" T="-427" R="174" G="49" B="172" A="255"/>
|
||||
<Vtx X="0" Y="24" Z="-3" S="-449" T="-368" R="0" G="4" B="129" A="255"/>
|
||||
<Vtx X="4" Y="25" Z="-3" S="-473" T="-309" R="82" G="49" B="172" A="255"/>
|
||||
<Vtx X="4" Y="24" Z="-3" S="-449" T="-309" R="85" G="3" B="161" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-3" S="-416" T="-309" R="84" G="209" B="173" A="255"/>
|
||||
<Vtx X="-5" Y="21" Z="-3" S="-416" T="-427" R="172" G="209" B="172" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-2" S="-407" T="-314" R="11" G="222" B="134" A="255"/>
|
||||
<Vtx X="-4" Y="21" Z="-2" S="-407" T="-424" R="243" G="222" B="134" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-2" S="-6" T="-408" R="91" G="85" B="231" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-2" S="-5" T="-417" R="11" G="222" B="134" A="255"/>
|
||||
<Vtx X="4" Y="21" Z="-3" S="-15" T="-408" R="84" G="209" B="173" A="255"/>
|
||||
<Vtx X="4" Y="24" Z="-3" S="-19" T="-375" R="96" G="254" B="83" A="255"/>
|
||||
<Vtx X="4" Y="24" Z="-3" S="-27" T="-377" R="85" G="3" B="161" A="255"/>
|
||||
<Vtx X="4" Y="25" Z="-3" S="-26" T="-351" R="82" G="49" B="172" A="255"/>
|
||||
<Vtx X="4" Y="25" Z="-3" S="-26" T="-351" R="82" G="49" B="172" A="255"/>
|
||||
<Vtx X="4" Y="25" Z="-2" S="-18" T="-349" R="99" G="216" B="69" A="255"/>
|
||||
<Vtx X="4" Y="24" Z="-3" S="-19" T="-375" R="96" G="254" B="83" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-13" T="-333" R="103" G="30" B="188" A="255"/>
|
||||
<Vtx X="4" Y="27" Z="-1" S="-5" T="-331" R="102" G="185" B="27" A="255"/>
|
||||
</Vertex>
|
||||
@@ -0,0 +1,20 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<SetCombineLERP A0="G_CCMUX_1" B0="G_CCMUX_TEXEL0" C0="G_CCMUX_PRIMITIVE" D0="G_CCMUX_TEXEL0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_SHADE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||
<SetGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_2CYCLE="1"/>
|
||||
<PipelineMode G_PM_NPRIMITIVE="1"/>
|
||||
<SetRenderMode Mode1="G_RM_FOG_SHADE_A" Mode2="G_RM_AA_ZB_OPA_SURF2" />
|
||||
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
|
||||
<TileSync/>
|
||||
<SetTextureImage Path="textures/nintendo_rogo_static/SoHShiny" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<LoadSync/>
|
||||
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||
<PipeSync/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||
<SetPrimColor M="0" L="0" R="158" G="66" B="3" A="255"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<SetCombineLERP A0="G_CCMUX_1" B0="G_CCMUX_TEXEL0" C0="G_CCMUX_PRIMITIVE" D0="G_CCMUX_TEXEL0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_SHADE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||
<SetGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_2CYCLE="1"/>
|
||||
<PipelineMode G_PM_NPRIMITIVE="1"/>
|
||||
<SetRenderMode Mode1="G_RM_FOG_SHADE_A" Mode2="G_RM_AA_ZB_OPA_SURF2" />
|
||||
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
|
||||
<TileSync/>
|
||||
<SetTextureImage Path="textures/nintendo_rogo_static/SoHShiny" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<LoadSync/>
|
||||
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||
<PipeSync/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||
<SetPrimColor M="0" L="0" R="124" G="127" B="126" A="255"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<SetCombineLERP A0="G_CCMUX_1" B0="G_CCMUX_TEXEL0" C0="G_CCMUX_PRIMITIVE" D0="G_CCMUX_TEXEL0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_SHADE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||
<SetGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_2CYCLE="1"/>
|
||||
<PipelineMode G_PM_NPRIMITIVE="1"/>
|
||||
<SetRenderMode Mode1="G_RM_FOG_SHADE_A" Mode2="G_RM_AA_ZB_OPA_SURF2" />
|
||||
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
|
||||
<TileSync/>
|
||||
<SetTextureImage Path="textures/nintendo_rogo_static/SoHShiny" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<LoadSync/>
|
||||
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||
<PipeSync/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||
<SetPrimColor M="0" L="0" R="255" G="7" B="0" A="255"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<SetCombineLERP A0="G_CCMUX_TEXEL0" B0="G_CCMUX_0" C0="G_CCMUX_SHADE" D0="G_CCMUX_0" Aa0="G_ACMUX_0" Ab0="G_ACMUX_0" Ac0="G_ACMUX_0" Ad0="G_ACMUX_1" A1="G_CCMUX_COMBINED" B1="G_CCMUX_0" C1="G_CCMUX_PRIMITIVE" D1="G_CCMUX_0" Aa1="G_ACMUX_0" Ab1="G_ACMUX_0" Ac1="G_ACMUX_0" Ad1="G_ACMUX_COMBINED"/>
|
||||
<SetGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_2CYCLE="1"/>
|
||||
<PipelineMode G_PM_NPRIMITIVE="1"/>
|
||||
<SetRenderMode Mode1="G_RM_FOG_SHADE_A" Mode2="G_RM_AA_ZB_OPA_SURF2" />
|
||||
<Texture S="1984" T="1984" Level="0" Tile="0" On="1"/>
|
||||
<TileSync/>
|
||||
<SetTextureImage Path="textures/nintendo_rogo_static/SoHShiny" Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Width="1"/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b_LOAD_BLOCK" Line="0" TMem="0" Tile="7" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<LoadSync/>
|
||||
<LoadBlock Tile="7" Uls="0" Ult="0" Lrs="511" Dxt="512"/>
|
||||
<PipeSync/>
|
||||
<SetTile Format="G_IM_FMT_I" Size="G_IM_SIZ_8b" Line="4" TMem="0" Tile="0" Palette="0" Cms0="G_TX_WRAP" Cms1="G_TX_NOMIRROR" Cmt0="G_TX_WRAP" Cmt1="G_TX_NOMIRROR" MaskS="5" ShiftS="0" MaskT="5" ShiftT="0"/>
|
||||
<SetTileSize T="0" Uls="0" Ult="0" Lrs="124" Lrt="124"/>
|
||||
<SetPrimColor M="0" L="0" R="88" G="46" B="16" A="255"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<ClearGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_1CYCLE="1"/>
|
||||
<PipelineMode G_PM_1PRIMITIVE="1"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<ClearGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_1CYCLE="1"/>
|
||||
<PipelineMode G_PM_1PRIMITIVE="1"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<ClearGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_1CYCLE="1"/>
|
||||
<PipelineMode G_PM_1PRIMITIVE="1"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<DisplayList Version="0">
|
||||
<PipeSync/>
|
||||
<ClearGeometryMode G_FOG="1" G_TEXTURE_GEN="1" />
|
||||
<SetCycleType G_CYC_1CYCLE="1"/>
|
||||
<PipelineMode G_PM_1PRIMITIVE="1"/>
|
||||
<EndDisplayList/>
|
||||
</DisplayList>
|
||||
|
||||
|
After Width: | Height: | Size: 194 B |
@@ -8,16 +8,22 @@ import struct
|
||||
import subprocess
|
||||
import argparse
|
||||
|
||||
def BuildOTR(xmlPath, rom, zapd_exe=None):
|
||||
def BuildOTR(xmlPath, rom, zapd_exe=None, genHeaders=None):
|
||||
shutil.copytree("assets", "Extract/assets")
|
||||
|
||||
if not zapd_exe:
|
||||
zapd_exe = "x64\\Release\\ZAPD.exe" if sys.platform == "win32" else "../ZAPDTR/ZAPD.out"
|
||||
|
||||
exec_cmd = [zapd_exe, "ed", "-i", xmlPath, "-b", rom, "-fl", "CFG/filelists",
|
||||
"-o", "placeholder", "-osf", "placeholder", "-gsf", "1",
|
||||
"-rconf", "CFG/Config.xml", "-se", "OTR", "--otrfile",
|
||||
"oot-mq.otr" if Z64Rom.isMqRom(rom) else "oot.otr"]
|
||||
"-o", "placeholder", "-osf", "placeholder", "-rconf", "CFG/Config.xml"]
|
||||
|
||||
# generate headers, but not otrs by excluding the otr exporter
|
||||
if genHeaders:
|
||||
exec_cmd.extend(["-gsf", "1"])
|
||||
else:
|
||||
# generate otrs, but not headers
|
||||
exec_cmd.extend(["-gsf", "0", "-se", "OTR", "--otrfile",
|
||||
"oot-mq.otr" if Z64Rom.isMqRom(rom) else "oot.otr"])
|
||||
|
||||
print(exec_cmd)
|
||||
exitValue = subprocess.call(exec_cmd)
|
||||
@@ -32,17 +38,17 @@ def main():
|
||||
parser.add_argument("-z", "--zapd", help="Path to ZAPD executable", dest="zapd_exe", type=str)
|
||||
parser.add_argument("rom", help="Path to the rom", type=str, nargs="?")
|
||||
parser.add_argument("--non-interactive", help="Runs the script non-interactively for use in build scripts.", dest="non_interactive", action="store_true")
|
||||
parser.add_argument("-v", "--verbose", help="Display rom's header checksums and their corresponding xml folder", dest="verbose", action="store_true")
|
||||
parser.add_argument("--gen-headers", help="Generate source headers to be checked in", dest="gen_headers", action="store_true")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
rom_paths = [ args.rom ] if args.rom else rom_chooser.chooseROM(args.non_interactive)
|
||||
for rom_path in rom_paths:
|
||||
rom = Z64Rom(rom_path)
|
||||
|
||||
roms = [ Z64Rom(args.rom) ] if args.rom else rom_chooser.chooseROM(args.verbose, args.non_interactive)
|
||||
for rom in roms:
|
||||
if (os.path.exists("Extract")):
|
||||
shutil.rmtree("Extract")
|
||||
|
||||
BuildOTR("../soh/assets/xml/" + rom.version.xml_ver + "/", rom_path, zapd_exe=args.zapd_exe)
|
||||
BuildOTR("../soh/assets/xml/" + rom.version.xml_ver + "/", rom.file_path, zapd_exe=args.zapd_exe, genHeaders=args.gen_headers)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -2,12 +2,13 @@ import os, sys, glob
|
||||
|
||||
from rom_info import Z64Rom
|
||||
|
||||
def chooseROM(non_interactive=False):
|
||||
def chooseROM(verbose=False, non_interactive=False):
|
||||
roms = []
|
||||
|
||||
for file in glob.glob("*.z64"):
|
||||
if Z64Rom.isValidRom(file):
|
||||
roms.append(file)
|
||||
rom = Z64Rom(file)
|
||||
if rom.is_valid:
|
||||
roms.append(rom)
|
||||
|
||||
if not (roms):
|
||||
print("Error: No roms located, place one in the OTRExporter directory", file=os.sys.stderr)
|
||||
@@ -17,27 +18,29 @@ def chooseROM(non_interactive=False):
|
||||
return roms
|
||||
|
||||
if non_interactive:
|
||||
romsToExtract = []
|
||||
foundMq = False
|
||||
foundOot = False
|
||||
mq_rom = None
|
||||
non_mq_rom = None
|
||||
for rom in roms:
|
||||
isMq = Z64Rom.isMqRom(rom)
|
||||
if isMq and not foundMq:
|
||||
romsToExtract.append(rom)
|
||||
foundMq = True
|
||||
elif not isMq and not foundOot:
|
||||
romsToExtract.append(rom)
|
||||
foundOot = True
|
||||
return romsToExtract
|
||||
if rom.isMq and mq_rom is None:
|
||||
mq_rom = rom
|
||||
elif not rom.isMq and non_mq_rom is None:
|
||||
non_mq_rom = rom
|
||||
return [rom for rom in [non_mq_rom, mq_rom] if rom is not None]
|
||||
|
||||
print(str(len(roms))+ " roms found, please select one by pressing 1-"+str(len(roms)))
|
||||
print(f"{len(roms)} roms found, please select one by pressing 1-{len(roms)}")
|
||||
print()
|
||||
|
||||
for i in range(len(roms)):
|
||||
print(str(i+1)+ ". " + roms[i])
|
||||
print(f"[{i+1:>2d}] {roms[i].file_path}")
|
||||
if verbose:
|
||||
print(f" Checksum: {roms[i].checksum.value}, Version XML: {roms[i].version.xml_ver}")
|
||||
print()
|
||||
|
||||
while(1):
|
||||
try:
|
||||
selection = int(input())
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(1)
|
||||
except:
|
||||
print("Bad input. Try again with the number keys.")
|
||||
continue
|
||||
|
||||
@@ -59,7 +59,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
.
|
||||
)
|
||||
|
||||
INSTALL(TARGETS OTRGui DESTINATION . COMPONENT ship)
|
||||
INSTALL(TARGETS OTRGui DESTINATION . COMPONENT ship OPTIONAL)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/assets
|
||||
DESTINATION .
|
||||
COMPONENT ship
|
||||
|
||||
@@ -56,19 +56,19 @@ RomVersion GetVersion(FILE* rom) {
|
||||
|
||||
version.crc = __bswap_32(version.crc);
|
||||
switch (version.crc) {
|
||||
case OOT_NTSC_10:
|
||||
case OOT_NTSC_US_10:
|
||||
version.version = "N64 NTSC 1.0";
|
||||
version.listPath = "ntsc_oot.txt";
|
||||
version.offset = OOT_OFF_NTSC_10;
|
||||
version.isMQ = false;
|
||||
break;
|
||||
case OOT_NTSC_11:
|
||||
case OOT_NTSC_US_11:
|
||||
version.version = "N64 NTSC 1.1";
|
||||
version.listPath = "ntsc_oot.txt";
|
||||
version.offset = OOT_OFF_NTSC_11;
|
||||
version.isMQ = false;
|
||||
break;
|
||||
case OOT_NTSC_12:
|
||||
case OOT_NTSC_US_12:
|
||||
version.version = "N64 NTSC 1.2";
|
||||
version.listPath = "ntsc_oot.txt";
|
||||
version.offset = OOT_OFF_NTSC_12;
|
||||
|
||||
@@ -1,97 +1,72 @@
|
||||
# Welcome to the Ship of Harkinian!
|
||||

|
||||

|
||||
|
||||
A PC port of OoT allowing you to enjoy the game with modern controls, widescreen, high-resolution, gyroscopy and other great features! Setup is simple, let's get started!
|
||||
## Website
|
||||
|
||||
The Ship does not include assets and as such requires a prior copy of the game to play.
|
||||
Official Website: https://www.shipofharkinian.com/
|
||||
|
||||
## Quick Start (Windows)
|
||||
## Discord
|
||||
|
||||
1) Download The Ship of Harkinian from [Discord](https://discord.com/invite/BtBmd55HVH).
|
||||
2) Requires a supported copy of the game (See supported games below).
|
||||
3) Use the OTRGui to generate an `oot.otr` archive file.
|
||||
4) Launch `soh.exe`
|
||||
Official Discord: https://discord.com/invite/shipofharkinian
|
||||
|
||||
### Supported Games
|
||||
#### Ocarina of Time Debug PAL GC (not Master Quest)
|
||||
> Currently the recommended option
|
||||
If you're having any trouble after reading through this `README`, feel free ask for help in the Support text channels. Please keep in mind that we do not condone piracy.
|
||||
|
||||
# Quick Start
|
||||
|
||||
The Ship does not include any copyrighted assets. You are required to provide a supported copy of the game.
|
||||
|
||||
### 1. Check your `sha1`
|
||||
You can verify you have a supported copy of the game by checking the `sha1` hash. There are many ways to do this, one of the simplest is using the [`hasher-js`](https://github.com/snarfblam/hasher-js) webapp hosted at https://www.romhacking.net/hash/.
|
||||
|
||||
| Supported Version | `sha1` |
|
||||
| - | - |
|
||||
| PAL GC | `0227d7c0074f2d0ac935631990da8ec5914597b4` |
|
||||
| PAL GC (Debug) | `cee6bc3c2a634b41728f2af8da54d9bf8cc14099` |
|
||||
| PAL MQ | `079b855b943d6ad8bd1eb026c0ed169ecbdac7da` |
|
||||
| PAL MQ | `50bebedad9e0f10746a52b07239e47fa6c284d03` |
|
||||
|
||||
### 2. Download The Ship of Harkinian from [Discord](https://discord.com/invite/shipofharkinian)
|
||||
The latest release is available in the most recent post in the `#downloads` channel.
|
||||
|
||||
### 3. Launch the Game!
|
||||
#### Windows
|
||||
* Extract the zip
|
||||
* Launch `soh.exe`
|
||||
|
||||
#### Linux
|
||||
* Place your supported copy of the game in the same folder as the appimage.
|
||||
* Execute `soh.appimage`. You may have to `chmod +x` the appimage via terminal.
|
||||
|
||||
#### macOS
|
||||
* Run `soh.app`. When prompted, select your supported copy of the game.
|
||||
* You should see a notification saying `Processing OTR`, then, once the process is complete, you should get a notification saying `OTR Successfully Generated`, then the game should start.
|
||||
|
||||
#### Nintendo Switch
|
||||
* Run one of the PC releases to generate an `oot.otr` and/or `oot-mq.otr` file. After launching the game on PC, you will be able to find these files in the same directory as `soh.exe` or `soh.appimage`. On macOS, these files can be found in `/Users/<username>/Library/Application Support/com.shipofharkinian.soh/`
|
||||
* Copy the files to your sd card
|
||||
```
|
||||
Build team: `zelda@srd022j`
|
||||
Build date: `03-02-21 00:49:18` (year-month-day)
|
||||
sha1: cee6bc3c2a634b41728f2af8da54d9bf8cc14099
|
||||
```
|
||||
#### Ocarina of Time PAL GameCube
|
||||
> May lead to crashes and instability
|
||||
```
|
||||
sha1: 0227d7c0074f2d0ac935631990da8ec5914597b4
|
||||
```
|
||||
#### Ocarina of Time Debug PAL GC MQ (Dungeons will be Master Quest)
|
||||
```
|
||||
Build team: `zelda@srd022j`
|
||||
Build date: `03-02-21 00:16:31` (year-month-day)
|
||||
sha1: 079b855b943d6ad8bd1eb026c0ed169ecbdac7da (Produced by decomp)
|
||||
sha1: 50bebedad9e0f10746a52b07239e47fa6c284d03 (Alternate)
|
||||
sdcard
|
||||
└── switch
|
||||
└── soh
|
||||
├── oot-mq.otr
|
||||
├── oot.otr
|
||||
├── soh.nro
|
||||
└── soh.otr
|
||||
```
|
||||
* Launch via Atmosphere's `Game+R` launcher method.
|
||||
|
||||
### 4. Play!
|
||||
|
||||
Congratulations, you are now sailing with the Ship of Harkinian! Have fun!
|
||||
|
||||
## Additional Setup Information
|
||||
# Configuration
|
||||
|
||||
The Ship of Harkinian uses a proprietary versioning system consisting of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the addition of many new features and bug fixes. The code word represents a minor release version which increments with small updates mainly comprised of bug fixes. For example, `DECKARD ALFA`.
|
||||
|
||||
### Windows Rom Extraction
|
||||
|
||||
* Open OTRGui.exe, and select one of the supported roms listed above, to generate the `oot.otr` archive file.
|
||||
* If a second button already exits then `oot.otr` already exists. To prevent overwriting the old `oot.otr` use this button to choose a new game directory. The new directory must not already contain an `oot.otr` to prevent an error.
|
||||
* When the process completes, place `oot.otr` beside `soh.exe` if it is not already.
|
||||
|
||||
This packaging process can take up to **5 minutes**.
|
||||
|
||||
Close the OTRGui when the `Done!` message appears.
|
||||
If you get another message, then you might have selected the wrong rom. Make sure to use a rom consistent with the above checksum.
|
||||
|
||||
### Linux Rom Extraction
|
||||
|
||||
* Place one of the supported roms in the same folder as the appimage.
|
||||
* When you run the soh appimage, it should begin generating the `oot.otr` archive file.
|
||||
* When the process completes, place `oot.otr` in the same folder as the appimage, if it is not already, then run the appimage.
|
||||
|
||||
The packaging process can take up to **5 minutes**.
|
||||
|
||||
If you get any errors, then you might have selected the wrong rom. Make sure to use a rom consistent with the above checksum.
|
||||
|
||||
### MacOS Rom Extraction
|
||||
|
||||
* Run `soh.app`, and when prompted, select one of the supported roms listed above.
|
||||
* You should see a notification saying `Processing OTR`, then, once the process is complete, you should get a notification saying `OTR Successfully Generated`, then the game should start.
|
||||
|
||||
The packing process can take up to **5 minutes**.
|
||||
|
||||
If you get an error saying `Incompatible ROM hash`, you have selected the wrong rom, make sure the checksum matches one of the ones listed above.
|
||||
|
||||
### Nintendo Switch Rom Extraction
|
||||
|
||||
* Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the `oot.otr` archive on that platform.
|
||||
* Place the `.nro` and the `oot.otr` archive into a folder called `soh` in your Switch folder on your Switch
|
||||
|
||||
### Nintendo Wii U Rom Extraction
|
||||
|
||||
* Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the `oot.otr` archive on that platform.
|
||||
* Copy the `.rpx` and the `oot.otr` archive to `wiiu/apps/soh`
|
||||
|
||||
---
|
||||
|
||||
If you still cannot get the tool to work, join our [Discord Server](https://discord.com/invite/BtBmd55HVH) and ask for help in the `#support` text channel. Keep-in-mind that we do not condone piracy in any way.
|
||||
|
||||
### Running The Ship of Harkinian
|
||||
|
||||
Launch the game. If the window immediately closes, or if there are visual artifacts, you may have selected the wrong rom in the OTRGui tool.
|
||||
|
||||
Default keyboard configuration:
|
||||
### Default keyboard configuration
|
||||
| N64 | A | B | Z | Start | Analog stick | C buttons | D-Pad |
|
||||
| - | - | - | - | - | - | - | - |
|
||||
| Keyboard | X | C | Z | Space | WASD | Arrow keys | TFGH |
|
||||
|
||||
Other shortcuts:
|
||||
### Other shortcuts
|
||||
| Keys | Action |
|
||||
| - | - |
|
||||
| F1 | Toggle menubar |
|
||||
@@ -102,99 +77,32 @@ Other shortcuts:
|
||||
| Alt+Enter | Fullscreen (DirectX) |
|
||||
| Ctrl+R | Reset |
|
||||
|
||||
Currently, DirectX 11 and OpenGL are supported. Change the renderer by opening the `shipofharkinian.json` configuration file in notepad and add `sdl` to the quotes in `"GfxBackend": ""` for OpenGL or leave blank for DirectX.
|
||||
### Graphics Backends
|
||||
Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (MacOS). You can change which API to use in the `Settings` menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the `shipofharkinian.json` file by finding the line `gfxbackend:""` and changing the value to `sdl` for OpenGL. DirectX 11 is the default on Windows.
|
||||
|
||||
### Custom Music
|
||||
# Custom Assets
|
||||
|
||||
We support importing custom [Seq64](https://github.com/sauraen/seq64) files to replace the in game music and fanfares (Not sound effects yet currently).
|
||||
Custom assets are packed in `.otr` files. To use custom assets, place them in the `mods` folder.
|
||||
|
||||
First you will need to prepare a folder with the desired sequences, in which every sequence will have two files with the same name and different extensions, a `.seq` Seq64 file and a `.meta` plaintext file. These files can be categorically nested in folders if desired, they will still be consumed as if they were all at the top level.
|
||||
If you're interested in creating and/or packing your own custom asset `.otr` files, check out [**retro**](https://github.com/HarbourMasters64/retro)!
|
||||
|
||||
The meta file will have two lines, the first line is the name that will be displayed in the SFX editor, and the second line will be the instrument set number, in base 16. For example, if there is a sequence file `Foo.seq` then you need a meta file `Foo.meta` that could contain:
|
||||
```
|
||||
Awesome Name
|
||||
C
|
||||
```
|
||||
# Development
|
||||
### Building
|
||||
|
||||
Once you have prepared your sequences folder:
|
||||
1. Download and open [Retro](https://github.com/HarbourMasters/retro/releases).
|
||||
1. Choose the "Create OTR" option
|
||||
1. Choose the "Custom Sequences" option
|
||||
1. Using the file select, choose the sequences folder you prepared in the previous instructions.
|
||||
1. Click the "Stage Files" button (Reminder: SoH can handle 1024 custom sequence in total, this number include the count of the original music with it so be sure to take this into account)
|
||||
1. Click the "Finalize OTR" text in the green footer.
|
||||
1. Finally click "Generate OTR" and for the source destination it needs to go in the `mods` folder of your SoH installation.
|
||||
- This `mods` folder should be a sibling of your `oot.otr` file.
|
||||
If you want to manually compile SoH, please consult the [building instructions](docs/BUILDING.md).
|
||||
|
||||
Assuming you have done everything correctly, boot up SoH and open up the SFX Editor (In the Enhancements dropdown). You should now be able to swap out any of the in game sequences/fanfares for the sequences added in your newly generated OTR file. If you have any trouble with this process please reach out in the support section of the Discord
|
||||
### Playtesting
|
||||
If you want to playtest a continuous integration build, you can find them at the links below. Keep in mind that these are for playtesting only, and you will likely encounter bugs and possibly crashes.
|
||||
|
||||
## Take The Survey
|
||||
Want to use cartridge readers in tandem with the OTRGui?
|
||||
Take [this survey](https://retroarchopenhardware.com/survey.php) to increase chances of this becoming reality.
|
||||
* [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip)
|
||||
* [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip)
|
||||
* [Linux (performance)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-performance.zip) _(requires `glibc 2.35` or newer, but will be more performant than the compatibility build.)_
|
||||
* [Linux (compatibility)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-compatiblity.zip) _(compatible with most Linux distributions, but may not be as performant as the performance build.)_
|
||||
* [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip)
|
||||
|
||||
## Discord
|
||||
|
||||
Official Discord: https://discord.com/invite/BtBmd55HVH
|
||||
|
||||
## Building The Ship of Harkinian
|
||||
|
||||
Refer to the [building instructions](BUILDING.md) to compile SoH.
|
||||
|
||||
## Getting CI to work on your fork
|
||||
|
||||
The CI works via [Github Actions](https://github.com/features/actions) where we mostly make use of machines hosted by Github; except for the very first step of the CI process called "Extract assets". This steps extracts assets from the game file and generates an "assets" folder in `soh/`.
|
||||
|
||||
To get this step working on your fork, you'll need to add a machine to your own repository as a self-hosted runner via "Settings > Actions > Runners" in your repository settings. 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. For Windows, deps get installed as part of the CI process. To setup your runner as a service read the docs [here](https://docs.github.com/en/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service?platform=linux).
|
||||
|
||||
|
||||
## Troubleshooting The Exporter
|
||||
- Confirm that you have an `/assets` folder filled with XMLs in the same directory as OTRGui.exe
|
||||
- Confirm that `zapd.exe` exists in the `/assets/extractor` folder
|
||||
|
||||
## Nightly Builds
|
||||
Nightly builds of Ship of Harkinian are available here: [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip), [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip), [Linux](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux.zip), [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip), [Wii U](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-wiiu.zip)
|
||||
|
||||
|
||||
## The Harbour Masters Are...
|
||||
|
||||
Kenix | Lead Developer/Public Relations - Resource Management Programmer, Audio System Programmer, and General Programmer
|
||||
Jack Walker | Lead Developer - OTR Format Programmer, Resource Load Programmer, and General Programmer
|
||||
Louist103 | Developer - Save System Programmer and General Programmer
|
||||
Emil | Developer - Fast3D Programmer
|
||||
m4xw | Developer - Shipwright, Throwing Baguettes, and General Programmer
|
||||
MelonSpeedruns | Developer - General Programmer
|
||||
Rozlette | Developer - General Programmer
|
||||
JoshDuMan | Developer - General Programmer
|
||||
KiritoDev/Lywx | Developer - General Programmer
|
||||
Theo3 | Developer - General Programmer
|
||||
Random06457 | Developer - Linux Build
|
||||
|
||||
## Special Thanks
|
||||
|
||||
Decomp & ZAPD | Made this project even possible in the first place!
|
||||
MNGoldenEagle | Patiently explained audio data formats, encouragement, and founding ZSO which was the first source of the game's code and resource format documentation.
|
||||
Rrrrry123 | Speedbunner, encouragement, and community moderation
|
||||
Fierce deity | Encouragement and community moderation
|
||||
mzxrules | For his contributions to decomp
|
||||
zel. | For his contributions to decomp
|
||||
Aloxado | Developer - General Programmer
|
||||
MegaMech | Developer - General Programmer
|
||||
Revo | Tester - GCC support and General Testing
|
||||
zfg | Tester - General Testing
|
||||
Horseless Headman | Tester - General Testing
|
||||
Steven Pritchett | Tester - General Testing
|
||||
Trenton May | Tester - General Testing
|
||||
Zeldaboy14 | Tester - General Testing, encouragement, and community moderation
|
||||
Koby Howell | Tester - General Testing
|
||||
Logg | Tester - General Testing
|
||||
Taylor Daley | Graphic Design
|
||||
Can't Sleep | Graphic Design
|
||||
|
||||
## Video Credits
|
||||
Kenix | Producer / Writer
|
||||
briaguya | Writer
|
||||
rainbow_fash | Executive Producer
|
||||
ReveriePass | Editor
|
||||
MicTheMicrophone | Gwonam / The King
|
||||
Amphibibro | Link
|
||||
AceHeart | Zelda
|
||||
<a href="https://github.com/Kenix3/libultraship/">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="./docs/poweredbylus.darkmode.png">
|
||||
<img alt="Powered by libultraship" src="./docs/poweredbylus.lightmode.png">
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
[subrepo]
|
||||
remote = https://github.com/HarbourMasters/ZAPDTR.git
|
||||
branch = master
|
||||
commit = a53a53ea4216b926253dde2c942ae0ca6e2f2ccd
|
||||
parent = f52a2a6406eb1bbd2b631c65923d879a83983ccb
|
||||
commit = e23b125d89bd973998d2eb00896bcbaf1b53a329
|
||||
parent = 17b1a8e7fd5517f9232e531da0fed6ef80a87f04
|
||||
method = rebase
|
||||
cmdver = 0.4.1
|
||||
cmdver = 0.4.3
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
set(PROJECT_NAME ZAPD)
|
||||
set(PROJECT_NAME ZAPDLib)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use")
|
||||
#set(CMAKE_C_STANDARD 11 CACHE STRING "The C standard to use")
|
||||
@@ -260,10 +260,17 @@ set(ALL_FILES
|
||||
################################################################################
|
||||
# Target
|
||||
################################################################################
|
||||
add_executable(${PROJECT_NAME} ${ALL_FILES})
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC ${ALL_FILES})
|
||||
|
||||
add_executable(ZAPD ExecutableMain.cpp)
|
||||
target_link_libraries(ZAPD ${PROJECT_NAME})
|
||||
|
||||
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
use_props(${PROJECT_NAME} "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}")
|
||||
use_props(ZAPD "${CMAKE_CONFIGURATION_TYPES}" "${DEFAULT_CXX_PROPS}")
|
||||
endif()
|
||||
################################################################################
|
||||
# Includes for CMake from *.props
|
||||
@@ -282,7 +289,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
)
|
||||
endif()
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
set_target_properties(ZAPD PROPERTIES
|
||||
OUTPUT_NAME "ZAPD.out"
|
||||
)
|
||||
endif()
|
||||
@@ -290,7 +297,8 @@ endif()
|
||||
# MSVC runtime library
|
||||
################################################################################
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY)
|
||||
foreach(ZTarget ${PROJECT_NAME} ZAPD)
|
||||
get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${ZTarget} PROPERTY MSVC_RUNTIME_LIBRARY)
|
||||
if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
|
||||
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
|
||||
$<$<CONFIG:Debug>:
|
||||
@@ -302,7 +310,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
$<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}>
|
||||
)
|
||||
endif()
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR})
|
||||
set_target_properties(${ZTarget} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR})
|
||||
endforeach()
|
||||
endif()
|
||||
################################################################################
|
||||
# Compile definitions
|
||||
@@ -336,6 +345,8 @@ find_package(PNG REQUIRED)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/extern/ZAPDUtils
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/src/resource
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../libultraship/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../ZAPDTR/lib/tinyxml2
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../ZAPDTR/lib/libgfxd
|
||||
${PNG_PNG_INCLUDE_DIR}/
|
||||
@@ -402,7 +413,7 @@ if(MSVC)
|
||||
endif()
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
|
||||
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
-Wall -Wextra -Wno-error
|
||||
-Wno-unused-parameter
|
||||
-Wno-unused-function
|
||||
@@ -415,11 +426,11 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang")
|
||||
)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
target_link_options(${PROJECT_NAME} PRIVATE
|
||||
target_link_options(${PROJECT_NAME} PUBLIC
|
||||
-pthread
|
||||
)
|
||||
else()
|
||||
target_link_options(${PROJECT_NAME} PRIVATE
|
||||
target_link_options(${PROJECT_NAME} PUBLIC
|
||||
-pthread
|
||||
-Wl,-export-dynamic
|
||||
)
|
||||
@@ -489,7 +500,7 @@ endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch|CafeOS")
|
||||
add_library(pathconf OBJECT pathconf.c)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE "${ADDITIONAL_LIBRARY_DEPENDENCIES}" $<TARGET_OBJECTS:pathconf> )
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC "${ADDITIONAL_LIBRARY_DEPENDENCIES}" $<TARGET_OBJECTS:pathconf> )
|
||||
else()
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE "${ADDITIONAL_LIBRARY_DEPENDENCIES}")
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC "${ADDITIONAL_LIBRARY_DEPENDENCIES}")
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
extern "C" int zapd_main(int argc, char* argv[]);
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
return zapd_main(argc, argv);
|
||||
}
|
||||
@@ -27,11 +27,14 @@ Globals::Globals()
|
||||
|
||||
Globals::~Globals()
|
||||
{
|
||||
auto& exporters = GetExporterMap();
|
||||
|
||||
for (auto& it : exporters)
|
||||
for (const auto& w : workerData)
|
||||
{
|
||||
delete it.second;
|
||||
delete w.second;
|
||||
}
|
||||
|
||||
if (rom != nullptr)
|
||||
{
|
||||
delete rom;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ typedef bool (*ExporterSetFuncBool)(ZFileMode fileMode);
|
||||
typedef void (*ExporterSetFuncVoid)(int argc, char* argv[], int& i);
|
||||
typedef void (*ExporterSetFuncVoid2)(const std::string& buildMode, ZFileMode& fileMode);
|
||||
typedef void (*ExporterSetFuncVoid3)();
|
||||
typedef void (*ExporterSetFuncVoid4)(tinyxml2::XMLElement* reader);
|
||||
typedef void (*ExporterSetResSave)(ZResource* res, BinaryWriter& writer);
|
||||
|
||||
class ExporterSet
|
||||
@@ -39,6 +40,8 @@ public:
|
||||
ExporterSetFuncVoid3 endXMLFunc = nullptr;
|
||||
ExporterSetResSave resSaveFunc = nullptr;
|
||||
ExporterSetFuncVoid3 endProgramFunc = nullptr;
|
||||
|
||||
ExporterSetFuncVoid4 processCompilableFunc = nullptr;
|
||||
};
|
||||
|
||||
class Globals
|
||||
@@ -54,7 +57,7 @@ public:
|
||||
bool useLegacyZDList;
|
||||
bool singleThreaded;
|
||||
VerbosityLevel verbosity; // ZAPD outputs additional information
|
||||
ZFileMode fileMode;
|
||||
ZFileMode fileMode = ZFileMode::Invalid;
|
||||
fs::path baseRomPath, inputPath, outputPath, sourceOutputPath, cfgPath, fileListPath;
|
||||
TextureType texType;
|
||||
ZGame game;
|
||||
@@ -65,8 +68,9 @@ public:
|
||||
bool forceUnaccountedStatic = false;
|
||||
bool otrMode = true;
|
||||
bool buildRawTexture = false;
|
||||
bool onlyGenSohOtr = false;
|
||||
|
||||
ZRom* rom;
|
||||
ZRom* rom = nullptr;
|
||||
std::vector<ZFile*> files;
|
||||
std::vector<ZFile*> externalFiles;
|
||||
std::vector<int32_t> segments;
|
||||
|
||||
@@ -4,9 +4,71 @@
|
||||
#include "Utils/File.h"
|
||||
#include "Utils/Path.h"
|
||||
#include "WarningHandler.h"
|
||||
|
||||
#include "ZAnimation.h"
|
||||
ZNormalAnimation nAnim(nullptr);
|
||||
ZCurveAnimation cAnim(nullptr);
|
||||
ZLinkAnimation lAnim(nullptr);
|
||||
ZLegacyAnimation lAnim2(nullptr);
|
||||
|
||||
#include "ZArray.h"
|
||||
ZArray arr(nullptr);
|
||||
|
||||
#include "ZAudio.h"
|
||||
ZAudio audio(nullptr);
|
||||
|
||||
#include "ZBackground.h"
|
||||
ZBackground back(nullptr);
|
||||
|
||||
#include "ZBlob.h"
|
||||
ZBlob blob(nullptr);
|
||||
|
||||
#include "ZCollision.h"
|
||||
ZCollisionHeader colHeader(nullptr);
|
||||
|
||||
#include "ZCutscene.h"
|
||||
ZCutscene cs(nullptr);
|
||||
|
||||
#include "ZLimb.h"
|
||||
ZLimb limb(nullptr);
|
||||
|
||||
#include "ZMtx.h"
|
||||
ZMtx mtx(nullptr);
|
||||
|
||||
#include "ZPath.h"
|
||||
ZPath path(nullptr);
|
||||
|
||||
#include "ZPlayerAnimationData.h"
|
||||
ZPlayerAnimationData pAnimData(nullptr);
|
||||
|
||||
#include "ZScalar.h"
|
||||
ZScalar scalar(nullptr);
|
||||
|
||||
#include "ZSkeleton.h"
|
||||
ZLimbTable limbTbl(nullptr);
|
||||
ZSkeleton skel(nullptr);
|
||||
|
||||
#include "ZString.h"
|
||||
ZString str(nullptr);
|
||||
|
||||
#include "ZSymbol.h"
|
||||
ZSymbol sym(nullptr);
|
||||
|
||||
#include "ZText.h"
|
||||
ZText txt(nullptr);
|
||||
|
||||
#include "ZTexture.h"
|
||||
ZTexture tex(nullptr);
|
||||
|
||||
#include "ZVector.h"
|
||||
ZVector vec(nullptr);
|
||||
|
||||
#include "ZVtx.h"
|
||||
ZVtx vtx(nullptr);
|
||||
|
||||
#include "ZRoom/ZRoom.h"
|
||||
ZRoom room(nullptr);
|
||||
|
||||
#include "ZFile.h"
|
||||
#include "ZTexture.h"
|
||||
|
||||
@@ -29,29 +91,6 @@
|
||||
const char gBuildHash[] = "";
|
||||
|
||||
// LINUX_TODO: remove, those are because of soh <-> lus dependency problems
|
||||
float divisor_num = 0.0f;
|
||||
|
||||
extern "C" void Audio_SetGameVolume(int player_id, float volume)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
extern "C" int ResourceMgr_OTRSigCheck(char* imgData)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void DebugConsole_SaveCVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void DebugConsole_LoadCVars()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path& outPath,
|
||||
ZFileMode fileMode, int workerID);
|
||||
@@ -119,7 +158,9 @@ void ErrorHandler(int sig)
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
extern void ImportExporters();
|
||||
|
||||
extern "C" int zapd_main(int argc, char* argv[])
|
||||
{
|
||||
// Syntax: ZAPD.out [mode (btex/bovl/e)] (Arbritrary Number of Arguments)
|
||||
|
||||
@@ -242,6 +283,7 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
else if (arg == "-se" || arg == "--set-exporter") // Set Current Exporter
|
||||
{
|
||||
ImportExporters();
|
||||
Globals::Instance->currentExporter = argv[++i];
|
||||
}
|
||||
else if (arg == "--gcc-compat") // GCC compatibility
|
||||
@@ -260,10 +302,23 @@ int main(int argc, char* argv[])
|
||||
{
|
||||
Globals::Instance->buildRawTexture = true;
|
||||
}
|
||||
else if (arg == "--norom")
|
||||
{
|
||||
Globals::Instance->onlyGenSohOtr = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Parse File Mode
|
||||
ExporterSet* exporterSet = Globals::Instance->GetExporterSet();
|
||||
|
||||
if(Globals::Instance->onlyGenSohOtr) {
|
||||
exporterSet->endProgramFunc();
|
||||
|
||||
delete g;
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string buildMode = argv[1];
|
||||
ZFileMode fileMode = ZFileMode::Invalid;
|
||||
|
||||
@@ -420,6 +475,11 @@ int main(int argc, char* argv[])
|
||||
if (exporterSet != nullptr && exporterSet->endProgramFunc != nullptr)
|
||||
exporterSet->endProgramFunc();
|
||||
|
||||
end:
|
||||
delete exporterSet;
|
||||
|
||||
//Globals::Instance->GetExporterSet() = nullptr; //TODO NULL this out. Compiler complains about lvalue assignment.
|
||||
|
||||
delete g;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -128,6 +128,9 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename)
|
||||
if (reader->Attribute("RangeEnd") != nullptr)
|
||||
rangeEnd = StringHelper::StrToL(reader->Attribute("RangeEnd"), 16);
|
||||
|
||||
if (reader->Attribute("Compilable") != nullptr)
|
||||
isCompilable = true;
|
||||
|
||||
if (rangeStart > rangeEnd)
|
||||
HANDLE_ERROR_PROCESS(
|
||||
WarningType::Always,
|
||||
@@ -221,7 +224,7 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename)
|
||||
// Check for repeated attributes.
|
||||
if (offsetXml != nullptr)
|
||||
{
|
||||
rawDataIndex = strtol(StringHelper::Split(offsetXml, "0x")[1].c_str(), NULL, 16);
|
||||
rawDataIndex = strtol(StringHelper::Split(std::string(offsetXml), "0x")[1].c_str(), NULL, 16);
|
||||
|
||||
if (offsetSet.find(offsetXml) != offsetSet.end())
|
||||
{
|
||||
@@ -261,16 +264,19 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename)
|
||||
}
|
||||
nameSet.insert(nameXml);
|
||||
}
|
||||
|
||||
|
||||
std::string nodeName = std::string(child->Name());
|
||||
|
||||
if (nodeMap.find(nodeName) != nodeMap.end())
|
||||
{
|
||||
ZResource* nRes = nodeMap[nodeName](this);
|
||||
|
||||
if (mode == ZFileMode::Extract || mode == ZFileMode::ExternalFile || mode == ZFileMode::ExtractDirectory)
|
||||
nRes->ExtractFromXML(child, rawDataIndex);
|
||||
|
||||
if (mode == ZFileMode::Extract || mode == ZFileMode::ExternalFile ||
|
||||
mode == ZFileMode::ExtractDirectory)
|
||||
{
|
||||
if (!isCompilable)
|
||||
nRes->ExtractFromXML(child, rawDataIndex);
|
||||
}
|
||||
switch (nRes->GetResourceType())
|
||||
{
|
||||
case ZResourceType::Texture:
|
||||
@@ -800,19 +806,22 @@ void ZFile::GenerateSourceHeaderFiles()
|
||||
{
|
||||
OutputFormatter formatter;
|
||||
|
||||
formatter.Write("#pragma once\n");
|
||||
formatter.Write("#pragma once\n\n");
|
||||
formatter.Write("#include \"align_asset_macro.h\"\n");
|
||||
std::set<std::string> nameSet;
|
||||
for (ZResource* res : resources)
|
||||
{
|
||||
std::string resSrc = res->GetSourceOutputHeader("", &nameSet);
|
||||
formatter.Write(resSrc);
|
||||
|
||||
if (resSrc != "")
|
||||
formatter.Write("\n");
|
||||
if (!resSrc.empty())
|
||||
{
|
||||
formatter.Write(resSrc.front() == '\n' ? resSrc : "\n" + resSrc);
|
||||
formatter.Write(res == resources.back() ? "" : "\n");
|
||||
}
|
||||
}
|
||||
|
||||
for (auto& sym : symbolResources)
|
||||
{
|
||||
formatter.Write("\n\n");
|
||||
formatter.Write(sym.second->GetSourceOutputHeader("", &nameSet));
|
||||
}
|
||||
|
||||
@@ -823,15 +832,19 @@ void ZFile::GenerateSourceHeaderFiles()
|
||||
if (Globals::Instance->verbosity >= VerbosityLevel::VERBOSITY_INFO)
|
||||
printf("Writing H file: %s\n", headerFilename.c_str());
|
||||
|
||||
std::string output = formatter.GetOutput();
|
||||
while (output.back() == '\n')
|
||||
output.pop_back();
|
||||
|
||||
if (Globals::Instance->fileMode != ZFileMode::ExtractDirectory)
|
||||
File::WriteAllText(headerFilename, formatter.GetOutput());
|
||||
File::WriteAllText(headerFilename, output);
|
||||
else if (Globals::Instance->sourceOutputPath != "")
|
||||
{
|
||||
std::string xmlPath = xmlFilePath.string();
|
||||
xmlPath = StringHelper::Replace(xmlPath, "\\", "/");
|
||||
auto pathList = StringHelper::Split(xmlPath, "/");
|
||||
std::string outPath = "";
|
||||
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
outPath += pathList[i] + "/";
|
||||
|
||||
@@ -849,7 +862,7 @@ void ZFile::GenerateSourceHeaderFiles()
|
||||
outPath += "/";
|
||||
}
|
||||
|
||||
File::WriteAllText(outPath, formatter.GetOutput());
|
||||
File::WriteAllText(outPath, output);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1192,7 +1205,7 @@ std::string ZFile::ProcessTextureIntersections([[maybe_unused]] const std::strin
|
||||
|
||||
if (declarations.find(currentOffset) != declarations.end())
|
||||
declarations.at(currentOffset)->size = currentTex->GetRawDataSize();
|
||||
|
||||
|
||||
currentTex->DeclareVar(GetName(), "");
|
||||
}
|
||||
else
|
||||
|
||||
@@ -36,6 +36,7 @@ public:
|
||||
std::vector<ZResource*> resources;
|
||||
|
||||
int workerID;
|
||||
bool isCompilable = false;
|
||||
|
||||
// Default to using virtual addresses
|
||||
uint32_t segment = 0x80;
|
||||
|
||||
@@ -309,7 +309,7 @@ std::string ZResource::GetSourceOutputHeader([[maybe_unused]] const std::string&
|
||||
{
|
||||
if (Globals::Instance->otrMode && genOTRDef)
|
||||
{
|
||||
std::string str = "";;
|
||||
std::string str = "";
|
||||
std::string nameStr = StringHelper::Strip(StringHelper::Strip(name, "\n"), "\r");
|
||||
|
||||
std::string outName = parent->GetOutName();
|
||||
@@ -344,18 +344,13 @@ std::string ZResource::GetSourceOutputHeader([[maybe_unused]] const std::string&
|
||||
|
||||
if (prefix != "") {
|
||||
str += StringHelper::Sprintf("#define d%s \"__OTR__%s/%s/%s\"", name.c_str(), prefix.c_str(), outName.c_str(), nameStr.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
str += StringHelper::Sprintf("#define d%s \"__OTR__%s/%s\"", name.c_str(), outName.c_str(), nameStr.c_str());
|
||||
|
||||
if (nameSet && nameSet->find(name) == nameSet->end()) {
|
||||
str += StringHelper::Sprintf(R"(
|
||||
#ifdef _WIN32
|
||||
static const __declspec(align(2)) char %s[] = d%s;
|
||||
#else
|
||||
static const char %s[] __attribute__((aligned (2))) = d%s;
|
||||
#endif
|
||||
)", name.c_str(), name.c_str(), name.c_str(), name.c_str());
|
||||
str += StringHelper::Sprintf("\n");
|
||||
str += StringHelper::Sprintf(R"(static const ALIGN_ASSET(2) char %s[] = d%s;)", name.c_str(), name.c_str());
|
||||
|
||||
if (nameSet) {
|
||||
nameSet->insert(name);
|
||||
@@ -366,16 +361,11 @@ static const char %s[] __attribute__((aligned (2))) = d%s;
|
||||
{
|
||||
std::string addName = "gTitleZeldaShieldLogoTex";
|
||||
nameStr = StringHelper::Strip(StringHelper::Strip(addName, "\n"), "\r");
|
||||
str += StringHelper::Sprintf("\n#define d%s \"__OTR__%s/%s/%s\"", addName.c_str(), prefix.c_str(), outName.c_str(), nameStr.c_str());
|
||||
str += StringHelper::Sprintf("\n\n#define d%s \"__OTR__%s/%s/%s\"", addName.c_str(), prefix.c_str(), outName.c_str(), nameStr.c_str());
|
||||
if (nameSet && nameSet->find(addName) == nameSet->end())
|
||||
{
|
||||
str += StringHelper::Sprintf(R"(
|
||||
#ifdef _WIN32
|
||||
static const __declspec(align(2)) char %s[] = d%s;
|
||||
#else
|
||||
static const char %s[] __attribute__((aligned (2))) = d%s;
|
||||
#endif
|
||||
)", addName.c_str(), addName.c_str(), addName.c_str(), addName.c_str());
|
||||
str += StringHelper::Sprintf("\n");
|
||||
str += StringHelper::Sprintf(R"(static const ALIGN_ASSET(2) char %s[] = d%s;)", addName.c_str(), addName.c_str());
|
||||
|
||||
if (nameSet)
|
||||
{
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "Declaration.h"
|
||||
#include "Utils/BinaryWriter.h"
|
||||
#include "Utils/Directory.h"
|
||||
#include <Utils/BinaryWriter.h>
|
||||
#include <Utils/Directory.h>
|
||||
#include "tinyxml2.h"
|
||||
|
||||
#define SEGMENT_SCENE 2
|
||||
|
||||
@@ -63,18 +63,26 @@ void ZText::ParseRawData()
|
||||
unsigned int extra = 0;
|
||||
bool stop = false;
|
||||
|
||||
// Continue parsing until we are told to stop and all extra bytes are read
|
||||
while ((c != '\0' && !stop) || extra > 0)
|
||||
{
|
||||
msgEntry.msg += c;
|
||||
msgPtr++;
|
||||
|
||||
// Some control codes require reading extra bytes
|
||||
if (extra == 0)
|
||||
{
|
||||
if (c == 0x05 || c == 0x13 || c == 0x0E || c == 0x0C || c == 0x1E || c == 0x06 ||
|
||||
// End marker, so stop this message and do not read anything else
|
||||
if (c == 0x02)
|
||||
{
|
||||
stop = true;
|
||||
}
|
||||
else if (c == 0x05 || c == 0x13 || c == 0x0E || c == 0x0C || c == 0x1E || c == 0x06 ||
|
||||
c == 0x14)
|
||||
{
|
||||
extra = 1;
|
||||
}
|
||||
// "Continue to new text ID", so stop this message and read two more bytes for the text ID
|
||||
else if (c == 0x07)
|
||||
{
|
||||
extra = 2;
|
||||
|
||||
@@ -1,11 +1,37 @@
|
||||
message(STATUS "Copying otr files...")
|
||||
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/oot.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied oot.otr")
|
||||
endif()
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/oot-mq.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied oot-mq.otr")
|
||||
endif()
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/soh.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${SOURCE_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${BINARY_DIR}/soh/)
|
||||
message(STATUS "Copied soh.otr")
|
||||
endif()
|
||||
|
||||
# Additionally for Windows, copy the otrs to the target dir, side by side with soh.exe
|
||||
if(SYSTEM_NAME MATCHES "Windows")
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/oot.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot.otr ${TARGET_DIR})
|
||||
endif()
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/oot-mq.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy oot-mq.otr ${TARGET_DIR})
|
||||
endif()
|
||||
if(EXISTS ${SOURCE_DIR}/OTRExporter/soh.otr)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy soh.otr ${TARGET_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${SOURCE_DIR}/oot.otr AND NOT EXISTS ${SOURCE_DIR}/oot-mq.otr)
|
||||
message(FATAL_ERROR, "No OTR files found.")
|
||||
endif()
|
||||
message(FATAL_ERROR "Failed to copy. No OTR files found.")
|
||||
endif()
|
||||
if(NOT EXISTS ${SOURCE_DIR}/soh.otr)
|
||||
message(FATAL_ERROR "Failed to copy. No soh OTR found.")
|
||||
endif()
|
||||
|
||||
@@ -22,6 +22,9 @@ You can also find the v142 toolset by searching through the individual component
|
||||
While you're there, you can also install Python 3 and Git if needed.
|
||||
|
||||
1. Clone the Ship of Harkinian repository
|
||||
|
||||
_Note: Be sure to either clone with the ``--recursive`` flag or do ``git submodule init`` after cloning to pull in the libultraship submodule!_
|
||||
|
||||
2. Place one or more [compatible](#compatible-roms) roms in the `OTRExporter` directory with namings of your choice
|
||||
|
||||
_Note: Instructions assume using powershell_
|
||||
@@ -42,6 +45,9 @@ cd Shipwright
|
||||
|
||||
# If you need to clean the project you can run
|
||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target clean
|
||||
|
||||
# If you need to regenerate the asset headers to check them into source
|
||||
& 'C:\Program Files\CMake\bin\cmake.exe' --build .\build\x64 --target ExtractAssetHeaders
|
||||
```
|
||||
|
||||
### Developing SoH
|
||||
@@ -90,7 +96,7 @@ git submodule update --init
|
||||
# Copy the baserom to the OTRExporter folder
|
||||
cp <path to your ROM> OTRExporter
|
||||
# Generate Ninja project
|
||||
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging)
|
||||
cmake -H. -Bbuild-cmake -GNinja # -DCMAKE_BUILD_TYPE:STRING=Release (if you're packaging) -DPython3_EXECUTABLE=$(which python3) (if you are using non-standard Python installations such as PyEnv)
|
||||
# Extract assets & generate OTR (run this anytime you need to regenerate OTR)
|
||||
cmake --build build-cmake --target ExtractAssets
|
||||
# Compile the project
|
||||
@@ -101,6 +107,9 @@ cmake --build build-cmake # --config Release (if you're packaging)
|
||||
|
||||
# If you need to clean the project you can run
|
||||
cmake --build build-cmake --target clean
|
||||
|
||||
# If you need to regenerate the asset headers to check them into source
|
||||
cmake --build build-cmake --target ExtractAssetHeaders
|
||||
```
|
||||
|
||||
### Generating a distributable
|
||||
@@ -145,6 +154,9 @@ cp build-cmake/soh/oot.otr ~/Library/Application\ Support/com.shipofharkinian.so
|
||||
|
||||
# If you need to clean the project you can run
|
||||
cmake --build build-cmake --target clean
|
||||
|
||||
# If you need to regenerate the asset headers to check them into source
|
||||
cmake --build build-cmake --target ExtractAssetHeaders
|
||||
```
|
||||
|
||||
### Generating a distributable
|
||||
@@ -215,3 +227,15 @@ Use the `extract_assets.py` script file to run the exporter using any of the fol
|
||||
4) In a terminal run `python3 extract_assets.py <path_to_rom>`
|
||||
|
||||
If the script finds multiple roms the user is prompted which to use. Selection is done using the number keys and then pressing the carriage return key.
|
||||
|
||||
## Getting CI to work on your fork
|
||||
|
||||
The CI works via [Github Actions](https://github.com/features/actions) where we mostly make use of machines hosted by Github; except for the very first step of the CI process called "Extract assets". This steps extracts assets from the game file and generates an "assets" folder in `soh/`.
|
||||
|
||||
To get this step working on your fork, you'll need to add a machine to your own repository as a self-hosted runner via "Settings > Actions > Runners" in your repository settings. Make sure to add the 'asset-builder' tag to your newly added runner to assign it to run this step. To setup your runner as a service read the docs [here](https://docs.github.com/en/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service?platform=linux).
|
||||
|
||||
### Runner on Windows
|
||||
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 seperately 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.
|
||||
@@ -0,0 +1,45 @@
|
||||
# Credits
|
||||
|
||||
## The Harbour Masters Are...
|
||||
|
||||
Kenix | Lead Developer/Public Relations - Resource Management Programmer, Audio System Programmer, and General Programmer
|
||||
Jack Walker | Lead Developer - OTR Format Programmer, Resource Load Programmer, and General Programmer
|
||||
Louist103 | Developer - Save System Programmer and General Programmer
|
||||
Emil | Developer - Fast3D Programmer
|
||||
m4xw | Developer - Shipwright, Throwing Baguettes, and General Programmer
|
||||
MelonSpeedruns | Developer - General Programmer
|
||||
Rozlette | Developer - General Programmer
|
||||
JoshDuMan | Developer - General Programmer
|
||||
KiritoDev/Lywx | Developer - General Programmer
|
||||
Theo3 | Developer - General Programmer
|
||||
Random06457 | Developer - Linux Build
|
||||
|
||||
## Special Thanks
|
||||
|
||||
Decomp & ZAPD | Made this project even possible in the first place!
|
||||
MNGoldenEagle | Patiently explained audio data formats, encouragement, and founding ZSO which was the first source of the game's code and resource format documentation.
|
||||
Rrrrry123 | Speedbunner, encouragement, and community moderation
|
||||
Fierce deity | Encouragement and community moderation
|
||||
mzxrules | For his contributions to decomp
|
||||
zel. | For his contributions to decomp
|
||||
Aloxado | Developer - General Programmer
|
||||
MegaMech | Developer - General Programmer
|
||||
Revo | Tester - GCC support and General Testing
|
||||
zfg | Tester - General Testing
|
||||
Horseless Headman | Tester - General Testing
|
||||
Steven Pritchett | Tester - General Testing
|
||||
Trenton May | Tester - General Testing
|
||||
Zeldaboy14 | Tester - General Testing, encouragement, and community moderation
|
||||
Koby Howell | Tester - General Testing
|
||||
Logg | Tester - General Testing
|
||||
Taylor Daley | Graphic Design
|
||||
Can't Sleep | Graphic Design
|
||||
|
||||
## Video Credits
|
||||
Kenix | Producer / Writer
|
||||
briaguya | Writer
|
||||
rainbow_fash | Executive Producer
|
||||
ReveriePass | Editor
|
||||
MicTheMicrophone | Gwonam / The King
|
||||
Amphibibro | Link
|
||||
AceHeart | Zelda
|
||||
@@ -0,0 +1,24 @@
|
||||
### Custom Music
|
||||
|
||||
We support importing custom [Seq64](https://github.com/sauraen/seq64) files to replace the in game music and fanfares (Sound effect and instrument replacement is currently not supported).
|
||||
|
||||
First you will need to prepare a folder with the desired sequences. Every sequence requires two files with the same name and different extensions - a `.seq` Seq64 file and a `.meta` plaintext file. These files can be categorically nested in folders if desired, - Retro will recursively search each subfolder it finds.
|
||||
|
||||
The `.meta` file requires two lines - the first line is the name that will be displayed in the SFX editor, and the second line is the instrument set number in `base16` format. For example, if there is a sequence file `Foo.seq` then you need a meta file `Foo.meta` that could contain:
|
||||
```
|
||||
Awesome Name
|
||||
C
|
||||
```
|
||||
|
||||
Once you have prepared your sequences folder:
|
||||
1. Download and open [Retro](https://github.com/HarbourMasters/retro/releases).
|
||||
1. Choose the "Create OTR" option.
|
||||
1. Choose the "Custom Sequences" option.
|
||||
1. Using the file selection screen, choose the sequences folder you prepared in the previous instructions.
|
||||
1. Click the "Stage Files" button.
|
||||
(*NOTE:* SoH can handle 1024 custom sequence in total. This includes the original music. Keep that in mind!)
|
||||
1. Click the "Finalize OTR" text in the green footer.
|
||||
1. Click "Generate OTR" and, using the file selection screen, save the file to the `mods` folder of your SoH installation.
|
||||
- This `mods` folder should be in the same folder as your `oot.otr` file.
|
||||
|
||||
Assuming you have done everything correctly, boot up SoH and select the SFX Editor from the enhancements dropdown menu. You should now be able to swap out any of the in game sequences/fanfares for the sequences added in your newly generated OTR file. If you have any trouble with this process, please reach out in the support section of the Discord.
|
||||
@@ -0,0 +1,5 @@
|
||||
## About Versions
|
||||
|
||||
The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.otr` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.otr` file. The version number `z` signifies minor updates such as a collection of bugfixes.
|
||||
|
||||
The version codename consists of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the major `x` or `y` version bumps. The code word represents a minor release version which increments with the minor `z` version bump.
|
||||
|
After Width: | Height: | Size: 208 KiB |
|
After Width: | Height: | Size: 206 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 32 KiB |
@@ -9,6 +9,10 @@ if [ -z ${SHIP_HOME+x} ]; then
|
||||
export SHIP_HOME=$PWD
|
||||
fi
|
||||
|
||||
if [ -z ${SHIP_BIN_DIR+x} ]; then
|
||||
export SHIP_BIN_DIR="$HERE/usr/bin"
|
||||
fi
|
||||
|
||||
while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
|
||||
for romfile in "$SHIP_HOME"/*.*64
|
||||
do
|
||||
@@ -95,10 +99,10 @@ while [[ (! -e "$SHIP_HOME"/oot.otr) || (! -e "$SHIP_HOME"/oot-mq.otr) ]]; do
|
||||
rm -r "$ASSETDIR"
|
||||
exit
|
||||
else
|
||||
(cd "$HERE/usr/bin"; ./soh.elf)
|
||||
(cd "$SHIP_BIN_DIR"; ./soh.elf)
|
||||
exit
|
||||
fi
|
||||
rm -r "$ASSETDIR"
|
||||
done
|
||||
(cd "$HERE/usr/bin"; ./soh.elf)
|
||||
(cd "$SHIP_BIN_DIR"; ./soh.elf)
|
||||
exit
|
||||
|
||||