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