<ClCompile Include="..\src\debugger\SaveDumpAsWin.cpp" />\r
<ClCompile Include="..\src\debugger\VideoWin.cpp" />\r
<ClCompile Include="..\src\file.cpp" />\r
+ <ClCompile Include="..\src\gui\debug\hwregsblitterbrowser.cpp" />\r
+ <ClCompile Include="..\src\gui\debug\hwregsbrowser.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ </ExcludedFromBuild>\r
+ </ClCompile>\r
<ClCompile Include="..\src\gui\keybindingstab.cpp" />\r
<ClCompile Include="..\src\gui\modelsbiostab.cpp" />\r
<ClCompile Include="..\src\LEB128.cpp" />\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
</ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Debug\moc_hwregsblitterbrowser.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Debug\moc_hwregsbrowser.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>\r
+ </ClCompile>\r
<ClCompile Include="GeneratedFiles\Debug\moc_keybindingstab.cpp">\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>\r
</ClCompile>\r
<ClCompile Include="GeneratedFiles\Debug\moc_keygrabber.cpp">\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
</ClCompile>\r
- <ClCompile Include="GeneratedFiles\Release\moc_debuggertab.cpp" />\r
+ <ClCompile Include="GeneratedFiles\Release\moc_debuggertab.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
<ClCompile Include="GeneratedFiles\Release\moc_DSPDasmWin.cpp">\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
</ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Release\moc_hwregsblitterbrowser.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Release\moc_hwregsbrowser.cpp">\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ </ClCompile>\r
<ClCompile Include="GeneratedFiles\Release\moc_keybindingstab.cpp">\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>\r
</ClCompile>\r
<ClCompile Include="GeneratedFiles\Release\moc_keygrabber.cpp">\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_LIB -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D_UNICODE "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\OpenGL\include" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.11\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\GeneratedFiles"</Command>\r
</CustomBuild>\r
+ <CustomBuild Include="..\src\gui\debug\hwregsbrowser.h">\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtOpenGL" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtWidgets" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtGui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtANGLE" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtCore" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\mkspecs\win32-msvc2015" "-IC:\SDK\SDL-1.2.15\include" "-IC:\SDK\mesa-11.2.0-rc4\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\GeneratedFiles"</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_OPENGL_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.8\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-IC:\SDK\OpenGL\include" "-I.\GeneratedFiles"</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtOpenGL" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtWidgets" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtGui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtANGLE" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtCore" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\mkspecs\win32-msvc2015" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\GeneratedFiles"</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_LIB -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\OpenGL\include" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.11\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\GeneratedFiles"</Command>\r
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ </ExcludedFromBuild>\r
+ <DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+ </DeploymentContent>\r
+ </CustomBuild>\r
+ <CustomBuild Include="..\src\gui\debug\hwregsblitterbrowser.h">\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtOpenGL" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtWidgets" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtGui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtANGLE" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtCore" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\mkspecs\win32-msvc2015" "-IC:\SDK\SDL-1.2.15\include" "-IC:\SDK\mesa-11.2.0-rc4\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\GeneratedFiles"</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_OPENGL_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.8\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-IC:\SDK\OpenGL\include" "-I.\GeneratedFiles"</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtOpenGL" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtWidgets" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtGui" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtANGLE" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\include\QtCore" "-I.\..\..\..\Qt\Qt5.5.1\msvc2015_64\mkspecs\win32-msvc2015" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\GeneratedFiles"</Command>\r
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>\r
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Identity)...</Message>\r
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>\r
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -D__GCCWIN32__ -DQT_NO_DEBUG -DQT_OPENGL_LIB -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D%(PreprocessorDefinitions) "-I." "-I.\..\src" "-I.\..\src\gui" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtOpenGL" "-IC:\SDK\OpenGL\include" "-IC:\SDK\SDL\SDL-1.2.15\include" "-IC:\SDK\DWARF\libdwarf-VS2015\include" "-IC:\SDK\Elf\libelf-0.8.13\include" "-IC:\SDK\zlib\zlib-1.2.11\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\GeneratedFiles"</Command>\r
+ </CustomBuild>\r
<ClInclude Include="..\src\LEB128.h" />\r
<ClInclude Include="..\src\log.h" />\r
<ClInclude Include="..\src\settings.h" />\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>\r
</Image>\r
+ <Image Include="..\res\tool-hw-regs.png" />\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
<ImportGroup Label="ExtensionTargets" />\r
<ClCompile Include="..\src\debugger\SaveDumpAsWin.cpp">\r
<Filter>Source Files\debugger</Filter>\r
</ClCompile>\r
+ <ClCompile Include="..\src\gui\debug\hwregsbrowser.cpp">\r
+ <Filter>Source Files\alpine</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Debug\moc_hwregsbrowser.cpp">\r
+ <Filter>Generated Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Release\moc_hwregsbrowser.cpp">\r
+ <Filter>Generated Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Debug\moc_hwregsblitterbrowser.cpp">\r
+ <Filter>Generated Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="GeneratedFiles\Release\moc_hwregsblitterbrowser.cpp">\r
+ <Filter>Generated Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\src\gui\debug\hwregsblitterbrowser.cpp">\r
+ <Filter>Source Files\alpine</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="..\src\debugger\DWARFManager.h">\r
<ClInclude Include="..\src\gui\profile.h">\r
<Filter>Header Files\gui</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\src\debugger\HWLABELManager.h">\r
- <Filter>Header Files\debugger</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\src\debugger\DBGManager.h">\r
<Filter>Header Files\debugger</Filter>\r
</ClInclude>\r
<ClInclude Include="..\src\LEB128.h">\r
<Filter>Header Files</Filter>\r
</ClInclude>\r
+ <ClInclude Include="..\src\debugger\HWLABELManager.h">\r
+ <Filter>Header Files\debugger</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
<ItemGroup>\r
<None Include="..\res\alpine-file.png">\r
<CustomBuild Include="..\src\debugger\SaveDumpAsWin.h">\r
<Filter>Header Files\debugger</Filter>\r
</CustomBuild>\r
+ <CustomBuild Include="..\src\gui\debug\hwregsbrowser.h">\r
+ <Filter>Header Files\alpine</Filter>\r
+ </CustomBuild>\r
+ <CustomBuild Include="..\src\gui\debug\hwregsblitterbrowser.h">\r
+ <Filter>Header Files\alpine</Filter>\r
+ </CustomBuild>\r
</ItemGroup>\r
<ItemGroup>\r
<ResourceCompile Include="..\res\vj.rc">\r
<Image Include="..\res\debug-disableallbreakpoints.png">\r
<Filter>Resource Files</Filter>\r
</Image>\r
+ <Image Include="..\res\tool-hw-regs.png">\r
+ <Filter>Resource Files</Filter>\r
+ </Image>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
-- Alert box will display a message and then the code will stop
2) Added a specific breakpoint for the M68K address error exception
-- Alert box will display a message and then the code will stop
+3) Added a HW registers browser window and set a tab for the Blitter
Release 4a (15th August 2019)
-----------------------------
<li>OP Browser</li>
<li>M68K Disassembly Browser</li>
<li>RISC Disassembly Browser</li>
+<li>HW Registers Browser</li>
</ul>
<h3>Memory Browser</h3>
<p>This window lets you inspect <em>Virtual Jaguar</em>’s emulated memory space. The <strong>PgDn</strong> key will advance the top of the window’s memory location by 480 bytes, and <strong>PgUp</strong> will go back by the same amount. The <strong>Plus (+)</strong> key will advance the top of the window’s memory location by 16 bytes, and <strong>Minus (-)</strong> will go back by the same amount. Entering a memory location, in hexadecimal, in the edit field and pressing the <strong>Go</strong> button will display memory from that location. It can be dismissed by clicking on the “X” in the upper corner of the dialog, or by pressing the <strong>Esc</strong> key on your keyboard.</p>
<p>This window provides a disassembly of 68000 opcodes. It can be dismissed by clicking on the “X” in the upper corner of the dialog, or by pressing the <strong>Esc</strong> key on your keyboard.</p>
<h3>RISC Disassembly Browser</h3>
<p>This window provides a disassembly of RISC opcodes. It can be dismissed by clicking on the “X” in the upper corner of the dialog, or by pressing the <strong>Esc</strong> key on your keyboard.</p>
+<h3>HW Registers Browser</h3>
+<p>This window provides a list of the hardware registers content; for the moment, only the blitter is displayed. It can be dismissed by clicking on the “X” in the upper corner of the dialog, or by pressing the <strong>Esc</strong> key on your keyboard.</p>
<p>The aforementioned options will only work when <em>Virtual Jaguar</em> is run in Alpine or Debugger mode, that is, when the --alpine or --debugger flag is passed in. If you do not pass such flag, <em>Virtual Jaguar</em> will run as it normally does, i.e., as a stock Jaguar, and nothing will be loaded by default.</p>
<h2>For The Curious</h2>
<p>If you’re wondering why some cartridges have labels in the “Insert Cartridge...” dialogue and some don’t, read on...</p>
--- /dev/null
+//
+// hwregsbrowser.h: Hardware registers blitter browser
+//
+// by Jean-Paul Mari
+//
+// JPM = Jean-Paul Mari <djipi.mari@gmail.com>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JPM 08/20/2019 Created this file
+//
+
+// STILL TO DO:
+//
+
+#include "hwregsbrowser.h"
+#include "blitter.h"
+
+
+//
+struct BlitterInfoTable
+{
+ unsigned int Address;
+ unsigned int NbBits;
+ const char *Name;
+ const char *Type;
+}
+S_BlitterInfoTable;
+
+//
+BlitterInfoTable TabBlitterInfoTable[] = {
+ { 0xF02200, sizeof(long), "A1 base address", "32-bit register containing a pointer to the base of the window pointer to by A1.\nThis address must be phrase aligned." },
+ { 0xF02204, sizeof(long), "Flags Register", "A set of flags controlling various aspects of the A1 window and how addresses are updated." },
+ { 0xF02208, sizeof(long), "A1 Clipping Window Size", "This register contains the size in pixels, and may be used for clipping writes, so that if the pointer leaves the window bounds no write is performed." },
+ { 0xF0220C, sizeof(long), "A1 Window Pixel Pointer", "This register contains the X (low word) and Y (high word) pointers onto the window, and are the location where the next pixel will be written.\nThey are sixteen - bit signed values." },
+ { 0xF02210, sizeof(long), "A1 Step Value", "The step register contains two signed sixteen bit values, which are the X step (low word) and Y step (high word)." },
+ { 0xF02214, sizeof(long), "A1 Step Fraction Value", "The step fraction register may be added to the fractional parts of the A1 pointer in the same manner as the step value." },
+ { 0xF02218, sizeof(long), "A1 Window Pixel Pointer Fraction", "" },
+ { 0xF0221C, sizeof(long), "A1 Pixel Pointer Increment", "" },
+ { 0xF02220, sizeof(long), "A1 Pixel Pointer Increment Fraction", "This is the fractional parts of the increment described above." },
+ { 0xF02224, sizeof(long), "A2 Base Register", "32-bit register containing a pointer to the base of the window pointer to by A2.\nThis address must be phrase aligned." },
+ { 0xF02228, sizeof(long), "A2 Flags Register", "A set of flags controlling various aspects of the A2 window and how addresses are updated." },
+ { 0xF0222C, sizeof(long), "A2 Window Mask", "" },
+ { 0xF02230, sizeof(long), "A2 Window Pointer", "" },
+ { 0xF02234, sizeof(long), "A2 Step Value", "" },
+ { 0xF02238, sizeof(long), "Status Register", "" },
+ { 0xF0223C, sizeof(long), "Counters Register", "" },
+ { 0xF02240, sizeof(long long), "Source Data Register", "" },
+ { 0xF02248, sizeof(long long), "Destination Data Register", "" },
+ { 0xF02250, sizeof(long long), "Destination Z Register", "" },
+ { 0xF02258, sizeof(long long), "Source Z Register 1", "The source Z register 1 is also used to hold the four integer parts of computed Z." },
+ { 0xF02260, sizeof(long long), "Source Z Register 2", "The source Z register 2 is also used to hold the four fraction parts of computed Z." },
+ { 0xF02268, sizeof(long long), "Pattern Data Register", "The pattern data register also serves to hold the computed intensity integer parts and their associated colours." },
+ { 0xF02270, sizeof(long), "Intensity Increment", "This thirty-two bit register holds the integer and fractional parts of the intensity increment used for Gouraud shading." },
+ { 0xF02274, sizeof(long), "Z Increment", "This thirty-two bit register holds the integer and fractional parts of the Z increment used for computed Z polygon drawing." },
+ { 0xF02278, sizeof(long), "Collision control", "" },
+ { 0xF0227C, sizeof(long), "Intensity 0", "" },
+ { 0xF02280, sizeof(long), "Intensity 1", "" },
+ { 0xF02284, sizeof(long), "Intensity 2", "" },
+ { 0xF02288, sizeof(long), "Intensity 3", "" },
+ { 0xF0228C, sizeof(long), "Z 0", "These registers are analogous to the intensity registers, and are for Z buffer operation." },
+ { 0xF02290, sizeof(long), "Z 1", "These registers are analogous to the intensity registers, and are for Z buffer operation." },
+ { 0xF02294, sizeof(long), "Z 2", "These registers are analogous to the intensity registers, and are for Z buffer operation." },
+ { 0xF02298, sizeof(long), "Z 3", "These registers are analogous to the intensity registers, and are for Z buffer operation." },
+ };
+
+
+//
+HWRegsBlitterBrowserWindow::HWRegsBlitterBrowserWindow(QWidget * parent/*= 0*/) : QWidget(parent, Qt::Dialog),
+layout(new QVBoxLayout),
+TableView(new QTableView),
+model(new QStandardItemModel)
+{
+ unsigned int i;
+
+ // Set the font
+ QFont fixedFont("Lucida Console", 8, QFont::Normal);
+ fixedFont.setStyleHint(QFont::TypeWriter);
+
+ // Set the new layout with proper identation and readibility
+ model->setColumnCount(4);
+ model->setHeaderData(0, Qt::Horizontal, QObject::tr("Name"));
+ model->setHeaderData(1, Qt::Horizontal, QObject::tr("Address"));
+ model->setHeaderData(2, Qt::Horizontal, QObject::tr("# bits"));
+ model->setHeaderData(3, Qt::Horizontal, QObject::tr("Value"));
+ //model->setHeaderData(4, Qt::Horizontal, QObject::tr("Reference"));
+ // Information table
+ TableView->setModel(model);
+ TableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ TableView->setShowGrid(0);
+ TableView->setFont(fixedFont);
+ TableView->verticalHeader()->setDefaultSectionSize(TableView->verticalHeader()->minimumSectionSize());
+ TableView->verticalHeader()->setDefaultAlignment(Qt::AlignRight);
+
+ // Set basic infos in the layout
+ for (i = 0; i < (sizeof(TabBlitterInfoTable) / sizeof(struct BlitterInfoTable)); i++)
+ {
+ model->insertRow(i);
+ model->setItem(i, 0, new QStandardItem(QString("%1").arg(TabBlitterInfoTable[i].Name)));
+ model->setItem(i, 1, new QStandardItem(QString("0x%1").arg(TabBlitterInfoTable[i].Address, 4, 16, QChar('0'))));
+ model->setItem(i, 2, new QStandardItem(QString("%1").arg(TabBlitterInfoTable[i].NbBits * 8)));
+ //model->setItem(i, 4, new QStandardItem(QString("%1").arg(TabBlitterInfoTable[i].Type)));
+ }
+
+ // Set the layout
+ layout->addWidget(TableView);
+ setLayout(layout);
+}
+
+
+//
+HWRegsBlitterBrowserWindow::~HWRegsBlitterBrowserWindow(void)
+{
+ Reset();
+}
+
+
+//
+void HWRegsBlitterBrowserWindow::Reset(void)
+{
+}
+
+
+//
+void HWRegsBlitterBrowserWindow::RefreshContents(void)
+{
+ char string[1024];
+ unsigned int i;
+
+ if (isVisible())
+ {
+ for (i = 0; i < (sizeof(TabBlitterInfoTable) / sizeof(struct BlitterInfoTable)); i++)
+ {
+ // Emulator handles the blitter in a separate array
+ sprintf(string, "0x%08x", BlitterReadLong(TabBlitterInfoTable[i].Address));
+ model->setItem(i, 3, new QStandardItem(QString("%1").arg(string)));
+ }
+ }
+}
--- /dev/null
+//
+// hwregsblitterbrowser.h: Hardware registers blitter browser
+//
+// by Jean-Paul Mari
+//
+
+#ifndef __HWREGSBLITTERBROWSER_H__
+#define __HWREGSBLITTERBROWSER_H__
+
+#include <QtWidgets>
+#include <stdint.h>
+
+
+//
+class HWRegsBlitterBrowserWindow : public QWidget
+{
+ Q_OBJECT
+
+public:
+ HWRegsBlitterBrowserWindow(QWidget *parent = 0);
+ ~HWRegsBlitterBrowserWindow(void);
+ void Reset(void);
+
+public slots:
+ void RefreshContents(void);
+
+protected:
+ //void keyPressEvent(QKeyEvent *);
+
+private:
+ QVBoxLayout *layout;
+ QTableView *TableView;
+ QStandardItemModel *model;
+};
+
+
+#endif
--- /dev/null
+//
+// hwregsbrowser.h: Hardware registers browser
+//
+// by Jean-Paul Mari
+//
+// JPM = Jean-Paul Mari <djipi.mari@gmail.com>
+//
+// Who When What
+// --- ---------- -----------------------------------------------------------
+// JPM 08/20/2019 Created this file
+//
+
+// STILL TO DO:
+//
+
+#include "hwregsbrowser.h"
+
+
+//
+HWRegsBrowserWindow::HWRegsBrowserWindow(QWidget * parent/*= 0*/) : QWidget(parent, Qt::Dialog),
+layout(new QVBoxLayout),
+//statusbar(new QStatusBar),
+hwregstabWidget(new QTabWidget),
+hwregsblitterWin(new HWRegsBlitterBrowserWindow)
+{
+ setWindowTitle(tr("Hardware Registers Browser"));
+
+ // Set the font
+ QFont fixedFont("Lucida Console", 8, QFont::Normal);
+ fixedFont.setStyleHint(QFont::TypeWriter);
+
+ //
+ hwregstabWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ hwregstabWidget->addTab(hwregsblitterWin, tr("Blitter"));
+ layout->addWidget(hwregstabWidget);
+
+ // Status bar
+ //layout->addWidget(statusbar);
+ setLayout(layout);
+}
+
+
+//
+HWRegsBrowserWindow::~HWRegsBrowserWindow(void)
+{
+ Reset();
+}
+
+
+//
+void HWRegsBrowserWindow::Reset(void)
+{
+}
+
+
+//
+void HWRegsBrowserWindow::RefreshContents(void)
+{
+ hwregsblitterWin->RefreshContents();
+}
+
+
+//
+void HWRegsBrowserWindow::keyPressEvent(QKeyEvent * e)
+{
+ if (e->key() == Qt::Key_Escape)
+ {
+ hide();
+ }
+}
--- /dev/null
+//
+// hwregsbrowser.h: Hardware registers browser
+//
+// by Jean-Paul Mari
+//
+
+#ifndef __HWREGSBROWSER_H__
+#define __HWREGSBROWSER_H__
+
+#include <QtWidgets>
+#include <stdint.h>
+#include "hwregsblitterbrowser.h"
+
+
+//
+class HWRegsBrowserWindow : public QWidget
+{
+ Q_OBJECT
+
+public:
+ HWRegsBrowserWindow(QWidget *parent = 0);
+ ~HWRegsBrowserWindow(void);
+ void Reset(void);
+
+public slots:
+ void RefreshContents(void);
+
+protected:
+ void keyPressEvent(QKeyEvent *);
+
+private:
+ //QStatusBar *statusbar;
+ QVBoxLayout *layout;
+ QTabWidget *hwregstabWidget;
+ HWRegsBlitterBrowserWindow *hwregsblitterWin;
+};
+
+
+#endif
// JPM Oct./2018 Added search paths in the settings, breakpoints feature, cartridge view menu\r
// JPM 11/18/2018 Fix crash with non-debugger mode\r
// JPM April/2019 Added ELF sections check, added a save memory dump\r
-// JPM Aug./2019 Update texts descriptions, set cartridge view menu for debugger mode only\r
+// JPM Aug./2019 Update texts descriptions, set cartridge view menu for debugger mode only, added a HW registers browser\r
//\r
\r
// FIXED:\r
#include "debug/stackbrowser.h"\r
#include "debug/opbrowser.h"\r
#include "debug/riscdasmbrowser.h"\r
+#include "debug/hwregsbrowser.h"\r
\r
#include "dac.h"\r
#include "jaguar.h"\r
opBrowseWin = new OPBrowserWindow(this);\r
m68kDasmBrowseWin = new M68KDasmBrowserWindow(this);\r
riscDasmBrowseWin = new RISCDasmBrowserWindow(this);\r
+ hwRegsBrowseWin = new HWRegsBrowserWindow(this);\r
\r
// Windows debugger mode features\r
if (vjs.softTypeDebugger)\r
m68kDasmBrowseAct->setStatusTip(tr("Shows the 68K disassembly browser window"));\r
connect(m68kDasmBrowseAct, SIGNAL(triggered()), this, SLOT(ShowM68KDasmBrowserWin()));\r
\r
+ // HW registers browser window\r
+ hwRegsBrowseAct = new QAction(QIcon(":/res/tool-hw-regs.png"), tr("HW Registers Browser"), this);\r
+ hwRegsBrowseAct->setStatusTip(tr("Shows the HW registers browser window"));\r
+ connect(hwRegsBrowseAct, SIGNAL(triggered()), this, SLOT(ShowHWRegsBrowserWin()));\r
+\r
// Risc (DSP / GPU) disassembly browser window\r
riscDasmBrowseAct = new QAction(QIcon(":/res/tool-risc-dis.png"), tr("RISC Listing Browser"), this);\r
riscDasmBrowseAct->setStatusTip(tr("Shows the RISC disassembly browser window"));\r
debugWindowsBrowsesMenu->addAction(opBrowseAct);\r
debugWindowsBrowsesMenu->addAction(m68kDasmBrowseAct);\r
debugWindowsBrowsesMenu->addAction(riscDasmBrowseAct);\r
+ debugWindowsBrowsesMenu->addAction(hwRegsBrowseAct);\r
debugMenu->addSeparator();\r
debugMenu->addAction(pauseAct);\r
debugMenu->addAction(frameAdvanceAct);\r
debugMenu->addAction(opBrowseAct);\r
debugMenu->addAction(m68kDasmBrowseAct);\r
debugMenu->addAction(riscDasmBrowseAct);\r
+ debugMenu->addAction(hwRegsBrowseAct);\r
}\r
}\r
\r
debugbar->addAction(opBrowseAct);\r
debugbar->addAction(m68kDasmBrowseAct);\r
debugbar->addAction(riscDasmBrowseAct);\r
+ debugbar->addAction(hwRegsBrowseAct);\r
}\r
\r
// Add actions to the main window, as hiding widgets with them\r
}\r
\r
\r
+// Show the OP browser window\r
void MainWin::ShowOPBrowserWin(void)\r
{\r
opBrowseWin->show();\r
}\r
\r
\r
+// Show the HW registers browser window\r
+void MainWin::ShowHWRegsBrowserWin(void)\r
+{\r
+ hwRegsBrowseWin->show();\r
+ hwRegsBrowseWin->RefreshContents();\r
+}\r
+\r
+\r
+// Show the M68K browser window\r
void MainWin::ShowM68KDasmBrowserWin(void)\r
{\r
m68kDasmBrowseWin->show();\r
size = settings.value("opBrowseWinSize", QSize(400, 400)).toSize();\r
opBrowseWin->resize(size);\r
\r
+ // HW registers UI information\r
+ pos = settings.value("hwRegsBrowseWinPos", QPoint(200, 200)).toPoint();\r
+ hwRegsBrowseWin->move(pos);\r
+ settings.value("hwRegsBrowseWinIsVisible", false).toBool() ? ShowHWRegsBrowserWin() : void();\r
+ size = settings.value("hwRegsBrowseWinSize", QSize(400, 400)).toSize();\r
+ hwRegsBrowseWin->resize(size);\r
+\r
// RISC disassembly UI information\r
pos = settings.value("riscDasmBrowseWinPos", QPoint(200, 200)).toPoint();\r
riscDasmBrowseWin->move(pos);\r
settings.setValue("opBrowseWinPos", opBrowseWin->pos());\r
settings.setValue("opBrowseWinIsVisible", opBrowseWin->isVisible());\r
settings.setValue("opBrowseWinSize", opBrowseWin->size());\r
+ settings.setValue("hwRegsBrowseWinPos", hwRegsBrowseWin->pos());\r
+ settings.setValue("hwRegsBrowseWinIsVisible", hwRegsBrowseWin->isVisible());\r
+ settings.setValue("hwRegsBrowseWinSize", hwRegsBrowseWin->size());\r
settings.setValue("riscDasmBrowseWinPos", riscDasmBrowseWin->pos());\r
settings.setValue("riscDasmBrowseWinIsVisible", riscDasmBrowseWin->isVisible());\r
settings.setValue("m68kDasmBrowseWinPos", m68kDasmBrowseWin->pos());\r
opBrowseWin->RefreshContents();\r
riscDasmBrowseWin->RefreshContents();\r
m68kDasmBrowseWin->RefreshContents();\r
+ hwRegsBrowseWin->RefreshContents();\r
}\r
\r
\r
class OPBrowserWindow;\r
class M68KDasmBrowserWindow;\r
class RISCDasmBrowserWindow;\r
+class HWRegsBrowserWindow;\r
\r
// Debugger\r
class m68KDasmWindow;\r
void ShowCPUBrowserWin(void);\r
void ShowOPBrowserWin(void);\r
void ShowM68KDasmBrowserWin(void);\r
+ void ShowHWRegsBrowserWin(void);\r
void ShowRISCDasmBrowserWin(void);\r
\r
private:\r
OPBrowserWindow *opBrowseWin;\r
M68KDasmBrowserWindow *m68kDasmBrowseWin;\r
RISCDasmBrowserWindow *riscDasmBrowseWin;\r
+ HWRegsBrowserWindow *hwRegsBrowseWin;\r
//VideoOutputWindow *VideoOutputWin;\r
AllWatchBrowserWindow *allWatchBrowseWin;\r
LocalBrowserWindow *LocalBrowseWin;\r
QAction *cpuBrowseAct;\r
QAction *opBrowseAct;\r
QAction *m68kDasmBrowseAct;\r
+ QAction *hwRegsBrowseAct;\r
QAction *riscDasmBrowseAct;\r
\r
// Debugger\r
<file>../../res/tool-op.png</file>\r
<file>../../res/tool-68k-dis.png</file>\r
<file>../../res/tool-risc-dis.png</file>\r
+ <file>../../res/tool-hw-regs.png</file>\r
<file>../../res/generic.png</file>\r
<file>../../res/cart-blank.png</file>\r
<file>../../res/label-blank.png</file>\r
src/gui/debug/opbrowser.h \\r
src/gui/debug/riscdasmbrowser.h \\r
src/gui/debug/stackbrowser.h \\r
+ src/gui/debug/hwregsbrowser.h \\r
src/debugger/debuggertab.h \\r
src/debugger/DasmWin.h \\r
src/debugger/m68kDasmWin.h \\r
src/gui/debug/opbrowser.cpp \\r
src/gui/debug/riscdasmbrowser.cpp \\r
src/gui/debug/stackbrowser.cpp \\r
+ src/gui/debug/hwregsbrowser.cpp \\r
src/debugger/debuggertab.cpp \\r
src/debugger/DasmWin.cpp \\r
src/debugger/m68kDasmWin.cpp \\r