fix: let the NTSC-U IPL answer Latin America

Dolphin and its forks map the Brazilian disc country code B, and the
SYSCONF countries of the Americas, to NTSC-U (DiscIO/Enums.cpp), whose
boot ROM is read from GC/USA. Tagged north-america alone, the IPL a
Brazilian disc boots left a --region brazil,europe pack. GC/USA/IPL.bin
in six profiles and triforce's IPL_TRI.bin now carry latin-america.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 10:13:22 +02:00
1 parent 10dc9a11ac
commit fe3236ad97
7 files changed
+20 -13

No files matched your search

+2 -2
View File
@@ -83,13 +83,13 @@ files:
system: nintendo-gamecube
required: false
hle_fallback: true
region: [north-america]
region: [north-america, latin-america]
size: 2097152
crc32: ["6dac1f2a", "d5e6feea", "86573808", "667d0b64"]
validation: [crc32]
on_mismatch: warn
description: "GameCube boot ROM, NTSC-U directory"
note: "Read whole into a 2 MiB buffer with no size check, then descrambled from 0x100 for 0x1afe00 bytes. The crc32 gate runs when the IPL itself is booted, and the four non-PAL dumps pass here without complaint."
note: "Read whole into a 2 MiB buffer with no size check, then descrambled from 0x100 for 0x1afe00 bytes. The crc32 gate runs when the IPL itself is booted, and the four non-PAL dumps pass here without complaint. Discs with the Brazilian country code B map to NTSC-U, so Latin America reads this directory too (Source/Core/DiscIO/Enums.cpp:184-186)."
source_ref: "source Source/Core/Core/ConfigManager.cpp:861-868, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:99-112, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.h:43, source Source/Core/Core/Boot/Boot.cpp:296-330"
- name: IPL.bin
+2 -2
View File
@@ -119,13 +119,13 @@ files:
system: nintendo-gamecube
required: false
hle_fallback: true
region: [north-america]
region: [north-america, latin-america]
size: 2097152
crc32: ["6dac1f2a", "d5e6feea", "86573808", "667d0b64"]
validation: [crc32]
on_mismatch: warn
description: "GameCube boot ROM, NTSC-U directory"
note: "Read whole into a 2 MiB buffer with no size check, then descrambled from 0x100 for 0x1afe00 bytes. The crc32 gate runs when the IPL itself is booted and only warns: the four non-PAL dumps, the Brazilian MPAL one included, pass here without complaint."
note: "Read whole into a 2 MiB buffer with no size check, then descrambled from 0x100 for 0x1afe00 bytes. The crc32 gate runs when the IPL itself is booted and only warns: the four non-PAL dumps, the Brazilian MPAL one included, pass here without complaint. Discs with the Brazilian country code B and SYSCONF countries of the Americas map to NTSC-U, so Latin America reads this directory too (Source/Core/DiscIO/Enums.cpp:172-173, 223-225)."
source_ref: "source Source/Core/Core/Config/MainSettings.cpp:594-600, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:105-113, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.h:43, upstream Source/Core/Core/Boot/Boot.cpp:408-442, source Source/Core/Core/Boot/Boot.cpp:444-449"
- name: IPL.bin
+2 -2
View File
@@ -41,11 +41,11 @@ files:
path: "dolphin-emu/Sys/GC/USA/IPL.bin"
standalone_path: "GC/USA/IPL.bin"
system: nintendo-gamecube
region: [north-america]
region: [north-america, latin-america]
size: 2097152
required: false
hle_fallback: true
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts"
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts. Discs with the Brazilian country code B and SYSCONF countries of the Americas map to NTSC-U, so Latin America reads this directory too (Source/Core/DiscIO/Enums.cpp:198-199, 249-251)."
source_ref: "upstream Source/Core/Common/CommonPaths.h:139, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:108"
- name: "IPL.bin"
+2 -2
View File
@@ -37,11 +37,11 @@ files:
path: "dolphin-emu/Sys/GC/USA/IPL.bin"
standalone_path: "GC/USA/IPL.bin"
system: nintendo-gamecube
region: [north-america]
region: [north-america, latin-america]
size: 2097152
required: false
hle_fallback: true
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts"
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts. Discs with the Brazilian country code B map to NTSC-U, so Latin America reads this directory too (Source/Core/DiscIO/Enums.cpp:162-166)."
source_ref: "source Source/Core/Core/ConfigManager.cpp:876-883, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:105"
- name: "IPL.bin"
+2 -2
View File
@@ -36,11 +36,11 @@ files:
- name: "IPL.bin"
path: "GC/USA/IPL.bin"
system: nintendo-gamecube
region: [north-america]
region: [north-america, latin-america]
size: 2097152
required: false
hle_fallback: true
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts"
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts. Discs with the Brazilian country code B and SYSCONF countries of the Americas map to NTSC-U, so Latin America reads this directory too (Source/Core/DiscIO/Enums.cpp:198-199, 249-251)."
source_ref: "upstream Source/Core/Common/CommonPaths.h:138, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:109-110"
- name: "IPL.bin"
+3 -3
View File
@@ -115,7 +115,7 @@ files:
path: "GC/USA/IPL_TRI.bin"
description: "Triforce boot ROM, NTSC-U directory"
system: sega-triforce
region: [north-america]
region: [north-america, latin-america]
size: 2097152
crc32: "d1883221"
validation: [crc32]
@@ -199,12 +199,12 @@ files:
path: "GC/USA/IPL.bin"
description: "GameCube NTSC-U boot ROM"
system: nintendo-gamecube
region: [north-america]
region: [north-america, latin-america]
size: 2097152
required: false
hle_fallback: true
source_ref: "source Source/Core/Common/CommonPaths.h:148, source Source/Core/Core/Config/MainSettings.cpp:627-630, source Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:109-118, 182-183"
note: "Needed to boot the GameCube menu and to take the fonts from a real dump."
note: "Needed to boot the GameCube menu and to take the fonts from a real dump. Discs with the Brazilian country code B and SYSCONF countries of the Americas map to NTSC-U, so Latin America reads this directory too (Source/Core/DiscIO/Enums.cpp:198-199, 249-251)."
- name: "IPL.bin"
path: "GC/EUR/IPL.bin"
+7
View File
@@ -923,6 +923,13 @@ class RegionalRequestsKeepWhatTheCodeLoads(unittest.TestCase):
("genesis_plus_gx", ["brazil", "japan"], "bios_U.sms"),
("genesis_plus_gx_wide", ["australia", "japan"], "bios_U.sms"),
("genesis_plus_gx_expanded", ["brazil", "japan"], "bios_U.sms"),
("dolphin", ["brazil", "europe"], "dolphin-emu/Sys/GC/USA/IPL.bin"),
("ishiiruka", ["brazil", "europe"], "dolphin-emu/Sys/GC/USA/IPL.bin"),
("dolphin-mmjr", ["brazil", "europe"], "GC/USA/IPL.bin"),
("dolphin-mmjr2", ["brazil", "europe"], "GC/USA/IPL.bin"),
("primehack", ["brazil", "europe"], "GC/USA/IPL.bin"),
("triforce", ["brazil", "europe"], "GC/USA/IPL.bin"),
("triforce", ["brazil", "europe"], "GC/USA/IPL_TRI.bin"),
)
def test_each_request_keeps_its_file(self):