X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FPicoInt.h;h=7d4b06f9b17fe6046be71ffe23a72e936b4db0e9;hb=f9f40f10d1bb46fb779a22879203026367e143a6;hp=664c2f2b4343fcf1677e36bc9176e79dda23441e;hpb=2aa27095f2dbf5b38950fcb1f856d5ffc6a70361;p=picodrive.git diff --git a/Pico/PicoInt.h b/Pico/PicoInt.h index 664c2f2..7d4b06f 100644 --- a/Pico/PicoInt.h +++ b/Pico/PicoInt.h @@ -237,7 +237,8 @@ struct PicoVideo int status; // Status bits unsigned char pending_ints; // pending interrupts: ??VH???? signed char lwrite_cnt; // VDP write count during active display line - unsigned char pad[0x12]; + unsigned short v_counter; // V-counter + unsigned char pad[0x10]; }; struct PicoMisc @@ -397,6 +398,8 @@ int CM_compareRun(int cyc, int is_sub); PICO_INTERNAL void PicoFrameStart(void); void PicoDrawSync(int to, int blank_last_line); extern int DrawScanline; +#define MAX_LINE_SPRITES 29 +extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES]; // Draw2.c PICO_INTERNAL void PicoFrameFull(); @@ -434,9 +437,10 @@ PICO_INTERNAL unsigned int ym2612_read_local_68k(void); // Pico.c extern struct Pico Pico; extern struct PicoSRAM SRam; +extern int PicoPadInt[2]; extern int emustatus; extern void (*PicoResetHook)(void); -extern void (*PicoLineHook)(int count); +extern void (*PicoLineHook)(void); PICO_INTERNAL int CheckDMA(void); PICO_INTERNAL void PicoDetectRegion(void); PICO_INTERNAL void PicoSyncZ80(int m68k_cycles_done); @@ -462,6 +466,7 @@ PICO_INTERNAL void SekInit(void); PICO_INTERNAL int SekReset(void); PICO_INTERNAL void SekState(int *data); PICO_INTERNAL void SekSetRealTAS(int use_real); +void SekStepM68k(void); void SekInitIdleDet(void); void SekFinishIdleDet(void); @@ -475,8 +480,8 @@ PICO_INTERNAL void cdda_start_play(); extern short cdda_out_buffer[2*1152]; extern int PsndLen_exc_cnt; extern int PsndLen_exc_add; -extern int timer_a_next_oflow, timer_a_step, timer_a_offset; // in z80 cycles -extern int timer_b_next_oflow, timer_b_step, timer_b_offset; +extern int timer_a_next_oflow, timer_a_step; // in z80 cycles +extern int timer_b_next_oflow, timer_b_step; void ym2612_sync_timers(int z80_cycles, int mode_old, int mode_new); void ym2612_pack_state(void); @@ -497,13 +502,14 @@ void ym2612_unpack_state(void); #define timers_reset() \ timer_a_next_oflow = timer_b_next_oflow = TIMER_NO_OFLOW; \ - timer_a_step = timer_a_offset = TIMER_A_TICK_ZCYCLES * 1024; \ - timer_b_step = timer_b_offset = TIMER_B_TICK_ZCYCLES * 256; + timer_a_step = TIMER_A_TICK_ZCYCLES * 1024; \ + timer_b_step = TIMER_B_TICK_ZCYCLES * 256; // VideoPort.c PICO_INTERNAL_ASM void PicoVideoWrite(unsigned int a,unsigned short d); PICO_INTERNAL_ASM unsigned int PicoVideoRead(unsigned int a); +PICO_INTERNAL_ASM unsigned int PicoVideoRead8(unsigned int a); extern int (*PicoDmaHook)(unsigned int source, int len, unsigned short **srcp, unsigned short **limitp); // Misc.c