diff --git a/include/PICA/shader.hpp b/include/PICA/shader.hpp index 63b59914..5b05e0b7 100644 --- a/include/PICA/shader.hpp +++ b/include/PICA/shader.hpp @@ -36,8 +36,10 @@ namespace ShaderOpcodes { DSTI = 0x19, SGEI = 0x1A, SLTI = 0x1B, + BREAK = 0x20, NOP = 0x21, END = 0x22, + BREAKC = 0x23, CALL = 0x24, CALLC = 0x25, CALLU = 0x26, diff --git a/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp b/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp index d95f7bf5..046c7813 100644 --- a/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp +++ b/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp @@ -172,6 +172,9 @@ void ShaderEmitter::compileInstruction(const PICAShader& shaderUnit) { emitPrintLog(shaderUnit); break; + case ShaderOpcodes::BREAK: + case ShaderOpcodes::BREAKC: Helpers::warn("[Shader JIT] Unimplemented BREAK(C) instruction!"); break; + // We consider both MAD and MADI to be the same instruction and decode which one we actually have in recMAD case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: case 0x3A: case 0x3B: case 0x3C: case 0x3D: case 0x3E: case 0x3F: