SSBM Decomp
Loading...
Searching...
No Matches
grbigblue.c File Reference
#include "grbigblue.h"
#include "grbigblue.static.h"
#include "grdisplay.h"
#include "grfzerocar.h"
#include "grmaterial.h"
#include "ground.h"
#include "placeholder.h"
#include <platform.h>
#include "baselib/debug.h"
#include "cm/camera.h"
#include "gm/gm_1A45.h"
#include "gr/grzakogenerator.h"
#include "gr/inlines.h"
#include "gr/stage.h"
#include "gr/types.h"
#include "it/it_266F.h"
#include "it/it_26B1.h"
#include "lb/lb_00B0.h"
#include "lb/lb_00F9.h"
#include "lb/lbvector.h"
#include "mp/mplib.h"
#include "MSL/math_ppc.h"
#include <math.h>
#include <trigf.h>
#include <baselib/gobjgxlink.h>
#include <baselib/gobjproc.h>
#include <baselib/jobj.h>
#include <baselib/memory.h>
#include <baselib/random.h>

Data Structures

struct  grBb_Data803E2D78
struct  grBb_Data803E2EB8
struct  grBb_StageData

Macros

#define M_TAU   6.283185307179586

Functions

void grBigBlue_801E57BC (bool arg)
void grBigBlue_801E57C0 (void)
void grBigBlue_801E59C8 (void)
void grBigBlue_801E59CC (void)
bool grBigBlue_801E59F0 (void)
HSD_GObjgrBigBlue_801E59F8 (s32 id)
void grBigBlue_801E5AE4 (Ground_GObj *gobj)
bool grBigBlue_801E5B10 (Ground_GObj *arg)
void grBigBlue_801E5B18 (Ground_GObj *arg)
void grBigBlue_801E5B1C (Ground_GObj *arg)
void grBigBlue_801E5B20 (Ground_GObj *gobj)
bool grBigBlue_801E6114 (Ground_GObj *arg)
void grBigBlue_801E611C (Ground_GObj *arg)
void grBigBlue_801E6120 (Ground_GObj *arg)
void fn_801E6124 (Ground_GObj *gobj)
void grBigBlue_801E613C (Ground_GObj *gobj)
bool grBigBlue_801E61BC (Ground_GObj *arg)
void grBigBlue_801E61C4 (Ground_GObj *gobj)
void grBigBlue_801E61FC (Ground_GObj *arg)
void grBigBlue_801E6200 (Ground_GObj *gobj)
bool grBigBlue_801E6288 (Ground_GObj *arg)
void grBigBlue_801E6290 (Ground_GObj *arg)
void grBigBlue_801E6294 (Ground_GObj *arg)
void grBigBlue_801E6298 (Ground_GObj *gobj)
bool grBigBlue_801E6354 (Ground_GObj *arg)
void grBigBlue_801E635C (Ground_GObj *arg)
void grBigBlue_801E6360 (Ground_GObj *arg)
void grBigBlue_801E6364 (Ground_GObj *gobj)
bool grBigBlue_801E687C (Ground_GObj *arg)
void grBigBlue_801E6884 (Ground_GObj *gobj)
void grBigBlue_801E68B8 (Ground_GObj *gobj)
void grBigBlue_801E6904 (Ground_GObj *gobj)
bool grBigBlue_801E6C58 (Ground_GObj *arg)
void grBigBlue_801E6C60 (Ground_GObj *gobj)
void grBigBlue_801E855C (Ground_GObj *arg)
void fn_801E8560 (Ground *gp, s32 param, CollData *coll, s32 time_param, s32 env, f32 force)
bool grBigBlue_801E8794 (void *exclude, Vec3 *pos, bool checkSecondary, f32 rangeX, f32 rangeY)
void grBigBlue_801E8978 (int index, void *data, void *extra)
void * grBigBlue_801E89DC (int arg)
void grBigBlue_801E8A1C (int idx)
f32 grBigBlue_801E8B84 (f32 right, f32 left, f32 bottom, f32 top)
f32 grBigBlue_801E8D04 (void)
void grBigBlue_801E8D64 (Ground_GObj *gobj)
bool grBigBlue_801E93D0 (Ground_GObj *arg)
void grBigBlue_801E93D8 (Ground_GObj *gobj)
void grBigBlue_801E9F38 (Ground_GObj *arg)
void grBigBlue_801E9F3C (Ground_GObj *gobj)
bool grBigBlue_801EA054 (Ground_GObj *arg)
void grBigBlue_801EA05C (Ground_GObj *gobj)
void grBigBlue_801EAB4C (Ground_GObj *arg)
bool grBigBlue_801EAB50 (Vec3 *pos, s32 flag, f32 rangeX, f32 rangeY)
s32 grBigBlue_801EACE8 (HSD_JObj *exclude, Vec3 *point, f32 *out_y, f32 half_range_x, f32 half_range_y)
void grBigBlue_801EB004 (Ground_GObj *gobj)
void grBigBlue_801EB4AC (Ground_GObj *gobj)
void grBigBlue_801EBAF8 (Ground_GObj *gobj)
f32 grBigBlue_801EC58C (Vec3 *pos, Vec3 *normal_out, f32 half_height)
void grBigBlue_801EC6C0 (Ground_GObj *gobj)
void grBigBlue_801ECB50 (Ground_GObj *gobj)
void grBigBlue_801ED694 (Ground_GObj *gobj, s32 lane)
s32 grBigBlue_801EDF44 (Ground_GObj *gobj, s32 index)
s32 grBigBlue_801EE398 (Ground_GObj *gobj, s32 arg1, s32 arg2)
bool grBigBlue_801EEF00 (Ground_GObj *gobj, s32 index)
void grBigBlue_801EF424 (Ground_GObj *gobj)
void fn_801EF60C (Ground *gp, s32 joint_id, CollData *coll, s32 time_param, s32 env, f32 force)
void grBigBlue_801EF7D8 (Vec3 *pos)
bool grBigBlue_801EF844 (enum_t line_id)
void fn_801EFB9C (HSD_GObj *gobj, int pass)
DynamicsDescgrBigBlue_801EFC0C (enum_t arg)
bool grBigBlue_801EFC14 (Vec3 *a, int b, HSD_JObj *jobj)

