snes9x2005/source/fxemu.h

35 lines
1.0 KiB
C

#include "../copyright"
#ifndef _FXEMU_H_
#define _FXEMU_H_ 1
#include "snes9x.h"
/* The FxInfo_s structure, the link between the FxEmulator and the Snes Emulator */
typedef struct
{
uint8_t* pvRegisters; /* 768 bytes located in the memory at address 0x3000 */
uint32_t nRamBanks; /* Number of 64kb-banks in GSU-RAM/BackupRAM (banks 0x70-0x73) */
uint8_t* pvRam; /* Pointer to GSU-RAM */
uint32_t nRomBanks; /* Number of 32kb-banks in Cart-ROM */
uint8_t* pvRom; /* Pointer to Cart-ROM */
} FxInit_s;
/* Reset the FxChip */
extern void FxReset(FxInit_s* psFxInfo);
/* Execute until the next stop instruction */
extern int32_t FxEmulate(uint32_t nInstructions);
/* Write access to the cache */
extern void FxFlushCache(void); /* Called when the G flag in SFR is set to zero */
/* SCBR write seen. We need to update our cached screen pointers */
extern void fx_dirtySCBR(void);
/* Update RamBankReg and RAM Bank pointer */
extern void fx_updateRamBank(uint8_t Byte);
extern void fx_computeScreenPointers(void);
#endif