X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fjaguar.h;h=4d33afc34b6b5594132c424901a1c343a7a61fc5;hb=09b508a759ca512da810722a0d4786dd1695d47c;hp=f6a6aec5fdf8a90ef0fe751059c452c2a52a43c4;hpb=f3e5bb2807319c210d124d6150e019130c54867b;p=virtualjaguar diff --git a/src/jaguar.h b/src/jaguar.h index f6a6aec..4d33afc 100644 --- a/src/jaguar.h +++ b/src/jaguar.h @@ -2,10 +2,13 @@ #define __JAGUAR_H__ #include "types.h" +#include "memory.h" // For "UNKNOWN" enum -void jaguar_init(void); -void jaguar_reset(void); -void jaguar_done(void); +void JaguarSetScreenBuffer(uint32 * buffer); +void JaguarSetScreenPitch(uint32 pitch); +void JaguarInit(void); +void JaguarReset(void); +void JaguarDone(void); uint8 JaguarReadByte(uint32 offset, uint32 who = UNKNOWN); uint16 JaguarReadWord(uint32 offset, uint32 who = UNKNOWN); @@ -14,8 +17,8 @@ void JaguarWriteByte(uint32 offset, uint8 data, uint32 who = UNKNOWN); void JaguarWriteWord(uint32 offset, uint16 data, uint32 who = UNKNOWN); void JaguarWriteLong(uint32 offset, uint32 data, uint32 who = UNKNOWN); -uint32 jaguar_interrupt_handler_is_valid(uint32 i); -void jaguar_dasm(uint32 offset, uint32 qt); +bool JaguarInterruptHandlerIsValid(uint32 i); +void JaguarDasm(uint32 offset, uint32 qt); void JaguarExecute(uint32 * backbuffer, bool render); //For testing the new system... @@ -23,33 +26,10 @@ void JaguarExecuteNew(void); // Exports from JAGUAR.CPP -extern uint8 * jaguar_mainRam; -extern uint8 * jaguar_mainRom; -extern uint8 * jaguar_bootRom; -extern uint8 * jaguar_CDBootROM; -extern bool BIOSLoaded; -extern bool CDBIOSLoaded; -extern int32 jaguar_cpu_in_exec; -extern uint32 jaguar_mainRom_crc32, jaguarRomSize, jaguarRunAddress; -extern char * jaguar_eeproms_path; -extern const char * whoName[9]; - -// Some handy macros to help converting native endian to big endian (jaguar native) -// & vice versa - -#define SET64(r, a, v) r[(a)] = ((v) & 0xFF00000000000000) >> 56, r[(a)+1] = ((v) & 0x00FF000000000000) >> 48, \ - r[(a)+2] = ((v) & 0x0000FF0000000000) >> 40, r[(a)+3] = ((v) & 0x000000FF00000000) >> 32, \ - r[(a)+4] = ((v) & 0xFF000000) >> 24, r[(a)+5] = ((v) & 0x00FF0000) >> 16, \ - r[(a)+6] = ((v) & 0x0000FF00) >> 8, r[(a)+7] = (v) & 0x000000FF -#define GET64(r, a) (((uint64)r[(a)] << 56) | ((uint64)r[(a)+1] << 48) | \ - ((uint64)r[(a)+2] << 40) | ((uint64)r[(a)+3] << 32) | \ - ((uint64)r[(a)+4] << 24) | ((uint64)r[(a)+5] << 16) | \ - ((uint64)r[(a)+6] << 8) | (uint64)r[(a)+7]) -#define SET32(r, a, v) r[(a)] = ((v) & 0xFF000000) >> 24, r[(a)+1] = ((v) & 0x00FF0000) >> 16, \ - r[(a)+2] = ((v) & 0x0000FF00) >> 8, r[(a)+3] = (v) & 0x000000FF -#define GET32(r, a) ((r[(a)] << 24) | (r[(a)+1] << 16) | (r[(a)+2] << 8) | r[(a)+3]) -#define SET16(r, a, v) r[(a)] = ((v) & 0xFF00) >> 8, r[(a)+1] = (v) & 0xFF -#define GET16(r, a) ((r[(a)] << 8) | r[(a)+1]) +extern int32 jaguarCPUInExec; +extern uint32 jaguarMainROMCRC32, jaguarROMSize, jaguarRunAddress; +extern char * jaguarEepromsPath; +extern bool jaguarCartInserted; // Various clock rates @@ -63,6 +43,12 @@ extern const char * whoName[9]; #define ASSERT_LINE 1 #define CLEAR_LINE 0 +// Video stuff (should go in tom.h?) + +#define VIRTUAL_SCREEN_WIDTH 320 +#define VIRTUAL_SCREEN_HEIGHT_NTSC 240 +#define VIRTUAL_SCREEN_HEIGHT_PAL 256 + //Temp debug stuff (will go away soon, so don't depend on these) void DumpMainMemory(void);