Variables

ItemKind grBb_803B8120 [5]
grBb_LineIds grBb_803B8134
f32 grBb_804DB2F0
f32 grBb_804DB2F4
f32 grBb_804DB304
f32 grBb_804DB308
f32 grBb_804DB30C
f32 grBb_804DB310
f32 grBb_804DB3F0
char grBb_804D46B8
static grBb_YakumonoParamsgrBb_804D69C8
u8 grBb_803E2938 [0xA8] = { 0 }
grBb_Data803E2D78 grBb_803E2D78
grBb_Data803E2EB8 grBb_803E2EB8
StageCallbacks grBb_803E29E0 []
char grBb_803E2D14 [] = "/GrBb.dat"
grBb_StageData grBb_803E2D20
static const Vec3 grBb_803B8108 = { -1.0F, 0.0F, 0.0F }
static const Vec3 grBb_803B8114 = { 56.0F, 40.0F, 24.0F }
static grBb_TrackEntry grBb_TrackEntries [12]

Macro Definition Documentation

◆ M_TAU

#define M_TAU   6.283185307179586

Function Documentation

◆ grBigBlue_801E57BC()

void grBigBlue_801E57BC ( bool arg)

◆ grBigBlue_801E57C0()

void grBigBlue_801E57C0 ( void )

◆ grBigBlue_801E59C8()

void grBigBlue_801E59C8 ( void )

◆ grBigBlue_801E59CC()

void grBigBlue_801E59CC ( void )

◆ grBigBlue_801E59F0()

bool grBigBlue_801E59F0 ( void )

◆ grBigBlue_801E59F8()

HSD_GObj * grBigBlue_801E59F8 ( s32 id)

◆ grBigBlue_801E5AE4()

void grBigBlue_801E5AE4 ( Ground_GObj * gobj)

◆ grBigBlue_801E5B10()

bool grBigBlue_801E5B10 ( Ground_GObj * arg)

◆ grBigBlue_801E5B18()

void grBigBlue_801E5B18 ( Ground_GObj * arg)

◆ grBigBlue_801E5B1C()

void grBigBlue_801E5B1C ( Ground_GObj * arg)

◆ grBigBlue_801E5B20()

void grBigBlue_801E5B20 ( Ground_GObj * gobj)

◆ grBigBlue_801E6114()

bool grBigBlue_801E6114 ( Ground_GObj * arg)

◆ grBigBlue_801E611C()

void grBigBlue_801E611C ( Ground_GObj * arg)

◆ grBigBlue_801E6120()

void grBigBlue_801E6120 ( Ground_GObj * arg)

◆ fn_801E6124()

void fn_801E6124 ( Ground_GObj * gobj)

◆ grBigBlue_801E613C()

void grBigBlue_801E613C ( Ground_GObj * gobj)

◆ grBigBlue_801E61BC()

bool grBigBlue_801E61BC ( Ground_GObj * arg)

◆ grBigBlue_801E61C4()

void grBigBlue_801E61C4 ( Ground_GObj * gobj)

◆ grBigBlue_801E61FC()

void grBigBlue_801E61FC ( Ground_GObj * arg)

◆ grBigBlue_801E6200()

void grBigBlue_801E6200 ( Ground_GObj * gobj)

◆ grBigBlue_801E6288()

bool grBigBlue_801E6288 ( Ground_GObj * arg)

◆ grBigBlue_801E6290()

void grBigBlue_801E6290 ( Ground_GObj * arg)

◆ grBigBlue_801E6294()

void grBigBlue_801E6294 ( Ground_GObj * arg)

◆ grBigBlue_801E6298()

void grBigBlue_801E6298 ( Ground_GObj * gobj)

◆ grBigBlue_801E6354()

bool grBigBlue_801E6354 ( Ground_GObj * arg)

◆ grBigBlue_801E635C()

void grBigBlue_801E635C ( Ground_GObj * arg)

◆ grBigBlue_801E6360()

void grBigBlue_801E6360 ( Ground_GObj * arg)

◆ grBigBlue_801E6364()

void grBigBlue_801E6364 ( Ground_GObj * gobj)

◆ grBigBlue_801E687C()

bool grBigBlue_801E687C ( Ground_GObj * arg)

◆ grBigBlue_801E6884()

void grBigBlue_801E6884 ( Ground_GObj * gobj)

◆ grBigBlue_801E68B8()

void grBigBlue_801E68B8 ( Ground_GObj * gobj)

◆ grBigBlue_801E6904()

void grBigBlue_801E6904 ( Ground_GObj * gobj)

◆ grBigBlue_801E6C58()

bool grBigBlue_801E6C58 ( Ground_GObj * arg)

◆ grBigBlue_801E6C60()

void grBigBlue_801E6C60 ( Ground_GObj * gobj)

◆ grBigBlue_801E855C()

void grBigBlue_801E855C ( Ground_GObj * arg)

◆ fn_801E8560()

void fn_801E8560 ( Ground * gp,
s32 param,
CollData * coll,
s32 time_param,
s32 env,
f32 force )

◆ grBigBlue_801E8794()

bool grBigBlue_801E8794 ( void * exclude,
Vec3 * pos,
bool checkSecondary,
f32 rangeX,
f32 rangeY )

◆ grBigBlue_801E8978()

void grBigBlue_801E8978 ( int index,
void * data,
void * extra )

◆ grBigBlue_801E89DC()

void * grBigBlue_801E89DC ( int arg)

◆ grBigBlue_801E8A1C()

void grBigBlue_801E8A1C ( int idx)
Todo
Currently 79.9% match - platform/store use lwzx/stwx instead of add+lwz/stw (addressing mode difference), candPtr init missing slwi+add

◆ grBigBlue_801E8B84()

f32 grBigBlue_801E8B84 ( f32 right,
f32 left,
f32 bottom,
f32 top )
Todo
Currently 94.71% match - needs pointer advancement and i variable

◆ grBigBlue_801E8D04()

