summaryrefslogtreecommitdiff
path: root/Source/Core/Core/FifoPlayer/FifoPlaybackAnalyzer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Core/FifoPlayer/FifoPlaybackAnalyzer.cpp')
-rw-r--r--Source/Core/Core/FifoPlayer/FifoPlaybackAnalyzer.cpp109
1 files changed, 0 insertions, 109 deletions
diff --git a/Source/Core/Core/FifoPlayer/FifoPlaybackAnalyzer.cpp b/Source/Core/Core/FifoPlayer/FifoPlaybackAnalyzer.cpp
deleted file mode 100644
index b5dcb5cd8c..0000000000
--- a/Source/Core/Core/FifoPlayer/FifoPlaybackAnalyzer.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright 2011 Dolphin Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "Core/FifoPlayer/FifoPlaybackAnalyzer.h"
-
-#include <vector>
-
-#include "Common/Assert.h"
-#include "Common/CommonTypes.h"
-#include "Core/FifoPlayer/FifoAnalyzer.h"
-#include "Core/FifoPlayer/FifoDataFile.h"
-
-using namespace FifoAnalyzer;
-
-// For debugging
-#define LOG_FIFO_CMDS 0
-struct CmdData
-{
- u32 size;
- u32 offset;
- const u8* ptr;
-};
-
-void FifoPlaybackAnalyzer::AnalyzeFrames(FifoDataFile* file,
- std::vector<AnalyzedFrameInfo>& frameInfo)
-{
- u32* cpMem = file->GetCPMem();
- FifoAnalyzer::LoadCPReg(VCD_LO, cpMem[VCD_LO], s_CpMem);
- FifoAnalyzer::LoadCPReg(VCD_HI, cpMem[VCD_HI], s_CpMem);
-
- for (u32 i = 0; i < CP_NUM_VAT_REG; ++i)
- {
- FifoAnalyzer::LoadCPReg(CP_VAT_REG_A + i, cpMem[CP_VAT_REG_A + i], s_CpMem);
- FifoAnalyzer::LoadCPReg(CP_VAT_REG_B + i, cpMem[CP_VAT_REG_B + i], s_CpMem);
- FifoAnalyzer::LoadCPReg(CP_VAT_REG_C + i, cpMem[CP_VAT_REG_C + i], s_CpMem);
- }
-
- frameInfo.clear();
- frameInfo.resize(file->GetFrameCount());
-
- for (u32 frameIdx = 0; frameIdx < file->GetFrameCount(); ++frameIdx)
- {
- const FifoFrameInfo& frame = file->GetFrame(frameIdx);
- AnalyzedFrameInfo& analyzed = frameInfo[frameIdx];
-
- s_DrawingObject = false;
-
- u32 cmdStart = 0;
-
- u32 part_start = 0;
- FifoAnalyzer::CPMemory cpmem;
-
-#if LOG_FIFO_CMDS
- // Debugging
- std::vector<CmdData> prevCmds;
-#endif
-
- while (cmdStart < frame.fifoData.size())
- {
- const bool wasDrawing = s_DrawingObject;
- const u32 cmdSize =
- FifoAnalyzer::AnalyzeCommand(&frame.fifoData[cmdStart], DecodeMode::Playback);
-
-#if LOG_FIFO_CMDS
- CmdData cmdData;
- cmdData.offset = cmdStart;
- cmdData.ptr = &frame.fifoData[cmdStart];
- cmdData.size = cmdSize;
- prevCmds.push_back(cmdData);
-#endif
-
- // Check for error
- if (cmdSize == 0)
- {
- // Clean up frame analysis
- analyzed.parts.clear();
-
- return;
- }
-
- if (wasDrawing != s_DrawingObject)
- {
- if (s_DrawingObject)
- {
- // Start of primitive data for an object
- analyzed.AddPart(FramePartType::Commands, part_start, cmdStart, s_CpMem);
- part_start = cmdStart;
- // Copy cpmem now, because end_of_primitives isn't triggered until the first opcode after
- // primitive data, and the first opcode might update cpmem
- std::memcpy(&cpmem, &s_CpMem, sizeof(FifoAnalyzer::CPMemory));
- }
- else
- {
- // End of primitive data for an object, and thus end of the object
- analyzed.AddPart(FramePartType::PrimitiveData, part_start, cmdStart, cpmem);
- part_start = cmdStart;
- }
- }
-
- cmdStart += cmdSize;
- }
-
- if (part_start != cmdStart)
- {
- // Remaining data, usually without any primitives
- analyzed.AddPart(FramePartType::Commands, part_start, cmdStart, s_CpMem);
- }
- }
-}