-`define INSN_LD_reg_imm8 8'b00xxx110
-`define INSN_HALT 8'b01110110
-`define INSN_LD_HL_reg 8'b01110xxx
-`define INSN_LD_reg_HL 8'b01xxx110
-`define INSN_LD_reg_reg 8'b01xxxxxx
-`define INSN_LD_reg_imm16 8'b00xx0001
-`define INSN_LD_SP_HL 8'b11111001
-`define INSN_PUSH_reg 8'b11xx0101
-`define INSN_POP_reg 8'b11xx0001
-`define INSN_LDH_AC 8'b111x0010 // Either LDH A,(C) or LDH (C),A
-`define INSN_LDx_AHL 8'b001xx010 // LDD/LDI A,(HL) / (HL),A
-`define INSN_ALU8 8'b10xxxxxx // 10 xxx yyy
-`define INSN_NOP 8'b00000000
-`define INSN_RST 8'b11xxx111
-`define INSN_RET 8'b110x1001 // 1 = RETI, 0 = RET
-`define INSN_RETCC 8'b110xx000
-`define INSN_CALL 8'b11001101
-`define INSN_CALLCC 8'b110xx100 // Not that call/cc.
-`define INSN_JP_imm 8'b11000011
-`define INSN_JPCC_imm 8'b110xx010
-`define INSN_ALU_A 8'b00xxx111
-`define INSN_JP_HL 8'b11101001
-`define INSN_JR_imm 8'b00011000
-`define INSN_JRCC_imm 8'b001xx000
-`define INSN_INCDEC16 8'b00xxx011
-`define INSN_VOP_INTR 8'b11111100 // 0xFC is grabbed by the fetch if there is an interrupt pending.
-`define INSN_DI 8'b11110011
-`define INSN_EI 8'b11111011
+`define INSN_LD_reg_imm8 9'b000xxx110
+`define INSN_HALT 9'b001110110
+`define INSN_LD_HL_reg 9'b001110xxx
+`define INSN_LD_reg_HL 9'b001xxx110
+`define INSN_LD_reg_reg 9'b001xxxxxx
+`define INSN_LD_reg_imm16 9'b000xx0001
+`define INSN_LD_SP_HL 9'b011111001
+`define INSN_PUSH_reg 9'b011xx0101
+`define INSN_POP_reg 9'b011xx0001
+`define INSN_LDH_AC 9'b0111x0010 // Either LDH A,(C) or LDH (C),A
+`define INSN_LDx_AHL 9'b0001xx010 // LDD/LDI A,(HL) / (HL),A
+`define INSN_ALU8 9'b010xxxxxx // 10 xxx yyy
+`define INSN_ALU8IMM 9'b011xxx110
+`define INSN_NOP 9'b000000000
+`define INSN_RST 9'b011xxx111
+`define INSN_RET 9'b0110x1001 // 1 = RETI, 0 = RET
+`define INSN_RETCC 9'b0110xx000
+`define INSN_CALL 9'b011001101
+`define INSN_CALLCC 9'b0110xx100 // Not that call/cc.
+`define INSN_JP_imm 9'b011000011
+`define INSN_JPCC_imm 9'b0110xx010
+`define INSN_ALU_A 9'b000xxx111
+`define INSN_JP_HL 9'b011101001
+`define INSN_JR_imm 9'b000011000
+`define INSN_JRCC_imm 9'b0001xx000
+`define INSN_INCDEC16 9'b000xxx011
+`define INSN_VOP_INTR 9'b011111100 // 0xFC is grabbed by the fetch if there is an interrupt pending.
+`define INSN_DI 9'b011110011
+`define INSN_EI 9'b011111011
+`define INSN_INCDEC_HL 9'b00011010x
+`define INSN_INCDEC_reg8 9'b000xxx10x
+`define INSN_LD8M_A 9'b0111x0000 // 1111 for ld A, x; 1110 for ld x, A; bit 1 specifies 16m8 or 8m8
+`define INSN_LD16M_A 9'b0111x1010 // 1111 for ld A, x; 1110 for ld x, A; bit 1 specifies 16m8 or 8m8
+`define INSN_LDBCDE_A 9'b0000xx010
+`define INSN_TWO_BYTE 9'b011001011 // prefix for two-byte opqodes
+`define INSN_ALU_EXT 9'b100xxxxxx
+`define INSN_BIT 9'b101xxxxxx
+`define INSN_RES 9'b110xxxxxx
+`define INSN_SET 9'b111xxxxxx