summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2021-02-20 13:17:42 -0800
committerPokechu22 <Pokechu022@gmail.com>2021-05-07 15:42:26 -0700
commitdf77a687e891efdca38223c353da0d06bc666359 (patch)
treef585724198632a3a25b2d706564b16ebe9e2e445 /Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp
parent1a3d2c32119e15d64008a94624e592cda70b734e (diff)
Add descriptions for GX_LOAD_INDX_A/B/C/D
Diffstat (limited to 'Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp')
-rw-r--r--Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp72
1 files changed, 64 insertions, 8 deletions
diff --git a/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp b/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp
index 5511fe0dfe..676288f442 100644
--- a/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp
+++ b/Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp
@@ -271,21 +271,37 @@ void FIFOAnalyzer::UpdateDetails()
break;
case OpcodeDecoder::GX_LOAD_INDX_A:
- new_label = QStringLiteral("LOAD INDX A");
+ {
+ const auto [desc, written] =
+ GetXFIndexedLoadInfo(ARRAY_XF_A, Common::swap32(&object[object_offset]));
object_offset += 4;
- break;
+ new_label = QStringLiteral("LOAD INDX A %1").arg(QString::fromStdString(desc));
+ }
+ break;
case OpcodeDecoder::GX_LOAD_INDX_B:
- new_label = QStringLiteral("LOAD INDX B");
+ {
+ const auto [desc, written] =
+ GetXFIndexedLoadInfo(ARRAY_XF_B, Common::swap32(&object[object_offset]));
object_offset += 4;
- break;
+ new_label = QStringLiteral("LOAD INDX B %1").arg(QString::fromStdString(desc));
+ }
+ break;
case OpcodeDecoder::GX_LOAD_INDX_C:
- new_label = QStringLiteral("LOAD INDX C");
+ {
+ const auto [desc, written] =
+ GetXFIndexedLoadInfo(ARRAY_XF_C, Common::swap32(&object[object_offset]));
object_offset += 4;
- break;
+ new_label = QStringLiteral("LOAD INDX C %1").arg(QString::fromStdString(desc));
+ }
+ break;
case OpcodeDecoder::GX_LOAD_INDX_D:
- new_label = QStringLiteral("LOAD INDX D");
+ {
+ const auto [desc, written] =
+ GetXFIndexedLoadInfo(ARRAY_XF_D, Common::swap32(&object[object_offset]));
object_offset += 4;
- break;
+ new_label = QStringLiteral("LOAD INDX D %1").arg(QString::fromStdString(desc));
+ }
+ break;
case OpcodeDecoder::GX_CMD_CALL_DL:
// The recorder should have expanded display lists into the fifo stream and skipped the
@@ -565,6 +581,46 @@ void FIFOAnalyzer::UpdateDescription()
else
text += QString::fromStdString(desc);
}
+ else if (*cmddata == OpcodeDecoder::GX_LOAD_INDX_A)
+ {
+ const auto [desc, written] = GetXFIndexedLoadInfo(ARRAY_XF_A, Common::swap32(cmddata + 1));
+
+ text = QString::fromStdString(desc);
+ text += QLatin1Char{'\n'};
+ text += tr("Usually used for position matrices");
+ text += QLatin1Char{'\n'};
+ text += QString::fromStdString(written);
+ }
+ else if (*cmddata == OpcodeDecoder::GX_LOAD_INDX_B)
+ {
+ const auto [desc, written] = GetXFIndexedLoadInfo(ARRAY_XF_B, Common::swap32(cmddata + 1));
+
+ text = QString::fromStdString(desc);
+ text += QLatin1Char{'\n'};
+ text += tr("Usually used for normal matrices");
+ text += QLatin1Char{'\n'};
+ text += QString::fromStdString(written);
+ }
+ else if (*cmddata == OpcodeDecoder::GX_LOAD_INDX_C)
+ {
+ const auto [desc, written] = GetXFIndexedLoadInfo(ARRAY_XF_C, Common::swap32(cmddata + 1));
+
+ text = QString::fromStdString(desc);
+ text += QLatin1Char{'\n'};
+ text += tr("Usually used for tex coord matrices");
+ text += QLatin1Char{'\n'};
+ text += QString::fromStdString(written);
+ }
+ else if (*cmddata == OpcodeDecoder::GX_LOAD_INDX_D)
+ {
+ const auto [desc, written] = GetXFIndexedLoadInfo(ARRAY_XF_D, Common::swap32(cmddata + 1));
+
+ text = QString::fromStdString(desc);
+ text += QLatin1Char{'\n'};
+ text += tr("Usually used for light objects");
+ text += QLatin1Char{'\n'};
+ text += QString::fromStdString(written);
+ }
else
{
text = tr("No description available");