2 Skelton for retropc emulator
\r
4 Author : Takeda.Toshiya
\r
15 // variable scope of 'for' loop for microsoft visual c++ 6.0 and embedded visual c++ 4.0
\r
16 #if defined(_MSC_VER) && (_MSC_VER == 1200)
\r
17 #define for if(0);else for
\r
20 // disable warnings C4189, C4995 and C4996 for microsoft visual c++ 2005
\r
21 #if defined(_MSC_VER) && (_MSC_VER >= 1400)
\r
22 #pragma warning( disable : 4819 )
\r
23 #pragma warning( disable : 4995 )
\r
24 #pragma warning( disable : 4996 )
\r
29 typedef unsigned char uint8;
\r
32 typedef unsigned short uint16;
\r
35 typedef unsigned int uint32;
\r
39 typedef unsigned __int64 uint64;
\r
41 typedef unsigned long long uint64;
\r
46 typedef signed char int8;
\r
49 typedef signed short int16;
\r
52 typedef signed int int32;
\r
56 typedef signed __int64 int64;
\r
58 typedef signed long long int64;
\r
97 #if defined(_RGB555)
\r
98 #define RGB_COLOR(r, g, b) ((uint16)(((uint16)(r) & 0xf8) << 7) | (uint16)(((uint16)(g) & 0xf8) << 2) | (uint16)(((uint16)(b) & 0xf8) >> 3))
\r
99 typedef uint16 scrntype;
\r
100 #elif defined(_RGB565)
\r
101 #define RGB_COLOR(r, g, b) ((uint16)(((uint16)(r) & 0xf8) << 8) | (uint16)(((uint16)(g) & 0xfc) << 3) | (uint16)(((uint16)(b) & 0xf8) >> 3))
\r
102 typedef uint16 scrntype;
\r
103 #elif defined(_RGB888)
\r
104 #define RGB_COLOR(r, g, b) (((uint32)(r) << 16) | ((uint32)(g) << 8) | ((uint32)(b) << 0))
\r
105 typedef uint32 scrntype;
\r
109 bool check_file_extension(_TCHAR* file_path, _TCHAR* ext);
\r
110 _TCHAR *get_file_path_without_extensiton(_TCHAR* file_path);
\r
111 uint32 getcrc32(uint8 data[], int size);
\r
113 #define array_length(array) (sizeof(array) / sizeof(array[0]))
\r
115 #define FROM_BCD(v) (((v) & 0x0f) + (((v) >> 4) & 0x0f) * 10)
\r
116 #define TO_BCD(v) ((int)(((v) % 100) / 10) << 4) | ((v) % 10)
\r
117 #define TO_BCD_LO(v) ((v) % 10)
\r
118 #define TO_BCD_HI(v) (int)(((v) % 100) / 10)
\r
120 #define LEAP_YEAR(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
\r
122 typedef struct cur_time_t {
\r
123 int year, month, day, day_of_week, hour, minute, second;
\r
127 initialized = false;
\r
130 void update_year();
\r
131 void update_day_of_week();
\r
132 void save_state(void *f);
\r
133 bool load_state(void *f);
\r