X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FPicoInt.h;h=d348598d68225eed1f3eba4a849ab64b1c74d30c;hb=7a87643e0702bf156527e066c2a963b6db2b4fa5;hp=aa6164855f511da95395e3c30d0f470a7af226f3;hpb=9037e45d9f2752fdd6ebbc01328148839403a84f;p=picodrive.git diff --git a/Pico/PicoInt.h b/Pico/PicoInt.h index aa61648..d348598 100644 --- a/Pico/PicoInt.h +++ b/Pico/PicoInt.h @@ -211,13 +211,6 @@ extern struct DrZ80 drZ80; // --------------------------------------------------------- -// Pico active hw -#define PAHW_MCD (1<<0) -#define PAHW_32X (1<<1) -#define PAHW_SVP (1<<2) -#define PAHW_PICO (1<<3) -extern int PicoAHW; - // main oscillator clock which controls timing #define OSC_NTSC 53693100 // seems to be accurate, see scans from http://www.hot.ee/tmeeco/ @@ -322,9 +315,7 @@ struct mcd_misc unsigned char s68k_pend_ints; unsigned int state_flags; // 04: emu state: reset_pending, dmna_pending unsigned int counter75hz; - unsigned short audio_offset; // 0c: for savestates: play pointer offset (0-1023) - unsigned char audio_track; // playing audio track # (zero based) - char pad1; + unsigned int pad0; int timer_int3; // 10 unsigned int timer_stopwatch; unsigned char bcram_reg; // 18: battery-backed RAM cart register @@ -367,6 +358,7 @@ typedef struct #define Pico_mcd ((mcd_state *)Pico.rom) + // Area.c PICO_INTERNAL int PicoAreaPackCpu(unsigned char *cpu, int is_sub); PICO_INTERNAL int PicoAreaUnpackCpu(unsigned char *cpu, int is_sub); @@ -399,6 +391,7 @@ PICO_INTERNAL void PicoFrameFull(); // Memory.c PICO_INTERNAL int PicoInitPc(unsigned int pc); +PICO_INTERNAL unsigned int PicoCheckPc(unsigned int pc); PICO_INTERNAL_ASM unsigned int PicoRead32(unsigned int a); PICO_INTERNAL void PicoMemSetup(void); PICO_INTERNAL_ASM void PicoMemReset(void); @@ -431,7 +424,8 @@ extern int emustatus; extern int z80startCycle, z80stopCycle; // in 68k cycles extern void (*PicoResetHook)(void); extern void (*PicoLineHook)(int count); -PICO_INTERNAL int CheckDMA(void); +PICO_INTERNAL int CheckDMA(void); +PICO_INTERNAL void PicoDetectRegion(void); // cd/Pico.c PICO_INTERNAL int PicoInitMCD(void); @@ -442,6 +436,12 @@ PICO_INTERNAL int PicoFrameMCD(void); // Pico/Pico.c PICO_INTERNAL int PicoInitPico(void); +PICO_INTERNAL void PicoReratePico(void); + +// Pico/xpcm.c +PICO_INTERNAL void PicoPicoPCMUpdate(short *buffer, int length, int stereo); +PICO_INTERNAL void PicoPicoPCMReset(void); +PICO_INTERNAL void PicoPicoPCMRerate(int xpcm_rate); // Sek.c PICO_INTERNAL int SekInit(void); @@ -455,6 +455,8 @@ PICO_INTERNAL int SekResetS68k(void); PICO_INTERNAL int SekInterruptS68k(int irq); // sound/sound.c +PICO_INTERNAL void cdda_start_play(); +extern short cdda_out_buffer[2*1152]; extern int PsndLen_exc_cnt; extern int PsndLen_exc_add; @@ -516,6 +518,7 @@ PICO_INTERNAL void z80_exit(void); #define EL_IO 0x00001000 /* all i/o */ #define EL_CDPOLL 0x00002000 /* MCD: log poll detection */ #define EL_SVP 0x00004000 /* SVP stuff */ +#define EL_PICOHW 0x00008000 /* Pico stuff */ #define EL_STATUS 0x40000000 /* status messages */ #define EL_ANOMALY 0x80000000 /* some unexpected conditions (during emulation) */