RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Wii U Emulator script (PC)

    Scheduled Pinned Locked Moved Ideas and Development
    wii unintendo wii uwii u emulator
    2 Posts 1 Posters 347 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fadingrose
      last edited by

      Wii U emulator script (PC)

      We have a partially working script to get the Cemu Wii U emulator working in Retropie

      Took a few hours of frustration first trying to get it to build and run under Linux Mint before i worked on the Retropie script to get it into Retropie and we have success. The emulator gets pulled from github, compiles, builds, installs, makes and so on and then sets up a new system in Retropie.

      PLEASE NOTE THIS IS FOR PC!!!

      Currently this is an install script for PC and Raspberry pi's are untested (not sure if there is an arm version??) so please be aware, if there is an Arm version and you want to have a go at building etc go ahead although i'm not sure if the Pi is even capable of running Wii U games at playable speeds at the present moment let alone Wii, maybe the Pi5? or maybe wait for a few more Pi releases so a good few years from now. The script is below for anyone to test and report back any issues or support.

      Here is the script

      #!/usr/bin/env bash
      
      rp_module_id="cemu"
      rp_module_desc="Cemu - Wii U Emulator"
      rp_module_help="ROM Extensions: .rpx .wud .wux .iso .rpl\n\nCopy your Wii U games to \$romdir/wiiu"
      rp_module_licence="https://github.com/cemu-project/Cemu/blob/main/LICENSE.txt"
      rp_module_repo="https://github.com/cemu-project/Cemu"
      rp_module_section="exp"
      rp_module_flags="!all x86"
      
      function depends_cemu() {
          local depends=(
              build-essential
              cmake
              curl
              clang-15
              freeglut3-dev
              git
              libbluetooth-dev
              libgcrypt20-dev
              libglm-dev
              libgtk-3-dev
              libpulse-dev
              libsecret-1-dev
              libsystemd-dev
              libtool
              nasm
              ninja-build
              libusb-1.0-0-dev
              libarchive-dev
              llvm-15
          )
          getDepends "${depends[@]}"
      }
      
      function sources_cemu() {
          gitPullOrClone "$md_build" https://github.com/cemu-project/Cemu main
      }
      
      function build_cemu() {
          cmake -S . -B build \
              -DCMAKE_BUILD_TYPE=Release \
              -DCMAKE_C_COMPILER=/usr/bin/clang-15 \
              -DCMAKE_CXX_COMPILER=/usr/bin/clang++-15 \
              -DCMAKE_AR=/usr/bin/llvm-ar-15 \
              -DCMAKE_RANLIB=/usr/bin/llvm-ranlib-15 \
              -G Ninja || error "CMake configuration failed"
      
          cmake --build build || error "Build failed"
      
          if [[ ! -f "$md_build/bin/Cemu_release" ]]; then
              error "Cemu binary not found, build might have failed"
          fi
      
          md_ret_require="$md_build/bin/Cemu_release"
      }
      
      function install_cemu() {
          md_ret_files=(
              'bin/Cemu_release'
              'LICENSE.txt'
          )
      
          # Write the launcher script
          cat > "$md_inst/cemu-launch.sh" << '_EOF_'
      #!/bin/bash
      
      /opt/retropie/emulators/cemu/Cemu_release "$@"
      _EOF_
      
          chmod +x "$md_inst/cemu-launch.sh"
      }
      
      function configure_cemu() {
          mkRomDir "wiiu"
      
          local launch_prefix=""
          isPlatform "kms" && launch_prefix="XINIT:"
      
          mkdir -p "/opt/retropie/emulators/cemu"
      
          # Generate default config file if it doesn't exist
          local config_file="/opt/retropie/emulators/cemu/settings.toml"
          if [[ ! -f "$config_file" ]]; then
              cat > "$config_file" << _EOF_
      [General]
      fullscreen = true
      language = "en"
      _EOF_
              chown $user:$user "$config_file"
          fi
      
          if [[ "$md_mode" == "install" ]]; then
              mkUserDir "$md_conf_root/cemu"
              mkUserDir "$md_conf_root/cemu/$md_id"
              moveConfigFile "$home/.$md_id" "$md_conf_root/cemu/$md_id"
          fi
      
          addEmulator 1 "$md_id" "wiiu" "$launch_prefix$md_inst/cemu-launch.sh %ROM%"
          addSystem "wiiu" "Nintendo Wii U" ".rpx .wud .wux .iso .rpl"
      }
      
      

      At the moment currently i have got this far

      1 - Emulator builds and installs and sets up a new system in Retropie
      2 - When you add a rom to the roms folder and run a game like any other system it just shows the emulator in a window

      It's progress but now i need to work out arguments and other such things. Feel free to take it, test it, add feedback and so on.

      A few screenshots below of my progress

      Screenshot from 2025-04-23 19-37-13.png

      Screenshot from 2025-04-23 19-37-28.png

      Screenshot from 2025-04-23 19-37-40.png

      Screenshot from 2025-04-23 19-37-50.png

      1 Reply Last reply Reply Quote 0
      • F
        fadingrose
        last edited by

        The emulator doesn't come with a standard bios, every game has to be decrypted with a key that matches the game and region so the emulator can read the game data. A user will have to source a set of up to date keys which are a key.txt file.

        Some arguments below i found

        --- Launch options ---
        -g Path of game
        -f Launch in fullscreen mode
        -ud Render output upside-down
        --- Extractor tool ---
        -e Path to WUD or WUX file for extraction
        -p Path of file to extract (for example meta/meta.xml)
        -o Output path for extracted file.

        Just figuring out the default key.txt location so i can run a game and then work out how to get the keys stored under /BIOS/wiiu and have the emulator automatically see them in the location.

        1 Reply Last reply Reply Quote 1
        • First post
          Last post

        Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

        Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.