mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 17:19:44 -06:00
ROM dissasm "refresh" + RE + small fixes
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4938 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -126,6 +126,7 @@ void lsrn(const UDSPInstruction& opc);
|
||||
void asrn(const UDSPInstruction& opc);
|
||||
void dar(const UDSPInstruction& opc);
|
||||
void iar(const UDSPInstruction& opc);
|
||||
void xar(const UDSPInstruction& opc);
|
||||
void sbclr(const UDSPInstruction& opc);
|
||||
void sbset(const UDSPInstruction& opc);
|
||||
void mov(const UDSPInstruction& opc);
|
||||
|
@ -41,6 +41,7 @@ const DSPOPCTemplate opcodes[] =
|
||||
|
||||
{"DAR", 0x0004, 0xfffc, DSPInterpreter::dar, nop, 1, 1, {{P_REG, 1, 0, 0, 0x0003}}, false},
|
||||
{"IAR", 0x0008, 0xfffc, DSPInterpreter::iar, nop, 1, 1, {{P_REG, 1, 0, 0, 0x0003}}, false},
|
||||
{"XAR", 0x000c, 0xfffc, DSPInterpreter::xar, nop, 1, 1, {{P_REG, 1, 0, 0, 0x0003}}, false},
|
||||
|
||||
{"ADDARN", 0x0010, 0xfff0, DSPInterpreter::addarn, nop, 1, 2, {{P_REG, 1, 0, 0, 0x0003}, {P_REG04, 1, 0, 2, 0x000c}}, false},
|
||||
|
||||
|
@ -129,6 +129,16 @@ void iar(const UDSPInstruction& opc)
|
||||
g_dsp.r[opc.hex & 0x3] = dsp_increment_addr_reg(opc.hex & 0x3);
|
||||
}
|
||||
|
||||
// XAR $arD ?
|
||||
// 0000 0000 0000 11dd
|
||||
// $arD result somehow depends on $wrD
|
||||
// unknown atm
|
||||
// used in IPL ucode
|
||||
void xar(const UDSPInstruction& opc)
|
||||
{
|
||||
// u8 dreg = opc.hex & 0x3;
|
||||
}
|
||||
|
||||
// SBCLR #I
|
||||
// 0001 0011 0000 0iii
|
||||
// bit of status register $sr. Bit number is calculated by adding 6 to
|
||||
|
@ -404,7 +404,11 @@ void CUCode_AX::HandleMail(u32 _uMail)
|
||||
{
|
||||
m_rMailHandler.PushMail(0xDCD10001);
|
||||
}
|
||||
else if ((_uMail & 0xFFFF0000) == 0xCDD10000) // Action 1/2/3
|
||||
else if (_uMail == 0xCDD10001) // Action 1 - new ucode upload
|
||||
{
|
||||
NOTICE_LOG(DSPHLE,"Game wanted to upload new ucode!");
|
||||
}
|
||||
else if ((_uMail & 0xFFFF0000) == 0xCDD10000) // Action 2/3
|
||||
{
|
||||
}
|
||||
else
|
||||
|
@ -73,7 +73,11 @@ void CUCode_AXWii::HandleMail(u32 _uMail)
|
||||
{
|
||||
m_rMailHandler.PushMail(0xDCD10001);
|
||||
}
|
||||
else if ((_uMail & 0xFFFF0000) == 0xCDD10000) // Action 1/2/3
|
||||
else if (_uMail == 0xCDD10001) // Action 1 - new ucode upload
|
||||
{
|
||||
NOTICE_LOG(DSPHLE,"Game wanted to upload new ucode!");
|
||||
}
|
||||
else if ((_uMail & 0xFFFF0000) == 0xCDD10000) // Action 2/3
|
||||
{
|
||||
}
|
||||
else
|
||||
|
@ -36,7 +36,7 @@ private:
|
||||
u32 m_RAMAddress;
|
||||
u32 m_Length;
|
||||
u32 m_IMEMAddress;
|
||||
u32 m_Unk;
|
||||
u32 m_DMEMLength;
|
||||
u32 m_StartPC;
|
||||
};
|
||||
|
||||
|
@ -68,7 +68,10 @@ void CUCode_Rom::HandleMail(u32 _uMail)
|
||||
break;
|
||||
|
||||
case 0x80F3B002:
|
||||
m_CurrentUCode.m_Unk = _uMail;
|
||||
m_CurrentUCode.m_DMEMLength = _uMail;
|
||||
if (_uMail) {
|
||||
NOTICE_LOG(DSPHLE,"Game wanted to DMA sth to DSP DRAM.");
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x80F3D001:
|
||||
@ -78,6 +81,9 @@ void CUCode_Rom::HandleMail(u32 _uMail)
|
||||
return; // Important! BootUCode indirectly does "delete this;". Must exit immediately.
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// THE GODDAMN OVERWRITE WAS HERE. Without the return above, since BootUCode may delete "this", well ...
|
||||
@ -100,7 +106,7 @@ void CUCode_Rom::BootUCode()
|
||||
DEBUG_LOG(DSPHLE, "CurrentUCode SOURCE Addr: 0x%08x", m_CurrentUCode.m_RAMAddress);
|
||||
DEBUG_LOG(DSPHLE, "CurrentUCode Length: 0x%08x", m_CurrentUCode.m_Length);
|
||||
DEBUG_LOG(DSPHLE, "CurrentUCode DEST Addr: 0x%08x", m_CurrentUCode.m_IMEMAddress);
|
||||
DEBUG_LOG(DSPHLE, "CurrentUCode ???: 0x%08x", m_CurrentUCode.m_Unk);
|
||||
DEBUG_LOG(DSPHLE, "CurrentUCode DMEM Length: 0x%08x", m_CurrentUCode.m_DMEMLength);
|
||||
DEBUG_LOG(DSPHLE, "CurrentUCode init_vector: 0x%08x", m_CurrentUCode.m_StartPC);
|
||||
DEBUG_LOG(DSPHLE, "CurrentUCode CRC: 0x%08x", crc);
|
||||
DEBUG_LOG(DSPHLE, "BootTask - done");
|
||||
|
@ -35,7 +35,7 @@ private:
|
||||
u32 m_RAMAddress;
|
||||
u32 m_Length;
|
||||
u32 m_IMEMAddress;
|
||||
u32 m_Unk;
|
||||
u32 m_DMEMLength;
|
||||
u32 m_StartPC;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user