libogc‑rice
libogc-rice is a devkitRice-specific fork of libogc, providing GameCube/Wii hardware access such as file I/O, networking, controllers, and memory cards.

Overview
libogc-rice is a fork of the existing GameCube/Wii C library libogc, adapted for devkitRice, providing access to various hardware functions such as file I/O, networking, controllers, and memory cards on GameCube and Wii. This project focuses on extending the network capabilities of retro consoles by integrating WIZnet iEthernet chips.
Key Features
- Unified Hardware Access: Offers a single API for I/O with multiple devices such as memory cards, optical drives, and controllers, while supporting a stable build environment through devkitRice.
- Network Stack: Provides lwIP-based networking functionality, allowing W5500, W6100, and W6300 WIZnet chips to be used as network interfaces instead of the previously limited ENC28J60 Broadband Adapter. Supports various protocols such as TCP/UDP and IPv4/IPv6, enabling file transfers, game updates, and more.
- Open-source Development Platform: Designed in C language, and when used with the ioLibrary driver, makes WIZnet chip control straightforward. The source code is publicly available on GitHub, enabling anyone to modify and contribute.
- Expandable Applications: Beyond game loading, it can be used for online multiplayer in homebrew games, as an IoT gateway using retro consoles, or for network-based memory card backups, opening the door to new ideas.
WIZnet Chips Used and Features
- W5500: A hardware TCP/IP stack chip connecting to an external MCU via SPI interface, with 8 independent sockets and 32KB buffer. Integrates a 10/100 Ethernet MAC/PHY, making it easy to add Internet functionality.
- W6100: An enhanced version of W5500 with IPv6 support, featuring a dual IPv4/IPv6 stack, 8 sockets, 32KB buffer, integrated 10Base-T/100Base-TX PHY, and low-power mode. Enables IPv6 network experiments even on the GameCube.
- W6300: A high-performance TCP/IP offload engine chip with a 150 MHz system clock and QSPI interface, delivering over 90 Mbps network performance. Supports 64KB buffer and 8 sockets, making it ideal for high-speed applications such as screen streaming or large data transfers.
What’s New from WIZnet’s Perspective
- Bringing IPv6 to Retro Consoles: W6100/W6300 chips enable IPv6 networking on GameCube/Wii, providing a testbed for next-generation Internet environments.
- Broadband Adapter Replacement: By directly connecting chips such as W5500 to retro consoles, the need for dedicated adapters is removed, reducing cost and complexity and making it more accessible to the user community.
- Improved Development Productivity: Using ioLibrary drivers and the devkitRice toolchain shortens network firmware development time and allows for rapid testing of new C-based features.
- Innovative Application Ideas: Utilizing W6300’s high bandwidth and QSPI interface to turn the GameCube into a network media player, or experimenting with IPv6 tunneling on W6100, enables groundbreaking projects.
This project demonstrates the synergy between retro console hardware and WIZnet iEthernet chips, and is expected to inspire more application cases in the open-source community.
Project link: https://github.com/extremscorner/libogc-rice