X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fpico_cmn.c;h=2c4958859fd5cac6fd09fc5d38ef76c9fe5b8814;hb=97d3f47fbe0cebff925dfab2a12c047415c85346;hp=407309a3fc08a3094a5283dd4768e02bd6d3befe;hpb=974fdb5bfda8ed006661031e22c920828ddb60dc;p=picodrive.git diff --git a/pico/pico_cmn.c b/pico/pico_cmn.c index 407309a..2c49588 100644 --- a/pico/pico_cmn.c +++ b/pico/pico_cmn.c @@ -1,5 +1,5 @@ // common code for Pico.c and cd/Pico.c -// (c) Copyright 2007,2008 Grazvydas "notaz" Ignotas +// (c) Copyright 2007-2009 Grazvydas "notaz" Ignotas #define CYCLES_M68K_LINE 488 // suitable for both PAL/NTSC #define CYCLES_M68K_VINT_LAG 68 @@ -15,9 +15,16 @@ } // CPUS_RUN +#ifndef RUN_SH2S +#define RUN_SH2S +#endif + #ifndef PICO_CD #define CPUS_RUN(m68k_cycles,s68k_cycles) \ - SekRunM68k(m68k_cycles); +{ \ + SekRunM68k(m68k_cycles); \ + RUN_SH2S \ +} #else #define CPUS_RUN(m68k_cycles,s68k_cycles) \ { \ @@ -93,6 +100,9 @@ static int PicoFrameHints(void) #ifdef PICO_CD check_cd_dma(); #endif +#ifdef PICO_32X + p32x_pwm_irq_check(); +#endif // H-Interrupts: if (--hint < 0) // y <= lines_vis: Comix Zone, Golden Axe @@ -162,6 +172,9 @@ static int PicoFrameHints(void) #ifdef PICO_CD check_cd_dma(); #endif +#ifdef PICO_32X + p32x_pwm_irq_check(); +#endif // Last H-Int: if (--hint < 0) @@ -214,9 +227,8 @@ static int PicoFrameHints(void) if (PicoLineHook) PicoLineHook(); #endif - // PAL line count might actually be 313 according to Steve Snake, but that would complicate things. - lines = Pico.m.pal ? 312 : 262; - vcnt_wrap = Pico.m.pal ? 0x103 : 0xEB; // based on Gens + lines = scanlines_total; + vcnt_wrap = Pico.m.pal ? 0x103 : 0xEB; // based on Gens, TODO: verify for (y++; y < lines; y++) { @@ -231,6 +243,9 @@ static int PicoFrameHints(void) #ifdef PICO_CD check_cd_dma(); #endif +#ifdef PICO_32X + p32x_pwm_irq_check(); +#endif // Run scanline: if (Pico.m.dma_xfers) SekCyclesBurn(CheckDMA());