[Project64] Remove DisplayError and DisplayMessage being able to take variable param (eg ... )

This commit is contained in:
zilmar 2015-10-25 22:40:21 +11:00
parent 0144305c6a
commit 0608a8b504
24 changed files with 369 additions and 313 deletions

View File

@ -251,7 +251,7 @@ LRESULT CDumpMemory::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/,
// char FileName[_MAX_PATH],Directory[_MAX_PATH]; // char FileName[_MAX_PATH],Directory[_MAX_PATH];
// memset(&FileName, 0, sizeof(FileName)); // memset(&FileName, 0, sizeof(FileName));
// memset(&openfilename, 0, sizeof(openfilename)); // memset(&openfilename, 0, sizeof(openfilename));
// strcpy(Directory,g_Settings->LoadString(ApplicationDir).c_str()); // strcpy(Directory,g_Settings->LoadStringVal(ApplicationDir).c_str());
// openfilename.lStructSize = sizeof( openfilename ); // openfilename.lStructSize = sizeof( openfilename );
// openfilename.hwndOwner = hDlg; // openfilename.hwndOwner = hDlg;
// openfilename.lpstrFilter = "Text file (*.txt)\0*.txt;\0All files (*.*)\0*.*\0"; // openfilename.lpstrFilter = "Text file (*.txt)\0*.txt;\0All files (*.*)\0*.*\0";
@ -334,7 +334,7 @@ bool CDumpMemory::DumpMemory ( LPCSTR FileName,DumpFormat Format, DWORD StartPC,
CLog LogFile; CLog LogFile;
if (!LogFile.Open(FileName)) if (!LogFile.Open(FileName))
{ {
g_Notify->DisplayError(L"Failed to open\n%s",FileName); g_Notify->DisplayError(stdstr_f("Failed to open\n%s",FileName).ToUTF16().c_str());
return false; return false;
} }
LogFile.SetFlush(false); LogFile.SetFlush(false);
@ -489,7 +489,7 @@ bool CDumpMemory::DumpMemory ( LPCSTR FileName,DumpFormat Format, DWORD StartPC,
// memset(&FileName, 0, sizeof(FileName)); // memset(&FileName, 0, sizeof(FileName));
// memset(&openfilename, 0, sizeof(openfilename)); // memset(&openfilename, 0, sizeof(openfilename));
// //
// strcpy(Directory,g_Settings->LoadString(ApplicationDir).c_str()); // strcpy(Directory,g_Settings->LoadStringVal(ApplicationDir).c_str());
// //
// openfilename.lStructSize = sizeof( openfilename ); // openfilename.lStructSize = sizeof( openfilename );
// openfilename.hwndOwner = hDlg; // openfilename.hwndOwner = hDlg;

View File

@ -87,7 +87,7 @@ bool DelaySlotEffectsCompare (DWORD PC, DWORD Reg1, DWORD Reg2)
default: default:
if (g_Settings->LoadBool(Debugger_Enabled)) if (g_Settings->LoadBool(Debugger_Enabled))
{ {
g_Notify->DisplayError(L"Does %s effect Delay slot at %X?",R4300iOpcodeName(Command.Hex,PC+4), PC); g_Notify->DisplayError(stdstr_f("Does %s effect Delay slot at %X?",R4300iOpcodeName(Command.Hex,PC+4), PC).ToUTF16().c_str());
} }
return true; return true;
} }
@ -118,7 +118,7 @@ bool DelaySlotEffectsCompare (DWORD PC, DWORD Reg1, DWORD Reg2)
default: default:
if (g_Settings->LoadBool(Debugger_Enabled)) if (g_Settings->LoadBool(Debugger_Enabled))
{ {
g_Notify->DisplayError(L"Does %s effect Delay slot at %X?\n6",R4300iOpcodeName(Command.Hex,PC+4), PC); g_Notify->DisplayError(stdstr_f("Does %s effect Delay slot at %X?\n6",R4300iOpcodeName(Command.Hex,PC+4), PC).ToUTF16().c_str());
} }
return true; return true;
} }
@ -127,7 +127,7 @@ bool DelaySlotEffectsCompare (DWORD PC, DWORD Reg1, DWORD Reg2)
{ {
if (g_Settings->LoadBool(Debugger_Enabled)) if (g_Settings->LoadBool(Debugger_Enabled))
{ {
g_Notify->DisplayError(L"Does %s effect Delay slot at %X?\n7",R4300iOpcodeName(Command.Hex,PC+4), PC); g_Notify->DisplayError(stdstr_f("Does %s effect Delay slot at %X?\n7",R4300iOpcodeName(Command.Hex,PC+4), PC).ToUTF16().c_str());
} }
return true; return true;
} }
@ -156,7 +156,7 @@ bool DelaySlotEffectsCompare (DWORD PC, DWORD Reg1, DWORD Reg2)
default: default:
if (g_Settings->LoadBool(Debugger_Enabled)) if (g_Settings->LoadBool(Debugger_Enabled))
{ {
g_Notify->DisplayError(L"Does %s effect Delay slot at %X?",R4300iOpcodeName(Command.Hex,PC+4), PC); g_Notify->DisplayError(stdstr_f("Does %s effect Delay slot at %X?",R4300iOpcodeName(Command.Hex,PC+4), PC).ToUTF16().c_str());
} }
return true; return true;
} }
@ -204,7 +204,7 @@ bool DelaySlotEffectsCompare (DWORD PC, DWORD Reg1, DWORD Reg2)
default: default:
if (g_Settings->LoadBool(Debugger_Enabled)) if (g_Settings->LoadBool(Debugger_Enabled))
{ {
g_Notify->DisplayError(L"Does %s effect Delay slot at %X?",R4300iOpcodeName(Command.Hex,PC+4), PC); g_Notify->DisplayError(stdstr_f("Does %s effect Delay slot at %X?",R4300iOpcodeName(Command.Hex,PC+4), PC).ToUTF16().c_str());
} }
return true; return true;
} }

View File

@ -891,7 +891,7 @@ void R4300iOp32::LB()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LB TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -912,7 +912,7 @@ void R4300iOp32::LH()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LH TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -933,7 +933,7 @@ void R4300iOp32::LWL()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LWL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
return; return;
@ -960,7 +960,7 @@ void R4300iOp32::LW()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LW TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -977,7 +977,7 @@ void R4300iOp32::LBU()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LBU TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -998,7 +998,7 @@ void R4300iOp32::LHU()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LHU TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1020,7 +1020,7 @@ void R4300iOp32::LWR()
g_Notify->BreakPoint(__FILEW__,__LINE__); g_Notify->BreakPoint(__FILEW__,__LINE__);
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LWR TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1041,7 +1041,7 @@ void R4300iOp32::LWU()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LWU TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1064,7 +1064,7 @@ void R4300iOp32::LL()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }

View File

@ -1012,7 +1012,7 @@ void R4300iOp::LDL()
g_Notify->BreakPoint(__FILEW__,__LINE__); g_Notify->BreakPoint(__FILEW__,__LINE__);
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LDL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1039,7 +1039,7 @@ void R4300iOp::LDR()
g_Notify->BreakPoint(__FILEW__,__LINE__); g_Notify->BreakPoint(__FILEW__,__LINE__);
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LDR TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1056,7 +1056,7 @@ void R4300iOp::LB()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LB TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1077,7 +1077,7 @@ void R4300iOp::LH()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LH TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1099,7 +1099,7 @@ void R4300iOp::LWL()
g_Notify->BreakPoint(__FILEW__,__LINE__); g_Notify->BreakPoint(__FILEW__,__LINE__);
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LWL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1125,7 +1125,7 @@ void R4300iOp::LW()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LW TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1142,7 +1142,7 @@ void R4300iOp::LBU()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LBU TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1163,7 +1163,7 @@ void R4300iOp::LHU()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LHU TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1185,7 +1185,7 @@ void R4300iOp::LWR()
g_Notify->BreakPoint(__FILEW__,__LINE__); g_Notify->BreakPoint(__FILEW__,__LINE__);
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LWR TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1206,7 +1206,7 @@ void R4300iOp::LWU()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LWU TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1227,7 +1227,7 @@ void R4300iOp::SB()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SB TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1247,7 +1247,7 @@ void R4300iOp::SH()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SH TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1267,7 +1267,7 @@ void R4300iOp::SWL()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SWL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1283,7 +1283,7 @@ void R4300iOp::SWL()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SWL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1308,7 +1308,7 @@ void R4300iOp::SW()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SW TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1339,7 +1339,7 @@ void R4300iOp::SDL()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SDL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1355,7 +1355,7 @@ void R4300iOp::SDL()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SDL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1387,7 +1387,7 @@ void R4300iOp::SDR()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SDR TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1403,7 +1403,7 @@ void R4300iOp::SDR()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SDR TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1423,7 +1423,7 @@ void R4300iOp::SWR()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SWR TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1439,7 +1439,7 @@ void R4300iOp::SWR()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SWR TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1466,7 +1466,7 @@ void R4300iOp::LL()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LL TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1489,7 +1489,7 @@ void R4300iOp::LWC1()
{ {
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LWC1 TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
TLB_READ_EXCEPTION(Address); TLB_READ_EXCEPTION(Address);
} }
@ -1510,7 +1510,7 @@ void R4300iOp::SC()
g_Notify->BreakPoint(__FILEW__,__LINE__); g_Notify->BreakPoint(__FILEW__,__LINE__);
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SC TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1532,7 +1532,7 @@ void R4300iOp::LD()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LD TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
return; return;
} }
@ -1562,7 +1562,7 @@ void R4300iOp::LDC1()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"LDC1 TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1584,7 +1584,7 @@ void R4300iOp::SWC1()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SWC1 TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1606,7 +1606,7 @@ void R4300iOp::SDC1()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SDC1 TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -1626,7 +1626,7 @@ void R4300iOp::SD()
} }
if (bShowTLBMisses()) if (bShowTLBMisses())
{ {
g_Notify->DisplayError(L"SD TLB: %X",Address); g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str());
} }
} }
} }
@ -2559,7 +2559,7 @@ void R4300iOp::COP1_S_CMP()
{ {
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(L"Signal InvalidOperationException\nin r4300i_COP1_S_CMP\n%X %ff\n%X %ff", Temp0,Temp0,Temp1,Temp1); g_Notify->DisplayError(stdstr_f("Signal InvalidOperationException\nin r4300i_COP1_S_CMP\n%X %ff\n%X %ff", Temp0,Temp0,Temp1,Temp1).ToUTF16().c_str());
} }
} }
} }
@ -2828,8 +2828,8 @@ void R4300iOp::COP1_L_CVT_D()
/************************** Other functions **************************/ /************************** Other functions **************************/
void R4300iOp::UnknownOpcode() void R4300iOp::UnknownOpcode()
{ {
g_Notify->DisplayError(L"%s: %08X\n%s\n\nStopping Emulation !", GS(MSG_UNHANDLED_OP), (*_PROGRAM_COUNTER), g_Notify->DisplayError(stdstr_f("%s: %08X\n%s\n\nStopping Emulation !", GS(MSG_UNHANDLED_OP), (*_PROGRAM_COUNTER),
R4300iOpcodeName(m_Opcode.Hex,(*_PROGRAM_COUNTER))); R4300iOpcodeName(m_Opcode.Hex,(*_PROGRAM_COUNTER))).ToUTF16().c_str());
g_System->m_EndEmulation = true; g_System->m_EndEmulation = true;
g_Notify->BreakPoint(__FILEW__,__LINE__); g_Notify->BreakPoint(__FILEW__,__LINE__);

View File

@ -28,7 +28,7 @@ void CDMA::OnFirstDMA()
case CIC_NUS_6103: *(DWORD *)&((g_MMU->Rdram())[0x318]) = g_MMU->RdramSize(); break; case CIC_NUS_6103: *(DWORD *)&((g_MMU->Rdram())[0x318]) = g_MMU->RdramSize(); break;
case CIC_NUS_6105: *(DWORD *)&((g_MMU->Rdram())[0x3F0]) = g_MMU->RdramSize(); break; case CIC_NUS_6105: *(DWORD *)&((g_MMU->Rdram())[0x3F0]) = g_MMU->RdramSize(); break;
case CIC_NUS_6106: *(DWORD *)&((g_MMU->Rdram())[0x318]) = g_MMU->RdramSize(); break; case CIC_NUS_6106: *(DWORD *)&((g_MMU->Rdram())[0x318]) = g_MMU->RdramSize(); break;
default: g_Notify->DisplayError(L"Unhandled CicChip(%d) in first DMA",g_Rom->CicChipID()); default: g_Notify->DisplayError(stdstr_f("Unhandled CicChip(%d) in first DMA",g_Rom->CicChipID()).ToUTF16().c_str());
} }
} }
@ -46,7 +46,7 @@ void CDMA::PI_DMA_READ()
{ {
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(L"PI_DMA_READ not in Memory: %08X", g_Reg->PI_DRAM_ADDR_REG + PI_RD_LEN_REG); g_Notify->DisplayError(stdstr_f("PI_DMA_READ not in Memory: %08X", g_Reg->PI_DRAM_ADDR_REG + PI_RD_LEN_REG).ToUTF16().c_str());
} }
g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY; g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY;
g_Reg->MI_INTR_REG |= MI_INTR_PI; g_Reg->MI_INTR_REG |= MI_INTR_PI;
@ -134,7 +134,7 @@ void CDMA::PI_DMA_READ()
} }
if (g_System->m_SaveUsing == SaveChip_FlashRam) if (g_System->m_SaveUsing == SaveChip_FlashRam)
{ {
g_Notify->DisplayError(L"**** FLashRam DMA Read address %08X *****",g_Reg->PI_CART_ADDR_REG); g_Notify->DisplayError(stdstr_f("**** FLashRam DMA Read address %08X *****",g_Reg->PI_CART_ADDR_REG).ToUTF16().c_str());
g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY; g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY;
g_Reg->MI_INTR_REG |= MI_INTR_PI; g_Reg->MI_INTR_REG |= MI_INTR_PI;
g_Reg->CheckInterrupts(); g_Reg->CheckInterrupts();
@ -142,7 +142,7 @@ void CDMA::PI_DMA_READ()
} }
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(L"PI_DMA_READ where are you dmaing to ?: 08X", g_Reg->PI_CART_ADDR_REG); g_Notify->DisplayError(stdstr_f("PI_DMA_READ where are you dmaing to ? : 08X", g_Reg->PI_CART_ADDR_REG).ToUTF16().c_str());
} }
g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY; g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY;
g_Reg->MI_INTR_REG |= MI_INTR_PI; g_Reg->MI_INTR_REG |= MI_INTR_PI;
@ -162,7 +162,7 @@ void CDMA::PI_DMA_WRITE()
g_Reg->PI_STATUS_REG |= PI_STATUS_DMA_BUSY; g_Reg->PI_STATUS_REG |= PI_STATUS_DMA_BUSY;
if ( g_Reg->PI_DRAM_ADDR_REG + PI_WR_LEN_REG > g_MMU->RdramSize()) if ( g_Reg->PI_DRAM_ADDR_REG + PI_WR_LEN_REG > g_MMU->RdramSize())
{ {
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(L"PI_DMA_WRITE not in Memory: %08X", g_Reg->PI_DRAM_ADDR_REG + PI_WR_LEN_REG); } if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(stdstr_f("PI_DMA_WRITE not in Memory: %08X", g_Reg->PI_DRAM_ADDR_REG + PI_WR_LEN_REG).ToUTF16().c_str()); }
g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY; g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY;
g_Reg->MI_INTR_REG |= MI_INTR_PI; g_Reg->MI_INTR_REG |= MI_INTR_PI;
g_Reg->CheckInterrupts(); g_Reg->CheckInterrupts();
@ -271,7 +271,7 @@ void CDMA::PI_DMA_WRITE()
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"PI_DMA_WRITE not in ROM: %08X", g_Reg->PI_CART_ADDR_REG); g_Notify->DisplayError(stdstr_f("PI_DMA_WRITE not in ROM: %08X", g_Reg->PI_CART_ADDR_REG).ToUTF16().c_str());
} }
g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY; g_Reg->PI_STATUS_REG &= ~PI_STATUS_DMA_BUSY;
g_Reg->MI_INTR_REG |= MI_INTR_PI; g_Reg->MI_INTR_REG |= MI_INTR_PI;
@ -287,7 +287,7 @@ void CDMA::SP_DMA_READ()
{ {
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\nSP_DRAM_ADDR_REG not in RDRam space: %08X", g_Reg->SP_DRAM_ADDR_REG); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nSP_DRAM_ADDR_REG not in RDRam space : % 08X", g_Reg->SP_DRAM_ADDR_REG).ToUTF16().c_str());
} }
g_Reg->SP_DMA_BUSY_REG = 0; g_Reg->SP_DMA_BUSY_REG = 0;
g_Reg->SP_STATUS_REG &= ~SP_STATUS_DMA_BUSY; g_Reg->SP_STATUS_REG &= ~SP_STATUS_DMA_BUSY;
@ -329,7 +329,7 @@ void CDMA::SP_DMA_WRITE()
{ {
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(L"SP DMA WRITE\nSP_DRAM_ADDR_REG not in RDRam space: %08X", g_Reg->SP_DRAM_ADDR_REG); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nSP_DRAM_ADDR_REG not in RDRam space : % 08X", g_Reg->SP_DRAM_ADDR_REG).ToUTF16().c_str());
} }
return; return;
} }

View File

