notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Gizmondo port updated to 1.51b
[picodrive.git]
/
Pico
/
Pico.h
diff --git
a/Pico/Pico.h
b/Pico/Pico.h
index
be3015a
..
ff86b1e
100644
(file)
--- a/
Pico/Pico.h
+++ b/
Pico/Pico.h
@@
-22,10
+22,14
@@
extern "C" {
#endif
\r
\r
// external funcs for Sega/Mega CD
\r
#endif
\r
\r
// 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
-void mp3_update(int *buffer, int length, int stereo);
\r
+
extern
int mp3_get_bitrate(FILE *f, int size);
\r
+
extern
void mp3_start_play(FILE *f, int pos);
\r
+
extern
void mp3_update(int *buffer, int length, int stereo);
\r
\r
\r
+// this function should write-back d-cache and invalidate i-cache
\r
+// on a mem region [start_addr, end_addr)
\r
+// used by SVP dynarec
\r
+extern void cache_flush_d_inval_i(const void *start_addr, const void *end_addr);
\r
\r
// Pico.c
\r
#define POPT_EN_FM (1<< 0) // 00 000x
\r
\r
// Pico.c
\r
#define POPT_EN_FM (1<< 0) // 00 000x
\r
@@
-34,7
+38,7
@@
void mp3_update(int *buffer, int length, int stereo);
#define POPT_EN_STEREO (1<< 3)
\r
#define POPT_ALT_RENDERER (1<< 4) // 00 00x0
\r
#define POPT_6BTN_PAD (1<< 5)
\r
#define POPT_EN_STEREO (1<< 3)
\r
#define POPT_ALT_RENDERER (1<< 4) // 00 00x0
\r
#define POPT_6BTN_PAD (1<< 5)
\r
-
#define POPT_ACC_TIMING
(1<< 6)
\r
+
// unused
(1<< 6)
\r
#define POPT_ACC_SPRITES (1<< 7)
\r
#define POPT_DIS_32C_BORDER (1<< 8) // 00 0x00
\r
#define POPT_EXT_FM (1<< 9)
\r
#define POPT_ACC_SPRITES (1<< 7)
\r
#define POPT_DIS_32C_BORDER (1<< 8) // 00 0x00
\r
#define POPT_EXT_FM (1<< 9)
\r
@@
-47,23
+51,30
@@
void mp3_update(int *buffer, int length, int stereo);
#define POPT_DIS_VDP_FIFO (1<<16) // 0x 0000
\r
#define POPT_EN_SVP_DRC (1<<17)
\r
#define POPT_DIS_SPRITE_LIM (1<<18)
\r
#define POPT_DIS_VDP_FIFO (1<<16) // 0x 0000
\r
#define POPT_EN_SVP_DRC (1<<17)
\r
#define POPT_DIS_SPRITE_LIM (1<<18)
\r
+#define POPT_DIS_IDLE_DET (1<<19)
\r
extern int PicoOpt; // bitfield
\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 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 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
extern int PicoSVPCycles;
\r
-
int
PicoInit(void);
\r
+
void
PicoInit(void);
\r
void PicoExit(void);
\r
void PicoPower(void);
\r
int PicoReset(void);
\r
void PicoExit(void);
\r
void PicoPower(void);
\r
int PicoReset(void);
\r
-
int
PicoFrame(void);
\r
+
void
PicoFrame(void);
\r
void PicoFrameDrawOnly(void);
\r
extern int PicoPad[2]; // Joypads, format is MXYZ SACB RLDU
\r
extern void (*PicoWriteSound)(int len); // called once per frame at the best time to send sound buffer (PsndOut) to hardware
\r
extern void (*PicoMessage)(const char *msg); // callback to output text message from emu
\r
void PicoFrameDrawOnly(void);
\r
extern int PicoPad[2]; // Joypads, format is MXYZ SACB RLDU
\r
extern void (*PicoWriteSound)(int len); // called once per frame at the best time to send sound buffer (PsndOut) to hardware
\r
extern void (*PicoMessage)(const char *msg); // callback to output text message from emu
\r
-typedef enum { PS_PAL, PS_40_CELL, PS_240_LINES } pstat_t;
\r
-int PicoGetStat(pstat_t which);
\r
+typedef enum { PI_ROM, PI_ISPAL, PI_IS40_CELL, PI_IS240_LINES } pint_t;
\r
+typedef union { int vint; void *vptr; } pint_ret_t;
\r
+void PicoGetInternal(pint_t which, pint_ret_t *ret);
\r
\r
// cd/Pico.c
\r
extern void (*PicoMCDopenTray)(void);
\r
\r
// cd/Pico.c
\r
extern void (*PicoMCDopenTray)(void);
\r
@@
-71,13
+82,19
@@
extern int (*PicoMCDcloseTray)(void);
extern int PicoCDBuffers;
\r
\r
// Pico/Pico.c
\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
typedef struct
\r
{
\r
int pen_pos[2];
\r
int page;
\r
// internal
\r
- int fifo_bytes;
\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
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
} picohw_state;
\r
extern picohw_state PicoPicohw;
\r
\r
@@
-96,7
+113,7
@@
extern areaclose *areaClose;
extern void (*PicoStateProgressCB)(const char *str);
\r
\r
// cd/Area.c
\r
extern void (*PicoStateProgressCB)(const char *str);
\r
\r
// cd/Area.c
\r
-int PicoCdLoadStateGfx(void *file);
\r
+int
PicoCdLoadStateGfx(void *file);
\r
\r
// cd/buffering.c
\r
void PicoCDBufferInit(void);
\r
\r
// cd/buffering.c
\r
void PicoCDBufferInit(void);
\r
@@
-104,7
+121,6
@@
void PicoCDBufferFree(void);
void PicoCDBufferFlush(void);
\r
\r
// cd/cd_sys.c
\r
void PicoCDBufferFlush(void);
\r
\r
// cd/cd_sys.c
\r
-int Insert_CD(char *iso_name, int is_bin);
\r
int Insert_CD(char *cdimg_name, int type);
\r
void Stop_CD(void); // releases all resources taken when CD game was started.
\r
\r
int Insert_CD(char *cdimg_name, int type);
\r
void Stop_CD(void); // releases all resources taken when CD game was started.
\r
\r
@@
-129,7
+145,7
@@
int pm_close(pm_file *fp);
int PicoCartLoad(pm_file *f,unsigned char **prom,unsigned int *psize);
\r
int PicoCartInsert(unsigned char *rom,unsigned int romsize);
\r
void Byteswap(unsigned char *data,int len);
\r
int PicoCartLoad(pm_file *f,unsigned char **prom,unsigned int *psize);
\r
int PicoCartInsert(unsigned char *rom,unsigned int romsize);
\r
void Byteswap(unsigned char *data,int len);
\r
-
int
PicoCartUnload(void);
\r
+
void
PicoCartUnload(void);
\r
extern void (*PicoCartLoadProgressCB)(int percent);
\r
extern void (*PicoCDLoadProgressCB)(int percent);
\r
\r
extern void (*PicoCartLoadProgressCB)(int percent);
\r
extern void (*PicoCDLoadProgressCB)(int percent);
\r
\r
@@
-138,6
+154,8
@@
void PicoDrawSetColorFormat(int which); // 0=BGR444, 1=RGB555, 2=8bit(HighPal pa
extern void *DrawLineDest;
\r
#if OVERRIDE_HIGHCOL
\r
extern unsigned char *HighCol;
\r
extern void *DrawLineDest;
\r
#if OVERRIDE_HIGHCOL
\r
extern unsigned char *HighCol;
\r
+#else
\r
+extern unsigned char HighCol[8+320+8];
\r
#endif
\r
extern int (*PicoScanBegin)(unsigned int num);
\r
extern int (*PicoScanEnd)(unsigned int num);
\r
#endif
\r
extern int (*PicoScanBegin)(unsigned int num);
\r
extern int (*PicoScanEnd)(unsigned int num);
\r
@@
-145,16
+163,21
@@
extern int (*PicoScanEnd)(unsigned int num);
#ifdef _ASM_DRAW_C
\r
void vidConvCpyRGB565(void *to, void *from, int pixels);
\r
#endif
\r
#ifdef _ASM_DRAW_C
\r
void vidConvCpyRGB565(void *to, void *from, int pixels);
\r
#endif
\r
+void PicoDoHighPal555(int sh);
\r
+extern int PicoDrawMask;
\r
+#define PDRAW_LAYERB_ON (1<<2)
\r
+#define PDRAW_LAYERA_ON (1<<3)
\r
+#define PDRAW_SPRITES_LOW_ON (1<<4)
\r
+#define PDRAW_SPRITES_HI_ON (1<<7)
\r
// internals
\r
// internals
\r
-#define PDRAW_SPRITES_MOVED (1<<0)
\r
+#define PDRAW_SPRITES_MOVED (1<<0)
// (asm)
\r
#define PDRAW_WND_DIFF_PRIO (1<<1) // not all window tiles use same priority
\r
#define PDRAW_ACC_SPRITES (1<<2) // accurate sprites (copied from PicoOpt)
\r
#define PDRAW_WND_DIFF_PRIO (1<<1) // not all window tiles use same priority
\r
#define PDRAW_ACC_SPRITES (1<<2) // accurate sprites (copied from PicoOpt)
\r
-#define PDRAW_INTERLACE (1<<3)
//
\r
-#define PDRAW_DIRTY_SPRITES (1<<4)
\r
+#define PDRAW_INTERLACE (1<<3)
\r
+#define PDRAW_DIRTY_SPRITES (1<<4)
// (asm)
\r
#define PDRAW_SONIC_MODE (1<<5) // mid-frame palette changes for 8bit renderer
\r
#define PDRAW_PLANE_HI_PRIO (1<<6) // have layer with all hi prio tiles (mk3)
\r
#define PDRAW_SHHI_DONE (1<<7) // layer sh/hi already processed
\r
#define PDRAW_SONIC_MODE (1<<5) // mid-frame palette changes for 8bit renderer
\r
#define PDRAW_PLANE_HI_PRIO (1<<6) // have layer with all hi prio tiles (mk3)
\r
#define PDRAW_SHHI_DONE (1<<7) // layer sh/hi already processed
\r
-#define PDRAW_EARLY_BLANK (1<<8) // blanking enabled at the start of prev line
\r
extern int rendstatus;
\r
extern unsigned short HighPal[0x100];
\r
\r
extern int rendstatus;
\r
extern unsigned short HighPal[0x100];
\r
\r