mirror of https://github.com/n64decomp/mk64.git
parent
3dd4c071e1
commit
d9c1ebb626
31
Makefile
31
Makefile
|
@ -2,6 +2,8 @@
|
|||
|
||||
include util.mk
|
||||
|
||||
include safe_gcc.mk
|
||||
|
||||
# Default target
|
||||
default: all
|
||||
|
||||
|
@ -26,9 +28,13 @@ COMPILER ?= ido
|
|||
$(eval $(call validate-option,COMPILER,ido gcc))
|
||||
|
||||
# Add debug tools with 'make DEBUG=1' and modify the macros in include/debug.h
|
||||
# Run make clean first. Add '#define CRASH_SCREEN_ENHANCEMENT' to the top of main.c
|
||||
# Adds crash screen enhancement and activates debug mode
|
||||
# Run make clean first
|
||||
DEBUG ?= 0
|
||||
|
||||
# Compile with GCC
|
||||
GCC ?= 0
|
||||
|
||||
# VERSION - selects the version of the game to build
|
||||
# us - builds the 1997 North American version
|
||||
# eu - builds the 1997 1.1 PAL version
|
||||
|
@ -76,6 +82,7 @@ ifeq ($(COMPILER),ido)
|
|||
MIPSISET := -mips2
|
||||
else ifeq ($(COMPILER),gcc)
|
||||
NON_MATCHING := 1
|
||||
VERSION_ASFLAGS := --defsym AVOID_UB=1
|
||||
MIPSISET := -mips3
|
||||
endif
|
||||
|
||||
|
@ -93,10 +100,14 @@ endif
|
|||
|
||||
ifeq ($(NON_MATCHING),1)
|
||||
DEFINES += NON_MATCHING=1 AVOID_UB=1
|
||||
VERSION_ASFLAGS := --defsym AVOID_UB=1
|
||||
COMPARE := 0
|
||||
endif
|
||||
|
||||
|
||||
# GCC define is to link gcc's std lib.
|
||||
ifeq ($(GCC), 1)
|
||||
DEFINES += AVOID_UB=1 GCC=1
|
||||
endif
|
||||
|
||||
# COMPARE - whether to verify the SHA-1 hash of the ROM after building
|
||||
# 1 - verifies the SHA-1 hash of the selected version of the game
|
||||
|
@ -328,7 +339,7 @@ else
|
|||
CFLAGS += $(HIDE_WARNINGS) -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
|
||||
endif
|
||||
|
||||
ASFLAGS = -march=vr4300 -mabi=32 -I include -I $(BUILD_DIR) $(foreach d,$(DEFINES),--defsym $(d))
|
||||
ASFLAGS = -march=vr4300 -mabi=32 -I include -I $(BUILD_DIR) $(VERSION_ASFLAGS) $(foreach d,$(DEFINES),--defsym $(d))
|
||||
|
||||
# Fills end of rom
|
||||
OBJCOPYFLAGS = --pad-to=0xC00000 --gap-fill=0xFF
|
||||
|
@ -384,6 +395,20 @@ define print
|
|||
@$(PRINT) "$(GREEN)$(1) $(YELLOW)$(2)$(GREEN) -> $(BLUE)$(3)$(NO_COL)\n"
|
||||
endef
|
||||
|
||||
# Override commmands for GCC Safe Files
|
||||
ifeq ($(GCC),1)
|
||||
$(BUILD_DIR)/src/main.o: OPT_FLAGS := -g
|
||||
$(BUILD_DIR)/src/racing/skybox_and_splitscreen.o: OPT_FLAGS := -g
|
||||
$(BUILD_DIR)/src/racing/render_courses.o: OPT_FLAGS := -g
|
||||
$(SAFE_C_FILES): OPT_FLAGS := -O3
|
||||
$(SAFE_C_FILES): CC := $(CROSS)gcc
|
||||
$(SAFE_C_FILES): MIPSISET := -mips3
|
||||
$(SAFE_C_FILES): CFLAGS := -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float \
|
||||
-mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions \
|
||||
-ffreestanding -fwrapv -Wall -Wextra -ffast-math -fno-unsafe-math-optimizations
|
||||
$(SAFE_C_FILES): CC_CHECK := gcc -m32
|
||||
endif
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
|
|
|
@ -25,6 +25,9 @@ glabel D_801976A0
|
|||
|
||||
.section .text, "ax"
|
||||
|
||||
.ifdef AVOID_UB
|
||||
.set __osThreadTail, __osThreadTail_fix
|
||||
.endif
|
||||
|
||||
glabel __osExceptionPreamble
|
||||
/* 0D1DB0 800D11B0 3C1A800D */ lui $k0, %hi(__osException) # $k0, 0x800d
|
||||
|
@ -46,8 +49,8 @@ glabel __osException
|
|||
/* 0D1DEC 800D11EC AF400018 */ sw $zero, 0x18($k0)
|
||||
/* 0D1DF0 800D11F0 40086800 */ mfc0 $t0, $13
|
||||
/* 0D1DF4 800D11F4 03404025 */ move $t0, $k0
|
||||
/* 0D1DF8 800D11F8 3C1A800F */ lui $k0, %hi(__osRunningThread) # $k0, 0x800f
|
||||
/* 0D1DFC 800D11FC 8F5AB3B0 */ lw $k0, %lo(__osRunningThread)($k0)
|
||||
/* 0D1DF8 800D11F8 3C1A800F */ lui $k0, %hi(__osThreadTail+0x10) # $k0, 0x800f
|
||||
/* 0D1DFC 800D11FC 8F5AB3B0 */ lw $k0, %lo(__osThreadTail+0x10)($k0)
|
||||
/* 0D1E00 800D1200 DD090020 */ ld $t1, 0x20($t0)
|
||||
/* 0D1E04 800D1204 FF490020 */ sd $t1, 0x20($k0)
|
||||
/* 0D1E08 800D1208 DD090118 */ ld $t1, 0x118($t0)
|
||||
|
@ -320,8 +323,8 @@ glabel L800D15B4
|
|||
/* 0D21E4 800D15E4 AD2A0000 */ sw $t2, ($t1)
|
||||
/* 0D21E8 800D15E8 0C0345B9 */ jal func_800D16E4
|
||||
/* 0D21EC 800D15EC 24040070 */ li $a0, 112
|
||||
/* 0D21F0 800D15F0 3C0A800F */ lui $t2, %hi(__osRunQueue) # $t2, 0x800f
|
||||
/* 0D21F4 800D15F4 8D4AB3A8 */ lw $t2, %lo(__osRunQueue)($t2)
|
||||
/* 0D21F0 800D15F0 3C0A800F */ lui $t2, %hi(__osThreadTail+0x8) # $t2, 0x800f
|
||||
/* 0D21F4 800D15F4 8D4AB3A8 */ lw $t2, %lo(__osThreadTail+0x8)($t2)
|
||||
/* 0D21F8 800D15F8 2401EFFF */ li $at, -4097
|
||||
/* 0D21FC 800D15FC 02018024 */ and $s0, $s0, $at
|
||||
/* 0D2200 800D1600 8D5B0118 */ lw $k1, 0x118($t2)
|
||||
|
@ -355,31 +358,31 @@ glabel L800D1630
|
|||
/* 0D2264 800D1664 00000000 */ nop
|
||||
.L800D1668:
|
||||
glabel L800D1668
|
||||
/* 0D2268 800D1668 3C0A800F */ lui $t2, %hi(__osRunQueue) # $t2, 0x800f
|
||||
/* 0D226C 800D166C 8D4AB3A8 */ lw $t2, %lo(__osRunQueue)($t2)
|
||||
/* 0D2268 800D1668 3C0A800F */ lui $t2, %hi(__osThreadTail+0x8) # $t2, 0x800f
|
||||
/* 0D226C 800D166C 8D4AB3A8 */ lw $t2, %lo(__osThreadTail+0x8)($t2)
|
||||
/* 0D2270 800D1670 8F490004 */ lw $t1, 4($k0)
|
||||
/* 0D2274 800D1674 8D4B0004 */ lw $t3, 4($t2)
|
||||
/* 0D2278 800D1678 012B082A */ slt $at, $t1, $t3
|
||||
/* 0D227C 800D167C 10200007 */ beqz $at, .L800D169C
|
||||
/* 0D2280 800D1680 00000000 */ nop
|
||||
/* 0D2284 800D1684 3C04800F */ lui $a0, %hi(__osRunQueue) # $a0, 0x800f
|
||||
/* 0D2284 800D1684 3C04800F */ lui $a0, %hi(__osThreadTail+0x8) # $a0, 0x800f
|
||||
/* 0D2288 800D1688 03402825 */ move $a1, $k0
|
||||
/* 0D228C 800D168C 0C034633 */ jal __osEnqueueThread
|
||||
/* 0D2290 800D1690 2484B3A8 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, -0x4c58
|
||||
/* 0D2290 800D1690 2484B3A8 */ addiu $a0, %lo(__osThreadTail+0x8) # addiu $a0, $a0, -0x4c58
|
||||
/* 0D2294 800D1694 08034649 */ j __osDispatchThread
|
||||
/* 0D2298 800D1698 00000000 */ nop
|
||||
|
||||
.L800D169C:
|
||||
/* 0D229C 800D169C 3C09800F */ lui $t1, %hi(__osRunQueue) # $t1, 0x800f
|
||||
/* 0D22A0 800D16A0 2529B3A8 */ addiu $t1, %lo(__osRunQueue) # addiu $t1, $t1, -0x4c58
|
||||
/* 0D229C 800D169C 3C09800F */ lui $t1, %hi(__osThreadTail+0x8) # $t1, 0x800f
|
||||
/* 0D22A0 800D16A0 2529B3A8 */ addiu $t1, %lo(__osThreadTail+0x8) # addiu $t1, $t1, -0x4c58
|
||||
/* 0D22A4 800D16A4 8D2A0000 */ lw $t2, ($t1)
|
||||
/* 0D22A8 800D16A8 AF4A0000 */ sw $t2, ($k0)
|
||||
/* 0D22AC 800D16AC 08034649 */ j __osDispatchThread
|
||||
/* 0D22B0 800D16B0 AD3A0000 */ sw $k0, ($t1)
|
||||
|
||||
.L800D16B4:
|
||||
/* 0D22B4 800D16B4 3C01800F */ lui $at, %hi(__osFaultedThread) # $at, 0x800f
|
||||
/* 0D22B8 800D16B8 AC3AB3B4 */ sw $k0, %lo(__osFaultedThread)($at)
|
||||
/* 0D22B4 800D16B4 3C01800F */ lui $at, %hi(__osThreadTail+0x14) # $at, 0x800f
|
||||
/* 0D22B8 800D16B8 AC3AB3B4 */ sw $k0, %lo(__osThreadTail+0x14)($at)
|
||||
/* 0D22BC 800D16BC 24090001 */ li $t1, 1
|
||||
/* 0D22C0 800D16C0 A7490010 */ sh $t1, 0x10($k0)
|
||||
/* 0D22C4 800D16C4 24090002 */ li $t1, 2
|
||||
|
@ -433,10 +436,10 @@ glabel func_800D16E4
|
|||
/* 0D2374 800D1774 0C034645 */ jal __osPopThread
|
||||
/* 0D2378 800D1778 01202025 */ move $a0, $t1
|
||||
/* 0D237C 800D177C 00405025 */ move $t2, $v0
|
||||
/* 0D2380 800D1780 3C04800F */ lui $a0, %hi(__osRunQueue) # $a0, 0x800f
|
||||
/* 0D2380 800D1780 3C04800F */ lui $a0, %hi(__osThreadTail+0x8) # $a0, 0x800f
|
||||
/* 0D2384 800D1784 01402825 */ move $a1, $t2
|
||||
/* 0D2388 800D1788 0C034633 */ jal __osEnqueueThread
|
||||
/* 0D238C 800D178C 2484B3A8 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, -0x4c58
|
||||
/* 0D238C 800D178C 2484B3A8 */ addiu $a0, %lo(__osThreadTail+0x8) # addiu $a0, $a0, -0x4c58
|
||||
.L800D1790:
|
||||
/* 0D2390 800D1790 02400008 */ jr $s2
|
||||
/* 0D2394 800D1794 00000000 */ nop
|
||||
|
@ -455,8 +458,8 @@ glabel func_800D16E4
|
|||
/* 0D23C4 800D17C4 1000FFB5 */ b .L800D169C
|
||||
/* 0D23C8 800D17C8 AF5B0118 */ sw $k1, 0x118($k0)
|
||||
glabel __osEnqueueAndYield
|
||||
/* 0D23CC 800D17CC 3C05800F */ lui $a1, %hi(__osRunningThread) # $a1, 0x800f
|
||||
/* 0D23D0 800D17D0 8CA5B3B0 */ lw $a1, %lo(__osRunningThread)($a1)
|
||||
/* 0D23CC 800D17CC 3C05800F */ lui $a1, %hi(__osThreadTail+0x10) # $a1, 0x800f
|
||||
/* 0D23D0 800D17D0 8CA5B3B0 */ lw $a1, %lo(__osThreadTail+0x10)($a1)
|
||||
/* 0D23D4 800D17D4 40086000 */ mfc0 $t0, $12
|
||||
/* 0D23D8 800D17D8 8CBB0018 */ lw $k1, 0x18($a1)
|
||||
/* 0D23DC 800D17DC 35080002 */ ori $t0, $t0, 2
|
||||
|
@ -553,11 +556,11 @@ glabel __osPopThread
|
|||
/* 0D2520 800D1920 AC990000 */ sw $t9, ($a0)
|
||||
|
||||
glabel __osDispatchThread
|
||||
/* 0D2524 800D1924 3C04800F */ lui $a0, %hi(__osRunQueue) # $a0, 0x800f
|
||||
/* 0D2524 800D1924 3C04800F */ lui $a0, %hi(__osThreadTail+0x8) # $a0, 0x800f
|
||||
/* 0D2528 800D1928 0C034645 */ jal __osPopThread
|
||||
/* 0D252C 800D192C 2484B3A8 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, -0x4c58
|
||||
/* 0D2530 800D1930 3C01800F */ lui $at, %hi(__osRunningThread) # $at, 0x800f
|
||||
/* 0D2534 800D1934 AC22B3B0 */ sw $v0, %lo(__osRunningThread)($at)
|
||||
/* 0D252C 800D192C 2484B3A8 */ addiu $a0, %lo(__osThreadTail+0x8) # addiu $a0, $a0, -0x4c58
|
||||
/* 0D2530 800D1930 3C01800F */ lui $at, %hi(__osThreadTail+0x10) # $at, 0x800f
|
||||
/* 0D2534 800D1934 AC22B3B0 */ sw $v0, %lo(__osThreadTail+0x10)($at)
|
||||
/* 0D2538 800D1938 24080004 */ li $t0, 4
|
||||
/* 0D253C 800D193C A4480010 */ sh $t0, 0x10($v0)
|
||||
/* 0D2540 800D1940 0040D025 */ move $k0, $v0
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64
|
||||
|
||||
.include "macros.inc"
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
/* -------------------------------------------------------------------------------------- */
|
||||
/* need to asm these functions because lib32gcc-7-dev-mips-cross does not exist so we */
|
||||
/* cannot naturally link a libgcc variant for this target given this architecture and */
|
||||
/* compiler. Until we have a good workaround with a gcc target that doesn't involve */
|
||||
/* assuming a 32-bit to 64-bit change, we have to encode these functions as raw assembly */
|
||||
/* for it to compile. */
|
||||
/* -------------------------------------------------------------------------------------- */
|
||||
|
||||
/* TODO: Is there a non-insane way to fix this hack that doesn't involve the user compiling */
|
||||
/* a library themselves? */
|
||||
glabel __umoddi3
|
||||
sw $a0, ($sp)
|
||||
sw $a1, 4($sp)
|
||||
sw $a2, 8($sp)
|
||||
sw $a3, 0xc($sp)
|
||||
ld $t7, 8($sp)
|
||||
ld $t6, ($sp)
|
||||
ddivu $zero, $t6, $t7
|
||||
bnez $t7, .L80324144
|
||||
nop
|
||||
break 7
|
||||
.L80324144:
|
||||
mfhi $v0
|
||||
dsll32 $v1, $v0, 0
|
||||
dsra32 $v1, $v1, 0
|
||||
jr $ra
|
||||
dsra32 $v0, $v0, 0
|
||||
|
||||
glabel __udivdi3
|
||||
sw $a0, ($sp)
|
||||
sw $a1, 4($sp)
|
||||
sw $a2, 8($sp)
|
||||
sw $a3, 0xc($sp)
|
||||
ld $t7, 8($sp)
|
||||
ld $t6, ($sp)
|
||||
ddivu $zero, $t6, $t7
|
||||
bnez $t7, .L80324180
|
||||
nop
|
||||
break 7
|
||||
.L80324180:
|
||||
mflo $v0
|
||||
dsll32 $v1, $v0, 0
|
||||
dsra32 $v1, $v1, 0
|
||||
jr $ra
|
||||
dsra32 $v0, $v0, 0
|
||||
|
||||
glabel __moddi3
|
||||
sw $a0, ($sp)
|
||||
sw $a1, 4($sp)
|
||||
sw $a2, 8($sp)
|
||||
sw $a3, 0xc($sp)
|
||||
ld $t7, 8($sp)
|
||||
ld $t6, ($sp)
|
||||
ddivu $zero, $t6, $t7
|
||||
bnez $t7, .L803241E8
|
||||
nop
|
||||
break 7
|
||||
.L803241E8:
|
||||
mfhi $v0
|
||||
dsll32 $v1, $v0, 0
|
||||
dsra32 $v1, $v1, 0
|
||||
jr $ra
|
||||
dsra32 $v0, $v0, 0
|
||||
|
||||
glabel __divdi3
|
||||
sw $a0, ($sp)
|
||||
sw $a1, 4($sp)
|
||||
sw $a2, 8($sp)
|
||||
sw $a3, 0xc($sp)
|
||||
ld $t7, 8($sp)
|
||||
ld $t6, ($sp)
|
||||
ddiv $zero, $t6, $t7
|
||||
nop
|
||||
bnez $t7, .L80324228
|
||||
nop
|
||||
break 7
|
||||
.L80324228:
|
||||
daddiu $at, $zero, -1
|
||||
bne $t7, $at, .L80324244
|
||||
daddiu $at, $zero, 1
|
||||
dsll32 $at, $at, 0x1f
|
||||
bne $t6, $at, .L80324244
|
||||
nop
|
||||
break 6
|
||||
.L80324244:
|
||||
mflo $v0
|
||||
dsll32 $v1, $v0, 0
|
||||
dsra32 $v1, $v1, 0
|
||||
jr $ra
|
||||
dsra32 $v0, $v0, 0
|
||||
|
|
@ -730,8 +730,8 @@ extern s32 osPfsNumFiles(OSPfs *, s32 *, s32 *);
|
|||
extern s32 osEepromProbe(OSMesgQueue *);
|
||||
extern s32 osEepromRead(OSMesgQueue *, u8, u8 *);
|
||||
extern s32 osEepromWrite(OSMesgQueue *, u8, u8 *);
|
||||
extern s32 osEepromLongRead(OSMesgQueue *, u8, u8 *, int);
|
||||
extern s32 osEepromLongWrite(OSMesgQueue *, u8, u8 *, int);
|
||||
extern s32 osEepromLongRead(OSMesgQueue *, u8, u8 *, s32);
|
||||
extern s32 osEepromLongWrite(OSMesgQueue *, u8, u8 *, s32);
|
||||
|
||||
/* MOTOR interface */
|
||||
|
||||
|
|
|
@ -38,8 +38,14 @@
|
|||
* D-pad DOWN = MARIO
|
||||
*
|
||||
*/
|
||||
#define DEBUG_MODE 0
|
||||
#define DEBUG_MENU 1
|
||||
#if defined(GCC) || defined(DEBUG)
|
||||
#define DEBUG_MODE 1
|
||||
#define DEBUG_MENU 2
|
||||
#else
|
||||
#define DEBUG_MODE 0
|
||||
#define DEBUG_MENU 1
|
||||
#endif
|
||||
|
||||
#define HOLD_ALL_DPAD_AND_C_BUTTONS (U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
|
||||
|
||||
/**
|
||||
|
|
585
mk64.ld
585
mk64.ld
|
@ -46,262 +46,276 @@ SECTIONS
|
|||
{
|
||||
BUILD_DIR/asm/entry.o(.text);
|
||||
BUILD_DIR/src/main.o(.text*);
|
||||
BUILD_DIR/src/code_800029B0.o(.text);
|
||||
BUILD_DIR/src/profiler.o(.text);
|
||||
BUILD_DIR/src/crash_screen.o(.text);
|
||||
BUILD_DIR/src/code_80004740.o(.text);
|
||||
BUILD_DIR/src/staff_ghosts.o(.text);
|
||||
BUILD_DIR/src/code_800029B0.o(.text*);
|
||||
BUILD_DIR/src/profiler.o(.text*);
|
||||
BUILD_DIR/src/crash_screen.o(.text*);
|
||||
BUILD_DIR/src/code_80004740.o(.text*);
|
||||
BUILD_DIR/src/staff_ghosts.o(.text*);
|
||||
BUILD_DIR/asm/unused_overflow_check.o(.text);
|
||||
BUILD_DIR/src/code_80005FD0.jp.o(.text);
|
||||
BUILD_DIR/src/camera.o(.text);
|
||||
BUILD_DIR/src/render_player.o(.text);
|
||||
BUILD_DIR/src/kart_dma.o(.text);
|
||||
BUILD_DIR/src/player_controller.o(.text);
|
||||
BUILD_DIR/src/spawn_players.o(.text);
|
||||
BUILD_DIR/src/code_8003DC40.o(.text);
|
||||
BUILD_DIR/src/code_80005FD0.jp.o(.text*);
|
||||
BUILD_DIR/src/camera.o(.text*);
|
||||
BUILD_DIR/src/render_player.o(.text*);
|
||||
BUILD_DIR/src/kart_dma.o(.text*);
|
||||
BUILD_DIR/src/player_controller.o(.text*);
|
||||
BUILD_DIR/src/spawn_players.o(.text*);
|
||||
BUILD_DIR/src/code_8003DC40.o(.text*);
|
||||
BUILD_DIR/asm/unused_mio0_decode.o(.text);
|
||||
BUILD_DIR/asm/mio0_decode.o(.text);
|
||||
BUILD_DIR/asm/tkmk00_decode.o(.text);
|
||||
BUILD_DIR/src/gbiMacro.o(.text);
|
||||
BUILD_DIR/src/math_util_2.o(.text);
|
||||
BUILD_DIR/src/render_objects.o(.text);
|
||||
BUILD_DIR/src/code_80057C60.o(.text);
|
||||
BUILD_DIR/src/code_8006E9C0.o(.text);
|
||||
BUILD_DIR/src/update_objects.o(.text);
|
||||
BUILD_DIR/src/code_80086E70.o(.text);
|
||||
BUILD_DIR/src/effects.o(.text);
|
||||
BUILD_DIR/src/code_80091440.o(.text);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.text);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.text);
|
||||
BUILD_DIR/src/menus.o(.text);
|
||||
BUILD_DIR/src/save.o(.text);
|
||||
BUILD_DIR/src/audio/synthesis.o(.text);
|
||||
BUILD_DIR/src/audio/heap.o(.text);
|
||||
BUILD_DIR/src/audio/load.o(.text);
|
||||
BUILD_DIR/src/audio/playback.o(.text);
|
||||
BUILD_DIR/src/audio/effects.o(.text);
|
||||
BUILD_DIR/src/audio/seqplayer.o(.text);
|
||||
BUILD_DIR/src/audio/external.o(.text);
|
||||
BUILD_DIR/src/audio/port_eu.o(.text);
|
||||
BUILD_DIR/src/gbiMacro.o(.text*);
|
||||
BUILD_DIR/src/math_util_2.o(.text*);
|
||||
BUILD_DIR/src/render_objects.o(.text*);
|
||||
BUILD_DIR/src/code_80057C60.o(.text*);
|
||||
BUILD_DIR/src/code_8006E9C0.o(.text*);
|
||||
BUILD_DIR/src/update_objects.o(.text*);
|
||||
BUILD_DIR/src/code_80086E70.o(.text*);
|
||||
BUILD_DIR/src/effects.o(.text*);
|
||||
BUILD_DIR/src/code_80091440.o(.text*);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.text*);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.text*);
|
||||
BUILD_DIR/src/menus.o(.text*);
|
||||
BUILD_DIR/src/save.o(.text*);
|
||||
BUILD_DIR/src/audio/synthesis.o(.text*);
|
||||
BUILD_DIR/src/audio/heap.o(.text*);
|
||||
BUILD_DIR/src/audio/load.o(.text*);
|
||||
BUILD_DIR/src/audio/playback.o(.text*);
|
||||
BUILD_DIR/src/audio/effects.o(.text*);
|
||||
BUILD_DIR/src/audio/seqplayer.o(.text*);
|
||||
BUILD_DIR/src/audio/external.o(.text*);
|
||||
BUILD_DIR/src/audio/port_eu.o(.text*);
|
||||
#if DEBUG
|
||||
BUILD_DIR/src/os/osCartRomInit.o(.text);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.text);
|
||||
BUILD_DIR/src/debug/debug.o(.text);
|
||||
BUILD_DIR/src/os/sprintf.o(.text);
|
||||
BUILD_DIR/src/os/is_debug.o(.text);
|
||||
BUILD_DIR/src/os/osCartRomInit.o(.text*);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.text*);
|
||||
BUILD_DIR/src/debug/debug.o(.text*);
|
||||
BUILD_DIR/src/os/sprintf.o(.text*);
|
||||
BUILD_DIR/src/os/is_debug.o(.text*);
|
||||
#endif
|
||||
BUILD_DIR/src/os/osCreateThread.o(.text);
|
||||
#ifdef VERSION_EU
|
||||
. += 0x40;
|
||||
#endif
|
||||
BUILD_DIR/src/os/osInitialize.o(.text);
|
||||
BUILD_DIR/src/os/osStartThread.o(.text);
|
||||
BUILD_DIR/src/os/osCreateViManager.o(.text);
|
||||
BUILD_DIR/src/os/osInitialize.o(.text*);
|
||||
BUILD_DIR/src/os/osStartThread.o(.text*);
|
||||
BUILD_DIR/src/os/osCreateViManager.o(.text*);
|
||||
BUILD_DIR/asm/os/parameters.o(.text);
|
||||
BUILD_DIR/src/os/osViSetMode.o(.text);
|
||||
BUILD_DIR/src/os/osViBlack.o(.text);
|
||||
BUILD_DIR/src/os/osViSetSpecialFeatures.o(.text);
|
||||
BUILD_DIR/src/os/osCreatePiManager.o(.text);
|
||||
BUILD_DIR/src/os/osSetThreadPri.o(.text);
|
||||
BUILD_DIR/src/os/osCreateMesgQueue.o(.text);
|
||||
BUILD_DIR/src/os/osViSetEvent.o(.text);
|
||||
BUILD_DIR/src/os/osSetEventMesg.o(.text);
|
||||
BUILD_DIR/src/os/osSpTaskLoadGo.o(.text);
|
||||
BUILD_DIR/src/os/osContInit.o(.text);
|
||||
BUILD_DIR/src/os/osContStartReadData.o(.text);
|
||||
BUILD_DIR/src/os/osRecvMesg.o(.text);
|
||||
BUILD_DIR/src/os/osViSetMode.o(.text*);
|
||||
BUILD_DIR/src/os/osViBlack.o(.text*);
|
||||
BUILD_DIR/src/os/osViSetSpecialFeatures.o(.text*);
|
||||
BUILD_DIR/src/os/osCreatePiManager.o(.text*);
|
||||
BUILD_DIR/src/os/osSetThreadPri.o(.text*);
|
||||
BUILD_DIR/src/os/osCreateMesgQueue.o(.text*);
|
||||
BUILD_DIR/src/os/osViSetEvent.o(.text*);
|
||||
BUILD_DIR/src/os/osSetEventMesg.o(.text*);
|
||||
BUILD_DIR/src/os/osSpTaskLoadGo.o(.text*);
|
||||
BUILD_DIR/src/os/osContInit.o(.text*);
|
||||
BUILD_DIR/src/os/osContStartReadData.o(.text*);
|
||||
BUILD_DIR/src/os/osRecvMesg.o(.text*);
|
||||
BUILD_DIR/asm/os/osWritebackDCacheAll.o(.text);
|
||||
BUILD_DIR/src/os/osSendMesg.o(.text);
|
||||
BUILD_DIR/src/os/osViSwapBuffer.o(.text);
|
||||
BUILD_DIR/src/os/osSendMesg.o(.text*);
|
||||
BUILD_DIR/src/os/osViSwapBuffer.o(.text*);
|
||||
BUILD_DIR/asm/os/bzero.o(.text);
|
||||
BUILD_DIR/asm/os/osInvalICache.o(.text);
|
||||
BUILD_DIR/asm/os/osInvalDCache.o(.text);
|
||||
BUILD_DIR/src/os/osPiStartDma.o(.text);
|
||||
BUILD_DIR/src/os/osSpTaskYield.o(.text);
|
||||
BUILD_DIR/src/os/osSpTaskYielded.o(.text);
|
||||
BUILD_DIR/src/os/osGetTime.o(.text);
|
||||
BUILD_DIR/src/os/math/llmuldiv.o(.text);
|
||||
BUILD_DIR/src/os/__osGetCurrFaultedThread.o(.text);
|
||||
BUILD_DIR/src/os/osPiStartDma.o(.text*);
|
||||
BUILD_DIR/src/os/osSpTaskYield.o(.text*);
|
||||
BUILD_DIR/src/os/osSpTaskYielded.o(.text*);
|
||||
BUILD_DIR/src/os/osGetTime.o(.text*);
|
||||
BUILD_DIR/src/os/math/llmuldiv.o(.text*);
|
||||
#if GCC
|
||||
BUILD_DIR/asm/os/llmuldiv_gcc.o(.text);
|
||||
#endif
|
||||
BUILD_DIR/src/os/__osGetCurrFaultedThread.o(.text*);
|
||||
BUILD_DIR/asm/os/sqrtf.o(.text);
|
||||
BUILD_DIR/src/os/guOrthoF.o(.text);
|
||||
BUILD_DIR/src/os/osSetTime.o(.text);
|
||||
BUILD_DIR/src/os/osEepromProbe.o(.text);
|
||||
BUILD_DIR/src/os/osPfsIsPlug.o(.text);
|
||||
BUILD_DIR/src/os/osPfsInit.o(.text);
|
||||
BUILD_DIR/src/os/osPfsNumFiles.o(.text);
|
||||
BUILD_DIR/src/os/osPfsFileState.o(.text);
|
||||
BUILD_DIR/src/os/osPfsFreeBlocks.o(.text);
|
||||
BUILD_DIR/src/os/guRotateF.o(.text);
|
||||
BUILD_DIR/src/os/guScaleF.o(.text);
|
||||
BUILD_DIR/src/os/guPerspectiveF.o(.text);
|
||||
BUILD_DIR/src/os/guLookAtF.o(.text);
|
||||
BUILD_DIR/src/os/guTranslateF.o(.text);
|
||||
BUILD_DIR/src/os/osSyncPrintf.o(.text);
|
||||
BUILD_DIR/src/os/guMtxCatL.o(.text);
|
||||
BUILD_DIR/src/os/osPfsSearchFile.o(.text);
|
||||
BUILD_DIR/src/os/osPfsDeleteFile.o(.text);
|
||||
BUILD_DIR/src/os/osEepromLongWrite.o(.text);
|
||||
BUILD_DIR/src/os/osEepromLongRead.o(.text);
|
||||
BUILD_DIR/src/os/osPfsReadWriteFile.o(.text);
|
||||
BUILD_DIR/src/os/osPfsAllocateFile.o(.text);
|
||||
BUILD_DIR/src/os/osAiSetFrequency.o(.text);
|
||||
BUILD_DIR/src/os/osAiGetLength.o(.text);
|
||||
BUILD_DIR/src/os/osAiSetNextBuffer.o(.text);
|
||||
BUILD_DIR/src/os/guOrthoF.o(.text*);
|
||||
BUILD_DIR/src/os/osSetTime.o(.text*);
|
||||
BUILD_DIR/src/os/osEepromProbe.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsIsPlug.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsInit.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsNumFiles.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsFileState.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsFreeBlocks.o(.text*);
|
||||
BUILD_DIR/src/os/guRotateF.o(.text*);
|
||||
BUILD_DIR/src/os/guScaleF.o(.text*);
|
||||
BUILD_DIR/src/os/guPerspectiveF.o(.text*);
|
||||
BUILD_DIR/src/os/guLookAtF.o(.text*);
|
||||
BUILD_DIR/src/os/guTranslateF.o(.text*);
|
||||
BUILD_DIR/src/os/osSyncPrintf.o(.text*);
|
||||
BUILD_DIR/src/os/guMtxCatL.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsSearchFile.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsDeleteFile.o(.text*);
|
||||
BUILD_DIR/src/os/osEepromLongWrite.o(.text*);
|
||||
BUILD_DIR/src/os/osEepromLongRead.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsReadWriteFile.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsAllocateFile.o(.text*);
|
||||
BUILD_DIR/src/os/osAiSetFrequency.o(.text*);
|
||||
BUILD_DIR/src/os/osAiGetLength.o(.text*);
|
||||
BUILD_DIR/src/os/osAiSetNextBuffer.o(.text*);
|
||||
BUILD_DIR/asm/os/osGetCount.o(.text);
|
||||
BUILD_DIR/asm/os/__osException.o(.text);
|
||||
BUILD_DIR/asm/os/__osDisableInt.o(.text);
|
||||
BUILD_DIR/asm/os/__osRestoreInt.o(.text);
|
||||
BUILD_DIR/src/os/__osDequeueThread.o(.text);
|
||||
BUILD_DIR/src/os/__osDequeueThread.o(.text*);
|
||||
BUILD_DIR/asm/os/__osSetSR.o(.text);
|
||||
BUILD_DIR/asm/os/__osGetSR.o(.text);
|
||||
BUILD_DIR/asm/os/__osSetFpcCsr.o(.text);
|
||||
BUILD_DIR/src/os/__osSiRawReadIo.o(.text);
|
||||
BUILD_DIR/src/os/__osSiRawWriteIo.o(.text);
|
||||
BUILD_DIR/src/os/__osSiRawReadIo.o(.text*);
|
||||
BUILD_DIR/src/os/__osSiRawWriteIo.o(.text*);
|
||||
BUILD_DIR/asm/os/osWritebackDCache.o(.text);
|
||||
BUILD_DIR/asm/os/osMapTLBRdb.o(.text);
|
||||
BUILD_DIR/src/os/osPiRawReadIo.o(.text);
|
||||
BUILD_DIR/src/os/__osSetHWIntrRoutine.o(.text);
|
||||
BUILD_DIR/src/os/__osLeoInterrupt.o(.text);
|
||||
BUILD_DIR/src/os/osTimer.o(.text);
|
||||
BUILD_DIR/src/os/osGetThreadPri.o(.text);
|
||||
BUILD_DIR/src/os/__osViInit.o(.text);
|
||||
BUILD_DIR/src/os/__osViGetCurrentContext.o(.text);
|
||||
BUILD_DIR/src/os/__osViSwapContext.o(.text);
|
||||
BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.text);
|
||||
BUILD_DIR/src/os/osPiRawStartDma.o(.text);
|
||||
BUILD_DIR/src/os/osEPiRawStartDma.o(.text);
|
||||
BUILD_DIR/src/os/__osDevMgrMain.o(.text);
|
||||
BUILD_DIR/src/os/osPiRawReadIo.o(.text*);
|
||||
BUILD_DIR/src/os/__osSetHWIntrRoutine.o(.text*);
|
||||
BUILD_DIR/src/os/__osLeoInterrupt.o(.text*);
|
||||
BUILD_DIR/src/os/osTimer.o(.text*);
|
||||
BUILD_DIR/src/os/osGetThreadPri.o(.text*);
|
||||
BUILD_DIR/src/os/__osViInit.o(.text*);
|
||||
BUILD_DIR/src/os/__osViGetCurrentContext.o(.text*);
|
||||
BUILD_DIR/src/os/__osViSwapContext.o(.text*);
|
||||
BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.text*);
|
||||
BUILD_DIR/src/os/osPiRawStartDma.o(.text*);
|
||||
BUILD_DIR/src/os/osEPiRawStartDma.o(.text*);
|
||||
BUILD_DIR/src/os/__osDevMgrMain.o(.text*);
|
||||
BUILD_DIR/asm/os/bcopy.o(.text);
|
||||
BUILD_DIR/src/os/osVirtualToPhysical.o(.text);
|
||||
BUILD_DIR/src/os/__osSpSetStatus.o(.text);
|
||||
BUILD_DIR/src/os/__osSpSetPc.o(.text);
|
||||
BUILD_DIR/src/os/__osSpRawStartDma.o(.text);
|
||||
BUILD_DIR/src/os/__osSpDeviceBusy.o(.text);
|
||||
BUILD_DIR/src/os/osSetTimer.o(.text);
|
||||
BUILD_DIR/src/os/__osSiRawStartDma.o(.text);
|
||||
BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.text);
|
||||
BUILD_DIR/src/os/osJamMesg.o(.text);
|
||||
BUILD_DIR/src/os/osPiGetCmdQueue.o(.text);
|
||||
BUILD_DIR/src/os/__osSpGetStatus.o(.text);
|
||||
BUILD_DIR/src/os/guMtxF2L.o(.text);
|
||||
BUILD_DIR/src/os/osEepromWrite.o(.text);
|
||||
BUILD_DIR/src/os/contpfs.o(.text);
|
||||
BUILD_DIR/src/os/osPfsChecker.o(.text);
|
||||
BUILD_DIR/src/os/contramread.o(.text);
|
||||
BUILD_DIR/src/os/guNormalize.o(.text);
|
||||
BUILD_DIR/src/os/math/sinf.o(.text);
|
||||
BUILD_DIR/src/os/math/cosf.o(.text);
|
||||
BUILD_DIR/src/os/_Printf.o(.text);
|
||||
BUILD_DIR/src/os/guMtxCatF.o(.text);
|
||||
BUILD_DIR/src/os/contramwrite.o(.text);
|
||||
BUILD_DIR/src/os/osEepromRead.o(.text);
|
||||
BUILD_DIR/src/os/__osAiDeviceBusy.o(.text);
|
||||
BUILD_DIR/src/os/osVirtualToPhysical.o(.text*);
|
||||
BUILD_DIR/src/os/__osSpSetStatus.o(.text*);
|
||||
BUILD_DIR/src/os/__osSpSetPc.o(.text*);
|
||||
BUILD_DIR/src/os/__osSpRawStartDma.o(.text*);
|
||||
BUILD_DIR/src/os/__osSpDeviceBusy.o(.text*);
|
||||
BUILD_DIR/src/os/osSetTimer.o(.text*);
|
||||
BUILD_DIR/src/os/__osSiRawStartDma.o(.text*);
|
||||
BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.text*);
|
||||
BUILD_DIR/src/os/osJamMesg.o(.text*);
|
||||
BUILD_DIR/src/os/osPiGetCmdQueue.o(.text*);
|
||||
BUILD_DIR/src/os/__osSpGetStatus.o(.text*);
|
||||
BUILD_DIR/src/os/guMtxF2L.o(.text*);
|
||||
BUILD_DIR/src/os/osEepromWrite.o(.text*);
|
||||
BUILD_DIR/src/os/contpfs.o(.text*);
|
||||
BUILD_DIR/src/os/osPfsChecker.o(.text*);
|
||||
BUILD_DIR/src/os/contramread.o(.text*);
|
||||
BUILD_DIR/src/os/guNormalize.o(.text*);
|
||||
BUILD_DIR/src/os/math/sinf.o(.text*);
|
||||
BUILD_DIR/src/os/math/cosf.o(.text*);
|
||||
BUILD_DIR/src/os/_Printf.o(.text*);
|
||||
BUILD_DIR/src/os/guMtxCatF.o(.text*);
|
||||
BUILD_DIR/src/os/contramwrite.o(.text*);
|
||||
BUILD_DIR/src/os/osEepromRead.o(.text*);
|
||||
BUILD_DIR/src/os/__osAiDeviceBusy.o(.text*);
|
||||
BUILD_DIR/asm/os/osSetIntMask.o(.text);
|
||||
BUILD_DIR/src/os/osDestroyThread.o(.text);
|
||||
BUILD_DIR/src/os/__osSiDeviceBusy.o(.text);
|
||||
BUILD_DIR/src/os/osLeoDiskInit.o(.text);
|
||||
BUILD_DIR/src/os/osDestroyThread.o(.text*);
|
||||
BUILD_DIR/src/os/__osSiDeviceBusy.o(.text*);
|
||||
BUILD_DIR/src/os/osLeoDiskInit.o(.text*);
|
||||
BUILD_DIR/asm/os/__osSetCompare.o(.text);
|
||||
BUILD_DIR/src/os/__osResetGlobalIntMask.o(.text);
|
||||
BUILD_DIR/src/os/__osEPiRawWriteIo.o(.text);
|
||||
BUILD_DIR/src/os/osYieldThread.o(.text);
|
||||
BUILD_DIR/src/os/__osResetGlobalIntMask.o(.text*);
|
||||
BUILD_DIR/src/os/__osEPiRawWriteIo.o(.text*);
|
||||
BUILD_DIR/src/os/osYieldThread.o(.text*);
|
||||
BUILD_DIR/asm/os/__osProbeTLB.o(.text);
|
||||
BUILD_DIR/src/os/crc.o(.text);
|
||||
BUILD_DIR/src/os/string.o(.text);
|
||||
BUILD_DIR/src/os/_Litob.o(.text);
|
||||
BUILD_DIR/src/os/_Ldtob.o(.text);
|
||||
BUILD_DIR/src/os/ldiv.o(.text);
|
||||
BUILD_DIR/src/os/crc.o(.text*);
|
||||
BUILD_DIR/src/os/string.o(.text*);
|
||||
BUILD_DIR/src/os/_Litob.o(.text*);
|
||||
BUILD_DIR/src/os/_Ldtob.o(.text*);
|
||||
BUILD_DIR/src/os/ldiv.o(.text*);
|
||||
BUILD_DIR/data/rsp.o(.text);
|
||||
BUILD_DIR/src/main.o(.data*);
|
||||
BUILD_DIR/src/code_800029B0.o(.data);
|
||||
BUILD_DIR/src/profiler.o(.data);
|
||||
BUILD_DIR/src/crash_screen.o(.data);
|
||||
BUILD_DIR/src/staff_ghosts.o(.data);
|
||||
BUILD_DIR/src/data/path_spawn_metadata.o(.data);
|
||||
BUILD_DIR/src/camera.o(.data);
|
||||
BUILD_DIR/src/render_player.o(.data);
|
||||
BUILD_DIR/src/kart_dma.o(.data);
|
||||
BUILD_DIR/src/data/kart_attributes.o(.data);
|
||||
BUILD_DIR/src/player_controller.o(.data);
|
||||
BUILD_DIR/src/spawn_players.o(.data);
|
||||
BUILD_DIR/src/update_objects.o(.data);
|
||||
BUILD_DIR/assets/code/data_800E45C0/data_800E45C0.o(.data);
|
||||
BUILD_DIR/src/code_80057C60.o(.data);
|
||||
BUILD_DIR/src/data/some_data.o(.data);
|
||||
BUILD_DIR/src/effects.o(.data);
|
||||
BUILD_DIR/src/code_80091440.o(.data);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.data);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.data);
|
||||
BUILD_DIR/src/menus.o(.data);
|
||||
BUILD_DIR/src/save.o(.data);
|
||||
BUILD_DIR/assets/code/data_800E8700/data_800E8700.o(.data);
|
||||
BUILD_DIR/src/audio/synthesis.o(.data);
|
||||
BUILD_DIR/src/audio/heap.o(.data);
|
||||
BUILD_DIR/src/audio/load.o(.data);
|
||||
BUILD_DIR/src/audio/playback.o(.data);
|
||||
BUILD_DIR/src/audio/effects.o(.data);
|
||||
BUILD_DIR/src/code_800029B0.o(.data*);
|
||||
BUILD_DIR/src/profiler.o(.data*);
|
||||
BUILD_DIR/src/crash_screen.o(.data*);
|
||||
BUILD_DIR/src/staff_ghosts.o(.data*);
|
||||
BUILD_DIR/src/data/path_spawn_metadata.o(.data*);
|
||||
BUILD_DIR/src/camera.o(.data*);
|
||||
BUILD_DIR/src/render_player.o(.data*);
|
||||
BUILD_DIR/src/kart_dma.o(.data*);
|
||||
BUILD_DIR/src/data/kart_attributes.o(.data*);
|
||||
BUILD_DIR/src/player_controller.o(.data*);
|
||||
BUILD_DIR/src/spawn_players.o(.data*);
|
||||
BUILD_DIR/src/update_objects.o(.data*);
|
||||
BUILD_DIR/assets/code/data_800E45C0/data_800E45C0.o(.data*);
|
||||
BUILD_DIR/src/code_80057C60.o(.data*);
|
||||
BUILD_DIR/src/data/some_data.o(.data*);
|
||||
BUILD_DIR/src/effects.o(.data*);
|
||||
BUILD_DIR/src/code_80091440.o(.data*);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.data*);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.data*);
|
||||
BUILD_DIR/src/menus.o(.data*);
|
||||
BUILD_DIR/src/save.o(.data*);
|
||||
BUILD_DIR/assets/code/data_800E8700/data_800E8700.o(.data*);
|
||||
BUILD_DIR/src/audio/synthesis.o(.data*);
|
||||
BUILD_DIR/src/audio/heap.o(.data*);
|
||||
BUILD_DIR/src/audio/load.o(.data*);
|
||||
BUILD_DIR/src/audio/playback.o(.data*);
|
||||
BUILD_DIR/src/audio/effects.o(.data*);
|
||||
#if DEBUG
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.data);
|
||||
BUILD_DIR/src/debug/debug.o(.data);
|
||||
BUILD_DIR/src/os/sprintf.o(.data);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.data*);
|
||||
BUILD_DIR/src/debug/debug.o(.data*);
|
||||
BUILD_DIR/src/os/sprintf.o(.data*);
|
||||
#endif
|
||||
BUILD_DIR/src/audio/seqplayer.o(.data);
|
||||
BUILD_DIR/src/audio/external.o(.data);
|
||||
BUILD_DIR/src/audio/port_eu.o(.data);
|
||||
BUILD_DIR/src/audio/audio_session_presets.o(.data);
|
||||
BUILD_DIR/src/audio/seqplayer.o(.data*);
|
||||
BUILD_DIR/src/audio/external.o(.data*);
|
||||
BUILD_DIR/src/audio/port_eu.o(.data*);
|
||||
BUILD_DIR/src/audio/audio_session_presets.o(.data*);
|
||||
BUILD_DIR/src/os/osInitialize.o(.data*);
|
||||
BUILD_DIR/src/os/osCreateViManager.o(.data);
|
||||
BUILD_DIR/src/os/osViTable.o(.data);
|
||||
BUILD_DIR/src/os/osCreatePiManager.o(.data);
|
||||
BUILD_DIR/src/os/osContInit.o(.data);
|
||||
BUILD_DIR/src/os/osAiSetNextBuffer.o(.data);
|
||||
BUILD_DIR/src/os/__osSetHWIntrRoutine.o(.data);
|
||||
BUILD_DIR/src/os/__osDequeueThread.o(.data);
|
||||
BUILD_DIR/src/os/osTimer.o(.data);
|
||||
BUILD_DIR/src/os/__osViInit.o(.data);
|
||||
BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.data);
|
||||
BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.data);
|
||||
BUILD_DIR/src/os/_Printf.o(.data);
|
||||
BUILD_DIR/src/os/osViData.o(.data);
|
||||
BUILD_DIR/src/os/_Litob.o(.data);
|
||||
BUILD_DIR/src/os/osCreateViManager.o(.data*);
|
||||
BUILD_DIR/src/os/osViTable.o(.data*);
|
||||
BUILD_DIR/src/os/osCreatePiManager.o(.data*);
|
||||
BUILD_DIR/src/os/osContInit.o(.data*);
|
||||
BUILD_DIR/src/os/osAiSetNextBuffer.o(.data*);
|
||||
BUILD_DIR/src/os/__osSetHWIntrRoutine.o(.data*);
|
||||
BUILD_DIR/src/os/__osDequeueThread.o(.data*);
|
||||
BUILD_DIR/src/os/osTimer.o(.data*);
|
||||
BUILD_DIR/src/os/__osViInit.o(.data*);
|
||||
BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.data*);
|
||||
BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.data*);
|
||||
BUILD_DIR/src/os/_Printf.o(.data*);
|
||||
BUILD_DIR/src/os/osViData.o(.data*);
|
||||
BUILD_DIR/src/os/_Litob.o(.data*);
|
||||
BUILD_DIR/src/main.o(.rodata*);
|
||||
BUILD_DIR/src/code_800029B0.o(.rodata);
|
||||
BUILD_DIR/src/code_80005FD0.jp.o(.rodata);
|
||||
BUILD_DIR/src/camera.o(.rodata);
|
||||
BUILD_DIR/src/render_player.o(.rodata);
|
||||
BUILD_DIR/src/player_controller.o(.rodata);
|
||||
BUILD_DIR/src/spawn_players.o(.rodata);
|
||||
BUILD_DIR/src/code_8003DC40.o(.rodata);
|
||||
BUILD_DIR/src/render_objects.o(.rodata);
|
||||
BUILD_DIR/src/code_80057C60.o(.rodata);
|
||||
BUILD_DIR/src/code_8006E9C0.o(.rodata);
|
||||
BUILD_DIR/src/update_objects.o(.rodata);
|
||||
BUILD_DIR/src/code_80086E70.o(.rodata);
|
||||
BUILD_DIR/src/effects.o(.rodata);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.rodata);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.rodata);
|
||||
BUILD_DIR/src/menus.o(.rodata);
|
||||
BUILD_DIR/src/save.o(.rodata);
|
||||
BUILD_DIR/src/audio/heap.o(.rodata);
|
||||
BUILD_DIR/src/audio/load.o(.rodata);
|
||||
BUILD_DIR/src/audio/playback.o(.rodata);
|
||||
BUILD_DIR/src/audio/effects.o(.rodata);
|
||||
BUILD_DIR/src/audio/seqplayer.o(.rodata);
|
||||
BUILD_DIR/src/audio/external.o(.rodata);
|
||||
BUILD_DIR/src/audio/port_eu.o(.rodata);
|
||||
BUILD_DIR/src/code_80004740.o(.rodata*);
|
||||
BUILD_DIR/src/code_800029B0.o(.rodata*);
|
||||
BUILD_DIR/src/code_80005FD0.jp.o(.rodata*);
|
||||
BUILD_DIR/src/camera.o(.rodata*);
|
||||
BUILD_DIR/src/render_player.o(.rodata*);
|
||||
BUILD_DIR/src/player_controller.o(.rodata*);
|
||||
BUILD_DIR/src/spawn_players.o(.rodata*);
|
||||
BUILD_DIR/src/code_8003DC40.o(.rodata*);
|
||||
BUILD_DIR/src/gbiMacro.o(.rodata*);
|
||||
BUILD_DIR/src/math_util_2.o(.rodata*);
|
||||
BUILD_DIR/src/render_objects.o(.rodata*);
|
||||
BUILD_DIR/src/code_80057C60.o(.rodata*);
|
||||
BUILD_DIR/src/code_8006E9C0.o(.rodata*);
|
||||
BUILD_DIR/src/update_objects.o(.rodata*);
|
||||
BUILD_DIR/src/code_80086E70.o(.rodata*);
|
||||
BUILD_DIR/src/effects.o(.rodata*);
|
||||
BUILD_DIR/src/code_80091440.o(.rodata*);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.rodata*);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.rodata*);
|
||||
BUILD_DIR/src/menus.o(.rodata*);
|
||||
BUILD_DIR/src/save.o(.rodata*);
|
||||
BUILD_DIR/src/audio/heap.o(.rodata*);
|
||||
BUILD_DIR/src/audio/load.o(.rodata*);
|
||||
BUILD_DIR/src/audio/playback.o(.rodata*);
|
||||
BUILD_DIR/src/audio/effects.o(.rodata*);
|
||||
BUILD_DIR/src/audio/seqplayer.o(.rodata*);
|
||||
BUILD_DIR/src/audio/external.o(.rodata*);
|
||||
BUILD_DIR/src/audio/port_eu.o(.rodata*);
|
||||
#if DEBUG
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.rodata);
|
||||
BUILD_DIR/src/debug/debug.o(.rodata);
|
||||
BUILD_DIR/src/os/sprintf.o(.rodata);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.rodata*);
|
||||
BUILD_DIR/src/debug/debug.o(.rodata*);
|
||||
BUILD_DIR/src/os/sprintf.o(.rodata*);
|
||||
#endif
|
||||
BUILD_DIR/src/os/guRotateF.o(.rodata);
|
||||
BUILD_DIR/src/os/guPerspectiveF.o(.rodata);
|
||||
BUILD_DIR/asm/os/__osException.o(.rodata);
|
||||
BUILD_DIR/src/os/__osDevMgrMain.o(.rodata);
|
||||
BUILD_DIR/src/os/math/sinf.o(.rodata);
|
||||
BUILD_DIR/src/os/math/cosf.o(.rodata);
|
||||
BUILD_DIR/src/os/_Printf.o(.rodata);
|
||||
BUILD_DIR/src/os/guOrthoF.o(.rodata*);
|
||||
BUILD_DIR/src/os/guRotateF.o(.rodata*);
|
||||
BUILD_DIR/src/os/guScaleF.o(.rodata*);
|
||||
BUILD_DIR/src/os/guPerspectiveF.o(.rodata*);
|
||||
BUILD_DIR/src/os/guLookAtF.o(.rodata*);
|
||||
BUILD_DIR/src/os/osAiSetFrequency.o(.rodata*);
|
||||
BUILD_DIR/asm/os/__osException.o(.rodata*);
|
||||
BUILD_DIR/src/os/__osViSwapContext.o(.rodata*);
|
||||
BUILD_DIR/src/os/__osDevMgrMain.o(.rodata*);
|
||||
BUILD_DIR/src/os/guMtxF2L.o(.rodata*);
|
||||
BUILD_DIR/src/os/guNormalize.o(.rodata*);
|
||||
BUILD_DIR/src/os/math/sinf.o(.rodata*);
|
||||
BUILD_DIR/src/os/math/cosf.o(.rodata*);
|
||||
BUILD_DIR/src/os/_Printf.o(.rodata*);
|
||||
BUILD_DIR/asm/os/osSetIntMask.o(.rodata);
|
||||
BUILD_DIR/src/os/_Ldtob.o(.rodata);
|
||||
BUILD_DIR/src/os/_Ldtob.o(.rodata*);
|
||||
BUILD_DIR/data/rsp.o(.data);
|
||||
BUILD_DIR/src/audio/data.o(.data);
|
||||
}
|
||||
|
@ -309,46 +323,46 @@ SECTIONS
|
|||
|
||||
BEGIN_NOLOAD(main) {
|
||||
BUILD_DIR/src/main.o(.bss*);
|
||||
BUILD_DIR/src/code_800029B0.o(.bss);
|
||||
BUILD_DIR/src/profiler.o(.bss);
|
||||
BUILD_DIR/src/crash_screen.o(.bss);
|
||||
BUILD_DIR/src/code_80004740.o(.bss);
|
||||
BUILD_DIR/src/staff_ghosts.o(.bss);
|
||||
BUILD_DIR/src/code_80005FD0.jp.o(.bss);
|
||||
BUILD_DIR/src/camera.o(.bss);
|
||||
BUILD_DIR/src/render_player.o(.bss);
|
||||
BUILD_DIR/src/spawn_players.o(.bss);
|
||||
BUILD_DIR/src/code_80057C60.o(.bss);
|
||||
BUILD_DIR/src/code_80057C60_var.o(.bss);
|
||||
BUILD_DIR/src/effects.o(.bss);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.bss);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.bss);
|
||||
BUILD_DIR/src/menus.o(.bss);
|
||||
BUILD_DIR/src/code_800029B0.o(.bss*);
|
||||
BUILD_DIR/src/profiler.o(.bss*);
|
||||
BUILD_DIR/src/crash_screen.o(.bss*);
|
||||
BUILD_DIR/src/code_80004740.o(.bss*);
|
||||
BUILD_DIR/src/staff_ghosts.o(.bss*);
|
||||
BUILD_DIR/src/code_80005FD0.jp.o(.bss*);
|
||||
BUILD_DIR/src/camera.o(.bss*);
|
||||
BUILD_DIR/src/render_player.o(.bss*);
|
||||
BUILD_DIR/src/spawn_players.o(.bss*);
|
||||
BUILD_DIR/src/code_80057C60.o(.bss*);
|
||||
BUILD_DIR/src/code_80057C60_var.o(.bss*);
|
||||
BUILD_DIR/src/effects.o(.bss*);
|
||||
BUILD_DIR/src/code_80091750.jp.o(.bss*);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.bss*);
|
||||
BUILD_DIR/src/menus.o(.bss*);
|
||||
#if DEBUG
|
||||
BUILD_DIR/src/os/osCartRomInit.o(.bss);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.bss);
|
||||
BUILD_DIR/src/debug/debug.o(.bss);
|
||||
BUILD_DIR/src/os/is_debug.o(.bss);
|
||||
BUILD_DIR/src/os/sprintf.o(.bss);
|
||||
BUILD_DIR/src/os/osCartRomInit.o(.bss*);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.bss*);
|
||||
BUILD_DIR/src/debug/debug.o(.bss*);
|
||||
BUILD_DIR/src/os/is_debug.o(.bss*);
|
||||
BUILD_DIR/src/os/sprintf.o(.bss*);
|
||||
#endif
|
||||
BUILD_DIR/src/audio/external.o(.bss);
|
||||
BUILD_DIR/src/audio/port_eu.o(.bss);
|
||||
BUILD_DIR/src/os/osInitialize.o(.bss);
|
||||
BUILD_DIR/src/os/osCreateViManager.o(.bss);
|
||||
BUILD_DIR/src/os/osCreatePiManager.o(.bss);
|
||||
BUILD_DIR/src/os/osSetEventMesg.o(.bss);
|
||||
BUILD_DIR/src/os/osSpTaskLoadGo.o(.bss);
|
||||
BUILD_DIR/src/os/osContStartReadData.o(.bss);
|
||||
BUILD_DIR/src/os/osContInit.o(.bss);
|
||||
BUILD_DIR/src/os/osPfsIsPlug.o(.bss);
|
||||
BUILD_DIR/src/os/guRotateF.o(.bss);
|
||||
BUILD_DIR/src/os/leointerrupt.o(.bss);
|
||||
BUILD_DIR/src/os/osTimer.o(.bss);
|
||||
BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.bss);
|
||||
BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.bss);
|
||||
BUILD_DIR/src/os/osEepromWrite.o(.bss);
|
||||
BUILD_DIR/src/audio/external.o(.bss*);
|
||||
BUILD_DIR/src/audio/port_eu.o(.bss*);
|
||||
BUILD_DIR/src/os/osInitialize.o(.bss*);
|
||||
BUILD_DIR/src/os/osCreateViManager.o(.bss*);
|
||||
BUILD_DIR/src/os/osCreatePiManager.o(.bss*);
|
||||
BUILD_DIR/src/os/osSetEventMesg.o(.bss*);
|
||||
BUILD_DIR/src/os/osSpTaskLoadGo.o(.bss*);
|
||||
BUILD_DIR/src/os/osContStartReadData.o(.bss*);
|
||||
BUILD_DIR/src/os/osContInit.o(.bss*);
|
||||
BUILD_DIR/src/os/osPfsIsPlug.o(.bss*);
|
||||
BUILD_DIR/src/os/guRotateF.o(.bss*);
|
||||
BUILD_DIR/src/os/leointerrupt.o(.bss*);
|
||||
BUILD_DIR/src/os/osTimer.o(.bss*);
|
||||
BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.bss*);
|
||||
BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.bss*);
|
||||
BUILD_DIR/src/os/osEepromWrite.o(.bss*);
|
||||
BUILD_DIR/asm/os/__osException.o(.bss);
|
||||
BUILD_DIR/src/os/osLeoDiskInit.o(.bss);
|
||||
BUILD_DIR/src/os/osLeoDiskInit.o(.bss*);
|
||||
. = ALIGN(0x10);
|
||||
}
|
||||
END_NOLOAD(main)
|
||||
|
@ -356,7 +370,7 @@ SECTIONS
|
|||
/* Checks that segments are not overlapping into the memory pool but is not strictly necessary */
|
||||
BEGIN_NOLOAD(memoryPool)
|
||||
{
|
||||
BUILD_DIR/src/buffers/memory_pool.o(.bss);
|
||||
BUILD_DIR/src/buffers/memory_pool.o(.bss*);
|
||||
. = ALIGN(0x10);
|
||||
}
|
||||
END_NOLOAD(memoryPool)
|
||||
|
@ -367,26 +381,26 @@ SECTIONS
|
|||
BUILD_DIR/src/racing/race_logic.o(.text*);
|
||||
BUILD_DIR/src/racing/render_courses.o(.text*);
|
||||
BUILD_DIR/src/racing/actors.o(.text*);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.text);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.text*);
|
||||
BUILD_DIR/src/racing/memory.o(.text*);
|
||||
BUILD_DIR/src/racing/collision.o(.text*);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.text);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.text*);
|
||||
BUILD_DIR/src/racing/math_util.o(.text*);
|
||||
BUILD_DIR/src/racing/race_logic.o(.data*);
|
||||
BUILD_DIR/src/racing/render_courses.o(.data*);
|
||||
BUILD_DIR/src/racing/actors.o(.data*);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.data);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.data*);
|
||||
BUILD_DIR/src/racing/memory.o(.data*);
|
||||
BUILD_DIR/courses/courseTable.o(.data);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.data);
|
||||
BUILD_DIR/courses/courseTable.o(.data*);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.data*);
|
||||
BUILD_DIR/src/racing/math_util.o(.data*);
|
||||
BUILD_DIR/src/racing/race_logic.o(.rodata*);
|
||||
BUILD_DIR/src/racing/render_courses.o(.rodata*);
|
||||
BUILD_DIR/src/racing/actors.o(.rodata*);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.rodata);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.rodata*);
|
||||
BUILD_DIR/src/racing/memory.o(.rodata*);
|
||||
BUILD_DIR/src/racing/collision.o(.rodata*);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.rodata);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.rodata*);
|
||||
BUILD_DIR/src/racing/math_util.o(.rodata*);
|
||||
}
|
||||
END_SEG(racing)
|
||||
|
@ -414,33 +428,36 @@ SECTIONS
|
|||
}
|
||||
END_NOLOAD(buffers)
|
||||
|
||||
|
||||
/* 0x80280000 123640-12AAE0 [74A0] */
|
||||
BEGIN_SEG(ending, LINKER_ENDING)
|
||||
{
|
||||
BUILD_DIR/src/ending/code_80280000.o(.text);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.text);
|
||||
BUILD_DIR/src/ending/camera_junk.o(.text);
|
||||
BUILD_DIR/src/ending/code_80281780.o(.text);
|
||||
BUILD_DIR/src/ending/code_80281C40.o(.text);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.text);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.data);
|
||||
BUILD_DIR/src/ending/code_80281780.o(.data);
|
||||
BUILD_DIR/src/ending/dl_unk_80284EE0.o(.data);
|
||||
BUILD_DIR/src/ending/credits.jp.o(.data);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.data);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.rodata);
|
||||
BUILD_DIR/src/ending/camera_junk.o(.rodata);
|
||||
BUILD_DIR/src/ending/credits.jp.o(.rodata);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.rodata);
|
||||
BUILD_DIR/src/ending/code_80280000.o(.text*);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.text*);
|
||||
BUILD_DIR/src/ending/camera_junk.o(.text*);
|
||||
BUILD_DIR/src/ending/code_80281780.o(.text*);
|
||||
BUILD_DIR/src/ending/code_80281C40.o(.text*);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.text*);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.data*);
|
||||
BUILD_DIR/src/ending/code_80281780.o(.data*);
|
||||
BUILD_DIR/src/ending/dl_unk_80284EE0.o(.data*);
|
||||
BUILD_DIR/src/ending/credits.jp.o(.data*);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.data*);
|
||||
BUILD_DIR/src/ending/code_80280000.o(.rodata*);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.rodata*);
|
||||
BUILD_DIR/src/ending/camera_junk.o(.rodata*);
|
||||
BUILD_DIR/src/ending/code_80281780.o(.rodata*);
|
||||
BUILD_DIR/src/ending/code_80281C40.o(.rodata*);
|
||||
BUILD_DIR/src/ending/credits.jp.o(.rodata*);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.rodata*);
|
||||
}
|
||||
END_SEG(ending)
|
||||
|
||||
BEGIN_NOLOAD(ending) {
|
||||
BUILD_DIR/src/ending/code_80280000.o(.bss);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.bss);
|
||||
BUILD_DIR/src/ending/code_80281C40.o(.bss);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.bss);
|
||||
BUILD_DIR/src/ending/code_80280000.o(.bss*);
|
||||
BUILD_DIR/src/ending/podium_ceremony_actors.o(.bss*);
|
||||
BUILD_DIR/src/ending/code_80281C40.o(.bss*);
|
||||
BUILD_DIR/src/ending/ceremony_and_credits.o(.bss*);
|
||||
. = ALIGN(0x10);
|
||||
}
|
||||
END_NOLOAD(ending)
|
||||
|
||||
|
@ -449,7 +466,7 @@ SECTIONS
|
|||
BEGIN_SEG(data_segment2, 0x02000000)
|
||||
{
|
||||
BUILD_DIR/src/data/textures.o(.data);
|
||||
BUILD_DIR/assets/code/data_segment2/data_segment2.o(.data);
|
||||
BUILD_DIR/src/data/data_segment2.o(.data);
|
||||
}
|
||||
END_SEG(data_segment2)
|
||||
|
||||
|
|
|
@ -0,0 +1,167 @@
|
|||
# This file is auto-generated. DO NOT MODIFY!
|
||||
|
||||
SAFE_C_FILES := \
|
||||
build/us/src/camera.o \
|
||||
build/us/src/spawn_players.o \
|
||||
build/us/src/code_8003DC40.o \
|
||||
build/us/src/code_80091440.o \
|
||||
build/us/src/effects.o \
|
||||
build/us/src/code_80057C60_var.o \
|
||||
build/us/src/code_800029B0.o \
|
||||
build/us/src/code_80004740.o \
|
||||
build/us/src/player_controller.o \
|
||||
build/us/src/profiler.o \
|
||||
build/us/src/render_player.o \
|
||||
build/us/src/code_80086E70.o \
|
||||
build/us/src/staff_ghosts.o \
|
||||
build/us/src/gbiMacro.o \
|
||||
build/us/src/kart_dma.o \
|
||||
build/us/src/math_util_2.o \
|
||||
build/us/src/main.o \
|
||||
build/us/src/data/kart_attributes.o \
|
||||
build/us/src/data/path_spawn_metadata.o \
|
||||
build/us/src/data/textures.o \
|
||||
build/us/src/data/trig_tables_bss.o \
|
||||
build/us/src/data/data_segment2.o \
|
||||
build/us/src/audio/seqplayer.o \
|
||||
build/us/src/audio/heap.o \
|
||||
build/us/src/audio/effects.o \
|
||||
build/us/src/audio/playback.o \
|
||||
build/us/src/audio/audio_session_presets.o \
|
||||
build/us/src/audio/port_eu.o \
|
||||
build/us/src/buffers/gfx_output_buffer.o \
|
||||
build/us/src/buffers/trig_tables.o \
|
||||
build/us/src/buffers/buffers.o \
|
||||
build/us/src/buffers/random.o \
|
||||
build/us/src/buffers/trig_tables_bss.o \
|
||||
build/us/src/buffers/memory_pool.o \
|
||||
build/us/src/ending/credits.o \
|
||||
build/us/src/ending/code_80280000.o \
|
||||
build/us/src/ending/ceremony_and_credits.o \
|
||||
build/us/src/ending/dl_unk_80284EE0.o \
|
||||
build/us/src/ending/code_80281780.o \
|
||||
build/us/src/ending/podium_ceremony_actors.o \
|
||||
build/us/src/ending/code_80281C40.o \
|
||||
build/us/src/ending/camera_junk.o \
|
||||
build/us/src/debug/debug.o \
|
||||
build/us/src/debug/crash_screen_enhancement.o \
|
||||
build/us/src/racing/collision.o \
|
||||
build/us/src/racing/skybox_and_splitscreen.o \
|
||||
build/us/src/racing/memory.o \
|
||||
build/us/src/racing/race_logic.o \
|
||||
build/us/src/racing/actors_extended.o \
|
||||
build/us/src/racing/render_courses.o \
|
||||
build/us/src/racing/actors.o \
|
||||
build/us/src/os/guOrthoF.o \
|
||||
build/us/src/os/guLookAtF.o \
|
||||
build/us/src/os/__osSiDeviceBusy.o \
|
||||
build/us/src/os/_Litob.o \
|
||||
build/us/src/os/osContInit.o \
|
||||
build/us/src/os/osInitialize.o \
|
||||
build/us/src/os/osAiSetNextBuffer.o \
|
||||
build/us/src/os/guMtxCatL.o \
|
||||
build/us/src/os/__osAiDeviceBusy.o \
|
||||
build/us/src/os/contramread.o \
|
||||
build/us/src/os/osSpTaskLoadGo.o \
|
||||
build/us/src/os/crc.o \
|
||||
build/us/src/os/osCreateMesgQueue.o \
|
||||
build/us/src/os/guRotateF.o \
|
||||
build/us/src/os/__osLeoInterrupt.o \
|
||||
build/us/src/os/osContStartReadData.o \
|
||||
build/us/src/os/osGetThreadPri.o \
|
||||
build/us/src/os/osPfsNumFiles.o \
|
||||
build/us/src/os/__osSiRawReadIo.o \
|
||||
build/us/src/os/osSpTaskYield.o \
|
||||
build/us/src/os/osStartThread.o \
|
||||
build/us/src/os/osViData.o \
|
||||
build/us/src/os/osPfsFileState.o \
|
||||
build/us/src/os/contpfs.o \
|
||||
build/us/src/os/leointerrupt.o \
|
||||
build/us/src/os/osPfsAllocateFile.o \
|
||||
build/us/src/os/ldiv.o \
|
||||
build/us/src/os/osSpTaskYielded.o \
|
||||
build/us/src/os/__osSpSetPc.o \
|
||||
build/us/src/os/osSetTime.o \
|
||||
build/us/src/os/osYieldThread.o \
|
||||
build/us/src/os/osPiRawStartDma.o \
|
||||
build/us/src/os/osSetTimer.o \
|
||||
build/us/src/os/osPfsDeleteFile.o \
|
||||
build/us/src/os/__osSpDeviceBusy.o \
|
||||
build/us/src/os/osEepromRead.o \
|
||||
build/us/src/os/osPiRawReadIo.o \
|
||||
build/us/src/os/osSetEventMesg.o \
|
||||
build/us/src/os/NaN.o \
|
||||
build/us/src/os/osJamMesg.o \
|
||||
build/us/src/os/osPfsChecker.o \
|
||||
build/us/src/os/sprintf.o \
|
||||
build/us/src/os/_Printf.o \
|
||||
build/us/src/os/osViTable.o \
|
||||
build/us/src/os/osEepromLongWrite.o \
|
||||
build/us/src/os/__osEPiRawWriteIo.o \
|
||||
build/us/src/os/osViSetEvent.o \
|
||||
build/us/src/os/__osGetCurrFaultedThread.o \
|
||||
build/us/src/os/osCreatePiManager.o \
|
||||
build/us/src/os/epidma.o \
|
||||
build/us/src/os/osCartRomInit.o \
|
||||
build/us/src/os/osPfsFreeBlocks.o \
|
||||
build/us/src/os/osPfsSearchFile.o \
|
||||
build/us/src/os/__osAtomicDec.o \
|
||||
build/us/src/os/osViBlack.o \
|
||||
build/us/src/os/__osViInit.o \
|
||||
build/us/src/os/osEepromWrite.o \
|
||||
build/us/src/os/osAiSetFrequency.o \
|
||||
build/us/src/os/__osEPiRawReadIo.o \
|
||||
build/us/src/os/guLookAtRef.o \
|
||||
build/us/src/os/guPerspectiveF.o \
|
||||
build/us/src/os/contramwrite.o \
|
||||
build/us/src/os/osGetTime.o \
|
||||
build/us/src/os/__osViSwapContext.o \
|
||||
build/us/src/os/alBnkfNew.o \
|
||||
build/us/src/os/__osSpSetStatus.o \
|
||||
build/us/src/os/osPfsReadWriteFile.o \
|
||||
build/us/src/os/osPiStartDma.o \
|
||||
build/us/src/os/osRecvMesg.o \
|
||||
build/us/src/os/osDestroyThread.o \
|
||||
build/us/src/os/string.o \
|
||||
build/us/src/os/__osSiRawWriteIo.o \
|
||||
build/us/src/os/osPfsInit.o \
|
||||
build/us/src/os/guMtxCatF.o \
|
||||
build/us/src/os/osPfsIsPlug.o \
|
||||
build/us/src/os/__osDequeueThread.o \
|
||||
build/us/src/os/__osSiCreateAccessQueue.o \
|
||||
build/us/src/os/osViSwapBuffer.o \
|
||||
build/us/src/os/is_debug.o \
|
||||
build/us/src/os/__osViGetCurrentContext.o \
|
||||
build/us/src/os/__osPiCreateAccessQueue.o \
|
||||
build/us/src/os/__osSpRawStartDma.o \
|
||||
build/us/src/os/__osSyncPutChars.o \
|
||||
build/us/src/os/osSendMesg.o \
|
||||
build/us/src/os/osSyncPrintf.o \
|
||||
build/us/src/os/__osResetGlobalIntMask.o \
|
||||
build/us/src/os/guScaleF.o \
|
||||
build/us/src/os/osSetThreadPri.o \
|
||||
build/us/src/os/__osDevMgrMain.o \
|
||||
build/us/src/os/osVirtualToPhysical.o \
|
||||
build/us/src/os/osViSetMode.o \
|
||||
build/us/src/os/__osSetHWIntrRoutine.o \
|
||||
build/us/src/os/osCreateViManager.o \
|
||||
build/us/src/os/__osSiRawStartDma.o \
|
||||
build/us/src/os/guNormalize.o \
|
||||
build/us/src/os/osLeoDiskInit.o \
|
||||
build/us/src/os/__osSpGetStatus.o \
|
||||
build/us/src/os/osEepromLongRead.o \
|
||||
build/us/src/os/_Ldtob.o \
|
||||
build/us/src/os/guMtxF2L.o \
|
||||
build/us/src/os/osEPiRawStartDma.o \
|
||||
build/us/src/os/osPiGetCmdQueue.o \
|
||||
build/us/src/os/osAiGetLength.o \
|
||||
build/us/src/os/osViSetSpecialFeatures.o \
|
||||
build/us/src/os/osCreateThread.o \
|
||||
build/us/src/os/osTimer.o \
|
||||
build/us/src/os/osEepromProbe.o \
|
||||
build/us/src/os/__osSetGlobalIntMask.o \
|
||||
build/us/src/os/guTranslateF.o \
|
||||
build/us/src/os/math/llconv.o \
|
||||
build/us/src/os/math/cosf.o \
|
||||
build/us/src/os/math/llmuldiv.o \
|
||||
build/us/src/os/math/sinf.o \
|
|
@ -1,4 +1,5 @@
|
|||
#include <PR/ultratypes.h>
|
||||
#include <macros.h>
|
||||
|
||||
#include "data.h"
|
||||
#include "effects.h"
|
||||
|
@ -440,4 +441,4 @@ u16 D_803B7192; // unconfirmed
|
|||
u32 gAudioRandom;
|
||||
s32 gAudioErrorFlags;
|
||||
u32 D_803B71A0[4]; // unconfirmed
|
||||
u8 D_803B71B0[4]; // unconfirmed
|
||||
ALIGNED8 u8 D_803B71B0[4]; // unconfirmed
|
||||
|
|
|
@ -56,8 +56,8 @@ extern s16 gAiBufferLengths[NUMAIBUFFERS]; // osAiSetNextBuffer nbytes
|
|||
extern u16 D_803B7192; // unconfirmed
|
||||
extern u32 gAudioRandom;
|
||||
extern s32 gAudioErrorFlags;
|
||||
extern u32 D_803B71A0[4]; // unconfirmed
|
||||
extern u8 D_803B71B0[4]; // unconfirmed
|
||||
extern u32 D_803B71A0[]; // unconfirmed
|
||||
extern u8 D_803B71B0[]; // unconfirmed
|
||||
|
||||
extern struct ReverbSettingsEU sReverbSettings[];
|
||||
extern struct AudioSessionSettingsEU gAudioSessionPresets[];
|
||||
|
|
|
@ -116,7 +116,6 @@ void *unk_pool1_lookup(s32 poolIdx, s32 id);
|
|||
void func_800BA8B0(s32, s32);
|
||||
|
||||
extern s32 D_800EA5D0;
|
||||
extern u8 D_803B71B0[];
|
||||
|
||||
extern s32 gMaxAudioCmds;
|
||||
extern s16 gTempoInternalToExternal;
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
|
||||
extern s32 D_802BA038;
|
||||
extern s16 D_802BA048;
|
||||
|
||||
s16 gCurrentCourseId = 0;
|
||||
s16 gCurrentlyLoadedCourseId = 0xFF;
|
||||
u16 D_800DC5A8 = 0;
|
||||
|
@ -52,7 +51,7 @@ u16 D_800DC5E4 = 0;
|
|||
//! @todo gPlayerWinningIndex (D_800DC5E8) accessed as word, D_800DC5EB as u8
|
||||
s32 gPlayerWinningIndex = 0;
|
||||
|
||||
struct UnkStruct_800DC5EC D_8015F480[4];
|
||||
ALIGNED16 struct UnkStruct_800DC5EC D_8015F480[4];
|
||||
struct UnkStruct_800DC5EC *D_800DC5EC = &D_8015F480[0];
|
||||
struct UnkStruct_800DC5EC *D_800DC5F0 = &D_8015F480[1];
|
||||
struct UnkStruct_800DC5EC *D_800DC5F4 = &D_8015F480[2];
|
||||
|
@ -66,7 +65,7 @@ Lights1 D_800DC610[] = {
|
|||
gdSPDefLights1(175, 175, 175, 255, 255, 255, 0, 0, 120),
|
||||
gdSPDefLights1(115, 115, 115, 255, 255, 255, 0, 0, 120),
|
||||
};
|
||||
static s32 pad_800029B0 = 0x80000000;
|
||||
UNUSED s32 pad_800029B0 = 0x80000000;
|
||||
s16 gCreditsCourseId = COURSE_LUIGI_RACEWAY;
|
||||
s16 gPlaceItemBoxes = 1;
|
||||
|
||||
|
|
|
@ -5722,7 +5722,7 @@ void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_8006AFD0(Player *player, s8 arg1, s16 arg2, s8 arg3) {
|
||||
void render_battle_balloon(Player *player, s8 arg1, s16 arg2, s8 arg3) {
|
||||
Mat4 sp140;
|
||||
Vec3f sp134;
|
||||
Vec3s sp12C;
|
||||
|
@ -5848,16 +5848,19 @@ void func_8006B9CC(Player* player, s8 arg1) {
|
|||
|
||||
void func_8006BA94(Player* player, s8 playerIndex, s8 arg2) {
|
||||
if (gPlayerBalloonStatus[playerIndex][0] != BALLOON_STATUS_GONE) {
|
||||
func_8006AFD0(player, playerIndex, 0, arg2);
|
||||
render_battle_balloon(player, playerIndex, 0, arg2);
|
||||
}
|
||||
if (gPlayerBalloonStatus[playerIndex][1] != BALLOON_STATUS_GONE) {
|
||||
func_8006AFD0(player, playerIndex, 1, arg2);
|
||||
render_battle_balloon(player, playerIndex, 1, arg2);
|
||||
}
|
||||
if (gPlayerBalloonStatus[playerIndex][2] != BALLOON_STATUS_GONE) {
|
||||
func_8006AFD0(player, playerIndex, 2, arg2);
|
||||
render_battle_balloon(player, playerIndex, 2, arg2);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used in podium ceremony.
|
||||
*/
|
||||
void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) {
|
||||
Mat4 sp108;
|
||||
Vec3f spFC;
|
||||
|
|
|
@ -221,7 +221,7 @@ void func_8006A01C(Player*, s8, s16, s8);
|
|||
void func_8006A280(Player*, s8, s16, s8);
|
||||
void func_8006A50C(Player*, f32, f32, s8, s8, s16);
|
||||
void func_8006A7C0(Player*, f32, f32, s8, s8);
|
||||
void func_8006AFD0(Player*, s8, s16, s8);
|
||||
void render_battle_balloon(Player*, s8, s16, s8);
|
||||
|
||||
void func_8006B7E4(Player*, s8);
|
||||
void func_8006B87C(Player*, s8);
|
||||
|
|
|
@ -616,7 +616,7 @@ void init_cloud_object(s32 objectIndex, s32 arg1, CloudData *arg2) {
|
|||
temp_v0->unk_09E = arg2->posY;
|
||||
temp_v0->sizeScaling = (f32) arg2->scalePercent / 100.0;
|
||||
temp_v0->activeTexture = &D_8018D220[arg2->subType];
|
||||
func_80073404(objectIndex, 0x40U, 0x20U, &D_0D005FB0);
|
||||
func_80073404(objectIndex, 0x40U, 0x20U, &D_0D005FB0[0]);
|
||||
temp_v0->primAlpha = 0x00FF;
|
||||
}
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ s32 gControllerPak1NumPagesFree;
|
|||
s32 gControllerPak1FileNote;
|
||||
s32 gControllerPak2FileNote;
|
||||
s32 code_80091750_bss_pad2;
|
||||
SaveData gSaveData;
|
||||
ALIGNED8 SaveData gSaveData;
|
||||
|
||||
u8 D_8018ED90;
|
||||
u8 D_8018ED91;
|
||||
|
@ -1152,7 +1152,7 @@ s32 D_800E84A0[] = {
|
|||
};
|
||||
|
||||
Vtx *D_800E84C0[] = {
|
||||
D_02007BB8, D_02007CD8, D_02007DF8,
|
||||
&D_02007BB8[0], &D_02007BB8[18], &D_02007BB8[36],
|
||||
};
|
||||
|
||||
Gfx *D_800E84CC[] = {
|
||||
|
@ -2791,6 +2791,15 @@ Gfx *func_800959F8(Gfx *displayListHead, Vtx *arg1) {
|
|||
} else {
|
||||
index = ((gTextColor * 2) + ((s32) gGlobalTimer % 2)) - 4;
|
||||
}
|
||||
#ifdef AVOID_UB
|
||||
if (arg1 == D_02007BB8) {
|
||||
gSPDisplayList(displayListHead++, D_800E84CC[index]);
|
||||
} else if (arg1 == &D_02007BB8[18]) {
|
||||
gSPDisplayList(displayListHead++, D_800E84EC[index]);
|
||||
} else if (arg1 == &D_02007BB8[36]) {
|
||||
gSPDisplayList(displayListHead++, D_800E850C[index]);
|
||||
}
|
||||
#else
|
||||
if (arg1 == D_02007BB8) {
|
||||
gSPDisplayList(displayListHead++, D_800E84CC[index]);
|
||||
} else if (arg1 == D_02007CD8) {
|
||||
|
@ -2798,6 +2807,9 @@ Gfx *func_800959F8(Gfx *displayListHead, Vtx *arg1) {
|
|||
} else if (arg1 == D_02007DF8) {
|
||||
gSPDisplayList(displayListHead++, D_800E850C[index]);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
return displayListHead;
|
||||
}
|
||||
|
||||
|
@ -2863,16 +2875,16 @@ func_80095BD0_label2:
|
|||
gDPLoadTextureTile_4b(displayListHead++, arg1, G_IM_FMT_I, arg4, 0, 0, 0, arg4, arg5, 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);
|
||||
switch (arg4) {
|
||||
default:
|
||||
var_a1 = D_02007CD8;
|
||||
var_a1 = &D_02007BB8[18];
|
||||
break;
|
||||
case 16:
|
||||
var_a1 = D_02007CD8;
|
||||
var_a1 = &D_02007BB8[18];
|
||||
break;
|
||||
case 26:
|
||||
var_a1 = D_02007BB8;
|
||||
break;
|
||||
case 30:
|
||||
var_a1 = D_02007DF8;
|
||||
var_a1 = &D_02007BB8[36];
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -211,8 +211,7 @@ void thread9_crash_screen(UNUSED void *arg0)
|
|||
// Run only on the first iteration.
|
||||
if (sCounter == 0) {
|
||||
crash_screen_draw_square(pFramebuffer);
|
||||
//#define SKIP_DRAW_SQUARE
|
||||
#ifndef SKIP_DRAW_SQUARE
|
||||
#ifndef DEBUG
|
||||
while(TRUE)
|
||||
{
|
||||
read_controllers();
|
||||
|
@ -231,7 +230,7 @@ void thread9_crash_screen(UNUSED void *arg0)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef CRASH_SCREEN_ENHANCEMENT
|
||||
#if DEBUG
|
||||
crash_screen_draw(thread);
|
||||
#else
|
||||
crash_screen_draw_info(pFramebuffer, thread);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#include <PR/ultratypes.h>
|
||||
#include <PR/gbi.h>
|
||||
#include "data_segment2.h"
|
||||
#include <assets/startup_logo.h>"
|
||||
#include <assets/startup_logo.h>
|
||||
|
||||
Gfx D_02007650[] = {
|
||||
gsDPPipeSync(),
|
||||
|
@ -104,168 +104,168 @@ Gfx D_02007818[] = {
|
|||
|
||||
Gfx D_02007838[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007BD8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[2], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007858[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007BF8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[4], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007878[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C18, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[6], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007898[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C38, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[8], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078B8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C58, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[10], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078D8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C78, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[12], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020078F8[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007C98, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[14], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007918[] = {
|
||||
gsSPVertex(D_02007BB8, 2, 0),
|
||||
gsSPVertex(D_02007CB8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[16], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007938[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007CF8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[20], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007958[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D18, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[22], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007978[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D38, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[24], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007998[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D58, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[26], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079B8[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D78, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[28], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079D8[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007D98, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[30], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_020079F8[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007DB8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[32], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A18[] = {
|
||||
gsSPVertex(D_02007CD8, 2, 0),
|
||||
gsSPVertex(D_02007DD8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[18], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[34], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A38[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E18, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[38], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A58[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E38, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[40], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A78[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E58, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[42], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007A98[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E78, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[44], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AB8[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007E98, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[46], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AD8[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007EB8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[48], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007AF8[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007ED8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[50], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx D_02007B18[] = {
|
||||
gsSPVertex(D_02007DF8, 2, 0),
|
||||
gsSPVertex(D_02007EF8, 2, 2),
|
||||
gsSPVertex(&D_02007BB8[36], 2, 0),
|
||||
gsSPVertex(&D_02007BB8[52], 2, 2),
|
||||
gsSPDisplayList(common_rectangle_display),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
@ -281,8 +281,64 @@ UNUSED Vtx D_02007B38[] = {
|
|||
{{{ 0, 0, 0}, 0, { 0, 448}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
|
||||
//! @todo Place all these vertices in a single array
|
||||
// Access the correct vertex using sym[value]
|
||||
#ifdef AVOID_UB
|
||||
Vtx D_02007BB8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 65520, 0}, 0, {1600, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{26, 0, 0}, 0, {1600, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{16, 65520, 0}, 0, {960, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{16, 0, 0}, 0, {960, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 960}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 65504, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{30, 65504, 0}, 0, {1856, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0x00, 0xff, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0x00, 0xff, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0xff, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#else
|
||||
Vtx D_02007BB8[] = {
|
||||
{{{ 0, 65520, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
{{{26, 65520, 0}, 0, {1600, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
|
@ -417,6 +473,7 @@ Vtx D_02007EF8[] = {
|
|||
{{{30, 0, 0}, 0, {1856, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
{{{ 0, 0, 0}, 0, { 0, 1984}, {0xff, 0x00, 0x00, 0xff}}},
|
||||
};
|
||||
#endif
|
||||
|
||||
Gfx D_02007F18[] = {
|
||||
gsDPPipeSync(),
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
|
||||
/**
|
||||
* Trig tables get loaded into memory at this location.
|
||||
* See trig_tables.c for the real file.
|
||||
*/
|
||||
|
||||
#ifdef VERSION_EU
|
||||
ALIGNED8 u8 trigTablesPadding[0x5750];
|
||||
#else
|
||||
ALIGNED8 u8 trigTablesPadding[0x5810];
|
||||
#endif
|
|
@ -51,6 +51,7 @@ extern Gfx D_02008058[];
|
|||
extern Gfx common_rectangle_display[];
|
||||
|
||||
extern Vtx D_02007BB8[];
|
||||
#ifndef AVOID_UB
|
||||
extern Vtx D_02007BD8[];
|
||||
extern Vtx D_02007BF8[];
|
||||
extern Vtx D_02007C18[];
|
||||
|
@ -77,5 +78,7 @@ extern Vtx D_02007E98[];
|
|||
extern Vtx D_02007EB8[];
|
||||
extern Vtx D_02007ED8[];
|
||||
extern Vtx D_02007EF8[];
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
|
19
src/main.c
19
src/main.c
|
@ -1,4 +1,6 @@
|
|||
#define STRANGE_MAIN_HEADER_H
|
||||
#ifndef GCC
|
||||
#define D_800DC510_AS_U16
|
||||
#endif
|
||||
#include <ultra64.h>
|
||||
#include <PR/os.h>
|
||||
#include <PR/ucode.h>
|
||||
|
@ -83,11 +85,11 @@ Player *gPlayerTwoCopy = &gPlayers[1];
|
|||
UNUSED Player *gPlayerThreeCopy = &gPlayers[2];
|
||||
UNUSED Player *gPlayerFourCopy = &gPlayers[3];
|
||||
|
||||
s32 D_800FD850[3];
|
||||
UNUSED s32 D_800FD850[3];
|
||||
struct GfxPool gGfxPools[2];
|
||||
struct GfxPool *gGfxPool;
|
||||
|
||||
s32 gfxPool_padding; // is this necessary?
|
||||
UNUSED s32 gfxPool_padding; // is this necessary?
|
||||
struct VblankHandler gGameVblankHandler;
|
||||
struct VblankHandler sSoundVblankHandler;
|
||||
OSMesgQueue gDmaMesgQueue, gGameVblankQueue, gGfxVblankQueue, unused_gMsgQueue, gIntrMesgQueue, gSPTaskMesgQueue;
|
||||
|
@ -103,15 +105,14 @@ OSMesgQueue gSIEventMesgQueue;
|
|||
OSMesg gSIEventMesgBuf[3];
|
||||
|
||||
OSContStatus gControllerStatuses[4];
|
||||
|
||||
OSContPad gControllerPads[4];
|
||||
u8 gControllerBits;
|
||||
|
||||
struct UnkStruct_8015F584 D_8014F110[1024];
|
||||
u16 gNumActors;
|
||||
u16 gMatrixObjectCount;
|
||||
s32 gTickSpeed;
|
||||
f32 D_80150118;
|
||||
|
||||
u16 wasSoftReset;
|
||||
u16 D_8015011E;
|
||||
|
||||
|
@ -120,9 +121,6 @@ s32 gGotoMode;
|
|||
UNUSED s32 D_80150128;
|
||||
UNUSED s32 D_8015012C;
|
||||
f32 gCameraZoom[4]; // look like to be the fov of each character
|
||||
//f32 D_80150134;
|
||||
//f32 D_80150138;
|
||||
//f32 D_8015013C;
|
||||
UNUSED s32 D_80150140;
|
||||
UNUSED s32 D_80150144;
|
||||
f32 gScreenAspect;
|
||||
|
@ -133,6 +131,7 @@ UNUSED f32 D_80150154;
|
|||
struct D_80150158 gD_80150158[16];
|
||||
uintptr_t gSegmentTable[16];
|
||||
Gfx *gDisplayListHead;
|
||||
|
||||
struct SPTask *gGfxSPTask;
|
||||
s32 D_801502A0;
|
||||
s32 D_801502A4;
|
||||
|
@ -161,8 +160,8 @@ ALIGNED8 u8 gAudioThreadStack[STACKSIZE];
|
|||
UNUSED OSThread D_8015CD30;
|
||||
UNUSED ALIGNED8 u8 D_8015CD30_Stack[STACKSIZE / 2];
|
||||
|
||||
u8 gGfxSPTaskYieldBuffer[4352];
|
||||
u32 gGfxSPTaskStack[256];
|
||||
ALIGNED8 u8 gGfxSPTaskYieldBuffer[4352];
|
||||
ALIGNED8 u32 gGfxSPTaskStack[256];
|
||||
OSMesg gPIMesgBuf[32];
|
||||
OSMesgQueue gPIMesgQueue;
|
||||
|
||||
|
|
24
src/main.h
24
src/main.h
|
@ -136,23 +136,21 @@ extern Player *gPlayerEight;
|
|||
extern Player *gPlayerOneCopy;
|
||||
extern Player *gPlayerTwoCopy;
|
||||
|
||||
extern s32 D_800FD850[];
|
||||
extern struct GfxPool gGfxPools[];
|
||||
extern struct GfxPool *gGfxPool;
|
||||
|
||||
extern s32 gfxPool_padding;
|
||||
extern struct VblankHandler gGameVblankHandler;
|
||||
extern struct VblankHandler sSoundVblankHandler;
|
||||
extern OSMesgQueue gDmaMesgQueue, gGameVblankQueue, gGfxVblankQueue, unused_gMsgQueue, gIntrMesgQueue, gSPTaskMesgQueue;
|
||||
extern OSMesgQueue sSoundMesgQueue;
|
||||
extern OSMesg sSoundMesgBuf[];
|
||||
extern OSMesg gDmaMesgBuf[], gGameMesgBuf;
|
||||
extern OSMesg sSoundMesgBuf[1];
|
||||
extern OSMesg gDmaMesgBuf[1], gGameMesgBuf;
|
||||
extern OSMesg gGfxMesgBuf[];
|
||||
extern OSMesg gIntrMesgBuf[], gSPTaskMesgBuf[];
|
||||
extern OSMesg gIntrMesgBuf[16], gSPTaskMesgBuf[16];
|
||||
extern OSMesg gMainReceivedMesg;
|
||||
extern OSIoMesg gDmaIoMesg;
|
||||
extern OSMesgQueue gSIEventMesgQueue;
|
||||
extern OSMesg gSIEventMesgBuf[];
|
||||
extern OSMesg gSIEventMesgBuf[3];
|
||||
|
||||
extern OSContStatus gControllerStatuses[];
|
||||
|
||||
|
@ -203,11 +201,19 @@ extern u8 gGfxSPTaskYieldBuffer[];
|
|||
extern u32 gGfxSPTaskStack[];
|
||||
extern OSMesg gPIMesgBuf[];
|
||||
extern OSMesgQueue gPIMesgQueue;
|
||||
|
||||
void race_logic_loop(void);
|
||||
extern s32 gGamestate;
|
||||
#ifndef STRANGE_MAIN_HEADER_H
|
||||
extern s32 D_800DC510;
|
||||
#ifndef D_800DC510_AS_U16
|
||||
// Prevent overlapping writes in gcc
|
||||
// Whether D_800DC510 was intended to be a separate variable in main.c from the rest of the game is unknown
|
||||
#ifdef GCC
|
||||
extern u16 D_800DC510;
|
||||
#else
|
||||
extern s32 D_800DC510;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern u16 D_800DC514;
|
||||
extern u16 creditsRenderMode;
|
||||
extern u16 gDemoMode;
|
||||
extern u16 gEnableDebugMode;
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
#include "libultra_internal.h"
|
||||
|
||||
OSThreadTail __osThreadTail = {NULL, -1};
|
||||
#ifndef AVOID_UB
|
||||
OSThread *__osThreadTail = NULL;
|
||||
u32 __osTest = -1;
|
||||
OSThread *__osRunQueue = (OSThread *) &__osThreadTail;
|
||||
OSThread *__osActiveQueue = (OSThread *) &__osThreadTail;
|
||||
OSThread *__osRunningThread = NULL;
|
||||
OSThread *__osFaultedThread = NULL;
|
||||
#else
|
||||
OSThread_ListHead __osThreadTail_fix = {NULL, -1, (OSThread *) &__osThreadTail_fix, (OSThread *) &__osThreadTail_fix, NULL, 0};
|
||||
#endif
|
||||
|
||||
void __osDequeueThread(OSThread **queue, OSThread *thread) {
|
||||
register OSThread **a2;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "ultra64.h"
|
||||
#include "osint.h"
|
||||
#include "piint.h"
|
||||
#include "libultra_internal.h"
|
||||
|
||||
extern OSThread *__osRunQueue;
|
||||
static void __osLeoResume(void);
|
||||
static void __osLeoAbnormalResume(void);
|
||||
extern u8 leoDiskStack[OS_PIM_STACKSIZE]; //technically should have a OS_LEO_STACKSIZE or something..
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef _LIBULTRA_INTERNAL_H_
|
||||
#define _LIBULTRA_INTERNAL_H_
|
||||
#include <ultra64.h>
|
||||
#include <PR/os_thread.h>
|
||||
#include "macros.h"
|
||||
|
||||
typedef struct __OSEventState
|
||||
|
@ -15,15 +16,41 @@ typedef struct __osThreadTail
|
|||
OSPri priority;
|
||||
} OSThreadTail;
|
||||
|
||||
/*
|
||||
* This define is needed because the original definitions in __osDequeueThread.c are declared
|
||||
* seperately instead of part of a single struct, however some code alises over this memory
|
||||
* assuming a unified structure. To fix this, we declare the full type here and then alias the
|
||||
* symbol names to the correct members in AVOID_UB.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
/*0x00*/ struct OSThread_s *next;
|
||||
/*0x04*/ OSPri priority;
|
||||
/*0x08*/ struct OSThread_s *queue;
|
||||
/*0x0C*/ struct OSThread_s *tlnext;
|
||||
/*0x10*/ struct OSThread_s *unk10;
|
||||
/*0x14*/ u32 unk14;
|
||||
} OSThread_ListHead;
|
||||
#ifdef AVOID_UB
|
||||
|
||||
// Now fix the symbols to the new one.
|
||||
extern OSThread_ListHead __osThreadTail_fix;
|
||||
|
||||
#define __osThreadTail __osThreadTail_fix.next
|
||||
#define D_80334894 __osThreadTail_fix.priority
|
||||
#define __osRunQueue __osThreadTail_fix.queue
|
||||
#define __osActiveQueue __osThreadTail_fix.tlnext
|
||||
#define __osRunningThread __osThreadTail_fix.unk10
|
||||
#else
|
||||
// Original OSThread_ListHead definitions
|
||||
extern OSThreadTail __osThreadTail;
|
||||
extern OSThread *__osThreadTail;
|
||||
extern OSThread *__osActiveQueue;
|
||||
extern OSThread *__osRunQueue;
|
||||
extern OSThread *__osRunningThread;
|
||||
|
||||
#endif
|
||||
|
||||
// Original EEPROM definitions
|
||||
extern ALIGNED8 u32 D_80365E00[15];
|
||||
extern u32 D_80365E00[15];
|
||||
extern u32 D_80365E3C;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -7,7 +7,7 @@ unsigned long long __ull_rem(unsigned long long a0, unsigned long long a1)
|
|||
return a0 % a1;
|
||||
}
|
||||
unsigned long long __ull_div(unsigned long long a0, unsigned long long a1)
|
||||
{
|
||||
{
|
||||
return a0 / a1;
|
||||
}
|
||||
|
||||
|
@ -34,19 +34,19 @@ unsigned long long __ll_mul(unsigned long long a0, unsigned long long a1)
|
|||
void __ull_divremi(unsigned long long *div, unsigned long long *rem, unsigned long long a2, unsigned short a3)
|
||||
{
|
||||
*div = a2 / a3;
|
||||
*rem = a2 % a3;
|
||||
}
|
||||
*rem = a2 % a3;
|
||||
}
|
||||
long long __ll_mod(long long a0, long long a1)
|
||||
{
|
||||
long long tmp = a0 % a1;
|
||||
if ((tmp < 0 && a1 > 0) || (tmp > 0 && a1 < 0))
|
||||
{
|
||||
|
||||
tmp += a1;
|
||||
tmp += a1;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
long long __ll_rshift(long long a0, long long a1)
|
||||
{
|
||||
return a0 >> a1;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#include "libultra_internal.h"
|
||||
|
||||
void __osCleanupThread(void);
|
||||
extern OSThread *__osActiveQueue;
|
||||
|
||||
|
||||
// Don't warn about pointer->u64 cast
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
#include "libultra_internal.h"
|
||||
#include "controller.h"
|
||||
|
||||
extern u64 osClockRate;
|
||||
extern u8 D_80365D20;
|
||||
extern u8 _osContNumControllers;
|
||||
extern OSTimer D_80196548;
|
||||
extern OSMesgQueue _osContMesgQueue;
|
||||
extern OSMesg _osContMesgBuff[4];
|
||||
|
|
|
@ -1,30 +1,11 @@
|
|||
#include "libultra_internal.h"
|
||||
#include "controller.h"
|
||||
#include "macros.h"
|
||||
#include "controller.h"
|
||||
|
||||
extern u8 __osContLastCmd;
|
||||
extern u8 _osLastSentSiCmd;
|
||||
|
||||
extern OSPifRam __osEepPifRam;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
u8 unk04;
|
||||
u8 unk05;
|
||||
u8 unk06;
|
||||
u8 unk07;
|
||||
} unkStruct3;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
unkStruct3 unk04;
|
||||
} unkStruct2;
|
||||
|
||||
s32 __osEepStatus(OSMesgQueue *, OSContStatus *);
|
||||
void __osPackEepReadData(u8);
|
||||
|
||||
|
|
|
@ -7,25 +7,6 @@ OSPifRam __osEepPifRam;
|
|||
|
||||
extern u8 __osContLastCmd;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
u8 unk04;
|
||||
u8 unk05;
|
||||
u8 unk06;
|
||||
u8 unk07;
|
||||
} unkStruct3;
|
||||
|
||||
typedef struct {
|
||||
u8 unk00;
|
||||
u8 unk01;
|
||||
u8 unk02;
|
||||
u8 unk03;
|
||||
unkStruct3 unk04;
|
||||
} unkStruct2;
|
||||
|
||||
s32 __osEepStatus(OSMesgQueue *, OSContStatus *);
|
||||
void __osPackEepWriteData(u8, u8 *);
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef _OSINT_H
|
||||
#define _OSINT_H
|
||||
#include "libultra_internal.h"
|
||||
#include <macros.h>
|
||||
|
||||
//maybe should be in exceptasm.h?
|
||||
extern void __osEnqueueAndYield(OSThread **);
|
||||
|
@ -15,10 +16,14 @@ extern void __osTimerInterrupt(void);
|
|||
extern u32 __osProbeTLB(void *);
|
||||
extern int __osSpDeviceBusy(void);
|
||||
|
||||
#ifdef AVOID_UB
|
||||
extern OSThread_ListHead __osThreadTail_fix;
|
||||
#else
|
||||
extern OSThread *__osRunningThread;
|
||||
extern OSThread *__osActiveQueue;
|
||||
extern OSThread *__osFaultedThread;
|
||||
extern OSThread *__osRunQueue;
|
||||
#endif
|
||||
|
||||
extern OSTimer *__osTimerList;
|
||||
extern OSTimer __osBaseTimer;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <PR/rcp.h>
|
||||
#include "buffers/trig_tables.h"
|
||||
#include "math.h"
|
||||
#include "memory.h"
|
||||
|
||||
#pragma intrinsic (sqrtf,fabs)
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ s32 render_set_position(Mat4, s32);
|
|||
f32 func_802B51E8(Vec3f, Vec3f);
|
||||
s32 get_angle_between_two_vectors(Vec3f, Vec3f);
|
||||
u32 func_802B5258(Vec3f, Vec3s);
|
||||
void func_802B5794(Mat4, Vec3f, Vec3f);
|
||||
void vec3f_set(Vec3f, f32, f32, f32);
|
||||
void vec3s_set(Vec3s, s16, s16, s16);
|
||||
void *vec3f_copy_return(Vec3f, Vec3f);
|
||||
|
|
|
@ -26,6 +26,7 @@ struct UnkStruct_802B8CD4 D_802B8CD4[] = {
|
|||
0
|
||||
};
|
||||
s32 D_802B8CE4 = 0; // pad
|
||||
s32 memoryPadding[2];
|
||||
|
||||
/**
|
||||
* @brief Returns the address of the next available memory location and updates the memory pointer
|
||||
|
|
|
@ -563,19 +563,19 @@ UNUSED void func_80046C78(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) {
|
|||
}
|
||||
|
||||
UNUSED void func_80046CDC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) {
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, &D_0D005FB0, 64, 32, 64, 32);
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, D_0D005FB0, 64, 32, 64, 32);
|
||||
}
|
||||
|
||||
UNUSED void func_80046D40(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture) {
|
||||
func_80046808(arg0, arg1, arg2, texture, &D_0D005FB0, 64, 32, 64, 32);
|
||||
func_80046808(arg0, arg1, arg2, texture, D_0D005FB0, 64, 32, 64, 32);
|
||||
}
|
||||
|
||||
UNUSED void func_80046D90(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) {
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, D_0D0060B0, 64, 64, 64, 32);
|
||||
func_800464D0(arg0, arg1, arg2, arg3, texture, common_vtx_hedgehog, 64, 64, 64, 32);
|
||||
}
|
||||
|
||||
UNUSED void func_80046DF4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 *texture) {
|
||||
func_800465B8(arg0, arg1, arg2, arg3, arg4, texture, D_0D0060B0, 64, 64, 64, 32);
|
||||
func_800465B8(arg0, arg1, arg2, arg3, arg4, texture, common_vtx_hedgehog, 64, 64, 64, 32);
|
||||
}
|
||||
|
||||
void load_texture_and_tlut(u8 *tlut, u8 *texture, s32 width, s32 height) {
|
||||
|
@ -3528,7 +3528,7 @@ void func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex) {
|
|||
D_80183E80[2] = (s16) (temp_v0->unk_084[6] + 0x8000);
|
||||
rsp_set_matrix_transformation(temp_v0->pos, (u16 *) D_80183E80, temp_v0->sizeScaling);
|
||||
set_color_render((s32) temp_v0->unk_084[0], (s32) temp_v0->unk_084[1], (s32) temp_v0->unk_084[2], (s32) temp_v0->unk_084[3], (s32) temp_v0->unk_084[4], (s32) temp_v0->unk_084[5], (s32) temp_v0->primAlpha);
|
||||
gSPVertex(gDisplayListHead++, &D_0D0060B0[vertexIndex], 4, 0);
|
||||
gSPVertex(gDisplayListHead++, &common_vtx_hedgehog[vertexIndex], 4, 0);
|
||||
gSPDisplayList(gDisplayListHead++, common_rectangle_display);
|
||||
}
|
||||
}
|
||||
|
@ -3906,7 +3906,7 @@ void draw_crabs(s32 objectIndex, s32 cameraId) {
|
|||
camera = &camera1[cameraId];
|
||||
func_8004A6EC(objectIndex, 0.5f);
|
||||
gObjectList[objectIndex].orientation[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos);
|
||||
draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
draw_2d_texture_at(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, common_vtx_hedgehog, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4161,7 +4161,7 @@ void render_object_neon(s32 cameraId) {
|
|||
object = &gObjectList[objectIndex];
|
||||
if ((object->state >= 2) && (is_obj_index_flag_status_inactive(objectIndex, 0x00080000) != 0) && (is_object_visible_on_camera(objectIndex, camera, 0x2AABU) != 0)) {
|
||||
object->orientation[1] = angle_between_object_camera(objectIndex, camera);
|
||||
draw_2d_texture_at(object->pos, object->orientation, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
draw_2d_texture_at(object->pos, object->orientation, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, common_vtx_hedgehog, 0x00000040, 0x00000040, 0x00000040, 0x00000020);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2955,7 +2955,7 @@ void init_obj_lakitu_red_flag_countdown(s32 objectIndex, s32 arg1) {
|
|||
D_8018D168 = 0;
|
||||
}
|
||||
init_texture_object(objectIndex, (u8 *) common_tlut_lakitu_countdown, gTextureLakituNoLights1, 0x38U, (u16) 0x00000048);
|
||||
gObjectList[objectIndex].vertex = D_0D005EB0;
|
||||
gObjectList[objectIndex].vertex = common_vtx_lakitu;
|
||||
gObjectList[objectIndex].sizeScaling = 0.15f;
|
||||
set_object_flag_status_false(objectIndex, 0x00000010);
|
||||
func_80072488(objectIndex);
|
||||
|
@ -3048,7 +3048,7 @@ void init_obj_lakitu_red_flag(s32 objectIndex, s32 playerIndex) {
|
|||
init_texture_object(objectIndex, common_tlut_lakitu_checkered_flag, gTextureLakituCheckeredFlag01, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->activeTexture = D_8018C028;
|
||||
temp_v0->vertex = D_0D006730;
|
||||
temp_v0->vertex = common_vtx_also_lakitu;
|
||||
temp_v0->pos[2] = 5000.0f;
|
||||
temp_v0->pos[1] = 5000.0f;
|
||||
temp_v0->pos[0] = 5000.0f;
|
||||
|
@ -3298,7 +3298,7 @@ void func_8007A060(s32 objectIndex, s32 playerIndex) {
|
|||
init_texture_object(objectIndex, common_tlut_lakitu_second_lap, gTextureLakituSecondLap01, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->activeTexture = D_8018C028;
|
||||
temp_v0->vertex = D_0D006730;
|
||||
temp_v0->vertex = common_vtx_also_lakitu;
|
||||
temp_v0->pos[2] = 5000.0f;
|
||||
temp_v0->pos[1] = 5000.0f;
|
||||
temp_v0->pos[0] = 5000.0f;
|
||||
|
@ -3346,7 +3346,7 @@ void func_8007A228(s32 objectIndex, s32 playerIndex) {
|
|||
init_texture_object(objectIndex, common_tlut_lakitu_final_lap, gTextureLakituFinalLap01, 0x48U, (u16) 0x00000038);
|
||||
temp_v0 = &gObjectList[objectIndex];
|
||||
temp_v0->activeTexture = D_8018C028;
|
||||
temp_v0->vertex = D_0D006730;
|
||||
temp_v0->vertex = common_vtx_also_lakitu;
|
||||
temp_v0->pos[2] = 5000.0f;
|
||||
temp_v0->pos[1] = 5000.0f;
|
||||
temp_v0->pos[0] = 5000.0f;
|
||||
|
@ -3392,7 +3392,7 @@ void func_8007A3F0(s32 objectIndex, s32 arg1) {
|
|||
func_800791F0(objectIndex, arg1);
|
||||
init_texture_object(objectIndex, common_tlut_lakitu_reverse, gTextureLakituReverse01, 0x48U, (u16) 0x00000038);
|
||||
gObjectList[objectIndex].activeTexture = D_8018C028;
|
||||
gObjectList[objectIndex].vertex = D_0D006730;
|
||||
gObjectList[objectIndex].vertex = common_vtx_also_lakitu;
|
||||
gObjectList[objectIndex].pos[2] = var;
|
||||
gObjectList[objectIndex].pos[1] = var;
|
||||
gObjectList[objectIndex].pos[0] = var;
|
||||
|
@ -6698,7 +6698,7 @@ void func_8008311C(s32 objectIndex, s32 arg1) {
|
|||
temp_s0 = &gObjectList[objectIndex];
|
||||
temp_s0->activeTLUT = d_course_yoshi_valley_hedgehog_tlut;
|
||||
temp_s0->activeTexture = d_course_yoshi_valley_hedgehog;
|
||||
temp_s0->vertex = D_0D0060B0;
|
||||
temp_s0->vertex = common_vtx_hedgehog;
|
||||
temp_s0->sizeScaling = 0.2f;
|
||||
temp_s0->itemDisplay = 0;
|
||||
func_80072488(objectIndex);
|
||||
|
@ -6754,7 +6754,7 @@ void func_800833D0(s32 objectIndex, s32 arg1) {
|
|||
break;
|
||||
}
|
||||
if (gObjectList[objectIndex].itemDisplay == 0) {
|
||||
gObjectList[objectIndex].vertex = D_0D0060B0;
|
||||
gObjectList[objectIndex].vertex = common_vtx_hedgehog;
|
||||
} else {
|
||||
gObjectList[objectIndex].vertex = D_0D006130;
|
||||
}
|
||||
|
@ -6897,7 +6897,7 @@ void func_80083A94(s32 objectIndex) {
|
|||
|
||||
void func_80083B0C(s32 objectIndex) {
|
||||
init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_body, 0x40U, (u16) 0x00000040);
|
||||
gObjectList[objectIndex].vertex = D_0D0060B0;
|
||||
gObjectList[objectIndex].vertex = common_vtx_hedgehog;
|
||||
gObjectList[objectIndex].sizeScaling = 0.1f;
|
||||
gObjectList[objectIndex].itemDisplay = 0;
|
||||
func_80072488(objectIndex);
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
# Complete file list producer v0.7
|
||||
# Written by ProjectRevoTPP
|
||||
|
||||
import os
|
||||
from glob import glob
|
||||
import sys
|
||||
|
||||
def holecount(file):
|
||||
with open(file, 'r', encoding = 'utf-8') as infile:
|
||||
contents = infile.readlines()
|
||||
asm_count = 0
|
||||
for i, line in enumerate(contents):
|
||||
if(line.count("GLOBAL_ASM") > 0 and (i + 1 == len(contents) or contents[i+1].count("#endif") == 0)):
|
||||
asm_count += 1
|
||||
return asm_count
|
||||
|
||||
def noncount(file):
|
||||
with open(file, 'r', encoding = 'utf-8') as infile:
|
||||
contents = infile.readlines()
|
||||
noncount = 0
|
||||
for i, line in enumerate(contents):
|
||||
if(line.count("NON_") > 0):
|
||||
noncount += 1
|
||||
return noncount
|
||||
|
||||
def holecount_all(src):
|
||||
for subdir, dirs, files in os.walk(src):
|
||||
for filename in files:
|
||||
filepath = subdir + os.sep + filename
|
||||
if(not filename.endswith('.c')):
|
||||
continue
|
||||
holes = holecount(filepath)
|
||||
nonmatches = noncount(filepath)
|
||||
if(holes > 0 and nonmatches > 0):
|
||||
print(filename, holes, nonmatches)
|
||||
return 1
|
||||
|
||||
# get file encoding type
|
||||
def get_encoding_type(file):
|
||||
with open(file, 'rb') as f:
|
||||
rawdata = f.read()
|
||||
return detect(rawdata)['encoding']
|
||||
|
||||
outfile = open(sys.argv[1], "w")
|
||||
outfile.write("# This file is auto-generated. DO NOT MODIFY!\n\n")
|
||||
outfile.write("SAFE_C_FILES := \\\n")
|
||||
for directory in os.walk("src"):
|
||||
for filename in glob(os.path.join(directory[0], "*.c")):
|
||||
infile = open(filename, "r", encoding="ascii", errors="surrogateescape")
|
||||
# Open content.
|
||||
contents = infile.read()
|
||||
# Set the counts.
|
||||
nonm_count = contents.count("NON_MATCHING")
|
||||
noneq_count = contents.count("NON_EQUIVALENT")
|
||||
global_asm_count = contents.count("GLOBAL_ASM")
|
||||
# NOTE: As of now there is no distinction between unattempted files and unfinished ones.
|
||||
if nonm_count + noneq_count == global_asm_count :
|
||||
outfile.write(" build/us/")
|
||||
outfile.write(os.path.splitext(filename)[0])
|
||||
outfile.write(".o \\\n")
|
||||
infile.close()
|
||||
outfile.close()
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 74b0c120290083a5e3571a43deada72781af072b
|
||||
Subproject commit c82b4a8423eb41202dc61378aa50f0052140c132
|
|
@ -73,6 +73,61 @@ D_0D001200:
|
|||
type: vtx
|
||||
offset: 0x1200
|
||||
count: 1
|
||||
D_0D001210:
|
||||
symbol: D_0D001210
|
||||
type: vtx
|
||||
offset: 0x1210
|
||||
count: 3
|
||||
D_0D001240:
|
||||
symbol: D_0D001240
|
||||
type: vtx
|
||||
offset: 0x1240
|
||||
count: 3
|
||||
D_0D001270:
|
||||
symbol: D_0D001270
|
||||
type: vtx
|
||||
offset: 0x1270
|
||||
count: 3
|
||||
D_0D0012A0:
|
||||
symbol: D_0D0012A0
|
||||
type: vtx
|
||||
offset: 0x12A0
|
||||
count: 3
|
||||
D_0D0012D0:
|
||||
symbol: D_0D0012D0
|
||||
type: vtx
|
||||
offset: 0x12D0
|
||||
count: 3
|
||||
D_0D001300:
|
||||
symbol: D_0D001300
|
||||
type: vtx
|
||||
offset: 0x1300
|
||||
count: 3
|
||||
D_0D001330:
|
||||
symbol: D_0D001330
|
||||
type: vtx
|
||||
offset: 0x1330
|
||||
count: 3
|
||||
D_0D001360:
|
||||
symbol: D_0D001360
|
||||
type: vtx
|
||||
offset: 0x1360
|
||||
count: 3
|
||||
common_vtx_finish_line_banner:
|
||||
symbol: common_vtx_finish_line_banner
|
||||
type: vtx
|
||||
offset: 0x1390
|
||||
count: 32
|
||||
common_vtx_finish_post:
|
||||
symbol: common_vtx_finish_post
|
||||
type: vtx
|
||||
offset: 0x1590
|
||||
count: 24
|
||||
D_0D001710:
|
||||
symbol: D_0D001710
|
||||
type: vtx
|
||||
offset: 0x1710
|
||||
count: 4
|
||||
D_0D001750:
|
||||
symbol: D_0D001750
|
||||
type: gfx
|
||||
|
@ -137,16 +192,12 @@ D_0D001C88:
|
|||
symbol: D_0D001C88
|
||||
type: gfx
|
||||
offset: 0x1C88
|
||||
common_vtx_itembox_question_mark:
|
||||
symbol: common_vtx_itembox_question_mark
|
||||
type: vtx
|
||||
offset: 0x1D28
|
||||
count: 4
|
||||
D_0D001D68:
|
||||
symbol: D_0D001D68
|
||||
type: vtx
|
||||
offset: 0x1D68
|
||||
count: 3
|
||||
|
||||
common_vtx_itembox:
|
||||
symbol: common_vtx_itembox
|
||||
type: VTX
|
||||
offset: 0x0D001CE8
|
||||
count: 32
|
||||
common_texture_item_box_question_mark:
|
||||
symbol: common_texture_item_box_question_mark
|
||||
type: texture
|
||||
|
@ -173,10 +224,11 @@ itemBoxQuestionMarkModel:
|
|||
symbol: itemBoxQuestionMarkModel
|
||||
type: gfx
|
||||
offset: 0x3008
|
||||
|
||||
D_0D003090:
|
||||
symbol: D_0D003090
|
||||
type: gfx
|
||||
offset: 0x3090
|
||||
offset: 0x0D003090
|
||||
D_0D0030F8:
|
||||
symbol: D_0D0030F8
|
||||
type: gfx
|
||||
|
@ -396,116 +448,61 @@ D_0D005E80:
|
|||
type: vtx
|
||||
offset: 0x5E80
|
||||
count: 3
|
||||
D_0D005EB0:
|
||||
symbol: D_0D005EB0
|
||||
common_vtx_lakitu:
|
||||
symbol: common_vtx_lakitu
|
||||
type: vtx
|
||||
offset: 0x5EB0
|
||||
count: 5
|
||||
D_0D005F00:
|
||||
symbol: D_0D005F00
|
||||
type: vtx
|
||||
offset: 0x5F00
|
||||
count: 3
|
||||
count: 8
|
||||
D_0D005F30:
|
||||
symbol: D_0D005F30
|
||||
type: vtx
|
||||
offset: 0x5F30
|
||||
count: 5
|
||||
D_0D005F80:
|
||||
symbol: D_0D005F80
|
||||
type: vtx
|
||||
offset: 0x5F80
|
||||
count: 3
|
||||
count: 8
|
||||
D_0D005FB0:
|
||||
symbol: D_0D005FB0
|
||||
type: vtx
|
||||
offset: 0x5FB0
|
||||
count: 1
|
||||
D_0D005FC0:
|
||||
symbol: D_0D005FC0
|
||||
type: vtx
|
||||
offset: 0x5FC0
|
||||
count: 3
|
||||
count: 4
|
||||
D_0D005FF0:
|
||||
symbol: D_0D005FF0
|
||||
type: vtx
|
||||
offset: 0x5FF0
|
||||
count: 1
|
||||
D_0D006000:
|
||||
symbol: D_0D006000
|
||||
type: vtx
|
||||
offset: 0x6000
|
||||
count: 3
|
||||
count: 4
|
||||
D_0D006030:
|
||||
symbol: D_0D006030
|
||||
type: vtx
|
||||
offset: 0x6030
|
||||
count: 5
|
||||
D_0D006080:
|
||||
symbol: D_0D006080
|
||||
type: vtx
|
||||
offset: 0x6080
|
||||
count: 3
|
||||
D_0D0060B0:
|
||||
symbol: D_0D0060B0
|
||||
count: 8
|
||||
common_vtx_hedgehog:
|
||||
symbol: common_vtx_hedgehog
|
||||
type: vtx
|
||||
offset: 0x60B0
|
||||
count: 5
|
||||
D_0D006100:
|
||||
symbol: D_0D006100
|
||||
type: vtx
|
||||
offset: 0x6100
|
||||
count: 3
|
||||
count: 8
|
||||
D_0D006130:
|
||||
symbol: D_0D006130
|
||||
type: vtx
|
||||
offset: 0x6130
|
||||
count: 5
|
||||
D_0D006180:
|
||||
symbol: D_0D006180
|
||||
type: vtx
|
||||
offset: 0x6180
|
||||
count: 3
|
||||
count: 8
|
||||
D_0D0061B0:
|
||||
symbol: D_0D0061B0
|
||||
type: vtx
|
||||
offset: 0x61B0
|
||||
count: 13
|
||||
D_0D006280:
|
||||
symbol: D_0D006280
|
||||
type: vtx
|
||||
offset: 0x6280
|
||||
count: 3
|
||||
count: 16
|
||||
D_0D0062B0:
|
||||
symbol: D_0D0062B0
|
||||
type: vtx
|
||||
offset: 0x62B0
|
||||
count: 29
|
||||
D_0D006480:
|
||||
symbol: D_0D006480
|
||||
type: vtx
|
||||
offset: 0x6480
|
||||
count: 3
|
||||
count: 32
|
||||
D_0D0064B0:
|
||||
symbol: D_0D0064B0
|
||||
type: vtx
|
||||
offset: 0x64B0
|
||||
count: 37
|
||||
D_0D006700:
|
||||
symbol: D_0D006700
|
||||
type: vtx
|
||||
offset: 0x6700
|
||||
count: 3
|
||||
D_0D006730:
|
||||
symbol: D_0D006730
|
||||
count: 40
|
||||
common_vtx_also_lakitu:
|
||||
symbol: common_vtx_also_lakitu
|
||||
type: vtx
|
||||
offset: 0x6730
|
||||
count: 25
|
||||
D_0D0068C0:
|
||||
symbol: D_0D0068C0
|
||||
type: vtx
|
||||
offset: 0x68C0
|
||||
count: 3
|
||||
count: 28
|
||||
D_0D0068F0:
|
||||
symbol: D_0D0068F0
|
||||
type: vtx
|
||||
|
|
|
@ -156,7 +156,7 @@ D_02007B18:
|
|||
symbol: D_02007B18
|
||||
type: Gfx
|
||||
offset: 0x7B18
|
||||
D_02007B38:
|
||||
D_02007B38: # unused
|
||||
symbol: D_02007B38
|
||||
type: vtx
|
||||
offset: 0x7B38
|
||||
|
@ -165,137 +165,137 @@ D_02007BB8:
|
|||
symbol: D_02007BB8
|
||||
type: vtx
|
||||
offset: 0x7BB8
|
||||
count: 2
|
||||
D_02007BD8:
|
||||
symbol: D_02007BD8
|
||||
type: vtx
|
||||
offset: 0x7BD8
|
||||
count: 2
|
||||
D_02007BF8:
|
||||
symbol: D_02007BF8
|
||||
type: vtx
|
||||
offset: 0x7BF8
|
||||
count: 2
|
||||
D_02007C18:
|
||||
symbol: D_02007C18
|
||||
type: vtx
|
||||
offset: 0x7C18
|
||||
count: 2
|
||||
D_02007C38:
|
||||
symbol: D_02007C38
|
||||
type: vtx
|
||||
offset: 0x7C38
|
||||
count: 2
|
||||
D_02007C58:
|
||||
symbol: D_02007C58
|
||||
type: vtx
|
||||
offset: 0x7C58
|
||||
count: 2
|
||||
D_02007C78:
|
||||
symbol: D_02007C78
|
||||
type: vtx
|
||||
offset: 0x7C78
|
||||
count: 2
|
||||
D_02007C98:
|
||||
symbol: D_02007C98
|
||||
type: vtx
|
||||
offset: 0x7C98
|
||||
count: 2
|
||||
D_02007CB8:
|
||||
symbol: D_02007CB8
|
||||
type: vtx
|
||||
offset: 0x7CB8
|
||||
count: 2
|
||||
D_02007CD8:
|
||||
symbol: D_02007CD8
|
||||
type: vtx
|
||||
offset: 0x7CD8
|
||||
count: 2
|
||||
D_02007CF8:
|
||||
symbol: D_02007CF8
|
||||
type: vtx
|
||||
offset: 0x7CF8
|
||||
count: 2
|
||||
D_02007D18:
|
||||
symbol: D_02007D18
|
||||
type: vtx
|
||||
offset: 0x7D18
|
||||
count: 2
|
||||
D_02007D38:
|
||||
symbol: D_02007D38
|
||||
type: vtx
|
||||
offset: 0x7D38
|
||||
count: 2
|
||||
D_02007D58:
|
||||
symbol: D_02007D58
|
||||
type: vtx
|
||||
offset: 0x7D58
|
||||
count: 2
|
||||
D_02007D78:
|
||||
symbol: D_02007D78
|
||||
type: vtx
|
||||
offset: 0x7D78
|
||||
count: 2
|
||||
D_02007D98:
|
||||
symbol: D_02007D98
|
||||
type: vtx
|
||||
offset: 0x7D98
|
||||
count: 2
|
||||
D_02007DB8:
|
||||
symbol: D_02007DB8
|
||||
type: vtx
|
||||
offset: 0x7DB8
|
||||
count: 2
|
||||
D_02007DD8:
|
||||
symbol: D_02007DD8
|
||||
type: vtx
|
||||
offset: 0x7DD8
|
||||
count: 2
|
||||
D_02007DF8:
|
||||
symbol: D_02007DF8
|
||||
type: vtx
|
||||
offset: 0x7DF8
|
||||
count: 2
|
||||
D_02007E18:
|
||||
symbol: D_02007E18
|
||||
type: vtx
|
||||
offset: 0x7E18
|
||||
count: 2
|
||||
D_02007E38:
|
||||
symbol: D_02007E38
|
||||
type: vtx
|
||||
offset: 0x7E38
|
||||
count: 2
|
||||
D_02007E58:
|
||||
symbol: D_02007E58
|
||||
type: vtx
|
||||
offset: 0x7E58
|
||||
count: 2
|
||||
D_02007E78:
|
||||
symbol: D_02007E78
|
||||
type: vtx
|
||||
offset: 0x7E78
|
||||
count: 2
|
||||
D_02007E98:
|
||||
symbol: D_02007E98
|
||||
type: vtx
|
||||
offset: 0x7E98
|
||||
count: 2
|
||||
D_02007EB8:
|
||||
symbol: D_02007EB8
|
||||
type: vtx
|
||||
offset: 0x7EB8
|
||||
count: 2
|
||||
D_02007ED8:
|
||||
symbol: D_02007ED8
|
||||
type: vtx
|
||||
offset: 0x7ED8
|
||||
count: 2
|
||||
D_02007EF8:
|
||||
symbol: D_02007EF8
|
||||
type: vtx
|
||||
offset: 0x7EF8
|
||||
count: 2
|
||||
count: 54
|
||||
# D_02007BD8:
|
||||
# symbol: D_02007BD8
|
||||
# type: vtx
|
||||
# offset: 0x7BD8
|
||||
# count: 2
|
||||
# D_02007BF8:
|
||||
# symbol: D_02007BF8
|
||||
# type: vtx
|
||||
# offset: 0x7BF8
|
||||
# count: 2
|
||||
# D_02007C18:
|
||||
# symbol: D_02007C18
|
||||
# type: vtx
|
||||
# offset: 0x7C18
|
||||
# count: 2
|
||||
# D_02007C38:
|
||||
# symbol: D_02007C38
|
||||
# type: vtx
|
||||
# offset: 0x7C38
|
||||
# count: 2
|
||||
# D_02007C58:
|
||||
# symbol: D_02007C58
|
||||
# type: vtx
|
||||
# offset: 0x7C58
|
||||
# count: 2
|
||||
# D_02007C78:
|
||||
# symbol: D_02007C78
|
||||
# type: vtx
|
||||
# offset: 0x7C78
|
||||
# count: 2
|
||||
# D_02007C98:
|
||||
# symbol: D_02007C98
|
||||
# type: vtx
|
||||
# offset: 0x7C98
|
||||
# count: 2
|
||||
# D_02007CB8:
|
||||
# symbol: D_02007CB8
|
||||
# type: vtx
|
||||
# offset: 0x7CB8
|
||||
# count: 2
|
||||
# D_02007CD8:
|
||||
# symbol: D_02007CD8
|
||||
# type: vtx
|
||||
# offset: 0x7CD8
|
||||
# count: 2
|
||||
# D_02007CF8:
|
||||
# symbol: D_02007CF8
|
||||
# type: vtx
|
||||
# offset: 0x7CF8
|
||||
# count: 2
|
||||
# D_02007D18:
|
||||
# symbol: D_02007D18
|
||||
# type: vtx
|
||||
# offset: 0x7D18
|
||||
# count: 2
|
||||
# D_02007D38:
|
||||
# symbol: D_02007D38
|
||||
# type: vtx
|
||||
# offset: 0x7D38
|
||||
# count: 2
|
||||
# D_02007D58:
|
||||
# symbol: D_02007D58
|
||||
# type: vtx
|
||||
# offset: 0x7D58
|
||||
# count: 2
|
||||
# D_02007D78:
|
||||
# symbol: D_02007D78
|
||||
# type: vtx
|
||||
# offset: 0x7D78
|
||||
# count: 2
|
||||
# D_02007D98:
|
||||
# symbol: D_02007D98
|
||||
# type: vtx
|
||||
# offset: 0x7D98
|
||||
# count: 2
|
||||
# D_02007DB8:
|
||||
# symbol: D_02007DB8
|
||||
# type: vtx
|
||||
# offset: 0x7DB8
|
||||
# count: 2
|
||||
# D_02007DD8:
|
||||
# symbol: D_02007DD8
|
||||
# type: vtx
|
||||
# offset: 0x7DD8
|
||||
# count: 2
|
||||
# D_02007DF8:
|
||||
# symbol: D_02007DF8
|
||||
# type: vtx
|
||||
# offset: 0x7DF8
|
||||
# count: 2
|
||||
# D_02007E18:
|
||||
# symbol: D_02007E18
|
||||
# type: vtx
|
||||
# offset: 0x7E18
|
||||
# count: 2
|
||||
# D_02007E38:
|
||||
# symbol: D_02007E38
|
||||
# type: vtx
|
||||
# offset: 0x7E38
|
||||
# count: 2
|
||||
# D_02007E58:
|
||||
# symbol: D_02007E58
|
||||
# type: vtx
|
||||
# offset: 0x7E58
|
||||
# count: 2
|
||||
# D_02007E78:
|
||||
# symbol: D_02007E78
|
||||
# type: vtx
|
||||
# offset: 0x7E78
|
||||
# count: 2
|
||||
# D_02007E98:
|
||||
# symbol: D_02007E98
|
||||
# type: vtx
|
||||
# offset: 0x7E98
|
||||
# count: 2
|
||||
# D_02007EB8:
|
||||
# symbol: D_02007EB8
|
||||
# type: vtx
|
||||
# offset: 0x7EB8
|
||||
# count: 2
|
||||
# D_02007ED8:
|
||||
# symbol: D_02007ED8
|
||||
# type: vtx
|
||||
# offset: 0x7ED8
|
||||
# count: 2
|
||||
# D_02007EF8:
|
||||
# symbol: D_02007EF8
|
||||
# type: vtx
|
||||
# offset: 0x7EF8
|
||||
# count: 2
|
||||
D_02007F18:
|
||||
symbol: D_02007F18
|
||||
type: gfx
|
||||
|
|
Loading…
Reference in New Issue