@ -597,7 +597,7 @@ void CMipsMemoryVM::Compile_LB(x86Reg Reg, DWORD VAddr, bool SignExtend)
CPU_Message("Compile_LB\nFailed to translate address %08X",VAddr); CPU_Message("Compile_LB\nFailed to translate address %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_LB\nFailed to translate address %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address %08X",VAddr).ToUTF16().c_str());
} }
return; return;
} }
@ -627,7 +627,7 @@ void CMipsMemoryVM::Compile_LB(x86Reg Reg, DWORD VAddr, bool SignExtend)
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_LB\nFailed to compile address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to compile address: %08X",VAddr).ToUTF16().c_str());
} }
} }
} }
@ -668,7 +668,7 @@ void CMipsMemoryVM::Compile_LH(x86Reg Reg, DWORD VAddr, bool SignExtend)
CPU_Message("Compile_LH\nFailed to translate address %08X",VAddr); CPU_Message("Compile_LH\nFailed to translate address %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_LH\nFailed to translate address %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address %08X",VAddr).ToUTF16().c_str());
} }
return; return;
} }
@ -698,7 +698,7 @@ void CMipsMemoryVM::Compile_LH(x86Reg Reg, DWORD VAddr, bool SignExtend)
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_LHU\nFailed to compile address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to compile address: %08X", VAddr).ToUTF16().c_str());
} }
} }
} }
@ -765,7 +765,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -790,7 +790,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
case 0x0430000C: MoveVariableToX86reg(&g_Reg->MI_INTR_MASK_REG,"MI_INTR_MASK_REG",Reg); break; case 0x0430000C: MoveVariableToX86reg(&g_Reg->MI_INTR_MASK_REG,"MI_INTR_MASK_REG",Reg); break;
default: default:
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); } if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str()); }
} }
break; break;
case 0x04400000: case 0x04400000:
@ -810,7 +810,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -865,7 +865,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -885,7 +885,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -898,7 +898,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -910,7 +910,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
MoveConstToX86reg(0,Reg); MoveConstToX86reg(0,Reg);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -931,7 +931,7 @@ void CMipsMemoryVM::Compile_LW (x86Reg Reg, DWORD VAddr )
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
CPU_Message(__FUNCTION__ "\nFailed to translate address: %08X",VAddr); CPU_Message(__FUNCTION__ "\nFailed to translate address: %08X",VAddr);
g_Notify->DisplayError(__FUNCTIONW__ L"\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str());
} }
} }
} }
@ -959,7 +959,7 @@ void CMipsMemoryVM::Compile_SB_Const ( BYTE Value, DWORD VAddr )
if (!TranslateVaddr(VAddr, PAddr)) if (!TranslateVaddr(VAddr, PAddr))
{ {
CPU_Message("Compile_SB\nFailed to translate address: %08X",VAddr); CPU_Message("Compile_SB\nFailed to translate address: %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(L"Compile_SB\nFailed to translate address: %08X",VAddr); } if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X",VAddr).ToUTF16().c_str()); }
return; return;
} }
@ -979,7 +979,7 @@ void CMipsMemoryVM::Compile_SB_Const ( BYTE Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SB_Const\ntrying to store %02X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %02X in %08X?",Value,VAddr).ToUTF16().c_str());
} }
} }
} }
@ -1009,7 +1009,7 @@ void CMipsMemoryVM::Compile_SB_Register ( x86Reg Reg, DWORD VAddr )
CPU_Message("Compile_SB\nFailed to translate address: %08X",VAddr); CPU_Message("Compile_SB\nFailed to translate address: %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SB\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X", VAddr).ToUTF16().c_str());
} }
return; return;
} }
@ -1030,7 +1030,7 @@ void CMipsMemoryVM::Compile_SB_Register ( x86Reg Reg, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SB_Register\ntrying to store in %08X?",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
} }
} }
} }
@ -1057,7 +1057,7 @@ void CMipsMemoryVM::Compile_SH_Const ( WORD Value, DWORD VAddr )
CPU_Message("Compile_SH\nFailed to translate address: %08X",VAddr); CPU_Message("Compile_SH\nFailed to translate address: %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SH\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X", VAddr).ToUTF16().c_str());
} }
return; return;
} }
@ -1078,7 +1078,7 @@ void CMipsMemoryVM::Compile_SH_Const ( WORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\ntrying to store %04X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %04X in %08X?",Value,VAddr).ToUTF16().c_str());
} }
} }
} }
@ -1107,7 +1107,7 @@ void CMipsMemoryVM::Compile_SH_Register ( x86Reg Reg, DWORD VAddr )
CPU_Message("Compile_SH\nFailed to translate address: %08X",VAddr); CPU_Message("Compile_SH\nFailed to translate address: %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SH\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X", VAddr).ToUTF16().c_str());
} }
return; return;
} }
@ -1128,7 +1128,7 @@ void CMipsMemoryVM::Compile_SH_Register ( x86Reg Reg, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(__FUNCTIONW__ L"\ntrying to store in %08X?",PAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", PAddr).ToUTF16().c_str());
} }
} }
} }
@ -1157,7 +1157,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
CPU_Message("Compile_SW\nFailed to translate address: %08X",VAddr); CPU_Message("Compile_SW\nFailed to translate address: %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X", VAddr).ToUTF16().c_str());
} }
return; return;
} }
@ -1197,7 +1197,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1238,7 +1238,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1256,7 +1256,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1374,7 +1374,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1432,7 +1432,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1475,7 +1475,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
MoveConstToVariable(Value,PAddr + m_RDRAM,VarName); MoveConstToVariable(Value,PAddr + m_RDRAM,VarName);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1515,7 +1515,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1529,7 +1529,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %X in %X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1568,7 +1568,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1589,7 +1589,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Const\ntrying to store %08X in %08X?",Value,VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store %08X in %08X?", Value, VAddr).ToUTF16().c_str());
} }
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount()-g_System->CountPerOp()); m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount()-g_System->CountPerOp());
UpdateCounters(m_RegWorkingSet,false,true); UpdateCounters(m_RegWorkingSet,false,true);
@ -1630,7 +1630,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
CPU_Message("Compile_SW_Register\nFailed to translate address: %08X",VAddr); CPU_Message("Compile_SW_Register\nFailed to translate address: %08X",VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Register\nFailed to translate address: %08X",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nFailed to translate address: %08X", VAddr).ToUTF16().c_str());
} }
return; return;
} }
@ -1692,7 +1692,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr); CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
} }
} }
} }
@ -1730,7 +1730,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr); CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1791,7 +1791,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr); CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1835,7 +1835,11 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
default: default:
sprintf(VarName,"m_RDRAM + %X",PAddr); sprintf(VarName,"m_RDRAM + %X",PAddr);
MoveX86regToVariable(Reg,PAddr + m_RDRAM,VarName); MoveX86regToVariable(Reg,PAddr + m_RDRAM,VarName);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); } } if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{
g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
}
}
break; break;
case 0x04600000: case 0x04600000:
switch (PAddr) switch (PAddr)
@ -1857,7 +1861,10 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
AfterCallDirect(m_RegWorkingSet); AfterCallDirect(m_RegWorkingSet);
break; break;
case 0x04600010: case 0x04600010:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); } if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{
g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
}
AndConstToVariable((DWORD)~MI_INTR_PI,&g_Reg->MI_INTR_REG,"MI_INTR_REG"); AndConstToVariable((DWORD)~MI_INTR_PI,&g_Reg->MI_INTR_REG,"MI_INTR_REG");
BeforeCallDirect(m_RegWorkingSet); BeforeCallDirect(m_RegWorkingSet);
MoveConstToX86reg((DWORD)g_Reg,x86_ECX); MoveConstToX86reg((DWORD)g_Reg,x86_ECX);
@ -1884,7 +1891,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr); CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1895,7 +1902,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
} }
} }
break; break;
@ -1926,7 +1933,10 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
AfterCallDirect(m_RegWorkingSet); AfterCallDirect(m_RegWorkingSet);
break; break;
default: default:
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store at %08X?",VAddr); } if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{
g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
}
} }
break; break;
case 0x1FC00000: case 0x1FC00000:
@ -1937,7 +1947,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr); CPU_Message(" Should be moving %s in to %08X ?!?",x86_Name(Reg),VAddr);
if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadBool(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Compile_SW_Register\ntrying to store in %08X?",VAddr); g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\ntrying to store in %08X?", VAddr).ToUTF16().c_str());
} }
} }
} }
@ -2172,9 +2182,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to load byte\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to load byte\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2184,9 +2194,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to load half word\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to load half word\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2196,9 +2206,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to load byte\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to load byte\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2208,9 +2218,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to load half word\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to load half word\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2231,9 +2241,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to half word\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to half word\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2243,8 +2253,8 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to store half word\n\nMIPS Address: %08X\nX86 Address: %08X",MemAddress, g_Notify->DisplayError(stdstr_f("Failed to store half word\n\nMIPS Address: %08X\nX86 Address: %08X", MemAddress,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2261,8 +2271,8 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
if (!SH_NonMemory(MemAddress,*(WORD *)ReadPos)) { if (!SH_NonMemory(MemAddress,*(WORD *)ReadPos)) {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to store half word\n\nMIPS Address: %08X\nX86 Address: %08X",MemAddress, g_Notify->DisplayError(stdstr_f("Failed to store half word\n\nMIPS Address: %08X\nX86 Address: %08X", MemAddress,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 2); lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 2);
@ -2280,9 +2290,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to store byte\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to store byte\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2292,9 +2302,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to load byte\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to load byte\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2304,9 +2314,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to load word\n\nMIPS Address: %08X\nX86 Address: %08X", g_Notify->DisplayError(stdstr_f("Failed to load word\n\nMIPS Address: %08X\nX86 Address: %08X",
(char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2316,8 +2326,8 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to store word\n\nMIPS Address: %08X\nX86 Address: %08X",MemAddress, g_Notify->DisplayError(stdstr_f("Failed to store word\n\nMIPS Address: %08X\nX86 Address: %08X", MemAddress,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
@ -2335,8 +2345,8 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to store byte\n\nMIPS Address: %08X\nX86 Address: %08X",MemAddress, g_Notify->DisplayError(stdstr_f("Failed to store byte\n\nMIPS Address: %08X\nX86 Address: %08X", MemAddress,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 1); lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 1);
@ -2354,8 +2364,8 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory)) if (g_Settings->LoadDword(Debugger_ShowUnhandledMemory))
{ {
g_Notify->DisplayError(L"Failed to store word\n\nMIPS Address: %08X\nX86 Address: %08X",MemAddress, g_Notify->DisplayError(stdstr_f("Failed to store word\n\nMIPS Address: %08X\nX86 Address: %08X", MemAddress,
(unsigned char *)lpEP->ContextRecord->Eip); (unsigned char *)lpEP->ContextRecord->Eip).ToUTF16().c_str());
} }
} }
lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 4); lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 4);

View File

@ -135,7 +135,7 @@ void CPifRam::PifRamRead()
{ {
if (bShowPifRamErrors()) if (bShowPifRamErrors())
{ {
g_Notify->DisplayError(L"Unknown Command in PifRamRead(%X)",m_PifRam[CurPos]); g_Notify->DisplayError(stdstr_f("Unknown Command in PifRamRead(%X)",m_PifRam[CurPos]).ToUTF16().c_str());
} }
CurPos = 0x40; CurPos = 0x40;
} }
@ -200,7 +200,7 @@ void CPifRam::PifRamWrite()
default: default:
if (bShowPifRamErrors()) if (bShowPifRamErrors())
{ {
g_Notify->DisplayError(L"Unkown PifRam control: %d",m_PifRam[0x3F]); g_Notify->DisplayError(stdstr_f("Unkown PifRam control: %d",m_PifRam[0x3F]).ToUTF16().c_str());
} }
} }
return; return;
@ -255,7 +255,7 @@ void CPifRam::PifRamWrite()
{ {
if (bShowPifRamErrors()) if (bShowPifRamErrors())
{ {
g_Notify->DisplayError(L"Unknown Command in PifRamWrite(%X)",m_PifRam[CurPos]); g_Notify->DisplayError(stdstr_f("Unknown Command in PifRamWrite(%X)",m_PifRam[CurPos]).ToUTF16().c_str());
} }
CurPos = 0x40; CurPos = 0x40;
} }
@ -599,7 +599,7 @@ void CPifRam::ProcessControllerCommand ( int Control, BYTE * Command)
default: default:
if (bShowPifRamErrors()) if (bShowPifRamErrors())
{ {
g_Notify->DisplayError(L"Unknown ControllerCommand %d",Command[2]); g_Notify->DisplayError(stdstr_f("Unknown ControllerCommand %d",Command[2]).ToUTF16().c_str());
} }
} }
} }

