Emulator Issues #7035
closedMissing IPL USA version 1.2
0%
Description
Game Name?
N/A
Game ID?
N/A
What's the problem? Describe what went wrong in few words.
I dumped my IPL with swiss-gc and it looks like it's missing from the list in Boot.cpp. My dump appears to be correct, as I can load games with it. I opened the file with a hex editor, and the copyright ends with "NTSC Revision 1.2". I noticed that Boot.cpp has USA and USA_v1_1, but not USA_v1_2.
A few more details, the file is 0x200000 bytes long, and offset 0x1FF474 has data in it. After this, there are just 0's through the end. I wasn't sure if this was normal, as it looks like the Descrambler only uses up 0x820 + 0x1AFE00 (and it only unscrambles through 0x1AFE00 + 0x100) if I'm reading this code correctly:
CEXIIPL::Descrambler((u8*)data.data()+0x100, 0x1AFE00);
Memory::WriteBigEData((const u8*)data.data() + 0x100, 0x81200000, 0x700);
Memory::WriteBigEData((const u8*)data.data() + 0x820, 0x81300000, 0x1AFE00);
What did you expect to happen instead?
IPL recognized
What steps will reproduce the problem?
- Run with Skip BIOS unchecked
Dolphin 3.5 and 3.5-367 are old versions of Dolphin that have
known issues and bugs, so don't report issues about them and test the
latest Dolphin version first.
Which versions of Dolphin did you test on?
4.0-328
Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?
No
What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
N/A
Are you using the 32 or the 64 bit version of Dolphin?
64
Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
Code snippet with modification to include the IPL:
const u32 USA = 0x1FCE3FD6;
const u32 USA_v1_1 = 0x4D5935D1;
const u32 USA_v1_2 = 0xdf6cf65b;
const u32 JAP = 0x87424396;
const u32 PAL = 0xA0EA7341;
//const u32 PanasonicQJ = 0xAEA8265C;
//const u32 PanasonicQU = 0x94015753;
// Load the whole ROM dump
std::string data;
if (!File::ReadFileToString(false, _rBootROMFilename.c_str(), data))
return false;
u32 ipl_hash = HashAdler32((const u8*)data.data(), data.size());
std::string ipl_region;
switch (ipl_hash)
{
case USA:
case USA_v1_1:
case USA_v1_2:
ipl_region = USA_DIR;
break;
Updated by greyrogue almost 11 years ago
A little more information. The data starting at 0x1AFF00 begins with 0x59617930 ("Yay0") which I think is expected for font info, which means the dump is likely good.
Updated by Sonicadvance1 almost 11 years ago
- Status changed from New to Accepted
Nice information, It's true that we haven't updated the source to support any newer IPL versions.
I'll set this to accepted for now.
Updated by BhaaL about 9 years ago
- Related to Emulator Issues #8936: Unknown hash on IPL.bin added
Updated by JMC4789 about 9 years ago
- Status changed from Accepted to Fixed
Fixed by 4.0-8197 -> https://dolphin-emu.org/download/dev/0e258d4621cc2de72b440068ffe5382cd30176ad/