From d2e3cf99278e6431042ed4edd8fe6af7e4ffabd3 Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Fri, 27 Dec 2013 11:37:48 +0200 Subject: [PATCH] GB: Disassemble/Tracelog fixes for CB xx - Print bit numbers for BIT/RES/SET properly - Don't print HL address for Bit ops that don't actually have one. --- src/emulation/gambatte/core.cpp | 2 +- src/emulation/gambatte/disassemble.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/emulation/gambatte/core.cpp b/src/emulation/gambatte/core.cpp index b7d3bef7..8b2bdd6c 100644 --- a/src/emulation/gambatte/core.cpp +++ b/src/emulation/gambatte/core.cpp @@ -248,7 +248,7 @@ namespace case 2: addr = get_de(instance); break; case 3: addr = get_hl(instance); break; case 4: addr = 0xFF00 + instance->get_cpureg(gambatte::GB::REG_C); break; - case 5: if(opcode & 7) addr = get_hl(instance); break; + case 5: if((opcode & 7) == 6) addr = get_hl(instance); break; } while(s.str().length() < 28) s << " "; if(addr >= 0) { diff --git a/src/emulation/gambatte/disassemble.cpp b/src/emulation/gambatte/disassemble.cpp index 5a10be27..43fb80c5 100644 --- a/src/emulation/gambatte/disassemble.cpp +++ b/src/emulation/gambatte/disassemble.cpp @@ -89,9 +89,9 @@ std::string disassemble_gb_opcode(uint16_t pc, std::function fetch, i case 6: return (stringfmt() << "SWAP " << regs[reg]).str(); case 7: return (stringfmt() << "SRL " << regs[reg]).str(); }; - case 1: return (stringfmt() << "BIT " << bit << "," << regs[reg]).str(); - case 2: return (stringfmt() << "RES " << bit << "," << regs[reg]).str(); - case 3: return (stringfmt() << "SET " << bit << "," << regs[reg]).str(); + case 1: return (stringfmt() << "BIT " << (int)bit << "," << regs[reg]).str(); + case 2: return (stringfmt() << "RES " << (int)bit << "," << regs[reg]).str(); + case 3: return (stringfmt() << "SET " << (int)bit << "," << regs[reg]).str(); }; } std::ostringstream o;