View File

@ -518,7 +518,7 @@ void CRegisters::DoTLBReadMiss(bool DelaySlot, DWORD BadVaddr)
{ {
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(L"TLBMiss - EXL Set\nBadVaddr = %X\nAddress Defined: %s",BadVaddr,g_TLB->AddressDefined(BadVaddr)?"TRUE":"FALSE"); g_Notify->DisplayError(stdstr_f("TLBMiss - EXL Set\nBadVaddr = %X\nAddress Defined: %s",BadVaddr,g_TLB->AddressDefined(BadVaddr)?"TRUE":"FALSE").ToUTF16().c_str());
} }
m_PROGRAM_COUNTER = 0x80000180; m_PROGRAM_COUNTER = 0x80000180;
} }

View File

@ -122,7 +122,7 @@ void CSystemEvents::ExecuteEvents()
ChangePluginFunc(); ChangePluginFunc();
break; break;
case SysEvent_ChangingFullScreen: case SysEvent_ChangingFullScreen:
g_Notify->ChangeFullScreen(); Notify().ChangeFullScreen();
break; break;
case SysEvent_GSButtonPressed: case SysEvent_GSButtonPressed:
if (m_System->m_Cheats.CheatsSlectionChanged()) if (m_System->m_Cheats.CheatsSlectionChanged())

View File

@ -27,7 +27,6 @@ CN64System::CN64System ( CPlugins * Plugins, bool SavesReadOnly ) :
m_MMU_VM(this,SavesReadOnly), m_MMU_VM(this,SavesReadOnly),
m_TLB(this), m_TLB(this),
m_Reg(this,this), m_Reg(this,this),
m_FPS(g_Notify),
m_Recomp(NULL), m_Recomp(NULL),
m_InReset(false), m_InReset(false),
m_NextTimer(0), m_NextTimer(0),
@ -947,14 +946,14 @@ void CN64System::ExecuteRecompiler()
void CN64System::ExecuteSyncCPU() void CN64System::ExecuteSyncCPU()
{ {
g_Notify->BringToTop(); Notify().BringToTop();
m_Recomp->Run(); m_Recomp->Run();
} }
void CN64System::CpuStopped() void CN64System::CpuStopped()
{ {
g_Settings->SaveBool(GameRunning_CPU_Running,(DWORD)false); g_Settings->SaveBool(GameRunning_CPU_Running,(DWORD)false);
g_Notify->WindowMode(); Notify().WindowMode();
if (!m_InReset) if (!m_InReset)
{ {
if (m_hPauseEvent) if (m_hPauseEvent)
@ -963,12 +962,12 @@ void CN64System::CpuStopped()
m_hPauseEvent = NULL; m_hPauseEvent = NULL;
} }
g_Notify->RefreshMenu(); Notify().RefreshMenu();
g_Notify->MakeWindowOnTop(false); Notify().MakeWindowOnTop(false);
g_Notify->DisplayMessage(5,MSG_EMULATION_ENDED); g_Notify->DisplayMessage(5,MSG_EMULATION_ENDED);
if (g_Settings->LoadDword(RomBrowser_Enabled)) if (g_Settings->LoadDword(RomBrowser_Enabled))
{ {
g_Notify->ShowRomBrowser(); Notify().ShowRomBrowser();
} }
} }
if (m_SyncCPU) if (m_SyncCPU)

View File

@ -75,7 +75,7 @@ bool CN64Rom::AllocateAndLoadN64Image ( const char * FileLoc, bool LoadBootCodeO
TotalRead += dwRead; TotalRead += dwRead;
//Show Message of how much % wise of the rom has been loaded //Show Message of how much % wise of the rom has been loaded
g_Notify->DisplayMessage(0,L"%s: %.2f%c",GS(MSG_LOADED),((float)TotalRead/(float)RomFileSize) * 100.0f,'%'); g_Notify->DisplayMessage(0,stdstr_f("%s: %.2f%c",GS(MSG_LOADED),((float)TotalRead/(float)RomFileSize) * 100.0f,'%').ToUTF16().c_str());
} }
dwRead = TotalRead; dwRead = TotalRead;
@ -159,7 +159,7 @@ bool CN64Rom::AllocateAndLoadZipImage(const char * FileLoc, bool LoadBootCodeOnl
TotalRead += dwRead; TotalRead += dwRead;
//Show Message of how much % wise of the rom has been loaded //Show Message of how much % wise of the rom has been loaded
g_Notify->DisplayMessage(5,L"%s: %.2f%c",GS(MSG_LOADED),((float)TotalRead/(float)RomFileSize) * 100.0f,'%'); g_Notify->DisplayMessage(5,stdstr_f("%s: %.2f%c",GS(MSG_LOADED),((float)TotalRead/(float)RomFileSize) * 100.0f,'%').ToUTF16().c_str());
} }
dwRead = TotalRead + 4; dwRead = TotalRead + 4;
@ -222,7 +222,7 @@ void CN64Rom::ByteSwapRom() {
break; break;
case 0x80371240: break; case 0x80371240: break;
default: default:
g_Notify->DisplayError(L"ByteSwapRom: %X",m_ROMImage[0]); g_Notify->DisplayError(stdstr_f("ByteSwapRom: %X",m_ROMImage[0]).ToUTF16().c_str());
} }
} }
@ -250,7 +250,9 @@ void CN64Rom::CalculateCicChip()
case 0x000000D2E53EF008: m_CicChip = CIC_NUS_8303; break; //64DD IPL case 0x000000D2E53EF008: m_CicChip = CIC_NUS_8303; break; //64DD IPL
default: default:
if (bHaveDebugger()) if (bHaveDebugger())
g_Notify->DisplayError(L"Unknown CIC checksum:\n%I64X.", CRC); {
g_Notify->DisplayError(stdstr_f("Unknown CIC checksum:\n%I64X.", CRC).ToUTF16().c_str());
}
m_CicChip = CIC_UNKNOWN; break; m_CicChip = CIC_UNKNOWN; break;
} }
@ -353,7 +355,7 @@ bool CN64Rom::IsValidRomImage ( BYTE Test[4] ) {
void CN64Rom::NotificationCB ( LPCWSTR Status, CN64Rom * /*_this*/ ) void CN64Rom::NotificationCB ( LPCWSTR Status, CN64Rom * /*_this*/ )
{ {
g_Notify->DisplayMessage(5,L"%s",Status); g_Notify->DisplayMessage(5,stdstr_f("%s",Status).ToUTF16().c_str());
} }
bool CN64Rom::LoadN64Image ( const char * FileLoc, bool LoadBootCodeOnly ) { bool CN64Rom::LoadN64Image ( const char * FileLoc, bool LoadBootCodeOnly ) {

View File

@ -103,11 +103,11 @@ void CProfiling::ShowCPU_Usage() {
TotalTime = CPU + Alist + Dlist + Idle; TotalTime = CPU + Alist + Dlist + Idle;
g_Notify->DisplayMessage(0,L"r4300i: %0.1f%c GFX: %0.1f%c Alist: %0.1f%c Idle: %0.1f%c", g_Notify->DisplayMessage(0,stdstr_f("r4300i: %0.1f%c GFX: %0.1f%c Alist: %0.1f%c Idle: %0.1f%c",
(float)(((double)CPU / (double)TotalTime) * 100),'%', (float)(((double)CPU / (double)TotalTime) * 100),'%',
(float)(((double)Dlist / (double)TotalTime) * 100),'%', (float)(((double)Dlist / (double)TotalTime) * 100),'%',
(float)(((double)Alist / (double)TotalTime) * 100),'%', (float)(((double)Alist / (double)TotalTime) * 100),'%',
(float)(((double)Idle / (double)TotalTime) * 100),'%'); (float)(((double)Idle / (double)TotalTime) * 100),'%').ToUTF16().c_str());
ResetCounters(); ResetCounters();
} }

View File

@ -503,29 +503,32 @@ bool LoopAnalysis::CheckLoopRegisterUsage( CCodeSection * Section)
break; break;
case R4300i_COP0_MT: break; case R4300i_COP0_MT: break;
default: default:
if ( (m_Command.rs & 0x10 ) != 0 ) { if ( (m_Command.rs & 0x10 ) != 0 )
switch( m_Command.funct ) { {
switch( m_Command.funct )
{
case R4300i_COP0_CO_TLBR: break; case R4300i_COP0_CO_TLBR: break;
case R4300i_COP0_CO_TLBWI: break; case R4300i_COP0_CO_TLBWI: break;
case R4300i_COP0_CO_TLBWR: break; case R4300i_COP0_CO_TLBWR: break;
case R4300i_COP0_CO_TLBP: break; case R4300i_COP0_CO_TLBP: break;
case R4300i_COP0_CO_ERET: m_NextInstruction = END_BLOCK; break; case R4300i_COP0_CO_ERET: m_NextInstruction = END_BLOCK; break;
default: default:
g_Notify->DisplayError(L"Unhandled R4300i OpCode in FillSectionInfo\n%s", g_Notify->DisplayError(stdstr_f("Unhandled R4300i OpCode in FillSectionInfo\n%s",R4300iOpcodeName(m_Command.Hex,m_PC)).ToUTF16().c_str());
R4300iOpcodeName(m_Command.Hex,m_PC));
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
m_PC -= 4; m_PC -= 4;
} }
} else { }
g_Notify->DisplayError(L"Unhandled R4300i OpCode in FillSectionInfo 3\n%s", else
R4300iOpcodeName(m_Command.Hex,m_PC)); {
g_Notify->DisplayError(stdstr_f("Unhandled R4300i OpCode in FillSectionInfo 3\n%s",R4300iOpcodeName(m_Command.Hex,m_PC)).ToUTF16().c_str());
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
m_PC -= 4; m_PC -= 4;
} }
} }
break; break;
case R4300i_CP1: case R4300i_CP1:
switch (m_Command.fmt) { switch (m_Command.fmt)
{
case R4300i_COP1_CF: case R4300i_COP1_CF:
case R4300i_COP1_MF: case R4300i_COP1_MF:
case R4300i_COP1_DMF: case R4300i_COP1_DMF:
@ -594,8 +597,7 @@ bool LoopAnalysis::CheckLoopRegisterUsage( CCodeSection * Section)
case R4300i_COP1_W: break; case R4300i_COP1_W: break;
case R4300i_COP1_L: break; case R4300i_COP1_L: break;
default: default:
g_Notify->DisplayError(L"Unhandled R4300i OpCode in FillSectionInfo 2\n%s", g_Notify->DisplayError(stdstr_f("Unhandled R4300i OpCode in FillSectionInfo 2\n%s",R4300iOpcodeName(m_Command.Hex,m_PC)).ToUTF16().c_str());
R4300iOpcodeName(m_Command.Hex,m_PC));
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
m_PC -= 4; m_PC -= 4;
} }
@ -689,8 +691,7 @@ bool LoopAnalysis::CheckLoopRegisterUsage( CCodeSection * Section)
if (m_Command.Hex == 0xF1F3F5F7) { break; } if (m_Command.Hex == 0xF1F3F5F7) { break; }
if (m_Command.Hex == 0xC1200000) { break; } if (m_Command.Hex == 0xC1200000) { break; }
if (m_Command.Hex == 0x4C5A5353) { break; } if (m_Command.Hex == 0x4C5A5353) { break; }
g_Notify->DisplayError(L"Unhandled R4300i OpCode in FillSectionInfo 1\n%s\n%X", g_Notify->DisplayError(stdstr_f("Unhandled R4300i OpCode in FillSectionInfo 1\n%s\n%X",R4300iOpcodeName(m_Command.Hex,m_PC),m_Command.Hex).ToUTF16().c_str());
R4300iOpcodeName(m_Command.Hex,m_PC),m_Command.Hex);
} }
CPU_Message(" %s state: %X value: %X",CRegName::GPR[5],m_Reg.GetMipsRegState(5),m_Reg.GetMipsRegLo(5)); CPU_Message(" %s state: %X value: %X",CRegName::GPR[5],m_Reg.GetMipsRegState(5),m_Reg.GetMipsRegLo(5));

