[Disk & N64Class] Handle Combo Loading with development disks without TOOL IPL

- You don't actually need the Development IPL for that purpose as games will never actually check.
This commit is contained in:
LuigiBlood 2019-08-12 14:16:16 +02:00
parent cf576246e1
commit 0cee922767
2 changed files with 10 additions and 2 deletions
Source/Project64-core/N64System

View File

@ -220,7 +220,7 @@ void DiskBMUpdate()
else else
{ {
//Read Data //Read Data
if (((g_Reg->ASIC_CUR_TK >> 16) & 0x1FFF) == 6 && g_Reg->ASIC_CUR_SECTOR == 0 && g_Reg->ASIC_ID_REG != 0x00040000) if (((g_Reg->ASIC_CUR_TK >> 16) & 0x1FFF) == 6 && g_Reg->ASIC_CUR_SECTOR == 0 && g_Disk->GetCountry() != Country::UnknownCountry)
{ {
//Copy Protection //Copy Protection
g_Reg->ASIC_STATUS &= ~DD_STATUS_DATA_RQ; g_Reg->ASIC_STATUS &= ~DD_STATUS_DATA_RQ;

View File

@ -612,6 +612,14 @@ bool CN64System::SelectAndLoadFileImageIPL(Country country, bool combo)
default: default:
IPLROMPathSetting = File_DiskIPLTOOLPath; IPLROMPathSetting = File_DiskIPLTOOLPath;
IPLROMError = MSG_TOOL_IPL_REQUIRED; IPLROMError = MSG_TOOL_IPL_REQUIRED;
if (combo && !CPath(g_Settings->LoadStringVal(File_DiskIPLTOOLPath).c_str()).Exists())
{
//Development IPL is not needed for combo ROM + Disk loading
if (CPath(g_Settings->LoadStringVal(File_DiskIPLPath).c_str()).Exists())
IPLROMPathSetting = File_DiskIPLPath;
else if (CPath(g_Settings->LoadStringVal(File_DiskIPLUSAPath).c_str()).Exists())
IPLROMPathSetting = File_DiskIPLUSAPath;
}
break; break;
} }
@ -979,7 +987,7 @@ void CN64System::InitRegisters(bool bPostPif, CMipsMemoryVM & MMU)
//64DD Registers //64DD Registers
m_Reg.ASIC_STATUS = DD_STATUS_RST_STATE; m_Reg.ASIC_STATUS = DD_STATUS_RST_STATE;
m_Reg.ASIC_ID_REG = 0x00030000; m_Reg.ASIC_ID_REG = 0x00030000;
if (g_DDRom && g_DDRom->CicChipID() == CIC_NUS_DDTL) if (g_DDRom && (g_DDRom->CicChipID() == CIC_NUS_DDTL || (g_Disk && g_Disk->GetCountry() == Country::UnknownCountry)))
m_Reg.ASIC_ID_REG = 0x00040000; m_Reg.ASIC_ID_REG = 0x00040000;
//m_Reg.REVISION_REGISTER = 0x00000511; //m_Reg.REVISION_REGISTER = 0x00000511;