MCPcopy Index your code
hub / github.com/StroopwafelCFW/wii_u_modchip

github.com/StroopwafelCFW/wii_u_modchip @v1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1 ↗ · + Follow
81 symbols 215 edges 4 files 45 documented · 56%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

wii_u_modchip

A (WIP) Wii U modchip based on de_Fuse, a flaw in the Wii U's OTP eFuse readout state machine.

How does it work?

A full writeup is available here. However, the short version is as follows:

In order to accommodate eFuse-based JTAG lockout (and due to other considerations), eFuse bits must be buffered into a register file immediately following NRST, before the internal reset can be released. The eFuse sense state machine latches at a rate of 4 bits per cycle, directly off the 27MHz XTALCLK. Every other rising edge, a byte is written into the register file, starting from the least significant byte of the current u32.

An internal counter is used to keep track of the remaining bytes to be read into the register file. While the eFuse register file is reset to zero with NRST, the internal counter is not: By asserting NRST after N bytes have been read, only 0x400-N bytes will be read on the subsequent boot.

By asserting NRST just before the final byte has been read (1830 cycles), all eFuses will read entirely zero, including the JTAG lockout fuse. This allows trivial, unsigned and unencrypted boot1 execution, with no SEEPROM anti-rollback.

NRST waveform

Core symbols most depended-on inside this repo

write
called by 69
pico_defuse/miniterm_defuse.py
key_description
called by 17
pico_defuse/miniterm_defuse.py
dump_port_settings
called by 14
pico_defuse/miniterm_defuse.py
join
called by 9
pico_defuse/miniterm_defuse.py
flush
called by 7
pico_defuse/miniterm_defuse.py
nrst_sense_set
called by 7
pico_defuse/src/pico_defuse.c
upload_file_by_name
called by 6
pico_defuse/miniterm_defuse.py
stop
called by 4
pico_defuse/miniterm_defuse.py

Shape

Method 54
Function 14
Class 13

Languages

Python88%
C12%

Modules by API surface

pico_defuse/miniterm_defuse.py70 symbols
pico_defuse/src/pico_defuse.c10 symbols
monitor.py1 symbols

For agents

$ claude mcp add wii_u_modchip \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page