initial fce ultra 0.81 import
[fceu.git] / fce.h
1 #ifndef _FCEH
2 extern int GameLoaded;
3 void ResetGameLoaded(void);
4
5 #define DECLFR(x) uint8 FP_FASTAPASS(1) x (uint32 A)
6 #define DECLFW(x) void FP_FASTAPASS(2) x (uint32 A, uint8 V)
7
8 void FASTAPASS(3) SetReadHandler(int32 start, int32 end, readfunc func);
9 void FASTAPASS(3) SetWriteHandler(int32 start, int32 end, writefunc func);
10 writefunc FASTAPASS(1) GetWriteHandler(int32 a);
11 readfunc FASTAPASS(1) GetReadHandler(int32 a);
12
13 int AllocGenieRW(void);
14 void FlushGenieRW(void);
15
16 void FCEU_ResetVidSys(void);
17
18 void ResetMapping(void);
19 void ResetNES(void);
20 void PowerNES(void);
21
22
23 extern uint64 timestampbase;
24 extern uint32 MMC5HackVROMMask;
25 extern uint8 *MMC5HackExNTARAMPtr;
26 extern int MMC5Hack;
27 extern uint8 *MMC5HackVROMPTR;
28 extern uint8 MMC5HackCHRMode;
29 extern uint8 MMC5HackSPMode;
30 extern uint8 MMC5HackSPScroll;
31 extern uint8 MMC5HackSPPage;
32
33 extern uint8 RAM[0x800],SPRAM[0x100],NTARAM[0x800],PALRAM[0x20],SPRAM[0x100],SPRBUF[0x100];
34 extern uint8 GameMemBlock[131072];
35
36 extern uint32 RefreshAddr,TempAddr;
37 extern uint8 vtoggle,XOffset,VRAMBuffer,PPUGenLatch;
38 extern uint8 PPU[4];
39
40 extern int scanline;
41 extern uint8 *vnapage[4];
42
43 extern uint8 PPUNTARAM;
44 extern uint8 PPUCHRRAM;
45 extern uint8 VPAL[8];
46 extern uint8 PAL;
47
48 extern readfunc ARead[0x10000];
49 extern writefunc BWrite[0x10000];
50
51 #define VBlankON        (PPU[0]&0x80)   /* Generate VBlank NMI */
52 #define SpHitON         (PPU[0]&0x40)   
53 #define Sprite16        (PPU[0]&0x20)   /* Sprites 8x16/8x8        */
54 #define BGAdrHI         (PPU[0]&0x10)   /* BG pattern adr $0000/$1000 */
55 #define SpAdrHI         (PPU[0]&0x08)   /* Sprite pattern adr $0000/$1000 */
56 #define INC32           (PPU[0]&0x04)   /* auto increment 1/32  */
57 #define NameTable       (PPU[0]&0x3)    /* name table $2000/$2400/$2800/$2C00 */
58
59 #define SpriteON        (PPU[1]&0x10)   /* Show Sprite             */
60 #define ScreenON        (PPU[1]&0x08)   /* Show screen             */
61 #define PPU_status      (PPU[2])
62
63
64 extern void (*GameInterface)(int h);
65 extern void FP_FASTAPASS(1) (*PPU_hook)(uint32 A);
66 extern void (*GameHBIRQHook)(void);
67 extern void (*GameStateRestore)(int version);
68
69 #define GI_RESETM2      1
70 #define GI_POWER        2
71 #define GI_CLOSE        3
72
73 #include "git.h"
74 extern FCEUGI FCEUGameInfo;
75 extern int GameAttributes;
76
77
78 #endif
79
80 #define _FCEH
81