CAT-DEV

Revision as of 20:00, 21 December 2024 by Mythra (talk | contribs) (fix some typos, add in MION FW version table starting point.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The CAT-DEV (Cafe Tool for Development; Product Code: WUT-001) was the main development system for the Wii-U. It can come in black, white, or tan/gold colors in a small rectangular box depending on the version. Most CAT-DEV's will be 'beige' which is most commonly used for the later final revisions. Each CAT-DEV including full Wii-U hardware with 4Gbs of RAM (the retail system contained only 2Gbs of RAM), as well as a Debugger, Optical Disc Emulation, and Host I/O Hardware. Later revisions also contained an internal HDD. The CAT-DEV features all the ports and functionality found on a retail system (minus the disk drive), as well as 2 additional USB ports, three additional Wired RF serial ports, an internal hard drive, and in later versions a LAN Port. The CAT-DEV System can be configured to be in one of several boot modes. The boot mode recommended in many of the SDK Docs requires a host system attached, along with a network connection for both the CAT-DEV, and the Host PC running the associated SDK. Each SDK version only has a certain documented list of CAT-DEV's supported. The typical development flow using a Cat-DEV is to plug it into the network, and run "cafeon", or "caferun" from the Cafe SDK to emulate a full filesystem on the host PC. Developers could add, and remove directories dynamically to add titles and directories. Debug output is usually streamed over the network connection, but can also be gathered over a USB-Serial connection.

Known Versions

  • CAT-DEV V1 (~late 2010 internal, early 2011 external, Latte A11/A12?) - similar appearance to NDEV, not bundled with DRC (externally at least), no photos available (unknown SDK Support)
  • CAT-DEV V2 (~early-mid 2011, Latte A2X?) - bundled DRC, one known system sold on ebay, where pictures came from, last system without an ethernet port, referred to as "TOUCAN" internally in the SDK Docs. (unknown SDK Support, but even modern SDKs have code paths for "TOUCANS".)
  • CAT-DEV V3 (July 2011, Latte A3X?) - transitioned from USB to Ethernet for host i/o, white casing, added internal hard disk; at this pointed all boards are referred to as "MION" in reference to the board that the host pc would communicate with, had the hard drive, and did all the emulation (Cafe SDK 2.0.0-Cafe-SDK 2.0.4).
  • CAT-DEV V4 (?, Latte A4X?) - "Increased Operating frequency of the CPU by 25%", "The speed for writing to memory when using locked-cache DMA is the same as final.", "Speed of transfer from MEM1 to MEM2 is final.", "L2 Cache Fetch doubled when using lock-cached DMA". (CafeSDK 2.0.0-??? ; Most Likely Latest).
  • CAT-DEV MP1 (?, Latte A5X?) - photos not available(?) (CafeSDK 2.0.0-??? ; Most Likely Latest)
  • CAT-DEV MP2 (final. Latte A5X) - beige casing, final revision (CafeSDK 2.0.0-Latest)

There are also Latte B1X CAT-DEVs (or at least IOSU has support for that configuration), but it's not clear if they were distributed externally or not.

CAT-DEV EV

The CAT-DEV EV (also known as the CAFE EV, EV board or just EV) was a variant of the CAT-DEV used internally at Nintendo. It probably had additional debug features similar to the NDEV1; socketed chips, JTAG connectors, external clock connectors, etc.

There's also an "EV_Y" variant which was introduced with Latte A5X/CAT-DEV MP2.

Boards

Known CAT-DEV MP2 Wii-U versions: WUP-DEV-X8, WUP-DEV-X9, and WUP-DEV-X10.

MION: "CATHDD-X5"

Serial Port Settings

Baud Rate: 57600

       termios.c_cflag = (termios.c_cflag & !libc::CSIZE) | libc::CS8;

       termios.c_cflag = termios.c_cflag & !libc::PARODD & !libc::PARENB;

       termios.c_cflag &= !libc::CSTOPB;

MION

The CAT-DEV's from V3 onwards started featuring a "MION" board (short for "Multi I/O Network") that contained the internal hdd of the later units, as well as is the device that managed the LAN port connection. It is the real brains of driving the power, serial output, and filesystem (in certain boot modes) for the CAT-DEV. When developers are interacting with the CAT-DEV through tools in the SDK like "cafeon", "findbridges", etc. They're actually interacting with the MION board directly. There are three boot modes available on MION CAT-DEVs: "PCFS", "DUAL", and "HDD Reader Mode". HDD Reader Mode is the only mode that allows the actual Cafe OS, and "wii-u" portion to boot when first receiving power. In "PCFS", or "DUAL" mode the MION will not power on the actual Cafe OS until a HTTP Request is received to power on the underlying OS. In many cases you must also spin up several TCP, and UDP services for the device to interact with, but every known MION has a series of flags you can set to force booting when 'PCFS' is turned on. MIONs are also how developers would 'find' the cat-dev on a network since there was no visual indicators when first powering them on. They did this through UDP Broadcast packets on port 7974. They also have support for fetching the internal memory, and disk state (although only 512 bytes at a time).

One of the services exposed by the MION is telnet, which requires a username, and password. The username is "mion", and the password is: "/Multi_I/O_Network/" (this username/password can also be used on the web interface). Although the telnet doesn't seem to expose anything incredibly useful, it is possible to get logs from the MION board itself, as opposed to the logs coming from CafeOS. This username/password is consistent across all known versions of MION Firmwares, and seems to be added on every boot even if it's removed. The MION has the following known Versions:

MION FW Version SDK Release Released At Notes
0.00.13.58
0.00.13.74
0.00.14.70
0.00.14.77 Introduced "power_on_v2" HTTP API, and the ability to take control over someone else's MION, and added proper support for overriding booting out of PCFS when PCFS is enabled.
0.00.14.80 2.12.13