67 lines
2.0 KiB
C
67 lines
2.0 KiB
C
#include <stdint.h>
|
|
|
|
#ifndef FASTCALL
|
|
#undef __fastcall
|
|
#define __fastcall
|
|
#endif
|
|
|
|
typedef unsigned char (__fastcall *pSh2ReadByteHandler)(unsigned int a);
|
|
typedef void (__fastcall *pSh2WriteByteHandler)(unsigned int a, unsigned char d);
|
|
typedef unsigned short (__fastcall *pSh2ReadWordHandler)(unsigned int a);
|
|
typedef void (__fastcall *pSh2WriteWordHandler)(unsigned int a, unsigned short d);
|
|
typedef unsigned int (__fastcall *pSh2ReadLongHandler)(unsigned int a);
|
|
typedef void (__fastcall *pSh2WriteLongHandler)(unsigned int a, unsigned int d);
|
|
|
|
extern int has_sh2;
|
|
extern INT32 cps3speedhack;
|
|
|
|
void __fastcall Sh2WriteByte(unsigned int a, unsigned char d);
|
|
unsigned char __fastcall Sh2ReadByte(unsigned int a);
|
|
|
|
int Sh2Init(int nCount);
|
|
void Sh2Exit();
|
|
|
|
void Sh2Open(const int i);
|
|
void Sh2Close();
|
|
int Sh2GetActive();
|
|
|
|
void Sh2Reset();
|
|
void Sh2Reset(unsigned int pc, unsigned r15); // hack
|
|
int Sh2Run(int cycles);
|
|
|
|
int Sh2MapMemory(unsigned char* pMemory, unsigned int nStart, unsigned int nEnd, int nType);
|
|
int Sh2MapHandler(uintptr_t nHandler, unsigned int nStart, unsigned int nEnd, int nType);
|
|
|
|
int Sh2SetReadByteHandler(int i, pSh2ReadByteHandler pHandler);
|
|
int Sh2SetWriteByteHandler(int i, pSh2WriteByteHandler pHandler);
|
|
int Sh2SetReadWordHandler(int i, pSh2ReadWordHandler pHandler);
|
|
int Sh2SetWriteWordHandler(int i, pSh2WriteWordHandler pHandler);
|
|
int Sh2SetReadLongHandler(int i, pSh2ReadLongHandler pHandler);
|
|
int Sh2SetWriteLongHandler(int i, pSh2WriteLongHandler pHandler);
|
|
|
|
void Sh2SetIRQLine(const int line, const int state);
|
|
|
|
unsigned int Sh2GetPC(int n);
|
|
void Sh2StopRun();
|
|
void Sh2SetVBR(unsigned int i);
|
|
|
|
void Sh2BurnUntilInt(int);
|
|
|
|
INT32 Sh2TotalCycles();
|
|
void Sh2NewFrame();
|
|
void Sh2BurnCycles(int cycles);
|
|
void Sh2Idle(int cycles);
|
|
void Sh2SetEatCycles(int i);
|
|
|
|
int Sh2Scan(int);
|
|
|
|
|
|
void Sh2CheatWriteByte(UINT32 a, UINT8 d); // cheat core
|
|
UINT8 Sh2CheatReadByte(UINT32 a);
|
|
|
|
extern struct cpu_core_config Sh2Config;
|
|
|
|
// depreciate this and use BurnTimerAttach directly!
|
|
#define BurnTimerAttachSh2(clock) \
|
|
BurnTimerAttach(&Sh2Config, clock)
|