Pico PCM, only one hardcoded mode for now
[picodrive.git] / Pico / PicoInt.h
index dea4b02..eb78f8c 100644 (file)
@@ -212,9 +212,10 @@ extern struct DrZ80 drZ80;
 // ---------------------------------------------------------\r
 \r
 // Pico active hw\r
-#define PAHW_MCD (1<<0)\r
-#define PAHW_32X (1<<1)\r
-#define PAHW_SVP (1<<2)\r
+#define PAHW_MCD  (1<<0)\r
+#define PAHW_32X  (1<<1)\r
+#define PAHW_SVP  (1<<2)\r
+#define PAHW_PICO (1<<3)\r
 extern int PicoAHW;\r
 \r
 // main oscillator clock which controls timing\r
@@ -321,9 +322,7 @@ struct mcd_misc
        unsigned char  s68k_pend_ints;\r
        unsigned int   state_flags;     // 04: emu state: reset_pending, dmna_pending\r
        unsigned int   counter75hz;\r
-       unsigned short audio_offset;    // 0c: for savestates: play pointer offset (0-1023)\r
-       unsigned char  audio_track;     // playing audio track # (zero based)\r
-       char           pad1;\r
+       unsigned int   pad0;\r
        int            timer_int3;      // 10\r
        unsigned int   timer_stopwatch;\r
        unsigned char  bcram_reg;       // 18: battery-backed RAM cart register\r
@@ -366,6 +365,7 @@ typedef struct
 \r
 #define Pico_mcd ((mcd_state *)Pico.rom)\r
 \r
+\r
 // Area.c\r
 PICO_INTERNAL int PicoAreaPackCpu(unsigned char *cpu, int is_sub);\r
 PICO_INTERNAL int PicoAreaUnpackCpu(unsigned char *cpu, int is_sub);\r
@@ -398,6 +398,7 @@ PICO_INTERNAL void PicoFrameFull();
 \r
 // Memory.c\r
 PICO_INTERNAL int PicoInitPc(unsigned int pc);\r
+PICO_INTERNAL unsigned int PicoCheckPc(unsigned int pc);\r
 PICO_INTERNAL_ASM unsigned int PicoRead32(unsigned int a);\r
 PICO_INTERNAL void PicoMemSetup(void);\r
 PICO_INTERNAL_ASM void PicoMemReset(void);\r
@@ -420,6 +421,9 @@ PICO_INTERNAL void PicoMemSetupCD(void);
 PICO_INTERNAL_ASM void PicoMemResetCD(int r3);\r
 PICO_INTERNAL_ASM void PicoMemResetCDdecode(int r3);\r
 \r
+// Pico/Memory.c\r
+PICO_INTERNAL void PicoMemSetupPico(void);\r
+\r
 // Pico.c\r
 extern struct Pico Pico;\r
 extern struct PicoSRAM SRam;\r
@@ -427,7 +431,8 @@ extern int emustatus;
 extern int z80startCycle, z80stopCycle; // in 68k cycles\r
 extern void (*PicoResetHook)(void);\r
 extern void (*PicoLineHook)(int count);\r
-PICO_INTERNAL int CheckDMA(void);\r
+PICO_INTERNAL int  CheckDMA(void);\r
+PICO_INTERNAL void PicoDetectRegion(void);\r
 \r
 // cd/Pico.c\r
 PICO_INTERNAL int  PicoInitMCD(void);\r
@@ -436,6 +441,13 @@ PICO_INTERNAL void PicoPowerMCD(void);
 PICO_INTERNAL int PicoResetMCD(void);\r
 PICO_INTERNAL int PicoFrameMCD(void);\r
 \r
+// Pico/Pico.c\r
+PICO_INTERNAL int PicoInitPico(void);\r
+\r
+// Pico/xpcm.c\r
+PICO_INTERNAL void PicoPicoPCMUpdate(short *buffer, int length, int stereo);\r
+PICO_INTERNAL void PicoPicoPCMReset(void);\r
+\r
 // Sek.c\r
 PICO_INTERNAL int SekInit(void);\r
 PICO_INTERNAL int SekReset(void);\r
@@ -448,6 +460,8 @@ PICO_INTERNAL int SekResetS68k(void);
 PICO_INTERNAL int SekInterruptS68k(int irq);\r
 \r
 // sound/sound.c\r
+PICO_INTERNAL void cdda_start_play();\r
+extern short cdda_out_buffer[2*1152];\r
 extern int PsndLen_exc_cnt;\r
 extern int PsndLen_exc_add;\r
 \r