View File

@ -102,7 +102,7 @@ void CRecompiler::RecompilerMain_VirtualTable()
m_Registers.DoTLBReadMiss(false,PC); m_Registers.DoTLBReadMiss(false,PC);
if (!g_TransVaddr->ValidVaddr(PC)) if (!g_TransVaddr->ValidVaddr(PC))
{ {
g_Notify->DisplayError(L"Failed to translate PC to a PAddr: %X\n\nEmulation stopped",PC); g_Notify->DisplayError(stdstr_f("Failed to translate PC to a PAddr: %X\n\nEmulation stopped",PC).ToUTF16().c_str());
return; return;
} }
continue; continue;
@ -521,7 +521,7 @@ void CRecompiler::RecompilerMain_Lookup_TLB()
m_Registers.DoTLBReadMiss(false,PROGRAM_COUNTER); m_Registers.DoTLBReadMiss(false,PROGRAM_COUNTER);
if (!g_TransVaddr->TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr)) if (!g_TransVaddr->TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr))
{ {
g_Notify->DisplayError(L"Failed to translate PC to a PAddr: %X\n\nEmulation stopped",PROGRAM_COUNTER); g_Notify->DisplayError(stdstr_f("Failed to translate PC to a PAddr: %X\n\nEmulation stopped",PROGRAM_COUNTER).ToUTF16().c_str());
m_EndEmulation = true; m_EndEmulation = true;
} }
continue; continue;
@ -544,7 +544,9 @@ void CRecompiler::RecompilerMain_Lookup_TLB()
JumpTable()[PhysicalAddr >> 2] = info; JumpTable()[PhysicalAddr >> 2] = info;
} }
(info->Function())(); (info->Function())();
} else { }
else
{
DWORD opsExecuted = 0; DWORD opsExecuted = 0;
while (g_TransVaddr->TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr) && PhysicalAddr >= g_System->RdramSize()) while (g_TransVaddr->TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr) && PhysicalAddr >= g_System->RdramSize())
@ -621,7 +623,7 @@ void CRecompiler::RecompilerMain_Lookup_validate_TLB()
m_Registers.DoTLBReadMiss(false,PROGRAM_COUNTER); m_Registers.DoTLBReadMiss(false,PROGRAM_COUNTER);
if (!g_TransVaddr->TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr)) if (!g_TransVaddr->TranslateVaddr(PROGRAM_COUNTER, PhysicalAddr))
{ {
g_Notify->DisplayError(L"Failed to translate PC to a PAddr: %X\n\nEmulation stopped",PROGRAM_COUNTER); g_Notify->DisplayError(stdstr_f("Failed to translate PC to a PAddr: %X\n\nEmulation stopped",PROGRAM_COUNTER).ToUTF16().c_str());
m_EndEmulation = true; m_EndEmulation = true;
} }
continue; continue;

View File

@ -88,5 +88,5 @@ void CRecompMemory::ShowMemUsed()
DWORD TotalAvaliable = m_RecompSize / 0x100000; DWORD TotalAvaliable = m_RecompSize / 0x100000;
g_Notify->DisplayMessage(0,L"Memory used: %d mb %-3d kb %-3d bytes Total Available: %d mb",MB,KB,Size, TotalAvaliable); g_Notify->DisplayMessage(0,stdstr_f("Memory used: %d mb %-3d kb %-3d bytes Total Available: %d mb",MB,KB,Size, TotalAvaliable).ToUTF16().c_str());
} }

View File

