1/*****************************************************************************\
2 Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
3 This file is licensed under the Snes9x License.
4 For further information, consult the LICENSE file in the root directory.
5\*****************************************************************************/
6
7#ifndef _FXEMU_H_
8#define _FXEMU_H_
9
10#define FX_BREAKPOINT (-1)
11#define FX_ERROR_ILLEGAL_ADDRESS (-2)
12
13// The FxInfo_s structure, the link between the FxEmulator and the Snes Emulator
14struct FxInfo_s
15{
16 uint32 vFlags;
17 uint8 *pvRegisters; // 768 bytes located in the memory at address 0x3000
18 uint32 nRamBanks; // Number of 64kb-banks in GSU-RAM/BackupRAM (banks 0x70-0x73)
19 uint8 *pvRam; // Pointer to GSU-RAM
20 uint32 nRomBanks; // Number of 32kb-banks in Cart-ROM
21 uint8 *pvRom; // Pointer to Cart-ROM
22 uint32 speedPerLine;
23 bool8 oneLineDone;
24};
25
26extern struct FxInfo_s SuperFX;
27
28void S9xInitSuperFX (void);
29void S9xResetSuperFX (void);
30void S9xSuperFXExec (void);
31void S9xSetSuperFX (uint8, uint16);
32uint8 S9xGetSuperFX (uint16);
33void fx_flushCache (void);
34void fx_computeScreenPointers (void);
35uint32 fx_run (uint32);
36
37#endif
38