Add CI workflow and progress upload

This commit is contained in:
Luke Street 2024-06-16 20:37:29 -06:00
parent a1871d7d94
commit edc086c39d
8 changed files with 723 additions and 655 deletions

57
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,57 @@
name: Build
on:
push:
pull_request:
jobs:
build:
container: ghcr.io/zeldaret/ss-build:main
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: [SOUE01]
steps:
# Checkout the repository (shallow clone)
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: recursive
# Set Git config
- name: Git config
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
# Copy the original files to the workspace
- name: Prepare
run: cp -R /orig .
# Build the project
- name: Build
run: |
python configure.py --map --version ${{ matrix.version }} \
--binutils /binutils --compilers /compilers
ninja all_source build/${{ matrix.version }}/progress.json
# Upload progress if we're on the main branch
- name: Upload progress
if: github.ref == 'refs/heads/main'
continue-on-error: true
env:
PROGRESS_SLUG: ss
PROGRESS_API_KEY: ${{ secrets.PROGRESS_API_KEY }}
run: |
python tools/upload_progress.py -b https://progress.decomp.club/ \
-p $PROGRESS_SLUG -v ${{ matrix.version }} \
build/${{ matrix.version }}/progress.json
# Upload map files
- name: Upload map
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.version }}_maps
path: build/${{ matrix.version }}/**/*.MAP

View File

@ -1,4 +1,14 @@
# The Legend of Zelda: Skyward Sword
The Legend of Zelda: Skyward Sword
[![Build Status]][actions] ![Progress] ![DOL Progress] ![RELs Progress] [![Discord Badge]][discord]
=============
[Build Status]: https://github.com/zeldaret/ss/actions/workflows/build.yml/badge.svg
[actions]: https://github.com/zeldaret/ss/actions/workflows/build.yml
[Progress]: https://img.shields.io/endpoint?label=Code&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fss%2FSOUE01%2Fall%2F%3Fmode%3Dshield%26measure%3Dcode
[DOL Progress]: https://img.shields.io/endpoint?label=DOL&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fss%2FSOUE01%2Fdol%2F%3Fmode%3Dshield%26measure%3Dcode
[RELs Progress]: https://img.shields.io/endpoint?label=RELs&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fss%2FSOUE01%2Fmodules%2F%3Fmode%3Dshield%26measure%3Dcode
[Discord Badge]: https://img.shields.io/discord/688807550715560050?color=%237289DA&logo=discord&logoColor=%23FFFFFF
[discord]: https://discord.zelda64.dev
This repository contains a work-in-progress decompilation of *The Legend of Zelda: Skyward Sword*
for the Nintendo Wii system.
@ -55,19 +65,19 @@ unquarantine it using:
- Clone the repository:
```
git clone https://github.com/lepelog/ss-dtk.git
git clone https://github.com/zeldaret/ss.git
```
- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your `SOUE01` game ISO
- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your `SOUE01` game ISO to `orig/SOUE01`.
- Right-click The Legend of Zelda: Skyward Sword game in Dolphin and select `Properties` to open
a new window containing various game properties
![The Legend of Zelda: Skyward Sword is selected in the Dolphin Emulator. The "right-click" context menu has been opened and the "Properties" option is highlighted.](assets/dolphin-game-properties.png)
- Select the `Filesystem` tab at the top of this new window (it should be the rightmost tab)
- Right-click the topmost entry labelled `Disc` and select `Extract Entire Disk`
![The Legend of Zelda: Skyward Sword's properties window in Dolphin with the "Filesystem" tab open. The entry named "Disc" is selected and the "right-click" context menu has been opened with the "Extract Entire Disc..." option highlighted.](assets/dolphin-extract-entire-disc.png)
- Once this has completed, copy the following files into the the `orig/SOUE01` folder of this
project. The rest can be deleted to save space.
- `DATA/sys/main.dol`
- `DATA/files/rels.arc`
- Right-click the entry labelled `Data Partition` and select `Extract Entire Partition...`
![The Legend of Zelda: Skyward Sword's properties window in Dolphin with the "Filesystem" tab open. The entry named "Data Partition" is selected and the "right-click" context menu has been opened with the "Extract Entire Partition..." option highlighted.](assets/dolphin-extract-entire-partition.png)
- Extract the partition to `orig/SOUE01`
- To save space, the only necessary files are the following. Any others can be deleted:
- `sys/main.dol`
- `files/rels.arc`
- Run the configure script:
```
python configure.py

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because it is too large Load Diff

View File

@ -127,7 +127,7 @@ config.wibo_tag = "0.6.11"
# Project
config.config_path = Path("config") / config.version / "config.yml"
config.check_sha_path = Path("orig") / f"{config.version}.sha1"
config.check_sha_path = Path("config") / config.version / "build.sha1"
config.linker_version = "Wii/1.6"
config.ldflags = [
"-fp hardware",

View File

@ -1,13 +1,14 @@
# Necessary files
In this folder, place the extracted `main.dol` and `rels.arc` files.
In this folder, place the extracted `sys/main.dol` and `files/rels.arc` files.
Your folder structure should look like this:
```
├── orig
├── SOEU01.sha1
└── orig
└── SOEU01
├── main.dol
├── rels.arc
├── sys
│ └── main.dol
├── files
│ └── rels.arc
└── README.md
```