mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-06 01:58:13 -04:00
Current Changes (#14)
* Couple minor fixes * test * OTR changes * More otr stuff * Some fixes --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
This commit is contained in:
+19
-21
@@ -10,26 +10,25 @@
|
||||
* in this file or problems will arise in other parts of the code
|
||||
**/
|
||||
|
||||
extern CourseVtx d_course_big_donut_vertex[0x48D];
|
||||
extern CourseVtx d_course_block_fort_vertex[0x440];
|
||||
extern CourseVtx d_course_double_deck_vertex[0x22B];
|
||||
extern CourseVtx d_course_skyscraper_vertex[0x43E];
|
||||
extern CourseVtx d_course_choco_mountain_vertex[0x15B8];
|
||||
extern CourseVtx d_course_frappe_snowland_vertex[0x1599];
|
||||
extern CourseVtx d_course_mario_raceway_vertex[0x167D];
|
||||
extern CourseVtx d_course_toads_turnpike_vertex[0x18D7];
|
||||
extern CourseVtx d_course_kalimari_desert_vertex[0x18F9];
|
||||
extern CourseVtx d_course_koopa_troopa_beach_vertex[0x24A0];
|
||||
extern CourseVtx d_course_luigi_raceway_vertex[0x1730];
|
||||
extern CourseVtx d_course_moo_moo_farm_vertex[0x1F24];
|
||||
extern CourseVtx d_course_banshee_boardwalk_vertex[0x1351];
|
||||
extern CourseVtx d_course_dks_jungle_parkway_vertex[0x162F];
|
||||
extern CourseVtx d_course_rainbow_road_vertex[0xC27];
|
||||
extern CourseVtx d_course_yoshi_valley_vertex[0xE88];
|
||||
extern CourseVtx d_course_bowsers_castle_vertex[0x2537];
|
||||
extern CourseVtx d_course_royal_raceway_vertex[0x2072];
|
||||
extern CourseVtx d_course_sherbet_land_vertex[0xA76];
|
||||
extern CourseVtx d_course_wario_stadium_vertex[0x17B3];
|
||||
extern CourseVtx d_course_big_donut_vertex[];
|
||||
extern CourseVtx d_course_block_fort_vertex[];
|
||||
extern CourseVtx d_course_double_deck_vertex[];
|
||||
extern CourseVtx d_course_skyscraper_vertex[];
|
||||
extern CourseVtx d_course_choco_mountain_vertex[];
|
||||
extern CourseVtx d_course_frappe_snowland_vertex[];
|
||||
extern CourseVtx d_course_toads_turnpike_vertex[];
|
||||
extern CourseVtx d_course_kalimari_desert_vertex[];
|
||||
extern CourseVtx d_course_koopa_troopa_beach_vertex[];
|
||||
extern CourseVtx d_course_luigi_raceway_vertex[];
|
||||
extern CourseVtx d_course_moo_moo_farm_vertex[];
|
||||
extern CourseVtx d_course_banshee_boardwalk_vertex[];
|
||||
extern CourseVtx d_course_dks_jungle_parkway_vertex[];
|
||||
extern CourseVtx d_course_rainbow_road_vertex[];
|
||||
extern CourseVtx d_course_yoshi_valley_vertex[];
|
||||
extern CourseVtx d_course_bowsers_castle_vertex[];
|
||||
extern CourseVtx d_course_royal_raceway_vertex[];
|
||||
extern CourseVtx d_course_sherbet_land_vertex[];
|
||||
extern CourseVtx d_course_wario_stadium_vertex[];
|
||||
|
||||
#define d_course_big_donut_vertex_count ARRAY_COUNT(d_course_big_donut_vertex)
|
||||
#define d_course_block_fort_vertex_count ARRAY_COUNT(d_course_block_fort_vertex)
|
||||
@@ -37,7 +36,6 @@ extern CourseVtx d_course_wario_stadium_vertex[0x17B3];
|
||||
#define d_course_skyscraper_vertex_count ARRAY_COUNT(d_course_skyscraper_vertex)
|
||||
#define d_course_choco_mountain_vertex_count ARRAY_COUNT(d_course_choco_mountain_vertex)
|
||||
#define d_course_frappe_snowland_vertex_count ARRAY_COUNT(d_course_frappe_snowland_vertex)
|
||||
#define d_course_mario_raceway_vertex_count ARRAY_COUNT(d_course_mario_raceway_vertex)
|
||||
#define d_course_toads_turnpike_vertex_count ARRAY_COUNT(d_course_toads_turnpike_vertex)
|
||||
#define d_course_kalimari_desert_vertex_count ARRAY_COUNT(d_course_kalimari_desert_vertex)
|
||||
#define d_course_koopa_troopa_beach_vertex_count ARRAY_COUNT(d_course_koopa_troopa_beach_vertex)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,10 +0,0 @@
|
||||
#ifndef MARIO_RACEWAY_VERTICES_H
|
||||
#define MARIO_RACEWAY_VERTICES_H
|
||||
|
||||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
|
||||
extern CourseVtx d_course_mario_raceway_vertex[];
|
||||
|
||||
|
||||
#endif // MARIO_RACEWAY_VERTICES_H
|
||||
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define ALIGN_ASSET(x) __declspec(align(x))
|
||||
#else
|
||||
#define ALIGN_ASSET(x) __attribute__((aligned (x)))
|
||||
#endif
|
||||
|
||||
#define LOAD_ASSET(path) (path == NULL ? NULL : (GameEngine_OTRSigCheck((const char*) path) ? ResourceGetDataByName((const char*) path) : path))
|
||||
#define LOAD_ASSET_RAW(path) ResourceGetDataByName((const char*) path)
|
||||
+1
-1
@@ -97,7 +97,7 @@ enum SURFACE_TYPE {
|
||||
/* 0xFF */ RAMP // Koopa Troopa beach
|
||||
};
|
||||
|
||||
#define GFX_GET_OPCODE(var) ((s32)((var) & 0xFF000000))
|
||||
#define GFX_GET_OPCODE(var) ((uintptr_t)((var) & 0xFF000000))
|
||||
|
||||
// Pointer casting is technically UB, and avoiding it gets rid of endian issues
|
||||
// as well as a nice side effect.
|
||||
|
||||
+12
-11
@@ -2,6 +2,7 @@
|
||||
#include <macros.h>
|
||||
#include <defines.h>
|
||||
#include <stubs.h>
|
||||
#include "course_metadata.h"
|
||||
|
||||
#include "code_80005FD0.h"
|
||||
#include "math_util.h"
|
||||
@@ -1757,12 +1758,12 @@ void func_80009B60(s32 playerId) {
|
||||
if ((gPlayerCount > 0) && (gPlayerCount < 3) && (D_80163330[playerId] == 1) && (D_8016334C[playerId] < gGPCurrentRaceRankByPlayerId[playerId])) {
|
||||
D_80163210[playerId] = 8.333333f;
|
||||
} else if (D_80162FD0 == (s16) 1U) {
|
||||
D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D0096B8[gCurrentCourseId][gCCSelection]);
|
||||
D_80163210[playerId] = D_0D0096B8[gCurrentCourseId][gCCSelection];
|
||||
D_801634F8[playerId].unk4 = -0.5f;
|
||||
} else if (D_801645E0[D_80162FCE] > 0) {
|
||||
D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]);
|
||||
D_80163210[playerId] = D_0D009418[gCurrentCourseId][gCCSelection];
|
||||
} else {
|
||||
D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009568[gCurrentCourseId][gCCSelection]);
|
||||
D_80163210[playerId] = D_0D009568[gCurrentCourseId][gCCSelection];
|
||||
}
|
||||
func_800131DC(playerId);
|
||||
func_8000D3B8(playerId);
|
||||
@@ -1951,15 +1952,15 @@ void func_80009B60(s32 playerId) {
|
||||
func_8003680C(player, var_a1);
|
||||
D_80163050[playerId] = var_a1;
|
||||
if ((D_801630B8[playerId] == 1) || (D_801630E8[playerId] == 1) || (D_801630E8[playerId] == -1) || (player->effects & 0x1000000C)) {
|
||||
D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]);
|
||||
D_80163028[playerId] = D_0D009418[gCurrentCourseId][gCCSelection];
|
||||
} else {
|
||||
D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009568[gCurrentCourseId][gCCSelection]);
|
||||
D_80163028[playerId] = D_0D009568[gCurrentCourseId][gCCSelection];
|
||||
}
|
||||
if ((D_80163068[playerId] > 0.9f) || (D_80163068[playerId] < -0.9f)) {
|
||||
D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009808[gCurrentCourseId][gCCSelection]);
|
||||
D_80163028[playerId] = D_0D009808[gCurrentCourseId][gCCSelection];
|
||||
}
|
||||
if (D_80162FD0 == 1) {
|
||||
D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D0096B8[gCurrentCourseId][gCCSelection]);
|
||||
D_80163028[playerId] = D_0D0096B8[gCurrentCourseId][gCCSelection];
|
||||
}
|
||||
if ((D_801630E8[playerId] == 2) || (D_801630E8[playerId] == -2) || (D_801630E8[playerId] == 3)) {
|
||||
D_80163028[playerId] = 3.3333333f;
|
||||
@@ -3475,7 +3476,7 @@ void func_8000F628(void) {
|
||||
if (gCurrentCourseId < (NUM_COURSES - 1)) {
|
||||
func_8000B95C(i, 0, 0);
|
||||
}
|
||||
D_80163028[i] = *(f32 *) segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]);
|
||||
D_80163028[i] = *(f32 *) LOAD_ASSET(&D_0D009418[gCurrentCourseId][gCCSelection]);
|
||||
D_801630E8[i] = 0;
|
||||
D_80163100[i] = 0;
|
||||
D_80163178[i] = 0.0f;
|
||||
@@ -3635,12 +3636,12 @@ void func_800100F0(s32 pathIndex) {
|
||||
pathDest = D_80164550[pathIndex];
|
||||
bInvalidPath = 1;
|
||||
if (gCurrentCourseId != COURSE_AWARD_CEREMONY) {
|
||||
var_v0 = process_path_data(pathDest, segmented_to_virtual_dupe_2(gCoursePathTable2[gCurrentCourseId][pathIndex]));
|
||||
var_v0 = process_path_data(pathDest, LOAD_ASSET(gCoursePathTable2[gCurrentCourseId][pathIndex]));
|
||||
gWaypointCountByPathIndex[pathIndex] = (u16) var_v0;
|
||||
} else {
|
||||
// Course path included in course_data which has already been loaded into memory.
|
||||
// This is how we get the addr to our path data.
|
||||
path = segmented_to_virtual_dupe_2(gCoursePathTable[gCurrentCourseId][pathIndex]);
|
||||
path = LOAD_ASSET(gCoursePathTable[gCurrentCourseId][pathIndex]);
|
||||
ptr = path;
|
||||
|
||||
for (i = 0; i < 3000; i++, ptr++) {
|
||||
@@ -4122,7 +4123,7 @@ s32 func_8001168C(PathNoY *pathDest, TrackWaypoint *pathSrc, s32 numWaypoints) {
|
||||
void copy_courses_kart_ai_behaviour(void) {
|
||||
s32 i;
|
||||
for (i = 0; i < NUM_COURSES - 1; i++) {
|
||||
gCoursesKartAIBehaviour[i] = segmented_to_virtual_dupe_2(gKartAIBehaviourLUT[i]);
|
||||
gCoursesKartAIBehaviour[i] = LOAD_ASSET(gKartAIBehaviourLUT[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+6
-4
@@ -5106,6 +5106,8 @@ void func_80066BAC(Player *player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
|
||||
UNUSED s32 stackPadding;
|
||||
|
||||
if ((player->unk_258[arg2].unk_01C == 1) && (player->unk_258[arg2].unk_038 != 0x00FF)) {
|
||||
Vtx **A_800E8900 = *(Vtx **) LOAD_ASSET(D_800E8900);
|
||||
|
||||
if (player->unk_110.unk3C[2] >= 300.0f) {
|
||||
spDC[1] = player->pos[1] + 5.0f;
|
||||
} else {
|
||||
@@ -5126,20 +5128,20 @@ void func_80066BAC(Player *player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C4, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800E8900[0][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &A_800E8900[0][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C8, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800E8900[1][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &A_800E8900[1][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008DA0);
|
||||
} else {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C8, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800E8900[0][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &A_800E8900[0][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_square_plain_render);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C4, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPVertex(gDisplayListHead++, &D_800E8900[1][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &A_800E8900[1][player->unk_258[arg2].unk_038], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, D_0D008DA0);
|
||||
}
|
||||
gMatrixEffectCount += 1;
|
||||
|
||||
@@ -3717,7 +3717,6 @@ void func_800996BC(MkTexture *arg0, s32 arg1) {
|
||||
if ((var_a1_2 % 8)) {
|
||||
var_a1_2 = (((var_a1_2 / 8) * 8) + 8);
|
||||
}
|
||||
printf("a1: %d\n",var_a1_2);
|
||||
switch (arg1) { /* irregular */
|
||||
case -1:
|
||||
case 1:
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
#include <common_structs.h>
|
||||
|
||||
Vec4f D_0D009418[] = {
|
||||
// mario raceway
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// choco mountain
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// bowser's castle
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// banshee boardwalk
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// yoshi valley
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// frappe snowland
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// koopa troopa beach
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// royal raceway
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// luigi raceway
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// moo moo farm
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// toad's turnpike
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// kalimari desert
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// sherbet land
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// rainbow road
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// wario stadium
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// block fort
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// skyscraper
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// double deck
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// d.k.'s jungle parkway
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// big donut
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// null
|
||||
{ 0.0f, 0.0f, 0.0f, 0.0f, },
|
||||
|
||||
};
|
||||
|
||||
Vec4f D_0D009568[] = {
|
||||
// mario raceway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// choco mountain
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// bowser's castle
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// banshee boardwalk
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// yoshi valley
|
||||
{ 3.75f, 4.5833334f, 4.5833334f, 4.5833334f, },
|
||||
// frappe snowland
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// koopa troopa beach
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// royal raceway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// luigi raceway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// moo moo farm
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// toad's turnpike
|
||||
{ 4.1666665f, 5.5833334f, 6.1666665f, 6.75f, },
|
||||
// kalimari desert
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// sherbet land
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// rainbow road
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// wario stadium
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// block fort
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// skyscraper
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// double deck
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// d.k.'s jungle parkway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// big donut
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// null
|
||||
{ 0.0f, 0.0f, 0.0f, 0.0f, },
|
||||
|
||||
};
|
||||
|
||||
Vec4f D_0D0096B8[] = {
|
||||
// mario raceway
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// choco mountain
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// bowser's castle
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// banshee boardwalk
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// yoshi valley
|
||||
{ 3.3333332f, 3.3333332f, 3.3333332f, 3.3333332f, },
|
||||
// frappe snowland
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// koopa troopa beach
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// royal raceway
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// luigi raceway
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// moo moo farm
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// toad's turnpike
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// kalimari desert
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// sherbet land
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// rainbow road
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// wario stadium
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// block fort
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// skyscraper
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// double deck
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// d.k.'s jungle parkway
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// big donut
|
||||
{ 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, },
|
||||
// null
|
||||
{ 0.0f, 0.0f, 0.0f, 0.0f, },
|
||||
|
||||
};
|
||||
|
||||
Vec4f D_0D009808[] = {
|
||||
// mario raceway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// choco mountain
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// bowser's castle
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// banshee boardwalk
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// yoshi valley
|
||||
{ 2.9166667f, 3.75f, 3.75f, 3.75f, },
|
||||
// frappe snowland
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// koopa troopa beach
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// royal raceway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// luigi raceway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// moo moo farm
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// toad's turnpike
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// kalimari desert
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// sherbet land
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// rainbow road
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// wario stadium
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// block fort
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// skyscraper
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// double deck
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// d.k.'s jungle parkway
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// big donut
|
||||
{ 3.75f, 5.1666665f, 5.75f, 6.3333334f, },
|
||||
// null
|
||||
{ 0.0f, 0.0f, 0.0f, 0.0f, },
|
||||
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
|
||||
#include <libultraship.h>
|
||||
#include <common_structs.h>
|
||||
|
||||
Vec4f D_0D009418[];
|
||||
Vec4f D_0D009568[];
|
||||
Vec4f D_0D0096B8[];
|
||||
Vec4f D_0D009808[];
|
||||
@@ -48,7 +48,6 @@ extern Gfx D_02007FC8[];
|
||||
extern Gfx D_02008008[];
|
||||
extern Gfx D_02008030[];
|
||||
extern Gfx D_02008058[];
|
||||
extern Gfx common_rectangle_display[];
|
||||
|
||||
extern Vtx D_02007BB8[];
|
||||
#ifndef AVOID_UB
|
||||
|
||||
+2
-2
@@ -2,9 +2,9 @@
|
||||
#include <macros.h>
|
||||
#include "main.h"
|
||||
#include <mk64.h>
|
||||
#include <assets/common_data.h>
|
||||
|
||||
extern s16 D_800E43A8;
|
||||
extern Mtx D_0D008E98;
|
||||
|
||||
// rsp init
|
||||
UNUSED void gfx_func_80040D00(void) {
|
||||
@@ -16,5 +16,5 @@ UNUSED void gfx_func_80040D00(void) {
|
||||
guOrtho(&gGfxPool->mtxScreen, 0.0f, SCREEN_WIDTH, 0.0f, SCREEN_HEIGHT, -1.0f, 1.0f, 1.0f);
|
||||
gSPPerspNormalize(gDisplayListHead++, 0xFFFF);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(gGfxPool), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_0D008E98), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_0D008E98), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,14 @@
|
||||
#include "common_structs.h"
|
||||
#include "kart_dma.h"
|
||||
#include "defines.h"
|
||||
#include <assets/mario_kart.h>
|
||||
#include <assets/luigi_kart.h>
|
||||
#include <assets/peach_kart.h>
|
||||
#include <assets/yoshi_kart.h>
|
||||
#include <assets/toad_kart.h>
|
||||
#include <assets/bowser_kart.h>
|
||||
#include <assets/wario_kart.h>
|
||||
#include <assets/donkeykong_kart.h>
|
||||
|
||||
// Seemingly the largest compressed size for a frame for a given character
|
||||
// They seem slightly oversized too, either an alignemnt or safety thing
|
||||
|
||||
+2576
-2585
File diff suppressed because it is too large
Load Diff
+7
-45
@@ -1323,54 +1323,16 @@ void *decompress_segments(u8 *start, u8 *end) {
|
||||
* @param courseId
|
||||
*/
|
||||
void load_course(s32 courseId) {
|
||||
// UNUSED s32 pad[4];
|
||||
// u8 *vtxCompressed; // mio0 compressed
|
||||
// u8 *courseDataRomStart; // mio0 compressed
|
||||
// u8 *courseDataRomEnd;
|
||||
// u8 *vertexRomStart; // mio0 compressed
|
||||
// u8 *vertexRomEnd;
|
||||
// UNUSED s32 pad2[2];
|
||||
// uintptr_t textures;
|
||||
// CourseVtx *vertexStart; // mio0 compressed
|
||||
// u8 *packedStart;
|
||||
// uintptr_t vertexCount;
|
||||
// u8 *finalDisplaylistOffset;
|
||||
// uintptr_t unknown1;
|
||||
// s32 prevLoadedAddress_saved;
|
||||
// u8 *offsetRomStart;
|
||||
// u8 *offsetRomEnd;
|
||||
// Future implementation for Extra mode and course stretching.
|
||||
|
||||
// // Pointers to rom offsets
|
||||
// //gamestate = gGamestate;
|
||||
// courseDataRomStart = gCourseTable[courseId].dlRomStart;
|
||||
// courseDataRomEnd = gCourseTable[courseId].dlRomEnd;
|
||||
// offsetRomStart = gCourseTable[courseId].offsetRomStart;
|
||||
// offsetRomEnd = gCourseTable[courseId].offsetRomEnd;
|
||||
// vertexRomStart = gCourseTable[courseId].vertexRomStart;
|
||||
// vertexRomEnd = gCourseTable[courseId].vertexRomEnd;
|
||||
// textures = gCourseTable[courseId].textures;
|
||||
// vertexStart = gCourseTable[courseId].vertexStart;
|
||||
// packedStart = gCourseTable[courseId].packedStart;
|
||||
// vertexCount = gCourseTable[courseId].vertexCount;
|
||||
// finalDisplaylistOffset = gCourseTable[courseId].finalDisplaylistOffset;
|
||||
// unknown1 = gCourseTable[courseId].unknown1;
|
||||
|
||||
// if ((gGamestate == ENDING) || (gGamestate == CREDITS_SEQUENCE)) {
|
||||
// gHeapEndPtr = SEG_ENDING;
|
||||
// } else {
|
||||
// gHeapEndPtr = SEG_RACING;
|
||||
// if (gIsMirrorMode) {
|
||||
// for (size_t i = 0; i < sizeof(vtx); i++) {
|
||||
// dest->v.ob[0] = -courseVtx->ob[0];
|
||||
// }
|
||||
// }
|
||||
// set_segment_base_addr(9, load_data((uintptr_t)offsetRomStart, (uintptr_t) offsetRomEnd));
|
||||
|
||||
// if (gGamestate != ENDING) {
|
||||
// set_segment_base_addr(6, decompress_segments(courseDataRomStart, courseDataRomEnd));
|
||||
// if (vtxStretchY != 1.0f) {
|
||||
// dest->v.ob[1] *= vtxStretchY;
|
||||
// }
|
||||
// prevLoadedAddress_saved = gNextFreeMemoryAddress;
|
||||
// vtxCompressed = dma_compressed_vtx(vertexRomStart, vertexRomEnd);
|
||||
|
||||
// set_segment_base_addr(0xF, (void *) vtxCompressed);
|
||||
// decompress_vtx(vertexStart, vertexCount);
|
||||
// displaylist_unpack((uintptr_t *) packedStart, finalDisplaylistOffset, unknown1);
|
||||
// decompress_textures(textures);
|
||||
// gNextFreeMemoryAddress = prevLoadedAddress_saved;
|
||||
}
|
||||
|
||||
@@ -71,11 +71,11 @@ void parse_course_displaylists(uintptr_t addr) {
|
||||
|
||||
extern u32 isFlycam;
|
||||
|
||||
void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) {
|
||||
void load_surface_map(Gfx *addr[], struct UnkStruct_800DC5EC *arg1) {
|
||||
Player *player = arg1->player;
|
||||
Camera *camera = arg1->camera;
|
||||
//! @todo Should be Gfx*
|
||||
Gfx** gfx = (Gfx**) &addr;
|
||||
Gfx **gfx = &addr;
|
||||
s16 var_a3;
|
||||
s16 temp_v1;
|
||||
s16 sp1E;
|
||||
@@ -179,7 +179,7 @@ void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) {
|
||||
arg1->pathCounter = temp_v1;
|
||||
temp_v1 = ((temp_v1 - 1) * 4) + var_a3;
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, (Gfx *)gfx[temp_v1]);
|
||||
gSPDisplayList(gDisplayListHead++, (Gfx *)&gfx[temp_v1]);
|
||||
}
|
||||
|
||||
void func_80291198(void) {
|
||||
@@ -598,8 +598,8 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_3508));
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_3240));
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_14A0));
|
||||
|
||||
load_surface_map((uintptr_t) mario_raceway_dls, arg0);
|
||||
printf("LOADING SURFACE MAP\n");
|
||||
load_surface_map(&mario_raceway_dls, arg0);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
@@ -608,6 +608,7 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_E0));
|
||||
gSPDisplayList(gDisplayListHead++, ((uintptr_t) d_course_mario_raceway_packed_dl_160));
|
||||
printf("SURFACE MAP LOADED\n");
|
||||
}
|
||||
|
||||
void render_choco_mountain(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
void func_8029122C(struct UnkStruct_800DC5EC*, s32);
|
||||
s32 func_80290C20(Camera*);
|
||||
void parse_course_displaylists(uintptr_t);
|
||||
void load_surface_map(uintptr_t, struct UnkStruct_800DC5EC*);
|
||||
void load_surface_map(Gfx*, struct UnkStruct_800DC5EC*);
|
||||
void func_80291198(void);
|
||||
void func_802911C4(void);
|
||||
void render_mario_raceway(struct UnkStruct_800DC5EC*);
|
||||
|
||||
@@ -426,7 +426,7 @@ void func_802A487C(Vtx *arg0, UNUSED struct UnkStruct_800DC5EC *arg1, UNUSED s32
|
||||
guOrtho(&gGfxPool->mtxScreen, 0.0f, SCREEN_WIDTH, 0.0f, SCREEN_HEIGHT, 0.0f, 5.0f, 1.0f);
|
||||
gSPPerspNormalize(gDisplayListHead++, 0xFFFF);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxScreen), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_0D008E98), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, D_0D008E98, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPVertex(gDisplayListHead++, &arg0[4], 4, 0);
|
||||
gSP2Triangles(gDisplayListHead++, 0, 3, 1, 0, 1, 3, 2, 0);
|
||||
}
|
||||
@@ -478,7 +478,7 @@ void func_802A4A0C(Vtx *vtx, struct UnkStruct_800DC5EC *arg1, UNUSED s32 arg2, U
|
||||
guOrtho(&gGfxPool->mtxScreen, 0.0f, SCREEN_WIDTH, 0.0f, SCREEN_HEIGHT, 0.0f, 5.0f, 1.0f);
|
||||
gSPPerspNormalize(gDisplayListHead++, 0xFFFF);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxScreen), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_0D008E98), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPMatrix(gDisplayListHead++, D_0D008E98, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPVertex(gDisplayListHead++, &vtx[0], 4, 0);
|
||||
gSP2Triangles(gDisplayListHead++, 0, 3, 1, 0, 1, 3, 2, 0);
|
||||
if (gCurrentCourseId == COURSE_RAINBOW_ROAD) {
|
||||
|
||||
+65
-47
@@ -4,8 +4,9 @@
|
||||
**/
|
||||
|
||||
#include <libultraship.h>
|
||||
#include <mk64.h>
|
||||
#include <libultra/gbi.h>
|
||||
#include <mk64.h>
|
||||
#include <align_asset_macro.h>
|
||||
#include <macros.h>
|
||||
#include <defines.h>
|
||||
#include <common_structs.h>
|
||||
@@ -3081,19 +3082,22 @@ void func_80052080(void) {
|
||||
func_80051C60(240 - D_800DC5F0->cameraHeight, D_8018D1F0);
|
||||
}
|
||||
|
||||
|
||||
void func_800520C0(s32 arg0) {
|
||||
Lights1 *D_800E45C0l = LOAD_ASSET(D_800E45C0);
|
||||
if (gObjectList[arg0].unk_0D5 == 0) {
|
||||
D_800E45C0[0].l[0].l.dir[0] = D_800E45C0[1].l[0].l.dir[0] = D_800E45C0[2].l[0].l.dir[0] = D_800E45C0[3].l[0].l.dir[0] = 0;
|
||||
D_800E45C0[0].l[0].l.dir[1] = D_800E45C0[1].l[0].l.dir[1] = D_800E45C0[2].l[0].l.dir[1] = D_800E45C0[3].l[0].l.dir[1] = -0x78;
|
||||
D_800E45C0[0].l[0].l.dir[2] = D_800E45C0[1].l[0].l.dir[2] = D_800E45C0[2].l[0].l.dir[2] = D_800E45C0[3].l[0].l.dir[2] = 0;
|
||||
D_800E45C0l[0].l[0].l.dir[0] = D_800E45C0l[1].l[0].l.dir[0] = D_800E45C0l[2].l[0].l.dir[0] = D_800E45C0l[3].l[0].l.dir[0] = 0;
|
||||
D_800E45C0l[0].l[0].l.dir[1] = D_800E45C0l[1].l[0].l.dir[1] = D_800E45C0l[2].l[0].l.dir[1] = D_800E45C0l[3].l[0].l.dir[1] = -0x78;
|
||||
D_800E45C0l[0].l[0].l.dir[2] = D_800E45C0l[1].l[0].l.dir[2] = D_800E45C0l[2].l[0].l.dir[2] = D_800E45C0l[3].l[0].l.dir[2] = 0;
|
||||
} else {
|
||||
D_800E45C0[0].l[0].l.dir[0] = D_800E45C0[1].l[0].l.dir[0] = D_800E45C0[2].l[0].l.dir[0] = D_800E45C0[3].l[0].l.dir[0] = 0x63;
|
||||
D_800E45C0[0].l[0].l.dir[1] = D_800E45C0[1].l[0].l.dir[1] = D_800E45C0[2].l[0].l.dir[1] = D_800E45C0[3].l[0].l.dir[1] = 0x42;
|
||||
D_800E45C0[0].l[0].l.dir[2] = D_800E45C0[1].l[0].l.dir[2] = D_800E45C0[2].l[0].l.dir[2] = D_800E45C0[3].l[0].l.dir[2] = 0;
|
||||
D_800E45C0l[0].l[0].l.dir[0] = D_800E45C0l[1].l[0].l.dir[0] = D_800E45C0l[2].l[0].l.dir[0] = D_800E45C0l[3].l[0].l.dir[0] = 0x63;
|
||||
D_800E45C0l[0].l[0].l.dir[1] = D_800E45C0l[1].l[0].l.dir[1] = D_800E45C0l[2].l[0].l.dir[1] = D_800E45C0l[3].l[0].l.dir[1] = 0x42;
|
||||
D_800E45C0l[0].l[0].l.dir[2] = D_800E45C0l[1].l[0].l.dir[2] = D_800E45C0l[2].l[0].l.dir[2] = D_800E45C0l[3].l[0].l.dir[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void func_8005217C(UNUSED s32 arg0) {
|
||||
Lights1 *D_800E45C0l = LOAD_ASSET(D_800E45C0);
|
||||
Objects *object;
|
||||
s32 temp_a3;
|
||||
|
||||
@@ -3105,17 +3109,17 @@ void func_8005217C(UNUSED s32 arg0) {
|
||||
func_800520C0(temp_a3);
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007828);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[0].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[0].a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[0].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[0].a, LIGHT_2);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_banshee_boardwalk_dl_7B38);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[1].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[1].a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[1].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[1].a, LIGHT_2);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_banshee_boardwalk_dl_7978);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[2].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[2].a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[2].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[2].a, LIGHT_2);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_banshee_boardwalk_dl_78C0);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[3].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0[3].a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[3].l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E45C0l[3].a, LIGHT_2);
|
||||
gSPDisplayList(gDisplayListHead++, d_course_banshee_boardwalk_dl_7650);
|
||||
}
|
||||
}
|
||||
@@ -3216,14 +3220,15 @@ void func_800528EC(s32 arg0) {
|
||||
s32 var_s3;
|
||||
s32 objectIndex;
|
||||
Objects *object;
|
||||
Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
|
||||
D_80183E80[0] = D_8016582C[0];
|
||||
D_80183E80[1] = D_8016582C[1];
|
||||
D_80183E80[2] = D_8016582C[2];
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007B00);
|
||||
gSPNumLights(gDisplayListHead++, 1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.a, LIGHT_2);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
|
||||
@@ -3261,12 +3266,12 @@ void func_800528EC(s32 arg0) {
|
||||
void render_ice_block(s32 arg0) {
|
||||
s32 playerId;
|
||||
s32 objectIndex;
|
||||
|
||||
D_800E4620.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.a, LIGHT_2);
|
||||
Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
D_800E4620l.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620l.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620l.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.a, LIGHT_2);
|
||||
for (playerId = 0; playerId < gPlayerCountSelection1; playerId++) {
|
||||
objectIndex = gIndexLakituList[playerId];
|
||||
if (objectIndex) {}
|
||||
@@ -3294,12 +3299,12 @@ void func_80052D70(s32 playerId) {
|
||||
|
||||
void func_80052E30(UNUSED s32 arg0) {
|
||||
s32 var_s0;
|
||||
|
||||
D_800E4620.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620.a, LIGHT_2);
|
||||
Lights1 D_800E4620l = *(Lights1 *) LOAD_ASSET(D_800E4620);
|
||||
D_800E4620l.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4620l.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4620l.l[0].l.dir[2] = D_80165840[2];
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4620l.a, LIGHT_2);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[1] = 0;
|
||||
D_80183E80[2] = 0;
|
||||
@@ -3405,33 +3410,42 @@ void render_lakitu(s32 cameraId) {
|
||||
|
||||
void func_800534A4(UNUSED s32 arg0) {
|
||||
func_800419F8();
|
||||
D_800E4638.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4638.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4638.l[0].l.dir[2] = D_80165840[2];
|
||||
Lights1 D_800E4638l = *(Lights1 *) LOAD_ASSET(D_800E4638);
|
||||
D_800E4638l.l[0].l.dir[0] = D_80165840[0];
|
||||
D_800E4638l.l[0].l.dir[1] = D_80165840[1];
|
||||
D_800E4638l.l[0].l.dir[2] = D_80165840[2];
|
||||
}
|
||||
|
||||
void func_800534E8(s32 objectIndex) {
|
||||
|
||||
Lights1 D_800E4638l = *(Lights1 *) LOAD_ASSET(D_800E4638);
|
||||
Lights1 D_800E4650l = *(Lights1 *) LOAD_ASSET(D_800E4650);
|
||||
Lights1 D_800E4668l = *(Lights1 *) LOAD_ASSET(D_800E4668);
|
||||
Lights1 D_800E4680l = *(Lights1 *) LOAD_ASSET(D_800E4680);
|
||||
Lights1 D_800E4698l = *(Lights1 *) LOAD_ASSET(D_800E4698);
|
||||
|
||||
|
||||
// Why these don't just use `gSPSetLights1` calls...
|
||||
switch (gObjectList[objectIndex].type) { // hmm very strange 80165C18
|
||||
case 0:
|
||||
gSPLight(gDisplayListHead++, &D_800E4638.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4638.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4638l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4638l.a, LIGHT_2);
|
||||
break;
|
||||
case 1:
|
||||
gSPLight(gDisplayListHead++, &D_800E4650.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4650.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4650l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4650l.a, LIGHT_2);
|
||||
break;
|
||||
case 2:
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.a, LIGHT_2);
|
||||
break;
|
||||
case 3:
|
||||
gSPLight(gDisplayListHead++, &D_800E4680.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4680.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4680l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4680l.a, LIGHT_2);
|
||||
break;
|
||||
case 4:
|
||||
gSPLight(gDisplayListHead++, &D_800E4698.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4698.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4698l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4698l.a, LIGHT_2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -3458,6 +3472,7 @@ void render_object_thwomps(s32 cameraId) {
|
||||
s16 minusone, plusone;
|
||||
Camera *camera;
|
||||
Objects *object;
|
||||
Lights1 D_800E4668l = *(Lights1 *) LOAD_ASSET(D_800E4668);
|
||||
|
||||
camera = &camera1[cameraId];
|
||||
if (cameraId == PLAYER_ONE) {
|
||||
@@ -3484,8 +3499,8 @@ void render_object_thwomps(s32 cameraId) {
|
||||
gSPDisplayList(gDisplayListHead++, D_0D0079C8);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
|
||||
gSPNumLights(gDisplayListHead++, 1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668.a, LIGHT_2);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.l[0], LIGHT_1);
|
||||
gSPLight(gDisplayListHead++, &D_800E4668l.a, LIGHT_2);
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH);
|
||||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH);
|
||||
load_texture_block_rgba16_mirror(d_course_bowsers_castle_thwomp_side, 0x00000020, 0x00000020);
|
||||
@@ -4169,9 +4184,12 @@ void render_object_neon(s32 cameraId) {
|
||||
}
|
||||
|
||||
void func_800562E4(s32 arg0, s32 arg1, s32 arg2) {
|
||||
D_80165860 = D_800E46F8[arg0][0];
|
||||
D_8016586C = D_800E46F8[arg0][1];
|
||||
D_80165878 = D_800E46F8[arg0][2];
|
||||
|
||||
Vec3iu *A_800E46F8 = LOAD_ASSET(D_800E46F8);
|
||||
|
||||
D_80165860 = A_800E46F8[arg0][0];
|
||||
D_8016586C = A_800E46F8[arg0][1];
|
||||
D_80165878 = A_800E46F8[arg0][2];
|
||||
func_8004B138(D_80165860, D_8016586C, D_80165878, arg2);
|
||||
rsp_set_matrix_transformation(D_80183E40, D_80183E80, 0.2f);
|
||||
func_80044BF8(common_texture_particle_spark[arg1], 0x00000020, 0x00000020);
|
||||
|
||||
@@ -449,12 +449,6 @@ extern u8* D_8018D4C0;
|
||||
|
||||
extern u8 *gPortraitTextures[];
|
||||
|
||||
extern Lights1 D_800E4638;
|
||||
extern Lights1 D_800E4650;
|
||||
extern Lights1 D_800E4668;
|
||||
extern Lights1 D_800E4680;
|
||||
extern Lights1 D_800E4698;
|
||||
|
||||
extern u8 d_course_bowsers_castle_thwomp_tlut[]; // Some type of pallette?
|
||||
|
||||
#endif
|
||||
|
||||
@@ -22,6 +22,14 @@
|
||||
#include <assets/common_data.h>
|
||||
#include "skybox_and_splitscreen.h"
|
||||
#include "spawn_players.h"
|
||||
#include <assets/mario_kart.h>
|
||||
#include <assets/luigi_kart.h>
|
||||
#include <assets/peach_kart.h>
|
||||
#include <assets/yoshi_kart.h>
|
||||
#include <assets/toad_kart.h>
|
||||
#include <assets/bowser_kart.h>
|
||||
#include <assets/wario_kart.h>
|
||||
#include <assets/donkeykong_kart.h>
|
||||
|
||||
s8 gRenderingFramebufferByPlayer[] = {
|
||||
0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02
|
||||
|
||||
+144
-147
@@ -87,9 +87,6 @@ extern s32 D_80164B80[];
|
||||
|
||||
extern s32 D_8018D930[];
|
||||
|
||||
extern Gfx common_square_plain_render[];
|
||||
extern Gfx D_0D008D58[];
|
||||
|
||||
extern s32 gPlayersToRenderCount;
|
||||
extern void *D_800DDB5C[];
|
||||
extern Vtx *D_800DDBB4[];
|
||||
@@ -134,150 +131,150 @@ extern u16 **D_800DDE54[];
|
||||
|
||||
|
||||
// These all come the kart data stuff, they should end up in their own inc.c eventually
|
||||
extern u8 *gKartMario168Wheel0[];
|
||||
extern u8 *gKartMario147Wheel0[];
|
||||
extern u8 *gKartMario126Wheel0[];
|
||||
extern u8 *gKartMario105Wheel0[];
|
||||
extern u8 *gKartMario084Wheel0[];
|
||||
extern u8 *gKartMario063Wheel0[];
|
||||
extern u8 *gKartMario042Wheel0[];
|
||||
extern u8 *gKartMario021Wheel0[];
|
||||
extern u8 *gKartMario000Wheel0[];
|
||||
extern u8 *gKartMario269Wheel0[];
|
||||
extern u8 *gKartMario269Wheel0[];
|
||||
extern u8 *gKartMario249Wheel0[];
|
||||
extern u8 *gKartMario229Wheel0[];
|
||||
extern u8 *gKartMario229Wheel0[];
|
||||
extern u8 *gKartMario229Wheel0[];
|
||||
extern u8 *gKartMario209Wheel0[];
|
||||
extern u8 *gKartMario189Wheel0[];
|
||||
extern u8 *gKartMario189Wheel0[];
|
||||
extern u8 *gKartLuigi168Wheel0[];
|
||||
extern u8 *gKartLuigi147Wheel0[];
|
||||
extern u8 *gKartLuigi126Wheel0[];
|
||||
extern u8 *gKartLuigi105Wheel0[];
|
||||
extern u8 *gKartLuigi084Wheel0[];
|
||||
extern u8 *gKartLuigi063Wheel0[];
|
||||
extern u8 *gKartLuigi042Wheel0[];
|
||||
extern u8 *gKartLuigi021Wheel0[];
|
||||
extern u8 *gKartLuigi000Wheel0[];
|
||||
extern u8 *gKartLuigi269Wheel0[];
|
||||
extern u8 *gKartLuigi269Wheel0[];
|
||||
extern u8 *gKartLuigi249Wheel0[];
|
||||
extern u8 *gKartLuigi229Wheel0[];
|
||||
extern u8 *gKartLuigi229Wheel0[];
|
||||
extern u8 *gKartLuigi229Wheel0[];
|
||||
extern u8 *gKartLuigi209Wheel0[];
|
||||
extern u8 *gKartLuigi189Wheel0[];
|
||||
extern u8 *gKartLuigi189Wheel0[];
|
||||
extern u8 *gKartBowser168Wheel0[];
|
||||
extern u8 *gKartBowser147Wheel0[];
|
||||
extern u8 *gKartBowser126Wheel0[];
|
||||
extern u8 *gKartBowser105Wheel0[];
|
||||
extern u8 *gKartBowser084Wheel0[];
|
||||
extern u8 *gKartBowser063Wheel0[];
|
||||
extern u8 *gKartBowser042Wheel0[];
|
||||
extern u8 *gKartBowser021Wheel0[];
|
||||
extern u8 *gKartBowser000Wheel0[];
|
||||
extern u8 *gKartBowser269Wheel0[];
|
||||
extern u8 *gKartBowser269Wheel0[];
|
||||
extern u8 *gKartBowser249Wheel0[];
|
||||
extern u8 *gKartBowser229Wheel0[];
|
||||
extern u8 *gKartBowser229Wheel0[];
|
||||
extern u8 *gKartBowser229Wheel0[];
|
||||
extern u8 *gKartBowser209Wheel0[];
|
||||
extern u8 *gKartBowser189Wheel0[];
|
||||
extern u8 *gKartBowser189Wheel0[];
|
||||
extern u8 *gKartToad168Wheel0[];
|
||||
extern u8 *gKartToad147Wheel0[];
|
||||
extern u8 *gKartToad126Wheel0[];
|
||||
extern u8 *gKartToad105Wheel0[];
|
||||
extern u8 *gKartToad084Wheel0[];
|
||||
extern u8 *gKartToad063Wheel0[];
|
||||
extern u8 *gKartToad042Wheel0[];
|
||||
extern u8 *gKartToad021Wheel0[];
|
||||
extern u8 *gKartToad000Wheel0[];
|
||||
extern u8 *gKartToad269Wheel0[];
|
||||
extern u8 *gKartToad269Wheel0[];
|
||||
extern u8 *gKartToad249Wheel0[];
|
||||
extern u8 *gKartToad229Wheel0[];
|
||||
extern u8 *gKartToad229Wheel0[];
|
||||
extern u8 *gKartToad229Wheel0[];
|
||||
extern u8 *gKartToad209Wheel0[];
|
||||
extern u8 *gKartToad189Wheel0[];
|
||||
extern u8 *gKartToad189Wheel0[];
|
||||
extern u8 *gKartYoshi168Wheel0[];
|
||||
extern u8 *gKartYoshi147Wheel0[];
|
||||
extern u8 *gKartYoshi126Wheel0[];
|
||||
extern u8 *gKartYoshi105Wheel0[];
|
||||
extern u8 *gKartYoshi084Wheel0[];
|
||||
extern u8 *gKartYoshi063Wheel0[];
|
||||
extern u8 *gKartYoshi042Wheel0[];
|
||||
extern u8 *gKartYoshi021Wheel0[];
|
||||
extern u8 *gKartYoshi000Wheel0[];
|
||||
extern u8 *gKartYoshi269Wheel0[];
|
||||
extern u8 *gKartYoshi269Wheel0[];
|
||||
extern u8 *gKartYoshi249Wheel0[];
|
||||
extern u8 *gKartYoshi229Wheel0[];
|
||||
extern u8 *gKartYoshi229Wheel0[];
|
||||
extern u8 *gKartYoshi229Wheel0[];
|
||||
extern u8 *gKartYoshi209Wheel0[];
|
||||
extern u8 *gKartYoshi189Wheel0[];
|
||||
extern u8 *gKartYoshi189Wheel0[];
|
||||
extern u8 *gKartDK168Wheel0[];
|
||||
extern u8 *gKartDK147Wheel0[];
|
||||
extern u8 *gKartDK126Wheel0[];
|
||||
extern u8 *gKartDK105Wheel0[];
|
||||
extern u8 *gKartDK084Wheel0[];
|
||||
extern u8 *gKartDK063Wheel0[];
|
||||
extern u8 *gKartDK042Wheel0[];
|
||||
extern u8 *gKartDK021Wheel0[];
|
||||
extern u8 *gKartDK000Wheel0[];
|
||||
extern u8 *gKartDK269Wheel0[];
|
||||
extern u8 *gKartDK269Wheel0[];
|
||||
extern u8 *gKartDK249Wheel0[];
|
||||
extern u8 *gKartDK229Wheel0[];
|
||||
extern u8 *gKartDK229Wheel0[];
|
||||
extern u8 *gKartDK229Wheel0[];
|
||||
extern u8 *gKartDK209Wheel0[];
|
||||
extern u8 *gKartDK189Wheel0[];
|
||||
extern u8 *gKartDK189Wheel0[];
|
||||
extern u8 *gKartPeach168Wheel0[];
|
||||
extern u8 *gKartPeach147Wheel0[];
|
||||
extern u8 *gKartPeach126Wheel0[];
|
||||
extern u8 *gKartPeach105Wheel0[];
|
||||
extern u8 *gKartPeach084Wheel0[];
|
||||
extern u8 *gKartPeach063Wheel0[];
|
||||
extern u8 *gKartPeach042Wheel0[];
|
||||
extern u8 *gKartPeach021Wheel0[];
|
||||
extern u8 *gKartPeach000Wheel0[];
|
||||
extern u8 *gKartPeach269Wheel0[];
|
||||
extern u8 *gKartPeach269Wheel0[];
|
||||
extern u8 *gKartPeach249Wheel0[];
|
||||
extern u8 *gKartPeach229Wheel0[];
|
||||
extern u8 *gKartPeach229Wheel0[];
|
||||
extern u8 *gKartPeach229Wheel0[];
|
||||
extern u8 *gKartPeach209Wheel0[];
|
||||
extern u8 *gKartPeach189Wheel0[];
|
||||
extern u8 *gKartPeach189Wheel0[];
|
||||
extern u8 *gKartWario168Wheel0[];
|
||||
extern u8 *gKartWario147Wheel0[];
|
||||
extern u8 *gKartWario126Wheel0[];
|
||||
extern u8 *gKartWario105Wheel0[];
|
||||
extern u8 *gKartWario084Wheel0[];
|
||||
extern u8 *gKartWario063Wheel0[];
|
||||
extern u8 *gKartWario042Wheel0[];
|
||||
extern u8 *gKartWario021Wheel0[];
|
||||
extern u8 *gKartWario000Wheel0[];
|
||||
extern u8 *gKartWario269Wheel0[];
|
||||
extern u8 *gKartWario269Wheel0[];
|
||||
extern u8 *gKartWario249Wheel0[];
|
||||
extern u8 *gKartWario229Wheel0[];
|
||||
extern u8 *gKartWario229Wheel0[];
|
||||
extern u8 *gKartWario229Wheel0[];
|
||||
extern u8 *gKartWario209Wheel0[];
|
||||
extern u8 *gKartWario189Wheel0[];
|
||||
extern u8 *gKartWario189Wheel0[];
|
||||
// extern u8 *gKartMario168Wheel0[];
|
||||
// extern u8 *gKartMario147Wheel0[];
|
||||
// extern u8 *gKartMario126Wheel0[];
|
||||
// extern u8 *gKartMario105Wheel0[];
|
||||
// extern u8 *gKartMario084Wheel0[];
|
||||
// extern u8 *gKartMario063Wheel0[];
|
||||
// extern u8 *gKartMario042Wheel0[];
|
||||
// extern u8 *gKartMario021Wheel0[];
|
||||
// extern u8 *gKartMario000Wheel0[];
|
||||
// extern u8 *gKartMario269Wheel0[];
|
||||
// extern u8 *gKartMario269Wheel0[];
|
||||
// extern u8 *gKartMario249Wheel0[];
|
||||
// extern u8 *gKartMario229Wheel0[];
|
||||
// extern u8 *gKartMario229Wheel0[];
|
||||
// extern u8 *gKartMario229Wheel0[];
|
||||
// extern u8 *gKartMario209Wheel0[];
|
||||
// extern u8 *gKartMario189Wheel0[];
|
||||
// extern u8 *gKartMario189Wheel0[];
|
||||
// extern u8 *gKartLuigi168Wheel0[];
|
||||
// extern u8 *gKartLuigi147Wheel0[];
|
||||
// extern u8 *gKartLuigi126Wheel0[];
|
||||
// extern u8 *gKartLuigi105Wheel0[];
|
||||
// extern u8 *gKartLuigi084Wheel0[];
|
||||
// extern u8 *gKartLuigi063Wheel0[];
|
||||
// extern u8 *gKartLuigi042Wheel0[];
|
||||
// extern u8 *gKartLuigi021Wheel0[];
|
||||
// extern u8 *gKartLuigi000Wheel0[];
|
||||
// extern u8 *gKartLuigi269Wheel0[];
|
||||
// extern u8 *gKartLuigi269Wheel0[];
|
||||
// extern u8 *gKartLuigi249Wheel0[];
|
||||
// extern u8 *gKartLuigi229Wheel0[];
|
||||
// extern u8 *gKartLuigi229Wheel0[];
|
||||
// extern u8 *gKartLuigi229Wheel0[];
|
||||
// extern u8 *gKartLuigi209Wheel0[];
|
||||
// extern u8 *gKartLuigi189Wheel0[];
|
||||
// extern u8 *gKartLuigi189Wheel0[];
|
||||
// extern u8 *gKartBowser168Wheel0[];
|
||||
// extern u8 *gKartBowser147Wheel0[];
|
||||
// extern u8 *gKartBowser126Wheel0[];
|
||||
// extern u8 *gKartBowser105Wheel0[];
|
||||
// extern u8 *gKartBowser084Wheel0[];
|
||||
// extern u8 *gKartBowser063Wheel0[];
|
||||
// extern u8 *gKartBowser042Wheel0[];
|
||||
// extern u8 *gKartBowser021Wheel0[];
|
||||
// extern u8 *gKartBowser000Wheel0[];
|
||||
// extern u8 *gKartBowser269Wheel0[];
|
||||
// extern u8 *gKartBowser269Wheel0[];
|
||||
// extern u8 *gKartBowser249Wheel0[];
|
||||
// extern u8 *gKartBowser229Wheel0[];
|
||||
// extern u8 *gKartBowser229Wheel0[];
|
||||
// extern u8 *gKartBowser229Wheel0[];
|
||||
// extern u8 *gKartBowser209Wheel0[];
|
||||
// extern u8 *gKartBowser189Wheel0[];
|
||||
// extern u8 *gKartBowser189Wheel0[];
|
||||
// extern u8 *gKartToad168Wheel0[];
|
||||
// extern u8 *gKartToad147Wheel0[];
|
||||
// extern u8 *gKartToad126Wheel0[];
|
||||
// extern u8 *gKartToad105Wheel0[];
|
||||
// extern u8 *gKartToad084Wheel0[];
|
||||
// extern u8 *gKartToad063Wheel0[];
|
||||
// extern u8 *gKartToad042Wheel0[];
|
||||
// extern u8 *gKartToad021Wheel0[];
|
||||
// extern u8 *gKartToad000Wheel0[];
|
||||
// extern u8 *gKartToad269Wheel0[];
|
||||
// extern u8 *gKartToad269Wheel0[];
|
||||
// extern u8 *gKartToad249Wheel0[];
|
||||
// extern u8 *gKartToad229Wheel0[];
|
||||
// extern u8 *gKartToad229Wheel0[];
|
||||
// extern u8 *gKartToad229Wheel0[];
|
||||
// extern u8 *gKartToad209Wheel0[];
|
||||
// extern u8 *gKartToad189Wheel0[];
|
||||
// extern u8 *gKartToad189Wheel0[];
|
||||
// extern u8 *gKartYoshi168Wheel0[];
|
||||
// extern u8 *gKartYoshi147Wheel0[];
|
||||
// extern u8 *gKartYoshi126Wheel0[];
|
||||
// extern u8 *gKartYoshi105Wheel0[];
|
||||
// extern u8 *gKartYoshi084Wheel0[];
|
||||
// extern u8 *gKartYoshi063Wheel0[];
|
||||
// extern u8 *gKartYoshi042Wheel0[];
|
||||
// extern u8 *gKartYoshi021Wheel0[];
|
||||
// extern u8 *gKartYoshi000Wheel0[];
|
||||
// extern u8 *gKartYoshi269Wheel0[];
|
||||
// extern u8 *gKartYoshi269Wheel0[];
|
||||
// extern u8 *gKartYoshi249Wheel0[];
|
||||
// extern u8 *gKartYoshi229Wheel0[];
|
||||
// extern u8 *gKartYoshi229Wheel0[];
|
||||
// extern u8 *gKartYoshi229Wheel0[];
|
||||
// extern u8 *gKartYoshi209Wheel0[];
|
||||
// extern u8 *gKartYoshi189Wheel0[];
|
||||
// extern u8 *gKartYoshi189Wheel0[];
|
||||
// extern u8 *gKartDK168Wheel0[];
|
||||
// extern u8 *gKartDK147Wheel0[];
|
||||
// extern u8 *gKartDK126Wheel0[];
|
||||
// extern u8 *gKartDK105Wheel0[];
|
||||
// extern u8 *gKartDK084Wheel0[];
|
||||
// extern u8 *gKartDK063Wheel0[];
|
||||
// extern u8 *gKartDK042Wheel0[];
|
||||
// extern u8 *gKartDK021Wheel0[];
|
||||
// extern u8 *gKartDK000Wheel0[];
|
||||
// extern u8 *gKartDK269Wheel0[];
|
||||
// extern u8 *gKartDK269Wheel0[];
|
||||
// extern u8 *gKartDK249Wheel0[];
|
||||
// extern u8 *gKartDK229Wheel0[];
|
||||
// extern u8 *gKartDK229Wheel0[];
|
||||
// extern u8 *gKartDK229Wheel0[];
|
||||
// extern u8 *gKartDK209Wheel0[];
|
||||
// extern u8 *gKartDK189Wheel0[];
|
||||
// extern u8 *gKartDK189Wheel0[];
|
||||
// extern u8 *gKartPeach168Wheel0[];
|
||||
// extern u8 *gKartPeach147Wheel0[];
|
||||
// extern u8 *gKartPeach126Wheel0[];
|
||||
// extern u8 *gKartPeach105Wheel0[];
|
||||
// extern u8 *gKartPeach084Wheel0[];
|
||||
// extern u8 *gKartPeach063Wheel0[];
|
||||
// extern u8 *gKartPeach042Wheel0[];
|
||||
// extern u8 *gKartPeach021Wheel0[];
|
||||
// extern u8 *gKartPeach000Wheel0[];
|
||||
// extern u8 *gKartPeach269Wheel0[];
|
||||
// extern u8 *gKartPeach269Wheel0[];
|
||||
// extern u8 *gKartPeach249Wheel0[];
|
||||
// extern u8 *gKartPeach229Wheel0[];
|
||||
// extern u8 *gKartPeach229Wheel0[];
|
||||
// extern u8 *gKartPeach229Wheel0[];
|
||||
// extern u8 *gKartPeach209Wheel0[];
|
||||
// extern u8 *gKartPeach189Wheel0[];
|
||||
// extern u8 *gKartPeach189Wheel0[];
|
||||
// extern u8 *gKartWario168Wheel0[];
|
||||
// extern u8 *gKartWario147Wheel0[];
|
||||
// extern u8 *gKartWario126Wheel0[];
|
||||
// extern u8 *gKartWario105Wheel0[];
|
||||
// extern u8 *gKartWario084Wheel0[];
|
||||
// extern u8 *gKartWario063Wheel0[];
|
||||
// extern u8 *gKartWario042Wheel0[];
|
||||
// extern u8 *gKartWario021Wheel0[];
|
||||
// extern u8 *gKartWario000Wheel0[];
|
||||
// extern u8 *gKartWario269Wheel0[];
|
||||
// extern u8 *gKartWario269Wheel0[];
|
||||
// extern u8 *gKartWario249Wheel0[];
|
||||
// extern u8 *gKartWario229Wheel0[];
|
||||
// extern u8 *gKartWario229Wheel0[];
|
||||
// extern u8 *gKartWario229Wheel0[];
|
||||
// extern u8 *gKartWario209Wheel0[];
|
||||
// extern u8 *gKartWario189Wheel0[];
|
||||
// extern u8 *gKartWario189Wheel0[];
|
||||
|
||||
extern s16 D_80165020[40];
|
||||
extern Vec3f D_80165070[8];
|
||||
|
||||
@@ -102,16 +102,15 @@ s32 find_unused_obj_index(s32* arg0) {
|
||||
s32 temp_v1;
|
||||
|
||||
temp_v1 = objectListSize;
|
||||
temp_v0 = 0; do
|
||||
{
|
||||
temp_v0 = 0;
|
||||
do {
|
||||
++temp_v1;
|
||||
++temp_v0;
|
||||
|
||||
if (temp_v1 == 0x226) {
|
||||
if (temp_v1 == OBJECT_LIST_SIZE) {
|
||||
temp_v1 = 0;
|
||||
}
|
||||
|
||||
} while ((gObjectList[temp_v1].unk_0CA != 0) && (temp_v0 != 0x226));
|
||||
} while ((gObjectList[temp_v1].unk_0CA != 0) && (temp_v0 != OBJECT_LIST_SIZE));
|
||||
|
||||
gObjectList[temp_v1].unk_0CA = 1;
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x8B9630]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_banshee_boardwalk_vertex:
|
||||
symbol: d_course_banshee_boardwalk_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 9527
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x8A7640]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_bowsers_castle_vertex:
|
||||
symbol: d_course_bowsers_castle_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 9527
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x89B510]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_choco_mountain_vertex:
|
||||
symbol: d_course_choco_mountain_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 5560
|
||||
offset: 0x0
|
||||
@@ -948,7 +948,7 @@ D_0D009158:
|
||||
symbol: D_0D009158
|
||||
type: mk64:driving_behaviour
|
||||
offset: 0x9158
|
||||
D_0D009158:
|
||||
D_0D009188:
|
||||
symbol: D_0D009188
|
||||
type: mk64:driving_behaviour
|
||||
offset: 0x9188
|
||||
@@ -984,31 +984,6 @@ D_0D0093C0:
|
||||
symbol: D_0D0093C0
|
||||
type: mk64:driving_behaviour
|
||||
offset: 0x93C0
|
||||
D_0D009418:
|
||||
symbol: D_0D009418
|
||||
type: inc
|
||||
offset: 0x9418
|
||||
ctype: Vec4f
|
||||
offset: 0x9418
|
||||
file_path: "assets/course_metadata/D_0D009418.inc.c"
|
||||
D_0D009568:
|
||||
symbol: D_0D009568
|
||||
type: inc
|
||||
offset: 0x9568
|
||||
ctype: Vec4f
|
||||
file_path: "assets/course_metadata/D_0D009568.inc.c"
|
||||
D_0D0096B8:
|
||||
symbol: D_0D0096B8
|
||||
type: inc
|
||||
offset: 0x96B8
|
||||
ctype: Vec4f
|
||||
file_path: "assets/course_metadata/D_0D0096B8.inc.c"
|
||||
D_0D009808:
|
||||
symbol: D_0D009808
|
||||
type: inc
|
||||
offset: 0x9808
|
||||
ctype: Vec4f
|
||||
file_path: "assets/course_metadata/D_0D009808.inc.c"
|
||||
common_texture_speedometer:
|
||||
symbol: common_texture_speedometer
|
||||
type: texture
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x8CC900]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_frappe_snowland_vertex:
|
||||
symbol: d_course_frappe_snowland_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 5529
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x8D8E50]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_koopa_troopa_beach_vertex:
|
||||
symbol: d_course_koopa_troopa_beach_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 9376
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x8FE640]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_luigi_raceway_vertex:
|
||||
symbol: d_course_luigi_raceway_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 5936
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x88FA10]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_mario_raceway_vertex:
|
||||
symbol: d_course_mario_raceway_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 5757
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x90B3E0]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_moo_moo_farm_vertex:
|
||||
symbol: d_course_moo_moo_farm_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 7972
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x8EC390]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_royal_raceway_vertex:
|
||||
symbol: d_course_royal_raceway_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 8306
|
||||
offset: 0x0
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x91B980]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_toads_turnpike_vertex:
|
||||
symbol: d_course_toads_turnpike_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 6359
|
||||
offset: 0x0
|
||||
@@ -12796,3 +12796,4 @@ yoshi_kart_palette:
|
||||
width: 16
|
||||
height: 12
|
||||
format: RGBA16
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
:config:
|
||||
segments:
|
||||
- [0x0F, 0x8C2510]
|
||||
no_compression: true
|
||||
header:
|
||||
code:
|
||||
- '#include <libultraship.h>'
|
||||
header:
|
||||
- '#include <libultraship.h>'
|
||||
- '#include <libultra/gbi.h>'
|
||||
d_course_yoshi_valley_vertex:
|
||||
symbol: d_course_yoshi_valley_vertex
|
||||
type: mk64:course_vtx
|
||||
count: 3720
|
||||
offset: 0x0
|
||||
Reference in New Issue
Block a user