098 video fix, 098 sound integrated
[fceu.git] / fce.h
CommitLineData
c62d2810 1#ifndef _FCEH
92e249b1 2
3#ifdef ASM_6502
4void asmcpu_unpack(void);
5void asmcpu_pack(void);
6#endif
7
d97315ac 8#define fceuindbg 0
9
a384bf44 10extern int use098code;
11
c62d2810 12extern int GameLoaded;
13void 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
18void FASTAPASS(3) SetReadHandler(int32 start, int32 end, readfunc func);
19void FASTAPASS(3) SetWriteHandler(int32 start, int32 end, writefunc func);
20writefunc FASTAPASS(1) GetWriteHandler(int32 a);
21readfunc FASTAPASS(1) GetReadHandler(int32 a);
22
23int AllocGenieRW(void);
24void FlushGenieRW(void);
25
26void FCEU_ResetVidSys(void);
27
28void ResetMapping(void);
6244011f 29
30extern void (*ResetNES)(void);
31extern void (*PowerNES)(void);
32
33void ResetNES081(void);
34void PowerNES081(void);
c62d2810 35
36
37extern uint64 timestampbase;
38extern uint32 MMC5HackVROMMask;
39extern uint8 *MMC5HackExNTARAMPtr;
40extern int MMC5Hack;
41extern uint8 *MMC5HackVROMPTR;
42extern uint8 MMC5HackCHRMode;
43extern uint8 MMC5HackSPMode;
44extern uint8 MMC5HackSPScroll;
45extern uint8 MMC5HackSPPage;
46
c62d2810 47extern uint8 GameMemBlock[131072];
5232c20c 48extern uint8 NTARAM[0x800],PALRAM[0x20];
49
50extern uint8 RAM[0x800];
51
c62d2810 52
53extern uint32 RefreshAddr,TempAddr;
54extern uint8 vtoggle,XOffset,VRAMBuffer,PPUGenLatch;
55extern uint8 PPU[4];
56
57extern int scanline;
58extern uint8 *vnapage[4];
59
60extern uint8 PPUNTARAM;
61extern uint8 PPUCHRRAM;
62extern uint8 VPAL[8];
63extern uint8 PAL;
64
65extern readfunc ARead[0x10000];
66extern writefunc BWrite[0x10000];
67
68#define VBlankON (PPU[0]&0x80) /* Generate VBlank NMI */
92e249b1 69#define SpHitON (PPU[0]&0x40)
c62d2810 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
c4980f9e 81extern void (*GameInterface)(int h, void *param);
c62d2810 82extern void FP_FASTAPASS(1) (*PPU_hook)(uint32 A);
d97315ac 83extern void (*GameHBIRQHook)(void), (*GameHBIRQHook2)(void);
c62d2810 84extern void (*GameStateRestore)(int version);
85
86#define GI_RESETM2 1
87#define GI_POWER 2
88#define GI_CLOSE 3
c4980f9e 89#define GI_INFOSTRING 11
c62d2810 90
91#include "git.h"
92extern FCEUGI FCEUGameInfo;
93extern int GameAttributes;
94
d97315ac 95extern uint8 pale;
96extern uint8 vsdip;
97
c62d2810 98
99#endif
100
101#define _FCEH
102