From 3d662cbd15e3432efe52a2d83b423304d5efe3a8 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 17:25:10 +0100 Subject: [PATCH] docs: read the triforce font load from code LoadFileToIPL reads a standalone font with no size check, keeping what fits in the IPL image. The sizes stay as the IPL dump fonts' lengths and the notes say so. No HLE stands in for a missing font: the IPL read raises an alert and the game runs on, so hle_fallback goes. --- emulators/triforce.yml | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/emulators/triforce.yml b/emulators/triforce.yml index a1c90f9e7..52bb92546 100644 --- a/emulators/triforce.yml +++ b/emulators/triforce.yml @@ -279,21 +279,23 @@ files: the byte-swapped data (Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:100-102). # -- GameCube fonts -- - # Sys/GC/ only. Skipped when an IPL dump is available, the fonts are then read - # out of the dump at 0x1aff00 and 0x1fcf00 instead. + # Sys/GC/ only. With Load IPL dump on and a GC//IPL.bin found, the + # fonts are read out of the dump at 0x1aff00 and 0x1fcf00 instead. - name: "font_western.bin" path: "Sys/GC/font_western.bin" description: "Windows-1252 font used by GameCube and Wii text rendering" size: 9589 required: false installed_on: [retrobat] - hle_fallback: true - source_ref: "source Source/Core/Common/CommonPaths.h:142, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131, 203-247" + source_ref: "source Source/Core/Common/CommonPaths.h:142, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131, 161-176, 203-247, 330-344" note: > - Size is the official font length the code reads from an IPL dump, 0x2575 - (Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:234-236). A standalone file is - read without any check. The fork's tree carries no font, RetroBat's - dolphin-triforce package installs the free replacement here. + Read without any size check into the IPL image at 0x1fcf00, keeping at + most 0x3100 bytes. The size is the IPL dump font's, 0x2575, the length + the code reads out of a dump (EXI_DeviceIPL.cpp:234-236). The fork's + tree carries no font, and RetroBat's dolphin-triforce package installs + Dolphin's free replacement here. Without a font a game that reads it + gets an alert that text may be missing or the game may crash, and runs + on. - name: "font_japanese.bin" path: "Sys/GC/font_japanese.bin" @@ -301,9 +303,15 @@ files: size: 303693 required: false installed_on: [retrobat] - hle_fallback: true - source_ref: "source Source/Core/Common/CommonPaths.h:143, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130, 203-247" - note: "Size is the official font length read from an IPL dump, 0x4a24d. The fork's tree carries no font, RetroBat's dolphin-triforce package installs the free replacement here." + source_ref: "source Source/Core/Common/CommonPaths.h:143, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130, 161-176, 203-247, 330-344" + note: > + Read without any size check into the IPL image at 0x1aff00, keeping at + most 0x50100 bytes. The size is the IPL dump font's, 0x4a24d, the length + the code reads out of a dump (EXI_DeviceIPL.cpp:234-236). The fork's + tree carries no font, and RetroBat's dolphin-triforce package installs + Dolphin's free replacement here. Without a font a game that reads it + gets an alert that text may be missing or the game may crash, and runs + on. # -- GBA BIOS -- - name: "gba_bios.bin"