X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fpico_int.h;h=e50d468a22179d0defdaa5cbda166470de3946b1;hb=acd35d4c08522db8cd6714c95c022be98f0889d7;hp=431c9a627667366f3de96d3ec760000e940fb324;hpb=974fdb5bfda8ed006661031e22c920828ddb60dc;p=picodrive.git diff --git a/pico/pico_int.h b/pico/pico_int.h index 431c9a6..e50d468 100644 --- a/pico/pico_int.h +++ b/pico/pico_int.h @@ -226,6 +226,13 @@ extern unsigned long z80_write_map[0x10000 >> Z80_MEM_SHIFT]; typedef unsigned char (z80_read_f)(unsigned short a); typedef void (z80_write_f)(unsigned int a, unsigned char data); +// ----------------------- SH2 CPU ----------------------- + +#include "cpu/sh2mame/sh2.h" + +SH2 msh2, ssh2; +#define ash2_pc() msh2.ppc + // --------------------------------------------------------- // main oscillator clock which controls timing @@ -259,7 +266,7 @@ struct PicoMisc unsigned short z80_bank68k; // 0a unsigned short pad0; unsigned char pad1; - unsigned char z80_reset; // z80 reset held + unsigned char z80_reset; // 0f z80 reset held unsigned char padDelay[2]; // 10 gamepad phase time outs, so we count a delay unsigned short eeprom_addr; // EEPROM address register unsigned char eeprom_cycle; // EEPROM cycle number @@ -389,15 +396,18 @@ typedef struct #define Pico_mcd ((mcd_state *)Pico.rom) // 32X -#define P32XV_nPAL (1<<15) -#define P32XV_PRI (1<< 7) -#define P32XV_Mx (3<< 0) +#define P32XS_FM (1<<15) +#define P32XS2_ADEN (1<< 9) + +#define P32XV_nPAL (1<<15) +#define P32XV_PRI (1<< 7) +#define P32XV_Mx (3<< 0) -#define P32XV_VBLK (1<<15) -#define P32XV_HBLK (1<<14) -#define P32XV_PEN (1<<13) -#define P32XV_nFEN (1<< 1) -#define P32XV_FS (1<< 0) +#define P32XV_VBLK (1<<15) +#define P32XV_HBLK (1<<14) +#define P32XV_PEN (1<<13) +#define P32XV_nFEN (1<< 1) +#define P32XV_FS (1<< 0) struct Pico32x { @@ -413,6 +423,8 @@ struct Pico32xMem unsigned char sdram[0x40000]; unsigned short dram[2][0x20000/2]; // AKA fb unsigned char m68k_rom[0x10000]; // 0x100; using M68K_BANK_SIZE + unsigned char sh2_rom_m[0x800]; + unsigned char sh2_rom_s[0x400]; unsigned short pal[0x100]; unsigned short pal_native[0x100]; // converted to native (for renderer) }; @@ -471,8 +483,6 @@ void PicoDoHighPal555M4(void); void PicoDrawSetColorFormatMode4(int which); // memory.c -PICO_INTERNAL void PicoInitPc(unsigned int pc); -PICO_INTERNAL unsigned int PicoCheckPc(unsigned int pc); PICO_INTERNAL void PicoMemSetup(void); unsigned int PicoRead8_io(unsigned int a); unsigned int PicoRead16_io(unsigned int a); @@ -484,8 +494,7 @@ PICO_INTERNAL void PicoMemSetupPico(void); // cd/memory.c PICO_INTERNAL void PicoMemSetupCD(void); -PICO_INTERNAL_ASM void PicoMemRemapCD(int r3); -PICO_INTERNAL_ASM void PicoMemResetCDdecode(int r3); +void PicoMemStateLoaded(void); // pico.c extern struct Pico Pico; @@ -611,6 +620,7 @@ void Pico32xInit(void); void PicoPower32x(void); void PicoReset32x(void); void Pico32xStartup(void); +void PicoUnload32x(void); void PicoFrame32x(void); // 32x/memory.c @@ -685,6 +695,12 @@ extern void lprintf(const char *fmt, ...); #define MEMH_FUNC #endif +#ifdef __GNUC__ +#define NOINLINE __attribute__((noinline)) +#else +#define NOINLINE +#endif + #ifdef __cplusplus } // End of extern "C" #endif