summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2013-03-04 15:38:43 -0600
committerJordan Woyak <jordan.woyak@gmail.com>2013-03-04 15:47:56 -0600
commitf3f89e1d00171ac476fc06e605518747c50ab407 (patch)
tree1c1fd0bed94887cd03e70d3f8477d2892a5ff044 /Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp
parentbf58c70e9b5a16c56113fe5114a845f8000d4a9d (diff)
parent0041ec618c46ea2bf99fb1fc068e7c4a263cb4c2 (diff)
Merge branch 'master' into vertex-loader-cleanup
Conflicts: Source/Core/Common/Src/CommonFuncs.h Source/Core/VideoCommon/Src/VertexLoader.cpp
Diffstat (limited to 'Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp
index 0091e4eaca..4848cb4d43 100644
--- a/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp
+++ b/Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp
@@ -35,7 +35,6 @@ typedef void (*DecodingFunction)(u32);
namespace OpcodeDecoder
{
-
static DecodingFunction currentFunction = NULL;
static u32 minCommandSize;
static u16 streamSize;
@@ -46,6 +45,20 @@ static bool inObjectStream;
static u8 lastPrimCmd;
+void DoState(PointerWrap &p)
+{
+ p.Do(minCommandSize);
+ // Not sure what is wrong with this. Something(s) in here is causing dolphin to crash/hang when loading states saved from another run of dolphin. Doesn't seem too important anyway...
+ //vertexLoader.DoState(p);
+ p.Do(readOpcode);
+ p.Do(inObjectStream);
+ p.Do(lastPrimCmd);
+ p.Do(streamSize);
+ p.Do(streamAddress);
+ if (p.GetMode() == PointerWrap::MODE_READ)
+ ResetDecoding();
+}
+
void DecodePrimitiveStream(u32 iBufferSize)
{
u32 vertexSize = vertexLoader.GetVertexSize();
@@ -125,7 +138,9 @@ void DecodeStandard(u32 bufferSize)
if (Cmd == GX_NOP)
return;
-
+ // Causes a SIGBUS error on Android
+ // XXX: Investigate
+#ifndef ANDROID
// check if switching in or out of an object
// only used for debuggging
if (inObjectStream && (Cmd & 0x87) != lastPrimCmd)
@@ -139,7 +154,7 @@ void DecodeStandard(u32 bufferSize)
lastPrimCmd = Cmd & 0x87;
DebugUtil::OnObjectBegin();
}
-
+#endif
switch(Cmd)
{
case GX_NOP: