X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fpico.h;h=667b6c2548df10e5e1c762cd9d8fcae76a2b8bed;hb=bc3aea8e705ec38bdeca7f31fa069c37dd7217d3;hp=1a8b712b22a1c12c79ba5f674ea87a5c7087b0b4;hpb=4c2e35547fd6f849648234989419a4a02d2546b4;p=picodrive.git diff --git a/pico/pico.h b/pico/pico.h index 1a8b712..667b6c2 100644 --- a/pico/pico.h +++ b/pico/pico.h @@ -19,6 +19,9 @@ extern "C" { #endif +// message log +extern void lprintf(const char *fmt, ...); + // external funcs for Sega/Mega CD extern int mp3_get_bitrate(void *f, int size); extern void mp3_start_play(void *f, int pos); @@ -27,13 +30,14 @@ 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 dynarecs -extern void cache_flush_d_inval_i(const void *start_addr, const void *end_addr); +extern void cache_flush_d_inval_i(void *start_addr, 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, int need_exec, int is_fixed); extern void *plat_mremap(void *ptr, size_t oldsize, size_t newsize); extern void plat_munmap(void *ptr, size_t size); +extern int plat_mem_set_exec(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); @@ -208,16 +212,24 @@ extern unsigned short *PicoCramHigh; // pointer to CRAM buff (0x40 shorts), conv extern void (*PicoPrepareCram)(); // prepares PicoCramHigh for renderer to use // pico.c (32x) -// multipliers against 68k clock -extern int p32x_msh2_multiplier; -extern int p32x_ssh2_multiplier; -#define SH2_MULTI_SHIFT 10 -#define MSH2_MULTI_DEFAULT ((1 << SH2_MULTI_SHIFT) * 21 / 10) -#define SSH2_MULTI_DEFAULT ((1 << SH2_MULTI_SHIFT) * 3 / 2) +#ifndef NO_32X + +void Pico32xSetClocks(int msh2_hz, int ssh2_hz); // 32x/draw.c void PicoDraw32xSetFrameMode(int is_on, int only_32x); +#else + +#define Pico32xSetClocks(msh2_khz, ssh2_khz) + +#endif + +// normally 68k clock (7670442) * 3, in reality but much lower +// because of high memory latencies +#define PICO_MSH2_HZ ((int)(7670442.0 * 2.4)) +#define PICO_SSH2_HZ ((int)(7670442.0 * 2.4)) + // sound.c extern int PsndRate,PsndLen; extern short *PsndOut;