X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fpico_int.h;h=4a4418e4f80c68fd5d349d2bb58d64d71fea6f17;hb=87b0845f3733166b491ae236feb8bc2eb0fca2ec;hp=1339c264d76c78fc0a1186a3ac94ca574287ebea;hpb=c8d1e9b66255c00a3bef7ca27ae019e3523d7a4b;p=picodrive.git diff --git a/pico/pico_int.h b/pico/pico_int.h index 1339c26..4a4418e 100644 --- a/pico/pico_int.h +++ b/pico/pico_int.h @@ -272,10 +272,14 @@ struct PicoMisc struct Pico { unsigned char ram[0x10000]; // 0x00000 scratch ram - unsigned short vram[0x8000]; // 0x10000 + union { // vram is byteswapped for easier reads when drawing + unsigned short vram[0x8000]; // 0x10000 + unsigned char vramb[0x4000]; // VRAM in SMS mode + }; unsigned char zram[0x2000]; // 0x20000 Z80 ram unsigned char ioports[0x10]; - unsigned int pad[0x3c]; // unused + unsigned char sms_io_ctl; + unsigned char pad[0xef]; // unused unsigned short cram[0x40]; // 0x22100 unsigned short vsram[0x40]; // 0x22180 @@ -411,6 +415,7 @@ int CM_compareRun(int cyc, int is_sub); // draw.c PICO_INTERNAL void PicoFrameStart(void); void PicoDrawSync(int to, int blank_last_line); +void BackFill(int reg7, int sh); extern int DrawScanline; #define MAX_LINE_SPRITES 29 extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES]; @@ -418,6 +423,12 @@ extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES]; // draw2.c PICO_INTERNAL void PicoFrameFull(); +// mode4.c +void PicoFrameStartMode4(void); +void PicoLineMode4(int line); +void PicoDoHighPal555M4(void); +void PicoDrawSetColorFormatMode4(int which); + // memory.c PICO_INTERNAL void PicoInitPc(unsigned int pc); PICO_INTERNAL unsigned int PicoCheckPc(unsigned int pc); @@ -427,6 +438,7 @@ PICO_INTERNAL_ASM void PicoMemReset(void); PICO_INTERNAL void PicoMemResetHooks(void); PICO_INTERNAL int PadRead(int i); PICO_INTERNAL int ym2612_write_local(unsigned int a, unsigned int d, int is_from_z80); +void z80_mem_setup(void); extern unsigned int (*PicoRead16Hook)(unsigned int a, int realsize); extern void (*PicoWrite8Hook) (unsigned int a,unsigned int d,int realsize); extern void (*PicoWrite16Hook)(unsigned int a,unsigned int d,int realsize); @@ -548,8 +560,16 @@ PICO_INTERNAL void PsndReset(void); PICO_INTERNAL void PsndDoDAC(int line_to); PICO_INTERNAL void PsndClear(void); PICO_INTERNAL void PsndGetSamples(int y); +PICO_INTERNAL void PsndGetSamplesMS(void); extern int PsndDacLine; +// sms.c +void PicoPowerMS(void); +void PicoResetMS(void); +void PicoMemSetupMS(void); +void PicoFrameMS(void); +void PicoFrameDrawOnlyMS(void); + // emulation event logging #ifndef EL_LOGMASK #define EL_LOGMASK 0 @@ -595,7 +615,7 @@ extern void lprintf(const char *fmt, ...); #define cdprintf(x...) #endif -#if defined(__GNUC__) && !defined(ARM) +#if defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 #define MEMH_FUNC __attribute__((aligned(4))) #else #define MEMH_FUNC