release r2, update credits
[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
386f5371 18void FCEU_MemoryRand(uint8 *ptr, uint32 size);
c62d2810 19void FASTAPASS(3) SetReadHandler(int32 start, int32 end, readfunc func);
20void FASTAPASS(3) SetWriteHandler(int32 start, int32 end, writefunc func);
21writefunc FASTAPASS(1) GetWriteHandler(int32 a);
22readfunc FASTAPASS(1) GetReadHandler(int32 a);
23
24int AllocGenieRW(void);
25void FlushGenieRW(void);
26
27void FCEU_ResetVidSys(void);
28
29void ResetMapping(void);
6244011f 30
31extern void (*ResetNES)(void);
6244011f 32
33void ResetNES081(void);
642070a9 34void PowerNES(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
386f5371 47#define GAME_MEM_BLOCK_SIZE 131072
48
49extern uint8 GameMemBlock[GAME_MEM_BLOCK_SIZE];
5232c20c 50extern uint8 NTARAM[0x800],PALRAM[0x20];
51
52extern uint8 RAM[0x800];
53
c62d2810 54
55extern uint32 RefreshAddr,TempAddr;
56extern uint8 vtoggle,XOffset,VRAMBuffer,PPUGenLatch;
57extern uint8 PPU[4];
58
59extern int scanline;
60extern uint8 *vnapage[4];
61
62extern uint8 PPUNTARAM;
63extern uint8 PPUCHRRAM;
64extern uint8 VPAL[8];
65extern uint8 PAL;
66
67extern readfunc ARead[0x10000];
68extern writefunc BWrite[0x10000];
69
70#define VBlankON (PPU[0]&0x80) /* Generate VBlank NMI */
92e249b1 71#define SpHitON (PPU[0]&0x40)
c62d2810 72#define Sprite16 (PPU[0]&0x20) /* Sprites 8x16/8x8 */
73#define BGAdrHI (PPU[0]&0x10) /* BG pattern adr $0000/$1000 */
74#define SpAdrHI (PPU[0]&0x08) /* Sprite pattern adr $0000/$1000 */
75#define INC32 (PPU[0]&0x04) /* auto increment 1/32 */
76#define NameTable (PPU[0]&0x3) /* name table $2000/$2400/$2800/$2C00 */
77
78#define SpriteON (PPU[1]&0x10) /* Show Sprite */
79#define ScreenON (PPU[1]&0x08) /* Show screen */
80#define PPU_status (PPU[2])
81
82
c4980f9e 83extern void (*GameInterface)(int h, void *param);
c62d2810 84extern void FP_FASTAPASS(1) (*PPU_hook)(uint32 A);
d97315ac 85extern void (*GameHBIRQHook)(void), (*GameHBIRQHook2)(void);
c62d2810 86extern void (*GameStateRestore)(int version);
87
88#define GI_RESETM2 1
89#define GI_POWER 2
90#define GI_CLOSE 3
386f5371 91#define GI_RESETSAVE 4
c4980f9e 92#define GI_INFOSTRING 11
c62d2810 93
94#include "git.h"
95extern FCEUGI FCEUGameInfo;
386f5371 96extern FCEUGI *GameInfo; // FCEUX compatibility HACK
c62d2810 97extern int GameAttributes;
98
d97315ac 99extern uint8 pale;
100extern uint8 vsdip;
101
c62d2810 102
103#endif
104
105#define _FCEH
106