Starship/include/macros.h
Ryan Myers 8e808803e2
fox_effects decompiled (#77)
* Match 5 funcs

* Match func_8007E93C

* Match func_8007EBB8

* Match func_8007ED54

* Match func_8007EE68

* 0.017453292f to M_DTOR

* format

* 3 more matches

* Match 2 more

* 2 more matches

* Match func_8007F958

* Match func_8007FBE0

* Match func_8007FD84

* Match func_8007FE88

* 5 new matches

* Match func_80080D04

* Match func_800815DC and func_8008165C

* Match func_80081BEC

* MAtch func_80081B24

* Match 2 more

* 3 more matches

* Small tweaks

* Give names to function params

* Match func_80080ACC

* MAtch func_80083D2C

* Match func_800837EC

* WIP func_80081C5C

* Add view of rodata that needs to be migrated somewhere

* Match func_80081C5C!

* Fix bss reordering, and formatting.

* Add a submodule of m2c, and a new script for generating the context for a file, and a m2c output to an ignored folder.

* Migrate rodata

* Start importing data for sf_77E40.c

* Successful data migration for sf_77E40.c

* make format

* Reorganzie data for sf_77E40.c

* Try stubbing a PRINTF, to help with RODATA strings.

* Rename sf_77E40 to fox_effect

* Rename Object_8C to Effect

* make format...

* Rename gObjects8C to gEffects
2024-01-13 10:43:04 -03:00

29 lines
880 B
C

#ifndef MACROS_H
#define MACROS_H
#define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 240
#define SEGMENTED_TO_VIRTUAL(segment) ((void*)OS_PHYSICAL_TO_K0(gSegments[((uintptr_t)(segment)<<4)>>0x1C]+(((uintptr_t)(segment))&0xFFFFFF)))
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
#define SIGN_OF(x) (((x) > 0) ? 1 : ((x) == 0) ? 0 : -1)
#define SQ(x) ((x) * (x))
#define VEC3F_SQ(vec) (SQ((vec).x) + SQ((vec).y) + SQ((vec).z))
#define DOT_XYZ(a, b) ((a).x * (b).x + (a).y * (b).y + (a).z * (b).z)
#define USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate/15625LL))/(1000000LL/15625LL))
#define MSEC_TO_CYCLES(n) (USEC_TO_CYCLES((n) * 1000LL))
#define CYCLES_TO_USEC(c) (((u64)(c)*(1000000LL/15625LL))/(osClockRate/15625LL))
#define CYCLES_TO_MSEC(c) ((s32)CYCLES_TO_USEC(c)/1000)
#if defined(__sgi)
#define PRINTF
#else
#define PRINTF(...)
#endif
#endif // MACROS_H