@ -295,7 +295,7 @@ void CRecompilerOps::Compile_Branch (CRecompilerOps::BranchFunction CompareFunc,
} else { } else {
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(L"WTF\n\nBranch\nNextInstruction = %X", m_NextInstruction); g_Notify->DisplayError(stdstr_f("WTF\n\nBranch\nNextInstruction = %X", m_NextInstruction).ToUTF16().c_str());
} }
} }
} }
@ -415,7 +415,7 @@ void CRecompilerOps::Compile_BranchLikely (BranchFunction CompareFunc, bool Link
m_Section->GenerateSectionLinkage(); m_Section->GenerateSectionLinkage();
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
} else if (bHaveDebugger()) { } else if (bHaveDebugger()) {
g_Notify->DisplayError(L"WTF\n\nBranchLikely\nNextInstruction = %X", m_NextInstruction); g_Notify->DisplayError(stdstr_f("WTF\n\nBranchLikely\nNextInstruction = %X", m_NextInstruction).ToUTF16().c_str());
} }
} }
@ -1338,11 +1338,12 @@ void CRecompilerOps::J() {
m_Section->GenerateSectionLinkage(); m_Section->GenerateSectionLinkage();
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
} else if (bHaveDebugger()) { } else if (bHaveDebugger()) {
g_Notify->DisplayError(L"WTF\n\nJ\nNextInstruction = %X", m_NextInstruction); g_Notify->DisplayError(stdstr_f("WTF\n\nJ\nNextInstruction = %X", m_NextInstruction).ToUTF16().c_str());
} }
} }
void CRecompilerOps::JAL() { void CRecompilerOps::JAL()
{
if ( m_NextInstruction == NORMAL ) if ( m_NextInstruction == NORMAL )
{ {
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC)); CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
@ -1763,7 +1764,7 @@ void CRecompilerOps::CACHE(){
default: default:
if (bHaveDebugger()) if (bHaveDebugger())
{ {
g_Notify->DisplayError(L"cache: %d",m_Opcode.rt); g_Notify->DisplayError(stdstr_f("cache: %d",m_Opcode.rt).ToUTF16().c_str());
} }
} }
} }
@ -1957,16 +1958,26 @@ void CRecompilerOps::SPECIAL_JR() {
} }
} }
m_NextInstruction = DO_DELAY_SLOT; m_NextInstruction = DO_DELAY_SLOT;
} else if (m_NextInstruction == DELAY_SLOT_DONE) { }
if (DelaySlotEffectsCompare(m_CompilePC,m_Opcode.rs,0)) { else if (m_NextInstruction == DELAY_SLOT_DONE)
{
if (DelaySlotEffectsCompare(m_CompilePC,m_Opcode.rs,0))
{
m_Section->CompileExit(m_CompilePC, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL); m_Section->CompileExit(m_CompilePC, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL);
} else { }
else
{
UpdateCounters(m_RegWorkingSet,true,true); UpdateCounters(m_RegWorkingSet,true,true);
if (IsConst(m_Opcode.rs)) { if (IsConst(m_Opcode.rs))
{
MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} else if (IsMapped(m_Opcode.rs)) { }
else if (IsMapped(m_Opcode.rs))
{
MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} else { }
else
{
MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} }
m_Section->CompileExit((DWORD)-1, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL); m_Section->CompileExit((DWORD)-1, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL);
@ -1976,8 +1987,10 @@ void CRecompilerOps::SPECIAL_JR() {
} }
} }
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
} else if (bHaveDebugger()) { }
g_Notify->DisplayError(L"WTF\n\nBranch\nNextInstruction = %X", m_NextInstruction); else if (bHaveDebugger())
{
g_Notify->DisplayError(stdstr_f("WTF\n\nBranch\nNextInstruction = %X", m_NextInstruction).ToUTF16().c_str());
} }
} }
@ -1988,11 +2001,16 @@ void CRecompilerOps::SPECIAL_JALR()
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC)); CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
if (DelaySlotEffectsCompare(m_CompilePC,m_Opcode.rs,0) && (m_CompilePC & 0xFFC) != 0xFFC) if (DelaySlotEffectsCompare(m_CompilePC,m_Opcode.rs,0) && (m_CompilePC & 0xFFC) != 0xFFC)
{ {
if (IsConst(m_Opcode.rs)) { if (IsConst(m_Opcode.rs))
{
MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} else if (IsMapped(m_Opcode.rs)) { }
else if (IsMapped(m_Opcode.rs))
{
MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} else { }
else
{
MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} }
} }
@ -2001,10 +2019,13 @@ void CRecompilerOps::SPECIAL_JALR()
m_RegWorkingSet.SetMipsRegState(m_Opcode.rd,CRegInfo::STATE_CONST_32_SIGN); m_RegWorkingSet.SetMipsRegState(m_Opcode.rd,CRegInfo::STATE_CONST_32_SIGN);
if ((m_CompilePC & 0xFFC) == 0xFFC) if ((m_CompilePC & 0xFFC) == 0xFFC)
{ {
if (IsMapped(m_Opcode.rs)) { if (IsMapped(m_Opcode.rs))
{
MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation"); MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation");
m_RegWorkingSet.WriteBackRegisters(); m_RegWorkingSet.WriteBackRegisters();
} else { }
else
{
m_RegWorkingSet.WriteBackRegisters(); m_RegWorkingSet.WriteBackRegisters();
MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation"); MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation");
} }
@ -2020,16 +2041,26 @@ void CRecompilerOps::SPECIAL_JALR()
m_Section->m_Cont.LinkLocation2 = NULL; m_Section->m_Cont.LinkLocation2 = NULL;
m_NextInstruction = DO_DELAY_SLOT; m_NextInstruction = DO_DELAY_SLOT;
} else if (m_NextInstruction == DELAY_SLOT_DONE ) { }
if (DelaySlotEffectsCompare(m_CompilePC,m_Opcode.rs,0)) { else if (m_NextInstruction == DELAY_SLOT_DONE )
{
if (DelaySlotEffectsCompare(m_CompilePC,m_Opcode.rs,0))
{
m_Section->CompileExit(m_CompilePC, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL); m_Section->CompileExit(m_CompilePC, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL);
} else { }
else
{
UpdateCounters(m_RegWorkingSet,true,true); UpdateCounters(m_RegWorkingSet,true,true);
if (IsConst(m_Opcode.rs)) { if (IsConst(m_Opcode.rs))
{
MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} else if (IsMapped(m_Opcode.rs)) { }
else if (IsMapped(m_Opcode.rs))
{
MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} else { }
else
{
MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), _PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, false), _PROGRAM_COUNTER, "PROGRAM_COUNTER");
} }
m_Section->CompileExit((DWORD)-1, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL); m_Section->CompileExit((DWORD)-1, (DWORD)-1, m_RegWorkingSet, CExitInfo::Normal, true, NULL);
@ -2039,18 +2070,22 @@ void CRecompilerOps::SPECIAL_JALR()
} }
} }
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
} else if (bHaveDebugger()) { }
g_Notify->DisplayError(L"WTF\n\nBranch\nNextInstruction = %X", m_NextInstruction); else if (bHaveDebugger())
{
g_Notify->DisplayError(stdstr_f("WTF\n\nBranch\nNextInstruction = %X", m_NextInstruction).ToUTF16().c_str());
} }
} }
void CRecompilerOps::SPECIAL_SYSCALL() { void CRecompilerOps::SPECIAL_SYSCALL()
{
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC)); CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
m_Section->CompileExit(m_CompilePC, (DWORD)-1, m_RegWorkingSet, CExitInfo::DoSysCall, true, NULL); m_Section->CompileExit(m_CompilePC, (DWORD)-1, m_RegWorkingSet, CExitInfo::DoSysCall, true, NULL);
m_NextInstruction = END_BLOCK; m_NextInstruction = END_BLOCK;
} }
void CRecompilerOps::SPECIAL_MFLO() { void CRecompilerOps::SPECIAL_MFLO()
{
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC)); CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
if (m_Opcode.rd == 0) { return; } if (m_Opcode.rd == 0) { return; }
@ -2059,28 +2094,44 @@ void CRecompilerOps::SPECIAL_MFLO() {
MoveVariableToX86reg(&_RegLO->UW[1],"_RegLO->UW[1]",GetMipsRegMapHi(m_Opcode.rd)); MoveVariableToX86reg(&_RegLO->UW[1],"_RegLO->UW[1]",GetMipsRegMapHi(m_Opcode.rd));
} }
void CRecompilerOps::SPECIAL_MTLO() { void CRecompilerOps::SPECIAL_MTLO()
{
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC)); CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
if (IsKnown(m_Opcode.rs) && IsConst(m_Opcode.rs)) { if (IsKnown(m_Opcode.rs) && IsConst(m_Opcode.rs))
if (Is64Bit(m_Opcode.rs)) { {
if (Is64Bit(m_Opcode.rs))
{
MoveConstToVariable(GetMipsRegHi(m_Opcode.rs),&_RegLO->UW[1],"_RegLO->UW[1]"); MoveConstToVariable(GetMipsRegHi(m_Opcode.rs),&_RegLO->UW[1],"_RegLO->UW[1]");
} else if (IsSigned(m_Opcode.rs) && ((GetMipsRegLo(m_Opcode.rs) & 0x80000000) != 0)) { }
else if (IsSigned(m_Opcode.rs) && ((GetMipsRegLo(m_Opcode.rs) & 0x80000000) != 0))
{
MoveConstToVariable(0xFFFFFFFF,&_RegLO->UW[1],"_RegLO->UW[1]"); MoveConstToVariable(0xFFFFFFFF,&_RegLO->UW[1],"_RegLO->UW[1]");
} else { }
else
{
MoveConstToVariable(0,&_RegLO->UW[1],"_RegLO->UW[1]"); MoveConstToVariable(0,&_RegLO->UW[1],"_RegLO->UW[1]");
} }
MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), &_RegLO->UW[0],"_RegLO->UW[0]"); MoveConstToVariable(GetMipsRegLo(m_Opcode.rs), &_RegLO->UW[0],"_RegLO->UW[0]");
} else if (IsKnown(m_Opcode.rs) && IsMapped(m_Opcode.rs)) { }
if (Is64Bit(m_Opcode.rs)) { else if (IsKnown(m_Opcode.rs) && IsMapped(m_Opcode.rs))
{
if (Is64Bit(m_Opcode.rs))
{
MoveX86regToVariable(GetMipsRegMapHi(m_Opcode.rs),&_RegLO->UW[1],"_RegLO->UW[1]"); MoveX86regToVariable(GetMipsRegMapHi(m_Opcode.rs),&_RegLO->UW[1],"_RegLO->UW[1]");
} else if (IsSigned(m_Opcode.rs)) { }
else if (IsSigned(m_Opcode.rs))
{
MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, true), &_RegLO->UW[1], "_RegLO->UW[1]"); MoveX86regToVariable(Map_TempReg(x86_Any, m_Opcode.rs, true), &_RegLO->UW[1], "_RegLO->UW[1]");
} else { }
else
{
MoveConstToVariable(0,&_RegLO->UW[1],"_RegLO->UW[1]"); MoveConstToVariable(0,&_RegLO->UW[1],"_RegLO->UW[1]");
} }
MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), &_RegLO->UW[0],"_RegLO->UW[0]"); MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), &_RegLO->UW[0],"_RegLO->UW[0]");
} else { }
else
{
x86Reg reg = Map_TempReg(x86_Any, m_Opcode.rs, true); x86Reg reg = Map_TempReg(x86_Any, m_Opcode.rs, true);
MoveX86regToVariable(reg,&_RegLO->UW[1],"_RegLO->UW[1]"); MoveX86regToVariable(reg,&_RegLO->UW[1],"_RegLO->UW[1]");
MoveX86regToVariable(Map_TempReg(reg, m_Opcode.rs, false), &_RegLO->UW[0], "_RegLO->UW[0]"); MoveX86regToVariable(Map_TempReg(reg, m_Opcode.rs, false), &_RegLO->UW[0], "_RegLO->UW[0]");

View File

@ -337,7 +337,7 @@ void CRegInfo::Load_FPR_ToTop ( int Reg, int RegToLoad, FPU_STATE Format)
fpuLoadQwordFromX86Reg(&StackTopPos(),TempReg); fpuLoadQwordFromX86Reg(&StackTopPos(),TempReg);
break; break;
default: default:
if (bHaveDebugger()) { g_Notify->DisplayError(L"Load_FPR_ToTop\nUnkown format to load %d",Format); } if (bHaveDebugger()) { g_Notify->DisplayError(stdstr_f("Load_FPR_ToTop\nUnkown format to load %d",Format).ToUTF16().c_str()); }
} }
SetX86Protected(TempReg, false); SetX86Protected(TempReg, false);
FpuRoundingModel(StackTopPos()) = RoundDefault; FpuRoundingModel(StackTopPos()) = RoundDefault;
@ -979,7 +979,7 @@ void CRegInfo::UnMap_FPR (int Reg, int WriteBackValue )
fpuStoreQwordFromX86Reg(&StackTopPos(),TempReg, true); fpuStoreQwordFromX86Reg(&StackTopPos(),TempReg, true);
break; break;
default: default:
if (bHaveDebugger()) { g_Notify->DisplayError(__FUNCTIONW__ L"\nUnknown format to load %d",x86fpu_State[StackTopPos()]); } if (bHaveDebugger()) { g_Notify->DisplayError(stdstr_f(__FUNCTION__ "\nUnknown format to load %d",x86fpu_State[StackTopPos()]).ToUTF16().c_str()); }
} }
SetX86Protected(TempReg, false); SetX86Protected(TempReg, false);
FpuRoundingModel(RegPos) = RoundDefault; FpuRoundingModel(RegPos) = RoundDefault;

View File

@ -14,8 +14,6 @@ bool CNotificationSettings::m_bInFullScreen = false;
CNotificationSettings::CNotificationSettings() CNotificationSettings::CNotificationSettings()
{ {
g_Settings->RegisterChangeCB(UserInterface_InFullScreen,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
RefreshSettings();
} }
CNotificationSettings::~CNotificationSettings() CNotificationSettings::~CNotificationSettings()
@ -26,6 +24,12 @@ CNotificationSettings::~CNotificationSettings()
} }
} }
void CNotificationSettings::RegisterNotifications()
{
g_Settings->RegisterChangeCB(UserInterface_InFullScreen, this, (CSettings::SettingChangedFunc)StaticRefreshSettings);
RefreshSettings();
}
void CNotificationSettings::RefreshSettings() void CNotificationSettings::RefreshSettings()
{ {
m_bInFullScreen = g_Settings->LoadBool(UserInterface_InFullScreen); m_bInFullScreen = g_Settings->LoadBool(UserInterface_InFullScreen);

View File

@ -25,5 +25,6 @@ protected:
CNotificationSettings(); CNotificationSettings();
virtual ~CNotificationSettings(); virtual ~CNotificationSettings();
void RegisterNotifications (void);
inline bool InFullScreen ( void ) const { return m_bInFullScreen; } inline bool InFullScreen ( void ) const { return m_bInFullScreen; }
}; };

