X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fpico.h;h=033ed6f581da26cc22094871e8ff52d51196d052;hb=9bb5d91c48b50da466aa553db65c9f9b2a0b1e8d;hp=c6b118c6bd177959bbf7531580155a9bb488a970;hpb=3e49ffd0bf13f3a889cfb5196c2a61962dff6d0b;p=picodrive.git diff --git a/pico/pico.h b/pico/pico.h index c6b118c6..033ed6f 100644 --- a/pico/pico.h +++ b/pico/pico.h @@ -4,7 +4,7 @@ // Pico Library - Header File // (c) Copyright 2004 Dave, All rights reserved. -// (c) Copyright 2006-2008 notaz, All rights reserved. +// (c) Copyright 2006-2009 notaz, All rights reserved. // Free for non-commercial use. // For commercial use, separate licencing terms must be obtained. @@ -28,9 +28,24 @@ extern void mp3_update(int *buffer, int length, int stereo); // this function should write-back d-cache and invalidate i-cache // on a mem region [start_addr, end_addr) -// used by SVP dynarec +// used by dynarecs extern void cache_flush_d_inval_i(const void *start_addr, const void *end_addr); +// attempt to alloc mem at specified address. +// alloc anywhere else if that fails (callers should handle that) +extern void *plat_mmap(unsigned long addr, size_t size); +extern void plat_munmap(void *ptr, size_t size); + +// this one should handle display mode changes +extern void emu_video_mode_change(int start_line, int line_count, int is_32cols); + +// this must switch to 16bpp mode +extern void emu_32x_startup(void); + +// optional 32X BIOS, should be left NULL if not used +// must be 256, 2048, 1024 bytes +extern void *p32x_bios_g, *p32x_bios_m, *p32x_bios_s; + // Pico.c #define POPT_EN_FM (1<< 0) // 00 000x #define POPT_EN_PSG (1<< 1) @@ -52,14 +67,16 @@ extern void cache_flush_d_inval_i(const void *start_addr, const void *end_addr); #define POPT_EN_SVP_DRC (1<<17) #define POPT_DIS_SPRITE_LIM (1<<18) #define POPT_DIS_IDLE_DET (1<<19) +#define POPT_EN_32X (1<<20) +#define POPT_EN_PWM (1<<21) extern int PicoOpt; // bitfield + #define PAHW_MCD (1<<0) #define PAHW_32X (1<<1) #define PAHW_SVP (1<<2) #define PAHW_PICO (1<<3) #define PAHW_SMS (1<<4) extern int PicoAHW; // Pico active hw -extern int PicoVer; extern int PicoSkipFrame; // skip rendering frame, but still do sound (if enabled) and emulation stuff extern int PicoRegionOverride; // override the region detection 0: auto, 1: Japan NTSC, 2: Japan PAL, 4: US, 8: Europe extern int PicoAutoRgnOrder; // packed priority list of regions, for example 0x148 means this detection order: EUR, USA, JAP @@ -68,6 +85,7 @@ void PicoInit(void); void PicoExit(void); void PicoPower(void); int PicoReset(void); +void PicoLoopPrepare(void); void PicoFrame(void); void PicoFrameDrawOnly(void); extern int PicoPad[2]; // Joypads, format is MXYZ SACB RLDU @@ -129,14 +147,14 @@ typedef struct void *param; /* additional file related field */ unsigned int size; /* size */ pm_type type; + char ext[4]; } pm_file; pm_file *pm_open(const char *path); size_t pm_read(void *ptr, size_t bytes, pm_file *stream); int pm_seek(pm_file *stream, long offset, int whence); int pm_close(pm_file *fp); int PicoCartLoad(pm_file *f,unsigned char **prom,unsigned int *psize,int is_sms); -int PicoCartInsert(unsigned char *rom,unsigned int romsize); -void Byteswap(unsigned char *data,int len); +int PicoCartInsert(unsigned char *rom, unsigned int romsize, const char *carthw_cfg); void PicoCartUnload(void); extern void (*PicoCartLoadProgressCB)(int percent); extern void (*PicoCDLoadProgressCB)(const char *fname, int percent); @@ -161,6 +179,7 @@ extern int PicoDrawMask; #define PDRAW_LAYERA_ON (1<<3) #define PDRAW_SPRITES_LOW_ON (1<<4) #define PDRAW_SPRITES_HI_ON (1<<7) +#define PDRAW_32X_ON (1<<8) // internals #define PDRAW_SPRITES_MOVED (1<<0) // (asm) #define PDRAW_WND_DIFF_PRIO (1<<1) // not all window tiles use same priority @@ -170,7 +189,9 @@ extern int PicoDrawMask; #define PDRAW_SONIC_MODE (1<<5) // mid-frame palette changes for 8bit renderer #define PDRAW_PLANE_HI_PRIO (1<<6) // have layer with all hi prio tiles (mk3) #define PDRAW_SHHI_DONE (1<<7) // layer sh/hi already processed -extern int rendstatus; +#define PDRAW_32_COLS (1<<8) // 32 column mode +extern int rendstatus, rendstatus_old; +extern int rendlines; extern unsigned short HighPal[0x100]; // Draw2.c