#ifndef _FCEUSUPPORT_H_ #define _FCEUSUPPORT_H_ extern unsigned char * nesrom; #include #include #include #include #include #include "driver.h" #include "fceu.h" #include "input.h" #include "types.h" #include "state.h" #include "ppu.h" #include "cart.h" #include "x6502.h" #include "git.h" #include "palette.h" #include "sound.h" #include "file.h" #include "cheat.h" extern int FDSLoad(const char *name, FCEUFILE *fp); extern int iNESLoad(const char *name, FCEUFILE *fp, int o); extern int UNIFLoad(const char *name, FCEUFILE *fp); extern int NSFLoad(FCEUFILE *fp); extern uint8 FDSBIOS[8192]; extern FCEUGI *GameInfo; extern int CloseGame(); extern void PowerNES(void); extern u32 iNESGameCRC32; extern CartInfo iNESCart; extern CartInfo UNIFCart; extern INPUTC *FCEU_InitZapper(int w); extern void FCEU_ResetPalette(void); /*** External functions ***/ extern void FCEUPPU_SaveState(void); extern void FCEUSND_SaveState(void); extern void FCEUPPU_LoadState(int version); extern void FCEUSND_LoadState(int version); extern void FlipByteOrder(uint8 *src, uint32 count); extern void (*GameStateRestore)(int version); /*** External save structures ***/ extern SFORMAT SFCPU[]; extern SFORMAT SFCPUC[]; extern SFORMAT FCEUPPU_STATEINFO[]; extern SFORMAT FCEUCTRL_STATEINFO[]; extern SFORMAT FCEUSND_STATEINFO[]; extern SFORMAT SFMDATA[64]; extern u32 iNESGameCRC32; extern int eoptions; #define EO_NO8LIM 1 #define EO_SUBASE 2 #define EO_CLIPSIDES 8 #define EO_SNAPNAME 16 #define EO_FOURSCORE 32 #define EO_NOTHROTTLE 64 #define EO_GAMEGENIE 128 #define EO_PAL 256 #define EO_LOWPASS 512 #define EO_AUTOHIDE 1024 extern int NoWaiting; extern int _sound; extern long soundrate; extern long soundbufsize; int CLImain(int argc, char *argv[]); // Device management defaults #define NUM_INPUT_DEVICES 3 // GamePad defaults #define GAMEPAD_NUM_DEVICES 4 #define GAMEPAD_NUM_BUTTONS 10 extern const char *GamePadNames[GAMEPAD_NUM_BUTTONS]; extern const char *DefaultGamePadDevice[GAMEPAD_NUM_DEVICES]; extern const int DefaultGamePad[GAMEPAD_NUM_DEVICES][GAMEPAD_NUM_BUTTONS]; // PowerPad defaults #define POWERPAD_NUM_DEVICES 2 #define POWERPAD_NUM_BUTTONS 12 extern const char *PowerPadNames[POWERPAD_NUM_BUTTONS]; extern const char *DefaultPowerPadDevice[POWERPAD_NUM_DEVICES]; extern const int DefaultPowerPad[POWERPAD_NUM_DEVICES][POWERPAD_NUM_BUTTONS]; // QuizKing defaults #define QUIZKING_NUM_BUTTONS 6 extern const char *QuizKingNames[QUIZKING_NUM_BUTTONS]; extern const char *DefaultQuizKingDevice; extern const int DefaultQuizKing[QUIZKING_NUM_BUTTONS]; // HyperShot defaults #define HYPERSHOT_NUM_BUTTONS 4 extern const char *HyperShotNames[HYPERSHOT_NUM_BUTTONS]; extern const char *DefaultHyperShotDevice; extern const int DefaultHyperShot[HYPERSHOT_NUM_BUTTONS]; // Mahjong defaults #define MAHJONG_NUM_BUTTONS 21 extern const char *MahjongNames[MAHJONG_NUM_BUTTONS]; extern const char *DefaultMahjongDevice; extern const int DefaultMahjong[MAHJONG_NUM_BUTTONS]; // TopRider defaults #define TOPRIDER_NUM_BUTTONS 8 extern const char *TopRiderNames[TOPRIDER_NUM_BUTTONS]; extern const char *DefaultTopRiderDevice; extern const int DefaultTopRider[TOPRIDER_NUM_BUTTONS]; // FTrainer defaults #define FTRAINER_NUM_BUTTONS 12 extern const char *FTrainerNames[FTRAINER_NUM_BUTTONS]; extern const char *DefaultFTrainerDevice; extern const int DefaultFTrainer[FTRAINER_NUM_BUTTONS]; // FamilyKeyBoard defaults #define FAMILYKEYBOARD_NUM_BUTTONS 0x48 extern const char *FamilyKeyBoardNames[FAMILYKEYBOARD_NUM_BUTTONS]; extern const char *DefaultFamilyKeyBoardDevice; extern const int DefaultFamilyKeyBoard[FAMILYKEYBOARD_NUM_BUTTONS]; #endif