diff --git a/pcsx2/CMakeLists.txt b/pcsx2/CMakeLists.txt index fcbbaccf5b..88b197efbd 100644 --- a/pcsx2/CMakeLists.txt +++ b/pcsx2/CMakeLists.txt @@ -267,7 +267,8 @@ set(pcsx2DebugToolsSources DebugTools/DisR3000A.cpp DebugTools/DisR5900asm.cpp DebugTools/DisVU0Micro.cpp - DebugTools/DisVU1Micro.cpp) + DebugTools/DisVU1Micro.cpp + DebugTools/BiosDebugData.cpp) # DebugTools headers set(pcsx2DebugToolsHeaders @@ -282,7 +283,8 @@ set(pcsx2DebugToolsHeaders DebugTools/Debug.h DebugTools/DisASm.h DebugTools/DisVUmicro.h - DebugTools/DisVUops.h) + DebugTools/DisVUops.h + DebugTools/BiosDebugData.h) # gui sources set(pcsx2GuiSources diff --git a/pcsx2/DebugTools/BiosDebugData.cpp b/pcsx2/DebugTools/BiosDebugData.cpp new file mode 100644 index 0000000000..85964d814f --- /dev/null +++ b/pcsx2/DebugTools/BiosDebugData.cpp @@ -0,0 +1,28 @@ +#include "PrecompiledHeader.h" +#include "BiosDebugData.h" +#include "../Memory.h" + +std::vector<EEThread> getEEThreads() +{ + std::vector<EEThread> threads; + + if (CurrentBiosInformation == NULL) + return threads; + + u32 start = CurrentBiosInformation->threadListAddr & 0x3fffff; + for (int tid = 0; tid < 256; tid++) + { + EEThread thread; + + EEInternalThread* internal = (EEInternalThread*) PSM(start+tid*sizeof(EEInternalThread)); + if (internal->status != THS_BAD) + { + thread.tid = tid; + thread.data = *internal; + threads.push_back(thread); + } + } + + return threads; +} + diff --git a/pcsx2/DebugTools/BiosDebugData.h b/pcsx2/DebugTools/BiosDebugData.h new file mode 100644 index 0000000000..e0daca58c2 --- /dev/null +++ b/pcsx2/DebugTools/BiosDebugData.h @@ -0,0 +1,50 @@ +#pragma once +#include "Pcsx2Types.h" +#include "../ps2/BiosTools.h" + +struct EEInternalThread { // internal struct + u32 prev; + u32 next; + int status; + u32 entry; + u32 stack; + u32 gpReg; + short currentPriority; + short initPriority; + int waitType; + int semaId; + int wakeupCount; + int attr; + int option; + u32 entry_init; + int argc; + u32 argstring; + u32 stack_bottom; //FIXME + int stackSize; + u32 root; + u32 heap_base; +}; + +enum { + THS_BAD = 0x00, + THS_RUN = 0x01, + THS_READY = 0x02, + THS_WAIT = 0x04, + THS_SUSPEND = 0x08, + THS_WAIT_SUSPEND = 0x0C, + THS_DORMANT = 0x10, +}; + +enum { + WAIT_NONE = 0, + WAIT_WAKEUP_REQ = 1, + WAIT_SEMA = 2, +}; + +struct EEThread +{ + u32 tid; + EEInternalThread data; +}; + +std::vector<EEThread> getEEThreads(); \ No newline at end of file diff --git a/pcsx2/windows/VCprojects/pcsx2.vcxproj b/pcsx2/windows/VCprojects/pcsx2.vcxproj index ae8f19fca2..18f6823584 100644 --- a/pcsx2/windows/VCprojects/pcsx2.vcxproj +++ b/pcsx2/windows/VCprojects/pcsx2.vcxproj @@ -426,6 +426,7 @@ <ClCompile Include="..\..\DebugTools\Breakpoints.cpp" /> <ClCompile Include="..\..\DebugTools\DebugInterface.cpp" /> <ClCompile Include="..\..\DebugTools\DisassemblyManager.cpp" /> + <ClCompile Include="..\..\DebugTools\BiosDebugData.cpp" /> <ClCompile Include="..\..\DebugTools\ExpressionParser.cpp" /> <ClCompile Include="..\..\DebugTools\MIPSAnalyst.cpp" /> <ClCompile Include="..\..\DebugTools\MipsAssembler.cpp" /> @@ -712,6 +713,7 @@ <ClInclude Include="..\..\DebugTools\Breakpoints.h" /> <ClInclude Include="..\..\DebugTools\DebugInterface.h" /> <ClInclude Include="..\..\DebugTools\DisassemblyManager.h" /> + <ClInclude Include="..\..\DebugTools\BiosDebugData.h" /> <ClInclude Include="..\..\DebugTools\ExpressionParser.h" /> <ClInclude Include="..\..\DebugTools\MIPSAnalyst.h" /> <ClInclude Include="..\..\DebugTools\MipsAssembler.h" /> diff --git a/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters b/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters index 32a0e46274..8ebc4642ab 100644 --- a/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters +++ b/pcsx2/windows/VCprojects/pcsx2.vcxproj.filters @@ -820,6 +820,9 @@ <ClCompile Include="..\..\DebugTools\MipsAssembler.cpp"> <Filter>System\Ps2\Debug</Filter> </ClCompile> + <ClCompile Include="..\..\DebugTools\BiosDebugData.cpp"> + <Filter>System\Ps2\Debug</Filter> + </ClCompile> <ClCompile Include="..\..\DebugTools\MipsAssemblerTables.cpp"> <Filter>System\Ps2\Debug</Filter> </ClCompile> @@ -1236,6 +1239,9 @@ <ClInclude Include="..\..\DebugTools\MipsAssembler.h"> <Filter>System\Ps2\Debug</Filter> </ClInclude> + <ClInclude Include="..\..\DebugTools\BiosDebugData.h"> + <Filter>System\Ps2\Debug</Filter> + </ClInclude> <ClInclude Include="..\..\DebugTools\MipsAssemblerTables.h"> <Filter>System\Ps2\Debug</Filter> </ClInclude> diff --git a/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj b/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj index 002ebdab4c..26b283f10f 100644 --- a/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj +++ b/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj @@ -411,6 +411,7 @@ <ClCompile Include="..\..\DebugTools\Breakpoints.cpp" /> <ClCompile Include="..\..\DebugTools\DebugInterface.cpp" /> <ClCompile Include="..\..\DebugTools\DisassemblyManager.cpp" /> + <ClCompile Include="..\..\DebugTools\BiosDebugData.cpp" /> <ClCompile Include="..\..\DebugTools\ExpressionParser.cpp" /> <ClCompile Include="..\..\DebugTools\MIPSAnalyst.cpp" /> <ClCompile Include="..\..\DebugTools\MipsAssembler.cpp" /> @@ -698,6 +699,7 @@ <ClInclude Include="..\..\DebugTools\Breakpoints.h" /> <ClInclude Include="..\..\DebugTools\DebugInterface.h" /> <ClInclude Include="..\..\DebugTools\DisassemblyManager.h" /> + <ClInclude Include="..\..\DebugTools\BiosDebugData.h" /> <ClInclude Include="..\..\DebugTools\ExpressionParser.h" /> <ClInclude Include="..\..\DebugTools\MIPSAnalyst.h" /> <ClInclude Include="..\..\DebugTools\MipsAssembler.h" /> diff --git a/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj.filters b/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj.filters index cfbae94ea9..1153d41a4f 100644 --- a/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj.filters +++ b/pcsx2/windows/VCprojects/pcsx2_vs2012.vcxproj.filters @@ -835,6 +835,9 @@ <ClCompile Include="..\..\DebugTools\MipsAssembler.cpp"> <Filter>System\Ps2\Debug</Filter> </ClCompile> + <ClCompile Include="..\..\DebugTools\BiosDebugData.cpp"> + <Filter>System\Ps2\Debug</Filter> + </ClCompile> <ClCompile Include="..\..\DebugTools\MipsAssemblerTables.cpp"> <Filter>System\Ps2\Debug</Filter> </ClCompile> @@ -1251,6 +1254,9 @@ <ClInclude Include="..\..\DebugTools\MipsAssembler.h"> <Filter>System\Ps2\Debug</Filter> </ClInclude> + <ClInclude Include="..\..\DebugTools\BiosDebugData.h"> + <Filter>System\Ps2\Debug</Filter> + </ClInclude> <ClInclude Include="..\..\DebugTools\MipsAssemblerTables.h"> <Filter>System\Ps2\Debug</Filter> </ClInclude> diff --git a/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj b/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj index fde2077b2a..5f345811a1 100644 --- a/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj +++ b/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj @@ -411,6 +411,7 @@ <ClCompile Include="..\..\DebugTools\Breakpoints.cpp" /> <ClCompile Include="..\..\DebugTools\DebugInterface.cpp" /> <ClCompile Include="..\..\DebugTools\DisassemblyManager.cpp" /> + <ClCompile Include="..\..\DebugTools\BiosDebugData.cpp" /> <ClCompile Include="..\..\DebugTools\ExpressionParser.cpp" /> <ClCompile Include="..\..\DebugTools\MIPSAnalyst.cpp" /> <ClCompile Include="..\..\DebugTools\MipsAssembler.cpp" /> @@ -698,6 +699,7 @@ <ClInclude Include="..\..\DebugTools\Breakpoints.h" /> <ClInclude Include="..\..\DebugTools\DebugInterface.h" /> <ClInclude Include="..\..\DebugTools\DisassemblyManager.h" /> + <ClInclude Include="..\..\DebugTools\BiosDebugData.h" /> <ClInclude Include="..\..\DebugTools\ExpressionParser.h" /> <ClInclude Include="..\..\DebugTools\MIPSAnalyst.h" /> <ClInclude Include="..\..\DebugTools\MipsAssembler.h" /> @@ -938,4 +940,4 @@ <ImportGroup Label="ExtensionTargets"> <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" /> </ImportGroup> -</Project> +</Project> \ No newline at end of file diff --git a/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj.filters b/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj.filters index 3eef87385e..ec441c1b3e 100644 --- a/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj.filters +++ b/pcsx2/windows/VCprojects/pcsx2_vs2013.vcxproj.filters @@ -850,6 +850,9 @@ <ClCompile Include="..\..\DebugTools\MipsAssembler.cpp"> <Filter>System\Ps2\Debug</Filter> </ClCompile> + <ClCompile Include="..\..\DebugTools\BiosDebugData.cpp"> + <Filter>System\Ps2\Debug</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\Patch.h"> @@ -1263,6 +1266,9 @@ <ClInclude Include="..\..\DebugTools\MipsAssembler.h"> <Filter>System\Ps2\Debug</Filter> </ClInclude> + <ClInclude Include="..\..\DebugTools\BiosDebugData.h"> + <Filter>System\Ps2\Debug</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\..\3rdparty\wxWidgets\include\wx\msw\wx.rc"> @@ -1345,4 +1351,4 @@ <Filter>AppHost\Resources</Filter> </CustomBuild> </ItemGroup> -</Project> +</Project> \ No newline at end of file