diff options
| author | Tony Wasserka <neobrainx@gmail.com> | 2014-05-18 11:12:06 +0200 |
|---|---|---|
| committer | Tony Wasserka <neobrainx@gmail.com> | 2014-05-18 11:12:06 +0200 |
| commit | 6950f533aee33cbdce7ecfd5f59e3aba3836e730 (patch) | |
| tree | 4ecead69475c6534985e102cdcb0967cdc2e15c5 /Source/Core/VideoBackends/Software | |
| parent | db96f862d2d7b0520b1cbae3b72ea6af1af5383e (diff) | |
| parent | 9b82d720705c8e6fd34c336a92dde5a8b10471b9 (diff) | |
Merge pull request #355 from magumagu/gx-missing-opcode
Opcode decoding: handle missing opcodes 0x88 etc.
Diffstat (limited to 'Source/Core/VideoBackends/Software')
| -rw-r--r-- | Source/Core/VideoBackends/Software/OpcodeDecoder.h | 5 | ||||
| -rw-r--r-- | Source/Core/VideoBackends/Software/SetupUnit.cpp | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/Software/OpcodeDecoder.h b/Source/Core/VideoBackends/Software/OpcodeDecoder.h index 8fd145ef1d..5bd5d1d530 100644 --- a/Source/Core/VideoBackends/Software/OpcodeDecoder.h +++ b/Source/Core/VideoBackends/Software/OpcodeDecoder.h @@ -27,8 +27,11 @@ namespace OpcodeDecoder #define GX_PRIMITIVE_SHIFT 3 #define GX_VAT_MASK 0x07 - //these are defined 1/8th of their real values and without their top bit + // These values are the values extracted using GX_PRIMITIVE_MASK + // and GX_PRIMITIVE_SHIFT. + // GX_DRAW_QUADS_2 behaves the same way as GX_DRAW_QUADS. #define GX_DRAW_QUADS 0x0 //0x80 + #define GX_DRAW_QUADS_2 0x1 //0x88 #define GX_DRAW_TRIANGLES 0x2 //0x90 #define GX_DRAW_TRIANGLE_STRIP 0x3 //0x98 #define GX_DRAW_TRIANGLE_FAN 0x4 //0xA0 diff --git a/Source/Core/VideoBackends/Software/SetupUnit.cpp b/Source/Core/VideoBackends/Software/SetupUnit.cpp index 560e1d4863..171350db60 100644 --- a/Source/Core/VideoBackends/Software/SetupUnit.cpp +++ b/Source/Core/VideoBackends/Software/SetupUnit.cpp @@ -27,6 +27,10 @@ void SetupUnit::SetupVertex() case GX_DRAW_QUADS: SetupQuad(); break; + case GX_DRAW_QUADS_2: + WARN_LOG(VIDEO, "Non-standard primitive drawing command GL_DRAW_QUADS_2"); + SetupQuad(); + break; case GX_DRAW_TRIANGLES: SetupTriangle(); break; |
