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 " C64 Emulator " 13 #define ROMSDIR "c64" 14 15 #define emu_Init(ROM) {c64_Start(ROM); c64_Init(); } 16 #define emu_Step(x) { c64_Step(); } 17 #define emu_Input(x) { c64_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 #endif