mirror of https://github.com/PCSX2/pcsx2.git
* Implemented GIF PATH/TAG logging option.
* Some other EE/Core logging additions and formatting tweaks. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3870 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
e63314f545
commit
02d5ed7f45
|
@ -347,7 +347,8 @@ static __fi void VSyncStart(u32 sCycle)
|
||||||
GetCoreThread().VsyncInThread();
|
GetCoreThread().VsyncInThread();
|
||||||
Cpu->CheckExecutionState();
|
Cpu->CheckExecutionState();
|
||||||
|
|
||||||
EECNT_LOG( "///////// EE COUNTER VSYNC START (frame: %6d) \\\\\\\\\\\\\\\\\\\\ ", g_FrameCount );
|
if(EmuConfig.Trace.Enabled && EmuConfig.Trace.EE.m_EnableAll)
|
||||||
|
SysTrace.EE.Counters.Write( " ================ EE COUNTER VSYNC START (frame: %d) ================", g_FrameCount );
|
||||||
|
|
||||||
// EE Profiling and Debug code.
|
// EE Profiling and Debug code.
|
||||||
// FIXME: should probably be moved to VsyncInThread, and handled
|
// FIXME: should probably be moved to VsyncInThread, and handled
|
||||||
|
@ -393,7 +394,8 @@ static __fi void VSyncStart(u32 sCycle)
|
||||||
|
|
||||||
static __fi void VSyncEnd(u32 sCycle)
|
static __fi void VSyncEnd(u32 sCycle)
|
||||||
{
|
{
|
||||||
EECNT_LOG( "///////// EE COUNTER VSYNC END (frame: %d) \\\\\\\\\\\\\\\\\\\\", g_FrameCount );
|
if(EmuConfig.Trace.Enabled && EmuConfig.Trace.EE.m_EnableAll)
|
||||||
|
SysTrace.EE.Counters.Write( " ================ EE COUNTER VSYNC END (frame: %d) ================", g_FrameCount );
|
||||||
|
|
||||||
g_FrameCount++;
|
g_FrameCount++;
|
||||||
|
|
||||||
|
|
|
@ -373,6 +373,7 @@ extern void __Log( const char* fmt, ... );
|
||||||
#define GIF_LOG macTrace(EE.GIF)
|
#define GIF_LOG macTrace(EE.GIF)
|
||||||
#define EECNT_LOG macTrace(EE.Counters)
|
#define EECNT_LOG macTrace(EE.Counters)
|
||||||
#define VifCodeLog macTrace(EE.VIFcode)
|
#define VifCodeLog macTrace(EE.VIFcode)
|
||||||
|
#define GifTagLog macTrace(EE.GIFpath)
|
||||||
|
|
||||||
|
|
||||||
#define PSXBIOS_LOG macTrace(IOP.Bios)
|
#define PSXBIOS_LOG macTrace(IOP.Bios)
|
||||||
|
|
|
@ -85,9 +85,9 @@ _vifT void vifTransferLoop(u32* &data) {
|
||||||
vifXRegs.code = data[0];
|
vifXRegs.code = data[0];
|
||||||
vifX.cmd = data[0] >> 24;
|
vifX.cmd = data[0] >> 24;
|
||||||
iBit = data[0] >> 31;
|
iBit = data[0] >> 31;
|
||||||
|
|
||||||
vifCmdHandler[idx][vifX.cmd & 0x7f](0, data);
|
|
||||||
VIF_LOG("New VifCMD %x tagsize %x", vifX.cmd, vifX.tag.size);
|
VIF_LOG("New VifCMD %x tagsize %x", vifX.cmd, vifX.tag.size);
|
||||||
|
vifCmdHandler[idx][vifX.cmd & 0x7f](0, data);
|
||||||
data++; pSize--;
|
data++; pSize--;
|
||||||
if (analyzeIbit<idx>(data, iBit)) break;
|
if (analyzeIbit<idx>(data, iBit)) break;
|
||||||
continue;
|
continue;
|
||||||
|
@ -98,7 +98,7 @@ _vifT void vifTransferLoop(u32* &data) {
|
||||||
pSize -= ret;
|
pSize -= ret;
|
||||||
if (analyzeIbit<idx>(data, iBit)) break;
|
if (analyzeIbit<idx>(data, iBit)) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSize) vifX.vifstalled = true;
|
if (pSize) vifX.vifstalled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,8 +74,37 @@ struct GIFTAG
|
||||||
u32 REGS[2];
|
u32 REGS[2];
|
||||||
|
|
||||||
GIFTAG() {}
|
GIFTAG() {}
|
||||||
|
|
||||||
|
wxString DumpRegsToString() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
wxString GIFTAG::DumpRegsToString() const
|
||||||
|
{
|
||||||
|
static const char* PackedModeRegsLabel[] =
|
||||||
|
{
|
||||||
|
"PRIM", "RGBA", "STQ", "UV",
|
||||||
|
"XYZF2", "XYZ2", "TEX0_1", "TEX0_2",
|
||||||
|
"CLAMP_1", "CLAMP_2", "FOG", "Unknown",
|
||||||
|
"XYZF3", "XYZ3", "A_D", "NOP"
|
||||||
|
};
|
||||||
|
|
||||||
|
u32 tempreg = REGS[0];
|
||||||
|
uint numregs = ((NREG-1)&0xf) + 1;
|
||||||
|
|
||||||
|
FastFormatUnicode result;
|
||||||
|
result.Write("NREG=0x%02X (", NREG);
|
||||||
|
|
||||||
|
for (u32 i = 0; i < numregs; i++) {
|
||||||
|
if (i == 8) tempreg = REGS[1];
|
||||||
|
if (i > 0) result.Write(" ");
|
||||||
|
result.Write(PackedModeRegsLabel[tempreg & 0xf]);
|
||||||
|
tempreg >>= 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
result.Write(")");
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
// GIFPath -- PS2 GIFtag info (one for each path).
|
// GIFPath -- PS2 GIFtag info (one for each path).
|
||||||
// --------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------
|
||||||
|
@ -655,7 +684,7 @@ __fi int GIFPath::CopyTag(const u128* pMem128, u32 size)
|
||||||
|
|
||||||
switch(tag.FLG) {
|
switch(tag.FLG) {
|
||||||
case GIF_FLG_PACKED:
|
case GIF_FLG_PACKED:
|
||||||
GIF_LOG("Packed Mode EOP %x", tag.EOP);
|
GIF_LOG("Packed Mode EOP %x : %ls", tag.EOP, tag.DumpRegsToString().c_str());
|
||||||
PrepPackedRegs();
|
PrepPackedRegs();
|
||||||
|
|
||||||
if(DetectE > 0)
|
if(DetectE > 0)
|
||||||
|
|
|
@ -21,12 +21,12 @@
|
||||||
static __ri bool _eelog_enabled( u32 addr )
|
static __ri bool _eelog_enabled( u32 addr )
|
||||||
{
|
{
|
||||||
// Selective enable/disable ability for specific register maps
|
// Selective enable/disable ability for specific register maps
|
||||||
if (eeAddrInRange(RCNT0, addr)) return false;
|
if (eeAddrInRange(RCNT0, addr)) return true;
|
||||||
if (eeAddrInRange(RCNT1, addr)) return true;
|
if (eeAddrInRange(RCNT1, addr)) return true;
|
||||||
if (eeAddrInRange(RCNT2, addr)) return true;
|
if (eeAddrInRange(RCNT2, addr)) return true;
|
||||||
if (eeAddrInRange(RCNT3, addr)) return true;
|
if (eeAddrInRange(RCNT3, addr)) return true;
|
||||||
|
|
||||||
if (eeAddrInRange(SBUS, addr)) return false;
|
if (eeAddrInRange(SBUS, addr)) return true;
|
||||||
|
|
||||||
// INTC!
|
// INTC!
|
||||||
if (addr == INTC_STAT || addr == INTC_MASK) return true;
|
if (addr == INTC_STAT || addr == INTC_MASK) return true;
|
||||||
|
|
|
@ -2039,10 +2039,6 @@
|
||||||
RelativePath="..\..\gui\Dialogs\ConfirmationDialogs.cpp"
|
RelativePath="..\..\gui\Dialogs\ConfirmationDialogs.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="..\..\gui\Dialogs\CreateMemoryCardDialog.cpp"
|
|
||||||
>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\gui\Dialogs\FirstTimeWizard.cpp"
|
RelativePath="..\..\gui\Dialogs\FirstTimeWizard.cpp"
|
||||||
>
|
>
|
||||||
|
@ -2884,6 +2880,10 @@
|
||||||
<Filter
|
<Filter
|
||||||
Name="gui"
|
Name="gui"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\gui\Dialogs\CreateMemoryCardDialog.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\gui\Dialogs\McdConfigDialog.cpp"
|
RelativePath="..\..\gui\Dialogs\McdConfigDialog.cpp"
|
||||||
>
|
>
|
||||||
|
|
|
@ -879,6 +879,11 @@ static __noinline s32 recExecuteBlock( s32 eeCycles )
|
||||||
iopBreak = 0;
|
iopBreak = 0;
|
||||||
iopCycleEE = eeCycles;
|
iopCycleEE = eeCycles;
|
||||||
|
|
||||||
|
#ifdef PCSX2_DEVBUILD
|
||||||
|
if (SysTrace.SIF.IsActive())
|
||||||
|
SysTrace.IOP.R3000A.Write("Switching to IOP CPU for %d cycles", eeCycles);
|
||||||
|
#endif
|
||||||
|
|
||||||
// [TODO] recExecuteBlock could be replaced by a direct call to the iopEnterRecompiledCode()
|
// [TODO] recExecuteBlock could be replaced by a direct call to the iopEnterRecompiledCode()
|
||||||
// (by assigning its address to the psxRec structure). But for that to happen, we need
|
// (by assigning its address to the psxRec structure). But for that to happen, we need
|
||||||
// to move iopBreak/iopCycleEE update code to emitted assembly code. >_< --air
|
// to move iopBreak/iopCycleEE update code to emitted assembly code. >_< --air
|
||||||
|
|
Loading…
Reference in New Issue