Mario Kart 64
Loading...
Searching...
No Matches
macros.h File Reference
#include <math.h>
#include <libultraship.h>
Include dependency graph for macros.h:

Go to the source code of this file.

Macros

#define GLOBAL_ASM(...)
 
#define ARRAY_COUNT(arr)
 
#define GLUE(a, b)
 
#define GLUE2(a, b)
 
#define UNUSED
 
#define NORETURN
 
#define NO_REORDER
 
#define STATIC_ASSERT(cond, msg)
 
#define ALIGNED8
 
#define ALIGNED16
 
#define FTOFIX(f)
 
#define ITOFIX(i)
 
#define FIXTOF(x)
 
#define FIXTOI(x)
 
#define toFixedInt(f)
 
#define toFrac(f)
 
#define toFixedPointMatrix(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)
 
#define VIRTUAL_TO_PHYSICAL(addr)
 
#define PHYSICAL_TO_VIRTUAL(addr)
 
#define VIRTUAL_TO_PHYSICAL2(addr)
 
#define ALIGN16(val)
 
#define BSWAP16(x)
 
#define GET_PACKED_END(dl)
 
#define MAX(a, b)
 
#define MIN(a, b)
 
#define CLAMP(var, min, max)
 

Macro Definition Documentation

◆ ALIGN16

#define ALIGN16 ( val)
Value:
(((val) + 0xF) & ~0xF)

◆ ALIGNED16

#define ALIGNED16

◆ ALIGNED8

#define ALIGNED8

◆ ARRAY_COUNT

#define ARRAY_COUNT ( arr)
Value:
(s32)(sizeof(arr) / sizeof(arr[0]))

◆ BSWAP16

#define BSWAP16 ( x)
Value:
(((x) & 0xff) << 8 | (((x) >> 8) & 0xff))

◆ CLAMP

#define CLAMP ( var,
min,
max )
Value:
((var) < (min) ? min : (var) > (max) ? max : var)

◆ FIXTOF

#define FIXTOF ( x)
Value:
((double) ((x) / 65536.0))

◆ FIXTOI

#define FIXTOI ( x)
Value:
((s32) ((x) >> 16))

◆ FTOFIX

#define FTOFIX ( f)
Value:
((s32) ((f) * 65536.0))

◆ GET_PACKED_END

#define GET_PACKED_END ( dl)
Value:
(((u8*) dl) + sizeof(dl) - sizeof(dl[0]) - 0x07000000)

(u8*) dl : Cast array down to u8's

  • sizeof(dl) : go to the end of the array
  • sizeof(dl[0]) : walk back 1 Gfx macro
  • 0x07000000 : get just the offset

◆ GLOBAL_ASM

#define GLOBAL_ASM ( ...)

◆ GLUE

#define GLUE ( a,
b )
Value:
a##b

◆ GLUE2

#define GLUE2 ( a,
b )
Value:
GLUE(a, b)
#define GLUE(a, b)
Definition macros.h:19

◆ ITOFIX

#define ITOFIX ( i)
Value:
((s32) ((i) << 16))

◆ MAX

#define MAX ( a,
b )
Value:
((a) > (b) ? (a) : (b))

◆ MIN

#define MIN ( a,
b )
Value:
((a) < (b) ? (a) : (b))

◆ NO_REORDER

#define NO_REORDER

◆ NORETURN

#define NORETURN

◆ PHYSICAL_TO_VIRTUAL

#define PHYSICAL_TO_VIRTUAL ( addr)
Value:
(addr)

◆ STATIC_ASSERT

#define STATIC_ASSERT ( cond,
msg )
Value:
typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
#define GLUE2(a, b)
Definition macros.h:20

◆ toFixedInt

#define toFixedInt ( f)
Value:
(FTOFIX(f) >> 16)
#define FTOFIX(f)
Definition macros.h:65

◆ toFixedPointMatrix

#define toFixedPointMatrix ( x1,
x2,
x3,
x4,
x5,
x6,
x7,
x8,
x9,
x10,
x11,
x12,
x13,
x14,
x15,
x16 )
Value:
{ \
{ ((toFixedInt(x1)) << 16) | toFixedInt(x2), ((toFixedInt(x3)) << 16) | toFixedInt(x4), \
(toFixedInt(x5) << 16) | toFixedInt(x6), (toFixedInt(x7) << 16) | toFixedInt(x8) }, \
{ ((toFixedInt(x9)) << 16) | toFixedInt(x10), ((toFixedInt(x11)) << 16) | toFixedInt(x12), \
(toFixedInt(x13) << 16) | toFixedInt(x14), (toFixedInt(x15) << 16) | toFixedInt(x16) }, \
{ ((toFrac(x1)) << 16) | toFrac(x2), ((toFrac(x3)) << 16) | toFrac(x4), (toFrac(x5) << 16) | toFrac(x6), \
(toFrac(x7) << 16) | toFrac(x8) }, \
{ \
((toFrac(x9)) << 16) | toFrac(x10), ((toFrac(x11)) << 16) | toFrac(x12), \
(toFrac(x13) << 16) | toFrac(x14), (toFrac(x15) << 16) | toFrac(x16) \
} \
}
#define toFixedInt(f)
Definition macros.h:71
#define toFrac(f)
Definition macros.h:72

◆ toFrac

#define toFrac ( f)
Value:
(FTOFIX(f) & 0xFFFF)

◆ UNUSED

#define UNUSED

◆ VIRTUAL_TO_PHYSICAL

#define VIRTUAL_TO_PHYSICAL ( addr)
Value:
(addr)

◆ VIRTUAL_TO_PHYSICAL2

#define VIRTUAL_TO_PHYSICAL2 ( addr)
Value:
(addr)