diff options
| author | Pokechu22 <Pokechu022@gmail.com> | 2021-02-20 13:17:42 -0800 |
|---|---|---|
| committer | Pokechu22 <Pokechu022@gmail.com> | 2021-05-07 15:42:26 -0700 |
| commit | df77a687e891efdca38223c353da0d06bc666359 (patch) | |
| tree | f585724198632a3a25b2d706564b16ebe9e2e445 /Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp | |
| parent | 1a3d2c32119e15d64008a94624e592cda70b734e (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.cpp | 72 |
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"); |
