SGDK
A free and open development kit for the Sega Mega Drive
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1
9
10#ifndef _TYPES_H_
11#define _TYPES_H_
12
17#ifndef FALSE
18#define FALSE 0
19#endif
24#ifndef TRUE
25#define TRUE 1
26#endif
31#ifndef NULL
32#define NULL 0
33#endif
34
35#ifndef MIN_U8
36#define MIN_U8 0x00
37#endif
38#ifndef MAX_U8
39#define MAX_U8 0xFF
40#endif
41#ifndef MIN_S8
42#define MIN_S8 (-0x80)
43#endif
44#ifndef MAX_S8
45#define MAX_S8 0x7F
46#endif
47
48#ifndef MIN_U16
49#define MIN_U16 0x0000
50#endif
51#ifndef MAX_U16
52#define MAX_U16 0xFFFF
53#endif
54#ifndef MIN_S16
55#define MIN_S16 (-0x8000)
56#endif
57#ifndef MAX_S16
58#define MAX_S16 0x7FFF
59#endif
60
61#ifndef MIN_U32
62#define MIN_U32 0x0000
63#endif
64#ifndef MAX_U32
65#define MAX_U32 0xFFFFFFFF
66#endif
67#ifndef MIN_S32
68#define MIN_S32 (-0x80000000)
69#endif
70#ifndef MAX_S32
71#define MAX_S32 0x7FFFFFFF
72#endif
73
74
79typedef char s8;
84typedef short s16;
89typedef long s32;
90
95typedef unsigned char u8;
100typedef unsigned short u16;
105typedef unsigned long u32;
106
107#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 202300L))
108
114typedef u8 bool;
119#ifndef false
120#define false FALSE
121#endif
126#ifndef true
127#define true TRUE
128#endif
129
130#endif
131
136typedef volatile s8 vs8;
141typedef volatile s16 vs16;
146typedef volatile s32 vs32;
147
152typedef volatile u8 vu8;
157typedef volatile u16 vu16;
162typedef volatile u32 vu32;
163
169typedef vu8 vbool;
170
176typedef s16 p16;
177
178
179#if !defined(uint8_t) && !defined(__int8_t_defined)
180#define uint8_t u8
181#define int8_t s8
182#endif
183#if !defined(uint16_t) && !defined(__int16_t_defined)
184#define uint16_t u16
185#define int16_t s16
186#endif
187#if !defined(uint32_t) && !defined(__int32_t_defined)
188#define uint32_t u32
189#define int32_t s32
190#endif
191#if !defined(size_t)
192#define size_t u32
193#endif
194#if !defined(ptrdiff_t)
195#define ptrdiff_t u32
196#endif
197
198
203typedef s16 fix16;
208typedef s32 fix32;
213typedef s16 f16;
218typedef s32 f32;
219
234typedef s16 ff16;
239typedef s32 ff32;
240
245typedef vs16 vfix16;
250typedef vs32 vfix32;
255typedef vs16 vf16;
260typedef vs32 vf32;
261
262
263#define FASTCALL
264
278typedef struct
279{
280 s16 x;
281 s16 y;
282 u16 w;
283 u16 h;
284} Box;
285
297typedef struct
298{
299 s16 x;
300 s16 y;
301 u16 ray;
302} Circle;
303
304
305typedef void VoidCallback(void);
306
307
308u8 getZeroU8(void);
309u16 getZeroU16(void);
310u32 getZeroU32(void);
311
321u8 rol8(u8 value, u16 number);
331u16 rol16(u16 value, u16 number);
341u32 rol32(u32 value, u16 number);
351u8 ror8(u8 value, u16 number);
361u16 ror16(u16 value, u16 number);
371u32 ror32(u32 value, u16 number);
372
373
374#endif // _TYPES_H_
Simple Box structure.
Definition types.h:279
Simple Circle structure.
Definition types.h:298
u8 rol8(u8 value, u16 number)
ROL instruction for byte (8 bit) value.
Definition types.c:19
s16 fix16
Definition types.h:203
s32 fastfix32
Definition types.h:229
s16 f16
Definition types.h:213
volatile s8 vs8
Definition types.h:136
volatile u8 vu8
Definition types.h:152
unsigned long u32
Definition types.h:105
short s16
Definition types.h:84
u16 rol16(u16 value, u16 number)
ROL instruction for short (16 bit) value.
Definition types.c:24
char s8
Definition types.h:79
s32 ff32
Definition types.h:239
long s32
Definition types.h:89
vs32 vf32
Definition types.h:260
volatile u16 vu16
Definition types.h:157
s16 fastfix16
Definition types.h:224
volatile s32 vs32
Definition types.h:146
vs32 vfix32
Definition types.h:250
volatile s16 vs16
Definition types.h:141
u32 ror32(u32 value, u16 number)
ROR instruction for long (32 bit) value.
Definition types.c:44
u8 bool
Definition types.h:114
vu8 vbool
Definition types.h:169
unsigned short u16
Definition types.h:100
volatile u32 vu32
Definition types.h:162
u8 ror8(u8 value, u16 number)
ROR instruction for byte (8 bit) value.
Definition types.c:34
s32 f32
Definition types.h:218
s16 p16
Definition types.h:176
s32 fix32
Definition types.h:208
unsigned char u8
Definition types.h:95
vs16 vf16
Definition types.h:255
vs16 vfix16
Definition types.h:245
s16 ff16
Definition types.h:234
u32 rol32(u32 value, u16 number)
ROL instruction for long (32 bit) value.
Definition types.c:29
u16 ror16(u16 value, u16 number)
ROR instruction for short (16 bit) value.
Definition types.c:39