Skip to content

Releases: centollOS/SwitchWaker

SwitchWaker 0.1.4

SwitchWaker 0.1.4 Pre-release
Pre-release

Choose a tag to compare

@Pulpparty Pulpparty released this 08 Oct 21:15

SwitchWaker runs The Wind Waker (GameCube, GZLE01 revision 0) natively on a Switch with custom firmware: the decompiled game, on Aurora. No emulation.

No game inside, no binaries. Every build contains code generated from your own disc, so you build it on your computer with one script and copy the result to your SD card. Do not share what you build.

Install

  1. Download SwitchWaker-v0.1.4.zip below and unzip it.
  2. Follow INSTALL.md: with Docker, git and Python installed, one command builds everything from your disc (an uncompressed .iso):
    scripts/switch/make_sd.sh --disc /path/to/GZLE01.iso
    The first build takes an hour or more; later ones minutes.
  3. Copy build/sd/ to the root of the SD card and start the Homebrew Menu in title mode (hold R while starting any game). The first start prepares the shaders once (8 to 10 minutes).

Updating from 0.1.x: build with --no-disc and copy switchwaker.nro and initial_pipeline_cache.db over the old ones. Saves, settings and prepared shaders stay. An old native/env.txt is moved into settings.ini on the first start and kept as env.txt.old.

What's new since 0.1.3

  • Every option lives in the options menu (settings.ini); the Switch no longer reads env.txt. Developer variables without a menu row go in a [dev] section of settings.ini.
  • One log per session in sdmc:/switch/switchwaker/native/logs/ (switchwaker_<date>_<time>.log, the newest is the last run); the 10 most recent are kept, so logs cannot fill the card. Include the newest one in a report.
  • Options menu → Depuración: hitch-line threshold and HD texture statistics (both off by default on the Switch).
  • Network debug server for developers, off by default (Depuración → Servidor de depuración, at the next start): deploy a build, follow the log, take screenshots and warp from the computer. The game opens no network port unless you turn it on. Same server as SwitchWakerHD's.
  • Internal: finished A/B test switches removed (no change for players); the Dawn patch set now applies cleanly on a second configure.

Credits, licenses and how AI was used: see the README.

SwitchWaker 0.1.3

SwitchWaker 0.1.3 Pre-release
Pre-release

Choose a tag to compare

@Pulpparty Pulpparty released this 07 Oct 23:11

SwitchWaker runs The Wind Waker (GameCube, GZLE01 revision 0) natively on a Switch with custom firmware: the decompiled game, on Aurora. No emulation.

No game inside, no binaries. Every build contains code generated from your own disc, so you build it on your computer with one script and copy the result to your SD card. Do not share what you build.

Install

  1. Download SwitchWaker-v0.1.3.zip below and unzip it.
  2. Follow INSTALL.md: with Docker, git and Python installed, one command builds everything from your disc (an uncompressed .iso):
    scripts/switch/make_sd.sh --disc /path/to/GZLE01.iso
    The first build takes an hour or more; later ones minutes.
  3. Copy build/sd/ to the root of the SD card and start the Homebrew Menu in title mode (hold R while starting any game). The first start prepares the shaders once (8 to 10 minutes).

What's new since 0.1.2

  • Install kit for players: scripts/switch/make_sd.sh checks the disc (GZLE01 revision 0), builds the NRO in containers and lays out switch/switchwaker/ for the SD card (NRO, pipeline list, a copy of the disc; --no-disc for updates). INSTALL.md is the step-by-step guide (Windows through WSL, macOS, Linux).
  • Release zip: the source of this version with INSTALL.md at the top, checked by scripts/release/guard.py (no disc data, no builds, no keys).

Everything from 0.1.2 (defaults for players: no FPS counter, no performance logging, USB port free) is included.

Credits, licenses and how AI was used: see the README.

SwitchWaker 0.1.2

SwitchWaker 0.1.2 Pre-release
Pre-release

Choose a tag to compare

@Pulpparty Pulpparty released this 07 Oct 22:57

Small release on top of 0.1.1: the Switch build's defaults are now meant for players, not for development.

Source only, as before: there are no binaries to download. Every build compiles in data generated from your own disc. Build and install steps are in the README.

