123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /*===================================================================*/
- /* nes_core.h : nes simulator provides this */
- /*===================================================================*/
- #ifndef NES_CORE_H_INCLUDED
- #define NES_CORE_H_INCLUDED
- /* NES display size */
- #define NES_DISP_WIDTH 256
- #define NES_DISP_HEIGHT 240
- typedef char (*NesVipInit)(void);
- typedef void (*NesVipUninit)(void);
- typedef void (*NesVipOutput)(unsigned long *workframe);
- typedef void (*NesAudioInit)(void);
- typedef void (*NesAudioOutput)(short *Audiobuf, unsigned int buff_size);
- typedef void (*NesAudioUninit)(void);
- typedef enum
- {
- NES_DISP_FLIP_TYPE_NO_FLIP = 0,
- NES_DISP_FLIP_TYPE_ONLY_V,
- NES_DISP_FLIP_TYPE_ONLY_H,
- NES_DISP_FLIP_TYPE_BOTH_H_V,
- } NesFlip_type;
- typedef enum
- {
- NES_CORE_START_SUCCESS = 0,
- NES_CORE_START_INVILD_PARAM = -1,
- NES_CORE_START_INVILD_PLATFORM = -2,
- NES_CORE_START_INIT_ERROR = -3,
- }NesCoreStartReturns;
- typedef struct
- {
- /* Video related fop */
- NesVipInit fop_VipInit;
- NesVipOutput fop_VipOutput;
- NesVipUninit fop_VipUnInit;
- /* Audio related fop */
- NesAudioInit fop_AudioInit;
- NesAudioOutput fop_AudioOutput;
- NesAudioUninit fop_AudioUnInit;
- /* For Panel flip type attribute */
- NesFlip_type Flip_Type;
- } NesConfig_t;
- /* Joystick events */
- typedef enum
- {
- EVENT_JOYPAD_MIN = 0,
- ADD_EVENT_JOYPAD_UP,
- ADD_EVENT_JOYPAD_DOWN,
- ADD_EVENT_JOYPAD_LEFT,
- ADD_EVENT_JOYPAD_RIGHT,
- ADD_EVENT_JOYPAD_SELECT,
- ADD_EVENT_JOYPAD_START,
- ADD_EVENT_JOYPAD_1,
- ADD_EVENT_JOYPAD_2,
- ADD_EVENT_JOYPAD_3,
- ADD_EVENT_JOYPAD_4,
- ADD_EVENT_JOYPAD_L1,
- ADD_EVENT_JOYPAD_L2,
- ADD_EVENT_JOYPAD_R1,
- ADD_EVENT_JOYPAD_R2,
- REMOVE_EVENT_JOYPAD_UP,
- REMOVE_EVENT_JOYPAD_DOWN,
- REMOVE_EVENT_JOYPAD_LEFT,
- REMOVE_EVENT_JOYPAD_RIGHT,
- REMOVE_EVENT_JOYPAD_SELECT,
- REMOVE_EVENT_JOYPAD_START,
- REMOVE_EVENT_JOYPAD_1,
- REMOVE_EVENT_JOYPAD_2,
- REMOVE_EVENT_JOYPAD_3,
- REMOVE_EVENT_JOYPAD_4,
- REMOVE_EVENT_JOYPAD_L1,
- REMOVE_EVENT_JOYPAD_L2,
- REMOVE_EVENT_JOYPAD_R1,
- REMOVE_EVENT_JOYPAD_R2,
-
- EVENT_JOYPAD_MAX,
- } Control_Key;
- /* Joystick ID */
- typedef enum
- {
- JOYPAD_A = 0,
- JOYPAD_B,
- JOYPAD_MAX,
- } JoyPadNum;
- int Nes_Start_Game(char *filename, NesConfig_t *pstConfig);
- void Nes_Exit_Game(void);
- void Nes_Excute_Key(Control_Key event, JoyPadNum joypadNum);
- void Nes_Set_AuidoSamplesPerSync(unsigned int samples);
- #endif /* NES_GAME_H_INCLUDED */
|