emulator: PrimeHack type: standalone core_classification: enhanced_fork source: "https://github.com/shiiion/dolphin" upstream: "https://github.com/dolphin-emu/dolphin" profiled_date: "2026-03-26" core_version: "1.0.8" display_name: "PrimeHack (Dolphin fork for Metroid Prime)" systems: [nintendo-gamecube, nintendo-wii] analysis_date: "2026-03-26" analysis_commit: "b10f147 (depth=1)" mode: standalone # PrimeHack is a Dolphin fork by shiiion adding mouselook controls for Metroid Prime Trilogy. # BIOS loading code is identical to upstream Dolphin. # File paths relative to Dolphin User directory: # Standalone: User/GC/ and User/Wii/ # Sys/ is checked as fallback when not found in User/. pack_structure: standalone: "" data_directories: - ref: dolphin-sys destination: "Sys" source_ref: "Source/Core/Common/CommonPaths.h:128-141" files: # -- GameCube IPL (Boot ROM) -- # Region-specific, placed in GC//IPL.bin # Checked in User/GC// then Sys/GC// - name: "IPL.bin" path: "GC/USA/IPL.bin" size: 2097152 required: false mode: standalone hle_fallback: true note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts" source_ref: "Source/Core/Common/CommonPaths.h:138, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:109-110" - name: "IPL.bin" path: "GC/EUR/IPL.bin" size: 2097152 required: false mode: standalone hle_fallback: true note: "GameCube PAL boot ROM" source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:184" - name: "IPL.bin" path: "GC/JAP/IPL.bin" size: 2097152 required: false mode: standalone hle_fallback: true note: "GameCube NTSC-J boot ROM. JAP is the legacy directory name" source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:186" # -- DSP ROMs -- # Used by DSP LLE for accurate audio. # PrimeHack ships free replacement ROMs, but real dumps improve accuracy. # Searched in: User/GC/ then Sys/GC/ - name: "dsp_rom.bin" path: "GC/dsp_rom.bin" size: 8192 required: false mode: standalone hle_fallback: true validation: [size] known_hash_adler32: "0x66f334fe" adler32_byteswap: true note: "DSP instruction ROM for LLE audio. Free replacement (v0.4) included" source_ref: "Source/Core/Common/CommonPaths.h:135, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:87-117" - name: "dsp_coef.bin" path: "GC/dsp_coef.bin" size: 4096 required: false mode: standalone hle_fallback: true validation: [size] known_hash_adler32: "0xf3b93527" adler32_byteswap: true note: "DSP coefficient ROM for LLE audio. Free replacement included" source_ref: "Source/Core/Common/CommonPaths.h:136, Source/Core/Core/DSP/DSPCore.cpp:32-38" # -- GameCube Fonts -- # Bundled free alternatives exist but have padding differences causing misplaced text. # If IPL dump is present, fonts are extracted from it instead (preferred). # Searched in: Sys/GC/ - name: "font_western.bin" path: "GC/font_western.bin" size: 9589 required: false mode: standalone hle_fallback: true note: "Windows-1252 font for GC/Wii text rendering. Free alternative bundled, real one from IPL dump preferred" source_ref: "Source/Core/Common/CommonPaths.h:132, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131,203-218" - name: "font_japanese.bin" path: "GC/font_japanese.bin" size: 303693 required: false mode: standalone hle_fallback: true note: "Shift-JIS font for Japanese text. Free alternative bundled, real one from IPL dump preferred" source_ref: "Source/Core/Common/CommonPaths.h:133, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130" # -- GBA BIOS (for GC-GBA link) -- # Used by integrated mGBA core for GameCube-GBA connectivity. # Loaded from User/GBA/gba_bios.bin. - name: "gba_bios.bin" path: "GBA/gba_bios.bin" required: false mode: standalone hle_fallback: true note: "GBA BIOS for GC-GBA link feature (uses integrated mGBA). Path configurable in settings" source_ref: "Source/Core/Common/CommonPaths.h:144, Source/Core/Core/HW/GBACore.cpp:344-361" # -- Wii System Files -- - name: "SYSCONF" path: "Wii/shared2/sys/SYSCONF" required: false mode: standalone hle_fallback: true note: "Wii system configuration. Auto-generated by PrimeHack, can be imported from NAND backup" source_ref: "Source/Core/Common/CommonPaths.h:117, Source/Core/Core/WiiRoot.cpp:266" - name: "setting.txt" path: "Wii/title/00000001/00000002/data/setting.txt" size: 256 required: false mode: standalone hle_fallback: true note: "Wii region/language settings. Auto-generated during Wii boot emulation" source_ref: "Source/Core/Common/CommonPaths.h:152, Source/Core/Core/Boot/Boot_BS2Emu.cpp:377-454" # -- Wii NAND Backup (BootMii) -- - name: "nand.bin" path: null required: false mode: standalone hle_fallback: true note: "BootMii NAND backup. Can be imported to populate Wii NAND with channels, saves, system menu" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:26-89" - name: "keys.bin" path: null size: 1024 required: false mode: standalone hle_fallback: true note: "OTP/SEEPROM dump (Wii encryption keys). Needed if not appended to nand.bin for NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:19,76-88" # -- Wii SD Card Image -- - name: "WiiSD.raw" path: "Load/WiiSD.raw" required: false mode: standalone hle_fallback: true note: "Virtual SD card image for Wii homebrew. Auto-created, supports SD/SDHC up to 4GB" source_ref: "Source/Core/Common/CommonPaths.h:149" # -- Gecko Code Handler -- - name: "codehandler.bin" path: null required: false mode: standalone hle_fallback: true note: "Gecko/Ocarina cheat code handler. Shipped with PrimeHack in Sys/" source_ref: "Source/Core/Common/CommonPaths.h:154, Source/Core/Core/GeckoCode.cpp:121" # -- Wii System Menu (WAD) -- - name: "Wii System Menu" path: null required: false mode: standalone hle_fallback: true note: "Wii System Menu WAD. Installed to NAND via Tools > Install WAD, needed for Wii Menu boot" source_ref: "Source/Core/DolphinQt/MenuBar.cpp:323,1219-1227" # -- NAND Certificates (auto-extracted) -- - name: "clientca.pem" path: "Wii/clientca.pem" required: false mode: standalone hle_fallback: true note: "SSL client certificate. Auto-extracted from IOS13 content during NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:201-285" - name: "clientcakey.pem" path: "Wii/clientcakey.pem" required: false mode: standalone hle_fallback: true note: "SSL client private key. Auto-extracted from IOS13 content during NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:237" - name: "rootca.pem" path: "Wii/rootca.pem" required: false mode: standalone hle_fallback: true note: "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:238" # -- Realtek Bluetooth firmware (Wiimote passthrough) -- # Required for real Wiimote connectivity via USB Bluetooth adapters with Realtek chipsets. # PrimeHack can auto-download these from gitlab.com/kernel-firmware/linux-firmware. # Placed in Load/Firmware/rtl_bt/. # ref: Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:373-416 - name: "rtl8723a_fw.bin" path: "Load/Firmware/rtl_bt/rtl8723a_fw.bin" required: false mode: standalone note: "Realtek 8723A BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:379" - name: "rtl8723b_fw.bin" path: "Load/Firmware/rtl_bt/rtl8723b_fw.bin" required: false mode: standalone note: "Realtek 8723B BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:381" - name: "rtl8723d_fw.bin" path: "Load/Firmware/rtl_bt/rtl8723d_fw.bin" required: false mode: standalone note: "Realtek 8723D BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:383" - name: "rtl8761a_fw.bin" path: "Load/Firmware/rtl_bt/rtl8761a_fw.bin" required: false mode: standalone note: "Realtek 8761A BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:385" - name: "rtl8761bu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8761bu_fw.bin" required: false mode: standalone note: "Realtek 8761BU BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:387" - name: "rtl8821a_fw.bin" path: "Load/Firmware/rtl_bt/rtl8821a_fw.bin" required: false mode: standalone note: "Realtek 8821A BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:389" - name: "rtl8821c_fw.bin" path: "Load/Firmware/rtl_bt/rtl8821c_fw.bin" required: false mode: standalone note: "Realtek 8821C BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:391" - name: "rtl8822b_fw.bin" path: "Load/Firmware/rtl_bt/rtl8822b_fw.bin" required: false mode: standalone note: "Realtek 8822B BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:395" - name: "rtl8822cu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8822cu_fw.bin" required: false mode: standalone note: "Realtek 8822CU BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:393" - name: "rtl8851bu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8851bu_fw.bin" required: false mode: standalone note: "Realtek 8851BU BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:397" - name: "rtl8852au_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852au_fw.bin" required: false mode: standalone note: "Realtek 8852AU BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:399" - name: "rtl8852bu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852bu_fw.bin" required: false mode: standalone note: "Realtek 8852BU BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:401" - name: "rtl8852cu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852cu_fw.bin" required: false mode: standalone note: "Realtek 8852CU BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:403" - name: "rtl8852btu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852btu_fw.bin" required: false mode: standalone note: "Realtek 8852BT/8852BE-VT BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:405" - name: "rtl8922au_fw.bin" path: "Load/Firmware/rtl_bt/rtl8922au_fw.bin" required: false mode: standalone note: "Realtek 8922AU BT firmware for Wiimote passthrough" source_ref: "RealtekFirmwareLoader.cpp:407" notes: hle_available: true hle_note: > PrimeHack provides HLE for GameCube IPL (boot ROM), DSP, and Wii system functions (same as Dolphin). No BIOS files are strictly required for most games. ipl_regions: ["USA", "EUR", "JAP", "JPN", "DEV"] dsp_rom_note: > DSP ROMs are verified at load time via Adler32 hash. Official Nintendo hashes: irom=0x66f334fe, drom=0xf3b93527. bt_passthrough_note: > Bluetooth passthrough allows connecting real Wiimotes via USB Bluetooth adapters. Realtek chipsets require firmware files in Load/Firmware/rtl_bt/. PrimeHack can auto-download these from kernel-firmware/linux-firmware on GitLab.