mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
an attempt to clean up the logging a bit
1) The new ERROR, WARN, INFO, DEBUG _LOG macros were used ERROR, // Bad errors - that still don't deserve a PanicAlert. WARNING, // Something is suspicious. INFO, // General information. DEBUG, // Strictly for detailed debugging - might make things slow. 2) Made all LOG macro use into some of the logging level supporting macros LOG is commented out on linux can someone try it on windows? (it's in Log.h) 3) Added ERROR_lOG next to each panic alert I hope I helped making the logs a bit more useful/readble git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2510 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@@ -87,7 +87,7 @@ extern void __Logv(int log, int v, const char *format, ...);
|
||||
|
||||
#else
|
||||
|
||||
#define LOG(t, ...) __Log(LogTypes::t, ##__VA_ARGS__);
|
||||
//#define LOG(t, ...) __Log(LogTypes::t, ##__VA_ARGS__);
|
||||
#define LOGV(t,v, ...) __Log(LogTypes::t + (v)*100, ##__VA_ARGS__);
|
||||
#define LOGP(t, ...) __Log(t, ##__VA_ARGS__);
|
||||
#define LOGVP(t,v, ...) __Log(t + (v)*100, ##__VA_ARGS__);
|
||||
@@ -100,13 +100,13 @@ extern void __Logv(int log, int v, const char *format, ...);
|
||||
|
||||
#define _dbg_assert_(_t_, _a_) \
|
||||
if (!(_a_)) {\
|
||||
LOG(_t_, "Error...\n\n Line: %d\n File: %s\n Time: %s\n\nIgnore and continue?", \
|
||||
ERROR_LOG(_t_, "Error...\n\n Line: %d\n File: %s\n Time: %s\n\nIgnore and continue?", \
|
||||
__LINE__, __FILE__, __TIME__); \
|
||||
if (!PanicYesNo("*** Assertion (see log)***\n")) {Crash();} \
|
||||
}
|
||||
#define _dbg_assert_msg_(_t_, _a_, ...)\
|
||||
if (!(_a_)) {\
|
||||
LOG(_t_, __VA_ARGS__); \
|
||||
ERROR_LOG(_t_, __VA_ARGS__); \
|
||||
if (!PanicYesNo(__VA_ARGS__)) {Crash();} \
|
||||
}
|
||||
#define _dbg_update_() Host_UpdateLogDisplay();
|
||||
|
||||
@@ -53,7 +53,7 @@ bool MsgAlert(const char* caption, bool yes_no, int Style, const char* format, .
|
||||
CharArrayFromFormatV(buffer, 2047, format, args);
|
||||
va_end(args);
|
||||
|
||||
LOG(MASTER_LOG, "%s: %s", caption, buffer);
|
||||
ERROR_LOG(MASTER_LOG, "%s: %s", caption, buffer);
|
||||
// -----------
|
||||
|
||||
if (msg_handler) {
|
||||
|
||||
@@ -49,7 +49,7 @@ void CBoot::RunFunction(u32 _iAddr)
|
||||
// execute the apploader, function by function, using the above utility.
|
||||
void CBoot::EmulatedBIOS(bool _bDebug)
|
||||
{
|
||||
LOG(BOOT, "Faking GC BIOS...");
|
||||
INFO_LOG(BOOT, "Faking GC BIOS...");
|
||||
UReg_MSR& m_MSR = ((UReg_MSR&)PowerPC::ppcState.msr);
|
||||
m_MSR.FP = 1;
|
||||
|
||||
@@ -94,7 +94,7 @@ void CBoot::EmulatedBIOS(bool _bDebug)
|
||||
// =======================================================================================
|
||||
|
||||
// Call iAppLoaderEntry.
|
||||
LOG(MASTER_LOG, "Call iAppLoaderEntry");
|
||||
DEBUG_LOG(MASTER_LOG, "Call iAppLoaderEntry");
|
||||
|
||||
u32 iAppLoaderFuncAddr = 0x80003100;
|
||||
PowerPC::ppcState.gpr[3] = iAppLoaderFuncAddr + 0;
|
||||
@@ -106,7 +106,7 @@ void CBoot::EmulatedBIOS(bool _bDebug)
|
||||
u32 iAppLoaderClose = Memory::ReadUnchecked_U32(iAppLoaderFuncAddr + 8);
|
||||
|
||||
// iAppLoaderInit
|
||||
LOG(MASTER_LOG, "Call iAppLoaderInit");
|
||||
DEBUG_LOG(MASTER_LOG, "Call iAppLoaderInit");
|
||||
PowerPC::ppcState.gpr[3] = 0x81300000;
|
||||
RunFunction(iAppLoaderInit);
|
||||
|
||||
@@ -115,7 +115,7 @@ void CBoot::EmulatedBIOS(bool _bDebug)
|
||||
To give you an idea about where the stuff is located on the disc take a look at yagcd
|
||||
ch 13. */
|
||||
// ---------------------------------------------------------------------------------------
|
||||
LOG(MASTER_LOG, "Call iAppLoaderMain");
|
||||
DEBUG_LOG(MASTER_LOG, "Call iAppLoaderMain");
|
||||
do
|
||||
{
|
||||
PowerPC::ppcState.gpr[3] = 0x81300004;
|
||||
@@ -135,7 +135,7 @@ void CBoot::EmulatedBIOS(bool _bDebug)
|
||||
// =======================================================================================
|
||||
|
||||
// iAppLoaderClose
|
||||
LOG(MASTER_LOG, "call iAppLoaderClose");
|
||||
DEBUG_LOG(MASTER_LOG, "call iAppLoaderClose");
|
||||
RunFunction(iAppLoaderClose);
|
||||
|
||||
// Load patches
|
||||
@@ -169,13 +169,13 @@ void CBoot::EmulatedBIOS(bool _bDebug)
|
||||
//
|
||||
bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
|
||||
{
|
||||
LOG(BOOT, "Faking Wii BIOS...");
|
||||
INFO_LOG(BOOT, "Faking Wii BIOS...");
|
||||
|
||||
// See if we have a memory dump to boot
|
||||
FILE* pDump = fopen(FULL_WII_SYS_DIR "dump_0x0000_0x4000.bin", "rb");
|
||||
if (pDump != NULL)
|
||||
{
|
||||
LOG(MASTER_LOG, "Init from memory dump.");
|
||||
INFO_LOG(MASTER_LOG, "Init from memory dump.");
|
||||
|
||||
fread(Memory::GetMainRAMPtr(), 1, 16384, pDump);
|
||||
fclose(pDump);
|
||||
@@ -218,7 +218,7 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
|
||||
FILE* pTmp = fopen(filename.c_str(), "rb");
|
||||
if (!pTmp)
|
||||
{
|
||||
LOG(MASTER_LOG, "Cant find setting file");
|
||||
ERROR_LOG(MASTER_LOG, "Cant find setting file");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -333,13 +333,13 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
|
||||
u32 iAppLoaderSize = VolumeHandler::Read32(iAppLoaderOffset + 0x14);
|
||||
if ((iAppLoaderEntry == (u32)-1) || (iAppLoaderSize == (u32)-1))
|
||||
{
|
||||
LOG(BOOT, "Invalid apploader. Probably your image is corrupted.");
|
||||
ERROR_LOG(BOOT, "Invalid apploader. Probably your image is corrupted.");
|
||||
return false;
|
||||
}
|
||||
VolumeHandler::ReadToPtr(Memory::GetPointer(0x81200000), iAppLoaderOffset + 0x20, iAppLoaderSize);
|
||||
|
||||
//call iAppLoaderEntry
|
||||
LOG(BOOT, "Call iAppLoaderEntry");
|
||||
DEBUG_LOG(BOOT, "Call iAppLoaderEntry");
|
||||
|
||||
u32 iAppLoaderFuncAddr = 0x80004000;
|
||||
PowerPC::ppcState.gpr[3] = iAppLoaderFuncAddr + 0;
|
||||
@@ -351,7 +351,7 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
|
||||
u32 iAppLoaderClose = Memory::ReadUnchecked_U32(iAppLoaderFuncAddr+8);
|
||||
|
||||
// iAppLoaderInit
|
||||
LOG(BOOT, "Run iAppLoaderInit");
|
||||
DEBUG_LOG(BOOT, "Run iAppLoaderInit");
|
||||
PowerPC::ppcState.gpr[3] = 0x81300000;
|
||||
RunFunction(iAppLoaderInit);
|
||||
|
||||
@@ -360,7 +360,7 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
|
||||
any side effects however. It's a little disconcerning however that Start after Stop
|
||||
behaves differently than the first Start after starting Dolphin. It means something
|
||||
was not reset correctly. */
|
||||
LOG(BOOT, "Run iAppLoaderMain");
|
||||
DEBUG_LOG(BOOT, "Run iAppLoaderMain");
|
||||
do
|
||||
{
|
||||
PowerPC::ppcState.gpr[3] = 0x81300004;
|
||||
@@ -378,7 +378,7 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
|
||||
} while(PowerPC::ppcState.gpr[3] != 0x00);
|
||||
|
||||
// iAppLoaderClose
|
||||
LOG(BOOT, "Run iAppLoaderClose");
|
||||
DEBUG_LOG(BOOT, "Run iAppLoaderClose");
|
||||
RunFunction(iAppLoaderClose);
|
||||
|
||||
// Load patches and run startup patches
|
||||
|
||||
@@ -121,7 +121,7 @@ void addrToHiLo(u32 addr, u16 &hi, s16 &lo)
|
||||
|
||||
bool ElfReader::LoadInto(u32 vaddr)
|
||||
{
|
||||
LOG(MASTER_LOG,"String section: %i", header->e_shstrndx);
|
||||
DEBUG_LOG(MASTER_LOG,"String section: %i", header->e_shstrndx);
|
||||
|
||||
// sectionOffsets = new u32[GetNumSections()];
|
||||
// sectionAddrs = new u32[GetNumSections()];
|
||||
@@ -131,15 +131,15 @@ bool ElfReader::LoadInto(u32 vaddr)
|
||||
|
||||
if (bRelocate)
|
||||
{
|
||||
LOG(MASTER_LOG,"Relocatable module");
|
||||
DEBUG_LOG(MASTER_LOG,"Relocatable module");
|
||||
entryPoint += vaddr;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG(MASTER_LOG,"Prerelocated executable");
|
||||
DEBUG_LOG(MASTER_LOG,"Prerelocated executable");
|
||||
}
|
||||
|
||||
LOG(MASTER_LOG,"%i segments:", header->e_phnum);
|
||||
INFO_LOG(MASTER_LOG,"%i segments:", header->e_phnum);
|
||||
|
||||
// First pass : Get the bits into RAM
|
||||
u32 segmentVAddr[32];
|
||||
@@ -149,7 +149,7 @@ bool ElfReader::LoadInto(u32 vaddr)
|
||||
{
|
||||
Elf32_Phdr *p = segments + i;
|
||||
|
||||
LOG(MASTER_LOG, "Type: %i Vaddr: %08x Filesz: %i Memsz: %i ", p->p_type, p->p_vaddr, p->p_filesz, p->p_memsz);
|
||||
INFO_LOG(MASTER_LOG, "Type: %i Vaddr: %08x Filesz: %i Memsz: %i ", p->p_type, p->p_vaddr, p->p_filesz, p->p_memsz);
|
||||
|
||||
if (p->p_type == PT_LOAD)
|
||||
{
|
||||
@@ -170,7 +170,7 @@ bool ElfReader::LoadInto(u32 vaddr)
|
||||
{
|
||||
//memset(dst + srcSize, 0, dstSize-srcSize); //zero out bss
|
||||
}
|
||||
LOG(MASTER_LOG,"Loadable Segment Copied to %08x, size %08x", writeAddr, p->p_memsz);
|
||||
INFO_LOG(MASTER_LOG,"Loadable Segment Copied to %08x, size %08x", writeAddr, p->p_memsz);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ bool ElfReader::LoadInto(u32 vaddr)
|
||||
}
|
||||
}
|
||||
*/
|
||||
LOG(MASTER_LOG,"Done.");
|
||||
INFO_LOG(MASTER_LOG,"Done loading.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,12 +38,12 @@ void Console_Submit(const char *cmd)
|
||||
CASE1("r")
|
||||
{
|
||||
Core::StartTrace(false);
|
||||
LOG(CONSOLE, "read tracing started.");
|
||||
INFO_LOG(CONSOLE, "read tracing started.");
|
||||
}
|
||||
CASE1("w")
|
||||
{
|
||||
Core::StartTrace(true);
|
||||
LOG(CONSOLE, "write tracing started.");
|
||||
INFO_LOG(CONSOLE, "write tracing started.");
|
||||
}
|
||||
CASE("trans")
|
||||
{
|
||||
@@ -57,11 +57,11 @@ void Console_Submit(const char *cmd)
|
||||
u32 EA =
|
||||
#endif
|
||||
Memory::CheckDTLB(addr, Memory::FLAG_NO_EXCEPTION);
|
||||
LOG(CONSOLE, "EA 0x%08x to 0x%08x", addr, EA);
|
||||
INFO_LOG(CONSOLE, "EA 0x%08x to 0x%08x", addr, EA);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG(CONSOLE, "Syntax: trans ADDR");
|
||||
DEBUG_LOG(CONSOLE, "Syntax: trans ADDR");
|
||||
}
|
||||
}
|
||||
CASE("call")
|
||||
@@ -75,7 +75,7 @@ void Console_Submit(const char *cmd)
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG(CONSOLE, "Syntax: call ADDR");
|
||||
DEBUG_LOG(CONSOLE, "Syntax: call ADDR");
|
||||
}
|
||||
}
|
||||
CASE("llac")
|
||||
@@ -89,7 +89,7 @@ void Console_Submit(const char *cmd)
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG(CONSOLE, "Syntax: llac ADDR");
|
||||
DEBUG_LOG(CONSOLE, "Syntax: llac ADDR");
|
||||
}
|
||||
}
|
||||
CASE("pend")
|
||||
@@ -111,7 +111,7 @@ void Console_Submit(const char *cmd)
|
||||
fputc(b,f);
|
||||
}
|
||||
fclose(f);
|
||||
LOG(CONSOLE, "Dumped from %08x to %08x to %s",start,end,filename);
|
||||
INFO_LOG(CONSOLE, "Dumped from %08x to %08x to %s",start,end,filename);
|
||||
}
|
||||
CASE("disa")
|
||||
{
|
||||
@@ -128,14 +128,14 @@ void Console_Submit(const char *cmd)
|
||||
}
|
||||
CASE("help")
|
||||
{
|
||||
LOG(CONSOLE, "Dolphin Console Command List");
|
||||
LOG(CONSOLE, "scan ADDR - will find functions that are called by this function");
|
||||
LOG(CONSOLE, "call ADDR - will find functions that call this function");
|
||||
LOG(CONSOLE, "dump START_A END_A FILENAME - will dump memory between START_A and END_A");
|
||||
LOG(CONSOLE, "help - guess what this does :P");
|
||||
LOG(CONSOLE, "lisd - list signature database");
|
||||
LOG(CONSOLE, "lisf - list functions");
|
||||
LOG(CONSOLE, "trans ADDR - translate address");
|
||||
ERROR_LOG(CONSOLE, "Dolphin Console Command List");
|
||||
ERROR_LOG(CONSOLE, "scan ADDR - will find functions that are called by this function");
|
||||
ERROR_LOG(CONSOLE, "call ADDR - will find functions that call this function");
|
||||
ERROR_LOG(CONSOLE, "dump START_A END_A FILENAME - will dump memory between START_A and END_A");
|
||||
ERROR_LOG(CONSOLE, "help - guess what this does :P");
|
||||
ERROR_LOG(CONSOLE, "lisd - list signature database");
|
||||
ERROR_LOG(CONSOLE, "lisf - list functions");
|
||||
ERROR_LOG(CONSOLE, "trans ADDR - translate address");
|
||||
}
|
||||
CASE("lisd")
|
||||
{
|
||||
@@ -151,6 +151,6 @@ void Console_Submit(const char *cmd)
|
||||
}
|
||||
else {
|
||||
printf("blach\n");
|
||||
LOG(CONSOLE, "Invalid command");
|
||||
ERROR_LOG(CONSOLE, "Invalid command");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -365,8 +365,8 @@ THREAD_RETURN EmuThread(void *pArg)
|
||||
if (_CoreParameter.bLockThreads)
|
||||
Common::Thread::SetCurrentThreadAffinity(2); // Force to second core
|
||||
|
||||
LOG(OSREPORT, "Starting core = %s mode", _CoreParameter.bWii ? "Wii" : "Gamecube");
|
||||
LOG(OSREPORT, "Dualcore = %s", _CoreParameter.bUseDualCore ? "Yes" : "No");
|
||||
INFO_LOG(OSREPORT, "Starting core = %s mode", _CoreParameter.bWii ? "Wii" : "Gamecube");
|
||||
INFO_LOG(OSREPORT, "Dualcore = %s", _CoreParameter.bUseDualCore ? "Yes" : "No");
|
||||
|
||||
HW::Init();
|
||||
|
||||
@@ -575,7 +575,7 @@ void EmuThreadEnd()
|
||||
HW::Shutdown();
|
||||
Plugins.ShutdownPlugins();
|
||||
|
||||
LOG(MASTER_LOG, "EmuThread exited");
|
||||
INFO_LOG(MASTER_LOG, "EmuThread exited");
|
||||
// The CPU should return when a game is stopped and cleanup should be done here,
|
||||
// so we can restart the plugins (or load new ones) for the next game.
|
||||
if (_CoreParameter.hMainWindow == g_pWindowHandle)
|
||||
@@ -646,7 +646,7 @@ void LoadState() {
|
||||
// WARNING - THIS IS EXECUTED FROM VIDEO THREAD
|
||||
void Callback_VideoLog(const TCHAR *_szMessage, int _bDoBreak)
|
||||
{
|
||||
LOG(VIDEO, _szMessage);
|
||||
INFO_LOG(VIDEO, _szMessage);
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
@@ -733,7 +733,7 @@ void Callback_DSPInterrupt()
|
||||
//
|
||||
void Callback_PADLog(const TCHAR* _szMessage)
|
||||
{
|
||||
LOG(SERIALINTERFACE, _szMessage);
|
||||
INFO_LOG(SERIALINTERFACE, _szMessage);
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
|
||||
@@ -174,7 +174,7 @@ bool SCoreStartupParameter::AutoSetup(EBootBios _BootBios)
|
||||
m_strSRAM = GC_SRAM_FILE;
|
||||
m_strBios = FULL_GC_SYS_DIR + Region + DIR_SEP GC_IPL;
|
||||
if (!File::Exists(m_strBios.c_str())) {
|
||||
LOG(BOOT, "BIOS file %s not found - using HLE.", m_strBios.c_str());
|
||||
WARN_LOG(BOOT, "BIOS file %s not found - using HLE.", m_strBios.c_str());
|
||||
bHLEBios = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -378,7 +378,7 @@ void Advance()
|
||||
}
|
||||
if (!first)
|
||||
{
|
||||
LOG(GEKKO, "WARNING - no events in queue. Setting downcount to 10000");
|
||||
WARN_LOG(GEKKO, "WARNING - no events in queue. Setting downcount to 10000");
|
||||
downcount += 10000;
|
||||
}
|
||||
else
|
||||
@@ -397,7 +397,7 @@ void LogPendingEvents()
|
||||
Event *ptr = first;
|
||||
while (ptr)
|
||||
{
|
||||
LOG(GEKKO, "PENDING: Now: %lld Pending: %lld Type: %d", globalTimer, ptr->time, ptr->type);
|
||||
INFO_LOG(GEKKO, "PENDING: Now: %lld Pending: %lld Type: %d", globalTimer, ptr->time, ptr->type);
|
||||
ptr = ptr->next;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ void TMemCheck::Action(u32 iValue, u32 addr, bool write, int size, u32 pc)
|
||||
{
|
||||
if (Log)
|
||||
{
|
||||
LOG(MEMMAP,"CHK %08x %s%i at %08x (%s)",
|
||||
DEBUG_LOG(MEMMAP,"CHK %08x %s%i at %08x (%s)",
|
||||
iValue, write ? "Write" : "Read", // read or write
|
||||
size*8, addr, // address
|
||||
g_symbolDB.GetDescription(addr) // symbol map description
|
||||
|
||||
@@ -121,7 +121,7 @@ void PatchFunctions()
|
||||
orig_instruction[addr] = Memory::ReadUnchecked_U32(addr);
|
||||
Memory::Write_U32(HLEPatchValue | i, addr);
|
||||
}
|
||||
LOG(HLE,"Patching %s %08x", OSPatches[i].m_szPatchName, symbol->address);
|
||||
INFO_LOG(HLE,"Patching %s %08x", OSPatches[i].m_szPatchName, symbol->address);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ void PatchFunctions()
|
||||
if (symbol > 0)
|
||||
{
|
||||
BreakPoints::Add(symbol->address, false);
|
||||
LOG(HLE,"Adding BP to %s %08x", OSBreakPoints[i].m_szPatchName, symbol->address);
|
||||
INFO_LOG(HLE,"Adding BP to %s %08x", OSBreakPoints[i].m_szPatchName, symbol->address);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ void HLE_OSPanic()
|
||||
GetStringVA(Error);
|
||||
|
||||
PanicAlert("OSPanic: %s", Error.c_str());
|
||||
LOG(OSREPORT,"(PC=%08x), OSPanic: %s", LR, Error.c_str());
|
||||
ERROR_LOG(OSREPORT,"(PC=%08x), OSPanic: %s", LR, Error.c_str());
|
||||
|
||||
NPC = LR;
|
||||
}
|
||||
@@ -50,7 +50,7 @@ void HLE_OSReport()
|
||||
PC = LR;
|
||||
|
||||
// PanicAlert("(PC=%08x) OSReport: %s", LR, ReportMessage.c_str());
|
||||
LOGV(OSREPORT,0,"(PC=%08x) OSReport: %s", LR, ReportMessage.c_str());
|
||||
ERROR_LOG(OSREPORT,"(PC=%08x) OSReport: %s", LR, ReportMessage.c_str());
|
||||
|
||||
PC = hackPC;
|
||||
}
|
||||
@@ -65,7 +65,7 @@ void HLE_vprintf()
|
||||
PC = LR;
|
||||
|
||||
// PanicAlert("(PC=%08x) VPrintf: %s", LR, ReportMessage.c_str());
|
||||
LOG(OSREPORT,"(PC=%08x) VPrintf: %s", LR, ReportMessage.c_str());
|
||||
ERROR_LOG(OSREPORT,"(PC=%08x) VPrintf: %s", LR, ReportMessage.c_str());
|
||||
|
||||
PC = hackPC;
|
||||
}
|
||||
@@ -80,7 +80,7 @@ void HLE_printf()
|
||||
PC = LR;
|
||||
|
||||
// PanicAlert("(PC=%08x) Printf: %s ", LR, ReportMessage.c_str());
|
||||
LOG(OSREPORT,"(PC=%08x) Printf: %s ", LR, ReportMessage.c_str());
|
||||
ERROR_LOG(OSREPORT,"(PC=%08x) Printf: %s ", LR, ReportMessage.c_str());
|
||||
|
||||
PC = hackPC;
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ void Read32(u32& _rReturnValue, const u32 _Address)
|
||||
switch (_Address & 0xFFFF)
|
||||
{
|
||||
case AI_CONTROL_REGISTER: //0x6C00
|
||||
LOGV(AUDIO_INTERFACE, 1, "AudioInterface(R) 0x%08x", _Address);
|
||||
WARN_LOG(AUDIO_INTERFACE, "AudioInterface(R) 0x%08x", _Address);
|
||||
_rReturnValue = g_AudioRegister.m_Control.hex;
|
||||
|
||||
return;
|
||||
@@ -132,7 +132,7 @@ void Read32(u32& _rReturnValue, const u32 _Address)
|
||||
// Sample Rate (AIGetDSPSampleRate)
|
||||
// 32bit state (highest bit PlayState) // AIGetStreamPlayState
|
||||
case AI_VOLUME_REGISTER: //0x6C04
|
||||
LOGV(AUDIO_INTERFACE, 1, "AudioInterface(R) 0x%08x", _Address);
|
||||
WARN_LOG(AUDIO_INTERFACE, "AudioInterface(R) 0x%08x", _Address);
|
||||
_rReturnValue = g_AudioRegister.m_Volume.hex;
|
||||
return;
|
||||
|
||||
@@ -145,12 +145,12 @@ void Read32(u32& _rReturnValue, const u32 _Address)
|
||||
case AI_INTERRUPT_TIMING:
|
||||
// When sample counter reaches the value of this register, the interrupt AIINT should
|
||||
// fire.
|
||||
LOGV(AUDIO_INTERFACE, 1, "AudioInterface(R) 0x%08x", _Address);
|
||||
WARN_LOG(AUDIO_INTERFACE, "AudioInterface(R) 0x%08x", _Address);
|
||||
_rReturnValue = g_AudioRegister.m_InterruptTiming;
|
||||
return;
|
||||
|
||||
default:
|
||||
LOG(AUDIO_INTERFACE, "AudioInterface(R) 0x%08x", _Address);
|
||||
INFO_LOG(AUDIO_INTERFACE, "AudioInterface(R) 0x%08x", _Address);
|
||||
_dbg_assert_msg_(AUDIO_INTERFACE, 0, "AudioInterface - Read from ???");
|
||||
_rReturnValue = 0;
|
||||
return;
|
||||
@@ -171,7 +171,7 @@ void Write32(const u32 _Value, const u32 _Address)
|
||||
// Set frequency
|
||||
if (tmpAICtrl.AFR != g_AudioRegister.m_Control.AFR)
|
||||
{
|
||||
LOG(AUDIO_INTERFACE, "Change Freq to %s", tmpAICtrl.AFR ? "48khz":"32khz");
|
||||
INFO_LOG(AUDIO_INTERFACE, "Change Freq to %s", tmpAICtrl.AFR ? "48khz":"32khz");
|
||||
g_AudioRegister.m_Control.AFR = tmpAICtrl.AFR;
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ void Write32(const u32 _Value, const u32 _Address)
|
||||
// Streaming counter
|
||||
if (tmpAICtrl.PSTAT != g_AudioRegister.m_Control.PSTAT)
|
||||
{
|
||||
LOG(AUDIO_INTERFACE, "Change StreamingCounter to %s", tmpAICtrl.PSTAT ? "startet":"stopped");
|
||||
INFO_LOG(AUDIO_INTERFACE, "Change StreamingCounter to %s", tmpAICtrl.PSTAT ? "startet":"stopped");
|
||||
g_AudioRegister.m_Control.PSTAT = tmpAICtrl.PSTAT;
|
||||
|
||||
g_LastCPUTime = CoreTiming::GetTicks();
|
||||
@@ -193,14 +193,14 @@ void Write32(const u32 _Value, const u32 _Address)
|
||||
// AI Interrupt
|
||||
if (tmpAICtrl.AIINT)
|
||||
{
|
||||
LOG(AUDIO_INTERFACE, "Clear AI Interrupt");
|
||||
INFO_LOG(AUDIO_INTERFACE, "Clear AI Interrupt");
|
||||
g_AudioRegister.m_Control.AIINT = 0;
|
||||
}
|
||||
|
||||
// Sample Count Reset
|
||||
if (tmpAICtrl.SCRESET)
|
||||
{
|
||||
LOGV(AUDIO_INTERFACE, 1, "Reset SampleCounter");
|
||||
WARN_LOG(AUDIO_INTERFACE, "Reset SampleCounter");
|
||||
g_AudioRegister.m_SampleCounter = 0;
|
||||
g_AudioRegister.m_Control.SCRESET = 0;
|
||||
|
||||
@@ -217,7 +217,7 @@ void Write32(const u32 _Value, const u32 _Address)
|
||||
|
||||
case AI_VOLUME_REGISTER:
|
||||
g_AudioRegister.m_Volume.hex = _Value;
|
||||
LOGV(AUDIO_INTERFACE, 1, "Set m_Volume: left(%i) right(%i)", g_AudioRegister.m_Volume.leftVolume, g_AudioRegister.m_Volume.rightVolume);
|
||||
WARN_LOG(AUDIO_INTERFACE, "Set m_Volume: left(%i) right(%i)", g_AudioRegister.m_Volume.leftVolume, g_AudioRegister.m_Volume.rightVolume);
|
||||
break;
|
||||
|
||||
case AI_SAMPLE_COUNTER:
|
||||
@@ -227,7 +227,7 @@ void Write32(const u32 _Value, const u32 _Address)
|
||||
|
||||
case AI_INTERRUPT_TIMING:
|
||||
g_AudioRegister.m_InterruptTiming = _Value;
|
||||
LOG(AUDIO_INTERFACE, "Set AudioInterrupt: 0x%08x Samples", g_AudioRegister.m_InterruptTiming);
|
||||
INFO_LOG(AUDIO_INTERFACE, "Set AudioInterrupt: 0x%08x Samples", g_AudioRegister.m_InterruptTiming);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -240,7 +240,7 @@ void Shutdown()
|
||||
|
||||
void Read16(u16& _rReturnValue, const u32 _Address)
|
||||
{
|
||||
LOGV(COMMANDPROCESSOR, 1, "(r): 0x%08x", _Address);
|
||||
WARN_LOG(COMMANDPROCESSOR, "(r): 0x%08x", _Address);
|
||||
switch (_Address & 0xFFF)
|
||||
{
|
||||
case STATUS_REGISTER:
|
||||
@@ -255,7 +255,7 @@ void Read16(u16& _rReturnValue, const u32 _Address)
|
||||
//m_CPStatusReg.CommandIdle = 1;
|
||||
|
||||
_rReturnValue = m_CPStatusReg.Hex;
|
||||
LOG(COMMANDPROCESSOR, "\t iBP %s | fREADIDLE %s | fCMDIDLE %s | iOvF %s | iUndF %s"
|
||||
INFO_LOG(COMMANDPROCESSOR, "\t iBP %s | fREADIDLE %s | fCMDIDLE %s | iOvF %s | iUndF %s"
|
||||
, m_CPStatusReg.Breakpoint ? "ON" : "OFF"
|
||||
, m_CPStatusReg.ReadIdle ? "ON" : "OFF"
|
||||
, m_CPStatusReg.CommandIdle ? "ON" : "OFF"
|
||||
@@ -286,33 +286,33 @@ void Read16(u16& _rReturnValue, const u32 _Address)
|
||||
//_rReturnValue = ReadLow (fifo.CPReadWriteDistance);
|
||||
// hack: CPU will always believe fifo is empty and on idle
|
||||
_rReturnValue = 0;
|
||||
LOG(COMMANDPROCESSOR,"read FIFO_RW_DISTANCE_LO : %04x", _rReturnValue);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"read FIFO_RW_DISTANCE_LO : %04x", _rReturnValue);
|
||||
return;
|
||||
case FIFO_RW_DISTANCE_HI:
|
||||
//_rReturnValue = ReadHigh(fifo.CPReadWriteDistance);
|
||||
// hack: CPU will always believe fifo is empty and on idle
|
||||
_rReturnValue = 0;
|
||||
LOG(COMMANDPROCESSOR,"read FIFO_RW_DISTANCE_HI : %04x", _rReturnValue);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"read FIFO_RW_DISTANCE_HI : %04x", _rReturnValue);
|
||||
return;
|
||||
case FIFO_WRITE_POINTER_LO:
|
||||
_rReturnValue = ReadLow (fifo.CPWritePointer);
|
||||
LOG(COMMANDPROCESSOR,"read FIFO_WRITE_POINTER_LO : %04x", _rReturnValue);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"read FIFO_WRITE_POINTER_LO : %04x", _rReturnValue);
|
||||
return;
|
||||
case FIFO_WRITE_POINTER_HI:
|
||||
_rReturnValue = ReadHigh(fifo.CPWritePointer);
|
||||
LOG(COMMANDPROCESSOR,"read FIFO_WRITE_POINTER_HI : %04x", _rReturnValue);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"read FIFO_WRITE_POINTER_HI : %04x", _rReturnValue);
|
||||
return;
|
||||
case FIFO_READ_POINTER_LO:
|
||||
//_rReturnValue = ReadLow (fifo.CPReadPointer);
|
||||
// hack: CPU will always believe fifo is empty and on idle
|
||||
_rReturnValue = ReadLow (fifo.CPWritePointer);
|
||||
LOG(COMMANDPROCESSOR,"read FIFO_READ_POINTER_LO : %04x", _rReturnValue);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"read FIFO_READ_POINTER_LO : %04x", _rReturnValue);
|
||||
return;
|
||||
case FIFO_READ_POINTER_HI:
|
||||
//_rReturnValue = ReadHigh(fifo.CPReadPointer);
|
||||
// hack: CPU will always believe fifo is empty and on idle
|
||||
_rReturnValue = ReadHigh(fifo.CPWritePointer);
|
||||
LOG(COMMANDPROCESSOR,"read FIFO_READ_POINTER_HI : %04x", _rReturnValue);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"read FIFO_READ_POINTER_HI : %04x", _rReturnValue);
|
||||
return;
|
||||
case FIFO_BP_LO: _rReturnValue = ReadLow (fifo.CPBreakpoint); return;
|
||||
case FIFO_BP_HI: _rReturnValue = ReadHigh(fifo.CPBreakpoint); return;
|
||||
@@ -344,7 +344,7 @@ bool AllowIdleSkipping()
|
||||
|
||||
void Write16(const u16 _Value, const u32 _Address)
|
||||
{
|
||||
LOGV(COMMANDPROCESSOR, 1, "(w): 0x%04x @ 0x%08x",_Value,_Address);
|
||||
WARN_LOG(COMMANDPROCESSOR, "(w): 0x%04x @ 0x%08x",_Value,_Address);
|
||||
|
||||
//Spin until queue is empty - it WILL become empty because this is the only thread
|
||||
//that submits data
|
||||
@@ -377,13 +377,13 @@ void Write16(const u16 _Value, const u32 _Address)
|
||||
" - Anyway, fifo flush will be forced if you press OK and dolphin might continue to work...\n"
|
||||
" - We aren't betting on that :)", fifo.CPReadWriteDistance);
|
||||
*/
|
||||
LOG(COMMANDPROCESSOR, "*********************** GXSetGPFifo very soon? ***********************");
|
||||
WARN_LOG(COMMANDPROCESSOR, "*********************** GXSetGPFifo very soon? ***********************");
|
||||
u32 ct=0;
|
||||
// (mb2) We don't sleep here since it could be a perf issue for super monkey ball (yup only this game IIRC)
|
||||
// Touching that game is a no-go so I don't want to take the risk :p
|
||||
while (fifo.bFF_GPReadEnable && fifo.CPReadWriteDistance > 0 )
|
||||
ct++;
|
||||
if (ct) {LOG(COMMANDPROCESSOR, "(Write16): %lu cycles for nothing :[ ", ct);}
|
||||
if (ct) {WARN_LOG(COMMANDPROCESSOR, "(Write16): %lu cycles for nothing :[ ", ct);}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,7 +412,7 @@ void Write16(const u16 _Value, const u32 _Address)
|
||||
// update interrupts
|
||||
UpdateInterrupts();
|
||||
|
||||
LOG(COMMANDPROCESSOR,"\t write to STATUS_REGISTER : %04x", _Value);
|
||||
INFO_LOG(COMMANDPROCESSOR,"\t write to STATUS_REGISTER : %04x", _Value);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -449,8 +449,8 @@ void Write16(const u16 _Value, const u32 _Address)
|
||||
}*/
|
||||
m_CPCtrlReg.Hex = tmpCtrl.Hex;
|
||||
UpdateInterrupts();
|
||||
LOG(COMMANDPROCESSOR,"\t write to CTRL_REGISTER : %04x", _Value);
|
||||
LOG(COMMANDPROCESSOR, "\t GPREAD %s | CPULINK %s | BP %s || CPIntEnable %s | OvF %s | UndF %s"
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to CTRL_REGISTER : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR, "\t GPREAD %s | CPULINK %s | BP %s || CPIntEnable %s | OvF %s | UndF %s"
|
||||
, fifo.bFF_GPReadEnable ? "ON" : "OFF"
|
||||
, fifo.bFF_GPLinkEnable ? "ON" : "OFF"
|
||||
, fifo.bFF_BPEnable ? "ON" : "OFF"
|
||||
@@ -467,35 +467,35 @@ void Write16(const u16 _Value, const u32 _Address)
|
||||
UCPClearReg tmpClearReg(_Value);
|
||||
m_CPClearReg.Hex = 0;
|
||||
|
||||
LOG(COMMANDPROCESSOR,"\t write to CLEAR_REGISTER : %04x",_Value);
|
||||
INFO_LOG(COMMANDPROCESSOR,"\t write to CLEAR_REGISTER : %04x",_Value);
|
||||
}
|
||||
break;
|
||||
|
||||
// Fifo Registers
|
||||
case FIFO_TOKEN_REGISTER:
|
||||
m_tokenReg = _Value;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_TOKEN_REGISTER : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_TOKEN_REGISTER : %04x", _Value);
|
||||
break;
|
||||
|
||||
case FIFO_BASE_LO:
|
||||
WriteLow ((u32 &)fifo.CPBase, _Value);
|
||||
fifo.CPBase &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_BASE_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_BASE_LO : %04x", _Value);
|
||||
break;
|
||||
case FIFO_BASE_HI:
|
||||
WriteHigh((u32 &)fifo.CPBase, _Value);
|
||||
fifo.CPBase &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_BASE_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_BASE_HI : %04x", _Value);
|
||||
break;
|
||||
case FIFO_END_LO:
|
||||
WriteLow ((u32 &)fifo.CPEnd, _Value);
|
||||
fifo.CPEnd &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_END_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_END_LO : %04x", _Value);
|
||||
break;
|
||||
case FIFO_END_HI:
|
||||
WriteHigh((u32 &)fifo.CPEnd, _Value);
|
||||
fifo.CPEnd &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_END_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_END_HI : %04x", _Value);
|
||||
break;
|
||||
|
||||
// Hm. Should we really & these with FFFFFFE0?
|
||||
@@ -503,45 +503,45 @@ void Write16(const u16 _Value, const u32 _Address)
|
||||
// fifo.CPEnd is the only value that could be not 32B aligned so far.
|
||||
case FIFO_WRITE_POINTER_LO:
|
||||
WriteLow ((u32 &)fifo.CPWritePointer, _Value); fifo.CPWritePointer &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_WRITE_POINTER_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_WRITE_POINTER_LO : %04x", _Value);
|
||||
break;
|
||||
case FIFO_WRITE_POINTER_HI:
|
||||
WriteHigh((u32 &)fifo.CPWritePointer, _Value); fifo.CPWritePointer &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_WRITE_POINTER_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_WRITE_POINTER_HI : %04x", _Value);
|
||||
break;
|
||||
case FIFO_READ_POINTER_LO:
|
||||
WriteLow ((u32 &)fifo.CPReadPointer, _Value); fifo.CPReadPointer &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_READ_POINTER_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_READ_POINTER_LO : %04x", _Value);
|
||||
break;
|
||||
case FIFO_READ_POINTER_HI:
|
||||
WriteHigh((u32 &)fifo.CPReadPointer, _Value); fifo.CPReadPointer &= 0xFFFFFFE0;
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_READ_POINTER_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_READ_POINTER_HI : %04x", _Value);
|
||||
break;
|
||||
|
||||
case FIFO_HI_WATERMARK_LO:
|
||||
WriteLow ((u32 &)fifo.CPHiWatermark, _Value);
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_HI_WATERMARK_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_HI_WATERMARK_LO : %04x", _Value);
|
||||
break;
|
||||
case FIFO_HI_WATERMARK_HI:
|
||||
WriteHigh((u32 &)fifo.CPHiWatermark, _Value);
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_HI_WATERMARK_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_HI_WATERMARK_HI : %04x", _Value);
|
||||
break;
|
||||
case FIFO_LO_WATERMARK_LO:
|
||||
WriteLow ((u32 &)fifo.CPLoWatermark, _Value);
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_LO_WATERMARK_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_LO_WATERMARK_LO : %04x", _Value);
|
||||
break;
|
||||
case FIFO_LO_WATERMARK_HI:
|
||||
WriteHigh((u32 &)fifo.CPLoWatermark, _Value);
|
||||
LOG(COMMANDPROCESSOR,"\t write to FIFO_LO_WATERMARK_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"\t write to FIFO_LO_WATERMARK_HI : %04x", _Value);
|
||||
break;
|
||||
|
||||
case FIFO_BP_LO:
|
||||
WriteLow ((u32 &)fifo.CPBreakpoint, _Value);
|
||||
LOG(COMMANDPROCESSOR,"write to FIFO_BP_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"write to FIFO_BP_LO : %04x", _Value);
|
||||
break;
|
||||
case FIFO_BP_HI:
|
||||
WriteHigh((u32 &)fifo.CPBreakpoint, _Value);
|
||||
LOG(COMMANDPROCESSOR,"write to FIFO_BP_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"write to FIFO_BP_HI : %04x", _Value);
|
||||
break;
|
||||
|
||||
// Super monkey try to overwrite CPReadWriteDistance by an old saved RWD value. Which is lame for us.
|
||||
@@ -550,11 +550,11 @@ void Write16(const u16 _Value, const u32 _Address)
|
||||
// So, we can skip it.
|
||||
case FIFO_RW_DISTANCE_HI:
|
||||
//WriteHigh((u32 &)fifo.CPReadWriteDistance, _Value);
|
||||
LOG(COMMANDPROCESSOR,"try to write to FIFO_RW_DISTANCE_HI : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"try to write to FIFO_RW_DISTANCE_HI : %04x", _Value);
|
||||
break;
|
||||
case FIFO_RW_DISTANCE_LO:
|
||||
//WriteLow((u32 &)fifo.CPReadWriteDistance, _Value);
|
||||
LOG(COMMANDPROCESSOR,"try to write to FIFO_RW_DISTANCE_LO : %04x", _Value);
|
||||
DEBUG_LOG(COMMANDPROCESSOR,"try to write to FIFO_RW_DISTANCE_LO : %04x", _Value);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -608,14 +608,14 @@ void STACKALIGN GatherPipeBursted()
|
||||
// - CPU can write to fifo
|
||||
// - disable Underflow interrupt
|
||||
|
||||
LOG(COMMANDPROCESSOR, "(GatherPipeBursted): CPHiWatermark reached");
|
||||
WARN_LOG(COMMANDPROCESSOR, "(GatherPipeBursted): CPHiWatermark reached");
|
||||
// Wait for GPU to catch up
|
||||
while (!(fifo.bFF_BPEnable && fifo.bFF_Breakpoint) && fifo.CPReadWriteDistance > fifo.CPLoWatermark)
|
||||
{
|
||||
ct++;
|
||||
Common::SleepCurrentThread(1);
|
||||
}
|
||||
if (ct) {LOG(COMMANDPROCESSOR, "(GatherPipeBursted): %lu ms for nothing :[", ct);}
|
||||
if (ct) {WARN_LOG(COMMANDPROCESSOR, "(GatherPipeBursted): %lu ms for nothing :[", ct);}
|
||||
/**/
|
||||
}
|
||||
// check if we are in sync
|
||||
@@ -684,7 +684,7 @@ void CatchUpGPU()
|
||||
fifo.CPReadPointer = fifo.CPBase;
|
||||
// adjust, take care
|
||||
ptr = Memory::GetPointer(fifo.CPReadPointer);
|
||||
LOG(COMMANDPROCESSOR, "BUFFER LOOP");
|
||||
INFO_LOG(COMMANDPROCESSOR, "BUFFER LOOP");
|
||||
// PanicAlert("loop now");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,7 +232,7 @@ void Read16(u16& _uReturnValue, const u32 _iAddress)
|
||||
if ((_iAddress & 0x6C00) != 0x6c00)
|
||||
{
|
||||
if (_iAddress != 0xCC005004) {
|
||||
LOGV(DSPINTERFACE, 3, "DSPInterface(r16) 0x%08x", _iAddress);
|
||||
DEBUG_LOG(DSPINTERFACE, "DSPInterface(r16) 0x%08x", _iAddress);
|
||||
}
|
||||
Common::PluginDSP *dsp = CPluginManager::GetInstance().GetDSP();
|
||||
switch (_iAddress & 0xFFFF)
|
||||
@@ -317,7 +317,7 @@ void Read16(u16& _uReturnValue, const u32 _iAddress)
|
||||
|
||||
void Write16(const u16 _Value, const u32 _Address)
|
||||
{
|
||||
LOGV(DSPINTERFACE, 3, "DSPInterface(w16) 0x%04x 0x%08x", _Value, _Address);
|
||||
DEBUG_LOG(DSPINTERFACE, "DSPInterface(w16) 0x%04x 0x%08x", _Value, _Address);
|
||||
Common::PluginDSP *dsp = CPluginManager::GetInstance().GetDSP();
|
||||
switch(_Address & 0xFFFF)
|
||||
{
|
||||
@@ -442,7 +442,7 @@ void Write16(const u16 _Value, const u32 _Address)
|
||||
g_audioDMA.BlocksLeft = g_audioDMA.AudioDMAControl.NumBlocks;
|
||||
g_audioDMA.ReadAddress = g_audioDMA.SourceAddress;
|
||||
GenerateDSPInterrupt(DSP::INT_AID);
|
||||
LOG(DSPINTERFACE, "AID DMA started - source address %08x, length %i blocks", g_audioDMA.SourceAddress, g_audioDMA.AudioDMAControl.NumBlocks);
|
||||
INFO_LOG(DSPINTERFACE, "AID DMA started - source address %08x, length %i blocks", g_audioDMA.SourceAddress, g_audioDMA.AudioDMAControl.NumBlocks);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -485,7 +485,7 @@ void UpdateAudioDMA()
|
||||
|
||||
void Read32(u32& _uReturnValue, const u32 _iAddress)
|
||||
{
|
||||
LOG(DSPINTERFACE, "DSPInterface(r) 0x%08x", _iAddress);
|
||||
INFO_LOG(DSPINTERFACE, "DSPInterface(r) 0x%08x", _iAddress);
|
||||
switch (_iAddress & 0xFFFF)
|
||||
{
|
||||
case DSP_INTERRUPT_CONTROL:
|
||||
@@ -501,7 +501,7 @@ void Read32(u32& _uReturnValue, const u32 _iAddress)
|
||||
|
||||
void Write32(const u32 _iValue, const u32 _iAddress)
|
||||
{
|
||||
LOG(DSPINTERFACE, "DSPInterface(w) 0x%08x 0x%08x", _iValue, _iAddress);
|
||||
INFO_LOG(DSPINTERFACE, "DSPInterface(w) 0x%08x 0x%08x", _iValue, _iAddress);
|
||||
|
||||
switch (_iAddress & 0xFFFF)
|
||||
{
|
||||
@@ -572,13 +572,13 @@ void Update_ARAM_DMA()
|
||||
return;
|
||||
g_arDMA.CntValid[0] = g_arDMA.CntValid[1] = false;
|
||||
|
||||
LOGV(DSPINTERFACE, 1, "ARAM DMA triggered");
|
||||
WARN_LOG(DSPINTERFACE, "ARAM DMA triggered");
|
||||
|
||||
//TODO: speedup
|
||||
if (g_arDMA.Cnt.dir)
|
||||
{
|
||||
//read from ARAM
|
||||
LOGV(DSPINTERFACE, 1, "ARAM DMA read %08x bytes from %08x to Mem: %08x",g_arDMA.Cnt.count, g_arDMA.ARAddr, g_arDMA.MMAddr);
|
||||
WARN_LOG(DSPINTERFACE, "ARAM DMA read %08x bytes from %08x to Mem: %08x",g_arDMA.Cnt.count, g_arDMA.ARAddr, g_arDMA.MMAddr);
|
||||
u32 iMemAddress = g_arDMA.MMAddr;
|
||||
u32 iARAMAddress = g_arDMA.ARAddr;
|
||||
|
||||
|
||||
@@ -287,7 +287,7 @@ bool DVDReadADPCM(u8* _pDestBuffer, u32 _iNumSamples)
|
||||
|
||||
void Read32(u32& _uReturnValue, const u32 _iAddress)
|
||||
{
|
||||
LOGV(DVDINTERFACE, 3, "DVD(r): 0x%08x", _iAddress);
|
||||
DEBUG_LOG(DVDINTERFACE, "DVD(r): 0x%08x", _iAddress);
|
||||
|
||||
switch (_iAddress & 0xFFF)
|
||||
{
|
||||
@@ -316,7 +316,7 @@ void Read32(u32& _uReturnValue, const u32 _iAddress)
|
||||
|
||||
void Write32(const u32 _iValue, const u32 _iAddress)
|
||||
{
|
||||
LOGV(DVDINTERFACE, 3, "DVD(w): 0x%08x @ 0x%08x", _iValue, _iAddress);
|
||||
DEBUG_LOG(DVDINTERFACE, "DVD(w): 0x%08x @ 0x%08x", _iValue, _iAddress);
|
||||
|
||||
switch (_iAddress & 0x3FF)
|
||||
{
|
||||
@@ -455,7 +455,7 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
|
||||
u32 destlength = dvdMem.DMALength.Length;
|
||||
dvdMem.DMALength.Length = 0;
|
||||
|
||||
LOG(DVDINTERFACE, "[WARNING] DVD: Get drive info offset=%08x, destbuffer=%08x, destlength=%08x", offset * 4, destbuffer, destlength);
|
||||
INFO_LOG(DVDINTERFACE, "[WARNING] DVD: Get drive info offset=%08x, destbuffer=%08x, destlength=%08x", offset * 4, destbuffer, destlength);
|
||||
|
||||
// metroid uses this...
|
||||
for (unsigned int i = 0; i < destlength / 4; i++)
|
||||
@@ -479,7 +479,7 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
|
||||
u32 iDVDOffset = dvdMem.Command[1] << 2;
|
||||
u32 iSrcLength = dvdMem.Command[2];
|
||||
if (false) { iSrcLength++; } // avoid warning << wtf is this?
|
||||
LOGV(DVDINTERFACE, 2, "DVD: Read ISO: DVDOffset=%08x, DMABuffer=%08x, SrcLength=%08x, DMALength=%08x",iDVDOffset,dvdMem.DMAAddress.Address,iSrcLength,dvdMem.DMALength.Length);
|
||||
INFO_LOG(DVDINTERFACE, "DVD: Read ISO: DVDOffset=%08x, DMABuffer=%08x, SrcLength=%08x, DMALength=%08x",iDVDOffset,dvdMem.DMAAddress.Address,iSrcLength,dvdMem.DMALength.Length);
|
||||
_dbg_assert_(DVDINTERFACE, iSrcLength == dvdMem.DMALength.Length);
|
||||
|
||||
if (DVDRead(iDVDOffset, dvdMem.DMAAddress.Address, dvdMem.DMALength.Length) != true)
|
||||
@@ -507,7 +507,7 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
|
||||
#ifdef LOGGING
|
||||
u32 offset = dvdMem.Command[1] << 2;
|
||||
#endif
|
||||
LOG(DVDINTERFACE, "DVD: Trying to seek: offset=%08x", offset);
|
||||
DEBUG_LOG(DVDINTERFACE, "DVD: Trying to seek: offset=%08x", offset);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -516,7 +516,7 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
|
||||
// Command/Subcommand/Padding <- E0000000
|
||||
//=========================================================================================================
|
||||
case 0xE0:
|
||||
LOG(DVDINTERFACE, "DVD: Requesting error");
|
||||
ERROR_LOG(DVDINTERFACE, "DVD: Requesting error");
|
||||
dvdMem.Immediate = g_ErrorCode;
|
||||
break;
|
||||
|
||||
@@ -548,7 +548,7 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
|
||||
|
||||
m_bStream = true;
|
||||
|
||||
LOG(DVDINTERFACE, "DVD(Audio) Stream subcmd = %02x offset = %08x length=%08x", subCommand, dvdMem.AudioPos, dvdMem.AudioLength);
|
||||
DEBUG_LOG(DVDINTERFACE, "DVD(Audio) Stream subcmd = %02x offset = %08x length=%08x", subCommand, dvdMem.AudioPos, dvdMem.AudioLength);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -564,7 +564,7 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
|
||||
else
|
||||
dvdMem.Immediate = 0;*/
|
||||
}
|
||||
LOG(DVDINTERFACE, "DVD(Audio): Request Audio status");
|
||||
DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Request Audio status");
|
||||
break;
|
||||
|
||||
//=========================================================================================================
|
||||
@@ -572,7 +572,7 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
|
||||
// Command/Subcommand/Padding <- E3000000
|
||||
//=========================================================================================================
|
||||
case 0xE3:
|
||||
LOG(DVDINTERFACE, "DVD: Stop motor");
|
||||
DEBUG_LOG(DVDINTERFACE, "DVD: Stop motor");
|
||||
break;
|
||||
|
||||
//=========================================================================================================
|
||||
|
||||
@@ -111,10 +111,10 @@ public:
|
||||
|
||||
virtual ~CEXIDummy(){}
|
||||
|
||||
void ImmWrite(u32 data, u32 size) {LOG(EXPANSIONINTERFACE, "EXI DUMMY %s ImmWrite: %08x", m_strName.c_str(), data);}
|
||||
u32 ImmRead (u32 size) {LOG(EXPANSIONINTERFACE, "EXI DUMMY %s ImmRead", m_strName.c_str()); return 0;}
|
||||
void DMAWrite(u32 addr, u32 size) {LOG(EXPANSIONINTERFACE, "EXI DUMMY %s DMAWrite: %08x bytes, from %08x to device", m_strName.c_str(), size, addr);}
|
||||
void DMARead (u32 addr, u32 size) {LOG(EXPANSIONINTERFACE, "EXI DUMMY %s DMARead: %08x bytes, from device to %08x", m_strName.c_str(), size, addr);}
|
||||
void ImmWrite(u32 data, u32 size) {INFO_LOG(EXPANSIONINTERFACE, "EXI DUMMY %s ImmWrite: %08x", m_strName.c_str(), data);}
|
||||
u32 ImmRead (u32 size) {INFO_LOG(EXPANSIONINTERFACE, "EXI DUMMY %s ImmRead", m_strName.c_str()); return 0;}
|
||||
void DMAWrite(u32 addr, u32 size) {INFO_LOG(EXPANSIONINTERFACE, "EXI DUMMY %s DMAWrite: %08x bytes, from %08x to device", m_strName.c_str(), size, addr);}
|
||||
void DMARead (u32 addr, u32 size) {INFO_LOG(EXPANSIONINTERFACE, "EXI DUMMY %s DMARead: %08x bytes, from device to %08x", m_strName.c_str(), size, addr);}
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -190,35 +190,35 @@ void CEXIIPL::TransferByte(u8& _uByte)
|
||||
|
||||
if ((m_uAddress & 0xF0000000) == 0xb0000000)
|
||||
{
|
||||
LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: WII something");
|
||||
INFO_LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: WII something");
|
||||
}
|
||||
else if ((m_uAddress & 0xF0000000) == 0x30000000)
|
||||
{
|
||||
// wii stuff perhaps wii SRAM?
|
||||
LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: WII something (perhaps SRAM?)");
|
||||
INFO_LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: WII something (perhaps SRAM?)");
|
||||
}
|
||||
// debug only
|
||||
else if ((m_uAddress & 0x60000000) == 0)
|
||||
{
|
||||
LOGV(EXPANSIONINTERFACE, 2, "EXI IPL-DEV: IPL access");
|
||||
INFO_LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: IPL access");
|
||||
}
|
||||
else if ((m_uAddress & 0x7FFFFF00) == 0x20000000)
|
||||
{
|
||||
LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: RTC access");
|
||||
INFO_LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: RTC access");
|
||||
}
|
||||
else if ((m_uAddress & 0x7FFFFF00) == 0x20000100)
|
||||
{
|
||||
LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: SRAM access");
|
||||
INFO_LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: SRAM access");
|
||||
}
|
||||
else if ((m_uAddress & 0x7FFFFF00) == 0x20010000)
|
||||
{
|
||||
LOGV(EXPANSIONINTERFACE, 3, "EXI IPL-DEV: UART");
|
||||
DEBUG_LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: UART");
|
||||
}
|
||||
else
|
||||
{
|
||||
//_dbg_assert_(EXPANSIONINTERFACE, 0);
|
||||
_dbg_assert_msg_(EXPANSIONINTERFACE, 0, "EXI IPL-DEV: illegal access address %08x", m_uAddress);
|
||||
LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: illegal address %08x", m_uAddress);
|
||||
ERROR_LOG(EXPANSIONINTERFACE, "EXI IPL-DEV: illegal address %08x", m_uAddress);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -264,7 +264,7 @@ void CEXIIPL::TransferByte(u8& _uByte)
|
||||
if ((m_count >= 256) || (_uByte == 0xD))
|
||||
{
|
||||
m_szBuffer[m_count] = 0x00;
|
||||
LOG(OSREPORT, "%s", m_szBuffer);
|
||||
INFO_LOG(OSREPORT, "%s", m_szBuffer);
|
||||
memset(m_szBuffer, 0, sizeof(m_szBuffer));
|
||||
m_count = 0;
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ CEXIMemoryCard::CEXIMemoryCard(const std::string& _rName, const std::string& _rF
|
||||
memory_card_content = new u8[memory_card_size];
|
||||
memset(memory_card_content, 0xFF, memory_card_size);
|
||||
|
||||
LOG(EXPANSIONINTERFACE, "Reading memory card %s", m_strFilename.c_str());
|
||||
INFO_LOG(EXPANSIONINTERFACE, "Reading memory card %s", m_strFilename.c_str());
|
||||
fread(memory_card_content, 1, memory_card_size, pFile);
|
||||
fclose(pFile);
|
||||
}
|
||||
@@ -95,7 +95,7 @@ CEXIMemoryCard::CEXIMemoryCard(const std::string& _rName, const std::string& _rF
|
||||
memory_card_content = new u8[memory_card_size];
|
||||
memset(memory_card_content, 0xFF, memory_card_size);
|
||||
|
||||
LOG(EXPANSIONINTERFACE, "No memory card found. Will create new.");
|
||||
WARN_LOG(EXPANSIONINTERFACE, "No memory card found. Will create new.");
|
||||
Flush();
|
||||
}
|
||||
|
||||
@@ -236,12 +236,12 @@ bool CEXIMemoryCard::IsInterruptSet()
|
||||
|
||||
void CEXIMemoryCard::TransferByte(u8 &byte)
|
||||
{
|
||||
LOGV(EXPANSIONINTERFACE, 3, "EXI MEMCARD: > %02x", byte);
|
||||
DEBUG_LOG(EXPANSIONINTERFACE, "EXI MEMCARD: > %02x", byte);
|
||||
if (m_uPosition == 0)
|
||||
{
|
||||
command = byte; // first byte is command
|
||||
byte = 0xFF; // would be tristate, but we don't care.
|
||||
LOGV(EXPANSIONINTERFACE, 1, "EXI MEMCARD: command %02x", byte)
|
||||
WARN_LOG(EXPANSIONINTERFACE, "EXI MEMCARD: command %02x", byte)
|
||||
|
||||
if(command == cmdClearStatus)
|
||||
{
|
||||
@@ -361,10 +361,10 @@ void CEXIMemoryCard::TransferByte(u8 &byte)
|
||||
break;
|
||||
|
||||
default:
|
||||
LOG(EXPANSIONINTERFACE, "EXI MEMCARD: unknown command byte %02x\n", byte);
|
||||
WARN_LOG(EXPANSIONINTERFACE, "EXI MEMCARD: unknown command byte %02x\n", byte);
|
||||
byte = 0xFF;
|
||||
}
|
||||
}
|
||||
m_uPosition++;
|
||||
LOGV(EXPANSIONINTERFACE, 3, "EXI MEMCARD: < %02x", byte);
|
||||
DEBUG_LOG(EXPANSIONINTERFACE, "EXI MEMCARD: < %02x", byte);
|
||||
}
|
||||
|
||||
@@ -140,10 +140,10 @@ readFn64 hwReadWii64[NUMHWMEMFUN];
|
||||
u32 CheckDTLB(u32 _Address, XCheckTLBFlag _Flag);
|
||||
|
||||
template <class T>
|
||||
void HW_Default_Write(const T _Data, const u32 _Address){ LOG(MASTER_LOG, "Illegal HW Write%i %08x", sizeof(T)*8, _Address);_dbg_assert_(MEMMAP, 0);}
|
||||
void HW_Default_Write(const T _Data, const u32 _Address){ ERROR_LOG(MASTER_LOG, "Illegal HW Write%i %08x", sizeof(T)*8, _Address);_dbg_assert_(MEMMAP, 0);}
|
||||
|
||||
template <class T>
|
||||
void HW_Default_Read(T _Data, const u32 _Address){ LOG(MASTER_LOG, "Illegal HW Read%i %08x", sizeof(T)*8, _Address); _dbg_assert_(MEMMAP, 0);}
|
||||
void HW_Default_Read(T _Data, const u32 _Address){ ERROR_LOG(MASTER_LOG, "Illegal HW Read%i %08x", sizeof(T)*8, _Address); _dbg_assert_(MEMMAP, 0);}
|
||||
|
||||
|
||||
#define PAGE_SHIFT 10
|
||||
@@ -441,7 +441,7 @@ bool Init()
|
||||
else
|
||||
InitHWMemFuncs();
|
||||
|
||||
LOG(MEMMAP, "Memory system initialized. RAM at %p (mirrors at 0 @ %p, 0x80000000 @ %p , 0xC0000000 @ %p)",
|
||||
INFO_LOG(MEMMAP, "Memory system initialized. RAM at %p (mirrors at 0 @ %p, 0x80000000 @ %p , 0xC0000000 @ %p)",
|
||||
m_pRAM, m_pPhysicalRAM, m_pVirtualCachedRAM, m_pVirtualUncachedRAM);
|
||||
m_IsInitialized = true;
|
||||
return true;
|
||||
@@ -497,7 +497,7 @@ bool Shutdown()
|
||||
g_arena.ReleaseView(m_pPhysicalFakeVMEM, FAKEVMEM_SIZE);
|
||||
#endif
|
||||
g_arena.ReleaseSpace();
|
||||
LOG(MEMMAP, "Memory system shut down.");
|
||||
INFO_LOG(MEMMAP, "Memory system shut down.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -607,12 +607,12 @@ void CheckForBadAddresses(u32 Address, u32 Data, bool Read, int Bits)
|
||||
{
|
||||
if(Read)
|
||||
{
|
||||
LOG(CONSOLE, "Read%i: Program tried to read [%08x] from [%08x]", Bits, Address);
|
||||
WARN_LOG(CONSOLE, "Read%i: Program tried to read [%08x] from [%08x]", Bits, Address);
|
||||
//PanicAlert("Write_U32: Program tried to write [%08x] to [%08x]", _Address);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGV(CONSOLE, 0, "Write%i: Program tried to write [%08x] to [%08x]", Bits, Data, Address);
|
||||
ERROR_LOG(CONSOLE, "Write%i: Program tried to write [%08x] to [%08x]", Bits, Data, Address);
|
||||
//PanicAlert("Read: Program tried to write [%08x] to [%08x]", Data, Address);
|
||||
}
|
||||
}
|
||||
@@ -621,12 +621,12 @@ void CheckForBadAddresses(u32 Address, u32 Data, bool Read, int Bits)
|
||||
{
|
||||
if(Read)
|
||||
{
|
||||
LOGV(CONSOLE, 1, "Read%i: Program read [0x%08x] from [0x%08x] * * * 0 * * *", Bits, Data, Address);
|
||||
WARN_LOG(CONSOLE, "Read%i: Program read [0x%08x] from [0x%08x] * * * 0 * * *", Bits, Data, Address);
|
||||
//PanicAlert("Read: Program read [%08x] from [%08x]", Data, Address);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGV(CONSOLE, 1, "Write%i: Program wrote [0x%08x] to [0x%08x] * * * 0 * * *", Bits, Data, Address);
|
||||
WARN_LOG(CONSOLE, "Write%i: Program wrote [0x%08x] to [0x%08x] * * * 0 * * *", Bits, Data, Address);
|
||||
//PanicAlert("Read: Program wrote [%08x] to [%08x]", Data, Address);
|
||||
}
|
||||
}
|
||||
@@ -647,12 +647,12 @@ void CheckForBadAddresses(u32 Address, u32 Data, bool Read, int Bits)
|
||||
{
|
||||
if(Read)
|
||||
{
|
||||
LOGV(CONSOLE, 0, "Read%i: Program read [0x%08x] from [0x%08x] * * * * * * * * * * * *", Bits, Data, Address);
|
||||
ERROR_LOG(CONSOLE, "Read%i: Program read [0x%08x] from [0x%08x] * * * * * * * * * * * *", Bits, Data, Address);
|
||||
//PanicAlert("Read%i: Program read [%08x] from [%08x]", Bits, Data, Address);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGV(CONSOLE, 0, "Write%i: Program wrote [0x%08x] to [0x%08x] * * * * * * * * * * * *", Bits,Data, Address);
|
||||
ERROR_LOG(CONSOLE, "Write%i: Program wrote [0x%08x] to [0x%08x] * * * * * * * * * * * *", Bits,Data, Address);
|
||||
//PanicAlert("Write%i: Program wrote [0x%08x] to [0x%08x]", Bits, Data, Address);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ void WriteToHardware(u32 em_address, const T data, u32 effective_address, Memory
|
||||
return;
|
||||
}
|
||||
else {
|
||||
LOG(MEMMAP, "hwwrite [%08x] := %08x (PC: %08x)", em_address, data, PC);
|
||||
ERROR_LOG(MEMMAP, "hwwrite [%08x] := %08x (PC: %08x)", em_address, data, PC);
|
||||
_dbg_assert_msg_(MEMMAP,0,"Memory - Unknown HW address %08x", em_address);
|
||||
}
|
||||
}
|
||||
@@ -210,7 +210,7 @@ void WriteToHardware(u32 em_address, const T data, u32 effective_address, Memory
|
||||
}
|
||||
else if (em_address >= 0xE0000000)
|
||||
{
|
||||
LOG(MEMMAP,"WRITE: Cache address out of bounds (addr: %08x data: %08x)", em_address, data);
|
||||
ERROR_LOG(MEMMAP,"WRITE: Cache address out of bounds (addr: %08x data: %08x)", em_address, data);
|
||||
/* PanicAlert("WRITE: Cache address %08x out of bounds", em_address); */
|
||||
}
|
||||
else
|
||||
@@ -512,7 +512,7 @@ void GenerateDSIException(u32 _EffectiveAdress, bool _bWrite)
|
||||
|
||||
PowerPC::ppcState.spr[SPR_DAR] = _EffectiveAdress;
|
||||
|
||||
LOG(MEMMAP, "Generate DSI Exception 0x%08x", _EffectiveAdress);
|
||||
INFO_LOG(MEMMAP, "Generate DSI Exception 0x%08x", _EffectiveAdress);
|
||||
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI;
|
||||
}
|
||||
|
||||
@@ -523,7 +523,7 @@ void GenerateISIException()
|
||||
// (HTEG), or in the rehashed secondary HTEG, or in the range of a DBAT register (page fault
|
||||
// condition); otherwise cleared.
|
||||
PowerPC::ppcState.spr[SPR_DSISR] = 0x4000000;
|
||||
LOG(MEMMAP, "Generate ISI Exception");
|
||||
INFO_LOG(MEMMAP, "Generate ISI Exception");
|
||||
PowerPC::ppcState.Exceptions |= EXCEPTION_ISI;
|
||||
}
|
||||
|
||||
@@ -669,4 +669,4 @@ u32 CheckDTLB(u32 _Address, XCheckTLBFlag _Flag)
|
||||
// ***********************
|
||||
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user