Skip to content

ColinGamez/jwc24

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JWC24

JWC24 is my project to revive discontinued Japanese WiiConnect24 services for 4.3J Wii software. The goal is one replacement WC24 platform that can support multiple original channels without modifying or redistributing their WADs.

The first channel I brought back is TV no Tomo Channel G-Guide for Wii (HBNJ). It now boots from a clean Japanese v512 WAD in Dolphin, completes its original setup flow, downloads data through the Wii's native WC24 scheduler, and displays a current Japanese television guide.

This repository documents and develops the replacement service. It does not contain Nintendo software, WADs, NAND data, private keys, or downloaded guide data.

Japan-first. Original-channel-first. Native WC24.

JWC24 is an independent implementation built from my own testing and reverse engineering. It is not a WiiLink24 fork, frontend, or server clone, and it is not affiliated with WiiLink24.

What defines this project is its focus:

  • 4.3J comes first. JWC24 is designed around Japanese system software and Japan-only channels instead of treating them as later regional additions.
  • Original WADs stay original. The target is to revive clean channel releases by recreating the services and data formats they expect.
  • The native WC24 path matters. Downloads go through Dolphin's emulated IOS WC24 scheduler, task table, encrypted delivery, and VFF storage.
  • One foundation, multiple channels. TV no Tomo is the first proof, while the shared transport is being built for other 4.3J WC24 applications and Wii Mail.
  • Reverse engineering is part of the result. Parsers and independent validators document the recovered formats instead of hiding channel-specific behavior behind replacement screens.

The short version: JWC24 is about preserving how Japan's original Wii channels actually worked, then giving them new data without replacing their identity.

What I have working

  • The original HBNJ WAD runs without channel binary patches.
  • Dolphin's WC24 scheduler downloads native header.bin, epg.bin, and str.bin files from JWC24.
  • JWC24 produces the channel's original WC24 AES-OFB envelope, Nintendo LZ10 compression, and HDPK data structures.
  • The guide covers all 54 Japanese broadcast areas and 376 terrestrial services.
  • Area-coded requests receive compact regional payloads; Gunma currently has 11 stations and 3,475 programs across the channel's full eight-day window.
  • Current titles, times, genres, and Japanese program descriptions are packed into their native TV no Tomo records.
  • The original genre-search table is populated with 12 Japanese categories, and the date carousel receives eight consecutive broadcast days.
  • The original activation, query, popularity, and synchronization CGI calls receive the response contracts expected by the channel.
  • A daily job collects, validates, packs, independently checks, and atomically publishes a new guide.
  • The shared Wii Mail service implements account registration, Dolphin's challenge/HMAC check, multipart sending, persistent recipient queues, multipart receiving, and deletion independently of any one channel.

Why it is more than a TV no Tomo patch

The shared code in jwc24/ handles WC24 task inspection, safe provisioning, payload delivery, encryption, compression, and validation. TV no Tomo lives in channels/hbnj/ as the first channel-specific adapter.

That split is intentional: future 4.3J channels can have their own manifest, data generator, validators, and CGI behavior while reusing the same WC24 transport and mail service.

original 4.3J channel
        |
        v
Dolphin IOS /dev/net/kd/request
        |
        v
native WC24 download task
        |
        v
JWC24 transport and channel adapter
        |
        v
validated replacement data

Current project status

TV no Tomo has reached its real program-guide UI with current listings. The latest build validated:

  • 54 broadcast areas
  • 376 stations
  • 123,803 programs across eight broadcast days
  • 104,665 program descriptions
  • 12 native genre-search categories
  • every header-to-EPG station key
  • every EPG-to-string record index
  • every regional native payload

The next work is focused on visual testing of the completed genre and date flows, incoming-mail support in Dolphin's KD implementation, friend registration, easier local server setup, and adapters for more Japanese WC24 channels.

Repository layout

  • jwc24/ — reusable WC24 transport, task, account, and server code
  • channels/hbnj/ — TV no Tomo manifest, service behavior, and documentation
  • tools/ — guide collection, native packing, validation, and inspection
  • .github/workflows/ — source and package checks

Private runtime material and generated data are deliberately excluded from Git.

Development notes

The project currently targets Dolphin and Python 3.11 or newer. The daily HBNJ build is:

py -3 tools\update_hbnj_daily.py

That command collects eight days for all regions into private staging, validates the complete guide and native size ceilings, creates HDPK payloads, independently parses them, and publishes only after every check passes. A failed build leaves the previous live guide untouched.

The shared command-line tools can audit WC24 state, inspect the local account, validate channel manifests, provision tasks, and run the replacement server:

py -3 -m jwc24 audit --dl-list "$env:APPDATA\Dolphin Emulator\Wii\shared2\wc24\nwc24dl.bin"
py -3 -m jwc24 account --config "$env:APPDATA\Dolphin Emulator\Wii\shared2\wc24\nwc24msg.cfg"
py -3 -m jwc24 validate-manifest channels\hbnj\channel.json
py -3 -m jwc24 serve channels\hbnj\channel.json --nand-root "$env:APPDATA\Dolphin Emulator\Wii"
py -3 -m jwc24 mail-serve --data-dir private\mail
py -3 -m jwc24 mail-config --config "$env:APPDATA\Dolphin Emulator\Wii\shared2\wc24\nwc24msg.cfg" --base-url http://127.0.0.1:8081 --data-dir private\mail

Provisioning defaults to a dry run, creates timestamped backups when applied, and refuses to overwrite unrelated occupied task slots. The original WAD is always treated as immutable input.

mail-config is also dry-run by default. It creates or reuses a private local account, reports every URL change, recalculates the WC24 config checksum, and backs up nwc24msg.cfg before --apply. Private credentials and queued MIME messages live under the ignored data directory.

The server-side receive/delete protocol is implemented and independently tested. Dolphin 2606 still skips WC24 download entries whose destination filename is empty, so importing received mail into wc24recv.mbx requires a Dolphin KD implementation patch; it does not require modifying a channel WAD.

Project boundaries

The public repository intentionally excludes:

  • WADs, tickets, TMDs, extracted content, and NAND files
  • Wii identities, MAC addresses, WC24 keys, and emulator saves
  • collected schedules and generated HDPK payloads
  • TLS private keys, rollback snapshots, and reverse-engineering dumps

JWC24 is still early reverse-engineering software. I develop it against separate Dolphin data with backups and keep all copyrighted or machine-specific material outside the repository.

About

a wc24 project for wii/dolphin, not affiliated with any other service/platform.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages