some Pico adjustments
[picodrive.git] / Pico / Pico.h
index cfcd7e4..3714ad1 100644 (file)
@@ -24,7 +24,6 @@ extern "C" {
 // external funcs for Sega/Mega CD\r
 int  mp3_get_bitrate(FILE *f, int size);\r
 void mp3_start_play(FILE *f, int pos);\r
-int  mp3_get_offset(void); // 0-1023\r
 void mp3_update(int *buffer, int length, int stereo);\r
 \r
 \r
@@ -49,10 +48,15 @@ void mp3_update(int *buffer, int length, int stereo);
 #define POPT_EN_SVP_DRC     (1<<17)\r
 #define POPT_DIS_SPRITE_LIM (1<<18)\r
 extern int PicoOpt; // bitfield\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;            // Pico active hw\r
 extern int PicoVer;\r
-extern int PicoSkipFrame; // skip rendering frame, but still do sound (if enabled) and emulation stuff\r
+extern int PicoSkipFrame;      // skip rendering frame, but still do sound (if enabled) and emulation stuff\r
 extern int PicoRegionOverride; // override the region detection 0: auto, 1: Japan NTSC, 2: Japan PAL, 4: US, 8: Europe\r
-extern int PicoAutoRgnOrder; // packed priority list of regions, for example 0x148 means this detection order: EUR, USA, JAP\r
+extern int PicoAutoRgnOrder;   // packed priority list of regions, for example 0x148 means this detection order: EUR, USA, JAP\r
 extern int PicoSVPCycles;\r
 int  PicoInit(void);\r
 void PicoExit(void);\r
@@ -71,6 +75,23 @@ extern void (*PicoMCDopenTray)(void);
 extern int  (*PicoMCDcloseTray)(void);\r
 extern int PicoCDBuffers;\r
 \r
+// Pico/Pico.c\r
+#define XPCM_BUFFER_SIZE (320+160)\r
+typedef struct\r
+{\r
+       int pen_pos[2];\r
+       int page;\r
+       // internal\r
+       int fifo_bytes;      // bytes in FIFO\r
+       int fifo_bytes_prev;\r
+       int fifo_line_bytes; // float part, << 16\r
+       int line_counter;\r
+       unsigned short r1, r12;\r
+       unsigned char xpcm_buffer[XPCM_BUFFER_SIZE+4];\r
+       unsigned char *xpcm_ptr;\r
+} picohw_state;\r
+extern picohw_state PicoPicohw;\r
+\r
 // Area.c\r
 typedef size_t (arearw)(void *p, size_t _size, size_t _n, void *file);\r
 typedef size_t (areaeof)(void *file);\r
@@ -91,6 +112,7 @@ int PicoCdLoadStateGfx(void *file);
 // cd/buffering.c\r
 void PicoCDBufferInit(void);\r
 void PicoCDBufferFree(void);\r
+void PicoCDBufferFlush(void);\r
 \r
 // cd/cd_sys.c\r
 int Insert_CD(char *iso_name, int is_bin);\r