GaryOderNichts/OpenDMCUFirm
GaryOderNichts/OpenDMCUFirm has 47 GitHub stars and 4 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-15 06:21 UTC. Last push 2026-07-01.
Measured star growth
- in 24h
- +1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
A Wii U DMCU firmware reimplementation and replacement
Creative & MediaREADME.md
OriginalOpenDMCUFirm
A Wii U DMCU firmware reimplementation and replacement.
Overview
The DMCU (Display Microcontroller Unit) is a M68HC11 compatible microcontroller part of many AMD GPUs. On desktop systems it is involved in eDP features like Adaptive Backlight Modulation and Panel Self Refresh. On the Wii U it is used for backwards compatibility with the Wii's Video Interface.
The Wii U's DMCU firmware reads the VI state from a hardware shim mapped in the graphics controller register space and configures the graphics controller accordingly. It sets up display output and configures things like deinterlacing, scaling and overscan.
Goals
This project reimplements the Wii U DMCU firmware based on reverse engineering of the original firmware. It is not a byte-for-byte matching decompilation.
This project builds a working DMCU firmware for the Wii U to use in Wii mode. It can be loaded using evWii.
The goal of this project is to gain an insight into what the DMCU firmware does and potentially improve upon it. It is currently still work-in-progress, potential issues are expected.
Building
OpenDMCUFirm is built using GCC 3.3.6-m68hc1x-20060122, one of the last GCC versions with working M68HC11 support. You can download the GNU 68HC11/12 packages here: http://gnu-m68hc11.vacs.fr/m68hc11_pkg_zip.php
A Dockerfile is provided with the repo to easily set up the toolchain. To build the project using docker, follow the steps below.
# Build using image from docker hub
docker run -it --rm -v ${PWD}:/project garyodernichts/dmcubuilder make PREFIX="wine /gnu-68hc1x/app/bin/m6811-elf-" SUFFIX=".exe"
# or alternatively build the docker image yourself
docker build . -t dmcubuilder
# and run make
docker run -it --rm -v ${PWD}:/project dmcubuilder make PREFIX="wine /gnu-68hc1x/app/bin/m6811-elf-" SUFFIX=".exe"
The resulting dmcu.d.hex file should be placed in the wiiu folder on your SD Card and loaded using evWii's "Load DMCU Firmware from SD Card" option.
References
About the DMCU:
- https://lists.freedesktop.org/archives/amd-gfx/2018-September/026550.html
- https://fail0verflow.com/blog/2014/console-hacking-2013-omake/
Graphics Controller Registers: