+#ifndef _CART_H
+#define _CART_H
+
+typedef struct {
+ /* Set by mapper/board code: */
+ void (*Power)(void);
+ void (*Reset)(void);
+ void (*Close)(void);
+ uint8 *SaveGame[4]; /* Pointers to memory to save/load. */
+ uint32 SaveGameLen[4]; /* How much memory to save/load. */
+
+ /* Set by iNES/UNIF loading code. */
+ int mirror; /* As set in the header or chunk.
+ iNES/UNIF specific. Intended
+ to help support games like "Karnov"
+ that are not really MMC3 but are
+ set to mapper 4.
+ */
+ int battery; /* Presence of an actual battery. */
+ uint8 MD5[16];
+ uint32 CRC32; /* Should be set by the iNES/UNIF loading
+ code, used by mapper/board code, maybe
+ other code in the future.
+ */
+} CartInfo;
+
+void FCEU_SaveGameSave(CartInfo *LocalHWInfo);
+void FCEU_LoadGameSave(CartInfo *LocalHWInfo);
+
extern uint8 *Page[32],*VPage[8],*MMC5SPRVPage[8],*MMC5BGVPage[8];
void ResetCartMapping(void);
void SetupCartCHRMapping(int chip, uint8 *p, uint32 size, int ram);
void SetupCartMirroring(int m, int hard, uint8 *extra);
+DECLFR(CartBROB);
DECLFR(CartBR);
+DECLFW(CartBW);
extern uint8 *PRGptr[32];
extern uint8 *CHRptr[32];
void FASTAPASS(2) setchr1(unsigned int A, unsigned int V);
void FASTAPASS(2) setchr2(unsigned int A, unsigned int V);
void FASTAPASS(2) setchr4(unsigned int A, unsigned int V);
-void FASTAPASS(2) setchr8(unsigned int V);
+void FASTAPASS(1) setchr8(unsigned int V);
void FASTAPASS(2) setvram4(uint32 A, uint8 *p);
void FASTAPASS(1) setvram8(uint8 *p);
void OpenGenie(void);
void CloseGenie(void);
+void FCEU_KillGenie(void);
+void GenieSetPages(int restore);
+
+#endif // ndef _CART_H
+