├── .gitignore ├── .gitmodules ├── PAPER_MARIO.u.yaml ├── README.md ├── makefile └── papermario ├── Makefile ├── Makefile.split ├── PAPERMARIO.ld ├── PAPERMARIO.s ├── asm ├── CODE_1000_len_100004.s ├── CODE_100e30_len_17e0.s ├── CODE_102610_len_2000.s ├── CODE_104610_len_2000.s ├── CODE_106610_len_2000.s ├── CODE_108610_len_2000.s ├── CODE_1164b8_len_2000.s ├── CODE_131340_len_2000.s ├── CODE_133340_len_2000.s ├── CODE_135340_len_ba0.s ├── CODE_163400_len_4000.s ├── CODE_167400_len_4000.s ├── CODE_2495f0_len_2000.s ├── CODE_3169f0_len_80.s ├── CODE_316a70_len_190.s ├── CODE_316f30_len_f0.s ├── CODE_7e0e80_len_2000.s ├── CODE_7e2e80_len_2000.s ├── CODE_bbdd0_len_2000.s ├── CODE_bddd0_len_2000.s ├── CODE_bfdd0_len_2000.s ├── CODE_c1dd0_len_2000.s ├── CODE_c3dd0_len_2000.s ├── CODE_c5dd0_len_2000.s ├── CODE_c7dd0_len_2000.s ├── CODE_c9dd0_len_2000.s ├── CODE_cbdd0_len_2000.s ├── CODE_cddd0_len_2000.s ├── CODE_cfdd0_len_2000.s ├── CODE_d1dd0_len_2000.s ├── CODE_d3dd0_len_2000.s ├── CODE_d5dd0_len_2000.s ├── CODE_d7dd0_len_2000.s ├── CODE_d9dd0_len_2000.s ├── CODE_dbdd0_len_2000.s ├── CODE_dddd0_len_2000.s ├── CODE_dfdd0_len_2000.s ├── CODE_e20eb0_len_9c0.s ├── CODE_e23260_len_480.s ├── CODE_e236e0_len_960.s ├── CODE_e79b0_len_2000.s ├── CODE_e99b0_len_2000.s ├── CODE_eb9b0_len_2000.s ├── CODE_ed9b0_len_2000.s ├── CODE_ef9b0_len_2000.s ├── CODE_f19b0_len_2000.s ├── CODE_f39b0_len_2000.s ├── CODE_f59b0_len_2000.s ├── CODE_f79b0_len_2000.s ├── CODE_f99b0_len_2000.s ├── CODE_fb9b0_len_2000.s ├── CODE_fd9b0_len_1480.s ├── CODE_fee30_len_2000.s └── boot.s ├── build └── sm64.map ├── geo_commands.inc ├── globals.inc ├── macros.inc └── models └── collision.mtl /.gitignore: -------------------------------------------------------------------------------- 1 | *.z64 2 | n64split 3 | *.bin 4 | papermario/COMPRESSED.* 5 | papermario/SOUND.* 6 | papermario/bin 7 | papermario/audio 8 | .vscode/ -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "n64splitter"] 2 | path = n64splitter 3 | url = https://github.com/RetroReversing/sm64tools.git 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Generate the .bin files by splitting the ROM 2 | 3 | You will need *libcapstone* and *libyaml* to compile n64split, which is used in this step 4 | 5 | Place "Paper Mario (U) [!].z64" in the root directory, and rename it to "baserom.z64". 6 | 7 | Then, run make to generate n64split and a split ROM. 8 | -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | N64SPLIT := ./n64splitter/bin/n64split 2 | INPUT := baserom.z64 3 | 4 | n64split: 5 | mkdir -p ./n64splitter/bin && make -C n64splitter 6 | split: n64split 7 | $(N64SPLIT) -v -o papermario -c PAPER_MARIO.u.yaml $(INPUT) 8 | 9 | default: split 10 | -------------------------------------------------------------------------------- /papermario/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile to rebuild SM64 split image 2 | 3 | ################ Target Executable and Sources ############### 4 | 5 | # BUILD_DIR is location where all build artifacts are placed 6 | BUILD_DIR = build 7 | 8 | ##################### Compiler Options ####################### 9 | CROSS = mipsel-elf- 10 | AS = $(CROSS)as 11 | CC = $(CROSS)gcc 12 | LD = $(CROSS)ld 13 | OBJDUMP = $(CROSS)objdump 14 | OBJCOPY = $(CROSS)objcopy 15 | 16 | ASFLAGS = -EB -mtune=vr4300 -march=vr4300 17 | CFLAGS = -Wall -O2 -mtune=vr4300 -march=vr4300 -G 0 -c 18 | LDFLAGS = -T $(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.map 19 | 20 | ####################### Other Tools ######################### 21 | 22 | # N64 tools 23 | TOOLS_DIR = ../tools 24 | MIO0TOOL = $(TOOLS_DIR)/mio0 25 | N64CKSUM = $(TOOLS_DIR)/n64cksum 26 | N64GRAPHICS = $(TOOLS_DIR)/n64graphics 27 | EMULATOR = mupen64plus 28 | EMU_FLAGS = --noosd 29 | LOADER = loader64 30 | LOADER_FLAGS = -vwf 31 | 32 | FixPath = $(subst /,\,$1) 33 | 34 | ######################## Targets ############################# 35 | 36 | default: all 37 | 38 | # file dependencies generated by splitter 39 | MAKEFILE_SPLIT = Makefile.split 40 | include $(MAKEFILE_SPLIT) 41 | 42 | all: $(TARGET).z64 43 | 44 | clean: 45 | del /Q $(call FixPath,$(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).o $(BUILD_DIR)/$(TARGET).bin $(BUILD_DIR)/$(TARGET).map $(TARGET).z64) 46 | 47 | $(MIO0_DIR)/%.mio0: $(MIO0_DIR)/%.bin 48 | $(MIO0TOOL) $< $@ 49 | 50 | $(BUILD_DIR): 51 | mkdir $(BUILD_DIR) 52 | 53 | $(BUILD_DIR)/$(TARGET).o: $(TARGET).s Makefile $(MAKEFILE_SPLIT) $(MIO0_FILES) $(LEVEL_FILES) $(MUSIC_FILES) | $(BUILD_DIR) 54 | $(AS) $(ASFLAGS) -o $@ $< 55 | 56 | $(BUILD_DIR)/%.o: %.c Makefile.as | $(BUILD_DIR) 57 | $(CC) $(CFLAGS) -o $@ $< 58 | 59 | $(BUILD_DIR)/$(TARGET).elf: $(BUILD_DIR)/$(TARGET).o $(LD_SCRIPT) 60 | $(LD) $(LDFLAGS) -o $@ $< $(LIBS) 61 | 62 | $(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).elf 63 | $(OBJCOPY) $< $@ -O binary 64 | 65 | # final z64 updates checksum 66 | $(TARGET).z64: $(BUILD_DIR)/$(TARGET).bin 67 | $(N64CKSUM) $< $@ 68 | 69 | $(BUILD_DIR)/$(TARGET).hex: $(TARGET).z64 70 | xxd $< > $@ 71 | 72 | $(BUILD_DIR)/$(TARGET).objdump: $(BUILD_DIR)/$(TARGET).elf 73 | $(OBJDUMP) -D $< > $@ 74 | 75 | test: $(TARGET).z64 76 | $(EMULATOR) $(EMU_FLAGS) $< 77 | 78 | load: $(TARGET).z64 79 | $(LOADER) $(LOADER_FLAGS) $< 80 | 81 | .PHONY: all clean default diff test 82 | -------------------------------------------------------------------------------- /papermario/Makefile.split: -------------------------------------------------------------------------------- 1 | TARGET = PAPERMARIO 2 | LD_SCRIPT = $(TARGET).ld 3 | MIO0_DIR = bin 4 | TEXTURE_DIR = textures 5 | GEO_DIR = geo 6 | LEVEL_DIR = levels 7 | 8 | MUSIC_DIR = music 9 | 10 | 11 | 12 | MIO0_FILES = 13 | 14 | LEVEL_FILES = 15 | 16 | MUSIC_FILES = -------------------------------------------------------------------------------- /papermario/PAPERMARIO.ld: -------------------------------------------------------------------------------- 1 | /* Paper Mario (U) [!] linker script 2 | * generated by n64split v0.4a - N64 ROM splitter */ 3 | 4 | OUTPUT_FORMAT ("elf32-bigmips", "elf32-bigmips", "elf32-littlemips") 5 | OUTPUT_ARCH (mips) 6 | 7 | SECTIONS 8 | { 9 | /* header and boot */ 10 | .header 0x0 : AT(0x0) { 11 | * (.header); 12 | * (.boot); 13 | } 14 | 15 | /* load MIO0 and level data at 0x800000 */ 16 | .rodata 0x800000 : { 17 | FILL (0x01) /* fill unused with 0x01 */ 18 | * (.mio0); 19 | * (.rodata); 20 | * (.data); 21 | * (.MIPS.abiflags); 22 | . = ALIGN(0x10); 23 | } 24 | 25 | /* use segmented addressing for behaviors */ 26 | .behavior 0x13000000 : AT( LOADADDR(.rodata) + SIZEOF(.rodata) ) { 27 | FILL (0x01) /* fill unused with 0x01 */ 28 | * (.behavior); 29 | behavior_length = . - 0x13000000; 30 | /* default 4MB data (12MB ROM) */ 31 | . = 0x400000 - SIZEOF(.rodata); 32 | } 33 | __load_behavior_data = LOADADDR(.behavior); 34 | __load_behavior_data_end = LOADADDR(.behavior) + behavior_length; 35 | 36 | /* 0x00000000 000040-000B70 [B30] */ 37 | .text00000000 0x00000000 : AT(0x000040) { 38 | * (.text00000000); 39 | } 40 | 41 | /* 0x001256D0 0BBDD0-0BDDD0 [2000] */ 42 | .text001256D0 0x001256D0 : AT(0x0BBDD0) { 43 | * (.text001256D0); 44 | } 45 | 46 | /* 0x001276D0 0BDDD0-0BFDD0 [2000] */ 47 | .text001276D0 0x001276D0 : AT(0x0BDDD0) { 48 | * (.text001276D0); 49 | } 50 | 51 | /* 0x001296D0 0BFDD0-0C1DD0 [2000] */ 52 | .text001296D0 0x001296D0 : AT(0x0BFDD0) { 53 | * (.text001296D0); 54 | } 55 | 56 | /* 0x0012B6D0 0C1DD0-0C3DD0 [2000] */ 57 | .text0012B6D0 0x0012B6D0 : AT(0x0C1DD0) { 58 | * (.text0012B6D0); 59 | } 60 | 61 | /* 0x0012D6D0 0C3DD0-0C5DD0 [2000] */ 62 | .text0012D6D0 0x0012D6D0 : AT(0x0C3DD0) { 63 | * (.text0012D6D0); 64 | } 65 | 66 | /* 0x0012F6D0 0C5DD0-0C7DD0 [2000] */ 67 | .text0012F6D0 0x0012F6D0 : AT(0x0C5DD0) { 68 | * (.text0012F6D0); 69 | } 70 | 71 | /* 0x001316D0 0C7DD0-0C9DD0 [2000] */ 72 | .text001316D0 0x001316D0 : AT(0x0C7DD0) { 73 | * (.text001316D0); 74 | } 75 | 76 | /* 0x001336D0 0C9DD0-0CBDD0 [2000] */ 77 | .text001336D0 0x001336D0 : AT(0x0C9DD0) { 78 | * (.text001336D0); 79 | } 80 | 81 | /* 0x001356D0 0CBDD0-0CDDD0 [2000] */ 82 | .text001356D0 0x001356D0 : AT(0x0CBDD0) { 83 | * (.text001356D0); 84 | } 85 | 86 | /* 0x001376D0 0CDDD0-0CFDD0 [2000] */ 87 | .text001376D0 0x001376D0 : AT(0x0CDDD0) { 88 | * (.text001376D0); 89 | } 90 | 91 | /* 0x001396D0 0CFDD0-0D1DD0 [2000] */ 92 | .text001396D0 0x001396D0 : AT(0x0CFDD0) { 93 | * (.text001396D0); 94 | } 95 | 96 | /* 0x0013B6D0 0D1DD0-0D3DD0 [2000] */ 97 | .text0013B6D0 0x0013B6D0 : AT(0x0D1DD0) { 98 | * (.text0013B6D0); 99 | } 100 | 101 | /* 0x0013D6D0 0D3DD0-0D5DD0 [2000] */ 102 | .text0013D6D0 0x0013D6D0 : AT(0x0D3DD0) { 103 | * (.text0013D6D0); 104 | } 105 | 106 | /* 0x0013F6D0 0D5DD0-0D7DD0 [2000] */ 107 | .text0013F6D0 0x0013F6D0 : AT(0x0D5DD0) { 108 | * (.text0013F6D0); 109 | } 110 | 111 | /* 0x001416D0 0D7DD0-0D9DD0 [2000] */ 112 | .text001416D0 0x001416D0 : AT(0x0D7DD0) { 113 | * (.text001416D0); 114 | } 115 | 116 | /* 0x001436D0 0D9DD0-0DBDD0 [2000] */ 117 | .text001436D0 0x001436D0 : AT(0x0D9DD0) { 118 | * (.text001436D0); 119 | } 120 | 121 | /* 0x001456D0 0DBDD0-0DDDD0 [2000] */ 122 | .text001456D0 0x001456D0 : AT(0x0DBDD0) { 123 | * (.text001456D0); 124 | } 125 | 126 | /* 0x001476D0 0DDDD0-0DFDD0 [2000] */ 127 | .text001476D0 0x001476D0 : AT(0x0DDDD0) { 128 | * (.text001476D0); 129 | } 130 | 131 | /* 0x001496D0 0DFDD0-0E1DD0 [2000] */ 132 | .text001496D0 0x001496D0 : AT(0x0DFDD0) { 133 | * (.text001496D0); 134 | } 135 | 136 | /* 0x002C3000 0E79B0-0E99B0 [2000] */ 137 | .text002C3000 0x002C3000 : AT(0x0E79B0) { 138 | * (.text002C3000); 139 | } 140 | 141 | /* 0x002C5000 0E99B0-0EB9B0 [2000] */ 142 | .text002C5000 0x002C5000 : AT(0x0E99B0) { 143 | * (.text002C5000); 144 | } 145 | 146 | /* 0x002C7000 0EB9B0-0ED9B0 [2000] */ 147 | .text002C7000 0x002C7000 : AT(0x0EB9B0) { 148 | * (.text002C7000); 149 | } 150 | 151 | /* 0x002C9000 0ED9B0-0EF9B0 [2000] */ 152 | .text002C9000 0x002C9000 : AT(0x0ED9B0) { 153 | * (.text002C9000); 154 | } 155 | 156 | /* 0x002CB000 0EF9B0-0F19B0 [2000] */ 157 | .text002CB000 0x002CB000 : AT(0x0EF9B0) { 158 | * (.text002CB000); 159 | } 160 | 161 | /* 0x002CD000 0F19B0-0F39B0 [2000] */ 162 | .text002CD000 0x002CD000 : AT(0x0F19B0) { 163 | * (.text002CD000); 164 | } 165 | 166 | /* 0x002CF000 0F39B0-0F59B0 [2000] */ 167 | .text002CF000 0x002CF000 : AT(0x0F39B0) { 168 | * (.text002CF000); 169 | } 170 | 171 | /* 0x002D1000 0F59B0-0F79B0 [2000] */ 172 | .text002D1000 0x002D1000 : AT(0x0F59B0) { 173 | * (.text002D1000); 174 | } 175 | 176 | /* 0x002D3000 0F79B0-0F99B0 [2000] */ 177 | .text002D3000 0x002D3000 : AT(0x0F79B0) { 178 | * (.text002D3000); 179 | } 180 | 181 | /* 0x002D5000 0F99B0-0FB9B0 [2000] */ 182 | .text002D5000 0x002D5000 : AT(0x0F99B0) { 183 | * (.text002D5000); 184 | } 185 | 186 | /* 0x002D7000 0FB9B0-0FD9B0 [2000] */ 187 | .text002D7000 0x002D7000 : AT(0x0FB9B0) { 188 | * (.text002D7000); 189 | } 190 | 191 | /* 0x002D9000 0FD9B0-0FEE30 [1480] */ 192 | .text002D9000 0x002D9000 : AT(0x0FD9B0) { 193 | * (.text002D9000); 194 | } 195 | 196 | /* 0x002DBD40 0FEE30-100E30 [2000] */ 197 | .text002DBD40 0x002DBD40 : AT(0x0FEE30) { 198 | * (.text002DBD40); 199 | } 200 | 201 | /* 0x002DDD40 100E30-102610 [17E0] */ 202 | .text002DDD40 0x002DDD40 : AT(0x100E30) { 203 | * (.text002DDD40); 204 | } 205 | 206 | /* 0x002E0D90 102610-104610 [2000] */ 207 | .text002E0D90 0x002E0D90 : AT(0x102610) { 208 | * (.text002E0D90); 209 | } 210 | 211 | /* 0x002E2D90 104610-106610 [2000] */ 212 | .text002E2D90 0x002E2D90 : AT(0x104610) { 213 | * (.text002E2D90); 214 | } 215 | 216 | /* 0x002E4D90 106610-108610 [2000] */ 217 | .text002E4D90 0x002E4D90 : AT(0x106610) { 218 | * (.text002E4D90); 219 | } 220 | 221 | /* 0x002E6D90 108610-10A610 [2000] */ 222 | .text002E6D90 0x002E6D90 : AT(0x108610) { 223 | * (.text002E6D90); 224 | } 225 | 226 | /* 0x00242000 135340-135EE0 [BA0] */ 227 | .text00242000 0x00242000 : AT(0x135340) { 228 | * (.text00242000); 229 | } 230 | 231 | /* 0x00242BA0 163400-167400 [4000] */ 232 | .text00242BA0 0x00242BA0 : AT(0x163400) { 233 | * (.text00242BA0); 234 | } 235 | 236 | /* 0x00246BA0 167400-16B400 [4000] */ 237 | .text00246BA0 0x00246BA0 : AT(0x167400) { 238 | * (.text00246BA0); 239 | } 240 | 241 | /* 0x002ADBE0 2495F0-24B5F0 [2000] */ 242 | .text002ADBE0 0x002ADBE0 : AT(0x2495F0) { 243 | * (.text002ADBE0); 244 | } 245 | 246 | /* 0x00200000 3169F0-316A70 [80] */ 247 | .text00200000 0x00200000 : AT(0x3169F0) { 248 | * (.text00200000); 249 | } 250 | 251 | /* 0x00200080 316A70-316C00 [190] */ 252 | .text00200080 0x00200080 : AT(0x316A70) { 253 | * (.text00200080); 254 | } 255 | 256 | /* 0x002B2000 316F30-317020 [F0] */ 257 | .text002B2000 0x002B2000 : AT(0x316F30) { 258 | * (.text002B2000); 259 | } 260 | 261 | /* 0x00280000 7E0E80-7E2E80 [2000] */ 262 | .text00280000 0x00280000 : AT(0x7E0E80) { 263 | * (.text00280000); 264 | } 265 | 266 | /* 0x00282000 7E2E80-7E4E80 [2000] */ 267 | .text00282000 0x00282000 : AT(0x7E2E80) { 268 | * (.text00282000); 269 | } 270 | 271 | /* 0x002B7000 E20EB0-E21870 [9C0] */ 272 | .text002B7000 0x002B7000 : AT(0xE20EB0) { 273 | * (.text002B7000); 274 | } 275 | 276 | /* 0x002B6000 E23260-E236E0 [480] */ 277 | .text002B6000 0x002B6000 : AT(0xE23260) { 278 | * (.text002B6000); 279 | } 280 | 281 | } 282 | -------------------------------------------------------------------------------- /papermario/asm/CODE_135340_len_ba0.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text00242000, "ax" 3 | 4 | /* 135340 00242000 0000003C */ dsll32 $zero, $zero, 0 5 | /* 135344 00242004 8023E440 */ lb $v1, -0x1bc0($at) 6 | /* 135348 00242008 8023E5C0 */ lb $v1, -0x1a40($at) 7 | /* 13534C 0024200C 00000003 */ sra $zero, $zero, 0 8 | /* 135350 00242010 00000000 */ nop 9 | /* 135354 00242014 00000008 */ jr $zero 10 | /* 135358 00242018 00000013 */ mtlo $zero 11 | /* 13535C 0024201C 00000030 */ tge $zero, $zero 12 | /* 135360 00242020 00000010 */ mfhi $zero 13 | /* 135364 00242024 00000004 */ sllv $zero, $zero, $zero 14 | /* 135368 00242028 00000002 */ srl $zero, $zero, 0 15 | /* 13536C 0024202C 0000003C */ dsll32 $zero, $zero, 0 16 | /* 135370 00242030 8023E5E0 */ lb $v1, -0x1a20($at) 17 | /* 135374 00242034 8023E760 */ lb $v1, -0x18a0($at) 18 | /* 135378 00242038 00000003 */ sra $zero, $zero, 0 19 | /* 13537C 0024203C 00000000 */ nop 20 | /* 135380 00242040 00000008 */ jr $zero 21 | /* 135384 00242044 00000013 */ mtlo $zero 22 | /* 135388 00242048 00000030 */ tge $zero, $zero 23 | /* 13538C 0024204C 00000010 */ mfhi $zero 24 | /* 135390 00242050 00000004 */ sllv $zero, $zero, $zero 25 | /* 135394 00242054 00000002 */ srl $zero, $zero, 0 26 | /* 135398 00242058 0000003C */ dsll32 $zero, $zero, 0 27 | /* 13539C 0024205C 8023E780 */ lb $v1, -0x1880($at) 28 | /* 1353A0 00242060 8023E900 */ lb $v1, -0x1700($at) 29 | /* 1353A4 00242064 00000003 */ sra $zero, $zero, 0 30 | /* 1353A8 00242068 00000000 */ nop 31 | /* 1353AC 0024206C 00000008 */ jr $zero 32 | /* 1353B0 00242070 00000013 */ mtlo $zero 33 | /* 1353B4 00242074 00000030 */ tge $zero, $zero 34 | /* 1353B8 00242078 00000010 */ mfhi $zero 35 | /* 1353BC 0024207C 00000004 */ sllv $zero, $zero, $zero 36 | /* 1353C0 00242080 00000002 */ srl $zero, $zero, 0 37 | /* 1353C4 00242084 0000003C */ dsll32 $zero, $zero, 0 38 | /* 1353C8 00242088 8023E920 */ lb $v1, -0x16e0($at) 39 | /* 1353CC 0024208C 8023EAA0 */ lb $v1, -0x1560($at) 40 | /* 1353D0 00242090 00000003 */ sra $zero, $zero, 0 41 | /* 1353D4 00242094 00000000 */ nop 42 | /* 1353D8 00242098 00000008 */ jr $zero 43 | /* 1353DC 0024209C 00000013 */ mtlo $zero 44 | /* 1353E0 002420A0 00000030 */ tge $zero, $zero 45 | /* 1353E4 002420A4 00000010 */ mfhi $zero 46 | /* 1353E8 002420A8 00000004 */ sllv $zero, $zero, $zero 47 | /* 1353EC 002420AC 00000002 */ srl $zero, $zero, 0 48 | /* 1353F0 002420B0 0000003C */ dsll32 $zero, $zero, 0 49 | /* 1353F4 002420B4 8023EAC0 */ lb $v1, -0x1540($at) 50 | /* 1353F8 002420B8 8023EC40 */ lb $v1, -0x13c0($at) 51 | /* 1353FC 002420BC 00000003 */ sra $zero, $zero, 0 52 | /* 135400 002420C0 00000000 */ nop 53 | /* 135404 002420C4 00000008 */ jr $zero 54 | /* 135408 002420C8 00000013 */ mtlo $zero 55 | /* 13540C 002420CC 00000030 */ tge $zero, $zero 56 | /* 135410 002420D0 00000010 */ mfhi $zero 57 | /* 135414 002420D4 00000004 */ sllv $zero, $zero, $zero 58 | /* 135418 002420D8 00000002 */ srl $zero, $zero, 0 59 | /* 13541C 002420DC 0000003C */ dsll32 $zero, $zero, 0 60 | /* 135420 002420E0 8023EC60 */ lb $v1, -0x13a0($at) 61 | /* 135424 002420E4 8023EDE0 */ lb $v1, -0x1220($at) 62 | /* 135428 002420E8 00000003 */ sra $zero, $zero, 0 63 | /* 13542C 002420EC 00000000 */ nop 64 | /* 135430 002420F0 00000008 */ jr $zero 65 | /* 135434 002420F4 00000013 */ mtlo $zero 66 | /* 135438 002420F8 00000008 */ jr $zero 67 | /* 13543C 002420FC 00000008 */ jr $zero 68 | /* 135440 00242100 00000004 */ sllv $zero, $zero, $zero 69 | /* 135444 00242104 00000002 */ srl $zero, $zero, 0 70 | /* 135448 00242108 0000003C */ dsll32 $zero, $zero, 0 71 | /* 13544C 0024210C 8023EE00 */ lb $v1, -0x1200($at) 72 | /* 135450 00242110 8023EE20 */ lb $v1, -0x11e0($at) 73 | /* 135454 00242114 00000003 */ sra $zero, $zero, 0 74 | /* 135458 00242118 00000000 */ nop 75 | /* 13545C 0024211C 00000008 */ jr $zero 76 | /* 135460 00242120 00000013 */ mtlo $zero 77 | /* 135464 00242124 00000008 */ jr $zero 78 | /* 135468 00242128 00000008 */ jr $zero 79 | /* 13546C 0024212C 00000004 */ sllv $zero, $zero, $zero 80 | /* 135470 00242130 00000002 */ srl $zero, $zero, 0 81 | /* 135474 00242134 0000003C */ dsll32 $zero, $zero, 0 82 | /* 135478 00242138 8023EE40 */ lb $v1, -0x11c0($at) 83 | /* 13547C 0024213C 8023EE60 */ lb $v1, -0x11a0($at) 84 | /* 135480 00242140 00000003 */ sra $zero, $zero, 0 85 | /* 135484 00242144 00000000 */ nop 86 | /* 135488 00242148 00000008 */ jr $zero 87 | /* 13548C 0024214C 00000013 */ mtlo $zero 88 | /* 135490 00242150 00000008 */ jr $zero 89 | /* 135494 00242154 00000008 */ jr $zero 90 | /* 135498 00242158 00000004 */ sllv $zero, $zero, $zero 91 | /* 13549C 0024215C 00000002 */ srl $zero, $zero, 0 92 | /* 1354A0 00242160 0000003C */ dsll32 $zero, $zero, 0 93 | /* 1354A4 00242164 8023EE80 */ lb $v1, -0x1180($at) 94 | /* 1354A8 00242168 8023EEA0 */ lb $v1, -0x1160($at) 95 | /* 1354AC 0024216C 00000003 */ sra $zero, $zero, 0 96 | /* 1354B0 00242170 00000000 */ nop 97 | /* 1354B4 00242174 00000008 */ jr $zero 98 | /* 1354B8 00242178 00000013 */ mtlo $zero 99 | /* 1354BC 0024217C 00000008 */ jr $zero 100 | /* 1354C0 00242180 00000008 */ jr $zero 101 | /* 1354C4 00242184 00000004 */ sllv $zero, $zero, $zero 102 | /* 1354C8 00242188 00000002 */ srl $zero, $zero, 0 103 | /* 1354CC 0024218C 0000003C */ dsll32 $zero, $zero, 0 104 | /* 1354D0 00242190 8023EEC0 */ lb $v1, -0x1140($at) 105 | /* 1354D4 00242194 8023EEE0 */ lb $v1, -0x1120($at) 106 | /* 1354D8 00242198 00000003 */ sra $zero, $zero, 0 107 | /* 1354DC 0024219C 00000000 */ nop 108 | /* 1354E0 002421A0 00000008 */ jr $zero 109 | /* 1354E4 002421A4 00000013 */ mtlo $zero 110 | /* 1354E8 002421A8 00000008 */ jr $zero 111 | /* 1354EC 002421AC 00000008 */ jr $zero 112 | /* 1354F0 002421B0 00000004 */ sllv $zero, $zero, $zero 113 | /* 1354F4 002421B4 00000002 */ srl $zero, $zero, 0 114 | /* 1354F8 002421B8 0000003C */ dsll32 $zero, $zero, 0 115 | /* 1354FC 002421BC 8023EF00 */ lb $v1, -0x1100($at) 116 | /* 135500 002421C0 8023EF20 */ lb $v1, -0x10e0($at) 117 | /* 135504 002421C4 00000003 */ sra $zero, $zero, 0 118 | /* 135508 002421C8 00000000 */ nop 119 | /* 13550C 002421CC 00000008 */ jr $zero 120 | /* 135510 002421D0 00000013 */ mtlo $zero 121 | /* 135514 002421D4 00000008 */ jr $zero 122 | /* 135518 002421D8 00000008 */ jr $zero 123 | /* 13551C 002421DC 00000004 */ sllv $zero, $zero, $zero 124 | /* 135520 002421E0 00000002 */ srl $zero, $zero, 0 125 | /* 135524 002421E4 0000003C */ dsll32 $zero, $zero, 0 126 | /* 135528 002421E8 8023EF40 */ lb $v1, -0x10c0($at) 127 | /* 13552C 002421EC 8023EF60 */ lb $v1, -0x10a0($at) 128 | /* 135530 002421F0 00000003 */ sra $zero, $zero, 0 129 | /* 135534 002421F4 00000000 */ nop 130 | /* 135538 002421F8 00000008 */ jr $zero 131 | /* 13553C 002421FC 00000013 */ mtlo $zero 132 | /* 135540 00242200 00000008 */ jr $zero 133 | /* 135544 00242204 00000008 */ jr $zero 134 | /* 135548 00242208 00000004 */ sllv $zero, $zero, $zero 135 | /* 13554C 0024220C 00000002 */ srl $zero, $zero, 0 136 | /* 135550 00242210 0000003C */ dsll32 $zero, $zero, 0 137 | /* 135554 00242214 8023EF80 */ lb $v1, -0x1080($at) 138 | /* 135558 00242218 8023EFA0 */ lb $v1, -0x1060($at) 139 | /* 13555C 0024221C 00000003 */ sra $zero, $zero, 0 140 | /* 135560 00242220 00000000 */ nop 141 | /* 135564 00242224 00000008 */ jr $zero 142 | /* 135568 00242228 00000013 */ mtlo $zero 143 | /* 13556C 0024222C 00000008 */ jr $zero 144 | /* 135570 00242230 00000008 */ jr $zero 145 | /* 135574 00242234 00000004 */ sllv $zero, $zero, $zero 146 | /* 135578 00242238 00000002 */ srl $zero, $zero, 0 147 | /* 13557C 0024223C 0000003C */ dsll32 $zero, $zero, 0 148 | /* 135580 00242240 8023EFC0 */ lb $v1, -0x1040($at) 149 | /* 135584 00242244 8023EFE0 */ lb $v1, -0x1020($at) 150 | /* 135588 00242248 00000003 */ sra $zero, $zero, 0 151 | /* 13558C 0024224C 00000000 */ nop 152 | /* 135590 00242250 00000008 */ jr $zero 153 | /* 135594 00242254 00000013 */ mtlo $zero 154 | /* 135598 00242258 00000008 */ jr $zero 155 | /* 13559C 0024225C 00000008 */ jr $zero 156 | /* 1355A0 00242260 00000004 */ sllv $zero, $zero, $zero 157 | /* 1355A4 00242264 00000002 */ srl $zero, $zero, 0 158 | /* 1355A8 00242268 0000003C */ dsll32 $zero, $zero, 0 159 | /* 1355AC 0024226C 8023F000 */ lb $v1, -0x1000($at) 160 | /* 1355B0 00242270 8023F020 */ lb $v1, -0xfe0($at) 161 | /* 1355B4 00242274 00000003 */ sra $zero, $zero, 0 162 | /* 1355B8 00242278 00000000 */ nop 163 | /* 1355BC 0024227C 00000008 */ jr $zero 164 | /* 1355C0 00242280 00000013 */ mtlo $zero 165 | /* 1355C4 00242284 00000008 */ jr $zero 166 | /* 1355C8 00242288 00000008 */ jr $zero 167 | /* 1355CC 0024228C 00000004 */ sllv $zero, $zero, $zero 168 | /* 1355D0 00242290 00000002 */ srl $zero, $zero, 0 169 | /* 1355D4 00242294 0000003C */ dsll32 $zero, $zero, 0 170 | /* 1355D8 00242298 8023F040 */ lb $v1, -0xfc0($at) 171 | /* 1355DC 0024229C 8023F060 */ lb $v1, -0xfa0($at) 172 | /* 1355E0 002422A0 00000003 */ sra $zero, $zero, 0 173 | /* 1355E4 002422A4 00000000 */ nop 174 | /* 1355E8 002422A8 00000008 */ jr $zero 175 | /* 1355EC 002422AC 00000013 */ mtlo $zero 176 | /* 1355F0 002422B0 00000008 */ jr $zero 177 | /* 1355F4 002422B4 00000008 */ jr $zero 178 | /* 1355F8 002422B8 00000004 */ sllv $zero, $zero, $zero 179 | /* 1355FC 002422BC 00000002 */ srl $zero, $zero, 0 180 | /* 135600 002422C0 0000003C */ dsll32 $zero, $zero, 0 181 | /* 135604 002422C4 8023F080 */ lb $v1, -0xf80($at) 182 | /* 135608 002422C8 8023F0A0 */ lb $v1, -0xf60($at) 183 | /* 13560C 002422CC 00000003 */ sra $zero, $zero, 0 184 | /* 135610 002422D0 00000000 */ nop 185 | /* 135614 002422D4 00000008 */ jr $zero 186 | /* 135618 002422D8 00000013 */ mtlo $zero 187 | /* 13561C 002422DC 00000020 */ add $zero, $zero, $zero 188 | /* 135620 002422E0 00000010 */ mfhi $zero 189 | /* 135624 002422E4 00000004 */ sllv $zero, $zero, $zero 190 | /* 135628 002422E8 00000002 */ srl $zero, $zero, 0 191 | /* 13562C 002422EC 0000003C */ dsll32 $zero, $zero, 0 192 | /* 135630 002422F0 8023F0C0 */ lb $v1, -0xf40($at) 193 | /* 135634 002422F4 8023F1C0 */ lb $v1, -0xe40($at) 194 | /* 135638 002422F8 00000003 */ sra $zero, $zero, 0 195 | /* 13563C 002422FC 00000000 */ nop 196 | /* 135640 00242300 00000008 */ jr $zero 197 | /* 135644 00242304 00000013 */ mtlo $zero 198 | /* 135648 00242308 00000020 */ add $zero, $zero, $zero 199 | /* 13564C 0024230C 00000010 */ mfhi $zero 200 | /* 135650 00242310 00000004 */ sllv $zero, $zero, $zero 201 | /* 135654 00242314 00000002 */ srl $zero, $zero, 0 202 | /* 135658 00242318 0000003C */ dsll32 $zero, $zero, 0 203 | /* 13565C 0024231C 8023F1E0 */ lb $v1, -0xe20($at) 204 | /* 135660 00242320 8023F2E0 */ lb $v1, -0xd20($at) 205 | /* 135664 00242324 00000003 */ sra $zero, $zero, 0 206 | /* 135668 00242328 00000000 */ nop 207 | /* 13566C 0024232C 00000008 */ jr $zero 208 | /* 135670 00242330 00000013 */ mtlo $zero 209 | /* 135674 00242334 00000040 */ ssnop 210 | /* 135678 00242338 00000010 */ mfhi $zero 211 | /* 13567C 0024233C 00000004 */ sllv $zero, $zero, $zero 212 | /* 135680 00242340 00000002 */ srl $zero, $zero, 0 213 | /* 135684 00242344 0000003C */ dsll32 $zero, $zero, 0 214 | /* 135688 00242348 8023F300 */ lb $v1, -0xd00($at) 215 | /* 13568C 0024234C 8023F500 */ lb $v1, -0xb00($at) 216 | /* 135690 00242350 00000003 */ sra $zero, $zero, 0 217 | /* 135694 00242354 00000000 */ nop 218 | /* 135698 00242358 00000008 */ jr $zero 219 | /* 13569C 0024235C 00000013 */ mtlo $zero 220 | /* 1356A0 00242360 00000040 */ ssnop 221 | /* 1356A4 00242364 00000010 */ mfhi $zero 222 | /* 1356A8 00242368 00000004 */ sllv $zero, $zero, $zero 223 | /* 1356AC 0024236C 00000002 */ srl $zero, $zero, 0 224 | /* 1356B0 00242370 0000003C */ dsll32 $zero, $zero, 0 225 | /* 1356B4 00242374 8023F520 */ lb $v1, -0xae0($at) 226 | /* 1356B8 00242378 8023F720 */ lb $v1, -0x8e0($at) 227 | /* 1356BC 0024237C 00000003 */ sra $zero, $zero, 0 228 | /* 1356C0 00242380 00000000 */ nop 229 | /* 1356C4 00242384 00000008 */ jr $zero 230 | /* 1356C8 00242388 00000013 */ mtlo $zero 231 | /* 1356CC 0024238C 00000040 */ ssnop 232 | /* 1356D0 00242390 00000010 */ mfhi $zero 233 | /* 1356D4 00242394 00000004 */ sllv $zero, $zero, $zero 234 | /* 1356D8 00242398 00000002 */ srl $zero, $zero, 0 235 | /* 1356DC 0024239C 0000003C */ dsll32 $zero, $zero, 0 236 | /* 1356E0 002423A0 8023F740 */ lb $v1, -0x8c0($at) 237 | /* 1356E4 002423A4 8023F940 */ lb $v1, -0x6c0($at) 238 | /* 1356E8 002423A8 00000003 */ sra $zero, $zero, 0 239 | /* 1356EC 002423AC 00000000 */ nop 240 | /* 1356F0 002423B0 00000008 */ jr $zero 241 | /* 1356F4 002423B4 00000013 */ mtlo $zero 242 | /* 1356F8 002423B8 00000040 */ ssnop 243 | /* 1356FC 002423BC 00000010 */ mfhi $zero 244 | /* 135700 002423C0 00000004 */ sllv $zero, $zero, $zero 245 | /* 135704 002423C4 00000002 */ srl $zero, $zero, 0 246 | /* 135708 002423C8 0000003C */ dsll32 $zero, $zero, 0 247 | /* 13570C 002423CC 8023F960 */ lb $v1, -0x6a0($at) 248 | /* 135710 002423D0 8023FB60 */ lb $v1, -0x4a0($at) 249 | /* 135714 002423D4 00000003 */ sra $zero, $zero, 0 250 | /* 135718 002423D8 00000000 */ nop 251 | /* 13571C 002423DC 00000008 */ jr $zero 252 | /* 135720 002423E0 00000013 */ mtlo $zero 253 | /* 135724 002423E4 00000010 */ mfhi $zero 254 | /* 135728 002423E8 00000010 */ mfhi $zero 255 | /* 13572C 002423EC 00000004 */ sllv $zero, $zero, $zero 256 | /* 135730 002423F0 00000002 */ srl $zero, $zero, 0 257 | /* 135734 002423F4 0000003C */ dsll32 $zero, $zero, 0 258 | /* 135738 002423F8 8023FB80 */ lb $v1, -0x480($at) 259 | /* 13573C 002423FC 8023FC00 */ lb $v1, -0x400($at) 260 | /* 135740 00242400 00000003 */ sra $zero, $zero, 0 261 | /* 135744 00242404 00000000 */ nop 262 | /* 135748 00242408 00000008 */ jr $zero 263 | /* 13574C 0024240C 00000013 */ mtlo $zero 264 | /* 135750 00242410 00000010 */ mfhi $zero 265 | /* 135754 00242414 00000010 */ mfhi $zero 266 | /* 135758 00242418 00000004 */ sllv $zero, $zero, $zero 267 | /* 13575C 0024241C 00000002 */ srl $zero, $zero, 0 268 | /* 135760 00242420 0000003C */ dsll32 $zero, $zero, 0 269 | /* 135764 00242424 8023FC20 */ lb $v1, -0x3e0($at) 270 | /* 135768 00242428 8023FCA0 */ lb $v1, -0x360($at) 271 | /* 13576C 0024242C 00000003 */ sra $zero, $zero, 0 272 | /* 135770 00242430 00000000 */ nop 273 | /* 135774 00242434 00000008 */ jr $zero 274 | /* 135778 00242438 00000013 */ mtlo $zero 275 | /* 13577C 0024243C 00000010 */ mfhi $zero 276 | /* 135780 00242440 00000010 */ mfhi $zero 277 | /* 135784 00242444 00000004 */ sllv $zero, $zero, $zero 278 | /* 135788 00242448 00000002 */ srl $zero, $zero, 0 279 | /* 13578C 0024244C 0000003C */ dsll32 $zero, $zero, 0 280 | /* 135790 00242450 8023FCC0 */ lb $v1, -0x340($at) 281 | /* 135794 00242454 8023FD40 */ lb $v1, -0x2c0($at) 282 | /* 135798 00242458 00000003 */ sra $zero, $zero, 0 283 | /* 13579C 0024245C 00000000 */ nop 284 | /* 1357A0 00242460 00000008 */ jr $zero 285 | /* 1357A4 00242464 00000013 */ mtlo $zero 286 | /* 1357A8 00242468 00000010 */ mfhi $zero 287 | /* 1357AC 0024246C 00000010 */ mfhi $zero 288 | /* 1357B0 00242470 00000004 */ sllv $zero, $zero, $zero 289 | /* 1357B4 00242474 00000002 */ srl $zero, $zero, 0 290 | /* 1357B8 00242478 0000003C */ dsll32 $zero, $zero, 0 291 | /* 1357BC 0024247C 8023FD60 */ lb $v1, -0x2a0($at) 292 | /* 1357C0 00242480 8023FDE0 */ lb $v1, -0x220($at) 293 | /* 1357C4 00242484 00000003 */ sra $zero, $zero, 0 294 | /* 1357C8 00242488 00000000 */ nop 295 | /* 1357CC 0024248C 00000008 */ jr $zero 296 | /* 1357D0 00242490 00000013 */ mtlo $zero 297 | /* 1357D4 00242494 00000010 */ mfhi $zero 298 | /* 1357D8 00242498 00000010 */ mfhi $zero 299 | /* 1357DC 0024249C 00000004 */ sllv $zero, $zero, $zero 300 | /* 1357E0 002424A0 00000002 */ srl $zero, $zero, 0 301 | /* 1357E4 002424A4 0000003C */ dsll32 $zero, $zero, 0 302 | /* 1357E8 002424A8 8023FE00 */ lb $v1, -0x200($at) 303 | /* 1357EC 002424AC 8023FE80 */ lb $v1, -0x180($at) 304 | /* 1357F0 002424B0 00000003 */ sra $zero, $zero, 0 305 | /* 1357F4 002424B4 00000000 */ nop 306 | /* 1357F8 002424B8 00000008 */ jr $zero 307 | /* 1357FC 002424BC 00000013 */ mtlo $zero 308 | /* 135800 002424C0 00000010 */ mfhi $zero 309 | /* 135804 002424C4 00000010 */ mfhi $zero 310 | /* 135808 002424C8 00000004 */ sllv $zero, $zero, $zero 311 | /* 13580C 002424CC 00000002 */ srl $zero, $zero, 0 312 | /* 135810 002424D0 0000003C */ dsll32 $zero, $zero, 0 313 | /* 135814 002424D4 8023FEA0 */ lb $v1, -0x160($at) 314 | /* 135818 002424D8 8023FF20 */ lb $v1, -0xe0($at) 315 | /* 13581C 002424DC 00000003 */ sra $zero, $zero, 0 316 | /* 135820 002424E0 00000000 */ nop 317 | /* 135824 002424E4 00000008 */ jr $zero 318 | /* 135828 002424E8 00000013 */ mtlo $zero 319 | /* 13582C 002424EC 00000010 */ mfhi $zero 320 | /* 135830 002424F0 00000010 */ mfhi $zero 321 | /* 135834 002424F4 00000004 */ sllv $zero, $zero, $zero 322 | /* 135838 002424F8 00000002 */ srl $zero, $zero, 0 323 | /* 13583C 002424FC 0000003C */ dsll32 $zero, $zero, 0 324 | /* 135840 00242500 8023FF40 */ lb $v1, -0xc0($at) 325 | /* 135844 00242504 8023FFC0 */ lb $v1, -0x40($at) 326 | /* 135848 00242508 00000003 */ sra $zero, $zero, 0 327 | /* 13584C 0024250C 00000000 */ nop 328 | /* 135850 00242510 00000008 */ jr $zero 329 | /* 135854 00242514 00000013 */ mtlo $zero 330 | /* 135858 00242518 00000010 */ mfhi $zero 331 | /* 13585C 0024251C 00000010 */ mfhi $zero 332 | /* 135860 00242520 00000004 */ sllv $zero, $zero, $zero 333 | /* 135864 00242524 00000002 */ srl $zero, $zero, 0 334 | /* 135868 00242528 0000003C */ dsll32 $zero, $zero, 0 335 | /* 13586C 0024252C 8023FFE0 */ lb $v1, -0x20($at) 336 | /* 135870 00242530 80240060 */ lb $a0, 0x60($at) 337 | /* 135874 00242534 00000003 */ sra $zero, $zero, 0 338 | /* 135878 00242538 00000000 */ nop 339 | /* 13587C 0024253C 00000008 */ jr $zero 340 | /* 135880 00242540 00000013 */ mtlo $zero 341 | /* 135884 00242544 00000010 */ mfhi $zero 342 | /* 135888 00242548 00000010 */ mfhi $zero 343 | /* 13588C 0024254C 00000004 */ sllv $zero, $zero, $zero 344 | /* 135890 00242550 00000002 */ srl $zero, $zero, 0 345 | /* 135894 00242554 0000003C */ dsll32 $zero, $zero, 0 346 | /* 135898 00242558 80240080 */ lb $a0, 0x80($at) 347 | /* 13589C 0024255C 80240100 */ lb $a0, 0x100($at) 348 | /* 1358A0 00242560 00000003 */ sra $zero, $zero, 0 349 | /* 1358A4 00242564 00000000 */ nop 350 | /* 1358A8 00242568 00000008 */ jr $zero 351 | /* 1358AC 0024256C 00000013 */ mtlo $zero 352 | /* 1358B0 00242570 00000010 */ mfhi $zero 353 | /* 1358B4 00242574 00000010 */ mfhi $zero 354 | /* 1358B8 00242578 00000004 */ sllv $zero, $zero, $zero 355 | /* 1358BC 0024257C 00000002 */ srl $zero, $zero, 0 356 | /* 1358C0 00242580 0000003C */ dsll32 $zero, $zero, 0 357 | /* 1358C4 00242584 80240120 */ lb $a0, 0x120($at) 358 | /* 1358C8 00242588 802401A0 */ lb $a0, 0x1a0($at) 359 | /* 1358CC 0024258C 00000003 */ sra $zero, $zero, 0 360 | /* 1358D0 00242590 00000000 */ nop 361 | /* 1358D4 00242594 00000008 */ jr $zero 362 | /* 1358D8 00242598 00000013 */ mtlo $zero 363 | /* 1358DC 0024259C 00000010 */ mfhi $zero 364 | /* 1358E0 002425A0 00000010 */ mfhi $zero 365 | /* 1358E4 002425A4 00000004 */ sllv $zero, $zero, $zero 366 | /* 1358E8 002425A8 00000002 */ srl $zero, $zero, 0 367 | /* 1358EC 002425AC 0000003C */ dsll32 $zero, $zero, 0 368 | /* 1358F0 002425B0 802401C0 */ lb $a0, 0x1c0($at) 369 | /* 1358F4 002425B4 80240240 */ lb $a0, 0x240($at) 370 | /* 1358F8 002425B8 00000003 */ sra $zero, $zero, 0 371 | /* 1358FC 002425BC 00000000 */ nop 372 | /* 135900 002425C0 00000008 */ jr $zero 373 | /* 135904 002425C4 00000013 */ mtlo $zero 374 | /* 135908 002425C8 00000010 */ mfhi $zero 375 | /* 13590C 002425CC 00000010 */ mfhi $zero 376 | /* 135910 002425D0 00000004 */ sllv $zero, $zero, $zero 377 | /* 135914 002425D4 00000002 */ srl $zero, $zero, 0 378 | /* 135918 002425D8 0000003C */ dsll32 $zero, $zero, 0 379 | /* 13591C 002425DC 80240260 */ lb $a0, 0x260($at) 380 | /* 135920 002425E0 802402E0 */ lb $a0, 0x2e0($at) 381 | /* 135924 002425E4 00000003 */ sra $zero, $zero, 0 382 | /* 135928 002425E8 00000000 */ nop 383 | /* 13592C 002425EC 00000008 */ jr $zero 384 | /* 135930 002425F0 00000013 */ mtlo $zero 385 | /* 135934 002425F4 00000010 */ mfhi $zero 386 | /* 135938 002425F8 00000010 */ mfhi $zero 387 | /* 13593C 002425FC 00000004 */ sllv $zero, $zero, $zero 388 | /* 135940 00242600 00000002 */ srl $zero, $zero, 0 389 | /* 135944 00242604 0000003C */ dsll32 $zero, $zero, 0 390 | /* 135948 00242608 80240300 */ lb $a0, 0x300($at) 391 | /* 13594C 0024260C 80240380 */ lb $a0, 0x380($at) 392 | /* 135950 00242610 00000003 */ sra $zero, $zero, 0 393 | /* 135954 00242614 00000000 */ nop 394 | /* 135958 00242618 00000008 */ jr $zero 395 | /* 13595C 0024261C 00000013 */ mtlo $zero 396 | /* 135960 00242620 00000010 */ mfhi $zero 397 | /* 135964 00242624 00000010 */ mfhi $zero 398 | /* 135968 00242628 00000004 */ sllv $zero, $zero, $zero 399 | /* 13596C 0024262C 00000002 */ srl $zero, $zero, 0 400 | /* 135970 00242630 0000003C */ dsll32 $zero, $zero, 0 401 | /* 135974 00242634 802403A0 */ lb $a0, 0x3a0($at) 402 | /* 135978 00242638 80240420 */ lb $a0, 0x420($at) 403 | /* 13597C 0024263C 00000003 */ sra $zero, $zero, 0 404 | /* 135980 00242640 00000000 */ nop 405 | /* 135984 00242644 00000008 */ jr $zero 406 | /* 135988 00242648 00000013 */ mtlo $zero 407 | /* 13598C 0024264C 00000018 */ mult $zero, $zero 408 | /* 135990 00242650 00000018 */ mult $zero, $zero 409 | /* 135994 00242654 00000004 */ sllv $zero, $zero, $zero 410 | /* 135998 00242658 00000002 */ srl $zero, $zero, 0 411 | /* 13599C 0024265C 00000010 */ mfhi $zero 412 | /* 1359A0 00242660 80240440 */ lb $a0, 0x440($at) 413 | /* 1359A4 00242664 80240560 */ lb $a0, 0x560($at) 414 | /* 1359A8 00242668 00000002 */ srl $zero, $zero, 0 415 | /* 1359AC 0024266C 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 416 | /* 1359B0 00242670 80240580 */ /* 1359B4 00242674 802406A0 */ lb $a0, 0x6a0($at) 417 | /* 1359B8 00242678 00000002 */ srl $zero, $zero, 0 418 | /* 1359BC 0024267C 00000010 */ mfhi $zero 419 | /* 1359C0 00242680 802406C0 */ lb $a0, 0x6c0($at) 420 | /* 1359C4 00242684 802407E0 */ lb $a0, 0x7e0($at) 421 | /* 1359C8 00242688 00000002 */ srl $zero, $zero, 0 422 | /* 1359CC 0024268C 00000004 */ sllv $zero, $zero, $zero 423 | /* 1359D0 00242690 80240580 */ lb $a0, 0x580($at) 424 | /* 1359D4 00242694 802406A0 */ lb $a0, 0x6a0($at) 425 | /* 1359D8 00242698 00000003 */ sra $zero, $zero, 0 426 | /* 1359DC 0024269C 00000000 */ nop 427 | /* 1359E0 002426A0 00000008 */ jr $zero 428 | /* 1359E4 002426A4 00000013 */ mtlo $zero 429 | /* 1359E8 002426A8 00000010 */ mfhi $zero 430 | /* 1359EC 002426AC 00000010 */ mfhi $zero 431 | /* 1359F0 002426B0 00000004 */ sllv $zero, $zero, $zero 432 | /* 1359F4 002426B4 00000002 */ srl $zero, $zero, 0 433 | /* 1359F8 002426B8 0000003C */ dsll32 $zero, $zero, 0 434 | /* 1359FC 002426BC 80240AC0 */ lb $a0, 0xac0($at) 435 | /* 135A00 002426C0 80240B40 */ lb $a0, 0xb40($at) 436 | /* 135A04 002426C4 00000003 */ sra $zero, $zero, 0 437 | /* 135A08 002426C8 00000000 */ nop 438 | /* 135A0C 002426CC 00000008 */ jr $zero 439 | /* 135A10 002426D0 00000013 */ mtlo $zero 440 | /* 135A14 002426D4 00000010 */ mfhi $zero 441 | /* 135A18 002426D8 00000010 */ mfhi $zero 442 | /* 135A1C 002426DC 00000004 */ sllv $zero, $zero, $zero 443 | /* 135A20 002426E0 00000002 */ srl $zero, $zero, 0 444 | /* 135A24 002426E4 0000003C */ dsll32 $zero, $zero, 0 445 | /* 135A28 002426E8 80240B60 */ lb $a0, 0xb60($at) 446 | /* 135A2C 002426EC 80240BE0 */ lb $a0, 0xbe0($at) 447 | /* 135A30 002426F0 00000003 */ sra $zero, $zero, 0 448 | /* 135A34 002426F4 00000000 */ nop 449 | /* 135A38 002426F8 00000008 */ jr $zero 450 | /* 135A3C 002426FC 00000013 */ mtlo $zero 451 | /* 135A40 00242700 00000010 */ mfhi $zero 452 | /* 135A44 00242704 00000010 */ mfhi $zero 453 | /* 135A48 00242708 00000004 */ sllv $zero, $zero, $zero 454 | /* 135A4C 0024270C 00000002 */ srl $zero, $zero, 0 455 | /* 135A50 00242710 0000003C */ dsll32 $zero, $zero, 0 456 | /* 135A54 00242714 80240C00 */ lb $a0, 0xc00($at) 457 | /* 135A58 00242718 80240C80 */ lb $a0, 0xc80($at) 458 | /* 135A5C 0024271C 00000003 */ sra $zero, $zero, 0 459 | /* 135A60 00242720 00000000 */ nop 460 | /* 135A64 00242724 00000008 */ jr $zero 461 | /* 135A68 00242728 00000013 */ mtlo $zero 462 | /* 135A6C 0024272C 00000010 */ mfhi $zero 463 | /* 135A70 00242730 00000010 */ mfhi $zero 464 | /* 135A74 00242734 00000004 */ sllv $zero, $zero, $zero 465 | /* 135A78 00242738 00000002 */ srl $zero, $zero, 0 466 | /* 135A7C 0024273C 0000003C */ dsll32 $zero, $zero, 0 467 | /* 135A80 00242740 80240CA0 */ lb $a0, 0xca0($at) 468 | /* 135A84 00242744 80240D20 */ lb $a0, 0xd20($at) 469 | /* 135A88 00242748 00000003 */ sra $zero, $zero, 0 470 | /* 135A8C 0024274C 00000000 */ nop 471 | /* 135A90 00242750 00000008 */ jr $zero 472 | /* 135A94 00242754 00000013 */ mtlo $zero 473 | /* 135A98 00242758 00000030 */ tge $zero, $zero 474 | /* 135A9C 0024275C 00000008 */ jr $zero 475 | /* 135AA0 00242760 00000004 */ sllv $zero, $zero, $zero 476 | /* 135AA4 00242764 00000002 */ srl $zero, $zero, 0 477 | /* 135AA8 00242768 0000003C */ dsll32 $zero, $zero, 0 478 | /* 135AAC 0024276C 80240E80 */ lb $a0, 0xe80($at) 479 | /* 135AB0 00242770 80240F40 */ lb $a0, 0xf40($at) 480 | /* 135AB4 00242774 00000003 */ sra $zero, $zero, 0 481 | /* 135AB8 00242778 00000000 */ nop 482 | /* 135ABC 0024277C 00000008 */ jr $zero 483 | /* 135AC0 00242780 00000013 */ mtlo $zero 484 | /* 135AC4 00242784 00000020 */ add $zero, $zero, $zero 485 | /* 135AC8 00242788 00000020 */ add $zero, $zero, $zero 486 | /* 135ACC 0024278C 00000004 */ sllv $zero, $zero, $zero 487 | /* 135AD0 00242790 00000002 */ srl $zero, $zero, 0 488 | /* 135AD4 00242794 0000003C */ dsll32 $zero, $zero, 0 489 | /* 135AD8 00242798 80240F60 */ lb $a0, 0xf60($at) 490 | /* 135ADC 0024279C 80241160 */ lb $a0, 0x1160($at) 491 | /* 135AE0 002427A0 00000003 */ sra $zero, $zero, 0 492 | /* 135AE4 002427A4 00000000 */ nop 493 | /* 135AE8 002427A8 00000008 */ jr $zero 494 | /* 135AEC 002427AC 00000013 */ mtlo $zero 495 | /* 135AF0 002427B0 00000010 */ mfhi $zero 496 | /* 135AF4 002427B4 00000008 */ jr $zero 497 | /* 135AF8 002427B8 00000004 */ sllv $zero, $zero, $zero 498 | /* 135AFC 002427BC 00000002 */ srl $zero, $zero, 0 499 | /* 135B00 002427C0 0000003C */ dsll32 $zero, $zero, 0 500 | /* 135B04 002427C4 80241180 */ lb $a0, 0x1180($at) 501 | /* 135B08 002427C8 802411C0 */ lb $a0, 0x11c0($at) 502 | /* 135B0C 002427CC 00000003 */ sra $zero, $zero, 0 503 | /* 135B10 002427D0 00000000 */ nop 504 | /* 135B14 002427D4 00000008 */ jr $zero 505 | /* 135B18 002427D8 00000013 */ mtlo $zero 506 | /* 135B1C 002427DC 00000010 */ mfhi $zero 507 | /* 135B20 002427E0 00000010 */ mfhi $zero 508 | /* 135B24 002427E4 00000004 */ sllv $zero, $zero, $zero 509 | /* 135B28 002427E8 00000019 */ multu $zero, $zero 510 | /* 135B2C 002427EC 00200000 */ .byte 0x00, 0x20, 0x00, 0x00 511 | /* 135B30 002427F0 00000002 */ /* 135B34 002427F4 00000009 */ jr $zero 512 | /* 135B38 002427F8 80240D40 */ lb $a0, 0xd40($at) 513 | /* 135B3C 002427FC 80240DC0 */ lb $a0, 0xdc0($at) 514 | /* 135B40 00242800 00000018 */ mult $zero, $zero 515 | /* 135B44 00242804 00200000 */ .byte 0x00, 0x20, 0x00, 0x00 516 | /* 135B48 00242808 00000002 */ /* 135B4C 0024280C 00000006 */ srlv $zero, $zero, $zero 517 | /* 135B50 00242810 80240D40 */ lb $a0, 0xd40($at) 518 | /* 135B54 00242814 80240DC0 */ lb $a0, 0xdc0($at) 519 | /* 135B58 00242818 00000003 */ sra $zero, $zero, 0 520 | /* 135B5C 0024281C 00000000 */ nop 521 | /* 135B60 00242820 00000008 */ jr $zero 522 | /* 135B64 00242824 00000013 */ mtlo $zero 523 | /* 135B68 00242828 00000010 */ mfhi $zero 524 | /* 135B6C 0024282C 00000010 */ mfhi $zero 525 | /* 135B70 00242830 00000004 */ sllv $zero, $zero, $zero 526 | /* 135B74 00242834 00000019 */ multu $zero, $zero 527 | /* 135B78 00242838 00200000 */ .byte 0x00, 0x20, 0x00, 0x00 528 | /* 135B7C 0024283C 00000002 */ /* 135B80 00242840 00000009 */ jr $zero 529 | /* 135B84 00242844 80240DE0 */ lb $a0, 0xde0($at) 530 | /* 135B88 00242848 80240E60 */ lb $a0, 0xe60($at) 531 | /* 135B8C 0024284C 00000018 */ mult $zero, $zero 532 | /* 135B90 00242850 00200000 */ .byte 0x00, 0x20, 0x00, 0x00 533 | /* 135B94 00242854 00000002 */ /* 135B98 00242858 00000006 */ srlv $zero, $zero, $zero 534 | /* 135B9C 0024285C 80240DE0 */ lb $a0, 0xde0($at) 535 | /* 135BA0 00242860 80240E60 */ lb $a0, 0xe60($at) 536 | /* 135BA4 00242864 00000003 */ sra $zero, $zero, 0 537 | /* 135BA8 00242868 00000000 */ nop 538 | /* 135BAC 0024286C 00000008 */ jr $zero 539 | /* 135BB0 00242870 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 540 | /* 135BB4 00242874 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 541 | /* 135BB8 00242878 00000004 */ /* 135BBC 0024287C 00000002 */ srl $zero, $zero, 0 542 | /* 135BC0 00242880 0000003C */ dsll32 $zero, $zero, 0 543 | /* 135BC4 00242884 80241680 */ lb $a0, 0x1680($at) 544 | /* 135BC8 00242888 80241700 */ lb $a0, 0x1700($at) 545 | /* 135BCC 0024288C 00000003 */ sra $zero, $zero, 0 546 | /* 135BD0 00242890 00000000 */ nop 547 | /* 135BD4 00242894 00000008 */ jr $zero 548 | /* 135BD8 00242898 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 549 | /* 135BDC 0024289C 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 550 | /* 135BE0 002428A0 00000004 */ /* 135BE4 002428A4 00000002 */ srl $zero, $zero, 0 551 | /* 135BE8 002428A8 0000003C */ dsll32 $zero, $zero, 0 552 | /* 135BEC 002428AC 80241720 */ lb $a0, 0x1720($at) 553 | /* 135BF0 002428B0 802417A0 */ lb $a0, 0x17a0($at) 554 | /* 135BF4 002428B4 00000003 */ sra $zero, $zero, 0 555 | /* 135BF8 002428B8 00000000 */ nop 556 | /* 135BFC 002428BC 00000008 */ jr $zero 557 | /* 135C00 002428C0 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 558 | /* 135C04 002428C4 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 559 | /* 135C08 002428C8 00000004 */ /* 135C0C 002428CC 00000002 */ srl $zero, $zero, 0 560 | /* 135C10 002428D0 0000003C */ dsll32 $zero, $zero, 0 561 | /* 135C14 002428D4 802417C0 */ lb $a0, 0x17c0($at) 562 | /* 135C18 002428D8 80241840 */ lb $a0, 0x1840($at) 563 | /* 135C1C 002428DC 00000003 */ sra $zero, $zero, 0 564 | /* 135C20 002428E0 00000000 */ nop 565 | /* 135C24 002428E4 00000008 */ jr $zero 566 | /* 135C28 002428E8 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 567 | /* 135C2C 002428EC 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 568 | /* 135C30 002428F0 00000004 */ /* 135C34 002428F4 00000002 */ srl $zero, $zero, 0 569 | /* 135C38 002428F8 0000003C */ dsll32 $zero, $zero, 0 570 | /* 135C3C 002428FC 80241860 */ lb $a0, 0x1860($at) 571 | /* 135C40 00242900 802418E0 */ lb $a0, 0x18e0($at) 572 | /* 135C44 00242904 00000003 */ sra $zero, $zero, 0 573 | /* 135C48 00242908 00000000 */ nop 574 | /* 135C4C 0024290C 00000008 */ jr $zero 575 | /* 135C50 00242910 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 576 | /* 135C54 00242914 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 577 | /* 135C58 00242918 00000004 */ /* 135C5C 0024291C 00000002 */ srl $zero, $zero, 0 578 | /* 135C60 00242920 0000003C */ dsll32 $zero, $zero, 0 579 | /* 135C64 00242924 80241900 */ lb $a0, 0x1900($at) 580 | /* 135C68 00242928 80241980 */ lb $a0, 0x1980($at) 581 | /* 135C6C 0024292C 00000003 */ sra $zero, $zero, 0 582 | /* 135C70 00242930 00000000 */ nop 583 | /* 135C74 00242934 00000008 */ jr $zero 584 | /* 135C78 00242938 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 585 | /* 135C7C 0024293C 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 586 | /* 135C80 00242940 00000004 */ /* 135C84 00242944 00000002 */ srl $zero, $zero, 0 587 | /* 135C88 00242948 0000003C */ dsll32 $zero, $zero, 0 588 | /* 135C8C 0024294C 802419A0 */ lb $a0, 0x19a0($at) 589 | /* 135C90 00242950 80241A20 */ lb $a0, 0x1a20($at) 590 | /* 135C94 00242954 00000003 */ sra $zero, $zero, 0 591 | /* 135C98 00242958 00000000 */ nop 592 | /* 135C9C 0024295C 00000008 */ jr $zero 593 | /* 135CA0 00242960 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 594 | /* 135CA4 00242964 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 595 | /* 135CA8 00242968 00000004 */ /* 135CAC 0024296C 00000002 */ srl $zero, $zero, 0 596 | /* 135CB0 00242970 0000003C */ dsll32 $zero, $zero, 0 597 | /* 135CB4 00242974 80241A40 */ lb $a0, 0x1a40($at) 598 | /* 135CB8 00242978 80241AC0 */ lb $a0, 0x1ac0($at) 599 | /* 135CBC 0024297C 00000003 */ sra $zero, $zero, 0 600 | /* 135CC0 00242980 00000000 */ nop 601 | /* 135CC4 00242984 00000008 */ jr $zero 602 | /* 135CC8 00242988 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 603 | /* 135CCC 0024298C 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 604 | /* 135CD0 00242990 00000004 */ /* 135CD4 00242994 00000002 */ srl $zero, $zero, 0 605 | /* 135CD8 00242998 0000003C */ dsll32 $zero, $zero, 0 606 | /* 135CDC 0024299C 80241AE0 */ lb $a0, 0x1ae0($at) 607 | /* 135CE0 002429A0 80241B60 */ lb $a0, 0x1b60($at) 608 | /* 135CE4 002429A4 00000003 */ sra $zero, $zero, 0 609 | /* 135CE8 002429A8 00000000 */ nop 610 | /* 135CEC 002429AC 00000008 */ jr $zero 611 | /* 135CF0 002429B0 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 612 | /* 135CF4 002429B4 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 613 | /* 135CF8 002429B8 00000004 */ /* 135CFC 002429BC 00000002 */ srl $zero, $zero, 0 614 | /* 135D00 002429C0 0000003C */ dsll32 $zero, $zero, 0 615 | /* 135D04 002429C4 802411E0 */ lb $a0, 0x11e0($at) 616 | /* 135D08 002429C8 80241260 */ lb $a0, 0x1260($at) 617 | /* 135D0C 002429CC 00000003 */ sra $zero, $zero, 0 618 | /* 135D10 002429D0 00000000 */ nop 619 | /* 135D14 002429D4 00000008 */ jr $zero 620 | /* 135D18 002429D8 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 621 | /* 135D1C 002429DC 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 622 | /* 135D20 002429E0 00000004 */ /* 135D24 002429E4 00000002 */ srl $zero, $zero, 0 623 | /* 135D28 002429E8 0000003C */ dsll32 $zero, $zero, 0 624 | /* 135D2C 002429EC 80241280 */ lb $a0, 0x1280($at) 625 | /* 135D30 002429F0 80241300 */ lb $a0, 0x1300($at) 626 | /* 135D34 002429F4 00000003 */ sra $zero, $zero, 0 627 | /* 135D38 002429F8 00000000 */ nop 628 | /* 135D3C 002429FC 00000008 */ jr $zero 629 | /* 135D40 00242A00 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 630 | /* 135D44 00242A04 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 631 | /* 135D48 00242A08 00000004 */ /* 135D4C 00242A0C 00000002 */ srl $zero, $zero, 0 632 | /* 135D50 00242A10 0000003C */ dsll32 $zero, $zero, 0 633 | /* 135D54 00242A14 80241320 */ lb $a0, 0x1320($at) 634 | /* 135D58 00242A18 802413A0 */ lb $a0, 0x13a0($at) 635 | /* 135D5C 00242A1C 00000003 */ sra $zero, $zero, 0 636 | /* 135D60 00242A20 00000000 */ nop 637 | /* 135D64 00242A24 00000008 */ jr $zero 638 | /* 135D68 00242A28 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 639 | /* 135D6C 00242A2C 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 640 | /* 135D70 00242A30 00000004 */ /* 135D74 00242A34 00000002 */ srl $zero, $zero, 0 641 | /* 135D78 00242A38 0000000C */ syscall 642 | /* 135D7C 00242A3C 802413C0 */ lb $a0, 0x13c0($at) 643 | /* 135D80 00242A40 80241440 */ lb $a0, 0x1440($at) 644 | /* 135D84 00242A44 00000002 */ srl $zero, $zero, 0 645 | /* 135D88 00242A48 00000004 */ sllv $zero, $zero, $zero 646 | /* 135D8C 00242A4C 80241460 */ lb $a0, 0x1460($at) 647 | /* 135D90 00242A50 802414E0 */ lb $a0, 0x14e0($at) 648 | /* 135D94 00242A54 00000002 */ srl $zero, $zero, 0 649 | /* 135D98 00242A58 0000000C */ syscall 650 | /* 135D9C 00242A5C 80241500 */ lb $a0, 0x1500($at) 651 | /* 135DA0 00242A60 80241580 */ lb $a0, 0x1580($at) 652 | /* 135DA4 00242A64 00000002 */ srl $zero, $zero, 0 653 | /* 135DA8 00242A68 00000004 */ sllv $zero, $zero, $zero 654 | /* 135DAC 00242A6C 80241460 */ lb $a0, 0x1460($at) 655 | /* 135DB0 00242A70 802414E0 */ lb $a0, 0x14e0($at) 656 | /* 135DB4 00242A74 00000003 */ sra $zero, $zero, 0 657 | /* 135DB8 00242A78 00000000 */ nop 658 | /* 135DBC 00242A7C 00000008 */ jr $zero 659 | /* 135DC0 00242A80 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 660 | /* 135DC4 00242A84 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 661 | /* 135DC8 00242A88 00000004 */ /* 135DCC 00242A8C 00000002 */ srl $zero, $zero, 0 662 | /* 135DD0 00242A90 0000000C */ syscall 663 | /* 135DD4 00242A94 802413C0 */ lb $a0, 0x13c0($at) 664 | /* 135DD8 00242A98 80241440 */ lb $a0, 0x1440($at) 665 | /* 135DDC 00242A9C 00000002 */ srl $zero, $zero, 0 666 | /* 135DE0 00242AA0 00000004 */ sllv $zero, $zero, $zero 667 | /* 135DE4 00242AA4 80241460 */ lb $a0, 0x1460($at) 668 | /* 135DE8 00242AA8 802414E0 */ lb $a0, 0x14e0($at) 669 | /* 135DEC 00242AAC 00000002 */ srl $zero, $zero, 0 670 | /* 135DF0 00242AB0 0000000C */ syscall 671 | /* 135DF4 00242AB4 80241500 */ lb $a0, 0x1500($at) 672 | /* 135DF8 00242AB8 80241580 */ lb $a0, 0x1580($at) 673 | /* 135DFC 00242ABC 00000002 */ srl $zero, $zero, 0 674 | /* 135E00 00242AC0 00000004 */ sllv $zero, $zero, $zero 675 | /* 135E04 00242AC4 80241460 */ lb $a0, 0x1460($at) 676 | /* 135E08 00242AC8 802414E0 */ lb $a0, 0x14e0($at) 677 | /* 135E0C 00242ACC 00000003 */ sra $zero, $zero, 0 678 | /* 135E10 00242AD0 00000000 */ nop 679 | /* 135E14 00242AD4 00000008 */ jr $zero 680 | /* 135E18 00242AD8 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 681 | /* 135E1C 00242ADC 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 682 | /* 135E20 00242AE0 00000004 */ /* 135E24 00242AE4 00000002 */ srl $zero, $zero, 0 683 | /* 135E28 00242AE8 0000003C */ dsll32 $zero, $zero, 0 684 | /* 135E2C 00242AEC 802415A0 */ lb $a0, 0x15a0($at) 685 | /* 135E30 00242AF0 80241620 */ lb $a0, 0x1620($at) 686 | /* 135E34 00242AF4 00000003 */ sra $zero, $zero, 0 687 | /* 135E38 00242AF8 00000000 */ nop 688 | /* 135E3C 00242AFC 00000008 */ jr $zero 689 | /* 135E40 00242B00 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 690 | /* 135E44 00242B04 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 691 | /* 135E48 00242B08 00000004 */ /* 135E4C 00242B0C 00000002 */ srl $zero, $zero, 0 692 | /* 135E50 00242B10 0000003C */ dsll32 $zero, $zero, 0 693 | /* 135E54 00242B14 802415A0 */ lb $a0, 0x15a0($at) 694 | /* 135E58 00242B18 80241620 */ lb $a0, 0x1620($at) 695 | /* 135E5C 00242B1C 00000003 */ sra $zero, $zero, 0 696 | /* 135E60 00242B20 00000000 */ nop 697 | /* 135E64 00242B24 00000008 */ jr $zero 698 | /* 135E68 00242B28 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 699 | /* 135E6C 00242B2C 00000000 */ /* 135E70 00242B30 00000004 */ sllv $zero, $zero, $zero 700 | /* 135E74 00242B34 00000002 */ srl $zero, $zero, 0 701 | /* 135E78 00242B38 0000003C */ dsll32 $zero, $zero, 0 702 | /* 135E7C 00242B3C 80241640 */ lb $a0, 0x1640($at) 703 | /* 135E80 00242B40 80241660 */ lb $a0, 0x1660($at) 704 | /* 135E84 00242B44 00000003 */ sra $zero, $zero, 0 705 | /* 135E88 00242B48 00000000 */ nop 706 | /* 135E8C 00242B4C 00000008 */ jr $zero 707 | /* 135E90 00242B50 00000005 */ .byte 0x00,0x00,0x00,0x05 /* Because of invalid n64 opcode lsa */ 708 | /* 135E94 00242B54 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 709 | /* 135E98 00242B58 00000004 */ /* 135E9C 00242B5C 00000002 */ srl $zero, $zero, 0 710 | /* 135EA0 00242B60 0000003C */ dsll32 $zero, $zero, 0 711 | /* 135EA4 00242B64 80241B80 */ lb $a0, 0x1b80($at) 712 | /* 135EA8 00242B68 80241C00 */ lb $a0, 0x1c00($at) 713 | /* 135EAC 00242B6C 00000003 */ sra $zero, $zero, 0 714 | /* 135EB0 00242B70 00000000 */ nop 715 | /* 135EB4 00242B74 00000008 */ jr $zero 716 | /* 135EB8 00242B78 00000013 */ mtlo $zero 717 | /* 135EBC 00242B7C 00000038 */ dsll $zero, $zero, 0 718 | /* 135EC0 00242B80 00000010 */ mfhi $zero 719 | /* 135EC4 00242B84 00000004 */ sllv $zero, $zero, $zero 720 | /* 135EC8 00242B88 00000002 */ srl $zero, $zero, 0 721 | /* 135ECC 00242B8C 0000003C */ dsll32 $zero, $zero, 0 722 | /* 135ED0 00242B90 80241C20 */ lb $a0, 0x1c20($at) 723 | /* 135ED4 00242B94 80241DE0 */ lb $a0, 0x1de0($at) 724 | /* 135ED8 00242B98 00000003 */ sra $zero, $zero, 0 725 | /* 135EDC 00242B9C 00000000 */ nop 726 | -------------------------------------------------------------------------------- /papermario/asm/CODE_3169f0_len_80.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text00200000, "ax" 3 | 4 | func_00200000: 5 | /* 3169F0 00200000 27BDFFE8 */ addiu $sp, $sp, -0x18 6 | D_00200004: 7 | /* 3169F4 00200004 3C05AC29 */ lui $a1, (0xAC29007B >> 16) # lui $a1, 0xac29 8 | /* 3169F8 00200008 34A5007B */ ori $a1, (0xAC29007B & 0xFFFF) # ori $a1, $a1, 0x7b 9 | /* 3169FC 0020000C 3C06B000 */ lui $a2, (0xB00006A8 >> 16) # lui $a2, 0xb000 10 | /* 316A00 00200010 34C606A8 */ ori $a2, (0xB00006A8 & 0xFFFF) # ori $a2, $a2, 0x6a8 11 | /* 316A04 00200014 3C02A460 */ lui $v0, (0xA4600010 >> 16) # lui $v0, 0xa460 12 | /* 316A08 00200018 34420010 */ ori $v0, (0xA4600010 & 0xFFFF) # ori $v0, $v0, 0x10 13 | /* 316A0C 0020001C AFBF0010 */ sw $ra, 0x10($sp) 14 | /* 316A10 00200020 8C420000 */ lw $v0, ($v0) 15 | /* 316A14 00200024 3C048005 */ lui $a0, %hi(D_8004AA85) # $a0, 0x8005 16 | /* 316A18 00200028 2484AA85 */ addiu $a0, %lo(D_8004AA85) # addiu $a0, $a0, -0x557b 17 | /* 316A1C 0020002C 30420003 */ andi $v0, $v0, 3 18 | /* 316A20 00200030 10400006 */ beqz $v0, .L0020004C 19 | /* 316A24 00200034 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460 20 | /* 316A28 00200038 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10 21 | .L0020003C: 22 | /* 316A2C 0020003C 8C620000 */ lw $v0, ($v1) 23 | /* 316A30 00200040 30420003 */ andi $v0, $v0, 3 24 | /* 316A34 00200044 1440FFFD */ bnez $v0, .L0020003C 25 | /* 316A38 00200048 00000000 */ nop 26 | .L0020004C: 27 | /* 316A3C 0020004C 24C2FE38 */ addiu $v0, $a2, -0x1c8 28 | /* 316A40 00200050 3C03A000 */ lui $v1, 0xa000 29 | /* 316A44 00200054 00431025 */ or $v0, $v0, $v1 30 | /* 316A48 00200058 8C420000 */ lw $v0, ($v0) 31 | /* 316A4C 0020005C 00A22823 */ subu $a1, $a1, $v0 32 | /* 316A50 00200060 00852021 */ addu $a0, $a0, $a1 33 | /* 316A54 00200064 0080F809 */ jalr $a0 34 | /* 316A58 00200068 00000000 */ nop 35 | /* 316A5C 0020006C 8FBF0010 */ lw $ra, 0x10($sp) 36 | /* 316A60 00200070 03E00008 */ jr $ra 37 | /* 316A64 00200074 27BD0018 */ addiu $sp, $sp, 0x18 38 | 39 | /* 316A68 00200078 00000000 */ nop 40 | /* 316A6C 0020007C 00000000 */ nop 41 | -------------------------------------------------------------------------------- /papermario/asm/CODE_316a70_len_190.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text00200080, "ax" 3 | 4 | func_00200080: 5 | /* 316A70 00200080 27BDFFE8 */ addiu $sp, $sp, -0x18 6 | /* 316A74 00200084 3C0B3C01 */ lui $t3, (0x3C01A775 >> 16) # lui $t3, 0x3c01 7 | /* 316A78 00200088 356BA775 */ ori $t3, (0x3C01A775 & 0xFFFF) # ori $t3, $t3, 0xa775 8 | /* 316A7C 0020008C 3C04B001 */ lui $a0, (0xB0018FFC >> 16) # lui $a0, 0xb001 9 | /* 316A80 00200090 34848FFC */ ori $a0, (0xB0018FFC & 0xFFFF) # ori $a0, $a0, 0x8ffc 10 | /* 316A84 00200094 3C0A8002 */ lui $t2, %hi(D_80026AC7) # $t2, 0x8002 11 | /* 316A88 00200098 254A6AC7 */ addiu $t2, %lo(D_80026AC7) # addiu $t2, $t2, 0x6ac7 12 | /* 316A8C 0020009C 3C02A460 */ lui $v0, (0xA4600010 >> 16) # lui $v0, 0xa460 13 | /* 316A90 002000A0 34420010 */ ori $v0, (0xA4600010 & 0xFFFF) # ori $v0, $v0, 0x10 14 | /* 316A94 002000A4 AFBF0014 */ sw $ra, 0x14($sp) 15 | /* 316A98 002000A8 AFB00010 */ sw $s0, 0x10($sp) 16 | /* 316A9C 002000AC 8C420000 */ lw $v0, ($v0) 17 | /* 316AA0 002000B0 30420003 */ andi $v0, $v0, 3 18 | /* 316AA4 002000B4 10400007 */ beqz $v0, .L002000D4 19 | /* 316AA8 002000B8 0000282D */ move $a1, $zero 20 | /* 316AAC 002000BC 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460 21 | /* 316AB0 002000C0 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10 22 | .L002000C4: 23 | /* 316AB4 002000C4 8C620000 */ lw $v0, ($v1) 24 | /* 316AB8 002000C8 30420003 */ andi $v0, $v0, 3 25 | /* 316ABC 002000CC 1440FFFD */ bnez $v0, .L002000C4 26 | /* 316AC0 002000D0 00000000 */ nop 27 | .L002000D4: 28 | /* 316AC4 002000D4 3C02FFFE */ lui $v0, (0xFFFE7508 >> 16) # lui $v0, 0xfffe 29 | /* 316AC8 002000D8 34427508 */ ori $v0, (0xFFFE7508 & 0xFFFF) # ori $v0, $v0, 0x7508 30 | /* 316ACC 002000DC 0000482D */ move $t1, $zero 31 | /* 316AD0 002000E0 00821021 */ addu $v0, $a0, $v0 32 | /* 316AD4 002000E4 3C03A000 */ lui $v1, 0xa000 33 | /* 316AD8 002000E8 00431025 */ or $v0, $v0, $v1 34 | /* 316ADC 002000EC 8C420000 */ lw $v0, ($v0) 35 | /* 316AE0 002000F0 3C080031 */ lui $t0, %hi(D_003169F0) # $t0, 0x31 36 | /* 316AE4 002000F4 250869F0 */ addiu $t0, %lo(D_003169F0) # addiu $t0, $t0, 0x69f0 37 | /* 316AE8 002000F8 3C030031 */ lui $v1, %hi(D_00316A70) # $v1, 0x31 38 | /* 316AEC 002000FC 24636A70 */ addiu $v1, %lo(D_00316A70) # addiu $v1, $v1, 0x6a70 39 | /* 316AF0 00200100 01625823 */ subu $t3, $t3, $v0 40 | /* 316AF4 00200104 0103102B */ sltu $v0, $t0, $v1 41 | /* 316AF8 00200108 10400034 */ beqz $v0, .L002001DC 42 | /* 316AFC 0020010C 3C0CA460 */ lui $t4, (0xA4600010 >> 16) # lui $t4, 0xa460 43 | /* 316B00 00200110 358C0010 */ ori $t4, (0xA4600010 & 0xFFFF) # ori $t4, $t4, 0x10 44 | /* 316B04 00200114 3C101000 */ lui $s0, 0x1000 45 | /* 316B08 00200118 3C19A000 */ lui $t9, 0xa000 46 | /* 316B0C 0020011C 2418000F */ li $t8, 15 47 | /* 316B10 00200120 240F0009 */ li $t7, 9 48 | /* 316B14 00200124 240E0003 */ li $t6, 3 49 | /* 316B18 00200128 0060682D */ move $t5, $v1 50 | .L0020012C: 51 | /* 316B1C 0020012C 8D820000 */ lw $v0, ($t4) 52 | /* 316B20 00200130 30420003 */ andi $v0, $v0, 3 53 | /* 316B24 00200134 10400007 */ beqz $v0, .L00200154 54 | /* 316B28 00200138 01101021 */ addu $v0, $t0, $s0 55 | /* 316B2C 0020013C 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460 56 | /* 316B30 00200140 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10 57 | .L00200144: 58 | /* 316B34 00200144 8C620000 */ lw $v0, ($v1) 59 | /* 316B38 00200148 30420003 */ andi $v0, $v0, 3 60 | /* 316B3C 0020014C 1440FFFD */ bnez $v0, .L00200144 61 | /* 316B40 00200150 01101021 */ addu $v0, $t0, $s0 62 | .L00200154: 63 | /* 316B44 00200154 00591025 */ or $v0, $v0, $t9 64 | /* 316B48 00200158 8C440000 */ lw $a0, ($v0) 65 | /* 316B4C 0020015C 3087FFFF */ andi $a3, $a0, 0xffff 66 | /* 316B50 00200160 00043402 */ srl $a2, $a0, 0x10 67 | /* 316B54 00200164 00E61021 */ addu $v0, $a3, $a2 68 | /* 316B58 00200168 00A22821 */ addu $a1, $a1, $v0 69 | /* 316B5C 0020016C 00091682 */ srl $v0, $t1, 0x1a 70 | /* 316B60 00200170 14580010 */ bne $v0, $t8, .L002001B4 71 | /* 316B64 00200174 00041682 */ srl $v0, $a0, 0x1a 72 | /* 316B68 00200178 144F000E */ bne $v0, $t7, .L002001B4 73 | /* 316B6C 0020017C 00000000 */ nop 74 | /* 316B70 00200180 00041542 */ srl $v0, $a0, 0x15 75 | /* 316B74 00200184 3043001F */ andi $v1, $v0, 0x1f 76 | /* 316B78 00200188 00091402 */ srl $v0, $t1, 0x10 77 | /* 316B7C 0020018C 3042001F */ andi $v0, $v0, 0x1f 78 | /* 316B80 00200190 14620008 */ bne $v1, $v0, .L002001B4 79 | /* 316B84 00200194 00041682 */ srl $v0, $a0, 0x1a 80 | /* 316B88 00200198 30C2001F */ andi $v0, $a2, 0x1f 81 | /* 316B8C 0020019C 14620005 */ bne $v1, $v0, .L002001B4 82 | /* 316B90 002001A0 00041682 */ srl $v0, $a0, 0x1a 83 | /* 316B94 002001A4 00A72823 */ subu $a1, $a1, $a3 84 | /* 316B98 002001A8 3122FFFF */ andi $v0, $t1, 0xffff 85 | /* 316B9C 002001AC 00A22823 */ subu $a1, $a1, $v0 86 | /* 316BA0 002001B0 00041682 */ srl $v0, $a0, 0x1a 87 | .L002001B4: 88 | /* 316BA4 002001B4 144E0006 */ bne $v0, $t6, .L002001D0 89 | /* 316BA8 002001B8 25080004 */ addiu $t0, $t0, 4 90 | /* 316BAC 002001BC 3083FFFF */ andi $v1, $a0, 0xffff 91 | /* 316BB0 002001C0 00041402 */ srl $v0, $a0, 0x10 92 | /* 316BB4 002001C4 3042FC00 */ andi $v0, $v0, 0xfc00 93 | /* 316BB8 002001C8 00621821 */ addu $v1, $v1, $v0 94 | /* 316BBC 002001CC 00A32823 */ subu $a1, $a1, $v1 95 | .L002001D0: 96 | /* 316BC0 002001D0 010D102B */ sltu $v0, $t0, $t5 97 | /* 316BC4 002001D4 1440FFD5 */ bnez $v0, .L0020012C 98 | /* 316BC8 002001D8 0080482D */ move $t1, $a0 99 | .L002001DC: 100 | /* 316BCC 002001DC 3C02FFF2 */ lui $v0, (0xFFF222E0 >> 16) # lui $v0, 0xfff2 101 | /* 316BD0 002001E0 344222E0 */ ori $v0, (0xFFF222E0 & 0xFFFF) # ori $v0, $v0, 0x22e0 102 | /* 316BD4 002001E4 00A21021 */ addu $v0, $a1, $v0 103 | /* 316BD8 002001E8 01621023 */ subu $v0, $t3, $v0 104 | /* 316BDC 002001EC 01425021 */ addu $t2, $t2, $v0 105 | /* 316BE0 002001F0 0140F809 */ jalr $t2 106 | /* 316BE4 002001F4 00000000 */ nop 107 | /* 316BE8 002001F8 8FBF0014 */ lw $ra, 0x14($sp) 108 | /* 316BEC 002001FC 8FB00010 */ lw $s0, 0x10($sp) 109 | /* 316BF0 00200200 03E00008 */ jr $ra 110 | /* 316BF4 00200204 27BD0018 */ addiu $sp, $sp, 0x18 111 | 112 | /* 316BF8 00200208 00000000 */ nop 113 | /* 316BFC 0020020C 00000000 */ nop 114 | -------------------------------------------------------------------------------- /papermario/asm/CODE_316f30_len_f0.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text002B2000, "ax" 3 | 4 | /* 316F30 002B2000 27BDFFE8 */ addiu $sp, $sp, -0x18 5 | /* 316F34 002B2004 3C040031 */ lui $a0, %hi(D_003169F0) # $a0, 0x31 6 | /* 316F38 002B2008 248469F0 */ addiu $a0, %lo(D_003169F0) # addiu $a0, $a0, 0x69f0 7 | /* 316F3C 002B200C 3C050031 */ lui $a1, %hi(D_00316A70) # $a1, 0x31 8 | /* 316F40 002B2010 24A56A70 */ addiu $a1, %lo(D_00316A70) # addiu $a1, $a1, 0x6a70 9 | /* 316F44 002B2014 3C068020 */ lui $a2, 0x8020 10 | /* 316F48 002B2018 24C60000 */ addiu $a2, $a2, 0 11 | /* 316F4C 002B201C AFBF0010 */ sw $ra, 0x10($sp) 12 | /* 316F50 002B2020 0C00A5CF */ jal func_0002973C 13 | /* 316F54 002B2024 00000000 */ nop 14 | /* 316F58 002B2028 0C080000 */ jal func_00200000 15 | /* 316F5C 002B202C 00000000 */ nop 16 | /* 316F60 002B2030 8FBF0010 */ lw $ra, 0x10($sp) 17 | /* 316F64 002B2034 03E00008 */ jr $ra 18 | /* 316F68 002B2038 27BD0018 */ addiu $sp, $sp, 0x18 19 | 20 | /* 316F6C 002B203C 27BDFFE8 */ addiu $sp, $sp, -0x18 21 | /* 316F70 002B2040 3C040031 */ lui $a0, %hi(D_00316A70) # $a0, 0x31 22 | /* 316F74 002B2044 24846A70 */ addiu $a0, %lo(D_00316A70) # addiu $a0, $a0, 0x6a70 23 | /* 316F78 002B2048 3C050031 */ lui $a1, %hi(D_00316C00) # $a1, 0x31 24 | /* 316F7C 002B204C 24A56C00 */ addiu $a1, %lo(D_00316C00) # addiu $a1, $a1, 0x6c00 25 | /* 316F80 002B2050 3C068020 */ lui $a2, %hi(D_80200080) # $a2, 0x8020 26 | /* 316F84 002B2054 24C60080 */ addiu $a2, %lo(D_80200080) # addiu $a2, $a2, 0x80 27 | /* 316F88 002B2058 AFBF0010 */ sw $ra, 0x10($sp) 28 | /* 316F8C 002B205C 0C00A5CF */ jal func_0002973C 29 | /* 316F90 002B2060 00000000 */ nop 30 | /* 316F94 002B2064 0C080020 */ jal func_00200080 31 | /* 316F98 002B2068 00000000 */ nop 32 | /* 316F9C 002B206C 8FBF0010 */ lw $ra, 0x10($sp) 33 | /* 316FA0 002B2070 03E00008 */ jr $ra 34 | /* 316FA4 002B2074 27BD0018 */ addiu $sp, $sp, 0x18 35 | 36 | /* 316FA8 002B2078 27BDFFE8 */ addiu $sp, $sp, -0x18 37 | /* 316FAC 002B207C 3C040031 */ lui $a0, %hi(D_00316C00) # $a0, 0x31 38 | /* 316FB0 002B2080 24846C00 */ addiu $a0, %lo(D_00316C00) # addiu $a0, $a0, 0x6c00 39 | /* 316FB4 002B2084 3C050031 */ lui $a1, %hi(D_00316D90) # $a1, 0x31 40 | /* 316FB8 002B2088 24A56D90 */ addiu $a1, %lo(D_00316D90) # addiu $a1, $a1, 0x6d90 41 | /* 316FBC 002B208C 3C06802B */ lui $a2, %hi(D_802AE000) # $a2, 0x802b 42 | /* 316FC0 002B2090 24C6E000 */ addiu $a2, %lo(D_802AE000) # addiu $a2, $a2, -0x2000 43 | /* 316FC4 002B2094 AFBF0010 */ sw $ra, 0x10($sp) 44 | /* 316FC8 002B2098 0C00A5CF */ jal func_0002973C 45 | /* 316FCC 002B209C 00000000 */ nop 46 | /* 316FD0 002B20A0 0C0AB800 */ jal func_002AE000 47 | /* 316FD4 002B20A4 00000000 */ nop 48 | /* 316FD8 002B20A8 8FBF0010 */ lw $ra, 0x10($sp) 49 | /* 316FDC 002B20AC 03E00008 */ jr $ra 50 | /* 316FE0 002B20B0 27BD0018 */ addiu $sp, $sp, 0x18 51 | 52 | /* 316FE4 002B20B4 27BDFFE8 */ addiu $sp, $sp, -0x18 53 | /* 316FE8 002B20B8 3C040031 */ lui $a0, %hi(D_00316D90) # $a0, 0x31 54 | /* 316FEC 002B20BC 24846D90 */ addiu $a0, %lo(D_00316D90) # addiu $a0, $a0, 0x6d90 55 | /* 316FF0 002B20C0 3C050031 */ lui $a1, %hi(D_00316F30) # $a1, 0x31 56 | /* 316FF4 002B20C4 24A56F30 */ addiu $a1, %lo(D_00316F30) # addiu $a1, $a1, 0x6f30 57 | /* 316FF8 002B20C8 3C06802B */ lui $a2, %hi(D_802AE000) # $a2, 0x802b 58 | /* 316FFC 002B20CC 24C6E000 */ addiu $a2, %lo(D_802AE000) # addiu $a2, $a2, -0x2000 59 | /* 317000 002B20D0 AFBF0010 */ sw $ra, 0x10($sp) 60 | /* 317004 002B20D4 0C00A5CF */ jal func_0002973C 61 | /* 317008 002B20D8 00000000 */ nop 62 | /* 31700C 002B20DC 0C0AB800 */ jal func_002AE000 63 | /* 317010 002B20E0 00000000 */ nop 64 | /* 317014 002B20E4 8FBF0010 */ lw $ra, 0x10($sp) 65 | /* 317018 002B20E8 03E00008 */ jr $ra 66 | /* 31701C 002B20EC 27BD0018 */ addiu $sp, $sp, 0x18 67 | -------------------------------------------------------------------------------- /papermario/asm/CODE_e20eb0_len_9c0.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text002B7000, "ax" 3 | 4 | func_002B7000: 5 | /* E20EB0 002B7000 3C014387 */ li $at, 0x43870000 # 270.000000 6 | /* E20EB4 002B7004 44810000 */ mtc1 $at, $f0 7 | /* E20EB8 002B7008 00000000 */ nop 8 | /* E20EBC 002B700C 460C003E */ c.le.s $f0, $f12 9 | /* E20EC0 002B7010 00000000 */ nop 10 | /* E20EC4 002B7014 45000009 */ .byte 0x45,0x00,0x00,0x09 /* Because of invalid n64 opcode bc1f */ 11 | /* E20EC8 002B7018 240200FF */ /* E20ECC 002B701C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 12 | /* E20ED0 002B7020 44810000 */ mtc1 $at, $f0 13 | /* E20ED4 002B7024 00000000 */ nop 14 | /* E20ED8 002B7028 460C0001 */ sub.s $f0, $f0, $f12 15 | /* E20EDC 002B702C 4600010D */ trunc.w.s $f4, $f0 16 | /* E20EE0 002B7030 44032000 */ mfc1 $v1, $f4 17 | /* E20EE4 002B7034 080ADC2B */ j func_002B70AC 18 | /* E20EE8 002B7038 00431023 */ subu $v0, $v0, $v1 19 | 20 | .L002B703C: 21 | /* E20EEC 002B703C 3C014334 */ li $at, 0x43340000 # 180.000000 22 | /* E20EF0 002B7040 44811000 */ mtc1 $at, $f2 23 | /* E20EF4 002B7044 00000000 */ nop 24 | /* E20EF8 002B7048 460C103E */ c.le.s $f2, $f12 25 | /* E20EFC 002B704C 00000000 */ nop 26 | /* E20F00 002B7050 45000006 */ .byte 0x45,0x00,0x00,0x06 /* Because of invalid n64 opcode bc1f */ 27 | /* E20F04 002B7054 00000000 */ /* E20F08 002B7058 46026001 */ sub.s $f0, $f12, $f2 28 | /* E20F0C 002B705C 4600010D */ trunc.w.s $f4, $f0 29 | /* E20F10 002B7060 44032000 */ mfc1 $v1, $f4 30 | /* E20F14 002B7064 080ADC2B */ j func_002B70AC 31 | /* E20F18 002B7068 00431023 */ subu $v0, $v0, $v1 32 | 33 | .L002B706C: 34 | /* E20F1C 002B706C 3C0142B4 */ li $at, 0x42B40000 # 90.000000 35 | /* E20F20 002B7070 44810000 */ mtc1 $at, $f0 36 | /* E20F24 002B7074 00000000 */ nop 37 | /* E20F28 002B7078 460C003E */ c.le.s $f0, $f12 38 | /* E20F2C 002B707C 00000000 */ nop 39 | /* E20F30 002B7080 45000006 */ .byte 0x45,0x00,0x00,0x06 /* Because of invalid n64 opcode bc1f */ 40 | /* E20F34 002B7084 240200FF */ /* E20F38 002B7088 460C1001 */ sub.s $f0, $f2, $f12 41 | /* E20F3C 002B708C 4600010D */ trunc.w.s $f4, $f0 42 | /* E20F40 002B7090 44032000 */ mfc1 $v1, $f4 43 | /* E20F44 002B7094 080ADC2B */ j func_002B70AC 44 | /* E20F48 002B7098 00431023 */ subu $v0, $v0, $v1 45 | 46 | .L002B709C: 47 | /* E20F4C 002B709C 4600610D */ trunc.w.s $f4, $f12 48 | /* E20F50 002B70A0 44032000 */ mfc1 $v1, $f4 49 | /* E20F54 002B70A4 00000000 */ nop 50 | /* E20F58 002B70A8 00431023 */ subu $v0, $v0, $v1 51 | func_002B70AC: 52 | /* E20F5C 002B70AC 03E00008 */ jr $ra 53 | /* E20F60 002B70B0 00431023 */ subu $v0, $v0, $v1 54 | 55 | /* E20F64 002B70B4 27BDFFE8 */ addiu $sp, $sp, -0x18 56 | /* E20F68 002B70B8 AFB00010 */ sw $s0, 0x10($sp) 57 | /* E20F6C 002B70BC 3C10802B */ lui $s0, %hi(D_802B79A8) # $s0, 0x802b 58 | /* E20F70 002B70C0 261079A8 */ addiu $s0, %lo(D_802B79A8) # addiu $s0, $s0, 0x79a8 59 | /* E20F74 002B70C4 AFBF0014 */ sw $ra, 0x14($sp) 60 | /* E20F78 002B70C8 8E040000 */ lw $a0, ($s0) 61 | /* E20F7C 002B70CC 0C00A580 */ jal func_00029600 62 | /* E20F80 002B70D0 2405002C */ li $a1, 44 63 | /* E20F84 002B70D4 3C058011 */ lui $a1, %hi(D_8010EFC8) # $a1, 0x8011 64 | /* E20F88 002B70D8 24A5EFC8 */ addiu $a1, %lo(D_8010EFC8) # addiu $a1, $a1, -0x1038 65 | /* E20F8C 002B70DC 8CA400C8 */ lw $a0, 0xc8($a1) 66 | /* E20F90 002B70E0 8E020000 */ lw $v0, ($s0) 67 | /* E20F94 002B70E4 AC440000 */ sw $a0, ($v0) 68 | /* E20F98 002B70E8 848300A8 */ lh $v1, 0xa8($a0) 69 | /* E20F9C 002B70EC C480003C */ lwc1 $f0, 0x3c($a0) 70 | /* E20FA0 002B70F0 44831000 */ mtc1 $v1, $f2 71 | /* E20FA4 002B70F4 00000000 */ nop 72 | /* E20FA8 002B70F8 468010A0 */ cvt.s.w $f2, $f2 73 | /* E20FAC 002B70FC 46020000 */ add.s $f0, $f0, $f2 74 | /* E20FB0 002B7100 3C014100 */ li $at, 0x41000000 # 8.000000 75 | /* E20FB4 002B7104 44811000 */ mtc1 $at, $f2 76 | /* E20FB8 002B7108 00000000 */ nop 77 | /* E20FBC 002B710C 46020000 */ add.s $f0, $f0, $f2 78 | /* E20FC0 002B7110 E440001C */ swc1 $f0, 0x1c($v0) 79 | /* E20FC4 002B7114 E4400008 */ swc1 $f0, 8($v0) 80 | /* E20FC8 002B7118 C4800038 */ lwc1 $f0, 0x38($a0) 81 | /* E20FCC 002B711C E4400004 */ swc1 $f0, 4($v0) 82 | /* E20FD0 002B7120 C4820040 */ lwc1 $f2, 0x40($a0) 83 | /* E20FD4 002B7124 A040002A */ sb $zero, 0x2a($v0) 84 | /* E20FD8 002B7128 8E040000 */ lw $a0, ($s0) 85 | /* E20FDC 002B712C 3C013DCC */ li $at, 0x3DCC0000 # 0.099609 86 | /* E20FE0 002B7130 3421CCCD */ ori $at, (0x3DCCCCCD & 0xFFFF) # ori $at, $at, 0xcccd 87 | /* E20FE4 002B7134 44810000 */ mtc1 $at, $f0 88 | /* E20FE8 002B7138 3C03802B */ lui $v1, %hi(D_802B742C) # $v1, 0x802b 89 | /* E20FEC 002B713C 2463742C */ addiu $v1, %lo(D_802B742C) # addiu $v1, $v1, 0x742c 90 | /* E20FF0 002B7140 AC400018 */ sw $zero, 0x18($v0) 91 | /* E20FF4 002B7144 3C018011 */ lui $at, %hi(D_8010C940) # $at, 0x8011 92 | /* E20FF8 002B7148 AC23C940 */ sw $v1, %lo(D_8010C940)($at) 93 | /* E20FFC 002B714C E442000C */ swc1 $f2, 0xc($v0) 94 | /* E21000 002B7150 E4800014 */ swc1 $f0, 0x14($a0) 95 | /* E21004 002B7154 8CA20004 */ lw $v0, 4($a1) 96 | /* E21008 002B7158 3C013ECC */ li $at, 0x3ECC0000 # 0.398438 97 | /* E2100C 002B715C 3421CCCD */ ori $at, (0x3ECCCCCD & 0xFFFF) # ori $at, $at, 0xcccd 98 | /* E21010 002B7160 44810000 */ mtc1 $at, $f0 99 | /* E21014 002B7164 34420020 */ ori $v0, $v0, 0x20 100 | /* E21018 002B7168 ACA20004 */ sw $v0, 4($a1) 101 | /* E2101C 002B716C A080002A */ sb $zero, 0x2a($a0) 102 | /* E21020 002B7170 3C038007 */ lui $v1, %hi(D_80077410) # $v1, 0x8007 103 | /* E21024 002B7174 8C637410 */ lw $v1, %lo(D_80077410)($v1) 104 | /* E21028 002B7178 E4800014 */ swc1 $f0, 0x14($a0) 105 | /* E2102C 002B717C 00031080 */ sll $v0, $v1, 2 106 | /* E21030 002B7180 00431021 */ addu $v0, $v0, $v1 107 | /* E21034 002B7184 00021080 */ sll $v0, $v0, 2 108 | /* E21038 002B7188 00431023 */ subu $v0, $v0, $v1 109 | /* E2103C 002B718C 000218C0 */ sll $v1, $v0, 3 110 | /* E21040 002B7190 00431021 */ addu $v0, $v0, $v1 111 | /* E21044 002B7194 000210C0 */ sll $v0, $v0, 3 112 | /* E21048 002B7198 3C01800B */ lui $at, 0x800b 113 | /* E2104C 002B719C 00220821 */ addu $at, $at, $v0 114 | /* E21050 002B71A0 C4201DEC */ lwc1 $f0, 0x1dec($at) 115 | /* E21054 002B71A4 240200FF */ li $v0, 255 116 | /* E21058 002B71A8 8E030000 */ lw $v1, ($s0) 117 | /* E2105C 002B71AC 46000007 */ neg.s $f0, $f0 118 | /* E21060 002B71B0 A062002B */ sb $v0, 0x2b($v1) 119 | /* E21064 002B71B4 E4600010 */ swc1 $f0, 0x10($v1) 120 | /* E21068 002B71B8 8FBF0014 */ lw $ra, 0x14($sp) 121 | /* E2106C 002B71BC 8FB00010 */ lw $s0, 0x10($sp) 122 | /* E21070 002B71C0 03E00008 */ jr $ra 123 | /* E21074 002B71C4 27BD0018 */ addiu $sp, $sp, 0x18 124 | 125 | /* E21078 002B71C8 3C028011 */ lui $v0, %hi(D_8010EFCC) # $v0, 0x8011 126 | /* E2107C 002B71CC 8C42EFCC */ lw $v0, %lo(D_8010EFCC)($v0) 127 | /* E21080 002B71D0 27BDFF28 */ addiu $sp, $sp, -0xd8 128 | /* E21084 002B71D4 AFBF00D0 */ sw $ra, 0xd0($sp) 129 | /* E21088 002B71D8 AFB500CC */ sw $s5, 0xcc($sp) 130 | /* E2108C 002B71DC AFB400C8 */ sw $s4, 0xc8($sp) 131 | /* E21090 002B71E0 AFB300C4 */ sw $s3, 0xc4($sp) 132 | /* E21094 002B71E4 AFB200C0 */ sw $s2, 0xc0($sp) 133 | /* E21098 002B71E8 AFB100BC */ sw $s1, 0xbc($sp) 134 | /* E2109C 002B71EC 30420020 */ andi $v0, $v0, 0x20 135 | /* E210A0 002B71F0 10400085 */ beqz $v0, .L002B7408 136 | /* E210A4 002B71F4 AFB000B8 */ sw $s0, 0xb8($sp) 137 | /* E210A8 002B71F8 27B00038 */ addiu $s0, $sp, 0x38 138 | /* E210AC 002B71FC 3C14802B */ lui $s4, %hi(D_802B79A8) # $s4, 0x802b 139 | /* E210B0 002B7200 269479A8 */ addiu $s4, %lo(D_802B79A8) # addiu $s4, $s4, 0x79a8 140 | /* E210B4 002B7204 8E820000 */ lw $v0, ($s4) 141 | /* E210B8 002B7208 0200202D */ move $a0, $s0 142 | /* E210BC 002B720C 8C450014 */ lw $a1, 0x14($v0) 143 | /* E210C0 002B7210 3C150001 */ lui $s5, (0x00011630 >> 16) # lui $s5, 1 144 | /* E210C4 002B7214 00A0302D */ move $a2, $a1 145 | /* E210C8 002B7218 0C019DF0 */ jal func_000677C0 146 | /* E210CC 002B721C 00A0382D */ move $a3, $a1 147 | /* E210D0 002B7220 3C038007 */ lui $v1, %hi(D_80077410) # $v1, 0x8007 148 | /* E210D4 002B7224 8C637410 */ lw $v1, %lo(D_80077410)($v1) 149 | /* E210D8 002B7228 27B10078 */ addiu $s1, $sp, 0x78 150 | /* E210DC 002B722C 00031080 */ sll $v0, $v1, 2 151 | /* E210E0 002B7230 00431021 */ addu $v0, $v0, $v1 152 | /* E210E4 002B7234 00021080 */ sll $v0, $v0, 2 153 | /* E210E8 002B7238 00431023 */ subu $v0, $v0, $v1 154 | /* E210EC 002B723C 000218C0 */ sll $v1, $v0, 3 155 | /* E210F0 002B7240 00431021 */ addu $v0, $v0, $v1 156 | /* E210F4 002B7244 000210C0 */ sll $v0, $v0, 3 157 | /* E210F8 002B7248 8E830000 */ lw $v1, ($s4) 158 | /* E210FC 002B724C 3C01800B */ lui $at, 0x800b 159 | /* E21100 002B7250 00220821 */ addu $at, $at, $v0 160 | /* E21104 002B7254 C4221DEC */ lwc1 $f2, 0x1dec($at) 161 | /* E21108 002B7258 C4640010 */ lwc1 $f4, 0x10($v1) 162 | /* E2110C 002B725C 44800000 */ mtc1 $zero, $f0 163 | /* E21110 002B7260 46022101 */ sub.s $f4, $f4, $f2 164 | /* E21114 002B7264 3C073F80 */ lui $a3, 0x3f80 165 | /* E21118 002B7268 44060000 */ mfc1 $a2, $f0 166 | /* E2111C 002B726C 44052000 */ mfc1 $a1, $f4 167 | /* E21120 002B7270 0220202D */ move $a0, $s1 168 | /* E21124 002B7274 0C019EC8 */ jal func_00067B20 169 | /* E21128 002B7278 AFA60010 */ sw $a2, 0x10($sp) 170 | /* E2112C 002B727C 0200202D */ move $a0, $s0 171 | /* E21130 002B7280 0220282D */ move $a1, $s1 172 | /* E21134 002B7284 0C019D80 */ jal func_00067600 173 | /* E21138 002B7288 0200302D */ move $a2, $s0 174 | /* E2113C 002B728C 8E820000 */ lw $v0, ($s4) 175 | /* E21140 002B7290 36B51630 */ ori $s5, (0x00011630 & 0xFFFF) # ori $s5, $s5, 0x1630 176 | /* E21144 002B7294 8C450004 */ lw $a1, 4($v0) 177 | /* E21148 002B7298 8C460008 */ lw $a2, 8($v0) 178 | /* E2114C 002B729C 8C47000C */ lw $a3, 0xc($v0) 179 | /* E21150 002B72A0 0C019E40 */ jal func_00067900 180 | /* E21154 002B72A4 0220202D */ move $a0, $s1 181 | /* E21158 002B72A8 0200202D */ move $a0, $s0 182 | /* E2115C 002B72AC 0220282D */ move $a1, $s1 183 | /* E21160 002B72B0 0C019D80 */ jal func_00067600 184 | /* E21164 002B72B4 0220302D */ move $a2, $s1 185 | /* E21168 002B72B8 0220202D */ move $a0, $s1 186 | /* E2116C 002B72BC 3C108007 */ lui $s0, %hi(D_800741F0) # $s0, 0x8007 187 | /* E21170 002B72C0 261041F0 */ addiu $s0, %lo(D_800741F0) # addiu $s0, $s0, 0x41f0 188 | /* E21174 002B72C4 3C13800A */ lui $s3, %hi(D_8009A674) # $s3, 0x800a 189 | /* E21178 002B72C8 2673A674 */ addiu $s3, %lo(D_8009A674) # addiu $s3, $s3, -0x598c 190 | /* E2117C 002B72CC 96050000 */ lhu $a1, ($s0) 191 | /* E21180 002B72D0 8E620000 */ lw $v0, ($s3) 192 | /* E21184 002B72D4 00052980 */ sll $a1, $a1, 6 193 | /* E21188 002B72D8 00B52821 */ addu $a1, $a1, $s5 194 | /* E2118C 002B72DC 0C019D40 */ jal func_00067500 195 | /* E21190 002B72E0 00452821 */ addu $a1, $v0, $a1 196 | /* E21194 002B72E4 3C03DA38 */ lui $v1, (0xDA380002 >> 16) # lui $v1, 0xda38 197 | /* E21198 002B72E8 34630002 */ ori $v1, (0xDA380002 & 0xFFFF) # ori $v1, $v1, 2 198 | /* E2119C 002B72EC 0000202D */ move $a0, $zero 199 | /* E211A0 002B72F0 0080282D */ move $a1, $a0 200 | /* E211A4 002B72F4 0080302D */ move $a2, $a0 201 | /* E211A8 002B72F8 3C12800A */ lui $s2, %hi(D_8009A66C) # $s2, 0x800a 202 | /* E211AC 002B72FC 2652A66C */ addiu $s2, %lo(D_8009A66C) # addiu $s2, $s2, -0x5994 203 | /* E211B0 002B7300 0080382D */ move $a3, $a0 204 | /* E211B4 002B7304 8E480000 */ lw $t0, ($s2) 205 | /* E211B8 002B7308 96020000 */ lhu $v0, ($s0) 206 | /* E211BC 002B730C 0100482D */ move $t1, $t0 207 | /* E211C0 002B7310 25080008 */ addiu $t0, $t0, 8 208 | /* E211C4 002B7314 AE480000 */ sw $t0, ($s2) 209 | /* E211C8 002B7318 AD230000 */ sw $v1, ($t1) 210 | /* E211CC 002B731C 24430001 */ addiu $v1, $v0, 1 211 | /* E211D0 002B7320 3042FFFF */ andi $v0, $v0, 0xffff 212 | /* E211D4 002B7324 00021180 */ sll $v0, $v0, 6 213 | /* E211D8 002B7328 00551021 */ addu $v0, $v0, $s5 214 | /* E211DC 002B732C A6030000 */ sh $v1, ($s0) 215 | /* E211E0 002B7330 8E630000 */ lw $v1, ($s3) 216 | /* E211E4 002B7334 24100440 */ li $s0, 1088 217 | /* E211E8 002B7338 00621821 */ addu $v1, $v1, $v0 218 | /* E211EC 002B733C 25020008 */ addiu $v0, $t0, 8 219 | /* E211F0 002B7340 AD230004 */ sw $v1, 4($t1) 220 | /* E211F4 002B7344 AE420000 */ sw $v0, ($s2) 221 | /* E211F8 002B7348 3C02DE00 */ lui $v0, 0xde00 222 | /* E211FC 002B734C AD020000 */ sw $v0, ($t0) 223 | /* E21200 002B7350 3C02802B */ lui $v0, %hi(D_802B7930) # $v0, 0x802b 224 | /* E21204 002B7354 24427930 */ addiu $v0, %lo(D_802B7930) # addiu $v0, $v0, 0x7930 225 | /* E21208 002B7358 AD020004 */ sw $v0, 4($t0) 226 | /* E2120C 002B735C 3C02802B */ lui $v0, %hi(D_802B7710) # $v0, 0x802b 227 | /* E21210 002B7360 24427710 */ addiu $v0, %lo(D_802B7710) # addiu $v0, $v0, 0x7710 228 | /* E21214 002B7364 AFA20020 */ sw $v0, 0x20($sp) 229 | /* E21218 002B7368 3C02802B */ lui $v0, %hi(D_802B7910) # $v0, 0x802b 230 | /* E2121C 002B736C 24427910 */ addiu $v0, %lo(D_802B7910) # addiu $v0, $v0, 0x7910 231 | /* E21220 002B7370 AFA20024 */ sw $v0, 0x24($sp) 232 | /* E21224 002B7374 24020020 */ li $v0, 32 233 | /* E21228 002B7378 A7A20028 */ sh $v0, 0x28($sp) 234 | /* E2122C 002B737C A7A2002A */ sh $v0, 0x2a($sp) 235 | /* E21230 002B7380 2402FFF0 */ li $v0, -16 236 | /* E21234 002B7384 A7A2002C */ sh $v0, 0x2c($sp) 237 | /* E21238 002B7388 2402001A */ li $v0, 26 238 | /* E2123C 002B738C A7A2002E */ sh $v0, 0x2e($sp) 239 | /* E21240 002B7390 240200FF */ li $v0, 255 240 | /* E21244 002B7394 A3A20030 */ sb $v0, 0x30($sp) 241 | /* E21248 002B7398 AFA00010 */ sw $zero, 0x10($sp) 242 | /* E2124C 002B739C AFA00014 */ sw $zero, 0x14($sp) 243 | /* E21250 002B73A0 0C04EAA7 */ jal func_0013AA9C 244 | /* E21254 002B73A4 AFB00018 */ sw $s0, 0x18($sp) 245 | /* E21258 002B73A8 0000202D */ move $a0, $zero 246 | /* E2125C 002B73AC 8E820000 */ lw $v0, ($s4) 247 | /* E21260 002B73B0 24050006 */ li $a1, 6 248 | /* E21264 002B73B4 9046002B */ lbu $a2, 0x2b($v0) 249 | /* E21268 002B73B8 240200FF */ li $v0, 255 250 | /* E2126C 002B73BC AFA20014 */ sw $v0, 0x14($sp) 251 | /* E21270 002B73C0 AFB00018 */ sw $s0, 0x18($sp) 252 | /* E21274 002B73C4 00C0382D */ move $a3, $a2 253 | /* E21278 002B73C8 0C04EAA7 */ jal func_0013AA9C 254 | /* E2127C 002B73CC AFA60010 */ sw $a2, 0x10($sp) 255 | /* E21280 002B73D0 0000202D */ move $a0, $zero 256 | /* E21284 002B73D4 27A50020 */ addiu $a1, $sp, 0x20 257 | /* E21288 002B73D8 24060040 */ li $a2, 64 258 | /* E2128C 002B73DC 0C04EBDC */ jal func_0013AF70 259 | /* E21290 002B73E0 0220382D */ move $a3, $s1 260 | /* E21294 002B73E4 3C04D838 */ lui $a0, (0xD8380002 >> 16) # lui $a0, 0xd838 261 | /* E21298 002B73E8 8E420000 */ lw $v0, ($s2) 262 | /* E2129C 002B73EC 34840002 */ ori $a0, (0xD8380002 & 0xFFFF) # ori $a0, $a0, 2 263 | /* E212A0 002B73F0 0040182D */ move $v1, $v0 264 | /* E212A4 002B73F4 24420008 */ addiu $v0, $v0, 8 265 | /* E212A8 002B73F8 AE420000 */ sw $v0, ($s2) 266 | /* E212AC 002B73FC 24020040 */ li $v0, 64 267 | /* E212B0 002B7400 AC640000 */ sw $a0, ($v1) 268 | /* E212B4 002B7404 AC620004 */ sw $v0, 4($v1) 269 | .L002B7408: 270 | /* E212B8 002B7408 8FBF00D0 */ lw $ra, 0xd0($sp) 271 | /* E212BC 002B740C 8FB500CC */ lw $s5, 0xcc($sp) 272 | /* E212C0 002B7410 8FB400C8 */ lw $s4, 0xc8($sp) 273 | /* E212C4 002B7414 8FB300C4 */ lw $s3, 0xc4($sp) 274 | /* E212C8 002B7418 8FB200C0 */ lw $s2, 0xc0($sp) 275 | /* E212CC 002B741C 8FB100BC */ lw $s1, 0xbc($sp) 276 | /* E212D0 002B7420 8FB000B8 */ lw $s0, 0xb8($sp) 277 | /* E212D4 002B7424 03E00008 */ jr $ra 278 | /* E212D8 002B7428 27BD00D8 */ addiu $sp, $sp, 0xd8 279 | 280 | /* E212DC 002B742C 27BDFFE8 */ addiu $sp, $sp, -0x18 281 | /* E212E0 002B7430 3C020204 */ lui $v0, (0x02040020 >> 16) # lui $v0, 0x204 282 | /* E212E4 002B7434 AFB00010 */ sw $s0, 0x10($sp) 283 | /* E212E8 002B7438 3C108011 */ lui $s0, %hi(D_8010EFC8) # $s0, 0x8011 284 | /* E212EC 002B743C 2610EFC8 */ addiu $s0, %lo(D_8010EFC8) # addiu $s0, $s0, -0x1038 285 | /* E212F0 002B7440 AFBF0014 */ sw $ra, 0x14($sp) 286 | /* E212F4 002B7444 8E030000 */ lw $v1, ($s0) 287 | /* E212F8 002B7448 34420020 */ ori $v0, (0x02040020 & 0xFFFF) # ori $v0, $v0, 0x20 288 | /* E212FC 002B744C 00621824 */ and $v1, $v1, $v0 289 | /* E21300 002B7450 3C020200 */ lui $v0, 0x200 290 | /* E21304 002B7454 14620010 */ bne $v1, $v0, .L002B7498 291 | /* E21308 002B7458 240600FF */ li $a2, 255 292 | /* E2130C 002B745C 3C03800A */ lui $v1, %hi(D_8009A600) # $v1, 0x800a 293 | /* E21310 002B7460 8C63A600 */ lw $v1, %lo(D_8009A600)($v1) 294 | /* E21314 002B7464 24020004 */ li $v0, 4 295 | /* E21318 002B7468 1062000B */ beq $v1, $v0, .L002B7498 296 | /* E2131C 002B746C 00000000 */ nop 297 | /* E21320 002B7470 8E030004 */ lw $v1, 4($s0) 298 | /* E21324 002B7474 30620001 */ andi $v0, $v1, 1 299 | /* E21328 002B7478 14400007 */ bnez $v0, .L002B7498 300 | /* E2132C 002B747C 00000000 */ nop 301 | /* E21330 002B7480 82020015 */ lb $v0, 0x15($s0) 302 | /* E21334 002B7484 14400004 */ bnez $v0, .L002B7498 303 | /* E21338 002B7488 3C020001 */ lui $v0, %hi(D_00010001) # $v0, 1 304 | /* E2133C 002B748C 00621024 */ and $v0, $v1, $v0 305 | /* E21340 002B7490 10400005 */ beqz $v0, .L002B74A8 306 | /* E21344 002B7494 00000000 */ nop 307 | .L002B7498: 308 | /* E21348 002B7498 3C03802B */ lui $v1, %hi(D_802B79A8) # $v1, 0x802b 309 | /* E2134C 002B749C 8C6379A8 */ lw $v1, %lo(D_802B79A8)($v1) 310 | /* E21350 002B74A0 24020003 */ li $v0, 3 311 | /* E21354 002B74A4 A062002A */ sb $v0, 0x2a($v1) 312 | .L002B74A8: 313 | /* E21358 002B74A8 3C03802B */ lui $v1, %hi(D_802B79A8) # $v1, 0x802b 314 | /* E2135C 002B74AC 246379A8 */ addiu $v1, %lo(D_802B79A8) # addiu $v1, $v1, 0x79a8 315 | /* E21360 002B74B0 8C640000 */ lw $a0, ($v1) 316 | /* E21364 002B74B4 9085002A */ lbu $a1, 0x2a($a0) 317 | /* E21368 002B74B8 24020001 */ li $v0, 1 318 | /* E2136C 002B74BC 10A20026 */ beq $a1, $v0, .L002B7558 319 | /* E21370 002B74C0 28A20002 */ slti $v0, $a1, 2 320 | /* E21374 002B74C4 10400005 */ beqz $v0, .L002B74DC 321 | /* E21378 002B74C8 24020002 */ li $v0, 2 322 | /* E2137C 002B74CC 10A00009 */ beqz $a1, .L002B74F4 323 | /* E21380 002B74D0 00000000 */ nop 324 | /* E21384 002B74D4 080ADDA0 */ j func_002B7680 325 | /* E21388 002B74D8 00000000 */ nop 326 | 327 | .L002B74DC: 328 | /* E2138C 002B74DC 10A20027 */ beq $a1, $v0, .L002B757C 329 | /* E21390 002B74E0 24020003 */ li $v0, 3 330 | /* E21394 002B74E4 10A20033 */ beq $a1, $v0, .L002B75B4 331 | /* E21398 002B74E8 00000000 */ nop 332 | /* E2139C 002B74EC 080ADDA0 */ j func_002B7680 333 | /* E213A0 002B74F0 00000000 */ nop 334 | 335 | .L002B74F4: 336 | /* E213A4 002B74F4 C4800014 */ lwc1 $f0, 0x14($a0) 337 | /* E213A8 002B74F8 3C01802B */ lui $at, 0x802b 338 | /* E213AC 002B74FC D42279B0 */ ldc1 $f2, 0x79b0($at) 339 | /* E213B0 002B7500 3C01802B */ lui $at, 0x802b 340 | /* E213B4 002B7504 D42479B8 */ ldc1 $f4, 0x79b8($at) 341 | /* E213B8 002B7508 46000021 */ cvt.d.s $f0, $f0 342 | /* E213BC 002B750C 46220000 */ add.d $f0, $f0, $f2 343 | /* E213C0 002B7510 AC800010 */ sw $zero, 0x10($a0) 344 | /* E213C4 002B7514 46200020 */ cvt.s.d $f0, $f0 345 | /* E213C8 002B7518 460000A1 */ cvt.d.s $f2, $f0 346 | /* E213CC 002B751C 4622203E */ c.le.d $f4, $f2 347 | /* E213D0 002B7520 00000000 */ nop 348 | /* E213D4 002B7524 45000056 */ .byte 0x45,0x00,0x00,0x56 /* Because of invalid n64 opcode bc1f */ 349 | /* E213D8 002B7528 E4800014 */ /* E213DC 002B752C 9082002A */ lbu $v0, 0x2a($a0) 350 | /* E213E0 002B7530 3C013F0C */ li $at, 0x3F0C0000 # 0.546875 351 | /* E213E4 002B7534 3421CCCD */ ori $at, (0x3F0CCCCD & 0xFFFF) # ori $at, $at, 0xcccd 352 | /* E213E8 002B7538 44810000 */ mtc1 $at, $f0 353 | /* E213EC 002B753C 24420001 */ addiu $v0, %lo(D_00010001) # addiu $v0, $v0, 1 354 | /* E213F0 002B7540 E4800014 */ swc1 $f0, 0x14($a0) 355 | /* E213F4 002B7544 A082002A */ sb $v0, 0x2a($a0) 356 | /* E213F8 002B7548 8C630000 */ lw $v1, ($v1) 357 | /* E213FC 002B754C 2402000C */ li $v0, 12 358 | /* E21400 002B7550 080ADDA0 */ j func_002B7680 359 | /* E21404 002B7554 AC620020 */ sw $v0, 0x20($v1) 360 | 361 | .L002B7558: 362 | /* E21408 002B7558 8C820020 */ lw $v0, 0x20($a0) 363 | /* E2140C 002B755C AC800010 */ sw $zero, 0x10($a0) 364 | /* E21410 002B7560 2442FFFF */ addiu $v0, $v0, -1 365 | /* E21414 002B7564 1C400046 */ bgtz $v0, .L002B7680 366 | /* E21418 002B7568 AC820020 */ sw $v0, 0x20($a0) 367 | /* E2141C 002B756C 9082002A */ lbu $v0, 0x2a($a0) 368 | /* E21420 002B7570 24420001 */ addiu $v0, $v0, 1 369 | /* E21424 002B7574 080ADDA0 */ j func_002B7680 370 | /* E21428 002B7578 A082002A */ sb $v0, 0x2a($a0) 371 | 372 | .L002B757C: 373 | /* E2142C 002B757C C48C0010 */ lwc1 $f12, 0x10($a0) 374 | /* E21430 002B7580 3C014120 */ li $at, 0x41200000 # 10.000000 375 | /* E21434 002B7584 44810000 */ mtc1 $at, $f0 376 | /* E21438 002B7588 00000000 */ nop 377 | /* E2143C 002B758C 46006300 */ add.s $f12, $f12, $f0 378 | /* E21440 002B7590 3C0143B4 */ li $at, 0x43B40000 # 360.000000 379 | /* E21444 002B7594 44810000 */ mtc1 $at, $f0 380 | /* E21448 002B7598 00000000 */ nop 381 | /* E2144C 002B759C 460C003E */ c.le.s $f0, $f12 382 | /* E21450 002B75A0 00000000 */ nop 383 | /* E21454 002B75A4 45030001 */ .byte 0x45,0x03,0x00,0x01 /* Because of invalid n64 opcode bc1tl */ 384 | /* E21458 002B75A8 46006301 */ .L002B75AC: 385 | /* E2145C 002B75AC 080ADD9D */ j func_002B7674 386 | /* E21460 002B75B0 E48C0010 */ swc1 $f12, 0x10($a0) 387 | 388 | .L002B75B4: 389 | /* E21464 002B75B4 C48C0010 */ lwc1 $f12, 0x10($a0) 390 | /* E21468 002B75B8 3C0141C8 */ li $at, 0x41C80000 # 25.000000 391 | /* E2146C 002B75BC 44810000 */ mtc1 $at, $f0 392 | /* E21470 002B75C0 00000000 */ nop 393 | /* E21474 002B75C4 46006300 */ add.s $f12, $f12, $f0 394 | /* E21478 002B75C8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 395 | /* E2147C 002B75CC 44810000 */ mtc1 $at, $f0 396 | /* E21480 002B75D0 00000000 */ nop 397 | /* E21484 002B75D4 460C003E */ c.le.s $f0, $f12 398 | /* E21488 002B75D8 00000000 */ nop 399 | /* E2148C 002B75DC 45030001 */ .byte 0x45,0x03,0x00,0x01 /* Because of invalid n64 opcode bc1tl */ 400 | /* E21490 002B75E0 46006301 */ .L002B75E4: 401 | /* E21494 002B75E4 3C01428C */ li $at, 0x428C0000 # 70.000000 402 | /* E21498 002B75E8 44810000 */ mtc1 $at, $f0 403 | /* E2149C 002B75EC 00000000 */ nop 404 | /* E214A0 002B75F0 460C003E */ c.le.s $f0, $f12 405 | /* E214A4 002B75F4 00000000 */ nop 406 | /* E214A8 002B75F8 45000008 */ .byte 0x45,0x00,0x00,0x08 /* Because of invalid n64 opcode bc1f */ 407 | /* E214AC 002B75FC E48C0010 */ /* E214B0 002B7600 3C0142DC */ li $at, 0x42DC0000 # 110.000000 408 | /* E214B4 002B7604 44810000 */ mtc1 $at, $f0 409 | /* E214B8 002B7608 00000000 */ nop 410 | /* E214BC 002B760C 4600603E */ c.le.s $f12, $f0 411 | /* E214C0 002B7610 00000000 */ nop 412 | /* E214C4 002B7614 4501000F */ .byte 0x45,0x01,0x00,0x0F /* Because of invalid n64 opcode bc1t */ 413 | /* E214C8 002B7618 00000000 */ .L002B761C: 414 | /* E214CC 002B761C 3C01437A */ li $at, 0x437A0000 # 250.000000 415 | /* E214D0 002B7620 44810000 */ mtc1 $at, $f0 416 | /* E214D4 002B7624 00000000 */ nop 417 | /* E214D8 002B7628 460C003E */ c.le.s $f0, $f12 418 | /* E214DC 002B762C 00000000 */ nop 419 | /* E214E0 002B7630 45000010 */ .byte 0x45,0x00,0x00,0x10 /* Because of invalid n64 opcode bc1f */ 420 | /* E214E4 002B7634 00000000 */ /* E214E8 002B7638 3C014391 */ li $at, 0x43910000 # 290.000000 421 | /* E214EC 002B763C 44810000 */ mtc1 $at, $f0 422 | /* E214F0 002B7640 00000000 */ nop 423 | /* E214F4 002B7644 4600603E */ c.le.s $f12, $f0 424 | /* E214F8 002B7648 00000000 */ nop 425 | /* E214FC 002B764C 45000009 */ .byte 0x45,0x00,0x00,0x09 /* Because of invalid n64 opcode bc1f */ 426 | /* E21500 002B7650 00000000 */ .L002B7654: 427 | /* E21504 002B7654 8E020004 */ lw $v0, 4($s0) 428 | /* E21508 002B7658 2403FFDF */ li $v1, -33 429 | /* E2150C 002B765C 3C018011 */ lui $at, %hi(D_8010C940) # $at, 0x8011 430 | /* E21510 002B7660 AC20C940 */ sw $zero, %lo(D_8010C940)($at) 431 | /* E21514 002B7664 AE0000C8 */ sw $zero, 0xc8($s0) 432 | /* E21518 002B7668 00431024 */ and $v0, $v0, $v1 433 | /* E2151C 002B766C 080ADDBE */ j func_002B76F8 434 | /* E21520 002B7670 AE020004 */ sw $v0, 4($s0) 435 | 436 | func_002B7674: 437 | .L002B7674: 438 | /* E21524 002B7674 0C0ADC00 */ jal func_002B7000 439 | /* E21528 002B7678 00000000 */ nop 440 | /* E2152C 002B767C 0040302D */ move $a2, $v0 441 | func_002B7680: 442 | .L002B7680: 443 | /* E21530 002B7680 3C04802B */ lui $a0, %hi(D_802B79A8) # $a0, 0x802b 444 | /* E21534 002B7684 248479A8 */ addiu $a0, %lo(D_802B79A8) # addiu $a0, $a0, 0x79a8 445 | /* E21538 002B7688 8C820000 */ lw $v0, ($a0) 446 | /* E2153C 002B768C A046002B */ sb $a2, 0x2b($v0) 447 | /* E21540 002B7690 8E0300C8 */ lw $v1, 0xc8($s0) 448 | /* E21544 002B7694 10600005 */ beqz $v1, .L002B76AC 449 | /* E21548 002B7698 00000000 */ nop 450 | /* E2154C 002B769C 8C840000 */ lw $a0, ($a0) 451 | /* E21550 002B76A0 8C820000 */ lw $v0, ($a0) 452 | /* E21554 002B76A4 54620001 */ bnel $v1, $v0, .L002B76AC 453 | /* E21558 002B76A8 AC830000 */ sw $v1, ($a0) 454 | .L002B76AC: 455 | /* E2155C 002B76AC 3C03802B */ lui $v1, %hi(D_802B79A8) # $v1, 0x802b 456 | /* E21560 002B76B0 8C6379A8 */ lw $v1, %lo(D_802B79A8)($v1) 457 | /* E21564 002B76B4 8C640000 */ lw $a0, ($v1) 458 | /* E21568 002B76B8 848200A8 */ lh $v0, 0xa8($a0) 459 | /* E2156C 002B76BC C480003C */ lwc1 $f0, 0x3c($a0) 460 | /* E21570 002B76C0 44821000 */ mtc1 $v0, $f2 461 | /* E21574 002B76C4 00000000 */ nop 462 | /* E21578 002B76C8 468010A0 */ cvt.s.w $f2, $f2 463 | /* E2157C 002B76CC 46020000 */ add.s $f0, $f0, $f2 464 | /* E21580 002B76D0 3C014100 */ li $at, 0x41000000 # 8.000000 465 | /* E21584 002B76D4 44811000 */ mtc1 $at, $f2 466 | /* E21588 002B76D8 00000000 */ nop 467 | /* E2158C 002B76DC 46020000 */ add.s $f0, $f0, $f2 468 | /* E21590 002B76E0 E460001C */ swc1 $f0, 0x1c($v1) 469 | /* E21594 002B76E4 E4600008 */ swc1 $f0, 8($v1) 470 | /* E21598 002B76E8 C4800038 */ lwc1 $f0, 0x38($a0) 471 | /* E2159C 002B76EC E4600004 */ swc1 $f0, 4($v1) 472 | /* E215A0 002B76F0 C4800040 */ lwc1 $f0, 0x40($a0) 473 | /* E215A4 002B76F4 E460000C */ swc1 $f0, 0xc($v1) 474 | func_002B76F8: 475 | /* E215A8 002B76F8 8FBF0014 */ lw $ra, 0x14($sp) 476 | /* E215AC 002B76FC 8FB00010 */ lw $s0, 0x10($sp) 477 | /* E215B0 002B7700 03E00008 */ jr $ra 478 | /* E215B4 002B7704 27BD0018 */ addiu $sp, $sp, 0x18 479 | 480 | /* E215B8 002B7708 00000000 */ nop 481 | /* E215BC 002B770C 00000000 */ nop 482 | /* E215C0 002B7710 00000000 */ nop 483 | /* E215C4 002B7714 00000000 */ nop 484 | /* E215C8 002B7718 00000000 */ nop 485 | /* E215CC 002B771C 00000000 */ nop 486 | /* E215D0 002B7720 00000000 */ nop 487 | /* E215D4 002B7724 00000000 */ nop 488 | /* E215D8 002B7728 00000000 */ nop 489 | /* E215DC 002B772C 00000000 */ nop 490 | /* E215E0 002B7730 00000000 */ nop 491 | /* E215E4 002B7734 00111111 */ .byte 0x00, 0x11, 0x11, 0x11 492 | /* E215E8 002B7738 11111100 */ /* E215EC 002B773C 00000000 */ nop 493 | /* E215F0 002B7740 00000000 */ nop 494 | /* E215F4 002B7744 11111111 */ beq $t0, $s1, .L002BBB8C 495 | /* E215F8 002B7748 11111111 */ beq $t0, $s1, .L002BBB90 496 | /* E215FC 002B774C 00000000 */ nop 497 | /* E21600 002B7750 00000011 */ mthi $zero 498 | /* E21604 002B7754 11345222 */ beq $t1, $s4, .L002CBFE0 499 | /* E21608 002B7758 22254311 */ addi $a1, $s1, 0x4311 500 | /* E2160C 002B775C 11000000 */ beqz $t0, .L002B7760 501 | .L002B7760: 502 | /* E21610 002B7760 00000111 */ .byte 0x00, 0x00, 0x01, 0x11 503 | /* E21614 002B7764 45222222 */ /* E21618 002B7768 22222254 */ /* E2161C 002B776C 11100000 */ beq $t0, $s0, .L002B7770 504 | .L002B7770: 505 | /* E21620 002B7770 00001135 */ .byte 0x00, 0x00, 0x11, 0x35 506 | /* E21624 002B7774 22222222 */ /* E21628 002B7778 22222222 */ addi $v0, $s1, 0x2222 507 | /* E2162C 002B777C 53110000 */ beql $t8, $s1, .L002B7780 508 | .L002B7780: 509 | /* E21630 002B7780 00011342 */ srl $v0, $at, 0xd 510 | /* E21634 002B7784 22222222 */ addi $v0, $s1, 0x2222 511 | /* E21638 002B7788 22222222 */ addi $v0, $s1, 0x2222 512 | /* E2163C 002B778C 24311000 */ addiu $s1, $at, 0x1000 513 | /* E21640 002B7790 00113422 */ .byte 0x00, 0x11, 0x34, 0x22 514 | /* E21644 002B7794 22222222 */ /* E21648 002B7798 22222222 */ addi $v0, $s1, 0x2222 515 | /* E2164C 002B779C 22431100 */ addi $v1, $s2, 0x1100 516 | /* E21650 002B77A0 00115222 */ .byte 0x00, 0x11, 0x52, 0x22 517 | /* E21654 002B77A4 22222222 */ /* E21658 002B77A8 22222222 */ addi $v0, $s1, 0x2222 518 | /* E2165C 002B77AC 22241100 */ addi $a0, $s1, 0x1100 519 | /* E21660 002B77B0 01132222 */ .byte 0x01, 0x13, 0x22, 0x22 520 | /* E21664 002B77B4 22222222 */ /* E21668 002B77B8 22222222 */ addi $v0, $s1, 0x2222 521 | /* E2166C 002B77BC 22223110 */ addi $v0, $s1, 0x3110 522 | /* E21670 002B77C0 01142225 */ .byte 0x01, 0x14, 0x22, 0x25 523 | /* E21674 002B77C4 52222225 */ /* E21678 002B77C8 52222225 */ beql $s1, $v0, .L002C0060 524 | /* E2167C 002B77CC 52224110 */ beql $s1, $v0, .L002C7C10 525 | /* E21680 002B77D0 01142241 */ .byte 0x01, 0x14, 0x22, 0x41 526 | /* E21684 002B77D4 14222241 */ /* E21688 002B77D8 14222241 */ bne $at, $v0, .L002C00E0 527 | /* E2168C 002B77DC 14224110 */ bne $at, $v0, .L002C7C20 528 | /* E21690 002B77E0 01142231 */ tgeu $t0, $s4, 0x88 529 | /* E21694 002B77E4 13222231 */ beq $t9, $v0, .L002C00AC 530 | /* E21698 002B77E8 13222231 */ beq $t9, $v0, .L002C00B0 531 | /* E2169C 002B77EC 13224110 */ beq $t9, $v0, .L002C7C30 532 | /* E216A0 002B77F0 01142241 */ .byte 0x01, 0x14, 0x22, 0x41 533 | /* E216A4 002B77F4 14222241 */ /* E216A8 002B77F8 14222241 */ bne $at, $v0, .L002C0100 534 | /* E216AC 002B77FC 14224110 */ bne $at, $v0, .L002C7C40 535 | /* E216B0 002B7800 01142225 */ .byte 0x01, 0x14, 0x22, 0x25 536 | /* E216B4 002B7804 52222225 */ /* E216B8 002B7808 52222225 */ beql $s1, $v0, .L002C00A0 537 | /* E216BC 002B780C 52224110 */ beql $s1, $v0, .L002C7C50 538 | /* E216C0 002B7810 01134222 */ .byte 0x01, 0x13, 0x42, 0x22 539 | /* E216C4 002B7814 22222222 */ /* E216C8 002B7818 22222222 */ addi $v0, $s1, 0x2222 540 | /* E216CC 002B781C 22243110 */ addi $a0, $s1, 0x3110 541 | /* E216D0 002B7820 00113422 */ .byte 0x00, 0x11, 0x34, 0x22 542 | /* E216D4 002B7824 22222222 */ /* E216D8 002B7828 22222222 */ addi $v0, $s1, 0x2222 543 | /* E216DC 002B782C 22431100 */ addi $v1, $s2, 0x1100 544 | /* E216E0 002B7830 00111342 */ srl $v0, $s1, 0xd 545 | /* E216E4 002B7834 22222222 */ addi $v0, $s1, 0x2222 546 | /* E216E8 002B7838 22222222 */ addi $v0, $s1, 0x2222 547 | /* E216EC 002B783C 24311100 */ addiu $s1, $at, 0x1100 548 | /* E216F0 002B7840 00011114 */ .byte 0x00, 0x01, 0x11, 0x14 549 | /* E216F4 002B7844 52222222 */ /* E216F8 002B7848 22222225 */ addi $v0, $s1, 0x2225 550 | /* E216FC 002B784C 41111000 */ .byte 0x41,0x11,0x10,0x00 /* Because of invalid n64 opcode bc0t */ 551 | /* E21700 002B7850 00001111 */ /* E21704 002B7854 14522222 */ /* E21708 002B7858 22222541 */ addi $v0, $s1, 0x2541 552 | /* E2170C 002B785C 11110000 */ beq $t0, $s1, .L002B7860 553 | .L002B7860: 554 | /* E21710 002B7860 00000011 */ mthi $zero 555 | /* E21714 002B7864 11152222 */ beq $t0, $s5, .L002C00F0 556 | /* E21718 002B7868 22225111 */ addi $v0, $s1, 0x5111 557 | /* E2171C 002B786C 11000000 */ beqz $t0, .L002B7870 558 | .L002B7870: 559 | /* E21720 002B7870 00000000 */ nop 560 | /* E21724 002B7874 11111522 */ beq $t0, $s1, .L002BCD00 561 | /* E21728 002B7878 22211111 */ addi $at, $s1, 0x1111 562 | /* E2172C 002B787C 00000000 */ nop 563 | /* E21730 002B7880 00000000 */ nop 564 | /* E21734 002B7884 00111122 */ .byte 0x00, 0x11, 0x11, 0x22 565 | /* E21738 002B7888 22111100 */ /* E2173C 002B788C 00000000 */ nop 566 | /* E21740 002B7890 00000000 */ nop 567 | /* E21744 002B7894 00001152 */ .byte 0x00, 0x00, 0x11, 0x52 568 | /* E21748 002B7898 25110000 */ /* E2174C 002B789C 00000000 */ nop 569 | /* E21750 002B78A0 00000000 */ nop 570 | /* E21754 002B78A4 00001112 */ .byte 0x00, 0x00, 0x11, 0x12 571 | /* E21758 002B78A8 21110000 */ /* E2175C 002B78AC 00000000 */ nop 572 | /* E21760 002B78B0 00000000 */ nop 573 | /* E21764 002B78B4 00000115 */ .byte 0x00, 0x00, 0x01, 0x15 574 | /* E21768 002B78B8 51100000 */ .L002B78BC: 575 | /* E2176C 002B78BC 00000000 */ nop 576 | /* E21770 002B78C0 00000000 */ nop 577 | /* E21774 002B78C4 00000113 */ .byte 0x00, 0x00, 0x01, 0x13 578 | /* E21778 002B78C8 31100000 */ /* E2177C 002B78CC 00000000 */ nop 579 | /* E21780 002B78D0 00000000 */ nop 580 | /* E21784 002B78D4 00000011 */ mthi $zero 581 | /* E21788 002B78D8 11000000 */ beqz $t0, .L002B78DC 582 | .L002B78DC: 583 | /* E2178C 002B78DC 00000000 */ nop 584 | /* E21790 002B78E0 00000000 */ nop 585 | /* E21794 002B78E4 00000001 */ .byte 0x00,0x00,0x00,0x01 /* Because of invalid n64 opcode movf */ 586 | /* E21798 002B78E8 10000000 */ .L002B78EC: 587 | /* E2179C 002B78EC 00000000 */ nop 588 | /* E217A0 002B78F0 00000000 */ nop 589 | /* E217A4 002B78F4 00000000 */ nop 590 | /* E217A8 002B78F8 00000000 */ nop 591 | /* E217AC 002B78FC 00000000 */ nop 592 | /* E217B0 002B7900 00000000 */ nop 593 | /* E217B4 002B7904 00000000 */ nop 594 | /* E217B8 002B7908 00000000 */ nop 595 | /* E217BC 002B790C 00000000 */ nop 596 | /* E217C0 002B7910 294A0001 */ slti $t2, $t2, 1 597 | /* E217C4 002B7914 FFFF5AD7 */ sd $ra, 0x5ad7($ra) 598 | /* E217C8 002B7918 AD6BC631 */ sw $t3, -0x39cf($t3) 599 | /* E217CC 002B791C F561F49F */ sdc1 $f1, -0xb61($t3) 600 | /* E217D0 002B7920 EBED88D7 */ .byte 0xEB,0xED,0x88,0xD7 /* Because of invalid n64 opcode bbit1 */ 601 | /* E217D4 002B7924 EBE1ED6D */ .byte 0xEB,0xE1,0xED,0x6D /* Because of invalid n64 opcode bbit1 */ 602 | /* E217D8 002B7928 F669F72F */ /* E217DC 002B792C 00010001 */ .byte 0x00,0x01,0x00,0x01 /* Because of invalid n64 opcode movt */ 603 | /* E217E0 002B7930 E7000000 */ /* E217E4 002B7934 00000000 */ nop 604 | /* E217E8 002B7938 E3000A01 */ sc $zero, 0xa01($t8) 605 | /* E217EC 002B793C 00000000 */ nop 606 | /* E217F0 002B7940 D9C0F9FB */ .byte 0xD9,0xC0,0xF9,0xFB /* Because of invalid n64 opcode bbit032 */ 607 | /* E217F4 002B7944 00000000 */ .L002B7948: 608 | /* E217F8 002B7948 D9FFFFFF */ .byte 0xD9,0xFF,0xFF,0xFF /* Because of invalid n64 opcode bbit032 */ 609 | /* E217FC 002B794C 00200005 */ .byte 0x00,0x20,0x00,0x05 /* Because of invalid n64 opcode lsa */ 610 | /* E21800 002B7950 D7000002 */ /* E21804 002B7954 FFFFFFFF */ sd $ra, -1($ra) 611 | /* E21808 002B7958 E3000F00 */ sc $zero, 0xf00($t8) 612 | /* E2180C 002B795C 00000000 */ nop 613 | /* E21810 002B7960 E3001001 */ sc $zero, 0x1001($t8) 614 | /* E21814 002B7964 00008000 */ sll $s0, $zero, 0 615 | /* E21818 002B7968 E3000C00 */ sc $zero, 0xc00($t8) 616 | /* E2181C 002B796C 00080000 */ sll $zero, $t0, 0 617 | /* E21820 002B7970 E3001201 */ sc $zero, 0x1201($t8) 618 | /* E21824 002B7974 00002000 */ sll $a0, $zero, 0 619 | /* E21828 002B7978 E3001801 */ sc $zero, 0x1801($t8) 620 | /* E2182C 002B797C 000000C0 */ ehb 621 | /* E21830 002B7980 E3000D01 */ sc $zero, 0xd01($t8) 622 | /* E21834 002B7984 00000000 */ nop 623 | /* E21838 002B7988 E3001402 */ sc $zero, 0x1402($t8) 624 | /* E2183C 002B798C 00000C00 */ sll $at, $zero, 0x10 625 | /* E21840 002B7990 E3001700 */ sc $zero, 0x1700($t8) 626 | /* E21844 002B7994 00000000 */ nop 627 | /* E21848 002B7998 E2001E01 */ sc $zero, 0x1e01($s0) 628 | /* E2184C 002B799C 00000000 */ nop 629 | /* E21850 002B79A0 DF000000 */ ld $zero, ($t8) 630 | /* E21854 002B79A4 00000000 */ nop 631 | /* E21858 002B79A8 802B79C0 */ lb $t3, 0x79c0($at) 632 | /* E2185C 002B79AC 00000000 */ nop 633 | /* E21860 002B79B0 3FA99999 */ .byte 0x3f, 0xa9, 0x99, 0x99 634 | /* E21864 002B79B4 9999999A */ /* E21868 002B79B8 3FE19999 */ .byte 0x3f, 0xe1, 0x99, 0x99 635 | /* E2186C 002B79BC 9999999A */ -------------------------------------------------------------------------------- /papermario/asm/CODE_e23260_len_480.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text002B6000, "ax" 3 | 4 | /* E23260 002B6000 27BDFFD0 */ addiu $sp, $sp, -0x30 5 | /* E23264 002B6004 AFB1001C */ sw $s1, 0x1c($sp) 6 | /* E23268 002B6008 AFB00018 */ sw $s0, 0x18($sp) 7 | /* E2326C 002B600C 3C108011 */ lui $s0, %hi(D_8010EFC8) # $s0, 0x8011 8 | /* E23270 002B6010 2610EFC8 */ addiu $s0, %lo(D_8010EFC8) # addiu $s0, $s0, -0x1038 9 | /* E23274 002B6014 AFBF0024 */ sw $ra, 0x24($sp) 10 | /* E23278 002B6018 AFB20020 */ sw $s2, 0x20($sp) 11 | /* E2327C 002B601C F7B40028 */ sdc1 $f20, 0x28($sp) 12 | /* E23280 002B6020 8E040004 */ lw $a0, 4($s0) 13 | /* E23284 002B6024 3C128011 */ lui $s2, %hi(D_8010F290) # $s2, 0x8011 14 | /* E23288 002B6028 2652F290 */ addiu $s2, %lo(D_8010F290) # addiu $s2, $s2, -0xd70 15 | /* E2328C 002B602C 30821000 */ andi $v0, $a0, 0x1000 16 | /* E23290 002B6030 10400005 */ beqz $v0, .L002B6048 17 | /* E23294 002B6034 0000882D */ move $s1, $zero 18 | /* E23298 002B6038 0C0AD879 */ jal func_002B61E4 19 | /* E2329C 002B603C 00000000 */ nop 20 | /* E232A0 002B6040 080AD872 */ j func_002B61C8 21 | /* E232A4 002B6044 00000000 */ nop 22 | 23 | .L002B6048: 24 | /* E232A8 002B6048 96020008 */ lhu $v0, 8($s0) 25 | /* E232AC 002B604C 8E030000 */ lw $v1, ($s0) 26 | /* E232B0 002B6050 24420001 */ addiu $v0, $v0, 1 27 | /* E232B4 002B6054 0461001E */ bgez $v1, .L002B60D0 28 | /* E232B8 002B6058 A6020008 */ sh $v0, 8($s0) 29 | /* E232BC 002B605C 3C027FF7 */ lui $v0, (0x7FF7FFF1 >> 16) # lui $v0, 0x7ff7 30 | /* E232C0 002B6060 3442FFF1 */ ori $v0, (0x7FF7FFF1 & 0xFFFF) # ori $v0, $v0, 0xfff1 31 | /* E232C4 002B6064 24110001 */ li $s1, 1 32 | /* E232C8 002B6068 00621024 */ and $v0, $v1, $v0 33 | /* E232CC 002B606C AE020000 */ sw $v0, ($s0) 34 | /* E232D0 002B6070 30824000 */ andi $v0, $a0, 0x4000 35 | /* E232D4 002B6074 A20000B6 */ sb $zero, 0xb6($s0) 36 | /* E232D8 002B6078 A6000008 */ sh $zero, 8($s0) 37 | /* E232DC 002B607C A60000C0 */ sh $zero, 0xc0($s0) 38 | /* E232E0 002B6080 A60000C2 */ sh $zero, 0xc2($s0) 39 | /* E232E4 002B6084 AE000054 */ sw $zero, 0x54($s0) 40 | /* E232E8 002B6088 10400004 */ beqz $v0, .L002B609C 41 | /* E232EC 002B608C AE00008C */ sw $zero, 0x8c($s0) 42 | /* E232F0 002B6090 3C040009 */ lui $a0, (0x00090002 >> 16) # lui $a0, 9 43 | /* E232F4 002B6094 080AD832 */ j func_002B60C8 44 | /* E232F8 002B6098 34840002 */ ori $a0, (0x00090002 & 0xFFFF) # ori $a0, $a0, 2 45 | 46 | .L002B609C: 47 | /* E232FC 002B609C 30820001 */ andi $v0, $a0, 1 48 | /* E23300 002B60A0 54400004 */ bnel $v0, $zero, .L002B60B4 49 | /* E23304 002B60A4 3C040006 */ lui $a0, 6 50 | /* E23308 002B60A8 3C040001 */ lui $a0, (0x00010007 >> 16) # lui $a0, 1 51 | /* E2330C 002B60AC 080AD832 */ j func_002B60C8 52 | /* E23310 002B60B0 34840002 */ ori $a0, (0x00010002 & 0xFFFF) # ori $a0, $a0, 2 53 | 54 | .L002B60B4: 55 | /* E23314 002B60B4 820200B5 */ lb $v0, 0xb5($s0) 56 | /* E23318 002B60B8 14400003 */ bnez $v0, .L002B60C8 57 | /* E2331C 002B60BC 34840007 */ ori $a0, (0x00010007 & 0xFFFF) # ori $a0, $a0, 7 58 | /* E23320 002B60C0 3C040006 */ lui $a0, (0x00060005 >> 16) # lui $a0, 6 59 | /* E23324 002B60C4 34840005 */ ori $a0, (0x00060005 & 0xFFFF) # ori $a0, $a0, 5 60 | func_002B60C8: 61 | .L002B60C8: 62 | /* E23328 002B60C8 0C037FBF */ jal func_000DFEFC 63 | /* E2332C 002B60CC 00000000 */ nop 64 | .L002B60D0: 65 | /* E23330 002B60D0 8E020004 */ lw $v0, 4($s0) 66 | /* E23334 002B60D4 30420200 */ andi $v0, $v0, 0x200 67 | /* E23338 002B60D8 10400005 */ beqz $v0, .L002B60F0 68 | /* E2333C 002B60DC 27A40010 */ addiu $a0, $sp, 0x10 69 | /* E23340 002B60E0 0C039769 */ jal func_000E5DA4 70 | /* E23344 002B60E4 2404001C */ li $a0, 28 71 | /* E23348 002B60E8 080AD872 */ j func_002B61C8 72 | /* E2334C 002B60EC 00000000 */ nop 73 | 74 | .L002B60F0: 75 | /* E23350 002B60F0 0C0388C1 */ jal func_000E2304 76 | /* E23354 002B60F4 27A50014 */ addiu $a1, $sp, 0x14 77 | /* E23358 002B60F8 0C039454 */ jal func_000E5150 78 | /* E2335C 002B60FC 00000000 */ nop 79 | /* E23360 002B6100 0C039858 */ jal func_000E6160 80 | /* E23364 002B6104 00000000 */ nop 81 | /* E23368 002B6108 10400011 */ beqz $v0, .L002B6150 82 | /* E2336C 002B610C 00000000 */ nop 83 | /* E23370 002B6110 C7A20014 */ lwc1 $f2, 0x14($sp) 84 | /* E23374 002B6114 44800000 */ mtc1 $zero, $f0 85 | /* E23378 002B6118 00000000 */ nop 86 | /* E2337C 002B611C 46001032 */ c.eq.s $f2, $f0 87 | /* E23380 002B6120 00000000 */ nop 88 | /* E23384 002B6124 45000007 */ .byte 0x45,0x00,0x00,0x07 /* Because of invalid n64 opcode bc1f */ 89 | /* E23388 002B6128 00000000 */ /* E2338C 002B612C C6020080 */ lwc1 $f2, 0x80($s0) 90 | /* E23390 002B6130 C7A00010 */ lwc1 $f0, 0x10($sp) 91 | /* E23394 002B6134 46001032 */ c.eq.s $f2, $f0 92 | /* E23398 002B6138 00000000 */ nop 93 | /* E2339C 002B613C 45010022 */ .byte 0x45,0x01,0x00,0x22 /* Because of invalid n64 opcode bc1t */ 94 | /* E233A0 002B6140 00000000 */ .L002B6144: 95 | /* E233A4 002B6144 C7A00010 */ lwc1 $f0, 0x10($sp) 96 | /* E233A8 002B6148 080AD872 */ j func_002B61C8 97 | /* E233AC 002B614C E6000080 */ swc1 $f0, 0x80($s0) 98 | 99 | .L002B6150: 100 | /* E233B0 002B6150 16200005 */ bnez $s1, .L002B6168 101 | /* E233B4 002B6154 00000000 */ nop 102 | /* E233B8 002B6158 0C039838 */ jal func_000E60E0 103 | /* E233BC 002B615C 00000000 */ nop 104 | /* E233C0 002B6160 14400019 */ bnez $v0, .L002B61C8 105 | /* E233C4 002B6164 00000000 */ nop 106 | .L002B6168: 107 | /* E233C8 002B6168 C7A00014 */ lwc1 $f0, 0x14($sp) 108 | /* E233CC 002B616C 4480A000 */ mtc1 $zero, $f20 109 | /* E233D0 002B6170 00000000 */ nop 110 | /* E233D4 002B6174 46140032 */ c.eq.s $f0, $f20 111 | /* E233D8 002B6178 00000000 */ nop 112 | /* E233DC 002B617C 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 113 | /* E233E0 002B6180 24040001 */ /* E233E4 002B6184 964202B8 */ lhu $v0, 0x2b8($s2) 114 | /* E233E8 002B6188 24420001 */ addiu $v0, $v0, 1 115 | /* E233EC 002B618C 080AD872 */ j func_002B61C8 116 | /* E233F0 002B6190 A64202B8 */ sh $v0, 0x2b8($s2) 117 | 118 | .L002B6194: 119 | /* E233F4 002B6194 0C039769 */ jal func_000E5DA4 120 | /* E233F8 002B6198 A6000008 */ sh $zero, 8($s0) 121 | /* E233FC 002B619C C7A00014 */ lwc1 $f0, 0x14($sp) 122 | /* E23400 002B61A0 46140032 */ c.eq.s $f0, $f20 123 | /* E23404 002B61A4 00000000 */ nop 124 | /* E23408 002B61A8 45010007 */ .byte 0x45,0x01,0x00,0x07 /* Because of invalid n64 opcode bc1t */ 125 | /* E2340C 002B61AC 3C037FFF */ /* E23410 002B61B0 3463FFFF */ ori $v1, (0x7FFFFFFF & 0xFFFF) # ori $v1, $v1, 0xffff 126 | /* E23414 002B61B4 8E020004 */ lw $v0, 4($s0) 127 | /* E23418 002B61B8 C7A00010 */ lwc1 $f0, 0x10($sp) 128 | /* E2341C 002B61BC 00431024 */ and $v0, $v0, $v1 129 | /* E23420 002B61C0 E6000080 */ swc1 $f0, 0x80($s0) 130 | /* E23424 002B61C4 AE020004 */ sw $v0, 4($s0) 131 | func_002B61C8: 132 | .L002B61C8: 133 | /* E23428 002B61C8 8FBF0024 */ lw $ra, 0x24($sp) 134 | /* E2342C 002B61CC 8FB20020 */ lw $s2, 0x20($sp) 135 | /* E23430 002B61D0 8FB1001C */ lw $s1, 0x1c($sp) 136 | /* E23434 002B61D4 8FB00018 */ lw $s0, 0x18($sp) 137 | /* E23438 002B61D8 D7B40028 */ ldc1 $f20, 0x28($sp) 138 | /* E2343C 002B61DC 03E00008 */ jr $ra 139 | /* E23440 002B61E0 27BD0030 */ addiu $sp, $sp, 0x30 140 | 141 | func_002B61E4: 142 | /* E23444 002B61E4 27BDFFE0 */ addiu $sp, $sp, -0x20 143 | /* E23448 002B61E8 AFB00018 */ sw $s0, 0x18($sp) 144 | /* E2344C 002B61EC 3C108011 */ lui $s0, %hi(D_8010EFC8) # $s0, 0x8011 145 | /* E23450 002B61F0 2610EFC8 */ addiu $s0, %lo(D_8010EFC8) # addiu $s0, $s0, -0x1038 146 | /* E23454 002B61F4 AFBF001C */ sw $ra, 0x1c($sp) 147 | /* E23458 002B61F8 8E030000 */ lw $v1, ($s0) 148 | /* E2345C 002B61FC 0461002A */ bgez $v1, .L002B62A8 149 | /* E23460 002B6200 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff 150 | /* E23464 002B6204 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff 151 | /* E23468 002B6208 00621024 */ and $v0, $v1, $v0 152 | /* E2346C 002B620C 8E030004 */ lw $v1, 4($s0) 153 | /* E23470 002B6210 2404FFF1 */ li $a0, -15 154 | /* E23474 002B6214 AE020000 */ sw $v0, ($s0) 155 | /* E23478 002B6218 00441024 */ and $v0, $v0, $a0 156 | /* E2347C 002B621C A20000B6 */ sb $zero, 0xb6($s0) 157 | /* E23480 002B6220 A6000008 */ sh $zero, 8($s0) 158 | /* E23484 002B6224 A60000C0 */ sh $zero, 0xc0($s0) 159 | /* E23488 002B6228 A60000C2 */ sh $zero, 0xc2($s0) 160 | /* E2348C 002B622C AE000054 */ sw $zero, 0x54($s0) 161 | /* E23490 002B6230 30632000 */ andi $v1, $v1, 0x2000 162 | /* E23494 002B6234 14600013 */ bnez $v1, .L002B6284 163 | /* E23498 002B6238 AE020000 */ sw $v0, ($s0) 164 | /* E2349C 002B623C 3C038007 */ lui $v1, %hi(D_8007419C) # $v1, 0x8007 165 | /* E234A0 002B6240 8C63419C */ lw $v1, %lo(D_8007419C)($v1) 166 | /* E234A4 002B6244 9062007E */ lbu $v0, 0x7e($v1) 167 | /* E234A8 002B6248 30420010 */ andi $v0, $v0, 0x10 168 | /* E234AC 002B624C 14400009 */ bnez $v0, .L002B6274 169 | /* E234B0 002B6250 3C04000C */ lui $a0, 0xc 170 | /* E234B4 002B6254 90620080 */ lbu $v0, 0x80($v1) 171 | /* E234B8 002B6258 00021080 */ sll $v0, $v0, 2 172 | /* E234BC 002B625C 3C04802B */ lui $a0, 0x802b 173 | /* E234C0 002B6260 00822021 */ addu $a0, $a0, $v0 174 | /* E234C4 002B6264 0C037FBF */ jal func_000DFEFC 175 | /* E234C8 002B6268 8C846430 */ lw $a0, 0x6430($a0) 176 | /* E234CC 002B626C 080AD8AA */ j func_002B62A8 177 | /* E234D0 002B6270 00000000 */ nop 178 | 179 | .L002B6274: 180 | /* E234D4 002B6274 0C037FBF */ jal func_000DFEFC 181 | /* E234D8 002B6278 3484000E */ ori $a0, $a0, 0xe 182 | /* E234DC 002B627C 080AD8AA */ j func_002B62A8 183 | /* E234E0 002B6280 00000000 */ nop 184 | 185 | .L002B6284: 186 | /* E234E4 002B6284 8203000C */ lb $v1, 0xc($s0) 187 | /* E234E8 002B6288 00031040 */ sll $v0, $v1, 1 188 | /* E234EC 002B628C 00431021 */ addu $v0, $v0, $v1 189 | /* E234F0 002B6290 000210C0 */ sll $v0, $v0, 3 190 | /* E234F4 002B6294 3C04800F */ lui $a0, 0x800f 191 | /* E234F8 002B6298 00822021 */ addu $a0, $a0, $v0 192 | /* E234FC 002B629C 8C847C1C */ lw $a0, 0x7c1c($a0) 193 | /* E23500 002B62A0 0C0398DB */ jal func_000E636C 194 | /* E23504 002B62A4 00000000 */ nop 195 | func_002B62A8: 196 | .L002B62A8: 197 | /* E23508 002B62A8 8E020004 */ lw $v0, 4($s0) 198 | /* E2350C 002B62AC 30422000 */ andi $v0, $v0, 0x2000 199 | /* E23510 002B62B0 1440004C */ bnez $v0, .L002B63E4 200 | /* E23514 002B62B4 27A40010 */ addiu $a0, $sp, 0x10 201 | /* E23518 002B62B8 24020001 */ li $v0, 1 202 | /* E2351C 002B62BC 820300B6 */ lb $v1, 0xb6($s0) 203 | /* E23520 002B62C0 920500B6 */ lbu $a1, 0xb6($s0) 204 | /* E23524 002B62C4 10620022 */ beq $v1, $v0, .L002B6350 205 | /* E23528 002B62C8 28620002 */ slti $v0, $v1, 2 206 | /* E2352C 002B62CC 10400005 */ beqz $v0, .L002B62E4 207 | /* E23530 002B62D0 24020002 */ li $v0, 2 208 | /* E23534 002B62D4 10600009 */ beqz $v1, .L002B62FC 209 | /* E23538 002B62D8 00000000 */ nop 210 | /* E2353C 002B62DC 080AD8F9 */ j func_002B63E4 211 | /* E23540 002B62E0 00000000 */ nop 212 | 213 | .L002B62E4: 214 | /* E23544 002B62E4 10620022 */ beq $v1, $v0, .L002B6370 215 | /* E23548 002B62E8 24020003 */ li $v0, 3 216 | /* E2354C 002B62EC 1062002E */ beq $v1, $v0, .L002B63A8 217 | /* E23550 002B62F0 27A40010 */ addiu $a0, $sp, 0x10 218 | /* E23554 002B62F4 080AD8F9 */ j func_002B63E4 219 | /* E23558 002B62F8 00000000 */ nop 220 | 221 | .L002B62FC: 222 | /* E2355C 002B62FC 8E020000 */ lw $v0, ($s0) 223 | /* E23560 002B6300 30423000 */ andi $v0, $v0, 0x3000 224 | /* E23564 002B6304 14400037 */ bnez $v0, .L002B63E4 225 | /* E23568 002B6308 27A40010 */ addiu $a0, $sp, 0x10 226 | /* E2356C 002B630C 820200C4 */ lb $v0, 0xc4($s0) 227 | /* E23570 002B6310 14400034 */ bnez $v0, .L002B63E4 228 | /* E23574 002B6314 00000000 */ nop 229 | /* E23578 002B6318 86020008 */ lh $v0, 8($s0) 230 | /* E2357C 002B631C 96030008 */ lhu $v1, 8($s0) 231 | /* E23580 002B6320 28420709 */ slti $v0, $v0, 0x709 232 | /* E23584 002B6324 14400008 */ bnez $v0, .L002B6348 233 | /* E23588 002B6328 24620001 */ addiu $v0, $v1, 1 234 | /* E2358C 002B632C 24A20001 */ addiu $v0, $a1, 1 235 | /* E23590 002B6330 A20200B6 */ sb $v0, 0xb6($s0) 236 | /* E23594 002B6334 3C04000C */ lui $a0, (0x000C0003 >> 16) # lui $a0, 0xc 237 | /* E23598 002B6338 0C037FBF */ jal func_000DFEFC 238 | /* E2359C 002B633C 34840003 */ ori $a0, (0x000C0003 & 0xFFFF) # ori $a0, $a0, 3 239 | /* E235A0 002B6340 080AD908 */ j func_002B6420 240 | /* E235A4 002B6344 00000000 */ nop 241 | 242 | .L002B6348: 243 | /* E235A8 002B6348 080AD8F8 */ j func_002B63E0 244 | /* E235AC 002B634C A6020008 */ sh $v0, 8($s0) 245 | 246 | .L002B6350: 247 | /* E235B0 002B6350 960200BC */ lhu $v0, 0xbc($s0) 248 | /* E235B4 002B6354 10400022 */ beqz $v0, .L002B63E0 249 | /* E235B8 002B6358 3C04000A */ lui $a0, (0x000A0001 >> 16) # lui $a0, 0xa 250 | /* E235BC 002B635C 34840001 */ ori $a0, (0x000A0001 & 0xFFFF) # ori $a0, $a0, 1 251 | /* E235C0 002B6360 24A20001 */ addiu $v0, $a1, 1 252 | /* E235C4 002B6364 A20200B6 */ sb $v0, 0xb6($s0) 253 | /* E235C8 002B6368 080AD8F6 */ j func_002B63D8 254 | /* E235CC 002B636C A6000008 */ sh $zero, 8($s0) 255 | 256 | .L002B6370: 257 | /* E235D0 002B6370 96020008 */ lhu $v0, 8($s0) 258 | /* E235D4 002B6374 24420001 */ addiu $v0, $v0, 1 259 | /* E235D8 002B6378 A6020008 */ sh $v0, 8($s0) 260 | /* E235DC 002B637C 00021400 */ sll $v0, $v0, 0x10 261 | /* E235E0 002B6380 00021403 */ sra $v0, $v0, 0x10 262 | /* E235E4 002B6384 284200C9 */ slti $v0, $v0, 0xc9 263 | /* E235E8 002B6388 14400016 */ bnez $v0, .L002B63E4 264 | /* E235EC 002B638C 27A40010 */ addiu $a0, $sp, 0x10 265 | /* E235F0 002B6390 3C04000C */ lui $a0, (0x000C0003 >> 16) # lui $a0, 0xc 266 | /* E235F4 002B6394 920200B6 */ lbu $v0, 0xb6($s0) 267 | /* E235F8 002B6398 34840003 */ ori $a0, (0x000C0003 & 0xFFFF) # ori $a0, $a0, 3 268 | /* E235FC 002B639C 24420001 */ addiu $v0, $v0, 1 269 | /* E23600 002B63A0 080AD8F6 */ j func_002B63D8 270 | /* E23604 002B63A4 A20200B6 */ sb $v0, 0xb6($s0) 271 | 272 | .L002B63A8: 273 | /* E23608 002B63A8 8E020000 */ lw $v0, ($s0) 274 | /* E2360C 002B63AC 30423000 */ andi $v0, $v0, 0x3000 275 | /* E23610 002B63B0 10400005 */ beqz $v0, .L002B63C8 276 | /* E23614 002B63B4 3C04000A */ lui $a0, (0x000A0001 >> 16) # lui $a0, 0xa 277 | /* E23618 002B63B8 0C037FBF */ jal func_000DFEFC 278 | /* E2361C 002B63BC 34840001 */ ori $a0, (0x000A0001 & 0xFFFF) # ori $a0, $a0, 1 279 | /* E23620 002B63C0 080AD8F8 */ j func_002B63E0 280 | /* E23624 002B63C4 A20000B6 */ sb $zero, 0xb6($s0) 281 | 282 | .L002B63C8: 283 | /* E23628 002B63C8 960200BC */ lhu $v0, 0xbc($s0) 284 | /* E2362C 002B63CC 10400004 */ beqz $v0, .L002B63E0 285 | /* E23630 002B63D0 3C04000C */ lui $a0, (0x000C0004 >> 16) # lui $a0, 0xc 286 | /* E23634 002B63D4 34840004 */ ori $a0, (0x000C0004 & 0xFFFF) # ori $a0, $a0, 4 287 | func_002B63D8: 288 | /* E23638 002B63D8 0C037FBF */ jal func_000DFEFC 289 | /* E2363C 002B63DC 00000000 */ nop 290 | func_002B63E0: 291 | .L002B63E0: 292 | /* E23640 002B63E0 27A40010 */ addiu $a0, $sp, 0x10 293 | func_002B63E4: 294 | .L002B63E4: 295 | /* E23644 002B63E4 0C0388C1 */ jal func_000E2304 296 | /* E23648 002B63E8 27A50014 */ addiu $a1, $sp, 0x14 297 | /* E2364C 002B63EC 0C039454 */ jal func_000E5150 298 | /* E23650 002B63F0 00000000 */ nop 299 | /* E23654 002B63F4 C7A20014 */ lwc1 $f2, 0x14($sp) 300 | /* E23658 002B63F8 44800000 */ mtc1 $zero, $f0 301 | /* E2365C 002B63FC 00000000 */ nop 302 | /* E23660 002B6400 46001032 */ c.eq.s $f2, $f0 303 | /* E23664 002B6404 00000000 */ nop 304 | /* E23668 002B6408 45010005 */ .byte 0x45,0x01,0x00,0x05 /* Because of invalid n64 opcode bc1t */ 305 | /* E2366C 002B640C 24040001 */ /* E23670 002B6410 C7A00010 */ lwc1 $f0, 0x10($sp) 306 | /* E23674 002B6414 A6000008 */ sh $zero, 8($s0) 307 | /* E23678 002B6418 0C039769 */ jal func_000E5DA4 308 | /* E2367C 002B641C E6000080 */ swc1 $f0, 0x80($s0) 309 | func_002B6420: 310 | .L002B6420: 311 | /* E23680 002B6420 8FBF001C */ lw $ra, 0x1c($sp) 312 | /* E23684 002B6424 8FB00018 */ lw $s0, 0x18($sp) 313 | /* E23688 002B6428 03E00008 */ jr $ra 314 | /* E2368C 002B642C 27BD0020 */ addiu $sp, $sp, 0x20 315 | 316 | /* E23690 002B6430 000A0001 */ .byte 0x00, 0x0a, 0x00, 0x01 317 | /* E23694 002B6434 000A0007 */ /* E23698 002B6438 000A0009 */ .byte 0x00, 0x0a, 0x00, 0x09 318 | /* E2369C 002B643C 000A000B */ .byte 0x00,0x0A,0x00,0x0B /* Because of invalid n64 opcode movn */ 319 | /* E236A0 002B6440 000A000D */ /* E236A4 002B6444 000A000F */ .byte 0x00,0x0A,0x00,0x0F /* Because of invalid n64 opcode sync */ 320 | /* E236A8 002B6448 000A0011 */ /* E236AC 002B644C 000A0013 */ /* E236B0 002B6450 000A0015 */ .byte 0x00,0x0A,0x00,0x15 /* Because of invalid n64 opcode dlsa */ 321 | /* E236B4 002B6454 000A0017 */ /* E236B8 002B6458 000A0019 */ multu $zero, $t2 322 | /* E236BC 002B645C 000A001B */ divu $zero, $zero, $t2 323 | /* E236C0 002B6460 000A001D */ dmultu $zero, $t2 324 | /* E236C4 002B6464 000A001F */ ddivu $zero, $zero, $t2 325 | /* E236C8 002B6468 000A0021 */ addu $zero, $zero, $t2 326 | /* E236CC 002B646C 000A0023 */ negu $zero, $t2 327 | /* E236D0 002B6470 000A0025 */ or $zero, $zero, $t2 328 | /* E236D4 002B6474 000A0027 */ nor $zero, $zero, $t2 329 | /* E236D8 002B6478 000A0029 */ .byte 0x00, 0x0a, 0x00, 0x29 330 | /* E236DC 002B647C 00000000 */ -------------------------------------------------------------------------------- /papermario/asm/CODE_e236e0_len_960.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text002B6000, "ax" 3 | 4 | /* E236E0 002B6000 27BDFFD0 */ addiu $sp, $sp, -0x30 5 | /* E236E4 002B6004 AFB30024 */ sw $s3, 0x24($sp) 6 | /* E236E8 002B6008 AFB00018 */ sw $s0, 0x18($sp) 7 | /* E236EC 002B600C 3C108011 */ lui $s0, %hi(D_8010EFC8) # $s0, 0x8011 8 | /* E236F0 002B6010 2610EFC8 */ addiu $s0, %lo(D_8010EFC8) # addiu $s0, $s0, -0x1038 9 | /* E236F4 002B6014 AFBF002C */ sw $ra, 0x2c($sp) 10 | /* E236F8 002B6018 AFB40028 */ sw $s4, 0x28($sp) 11 | /* E236FC 002B601C AFB20020 */ sw $s2, 0x20($sp) 12 | /* E23700 002B6020 AFB1001C */ sw $s1, 0x1c($sp) 13 | /* E23704 002B6024 8E050004 */ lw $a1, 4($s0) 14 | /* E23708 002B6028 3C148011 */ lui $s4, %hi(D_8010F290) # $s4, 0x8011 15 | /* E2370C 002B602C 2694F290 */ addiu $s4, %lo(D_8010F290) # addiu $s4, $s4, -0xd70 16 | /* E23710 002B6030 30A21000 */ andi $v0, $a1, 0x1000 17 | /* E23714 002B6034 10400005 */ beqz $v0, .L002B604C 18 | /* E23718 002B6038 0000982D */ move $s3, $zero 19 | /* E2371C 002B603C 0C0AD97A */ jal func_002B65E8 20 | /* E23720 002B6040 00000000 */ nop 21 | /* E23724 002B6044 080AD89A */ j func_002B6268 22 | /* E23728 002B6048 00000000 */ nop 23 | 24 | .L002B604C: 25 | /* E2372C 002B604C 8E030000 */ lw $v1, ($s0) 26 | /* E23730 002B6050 04610016 */ bgez $v1, .L002B60AC 27 | /* E23734 002B6054 3C027F77 */ lui $v0, (0x7F77FFFF >> 16) # lui $v0, 0x7f77 28 | /* E23738 002B6058 3442FFFF */ ori $v0, (0x7F77FFFF & 0xFFFF) # ori $v0, $v0, 0xffff 29 | /* E2373C 002B605C 24130001 */ li $s3, 1 30 | /* E23740 002B6060 00621024 */ and $v0, $v1, $v0 31 | /* E23744 002B6064 AE020000 */ sw $v0, ($s0) 32 | /* E23748 002B6068 30624000 */ andi $v0, $v1, 0x4000 33 | /* E2374C 002B606C 14400003 */ bnez $v0, .L002B607C 34 | /* E23750 002B6070 AE000060 */ sw $zero, 0x60($s0) 35 | /* E23754 002B6074 C6000058 */ lwc1 $f0, 0x58($s0) 36 | /* E23758 002B6078 E6000054 */ swc1 $f0, 0x54($s0) 37 | .L002B607C: 38 | /* E2375C 002B607C 30A24000 */ andi $v0, $a1, 0x4000 39 | /* E23760 002B6080 10400003 */ beqz $v0, .L002B6090 40 | /* E23764 002B6084 3C040009 */ lui $a0, (0x00090003 >> 16) # lui $a0, 9 41 | /* E23768 002B6088 080AD829 */ j func_002B60A4 42 | /* E2376C 002B608C 34840003 */ ori $a0, (0x00090003 & 0xFFFF) # ori $a0, $a0, 3 43 | 44 | .L002B6090: 45 | /* E23770 002B6090 30A20001 */ andi $v0, $a1, 1 46 | /* E23774 002B6094 14400003 */ bnez $v0, .L002B60A4 47 | /* E23778 002B6098 3C040006 */ lui $a0, 6 48 | /* E2377C 002B609C 3C040001 */ lui $a0, (0x00010004 >> 16) # lui $a0, 1 49 | /* E23780 002B60A0 34840004 */ ori $a0, (0x00010004 & 0xFFFF) # ori $a0, $a0, 4 50 | func_002B60A4: 51 | .L002B60A4: 52 | /* E23784 002B60A4 0C037FBF */ jal func_000DFEFC 53 | /* E23788 002B60A8 00000000 */ nop 54 | .L002B60AC: 55 | /* E2378C 002B60AC 8E020000 */ lw $v0, ($s0) 56 | /* E23790 002B60B0 30424000 */ andi $v0, $v0, 0x4000 57 | /* E23794 002B60B4 10400006 */ beqz $v0, .L002B60D0 58 | /* E23798 002B60B8 24040008 */ li $a0, 8 59 | /* E2379C 002B60BC C60000A0 */ lwc1 $f0, 0xa0($s0) 60 | /* E237A0 002B60C0 0C039426 */ jal func_000E5098 61 | /* E237A4 002B60C4 E6000080 */ swc1 $f0, 0x80($s0) 62 | func_002B60C8: 63 | /* E237A8 002B60C8 080AD89A */ j func_002B6268 64 | /* E237AC 002B60CC 00000000 */ nop 65 | 66 | .L002B60D0: 67 | /* E237B0 002B60D0 27B20010 */ addiu $s2, $sp, 0x10 68 | /* E237B4 002B60D4 0240202D */ move $a0, $s2 69 | /* E237B8 002B60D8 27B10014 */ addiu $s1, $sp, 0x14 70 | /* E237BC 002B60DC 0C0388C1 */ jal func_000E2304 71 | /* E237C0 002B60E0 0220282D */ move $a1, $s1 72 | /* E237C4 002B60E4 0C039454 */ jal func_000E5150 73 | /* E237C8 002B60E8 00000000 */ nop 74 | /* E237CC 002B60EC 0C039858 */ jal func_000E6160 75 | /* E237D0 002B60F0 00000000 */ nop 76 | /* E237D4 002B60F4 1440005C */ bnez $v0, .L002B6268 77 | /* E237D8 002B60F8 00000000 */ nop 78 | /* E237DC 002B60FC 16600006 */ bnez $s3, .L002B6118 79 | /* E237E0 002B6100 0240202D */ move $a0, $s2 80 | /* E237E4 002B6104 0C039838 */ jal func_000E60E0 81 | /* E237E8 002B6108 00000000 */ nop 82 | /* E237EC 002B610C 14400056 */ bnez $v0, .L002B6268 83 | /* E237F0 002B6110 00000000 */ nop 84 | /* E237F4 002B6114 0240202D */ move $a0, $s2 85 | .L002B6118: 86 | /* E237F8 002B6118 0C0388C1 */ jal func_000E2304 87 | /* E237FC 002B611C 0220282D */ move $a1, $s1 88 | /* E23800 002B6120 C7A40014 */ lwc1 $f4, 0x14($sp) 89 | /* E23804 002B6124 44800000 */ mtc1 $zero, $f0 90 | /* E23808 002B6128 00000000 */ nop 91 | /* E2380C 002B612C 46002032 */ c.eq.s $f4, $f0 92 | /* E23810 002B6130 00000000 */ nop 93 | /* E23814 002B6134 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 94 | /* E23818 002B6138 00000000 */ /* E2381C 002B613C 0C039769 */ jal func_000E5DA4 95 | /* E23820 002B6140 0000202D */ move $a0, $zero 96 | /* E23824 002B6144 080AD89A */ j func_002B6268 97 | /* E23828 002B6148 00000000 */ nop 98 | 99 | .L002B614C: 100 | /* E2382C 002B614C C7A60010 */ lwc1 $f6, 0x10($sp) 101 | /* E23830 002B6150 3C01800F */ lui $at, %hi(D_800F7B40) # $at, 0x800f 102 | /* E23834 002B6154 C4207B40 */ lwc1 $f0, %lo(D_800F7B40)($at) 103 | /* E23838 002B6158 46800020 */ cvt.s.w $f0, $f0 104 | /* E2383C 002B615C 46060001 */ sub.s $f0, $f0, $f6 105 | /* E23840 002B6160 3C0142B4 */ li $at, 0x42B40000 # 90.000000 106 | /* E23844 002B6164 44811000 */ mtc1 $at, $f2 107 | /* E23848 002B6168 46000005 */ abs.s $f0, $f0 108 | /* E2384C 002B616C 4602003E */ c.le.s $f0, $f2 109 | /* E23850 002B6170 00000000 */ nop 110 | /* E23854 002B6174 4500001C */ .byte 0x45,0x00,0x00,0x1C /* Because of invalid n64 opcode bc1f */ 111 | /* E23858 002B6178 00000000 */ /* E2385C 002B617C 3C01800F */ lui $at, %hi(D_800F7B44) # $at, 0x800f 112 | /* E23860 002B6180 C4207B44 */ lwc1 $f0, %lo(D_800F7B44)($at) 113 | /* E23864 002B6184 46800020 */ cvt.s.w $f0, $f0 114 | /* E23868 002B6188 46002001 */ sub.s $f0, $f4, $f0 115 | /* E2386C 002B618C 4600020D */ trunc.w.s $f8, $f0 116 | /* E23870 002B6190 44024000 */ mfc1 $v0, $f8 117 | /* E23874 002B6194 00000000 */ nop 118 | /* E23878 002B6198 04420001 */ bltzl $v0, .L002B61A0 119 | /* E2387C 002B619C 00021023 */ negu $v0, $v0 120 | .L002B61A0: 121 | /* E23880 002B61A0 28420014 */ slti $v0, $v0, 0x14 122 | /* E23884 002B61A4 10400010 */ beqz $v0, .L002B61E8 123 | /* E23888 002B61A8 00000000 */ nop 124 | /* E2388C 002B61AC 8E020004 */ lw $v0, 4($s0) 125 | /* E23890 002B61B0 0440000A */ bltz $v0, .L002B61DC 126 | /* E23894 002B61B4 3C037FFF */ lui $v1, 0x7fff 127 | /* E23898 002B61B8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 128 | /* E2389C 002B61BC 44810000 */ mtc1 $at, $f0 129 | /* E238A0 002B61C0 00000000 */ nop 130 | /* E238A4 002B61C4 4604003E */ c.le.s $f0, $f4 131 | func_002B61C8: 132 | /* E238A8 002B61C8 00000000 */ nop 133 | /* E238AC 002B61CC 45030002 */ .byte 0x45,0x03,0x00,0x02 /* Because of invalid n64 opcode bc1tl */ 134 | /* E238B0 002B61D0 E6060080 */ /* E238B4 002B61D4 3C037FFF */ lui $v1, (0x7FFFFFFF >> 16) # lui $v1, 0x7fff 135 | .L002B61D8: 136 | /* E238B8 002B61D8 8E020004 */ lw $v0, 4($s0) 137 | .L002B61DC: 138 | /* E238BC 002B61DC 3463FFFF */ ori $v1, (0x7FFFFFFF & 0xFFFF) # ori $v1, $v1, 0xffff 139 | /* E238C0 002B61E0 080AD881 */ j func_002B6204 140 | func_002B61E4: 141 | /* E238C4 002B61E4 00431024 */ and $v0, $v0, $v1 142 | 143 | .L002B61E8: 144 | /* E238C8 002B61E8 8E020004 */ lw $v0, 4($s0) 145 | /* E238CC 002B61EC 04410004 */ bgez $v0, .L002B6200 146 | /* E238D0 002B61F0 3C038000 */ lui $v1, 0x8000 147 | /* E238D4 002B61F4 C7A00010 */ lwc1 $f0, 0x10($sp) 148 | /* E238D8 002B61F8 080AD882 */ j func_002B6208 149 | /* E238DC 002B61FC E6000080 */ swc1 $f0, 0x80($s0) 150 | 151 | .L002B6200: 152 | /* E238E0 002B6200 00431025 */ or $v0, $v0, $v1 153 | func_002B6204: 154 | /* E238E4 002B6204 AE020004 */ sw $v0, 4($s0) 155 | func_002B6208: 156 | /* E238E8 002B6208 0C03A752 */ jal func_000E9D48 157 | /* E238EC 002B620C 2404000B */ li $a0, 11 158 | /* E238F0 002B6210 14400010 */ bnez $v0, .L002B6254 159 | /* E238F4 002B6214 00000000 */ nop 160 | /* E238F8 002B6218 8E0200E8 */ lw $v0, 0xe8($s0) 161 | /* E238FC 002B621C 00420018 */ mult $v0, $v0 162 | /* E23900 002B6220 00001812 */ mflo $v1 163 | /* E23904 002B6224 8E0200EC */ lw $v0, 0xec($s0) 164 | /* E23908 002B6228 00000000 */ nop 165 | /* E2390C 002B622C 00420018 */ mult $v0, $v0 166 | /* E23910 002B6230 00003812 */ mflo $a3 167 | /* E23914 002B6234 00671021 */ addu $v0, $v1, $a3 168 | /* E23918 002B6238 28420BD2 */ slti $v0, $v0, 0xbd2 169 | /* E2391C 002B623C 14400005 */ bnez $v0, .L002B6254 170 | /* E23920 002B6240 00000000 */ nop 171 | /* E23924 002B6244 0C039769 */ jal func_000E5DA4 172 | /* E23928 002B6248 24040002 */ li $a0, 2 173 | /* E2392C 002B624C 080AD89A */ j func_002B6268 174 | /* E23930 002B6250 00000000 */ nop 175 | 176 | .L002B6254: 177 | /* E23934 002B6254 0C039426 */ jal func_000E5098 178 | /* E23938 002B6258 24040008 */ li $a0, 8 179 | /* E2393C 002B625C 8E8202AC */ lw $v0, 0x2ac($s4) 180 | /* E23940 002B6260 24420001 */ addiu $v0, $v0, 1 181 | /* E23944 002B6264 AE8202AC */ sw $v0, 0x2ac($s4) 182 | func_002B6268: 183 | .L002B6268: 184 | /* E23948 002B6268 8FBF002C */ lw $ra, 0x2c($sp) 185 | /* E2394C 002B626C 8FB40028 */ lw $s4, 0x28($sp) 186 | /* E23950 002B6270 8FB30024 */ lw $s3, 0x24($sp) 187 | /* E23954 002B6274 8FB20020 */ lw $s2, 0x20($sp) 188 | /* E23958 002B6278 8FB1001C */ lw $s1, 0x1c($sp) 189 | /* E2395C 002B627C 8FB00018 */ lw $s0, 0x18($sp) 190 | /* E23960 002B6280 03E00008 */ jr $ra 191 | /* E23964 002B6284 27BD0030 */ addiu $sp, $sp, 0x30 192 | 193 | /* E23968 002B6288 27BDFFD0 */ addiu $sp, $sp, -0x30 194 | /* E2396C 002B628C AFB30024 */ sw $s3, 0x24($sp) 195 | /* E23970 002B6290 AFB00018 */ sw $s0, 0x18($sp) 196 | /* E23974 002B6294 3C108011 */ lui $s0, %hi(D_8010EFC8) # $s0, 0x8011 197 | /* E23978 002B6298 2610EFC8 */ addiu $s0, %lo(D_8010EFC8) # addiu $s0, $s0, -0x1038 198 | /* E2397C 002B629C AFBF002C */ sw $ra, 0x2c($sp) 199 | /* E23980 002B62A0 AFB40028 */ sw $s4, 0x28($sp) 200 | /* E23984 002B62A4 AFB20020 */ sw $s2, 0x20($sp) 201 | func_002B62A8: 202 | /* E23988 002B62A8 AFB1001C */ sw $s1, 0x1c($sp) 203 | /* E2398C 002B62AC 8E050004 */ lw $a1, 4($s0) 204 | /* E23990 002B62B0 3C148011 */ lui $s4, %hi(D_8010F290) # $s4, 0x8011 205 | /* E23994 002B62B4 2694F290 */ addiu $s4, %lo(D_8010F290) # addiu $s4, $s4, -0xd70 206 | /* E23998 002B62B8 30A21000 */ andi $v0, $a1, 0x1000 207 | /* E2399C 002B62BC 10400005 */ beqz $v0, .L002B62D4 208 | /* E239A0 002B62C0 0000982D */ move $s3, $zero 209 | /* E239A4 002B62C4 0C0AD9CE */ jal func_002B6738 210 | /* E239A8 002B62C8 00000000 */ nop 211 | /* E239AC 002B62CC 080AD94C */ j func_002B6530 212 | /* E239B0 002B62D0 00000000 */ nop 213 | 214 | .L002B62D4: 215 | /* E239B4 002B62D4 8E030000 */ lw $v1, ($s0) 216 | /* E239B8 002B62D8 04610019 */ bgez $v1, .L002B6340 217 | /* E239BC 002B62DC 3C027F77 */ lui $v0, (0x7F77FFFF >> 16) # lui $v0, 0x7f77 218 | /* E239C0 002B62E0 3442FFFF */ ori $v0, (0x7F77FFFF & 0xFFFF) # ori $v0, $v0, 0xffff 219 | /* E239C4 002B62E4 24130001 */ li $s3, 1 220 | /* E239C8 002B62E8 00621024 */ and $v0, $v1, $v0 221 | /* E239CC 002B62EC AE020000 */ sw $v0, ($s0) 222 | /* E239D0 002B62F0 30624000 */ andi $v0, $v1, 0x4000 223 | /* E239D4 002B62F4 3C018011 */ lui $at, %hi(D_8010C980) # $at, 0x8011 224 | /* E239D8 002B62F8 AC20C980 */ sw $zero, %lo(D_8010C980)($at) 225 | /* E239DC 002B62FC 14400003 */ bnez $v0, .L002B630C 226 | /* E239E0 002B6300 AE000060 */ sw $zero, 0x60($s0) 227 | /* E239E4 002B6304 C600005C */ lwc1 $f0, 0x5c($s0) 228 | /* E239E8 002B6308 E6000054 */ swc1 $f0, 0x54($s0) 229 | .L002B630C: 230 | /* E239EC 002B630C 30A24000 */ andi $v0, $a1, 0x4000 231 | /* E239F0 002B6310 10400003 */ beqz $v0, .L002B6320 232 | /* E239F4 002B6314 3C040009 */ lui $a0, (0x00090003 >> 16) # lui $a0, 9 233 | /* E239F8 002B6318 080AD8CE */ j func_002B6338 234 | /* E239FC 002B631C 34840003 */ ori $a0, (0x00090003 & 0xFFFF) # ori $a0, $a0, 3 235 | 236 | .L002B6320: 237 | /* E23A00 002B6320 3C040006 */ lui $a0, (0x00060002 >> 16) # lui $a0, 6 238 | /* E23A04 002B6324 30A20001 */ andi $v0, $a1, 1 239 | /* E23A08 002B6328 14400003 */ bnez $v0, .L002B6338 240 | /* E23A0C 002B632C 34840002 */ ori $a0, (0x00060002 & 0xFFFF) # ori $a0, $a0, 2 241 | /* E23A10 002B6330 3C040001 */ lui $a0, (0x00010005 >> 16) # lui $a0, 1 242 | /* E23A14 002B6334 34840005 */ ori $a0, (0x00010005 & 0xFFFF) # ori $a0, $a0, 5 243 | func_002B6338: 244 | .L002B6338: 245 | /* E23A18 002B6338 0C037FBF */ jal func_000DFEFC 246 | /* E23A1C 002B633C 00000000 */ nop 247 | .L002B6340: 248 | /* E23A20 002B6340 8E020000 */ lw $v0, ($s0) 249 | /* E23A24 002B6344 30424000 */ andi $v0, $v0, 0x4000 250 | /* E23A28 002B6348 10400006 */ beqz $v0, .L002B6364 251 | /* E23A2C 002B634C 24040004 */ li $a0, 4 252 | /* E23A30 002B6350 C60000A0 */ lwc1 $f0, 0xa0($s0) 253 | /* E23A34 002B6354 0C039426 */ jal func_000E5098 254 | /* E23A38 002B6358 E6000080 */ swc1 $f0, 0x80($s0) 255 | /* E23A3C 002B635C 080AD94C */ j func_002B6530 256 | /* E23A40 002B6360 00000000 */ nop 257 | 258 | .L002B6364: 259 | /* E23A44 002B6364 3C038011 */ lui $v1, %hi(D_8010C980) # $v1, 0x8011 260 | /* E23A48 002B6368 2463C980 */ addiu $v1, %lo(D_8010C980) # addiu $v1, $v1, -0x3680 261 | /* E23A4C 002B636C 8C620000 */ lw $v0, ($v1) 262 | /* E23A50 002B6370 3C013F80 */ li $at, 0x3F800000 # 1.000000 263 | /* E23A54 002B6374 44811000 */ mtc1 $at, $f2 264 | /* E23A58 002B6378 24420001 */ addiu $v0, $v0, 1 265 | /* E23A5C 002B637C AC620000 */ sw $v0, ($v1) 266 | /* E23A60 002B6380 8E020004 */ lw $v0, 4($s0) 267 | /* E23A64 002B6384 3C030001 */ lui $v1, 1 268 | /* E23A68 002B6388 00431024 */ and $v0, $v0, $v1 269 | /* E23A6C 002B638C 10400003 */ beqz $v0, .L002B639C 270 | /* E23A70 002B6390 00000000 */ nop 271 | /* E23A74 002B6394 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 272 | /* E23A78 002B6398 44811000 */ mtc1 $at, $f2 273 | .L002B639C: 274 | /* E23A7C 002B639C C600005C */ lwc1 $f0, 0x5c($s0) 275 | /* E23A80 002B63A0 46020002 */ mul.s $f0, $f0, $f2 276 | /* E23A84 002B63A4 00000000 */ nop 277 | /* E23A88 002B63A8 27B20010 */ addiu $s2, $sp, 0x10 278 | /* E23A8C 002B63AC 0240202D */ move $a0, $s2 279 | /* E23A90 002B63B0 27B10014 */ addiu $s1, $sp, 0x14 280 | /* E23A94 002B63B4 0220282D */ move $a1, $s1 281 | /* E23A98 002B63B8 0C0388C1 */ jal func_000E2304 282 | /* E23A9C 002B63BC E6000054 */ swc1 $f0, 0x54($s0) 283 | /* E23AA0 002B63C0 0C039454 */ jal func_000E5150 284 | /* E23AA4 002B63C4 00000000 */ nop 285 | /* E23AA8 002B63C8 0C039858 */ jal func_000E6160 286 | /* E23AAC 002B63CC 00000000 */ nop 287 | /* E23AB0 002B63D0 14400057 */ bnez $v0, .L002B6530 288 | /* E23AB4 002B63D4 00000000 */ nop 289 | func_002B63D8: 290 | /* E23AB8 002B63D8 16600006 */ bnez $s3, .L002B63F4 291 | /* E23ABC 002B63DC 0240202D */ move $a0, $s2 292 | func_002B63E0: 293 | /* E23AC0 002B63E0 0C039838 */ jal func_000E60E0 294 | func_002B63E4: 295 | /* E23AC4 002B63E4 00000000 */ nop 296 | /* E23AC8 002B63E8 14400051 */ bnez $v0, .L002B6530 297 | /* E23ACC 002B63EC 00000000 */ nop 298 | /* E23AD0 002B63F0 0240202D */ move $a0, $s2 299 | .L002B63F4: 300 | /* E23AD4 002B63F4 0C0388C1 */ jal func_000E2304 301 | /* E23AD8 002B63F8 0220282D */ move $a1, $s1 302 | /* E23ADC 002B63FC C7A20014 */ lwc1 $f2, 0x14($sp) 303 | /* E23AE0 002B6400 44800000 */ mtc1 $zero, $f0 304 | /* E23AE4 002B6404 00000000 */ nop 305 | /* E23AE8 002B6408 46001032 */ c.eq.s $f2, $f0 306 | /* E23AEC 002B640C 00000000 */ nop 307 | /* E23AF0 002B6410 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 308 | /* E23AF4 002B6414 00000000 */ /* E23AF8 002B6418 0C039769 */ jal func_000E5DA4 309 | /* E23AFC 002B641C 0000202D */ move $a0, $zero 310 | func_002B6420: 311 | /* E23B00 002B6420 080AD94C */ j func_002B6530 312 | /* E23B04 002B6424 00000000 */ nop 313 | 314 | .L002B6428: 315 | /* E23B08 002B6428 C7A40010 */ lwc1 $f4, 0x10($sp) 316 | /* E23B0C 002B642C 3C01800F */ lui $at, %hi(D_800F7B40) # $at, 0x800f 317 | /* E23B10 002B6430 C4207B40 */ lwc1 $f0, %lo(D_800F7B40)($at) 318 | /* E23B14 002B6434 46800020 */ cvt.s.w $f0, $f0 319 | /* E23B18 002B6438 46040001 */ sub.s $f0, $f0, $f4 320 | /* E23B1C 002B643C 3C0142B4 */ li $at, 0x42B40000 # 90.000000 321 | /* E23B20 002B6440 44811000 */ mtc1 $at, $f2 322 | /* E23B24 002B6444 46000005 */ abs.s $f0, $f0 323 | /* E23B28 002B6448 4602003E */ c.le.s $f0, $f2 324 | /* E23B2C 002B644C 00000000 */ nop 325 | /* E23B30 002B6450 45000009 */ .byte 0x45,0x00,0x00,0x09 /* Because of invalid n64 opcode bc1f */ 326 | /* E23B34 002B6454 00000000 */ /* E23B38 002B6458 8E020004 */ lw $v0, 4($s0) 327 | /* E23B3C 002B645C 04430001 */ bgezl $v0, .L002B6464 328 | /* E23B40 002B6460 E6040080 */ swc1 $f4, 0x80($s0) 329 | .L002B6464: 330 | /* E23B44 002B6464 3C037FFF */ lui $v1, (0x7FFFFFFF >> 16) # lui $v1, 0x7fff 331 | /* E23B48 002B6468 8E020004 */ lw $v0, 4($s0) 332 | /* E23B4C 002B646C 3463FFFF */ ori $v1, (0x7FFFFFFF & 0xFFFF) # ori $v1, $v1, 0xffff 333 | /* E23B50 002B6470 080AD924 */ j func_002B6490 334 | /* E23B54 002B6474 00431024 */ and $v0, $v0, $v1 335 | 336 | .L002B6478: 337 | /* E23B58 002B6478 8E020004 */ lw $v0, 4($s0) 338 | /* E23B5C 002B647C 04410003 */ bgez $v0, .L002B648C 339 | /* E23B60 002B6480 3C038000 */ lui $v1, 0x8000 340 | /* E23B64 002B6484 080AD925 */ j func_002B6494 341 | /* E23B68 002B6488 E6040080 */ swc1 $f4, 0x80($s0) 342 | 343 | .L002B648C: 344 | /* E23B6C 002B648C 00431025 */ or $v0, $v0, $v1 345 | func_002B6490: 346 | /* E23B70 002B6490 AE020004 */ sw $v0, 4($s0) 347 | func_002B6494: 348 | /* E23B74 002B6494 0C03A752 */ jal func_000E9D48 349 | /* E23B78 002B6498 2404000B */ li $a0, 11 350 | /* E23B7C 002B649C 1440001B */ bnez $v0, .L002B650C 351 | /* E23B80 002B64A0 00000000 */ nop 352 | /* E23B84 002B64A4 8E0200E8 */ lw $v0, 0xe8($s0) 353 | /* E23B88 002B64A8 00420018 */ mult $v0, $v0 354 | /* E23B8C 002B64AC 00001812 */ mflo $v1 355 | /* E23B90 002B64B0 8E0200EC */ lw $v0, 0xec($s0) 356 | /* E23B94 002B64B4 00000000 */ nop 357 | /* E23B98 002B64B8 00420018 */ mult $v0, $v0 358 | /* E23B9C 002B64BC 00003812 */ mflo $a3 359 | /* E23BA0 002B64C0 00671021 */ addu $v0, $v1, $a3 360 | /* E23BA4 002B64C4 44826000 */ mtc1 $v0, $f12 361 | /* E23BA8 002B64C8 00000000 */ nop 362 | /* E23BAC 002B64CC 46806320 */ cvt.s.w $f12, $f12 363 | /* E23BB0 002B64D0 46006084 */ sqrt.s $f2, $f12 364 | /* E23BB4 002B64D4 46021032 */ c.eq.s $f2, $f2 365 | /* E23BB8 002B64D8 00000000 */ nop 366 | /* E23BBC 002B64DC 45010004 */ .byte 0x45,0x01,0x00,0x04 /* Because of invalid n64 opcode bc1t */ 367 | /* E23BC0 002B64E0 00000000 */ /* E23BC4 002B64E4 0C0187BC */ jal func_00061EF0 368 | /* E23BC8 002B64E8 00000000 */ nop 369 | /* E23BCC 002B64EC 46000086 */ mov.s $f2, $f0 370 | .L002B64F0: 371 | /* E23BD0 002B64F0 3C01425C */ li $at, 0x425C0000 # 55.000000 372 | /* E23BD4 002B64F4 44810000 */ mtc1 $at, $f0 373 | /* E23BD8 002B64F8 00000000 */ nop 374 | /* E23BDC 002B64FC 4600103E */ c.le.s $f2, $f0 375 | /* E23BE0 002B6500 00000000 */ nop 376 | /* E23BE4 002B6504 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 377 | /* E23BE8 002B6508 00000000 */ .L002B650C: 378 | /* E23BEC 002B650C 0C039769 */ jal func_000E5DA4 379 | /* E23BF0 002B6510 24040001 */ li $a0, 1 380 | /* E23BF4 002B6514 080AD94C */ j func_002B6530 381 | /* E23BF8 002B6518 00000000 */ nop 382 | 383 | .L002B651C: 384 | /* E23BFC 002B651C 0C039426 */ jal func_000E5098 385 | /* E23C00 002B6520 24040004 */ li $a0, 4 386 | /* E23C04 002B6524 8E8202B0 */ lw $v0, 0x2b0($s4) 387 | /* E23C08 002B6528 24420001 */ addiu $v0, $v0, 1 388 | /* E23C0C 002B652C AE8202B0 */ sw $v0, 0x2b0($s4) 389 | func_002B6530: 390 | .L002B6530: 391 | /* E23C10 002B6530 8FBF002C */ lw $ra, 0x2c($sp) 392 | /* E23C14 002B6534 8FB40028 */ lw $s4, 0x28($sp) 393 | /* E23C18 002B6538 8FB30024 */ lw $s3, 0x24($sp) 394 | /* E23C1C 002B653C 8FB20020 */ lw $s2, 0x20($sp) 395 | /* E23C20 002B6540 8FB1001C */ lw $s1, 0x1c($sp) 396 | /* E23C24 002B6544 8FB00018 */ lw $s0, 0x18($sp) 397 | /* E23C28 002B6548 03E00008 */ jr $ra 398 | /* E23C2C 002B654C 27BD0030 */ addiu $sp, $sp, 0x30 399 | 400 | func_002B6550: 401 | /* E23C30 002B6550 27BDFFE8 */ addiu $sp, $sp, -0x18 402 | /* E23C34 002B6554 3C038011 */ lui $v1, %hi(D_8010EFC8) # $v1, 0x8011 403 | /* E23C38 002B6558 2463EFC8 */ addiu $v1, %lo(D_8010EFC8) # addiu $v1, $v1, -0x1038 404 | /* E23C3C 002B655C AFBF0010 */ sw $ra, 0x10($sp) 405 | /* E23C40 002B6560 8C620004 */ lw $v0, 4($v1) 406 | /* E23C44 002B6564 30422000 */ andi $v0, $v0, 0x2000 407 | /* E23C48 002B6568 14400013 */ bnez $v0, .L002B65B8 408 | /* E23C4C 002B656C 00000000 */ nop 409 | /* E23C50 002B6570 3C038007 */ lui $v1, %hi(D_8007419C) # $v1, 0x8007 410 | /* E23C54 002B6574 8C63419C */ lw $v1, %lo(D_8007419C)($v1) 411 | /* E23C58 002B6578 9062007E */ lbu $v0, 0x7e($v1) 412 | /* E23C5C 002B657C 30420010 */ andi $v0, $v0, 0x10 413 | /* E23C60 002B6580 14400009 */ bnez $v0, .L002B65A8 414 | /* E23C64 002B6584 3C04000D */ lui $a0, 0xd 415 | /* E23C68 002B6588 90620080 */ lbu $v0, 0x80($v1) 416 | /* E23C6C 002B658C 00021080 */ sll $v0, $v0, 2 417 | /* E23C70 002B6590 3C04802B */ lui $a0, 0x802b 418 | /* E23C74 002B6594 00822021 */ addu $a0, $a0, $v0 419 | /* E23C78 002B6598 0C037FBF */ jal func_000DFEFC 420 | /* E23C7C 002B659C 8C846910 */ lw $a0, 0x6910($a0) 421 | /* E23C80 002B65A0 080AD977 */ j func_002B65DC 422 | /* E23C84 002B65A4 00000000 */ nop 423 | 424 | .L002B65A8: 425 | /* E23C88 002B65A8 0C037FBF */ jal func_000DFEFC 426 | /* E23C8C 002B65AC 3484000D */ ori $a0, $a0, 0xd 427 | /* E23C90 002B65B0 080AD977 */ j func_002B65DC 428 | /* E23C94 002B65B4 00000000 */ nop 429 | 430 | .L002B65B8: 431 | /* E23C98 002B65B8 8063000C */ lb $v1, 0xc($v1) 432 | /* E23C9C 002B65BC 00031040 */ sll $v0, $v1, 1 433 | /* E23CA0 002B65C0 00431021 */ addu $v0, $v0, $v1 434 | /* E23CA4 002B65C4 000210C0 */ sll $v0, $v0, 3 435 | /* E23CA8 002B65C8 3C04800F */ lui $a0, 0x800f 436 | /* E23CAC 002B65CC 00822021 */ addu $a0, $a0, $v0 437 | /* E23CB0 002B65D0 8C847C20 */ lw $a0, 0x7c20($a0) 438 | /* E23CB4 002B65D4 0C0398DB */ jal func_000E636C 439 | /* E23CB8 002B65D8 00000000 */ nop 440 | func_002B65DC: 441 | /* E23CBC 002B65DC 8FBF0010 */ lw $ra, 0x10($sp) 442 | /* E23CC0 002B65E0 03E00008 */ jr $ra 443 | /* E23CC4 002B65E4 27BD0018 */ addiu $sp, $sp, 0x18 444 | 445 | func_002B65E8: 446 | /* E23CC8 002B65E8 27BDFFE0 */ addiu $sp, $sp, -0x20 447 | /* E23CCC 002B65EC AFB00018 */ sw $s0, 0x18($sp) 448 | /* E23CD0 002B65F0 3C108011 */ lui $s0, %hi(D_8010EFC8) # $s0, 0x8011 449 | /* E23CD4 002B65F4 2610EFC8 */ addiu $s0, %lo(D_8010EFC8) # addiu $s0, $s0, -0x1038 450 | /* E23CD8 002B65F8 AFBF001C */ sw $ra, 0x1c($sp) 451 | /* E23CDC 002B65FC 8E030000 */ lw $v1, ($s0) 452 | /* E23CE0 002B6600 0461000B */ bgez $v1, .L002B6630 453 | /* E23CE4 002B6604 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff 454 | /* E23CE8 002B6608 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff 455 | /* E23CEC 002B660C 00621024 */ and $v0, $v1, $v0 456 | /* E23CF0 002B6610 AE020000 */ sw $v0, ($s0) 457 | /* E23CF4 002B6614 30624000 */ andi $v0, $v1, 0x4000 458 | /* E23CF8 002B6618 14400003 */ bnez $v0, .L002B6628 459 | /* E23CFC 002B661C AE000060 */ sw $zero, 0x60($s0) 460 | /* E23D00 002B6620 C6000058 */ lwc1 $f0, 0x58($s0) 461 | /* E23D04 002B6624 E6000054 */ swc1 $f0, 0x54($s0) 462 | .L002B6628: 463 | /* E23D08 002B6628 0C0AD954 */ jal func_002B6550 464 | /* E23D0C 002B662C 00000000 */ nop 465 | .L002B6630: 466 | /* E23D10 002B6630 8E020000 */ lw $v0, ($s0) 467 | /* E23D14 002B6634 30424000 */ andi $v0, $v0, 0x4000 468 | /* E23D18 002B6638 10400004 */ beqz $v0, .L002B664C 469 | /* E23D1C 002B663C 24040008 */ li $a0, 8 470 | /* E23D20 002B6640 C60000A0 */ lwc1 $f0, 0xa0($s0) 471 | /* E23D24 002B6644 080AD9C8 */ j func_002B6720 472 | /* E23D28 002B6648 E6000080 */ swc1 $f0, 0x80($s0) 473 | 474 | .L002B664C: 475 | /* E23D2C 002B664C 27A40010 */ addiu $a0, $sp, 0x10 476 | /* E23D30 002B6650 0C0388C1 */ jal func_000E2304 477 | /* E23D34 002B6654 27A50014 */ addiu $a1, $sp, 0x14 478 | /* E23D38 002B6658 0C039454 */ jal func_000E5150 479 | /* E23D3C 002B665C 00000000 */ nop 480 | /* E23D40 002B6660 C7A20014 */ lwc1 $f2, 0x14($sp) 481 | /* E23D44 002B6664 44800000 */ mtc1 $zero, $f0 482 | /* E23D48 002B6668 00000000 */ nop 483 | /* E23D4C 002B666C 46001032 */ c.eq.s $f2, $f0 484 | /* E23D50 002B6670 00000000 */ nop 485 | /* E23D54 002B6674 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 486 | /* E23D58 002B6678 00000000 */ /* E23D5C 002B667C 0C039769 */ jal func_000E5DA4 487 | /* E23D60 002B6680 0000202D */ move $a0, $zero 488 | /* E23D64 002B6684 080AD9CA */ j func_002B6728 489 | /* E23D68 002B6688 00000000 */ nop 490 | 491 | .L002B668C: 492 | /* E23D6C 002B668C C7A00010 */ lwc1 $f0, 0x10($sp) 493 | /* E23D70 002B6690 3C028007 */ lui $v0, %hi(D_8007419C) # $v0, 0x8007 494 | /* E23D74 002B6694 8C42419C */ lw $v0, %lo(D_8007419C)($v0) 495 | /* E23D78 002B6698 E6000080 */ swc1 $f0, 0x80($s0) 496 | /* E23D7C 002B669C 90420080 */ lbu $v0, 0x80($v0) 497 | /* E23D80 002B66A0 1440001F */ bnez $v0, .L002B6720 498 | /* E23D84 002B66A4 24040008 */ li $a0, 8 499 | /* E23D88 002B66A8 8E0200E8 */ lw $v0, 0xe8($s0) 500 | /* E23D8C 002B66AC 00420018 */ mult $v0, $v0 501 | /* E23D90 002B66B0 00001812 */ mflo $v1 502 | /* E23D94 002B66B4 8E0200EC */ lw $v0, 0xec($s0) 503 | /* E23D98 002B66B8 00000000 */ nop 504 | /* E23D9C 002B66BC 00420018 */ mult $v0, $v0 505 | /* E23DA0 002B66C0 00001012 */ mflo $v0 506 | /* E23DA4 002B66C4 00621021 */ addu $v0, $v1, $v0 507 | /* E23DA8 002B66C8 44826000 */ mtc1 $v0, $f12 508 | /* E23DAC 002B66CC 00000000 */ nop 509 | /* E23DB0 002B66D0 46806320 */ cvt.s.w $f12, $f12 510 | /* E23DB4 002B66D4 46006084 */ sqrt.s $f2, $f12 511 | /* E23DB8 002B66D8 46021032 */ c.eq.s $f2, $f2 512 | /* E23DBC 002B66DC 00000000 */ nop 513 | /* E23DC0 002B66E0 45010004 */ .byte 0x45,0x01,0x00,0x04 /* Because of invalid n64 opcode bc1t */ 514 | /* E23DC4 002B66E4 00000000 */ /* E23DC8 002B66E8 0C0187BC */ jal func_00061EF0 515 | /* E23DCC 002B66EC 00000000 */ nop 516 | /* E23DD0 002B66F0 46000086 */ mov.s $f2, $f0 517 | .L002B66F4: 518 | /* E23DD4 002B66F4 3C01425C */ li $at, 0x425C0000 # 55.000000 519 | /* E23DD8 002B66F8 44810000 */ mtc1 $at, $f0 520 | /* E23DDC 002B66FC 00000000 */ nop 521 | /* E23DE0 002B6700 4602003C */ c.lt.s $f0, $f2 522 | /* E23DE4 002B6704 00000000 */ nop 523 | /* E23DE8 002B6708 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 524 | /* E23DEC 002B670C 24040008 */ /* E23DF0 002B6710 0C039769 */ jal func_000E5DA4 525 | /* E23DF4 002B6714 24040002 */ li $a0, 2 526 | /* E23DF8 002B6718 080AD9CA */ j func_002B6728 527 | /* E23DFC 002B671C 00000000 */ nop 528 | 529 | func_002B6720: 530 | .L002B6720: 531 | /* E23E00 002B6720 0C039426 */ jal func_000E5098 532 | /* E23E04 002B6724 00000000 */ nop 533 | func_002B6728: 534 | /* E23E08 002B6728 8FBF001C */ lw $ra, 0x1c($sp) 535 | /* E23E0C 002B672C 8FB00018 */ lw $s0, 0x18($sp) 536 | /* E23E10 002B6730 03E00008 */ jr $ra 537 | /* E23E14 002B6734 27BD0020 */ addiu $sp, $sp, 0x20 538 | 539 | func_002B6738: 540 | /* E23E18 002B6738 27BDFFE0 */ addiu $sp, $sp, -0x20 541 | /* E23E1C 002B673C AFB00018 */ sw $s0, 0x18($sp) 542 | /* E23E20 002B6740 3C108011 */ lui $s0, %hi(D_8010EFC8) # $s0, 0x8011 543 | /* E23E24 002B6744 2610EFC8 */ addiu $s0, %lo(D_8010EFC8) # addiu $s0, $s0, -0x1038 544 | /* E23E28 002B6748 AFBF001C */ sw $ra, 0x1c($sp) 545 | /* E23E2C 002B674C 8E030000 */ lw $v1, ($s0) 546 | /* E23E30 002B6750 0461002E */ bgez $v1, .L002B680C 547 | /* E23E34 002B6754 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff 548 | /* E23E38 002B6758 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff 549 | /* E23E3C 002B675C 00621024 */ and $v0, $v1, $v0 550 | /* E23E40 002B6760 AE020000 */ sw $v0, ($s0) 551 | /* E23E44 002B6764 30624000 */ andi $v0, $v1, 0x4000 552 | /* E23E48 002B6768 14400003 */ bnez $v0, .L002B6778 553 | /* E23E4C 002B676C AE000060 */ sw $zero, 0x60($s0) 554 | /* E23E50 002B6770 C600005C */ lwc1 $f0, 0x5c($s0) 555 | /* E23E54 002B6774 E6000054 */ swc1 $f0, 0x54($s0) 556 | .L002B6778: 557 | /* E23E58 002B6778 8E020004 */ lw $v0, 4($s0) 558 | /* E23E5C 002B677C 30422000 */ andi $v0, $v0, 0x2000 559 | /* E23E60 002B6780 14400019 */ bnez $v0, .L002B67E8 560 | /* E23E64 002B6784 00000000 */ nop 561 | /* E23E68 002B6788 3C038007 */ lui $v1, %hi(D_8007419C) # $v1, 0x8007 562 | /* E23E6C 002B678C 8C63419C */ lw $v1, %lo(D_8007419C)($v1) 563 | /* E23E70 002B6790 9062007E */ lbu $v0, 0x7e($v1) 564 | /* E23E74 002B6794 30420010 */ andi $v0, $v0, 0x10 565 | /* E23E78 002B6798 1440000F */ bnez $v0, .L002B67D8 566 | /* E23E7C 002B679C 3C04000D */ lui $a0, 0xd 567 | /* E23E80 002B67A0 90620080 */ lbu $v0, 0x80($v1) 568 | /* E23E84 002B67A4 14400006 */ bnez $v0, .L002B67C0 569 | /* E23E88 002B67A8 00021080 */ sll $v0, $v0, 2 570 | /* E23E8C 002B67AC 3C04000A */ lui $a0, (0x000A0003 >> 16) # lui $a0, 0xa 571 | /* E23E90 002B67B0 0C037FBF */ jal func_000DFEFC 572 | /* E23E94 002B67B4 34840003 */ ori $a0, (0x000A0003 & 0xFFFF) # ori $a0, $a0, 3 573 | /* E23E98 002B67B8 080ADA03 */ j func_002B680C 574 | /* E23E9C 002B67BC 00000000 */ nop 575 | 576 | .L002B67C0: 577 | /* E23EA0 002B67C0 3C04802B */ lui $a0, 0x802b 578 | /* E23EA4 002B67C4 00822021 */ addu $a0, $a0, $v0 579 | /* E23EA8 002B67C8 0C037FBF */ jal func_000DFEFC 580 | /* E23EAC 002B67CC 8C846910 */ lw $a0, 0x6910($a0) 581 | /* E23EB0 002B67D0 080ADA03 */ j func_002B680C 582 | /* E23EB4 002B67D4 00000000 */ nop 583 | 584 | .L002B67D8: 585 | /* E23EB8 002B67D8 0C037FBF */ jal func_000DFEFC 586 | /* E23EBC 002B67DC 3484000D */ ori $a0, $a0, 0xd 587 | /* E23EC0 002B67E0 080ADA03 */ j func_002B680C 588 | /* E23EC4 002B67E4 00000000 */ nop 589 | 590 | .L002B67E8: 591 | /* E23EC8 002B67E8 8203000C */ lb $v1, 0xc($s0) 592 | /* E23ECC 002B67EC 00031040 */ sll $v0, $v1, 1 593 | /* E23ED0 002B67F0 00431021 */ addu $v0, $v0, $v1 594 | /* E23ED4 002B67F4 000210C0 */ sll $v0, $v0, 3 595 | /* E23ED8 002B67F8 3C04800F */ lui $a0, 0x800f 596 | /* E23EDC 002B67FC 00822021 */ addu $a0, $a0, $v0 597 | /* E23EE0 002B6800 8C847C24 */ lw $a0, 0x7c24($a0) 598 | /* E23EE4 002B6804 0C0398DB */ jal func_000E636C 599 | /* E23EE8 002B6808 00000000 */ nop 600 | func_002B680C: 601 | .L002B680C: 602 | /* E23EEC 002B680C 8E020000 */ lw $v0, ($s0) 603 | /* E23EF0 002B6810 30424000 */ andi $v0, $v0, 0x4000 604 | /* E23EF4 002B6814 10400004 */ beqz $v0, .L002B6828 605 | /* E23EF8 002B6818 24040004 */ li $a0, 4 606 | /* E23EFC 002B681C C60000A0 */ lwc1 $f0, 0xa0($s0) 607 | /* E23F00 002B6820 080ADA3B */ j func_002B68EC 608 | /* E23F04 002B6824 E6000080 */ swc1 $f0, 0x80($s0) 609 | 610 | .L002B6828: 611 | /* E23F08 002B6828 27A40010 */ addiu $a0, $sp, 0x10 612 | /* E23F0C 002B682C C600005C */ lwc1 $f0, 0x5c($s0) 613 | /* E23F10 002B6830 27A50014 */ addiu $a1, $sp, 0x14 614 | /* E23F14 002B6834 0C0388C1 */ jal func_000E2304 615 | /* E23F18 002B6838 E6000054 */ swc1 $f0, 0x54($s0) 616 | /* E23F1C 002B683C 0C039454 */ jal func_000E5150 617 | /* E23F20 002B6840 00000000 */ nop 618 | /* E23F24 002B6844 C7A20014 */ lwc1 $f2, 0x14($sp) 619 | /* E23F28 002B6848 44800000 */ mtc1 $zero, $f0 620 | /* E23F2C 002B684C 00000000 */ nop 621 | /* E23F30 002B6850 46001032 */ c.eq.s $f2, $f0 622 | /* E23F34 002B6854 00000000 */ nop 623 | /* E23F38 002B6858 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 624 | /* E23F3C 002B685C 00000000 */ /* E23F40 002B6860 0C039769 */ jal func_000E5DA4 625 | /* E23F44 002B6864 0000202D */ move $a0, $zero 626 | /* E23F48 002B6868 080ADA3D */ j func_002B68F4 627 | /* E23F4C 002B686C 00000000 */ nop 628 | 629 | .L002B6870: 630 | /* E23F50 002B6870 8E0200E8 */ lw $v0, 0xe8($s0) 631 | /* E23F54 002B6874 00420018 */ mult $v0, $v0 632 | /* E23F58 002B6878 00001812 */ mflo $v1 633 | /* E23F5C 002B687C 8E0200EC */ lw $v0, 0xec($s0) 634 | /* E23F60 002B6880 00000000 */ nop 635 | /* E23F64 002B6884 00420018 */ mult $v0, $v0 636 | /* E23F68 002B6888 C7A00010 */ lwc1 $f0, 0x10($sp) 637 | /* E23F6C 002B688C 00001012 */ mflo $v0 638 | /* E23F70 002B6890 00621021 */ addu $v0, $v1, $v0 639 | /* E23F74 002B6894 44826000 */ mtc1 $v0, $f12 640 | /* E23F78 002B6898 00000000 */ nop 641 | /* E23F7C 002B689C 46806320 */ cvt.s.w $f12, $f12 642 | /* E23F80 002B68A0 46006084 */ sqrt.s $f2, $f12 643 | /* E23F84 002B68A4 46021032 */ c.eq.s $f2, $f2 644 | /* E23F88 002B68A8 00000000 */ nop 645 | /* E23F8C 002B68AC 45010004 */ .byte 0x45,0x01,0x00,0x04 /* Because of invalid n64 opcode bc1t */ 646 | /* E23F90 002B68B0 E6000080 */ /* E23F94 002B68B4 0C0187BC */ jal func_00061EF0 647 | /* E23F98 002B68B8 00000000 */ nop 648 | /* E23F9C 002B68BC 46000086 */ mov.s $f2, $f0 649 | .L002B68C0: 650 | /* E23FA0 002B68C0 3C01425C */ li $at, 0x425C0000 # 55.000000 651 | /* E23FA4 002B68C4 44810000 */ mtc1 $at, $f0 652 | /* E23FA8 002B68C8 00000000 */ nop 653 | /* E23FAC 002B68CC 4600103C */ c.lt.s $f2, $f0 654 | /* E23FB0 002B68D0 00000000 */ nop 655 | /* E23FB4 002B68D4 45000005 */ .byte 0x45,0x00,0x00,0x05 /* Because of invalid n64 opcode bc1f */ 656 | /* E23FB8 002B68D8 24040004 */ /* E23FBC 002B68DC 0C039769 */ jal func_000E5DA4 657 | /* E23FC0 002B68E0 24040001 */ li $a0, 1 658 | /* E23FC4 002B68E4 080ADA3D */ j func_002B68F4 659 | /* E23FC8 002B68E8 00000000 */ nop 660 | 661 | func_002B68EC: 662 | .L002B68EC: 663 | /* E23FCC 002B68EC 0C039426 */ jal func_000E5098 664 | /* E23FD0 002B68F0 00000000 */ nop 665 | func_002B68F4: 666 | /* E23FD4 002B68F4 8FBF001C */ lw $ra, 0x1c($sp) 667 | /* E23FD8 002B68F8 8FB00018 */ lw $s0, 0x18($sp) 668 | /* E23FDC 002B68FC 03E00008 */ jr $ra 669 | /* E23FE0 002B6900 27BD0020 */ addiu $sp, $sp, 0x20 670 | 671 | /* E23FE4 002B6904 00000000 */ nop 672 | /* E23FE8 002B6908 00000000 */ nop 673 | /* E23FEC 002B690C 00000000 */ nop 674 | /* E23FF0 002B6910 000A0002 */ srl $zero, $t2, 0 675 | /* E23FF4 002B6914 000A002B */ sltu $zero, $zero, $t2 676 | /* E23FF8 002B6918 000A002D */ daddu $zero, $zero, $t2 677 | /* E23FFC 002B691C 000A002F */ dsubu $zero, $zero, $t2 678 | /* E24000 002B6920 000A0031 */ tgeu $zero, $t2 679 | /* E24004 002B6924 000A0033 */ tltu $zero, $t2 680 | /* E24008 002B6928 000A0035 */ .byte 0x00, 0x0a, 0x00, 0x35 681 | /* E2400C 002B692C 000A0037 */ /* E24010 002B6930 000A0039 */ /* E24014 002B6934 000A003B */ /* E24018 002B6938 000A003D */ .byte 0x00, 0x0a, 0x00, 0x3d 682 | /* E2401C 002B693C 000A003F */ /* E24020 002B6940 000A0041 */ .byte 0x00, 0x0a, 0x00, 0x41 683 | /* E24024 002B6944 000A0043 */ /* E24028 002B6948 000A0045 */ .byte 0x00,0x0A,0x00,0x45 /* Because of invalid n64 opcode lsa */ 684 | /* E2402C 002B694C 000A0047 */ /* E24030 002B6950 000A0049 */ /* E24034 002B6954 000A004B */ /* E24038 002B6958 000A004D */ /* E2403C 002B695C 00000000 */ nop 685 | -------------------------------------------------------------------------------- /papermario/asm/boot.s: -------------------------------------------------------------------------------- 1 | 2 | .section .text00000000, "ax" 3 | 4 | /* 000040 00000000 40806800 */ mtc0 $zero, $13 5 | /* 000044 00000004 40804800 */ mtc0 $zero, $9 6 | /* 000048 00000008 40805800 */ mtc0 $zero, $11 7 | /* 00004C 0000000C 3C08A470 */ lui $t0, 0xa470 8 | /* 000050 00000010 25080000 */ addiu $t0, $t0, 0 9 | /* 000054 00000014 8D09000C */ lw $t1, 0xc($t0) 10 | /* 000058 00000018 152000ED */ bnez $t1, .L000003D0 11 | /* 00005C 0000001C 00000000 */ nop 12 | /* 000060 00000020 27BDFFE8 */ addiu $sp, $sp, -0x18 13 | /* 000064 00000024 AFB30000 */ sw $s3, ($sp) 14 | /* 000068 00000028 AFB40004 */ sw $s4, 4($sp) 15 | /* 00006C 0000002C AFB50008 */ sw $s5, 8($sp) 16 | /* 000070 00000030 AFB6000C */ sw $s6, 0xc($sp) 17 | /* 000074 00000034 AFB70010 */ sw $s7, 0x10($sp) 18 | /* 000078 00000038 3C08A470 */ lui $t0, 0xa470 19 | /* 00007C 0000003C 25080000 */ addiu $t0, $t0, 0 20 | /* 000080 00000040 3C0AA3F8 */ lui $t2, %hi(D_A3F80004) # $t2, 0xa3f8 21 | /* 000084 00000044 3C0BA3F0 */ lui $t3, 0xa3f0 22 | /* 000088 00000048 3C0CA430 */ lui $t4, 0xa430 23 | /* 00008C 0000004C 258C0000 */ addiu $t4, $t4, 0 24 | /* 000090 00000050 34090040 */ li $t1, 64 25 | /* 000094 00000054 AD090004 */ sw $t1, 4($t0) 26 | /* 000098 00000058 24112260 */ li $s1, 8800 27 | .L0000005C: 28 | /* 00009C 0000005C 00000000 */ nop 29 | /* 0000A0 00000060 2231FFFF */ addi $s1, $s1, -1 30 | /* 0000A4 00000064 1620FFFD */ bnez $s1, .L0000005C 31 | /* 0000A8 00000068 00000000 */ nop 32 | /* 0000AC 0000006C AD000008 */ sw $zero, 8($t0) 33 | /* 0000B0 00000070 34090014 */ li $t1, 20 34 | /* 0000B4 00000074 AD09000C */ sw $t1, 0xc($t0) 35 | /* 0000B8 00000078 AD000000 */ sw $zero, ($t0) 36 | /* 0000BC 0000007C 24110004 */ li $s1, 4 37 | .L00000080: 38 | /* 0000C0 00000080 00000000 */ nop 39 | /* 0000C4 00000084 2231FFFF */ addi $s1, $s1, -1 40 | /* 0000C8 00000088 1620FFFD */ bnez $s1, .L00000080 41 | /* 0000CC 0000008C 00000000 */ nop 42 | /* 0000D0 00000090 3409000E */ li $t1, 14 43 | D_00000094: 44 | /* 0000D4 00000094 AD090000 */ sw $t1, ($t0) 45 | /* 0000D8 00000098 24110020 */ li $s1, 32 46 | .L0000009C: 47 | /* 0000DC 0000009C 2231FFFF */ addi $s1, $s1, -1 48 | /* 0000E0 000000A0 1620FFFE */ bnez $s1, .L0000009C 49 | /* 0000E4 000000A4 3409010F */ li $t1, 271 50 | /* 0000E8 000000A8 AD890000 */ sw $t1, ($t4) 51 | /* 0000EC 000000AC 3C091808 */ lui $t1, (0x18082838 >> 16) # lui $t1, 0x1808 52 | /* 0000F0 000000B0 35292838 */ ori $t1, (0x18082838 & 0xFFFF) # ori $t1, $t1, 0x2838 53 | /* 0000F4 000000B4 AD490008 */ sw $t1, %lo(D_A3F80008)($t2) 54 | /* 0000F8 000000B8 AD400014 */ sw $zero, %lo(D_A3F80014)($t2) 55 | /* 0000FC 000000BC 3C098000 */ lui $t1, 0x8000 56 | /* 000100 000000C0 AD490004 */ sw $t1, %lo(D_A3F80004)($t2) 57 | /* 000104 000000C4 00006825 */ move $t5, $zero 58 | /* 000108 000000C8 00007025 */ move $t6, $zero 59 | /* 00010C 000000CC 3C0FA3F0 */ lui $t7, %hi(D_A3F00018) # $t7, 0xa3f0 60 | /* 000110 000000D0 0000C025 */ move $t8, $zero 61 | /* 000114 000000D4 3C19A3F0 */ lui $t9, 0xa3f0 62 | /* 000118 000000D8 3C16A000 */ lui $s6, 0xa000 63 | /* 00011C 000000DC 0000B825 */ move $s7, $zero 64 | /* 000120 000000E0 3C06A3F0 */ lui $a2, 0xa3f0 65 | /* 000124 000000E4 3C07A000 */ lui $a3, 0xa000 66 | /* 000128 000000E8 00009025 */ move $s2, $zero 67 | /* 00012C 000000EC 3C14A000 */ lui $s4, 0xa000 68 | /* 000130 000000F0 27BDFFB8 */ addiu $sp, $sp, -0x48 69 | /* 000134 000000F4 03A0F025 */ move $fp, $sp 70 | /* 000138 000000F8 3C10A430 */ lui $s0, %hi(D_A4300004) # $s0, 0xa430 71 | /* 00013C 000000FC 8E100004 */ lw $s0, %lo(D_A4300004)($s0) 72 | /* 000140 00000100 3C110101 */ lui $s1, %hi(D_01010101) # $s1, 0x101 73 | /* 000144 00000104 26310101 */ addiu $s1, %lo(D_01010101) # addiu $s1, $s1, 0x101 74 | /* 000148 00000108 16110005 */ bne $s0, $s1, .L00000120 75 | /* 00014C 0000010C 00000000 */ nop 76 | /* 000150 00000110 24100200 */ li $s0, 512 77 | /* 000154 00000114 35714000 */ ori $s1, $t3, 0x4000 78 | /* 000158 00000118 10000003 */ b .L00000128 79 | /* 00015C 0000011C 00000000 */ nop 80 | .L00000120: 81 | /* 000160 00000120 24100400 */ li $s0, 1024 82 | /* 000164 00000124 35718000 */ ori $s1, $t3, 0x8000 83 | .L00000128: 84 | /* 000168 00000128 AE2E0004 */ sw $t6, 4($s1) 85 | /* 00016C 0000012C 25F5000C */ addiu $s5, $t7, 0xc 86 | /* 000170 00000130 0D0001DB */ jal func_0400076C 87 | /* 000174 00000134 00000000 */ nop 88 | /* 000178 00000138 10400038 */ beqz $v0, .L0000021C 89 | /* 00017C 0000013C 00000000 */ nop 90 | /* 000180 00000140 AFA20000 */ sw $v0, ($sp) 91 | /* 000184 00000144 24092000 */ li $t1, 8192 92 | /* 000188 00000148 AD890000 */ sw $t1, ($t4) 93 | /* 00018C 0000014C 8DEB0000 */ lw $t3, ($t7) 94 | /* 000190 00000150 3C08F0FF */ lui $t0, 0xf0ff 95 | /* 000194 00000154 01685824 */ and $t3, $t3, $t0 96 | /* 000198 00000158 AFAB0004 */ sw $t3, 4($sp) 97 | /* 00019C 0000015C 23BD0008 */ addi $sp, $sp, 8 98 | /* 0001A0 00000160 24091000 */ li $t1, 4096 99 | /* 0001A4 00000164 AD890000 */ sw $t1, ($t4) 100 | /* 0001A8 00000168 3C08B019 */ lui $t0, 0xb019 101 | /* 0001AC 0000016C 1568000C */ bne $t3, $t0, .L000001A0 102 | /* 0001B0 00000170 00000000 */ nop 103 | /* 0001B4 00000174 3C080800 */ lui $t0, 0x800 104 | /* 0001B8 00000178 0308C020 */ add $t8, $t8, $t0 105 | /* 0001BC 0000017C 0330C820 */ add $t9, $t9, $s0 106 | /* 0001C0 00000180 0330C820 */ add $t9, $t9, $s0 107 | /* 0001C4 00000184 3C080020 */ lui $t0, 0x20 108 | /* 0001C8 00000188 02C8B020 */ add $s6, $s6, $t0 109 | /* 0001CC 0000018C 0288A020 */ add $s4, $s4, $t0 110 | /* 0001D0 00000190 00129040 */ sll $s2, $s2, 1 111 | /* 0001D4 00000194 22520001 */ addi $s2, $s2, 1 112 | /* 0001D8 00000198 10000003 */ b .L000001A8 113 | /* 0001DC 0000019C 00000000 */ nop 114 | .L000001A0: 115 | /* 0001E0 000001A0 3C080010 */ lui $t0, 0x10 116 | /* 0001E4 000001A4 0288A020 */ add $s4, $s4, $t0 117 | .L000001A8: 118 | /* 0001E8 000001A8 24082000 */ li $t0, 8192 119 | /* 0001EC 000001AC AD880000 */ sw $t0, ($t4) 120 | /* 0001F0 000001B0 8DE90024 */ lw $t1, %lo(D_A3F00024)($t7) 121 | /* 0001F4 000001B4 8DFA0000 */ lw $k0, ($t7) 122 | /* 0001F8 000001B8 24081000 */ li $t0, 4096 123 | /* 0001FC 000001BC AD880000 */ sw $t0, ($t4) 124 | /* 000200 000001C0 3129FFFF */ andi $t1, $t1, 0xffff 125 | /* 000204 000001C4 24080500 */ li $t0, 1280 126 | /* 000208 000001C8 15280009 */ bne $t1, $t0, .L000001F0 127 | /* 00020C 000001CC 00000000 */ nop 128 | /* 000210 000001D0 3C1B0100 */ lui $k1, 0x100 129 | /* 000214 000001D4 035BD024 */ and $k0, $k0, $k1 130 | /* 000218 000001D8 17400005 */ bnez $k0, .L000001F0 131 | /* 00021C 000001DC 00000000 */ nop 132 | /* 000220 000001E0 3C08101C */ lui $t0, (0x101C0A04 >> 16) # lui $t0, 0x101c 133 | D_000001E4: 134 | /* 000224 000001E4 35080A04 */ ori $t0, (0x101C0A04 & 0xFFFF) # ori $t0, $t0, 0xa04 135 | /* 000228 000001E8 ADE80018 */ sw $t0, %lo(D_A3F00018)($t7) 136 | /* 00022C 000001EC 10000003 */ b .L000001FC 137 | .L000001F0: 138 | /* 000230 000001F0 3C08080C */ lui $t0, (0x080C1204 >> 16) # lui $t0, 0x80c 139 | /* 000234 000001F4 35081204 */ ori $t0, (0x080C1204 & 0xFFFF) # ori $t0, $t0, 0x1204 140 | /* 000238 000001F8 ADE80018 */ sw $t0, %lo(D_A3F00018)($t7) 141 | .L000001FC: 142 | /* 00023C 000001FC 3C080800 */ lui $t0, 0x800 143 | /* 000240 00000200 01C87020 */ add $t6, $t6, $t0 144 | /* 000244 00000204 01F07820 */ add $t7, $t7, $s0 145 | /* 000248 00000208 01F07820 */ add $t7, $t7, $s0 146 | /* 00024C 0000020C 25AD0001 */ addiu $t5, $t5, 1 147 | /* 000250 00000210 2DA80008 */ sltiu $t0, $t5, 8 148 | /* 000254 00000214 1500FFC4 */ bnez $t0, .L00000128 149 | /* 000258 00000218 00000000 */ nop 150 | .L0000021C: 151 | /* 00025C 0000021C 3C08C400 */ lui $t0, 0xc400 152 | /* 000260 00000220 AD48000C */ sw $t0, %lo(D_A3F8000C)($t2) 153 | /* 000264 00000224 3C088000 */ lui $t0, 0x8000 154 | /* 000268 00000228 AD480004 */ sw $t0, %lo(D_A3F80004)($t2) 155 | /* 00026C 0000022C 03C0E825 */ move $sp, $fp 156 | /* 000270 00000230 00001825 */ move $v1, $zero 157 | .L00000234: 158 | /* 000274 00000234 8FA90004 */ lw $t1, 4($sp) 159 | /* 000278 00000238 3C08B009 */ lui $t0, 0xb009 160 | /* 00027C 0000023C 15280016 */ bne $t1, $t0, .L00000298 161 | /* 000280 00000240 00000000 */ nop 162 | /* 000284 00000244 AE380004 */ sw $t8, 4($s1) 163 | /* 000288 00000248 2735000C */ addiu $s5, $t9, 0xc 164 | /* 00028C 0000024C 8FA40000 */ lw $a0, ($sp) 165 | /* 000290 00000250 23BD0008 */ addi $sp, $sp, 8 166 | /* 000294 00000254 24050001 */ li $a1, 1 167 | /* 000298 00000258 0D00028D */ jal func_04000A34 168 | /* 00029C 0000025C 00000000 */ nop 169 | /* 0002A0 00000260 8EC80000 */ lw $t0, ($s6) 170 | /* 0002A4 00000264 3C080008 */ lui $t0, 8 171 | /* 0002A8 00000268 01164020 */ add $t0, $t0, $s6 172 | /* 0002AC 0000026C 8D090000 */ lw $t1, ($t0) 173 | /* 0002B0 00000270 8EC80000 */ lw $t0, ($s6) 174 | /* 0002B4 00000274 3C080008 */ lui $t0, 8 175 | /* 0002B8 00000278 01164020 */ add $t0, $t0, $s6 176 | /* 0002BC 0000027C 8D090000 */ lw $t1, ($t0) 177 | /* 0002C0 00000280 3C080400 */ lui $t0, 0x400 178 | /* 0002C4 00000284 01C87020 */ add $t6, $t6, $t0 179 | /* 0002C8 00000288 0330C820 */ add $t9, $t9, $s0 180 | /* 0002CC 0000028C 3C080010 */ lui $t0, 0x10 181 | /* 0002D0 00000290 02C8B020 */ add $s6, $s6, $t0 182 | /* 0002D4 00000294 10000021 */ b .L0000031C 183 | .L00000298: 184 | /* 0002D8 00000298 AE370004 */ sw $s7, 4($s1) 185 | /* 0002DC 0000029C 24D5000C */ addiu $s5, $a2, 0xc 186 | /* 0002E0 000002A0 8FA40000 */ lw $a0, ($sp) 187 | /* 0002E4 000002A4 23BD0008 */ addi $sp, $sp, 8 188 | /* 0002E8 000002A8 24050001 */ li $a1, 1 189 | /* 0002EC 000002AC 0D00028D */ jal func_04000A34 190 | /* 0002F0 000002B0 00000000 */ nop 191 | /* 0002F4 000002B4 8CE80000 */ lw $t0, ($a3) 192 | /* 0002F8 000002B8 3C080008 */ lui $t0, 8 193 | /* 0002FC 000002BC 01074020 */ add $t0, $t0, $a3 194 | /* 000300 000002C0 8D090000 */ lw $t1, ($t0) 195 | /* 000304 000002C4 3C080010 */ lui $t0, 0x10 196 | /* 000308 000002C8 01074020 */ add $t0, $t0, $a3 197 | /* 00030C 000002CC 8D090000 */ lw $t1, ($t0) 198 | /* 000310 000002D0 3C080018 */ lui $t0, 0x18 199 | /* 000314 000002D4 01074020 */ add $t0, $t0, $a3 200 | /* 000318 000002D8 8D090000 */ lw $t1, ($t0) 201 | /* 00031C 000002DC 8CE80000 */ lw $t0, ($a3) 202 | /* 000320 000002E0 3C080008 */ lui $t0, 8 203 | /* 000324 000002E4 01074020 */ add $t0, $t0, $a3 204 | /* 000328 000002E8 8D090000 */ lw $t1, ($t0) 205 | /* 00032C 000002EC 3C080010 */ lui $t0, 0x10 206 | /* 000330 000002F0 01074020 */ add $t0, $t0, $a3 207 | /* 000334 000002F4 8D090000 */ lw $t1, ($t0) 208 | /* 000338 000002F8 3C080018 */ lui $t0, 0x18 209 | /* 00033C 000002FC 01074020 */ add $t0, $t0, $a3 210 | /* 000340 00000300 8D090000 */ lw $t1, ($t0) 211 | /* 000344 00000304 3C080800 */ lui $t0, 0x800 212 | /* 000348 00000308 02E8B820 */ add $s7, $s7, $t0 213 | /* 00034C 0000030C 00D03020 */ add $a2, $a2, $s0 214 | /* 000350 00000310 00D03020 */ add $a2, $a2, $s0 215 | /* 000354 00000314 3C080020 */ lui $t0, 0x20 216 | /* 000358 00000318 00E83820 */ add $a3, $a3, $t0 217 | .L0000031C: 218 | /* 00035C 0000031C 24630001 */ addiu $v1, $v1, 1 219 | /* 000360 00000320 006D402A */ slt $t0, $v1, $t5 220 | /* 000364 00000324 1500FFC3 */ bnez $t0, .L00000234 221 | /* 000368 00000328 00000000 */ nop 222 | /* 00036C 0000032C 3C0AA470 */ lui $t2, %hi(D_A4700010) # $t2, 0xa470 223 | /* 000370 00000330 001294C0 */ sll $s2, $s2, 0x13 224 | /* 000374 00000334 3C090006 */ lui $t1, (0x00063634 >> 16) # lui $t1, 6 225 | /* 000378 00000338 35293634 */ ori $t1, (0x00063634 & 0xFFFF) # ori $t1, $t1, 0x3634 226 | /* 00037C 0000033C 01324825 */ or $t1, $t1, $s2 227 | /* 000380 00000340 AD490010 */ sw $t1, %lo(D_A4700010)($t2) 228 | /* 000384 00000344 8D490010 */ lw $t1, %lo(D_A4700010)($t2) 229 | /* 000388 00000348 3C08A000 */ lui $t0, %hi(D_A0000018) # $t0, 0xa000 230 | /* 00038C 0000034C 35080300 */ ori $t0, (0xA0000300 & 0xFFFF) # ori $t0, $t0, 0x300 231 | /* 000390 00000350 3C090FFF */ lui $t1, (0x0FFFFFFF >> 16) # lui $t1, 0xfff 232 | /* 000394 00000354 3529FFFF */ ori $t1, (0x0FFFFFFF & 0xFFFF) # ori $t1, $t1, 0xffff 233 | /* 000398 00000358 02C9B024 */ and $s6, $s6, $t1 234 | /* 00039C 0000035C AD160018 */ sw $s6, %lo(D_A0000018)($t0) 235 | /* 0003A0 00000360 03C0E825 */ move $sp, $fp 236 | /* 0003A4 00000364 27BD0048 */ addiu $sp, $sp, 0x48 237 | /* 0003A8 00000368 8FB30000 */ lw $s3, ($sp) 238 | /* 0003AC 0000036C 8FB40004 */ lw $s4, 4($sp) 239 | /* 0003B0 00000370 8FB50008 */ lw $s5, 8($sp) 240 | /* 0003B4 00000374 8FB6000C */ lw $s6, 0xc($sp) 241 | /* 0003B8 00000378 8FB70010 */ lw $s7, 0x10($sp) 242 | /* 0003BC 0000037C 27BD0018 */ addiu $sp, $sp, 0x18 243 | /* 0003C0 00000380 3C088000 */ lui $t0, 0x8000 244 | /* 0003C4 00000384 25080000 */ addiu $t0, $t0, 0 245 | /* 0003C8 00000388 25094000 */ addiu $t1, $t0, 0x4000 246 | /* 0003CC 0000038C 2529FFE0 */ addiu $t1, $t1, -0x20 247 | /* 0003D0 00000390 4080E000 */ mtc0 $zero, $28 248 | /* 0003D4 00000394 4080E800 */ mtc0 $zero, $29 249 | .L00000398: 250 | /* 0003D8 00000398 BD080000 */ cache 8, ($t0) 251 | /* 0003DC 0000039C 0109082B */ sltu $at, $t0, $t1 252 | /* 0003E0 000003A0 1420FFFD */ bnez $at, .L00000398 253 | /* 0003E4 000003A4 25080020 */ addiu $t0, $t0, 0x20 254 | /* 0003E8 000003A8 3C088000 */ lui $t0, 0x8000 255 | /* 0003EC 000003AC 25080000 */ addiu $t0, $t0, 0 256 | /* 0003F0 000003B0 25092000 */ addiu $t1, $t0, 0x2000 257 | /* 0003F4 000003B4 2529FFF0 */ addiu $t1, $t1, -0x10 258 | .L000003B8: 259 | /* 0003F8 000003B8 BD090000 */ cache 9, ($t0) 260 | /* 0003FC 000003BC 0109082B */ sltu $at, $t0, $t1 261 | /* 000400 000003C0 1420FFFD */ bnez $at, .L000003B8 262 | /* 000404 000003C4 25080010 */ addiu $t0, $t0, 0x10 263 | /* 000408 000003C8 10000013 */ b .L00000418 264 | /* 00040C 000003CC 00000000 */ nop 265 | .L000003D0: 266 | /* 000410 000003D0 3C088000 */ lui $t0, 0x8000 267 | /* 000414 000003D4 25080000 */ addiu $t0, $t0, 0 268 | /* 000418 000003D8 25094000 */ addiu $t1, $t0, 0x4000 269 | /* 00041C 000003DC 2529FFE0 */ addiu $t1, $t1, -0x20 270 | /* 000420 000003E0 4080E000 */ mtc0 $zero, $28 271 | /* 000424 000003E4 4080E800 */ mtc0 $zero, $29 272 | .L000003E8: 273 | /* 000428 000003E8 BD080000 */ cache 8, ($t0) 274 | /* 00042C 000003EC 0109082B */ sltu $at, $t0, $t1 275 | /* 000430 000003F0 1420FFFD */ bnez $at, .L000003E8 276 | /* 000434 000003F4 25080020 */ addiu $t0, $t0, 0x20 277 | /* 000438 000003F8 3C088000 */ lui $t0, 0x8000 278 | /* 00043C 000003FC 25080000 */ addiu $t0, $t0, 0 279 | /* 000440 00000400 25092000 */ addiu $t1, $t0, 0x2000 280 | /* 000444 00000404 2529FFF0 */ addiu $t1, $t1, -0x10 281 | .L00000408: 282 | /* 000448 00000408 BD010000 */ cache 1, ($t0) 283 | /* 00044C 0000040C 0109082B */ sltu $at, $t0, $t1 284 | /* 000450 00000410 1420FFFD */ bnez $at, .L00000408 285 | /* 000454 00000414 25080010 */ addiu $t0, $t0, 0x10 286 | .L00000418: 287 | /* 000458 00000418 3C0AA400 */ lui $t2, 0xa400 288 | /* 00045C 0000041C 254A0000 */ addiu $t2, $t2, 0 289 | /* 000460 00000420 3C0BFFF0 */ lui $t3, 0xfff0 290 | /* 000464 00000424 3C090010 */ lui $t1, %hi(D_000FFFFF) # $t1, 0x10 291 | /* 000468 00000428 014B5024 */ and $t2, $t2, $t3 292 | /* 00046C 0000042C 3C08A400 */ lui $t0, %hi(D_A40004C0) # $t0, 0xa400 293 | /* 000470 00000430 2529FFFF */ addiu $t1, %lo(D_000FFFFF) # addiu $t1, $t1, -1 294 | /* 000474 00000434 3C0BA400 */ lui $t3, %hi(D_A4000768) # $t3, 0xa400 295 | /* 000478 00000438 250804C0 */ addiu $t0, %lo(D_A40004C0) # addiu $t0, $t0, 0x4c0 296 | /* 00047C 0000043C 256B0768 */ addiu $t3, %lo(D_A4000768) # addiu $t3, $t3, 0x768 297 | /* 000480 00000440 01094024 */ and $t0, $t0, $t1 298 | /* 000484 00000444 01695824 */ and $t3, $t3, $t1 299 | /* 000488 00000448 3C09A000 */ lui $t1, 0xa000 300 | /* 00048C 0000044C 010A4025 */ or $t0, $t0, $t2 301 | /* 000490 00000450 016A5825 */ or $t3, $t3, $t2 302 | /* 000494 00000454 25290000 */ addiu $t1, $t1, 0 303 | .L00000458: 304 | /* 000498 00000458 8D0D0000 */ lw $t5, ($t0) 305 | /* 00049C 0000045C 25080004 */ addiu $t0, $t0, 4 306 | /* 0004A0 00000460 010B082B */ sltu $at, $t0, $t3 307 | /* 0004A4 00000464 25290004 */ addiu $t1, $t1, 4 308 | /* 0004A8 00000468 1420FFFB */ bnez $at, .L00000458 309 | /* 0004AC 0000046C AD2DFFFC */ sw $t5, -4($t1) 310 | /* 0004B0 00000470 3C0C8000 */ lui $t4, 0x8000 311 | /* 0004B4 00000474 258C0000 */ addiu $t4, $t4, 0 312 | /* 0004B8 00000478 01800008 */ jr $t4 313 | /* 0004BC 0000047C 00000000 */ nop 314 | /* 0004C0 00000480 3C0BB000 */ lui $t3, %hi(D_B0000008) # $t3, 0xb000 315 | /* 0004C4 00000484 8D690008 */ lw $t1, %lo(D_B0000008)($t3) 316 | /* 0004C8 00000488 3C0A1FFF */ lui $t2, (0x1FFFFFFF >> 16) # lui $t2, 0x1fff 317 | /* 0004CC 0000048C 354AFFFF */ ori $t2, (0x1FFFFFFF & 0xFFFF) # ori $t2, $t2, 0xffff 318 | /* 0004D0 00000490 3C010010 */ lui $at, 0x10 319 | /* 0004D4 00000494 012A4824 */ and $t1, $t1, $t2 320 | /* 0004D8 00000498 01214823 */ subu $t1, $t1, $at 321 | /* 0004DC 0000049C 3C01A460 */ lui $at, 0xa460 322 | /* 0004E0 000004A0 AC290000 */ sw $t1, ($at) 323 | /* 0004E4 000004A4 3C08A460 */ lui $t0, %hi(D_A4600010) # $t0, 0xa460 324 | .L000004A8: 325 | /* 0004E8 000004A8 8D080010 */ lw $t0, %lo(D_A4600010)($t0) 326 | /* 0004EC 000004AC 31080002 */ andi $t0, $t0, 2 327 | /* 0004F0 000004B0 5500FFFD */ bnel $t0, $zero, .L000004A8 328 | /* 0004F4 000004B4 3C08A460 */ lui $t0, 0xa460 329 | /* 0004F8 000004B8 24081000 */ li $t0, 4096 330 | /* 0004FC 000004BC 010B4020 */ add $t0, $t0, $t3 331 | /* 000500 000004C0 010A4024 */ and $t0, $t0, $t2 332 | /* 000504 000004C4 3C01A460 */ lui $at, %hi(D_A4600004) # $at, 0xa460 333 | /* 000508 000004C8 AC280004 */ sw $t0, %lo(D_A4600004)($at) 334 | /* 00050C 000004CC 3C0A0010 */ lui $t2, %hi(D_00100003) # $t2, 0x10 335 | /* 000510 000004D0 254A0003 */ addiu $t2, %lo(D_00100003) # addiu $t2, $t2, 3 336 | /* 000514 000004D4 3C01A460 */ lui $at, %hi(D_A460000C) # $at, 0xa460 337 | /* 000518 000004D8 AC2A000C */ sw $t2, %lo(D_A460000C)($at) 338 | .L000004DC: 339 | /* 00051C 000004DC 00000000 */ nop 340 | /* 000520 000004E0 00000000 */ nop 341 | /* 000524 000004E4 00000000 */ nop 342 | /* 000528 000004E8 00000000 */ nop 343 | /* 00052C 000004EC 00000000 */ nop 344 | /* 000530 000004F0 00000000 */ nop 345 | /* 000534 000004F4 00000000 */ nop 346 | /* 000538 000004F8 00000000 */ nop 347 | /* 00053C 000004FC 00000000 */ nop 348 | /* 000540 00000500 00000000 */ nop 349 | /* 000544 00000504 00000000 */ nop 350 | /* 000548 00000508 00000000 */ nop 351 | /* 00054C 0000050C 3C0BA460 */ lui $t3, %hi(D_A4600010) # $t3, 0xa460 352 | /* 000550 00000510 8D6B0010 */ lw $t3, %lo(D_A4600010)($t3) 353 | /* 000554 00000514 316B0001 */ andi $t3, $t3, 1 354 | /* 000558 00000518 1560FFF0 */ bnez $t3, .L000004DC 355 | /* 00055C 0000051C 00000000 */ nop 356 | /* 000560 00000520 3C0BB000 */ lui $t3, %hi(D_B0000008) # $t3, 0xb000 357 | /* 000564 00000524 8D640008 */ lw $a0, %lo(D_B0000008)($t3) 358 | /* 000568 00000528 3C010010 */ lui $at, 0x10 359 | /* 00056C 0000052C 02C02825 */ move $a1, $s6 360 | /* 000570 00000530 00812023 */ subu $a0, $a0, $at 361 | /* 000574 00000534 3C016C07 */ lui $at, (0x6C078965 >> 16) # lui $at, 0x6c07 362 | /* 000578 00000538 34218965 */ ori $at, (0x6C078965 & 0xFFFF) # ori $at, $at, 0x8965 363 | /* 00057C 0000053C 00A10019 */ multu $a1, $at 364 | /* 000580 00000540 27BDFFE0 */ addiu $sp, $sp, -0x20 365 | /* 000584 00000544 AFBF001C */ sw $ra, 0x1c($sp) 366 | /* 000588 00000548 AFB00014 */ sw $s0, 0x14($sp) 367 | /* 00058C 0000054C 3C1F0010 */ lui $ra, 0x10 368 | /* 000590 00000550 00001825 */ move $v1, $zero 369 | /* 000594 00000554 00004025 */ move $t0, $zero 370 | /* 000598 00000558 00804825 */ move $t1, $a0 371 | /* 00059C 0000055C 240D0020 */ li $t5, 32 372 | /* 0005A0 00000560 00001012 */ mflo $v0 373 | /* 0005A4 00000564 24420001 */ addiu $v0, $v0, 1 374 | /* 0005A8 00000568 00403825 */ move $a3, $v0 375 | /* 0005AC 0000056C 00405025 */ move $t2, $v0 376 | /* 0005B0 00000570 00405825 */ move $t3, $v0 377 | /* 0005B4 00000574 00408025 */ move $s0, $v0 378 | /* 0005B8 00000578 00403025 */ move $a2, $v0 379 | /* 0005BC 0000057C 00406025 */ move $t4, $v0 380 | .L00000580: 381 | /* 0005C0 00000580 8D220000 */ lw $v0, ($t1) 382 | /* 0005C4 00000584 00E21821 */ addu $v1, $a3, $v0 383 | /* 0005C8 00000588 0067082B */ sltu $at, $v1, $a3 384 | /* 0005CC 0000058C 10200002 */ beqz $at, .L00000598 385 | /* 0005D0 00000590 00602825 */ move $a1, $v1 386 | /* 0005D4 00000594 254A0001 */ addiu $t2, $t2, 1 387 | .L00000598: 388 | /* 0005D8 00000598 3043001F */ andi $v1, $v0, 0x1f 389 | /* 0005DC 0000059C 01A37823 */ subu $t7, $t5, $v1 390 | /* 0005E0 000005A0 01E2C006 */ srlv $t8, $v0, $t7 391 | /* 0005E4 000005A4 00627004 */ sllv $t6, $v0, $v1 392 | /* 0005E8 000005A8 01D82025 */ or $a0, $t6, $t8 393 | /* 0005EC 000005AC 00C2082B */ sltu $at, $a2, $v0 394 | /* 0005F0 000005B0 00A03825 */ move $a3, $a1 395 | /* 0005F4 000005B4 01625826 */ xor $t3, $t3, $v0 396 | /* 0005F8 000005B8 10200004 */ beqz $at, .L000005CC 397 | /* 0005FC 000005BC 02048021 */ addu $s0, $s0, $a0 398 | /* 000600 000005C0 00E2C826 */ xor $t9, $a3, $v0 399 | /* 000604 000005C4 10000002 */ b .L000005D0 400 | /* 000608 000005C8 03263026 */ xor $a2, $t9, $a2 401 | .L000005CC: 402 | /* 00060C 000005CC 00C43026 */ xor $a2, $a2, $a0 403 | .L000005D0: 404 | /* 000610 000005D0 25080004 */ addiu $t0, $t0, 4 405 | /* 000614 000005D4 00507826 */ xor $t7, $v0, $s0 406 | /* 000618 000005D8 25290004 */ addiu $t1, $t1, 4 407 | /* 00061C 000005DC 151FFFE8 */ bne $t0, $ra, .L00000580 408 | /* 000620 000005E0 01EC6021 */ addu $t4, $t7, $t4 409 | /* 000624 000005E4 00EA7026 */ xor $t6, $a3, $t2 410 | /* 000628 000005E8 01CB3821 */ addu $a3, $t6, $t3 411 | /* 00062C 000005EC 0206C026 */ xor $t8, $s0, $a2 412 | /* 000630 000005F0 030C8021 */ addu $s0, $t8, $t4 413 | /* 000634 000005F4 3C0BB000 */ lui $t3, %hi(D_B0000014) # $t3, 0xb000 414 | /* 000638 000005F8 8D680010 */ lw $t0, %lo(D_B0000010)($t3) 415 | /* 00063C 000005FC 14E80006 */ bne $a3, $t0, .L00000618 416 | /* 000640 00000600 00000000 */ nop 417 | /* 000644 00000604 8D680014 */ lw $t0, %lo(D_B0000014)($t3) 418 | /* 000648 00000608 16080003 */ bne $s0, $t0, .L00000618 419 | /* 00064C 0000060C 00000000 */ nop 420 | /* 000650 00000610 04110003 */ bal func_00000620 421 | /* 000654 00000614 00000000 */ nop 422 | func_00000618: 423 | .L00000618: 424 | /* 000658 00000618 0411FFFF */ bal func_00000618 425 | /* 00065C 0000061C 00000000 */ nop 426 | func_00000620: 427 | /* 000660 00000620 3C09A408 */ lui $t1, 0xa408 428 | /* 000664 00000624 8D290000 */ lw $t1, ($t1) 429 | /* 000668 00000628 8FB00014 */ lw $s0, 0x14($sp) 430 | /* 00066C 0000062C 8FBF001C */ lw $ra, 0x1c($sp) 431 | /* 000670 00000630 11200006 */ beqz $t1, .L0000064C 432 | /* 000674 00000634 27BD0020 */ addiu $sp, $sp, 0x20 433 | /* 000678 00000638 240A0041 */ li $t2, 65 434 | /* 00067C 0000063C 3C01A404 */ lui $at, %hi(D_A4040010) # $at, 0xa404 435 | /* 000680 00000640 AC2A0010 */ sw $t2, %lo(D_A4040010)($at) 436 | /* 000684 00000644 3C01A408 */ lui $at, 0xa408 437 | /* 000688 00000648 AC200000 */ sw $zero, ($at) 438 | .L0000064C: 439 | /* 00068C 0000064C 3C0B00AA */ lui $t3, (0x00AAAAAE >> 16) # lui $t3, 0xaa 440 | /* 000690 00000650 356BAAAE */ ori $t3, (0x00AAAAAE & 0xFFFF) # ori $t3, $t3, 0xaaae 441 | /* 000694 00000654 3C01A404 */ lui $at, %hi(D_A4040010) # $at, 0xa404 442 | /* 000698 00000658 AC2B0010 */ sw $t3, %lo(D_A4040010)($at) 443 | /* 00069C 0000065C 3C01A430 */ lui $at, %hi(D_A430000C) # $at, 0xa430 444 | /* 0006A0 00000660 24080555 */ li $t0, 1365 445 | /* 0006A4 00000664 AC28000C */ sw $t0, %lo(D_A430000C)($at) 446 | /* 0006A8 00000668 3C01A480 */ lui $at, %hi(D_A4800018) # $at, 0xa480 447 | /* 0006AC 0000066C AC200018 */ sw $zero, %lo(D_A4800018)($at) 448 | /* 0006B0 00000670 3C01A450 */ lui $at, %hi(D_A450000C) # $at, 0xa450 449 | /* 0006B4 00000674 AC20000C */ sw $zero, %lo(D_A450000C)($at) 450 | /* 0006B8 00000678 3C01A430 */ lui $at, 0xa430 451 | /* 0006BC 0000067C 24090800 */ li $t1, 2048 452 | /* 0006C0 00000680 AC290000 */ sw $t1, ($at) 453 | /* 0006C4 00000684 24090002 */ li $t1, 2 454 | /* 0006C8 00000688 3C01A460 */ lui $at, %hi(D_A4600010) # $at, 0xa460 455 | /* 0006CC 0000068C AC290010 */ sw $t1, %lo(D_A4600010)($at) 456 | /* 0006D0 00000690 3C08A000 */ lui $t0, %hi(D_A0000008) # $t0, 0xa000 457 | /* 0006D4 00000694 35080300 */ ori $t0, (0xA0000300 & 0xFFFF) # ori $t0, $t0, 0x300 458 | /* 0006D8 00000698 240917D7 */ li $t1, 6103 459 | /* 0006DC 0000069C AD090010 */ sw $t1, %lo(D_A0000010)($t0) 460 | /* 0006E0 000006A0 AD140000 */ sw $s4, ($t0) 461 | /* 0006E4 000006A4 AD130004 */ sw $s3, %lo(D_A0000004)($t0) 462 | /* 0006E8 000006A8 AD15000C */ sw $s5, %lo(D_A000000C)($t0) 463 | /* 0006EC 000006AC 12600004 */ beqz $s3, .L000006C0 464 | /* 0006F0 000006B0 AD170014 */ sw $s7, %lo(D_A0000014)($t0) 465 | /* 0006F4 000006B4 3C09A600 */ lui $t1, 0xa600 466 | /* 0006F8 000006B8 10000003 */ b .L000006C8 467 | /* 0006FC 000006BC 25290000 */ addiu $t1, $t1, 0 468 | .L000006C0: 469 | /* 000700 000006C0 3C09B000 */ lui $t1, 0xb000 470 | /* 000704 000006C4 25290000 */ addiu $t1, $t1, 0 471 | .L000006C8: 472 | /* 000708 000006C8 AD090008 */ sw $t1, %lo(D_A0000008)($t0) 473 | /* 00070C 000006CC 3C08A400 */ lui $t0, 0xa400 474 | /* 000710 000006D0 25080000 */ addiu $t0, $t0, 0 475 | /* 000714 000006D4 21091000 */ addi $t1, $t0, 0x1000 476 | /* 000718 000006D8 240AFFFF */ li $t2, -1 477 | .L000006DC: 478 | /* 00071C 000006DC 25080004 */ addiu $t0, $t0, 4 479 | /* 000720 000006E0 1509FFFE */ bne $t0, $t1, .L000006DC 480 | /* 000724 000006E4 AD0AFFFC */ sw $t2, -4($t0) 481 | /* 000728 000006E8 3C08A400 */ lui $t0, %hi(D_A4001000) # $t0, 0xa400 482 | /* 00072C 000006EC 25081000 */ addiu $t0, %lo(D_A4001000) # addiu $t0, $t0, 0x1000 483 | /* 000730 000006F0 21091000 */ addi $t1, $t0, 0x1000 484 | .L000006F4: 485 | /* 000734 000006F4 25080004 */ addiu $t0, $t0, 4 486 | /* 000738 000006F8 1509FFFE */ bne $t0, $t1, .L000006F4 487 | /* 00073C 000006FC AD0AFFFC */ sw $t2, -4($t0) 488 | /* 000740 00000700 3C0AA400 */ lui $t2, %hi(D_A4001000) # $t2, 0xa400 489 | /* 000744 00000704 240B17D7 */ li $t3, 6103 490 | /* 000748 00000708 AD4B1000 */ sw $t3, %lo(D_A4001000)($t2) 491 | /* 00074C 0000070C 3C0BB000 */ lui $t3, %hi(D_B0000008) # $t3, 0xb000 492 | /* 000750 00000710 254A1000 */ addiu $t2, %lo(D_A4001000) # addiu $t2, $t2, 0x1000 493 | /* 000754 00000714 8D690008 */ lw $t1, %lo(D_B0000008)($t3) 494 | /* 000758 00000718 3C010010 */ lui $at, 0x10 495 | /* 00075C 0000071C 01214823 */ subu $t1, $t1, $at 496 | /* 000760 00000720 01200008 */ jr $t1 497 | /* 000764 00000724 00000000 */ nop 498 | /* 000768 00000728 00000000 */ nop 499 | /* 00076C 0000072C 27BDFF60 */ addiu $sp, $sp, -0xa0 500 | /* 000770 00000730 AFB00040 */ sw $s0, 0x40($sp) 501 | /* 000774 00000734 AFB10044 */ sw $s1, 0x44($sp) 502 | /* 000778 00000738 00008825 */ move $s1, $zero 503 | /* 00077C 0000073C 00008025 */ move $s0, $zero 504 | /* 000780 00000740 AFA20000 */ sw $v0, ($sp) 505 | /* 000784 00000744 AFA30004 */ sw $v1, 4($sp) 506 | /* 000788 00000748 AFA40008 */ sw $a0, 8($sp) 507 | /* 00078C 0000074C AFA5000C */ sw $a1, 0xc($sp) 508 | /* 000790 00000750 AFA60010 */ sw $a2, 0x10($sp) 509 | /* 000794 00000754 AFA70014 */ sw $a3, 0x14($sp) 510 | /* 000798 00000758 AFA80018 */ sw $t0, 0x18($sp) 511 | /* 00079C 0000075C AFA9001C */ sw $t1, 0x1c($sp) 512 | /* 0007A0 00000760 AFAA0020 */ sw $t2, 0x20($sp) 513 | /* 0007A4 00000764 AFAB0024 */ sw $t3, 0x24($sp) 514 | /* 0007A8 00000768 AFAC0028 */ sw $t4, 0x28($sp) 515 | /* 0007AC 0000076C AFAD002C */ sw $t5, 0x2c($sp) 516 | /* 0007B0 00000770 AFAE0030 */ sw $t6, 0x30($sp) 517 | /* 0007B4 00000774 AFAF0034 */ sw $t7, 0x34($sp) 518 | /* 0007B8 00000778 AFB80038 */ sw $t8, 0x38($sp) 519 | /* 0007BC 0000077C AFB9003C */ sw $t9, 0x3c($sp) 520 | /* 0007C0 00000780 AFB20048 */ sw $s2, 0x48($sp) 521 | /* 0007C4 00000784 AFB3004C */ sw $s3, 0x4c($sp) 522 | /* 0007C8 00000788 AFB40050 */ sw $s4, 0x50($sp) 523 | /* 0007CC 0000078C AFB50054 */ sw $s5, 0x54($sp) 524 | /* 0007D0 00000790 AFB60058 */ sw $s6, 0x58($sp) 525 | /* 0007D4 00000794 AFB7005C */ sw $s7, 0x5c($sp) 526 | /* 0007D8 00000798 AFBE0060 */ sw $fp, 0x60($sp) 527 | /* 0007DC 0000079C AFBF0064 */ sw $ra, 0x64($sp) 528 | .L000007A0: 529 | /* 0007E0 000007A0 0D00021D */ jal func_04000874 530 | /* 0007E4 000007A4 00000000 */ nop 531 | /* 0007E8 000007A8 26100001 */ addiu $s0, $s0, 1 532 | /* 0007EC 000007AC 2A090004 */ slti $t1, $s0, 4 533 | /* 0007F0 000007B0 1520FFFB */ bnez $t1, .L000007A0 534 | /* 0007F4 000007B4 02228821 */ addu $s1, $s1, $v0 535 | /* 0007F8 000007B8 00112082 */ srl $a0, $s1, 2 536 | /* 0007FC 000007BC 0D00028D */ jal func_04000A34 537 | /* 000800 000007C0 24050001 */ li $a1, 1 538 | /* 000804 000007C4 8FBF0064 */ lw $ra, 0x64($sp) 539 | /* 000808 000007C8 00111082 */ srl $v0, $s1, 2 540 | /* 00080C 000007CC 8FB10044 */ lw $s1, 0x44($sp) 541 | /* 000810 000007D0 8FA30004 */ lw $v1, 4($sp) 542 | /* 000814 000007D4 8FA40008 */ lw $a0, 8($sp) 543 | /* 000818 000007D8 8FA5000C */ lw $a1, 0xc($sp) 544 | /* 00081C 000007DC 8FA60010 */ lw $a2, 0x10($sp) 545 | /* 000820 000007E0 8FA70014 */ lw $a3, 0x14($sp) 546 | /* 000824 000007E4 8FA80018 */ lw $t0, 0x18($sp) 547 | /* 000828 000007E8 8FA9001C */ lw $t1, 0x1c($sp) 548 | /* 00082C 000007EC 8FAA0020 */ lw $t2, 0x20($sp) 549 | /* 000830 000007F0 8FAB0024 */ lw $t3, 0x24($sp) 550 | /* 000834 000007F4 8FAC0028 */ lw $t4, 0x28($sp) 551 | /* 000838 000007F8 8FAD002C */ lw $t5, 0x2c($sp) 552 | /* 00083C 000007FC 8FAE0030 */ lw $t6, 0x30($sp) 553 | /* 000840 00000800 8FAF0034 */ lw $t7, 0x34($sp) 554 | /* 000844 00000804 8FB80038 */ lw $t8, 0x38($sp) 555 | /* 000848 00000808 8FB9003C */ lw $t9, 0x3c($sp) 556 | /* 00084C 0000080C 8FB00040 */ lw $s0, 0x40($sp) 557 | /* 000850 00000810 8FB20048 */ lw $s2, 0x48($sp) 558 | /* 000854 00000814 8FB3004C */ lw $s3, 0x4c($sp) 559 | /* 000858 00000818 8FB40050 */ lw $s4, 0x50($sp) 560 | /* 00085C 0000081C 8FB50054 */ lw $s5, 0x54($sp) 561 | /* 000860 00000820 8FB60058 */ lw $s6, 0x58($sp) 562 | /* 000864 00000824 8FB7005C */ lw $s7, 0x5c($sp) 563 | /* 000868 00000828 8FBE0060 */ lw $fp, 0x60($sp) 564 | /* 00086C 0000082C 03E00008 */ jr $ra 565 | /* 000870 00000830 27BD00A0 */ addiu $sp, $sp, 0xa0 566 | 567 | /* 000874 00000834 27BDFFE0 */ addiu $sp, $sp, -0x20 568 | /* 000878 00000838 AFBF001C */ sw $ra, 0x1c($sp) 569 | /* 00087C 0000083C 00004825 */ move $t1, $zero 570 | /* 000880 00000840 00005825 */ move $t3, $zero 571 | /* 000884 00000844 00006025 */ move $t4, $zero 572 | .L00000848: 573 | /* 000888 00000848 299A0040 */ slti $k0, $t4, 0x40 574 | /* 00088C 0000084C 53400018 */ beql $k0, $zero, .L000008B0 575 | /* 000890 00000850 00001025 */ move $v0, $zero 576 | /* 000894 00000854 0D000240 */ jal func_04000900 577 | /* 000898 00000858 01802025 */ move $a0, $t4 578 | /* 00089C 0000085C 58400008 */ blezl $v0, .L00000880 579 | /* 0008A0 00000860 293A0050 */ slti $k0, $t1, 0x50 580 | /* 0008A4 00000864 0049D023 */ subu $k0, $v0, $t1 581 | /* 0008A8 00000868 034C0019 */ multu $k0, $t4 582 | /* 0008AC 0000086C 00404825 */ move $t1, $v0 583 | /* 0008B0 00000870 0000D012 */ mflo $k0 584 | /* 0008B4 00000874 017A5821 */ addu $t3, $t3, $k0 585 | /* 0008B8 00000878 00000000 */ nop 586 | /* 0008BC 0000087C 293A0050 */ slti $k0, $t1, 0x50 587 | .L00000880: 588 | /* 0008C0 00000880 1740FFF1 */ bnez $k0, .L00000848 589 | /* 0008C4 00000884 258C0001 */ addiu $t4, $t4, 1 590 | /* 0008C8 00000888 000B2080 */ sll $a0, $t3, 2 591 | /* 0008CC 0000088C 008B2023 */ subu $a0, $a0, $t3 592 | /* 0008D0 00000890 00042080 */ sll $a0, $a0, 2 593 | /* 0008D4 00000894 008B2023 */ subu $a0, $a0, $t3 594 | /* 0008D8 00000898 00042040 */ sll $a0, $a0, 1 595 | /* 0008DC 0000089C 0D00025D */ jal func_04000974 596 | /* 0008E0 000008A0 2484FC90 */ addiu $a0, $a0, -0x370 597 | /* 0008E4 000008A4 10000003 */ b .L000008B4 598 | /* 0008E8 000008A8 8FBF001C */ lw $ra, 0x1c($sp) 599 | /* 0008EC 000008AC 00001025 */ move $v0, $zero 600 | .L000008B0: 601 | /* 0008F0 000008B0 8FBF001C */ lw $ra, 0x1c($sp) 602 | .L000008B4: 603 | /* 0008F4 000008B4 27BD0020 */ addiu $sp, $sp, 0x20 604 | /* 0008F8 000008B8 03E00008 */ jr $ra 605 | /* 0008FC 000008BC 00000000 */ nop 606 | 607 | /* 000900 000008C0 27BDFFD8 */ addiu $sp, $sp, -0x28 608 | /* 000904 000008C4 AFBF001C */ sw $ra, 0x1c($sp) 609 | /* 000908 000008C8 00001025 */ move $v0, $zero 610 | /* 00090C 000008CC 0D00028D */ jal func_04000A34 611 | /* 000910 000008D0 24050002 */ li $a1, 2 612 | /* 000914 000008D4 0000F025 */ move $fp, $zero 613 | /* 000918 000008D8 241AFFFF */ li $k0, -1 614 | .L000008DC: 615 | /* 00091C 000008DC AE9A0004 */ sw $k0, 4($s4) 616 | /* 000920 000008E0 8E830004 */ lw $v1, 4($s4) 617 | /* 000924 000008E4 AE9A0000 */ sw $k0, ($s4) 618 | /* 000928 000008E8 AE9A0000 */ sw $k0, ($s4) 619 | /* 00092C 000008EC 0000E025 */ move $gp, $zero 620 | /* 000930 000008F0 00031C02 */ srl $v1, $v1, 0x10 621 | .L000008F4: 622 | /* 000934 000008F4 307A0001 */ andi $k0, $v1, 1 623 | /* 000938 000008F8 53400003 */ beql $k0, $zero, .L00000908 624 | /* 00093C 000008FC 279C0001 */ addiu $gp, $gp, 1 625 | /* 000940 00000900 24420001 */ addiu $v0, $v0, 1 626 | /* 000944 00000904 279C0001 */ addiu $gp, $gp, 1 627 | .L00000908: 628 | /* 000948 00000908 2B9A0008 */ slti $k0, $gp, 8 629 | /* 00094C 0000090C 1740FFF9 */ bnez $k0, .L000008F4 630 | /* 000950 00000910 00031842 */ srl $v1, $v1, 1 631 | /* 000954 00000914 27DE0001 */ addiu $fp, $fp, 1 632 | /* 000958 00000918 2BDA000A */ slti $k0, $fp, 0xa 633 | /* 00095C 0000091C 5740FFEF */ bnel $k0, $zero, .L000008DC 634 | /* 000960 00000920 241AFFFF */ li $k0, -1 635 | /* 000964 00000924 8FBF001C */ lw $ra, 0x1c($sp) 636 | /* 000968 00000928 27BD0028 */ addiu $sp, $sp, 0x28 637 | /* 00096C 0000092C 03E00008 */ jr $ra 638 | /* 000970 00000930 00000000 */ nop 639 | 640 | /* 000974 00000934 27BDFFD8 */ addiu $sp, $sp, -0x28 641 | /* 000978 00000938 AFBF001C */ sw $ra, 0x1c($sp) 642 | /* 00097C 0000093C AFA40020 */ sw $a0, 0x20($sp) 643 | /* 000980 00000940 A3A00027 */ sb $zero, 0x27($sp) 644 | /* 000984 00000944 00004025 */ move $t0, $zero 645 | /* 000988 00000948 00005025 */ move $t2, $zero 646 | /* 00098C 0000094C 340DC800 */ li $t5, 51200 647 | /* 000990 00000950 00007025 */ move $t6, $zero 648 | /* 000994 00000954 29DA0040 */ slti $k0, $t6, 0x40 649 | .L00000958: 650 | /* 000998 00000958 57400004 */ bnel $k0, $zero, .L0000096C 651 | /* 00099C 0000095C 01C02025 */ move $a0, $t6 652 | /* 0009A0 00000960 10000020 */ b .L000009E4 653 | /* 0009A4 00000964 00001025 */ move $v0, $zero 654 | /* 0009A8 00000968 01C02025 */ move $a0, $t6 655 | .L0000096C: 656 | /* 0009AC 0000096C 0D00028D */ jal func_04000A34 657 | /* 0009B0 00000970 24050001 */ li $a1, 1 658 | /* 0009B4 00000974 0D0002B1 */ jal func_04000AC4 659 | /* 0009B8 00000978 27A40027 */ addiu $a0, $sp, 0x27 660 | /* 0009BC 0000097C 0D0002B1 */ jal func_04000AC4 661 | /* 0009C0 00000980 27A40027 */ addiu $a0, $sp, 0x27 662 | /* 0009C4 00000984 93BA0027 */ lbu $k0, 0x27($sp) 663 | /* 0009C8 00000988 241B0320 */ li $k1, 800 664 | /* 0009CC 0000098C 8FA40020 */ lw $a0, 0x20($sp) 665 | /* 0009D0 00000990 035B0019 */ multu $k0, $k1 666 | /* 0009D4 00000994 00004012 */ mflo $t0 667 | /* 0009D8 00000998 0104D023 */ subu $k0, $t0, $a0 668 | /* 0009DC 0000099C 07430003 */ bgezl $k0, .L000009AC 669 | /* 0009E0 000009A0 034DD82A */ slt $k1, $k0, $t5 670 | /* 0009E4 000009A4 0088D023 */ subu $k0, $a0, $t0 671 | /* 0009E8 000009A8 034DD82A */ slt $k1, $k0, $t5 672 | .L000009AC: 673 | /* 0009EC 000009AC 53600004 */ beql $k1, $zero, .L000009C0 674 | /* 0009F0 000009B0 8FA40020 */ lw $a0, 0x20($sp) 675 | /* 0009F4 000009B4 03406825 */ move $t5, $k0 676 | /* 0009F8 000009B8 01C05025 */ move $t2, $t6 677 | /* 0009FC 000009BC 8FA40020 */ lw $a0, 0x20($sp) 678 | .L000009C0: 679 | /* 000A00 000009C0 0104D82A */ slt $k1, $t0, $a0 680 | /* 000A04 000009C4 53600006 */ beql $k1, $zero, .L000009E0 681 | /* 000A08 000009C8 014E1021 */ addu $v0, $t2, $t6 682 | /* 000A0C 000009CC 25CE0001 */ addiu $t6, $t6, 1 683 | /* 000A10 000009D0 29DB0041 */ slti $k1, $t6, 0x41 684 | /* 000A14 000009D4 5760FFE0 */ bnel $k1, $zero, .L00000958 685 | /* 000A18 000009D8 29DA0040 */ slti $k0, $t6, 0x40 686 | /* 000A1C 000009DC 014E1021 */ addu $v0, $t2, $t6 687 | .L000009E0: 688 | /* 000A20 000009E0 00021042 */ srl $v0, $v0, 1 689 | .L000009E4: 690 | /* 000A24 000009E4 8FBF001C */ lw $ra, 0x1c($sp) 691 | /* 000A28 000009E8 27BD0028 */ addiu $sp, $sp, 0x28 692 | /* 000A2C 000009EC 03E00008 */ jr $ra 693 | /* 000A30 000009F0 00000000 */ nop 694 | 695 | /* 000A34 000009F4 27BDFFD8 */ addiu $sp, $sp, -0x28 696 | /* 000A38 000009F8 308400FF */ andi $a0, $a0, 0xff 697 | /* 000A3C 000009FC 241B0001 */ li $k1, 1 698 | /* 000A40 00000A00 3884003F */ xori $a0, $a0, 0x3f 699 | /* 000A44 00000A04 AFBF001C */ sw $ra, 0x1c($sp) 700 | /* 000A48 00000A08 14BB0003 */ bne $a1, $k1, .L00000A18 701 | /* 000A4C 00000A0C 3C0F4600 */ lui $t7, 0x4600 702 | /* 000A50 00000A10 3C1A8000 */ lui $k0, 0x8000 703 | /* 000A54 00000A14 01FA7825 */ or $t7, $t7, $k0 704 | .L00000A18: 705 | /* 000A58 00000A18 309A0001 */ andi $k0, $a0, 1 706 | /* 000A5C 00000A1C 001AD180 */ sll $k0, $k0, 6 707 | /* 000A60 00000A20 01FA7825 */ or $t7, $t7, $k0 708 | /* 000A64 00000A24 309A0002 */ andi $k0, $a0, 2 709 | /* 000A68 00000A28 001AD340 */ sll $k0, $k0, 0xd 710 | /* 000A6C 00000A2C 01FA7825 */ or $t7, $t7, $k0 711 | /* 000A70 00000A30 309A0004 */ andi $k0, $a0, 4 712 | /* 000A74 00000A34 001AD500 */ sll $k0, $k0, 0x14 713 | /* 000A78 00000A38 01FA7825 */ or $t7, $t7, $k0 714 | /* 000A7C 00000A3C 309A0008 */ andi $k0, $a0, 8 715 | /* 000A80 00000A40 001AD100 */ sll $k0, $k0, 4 716 | /* 000A84 00000A44 01FA7825 */ or $t7, $t7, $k0 717 | /* 000A88 00000A48 309A0010 */ andi $k0, $a0, 0x10 718 | /* 000A8C 00000A4C 001AD2C0 */ sll $k0, $k0, 0xb 719 | /* 000A90 00000A50 01FA7825 */ or $t7, $t7, $k0 720 | /* 000A94 00000A54 309A0020 */ andi $k0, $a0, 0x20 721 | /* 000A98 00000A58 001AD480 */ sll $k0, $k0, 0x12 722 | /* 000A9C 00000A5C 01FA7825 */ or $t7, $t7, $k0 723 | /* 000AA0 00000A60 241B0001 */ li $k1, 1 724 | /* 000AA4 00000A64 14BB0003 */ bne $a1, $k1, .L00000A74 725 | /* 000AA8 00000A68 AEAF0000 */ sw $t7, ($s5) 726 | /* 000AAC 00000A6C 3C1AA430 */ lui $k0, 0xa430 727 | /* 000AB0 00000A70 AF400000 */ sw $zero, ($k0) 728 | .L00000A74: 729 | /* 000AB4 00000A74 8FBF001C */ lw $ra, 0x1c($sp) 730 | /* 000AB8 00000A78 27BD0028 */ addiu $sp, $sp, 0x28 731 | /* 000ABC 00000A7C 03E00008 */ jr $ra 732 | /* 000AC0 00000A80 00000000 */ nop 733 | 734 | /* 000AC4 00000A84 27BDFFD8 */ addiu $sp, $sp, -0x28 735 | /* 000AC8 00000A88 AFBF001C */ sw $ra, 0x1c($sp) 736 | /* 000ACC 00000A8C 241A2000 */ li $k0, 8192 737 | /* 000AD0 00000A90 3C1BA430 */ lui $k1, 0xa430 738 | /* 000AD4 00000A94 AF7A0000 */ sw $k0, ($k1) 739 | /* 000AD8 00000A98 0000F025 */ move $fp, $zero 740 | /* 000ADC 00000A9C 8EBE0000 */ lw $fp, ($s5) 741 | /* 000AE0 00000AA0 241A1000 */ li $k0, 4096 742 | /* 000AE4 00000AA4 AF7A0000 */ sw $k0, ($k1) 743 | /* 000AE8 00000AA8 241B0040 */ li $k1, 64 744 | /* 000AEC 00000AAC 037ED824 */ and $k1, $k1, $fp 745 | /* 000AF0 00000AB0 001BD982 */ srl $k1, $k1, 6 746 | /* 000AF4 00000AB4 0000D025 */ move $k0, $zero 747 | /* 000AF8 00000AB8 035BD025 */ or $k0, $k0, $k1 748 | /* 000AFC 00000ABC 241B4000 */ li $k1, 16384 749 | /* 000B00 00000AC0 037ED824 */ and $k1, $k1, $fp 750 | /* 000B04 00000AC4 001BDB42 */ srl $k1, $k1, 0xd 751 | /* 000B08 00000AC8 035BD025 */ or $k0, $k0, $k1 752 | /* 000B0C 00000ACC 3C1B0040 */ lui $k1, 0x40 753 | /* 000B10 00000AD0 037ED824 */ and $k1, $k1, $fp 754 | /* 000B14 00000AD4 001BDD02 */ srl $k1, $k1, 0x14 755 | /* 000B18 00000AD8 035BD025 */ or $k0, $k0, $k1 756 | /* 000B1C 00000ADC 241B0080 */ li $k1, 128 757 | /* 000B20 00000AE0 037ED824 */ and $k1, $k1, $fp 758 | /* 000B24 00000AE4 001BD902 */ srl $k1, $k1, 4 759 | /* 000B28 00000AE8 035BD025 */ or $k0, $k0, $k1 760 | /* 000B2C 00000AEC 341B8000 */ li $k1, 32768 761 | /* 000B30 00000AF0 037ED824 */ and $k1, $k1, $fp 762 | /* 000B34 00000AF4 001BDAC2 */ srl $k1, $k1, 0xb 763 | /* 000B38 00000AF8 035BD025 */ or $k0, $k0, $k1 764 | /* 000B3C 00000AFC 3C1B0080 */ lui $k1, 0x80 765 | /* 000B40 00000B00 037ED824 */ and $k1, $k1, $fp 766 | /* 000B44 00000B04 001BDC82 */ srl $k1, $k1, 0x12 767 | /* 000B48 00000B08 035BD025 */ or $k0, $k0, $k1 768 | /* 000B4C 00000B0C A09A0000 */ sb $k0, ($a0) 769 | /* 000B50 00000B10 8FBF001C */ lw $ra, 0x1c($sp) 770 | /* 000B54 00000B14 27BD0028 */ addiu $sp, $sp, 0x28 771 | /* 000B58 00000B18 03E00008 */ jr $ra 772 | /* 000B5C 00000B1C 00000000 */ nop 773 | 774 | /* 000B60 00000B20 00000000 */ nop 775 | /* 000B64 00000B24 00000000 */ nop 776 | /* 000B68 00000B28 00000000 */ nop 777 | /* 000B6C 00000B2C 00000000 */ nop 778 | -------------------------------------------------------------------------------- /papermario/build/sm64.map: -------------------------------------------------------------------------------- 1 | 2 | Memory Configuration 3 | 4 | Name Origin Length Attributes 5 | *default* 0x0000000000000000 0xffffffffffffffff 6 | 7 | Linker script and memory map 8 | 9 | 10 | .header 0x0000000000000000 0x40 11 | *(.header) 12 | .header 0x0000000000000000 0x40 build/PAPERMARIO.o 13 | *(.boot) 14 | 15 | .rodata 0x0000000000800000 0x20 16 | FILL mask 0x01 17 | *(.mio0) 18 | .mio0 0x0000000000800000 0x0 build/PAPERMARIO.o 19 | *(.rodata) 20 | *(.data) 21 | .data 0x0000000000800000 0x0 build/PAPERMARIO.o 22 | *(.MIPS.abiflags) 23 | .MIPS.abiflags 24 | 0x0000000000800000 0x18 build/PAPERMARIO.o 25 | 0x0000000000800020 . = ALIGN (0x10) 26 | *fill* 0x0000000000800018 0x8 01 27 | 28 | .behavior 0x0000000013000000 0x3fffe0 load address 0x0000000000800020 29 | FILL mask 0x01 30 | *(.behavior) 31 | 0x0000000000000000 behavior_length = (. - 0x13000000) 32 | 0x00000000003fffe0 . = (0x400000 - SIZEOF (.rodata)) 33 | *fill* 0x0000000013000000 0x3fffe0 01 34 | 0x0000000000800020 __load_behavior_data = LOADADDR (.behavior) 35 | 0x0000000000800020 __load_behavior_data_end = (LOADADDR (.behavior) + behavior_length) 36 | 37 | .text00000000 0x0000000000000000 0xbbd90 load address 0x0000000000000040 38 | *(.text00000000) 39 | .text00000000 0x0000000000000000 0xbbd90 build/PAPERMARIO.o 40 | 41 | .text001256D0 0x00000000001256d0 0x1fe4 load address 0x00000000000bbdd0 42 | *(.text001256D0) 43 | .text001256D0 0x00000000001256d0 0x1fe4 build/PAPERMARIO.o 44 | 45 | .text001276D0 0x00000000001276d0 0x1ff4 load address 0x00000000000bddd0 46 | *(.text001276D0) 47 | .text001276D0 0x00000000001276d0 0x1ff4 build/PAPERMARIO.o 48 | 49 | .text001296D0 0x00000000001296d0 0x1ff0 load address 0x00000000000bfdd0 50 | *(.text001296D0) 51 | .text001296D0 0x00000000001296d0 0x1ff0 build/PAPERMARIO.o 52 | 53 | .text0012B6D0 0x000000000012b6d0 0x1fd8 load address 0x00000000000c1dd0 54 | *(.text0012B6D0) 55 | .text0012B6D0 0x000000000012b6d0 0x1fd8 build/PAPERMARIO.o 56 | 57 | .text0012D6D0 0x000000000012d6d0 0x1ff4 load address 0x00000000000c3dd0 58 | *(.text0012D6D0) 59 | .text0012D6D0 0x000000000012d6d0 0x1ff4 build/PAPERMARIO.o 60 | 61 | .text0012F6D0 0x000000000012f6d0 0x1fec load address 0x00000000000c5dd0 62 | *(.text0012F6D0) 63 | .text0012F6D0 0x000000000012f6d0 0x1fec build/PAPERMARIO.o 64 | 65 | .text001316D0 0x00000000001316d0 0x2000 load address 0x00000000000c7dd0 66 | *(.text001316D0) 67 | .text001316D0 0x00000000001316d0 0x2000 build/PAPERMARIO.o 68 | 69 | .text001336D0 0x00000000001336d0 0x1fa8 load address 0x00000000000c9dd0 70 | *(.text001336D0) 71 | .text001336D0 0x00000000001336d0 0x1fa8 build/PAPERMARIO.o 72 | 73 | .text001356D0 0x00000000001356d0 0x1fec load address 0x00000000000cbdd0 74 | *(.text001356D0) 75 | .text001356D0 0x00000000001356d0 0x1fec build/PAPERMARIO.o 76 | 77 | .text001376D0 0x00000000001376d0 0x1fe4 load address 0x00000000000cddd0 78 | *(.text001376D0) 79 | .text001376D0 0x00000000001376d0 0x1fe4 build/PAPERMARIO.o 80 | 81 | .text001396D0 0x00000000001396d0 0x1fb8 load address 0x00000000000cfdd0 82 | *(.text001396D0) 83 | .text001396D0 0x00000000001396d0 0x1fb8 build/PAPERMARIO.o 84 | 85 | .text0013B6D0 0x000000000013b6d0 0x1ff8 load address 0x00000000000d1dd0 86 | *(.text0013B6D0) 87 | .text0013B6D0 0x000000000013b6d0 0x1ff8 build/PAPERMARIO.o 88 | 89 | .text0013D6D0 0x000000000013d6d0 0x1fe4 load address 0x00000000000d3dd0 90 | *(.text0013D6D0) 91 | .text0013D6D0 0x000000000013d6d0 0x1fe4 build/PAPERMARIO.o 92 | 93 | .text0013F6D0 0x000000000013f6d0 0x2000 load address 0x00000000000d5dd0 94 | *(.text0013F6D0) 95 | .text0013F6D0 0x000000000013f6d0 0x2000 build/PAPERMARIO.o 96 | 97 | .text001416D0 0x00000000001416d0 0x1ff8 load address 0x00000000000d7dd0 98 | *(.text001416D0) 99 | .text001416D0 0x00000000001416d0 0x1ff8 build/PAPERMARIO.o 100 | 101 | .text001436D0 0x00000000001436d0 0x1ff8 load address 0x00000000000d9dd0 102 | *(.text001436D0) 103 | .text001436D0 0x00000000001436d0 0x1ff8 build/PAPERMARIO.o 104 | 105 | .text001456D0 0x00000000001456d0 0x1ff0 load address 0x00000000000dbdd0 106 | *(.text001456D0) 107 | .text001456D0 0x00000000001456d0 0x1ff0 build/PAPERMARIO.o 108 | 109 | .text001476D0 0x00000000001476d0 0x1f6c load address 0x00000000000dddd0 110 | *(.text001476D0) 111 | .text001476D0 0x00000000001476d0 0x1f6c build/PAPERMARIO.o 112 | 113 | .text001496D0 0x00000000001496d0 0x7af8 load address 0x00000000000dfdd0 114 | *(.text001496D0) 115 | .text001496D0 0x00000000001496d0 0x7af8 build/PAPERMARIO.o 116 | 117 | .text002C3000 0x00000000002c3000 0x1ffc load address 0x00000000000e79b0 118 | *(.text002C3000) 119 | .text002C3000 0x00000000002c3000 0x1ffc build/PAPERMARIO.o 120 | 121 | .text002C5000 0x00000000002c5000 0x2000 load address 0x00000000000e99b0 122 | *(.text002C5000) 123 | .text002C5000 0x00000000002c5000 0x2000 build/PAPERMARIO.o 124 | 125 | .text002C7000 0x00000000002c7000 0x1ff8 load address 0x00000000000eb9b0 126 | *(.text002C7000) 127 | .text002C7000 0x00000000002c7000 0x1ff8 build/PAPERMARIO.o 128 | 129 | .text002C9000 0x00000000002c9000 0x1ffc load address 0x00000000000ed9b0 130 | *(.text002C9000) 131 | .text002C9000 0x00000000002c9000 0x1ffc build/PAPERMARIO.o 132 | 133 | .text002CB000 0x00000000002cb000 0x1fe8 load address 0x00000000000ef9b0 134 | *(.text002CB000) 135 | .text002CB000 0x00000000002cb000 0x1fe8 build/PAPERMARIO.o 136 | 137 | .text002CD000 0x00000000002cd000 0x1fd0 load address 0x00000000000f19b0 138 | *(.text002CD000) 139 | .text002CD000 0x00000000002cd000 0x1fd0 build/PAPERMARIO.o 140 | 141 | .text002CF000 0x00000000002cf000 0x1ff0 load address 0x00000000000f39b0 142 | *(.text002CF000) 143 | .text002CF000 0x00000000002cf000 0x1ff0 build/PAPERMARIO.o 144 | 145 | .text002D1000 0x00000000002d1000 0x1fcc load address 0x00000000000f59b0 146 | *(.text002D1000) 147 | .text002D1000 0x00000000002d1000 0x1fcc build/PAPERMARIO.o 148 | 149 | .text002D3000 0x00000000002d3000 0x1fdc load address 0x00000000000f79b0 150 | *(.text002D3000) 151 | .text002D3000 0x00000000002d3000 0x1fdc build/PAPERMARIO.o 152 | 153 | .text002D5000 0x00000000002d5000 0x1ffc load address 0x00000000000f99b0 154 | *(.text002D5000) 155 | .text002D5000 0x00000000002d5000 0x1ffc build/PAPERMARIO.o 156 | 157 | .text002D7000 0x00000000002d7000 0x2000 load address 0x00000000000fb9b0 158 | *(.text002D7000) 159 | .text002D7000 0x00000000002d7000 0x2000 build/PAPERMARIO.o 160 | 161 | .text002D9000 0x00000000002d9000 0x1404 load address 0x00000000000fd9b0 162 | *(.text002D9000) 163 | .text002D9000 0x00000000002d9000 0x1404 build/PAPERMARIO.o 164 | 165 | .text002DBD40 0x00000000002dbd40 0x1fdc load address 0x00000000000fee30 166 | *(.text002DBD40) 167 | .text002DBD40 0x00000000002dbd40 0x1fdc build/PAPERMARIO.o 168 | 169 | .text002DDD40 0x00000000002ddd40 0x1784 load address 0x0000000000100e30 170 | *(.text002DDD40) 171 | .text002DDD40 0x00000000002ddd40 0x1784 build/PAPERMARIO.o 172 | 173 | .text002E0D90 0x00000000002e0d90 0x1f78 load address 0x0000000000102610 174 | *(.text002E0D90) 175 | .text002E0D90 0x00000000002e0d90 0x1f78 build/PAPERMARIO.o 176 | 177 | .text002E2D90 0x00000000002e2d90 0x1fd0 load address 0x0000000000104610 178 | *(.text002E2D90) 179 | .text002E2D90 0x00000000002e2d90 0x1fd0 build/PAPERMARIO.o 180 | 181 | .text002E4D90 0x00000000002e4d90 0x1f8c load address 0x0000000000106610 182 | *(.text002E4D90) 183 | .text002E4D90 0x00000000002e4d90 0x1f8c build/PAPERMARIO.o 184 | 185 | .text002E6D90 0x00000000002e6d90 0x2cce0 load address 0x0000000000108610 186 | *(.text002E6D90) 187 | .text002E6D90 0x00000000002e6d90 0x2cce0 build/PAPERMARIO.o 188 | 189 | .text00242000 0x0000000000242000 0x2e068 load address 0x0000000000135340 190 | *(.text00242000) 191 | .text00242000 0x0000000000242000 0x2e068 build/PAPERMARIO.o 192 | 193 | .text00242BA0 0x0000000000242ba0 0x4000 load address 0x0000000000163400 194 | *(.text00242BA0) 195 | .text00242BA0 0x0000000000242ba0 0x4000 build/PAPERMARIO.o 196 | 197 | .text00246BA0 0x0000000000246ba0 0xe1f44 load address 0x0000000000167400 198 | *(.text00246BA0) 199 | .text00246BA0 0x0000000000246ba0 0xe1f44 build/PAPERMARIO.o 200 | 201 | .text002ADBE0 0x00000000002adbe0 0xcd2dc load address 0x00000000002495f0 202 | *(.text002ADBE0) 203 | .text002ADBE0 0x00000000002adbe0 0xcd2dc build/PAPERMARIO.o 204 | 205 | .text00200000 0x0000000000200000 0x80 load address 0x00000000003169f0 206 | *(.text00200000) 207 | .text00200000 0x0000000000200000 0x80 build/PAPERMARIO.o 208 | 209 | .text00200080 0x0000000000200080 0x4c0 load address 0x0000000000316a70 210 | *(.text00200080) 211 | .text00200080 0x0000000000200080 0x4c0 build/PAPERMARIO.o 212 | 213 | .text002B2000 0x00000000002b2000 0x4c9f50 load address 0x0000000000316f30 214 | *(.text002B2000) 215 | .text002B2000 0x00000000002b2000 0x4c9f50 build/PAPERMARIO.o 216 | 217 | .text00280000 0x0000000000280000 0x1ff8 load address 0x00000000007e0e80 218 | *(.text00280000) 219 | .text00280000 0x0000000000280000 0x1ff8 build/PAPERMARIO.o 220 | 221 | .text00282000 0x0000000000282000 0x63dfe4 load address 0x00000000007e2e80 222 | *(.text00282000) 223 | .text00282000 0x0000000000282000 0x63dfe4 build/PAPERMARIO.o 224 | 225 | .text002B7000 0x00000000002b7000 0x2318 load address 0x0000000000e20eb0 226 | *(.text002B7000) 227 | .text002B7000 0x00000000002b7000 0x2318 build/PAPERMARIO.o 228 | 229 | .text002B6000 0x00000000002b6000 0x19c3f06 load address 0x0000000000e23260 230 | *(.text002B6000) 231 | .text002B6000 0x00000000002b6000 0x19c3f06 build/PAPERMARIO.o 232 | LOAD build/PAPERMARIO.o 233 | OUTPUT(build/PAPERMARIO.elf elf32-bigmips) 234 | 235 | .text 0x0000000001c79f08 0x0 load address 0x00000000027e7168 236 | .text 0x0000000001c79f08 0x0 build/PAPERMARIO.o 237 | 238 | .bss 0x0000000001c79f06 0x0 load address 0x00000000027e7166 239 | .bss 0x0000000001c79f06 0x0 build/PAPERMARIO.o 240 | 241 | .reginfo 0x0000000000000000 0x18 242 | .reginfo 0x0000000000000000 0x18 build/PAPERMARIO.o 243 | 244 | .pdr 0x0000000000000000 0x0 245 | .pdr 0x0000000000000000 0x0 build/PAPERMARIO.o 246 | 247 | .gnu.attributes 248 | 0x0000000000000000 0x10 249 | .gnu.attributes 250 | 0x0000000000000000 0x10 build/PAPERMARIO.o 251 | -------------------------------------------------------------------------------- /papermario/geo_commands.inc: -------------------------------------------------------------------------------- 1 | # geo layout macros 2 | 3 | # 0x00: Branch and store return address 4 | # 0x04: scriptTarget, segment address of geo layout 5 | .macro geo_branch_and_link scriptTarget 6 | .byte 0x00, 0x00, 0x00, 0x00 7 | .word \scriptTarget 8 | .endm 9 | 10 | # 0x01: Terminate geo layout 11 | # 0x01-0x03: unused 12 | .macro geo_end 13 | .byte 0x01, 0x00, 0x00, 0x00 14 | .endm 15 | 16 | # 0x02: Branch 17 | # 0x01: if 1, store next geo layout address on stack 18 | # 0x02-0x03: unused 19 | # 0x04: scriptTarget, segment address of geo layout 20 | .macro geo_branch type, scriptTarget 21 | .byte 0x02, \type, 0x00, 0x00 22 | .word \scriptTarget 23 | .endm 24 | 25 | # 0x03: Return from branch 26 | # 0x01-0x03: unused 27 | .macro geo_return 28 | .byte 0x03, 0x00, 0x00, 0x00 29 | .endm 30 | 31 | # 0x04: Open node 32 | # 0x01-0x03: unused 33 | .macro geo_open_node 34 | .byte 0x04, 0x00, 0x00, 0x00 35 | .endm 36 | 37 | # 0x05: Close node 38 | # 0x01-0x03: unused 39 | .macro geo_close_node 40 | .byte 0x05, 0x00, 0x00, 0x00 41 | .endm 42 | 43 | # 0x06: TODO 44 | # 0x01: unused 45 | # 0x02: s16, index of some array 46 | .macro geo_todo_06 param 47 | .byte 0x06, 0x00 48 | .hword \param 49 | .endm 50 | 51 | # 0x07: Update current scene graph node flags 52 | # 0x01: u8 operation (0 = reset, 1 = set, 2 = clear) 53 | # 0x02: s16 bits 54 | .macro geo_update_node_flags operation, flagBits 55 | .byte 0x07, \operation 56 | .hword \flagBits 57 | .endm 58 | 59 | # 0x08: Create screen area scene graph node 60 | # 0x01: unused 61 | # 0x02: s16 num entries (+2) to allocate 62 | # 0x04: s16 x 63 | # 0x06: s16 y 64 | # 0x08: s16 width 65 | # 0x0A: s16 height 66 | .macro geo_node_screen_area numEntries, x, y, width, height 67 | .byte 0x08, 0x00 68 | .hword \numEntries 69 | .hword \x, \y, \width, \height 70 | .endm 71 | 72 | # 0x09: TODO Create ? scene graph node 73 | # 0x02: s16 ? 74 | .macro geo_todo_09 param 75 | .byte 0x09, 0x00 76 | .hword \param 77 | .endm 78 | 79 | # 0x0A: Create camera frustum scene graph node 80 | # 0x01: u8 if nonzero, enable function field 81 | # 0x02: s16 field of view 82 | # 0x04: s16 near 83 | # 0x06: s16 far 84 | # 0x08: [GraphNodeFunc function] 85 | .macro geo_camera_frustum fov, near, far, function=0 86 | .byte 0x0A 87 | .if (\function != 0) 88 | .byte 0x01 89 | .else 90 | .byte 0x00 91 | .endif 92 | .hword \fov, \near, \far 93 | .if (\function != 0) 94 | .word \function 95 | .endif 96 | .endm 97 | 98 | # 0x0B: Create a root scene graph node 99 | # 0x01-0x03: unused 100 | .macro geo_node_start 101 | .byte 0x0B, 0x00, 0x00, 0x00 102 | .endm 103 | 104 | # 0x0C: Create zbuffer-toggling scene graph node 105 | # 0x01: u8 enableZBuffer (1 = on, 0 = off) 106 | # 0x02-0x03: unused 107 | .macro geo_zbuffer enable 108 | .byte 0x0C, \enable, 0x00, 0x00 109 | .endm 110 | 111 | # 0x0D: Create render range scene graph node 112 | # 0x01-0x03: unused 113 | # 0x04: s16 minDistance 114 | # 0x06: s16 maxDistance 115 | .macro geo_render_range minDistance, maxDistance 116 | .byte 0x0D, 0x00, 0x00, 0x00 117 | .hword \minDistance, \maxDistance 118 | .endm 119 | 120 | # 0x0E: Create switch-case scene graph node 121 | # 0x01: unused 122 | # 0x02: s16 numCases 123 | # 0x04: GraphNodeFunc caseSelectorFunc 124 | .macro geo_switch_case count, function 125 | .byte 0x0E, 0x00 126 | .hword \count 127 | .word \function 128 | .endm 129 | 130 | # 0x0F: TODO Create ? scene graph node 131 | # 0x01: unused 132 | # 0x02: s16 ? 133 | # 0x04: s16 unkX 134 | # 0x06: s16 unkY 135 | # 0x08: s16 unkZ 136 | # 0x0A: s16 unkX_2 137 | # 0x0C: s16 unkY_2 138 | # 0x0E: s16 unkZ_2 139 | # 0x10: GraphNodeFunc function 140 | .macro geo_todo_0F unknown, x1, y1, z1, x2, y2, z2, function 141 | .byte 0x0F, 0x00 142 | .hword \unknown, \x1, \y1, \z1, \x2, \y2, \z2 143 | .word \function 144 | .endm 145 | 146 | # 0x10: Create translation & rotation scene graph node with optional display list 147 | # Four different versions of 0x10 148 | # cmd+0x01: u8 params 149 | # 0b1000_0000: if set, enable displayList field and drawingLayer 150 | # 0b0111_0000: fieldLayout (determines how rest of data is formatted 151 | # 0b0000_1111: drawingLayer 152 | # 153 | # fieldLayout = 0: Translate & Rotate 154 | # 0x04: s16 xTranslation 155 | # 0x06: s16 xTranslation 156 | # 0x08: s16 xTranslation 157 | # 0x0A: s16 xRotation 158 | # 0x0C: s16 xRotation 159 | # 0x0E: s16 xRotation 160 | # 0x10: [u32 displayList: if MSbit of params set, display list segmented address] 161 | .macro geo_translate_rotate layer, tx, ty, tz, rx, ry, rz, displayList=0 162 | .byte 0x10 163 | .if (\displayList != 0) 164 | .byte 0x00 | \layer | 0x80 165 | .else 166 | .byte 0x00 | \layer 167 | .endif 168 | .hword 0x0000 169 | .hword \tx, \ty, \tz 170 | .hword \rx, \ry, \rz 171 | .if (\displayList != 0) 172 | .word \displayList 173 | .endif 174 | .endm 175 | 176 | # fieldLayout = 1: Translate 177 | # 0x02: s16 xTranslation 178 | # 0x04: s16 yTranslation 179 | # 0x06: s16 zTranslation 180 | # 0x08: [u32 displayList: if MSbit of params set, display list segmented address] 181 | .macro geo_translate layer, tx, ty, tz, displayList=0 182 | .byte 0x10 183 | .if (\displayList != 0) 184 | .byte 0x10 | \layer | 0x80 185 | .else 186 | .byte 0x10 | \layer 187 | .endif 188 | .hword \tx, \ty, \tz 189 | .if (\displayList != 0) 190 | .word \displayList 191 | .endif 192 | .endm 193 | 194 | # fieldLayout = 2: Rotate 195 | # 0x02: s16 xRotation 196 | # 0x04: s16 yRotation 197 | # 0x06: s16 zRotation 198 | # 0x08: [u32 displayList: if MSbit of params set, display list segmented address] 199 | .macro geo_rotate layer, rx, ry, rz, displayList=0 200 | .byte 0x10 201 | .if (\displayList != 0) 202 | .byte 0x20 | \layer | 0x80 203 | .else 204 | .byte 0x20 | \layer 205 | .endif 206 | .hword \rx, \ry, \rz 207 | .if (\displayList != 0) 208 | .word \displayList 209 | .endif 210 | .endm 211 | 212 | # fieldLayout = 3: Rotate Y 213 | # 0x02: s16 yRotation 214 | # 0x04: [u32 displayList: if MSbit of params set, display list segmented address] 215 | .macro geo_rotate_y layer, ry, displayList=0 216 | .byte 0x10 217 | .if (\displayList != 0) 218 | .byte 0x30 | \layer | 0x80 219 | .else 220 | .byte 0x30 | \layer 221 | .endif 222 | .hword \ry 223 | .if (\displayList != 0) 224 | .word \displayList 225 | .endif 226 | .endm 227 | 228 | # 0x11: TODO Create ? scene graph node with optional display list 229 | # 0x01: u8 params 230 | # 0b1000_0000: if set, enable displayList field and drawingLayer 231 | # 0b0000_1111: drawingLayer 232 | # 0x02: s16 unkX 233 | # 0x04: s16 unkY 234 | # 0x06: s16 unkZ 235 | # 0x08: [u32 displayList: if MSbit of params set, display list segmented address] 236 | .macro geo_todo_11 layer, ux, uy, uz, displayList=0 237 | .byte 0x11 238 | .if (\displayList != 0) 239 | .byte 0x80 | \layer 240 | .else 241 | .byte 0x00 242 | .endif 243 | .hword \ux, \uy, \uz 244 | .if (\displayList != 0) 245 | .word \displayList 246 | .endif 247 | .endm 248 | 249 | # 0x12: TODO Create ? scene graph node 250 | # 0x01: u8 params 251 | # 0b1000_0000: if set, enable displayList field and drawingLayer 252 | # 0b0000_1111: drawingLayer 253 | # 0x02: s16 unkX 254 | # 0x04: s16 unkY 255 | # 0x06: s16 unkZ 256 | # 0x08: [u32 displayList: if MSbit of params set, display list segmented address] 257 | .macro geo_todo_12 layer, ux, uy, uz, displayList=0 258 | .byte 0x12 259 | .if (\displayList != 0) 260 | .byte 0x80 | \layer 261 | .else 262 | .byte 0x00 263 | .endif 264 | .hword \ux, \uy, \uz 265 | .if (\displayList != 0) 266 | .word \displayList 267 | .endif 268 | .endm 269 | 270 | # 0x13: Create display list scene graph node with translation 271 | # 0x01: u8 drawingLayer 272 | # 0x02: s16 xTranslation 273 | # 0x04: s16 yTranslation 274 | # 0x06: s16 zTranslation 275 | # 0x08: u32 displayList: dislay list segmented address 276 | .macro geo_dl_translated layer, x, y, z, displayList=0 277 | .byte 0x13, \layer 278 | .hword \x, \y, \z 279 | .word \displayList 280 | .endm 281 | 282 | # 0x14: Create billboarding node with optional display list 283 | # 0x01: u8 params 284 | # 0b1000_0000: if set, enable displayList field and drawingLayer 285 | # 0b0000_1111: drawingLayer 286 | # 0x02: s16 xTranslation 287 | # 0x04: s16 yTranslation 288 | # 0x06: s16 zTranslation 289 | # 0x08: [u32 displayList: if MSbit of params is set, display list segmented address] 290 | .macro geo_billboard layer=0, tx=0, ty=0, tz=0, displayList=0 291 | .byte 0x14 292 | .if (\displayList != 0) 293 | .byte 0x80 | \layer 294 | .else 295 | .byte 0x00 296 | .endif 297 | .hword \tx, \ty, \tz 298 | .if (\displayList != 0) 299 | .word \displayList 300 | .endif 301 | .endm 302 | 303 | # 0x15: Create plain display list scene graph node 304 | # 0x01: u8 drawingLayer 305 | # 0x02=0x03: unused 306 | # 0x04: u32 displayList: display list segmented address 307 | .macro geo_display_list layer, displayList 308 | .byte 0x15, \layer, 0x00, 0x00 309 | .word \displayList 310 | .endm 311 | 312 | # 0x16: Create shadow scene graph node 313 | # 0x01: unused 314 | # 0x02: s16 shadowType (cast to u8) 315 | # 0x04: s16 shadowSolidity (cast to u8) 316 | # 0x06: s16 shadowScale 317 | .set SHADOW_CIRCLE_UNK0, 0x00 318 | .set SHADOW_CIRCLE_UNK1, 0x01 319 | .set SHADOW_CIRCLE_UNK2, 0x02 # unused shadow type 320 | .set SHADOW_SQUARE_PERMANENT, 0x0A # square shadow that never disappears 321 | .set SHADOW_SQUARE_SCALABLE, 0x0B # square shadow, shrinks with distance 322 | .set SHADOW_SQUARE_TOGGLABLE, 0x0C # square shadow, disappears with distance 323 | .set SHADOW_CIRCLE_PLAYER, 0x63 # player (Mario) shadow 324 | .set SHADOW_RECTANGLE_HARDCODED_OFFSET, 0x32 # offset of hard-coded shadows 325 | .macro geo_shadow type, solidity, scale 326 | .byte 0x16, 0x00 327 | .hword \type, \solidity, \scale 328 | .endm 329 | 330 | # 0x17: TODO Create ? scene graph node 331 | # 0x01-0x03: unused 332 | .macro geo_todo_17 333 | .byte 0x17, 0x00, 0x00, 0x00 334 | .endm 335 | 336 | # 0x18: Create ? scene graph node 337 | # 0x01: unused 338 | # 0x02: s16 parameter 339 | # 0x04: GraphNodeFunc function 340 | .macro geo_asm param, function 341 | .byte 0x18, 0x00 342 | .hword \param 343 | .word \function 344 | .endm 345 | 346 | # 0x19: Create background scene graph node 347 | # 0x02: s16 background: background ID, or RGBA5551 color if backgroundFunc is null 348 | # 0x04: GraphNodeFunc backgroundFunc 349 | .macro geo_background param, function=0 350 | .byte 0x19, 0x00 351 | .hword \param 352 | .word \function 353 | .endm 354 | 355 | # 0x1A: No operation 356 | .macro geo_nop_1A 357 | .byte 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 358 | .endm 359 | 360 | # 0x1B: TODO Create ? scene graph node 361 | # 0x02: s16 index of array 362 | .macro geo_todo_1B param 363 | .byte 0x1B, 0x00 364 | .hword \param 365 | .endm 366 | 367 | # 0x1C: TODO Create ? scene graph node 368 | # 0x01: u8 unk01 369 | # 0x02: s16 unkX 370 | # 0x04: s16 unkY 371 | # 0x06: s16 unkZ 372 | # 0x08: GraphNodeFunc nodeFunc 373 | .macro geo_todo_1C param, ux, uy, uz, nodeFunc 374 | .byte 0x1C, \param 375 | .hword \ux, \uy, \uz 376 | .word \nodeFunc 377 | .endm 378 | 379 | # 0x1D: Create scale scene graph node with optional display list 380 | # 0x01: u8 params 381 | # 0b1000_0000: if set, enable displayList field and drawingLayer 382 | # 0b0000_1111: drawingLayer 383 | # 0x02-0x03: unused 384 | # 0x04: u32 scale (0x10000 = 1.0) 385 | # 0x08: [u32 displayList: if MSbit of params is set, display list segment address] 386 | .macro geo_scale layer, scale, displayList=0 387 | .byte 0x1D 388 | .if (\displayList != 0) 389 | .byte 0x80 | \layer 390 | .else 391 | .byte 0x00 392 | .endif 393 | .byte 0x00, 0x00 394 | .word \scale 395 | .if (\displayList != 0) 396 | .word \displayList 397 | .endif 398 | .endm 399 | 400 | # 0x1E: No operation 401 | .macro geo_nop_1E 402 | .byte 0x1E, 0x00, 0x00, 0x00 403 | .byte 0x00, 0x00, 0x00, 0x00 404 | .endm 405 | 406 | # 0x1F: No operation 407 | .macro geo_nop_1F 408 | .byte 0x1F, 0x00, 0x00, 0x00 409 | .byte 0x00, 0x00, 0x00, 0x00 410 | .byte 0x00, 0x00, 0x00, 0x00 411 | .byte 0x00, 0x00, 0x00, 0x00 412 | .endm 413 | 414 | # 0x20: Create render distance scene graph node (unconfirmed?) 415 | # 0x01: unused 416 | # 0x02: s16 renderDistance? 417 | .macro geo_start_distance renderDistance 418 | .byte 0x20, 0x00 419 | .hword \renderDistance 420 | .endm 421 | 422 | -------------------------------------------------------------------------------- /papermario/globals.inc: -------------------------------------------------------------------------------- 1 | # globally accessible functions and data 2 | # these will be accessible by C code and show up in the .map file 3 | 4 | .global EntryPoint 5 | .global PAPERMARIO_func_80025C60 6 | 7 | -------------------------------------------------------------------------------- /papermario/macros.inc: -------------------------------------------------------------------------------- 1 | # common macros 2 | 3 | # F3D vertex 4 | .macro vertex \x, \y, \z, \u, \v, \r=0xFF, \g=0xFF, \b=0xFF, \a=0xFF 5 | .hword \x, \y, \z, 0, \u, \v 6 | .byte \r, \g, \b, \a 7 | .endm 8 | -------------------------------------------------------------------------------- /papermario/models/collision.mtl: -------------------------------------------------------------------------------- 1 | # collision model materials 2 | # 3 | # Ka: ambient reflectivity 4 | # Kd: diffuse reflectivity 5 | # illum: illuminaiton model 6 | # * 1: Color on and Ambient on 7 | # * 2: Highlight on 8 | # * 3: Reflection on and Ray trace on 9 | # * 4: Transparency: Glass on 10 | # Reflection: Ray trace on 11 | # * 5: Reflection: Fresnel on and Ray trace on 12 | # * 6: Transparency: Refraction on 13 | # Reflection: Fresnel off and Ray trace on 14 | # * 7: Transparency: Refraction on 15 | # Reflection: Fresnel on and Ray trace on 16 | # * 8: Reflection on and Ray trace off 17 | # * 9: Transparency: Glass on 18 | # Reflection: Ray trace off 19 | # * 10: Casts shadows onto invisible surfaces 20 | 21 | newmtl 0D 22 | Ka 1 0.6 0.78 23 | Kd 1 0.6 0.78 24 | illum 1 25 | 26 | newmtl climbable 27 | Ka 0.75 0.5 0 28 | Kd 0.75 0.5 0 29 | illum 1 30 | 31 | newmtl deathfloor 32 | Ka 0 0 0 33 | Kd 0 0 0 34 | illum 1 35 | 36 | newmtl fence 37 | Ka 0.2 0.2 0.2 38 | Kd 0.2 0.2 0.2 39 | illum 1 40 | 41 | newmtl flat 42 | Ka 0 0.5 0.5 43 | Kd 0 0.5 0.5 44 | illum 1 45 | 46 | newmtl grass 47 | Ka 0 0.9 0 48 | Kd 0 0.9 0 49 | illum 1 50 | 51 | newmtl hang 52 | Ka 0.9 0 0 53 | Kd 0.9 0 0 54 | illum 1 55 | 56 | newmtl icy 57 | Ka 0.2 0.2 0.9 58 | Kd 0.2 0.2 0.9 59 | illum 1 60 | 61 | newmtl lethal_lava 62 | Ka 1 0 0 63 | Kd 1 0 0 64 | illum 1 65 | 66 | newmtl normal 67 | Ka 0.98 0.98 0 68 | Kd 0.98 0.98 0 69 | illum 1 70 | 71 | newmtl pool_warp 72 | Ka 0.1 0.1 0.1 73 | Kd 0.1 0.1 0.1 74 | illum 1 75 | 76 | newmtl slippery 77 | Ka 0.1 0.1 1.0 78 | Kd 0.1 0.1 1.0 79 | illum 1 80 | 81 | newmtl snowy 82 | Ka 0.9 0.9 0.9 83 | Kd 0.9 0.9 0.9 84 | illum 1 85 | 86 | newmtl snowy2 87 | Ka 1 1 1 88 | Kd 1 1 1 89 | illum 1 90 | 91 | newmtl unclimbable 92 | Ka 1.0 1.0 1.0 93 | Kd 1.0 1.0 1.0 94 | illum 1 95 | 96 | newmtl very_slippery 97 | Ka 0 0 1.0 98 | Kd 0 0 1.0 99 | illum 1 100 | 101 | newmtl wall 102 | Ka 0.5 0.5 0.5 103 | Kd 0.5 0.5 0.5 104 | illum 1 105 | 106 | newmtl water_currents 107 | Ka 0.5 0.5 1.0 108 | Kd 0.5 0.5 1.0 109 | illum 1 110 | 111 | --------------------------------------------------------------------------------