f32 grBigBlue_801E8D04 ( void )

◆ grBigBlue_801E8D64()

void grBigBlue_801E8D64 ( Ground_GObj * gobj)

◆ grBigBlue_801E93D0()

bool grBigBlue_801E93D0 ( Ground_GObj * arg)

◆ grBigBlue_801E93D8()

void grBigBlue_801E93D8 ( Ground_GObj * gobj)

◆ grBigBlue_801E9F38()

void grBigBlue_801E9F38 ( Ground_GObj * arg)

◆ grBigBlue_801E9F3C()

void grBigBlue_801E9F3C ( Ground_GObj * gobj)

◆ grBigBlue_801EA054()

bool grBigBlue_801EA054 ( Ground_GObj * arg)

◆ grBigBlue_801EA05C()

void grBigBlue_801EA05C ( Ground_GObj * gobj)

◆ grBigBlue_801EAB4C()

void grBigBlue_801EAB4C ( Ground_GObj * arg)

◆ grBigBlue_801EAB50()

bool grBigBlue_801EAB50 ( Vec3 * pos,
s32 flag,
f32 rangeX,
f32 rangeY )

◆ grBigBlue_801EACE8()

s32 grBigBlue_801EACE8 ( HSD_JObj * exclude,
Vec3 * point,
f32 * out_y,
f32 half_range_x,
f32 half_range_y )
Todo
Currently 98.17% match - car section generates fnmsubs instead of fmuls+fsubs; compiler fuses multiply-subtract differently than target

◆ grBigBlue_801EB004()

void grBigBlue_801EB004 ( Ground_GObj * gobj)
Todo
Currently 94.90% match - needs bitfield struct for rlwimi generation and stack frame fix (120 vs 112 bytes)

◆ grBigBlue_801EB4AC()

void grBigBlue_801EB4AC ( Ground_GObj * gobj)
Todo
Currently partial match - needs register allocation and bitfield rlwimi fixes.

◆ grBigBlue_801EBAF8()

void grBigBlue_801EBAF8 ( Ground_GObj * gobj)

◆ grBigBlue_801EC58C()

f32 grBigBlue_801EC58C ( Vec3 * pos,
Vec3 * normal_out,
f32 half_height )

◆ grBigBlue_801EC6C0()

void grBigBlue_801EC6C0 ( Ground_GObj * gobj)
Todo
Currently 90.40% match - needs register allocation fix (stmw r24 vs r23) and bitfield write pattern fix (rlwinm+ori vs rlwimi)

◆ grBigBlue_801ECB50()

void grBigBlue_801ECB50 ( Ground_GObj * gobj)

◆ grBigBlue_801ED694()

void grBigBlue_801ED694 ( Ground_GObj * gobj,
s32 lane )
Todo
Currently partial match - complex car physics simulation

◆ grBigBlue_801EDF44()

s32 grBigBlue_801EDF44 ( Ground_GObj * gobj,
s32 index )
Todo
Currently 87.41% match - compiler CSEs gp+offset into one register (4 NV regs) instead of keeping them separate (5 NV regs, stmw r27)

◆ grBigBlue_801EE398()

s32 grBigBlue_801EE398 ( Ground_GObj * gobj,
s32 arg1,
s32 arg2 )

◆ grBigBlue_801EEF00()

bool grBigBlue_801EEF00 ( Ground_GObj * gobj,
s32 index )
Todo
Currently 83.62% match - compiler CSEs gp+offset into one register (3 NV regs) instead of keeping them separate (4 NV regs with r28 for case 4)

◆ grBigBlue_801EF424()

void grBigBlue_801EF424 ( Ground_GObj * gobj)
Todo
Currently 98.03% match - float register allocation off by 1

◆ fn_801EF60C()

void fn_801EF60C ( Ground * gp,
s32 joint_id,
CollData * coll,
s32 time_param,
s32 env,
f32 force )
Todo
Currently 99.98% match - assert string relocation offset

◆ grBigBlue_801EF7D8()

void grBigBlue_801EF7D8 ( Vec3 * pos)

◆ grBigBlue_801EF844()

