Mario Kart 64
Loading...
Searching...
No Matches
macros.h File Reference

Go to the source code of this file.

Macros

#define GLOBAL_ASM(...)
 
#define ARRAY_COUNT(arr)   (s32)(sizeof(arr) / sizeof(arr[0]))
 
#define GLUE(a, b)   a##b
 
#define GLUE2(a, b)   GLUE(a, b)
 
#define UNUSED
 
#define NORETURN
 
#define NO_REORDER
 
#define STATIC_ASSERT(cond, msg)   typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
 
#define ALIGNED8
 
#define ALIGNED16
 
#define FTOFIX(f)   ((s32) ((f) * 65536.0))
 
#define ITOFIX(i)   ((s32) ((i) << 16))
 
#define FIXTOF(x)   ((double) ((x) / 65536.0))
 
#define FIXTOI(x)   ((s32) ((x) >> 16))
 
#define toFixedInt(f)   (FTOFIX(f) >> 16)
 
#define toFrac(f)   (FTOFIX(f) & 0xFFFF)
 
#define toFixedPointMatrix(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)
 
#define VIRTUAL_TO_PHYSICAL(addr)   ((uintptr_t) (addr) & 0x1FFFFFFF)
 
#define PHYSICAL_TO_VIRTUAL(addr)   ((uintptr_t) (addr) | 0x80000000)
 
#define VIRTUAL_TO_PHYSICAL2(addr)   ((u8*) (addr) - 0x80000000U)
 
#define ALIGN16(val)   (((val) + 0xF) & ~0xF)
 
#define GET_PACKED_END(dl)   (((u8*) dl) + sizeof(dl) - sizeof(dl[0]) - 0x07000000)
 

Macro Definition Documentation

◆ ALIGN16

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

◆ ALIGNED16

#define ALIGNED16

◆ ALIGNED8

#define ALIGNED8

◆ ARRAY_COUNT

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

◆ FIXTOF

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

◆ FIXTOI

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

◆ FTOFIX

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

◆ GET_PACKED_END

#define GET_PACKED_END ( dl)    (((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 )   a##b

◆ GLUE2

#define GLUE2 ( a,
b )   GLUE(a, b)

◆ ITOFIX

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

◆ NO_REORDER

#define NO_REORDER

◆ NORETURN

#define NORETURN

◆ PHYSICAL_TO_VIRTUAL

#define PHYSICAL_TO_VIRTUAL ( addr)    ((uintptr_t) (addr) | 0x80000000)

◆ STATIC_ASSERT

#define STATIC_ASSERT ( cond,
msg )   typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]

◆ toFixedInt

#define toFixedInt ( f)    (FTOFIX(f) >> 16)

◆ 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:68
#define toFrac(f)
Definition macros.h:69

◆ toFrac

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

◆ UNUSED

#define UNUSED

◆ VIRTUAL_TO_PHYSICAL

#define VIRTUAL_TO_PHYSICAL ( addr)    ((uintptr_t) (addr) & 0x1FFFFFFF)

◆ VIRTUAL_TO_PHYSICAL2

#define VIRTUAL_TO_PHYSICAL2 ( addr)    ((u8*) (addr) - 0x80000000U)