Skip to content

Commit c36ff8b

Browse files
gcn release: bundle the Swiss folder as a single ZIP
End-users dropping a GC homebrew onto an SD card always want the same folder layout (Joypad Tester/{default.dol, opening.bnr}). The release page was making them download two loose files and re-create the structure by hand, with the .dol rename + folder name as the two likely places to mess up. Bake the layout into the release artifact. Release attachments are now: - joypad_tester_v<ver>_gcn.zip -- extract to SD root, done. Contains Joypad Tester/default.dol (= joypad-tester-gamecube.dol, renamed) and Joypad Tester/opening.bnr. - joypad_tester_v<ver>_wii.dol -- bare .dol for Homebrew Channel. No banner needed there; HBC uses its own meta.xml convention which we don't ship today. Workflow's stage step builds the _stage/Joypad\ Tester/ dir, zips it, drops the zip into _release/, and copies the Wii .dol alongside. Drops the previously-attached opening.bnr (now inside the zip) and the loose _gamecube.dol (now `default.dol` inside the zip). README "Loading on hardware" reworked to match: GC instructions shrink to "extract the zip to SD root" + a note about the Wii .dol going through HBC.
1 parent 95843cb commit c36ff8b

3 files changed

Lines changed: 45 additions & 19 deletions

File tree

.github/workflows/release.yml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,26 @@ jobs:
116116
if: needs.parse.outputs.console == 'gcn'
117117
working-directory: ${{ needs.parse.outputs.console }}
118118
run: |
119-
# Flash-cart-friendly artifact names:
120-
# joypad_tester_v<ver>_<platform>.dol so a user dropping the
121-
# download onto an SD card sees the project + version inline.
122-
# opening.bnr keeps its canonical name (required by Swiss).
119+
# Two release artifacts:
120+
# joypad_tester_v<ver>_gcn.zip -- pre-built Swiss folder
121+
# layout for GC SD-card loaders (FlippyDrive, GC Loader,
122+
# SD2SP2, etc.). Contains:
123+
# Joypad Tester/
124+
# default.dol (renamed from joypad-tester-gamecube.dol;
125+
# Swiss looks for this filename)
126+
# opening.bnr (Swiss banner, required by name)
127+
# joypad_tester_v<ver>_wii.dol -- bare Wii build for the
128+
# Homebrew Channel.
123129
VERSION="${{ needs.parse.outputs.version }}"
124130
mkdir -p _release
125-
[ -f joypad-tester-gamecube.dol ] && cp joypad-tester-gamecube.dol "_release/joypad_tester_v${VERSION}_gamecube.dol"
126-
[ -f joypad-tester-wii.dol ] && cp joypad-tester-wii.dol "_release/joypad_tester_v${VERSION}_wii.dol"
127-
[ -f opening.bnr ] && cp opening.bnr _release/
131+
if [ -f joypad-tester-gamecube.dol ] && [ -f opening.bnr ]; then
132+
mkdir -p "_stage/Joypad Tester"
133+
cp joypad-tester-gamecube.dol "_stage/Joypad Tester/default.dol"
134+
cp opening.bnr "_stage/Joypad Tester/opening.bnr"
135+
(cd _stage && zip -r "../_release/joypad_tester_v${VERSION}_gcn.zip" "Joypad Tester")
136+
rm -rf _stage
137+
fi
138+
[ -f joypad-tester-wii.dol ] && cp joypad-tester-wii.dol "_release/joypad_tester_v${VERSION}_wii.dol"
128139
ls -la _release/
129140
130141
- name: Stage release artifacts (GBA)

gcn/README.md

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,29 +125,44 @@ python3 buildtools/make_banner.py opening.bnr
125125

126126
## Loading on hardware
127127

128-
Drop the `.dol` and `opening.bnr` into a folder on your Swiss SD (GC Loader,
129-
FlippyDrive, SD2SP2, etc.) with the `.dol` renamed to `default.dol`:
128+
### GameCube (Swiss / GC Loader / FlippyDrive / SD2SP2)
129+
130+
Grab `joypad_tester_v<ver>_gcn.zip` from the release and extract it
131+
to your SD root. The archive already contains the Swiss-ready folder
132+
layout, so you'll end up with:
130133

131134
```
132135
SD root/
133136
Joypad Tester/
134-
default.dol # joypad_tester_v<ver>_gamecube.dol from the release
135-
# (or joypad-tester-gamecube.dol straight from a local build)
137+
default.dol
136138
opening.bnr
137139
```
138140

139-
Swiss reads `opening.bnr` and shows the banner image + description in its
140-
file browser; selecting the folder runs `default.dol`.
141+
Swiss reads `opening.bnr` and shows the banner image + description in
142+
its file browser; selecting the folder runs `default.dol`.
143+
144+
### Wii (Homebrew Channel)
145+
146+
Grab `joypad_tester_v<ver>_wii.dol` and load it through the Homebrew
147+
Channel (either drop into `apps/JoypadTester/boot.dol` on your SD or
148+
send via WiiLoad).
141149

142150
## Releases
143151

144152
Tagged as `gcn-v<semver>` from the repo root — see
145153
[`gcn/CHANGELOG.md`](CHANGELOG.md) for per-version notes. The release
146-
workflow attaches `joypad_tester_v<semver>_gamecube.dol`,
147-
`joypad_tester_v<semver>_wii.dol`, and `opening.bnr` to each GitHub
148-
Release. (In-tree build outputs use the libogc-target names
149-
`joypad-tester-gamecube.dol` / `joypad-tester-wii.dol`; release staging
150-
renames them for flash-cart drop-in legibility.)
154+
workflow attaches:
155+
156+
- `joypad_tester_v<semver>_gcn.zip` — pre-built Swiss folder layout
157+
(extract to SD root, boot via Swiss).
158+
- `joypad_tester_v<semver>_wii.dol` — bare Wii build for Homebrew
159+
Channel.
160+
161+
(In-tree build outputs are `joypad-tester-gamecube.dol`,
162+
`joypad-tester-wii.dol`, and `opening.bnr` — release staging renames
163+
the GC `.dol` to `default.dol`, bundles it with the banner, and zips
164+
the result; the Wii `.dol` gets a flash-cart-friendly name and ships
165+
loose.)
151166

152167
## Origin / credits
153168

gcn/ppc/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ typedef enum {
175175
static const char *format_style(pad_style_t s) {
176176
switch (s) {
177177
case STYLE_N64: return "N64 ";
178-
case STYLE_GCN: return "GCN ";
178+
case STYLE_GCN: return "GCC ";
179179
case STYLE_WAVEBIRD: return "WaveBird";
180180
case STYLE_BONGO: return "DK Bongo";
181181
case STYLE_DANCEMAT: return "DanceMat";

0 commit comments

Comments
 (0)