Changes

  • No FPS counter by default. The frame-rate panel in the top-left corner was on by default on the Switch. It is now off; turn it on in the options menu (Minus) under Rendimiento / Performance > "Contador de FPS" / "FPS counter", or with COS_FPS_OVERLAY=1 in env.txt.
  • No performance logging by default. The Switch no longer measures every frame and writes [cos] perf / [cos] hitch lines to the log every two seconds. COS_PERF_EVERY=60 and COS_HITCH_MS=50 in env.txt bring them back for a measuring run (switch/native/env.example.txt has a ready-made block).
  • The USB port stays free. The live log over USB (for scripts/switch/usb_log.py) is now off by default, so the game no longer holds the console's USB port while it runs (SysDVR over USB, for example, can use it). The log file on the SD card is written as before. COS_USB_LOG=1 in env.txt, or Depuración / Debug > "Registro en directo por USB" / "Live log over USB", turns it back on at the next start.
  • Options menu tidied up. Gráficos / Graphics and Rendimiento / Performance keep the options meant for players; the developer rows (perf log interval, and the real-time shadow A/B test, now labelled as such) moved to Depuración / Debug.
  • Travel list: Ganon's Tower was removed from Depuración / Debug > "Viajar a un escenario..." / "Travel to a stage...": warping there crashed on the Switch, because the stage expects the story state of the end of the game.
  • The stall watchdog (the game ends with a report after 90 s without a frame) now restarts its count after the console suspends the game, for example while it sits in the HOME menu.

Settings you already saved from the menu are kept: if settings.ini has COS_FPS_OVERLAY=1 (you turned the counter on yourself), it stays on. Lines in env.txt still win over the menu.

To update, replace sdmc:/switch/switchwaker/switchwaker.nro. Saves, settings and caches stay.

SwitchWaker 0.1.1

SwitchWaker 0.1.1 Pre-release
Pre-release

Choose a tag to compare

@Pulpparty Pulpparty released this 07 Oct 19:19

Bug-fix release on top of 0.1.0. Both changes were tested on a real Switch.

Source only, as before: there are no binaries to download. Every build compiles in data generated from your own disc. Build and install steps are in the README.

Fixes

  • Picto box photos work on the Switch (bug B38). Taking a photo used to crash the game. On the Switch, Aurora is built with GCC and the port's own code with clang, and Aurora's math types have a different alignment under each compiler. That gave one structure, GXState, two different layouts, so the photo code read the wrong memory. The lookup now runs inside Aurora (Aurora patch 0017).

Changes

  • Options menu: Minus (−) alone opens and closes it on the Switch (it was ZL+ZR+Minus). On the Mac and Linux it is still F1 or L+R+Z.
  • The NRO now shows its version in the Homebrew Menu from the git tag, the same version the HOME forwarder shows.

To update, replace sdmc:/switch/switchwaker/switchwaker.nro. Saves, settings and caches stay.

SwitchWaker 0.1.0

SwitchWaker 0.1.0 Pre-release
Pre-release

Choose a tag to compare

@Pulpparty Pulpparty released this 07 Oct 17:58

First tagged version of SwitchWaker: a native port of the community decompilation of a 2002 GameCube adventure game (disc GZLE01, USA, revision 0) to the Mac, Linux and the Switch (homebrew). No emulation: the game is compiled from source and drawn with Aurora.

Source only. There are no binaries to download: every build compiles in headers generated from your own disc, so you build it yourself and must not share the result. See the README for building and installing.

What's in it

  • Plays on the Mac and the Switch, with sound, controllers, memory-card saves and an in-game options menu (ZL+ZR+Minus on the Switch, F1 on the Mac and Linux), in Spanish or English after the console's language (COS_LANG=es|en forces one).
  • Switch: sdmc:/switch/switchwaker/switchwaker.nro, stock CPU clock (1020 MHz), official GPU profiles, a first-start shader preparation screen (about 8-10 minutes, only once), an optional HOME-screen forwarder, optional HD texture packs (Dolphin format, yours to supply).
  • Linux build (Vulkan, OpenGL ES fallback) and container builds for any OS.

Changes in this version

  • New name: SwitchWaker. The NRO, the SD folder (sdmc:/switch/switchwaker/), the logs, the forwarder and the Mac/Linux binary all use it. If you used the earlier folder sdmc:/switch/centollos/, rename it to switchwaker and the NRO to switchwaker.nro. If the HOME icon keeps the old name after reinstalling the forwarder, uninstall the old software first.
  • The options menu is now in Spanish or English.
  • README: step-by-step Switch install, credits to the projects this builds on, and how AI was used.

Known limits

  • The Switch does not yet hold a stable 30 fps everywhere.
  • Played by hand mostly on the opening areas; the rest is covered by automated sweeps. Known bugs: docs/NATIVE_PORT_PLAN.md, "Known bugs".

Credits

Built on zeldaret/tww, snrubrm/tww, Aurora, Dusklight, Dolphin's DSP HLE and elliotttate's recompilation. The project's own code was written with an AI coding agent and reviewed line by line by the authors; see the README, "How it was made: AI use".