bool grBigBlue_801EF844 ( enum_t line_id)

◆ fn_801EFB9C()

void fn_801EFB9C ( HSD_GObj * gobj,
int pass )

◆ grBigBlue_801EFC0C()

DynamicsDesc * grBigBlue_801EFC0C ( enum_t arg)

◆ grBigBlue_801EFC14()

bool grBigBlue_801EFC14 ( Vec3 * a,
int b,
HSD_JObj * jobj )

Variable Documentation

◆ grBb_803B8120

ItemKind grBb_803B8120[5]
extern

◆ grBb_803B8134

grBb_LineIds grBb_803B8134
extern

◆ grBb_804DB2F0

f32 grBb_804DB2F0
extern

◆ grBb_804DB2F4

f32 grBb_804DB2F4
extern

◆ grBb_804DB304

f32 grBb_804DB304
extern

◆ grBb_804DB308

f32 grBb_804DB308
extern

◆ grBb_804DB30C

f32 grBb_804DB30C
extern

◆ grBb_804DB310

f32 grBb_804DB310
extern

◆ grBb_804DB3F0

f32 grBb_804DB3F0
extern

◆ grBb_804D46B8

char grBb_804D46B8
extern

◆ grBb_804D69C8

grBb_YakumonoParams* grBb_804D69C8
static

◆ grBb_803E2938

u8 grBb_803E2938[0xA8] = { 0 }

◆ grBb_803E2D78

grBb_Data803E2D78 grBb_803E2D78
extern

◆ grBb_803E2EB8

grBb_Data803E2EB8 grBb_803E2EB8
extern

◆ grBb_803E29E0

StageCallbacks grBb_803E29E0[]

◆ grBb_803E2D14

char grBb_803E2D14[] = "/GrBb.dat"

◆ grBb_803E2D20

grBb_StageData grBb_803E2D20
Initial value:
= {
{
1,
(S16Vec3*) grBb_803E2938,
0x1C,
},
"%s:%d: couldn t get gobj(id=%d)\n",
}
void grBigBlue_801E57BC(bool arg)
Definition grbigblue.c:159
DynamicsDesc * grBigBlue_801EFC0C(enum_t arg)
Definition grbigblue.c:4919
void grBigBlue_801E57C0(void)
Definition grbigblue.c:161
bool grBigBlue_801EFC14(Vec3 *a, int b, HSD_JObj *jobj)
Definition grbigblue.c:4924
char grBb_803E2D14[]
Definition grbigblue.c:121
bool grBigBlue_801E59F0(void)
Definition grbigblue.c:226
StageCallbacks grBb_803E29E0[]
Definition grbigblue.c:68
void grBigBlue_801E59C8(void)
Definition grbigblue.c:219
void grBigBlue_801E59CC(void)
Definition grbigblue.c:221
u8 grBb_803E2938[0xA8]
Definition grbigblue.c:64
@ BIGBLUE
Big Blue.
Definition forward.h:101

◆ grBb_803B8108

const Vec3 grBb_803B8108 = { -1.0F, 0.0F, 0.0F }
static

◆ grBb_803B8114

const Vec3 grBb_803B8114 = { 56.0F, 40.0F, 24.0F }
static

◆ grBb_TrackEntries

grBb_TrackEntry grBb_TrackEntries[12]
static
Initial value:
= {
{ 4, 6, 5, 0, { 0, 0, 0 } }, { 19, 21, 20, 0, { 0, 0, 0 } },
{ 7, 9, 8, 0, { 0, 0, 0 } }, { 10, 12, 11, 0, { 0, 0, 0 } },
{ 44, 46, 45, 0, { 0, 0, 0 } }, { 1, 3, 2, 0, { 0, 0, 0 } },
{ 32, 34, 33, 0, { 0, 0, 0 } }, { 35, 37, 36, 0, { 0, 0, 0 } },
{ 38, 40, 39, 0, { 0, 0, 0 } }, { 41, 43, 42, 0, { 0, 0, 0 } },
{ 29, 31, 30, 0, { 0, 0, 0 } }, { 13, 18, 17, 0, { 0, 0, 0 } },
}