Bugfix in bit rotations
authorslack <slack@codemaniacs.com>
Sun, 26 Apr 2009 00:59:49 +0000 (02:59 +0200)
committerslack <slack@codemaniacs.com>
Sun, 26 Apr 2009 00:59:49 +0000 (02:59 +0200)
core/GameBoy.cc
core/opcodes.h

index d634d13f416c5450b6c64c15e3090523b34e726f..28d70382c163196fd352a5bd744fb1652a1270db 100644 (file)
@@ -466,10 +466,7 @@ GameBoy::run_status GameBoy::run_cycle()
                                                set_flag_if(regs.A == 0, ZERO_FLAG);
                                                reset_flag(ADD_SUB_FLAG);
                                                reset_flag(HALF_CARRY_FLAG);
-                                               // TODO: Check which of GBCPUman.pdf or
-                                               // worldofspectrum z80 reference is correct
-                                               //
-                                               //set_flag_if(bit7, CARRY_FLAG);
+                                               set_flag_if(bit7, CARRY_FLAG);
                                                cycles_until_next_instruction = 4; 
                                                break;
                                        }
@@ -493,10 +490,7 @@ GameBoy::run_status GameBoy::run_cycle()
                                                set_flag_if(regs.A == 0, ZERO_FLAG);
                                                reset_flag(ADD_SUB_FLAG);
                                                reset_flag(HALF_CARRY_FLAG);
-                                               // TODO: Check which of GBCPUman.pdf or
-                                               // worldofspectrum z80 reference is correct
-                                               //
-                                               //set_flag_if(bit0, CARRY_FLAG);
+                                               set_flag_if(bit0, CARRY_FLAG);
                                                cycles_until_next_instruction = 4; 
                                                break;
                                        }
index 6ed1d2c5f83ba64292c770711eeaa1713f72b664..7333e15dd5febf59503c37a177ba81a758895307 100644 (file)
                break;
 
 
-// TODO: Check which of GBCPUman.pdf or
-// worldofspectrum z80 reference is correct
-//set_flag_if(bit7, CARRY_FLAG);
-//
 #define RLC_reg(opcode, reg) \
        case opcode: { \
                u8 bit7 = regs.reg >> 7; \
                set_flag_if(regs.reg == 0, ZERO_FLAG); \
                reset_flag(ADD_SUB_FLAG); \
                reset_flag(HALF_CARRY_FLAG); \
+        set_flag_if(bit7, CARRY_FLAG); \
                cycles_until_next_instruction = 8; \
                break; \
        }
                break; \
        }
 
-// TODO: Check which of GBCPUman.pdf or
-// worldofspectrum z80 reference is correct
-//set_flag_if(bit7, CARRY_FLAG);
-//
 #define RRC_reg(opcode, reg) \
        case opcode: { \
                u8 bit0 = regs.reg & 1; \
                set_flag_if(regs.reg == 0, ZERO_FLAG); \
                reset_flag(ADD_SUB_FLAG); \
                reset_flag(HALF_CARRY_FLAG); \
+        set_flag_if(bit0, CARRY_FLAG); \
                cycles_until_next_instruction = 8; \
                break; \
        }