X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fpico_int.h;h=90731bd7be9049eda45ae7843746d322fe342a5b;hb=679af8a3f466a2a4a20f58e4181a231fb73e9836;hp=0617397cd555e5d51c8d853ef28aaf5b91e25684;hpb=98da48e4181441545c6a66e622f845ab33b34e5b;p=picodrive.git diff --git a/pico/pico_int.h b/pico/pico_int.h index 0617397..90731bd 100644 --- a/pico/pico_int.h +++ b/pico/pico_int.h @@ -243,10 +243,19 @@ extern SH2 sh2s[2]; #define msh2 sh2s[0] #define ssh2 sh2s[1] -#define ash2_end_run(after) if (sh2->icount > (after)) sh2->icount = after -#define ash2_cycles_done() (sh2->cycles_aim - sh2->icount) +#ifndef DRC_SH2 +# define ash2_end_run(after) if (sh2->icount > (after)) sh2->icount = after +# define ash2_cycles_done() (sh2->cycles_aim - sh2->icount) +#else +# define ash2_end_run(after) { \ + if ((sh2->sr >> 12) > (after)) \ + { sh2->sr &= 0xfff; sh2->sr |= (after) << 12; } \ +} +# define ash2_cycles_done() (sh2->cycles_aim - (sh2->sr >> 12)) +#endif -#define sh2_pc(c) (c) ? ssh2.ppc : msh2.ppc +//#define sh2_pc(c) (c) ? ssh2.ppc : msh2.ppc +#define sh2_pc(c) (c) ? ssh2.pc : msh2.pc #define sh2_reg(c, x) (c) ? ssh2.r[x] : msh2.r[x] #define sh2_gbr(c) (c) ? ssh2.gbr : msh2.gbr #define sh2_vbr(c) (c) ? ssh2.vbr : msh2.vbr