From: notaz Date: Mon, 9 Oct 2017 23:00:28 +0000 (+0300) Subject: fame: fix roxr X-Git-Tag: v1.92~2 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=picodrive.git;a=commitdiff_plain;h=c041308933a54fce3b1e98b0228e19f96475ae40 fame: fix roxr also take interrupts on exit, like other cores do --- diff --git a/cpu/fame/famec.c b/cpu/fame/famec.c index 8371930..db4eae6 100644 --- a/cpu/fame/famec.c +++ b/cpu/fame/famec.c @@ -938,7 +938,7 @@ famec_Exec: u32 line; m68kcontext.io_cycle_counter += cycles_needed; cycles_needed = 0; - if (m68kcontext.io_cycle_counter <= 0) goto famec_End; + //if (m68kcontext.io_cycle_counter <= 0) goto famec_End; line=interrupt_chk__(); if (line>0) { diff --git a/cpu/fame/famec_opcodes.h b/cpu/fame/famec_opcodes.h index 3ba7275..2df6d78 100644 --- a/cpu/fame/famec_opcodes.h +++ b/cpu/fame/famec_opcodes.h @@ -38009,7 +38009,7 @@ OPCODE(0xE0B0) { if (sft == 1) res = (src >> 1) | ((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))); else res = (src >> sft) | (src << (33 - sft)) | (((flag_X & M68K_SR_X) << (32 - (M68K_SR_X_SFT + 1))) >> (sft - 1)); - flag_X = (src >> (32 - sft)) << M68K_SR_X_SFT; + flag_X = (src >> (sft - 1)) << M68K_SR_X_SFT; } else res = src; flag_C = flag_X;