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 |
14 | struct 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 | |
26 | extern struct FxInfo_s SuperFX; |
27 | |
28 | void S9xInitSuperFX (void); |
29 | void S9xResetSuperFX (void); |
30 | void S9xSuperFXExec (void); |
31 | void S9xSetSuperFX (uint8, uint16); |
32 | uint8 S9xGetSuperFX (uint16); |
33 | void fx_flushCache (void); |
34 | void fx_computeScreenPointers (void); |
35 | uint32 fx_run (uint32); |
36 | |
37 | #endif |
38 | |