diff options
| author | degasus <wickmarkus@web.de> | 2013-03-06 15:59:29 +0100 |
|---|---|---|
| committer | degasus <wickmarkus@web.de> | 2013-03-06 15:59:29 +0100 |
| commit | a1c5e90083fa3b895936b16eb17f1184e55f29de (patch) | |
| tree | 709d35e563e2810fc25e752bd8dcf74377900fff /Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp | |
| parent | a2bb7d576671881433157d17fd5343fe6c0ca73f (diff) | |
| parent | 8d5299c20b69f524b20a8d9451aaf754b36690cc (diff) | |
Merge branch 'master' into GLSL-master
Conflicts:
CMakeLists.txt
Source/Core/DolphinWX/CMakeLists.txt
Source/Core/DolphinWX/Src/GLInterface.h
Source/Core/VideoCommon/Src/PixelShaderGen.cpp
Source/Core/VideoCommon/Src/TextureCacheBase.cpp
Source/Core/VideoCommon/Src/VertexManagerBase.cpp
Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj
Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj.filters
Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h
Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp
Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp
Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
Source/Plugins/Plugin_VideoOGL/Src/main.cpp
Diffstat (limited to 'Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp')
| -rw-r--r-- | Source/Plugins/Plugin_VideoSoftware/Src/OpcodeDecoder.cpp | 21 |
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: |
