mirror of https://github.com/n64decomp/mk64.git
Revamp progress script, change file structure and remove unused asm (#459)
* Revamp progress script, change file structure and remove unused asm * Add text when there's no GLOBAL_ASM remaining (100%)
This commit is contained in:
parent
aa720db51a
commit
77241ead94
|
@ -1,10 +1,15 @@
|
|||
def totalProgBadge = addEmbeddableBadgeConfiguration(id: "totalProgress", subject: "Total Progress", color: "7d0000")
|
||||
def gameCodeProgBadge = addEmbeddableBadgeConfiguration(id: "codeProgress", subject: "Game Code Progress", color: "7d0000")
|
||||
def gameCodeProgBadge = addEmbeddableBadgeConfiguration(id: "gameProgress", subject: "Game Code Progress", color: "7d0000")
|
||||
|
||||
def mainProgBadge = addEmbeddableBadgeConfiguration(id: "mainProgress", subject: "Main Code Progress", color: "7d0000")
|
||||
def endingProgBadge = addEmbeddableBadgeConfiguration(id: "endingProgress", subject: "Ending Code Progress", color: "7d0000")
|
||||
def racingProgBadge = addEmbeddableBadgeConfiguration(id: "racingProgress", subject: "Racing Code Progress", color: "7d0000")
|
||||
def audioProgBadge = addEmbeddableBadgeConfiguration(id: "audioProgress", subject: "Audio Code Progress", color: "7d0000")
|
||||
def osProgBadge = addEmbeddableBadgeConfiguration(id: "osProgress", subject: "Libultra Code Progress", color: "7d0000")
|
||||
|
||||
def bytesToDecompile = addEmbeddableBadgeConfiguration(id: "bytesLeft", subject: "Remaining Decompilable Bytes", color: "7d0000")
|
||||
def m2cFuncs = addEmbeddableBadgeConfiguration(id: "m2c", subject: "Remaining Functions", color: "7d0000")
|
||||
def nonmatchingFuncs = addEmbeddableBadgeConfiguration(id: "nonmatching", subject: "Non-matching Functions", color: "7d0000")
|
||||
def nonmatchingFuncs = addEmbeddableBadgeConfiguration(id: "nonmatching", subject: "Non Matching Functions", color: "7d0000")
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
|
@ -38,27 +43,47 @@ pipeline {
|
|||
script: "python3 progress.py totalBadge",
|
||||
returnStdout: true).trim()
|
||||
totalProgBadge.setStatus(progress)
|
||||
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py gameBadge",
|
||||
returnStdout: true).trim()
|
||||
gameCodeProgBadge.setStatus(progress)
|
||||
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py mainBadge",
|
||||
returnStdout: true).trim()
|
||||
mainProgBadge.setStatus(progress)
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py endingBadge",
|
||||
returnStdout: true).trim()
|
||||
endingProgBadge.setStatus(progress)
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py racingBadge",
|
||||
returnStdout: true).trim()
|
||||
racingProgBadge.setStatus(progress)
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py audioBadge",
|
||||
returnStdout: true).trim()
|
||||
audioProgBadge.setStatus(progress)
|
||||
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py osBadge",
|
||||
returnStdout: true).trim()
|
||||
osProgBadge.setStatus(progress)
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py bytesToDecompile",
|
||||
returnStdout: true).trim()
|
||||
bytesToDecompile.setStatus(progress)
|
||||
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py m2cFuncs",
|
||||
returnStdout: true).trim()
|
||||
m2cFuncs.setStatus(progress)
|
||||
|
||||
|
||||
progress = sh(
|
||||
script: "python3 progress.py nonmatchingFuncs",
|
||||
returnStdout: true).trim()
|
||||
|
|
28
Makefile
28
Makefile
|
@ -205,8 +205,8 @@ DATA_DIR := data
|
|||
INCLUDE_DIRS := include
|
||||
|
||||
# Directories containing source files
|
||||
SRC_DIRS := src src/racing src/ending src/audio src/debug src/os src/os/math courses
|
||||
ASM_DIRS := asm asm/audio asm/os asm/unused asm/os/non_matchings $(DATA_DIR) $(DATA_DIR)/sound_data $(DATA_DIR)/karts
|
||||
SRC_DIRS := src src/data src/racing src/ending src/audio src/debug src/os src/os/math courses
|
||||
ASM_DIRS := asm asm/os asm/unused $(DATA_DIR) $(DATA_DIR)/sound_data $(DATA_DIR)/karts
|
||||
|
||||
|
||||
# Directories containing course source and data files
|
||||
|
@ -242,9 +242,11 @@ DEP_FILES := $(O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
|
|||
|
||||
# Files with GLOBAL_ASM blocks
|
||||
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/*.c)
|
||||
GLOBAL_ASM_OS_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/os/*.c)
|
||||
GLOBAL_ASM_AUDIO_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/audio/*.c)
|
||||
GLOBAL_ASM_RACING_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/racing/*.c)
|
||||
GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GLOBAL_ASM_OS_O_FILES = $(foreach file,$(GLOBAL_ASM_OS_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GLOBAL_ASM_AUDIO_O_FILES = $(foreach file,$(GLOBAL_ASM_AUDIO_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GLOBAL_ASM_RACING_O_FILES = $(foreach file,$(GLOBAL_ASM_RACING_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
|
@ -461,7 +463,7 @@ $(BUILD_DIR)/src/ending/ceremony_data.inc.o: src/ending/ceremony_data.inc.c
|
|||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
|
||||
$(BUILD_DIR)/src/startup_logo.inc.o: src/startup_logo.inc.c
|
||||
$(BUILD_DIR)/src/data/startup_logo.inc.o: src/data/startup_logo.inc.c
|
||||
@$(PRINT) "$(GREEN)Compiling Startup Logo: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/textures/startup_logo/reflection_map_gold.rgba16.inc.c -g textures/startup_logo/reflection_map_gold.rgba16.png -f rgba16 -s u8
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
|
@ -487,7 +489,7 @@ $(TEXTURE_FILES_TLUT):
|
|||
$(V)$(N64GRAPHICS) -i $(BUILD_DIR)/$@.inc.c -g $@.png -f $(lastword $(subst ., ,$@)) -s u8 -c $(lastword $(subst ., ,$(subst .$(lastword $(subst ., ,$(TEXTURE_FILES_TLUT))), ,$(TEXTURE_FILES_TLUT)))) -p $(BUILD_DIR)/$@.tlut.inc.c
|
||||
|
||||
# common textures
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: src/common_textures.inc.c $(TEXTURE_FILES) $(TEXTURE_FILES_TLUT)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: src/data/common_textures.inc.c $(TEXTURE_FILES) $(TEXTURE_FILES_TLUT)
|
||||
@$(PRINT) "$(GREEN)Compiling Common Textures: $(BLUE)$@ $(NO_COL)\n"
|
||||
@$(CC_CHECK) $(CC_CHECK_CFLAGS) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
|
||||
$(V)$(CC) -c $(CFLAGS) -o $@ $<
|
||||
|
@ -584,6 +586,8 @@ $(EUC_JP_FILES:%.c=$(BUILD_DIR)/%.jp.o): CC := $(PYTHON) tools/asm_processor/bui
|
|||
|
||||
$(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
$(GLOBAL_ASM_OS_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
$(GLOBAL_ASM_AUDIO_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
$(GLOBAL_ASM_RACING_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
@ -633,13 +637,13 @@ $(BUILD_DIR)/src/ending/ceremony_data.inc.mio0.o: $(BUILD_DIR)/src/ending/ceremo
|
|||
# Compile Startup Logo #
|
||||
#==============================================================================#
|
||||
|
||||
$(BUILD_DIR)/src/startup_logo.inc.mio0.o: src/startup_logo.inc.c
|
||||
$(BUILD_DIR)/src/data/startup_logo.inc.mio0.o: src/data/startup_logo.inc.c
|
||||
@$(PRINT) "$(GREEN)Compressing Startup Logo: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) -t -e 0 -Ttext=06000000 -Map $(BUILD_DIR)/src/startup_logo.inc.elf.map -o $(BUILD_DIR)/src/startup_logo.inc.elf $(BUILD_DIR)/src/startup_logo.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/src/startup_logo.inc.elf $(BUILD_DIR)/src/startup_logo.inc.bin
|
||||
$(V)$(MIO0TOOL) -c $(BUILD_DIR)/src/startup_logo.inc.bin $(BUILD_DIR)/src/startup_logo.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.data\n\n\n\n.balign 4\n\n\nglabel startup_logo\n\n.incbin \"build/us/src/startup_logo.inc.mio0\"\n\n.balign 16\n\nglabel data_825800_end\n" > build/us/src/startup_logo.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/startup_logo.inc.mio0.s
|
||||
$(V)$(LD) -t -e 0 -Ttext=06000000 -Map $(BUILD_DIR)/src/data/startup_logo.inc.elf.map -o $(BUILD_DIR)/src/data/startup_logo.inc.elf $(BUILD_DIR)/src/data/startup_logo.inc.o --no-check-sections
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/src/data/startup_logo.inc.elf $(BUILD_DIR)/src/data/startup_logo.inc.bin
|
||||
$(V)$(MIO0TOOL) -c $(BUILD_DIR)/src/data/startup_logo.inc.bin $(BUILD_DIR)/src/data/startup_logo.inc.mio0
|
||||
printf ".include \"macros.inc\"\n\n.data\n\n\n\n.balign 4\n\n\nglabel startup_logo\n\n.incbin \"build/us/src/data/startup_logo.inc.mio0\"\n\n.balign 16\n\nglabel data_825800_end\n" > build/us/src/data/startup_logo.inc.mio0.s
|
||||
$(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/data/startup_logo.inc.mio0.o $(BUILD_DIR)/src/data/startup_logo.inc.mio0.s
|
||||
|
||||
|
||||
|
||||
|
@ -647,7 +651,7 @@ $(BUILD_DIR)/src/startup_logo.inc.mio0.o: src/startup_logo.inc.c
|
|||
# Compile Common Textures #
|
||||
#==============================================================================#
|
||||
|
||||
LDFLAGS += -R $(BUILD_DIR)/src/common_textures.inc.elf
|
||||
LDFLAGS += -R $(BUILD_DIR)/src/data/common_textures.inc.elf
|
||||
|
||||
%/common_textures.inc.elf: %/common_textures.inc.o
|
||||
$(V)$(LD) -t -e 0 -Ttext=0D000000 -Map $@.map -o $@ $< --no-check-sections
|
||||
|
@ -674,7 +678,7 @@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
|
|||
$(V)$(CPP) $(CPPFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
|
||||
# Link MK64 ELF file
|
||||
$(ELF): $(O_FILES) $(COURSE_DATA_TARGETS) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/ending/ceremony_data.inc.mio0.o $(BUILD_DIR)/src/common_textures.inc.mio0.o $(COURSE_GEOGRAPHY_TARGETS) undefined_syms.txt
|
||||
$(ELF): $(O_FILES) $(COURSE_DATA_TARGETS) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/data/startup_logo.inc.mio0.o $(BUILD_DIR)/src/ending/ceremony_data.inc.mio0.o $(BUILD_DIR)/src/data/common_textures.inc.mio0.o $(COURSE_GEOGRAPHY_TARGETS) undefined_syms.txt
|
||||
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) $(LDFLAGS) -o $@
|
||||
|
||||
|
|
52
README.md
52
README.md
|
@ -1,13 +1,17 @@
|
|||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
# Mario Kart 64
|
||||
|
||||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
|
||||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
[](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
|
||||
C files left: ~7 out of 40 (not counting audio)
|
||||
# Mario Kart 64
|
||||
- [](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
- [](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
- [](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
- [](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
- [](https://ci.valandil.ca/job/mk64/job/master/)
|
||||
|
||||
This repo contains a work-in-progress decompilation of Mario Kart 64 (U). The project pursues historical and educational elements within the game found via taking it apart and putting it back together. Inspiration to do so not only emanates from the game's hardware and technology but also its immensely positive effects on the cultures and families of nearly every nationality. See [progress](#Progress) for more information.
|
||||
|
||||
|
@ -79,31 +83,31 @@ Some menu textures are compressed using a format called tkmk00. A byte-matching
|
|||
|
||||
mk64
|
||||
├── asm: Handwritten assembly code, rom header and boot
|
||||
│ ├── non_matchings: asm for non-matching sections
|
||||
│ └── os: OS related assembly code
|
||||
│ ├── non_matchings: Assembly for non-matching sections
|
||||
│ └── os: Libultra handwritten assembly code
|
||||
├── assets: Textures
|
||||
├── bin: Files needing import. Most of them are already done.
|
||||
├── courses: Course geography, course data, course table, and staff ghosts.
|
||||
├── courses: Course data, geography, display lists and staff ghosts
|
||||
├── build: Output directory
|
||||
├── data: Data, text, audio banks, and instrument sets.
|
||||
├── data: Misc data, text, audio banks, and instrument sets
|
||||
├── docs: Build guides
|
||||
├── include: Header files
|
||||
├── music: Sequences
|
||||
├── src: C source code for the game
|
||||
| ├── actors: Individual actors split out from other files
|
||||
│ ├── audio: Sample tables and audio source
|
||||
│ ├── audio: Sample tables and audio code
|
||||
│ ├── data: Misc data referenced in other C files
|
||||
| ├── debug: Custom debug code
|
||||
| ├── ending: Podium ceremony and credits code.
|
||||
│ ├── os: Libultra
|
||||
| └── racing: Race and game engine code.
|
||||
├── textures: texture data, bitmaps
|
||||
| ├── common: textures common to many courses
|
||||
| ├── courses: course specific textures
|
||||
| ├── crash screen: crash screen font image
|
||||
│ ├── raw: raw textures
|
||||
│ ├── standalone: whole textures
|
||||
| ├── startup_logo: reflection map
|
||||
| └── trophy: ceremony cutscene podium and trophy textures
|
||||
| ├── ending: Podium ceremony and credits code
|
||||
│ ├── os: Libultra C code
|
||||
| └── racing: Race and game engine code
|
||||
├── textures: Texture data, bitmaps
|
||||
| ├── common: Textures common to many courses
|
||||
| ├── courses: Course specific textures
|
||||
| ├── crash screen: Crash screen font image
|
||||
│ ├── raw: Raw textures
|
||||
│ ├── standalone: Whole textures
|
||||
| ├── startup_logo: Reflection map
|
||||
| └── trophy: Ceremony cutscene podium and trophy textures
|
||||
└── tools: build tools
|
||||
|
||||
## Documentation
|
||||
|
@ -115,10 +119,6 @@ The documentation is also available online at [https://n64decomp.github.io/mk64/
|
|||
|
||||
Pull requests are welcome. For major changes, please discuss in the Discord.
|
||||
|
||||
Files needing documentation:
|
||||
actors.c, actors_extended.c, main.c, kart_dma.c, race_logic.c, render_courses.c, skybox_and_splitscreen.c, staff_ghosts.c.
|
||||
Any inc.c file.
|
||||
|
||||
Run `clang-format` on your code to ensure it meets the project's coding standards.
|
||||
|
||||
Official Discord: [discord.gg/DuYH3Fh](https://discord.gg/DuYH3Fh)
|
||||
|
|
|
@ -1,78 +0,0 @@
|
|||
glabel func_80007BF8
|
||||
/* 0087F8 80007BF8 30AEFFFF */ andi $t6, $a1, 0xffff
|
||||
/* 0087FC 80007BFC 30CFFFFF */ andi $t7, $a2, 0xffff
|
||||
/* 008800 80007C00 AFA60008 */ sw $a2, 8($sp)
|
||||
/* 008804 80007C04 AFA7000C */ sw $a3, 0xc($sp)
|
||||
/* 008808 80007C08 30F8FFFF */ andi $t8, $a3, 0xffff
|
||||
/* 00880C 80007C0C 01CF082A */ slt $at, $t6, $t7
|
||||
/* 008810 80007C10 03003825 */ move $a3, $t8
|
||||
/* 008814 80007C14 01E03025 */ move $a2, $t7
|
||||
/* 008818 80007C18 AFA40000 */ sw $a0, ($sp)
|
||||
/* 00881C 80007C1C AFA50004 */ sw $a1, 4($sp)
|
||||
/* 008820 80007C20 00001825 */ move $v1, $zero
|
||||
/* 008824 80007C24 01E04025 */ move $t0, $t7
|
||||
/* 008828 80007C28 14200011 */ bnez $at, .L80007C70
|
||||
/* 00882C 80007C2C 01C01025 */ move $v0, $t6
|
||||
/* 008830 80007C30 97B90012 */ lhu $t9, 0x12($sp)
|
||||
/* 008834 80007C34 00E02025 */ move $a0, $a3
|
||||
/* 008838 80007C38 97A50002 */ lhu $a1, 2($sp)
|
||||
/* 00883C 80007C3C 03274823 */ subu $t1, $t9, $a3
|
||||
/* 008840 80007C40 0049082A */ slt $at, $v0, $t1
|
||||
/* 008844 80007C44 5020000B */ beql $at, $zero, .L80007C74
|
||||
/* 008848 80007C48 97A30012 */ lhu $v1, 0x12($sp)
|
||||
/* 00884C 80007C4C 00485023 */ subu $t2, $v0, $t0
|
||||
/* 008850 80007C50 00AA082A */ slt $at, $a1, $t2
|
||||
/* 008854 80007C54 14200029 */ bnez $at, .L80007CFC
|
||||
/* 008858 80007C58 00445821 */ addu $t3, $v0, $a0
|
||||
/* 00885C 80007C5C 0165082A */ slt $at, $t3, $a1
|
||||
/* 008860 80007C60 14200026 */ bnez $at, .L80007CFC
|
||||
/* 008864 80007C64 00000000 */ nop
|
||||
/* 008868 80007C68 03E00008 */ jr $ra
|
||||
/* 00886C 80007C6C 24020001 */ li $v0, 1
|
||||
|
||||
.L80007C70:
|
||||
/* 008870 80007C70 97A30012 */ lhu $v1, 0x12($sp)
|
||||
.L80007C74:
|
||||
/* 008874 80007C74 00476021 */ addu $t4, $v0, $a3
|
||||
/* 008878 80007C78 97A50002 */ lhu $a1, 2($sp)
|
||||
/* 00887C 80007C7C 0183001A */ div $zero, $t4, $v1
|
||||
/* 008880 80007C80 14600002 */ bnez $v1, .L80007C8C
|
||||
/* 008884 80007C84 00000000 */ nop
|
||||
/* 008888 80007C88 0007000D */ break 7
|
||||
.L80007C8C:
|
||||
/* 00888C 80007C8C 2401FFFF */ li $at, -1
|
||||
/* 008890 80007C90 14610004 */ bne $v1, $at, .L80007CA4
|
||||
/* 008894 80007C94 3C018000 */ lui $at, 0x8000
|
||||
/* 008898 80007C98 15810002 */ bne $t4, $at, .L80007CA4
|
||||
/* 00889C 80007C9C 00000000 */ nop
|
||||
/* 0088A0 80007CA0 0006000D */ break 6
|
||||
.L80007CA4:
|
||||
/* 0088A4 80007CA4 00006810 */ mfhi $t5
|
||||
/* 0088A8 80007CA8 01A5082A */ slt $at, $t5, $a1
|
||||
/* 0088AC 80007CAC 10200012 */ beqz $at, .L80007CF8
|
||||
/* 0088B0 80007CB0 00437021 */ addu $t6, $v0, $v1
|
||||
/* 0088B4 80007CB4 01C87823 */ subu $t7, $t6, $t0
|
||||
/* 0088B8 80007CB8 01E3001A */ div $zero, $t7, $v1
|
||||
/* 0088BC 80007CBC 14600002 */ bnez $v1, .L80007CC8
|
||||
/* 0088C0 80007CC0 00000000 */ nop
|
||||
/* 0088C4 80007CC4 0007000D */ break 7
|
||||
.L80007CC8:
|
||||
/* 0088C8 80007CC8 2401FFFF */ li $at, -1
|
||||
/* 0088CC 80007CCC 14610004 */ bne $v1, $at, .L80007CE0
|
||||
/* 0088D0 80007CD0 3C018000 */ lui $at, 0x8000
|
||||
/* 0088D4 80007CD4 15E10002 */ bne $t7, $at, .L80007CE0
|
||||
/* 0088D8 80007CD8 00000000 */ nop
|
||||
/* 0088DC 80007CDC 0006000D */ break 6
|
||||
.L80007CE0:
|
||||
/* 0088E0 80007CE0 0000C010 */ mfhi $t8
|
||||
/* 0088E4 80007CE4 0305082A */ slt $at, $t8, $a1
|
||||
/* 0088E8 80007CE8 54200004 */ bnel $at, $zero, .L80007CFC
|
||||
/* 0088EC 80007CEC 24030002 */ li $v1, 2
|
||||
/* 0088F0 80007CF0 03E00008 */ jr $ra
|
||||
/* 0088F4 80007CF4 2402FFFF */ li $v0, -1
|
||||
|
||||
.L80007CF8:
|
||||
/* 0088F8 80007CF8 24030002 */ li $v1, 2
|
||||
.L80007CFC:
|
||||
/* 0088FC 80007CFC 03E00008 */ jr $ra
|
||||
/* 008900 80007D00 00601025 */ move $v0, $v1
|
|
@ -1,93 +0,0 @@
|
|||
glabel func_800090F0
|
||||
/* 009CF0 800090F0 27BDFFA0 */ addiu $sp, $sp, -0x60
|
||||
/* 009CF4 800090F4 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 009CF8 800090F8 AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 009CFC 800090FC AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 009D00 80009100 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 009D04 80009104 C4A40014 */ lwc1 $f4, 0x14($a1)
|
||||
/* 009D08 80009108 3C0E8016 */ lui $t6, %hi(D_80163490) # $t6, 0x8016
|
||||
/* 009D0C 8000910C 25CE3490 */ addiu $t6, %lo(D_80163490) # addiu $t6, $t6, 0x3490
|
||||
/* 009D10 80009110 E7A4005C */ swc1 $f4, 0x5c($sp)
|
||||
/* 009D14 80009114 C4A60018 */ lwc1 $f6, 0x18($a1)
|
||||
/* 009D18 80009118 00049040 */ sll $s2, $a0, 1
|
||||
/* 009D1C 8000911C 024E1021 */ addu $v0, $s2, $t6
|
||||
/* 009D20 80009120 844F0000 */ lh $t7, ($v0)
|
||||
/* 009D24 80009124 E7A60058 */ swc1 $f6, 0x58($sp)
|
||||
/* 009D28 80009128 C4A8001C */ lwc1 $f8, 0x1c($a1)
|
||||
/* 009D2C 8000912C 24010001 */ li $at, 1
|
||||
/* 009D30 80009130 00808025 */ move $s0, $a0
|
||||
/* 009D34 80009134 00A08825 */ move $s1, $a1
|
||||
/* 009D38 80009138 15E1001D */ bne $t7, $at, .L800091B0
|
||||
/* 009D3C 8000913C E7A80054 */ swc1 $f8, 0x54($sp)
|
||||
/* 009D40 80009140 24040004 */ li $a0, 4
|
||||
/* 009D44 80009144 0C0ADF8D */ jal random_int
|
||||
/* 009D48 80009148 AFA20040 */ sw $v0, 0x40($sp)
|
||||
/* 009D4C 8000914C 02002025 */ move $a0, $s0
|
||||
/* 009D50 80009150 0C002396 */ jal func_80008E58
|
||||
/* 009D54 80009154 00402825 */ move $a1, $v0
|
||||
/* 009D58 80009158 3C038016 */ lui $v1, %hi(D_80163448) # $v1, 0x8016
|
||||
/* 009D5C 8000915C 24633448 */ addiu $v1, %lo(D_80163448) # addiu $v1, $v1, 0x3448
|
||||
/* 009D60 80009160 AC620000 */ sw $v0, ($v1)
|
||||
/* 009D64 80009164 C7AC005C */ lwc1 $f12, 0x5c($sp)
|
||||
/* 009D68 80009168 C7AE0058 */ lwc1 $f14, 0x58($sp)
|
||||
/* 009D6C 8000916C 8FA60054 */ lw $a2, 0x54($sp)
|
||||
/* 009D70 80009170 00003825 */ move $a3, $zero
|
||||
/* 009D74 80009174 AFB10010 */ sw $s1, 0x10($sp)
|
||||
/* 009D78 80009178 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 009D7C 8000917C 0C003349 */ jal func_8000CD24
|
||||
/* 009D80 80009180 AFA20018 */ sw $v0, 0x18($sp)
|
||||
/* 009D84 80009184 3C038016 */ lui $v1, %hi(D_80162FCE) # $v1, 0x8016
|
||||
/* 009D88 80009188 24632FCE */ addiu $v1, %lo(D_80162FCE) # addiu $v1, $v1, 0x2fce
|
||||
/* 009D8C 8000918C A4620000 */ sh $v0, ($v1)
|
||||
/* 009D90 80009190 84790000 */ lh $t9, ($v1)
|
||||
/* 009D94 80009194 3C018016 */ lui $at, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 009D98 80009198 00320821 */ addu $at, $at, $s2
|
||||
/* 009D9C 8000919C 02002025 */ move $a0, $s0
|
||||
/* 009DA0 800091A0 0C0023CE */ jal func_80008F38
|
||||
/* 009DA4 800091A4 A4394438 */ sh $t9, %lo(gNearestWaypointByPlayerId)($at) # 0x4438($at)
|
||||
/* 009DA8 800091A8 8FA80040 */ lw $t0, 0x40($sp)
|
||||
/* 009DAC 800091AC A5000000 */ sh $zero, ($t0)
|
||||
.L800091B0:
|
||||
/* 009DB0 800091B0 3C098016 */ lui $t1, %hi(D_801634A8) # $t1, 0x8016
|
||||
/* 009DB4 800091B4 252934A8 */ addiu $t1, %lo(D_801634A8) # addiu $t1, $t1, 0x34a8
|
||||
/* 009DB8 800091B8 02491021 */ addu $v0, $s2, $t1
|
||||
/* 009DBC 800091BC 844A0000 */ lh $t2, ($v0)
|
||||
/* 009DC0 800091C0 24010001 */ li $at, 1
|
||||
/* 009DC4 800091C4 02002025 */ move $a0, $s0
|
||||
/* 009DC8 800091C8 1541001D */ bne $t2, $at, .L80009240
|
||||
/* 009DCC 800091CC 00002825 */ move $a1, $zero
|
||||
/* 009DD0 800091D0 3C0B8016 */ lui $t3, %hi(gNearestWaypointByPlayerId) # $t3, 0x8016
|
||||
/* 009DD4 800091D4 256B4438 */ addiu $t3, %lo(gNearestWaypointByPlayerId) # addiu $t3, $t3, 0x4438
|
||||
/* 009DD8 800091D8 024B6021 */ addu $t4, $s2, $t3
|
||||
/* 009DDC 800091DC AFAC0040 */ sw $t4, 0x40($sp)
|
||||
/* 009DE0 800091E0 0C002396 */ jal func_80008E58
|
||||
/* 009DE4 800091E4 AFA2003C */ sw $v0, 0x3c($sp)
|
||||
/* 009DE8 800091E8 3C018016 */ lui $at, %hi(D_80163448) # $at, 0x8016
|
||||
/* 009DEC 800091EC AC223448 */ sw $v0, %lo(D_80163448)($at)
|
||||
/* 009DF0 800091F0 3C0D8016 */ lui $t5, %hi(D_80163448) # $t5, 0x8016
|
||||
/* 009DF4 800091F4 8DAD3448 */ lw $t5, %lo(D_80163448)($t5)
|
||||
/* 009DF8 800091F8 C7AC005C */ lwc1 $f12, 0x5c($sp)
|
||||
/* 009DFC 800091FC C7AE0058 */ lwc1 $f14, 0x58($sp)
|
||||
/* 009E00 80009200 8FA60054 */ lw $a2, 0x54($sp)
|
||||
/* 009E04 80009204 00003825 */ move $a3, $zero
|
||||
/* 009E08 80009208 AFB10010 */ sw $s1, 0x10($sp)
|
||||
/* 009E0C 8000920C AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 009E10 80009210 0C003349 */ jal func_8000CD24
|
||||
/* 009E14 80009214 AFAD0018 */ sw $t5, 0x18($sp)
|
||||
/* 009E18 80009218 3C018016 */ lui $at, %hi(D_80162FCE) # $at, 0x8016
|
||||
/* 009E1C 8000921C A4222FCE */ sh $v0, %lo(D_80162FCE)($at)
|
||||
/* 009E20 80009220 3C0E8016 */ lui $t6, %hi(D_80162FCE) # $t6, 0x8016
|
||||
/* 009E24 80009224 85CE2FCE */ lh $t6, %lo(D_80162FCE)($t6)
|
||||
/* 009E28 80009228 8FAF0040 */ lw $t7, 0x40($sp)
|
||||
/* 009E2C 8000922C 02002025 */ move $a0, $s0
|
||||
/* 009E30 80009230 0C0023CE */ jal func_80008F38
|
||||
/* 009E34 80009234 A5EE0000 */ sh $t6, ($t7)
|
||||
/* 009E38 80009238 8FB8003C */ lw $t8, 0x3c($sp)
|
||||
/* 009E3C 8000923C A7000000 */ sh $zero, ($t8)
|
||||
.L80009240:
|
||||
/* 009E40 80009240 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 009E44 80009244 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 009E48 80009248 8FB1002C */ lw $s1, 0x2c($sp)
|
||||
/* 009E4C 8000924C 8FB20030 */ lw $s2, 0x30($sp)
|
||||
/* 009E50 80009250 03E00008 */ jr $ra
|
||||
/* 009E54 80009254 27BD0060 */ addiu $sp, $sp, 0x60
|
|
@ -1,42 +0,0 @@
|
|||
glabel func_8000CC88
|
||||
/* 00D888 8000CC88 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 00D88C 8000CC8C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 00D890 8000CC90 E7AC0028 */ swc1 $f12, 0x28($sp)
|
||||
/* 00D894 8000CC94 E7AE002C */ swc1 $f14, 0x2c($sp)
|
||||
/* 00D898 8000CC98 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 00D89C 8000CC9C 0C0AAF50 */ jal func_802ABD40
|
||||
/* 00D8A0 8000CCA0 94E4011A */ lhu $a0, 0x11a($a3)
|
||||
/* 00D8A4 8000CCA4 3044FFFF */ andi $a0, $v0, 0xffff
|
||||
/* 00D8A8 8000CCA8 18800004 */ blez $a0, .L8000CCBC
|
||||
/* 00D8AC 8000CCAC 3047FFFF */ andi $a3, $v0, 0xffff
|
||||
/* 00D8B0 8000CCB0 28810033 */ slti $at, $a0, 0x33
|
||||
/* 00D8B4 8000CCB4 54200007 */ bnel $at, $zero, .L8000CCD4
|
||||
/* 00D8B8 8000CCB8 8FA30038 */ lw $v1, 0x38($sp)
|
||||
.L8000CCBC:
|
||||
/* 00D8BC 8000CCBC 8FAE0038 */ lw $t6, 0x38($sp)
|
||||
/* 00D8C0 8000CCC0 3C078016 */ lui $a3, %hi(D_80163318) # 0x8016
|
||||
/* 00D8C4 8000CCC4 000E7840 */ sll $t7, $t6, 1
|
||||
/* 00D8C8 8000CCC8 00EF3821 */ addu $a3, $a3, $t7
|
||||
/* 00D8CC 8000CCCC 94E73318 */ lhu $a3, %lo(D_80163318)($a3) # 0x3318($a3)
|
||||
/* 00D8D0 8000CCD0 8FA30038 */ lw $v1, 0x38($sp)
|
||||
.L8000CCD4:
|
||||
/* 00D8D4 8000CCD4 8FB9003C */ lw $t9, 0x3c($sp)
|
||||
/* 00D8D8 8000CCD8 3C018016 */ lui $at, %hi(D_80163318) # 0x8016
|
||||
/* 00D8DC 8000CCDC 0003C040 */ sll $t8, $v1, 1
|
||||
/* 00D8E0 8000CCE0 00380821 */ addu $at, $at, $t8
|
||||
/* 00D8E4 8000CCE4 A4273318 */ sh $a3, %lo(D_80163318)($at) # 0x3318($at)
|
||||
/* 00D8E8 8000CCE8 AFB80020 */ sw $t8, 0x20($sp)
|
||||
/* 00D8EC 8000CCEC C7AC0028 */ lwc1 $f12, 0x28($sp)
|
||||
/* 00D8F0 8000CCF0 C7AE002C */ lwc1 $f14, 0x2c($sp)
|
||||
/* 00D8F4 8000CCF4 8FA60030 */ lw $a2, 0x30($sp)
|
||||
/* 00D8F8 8000CCF8 0C00302F */ jal func_8000C0BC
|
||||
/* 00D8FC 8000CCFC AFB90010 */ sw $t9, 0x10($sp)
|
||||
/* 00D900 8000CD00 8FA8003C */ lw $t0, 0x3c($sp)
|
||||
/* 00D904 8000CD04 8FA30020 */ lw $v1, 0x20($sp)
|
||||
/* 00D908 8000CD08 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 00D90C 8000CD0C 8D090000 */ lw $t1, ($t0)
|
||||
/* 00D910 8000CD10 3C018016 */ lui $at, %hi(D_801645B0) # 0x8016
|
||||
/* 00D914 8000CD14 00230821 */ addu $at, $at, $v1
|
||||
/* 00D918 8000CD18 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 00D91C 8000CD1C 03E00008 */ jr $ra
|
||||
/* 00D920 8000CD20 A42945B0 */ sh $t1, %lo(D_801645B0)($at) # 0x45b0($at)
|
|
@ -1,32 +0,0 @@
|
|||
glabel func_80015314
|
||||
/* 015F14 80015314 00803825 */ move $a3, $a0
|
||||
/* 015F18 80015318 000770C0 */ sll $t6, $a3, 3
|
||||
/* 015F1C 8001531C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 015F20 80015320 01C77023 */ subu $t6, $t6, $a3
|
||||
/* 015F24 80015324 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 015F28 80015328 000E7100 */ sll $t6, $t6, 4
|
||||
/* 015F2C 8001532C 3C05800E */ lui $a1, %hi(gPlayerOne)
|
||||
/* 015F30 80015330 01C77023 */ subu $t6, $t6, $a3
|
||||
/* 015F34 80015334 8CA5C4DC */ lw $a1, %lo(gPlayerOne)($a1)
|
||||
/* 015F38 80015338 000E7080 */ sll $t6, $t6, 2
|
||||
/* 015F3C 8001533C 0006C080 */ sll $t8, $a2, 2
|
||||
/* 015F40 80015340 3C04800E */ lui $a0, %hi(camera1)
|
||||
/* 015F44 80015344 01C77023 */ subu $t6, $t6, $a3
|
||||
/* 015F48 80015348 0306C023 */ subu $t8, $t8, $a2
|
||||
/* 015F4C 8001534C 8C84DB40 */ lw $a0, %lo(camera1)($a0)
|
||||
/* 015F50 80015350 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 015F54 80015354 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 015F58 80015358 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 015F5C 8001535C AFA60020 */ sw $a2, 0x20($sp)
|
||||
/* 015F60 80015360 0306C023 */ subu $t8, $t8, $a2
|
||||
/* 015F64 80015364 00AE2821 */ addu $a1, $a1, $t6
|
||||
/* 015F68 80015368 84B9002E */ lh $t9, 0x2e($a1)
|
||||
/* 015F6C 8001536C 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 015F70 80015370 00982021 */ addu $a0, $a0, $t8
|
||||
/* 015F74 80015374 00003025 */ move $a2, $zero
|
||||
/* 015F78 80015378 0C0054E4 */ jal func_80015390
|
||||
/* 015F7C 8001537C A499002C */ sh $t9, 0x2c($a0)
|
||||
/* 015F80 80015380 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 015F84 80015384 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 015F88 80015388 03E00008 */ jr $ra
|
||||
/* 015F8C 8001538C 00000000 */ nop
|
|
@ -1,49 +0,0 @@
|
|||
glabel func_800704A0
|
||||
/* 0710A0 800704A0 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0710A4 800704A4 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* 0710A8 800704A8 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 0710AC 800704AC AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* 0710B0 800704B0 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 0710B4 800704B4 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 0710B8 800704B8 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0710BC 800704BC 3C138019 */ lui $s3, %hi(D_8018CC80) # $s3, 0x8019
|
||||
/* 0710C0 800704C0 3C158019 */ lui $s5, %hi(D_8018D1F8) # $s5, 0x8019
|
||||
/* 0710C4 800704C4 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0710C8 800704C8 00009025 */ move $s2, $zero
|
||||
/* 0710CC 800704CC 00808025 */ move $s0, $a0
|
||||
/* 0710D0 800704D0 26B5D1F8 */ addiu $s5, %lo(D_8018D1F8) # addiu $s5, $s5, -0x2e08
|
||||
/* 0710D4 800704D4 2673CC80 */ addiu $s3, %lo(D_8018CC80) # addiu $s3, $s3, -0x3380
|
||||
/* 0710D8 800704D8 00008825 */ move $s1, $zero
|
||||
/* 0710DC 800704DC 3414FFFF */ li $s4, 65535
|
||||
.L800704E0:
|
||||
/* 0710E0 800704E0 8EAE0000 */ lw $t6, ($s5)
|
||||
/* 0710E4 800704E4 000E7880 */ sll $t7, $t6, 2
|
||||
/* 0710E8 800704E8 026FC021 */ addu $t8, $s3, $t7
|
||||
/* 0710EC 800704EC 0C01C7C0 */ jal find_unused_obj_index
|
||||
/* 0710F0 800704F0 03112021 */ addu $a0, $t8, $s1
|
||||
/* 0710F4 800704F4 00402025 */ move $a0, $v0
|
||||
/* 0710F8 800704F8 24050001 */ li $a1, 1
|
||||
/* 0710FC 800704FC 0C01C0F8 */ jal func_800703E0
|
||||
/* 071100 80070500 02003025 */ move $a2, $s0
|
||||
/* 071104 80070504 96190008 */ lhu $t9, 8($s0)
|
||||
/* 071108 80070508 26520001 */ addiu $s2, $s2, 1
|
||||
/* 07110C 8007050C 26310004 */ addiu $s1, $s1, 4
|
||||
/* 071110 80070510 1699FFF3 */ bne $s4, $t9, .L800704E0
|
||||
/* 071114 80070514 26100008 */ addiu $s0, $s0, 8
|
||||
/* 071118 80070518 8EA80000 */ lw $t0, ($s5)
|
||||
/* 07111C 8007051C 3C018019 */ lui $at, %hi(D_8018D1F0) # $at, 0x8019
|
||||
/* 071120 80070520 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 071124 80070524 01124821 */ addu $t1, $t0, $s2
|
||||
/* 071128 80070528 AEA90000 */ sw $t1, ($s5)
|
||||
/* 07112C 8007052C AC32D1F0 */ sw $s2, %lo(D_8018D1F0)($at)
|
||||
/* 071130 80070530 3C018019 */ lui $at, %hi(D_8018D230) # $at, 0x8019
|
||||
/* 071134 80070534 240A0001 */ li $t2, 1
|
||||
/* 071138 80070538 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 07113C 8007053C 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* 071140 80070540 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 071144 80070544 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 071148 80070548 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 07114C 8007054C 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* 071150 80070550 A02AD230 */ sb $t2, %lo(D_8018D230)($at)
|
||||
/* 071154 80070554 03E00008 */ jr $ra
|
||||
/* 071158 80070558 27BD0030 */ addiu $sp, $sp, 0x30
|
|
@ -1,21 +0,0 @@
|
|||
glabel func_80073570
|
||||
/* 074170 80073570 3C028019 */ lui $v0, %hi(D_8018D1EC) # $v0, 0x8019
|
||||
/* 074174 80073574 2442D1EC */ addiu $v0, %lo(D_8018D1EC) # addiu $v0, $v0, -0x2e14
|
||||
/* 074178 80073578 8C4E0000 */ lw $t6, ($v0)
|
||||
/* 07417C 8007357C 24010005 */ li $at, 5
|
||||
/* 074180 80073580 0004C8C0 */ sll $t9, $a0, 3
|
||||
/* 074184 80073584 25CF0001 */ addiu $t7, $t6, 1
|
||||
/* 074188 80073588 15E10002 */ bne $t7, $at, .L80073594
|
||||
/* 07418C 8007358C AC4F0000 */ sw $t7, ($v0)
|
||||
/* 074190 80073590 AC400000 */ sw $zero, ($v0)
|
||||
.L80073594:
|
||||
/* 074194 80073594 0324C823 */ subu $t9, $t9, $a0
|
||||
/* 074198 80073598 0019C940 */ sll $t9, $t9, 5
|
||||
/* 07419C 8007359C 3C098016 */ lui $t1, %hi(gObjectList) # $t1, 0x8016
|
||||
/* 0741A0 800735A0 25295C18 */ addiu $t1, %lo(gObjectList) # addiu $t1, $t1, 0x5c18
|
||||
/* 0741A4 800735A4 272800A6 */ addiu $t0, $t9, 0xa6
|
||||
/* 0741A8 800735A8 01091021 */ addu $v0, $t0, $t1
|
||||
/* 0741AC 800735AC 844A0000 */ lh $t2, ($v0)
|
||||
/* 0741B0 800735B0 254B0001 */ addiu $t3, $t2, 1
|
||||
/* 0741B4 800735B4 03E00008 */ jr $ra
|
||||
/* 0741B8 800735B8 A44B0000 */ sh $t3, ($v0)
|
|
@ -1,33 +0,0 @@
|
|||
glabel func_8007634C
|
||||
/* 076F4C 8007634C 000470C0 */ sll $t6, $a0, 3
|
||||
/* 076F50 80076350 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 076F54 80076354 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
|
||||
/* 076F58 80076358 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
|
||||
/* 076F5C 8007635C 000E7140 */ sll $t6, $t6, 5
|
||||
/* 076F60 80076360 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 076F64 80076364 3C030D03 */ lui $v1, %hi(D_0D02BC58) # $v1, 0xd03
|
||||
/* 076F68 80076368 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 076F6C 8007636C 2463BC58 */ addiu $v1, %lo(D_0D02BC58) # addiu $v1, $v1, -0x43a8
|
||||
/* 076F70 80076370 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 076F74 80076374 241800FF */ li $t8, 255
|
||||
/* 076F78 80076378 AC430064 */ sw $v1, 0x64($v0)
|
||||
/* 076F7C 8007637C AC43006C */ sw $v1, 0x6c($v0)
|
||||
/* 076F80 80076380 A45800A0 */ sh $t8, 0xa0($v0)
|
||||
/* 076F84 80076384 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 076F88 80076388 00002825 */ move $a1, $zero
|
||||
/* 076F8C 8007638C 00003025 */ move $a2, $zero
|
||||
/* 076F90 80076390 0C022E2F */ jal func_8008B8BC
|
||||
/* 076F94 80076394 00003825 */ move $a3, $zero
|
||||
/* 076F98 80076398 44800000 */ mtc1 $zero, $f0
|
||||
/* 076F9C 8007639C 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 076FA0 800763A0 44050000 */ mfc1 $a1, $f0
|
||||
/* 076FA4 800763A4 44060000 */ mfc1 $a2, $f0
|
||||
/* 076FA8 800763A8 44070000 */ mfc1 $a3, $f0
|
||||
/* 076FAC 800763AC 0C022E03 */ jal func_8008B80C
|
||||
/* 076FB0 800763B0 00000000 */ nop
|
||||
/* 076FB4 800763B4 0C01C922 */ jal func_80072488
|
||||
/* 076FB8 800763B8 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 076FBC 800763BC 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 076FC0 800763C0 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 076FC4 800763C4 03E00008 */ jr $ra
|
||||
/* 076FC8 800763C8 00000000 */ nop
|
|
@ -1,56 +0,0 @@
|
|||
glabel func_80077BCC
|
||||
/* 0787CC 80077BCC 000470C0 */ sll $t6, $a0, 3
|
||||
/* 0787D0 80077BD0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0787D4 80077BD4 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 0787D8 80077BD8 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
|
||||
/* 0787DC 80077BDC AFB0001C */ sw $s0, 0x1c($sp)
|
||||
/* 0787E0 80077BE0 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
|
||||
/* 0787E4 80077BE4 000E7140 */ sll $t6, $t6, 5
|
||||
/* 0787E8 80077BE8 01CF8021 */ addu $s0, $t6, $t7
|
||||
/* 0787EC 80077BEC 860200AE */ lh $v0, 0xae($s0)
|
||||
/* 0787F0 80077BF0 AFB10020 */ sw $s1, 0x20($sp)
|
||||
/* 0787F4 80077BF4 24010001 */ li $at, 1
|
||||
/* 0787F8 80077BF8 00808825 */ move $s1, $a0
|
||||
/* 0787FC 80077BFC 10410006 */ beq $v0, $at, .L80077C18
|
||||
/* 078800 80077C00 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 078804 80077C04 24010002 */ li $at, 2
|
||||
/* 078808 80077C08 1041000F */ beq $v0, $at, .L80077C48
|
||||
/* 07880C 80077C0C 02202025 */ move $a0, $s1
|
||||
/* 078810 80077C10 10000015 */ b .L80077C68
|
||||
/* 078814 80077C14 00000000 */ nop
|
||||
.L80077C18:
|
||||
/* 078818 80077C18 961800C0 */ lhu $t8, 0xc0($s0)
|
||||
/* 07881C 80077C1C 3C063E4C */ lui $a2, (0x3E4CCCCD >> 16) # lui $a2, 0x3e4c
|
||||
/* 078820 80077C20 2419000A */ li $t9, 10
|
||||
/* 078824 80077C24 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 078828 80077C28 34C6CCCD */ ori $a2, (0x3E4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
|
||||
/* 07882C 80077C2C 02202025 */ move $a0, $s1
|
||||
/* 078830 80077C30 8E05003C */ lw $a1, 0x3c($s0)
|
||||
/* 078834 80077C34 8E070034 */ lw $a3, 0x34($s0)
|
||||
/* 078838 80077C38 0C021F82 */ jal func_80087E08
|
||||
/* 07883C 80077C3C AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 078840 80077C40 10000009 */ b .L80077C68
|
||||
/* 078844 80077C44 00000000 */ nop
|
||||
.L80077C48:
|
||||
/* 078848 80077C48 3C053ECC */ lui $a1, (0x3ECCCCCD >> 16) # lui $a1, 0x3ecc
|
||||
/* 07884C 80077C4C 34A5CCCD */ ori $a1, (0x3ECCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd
|
||||
/* 078850 80077C50 0C021EE1 */ jal func_80087B84
|
||||
/* 078854 80077C54 8E060044 */ lw $a2, 0x44($s0)
|
||||
/* 078858 80077C58 10400003 */ beqz $v0, .L80077C68
|
||||
/* 07885C 80077C5C 00000000 */ nop
|
||||
/* 078860 80077C60 0C021BD8 */ jal func_80086F60
|
||||
/* 078864 80077C64 02202025 */ move $a0, $s1
|
||||
.L80077C68:
|
||||
/* 078868 80077C68 0C022FC6 */ jal func_8008BF18
|
||||
/* 07886C 80077C6C 02202025 */ move $a0, $s1
|
||||
/* 078870 80077C70 960800B2 */ lhu $t0, 0xb2($s0)
|
||||
/* 078874 80077C74 960A00B4 */ lhu $t2, 0xb4($s0)
|
||||
/* 078878 80077C78 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 07887C 80077C7C 25091000 */ addiu $t1, $t0, 0x1000
|
||||
/* 078880 80077C80 254B1000 */ addiu $t3, $t2, 0x1000
|
||||
/* 078884 80077C84 A60900B2 */ sh $t1, 0xb2($s0)
|
||||
/* 078888 80077C88 A60B00B4 */ sh $t3, 0xb4($s0)
|
||||
/* 07888C 80077C8C 8FB0001C */ lw $s0, 0x1c($sp)
|
||||
/* 078890 80077C90 8FB10020 */ lw $s1, 0x20($sp)
|
||||
/* 078894 80077C94 03E00008 */ jr $ra
|
||||
/* 078898 80077C98 27BD0028 */ addiu $sp, $sp, 0x28
|
|
@ -1,33 +0,0 @@
|
|||
glabel func_8007C280
|
||||
/* 07CE80 8007C280 3C028016 */ lui $v0, %hi(D_801658BC) # $v0, 0x8016
|
||||
/* 07CE84 8007C284 244258BC */ addiu $v0, %lo(D_801658BC) # addiu $v0, $v0, 0x58bc
|
||||
/* 07CE88 8007C288 804E0000 */ lb $t6, ($v0)
|
||||
/* 07CE8C 8007C28C 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 07CE90 8007C290 3C048018 */ lui $a0, %hi(D_80183F28) # $a0, 0x8018
|
||||
/* 07CE94 8007C294 24010001 */ li $at, 1
|
||||
/* 07CE98 8007C298 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 07CE9C 8007C29C 15C10006 */ bne $t6, $at, .L8007C2B8
|
||||
/* 07CEA0 8007C2A0 8C843F28 */ lw $a0, %lo(D_80183F28)($a0)
|
||||
/* 07CEA4 8007C2A4 A0400000 */ sb $zero, ($v0)
|
||||
/* 07CEA8 8007C2A8 00002825 */ move $a1, $zero
|
||||
/* 07CEAC 8007C2AC 0C01C8E9 */ jal func_800723A4
|
||||
/* 07CEB0 8007C2B0 AFA4001C */ sw $a0, 0x1c($sp)
|
||||
/* 07CEB4 8007C2B4 8FA4001C */ lw $a0, 0x1c($sp)
|
||||
.L8007C2B8:
|
||||
/* 07CEB8 8007C2B8 000478C0 */ sll $t7, $a0, 3
|
||||
/* 07CEBC 8007C2BC 01E47823 */ subu $t7, $t7, $a0
|
||||
/* 07CEC0 8007C2C0 000F7940 */ sll $t7, $t7, 5
|
||||
/* 07CEC4 8007C2C4 3C188016 */ lui $t8, %hi(D_80165CBE) # 0x8016
|
||||
/* 07CEC8 8007C2C8 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 07CECC 8007C2CC 87185CBE */ lh $t8, %lo(D_80165CBE)($t8) # 0x5cbe($t8)
|
||||
/* 07CED0 8007C2D0 53000006 */ beql $t8, $zero, .L8007C2EC
|
||||
/* 07CED4 8007C2D4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 07CED8 8007C2D8 0C01EFB2 */ jal func_8007BEC8
|
||||
/* 07CEDC 8007C2DC AFA4001C */ sw $a0, 0x1c($sp)
|
||||
/* 07CEE0 8007C2E0 0C01EFEC */ jal func_8007BFB0
|
||||
/* 07CEE4 8007C2E4 8FA4001C */ lw $a0, 0x1c($sp)
|
||||
/* 07CEE8 8007C2E8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L8007C2EC:
|
||||
/* 07CEEC 8007C2EC 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 07CEF0 8007C2F0 03E00008 */ jr $ra
|
||||
/* 07CEF4 8007C2F4 00000000 */ nop
|
|
@ -1,105 +0,0 @@
|
|||
glabel func_80080078
|
||||
/* 080C78 80080078 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 080C7C 8008007C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 080C80 80080080 AFB10020 */ sw $s1, 0x20($sp)
|
||||
/* 080C84 80080084 3C050600 */ lui $a1, %hi(d_course_bowsers_castle_thwomp_tlut) # $a1, 0x600
|
||||
/* 080C88 80080088 3C060600 */ lui $a2, %hi(d_course_bowsers_castle_thwomp_faces) # $a2, 0x600
|
||||
/* 080C8C 8008008C 240E0040 */ li $t6, 64
|
||||
/* 080C90 80080090 00808825 */ move $s1, $a0
|
||||
/* 080C94 80080094 AFB0001C */ sw $s0, 0x1c($sp)
|
||||
/* 080C98 80080098 AFAE0010 */ sw $t6, 0x10($sp)
|
||||
/* 080C9C 8008009C 24C67138 */ addiu $a2, %lo(d_course_bowsers_castle_thwomp_faces) # addiu $a2, $a2, 0x7138
|
||||
/* 080CA0 800800A0 24A56F38 */ addiu $a1, %lo(d_course_bowsers_castle_thwomp_tlut) # addiu $a1, $a1, 0x6f38
|
||||
/* 080CA4 800800A4 0C01CD11 */ jal init_texture_object
|
||||
/* 080CA8 800800A8 24070010 */ li $a3, 16
|
||||
/* 080CAC 800800AC 001178C0 */ sll $t7, $s1, 3
|
||||
/* 080CB0 800800B0 01F17823 */ subu $t7, $t7, $s1
|
||||
/* 080CB4 800800B4 3C188016 */ lui $t8, %hi(gObjectList) # $t8, 0x8016
|
||||
/* 080CB8 800800B8 27185C18 */ addiu $t8, %lo(gObjectList) # addiu $t8, $t8, 0x5c18
|
||||
/* 080CBC 800800BC 000F7940 */ sll $t7, $t7, 5
|
||||
/* 080CC0 800800C0 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 080CC4 800800C4 44812000 */ mtc1 $at, $f4
|
||||
/* 080CC8 800800C8 01F88021 */ addu $s0, $t7, $t8
|
||||
/* 080CCC 800800CC 3C190601 */ lui $t9, %hi(d_course_bowsers_castle_dl_thwomp) # $t9, 0x601
|
||||
/* 080CD0 800800D0 27399088 */ addiu $t9, %lo(d_course_bowsers_castle_dl_thwomp) # addiu $t9, $t9, -0x6f78
|
||||
/* 080CD4 800800D4 2408000C */ li $t0, 12
|
||||
/* 080CD8 800800D8 3C050400 */ lui $a1, (0x04000220 >> 16) # lui $a1, 0x400
|
||||
/* 080CDC 800800DC AE190070 */ sw $t9, 0x70($s0)
|
||||
/* 080CE0 800800E0 A60800C8 */ sh $t0, 0xc8($s0)
|
||||
/* 080CE4 800800E4 34A50220 */ ori $a1, (0x04000220 & 0xFFFF) # ori $a1, $a1, 0x220
|
||||
/* 080CE8 800800E8 02202025 */ move $a0, $s1
|
||||
/* 080CEC 800800EC 0C01C870 */ jal set_object_flag_unk_054_true
|
||||
/* 080CF0 800800F0 E6040000 */ swc1 $f4, ($s0)
|
||||
/* 080CF4 800800F4 24090002 */ li $t1, 2
|
||||
/* 080CF8 800800F8 240A0008 */ li $t2, 8
|
||||
/* 080CFC 800800FC A60900A4 */ sh $t1, 0xa4($s0)
|
||||
/* 080D00 80080100 A20A00DF */ sb $t2, 0xdf($s0)
|
||||
/* 080D04 80080104 02202025 */ move $a0, $s1
|
||||
/* 080D08 80080108 00002825 */ move $a1, $zero
|
||||
/* 080D0C 8008010C 00003025 */ move $a2, $zero
|
||||
/* 080D10 80080110 0C022E22 */ jal func_8008B888
|
||||
/* 080D14 80080114 00003825 */ move $a3, $zero
|
||||
/* 080D18 80080118 44800000 */ mtc1 $zero, $f0
|
||||
/* 080D1C 8008011C 02202025 */ move $a0, $s1
|
||||
/* 080D20 80080120 44050000 */ mfc1 $a1, $f0
|
||||
/* 080D24 80080124 44060000 */ mfc1 $a2, $f0
|
||||
/* 080D28 80080128 44070000 */ mfc1 $a3, $f0
|
||||
/* 080D2C 8008012C E6000044 */ swc1 $f0, 0x44($s0)
|
||||
/* 080D30 80080130 0C022E03 */ jal func_8008B80C
|
||||
/* 080D34 80080134 E6000014 */ swc1 $f0, 0x14($s0)
|
||||
/* 080D38 80080138 3C0141F0 */ li $at, 0x41F00000 # 30.000000
|
||||
/* 080D3C 8008013C 44813000 */ mtc1 $at, $f6
|
||||
/* 080D40 80080140 3C0B800E */ lui $t3, %hi(gIsMirrorMode) # $t3, 0x800e
|
||||
/* 080D44 80080144 00003825 */ move $a3, $zero
|
||||
/* 080D48 80080148 E6060020 */ swc1 $f6, 0x20($s0)
|
||||
/* 080D4C 8008014C 8D6BC604 */ lw $t3, %lo(gIsMirrorMode)($t3)
|
||||
/* 080D50 80080150 02202025 */ move $a0, $s1
|
||||
/* 080D54 80080154 00002825 */ move $a1, $zero
|
||||
/* 080D58 80080158 11600007 */ beqz $t3, .L80080178
|
||||
/* 080D5C 8008015C 3406C000 */ li $a2, 49152
|
||||
/* 080D60 80080160 02202025 */ move $a0, $s1
|
||||
/* 080D64 80080164 00002825 */ move $a1, $zero
|
||||
/* 080D68 80080168 0C022E2F */ jal func_8008B8BC
|
||||
/* 080D6C 8008016C 24064000 */ li $a2, 16384
|
||||
/* 080D70 80080170 10000004 */ b .L80080184
|
||||
/* 080D74 80080174 860200A0 */ lh $v0, 0xa0($s0)
|
||||
.L80080178:
|
||||
/* 080D78 80080178 0C022E2F */ jal func_8008B8BC
|
||||
/* 080D7C 8008017C 00003825 */ move $a3, $zero
|
||||
/* 080D80 80080180 860200A0 */ lh $v0, 0xa0($s0)
|
||||
.L80080184:
|
||||
/* 080D84 80080184 24010001 */ li $at, 1
|
||||
/* 080D88 80080188 240C0002 */ li $t4, 2
|
||||
/* 080D8C 8008018C 1040000B */ beqz $v0, .L800801BC
|
||||
/* 080D90 80080190 00000000 */ nop
|
||||
/* 080D94 80080194 1041000B */ beq $v0, $at, .L800801C4
|
||||
/* 080D98 80080198 240D003C */ li $t5, 60
|
||||
/* 080D9C 8008019C 24010002 */ li $at, 2
|
||||
/* 080DA0 800801A0 1041000A */ beq $v0, $at, .L800801CC
|
||||
/* 080DA4 800801A4 240E0078 */ li $t6, 120
|
||||
/* 080DA8 800801A8 24010003 */ li $at, 3
|
||||
/* 080DAC 800801AC 10410009 */ beq $v0, $at, .L800801D4
|
||||
/* 080DB0 800801B0 240F00B4 */ li $t7, 180
|
||||
/* 080DB4 800801B4 10000008 */ b .L800801D8
|
||||
/* 080DB8 800801B8 00000000 */ nop
|
||||
.L800801BC:
|
||||
/* 080DBC 800801BC 10000006 */ b .L800801D8
|
||||
/* 080DC0 800801C0 AE0C0050 */ sw $t4, 0x50($s0)
|
||||
.L800801C4:
|
||||
/* 080DC4 800801C4 10000004 */ b .L800801D8
|
||||
/* 080DC8 800801C8 AE0D0050 */ sw $t5, 0x50($s0)
|
||||
.L800801CC:
|
||||
/* 080DCC 800801CC 10000002 */ b .L800801D8
|
||||
/* 080DD0 800801D0 AE0E0050 */ sw $t6, 0x50($s0)
|
||||
.L800801D4:
|
||||
/* 080DD4 800801D4 AE0F0050 */ sw $t7, 0x50($s0)
|
||||
.L800801D8:
|
||||
/* 080DD8 800801D8 0C01C937 */ jal func_800724DC
|
||||
/* 080DDC 800801DC 02202025 */ move $a0, $s1
|
||||
/* 080DE0 800801E0 0C01C922 */ jal func_80072488
|
||||
/* 080DE4 800801E4 02202025 */ move $a0, $s1
|
||||
/* 080DE8 800801E8 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 080DEC 800801EC 8FB0001C */ lw $s0, 0x1c($sp)
|
||||
/* 080DF0 800801F0 8FB10020 */ lw $s1, 0x20($sp)
|
||||
/* 080DF4 800801F4 03E00008 */ jr $ra
|
||||
/* 080DF8 800801F8 27BD0028 */ addiu $sp, $sp, 0x28
|
|
@ -1,52 +0,0 @@
|
|||
glabel func_80081790
|
||||
/* 082390 80081790 000470C0 */ sll $t6, $a0, 3
|
||||
/* 082394 80081794 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 082398 80081798 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
|
||||
/* 08239C 8008179C 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
|
||||
/* 0823A0 800817A0 000E7140 */ sll $t6, $t6, 5
|
||||
/* 0823A4 800817A4 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 0823A8 800817A8 844300A6 */ lh $v1, 0xa6($v0)
|
||||
/* 0823AC 800817AC 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0823B0 800817B0 AFB00020 */ sw $s0, 0x20($sp)
|
||||
/* 0823B4 800817B4 00808025 */ move $s0, $a0
|
||||
/* 0823B8 800817B8 1060001E */ beqz $v1, .L80081834
|
||||
/* 0823BC 800817BC AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0823C0 800817C0 24010001 */ li $at, 1
|
||||
/* 0823C4 800817C4 10610006 */ beq $v1, $at, .L800817E0
|
||||
/* 0823C8 800817C8 02002025 */ move $a0, $s0
|
||||
/* 0823CC 800817CC 24010002 */ li $at, 2
|
||||
/* 0823D0 800817D0 10610014 */ beq $v1, $at, .L80081824
|
||||
/* 0823D4 800817D4 00000000 */ nop
|
||||
/* 0823D8 800817D8 10000017 */ b .L80081838
|
||||
/* 0823DC 800817DC 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L800817E0:
|
||||
/* 0823E0 800817E0 945800B4 */ lhu $t8, 0xb4($v0)
|
||||
/* 0823E4 800817E4 3C063E99 */ lui $a2, (0x3E99999A >> 16) # lui $a2, 0x3e99
|
||||
/* 0823E8 800817E8 24190032 */ li $t9, 50
|
||||
/* 0823EC 800817EC AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 0823F0 800817F0 34C6999A */ ori $a2, (0x3E99999A & 0xFFFF) # ori $a2, $a2, 0x999a
|
||||
/* 0823F4 800817F4 8C45003C */ lw $a1, 0x3c($v0)
|
||||
/* 0823F8 800817F8 8C470034 */ lw $a3, 0x34($v0)
|
||||
/* 0823FC 800817FC 0C021F82 */ jal func_80087E08
|
||||
/* 082400 80081800 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 082404 80081804 10400003 */ beqz $v0, .L80081814
|
||||
/* 082408 80081808 00000000 */ nop
|
||||
/* 08240C 8008180C 0C01C922 */ jal func_80072488
|
||||
/* 082410 80081810 02002025 */ move $a0, $s0
|
||||
.L80081814:
|
||||
/* 082414 80081814 0C022FC6 */ jal func_8008BF18
|
||||
/* 082418 80081818 02002025 */ move $a0, $s0
|
||||
/* 08241C 8008181C 10000006 */ b .L80081838
|
||||
/* 082420 80081820 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L80081824:
|
||||
/* 082424 80081824 0C01C90A */ jal func_80072428
|
||||
/* 082428 80081828 02002025 */ move $a0, $s0
|
||||
/* 08242C 8008182C 0C021BD8 */ jal func_80086F60
|
||||
/* 082430 80081830 02002025 */ move $a0, $s0
|
||||
.L80081834:
|
||||
/* 082434 80081834 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L80081838:
|
||||
/* 082438 80081838 8FB00020 */ lw $s0, 0x20($sp)
|
||||
/* 08243C 8008183C 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 082440 80081840 03E00008 */ jr $ra
|
||||
/* 082444 80081844 00000000 */ nop
|
|
@ -1,70 +0,0 @@
|
|||
glabel func_80082B34
|
||||
/* 083734 80082B34 000470C0 */ sll $t6, $a0, 3
|
||||
/* 083738 80082B38 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 08373C 80082B3C 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
|
||||
/* 083740 80082B40 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
|
||||
/* 083744 80082B44 000E7140 */ sll $t6, $t6, 5
|
||||
/* 083748 80082B48 01CF4021 */ addu $t0, $t6, $t7
|
||||
/* 08374C 80082B4C 850300A6 */ lh $v1, 0xa6($t0)
|
||||
/* 083750 80082B50 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 083754 80082B54 AFB00020 */ sw $s0, 0x20($sp)
|
||||
/* 083758 80082B58 00808025 */ move $s0, $a0
|
||||
/* 08375C 80082B5C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 083760 80082B60 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 083764 80082B64 10600028 */ beqz $v1, .L80082C08
|
||||
/* 083768 80082B68 00601025 */ move $v0, $v1
|
||||
/* 08376C 80082B6C 24010001 */ li $at, 1
|
||||
/* 083770 80082B70 10410009 */ beq $v0, $at, .L80082B98
|
||||
/* 083774 80082B74 02002025 */ move $a0, $s0
|
||||
/* 083778 80082B78 24010002 */ li $at, 2
|
||||
/* 08377C 80082B7C 1041000B */ beq $v0, $at, .L80082BAC
|
||||
/* 083780 80082B80 02002025 */ move $a0, $s0
|
||||
/* 083784 80082B84 24010003 */ li $at, 3
|
||||
/* 083788 80082B88 10410014 */ beq $v0, $at, .L80082BDC
|
||||
/* 08378C 80082B8C 02002025 */ move $a0, $s0
|
||||
/* 083790 80082B90 1000001E */ b .L80082C0C
|
||||
/* 083794 80082B94 28610002 */ slti $at, $v1, 2
|
||||
.L80082B98:
|
||||
/* 083798 80082B98 0C020A93 */ jal init_ktb_crab
|
||||
/* 08379C 80082B9C AFA80028 */ sw $t0, 0x28($sp)
|
||||
/* 0837A0 80082BA0 8FA80028 */ lw $t0, 0x28($sp)
|
||||
/* 0837A4 80082BA4 10000018 */ b .L80082C08
|
||||
/* 0837A8 80082BA8 850300A6 */ lh $v1, 0xa6($t0)
|
||||
.L80082BAC:
|
||||
/* 0837AC 80082BAC 24180002 */ li $t8, 2
|
||||
/* 0837B0 80082BB0 2419FFFF */ li $t9, -1
|
||||
/* 0837B4 80082BB4 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 0837B8 80082BB8 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 0837BC 80082BBC 00002825 */ move $a1, $zero
|
||||
/* 0837C0 80082BC0 24060003 */ li $a2, 3
|
||||
/* 0837C4 80082BC4 24070001 */ li $a3, 1
|
||||
/* 0837C8 80082BC8 0C01CB95 */ jal func_80072E54
|
||||
/* 0837CC 80082BCC AFA80028 */ sw $t0, 0x28($sp)
|
||||
/* 0837D0 80082BD0 8FA80028 */ lw $t0, 0x28($sp)
|
||||
/* 0837D4 80082BD4 1000000C */ b .L80082C08
|
||||
/* 0837D8 80082BD8 850300A6 */ lh $v1, 0xa6($t0)
|
||||
.L80082BDC:
|
||||
/* 0837DC 80082BDC 24090002 */ li $t1, 2
|
||||
/* 0837E0 80082BE0 240AFFFF */ li $t2, -1
|
||||
/* 0837E4 80082BE4 AFAA0014 */ sw $t2, 0x14($sp)
|
||||
/* 0837E8 80082BE8 AFA90010 */ sw $t1, 0x10($sp)
|
||||
/* 0837EC 80082BEC 24050004 */ li $a1, 4
|
||||
/* 0837F0 80082BF0 24060006 */ li $a2, 6
|
||||
/* 0837F4 80082BF4 24070001 */ li $a3, 1
|
||||
/* 0837F8 80082BF8 0C01CB95 */ jal func_80072E54
|
||||
/* 0837FC 80082BFC AFA80028 */ sw $t0, 0x28($sp)
|
||||
/* 083800 80082C00 8FA80028 */ lw $t0, 0x28($sp)
|
||||
/* 083804 80082C04 850300A6 */ lh $v1, 0xa6($t0)
|
||||
.L80082C08:
|
||||
/* 083808 80082C08 28610002 */ slti $at, $v1, 2
|
||||
.L80082C0C:
|
||||
/* 08380C 80082C0C 54200004 */ bnel $at, $zero, .L80082C20
|
||||
/* 083810 80082C10 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 083814 80082C14 0C01CD45 */ jal func_80073514
|
||||
/* 083818 80082C18 02002025 */ move $a0, $s0
|
||||
/* 08381C 80082C1C 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L80082C20:
|
||||
/* 083820 80082C20 8FB00020 */ lw $s0, 0x20($sp)
|
||||
/* 083824 80082C24 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
/* 083828 80082C28 03E00008 */ jr $ra
|
||||
/* 08382C 80082C2C 00000000 */ nop
|
|
@ -1,46 +0,0 @@
|
|||
glabel func_8008421C
|
||||
/* 084E1C 8008421C 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 084E20 80084220 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* 084E24 80084224 3C158019 */ lui $s5, %hi(D_8018D3C0) # $s5, 0x8019
|
||||
/* 084E28 80084228 26B5D3C0 */ addiu $s5, %lo(D_8018D3C0) # addiu $s5, $s5, -0x2c40
|
||||
/* 084E2C 8008422C 8EAE0000 */ lw $t6, ($s5)
|
||||
/* 084E30 80084230 AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* 084E34 80084234 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 084E38 80084238 00A0A025 */ move $s4, $a1
|
||||
/* 084E3C 8008423C AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 084E40 80084240 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 084E44 80084244 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 084E48 80084248 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 084E4C 8008424C AFA40030 */ sw $a0, 0x30($sp)
|
||||
/* 084E50 80084250 19C00014 */ blez $t6, .L800842A4
|
||||
/* 084E54 80084254 00008025 */ move $s0, $zero
|
||||
/* 084E58 80084258 3C128018 */ lui $s2, %hi(D_80183E4C) # $s2, 0x8018
|
||||
/* 084E5C 8008425C 3C118019 */ lui $s1, %hi(D_8018C3F0) # $s1, 0x8019
|
||||
/* 084E60 80084260 2631C3F0 */ addiu $s1, %lo(D_8018C3F0) # addiu $s1, $s1, -0x3c10
|
||||
/* 084E64 80084264 26523E4C */ addiu $s2, %lo(D_80183E4C) # addiu $s2, $s2, 0x3e4c
|
||||
/* 084E68 80084268 2413FFFF */ li $s3, -1
|
||||
/* 084E6C 8008426C 02202025 */ move $a0, $s1
|
||||
.L80084270:
|
||||
/* 084E70 80084270 02402825 */ move $a1, $s2
|
||||
/* 084E74 80084274 0C01C811 */ jal func_80072044
|
||||
/* 084E78 80084278 24060080 */ li $a2, 128
|
||||
/* 084E7C 8008427C 10530009 */ beq $v0, $s3, .L800842A4
|
||||
/* 084E80 80084280 00402025 */ move $a0, $v0
|
||||
/* 084E84 80084284 02002825 */ move $a1, $s0
|
||||
/* 084E88 80084288 0C020FF4 */ jal func_80083FD0
|
||||
/* 084E8C 8008428C 02803025 */ move $a2, $s4
|
||||
/* 084E90 80084290 8EAF0000 */ lw $t7, ($s5)
|
||||
/* 084E94 80084294 26100001 */ addiu $s0, $s0, 1
|
||||
/* 084E98 80084298 020F082A */ slt $at, $s0, $t7
|
||||
/* 084E9C 8008429C 5420FFF4 */ bnel $at, $zero, .L80084270
|
||||
/* 084EA0 800842A0 02202025 */ move $a0, $s1
|
||||
.L800842A4:
|
||||
/* 084EA4 800842A4 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 084EA8 800842A8 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 084EAC 800842AC 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 084EB0 800842B0 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 084EB4 800842B4 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 084EB8 800842B8 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* 084EBC 800842BC 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* 084EC0 800842C0 03E00008 */ jr $ra
|
||||
/* 084EC4 800842C4 27BD0030 */ addiu $sp, $sp, 0x30
|
|
@ -1,22 +0,0 @@
|
|||
glabel func_8008502C
|
||||
/* 085C2C 8008502C 000470C0 */ sll $t6, $a0, 3
|
||||
/* 085C30 80085030 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 085C34 80085034 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 085C38 80085038 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
|
||||
/* 085C3C 8008503C 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
|
||||
/* 085C40 80085040 000E7140 */ sll $t6, $t6, 5
|
||||
/* 085C44 80085044 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 085C48 80085048 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 085C4C 8008504C 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 085C50 80085050 8C450020 */ lw $a1, 0x20($v0)
|
||||
/* 085C54 80085054 944600C6 */ lhu $a2, 0xc6($v0)
|
||||
/* 085C58 80085058 0C02200E */ jal func_80088038
|
||||
/* 085C5C 8008505C AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 085C60 80085060 0C022FC6 */ jal func_8008BF18
|
||||
/* 085C64 80085064 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 085C68 80085068 0C021CFD */ jal func_800873F4
|
||||
/* 085C6C 8008506C 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 085C70 80085070 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 085C74 80085074 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 085C78 80085078 03E00008 */ jr $ra
|
||||
/* 085C7C 8008507C 00000000 */ nop
|
|
@ -1,103 +0,0 @@
|
|||
glabel func_8008629C
|
||||
/* 086E9C 8008629C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 086EA0 800862A0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 086EA4 800862A4 00808025 */ move $s0, $a0
|
||||
/* 086EA8 800862A8 10A0000E */ beqz $a1, .L800862E4
|
||||
/* 086EAC 800862AC AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 086EB0 800862B0 24010001 */ li $at, 1
|
||||
/* 086EB4 800862B4 10A10017 */ beq $a1, $at, .L80086314
|
||||
/* 086EB8 800862B8 001050C0 */ sll $t2, $s0, 3
|
||||
/* 086EBC 800862BC 24010002 */ li $at, 2
|
||||
/* 086EC0 800862C0 10A1001F */ beq $a1, $at, .L80086340
|
||||
/* 086EC4 800862C4 001070C0 */ sll $t6, $s0, 3
|
||||
/* 086EC8 800862C8 000470C0 */ sll $t6, $a0, 3
|
||||
/* 086ECC 800862CC 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 086ED0 800862D0 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
|
||||
/* 086ED4 800862D4 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
|
||||
/* 086ED8 800862D8 000E7140 */ sll $t6, $t6, 5
|
||||
/* 086EDC 800862DC 10000022 */ b .L80086368
|
||||
/* 086EE0 800862E0 01CF1021 */ addu $v0, $t6, $t7
|
||||
.L800862E4:
|
||||
/* 086EE4 800862E4 0010C0C0 */ sll $t8, $s0, 3
|
||||
/* 086EE8 800862E8 0310C023 */ subu $t8, $t8, $s0
|
||||
/* 086EEC 800862EC 3C198016 */ lui $t9, %hi(gObjectList) # $t9, 0x8016
|
||||
/* 086EF0 800862F0 27395C18 */ addiu $t9, %lo(gObjectList) # addiu $t9, $t9, 0x5c18
|
||||
/* 086EF4 800862F4 0018C140 */ sll $t8, $t8, 5
|
||||
/* 086EF8 800862F8 3C080B00 */ lui $t0, %hi(D_0B0075F0) # $t0, 0xb00
|
||||
/* 086EFC 800862FC 250875F0 */ addiu $t0, %lo(D_0B0075F0) # addiu $t0, $t0, 0x75f0
|
||||
/* 086F00 80086300 03191021 */ addu $v0, $t8, $t9
|
||||
/* 086F04 80086304 24090038 */ li $t1, 56
|
||||
/* 086F08 80086308 AC480070 */ sw $t0, 0x70($v0)
|
||||
/* 086F0C 8008630C 10000016 */ b .L80086368
|
||||
/* 086F10 80086310 AC49004C */ sw $t1, 0x4c($v0)
|
||||
.L80086314:
|
||||
/* 086F14 80086314 01505023 */ subu $t2, $t2, $s0
|
||||
/* 086F18 80086318 3C0B8016 */ lui $t3, %hi(gObjectList) # $t3, 0x8016
|
||||
/* 086F1C 8008631C 256B5C18 */ addiu $t3, %lo(gObjectList) # addiu $t3, $t3, 0x5c18
|
||||
/* 086F20 80086320 000A5140 */ sll $t2, $t2, 5
|
||||
/* 086F24 80086324 3C0C0B01 */ lui $t4, %hi(D_0B008040) # $t4, 0xb01
|
||||
/* 086F28 80086328 258C8040 */ addiu $t4, %lo(D_0B008040) # addiu $t4, $t4, -0x7fc0
|
||||
/* 086F2C 8008632C 014B1021 */ addu $v0, $t2, $t3
|
||||
/* 086F30 80086330 240D002B */ li $t5, 43
|
||||
/* 086F34 80086334 AC4C0070 */ sw $t4, 0x70($v0)
|
||||
/* 086F38 80086338 1000000B */ b .L80086368
|
||||
/* 086F3C 8008633C AC4D004C */ sw $t5, 0x4c($v0)
|
||||
.L80086340:
|
||||
/* 086F40 80086340 01D07023 */ subu $t6, $t6, $s0
|
||||
/* 086F44 80086344 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
|
||||
/* 086F48 80086348 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
|
||||
/* 086F4C 8008634C 000E7140 */ sll $t6, $t6, 5
|
||||
/* 086F50 80086350 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 086F54 80086354 3C180B01 */ lui $t8, %hi(D_0B008A90) # $t8, 0xb01
|
||||
/* 086F58 80086358 27188A90 */ addiu $t8, %lo(D_0B008A90) # addiu $t8, $t8, -0x7570
|
||||
/* 086F5C 8008635C 2419001E */ li $t9, 30
|
||||
/* 086F60 80086360 AC580070 */ sw $t8, 0x70($v0)
|
||||
/* 086F64 80086364 AC59004C */ sw $t9, 0x4c($v0)
|
||||
.L80086368:
|
||||
/* 086F68 80086368 3C03800E */ lui $v1, %hi(D_800E634C) # $v1, 0x800e
|
||||
/* 086F6C 8008636C 2463634C */ addiu $v1, %lo(D_800E634C) # addiu $v1, $v1, 0x634c
|
||||
/* 086F70 80086370 84680000 */ lh $t0, ($v1)
|
||||
/* 086F74 80086374 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 086F78 80086378 44812000 */ mtc1 $at, $f4
|
||||
/* 086F7C 8008637C 44883000 */ mtc1 $t0, $f6
|
||||
/* 086F80 80086380 84690002 */ lh $t1, 2($v1)
|
||||
/* 086F84 80086384 846A0004 */ lh $t2, 4($v1)
|
||||
/* 086F88 80086388 46803221 */ cvt.d.w $f8, $f6
|
||||
/* 086F8C 8008638C 3C013FF8 */ li $at, 0x3FF80000 # 1.937500
|
||||
/* 086F90 80086390 44815800 */ mtc1 $at, $f11
|
||||
/* 086F94 80086394 44805000 */ mtc1 $zero, $f10
|
||||
/* 086F98 80086398 E4440000 */ swc1 $f4, ($v0)
|
||||
/* 086F9C 8008639C 44892000 */ mtc1 $t1, $f4
|
||||
/* 086FA0 800863A0 448A3000 */ mtc1 $t2, $f6
|
||||
/* 086FA4 800863A4 462A4401 */ sub.d $f16, $f8, $f10
|
||||
/* 086FA8 800863A8 02002025 */ move $a0, $s0
|
||||
/* 086FAC 800863AC AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 086FB0 800863B0 46802120 */ cvt.s.w $f4, $f4
|
||||
/* 086FB4 800863B4 468031A0 */ cvt.s.w $f6, $f6
|
||||
/* 086FB8 800863B8 44062000 */ mfc1 $a2, $f4
|
||||
/* 086FBC 800863BC 462084A0 */ cvt.s.d $f18, $f16
|
||||
/* 086FC0 800863C0 44073000 */ mfc1 $a3, $f6
|
||||
/* 086FC4 800863C4 44059000 */ mfc1 $a1, $f18
|
||||
/* 086FC8 800863C8 0C022DF5 */ jal func_8008B7D4
|
||||
/* 086FCC 800863CC 00000000 */ nop
|
||||
/* 086FD0 800863D0 44800000 */ mtc1 $zero, $f0
|
||||
/* 086FD4 800863D4 02002025 */ move $a0, $s0
|
||||
/* 086FD8 800863D8 3C06C120 */ lui $a2, 0xc120
|
||||
/* 086FDC 800863DC 44050000 */ mfc1 $a1, $f0
|
||||
/* 086FE0 800863E0 44070000 */ mfc1 $a3, $f0
|
||||
/* 086FE4 800863E4 0C022E03 */ jal func_8008B80C
|
||||
/* 086FE8 800863E8 00000000 */ nop
|
||||
/* 086FEC 800863EC 02002025 */ move $a0, $s0
|
||||
/* 086FF0 800863F0 00002825 */ move $a1, $zero
|
||||
/* 086FF4 800863F4 3406F8E4 */ li $a2, 63716
|
||||
/* 086FF8 800863F8 0C022E22 */ jal func_8008B888
|
||||
/* 086FFC 800863FC 00003825 */ move $a3, $zero
|
||||
/* 087000 80086400 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* 087004 80086404 02002025 */ move $a0, $s0
|
||||
/* 087008 80086408 0C01C922 */ jal func_80072488
|
||||
/* 08700C 8008640C AC400048 */ sw $zero, 0x48($v0)
|
||||
/* 087010 80086410 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 087014 80086414 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 087018 80086418 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 08701C 8008641C 03E00008 */ jr $ra
|
||||
/* 087020 80086420 00000000 */ nop
|
|
@ -1,110 +0,0 @@
|
|||
glabel func_80091FA4
|
||||
/* 092BA4 80091FA4 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 092BA8 80091FA8 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 092BAC 80091FAC 0C0A9EDC */ jal get_next_available_memory_addr
|
||||
/* 092BB0 80091FB0 24042800 */ li $a0, 10240
|
||||
/* 092BB4 80091FB4 3C018019 */ lui $at, %hi(D_8018D9B4) # $at, 0x8019
|
||||
/* 092BB8 80091FB8 3C040001 */ lui $a0, (0x000124F8 >> 16) # lui $a0, 1
|
||||
/* 092BBC 80091FBC AC22D9B4 */ sw $v0, %lo(D_8018D9B4)($at)
|
||||
/* 092BC0 80091FC0 0C0A9EDC */ jal get_next_available_memory_addr
|
||||
/* 092BC4 80091FC4 348424F8 */ ori $a0, (0x000124F8 & 0xFFFF) # ori $a0, $a0, 0x24f8
|
||||
/* 092BC8 80091FC8 3C018019 */ lui $at, %hi(D_8018D9B0) # $at, 0x8019
|
||||
/* 092BCC 80091FCC AC22D9B0 */ sw $v0, %lo(D_8018D9B0)($at)
|
||||
/* 092BD0 80091FD0 0C0A9EDC */ jal get_next_available_memory_addr
|
||||
/* 092BD4 80091FD4 24041000 */ li $a0, 4096
|
||||
/* 092BD8 80091FD8 3C018019 */ lui $at, %hi(D_8018D9B8) # $at, 0x8019
|
||||
/* 092BDC 80091FDC AC22D9B8 */ sw $v0, %lo(D_8018D9B8)($at)
|
||||
/* 092BE0 80091FE0 0C0A9EDC */ jal get_next_available_memory_addr
|
||||
/* 092BE4 80091FE4 24040004 */ li $a0, 4
|
||||
/* 092BE8 80091FE8 3C018019 */ lui $at, %hi(D_8018D9BC) # $at, 0x8019
|
||||
/* 092BEC 80091FEC AC22D9BC */ sw $v0, %lo(D_8018D9BC)($at)
|
||||
/* 092BF0 80091FF0 3C028019 */ lui $v0, %hi(D_8018E7B1) # $v0, 0x8019
|
||||
/* 092BF4 80091FF4 3C038019 */ lui $v1, %hi(D_8018E7AC) # $v1, 0x8019
|
||||
/* 092BF8 80091FF8 2463E7AC */ addiu $v1, %lo(D_8018E7AC) # addiu $v1, $v1, -0x1854
|
||||
/* 092BFC 80091FFC 2442E7B1 */ addiu $v0, %lo(D_8018E7B1) # addiu $v0, $v0, -0x184f
|
||||
.L80092000:
|
||||
/* 092C00 80092000 24630001 */ addiu $v1, $v1, 1
|
||||
/* 092C04 80092004 0062082B */ sltu $at, $v1, $v0
|
||||
/* 092C08 80092008 1420FFFD */ bnez $at, .L80092000
|
||||
/* 092C0C 8009200C A060FFFF */ sb $zero, -1($v1)
|
||||
/* 092C10 80092010 3C018019 */ lui $at, %hi(D_8018E838) # $at, 0x8019
|
||||
/* 092C14 80092014 A020E839 */ sb $zero, %lo(D_8018E838+0x1)($at)
|
||||
/* 092C18 80092018 A020E83A */ sb $zero, %lo(D_8018E838+0x2)($at)
|
||||
/* 092C1C 8009201C A020E83B */ sb $zero, %lo(D_8018E838+0x3)($at)
|
||||
/* 092C20 80092020 0C026444 */ jal func_80099110
|
||||
/* 092C24 80092024 A020E838 */ sb $zero, %lo(D_8018E838)($at)
|
||||
/* 092C28 80092028 0C0268D1 */ jal func_8009A344
|
||||
/* 092C2C 8009202C 00000000 */ nop
|
||||
/* 092C30 80092030 0C027988 */ jal func_8009E620
|
||||
/* 092C34 80092034 00000000 */ nop
|
||||
/* 092C38 80092038 0C024896 */ jal func_80092258
|
||||
/* 092C3C 8009203C 00000000 */ nop
|
||||
/* 092C40 80092040 24040096 */ li $a0, 150
|
||||
/* 092C44 80092044 24050064 */ li $a1, 100
|
||||
/* 092C48 80092048 24060024 */ li $a2, 36
|
||||
/* 092C4C 8009204C 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092C50 80092050 24070001 */ li $a3, 1
|
||||
/* 092C54 80092054 24040097 */ li $a0, 151
|
||||
/* 092C58 80092058 24050064 */ li $a1, 100
|
||||
/* 092C5C 8009205C 240600DD */ li $a2, 221
|
||||
/* 092C60 80092060 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092C64 80092064 24070001 */ li $a3, 1
|
||||
/* 092C68 80092068 24040098 */ li $a0, 152
|
||||
/* 092C6C 8009206C 00002825 */ move $a1, $zero
|
||||
/* 092C70 80092070 00003025 */ move $a2, $zero
|
||||
/* 092C74 80092074 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092C78 80092078 00003825 */ move $a3, $zero
|
||||
/* 092C7C 8009207C 240400C7 */ li $a0, 199
|
||||
/* 092C80 80092080 00002825 */ move $a1, $zero
|
||||
/* 092C84 80092084 00003025 */ move $a2, $zero
|
||||
/* 092C88 80092088 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092C8C 8009208C 00003825 */ move $a3, $zero
|
||||
/* 092C90 80092090 3C0E800E */ lui $t6, %hi(gModeSelection) # $t6, 0x800e
|
||||
/* 092C94 80092094 8DCEC53C */ lw $t6, %lo(gModeSelection)($t6)
|
||||
/* 092C98 80092098 24010001 */ li $at, 1
|
||||
/* 092C9C 8009209C 240400BE */ li $a0, 190
|
||||
/* 092CA0 800920A0 15C10009 */ bne $t6, $at, .L800920C8
|
||||
/* 092CA4 800920A4 00002825 */ move $a1, $zero
|
||||
/* 092CA8 800920A8 00003025 */ move $a2, $zero
|
||||
/* 092CAC 800920AC 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092CB0 800920B0 00003825 */ move $a3, $zero
|
||||
/* 092CB4 800920B4 2404010E */ li $a0, 270
|
||||
/* 092CB8 800920B8 00002825 */ move $a1, $zero
|
||||
/* 092CBC 800920BC 00003025 */ move $a2, $zero
|
||||
/* 092CC0 800920C0 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092CC4 800920C4 00003825 */ move $a3, $zero
|
||||
.L800920C8:
|
||||
/* 092CC8 800920C8 3C0F8016 */ lui $t7, %hi(D_8015F890) # $t7, 0x8016
|
||||
/* 092CCC 800920CC 95EFF890 */ lhu $t7, %lo(D_8015F890)($t7)
|
||||
/* 092CD0 800920D0 3C18800E */ lui $t8, %hi(gModeSelection) # $t8, 0x800e
|
||||
/* 092CD4 800920D4 11E00009 */ beqz $t7, .L800920FC
|
||||
/* 092CD8 800920D8 00000000 */ nop
|
||||
/* 092CDC 800920DC 8F18C53C */ lw $t8, %lo(gModeSelection)($t8)
|
||||
/* 092CE0 800920E0 24010001 */ li $at, 1
|
||||
/* 092CE4 800920E4 240400BD */ li $a0, 189
|
||||
/* 092CE8 800920E8 17010004 */ bne $t8, $at, .L800920FC
|
||||
/* 092CEC 800920EC 00002825 */ move $a1, $zero
|
||||
/* 092CF0 800920F0 00003025 */ move $a2, $zero
|
||||
/* 092CF4 800920F4 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092CF8 800920F8 00003825 */ move $a3, $zero
|
||||
.L800920FC:
|
||||
/* 092CFC 800920FC 3C198015 */ lui $t9, %hi(gControllerBits) # $t9, 0x8015
|
||||
/* 092D00 80092100 9339F108 */ lbu $t9, %lo(gControllerBits)($t9)
|
||||
/* 092D04 80092104 3C098019 */ lui $t1, %hi(D_8018EE08) # $t1, 0x8019
|
||||
/* 092D08 80092108 33280001 */ andi $t0, $t9, 1
|
||||
/* 092D0C 8009210C 15000008 */ bnez $t0, .L80092130
|
||||
/* 092D10 80092110 00000000 */ nop
|
||||
/* 092D14 80092114 8129EE08 */ lb $t1, %lo(D_8018EE08)($t1)
|
||||
/* 092D18 80092118 24040004 */ li $a0, 4
|
||||
/* 092D1C 8009211C 00002825 */ move $a1, $zero
|
||||
/* 092D20 80092120 11200003 */ beqz $t1, .L80092130
|
||||
/* 092D24 80092124 00003025 */ move $a2, $zero
|
||||
/* 092D28 80092128 0C027994 */ jal add_8018D9E0_entry
|
||||
/* 092D2C 8009212C 24070002 */ li $a3, 2
|
||||
.L80092130:
|
||||
/* 092D30 80092130 0C02D7CC */ jal func_800B5F30
|
||||
/* 092D34 80092134 00000000 */ nop
|
||||
/* 092D38 80092138 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 092D3C 8009213C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 092D40 80092140 03E00008 */ jr $ra
|
||||
/* 092D44 80092144 00000000 */ nop
|
|
@ -1,50 +0,0 @@
|
|||
glabel func_8009A944
|
||||
/* 09B544 8009A944 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 09B548 8009A948 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 09B54C 8009A94C AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 09B550 8009A950 8C8E0004 */ lw $t6, 4($a0)
|
||||
/* 09B554 8009A954 00803825 */ move $a3, $a0
|
||||
/* 09B558 8009A958 8C830000 */ lw $v1, ($a0)
|
||||
/* 09B55C 8009A95C 05C30004 */ bgezl $t6, .L8009A970
|
||||
/* 09B560 8009A960 8CEF0008 */ lw $t7, 8($a3)
|
||||
/* 09B564 8009A964 AC800004 */ sw $zero, 4($a0)
|
||||
/* 09B568 8009A968 AC800008 */ sw $zero, 8($a0)
|
||||
/* 09B56C 8009A96C 8CEF0008 */ lw $t7, 8($a3)
|
||||
.L8009A970:
|
||||
/* 09B570 8009A970 25F8FFFF */ addiu $t8, $t7, -1
|
||||
/* 09B574 8009A974 1F000019 */ bgtz $t8, .L8009A9DC
|
||||
/* 09B578 8009A978 ACF80008 */ sw $t8, 8($a3)
|
||||
/* 09B57C 8009A97C 8CE80004 */ lw $t0, 4($a3)
|
||||
/* 09B580 8009A980 000070C0 */ sll $t6, $zero, 3
|
||||
/* 09B584 8009A984 25090001 */ addiu $t1, $t0, 1
|
||||
/* 09B588 8009A988 000958C0 */ sll $t3, $t1, 3
|
||||
/* 09B58C 8009A98C ACE90004 */ sw $t1, 4($a3)
|
||||
/* 09B590 8009A990 006B1021 */ addu $v0, $v1, $t3
|
||||
/* 09B594 8009A994 8C4C0000 */ lw $t4, ($v0)
|
||||
/* 09B598 8009A998 55800004 */ bnel $t4, $zero, .L8009A9AC
|
||||
/* 09B59C 8009A99C 8C4F0004 */ lw $t7, 4($v0)
|
||||
/* 09B5A0 8009A9A0 ACE00004 */ sw $zero, 4($a3)
|
||||
/* 09B5A4 8009A9A4 006E1021 */ addu $v0, $v1, $t6
|
||||
/* 09B5A8 8009A9A8 8C4F0004 */ lw $t7, 4($v0)
|
||||
.L8009A9AC:
|
||||
/* 09B5AC 8009A9AC ACEF0008 */ sw $t7, 8($a3)
|
||||
/* 09B5B0 8009A9B0 8C440000 */ lw $a0, ($v0)
|
||||
/* 09B5B4 8009A9B4 0C026449 */ jal segmented_to_virtual_dupe
|
||||
/* 09B5B8 8009A9B8 AFA70018 */ sw $a3, 0x18($sp)
|
||||
/* 09B5BC 8009A9BC 8FA70018 */ lw $a3, 0x18($sp)
|
||||
/* 09B5C0 8009A9C0 00402025 */ move $a0, $v0
|
||||
/* 09B5C4 8009A9C4 8CF80014 */ lw $t8, 0x14($a3)
|
||||
/* 09B5C8 8009A9C8 3B060001 */ xori $a2, $t8, 1
|
||||
/* 09B5CC 8009A9CC ACE60014 */ sw $a2, 0x14($a3)
|
||||
/* 09B5D0 8009A9D0 0C026798 */ jal func_80099E60
|
||||
/* 09B5D4 8009A9D4 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* 09B5D8 8009A9D8 8FA70018 */ lw $a3, 0x18($sp)
|
||||
.L8009A9DC:
|
||||
/* 09B5DC 8009A9DC 8CE90004 */ lw $t1, 4($a3)
|
||||
/* 09B5E0 8009A9E0 8CE80000 */ lw $t0, ($a3)
|
||||
/* 09B5E4 8009A9E4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 09B5E8 8009A9E8 000950C0 */ sll $t2, $t1, 3
|
||||
/* 09B5EC 8009A9EC 010A5821 */ addu $t3, $t0, $t2
|
||||
/* 09B5F0 8009A9F0 8D620000 */ lw $v0, ($t3)
|
||||
/* 09B5F4 8009A9F4 03E00008 */ jr $ra
|
||||
/* 09B5F8 8009A9F8 27BD0018 */ addiu $sp, $sp, 0x18
|
|
@ -1,58 +0,0 @@
|
|||
glabel func_800A3A10
|
||||
/* 0A4610 800A3A10 27BDFFF8 */ addiu $sp, $sp, -8
|
||||
/* 0A4614 800A3A14 AFB00004 */ sw $s0, 4($sp)
|
||||
/* 0A4618 800A3A18 3C108019 */ lui $s0, %hi(gPlayerCount) # $s0, 0x8019
|
||||
/* 0A461C 800A3A1C 3C0D8016 */ lui $t5, %hi(D_80164478) # $t5, 0x8016
|
||||
/* 0A4620 800A3A20 3C0B8019 */ lui $t3, %hi(gGPPointsByCharacterId) # $t3, 0x8019
|
||||
/* 0A4624 800A3A24 256BD9C8 */ addiu $t3, %lo(gGPPointsByCharacterId) # addiu $t3, $t3, -0x2638
|
||||
/* 0A4628 800A3A28 25AD4478 */ addiu $t5, %lo(D_80164478) # addiu $t5, $t5, 0x4478
|
||||
/* 0A462C 800A3A2C 2610EDF3 */ addiu $s0, %lo(gPlayerCount) # addiu $s0, $s0, -0x120d
|
||||
/* 0A4630 800A3A30 00001025 */ move $v0, $zero
|
||||
/* 0A4634 800A3A34 00801825 */ move $v1, $a0
|
||||
/* 0A4638 800A3A38 240C0008 */ li $t4, 8
|
||||
.L800A3A3C:
|
||||
/* 0A463C 800A3A3C A0620000 */ sb $v0, ($v1)
|
||||
/* 0A4640 800A3A40 18400020 */ blez $v0, .L800A3AC4
|
||||
/* 0A4644 800A3A44 00402825 */ move $a1, $v0
|
||||
/* 0A4648 800A3A48 00853021 */ addu $a2, $a0, $a1
|
||||
.L800A3A4C:
|
||||
/* 0A464C 800A3A4C 80C7FFFF */ lb $a3, -1($a2)
|
||||
/* 0A4650 800A3A50 80C90000 */ lb $t1, ($a2)
|
||||
/* 0A4654 800A3A54 24A5FFFF */ addiu $a1, $a1, -1
|
||||
/* 0A4658 800A3A58 01677021 */ addu $t6, $t3, $a3
|
||||
/* 0A465C 800A3A5C 01697821 */ addu $t7, $t3, $t1
|
||||
/* 0A4660 800A3A60 81EA0000 */ lb $t2, ($t7)
|
||||
/* 0A4664 800A3A64 81C80000 */ lb $t0, ($t6)
|
||||
/* 0A4668 800A3A68 0009C040 */ sll $t8, $t1, 1
|
||||
/* 0A466C 800A3A6C 01B8C821 */ addu $t9, $t5, $t8
|
||||
/* 0A4670 800A3A70 010A082A */ slt $at, $t0, $t2
|
||||
/* 0A4674 800A3A74 10200004 */ beqz $at, .L800A3A88
|
||||
/* 0A4678 800A3A78 00077840 */ sll $t7, $a3, 1
|
||||
/* 0A467C 800A3A7C A0C70000 */ sb $a3, ($a2)
|
||||
/* 0A4680 800A3A80 1000000E */ b .L800A3ABC
|
||||
/* 0A4684 800A3A84 A0C9FFFF */ sb $t1, -1($a2)
|
||||
.L800A3A88:
|
||||
/* 0A4688 800A3A88 1548000E */ bne $t2, $t0, .L800A3AC4
|
||||
/* 0A468C 800A3A8C 01AFC021 */ addu $t8, $t5, $t7
|
||||
/* 0A4690 800A3A90 87280000 */ lh $t0, ($t9)
|
||||
/* 0A4694 800A3A94 820E0000 */ lb $t6, ($s0)
|
||||
/* 0A4698 800A3A98 010E082A */ slt $at, $t0, $t6
|
||||
/* 0A469C 800A3A9C 5020000A */ beql $at, $zero, .L800A3AC8
|
||||
/* 0A46A0 800A3AA0 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0A46A4 800A3AA4 87190000 */ lh $t9, ($t8)
|
||||
/* 0A46A8 800A3AA8 0119082A */ slt $at, $t0, $t9
|
||||
/* 0A46AC 800A3AAC 50200006 */ beql $at, $zero, .L800A3AC8
|
||||
/* 0A46B0 800A3AB0 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0A46B4 800A3AB4 A0C70000 */ sb $a3, ($a2)
|
||||
/* 0A46B8 800A3AB8 A0C9FFFF */ sb $t1, -1($a2)
|
||||
.L800A3ABC:
|
||||
/* 0A46BC 800A3ABC 14A0FFE3 */ bnez $a1, .L800A3A4C
|
||||
/* 0A46C0 800A3AC0 24C6FFFF */ addiu $a2, $a2, -1
|
||||
.L800A3AC4:
|
||||
/* 0A46C4 800A3AC4 24420001 */ addiu $v0, $v0, 1
|
||||
.L800A3AC8:
|
||||
/* 0A46C8 800A3AC8 144CFFDC */ bne $v0, $t4, .L800A3A3C
|
||||
/* 0A46CC 800A3ACC 24630001 */ addiu $v1, $v1, 1
|
||||
/* 0A46D0 800A3AD0 8FB00004 */ lw $s0, 4($sp)
|
||||
/* 0A46D4 800A3AD4 03E00008 */ jr $ra
|
||||
/* 0A46D8 800A3AD8 27BD0008 */ addiu $sp, $sp, 8
|
|
@ -1,56 +0,0 @@
|
|||
glabel func_800ABC38
|
||||
/* 0AC838 800ABC38 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 0AC83C 800ABC3C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0AC840 800ABC40 0C02AF3D */ jal func_800ABCF4
|
||||
/* 0AC844 800ABC44 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 0AC848 800ABC48 3C028016 */ lui $v0, %hi(D_80164A28) # $v0, 0x8016
|
||||
/* 0AC84C 800ABC4C 8C424A28 */ lw $v0, %lo(D_80164A28)($v0)
|
||||
/* 0AC850 800ABC50 24030001 */ li $v1, 1
|
||||
/* 0AC854 800ABC54 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 0AC858 800ABC58 10430005 */ beq $v0, $v1, .L800ABC70
|
||||
/* 0AC85C 800ABC5C 24010002 */ li $at, 2
|
||||
/* 0AC860 800ABC60 10410005 */ beq $v0, $at, .L800ABC78
|
||||
/* 0AC864 800ABC64 3C0F800E */ lui $t7, %hi(gModeSelection) # $t7, 0x800e
|
||||
/* 0AC868 800ABC68 1000000B */ b .L800ABC98
|
||||
/* 0AC86C 800ABC6C 3C18800E */ lui $t8, %hi(gPlayerCountSelection1) # $t8, 0x800e
|
||||
.L800ABC70:
|
||||
/* 0AC870 800ABC70 1000001C */ b .L800ABCE4
|
||||
/* 0AC874 800ABC74 A0830015 */ sb $v1, 0x15($a0)
|
||||
.L800ABC78:
|
||||
/* 0AC878 800ABC78 8C820010 */ lw $v0, 0x10($a0)
|
||||
/* 0AC87C 800ABC7C 2841FFED */ slti $at, $v0, -0x13
|
||||
/* 0AC880 800ABC80 14200003 */ bnez $at, .L800ABC90
|
||||
/* 0AC884 800ABC84 244EFFFE */ addiu $t6, $v0, -2
|
||||
/* 0AC888 800ABC88 10000016 */ b .L800ABCE4
|
||||
/* 0AC88C 800ABC8C AC8E0010 */ sw $t6, 0x10($a0)
|
||||
.L800ABC90:
|
||||
/* 0AC890 800ABC90 10000014 */ b .L800ABCE4
|
||||
/* 0AC894 800ABC94 AC800000 */ sw $zero, ($a0)
|
||||
.L800ABC98:
|
||||
/* 0AC898 800ABC98 8DEFC53C */ lw $t7, %lo(gModeSelection)($t7)
|
||||
/* 0AC89C 800ABC9C 15E00008 */ bnez $t7, .L800ABCC0
|
||||
/* 0AC8A0 800ABCA0 00000000 */ nop
|
||||
/* 0AC8A4 800ABCA4 8F18C538 */ lw $t8, %lo(gPlayerCountSelection1)($t8)
|
||||
/* 0AC8A8 800ABCA8 3C198019 */ lui $t9, %hi(D_8018EE08) # $t9, 0x8019
|
||||
/* 0AC8AC 800ABCAC 14780004 */ bne $v1, $t8, .L800ABCC0
|
||||
/* 0AC8B0 800ABCB0 00000000 */ nop
|
||||
/* 0AC8B4 800ABCB4 8339EE08 */ lb $t9, %lo(D_8018EE08)($t9)
|
||||
/* 0AC8B8 800ABCB8 53200004 */ beql $t9, $zero, .L800ABCCC
|
||||
/* 0AC8BC 800ABCBC 8C820010 */ lw $v0, 0x10($a0)
|
||||
.L800ABCC0:
|
||||
/* 0AC8C0 800ABCC0 10000008 */ b .L800ABCE4
|
||||
/* 0AC8C4 800ABCC4 AC800000 */ sw $zero, ($a0)
|
||||
/* 0AC8C8 800ABCC8 8C820010 */ lw $v0, 0x10($a0)
|
||||
.L800ABCCC:
|
||||
/* 0AC8CC 800ABCCC 2841FFED */ slti $at, $v0, -0x13
|
||||
/* 0AC8D0 800ABCD0 14200003 */ bnez $at, .L800ABCE0
|
||||
/* 0AC8D4 800ABCD4 2448FFFE */ addiu $t0, $v0, -2
|
||||
/* 0AC8D8 800ABCD8 10000002 */ b .L800ABCE4
|
||||
/* 0AC8DC 800ABCDC AC880010 */ sw $t0, 0x10($a0)
|
||||
.L800ABCE0:
|
||||
/* 0AC8E0 800ABCE0 AC800000 */ sw $zero, ($a0)
|
||||
.L800ABCE4:
|
||||
/* 0AC8E4 800ABCE4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0AC8E8 800ABCE8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 0AC8EC 800ABCEC 03E00008 */ jr $ra
|
||||
/* 0AC8F0 800ABCF0 00000000 */ nop
|
|
@ -1,34 +0,0 @@
|
|||
glabel func_800B6014
|
||||
/* 0B6C14 800B6014 3C0E800F */ lui $t6, %hi(sControllerPak2State) # $t6, 0x800f
|
||||
/* 0B6C18 800B6018 81CE86FC */ lb $t6, %lo(sControllerPak2State)($t6)
|
||||
/* 0B6C1C 800B601C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 0B6C20 800B6020 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0B6C24 800B6024 11C00003 */ beqz $t6, .L800B6034
|
||||
/* 0B6C28 800B6028 00000000 */ nop
|
||||
/* 0B6C2C 800B602C 10000012 */ b .L800B6078
|
||||
/* 0B6C30 800B6030 2402FFFC */ li $v0, -4
|
||||
.L800B6034:
|
||||
/* 0B6C34 800B6034 0C02D6CB */ jal check_for_controller_pak
|
||||
/* 0B6C38 800B6038 24040001 */ li $a0, 1
|
||||
/* 0B6C3C 800B603C 1040000D */ beqz $v0, .L800B6074
|
||||
/* 0B6C40 800B6040 3C048015 */ lui $a0, %hi(gSIEventMesgQueue) # $a0, 0x8015
|
||||
/* 0B6C44 800B6044 3C058019 */ lui $a1, %hi(D_8018E8D0) # $a1, 0x8019
|
||||
/* 0B6C48 800B6048 24A5E8D0 */ addiu $a1, %lo(D_8018E8D0) # addiu $a1, $a1, -0x1730
|
||||
/* 0B6C4C 800B604C 2484F0B8 */ addiu $a0, %lo(gSIEventMesgQueue) # addiu $a0, $a0, -0xf48
|
||||
/* 0B6C50 800B6050 0C0339C8 */ jal osPfsInit
|
||||
/* 0B6C54 800B6054 24060001 */ li $a2, 1
|
||||
/* 0B6C58 800B6058 14400004 */ bnez $v0, .L800B606C
|
||||
/* 0B6C5C 800B605C 00401825 */ move $v1, $v0
|
||||
/* 0B6C60 800B6060 240F0001 */ li $t7, 1
|
||||
/* 0B6C64 800B6064 3C01800F */ lui $at, %hi(sControllerPak2State) # $at, 0x800f
|
||||
/* 0B6C68 800B6068 A02F86FC */ sb $t7, %lo(sControllerPak2State)($at)
|
||||
.L800B606C:
|
||||
/* 0B6C6C 800B606C 10000002 */ b .L800B6078
|
||||
/* 0B6C70 800B6070 00601025 */ move $v0, $v1
|
||||
.L800B6074:
|
||||
/* 0B6C74 800B6074 2402FFFF */ li $v0, -1
|
||||
.L800B6078:
|
||||
/* 0B6C78 800B6078 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0B6C7C 800B607C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 0B6C80 800B6080 03E00008 */ jr $ra
|
||||
/* 0B6C84 800B6084 00000000 */ nop
|
|
@ -1,20 +0,0 @@
|
|||
glabel func_8004B310
|
||||
/* 04BF10 8004B310 3C068015 */ lui $a2, %hi(gDisplayListHead) # $a2, 0x8015
|
||||
/* 04BF14 8004B314 24C60298 */ addiu $a2, %lo(gDisplayListHead) # addiu $a2, $a2, 0x298
|
||||
/* 04BF18 8004B318 8CC30000 */ lw $v1, ($a2)
|
||||
/* 04BF1C 8004B31C 3C0FFCFF */ lui $t7, (0xFCFF97FF >> 16) # lui $t7, 0xfcff
|
||||
/* 04BF20 8004B320 3C18FF2C */ lui $t8, (0xFF2CFE7F >> 16) # lui $t8, 0xff2c
|
||||
/* 04BF24 8004B324 246E0008 */ addiu $t6, $v1, 8
|
||||
/* 04BF28 8004B328 ACCE0000 */ sw $t6, ($a2)
|
||||
/* 04BF2C 8004B32C 3718FE7F */ ori $t8, (0xFF2CFE7F & 0xFFFF) # ori $t8, $t8, 0xfe7f
|
||||
/* 04BF30 8004B330 35EF97FF */ ori $t7, (0xFCFF97FF & 0xFFFF) # ori $t7, $t7, 0x97ff
|
||||
/* 04BF34 8004B334 AC6F0000 */ sw $t7, ($v1)
|
||||
/* 04BF38 8004B338 AC780004 */ sw $t8, 4($v1)
|
||||
/* 04BF3C 8004B33C 8CC30000 */ lw $v1, ($a2)
|
||||
/* 04BF40 8004B340 3C08FA00 */ lui $t0, 0xfa00
|
||||
/* 04BF44 8004B344 308900FF */ andi $t1, $a0, 0xff
|
||||
/* 04BF48 8004B348 24790008 */ addiu $t9, $v1, 8
|
||||
/* 04BF4C 8004B34C ACD90000 */ sw $t9, ($a2)
|
||||
/* 04BF50 8004B350 AC690004 */ sw $t1, 4($v1)
|
||||
/* 04BF54 8004B354 03E00008 */ jr $ra
|
||||
/* 04BF58 8004B358 AC680000 */ sw $t0, ($v1)
|
|
@ -1,52 +0,0 @@
|
|||
glabel func_8004E6C4
|
||||
/* 04F2C4 8004E6C4 00047880 */ sll $t7, $a0, 2
|
||||
/* 04F2C8 8004E6C8 3C028018 */ lui $v0, %hi(gItemWindowObjectByPlayerId) # 0x8018
|
||||
/* 04F2CC 8004E6CC 004F1021 */ addu $v0, $v0, $t7
|
||||
/* 04F2D0 8004E6D0 8C423E88 */ lw $v0, %lo(gItemWindowObjectByPlayerId)($v0) # 0x3e88($v0)
|
||||
/* 04F2D4 8004E6D4 3C198016 */ lui $t9, %hi(gObjectList) # $t9, 0x8016
|
||||
/* 04F2D8 8004E6D8 27395C18 */ addiu $t9, %lo(gObjectList) # addiu $t9, $t9, 0x5c18
|
||||
/* 04F2DC 8004E6DC 0002C0C0 */ sll $t8, $v0, 3
|
||||
/* 04F2E0 8004E6E0 0302C023 */ subu $t8, $t8, $v0
|
||||
/* 04F2E4 8004E6E4 0018C140 */ sll $t8, $t8, 5
|
||||
/* 04F2E8 8004E6E8 03191821 */ addu $v1, $t8, $t9
|
||||
/* 04F2EC 8004E6EC 846800A6 */ lh $t0, 0xa6($v1)
|
||||
/* 04F2F0 8004E6F0 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 04F2F4 8004E6F4 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 04F2F8 8004E6F8 29010002 */ slti $at, $t0, 2
|
||||
/* 04F2FC 8004E6FC 1420001F */ bnez $at, .L8004E77C
|
||||
/* 04F300 8004E700 AFA40038 */ sw $a0, 0x38($sp)
|
||||
/* 04F304 8004E704 00044940 */ sll $t1, $a0, 5
|
||||
/* 04F308 8004E708 01244821 */ addu $t1, $t1, $a0
|
||||
/* 04F30C 8004E70C 3C0A8019 */ lui $t2, %hi(D_8018CA70) # $t2, 0x8019
|
||||
/* 04F310 8004E710 254ACA70 */ addiu $t2, %lo(D_8018CA70) # addiu $t2, $t2, -0x3590
|
||||
/* 04F314 8004E714 00094880 */ sll $t1, $t1, 2
|
||||
/* 04F318 8004E718 012A1021 */ addu $v0, $t1, $t2
|
||||
/* 04F31C 8004E71C 844B0046 */ lh $t3, 0x46($v0)
|
||||
/* 04F320 8004E720 844C0042 */ lh $t4, 0x42($v0)
|
||||
/* 04F324 8004E724 844D0048 */ lh $t5, 0x48($v0)
|
||||
/* 04F328 8004E728 844F0044 */ lh $t7, 0x44($v0)
|
||||
/* 04F32C 8004E72C 8C780060 */ lw $t8, 0x60($v1)
|
||||
/* 04F330 8004E730 8C790064 */ lw $t9, 0x64($v1)
|
||||
/* 04F334 8004E734 3C080D00 */ lui $t0, %hi(D_0D005C30) # $t0, 0xd00
|
||||
/* 04F338 8004E738 016C2021 */ addu $a0, $t3, $t4
|
||||
/* 04F33C 8004E73C 240B0020 */ li $t3, 32
|
||||
/* 04F340 8004E740 25085C30 */ addiu $t0, %lo(D_0D005C30) # addiu $t0, $t0, 0x5c30
|
||||
/* 04F344 8004E744 240A0028 */ li $t2, 40
|
||||
/* 04F348 8004E748 24090020 */ li $t1, 32
|
||||
/* 04F34C 8004E74C 240E0028 */ li $t6, 40
|
||||
/* 04F350 8004E750 AFAE001C */ sw $t6, 0x1c($sp)
|
||||
/* 04F354 8004E754 AFA90020 */ sw $t1, 0x20($sp)
|
||||
/* 04F358 8004E758 AFAA0024 */ sw $t2, 0x24($sp)
|
||||
/* 04F35C 8004E75C AFA80018 */ sw $t0, 0x18($sp)
|
||||
/* 04F360 8004E760 AFAB0028 */ sw $t3, 0x28($sp)
|
||||
/* 04F364 8004E764 8C470000 */ lw $a3, ($v0)
|
||||
/* 04F368 8004E768 00003025 */ move $a2, $zero
|
||||
/* 04F36C 8004E76C 01AF2821 */ addu $a1, $t5, $t7
|
||||
/* 04F370 8004E770 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 04F374 8004E774 0C011E44 */ jal func_80047910
|
||||
/* 04F378 8004E778 AFB90014 */ sw $t9, 0x14($sp)
|
||||
.L8004E77C:
|
||||
/* 04F37C 8004E77C 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 04F380 8004E780 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
/* 04F384 8004E784 03E00008 */ jr $ra
|
||||
/* 04F388 8004E788 00000000 */ nop
|
|
@ -1,27 +0,0 @@
|
|||
glabel load_debug_font
|
||||
/* 058310 80057710 3C068015 */ lui $a2, %hi(gDisplayListHead) # $a2, 0x8015
|
||||
/* 058314 80057714 24C60298 */ addiu $a2, %lo(gDisplayListHead) # addiu $a2, $a2, 0x298
|
||||
/* 058318 80057718 8CC30000 */ lw $v1, ($a2)
|
||||
/* 05831C 8005771C 3C0F0D01 */ lui $t7, %hi(D_0D008108) # $t7, 0xd01
|
||||
/* 058320 80057720 3C070600 */ lui $a3, 0x600
|
||||
/* 058324 80057724 246E0008 */ addiu $t6, $v1, 8
|
||||
/* 058328 80057728 ACCE0000 */ sw $t6, ($a2)
|
||||
/* 05832C 8005772C 25EF8108 */ addiu $t7, %lo(D_0D008108) # addiu $t7, $t7, -0x7ef8
|
||||
/* 058330 80057730 AC6F0004 */ sw $t7, 4($v1)
|
||||
/* 058334 80057734 AC670000 */ sw $a3, ($v1)
|
||||
/* 058338 80057738 8CC30000 */ lw $v1, ($a2)
|
||||
/* 05833C 8005773C 3C190D01 */ lui $t9, %hi(D_0D008080) # $t9, 0xd01
|
||||
/* 058340 80057740 27398080 */ addiu $t9, %lo(D_0D008080) # addiu $t9, $t9, -0x7f80
|
||||
/* 058344 80057744 24780008 */ addiu $t8, $v1, 8
|
||||
/* 058348 80057748 ACD80000 */ sw $t8, ($a2)
|
||||
/* 05834C 8005774C AC790004 */ sw $t9, 4($v1)
|
||||
/* 058350 80057750 AC670000 */ sw $a3, ($v1)
|
||||
/* 058354 80057754 8CC30000 */ lw $v1, ($a2)
|
||||
/* 058358 80057758 3C09B900 */ lui $t1, (0xB9000002 >> 16) # lui $t1, 0xb900
|
||||
/* 05835C 8005775C 35290002 */ ori $t1, (0xB9000002 & 0xFFFF) # ori $t1, $t1, 2
|
||||
/* 058360 80057760 24680008 */ addiu $t0, $v1, 8
|
||||
/* 058364 80057764 ACC80000 */ sw $t0, ($a2)
|
||||
/* 058368 80057768 240A0001 */ li $t2, 1
|
||||
/* 05836C 8005776C AC6A0004 */ sw $t2, 4($v1)
|
||||
/* 058370 80057770 03E00008 */ jr $ra
|
||||
/* 058374 80057774 AC690000 */ sw $t1, ($v1)
|
|
@ -17,7 +17,7 @@ BLUE_SHELL_EXPORT_SENTINEL := $(BLUE_SHELL_DIR)/.export
|
|||
$(BLUE_SHELL_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(BLUE_SHELL_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(BLUE_SHELL_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(BLUE_SHELL_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(BLUE_SHELL_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -10,7 +10,7 @@ $(BOMB_DIR)/gTextureBomb4.png
|
|||
|
||||
BOMB_EXPORT_SENTINEL := $(BOMB_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(BOMB_FRAMES:%.png=%.inc.c) $(BOMB_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(BOMB_FRAMES:%.png=%.inc.c) $(BOMB_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(BOMB_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(BOMB_PALETTE)
|
||||
|
|
|
@ -31,8 +31,8 @@ $(PORTRAITS_DIR)/gTexturePortraitQuestionMark.png
|
|||
|
||||
PORTRAIT_EXPORT_SENTINEL := $(PORTRAITS_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(PORTRAIT_PNG:%.png=%.inc.c) $(PORTRAIT_PALETTES:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(SPECIAL_PORTRAIT_PNG:%.png=%.inc.c) $(SPECIAL_PORTRAIT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(PORTRAIT_PNG:%.png=%.inc.c) $(PORTRAIT_PALETTES:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(SPECIAL_PORTRAIT_PNG:%.png=%.inc.c) $(SPECIAL_PORTRAIT_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(PORTRAIT_PNG:%.png=%.inc.c): $(PORTRAITS_DIR)/gTexturePortrait%.inc.c : $(PORTRAITS_DIR)/gTexturePortrait%.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(PORTRAITS_DIR)/gTLUTPortrait$*.png
|
||||
|
|
|
@ -24,7 +24,7 @@ $(COURSE_PREVIEW_DIR)/gTextureCoursePreviewBigDonut.png
|
|||
|
||||
COURSE_PREVIEW_EXPORT_SENTINEL := $(COURSE_PREVIEW_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/textures.inc.o: $(COURSE_PREVIEW_PNG:%.png=%.mio0)
|
||||
$(BUILD_DIR)/src/data/textures.inc.o: $(COURSE_PREVIEW_PNG:%.png=%.mio0)
|
||||
|
||||
$(COURSE_PREVIEW_PNG:%.png=%.mio0): %.mio0 : %.bin
|
||||
$(MIO0TOOL) -c $< $@
|
||||
|
|
|
@ -6,7 +6,7 @@ DEBUG_FONT_PNG := $(DEBUG_FONT_DIR)/gTextureDebugFont.png
|
|||
|
||||
DEBUG_FONT_EXPORT_SENTINEL := $(DEBUG_FONT_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(DEBUG_FONT_PNG:%.png=%.inc.c) $(DEBUG_FONT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(DEBUG_FONT_PNG:%.png=%.inc.c) $(DEBUG_FONT_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(DEBUG_FONT_PNG:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci4 -c rgba16 -p $(DEBUG_FONT_PALETTE)
|
||||
|
|
|
@ -22,7 +22,7 @@ $(FINISH_LINE_BANNER_PNG:%.png=%.mio0): %.mio0 : %.bin
|
|||
$(FINISH_LINE_BANNER_PNG:%.png=%.bin): %.bin : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s raw -f ci8 -c rgba16 -p $(FINISH_LINE_BANNER_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(FINISH_LINE_BANNER_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(FINISH_LINE_BANNER_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(FINISH_LINE_BANNER_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -17,7 +17,7 @@ GREENSHELL_EXPORT_SENTINEL := $(GREENSHELL_DIR)/.export
|
|||
$(GREENSHELL_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(GREENSHELL_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(GREENSHELL_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(GREENSHELL_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(GREENSHELL_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -30,9 +30,9 @@ HUD_TYPE_C_PORTRAIT_BORDER_PNG := $(HUD_TYPE_C_DIR)/gTextureCharacterPortraitBor
|
|||
|
||||
HUD_TYPE_C_EXPORT_SENTINEL := $(HUD_TYPE_C_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(HUD_TYPE_C_FONT_PNG:%.png=%.inc.c) $(HUD_TYPE_C_FONT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(HUD_TYPE_C_TINY_FONT_PNG:%.png=%.inc.c) $(HUD_TYPE_C_TINY_FONT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(HUD_TYPE_C_PORTRAIT_BORDER_PNG:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(HUD_TYPE_C_FONT_PNG:%.png=%.inc.c) $(HUD_TYPE_C_FONT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(HUD_TYPE_C_TINY_FONT_PNG:%.png=%.inc.c) $(HUD_TYPE_C_TINY_FONT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(HUD_TYPE_C_PORTRAIT_BORDER_PNG:%.png=%.inc.c)
|
||||
|
||||
$(HUD_TYPE_C_FONT_PNG:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(HUD_TYPE_C_FONT_PALETTE)
|
||||
|
|
|
@ -38,7 +38,7 @@ $(ITEM_WINDOW_DIR)/gTextureItemWindowFakeItemBox.png
|
|||
|
||||
ITEM_WINDOW_EXPORT_SENTINEL := $(ITEM_WINDOW_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(ITEM_WINDOW_PNG:%.png=%.inc.c) $(ITEM_WINDOW_PALETTES:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(ITEM_WINDOW_PNG:%.png=%.inc.c) $(ITEM_WINDOW_PALETTES:%.png=%.inc.c)
|
||||
|
||||
$(ITEM_WINDOW_DIR)/gTexture%.inc.c: $(ITEM_WINDOW_DIR)/gTexture%.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(ITEM_WINDOW_DIR)/gTLUT$*.png
|
||||
|
|
|
@ -17,7 +17,7 @@ BLUELIGHT_EXPORT_SENTINEL := $(BLUELIGHT_DIR)/.export
|
|||
$(BLUELIGHT_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(BLUELIGHT_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(BLUELIGHT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(BLUELIGHT_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(BLUELIGHT_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -41,7 +41,7 @@ CHECKEREDFLAG_EXPORT_SENTINEL := $(CHECKEREDFLAG_DIR)/.export
|
|||
$(CHECKEREDFLAG_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(CHECKEREDFLAG_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(CHECKEREDFLAG_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(CHECKEREDFLAG_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(CHECKEREDFLAG_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -25,7 +25,7 @@ FINALLAP_EXPORT_SENTINEL := $(FINALLAP_DIR)/.export
|
|||
$(FINALLAP_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(FINALLAP_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(FINALLAP_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(FINALLAP_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(FINALLAP_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -13,7 +13,7 @@ FISHING_EXPORT_SENTINEL := $(FISHING_DIR)/.export
|
|||
$(FISHING_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(FISHING_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(FISHING_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(FISHING_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(FISHING_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -17,7 +17,7 @@ NOLIGHTS_EXPORT_SENTINEL := $(NOLIGHTS_DIR)/.export
|
|||
$(NOLIGHTS_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(NOLIGHTS_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(NOLIGHTS_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(NOLIGHTS_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(NOLIGHTS_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -25,7 +25,7 @@ REDLIGHTS_EXPORT_SENTINEL := $(REDLIGHTS_DIR)/.export
|
|||
$(REDLIGHTS_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(REDLIGHTS_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(REDLIGHTS_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(REDLIGHTS_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(REDLIGHTS_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -25,7 +25,7 @@ REVERSE_EXPORT_SENTINEL := $(REVERSE_DIR)/.export
|
|||
$(REVERSE_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(REVERSE_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(REVERSE_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(REVERSE_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(REVERSE_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -25,7 +25,7 @@ SECONDLAP_EXPORT_SENTINEL := $(SECONDLAP_DIR)/.export
|
|||
$(SECONDLAP_FRAMES:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(SECONDLAP_PALETTE)
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(SECONDLAP_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(SECONDLAP_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(SECONDLAP_PALETTE:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -14,7 +14,7 @@ $(MINIMAP_ICONS_DIR)/gTextureMiniMapProgressDot.png
|
|||
|
||||
MINIMAP_ICONS_EXPORT_SENTINEL := $(MINIMAP_ICONS_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(MINIMAP_ICONS_PNG:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(MINIMAP_ICONS_PNG:%.png=%.inc.c)
|
||||
|
||||
$(MINIMAP_ICONS_PNG:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -i $@ -g $< -s u8 -f rgba16
|
||||
|
|
|
@ -10,7 +10,7 @@ $(PLAYER_EMBLEM_DIR)/gTexturePlayerEmblem4p.png
|
|||
|
||||
PLAYER_EMBLEM_EXPORT_SENTINEL := $(PLAYER_EMBLEM_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(PLAYER_EMBLEM_PNGS:%.png=%.inc.c) $(PLAYER_EMBLEM_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(PLAYER_EMBLEM_PNGS:%.png=%.inc.c) $(PLAYER_EMBLEM_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(PLAYER_EMBLEM_PNGS:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(PLAYER_EMBLEM_PALETTE)
|
||||
|
|
|
@ -16,7 +16,7 @@ $(UNUSED_TRAFFIC_LIGHT_DIR)/gTextureUnusedTrafficLight10.png
|
|||
|
||||
UNUSED_TRAFFIC_LIGHT_EXPORT_SENTINEL := $(UNUSED_TRAFFIC_LIGHT_DIR)/.export
|
||||
|
||||
$(BUILD_DIR)/src/common_textures.inc.o: $(UNUSED_TRAFFIC_LIGHT_PNG:%.png=%.inc.c) $(UNUSED_TRAFFIC_LIGHT_PALETTE:%.png=%.inc.c)
|
||||
$(BUILD_DIR)/src/data/common_textures.inc.o: $(UNUSED_TRAFFIC_LIGHT_PNG:%.png=%.inc.c) $(UNUSED_TRAFFIC_LIGHT_PALETTE:%.png=%.inc.c)
|
||||
|
||||
$(UNUSED_TRAFFIC_LIGHT_PNG:%.png=%.inc.c): %.inc.c : %.png
|
||||
$(N64GRAPHICS) -Z $@ -g $< -s u8 -f ci8 -c rgba16 -p $(UNUSED_TRAFFIC_LIGHT_PALETTE)
|
||||
|
|
64
mk64.ld
64
mk64.ld
|
@ -210,11 +210,11 @@ SECTIONS
|
|||
BUILD_DIR/src/camera.o(.data);
|
||||
BUILD_DIR/src/code_8001F980.o(.data);
|
||||
BUILD_DIR/src/kart_dma.o(.data);
|
||||
BUILD_DIR/src/kart_attributes.inc.o(.data);
|
||||
BUILD_DIR/src/data/kart_attributes.inc.o(.data);
|
||||
BUILD_DIR/src/player_controller.o(.data);
|
||||
BUILD_DIR/src/spawn_players.o(.data);
|
||||
BUILD_DIR/src/code_80071F00.o(.data);
|
||||
BUILD_DIR/src/data_800E45C0.o(.data);
|
||||
BUILD_DIR/src/data/data_800E45C0.o(.data);
|
||||
BUILD_DIR/src/code_80057C60.o(.data);
|
||||
BUILD_DIR/data/data_code_80071F00_2.o(.data);
|
||||
BUILD_DIR/src/code_8008C1D0.o(.data);
|
||||
|
@ -223,7 +223,7 @@ SECTIONS
|
|||
BUILD_DIR/src/code_800AF9B0.o(.data);
|
||||
BUILD_DIR/src/menus.o(.data);
|
||||
BUILD_DIR/src/code_800B45E0.o(.data);
|
||||
BUILD_DIR/src/data_800E8700.o(.data);
|
||||
BUILD_DIR/src/data/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);
|
||||
|
@ -376,7 +376,7 @@ SECTIONS
|
|||
BUILD_DIR/src/racing/race_logic.o(.bss*);
|
||||
BUILD_DIR/src/racing/actors.o(.bss*);
|
||||
BUILD_DIR/src/racing/memory.o(.bss*);
|
||||
BUILD_DIR/src/framebuffers.o(.bss*);
|
||||
BUILD_DIR/src/data/framebuffers.o(.bss*);
|
||||
BUILD_DIR/src/audio/synthesis.o(.bss*);
|
||||
BUILD_DIR/src/audio/heap.o(.bss*);
|
||||
BUILD_DIR/src/audio/load.o(.bss);
|
||||
|
@ -431,8 +431,8 @@ SECTIONS
|
|||
/* texture tables and DLs, set as segment 0x02 */
|
||||
BEGIN_SEG(data_segment2, 0x02000000)
|
||||
{
|
||||
BUILD_DIR/src/textures.inc.o(.data);
|
||||
BUILD_DIR/src/data_segment2.inc.o(.data);
|
||||
BUILD_DIR/src/data/textures.inc.o(.data);
|
||||
BUILD_DIR/src/data/data_segment2.inc.o(.data);
|
||||
}
|
||||
END_SEG(data_segment2)
|
||||
|
||||
|
@ -440,7 +440,7 @@ SECTIONS
|
|||
/* common textures, decompressed and set as segment 0x0D */
|
||||
BEGIN_SEG(common_textures, 0x0D000000)
|
||||
{
|
||||
BUILD_DIR/src/common_textures.inc.mio0.o(.data);
|
||||
BUILD_DIR/src/data/common_textures.inc.mio0.o(.data);
|
||||
. = ALIGN(0x10);
|
||||
}
|
||||
END_SEG(common_textures)
|
||||
|
@ -473,7 +473,7 @@ SECTIONS
|
|||
/* 0x802BA370 724220-729A30 [0x5810] */
|
||||
BEGIN_SEG(data_802BA370, SEG_802BA370)
|
||||
{
|
||||
BUILD_DIR/src/framebuffers.o(.data);
|
||||
BUILD_DIR/src/data/framebuffers.o(.data);
|
||||
. = ALIGN(0x10);
|
||||
}
|
||||
END_SEG(data_802BA370)
|
||||
|
@ -505,7 +505,7 @@ SECTIONS
|
|||
END_SEG(data_821D10)
|
||||
BEGIN_SEG(data_825800, 0x06000000)
|
||||
{
|
||||
BUILD_DIR/src/startup_logo.inc.mio0.o(.data);
|
||||
BUILD_DIR/src/data/startup_logo.inc.mio0.o(.data);
|
||||
. = ALIGN(0x10);
|
||||
}
|
||||
END_SEG(data_825800)
|
||||
|
@ -542,34 +542,34 @@ SECTIONS
|
|||
COURSE_DATA_SEG(dks_jungle_parkway,course_dks_jungle_parkway_dl)
|
||||
COURSE_DATA_SEG(big_donut,course_big_donut_dl)
|
||||
|
||||
#define COURSE_OFFSETS_SEG(name, addr) \
|
||||
BEGIN_SEG(name, addr) \
|
||||
#define COURSE_OFFSETS_SEG(dir, name) \
|
||||
BEGIN_SEG(name, 0x09000000) \
|
||||
{ \
|
||||
BUILD_DIR/src/name.o(.data); \
|
||||
BUILD_DIR/courses/dir/course_offsets.inc.o(.data); \
|
||||
. = ALIGN(0x10); \
|
||||
} \
|
||||
END_SEG(name)
|
||||
|
||||
COURSE_OFFSETS_SEG(course_mario_raceway_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_choco_mountain_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_bowsers_castle_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_banshee_boardwalk_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_yoshi_valley_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_frappe_snowland_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_koopa_troopa_beach_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_royal_raceway_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_luigi_raceway_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_moo_moo_farm_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_toads_turnpike_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_kalimari_desert_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_sherbet_land_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_rainbow_road_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_wario_stadium_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_block_fort_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_skyscraper_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_double_deck_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_dks_jungle_parkway_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(course_big_donut_offsets, 0x09000000)
|
||||
COURSE_OFFSETS_SEG(mario_raceway,course_mario_raceway_offsets)
|
||||
COURSE_OFFSETS_SEG(choco_mountain,course_choco_mountain_offsets)
|
||||
COURSE_OFFSETS_SEG(bowsers_castle,course_bowsers_castle_offsets)
|
||||
COURSE_OFFSETS_SEG(banshee_boardwalk,course_banshee_boardwalk_offsets)
|
||||
COURSE_OFFSETS_SEG(yoshi_valley,course_yoshi_valley_offsets)
|
||||
COURSE_OFFSETS_SEG(frappe_snowland,course_frappe_snowland_offsets)
|
||||
COURSE_OFFSETS_SEG(koopa_troopa_beach,course_koopa_troopa_beach_offsets)
|
||||
COURSE_OFFSETS_SEG(royal_raceway,course_royal_raceway_offsets)
|
||||
COURSE_OFFSETS_SEG(luigi_raceway,course_luigi_raceway_offsets)
|
||||
COURSE_OFFSETS_SEG(moo_moo_farm,course_moo_moo_farm_offsets)
|
||||
COURSE_OFFSETS_SEG(toads_turnpike,course_toads_turnpike_offsets)
|
||||
COURSE_OFFSETS_SEG(kalimari_desert,course_kalimari_desert_offsets)
|
||||
COURSE_OFFSETS_SEG(sherbet_land,course_sherbet_land_offsets)
|
||||
COURSE_OFFSETS_SEG(rainbow_road,course_rainbow_road_offsets)
|
||||
COURSE_OFFSETS_SEG(wario_stadium,course_wario_stadium_offsets)
|
||||
COURSE_OFFSETS_SEG(block_fort,course_block_fort_offsets)
|
||||
COURSE_OFFSETS_SEG(skyscraper,course_skyscraper_offsets)
|
||||
COURSE_OFFSETS_SEG(double_deck,course_double_deck_offsets)
|
||||
COURSE_OFFSETS_SEG(dks_jungle_parkway,course_dks_jungle_parkway_offsets)
|
||||
COURSE_OFFSETS_SEG(big_donut,course_big_donut_offsets)
|
||||
|
||||
/* Segment 0xF Course Geography (0x4 uncompressed) and Segment 0x7 Packed Displaylists */
|
||||
|
||||
|
|
406
progress.py
406
progress.py
|
@ -7,14 +7,13 @@ import os
|
|||
import re
|
||||
|
||||
parser = argparse.ArgumentParser(description="Computes current progress throughout the whole project.")
|
||||
parser.add_argument("format", nargs="?", default="text", choices=["text", "shield-json", "totalBadge", "gameBadge", "audioBadge", "bytesToDecompile", "m2cFuncs", "nonmatchingFuncs"])
|
||||
parser.add_argument("-m", "--matching", dest='matching', action='store_true',
|
||||
help="Output matching progress instead of decompilation progress")
|
||||
parser.add_argument("format", nargs="?", default="text", choices=["text", "verbose", "totalBadge", "gameBadge", "mainBadge", "endingBadge", "racingBadge", "audioBadge", "osBadge", "bytesToDecompile", "globalAsmFuncs", "m2cFuncs", "nonmatchingFuncs"])
|
||||
args = parser.parse_args()
|
||||
|
||||
NON_MATCHING_PATTERN = r"#ifdef\s+NON_MATCHING.*?#pragma\s+GLOBAL_ASM\s*\(\s*\"(.*?)\"\s*\).*?#endif"
|
||||
MIPS_TO_C_FUNC_COUNT_PATTERN = r"#ifdef\s+MIPS_TO_C.*?GLOBAL_ASM\s*\(\s*\"(.*?)\"\s*\).*?#endif"
|
||||
NON_MATCHING_FUNC_COUNT_PATTERN = r"#ifdef\s+NON_MATCHING.*?GLOBAL_ASM\s*\(\s*\"(.*?)\"\s*\).*?#endif"
|
||||
GLOBAL_ASM_FUNC_COUNT_PATTERN = r"GLOBAL_ASM\s*\(\s*\"(.*?)\"\s*\)."
|
||||
|
||||
def GetNonMatchingFunctions(files):
|
||||
functions = []
|
||||
|
@ -41,7 +40,31 @@ def CountNonMatchingFunctions(files):
|
|||
functions += re.findall(NON_MATCHING_FUNC_COUNT_PATTERN, f.read(), re.DOTALL)
|
||||
|
||||
return functions
|
||||
def CountGlobalAsmFunctions(files):
|
||||
functions = []
|
||||
|
||||
for file in files:
|
||||
with open(file) as f:
|
||||
functions += re.findall(GLOBAL_ASM_FUNC_COUNT_PATTERN, f.read(), re.DOTALL)
|
||||
|
||||
return functions
|
||||
|
||||
C_FUNCTION_PATERN_REGEX = r'^(?<!static\s)(?:(\/[*][*!][*]*\n(?:[^/]*\n)+?\s*[*]\/\n)(?:\s*)*?)?(?:\s*UNUSED\s+)?([^\s]+)\s(?:\s|[*])*?([0-9A-Za-z_]+)\s*[(][^)]*[)]\s*{'
|
||||
|
||||
def GetCFunctions(files):
|
||||
functions = []
|
||||
|
||||
for file in files:
|
||||
with open(file) as f:
|
||||
source_code = f.read()
|
||||
|
||||
matches = re.finditer(C_FUNCTION_PATERN_REGEX, source_code, re.MULTILINE)
|
||||
|
||||
for match in matches:
|
||||
function_name = match.group(3)
|
||||
functions.append((file, function_name))
|
||||
|
||||
return functions
|
||||
|
||||
def ReadAllLines(fileName):
|
||||
lineList = list()
|
||||
|
@ -52,7 +75,7 @@ def ReadAllLines(fileName):
|
|||
|
||||
def GetFiles(path, ext):
|
||||
files = []
|
||||
|
||||
|
||||
for r, d, f in os.walk(path):
|
||||
for file in f:
|
||||
if file.endswith(ext):
|
||||
|
@ -60,65 +83,67 @@ def GetFiles(path, ext):
|
|||
|
||||
return files
|
||||
|
||||
nonMatchingFunctions = GetNonMatchingFunctions(GetFiles("src", ".c")) if not args.matching else []
|
||||
TotalMipsToCFunctions = len(CountMipsToCFunctions(GetFiles("src", ".c")) if not args.matching else [])
|
||||
TotalNonMatchingFunctions = len(CountNonMatchingFunctions(GetFiles("src", ".c")) if not args.matching else [])
|
||||
def GetFilesBlackList(path, ext, blacklist=[]):
|
||||
files = []
|
||||
|
||||
mainSegFiles2 = [
|
||||
"asm/non_matchings/code_80004740",
|
||||
"asm/non_matchings/code_80005FD0",
|
||||
"asm/non_matchings/code_8001F980",
|
||||
"asm/non_matchings/player_controller",
|
||||
"asm/non_matchings/hud_renderer",
|
||||
"asm/non_matchings/code_80057C60",
|
||||
"asm/non_matchings/code_8006E9C0",
|
||||
"asm/non_matchings/code_80071F00",
|
||||
"asm/non_matchings/code_80086E70",
|
||||
"asm/non_matchings/code_8008C1D0",
|
||||
"asm/non_matchings/code_80091750",
|
||||
"asm/non_matchings/crash_screen",
|
||||
"asm/non_matchings/menus",
|
||||
]
|
||||
seg2Files2 = [
|
||||
for r, d, f in os.walk(path):
|
||||
d[:] = [dir for dir in d if dir not in blacklist]
|
||||
|
||||
]
|
||||
audioFiles2 = [
|
||||
"asm/non_matchings/audio"
|
||||
]
|
||||
for file in f:
|
||||
if file.endswith(ext):
|
||||
files.append(os.path.join(r, file))
|
||||
|
||||
return files
|
||||
|
||||
def GetFilesWhiteList(path, ext, whitelist=[]):
|
||||
files = []
|
||||
|
||||
for root, dirs, filenames in os.walk(path):
|
||||
if root == path or any(subdir in root for subdir in whitelist):
|
||||
for filename in filenames:
|
||||
if filename.endswith(ext):
|
||||
files.append(os.path.join(root, filename))
|
||||
|
||||
return files
|
||||
|
||||
gameExclusiveDirs=["audio", "os", "ending", "racing"]
|
||||
|
||||
nonMatchingFunctions = GetNonMatchingFunctions(GetFiles("src", ".c"))
|
||||
TotalMipsToCFunctions = len(CountMipsToCFunctions(GetFiles("src", ".c")))
|
||||
TotalNonMatchingFunctions = len(CountNonMatchingFunctions(GetFiles("src", ".c")))
|
||||
TotalGlobalAsmFunctions = len(CountGlobalAsmFunctions(GetFiles("src", ".c")))
|
||||
TotalCFunctions = len(GetCFunctions(GetFilesWhiteList("src", ".c", gameExclusiveDirs)))
|
||||
|
||||
TotalCFunctions -= TotalGlobalAsmFunctions + (TotalGlobalAsmFunctions - TotalNonMatchingFunctions - TotalMipsToCFunctions)
|
||||
|
||||
def GetNonMatchingSize(path):
|
||||
size = 0
|
||||
|
||||
if (path == "main"):
|
||||
for file in mainSegFiles2:
|
||||
size += getData(file)
|
||||
size += getDataBlackList("asm/non_matchings", gameExclusiveDirs)
|
||||
|
||||
elif (path == "seg2"):
|
||||
for file in seg2Files2:
|
||||
size += getData(file)
|
||||
elif (path == "racing"):
|
||||
size += getData("asm/non_matchings/racing")
|
||||
|
||||
elif (path == "ending"):
|
||||
size += getData("asm/non_matchings/ending")
|
||||
|
||||
elif (path == "os"):
|
||||
size = getData("asm/os/func_800CE720.s")
|
||||
size += getData("asm/non_matchings/os")
|
||||
|
||||
elif (path == "audio"):
|
||||
for file in audioFiles2:
|
||||
size += getData(file)
|
||||
|
||||
else: size = getData("asm/non_matchings")
|
||||
size += getData("asm/non_matchings/audio")
|
||||
|
||||
else: size = getData(path)
|
||||
|
||||
return size
|
||||
|
||||
def getData(path):
|
||||
size = 0
|
||||
|
||||
|
||||
asmFiles = GetFiles(path, ".s")
|
||||
|
||||
|
||||
for asmFilePath in asmFiles:
|
||||
#if path == asmFilePath.startswith("audio"):
|
||||
# continue
|
||||
if asmFilePath not in nonMatchingFunctions:
|
||||
asmLines = ReadAllLines(asmFilePath)
|
||||
|
||||
|
@ -128,60 +153,29 @@ def getData(path):
|
|||
|
||||
return size
|
||||
|
||||
def getDataBlackList(path, bl=[]):
|
||||
size = 0
|
||||
|
||||
asmFiles = GetFilesBlackList(path, ".s", bl)
|
||||
|
||||
for asmFilePath in asmFiles:
|
||||
if asmFilePath not in nonMatchingFunctions:
|
||||
asmLines = ReadAllLines(asmFilePath)
|
||||
|
||||
for asmLine in asmLines:
|
||||
if (asmLine.startswith("/*")):
|
||||
size += 4
|
||||
|
||||
return size
|
||||
|
||||
mapFile = ReadAllLines("build/us/mk64.us.map")
|
||||
src = 0
|
||||
mainSeg = 0
|
||||
seg2 = 0
|
||||
segMain = 0
|
||||
segEnding = 0
|
||||
segRacing = 0
|
||||
audio = 0
|
||||
libultra = 0
|
||||
|
||||
mainSegFiles = [
|
||||
"build/us/src/code_800029B0",
|
||||
"build/us/src/code_80004740",
|
||||
"build/us/src/code_80005FD0",
|
||||
"build/us/src/camera",
|
||||
"build/us/src/code_8001F980",
|
||||
"build/us/src/player_controller",
|
||||
"build/us/src/hud_renderer",
|
||||
"build/us/src/code_80057C60",
|
||||
"build/us/src/code_8006E9C0",
|
||||
"build/us/src/code_80071F00",
|
||||
"build/us/src/code_80086E70",
|
||||
"build/us/src/code_8008C1D0",
|
||||
"build/us/src/code_80091750",
|
||||
"build/us/src/code_800AF9B0",
|
||||
"build/us/src/crash_screen",
|
||||
"build/us/src/gbiMacro",
|
||||
"build/us/src/kart_dma",
|
||||
"build/us/src/main",
|
||||
"build/us/src/math_util_2",
|
||||
"build/us/src/profiler",
|
||||
"build/us/src/spawn_players",
|
||||
"build/us/src/staff_ghosts",
|
||||
]
|
||||
seg2Files = [
|
||||
"build/us/src/racing/actors",
|
||||
"build/us/src/racing/actors_extended",
|
||||
"build/us/src/racing/math_util",
|
||||
"build/us/src/racing/memory",
|
||||
"build/us/src/racing/collision",
|
||||
"build/us/src/racing/race_logic",
|
||||
"build/us/src/racing/render_courses",
|
||||
"build/us/src/racing/skybox_and_splitscreen",
|
||||
]
|
||||
segAudioFiles = [
|
||||
"build/us/src/audio/effects",
|
||||
"build/us/src/audio/external",
|
||||
"build/us/src/audio/heap",
|
||||
"build/us/src/audio/load",
|
||||
"build/us/src/audio/playback",
|
||||
"build/us/src/audio/port_eu",
|
||||
"build/us/src/audio/seqplayer",
|
||||
"build/us/src/audio/synthesis",
|
||||
]
|
||||
|
||||
for line in mapFile:
|
||||
lineSplit = list(filter(None, line.split(" ")))
|
||||
|
||||
|
@ -193,121 +187,199 @@ for line in mapFile:
|
|||
if (section == ".text"):
|
||||
if (objFile.startswith("build/us/src")):
|
||||
src += size
|
||||
|
||||
if (objFile.startswith(tuple(mainSegFiles))):
|
||||
mainSeg += size
|
||||
|
||||
if (objFile.startswith(tuple(seg2Files))):
|
||||
seg2 += size
|
||||
if (objFile.startswith("build/us/src") and objFile.count("/") == 3):
|
||||
segMain += size
|
||||
|
||||
if (objFile.startswith("build/us/src/ending")):
|
||||
segEnding += size
|
||||
|
||||
if (objFile.startswith("build/us/src/racing")):
|
||||
segRacing += size
|
||||
|
||||
if (objFile.startswith("build/us/src/os")):
|
||||
libultra += size
|
||||
|
||||
if (objFile.startswith(tuple(segAudioFiles))):
|
||||
if (objFile.startswith("build/us/src/audio")):
|
||||
audio += size
|
||||
|
||||
nonMatchingASM = GetNonMatchingSize("asm/non_matchings")
|
||||
|
||||
nonMatchingMain = GetNonMatchingSize("main")
|
||||
nonMatchingSeg2 = GetNonMatchingSize("seg2")
|
||||
nonMatchingEnding = GetNonMatchingSize("ending")
|
||||
nonMatchingRacing = GetNonMatchingSize("racing")
|
||||
nonMatchingLibultra = GetNonMatchingSize("os")
|
||||
nonMatchingASMAudio = GetNonMatchingSize("audio")
|
||||
nonMatchingAudio = GetNonMatchingSize("audio")
|
||||
|
||||
src -= nonMatchingASM
|
||||
game = segMain + segEnding + segRacing
|
||||
|
||||
decompilable = src + audio + 448 # 448 = OS func_800CE720
|
||||
|
||||
mainSeg += libultra
|
||||
mainSeg -= nonMatchingMain
|
||||
|
||||
seg2 -= nonMatchingSeg2
|
||||
audio -= nonMatchingASMAudio
|
||||
segMain -= nonMatchingMain
|
||||
segEnding -= nonMatchingEnding
|
||||
segRacing -= nonMatchingRacing
|
||||
audio -= nonMatchingAudio
|
||||
libultra -= nonMatchingLibultra
|
||||
|
||||
src -= nonMatchingASM
|
||||
game -= nonMatchingMain + nonMatchingEnding + nonMatchingRacing
|
||||
|
||||
mainSeg_size = 831024
|
||||
seg2_size = 174224
|
||||
# Segment 3 size = 20032
|
||||
mk64Code_size = 1025280
|
||||
# handwritten is likely 4400 bytes which brings us to the grand total of 53248.
|
||||
# for now the total is just a guess. 544 being non_matching funcs.
|
||||
# osSyncPrintf and func_800CE720
|
||||
#libultra non_matching
|
||||
#osSyncPrintf 0x60 96
|
||||
#func_800CE720 0x1C0 448
|
||||
#guPerspectiveF 0x290 656
|
||||
#__osLeoInterrupt 0x880 2176
|
||||
#contramread 0x3B0 944
|
||||
#contramwrite 0x3B0 944
|
||||
decompilable = src
|
||||
|
||||
seg_main_size = 744112
|
||||
seg_ending_size = 20032
|
||||
seg_racing_size = 174224
|
||||
|
||||
#total 0x1490 5264
|
||||
|
||||
libultra_size = 43584 + 5264 # 53248 - 2112 # total - handwritten
|
||||
libultra_size = 48848
|
||||
audio_size = 86912
|
||||
text_size = mk64Code_size - decompilable
|
||||
|
||||
srcPct = 100 * src / mk64Code_size
|
||||
game_code_size = seg_main_size + seg_ending_size + seg_racing_size # 938368
|
||||
total_code_size = seg_main_size + seg_ending_size + seg_racing_size + libultra_size + audio_size # 1074128
|
||||
|
||||
remaining_size = total_code_size - decompilable
|
||||
|
||||
segMainPct = 100 * segMain / seg_main_size
|
||||
segEndingPct = 100 * segEnding / seg_ending_size
|
||||
segRacingPct = 100 * segRacing / seg_racing_size
|
||||
|
||||
libultraPct = 100 * libultra / libultra_size
|
||||
audioPct = 100 * audio / audio_size
|
||||
mainSegPct = 100 * mainSeg / mainSeg_size
|
||||
seg2Pct = 100 * seg2 / seg2_size
|
||||
|
||||
bytesPerHeartPiece = text_size // 80
|
||||
gamePct = 100 * game / game_code_size
|
||||
srcPct = 100 * src / total_code_size
|
||||
|
||||
#if args.format == 'csv':
|
||||
# version = 1
|
||||
# git_object = git.Repo().head.object
|
||||
# timestamp = str(git_object.committed_date)
|
||||
# git_hash = git_object.hexsha
|
||||
def get_string_from_table(num, table):
|
||||
if 0 <= num < len(table):
|
||||
return table[num]
|
||||
else:
|
||||
return "Number out of range"
|
||||
|
||||
# csv_list = [str(version), timestamp, git_hash,
|
||||
# str(text_size), str(mk64Code_size), str(src), str(srcPct),
|
||||
# str(audio), str(audio_size), str(audioPct), str(libultra),
|
||||
# str(libultra_size), str(libultraPct), str(seg2), str(seg2_size),
|
||||
# str(seg2Pct), str(seg3), str(seg3_size), str(seg3Pct),
|
||||
# str(TotalNonMatchingFunctions), str(TotalMipsToCFunctions)]
|
||||
def find_closest_divisible(number, divisor):
|
||||
closest_smaller = number - (number % divisor)
|
||||
closest_larger = closest_smaller + divisor
|
||||
|
||||
# print(",".join(csv_list))
|
||||
if args.format == 'shield-json':
|
||||
# https://shields.io/endpoint
|
||||
print(json.dumps({
|
||||
"schemaVersion": 1,
|
||||
"label": "progress",
|
||||
"message": f"{srcPct:.3g}%",
|
||||
"color": 'yellow',
|
||||
}))
|
||||
elif args.format == 'totalBadge':
|
||||
print(str(round(((mk64Code_size - text_size) / mk64Code_size) * 100, 2))+"%")
|
||||
if abs(number - closest_smaller) < abs(number - closest_larger):
|
||||
return closest_smaller
|
||||
else:
|
||||
return closest_larger
|
||||
|
||||
def center_text(text, total_width, fill_character=" "):
|
||||
empty_spaces = total_width - len(text)
|
||||
left_padding = empty_spaces // 2
|
||||
right_padding = empty_spaces - left_padding
|
||||
centered_text = fill_character * left_padding + text + fill_character * right_padding
|
||||
return centered_text
|
||||
|
||||
def move_character_from_bar(position, total_length, charbase="0", charfill="1"):
|
||||
if position < 0:
|
||||
position = 0
|
||||
elif position > total_length:
|
||||
position = total_length
|
||||
|
||||
line = charfill * total_length
|
||||
line = list(line)
|
||||
line[position] = charbase
|
||||
|
||||
return "".join(line)
|
||||
|
||||
def check_table_cond(cond, total, table):
|
||||
if total > cond:
|
||||
sym = " (V)"
|
||||
elif total == cond:
|
||||
sym = " (~)"
|
||||
else:
|
||||
sym = " (X)"
|
||||
|
||||
return str(table[cond]) + str(sym)
|
||||
|
||||
mkCups = [
|
||||
"Mushroom Cup",
|
||||
"Flower Cup",
|
||||
"Star Cup",
|
||||
"Special Cup",
|
||||
]
|
||||
|
||||
mkCourses = [
|
||||
"Luigi Raceway",
|
||||
"Moo Moo Farm",
|
||||
"Koopa Troopa Beach",
|
||||
"Kalimari Desert",
|
||||
"Toad's Turnpike",
|
||||
"Frappe Snowland",
|
||||
"Choco Mountain",
|
||||
"Mario Raceway",
|
||||
"Wario Stadium",
|
||||
"Sherbet Land",
|
||||
"Royal Raceway",
|
||||
"Bowser's Castle",
|
||||
"D.K.'s Jungle Parkway",
|
||||
"Yoshi Valley",
|
||||
"Banshee Boardwalk",
|
||||
"Rainbow Road",
|
||||
]
|
||||
|
||||
if args.format == 'totalBadge':
|
||||
print(str(round(srcPct, 2))+"%")
|
||||
elif args.format == 'gameBadge':
|
||||
print(str(round((((mk64Code_size - audio_size) - (text_size - audio)) / (mk64Code_size - audio_size)) * 100, 2))+"%")
|
||||
print(str(round(gamePct, 2))+"%")
|
||||
elif args.format == 'mainBadge':
|
||||
print(str(round(segMainPct, 2))+"%")
|
||||
elif args.format == 'endingBadge':
|
||||
print(str(round(segEndingPct, 2))+"%")
|
||||
elif args.format == 'racingBadge':
|
||||
print(str(round(segRacingPct, 2))+"%")
|
||||
elif args.format == 'audioBadge':
|
||||
print(str(round(audioPct, 2))+"%")
|
||||
elif args.format == 'osBadge':
|
||||
print(str(round(libultraPct, 2))+"%")
|
||||
elif args.format == 'bytesToDecompile':
|
||||
print(str(text_size)+" of "+str(mk64Code_size)+"\n")
|
||||
print(str(remaining_size)+" of "+str(total_code_size)+"\n")
|
||||
elif args.format == 'globalAsmFuncs':
|
||||
print(str(TotalGlobalAsmFunctions))
|
||||
elif args.format == 'm2cFuncs':
|
||||
print(str(TotalMipsToCFunctions))
|
||||
elif args.format == 'nonmatchingFuncs':
|
||||
print(str(TotalNonMatchingFunctions))
|
||||
elif args.format == 'text':
|
||||
adjective = "decompiled" if not args.matching else "matched"
|
||||
bytesPerTotalLaps = total_code_size // 47
|
||||
srcDivNear = find_closest_divisible(src, 49)
|
||||
lapTotalCounts = int(srcDivNear / bytesPerTotalLaps)
|
||||
curLapProgress = int(((srcDivNear % bytesPerTotalLaps) * 66) / (bytesPerTotalLaps))
|
||||
curLapCount = int((lapTotalCounts % 3) + 1)
|
||||
curCourseCount = int(lapTotalCounts / 3)
|
||||
curCupCount = int((lapTotalCounts / 12) % 12)
|
||||
|
||||
print("Total decompilable bytes remaining: "+str(text_size)+" out of "+str(mk64Code_size)+"\n")
|
||||
print(str(TotalMipsToCFunctions)+" Mips to C functions and")
|
||||
print(str(TotalNonMatchingFunctions)+" non-matching functions remain to decomp."+"\n")
|
||||
print(str(src) + " bytes " + adjective + " in game code " + str(srcPct) + "%\n")
|
||||
print(str(audio) + "/" + str(audio_size) + " bytes " + adjective + " in audio " + str(audioPct) + "%\n")
|
||||
print(str(libultra) + "/" + str(libultra_size) + " bytes " + adjective + " in libultra " + str(libultraPct) + "%\n")
|
||||
print(str(mainSeg) + "/" + str(mainSeg_size) + " bytes " + adjective + " in mainSeg " + str(mainSegPct) + "%\n")
|
||||
print(str(seg2) + "/" + str(seg2_size) + " bytes " + adjective + " in seg2 " + str(seg2Pct) + "%\n")
|
||||
print(str(20032) + "/" + str(20032) + " bytes " + adjective + " in seg3 " + str(100.0) + "%\n")
|
||||
print("------------------------------------\n")
|
||||
print(str(center_text("", 67, "=")))
|
||||
print(str(center_text(" All Cups (Decompilation) ", 67)))
|
||||
print(str(center_text(" " + str(round(srcPct, 2))+"% Complete ", 67, "-")))
|
||||
print(str(center_text(" # Decompiled functions: " + str(TotalCFunctions) + " ", 67)))
|
||||
print(str(center_text(" # GLOBAL_ASM remaining: " + str(TotalGlobalAsmFunctions) + " ", 67)))
|
||||
print(str(center_text(" # NON_MATCHING remaining: " + str(TotalNonMatchingFunctions) + " ", 67)))
|
||||
print(str(center_text(" # MIPS_TO_C remaining: " + str(TotalMipsToCFunctions) + " ", 67)))
|
||||
print(str(center_text(" Game Status ", 67, "-")))
|
||||
|
||||
heartPieces = int(src / bytesPerHeartPiece)
|
||||
rupees = int(((src % bytesPerHeartPiece) * 100) / bytesPerHeartPiece)
|
||||
|
||||
if (rupees > 0):
|
||||
print("You have " + str(heartPieces) + "/80 GP Wins and " + str(rupees) + " bronze cup(s).\n")
|
||||
if TotalGlobalAsmFunctions > 0:
|
||||
print(str(center_text(check_table_cond(0, curCupCount, mkCups) + " - " + check_table_cond(1, curCupCount, mkCups), 67)))
|
||||
print(str(center_text(check_table_cond(2, curCupCount, mkCups) + " - " + check_table_cond(3, curCupCount, mkCups), 67)))
|
||||
print(str(center_text(" Lap Progress Bar and Race Status", 67, "-")))
|
||||
print(str(move_character_from_bar(curLapProgress, 67, "O", "-")))
|
||||
print(str(center_text("We are in " + str(get_string_from_table(curCupCount, mkCups)) + " racing at " + str(get_string_from_table(curCourseCount, mkCourses)) + " (Lap " + str(curLapCount) + "/3)", 67)))
|
||||
else:
|
||||
print("You have " + str(heartPieces) + "/80 GP Wins.\n")
|
||||
print(str(center_text("Mushroom Cup (V) - Flower Cup (V)", 67)))
|
||||
print(str(center_text("Star Cup (V) - Special Cup (V)", 67)))
|
||||
print(str(center_text("We finished All Cups! We got all 4 Gold Cups!", 67)))
|
||||
|
||||
print(str(center_text("", 67, "=")))
|
||||
elif args.format == 'verbose':
|
||||
print("Total decompilable bytes remaining: "+str(remaining_size)+" out of "+str(total_code_size)+"\n")
|
||||
print(str(src) + "/" + str(total_code_size) + " bytes " + "decompiled" + " in total code " + str(srcPct) + "%\n")
|
||||
print(str(TotalCFunctions) + " decompiled functions - " +str(TotalGlobalAsmFunctions)+" GLOBAL_ASM functions remaining."+"\n")
|
||||
print(str(TotalNonMatchingFunctions)+" NON_MATCHING functions - " + str(TotalMipsToCFunctions) + " MIPS_TO_C functions." +"\n")
|
||||
print("------------------------------------\n")
|
||||
print(str(segMain) + "/" + str(seg_main_size) + " bytes " + "decompiled" + " in segMain " + str(segMainPct) + "%\n")
|
||||
print(str(segEnding) + "/" + str(seg_ending_size) + " bytes " + "decompiled" + " in segEnding " + str(segEndingPct) + "%\n")
|
||||
print(str(segRacing) + "/" + str(seg_racing_size) + " bytes " + "decompiled" + " in segRacing " + str(segRacingPct) + "%\n")
|
||||
print(str(game) + "/" + str(game_code_size) + " bytes " + "decompiled" + " in game code " + str(gamePct) + "%\n")
|
||||
print("------------------------------------\n")
|
||||
print(str(audio) + "/" + str(audio_size) + " bytes " + "decompiled" + " in audio " + str(audioPct) + "%\n")
|
||||
print(str(libultra) + "/" + str(libultra_size) + " bytes " + "decompiled" + " in libultra " + str(libultraPct) + "%\n")
|
||||
else:
|
||||
print("Unknown format argument: " + args.format)
|
||||
|
|
|
@ -634,9 +634,8 @@ void func_802AC114(Vec3f pos1, f32 boundingBoxSize, Vec3f pos2, UNUSED f32 unk)
|
|||
}
|
||||
}
|
||||
|
||||
// m2c removed because no need to match.
|
||||
// UNUSED mk64_surface_map_ram *func_802AC22C(void *arg)
|
||||
GLOBAL_ASM("asm/unused/collision/func_802AC22C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/racing/collision/func_802AC22C.s")
|
||||
|
||||
s32 is_colliding_with_drivable_surface(Collision *collision, f32 boundingBoxSize, f32 x1, f32 y1, f32 z1, u16 index, f32 posX, f32 posY, f32 posZ) {
|
||||
mk64_surface_map_ram *tile = &gSurfaceMap[index];
|
||||
|
|
|
@ -33,7 +33,7 @@ UNUSED s32 func_802B4F60(UNUSED s32 arg0, Vec3f arg1, UNUSED s32 arg2, UNUSED f3
|
|||
return 1;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/unused/math_util/func_802B4F60.s")
|
||||
GLOBAL_ASM("asm/non_matchings/racing/math_util/func_802B4F60.s")
|
||||
#endif
|
||||
|
||||
UNUSED void func_802B4FF0() {
|
||||
|
@ -423,7 +423,7 @@ UNUSED void func_802B5B14(Vec3f arg0, Vec3s arg1) {
|
|||
arg0->unk8 = (f32) ((sp70 * sp40) + ((sp3C * sp68) + (sp40 * sp6C)));
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/unused/math_util/func_802B5B14.s")
|
||||
GLOBAL_ASM("asm/non_matchings/racing/math_util/func_802B5B14.s")
|
||||
#endif
|
||||
|
||||
void func_802B5CAC(s16 arg0, s16 arg1, Vec3f arg2) {
|
||||
|
@ -1198,4 +1198,4 @@ UNUSED void func_802B8414(uintptr_t arg0, Mat4 arg1, s16 arg2, s16 arg3, s32 arg
|
|||
}
|
||||
|
||||
// unused
|
||||
GLOBAL_ASM("asm/unused/math_util/func_802B8614.s")
|
||||
GLOBAL_ASM("asm/non_matchings/racing/math_util/func_802B8614.s")
|
||||
|
|
|
@ -872,9 +872,6 @@ void func_8028F970(void) {
|
|||
}
|
||||
}
|
||||
}
|
||||
//#else
|
||||
//GLOBAL_ASM("asm/non_matchings/race_logic/func_8028F970.s")
|
||||
//#endif
|
||||
|
||||
void func_8028FBD4(void) {
|
||||
gMenuSelectionFromQuit = START_MENU_FROM_QUIT;
|
||||
|
|
Loading…
Reference in New Issue