X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fpico_int.h;h=b5f4a95c7b4d069abf18eb50239776a26f67871a;hb=19954be1966a04304b16d9180b003ec8ca3bc532;hp=45955ad2456a0e7ac5e2e724e1b70953dea89c08;hpb=3e49ffd0bf13f3a889cfb5196c2a61962dff6d0b;p=picodrive.git diff --git a/pico/pico_int.h b/pico/pico_int.h index 45955ad..b5f4a95 100644 --- a/pico/pico_int.h +++ b/pico/pico_int.h @@ -186,6 +186,7 @@ extern struct DrZ80 drZ80; #define z80_int() drZ80.Z80_IRQ = 1 #define z80_cyclesLeft drZ80.cycles +#define z80_pc() (drZ80.Z80PC - drZ80.Z80PC_BASE) #elif defined(_USE_CZ80) #include "../cpu/cz80/cz80.h" @@ -195,6 +196,7 @@ extern struct DrZ80 drZ80; #define z80_int() Cz80_Set_IRQ(&CZ80, 0, HOLD_LINE) #define z80_cyclesLeft (CZ80.ICount - CZ80.ExtraCycles) +#define z80_pc() Cz80_Get_Reg(&CZ80, CZ80_PC) #else @@ -272,10 +274,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 +417,8 @@ 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); +void FinalizeLineRGB555(int sh); extern int DrawScanline; #define MAX_LINE_SPRITES 29 extern unsigned char HighLnSpr[240][3 + MAX_LINE_SPRITES]; @@ -418,6 +426,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); @@ -549,12 +563,15 @@ 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