View File

@ -10,8 +10,7 @@
****************************************************************************/ ****************************************************************************/
#include "stdafx.h" #include "stdafx.h"
CFramePerSecond::CFramePerSecond (CNotification * Notification): CFramePerSecond::CFramePerSecond ()
g_Notify(Notification)
{ {
m_iFrameRateType = g_Settings->LoadDword(UserInterface_FrameDisplayType); m_iFrameRateType = g_Settings->LoadDword(UserInterface_FrameDisplayType);
m_ScreenHertz = g_Settings->LoadDword(GameRunning_ScreenHertz); m_ScreenHertz = g_Settings->LoadDword(GameRunning_ScreenHertz);
@ -25,7 +24,7 @@ CFramePerSecond::CFramePerSecond (CNotification * Notification):
LARGE_INTEGER Freq; LARGE_INTEGER Freq;
QueryPerformanceFrequency(&Freq); QueryPerformanceFrequency(&Freq);
Frequency = Freq.QuadPart; m_Frequency = Freq.QuadPart;
Reset(true); Reset(true);
} }
@ -37,12 +36,12 @@ CFramePerSecond::~CFramePerSecond()
void CFramePerSecond::Reset (bool ClearDisplay) void CFramePerSecond::Reset (bool ClearDisplay)
{ {
CurrentFrame = 0; m_CurrentFrame = 0;
LastFrame = 0; m_LastFrame = 0;
for (int count = 0; count < NoOfFrames; count ++) for (int count = 0; count < NoOfFrames; count ++)
{ {
Frames[count] = 0; m_Frames[count] = 0;
} }
if (ClearDisplay) if (ClearDisplay)
{ {
@ -62,14 +61,15 @@ void CFramePerSecond::UpdateViCounter ( void )
{ {
return; return;
} }
if ((CurrentFrame & 7) == 0) { if ((m_CurrentFrame & 7) == 0)
{
LARGE_INTEGER Time; LARGE_INTEGER Time;
QueryPerformanceCounter(&Time); QueryPerformanceCounter(&Time);
Frames[(CurrentFrame >> 3) % NoOfFrames] = Time.QuadPart - LastFrame; m_Frames[(m_CurrentFrame >> 3) % NoOfFrames] = Time.QuadPart - m_LastFrame;
LastFrame = Time.QuadPart; m_LastFrame = Time.QuadPart;
DisplayViCounter(0); DisplayViCounter(0);
} }
CurrentFrame += 1; m_CurrentFrame += 1;
} }
void CFramePerSecond::DisplayViCounter(DWORD FrameRate) void CFramePerSecond::DisplayViCounter(DWORD FrameRate)
@ -78,20 +78,20 @@ void CFramePerSecond::DisplayViCounter(DWORD FrameRate)
{ {
if (FrameRate != 0) if (FrameRate != 0)
{ {
g_Notify->DisplayMessage2(L"VI/s: %d.00", FrameRate); g_Notify->DisplayMessage2(stdstr_f("VI/s: %d.00", FrameRate).ToUTF16().c_str());
} }
else else
{ {
if (CurrentFrame > (NoOfFrames << 3)) if (m_CurrentFrame > (NoOfFrames << 3))
{ {
__int64 Total; __int64 Total;
Total = 0; Total = 0;
for (int count = 0; count < NoOfFrames; count ++) for (int count = 0; count < NoOfFrames; count ++)
{ {
Total += Frames[count]; Total += m_Frames[count];
} }
g_Notify->DisplayMessage2(L"VI/s: %.2f", Frequency/ ((double)Total / (NoOfFrames << 3))); g_Notify->DisplayMessage2(stdstr_f("VI/s: %.2f", m_Frequency / ((double)Total / (NoOfFrames << 3))).ToUTF16().c_str());
} }
else else
{ {
@ -108,16 +108,16 @@ void CFramePerSecond::DisplayViCounter(DWORD FrameRate)
} }
else else
{ {
if (CurrentFrame > (NoOfFrames << 3)) if (m_CurrentFrame > (NoOfFrames << 3))
{ {
__int64 Total; __int64 Total;
Total = 0; Total = 0;
for (int count = 0; count < NoOfFrames; count ++) for (int count = 0; count < NoOfFrames; count ++)
{ {
Total += Frames[count]; Total += m_Frames[count];
} }
Percent = ((float)(Frequency/ ((double)Total / (NoOfFrames << 3)))) / m_ScreenHertz; Percent = ((float)(m_Frequency / ((double)Total / (NoOfFrames << 3)))) / m_ScreenHertz;
} }
else else
{ {
@ -125,13 +125,13 @@ void CFramePerSecond::DisplayViCounter(DWORD FrameRate)
return; return;
} }
} }
g_Notify->DisplayMessage2(L"%.1f %%",Percent * 100); g_Notify->DisplayMessage2(stdstr_f("%.1f %%",Percent * 100).ToUTF16().c_str());
} }
} }
void CFramePerSecond::FrameRateTypeChanged (CFramePerSecond * _this) void CFramePerSecond::FrameRateTypeChanged (CFramePerSecond * _this)
{ {
_this->m_iFrameRateType = g_Settings->LoadDword(UserInterface_FrameDisplayType); _this->m_iFrameRateType = g_Settings->LoadDword(UserInterface_FrameDisplayType);
_this->Reset(true); _this->Reset(true);
} }
@ -147,33 +147,41 @@ void CFramePerSecond::UpdateDlCounter ( void )
{ {
return; return;
} }
if ((CurrentFrame & 3) == 0) { if ((m_CurrentFrame & 3) == 0) {
LARGE_INTEGER Time; LARGE_INTEGER Time;
QueryPerformanceCounter(&Time); QueryPerformanceCounter(&Time);
Frames[(CurrentFrame >> 2) % NoOfFrames] = Time.QuadPart - LastFrame; m_Frames[(m_CurrentFrame >> 2) % NoOfFrames] = Time.QuadPart - m_LastFrame;
LastFrame = Time.QuadPart; m_LastFrame = Time.QuadPart;
DisplayDlCounter(0); DisplayDlCounter(0);
} }
CurrentFrame += 1; m_CurrentFrame += 1;
} }
void CFramePerSecond::DisplayDlCounter(DWORD FrameRate) { void CFramePerSecond::DisplayDlCounter(DWORD FrameRate)
{
if (m_iFrameRateType != FR_DLs) if (m_iFrameRateType != FR_DLs)
{ {
return; return;
} }
if (FrameRate != 0) { if (FrameRate != 0)
g_Notify->DisplayMessage2(L"DL/s: %d.00", FrameRate); {
} else { g_Notify->DisplayMessage2(stdstr_f("DL/s: %d.00", FrameRate).ToUTF16().c_str());
if (CurrentFrame > (NoOfFrames << 2)) { }
else
{
if (m_CurrentFrame > (NoOfFrames << 2))
{
__int64 Total; __int64 Total;
Total = 0; Total = 0;
for (int count = 0; count < NoOfFrames; count ++) { for (int count = 0; count < NoOfFrames; count ++)
Total += Frames[count]; {
Total += m_Frames[count];
} }
g_Notify->DisplayMessage2(L"DL/s: %.1f", Frequency/ ((double)Total / (NoOfFrames << 2))); g_Notify->DisplayMessage2(stdstr_f("DL/s: %.1f", m_Frequency / ((double)Total / (NoOfFrames << 2))).ToUTF16().c_str());
} else { }
else
{
g_Notify->DisplayMessage2(L"DL/s: -.--"); g_Notify->DisplayMessage2(L"DL/s: -.--");
} }
} }

View File

@ -10,21 +10,10 @@
****************************************************************************/ ****************************************************************************/
#pragma once #pragma once
class CFramePerSecond { class CFramePerSecond
CNotification * const g_Notify; {
int m_iFrameRateType, m_ScreenHertz;
enum { NoOfFrames = 7 };
__int64 Frequency, Frames[NoOfFrames], LastFrame;
int CurrentFrame;
static void FrameRateTypeChanged (CFramePerSecond * _this);
static void ScreenHertzChanged (CFramePerSecond * _this);
public: public:
CFramePerSecond ( CNotification * Notification ); CFramePerSecond ( void );
~CFramePerSecond ( void ); ~CFramePerSecond ( void );
void Reset ( bool ClearDisplay ); void Reset ( bool ClearDisplay );
@ -33,5 +22,15 @@ public:
void UpdateViCounter ( void ); void UpdateViCounter ( void );
void DisplayDlCounter ( DWORD FrameRate ); void DisplayDlCounter ( DWORD FrameRate );
void DisplayViCounter ( DWORD FrameRate ); void DisplayViCounter ( DWORD FrameRate );
// void ClearDisplay ( void );
private:
static void FrameRateTypeChanged(CFramePerSecond * _this);
static void ScreenHertzChanged(CFramePerSecond * _this);
int m_iFrameRateType, m_ScreenHertz;
enum { NoOfFrames = 7 };
__int64 m_Frequency, m_Frames[NoOfFrames], m_LastFrame;
int m_CurrentFrame;
}; };

View File

@ -1,4 +1,7 @@
enum MainMenuID { #pragma once
enum MainMenuID
{
//File Menu //File Menu
ID_FILE_OPEN_ROM = 4000, ID_FILE_ROM_INFO, ID_FILE_STARTEMULATION, ID_FILE_ENDEMULATION, ID_FILE_OPEN_ROM = 4000, ID_FILE_ROM_INFO, ID_FILE_STARTEMULATION, ID_FILE_ENDEMULATION,
ID_FILE_ROMDIRECTORY, ID_FILE_REFRESHROMLIST, ID_FILE_EXIT, ID_FILE_ROMDIRECTORY, ID_FILE_REFRESHROMLIST, ID_FILE_EXIT,

View File

@ -15,6 +15,11 @@ CNotification::CNotification() :
_tzset(); _tzset();
} }
void CNotification::AppInitDone(void)
{
CNotificationSettings::RegisterNotifications();
}
void CNotification::SetMainWindow ( CMainGui * Gui ) void CNotification::SetMainWindow ( CMainGui * Gui )
{ {
m_hWnd = Gui; m_hWnd = Gui;
@ -43,23 +48,17 @@ void CNotification::WindowMode ( void ) const
InsideFunc = false; InsideFunc = false;
} }
void CNotification::DisplayError ( const wchar_t * Message, ... ) const void CNotification::DisplayError(LanguageStringID StringID) const
{ {
va_list ap; DisplayError(g_Lang->GetString(StringID).c_str());
va_start( ap, Message );
DisplayError (Message,ap);
} }
void CNotification::DisplayError ( const wchar_t * Message, va_list ap ) const void CNotification::DisplayError(const wchar_t * Message) const
{ {
if (this == NULL) { return; } if (this == NULL) { return; }
wchar_t Msg[1000];
_vsnwprintf( Msg,sizeof(Msg) - 1,Message, ap );
va_end( ap );
stdstr TraceMessage; stdstr TraceMessage;
TraceMessage.FromUTF16(Msg); TraceMessage.FromUTF16(Message);
WriteTrace(TraceError,TraceMessage.c_str()); WriteTrace(TraceError,TraceMessage.c_str());
WindowMode(); WindowMode();
@ -68,17 +67,15 @@ void CNotification::DisplayError ( const wchar_t * Message, va_list ap ) const
{ {
Parent = m_hWnd->GetHandle(); Parent = m_hWnd->GetHandle();
} }
MessageBoxW(Parent,Msg,GS(MSG_MSGBOX_TITLE),MB_OK|MB_ICONERROR|MB_SETFOREGROUND); MessageBoxW(Parent, Message, GS(MSG_MSGBOX_TITLE), MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
} }
void CNotification::DisplayMessage ( int DisplayTime, const wchar_t * Message, ... ) const void CNotification::DisplayMessage(int DisplayTime, LanguageStringID StringID) const
{ {
va_list ap; DisplayMessage(DisplayTime, g_Lang->GetString(StringID).c_str());
va_start( ap, Message );
DisplayMessage (DisplayTime, Message,ap);
} }
void CNotification::DisplayMessage ( int DisplayTime, const wchar_t * Message, va_list ap ) const void CNotification::DisplayMessage(int DisplayTime, const wchar_t * Message) const
{ {
if (!m_hWnd) { return; } if (!m_hWnd) { return; }
@ -97,13 +94,7 @@ void CNotification::DisplayMessage ( int DisplayTime, const wchar_t * Message,
{ {
m_NextMsg = 0; m_NextMsg = 0;
} }
} }
wchar_t Msg[1000];
_vsnwprintf( Msg,sizeof(Msg) - 1,Message, ap );
va_end( ap );
if (InFullScreen()) if (InFullScreen())
{ {
@ -111,7 +102,7 @@ void CNotification::DisplayMessage ( int DisplayTime, const wchar_t * Message,
{ {
WriteTrace(TraceGfxPlugin,__FUNCTION__ ": DrawStatus - Starting"); WriteTrace(TraceGfxPlugin,__FUNCTION__ ": DrawStatus - Starting");
stdstr PluginMessage; stdstr PluginMessage;
PluginMessage.FromUTF16(Msg); PluginMessage.FromUTF16(Message);
m_gfxPlugin->DrawStatus(PluginMessage.c_str(), FALSE); m_gfxPlugin->DrawStatus(PluginMessage.c_str(), FALSE);
WriteTrace(TraceGfxPlugin,__FUNCTION__ ": DrawStatus - Done"); WriteTrace(TraceGfxPlugin,__FUNCTION__ ": DrawStatus - Done");
} }
@ -119,30 +110,19 @@ void CNotification::DisplayMessage ( int DisplayTime, const wchar_t * Message,
else else
{ {
#if defined(WINDOWS_UI) #if defined(WINDOWS_UI)
m_hWnd->SetStatusText(0, Msg); m_hWnd->SetStatusText(0, Message);
#else #else
g_Notify -> BreakPoint(__FILEW__, __LINE__); g_Notify -> BreakPoint(__FILEW__, __LINE__);
#endif #endif
} }
} }
void CNotification::DisplayMessage2 ( const wchar_t * Message, ... ) const void CNotification::DisplayMessage2 ( const wchar_t * Message ) const
{
va_list ap;
va_start( ap, Message );
DisplayMessage2 (Message,ap);
}
void CNotification::DisplayMessage2 ( const wchar_t * Message, va_list ap ) const
{ {
if (!m_hWnd) { return; } if (!m_hWnd) { return; }
wchar_t Msg[1000];
_vsnwprintf( Msg,sizeof(Msg) - 1 ,Message, ap );
va_end( ap );
#if defined(WINDOWS_UI) #if defined(WINDOWS_UI)
m_hWnd->SetStatusText(1,Msg); m_hWnd->SetStatusText(1, Message);
#else #else
g_Notify -> BreakPoint(__FILEW__, __LINE__); g_Notify -> BreakPoint(__FILEW__, __LINE__);
#endif #endif
@ -167,19 +147,18 @@ void CNotification::SetWindowCaption (const wchar_t * Caption)
#endif #endif
} }
void CNotification::FatalError ( const wchar_t * Message, ... ) const void CNotification::FatalError(LanguageStringID StringID) const
{ {
wchar_t Msg[1000]; FatalError(g_Lang->GetString(StringID).c_str());
va_list ap; }
void CNotification::FatalError(const wchar_t * Message) const
{
WindowMode(); WindowMode();
va_start( ap, Message );
_vsnwprintf( Msg,(sizeof(Msg) / sizeof(Msg[0])) - 1, Message, ap );
va_end( ap );
HWND Parent = NULL; HWND Parent = NULL;
if (m_hWnd) { Parent = reinterpret_cast<HWND>(m_hWnd->GetHandle()); } if (m_hWnd) { Parent = reinterpret_cast<HWND>(m_hWnd->GetHandle()); }
MessageBoxW(Parent,Msg,L"Error",MB_OK|MB_ICONERROR|MB_SETFOREGROUND); MessageBoxW(Parent, Message, L"Error", MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
ExitThread(0); ExitThread(0);
} }
@ -338,7 +317,7 @@ void CNotification::BreakPoint ( const wchar_t * FileName, const int LineNumber
{ {
if (g_Settings->LoadBool(Debugger_Enabled)) if (g_Settings->LoadBool(Debugger_Enabled))
{ {
DisplayError(L"Break point found at\n%s\n%d",FileName, LineNumber); DisplayError(stdstr_f("Break point found at\n%s\n%d",FileName, LineNumber).ToUTF16().c_str());
if (IsDebuggerPresent() != 0) if (IsDebuggerPresent() != 0)
{ {
DebugBreak(); DebugBreak();

View File

@ -20,27 +20,25 @@ class CNotification :
public: public:
CNotification ( void ); CNotification ( void );
void AppInitDone ( void );
// Make sure we are not in full screen // Make sure we are not in full screen
void WindowMode ( void ) const; void WindowMode ( void ) const;
//Error Messages //Error Messages
void DisplayError ( const wchar_t * Message, ... ) const; virtual void DisplayError(const wchar_t * Message) const;
void DisplayError ( const wchar_t * Message, va_list ap ) const; virtual void DisplayError(LanguageStringID StringID) const;
void DisplayError ( LanguageStringID StringID ) const { std::wstring str = g_Lang->GetString(StringID); DisplayError(str.c_str()); }
void FatalError ( const wchar_t * Message, ... ) const; virtual void FatalError(const wchar_t * Message) const;
void FatalError ( const wchar_t * Message, va_list ap ) const; virtual void FatalError(LanguageStringID StringID) const;
void FatalError ( LanguageStringID StringID ) const { std::wstring str = g_Lang->GetString(StringID); FatalError(str.c_str()); }
//User Feedback //User Feedback
void DisplayMessage ( int DisplayTime, const wchar_t * Message, ... ) const; virtual void DisplayMessage(int DisplayTime, const wchar_t * Message) const;
void DisplayMessage ( int DisplayTime, const wchar_t * Message, va_list ap ) const; virtual void DisplayMessage(int DisplayTime, LanguageStringID StringID) const;
void DisplayMessage ( int DisplayTime, LanguageStringID StringID ) const
{ virtual void DisplayMessage2(const wchar_t * Message) const;
std::wstring str = g_Lang->GetString(StringID); virtual void BreakPoint(const wchar_t * FileName, const int LineNumber);
DisplayMessage(DisplayTime,L"%s",str.c_str());
}
void DisplayMessage2 ( const wchar_t * Message, ... ) const;
void DisplayMessage2 ( const wchar_t * Message, va_list ap ) const;
void SetWindowCaption ( const wchar_t * Caption ); void SetWindowCaption ( const wchar_t * Caption );
//Remember roms loaded and Rom Dir selected //Remember roms loaded and Rom Dir selected
@ -54,7 +52,6 @@ public:
void ShowRomBrowser ( void ); void ShowRomBrowser ( void );
void MakeWindowOnTop ( bool OnTop ); void MakeWindowOnTop ( bool OnTop );
void BringToTop ( void ); void BringToTop ( void );
void BreakPoint ( const wchar_t * FileName, const int LineNumber);
bool ProcessGuiMessages ( void ) const; bool ProcessGuiMessages ( void ) const;
void ChangeFullScreen ( void ) const; void ChangeFullScreen ( void ) const;
void SetGfxPlugin ( CGfxPlugin * Plugin ); void SetGfxPlugin ( CGfxPlugin * Plugin );