emuapi.h
  1  #ifndef EMUAPI_H
  2  #define EMUAPI_H
  3  
  4  #include "platform_config.h"
  5  
  6  #define CUSTOM_SND  1
  7  //#define TIMER_REND  1
  8  
  9  #define EXTRA_HEAP  0x10
 10  
 11  // Title:     <                        >
 12  #define TITLE "    NES Emulator"
 13  #define ROMSDIR "nes"
 14  
 15  #define emu_Init(ROM) {nes_Start(ROM); nes_Init(); }
 16  #define emu_Step(x) { nes_Step(); }
 17  #define emu_Input(x) {}
 18  
 19  #define PALETTE_SIZE         256
 20  #define VID_FRAME_SKIP       0x0
 21  #define TFT_VBUFFER_YCROP    0
 22  #define SINGLELINE_RENDERING 1
 23  
 24  #define ACTION_NONE          0
 25  #define ACTION_MAXKBDVAL     12
 26  #define ACTION_EXITKBD       128
 27  #define ACTION_RUNTFT        129
 28  #define ACTION_RUNVGA        130
 29  
 30  #ifdef KEYMAP_PRESENT
 31  
 32  #define TAREA_W_DEF          32
 33  #define TAREA_H_DEF          32
 34  #define TAREA_END            255
 35  #define TAREA_NEW_ROW        254
 36  #define TAREA_NEW_COL        253
 37  #define TAREA_XY             252
 38  #define TAREA_WH             251
 39  
 40  #define KEYBOARD_X           104
 41  #define KEYBOARD_Y           78
 42  #define KEYBOARD_KEY_H       30
 43  #define KEYBOARD_KEY_W       21
 44  #define KEYBOARD_HIT_COLOR   RGBVAL16(0xff,0x00,0x00)
 45  
 46  const unsigned short keysw[] = {
 47    TAREA_XY,KEYBOARD_X,KEYBOARD_Y,
 48    TAREA_WH,KEYBOARD_KEY_W,KEYBOARD_KEY_H,
 49    TAREA_NEW_ROW,40,40,
 50    TAREA_END};
 51     
 52  const unsigned short key_map1[] = {
 53    2,3};  
 54     
 55  #ifdef HAS_I2CKBD
 56  const unsigned short i2ckeys[] = {
 57    0X0080,0X0008};
 58  #endif  
 59     
 60  #endif
 61  
 62  
 63  #define MASK_JOY2_RIGHT 0x0001
 64  #define MASK_JOY2_LEFT  0x0002
 65  #define MASK_JOY2_UP    0x0004
 66  #define MASK_JOY2_DOWN  0x0008
 67  #define MASK_JOY2_BTN   0x0010
 68  #define MASK_KEY_USER1  0x0020
 69  #define MASK_KEY_USER2  0x0040
 70  #define MASK_KEY_USER3  0x0080
 71  #define MASK_JOY1_RIGHT 0x0100
 72  #define MASK_JOY1_LEFT  0x0200
 73  #define MASK_JOY1_UP    0x0400
 74  #define MASK_JOY1_DOWN  0x0800
 75  #define MASK_JOY1_BTN   0x1000
 76  #define MASK_KEY_USER4  0x2000
 77  
 78  
 79  
 80  extern void emu_init(void);
 81  extern void emu_start(void);
 82  extern void emu_resetSD(void);
 83  
 84  extern void emu_printf(char * text);
 85  extern void emu_printi(int val);
 86  extern void * emu_Malloc(int size);
 87  extern void emu_Free(void * pt);
 88  
 89  extern int emu_FileOpen(char * filename);
 90  extern int emu_FileRead(char * buf, int size);
 91  extern unsigned char emu_FileGetc(void);
 92  extern int emu_FileSeek(int seek);
 93  extern void emu_FileClose(void);
 94  extern int emu_FileSize(char * filename);
 95  extern int emu_LoadFile(char * filename, char * buf, int size);
 96  extern int emu_LoadFileSeek(char * filename, char * buf, int size, int seek);
 97  extern void emu_FileTempInit(void); 
 98  extern void emu_FileTempRead(int addr, unsigned char * val, int n); 
 99  extern void emu_FileTempWrite(int addr, unsigned char val); 
100  
101  extern void emu_SetPaletteEntry(unsigned char r, unsigned char g, unsigned char b, int index);
102  extern void emu_DrawScreen(unsigned char * VBuf, int width, int height, int stride);
103  extern void emu_DrawLine(unsigned char * VBuf, int width, int height, int line);
104  extern void emu_DrawLine8(unsigned char * VBuf, int width, int height, int line);
105  extern void emu_DrawLine16(unsigned short * VBuf, int width, int height, int line);
106  extern void emu_DrawVsync(void);
107  extern int emu_FrameSkip(void);
108  extern void * emu_LineBuffer(int line);
109  
110  extern void emu_InitJoysticks(void);
111  extern int emu_SwapJoysticks(int statusOnly);
112  extern unsigned short emu_DebounceLocalKeys(void);
113  extern int emu_ReadKeys(void);
114  extern int emu_GetPad(void);
115  extern int emu_ReadAnalogJoyX(int min, int max);
116  extern int emu_ReadAnalogJoyY(int min, int max);
117  extern int emu_ReadI2CKeyboard(void);
118  extern void emu_KeyboardOnUp(int keymodifer, int key);
119  extern void emu_KeyboardOnDown(int keymodifer, int key);
120  
121  extern void emu_sndPlaySound(int chan, int volume, int freq);
122  extern void emu_sndPlayBuzz(int size, int val);
123  extern void emu_sndInit();
124  extern void emu_resetus(void);
125  extern int emu_us(void);
126  
127  extern int emu_setKeymap(int index);
128  
129  extern void emu_FileTempInit(void); 
130  extern void emu_FileTempRead(int addr, unsigned char * val, int n); 
131  extern void emu_FileTempWrite(int addr, unsigned char val); 
132  extern void emu_printh(int val);
133  
134  
135  
136  #endif