|
| 1 | +<p align="center"> |
| 2 | + <img alt="CupStore" src="meta/branding/cupstore_banner_with_logo_large.png" width="480"> |
| 3 | +</p> |
| 4 | + |
| 5 | +<p align="center"> |
| 6 | + <b>A mod manager for the Wii U. Browse, install and manage SDCafiine mods.</b> |
| 7 | +</p> |
| 8 | + |
| 9 | +<p align="center"> |
| 10 | + <a href="https://github.com/timkicker/cupstore/actions"> |
| 11 | + <img alt="Build" src="https://img.shields.io/github/actions/workflow/status/timkicker/cupstore/release.yml?label=build"> |
| 12 | + </a> |
| 13 | + <a href="https://github.com/timkicker/cupstore/releases/latest"> |
| 14 | + <img alt="Release" src="https://img.shields.io/github/v/release/timkicker/cupstore?display_name=tag&sort=semver"> |
| 15 | + </a> |
| 16 | + <a href="LICENSE"> |
| 17 | + <img alt="License" src="https://img.shields.io/badge/license-GPLv3-blue.svg"> |
| 18 | + </a> |
| 19 | + <img alt="Platform" src="https://img.shields.io/badge/platform-Wii%20U-lightgrey"> |
| 20 | +</p> |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## Screenshots |
| 25 | + |
| 26 | +<p align="center"> |
| 27 | + <img src="meta/branding/screenshots/browse.png" alt="Browse mods" width="48%"/> |
| 28 | + <img src="meta/branding/screenshots/detail.png" alt="Mod details" width="48%"/> |
| 29 | +</p> |
| 30 | +<p align="center"> |
| 31 | + <img src="meta/branding/screenshots/installed.png" alt="Installed mods" width="70%"/> |
| 32 | +</p> |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +## Features |
| 37 | + |
| 38 | +- Browse and install mods from community-hosted repositories |
| 39 | +- Per-game mod list with icons, tags, and metadata |
| 40 | +- Download queue with progress and error recovery |
| 41 | +- Activate / deactivate mods without uninstalling |
| 42 | +- Conflict detection between active mods |
| 43 | +- Update badges when newer versions are available |
| 44 | +- Settings tab with repo management, cache control, and log viewer |
| 45 | + |
| 46 | +--- |
| 47 | + |
| 48 | +## Installation |
| 49 | + |
| 50 | +### Requirements |
| 51 | +- Wii U with [Aroma](https://aroma.foryour.cafe/) installed |
| 52 | +- SD card |
| 53 | + |
| 54 | +### Steps |
| 55 | + |
| 56 | +1. Download `wiiu_mod_store.wuhb` from the [latest release](https://github.com/timkicker/cupstore/releases/latest) |
| 57 | +2. Copy it to `SD:/wiiu/apps/cupstore/wiiu_mod_store.wuhb` |
| 58 | +3. Create `SD:/wiiu/apps/cupstore/config.json` with the repos you want to use: |
| 59 | + |
| 60 | +```json |
| 61 | +{ |
| 62 | + "repos": [ |
| 63 | + "https://raw.githubusercontent.com/your-name/your-repo/main/repo.json" |
| 64 | + ] |
| 65 | +} |
| 66 | +``` |
| 67 | + |
| 68 | +4. Launch CupStore via the Homebrew Launcher |
| 69 | + |
| 70 | +> **Note:** CupStore does not come with a built-in mod repository. You need to provide your own repo URL. See [Hosting your own repo](#hosting-your-own-repo) below. |
| 71 | +
|
| 72 | +--- |
| 73 | + |
| 74 | +## Hosting your own repo |
| 75 | + |
| 76 | +CupStore loads mods from community-hosted repositories. To host your own: |
| 77 | + |
| 78 | +1. Fork [cupstore-repo-template](https://github.com/timkicker/cupstore-repo-template) |
| 79 | +2. Add your games and mods following the schema in the template README |
| 80 | +3. Point your `config.json` at your fork's raw `repo.json` URL |
| 81 | + |
| 82 | +The template includes a validation script and GitHub Action that checks your repo on every PR. |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## config.json Reference |
| 87 | + |
| 88 | +| Field | Required | Description | |
| 89 | +|-------|----------|-------------| |
| 90 | +| `repos` | ✅ | List of repo URLs to load mods from | |
| 91 | + |
| 92 | +```json |
| 93 | +{ |
| 94 | + "repos": [ |
| 95 | + "https://raw.githubusercontent.com/your-name/your-repo/main/repo.json", |
| 96 | + "https://raw.githubusercontent.com/someone-else/their-repo/main/repo.json" |
| 97 | + ] |
| 98 | +} |
| 99 | +``` |
| 100 | + |
| 101 | +Multiple repos are supported and merged at runtime. |
| 102 | + |
| 103 | +--- |
| 104 | + |
| 105 | +## Contributing |
| 106 | + |
| 107 | +PRs are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md) first. |
| 108 | + |
| 109 | +Branch strategy: `dev` is active development, `main` is stable/released. PRs go to `dev`. |
| 110 | + |
| 111 | +Tests run without devkitPro: |
| 112 | +```bash |
| 113 | +cd tests && mkdir -p build && cd build |
| 114 | +cmake .. && make && ./cupstore_tests |
| 115 | +``` |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## License & Credits |
| 120 | + |
| 121 | +Licensed under [GPLv3](LICENSE). |
| 122 | + |
| 123 | +**Libraries** |
| 124 | +- [devkitPro / WUT](https://devkitpro.org/) — Wii U toolchain and runtime |
| 125 | +- [SDL2](https://libsdl.org/) — rendering, input |
| 126 | +- [SDL2_ttf](https://github.com/libsdl-org/SDL_ttf) — font rendering |
| 127 | +- [SDL2_image](https://github.com/libsdl-org/SDL_image) — image loading |
| 128 | +- [libcurl](https://curl.se/libcurl/) — HTTP downloads |
| 129 | +- [nlohmann/json](https://github.com/nlohmann/json) — JSON parsing |
| 130 | +- [mbedTLS](https://github.com/Mbed-TLS/mbedtls) — TLS for HTTPS |
| 131 | +- [Catch2](https://github.com/catchorg/Catch2) — unit testing |
0 commit comments