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