Matched display_and_vsync in main.c began decompiling crash_screen.c (#27)

* Matched display_and_vsync in main.c and began decompiling crash_screen.c
This commit is contained in:
CoderStig 2021-07-23 16:47:52 -06:00 committed by GitHub
parent 62741d98d3
commit f5b22811bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 2502 additions and 2182 deletions

View File

@ -39,7 +39,7 @@ COURSE_DIRS := \
TEXTURES_DIR = textures
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone $(TEXTURES_DIR)/startup_logo)
ALL_DIRS = $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(COURSE_DIRS) $(INCLUDE_DIRS) $(ASM_DIRS) $(ALL_KARTS_DIRS) $(TEXTURES_DIR)/raw $(TEXTURES_DIR)/standalone $(TEXTURES_DIR)/startup_logo $(TEXTURES_DIR)/crash_screen)
################### Universal Dependencies ###################
@ -218,6 +218,12 @@ $(BUILD_DIR)/%.mio0.o: $(BUILD_DIR)/%.mio0.s
$(BUILD_DIR)/%.mio0.s: $(BUILD_DIR)/%.mio0
printf ".section .data\n\n.incbin \"$<\"\n" > $@
$(BUILD_DIR)/src/crash_screen.o: src/crash_screen.c
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/crash_screen/crash_screen_font.ia1.inc.c -g textures/crash_screen/crash_screen_font.ia1.png -f ia1 -s u32
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(CC) -c $(CFLAGS) -o $@ $<
$(PYTHON) tools/set_o32abi_bit.py $@
$(BUILD_DIR)/src/startup_logo.inc.o: src/startup_logo.inc.c
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/startup_logo/startup_logo.rgba16.inc.c -g textures/startup_logo/startup_logo.rgba16.png -f rgba16 -s u8
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<

View File

@ -11,7 +11,7 @@ glabel D_80162D40
glabel D_80162D58
.skip 4
glabel D_80162D5C
glabel pFramebuffer
.skip 4
glabel D_80162D60

View File

@ -241,7 +241,7 @@ glabel gGfxSPTask
glabel D_801502A0
.skip 8
glabel D_801502A8
glabel gPhysicalFramebuffers
.skip 12
glabel D_801502B4

View File

@ -642,8 +642,8 @@ glabel func_80020000
/* 020EC8 800202C8 8FA80038 */ lw $t0, 0x38($sp)
/* 020ECC 800202CC 3C18800E */ lui $t8, %hi(D_800DDB50)
/* 020ED0 800202D0 0312C021 */ addu $t8, $t8, $s2
/* 020ED4 800202D4 3C0E800E */ lui $t6, %hi(gFrameBufferIndex) # $t6, 0x800e
/* 020ED8 800202D8 95CEC560 */ lhu $t6, %lo(gFrameBufferIndex)($t6)
/* 020ED4 800202D4 3C0E800E */ lui $t6, %hi(sRenderingFramebuffer) # $t6, 0x800e
/* 020ED8 800202D8 95CEC560 */ lhu $t6, %lo(sRenderingFramebuffer)($t6)
/* 020EDC 800202DC 8318DB50 */ lb $t8, %lo(D_800DDB50)($t8)
/* 020EE0 800202E0 00121840 */ sll $v1, $s2, 1
/* 020EE4 800202E4 00107900 */ sll $t7, $s0, 4

View File

@ -3272,8 +3272,8 @@ glabel render_luigi_raceway
/* 0FD2AC 80293C9C 142000A3 */ bnez $at, .L80293F2C
/* 0FD2B0 80293CA0 28410011 */ slti $at, $v0, 0x11
/* 0FD2B4 80293CA4 102000A1 */ beqz $at, .L80293F2C
/* 0FD2B8 80293CA8 3C02800E */ lui $v0, %hi(D_800DC55C) # $v0, 0x800e
/* 0FD2BC 80293CAC 8442C55C */ lh $v0, %lo(D_800DC55C)($v0)
/* 0FD2B8 80293CA8 3C02800E */ lui $v0, %hi(sRenderedFramebuffer) # $v0, 0x800e
/* 0FD2BC 80293CAC 8442C55C */ lh $v0, %lo(sRenderedFramebuffer)($v0)
/* 0FD2C0 80293CB0 3C04802C */ lui $a0, %hi(D_802B87D8) # $a0, 0x802c
/* 0FD2C4 80293CB4 248487D8 */ addiu $a0, %lo(D_802B87D8) # addiu $a0, $a0, -0x7828
/* 0FD2C8 80293CB8 2442FFFF */ addiu $v0, $v0, -1
@ -3309,11 +3309,11 @@ glabel render_luigi_raceway
/* 0FD330 80293D20 00000000 */ nop
glabel L80293D24
/* 0FD334 80293D24 0002C880 */ sll $t9, $v0, 2
/* 0FD338 80293D28 3C0B8015 */ lui $t3, %hi(D_801502A8) # 0x8015
/* 0FD338 80293D28 3C0B8015 */ lui $t3, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FD33C 80293D2C 3C0D8015 */ lui $t5, %hi(D_8015026C) # $t5, 0x8015
/* 0FD340 80293D30 8DAD026C */ lw $t5, %lo(D_8015026C)($t5)
/* 0FD344 80293D34 01795821 */ addu $t3, $t3, $t9
/* 0FD348 80293D38 8D6B02A8 */ lw $t3, %lo(D_801502A8)($t3) # 0x2a8($t3)
/* 0FD348 80293D38 8D6B02A8 */ lw $t3, %lo(gPhysicalFramebuffers)($t3) # 0x2a8($t3)
/* 0FD34C 80293D3C 3C038000 */ lui $v1, 0x8000
/* 0FD350 80293D40 3401F800 */ li $at, 63488
/* 0FD354 80293D44 01A17021 */ addu $t6, $t5, $at
@ -3330,11 +3330,11 @@ glabel L80293D24
/* 0FD380 80293D70 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80293D74
/* 0FD384 80293D74 0002C080 */ sll $t8, $v0, 2
/* 0FD388 80293D78 3C198015 */ lui $t9, %hi(D_801502A8) # 0x8015
/* 0FD388 80293D78 3C198015 */ lui $t9, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FD38C 80293D7C 3C0C8015 */ lui $t4, %hi(D_8015026C) # $t4, 0x8015
/* 0FD390 80293D80 8D8C026C */ lw $t4, %lo(D_8015026C)($t4)
/* 0FD394 80293D84 0338C821 */ addu $t9, $t9, $t8
/* 0FD398 80293D88 8F3902A8 */ lw $t9, %lo(D_801502A8)($t9) # 0x2a8($t9)
/* 0FD398 80293D88 8F3902A8 */ lw $t9, %lo(gPhysicalFramebuffers)($t9) # 0x2a8($t9)
/* 0FD39C 80293D8C 3C010001 */ lui $at, (0x00010800 >> 16) # lui $at, 1
/* 0FD3A0 80293D90 3C038000 */ lui $v1, 0x8000
/* 0FD3A4 80293D94 34210800 */ ori $at, (0x00010800 & 0xFFFF) # ori $at, $at, 0x800
@ -3353,11 +3353,11 @@ glabel L80293D74
/* 0FD3D8 80293DC8 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80293DCC
/* 0FD3DC 80293DCC 00027880 */ sll $t7, $v0, 2
/* 0FD3E0 80293DD0 3C188015 */ lui $t8, %hi(D_801502A8) # 0x8015
/* 0FD3E0 80293DD0 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FD3E4 80293DD4 3C0B8015 */ lui $t3, %hi(D_8015026C) # $t3, 0x8015
/* 0FD3E8 80293DD8 8D6B026C */ lw $t3, %lo(D_8015026C)($t3)
/* 0FD3EC 80293DDC 030FC021 */ addu $t8, $t8, $t7
/* 0FD3F0 80293DE0 8F1802A8 */ lw $t8, %lo(D_801502A8)($t8) # 0x2a8($t8)
/* 0FD3F0 80293DE0 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8)
/* 0FD3F4 80293DE4 3C010001 */ lui $at, (0x00011800 >> 16) # lui $at, 1
/* 0FD3F8 80293DE8 3C038000 */ lui $v1, 0x8000
/* 0FD3FC 80293DEC 34211800 */ ori $at, (0x00011800 & 0xFFFF) # ori $at, $at, 0x1800
@ -3376,11 +3376,11 @@ glabel L80293DCC
/* 0FD430 80293E20 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80293E24
/* 0FD434 80293E24 00027080 */ sll $t6, $v0, 2
/* 0FD438 80293E28 3C0F8015 */ lui $t7, %hi(D_801502A8) # 0x8015
/* 0FD438 80293E28 3C0F8015 */ lui $t7, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FD43C 80293E2C 3C198015 */ lui $t9, %hi(D_8015026C) # $t9, 0x8015
/* 0FD440 80293E30 8F39026C */ lw $t9, %lo(D_8015026C)($t9)
/* 0FD444 80293E34 01EE7821 */ addu $t7, $t7, $t6
/* 0FD448 80293E38 8DEF02A8 */ lw $t7, %lo(D_801502A8)($t7) # 0x2a8($t7)
/* 0FD448 80293E38 8DEF02A8 */ lw $t7, %lo(gPhysicalFramebuffers)($t7) # 0x2a8($t7)
/* 0FD44C 80293E3C 3C010001 */ lui $at, (0x00012800 >> 16) # lui $at, 1
/* 0FD450 80293E40 3C038000 */ lui $v1, 0x8000
/* 0FD454 80293E44 34212800 */ ori $at, (0x00012800 & 0xFFFF) # ori $at, $at, 0x2800
@ -3400,11 +3400,11 @@ glabel L80293E24
/* 0FD48C 80293E7C 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80293E80
/* 0FD490 80293E80 00026880 */ sll $t5, $v0, 2
/* 0FD494 80293E84 3C0E8015 */ lui $t6, %hi(D_801502A8) # 0x8015
/* 0FD494 80293E84 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FD498 80293E88 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015
/* 0FD49C 80293E8C 8F18026C */ lw $t8, %lo(D_8015026C)($t8)
/* 0FD4A0 80293E90 01CD7021 */ addu $t6, $t6, $t5
/* 0FD4A4 80293E94 8DCE02A8 */ lw $t6, %lo(D_801502A8)($t6) # 0x2a8($t6)
/* 0FD4A4 80293E94 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6)
/* 0FD4A8 80293E98 3C010001 */ lui $at, (0x00013800 >> 16) # lui $at, 1
/* 0FD4AC 80293E9C 3C038000 */ lui $v1, 0x8000
/* 0FD4B0 80293EA0 34213800 */ ori $at, (0x00013800 & 0xFFFF) # ori $at, $at, 0x3800
@ -3423,11 +3423,11 @@ glabel L80293E80
/* 0FD4E4 80293ED4 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80293ED8
/* 0FD4E8 80293ED8 00026080 */ sll $t4, $v0, 2
/* 0FD4EC 80293EDC 3C0D8015 */ lui $t5, %hi(D_801502A8) # 0x8015
/* 0FD4EC 80293EDC 3C0D8015 */ lui $t5, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FD4F0 80293EE0 3C0F8015 */ lui $t7, %hi(D_8015026C) # $t7, 0x8015
/* 0FD4F4 80293EE4 8DEF026C */ lw $t7, %lo(D_8015026C)($t7)
/* 0FD4F8 80293EE8 01AC6821 */ addu $t5, $t5, $t4
/* 0FD4FC 80293EEC 8DAD02A8 */ lw $t5, %lo(D_801502A8)($t5) # 0x2a8($t5)
/* 0FD4FC 80293EEC 8DAD02A8 */ lw $t5, %lo(gPhysicalFramebuffers)($t5) # 0x2a8($t5)
/* 0FD500 80293EF0 3C010001 */ lui $at, (0x00014800 >> 16) # lui $at, 1
/* 0FD504 80293EF4 3C038000 */ lui $v1, 0x8000
/* 0FD508 80293EF8 34214800 */ ori $at, (0x00014800 & 0xFFFF) # ori $at, $at, 0x4800
@ -4392,10 +4392,10 @@ glabel render_wario_stadium
/* 0FE360 80294D50 3C0F800E */ lui $t7, %hi(D_800DC52C) # $t7, 0x800e
/* 0FE364 80294D54 8DEFC52C */ lw $t7, %lo(D_800DC52C)($t7)
/* 0FE368 80294D58 3C04802C */ lui $a0, %hi(D_802B87D8) # $a0, 0x802c
/* 0FE36C 80294D5C 3C02800E */ lui $v0, %hi(D_800DC55C) # $v0, 0x800e
/* 0FE36C 80294D5C 3C02800E */ lui $v0, %hi(sRenderedFramebuffer) # $v0, 0x800e
/* 0FE370 80294D60 15E0009A */ bnez $t7, .L80294FCC
/* 0FE374 80294D64 248487D8 */ addiu $a0, %lo(D_802B87D8) # addiu $a0, $a0, -0x7828
/* 0FE378 80294D68 8442C55C */ lh $v0, %lo(D_800DC55C)($v0)
/* 0FE378 80294D68 8442C55C */ lh $v0, %lo(sRenderedFramebuffer)($v0)
/* 0FE37C 80294D6C 2442FFFF */ addiu $v0, $v0, -1
/* 0FE380 80294D70 0002C400 */ sll $t8, $v0, 0x10
/* 0FE384 80294D74 00181403 */ sra $v0, $t8, 0x10
@ -4429,11 +4429,11 @@ glabel render_wario_stadium
/* 0FE3E4 80294DD4 00000000 */ nop
glabel L80294DD8
/* 0FE3E8 80294DD8 0002C880 */ sll $t9, $v0, 2
/* 0FE3EC 80294DDC 3C0E8015 */ lui $t6, %hi(D_801502A8) # 0x8015
/* 0FE3EC 80294DDC 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FE3F0 80294DE0 01D97021 */ addu $t6, $t6, $t9
/* 0FE3F4 80294DE4 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015
/* 0FE3F8 80294DE8 8F18026C */ lw $t8, %lo(D_8015026C)($t8)
/* 0FE3FC 80294DEC 8DCE02A8 */ lw $t6, %lo(D_801502A8)($t6) # 0x2a8($t6)
/* 0FE3FC 80294DEC 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6)
/* 0FE400 80294DF0 3C038000 */ lui $v1, 0x8000
/* 0FE404 80294DF4 34018800 */ li $at, 34816
/* 0FE408 80294DF8 0301C821 */ addu $t9, $t8, $at
@ -4450,11 +4450,11 @@ glabel L80294DD8
/* 0FE434 80294E24 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80294E28
/* 0FE438 80294E28 00027880 */ sll $t7, $v0, 2
/* 0FE43C 80294E2C 3C188015 */ lui $t8, %hi(D_801502A8) # 0x8015
/* 0FE43C 80294E2C 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FE440 80294E30 030FC021 */ addu $t8, $t8, $t7
/* 0FE444 80294E34 3C0E8015 */ lui $t6, %hi(D_8015026C) # $t6, 0x8015
/* 0FE448 80294E38 8DCE026C */ lw $t6, %lo(D_8015026C)($t6)
/* 0FE44C 80294E3C 8F1802A8 */ lw $t8, %lo(D_801502A8)($t8) # 0x2a8($t8)
/* 0FE44C 80294E3C 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8)
/* 0FE450 80294E40 3C038000 */ lui $v1, 0x8000
/* 0FE454 80294E44 34019800 */ li $at, 38912
/* 0FE458 80294E48 8D440000 */ lw $a0, ($t2)
@ -4472,11 +4472,11 @@ glabel L80294E28
/* 0FE488 80294E78 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80294E7C
/* 0FE48C 80294E7C 0002C880 */ sll $t9, $v0, 2
/* 0FE490 80294E80 3C0E8015 */ lui $t6, %hi(D_801502A8) # 0x8015
/* 0FE490 80294E80 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FE494 80294E84 01D97021 */ addu $t6, $t6, $t9
/* 0FE498 80294E88 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015
/* 0FE49C 80294E8C 8F18026C */ lw $t8, %lo(D_8015026C)($t8)
/* 0FE4A0 80294E90 8DCE02A8 */ lw $t6, %lo(D_801502A8)($t6) # 0x2a8($t6)
/* 0FE4A0 80294E90 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6)
/* 0FE4A4 80294E94 3C038000 */ lui $v1, 0x8000
/* 0FE4A8 80294E98 3401A800 */ li $at, 43008
/* 0FE4AC 80294E9C 8D650000 */ lw $a1, ($t3)
@ -4494,11 +4494,11 @@ glabel L80294E7C
/* 0FE4DC 80294ECC 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80294ED0
/* 0FE4E0 80294ED0 00027880 */ sll $t7, $v0, 2
/* 0FE4E4 80294ED4 3C188015 */ lui $t8, %hi(D_801502A8) # 0x8015
/* 0FE4E4 80294ED4 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FE4E8 80294ED8 030FC021 */ addu $t8, $t8, $t7
/* 0FE4EC 80294EDC 3C0E8015 */ lui $t6, %hi(D_8015026C) # $t6, 0x8015
/* 0FE4F0 80294EE0 8DCE026C */ lw $t6, %lo(D_8015026C)($t6)
/* 0FE4F4 80294EE4 8F1802A8 */ lw $t8, %lo(D_801502A8)($t8) # 0x2a8($t8)
/* 0FE4F4 80294EE4 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8)
/* 0FE4F8 80294EE8 3C038000 */ lui $v1, 0x8000
/* 0FE4FC 80294EEC 3401B800 */ li $at, 47104
/* 0FE500 80294EF0 8D440000 */ lw $a0, ($t2)
@ -4517,11 +4517,11 @@ glabel L80294ED0
/* 0FE534 80294F24 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80294F28
/* 0FE538 80294F28 0002C880 */ sll $t9, $v0, 2
/* 0FE53C 80294F2C 3C0E8015 */ lui $t6, %hi(D_801502A8) # 0x8015
/* 0FE53C 80294F2C 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FE540 80294F30 01D97021 */ addu $t6, $t6, $t9
/* 0FE544 80294F34 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015
/* 0FE548 80294F38 8F18026C */ lw $t8, %lo(D_8015026C)($t8)
/* 0FE54C 80294F3C 8DCE02A8 */ lw $t6, %lo(D_801502A8)($t6) # 0x2a8($t6)
/* 0FE54C 80294F3C 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6)
/* 0FE550 80294F40 3C038000 */ lui $v1, 0x8000
/* 0FE554 80294F44 3401C800 */ li $at, 51200
/* 0FE558 80294F48 8D650000 */ lw $a1, ($t3)
@ -4539,11 +4539,11 @@ glabel L80294F28
/* 0FE588 80294F78 8FBF001C */ lw $ra, 0x1c($sp)
glabel L80294F7C
/* 0FE58C 80294F7C 00027880 */ sll $t7, $v0, 2
/* 0FE590 80294F80 3C188015 */ lui $t8, %hi(D_801502A8) # 0x8015
/* 0FE590 80294F80 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015
/* 0FE594 80294F84 030FC021 */ addu $t8, $t8, $t7
/* 0FE598 80294F88 3C0E8015 */ lui $t6, %hi(D_8015026C) # $t6, 0x8015
/* 0FE59C 80294F8C 8DCE026C */ lw $t6, %lo(D_8015026C)($t6)
/* 0FE5A0 80294F90 8F1802A8 */ lw $t8, %lo(D_801502A8)($t8) # 0x2a8($t8)
/* 0FE5A0 80294F90 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8)
/* 0FE5A4 80294F94 3C038000 */ lui $v1, 0x8000
/* 0FE5A8 80294F98 3401D800 */ li $at, 55296
/* 0FE5AC 80294F9C 8D440000 */ lw $a0, ($t2)

View File

@ -358,16 +358,16 @@ glabel func_802A39E0
/* 10D238 802A3C28 AC590000 */ sw $t9, ($v0)
/* 10D23C 802A3C2C 8C620000 */ lw $v0, ($v1)
/* 10D240 802A3C30 3718013F */ ori $t8, (0xFF10013F & 0xFFFF) # ori $t8, $t8, 0x13f
/* 10D244 802A3C34 3C0F800E */ lui $t7, %hi(gFrameBufferIndex) # $t7, 0x800e
/* 10D244 802A3C34 3C0F800E */ lui $t7, %hi(sRenderingFramebuffer) # $t7, 0x800e
/* 10D248 802A3C38 244E0008 */ addiu $t6, $v0, 8
/* 10D24C 802A3C3C AC6E0000 */ sw $t6, ($v1)
/* 10D250 802A3C40 AC580000 */ sw $t8, ($v0)
/* 10D254 802A3C44 95EFC560 */ lhu $t7, %lo(gFrameBufferIndex)($t7)
/* 10D258 802A3C48 3C0E8015 */ lui $t6, %hi(D_801502A8)
/* 10D254 802A3C44 95EFC560 */ lhu $t7, %lo(sRenderingFramebuffer)($t7)
/* 10D258 802A3C48 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers)
/* 10D25C 802A3C4C 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 10D260 802A3C50 000FC880 */ sll $t9, $t7, 2
/* 10D264 802A3C54 01D97021 */ addu $t6, $t6, $t9
/* 10D268 802A3C58 8DCE02A8 */ lw $t6, %lo(D_801502A8)($t6)
/* 10D268 802A3C58 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6)
/* 10D26C 802A3C5C 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 10D270 802A3C60 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00
/* 10D274 802A3C64 01C1C024 */ and $t8, $t6, $at
@ -464,15 +464,15 @@ glabel func_802A3CB0
/* 10D3D8 802A3DC8 AC580000 */ sw $t8, ($v0)
/* 10D3DC 802A3DCC 8C620000 */ lw $v0, ($v1)
/* 10D3E0 802A3DD0 35CE013F */ ori $t6, (0xFF10013F & 0xFFFF) # ori $t6, $t6, 0x13f
/* 10D3E4 802A3DD4 3C0F800E */ lui $t7, %hi(gFrameBufferIndex) # $t7, 0x800e
/* 10D3E4 802A3DD4 3C0F800E */ lui $t7, %hi(sRenderingFramebuffer) # $t7, 0x800e
/* 10D3E8 802A3DD8 24590008 */ addiu $t9, $v0, 8
/* 10D3EC 802A3DDC AC790000 */ sw $t9, ($v1)
/* 10D3F0 802A3DE0 AC4E0000 */ sw $t6, ($v0)
/* 10D3F4 802A3DE4 95EFC560 */ lhu $t7, %lo(gFrameBufferIndex)($t7)
/* 10D3F8 802A3DE8 3C198015 */ lui $t9, %hi(D_801502A8) # 0x8015
/* 10D3F4 802A3DE4 95EFC560 */ lhu $t7, %lo(sRenderingFramebuffer)($t7)
/* 10D3F8 802A3DE8 3C198015 */ lui $t9, %hi(gPhysicalFramebuffers) # 0x8015
/* 10D3FC 802A3DEC 000FC080 */ sll $t8, $t7, 2
/* 10D400 802A3DF0 0338C821 */ addu $t9, $t9, $t8
/* 10D404 802A3DF4 8F3902A8 */ lw $t9, %lo(D_801502A8)($t9)
/* 10D404 802A3DF4 8F3902A8 */ lw $t9, %lo(gPhysicalFramebuffers)($t9)
/* 10D408 802A3DF8 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00
/* 10D40C 802A3DFC 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402
/* 10D410 802A3E00 03217024 */ and $t6, $t9, $at
@ -742,14 +742,14 @@ glabel func_802A41D4
/* 10D7F4 802A41E4 35EF013F */ ori $t7, (0xFF10013F & 0xFFFF) # ori $t7, $t7, 0x13f
/* 10D7F8 802A41E8 244E0008 */ addiu $t6, $v0, 8
/* 10D7FC 802A41EC AC6E0000 */ sw $t6, ($v1)
/* 10D800 802A41F0 3C18800E */ lui $t8, %hi(gFrameBufferIndex) # $t8, 0x800e
/* 10D800 802A41F0 3C18800E */ lui $t8, %hi(sRenderingFramebuffer) # $t8, 0x800e
/* 10D804 802A41F4 AC4F0000 */ sw $t7, ($v0)
/* 10D808 802A41F8 9718C560 */ lhu $t8, %lo(gFrameBufferIndex)($t8)
/* 10D80C 802A41FC 3C0D8015 */ lui $t5, %hi(D_801502A8) # 0x8015
/* 10D808 802A41F8 9718C560 */ lhu $t8, %lo(sRenderingFramebuffer)($t8)
/* 10D80C 802A41FC 3C0D8015 */ lui $t5, %hi(gPhysicalFramebuffers) # 0x8015
/* 10D810 802A4200 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 10D814 802A4204 0018C880 */ sll $t9, $t8, 2
/* 10D818 802A4208 01B96821 */ addu $t5, $t5, $t9
/* 10D81C 802A420C 8DAD02A8 */ lw $t5, %lo(D_801502A8)($t5)
/* 10D81C 802A420C 8DAD02A8 */ lw $t5, %lo(gPhysicalFramebuffers)($t5)
/* 10D820 802A4210 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 10D824 802A4214 3C18F700 */ lui $t8, 0xf700
/* 10D828 802A4218 01A17024 */ and $t6, $t5, $at
@ -841,14 +841,14 @@ glabel func_802A4300
/* 10D978 802A4368 3739013F */ ori $t9, (0xFF10013F & 0xFFFF) # ori $t9, $t9, 0x13f
/* 10D97C 802A436C 24580008 */ addiu $t8, $v0, 8
/* 10D980 802A4370 AC780000 */ sw $t8, ($v1)
/* 10D984 802A4374 3C0E800E */ lui $t6, %hi(gFrameBufferIndex) # $t6, 0x800e
/* 10D984 802A4374 3C0E800E */ lui $t6, %hi(sRenderingFramebuffer) # $t6, 0x800e
/* 10D988 802A4378 AC590000 */ sw $t9, ($v0)
/* 10D98C 802A437C 95CEC560 */ lhu $t6, %lo(gFrameBufferIndex)($t6)
/* 10D990 802A4380 3C188015 */ lui $t8, %hi(D_801502A8)
/* 10D98C 802A437C 95CEC560 */ lhu $t6, %lo(sRenderingFramebuffer)($t6)
/* 10D990 802A4380 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers)
/* 10D994 802A4384 3C0C1FFF */ lui $t4, (0x1FFFFFFF >> 16) # lui $t4, 0x1fff
/* 10D998 802A4388 000E7880 */ sll $t7, $t6, 2
/* 10D99C 802A438C 030FC021 */ addu $t8, $t8, $t7
/* 10D9A0 802A4390 8F1802A8 */ lw $t8, %lo(D_801502A8)($t8)
/* 10D9A0 802A4390 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8)
/* 10D9A4 802A4394 358CFFFF */ ori $t4, (0x1FFFFFFF & 0xFFFF) # ori $t4, $t4, 0xffff
/* 10D9A8 802A4398 3C0FF700 */ lui $t7, 0xf700
/* 10D9AC 802A439C 030CC824 */ and $t9, $t8, $t4
@ -2243,14 +2243,14 @@ glabel func_802A5760
/* 10EE30 802A5820 35CE013F */ ori $t6, (0xFF10013F & 0xFFFF) # ori $t6, $t6, 0x13f
/* 10EE34 802A5824 24590008 */ addiu $t9, $v0, 8
/* 10EE38 802A5828 AC790000 */ sw $t9, ($v1)
/* 10EE3C 802A582C 3C0F800E */ lui $t7, %hi(gFrameBufferIndex) # $t7, 0x800e
/* 10EE3C 802A582C 3C0F800E */ lui $t7, %hi(sRenderingFramebuffer) # $t7, 0x800e
/* 10EE40 802A5830 AC4E0000 */ sw $t6, ($v0)
/* 10EE44 802A5834 95EFC560 */ lhu $t7, %lo(gFrameBufferIndex)($t7)
/* 10EE48 802A5838 3C198015 */ lui $t9, %hi(D_801502A8) # 0x8015
/* 10EE44 802A5834 95EFC560 */ lhu $t7, %lo(sRenderingFramebuffer)($t7)
/* 10EE48 802A5838 3C198015 */ lui $t9, %hi(gPhysicalFramebuffers) # 0x8015
/* 10EE4C 802A583C 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 10EE50 802A5840 000FC080 */ sll $t8, $t7, 2
/* 10EE54 802A5844 0338C821 */ addu $t9, $t9, $t8
/* 10EE58 802A5848 8F3902A8 */ lw $t9, %lo(D_801502A8)($t9)
/* 10EE58 802A5848 8F3902A8 */ lw $t9, %lo(gPhysicalFramebuffers)($t9)
/* 10EE5C 802A584C 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 10EE60 802A5850 3C18F700 */ lui $t8, 0xf700
/* 10EE64 802A5854 03217024 */ and $t6, $t9, $at
@ -4344,8 +4344,8 @@ glabel func_802A7728
/* 110D84 802A7774 3C14800E */ lui $s4, %hi(D_800DC5E0) # $s4, 0x800e
/* 110D88 802A7778 2694C5E0 */ addiu $s4, %lo(D_800DC5E0) # addiu $s4, $s4, -0x3a20
/* 110D8C 802A777C AE800000 */ sw $zero, ($s4)
/* 110D90 802A7780 3C02800E */ lui $v0, %hi(D_800DC55C) # $v0, 0x800e
/* 110D94 802A7784 8442C55C */ lh $v0, %lo(D_800DC55C)($v0)
/* 110D90 802A7780 3C02800E */ lui $v0, %hi(sRenderedFramebuffer) # $v0, 0x800e
/* 110D94 802A7784 8442C55C */ lh $v0, %lo(sRenderedFramebuffer)($v0)
/* 110D98 802A7788 3C128015 */ lui $s2, %hi(gSegmentTable) # $s2, 0x8015
/* 110D9C 802A778C 26520258 */ addiu $s2, %lo(gSegmentTable) # addiu $s2, $s2, 0x258
/* 110DA0 802A7790 2442FFFF */ addiu $v0, $v0, -1
@ -4361,8 +4361,8 @@ glabel func_802A7728
/* 110DC4 802A77B4 00000000 */ nop
/* 110DC8 802A77B8 00001025 */ move $v0, $zero
.L802A77BC:
/* 110DCC 802A77BC 3C098015 */ lui $t1, %hi(D_801502A8) # $t1, 0x8015
/* 110DD0 802A77C0 252902A8 */ addiu $t1, %lo(D_801502A8) # addiu $t1, $t1, 0x2a8
/* 110DCC 802A77BC 3C098015 */ lui $t1, %hi(gPhysicalFramebuffers) # $t1, 0x8015
/* 110DD0 802A77C0 252902A8 */ addiu $t1, %lo(gPhysicalFramebuffers) # addiu $t1, $t1, 0x2a8
/* 110DD4 802A77C4 00024080 */ sll $t0, $v0, 2
/* 110DD8 802A77C8 8E4C0014 */ lw $t4, 0x14($s2)
/* 110DDC 802A77CC 01098821 */ addu $s1, $t0, $t1
@ -4484,8 +4484,8 @@ glabel func_802A7940
/* 110F9C 802A798C 3C14800E */ lui $s4, %hi(D_800DC5E0) # $s4, 0x800e
/* 110FA0 802A7990 2694C5E0 */ addiu $s4, %lo(D_800DC5E0) # addiu $s4, $s4, -0x3a20
/* 110FA4 802A7994 AE800000 */ sw $zero, ($s4)
/* 110FA8 802A7998 3C02800E */ lui $v0, %hi(D_800DC55C) # $v0, 0x800e
/* 110FAC 802A799C 8442C55C */ lh $v0, %lo(D_800DC55C)($v0)
/* 110FA8 802A7998 3C02800E */ lui $v0, %hi(sRenderedFramebuffer) # $v0, 0x800e
/* 110FAC 802A799C 8442C55C */ lh $v0, %lo(sRenderedFramebuffer)($v0)
/* 110FB0 802A79A0 3C128015 */ lui $s2, %hi(gSegmentTable) # $s2, 0x8015
/* 110FB4 802A79A4 26520258 */ addiu $s2, %lo(gSegmentTable) # addiu $s2, $s2, 0x258
/* 110FB8 802A79A8 2442FFFF */ addiu $v0, $v0, -1
@ -4501,8 +4501,8 @@ glabel func_802A7940
/* 110FDC 802A79CC 00000000 */ nop
/* 110FE0 802A79D0 00001025 */ move $v0, $zero
.L802A79D4:
/* 110FE4 802A79D4 3C098015 */ lui $t1, %hi(D_801502A8) # $t1, 0x8015
/* 110FE8 802A79D8 252902A8 */ addiu $t1, %lo(D_801502A8) # addiu $t1, $t1, 0x2a8
/* 110FE4 802A79D4 3C098015 */ lui $t1, %hi(gPhysicalFramebuffers) # $t1, 0x8015
/* 110FE8 802A79D8 252902A8 */ addiu $t1, %lo(gPhysicalFramebuffers) # addiu $t1, $t1, 0x2a8
/* 110FEC 802A79DC 00024080 */ sll $t0, $v0, 2
/* 110FF0 802A79E0 8E4C0014 */ lw $t4, 0x14($s2)
/* 110FF4 802A79E4 01098821 */ addu $s1, $t0, $t1

View File

@ -1,52 +1,3 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_800040C0
/* 004CC0 800040C0 27BDFFF8 */ addiu $sp, $sp, -8
/* 004CC4 800040C4 000770C0 */ sll $t6, $a3, 3
/* 004CC8 800040C8 3C0F800E */ lui $t7, %hi(D_800DC674) # $t7, 0x800e
/* 004CCC 800040CC AFB00004 */ sw $s0, 4($sp)
/* 004CD0 800040D0 25EFC674 */ addiu $t7, %lo(D_800DC674) # addiu $t7, $t7, -0x398c
/* 004CD4 800040D4 00808025 */ move $s0, $a0
/* 004CD8 800040D8 01CF4021 */ addu $t0, $t6, $t7
/* 004CDC 800040DC 24070140 */ li $a3, 320
/* 004CE0 800040E0 00001025 */ move $v0, $zero
/* 004CE4 800040E4 240A0008 */ li $t2, 8
/* 004CE8 800040E8 3409FFFF */ li $t1, 65535
.L800040EC:
/* 004CEC 800040EC 91030000 */ lbu $v1, ($t0)
/* 004CF0 800040F0 24040005 */ li $a0, 5
.L800040F4:
/* 004CF4 800040F4 30780001 */ andi $t8, $v1, 1
/* 004CF8 800040F8 13000008 */ beqz $t8, .L8000411C
/* 004CFC 800040FC 00C2C821 */ addu $t9, $a2, $v0
/* 004D00 80004100 03270019 */ multu $t9, $a3
/* 004D04 80004104 00005812 */ mflo $t3
/* 004D08 80004108 01656021 */ addu $t4, $t3, $a1
/* 004D0C 8000410C 01846821 */ addu $t5, $t4, $a0
/* 004D10 80004110 000D7040 */ sll $t6, $t5, 1
/* 004D14 80004114 020E7821 */ addu $t7, $s0, $t6
/* 004D18 80004118 A5E90000 */ sh $t1, ($t7)
.L8000411C:
/* 004D1C 8000411C 2484FFFF */ addiu $a0, $a0, -1
/* 004D20 80004120 0003C043 */ sra $t8, $v1, 1
/* 004D24 80004124 0481FFF3 */ bgez $a0, .L800040F4
/* 004D28 80004128 03001825 */ move $v1, $t8
/* 004D2C 8000412C 24420001 */ addiu $v0, $v0, 1
/* 004D30 80004130 144AFFEE */ bne $v0, $t2, .L800040EC
/* 004D34 80004134 25080001 */ addiu $t0, $t0, 1
/* 004D38 80004138 8FB00004 */ lw $s0, 4($sp)
/* 004D3C 8000413C 03E00008 */ jr $ra
/* 004D40 80004140 27BD0008 */ addiu $sp, $sp, 8
glabel crash_screen_draw_square
/* 004D44 80004144 27BDFFD0 */ addiu $sp, $sp, -0x30
@ -354,7 +305,7 @@ glabel thread9_crash_screen
/* 005180 80004580 24060010 */ li $a2, 16
/* 005184 80004584 3C108016 */ lui $s0, %hi(D_80162D60) # $s0, 0x8016
/* 005188 80004588 26102D60 */ addiu $s0, %lo(D_80162D60) # addiu $s0, $s0, 0x2d60
/* 00518C 8000458C 3C158016 */ lui $s5, %hi(D_80162D5C) # $s5, 0x8016
/* 00518C 8000458C 3C158016 */ lui $s5, %hi(pFramebuffer) # $s5, 0x8016
/* 005190 80004590 3C14800E */ lui $s4, %hi(D_800DC670) # $s4, 0x800e
/* 005194 80004594 3C12800E */ lui $s2, %hi(D_800DC4BC) # $s2, 0x800e
/* 005198 80004598 3C11800E */ lui $s1, %hi(D_800DC6FC) # $s1, 0x800e
@ -362,7 +313,7 @@ glabel thread9_crash_screen
/* 0051A0 800045A0 2631C6FC */ addiu $s1, %lo(D_800DC6FC) # addiu $s1, $s1, -0x3904
/* 0051A4 800045A4 2652C4BC */ addiu $s2, %lo(D_800DC4BC) # addiu $s2, $s2, -0x3b44
/* 0051A8 800045A8 2694C670 */ addiu $s4, %lo(D_800DC670) # addiu $s4, $s4, -0x3990
/* 0051AC 800045AC 26B52D5C */ addiu $s5, %lo(D_80162D5C) # addiu $s5, $s5, 0x2d5c
/* 0051AC 800045AC 26B52D5C */ addiu $s5, %lo(pFramebuffer) # addiu $s5, $s5, 0x2d5c
/* 0051B0 800045B0 27B60044 */ addiu $s6, $sp, 0x44
/* 0051B4 800045B4 3413FFFF */ li $s3, 65535
.L800045B8:
@ -433,9 +384,9 @@ glabel thread9_crash_screen
/* 0052A8 800046A8 27BD0048 */ addiu $sp, $sp, 0x48
glabel func_800046AC
/* 0052AC 800046AC 3C018016 */ lui $at, %hi(D_80162D5C) # 0x8016
/* 0052AC 800046AC 3C018016 */ lui $at, %hi(pFramebuffer) # 0x8016
/* 0052B0 800046B0 03E00008 */ jr $ra
/* 0052B4 800046B4 AC242D5C */ sw $a0, %lo(D_80162D5C)($at) # 0x2d5c($at)
/* 0052B4 800046B4 AC242D5C */ sw $a0, %lo(pFramebuffer)($at) # 0x2d5c($at)
glabel create_debug_thread
/* 0052B8 800046B8 27BDFFE0 */ addiu $sp, $sp, -0x20

View File

@ -0,0 +1,37 @@
glabel func_800040C0
/* 004CC0 800040C0 27BDFFF8 */ addiu $sp, $sp, -8
/* 004CC4 800040C4 000770C0 */ sll $t6, $a3, 3
/* 004CC8 800040C8 3C0F800E */ lui $t7, %hi(crashScreenFont) # $t7, 0x800e
/* 004CCC 800040CC AFB00004 */ sw $s0, 4($sp)
/* 004CD0 800040D0 25EFC674 */ addiu $t7, %lo(crashScreenFont) # addiu $t7, $t7, -0x398c
/* 004CD4 800040D4 00808025 */ move $s0, $a0
/* 004CD8 800040D8 01CF4021 */ addu $t0, $t6, $t7
/* 004CDC 800040DC 24070140 */ li $a3, 320
/* 004CE0 800040E0 00001025 */ move $v0, $zero
/* 004CE4 800040E4 240A0008 */ li $t2, 8
/* 004CE8 800040E8 3409FFFF */ li $t1, 65535
.L800040EC:
/* 004CEC 800040EC 91030000 */ lbu $v1, ($t0)
/* 004CF0 800040F0 24040005 */ li $a0, 5
.L800040F4:
/* 004CF4 800040F4 30780001 */ andi $t8, $v1, 1
/* 004CF8 800040F8 13000008 */ beqz $t8, .L8000411C
/* 004CFC 800040FC 00C2C821 */ addu $t9, $a2, $v0
/* 004D00 80004100 03270019 */ multu $t9, $a3
/* 004D04 80004104 00005812 */ mflo $t3
/* 004D08 80004108 01656021 */ addu $t4, $t3, $a1
/* 004D0C 8000410C 01846821 */ addu $t5, $t4, $a0
/* 004D10 80004110 000D7040 */ sll $t6, $t5, 1
/* 004D14 80004114 020E7821 */ addu $t7, $s0, $t6
/* 004D18 80004118 A5E90000 */ sh $t1, ($t7)
.L8000411C:
/* 004D1C 8000411C 2484FFFF */ addiu $a0, $a0, -1
/* 004D20 80004120 0003C043 */ sra $t8, $v1, 1
/* 004D24 80004124 0481FFF3 */ bgez $a0, .L800040F4
/* 004D28 80004128 03001825 */ move $v1, $t8
/* 004D2C 8000412C 24420001 */ addiu $v0, $v0, 1
/* 004D30 80004130 144AFFEE */ bne $v0, $t2, .L800040EC
/* 004D34 80004134 25080001 */ addiu $t0, $t0, 1
/* 004D38 80004138 8FB00004 */ lw $s0, 4($sp)
/* 004D3C 8000413C 03E00008 */ jr $ra
/* 004D40 80004140 27BD0008 */ addiu $sp, $sp, 8

View File

@ -1,77 +0,0 @@
glabel func_80000F34
/* 001B34 80000F34 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 001B38 80000F38 AFBF001C */ sw $ra, 0x1c($sp)
/* 001B3C 80000F3C AFB00018 */ sw $s0, 0x18($sp)
/* 001B40 80000F40 0C000D54 */ jal profiler_log_thread5_time
/* 001B44 80000F44 24040002 */ li $a0, 2
/* 001B48 80000F48 3C048015 */ lui $a0, %hi(D_8014EF88) # $a0, 0x8015
/* 001B4C 80000F4C 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001B50 80000F50 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001B54 80000F54 2484EF88 */ addiu $a0, %lo(D_8014EF88) # addiu $a0, $a0, -0x1078
/* 001B58 80000F58 0C0335D4 */ jal osRecvMesg
/* 001B5C 80000F5C 24060001 */ li $a2, 1
/* 001B60 80000F60 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015
/* 001B64 80000F64 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 001B68 80000F68 3C010002 */ lui $at, (0x00028B20 >> 16) # lui $at, 2
/* 001B6C 80000F6C 34218B20 */ ori $at, (0x00028B20 & 0xFFFF) # ori $at, $at, 0x8b20
/* 001B70 80000F70 0C000310 */ jal send_display_list
/* 001B74 80000F74 00812021 */ addu $a0, $a0, $at
/* 001B78 80000F78 0C000D54 */ jal profiler_log_thread5_time
/* 001B7C 80000F7C 24040003 */ li $a0, 3
/* 001B80 80000F80 3C048015 */ lui $a0, %hi(D_8014EF70) # $a0, 0x8015
/* 001B84 80000F84 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001B88 80000F88 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001B8C 80000F8C 2484EF70 */ addiu $a0, %lo(D_8014EF70) # addiu $a0, $a0, -0x1090
/* 001B90 80000F90 0C0335D4 */ jal osRecvMesg
/* 001B94 80000F94 24060001 */ li $a2, 1
/* 001B98 80000F98 3C10800E */ lui $s0, %hi(D_800DC55C) # $s0, 0x800e
/* 001B9C 80000F9C 2610C55C */ addiu $s0, %lo(D_800DC55C) # addiu $s0, $s0, -0x3aa4
/* 001BA0 80000FA0 960E0000 */ lhu $t6, ($s0)
/* 001BA4 80000FA4 3C048015 */ lui $a0, %hi(D_801502A8) # 0x8015
/* 001BA8 80000FA8 3C018000 */ lui $at, 0x8000
/* 001BAC 80000FAC 000E7880 */ sll $t7, $t6, 2
/* 001BB0 80000FB0 008F2021 */ addu $a0, $a0, $t7
/* 001BB4 80000FB4 8C8402A8 */ lw $a0, %lo(D_801502A8)($a0) # 0x2a8($a0)
/* 001BB8 80000FB8 0081C025 */ or $t8, $a0, $at
/* 001BBC 80000FBC 0C033684 */ jal osViSwapBuffer
/* 001BC0 80000FC0 03002025 */ move $a0, $t8
/* 001BC4 80000FC4 0C000D54 */ jal profiler_log_thread5_time
/* 001BC8 80000FC8 24040004 */ li $a0, 4
/* 001BCC 80000FCC 3C048015 */ lui $a0, %hi(D_8014EF70) # $a0, 0x8015
/* 001BD0 80000FD0 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001BD4 80000FD4 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001BD8 80000FD8 2484EF70 */ addiu $a0, %lo(D_8014EF70) # addiu $a0, $a0, -0x1090
/* 001BDC 80000FDC 0C0335D4 */ jal osRecvMesg
/* 001BE0 80000FE0 24060001 */ li $a2, 1
/* 001BE4 80000FE4 96190000 */ lhu $t9, ($s0)
/* 001BE8 80000FE8 3C048015 */ lui $a0, %hi(D_801502A8) # 0x8015
/* 001BEC 80000FEC 00194080 */ sll $t0, $t9, 2
/* 001BF0 80000FF0 00882021 */ addu $a0, $a0, $t0
/* 001BF4 80000FF4 0C0011AB */ jal func_800046AC
/* 001BF8 80000FF8 8C8402A8 */ lw $a0, %lo(D_801502A8)($a0) # 0x2a8($a0)
/* 001BFC 80000FFC 96090000 */ lhu $t1, ($s0)
/* 001C00 80001000 24030003 */ li $v1, 3
/* 001C04 80001004 3C02800E */ lui $v0, %hi(gFrameBufferIndex) # $v0, 0x800e
/* 001C08 80001008 252A0001 */ addiu $t2, $t1, 1
/* 001C0C 8000100C 314BFFFF */ andi $t3, $t2, 0xffff
/* 001C10 80001010 146B0002 */ bne $v1, $t3, .L8000101C
/* 001C14 80001014 A60A0000 */ sh $t2, ($s0)
/* 001C18 80001018 A6000000 */ sh $zero, ($s0)
.L8000101C:
/* 001C1C 8000101C 2442C560 */ addiu $v0, %lo(gFrameBufferIndex) # addiu $v0, $v0, -0x3aa0
/* 001C20 80001020 944C0000 */ lhu $t4, ($v0)
/* 001C24 80001024 258D0001 */ addiu $t5, $t4, 1
/* 001C28 80001028 31AEFFFF */ andi $t6, $t5, 0xffff
/* 001C2C 8000102C 146E0002 */ bne $v1, $t6, .L80001038
/* 001C30 80001030 A44D0000 */ sh $t5, ($v0)
/* 001C34 80001034 A4400000 */ sh $zero, ($v0)
.L80001038:
/* 001C38 80001038 3C02800E */ lui $v0, %hi(gGlobalTimer) # $v0, 0x800e
/* 001C3C 8000103C 2442C54C */ addiu $v0, %lo(gGlobalTimer) # addiu $v0, $v0, -0x3ab4
/* 001C40 80001040 8C4F0000 */ lw $t7, ($v0)
/* 001C44 80001044 8FBF001C */ lw $ra, 0x1c($sp)
/* 001C48 80001048 8FB00018 */ lw $s0, 0x18($sp)
/* 001C4C 8000104C 25F80001 */ addiu $t8, $t7, 1
/* 001C50 80001050 AC580000 */ sw $t8, ($v0)
/* 001C54 80001054 03E00008 */ jr $ra
/* 001C58 80001058 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,7 +1,7 @@
glabel thread3_video
/* 002FE4 800023E4 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 002FE8 800023E8 3C038015 */ lui $v1, %hi(D_801502A8) # $v1, 0x8015
/* 002FEC 800023EC 246302A8 */ addiu $v1, %lo(D_801502A8) # addiu $v1, $v1, 0x2a8
/* 002FE8 800023E8 3C038015 */ lui $v1, %hi(gPhysicalFramebuffers) # $v1, 0x8015
/* 002FEC 800023EC 246302A8 */ addiu $v1, %lo(gPhysicalFramebuffers) # addiu $v1, $v1, 0x2a8
/* 002FF0 800023F0 3C0E8032 */ lui $t6, %hi(D_8031F780) # $t6, 0x8032
/* 002FF4 800023F4 3C0F8034 */ lui $t7, %hi(D_80344F80) # $t7, 0x8034
/* 002FF8 800023F8 3C188037 */ lui $t8, %hi(D_8036A780) # $t8, 0x8037

View File

@ -80,7 +80,7 @@ glabel thread5_game_logic
/* 0034A8 800028A8 00000000 */ nop
/* 0034AC 800028AC 0C00033A */ jal func_80000CE8
/* 0034B0 800028B0 00000000 */ nop
/* 0034B4 800028B4 0C0003CD */ jal func_80000F34
/* 0034B4 800028B4 0C0003CD */ jal display_and_vsync
/* 0034B8 800028B8 00000000 */ nop
/* 0034BC 800028BC 1000FFEB */ b .L8000286C
/* 0034C0 800028C0 00000000 */ nop

View File

@ -51,6 +51,7 @@
"textures/raw/ipl3_font_47.ia1.png": {"meta":{"dims":[13,14]}, "offsets":{"us":["0x000FA9","0x0"]}},
"textures/raw/ipl3_font_48.ia1.png": {"meta":{"dims":[13,14]}, "offsets":{"us":["0x000FC0","0x0"]}},
"textures/raw/ipl3_font_49.ia1.png": {"meta":{"dims":[13,14]}, "offsets":{"us":["0x000FD7","0x0"]}},
"textures/crash_screen/crash_screen_font.ia1.png": {"meta":{"dims":[8,136]}, "offsets":{"us":["0x0DD274","0x0"]}},
"bin/lib/PR/boot/F3D_boot.bin": {"meta":{"size": "0xD0"}, "offsets": {"us":["0x0D9B70", "0x0"]}},
"bin/lib/PR/f3d/F3DEX.bin": {"meta":{"size": "0x13E0"}, "offsets": {"us":["0x0D9C40", "0x0"]}},
"bin/lib/PR/f3d/F3DLX.bin": {"meta":{"size": "0x1410"}, "offsets": {"us":["0x0DB020", "0x0"]}},

File diff suppressed because it is too large Load Diff

1948
data/data_0DD0A0_1.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -64,7 +64,7 @@ SECTIONS
BUILD_DIR/src/main.o(.text);
BUILD_DIR/src/code_800029B0.o(.text);
BUILD_DIR/src/profiler.o(.text);
BUILD_DIR/asm/code_800040C0.o(.text);
BUILD_DIR/src/crash_screen.o(.text);
BUILD_DIR/asm/code_80004740.o(.text);
BUILD_DIR/asm/code_80004EF0.o(.text);
BUILD_DIR/asm/unused_overflow_check.o(.text);
@ -215,6 +215,8 @@ SECTIONS
BUILD_DIR/data/rsp.o(.text);
BUILD_DIR/data/data_0DD0A0.o(.data);
BUILD_DIR/src/crash_screen.o(.data);
BUILD_DIR/data/data_0DD0A0_1.o(.data);
BUILD_DIR/src/kart_attributes.inc.o(.data);
BUILD_DIR/data/data_0DD0A0_2.o(.rodata);
BUILD_DIR/src/os/osInitialize.o(.data);
@ -248,6 +250,7 @@ SECTIONS
BUILD_DIR/asm/bss_main.o(.bss);
BUILD_DIR/src/profiler.o(.bss);
BUILD_DIR/src/crash_screen.o(.bss);
BUILD_DIR/asm/bss_800040C0.o(.bss);
BUILD_DIR/asm/bss_80004740.o(.bss);
BUILD_DIR/asm/bss_80004EF0.o(.bss);

402
src/crash_screen.c Normal file
View File

@ -0,0 +1,402 @@
#include <ultra64.h>
#include <macros.h>
#include "types.h"
/*void *__osGetCurrFaultedThread(); // extern
? osCreateMesgQueue(? *, ? *, ?); // extern
? osCreateThread(? *, ?, void (*)(s32 arg0), ?, ? *, s32); // extern
? osRecvMesg(? *, ? *, ?); // extern
? osSetEventMesg(?, ? *, ?); // extern
? osStartThread(? *); // extern
? osViSwapBuffer(s32); // extern
? osWritebackDCacheAll(s32, s32, s16, s16); // extern
? read_controllers(); // extern
void crash_screen_draw_info(uint_ptr arg0, void *arg1); // static
void crash_screen_draw_square(uint_ptr arg0); // static
void create_debug_thread(); // static
void func_800040C0(s32 arg0, s32 arg1, s32 arg2, u32 arg3); // static
void func_800046AC(s32 arg0); // static
void *get_faulted_thread(); // static
void start_debug_thread(); // static
void thread9_crash_screen(s32 arg0); // static
extern void *D_800DC4BC;
extern s32 D_800DC670;
extern ? D_800DC6FC;
extern ? D_80162790;
extern ? D_80162D40;
extern ? D_80162D58;
extern uintptr_t pFramebuffer;
extern s32 D_80162D60;
extern void *D_80162D64;
*/
u32 D_800DC670 = 0;
u32 crashScreenFont[34] = {
#include "textures/crash_screen/crash_screen_font.ia1.inc.c"
};
u16 D_800DC6FC[10] = {
32, 2048, 512, 1024, 256, 16, 32, 16384, 32768, 65535
// 0x0020, 0x0800, 0x0200, 0x0400, 0x0100, 0x0010, 0x0020, 0x4000, 0x8000, 0xffff
};
/*
// similar to sm64's crash_screen_draw_glyph
void func_800040C0(uintptr_t framebuffer, s32 x, s32 y, u32 glyph) {
s32 temp_v0;
u32 *data;
u16 *ptr;
s32 temp_a0;
s32 phi_v1;
s32 phi_v0;
s32 phi_a0;
//phi_v0 = frameBuffer;
//temp_v0 = glyph * 7;
ptr = framebuffer; //+ y * 320 + x;
data = crashScreenFont[glyph * 8];
temp_v0 = 0;
while(temp_v0 != 8) {
phi_v1 = (s32)*data;
phi_a0 = 5;
for (temp_a0 = 0; temp_a0 >= 0; temp_a0++) {
if (phi_v1 & 1) {
framebuffer += ((((y +phi_v0) * 320) + x + phi_a0) * 2);
}
//ptr++;
phi_a0--;
*data += *data >> 1;
//phi_a0 = temp_a0;
}
//phi_v0++;
//phi_v0 = temp_v0;
data += 1;
}
}
*/
/*
void func_800040C0(s32 x, s32 y, s32 w, s32 h) {
u16 *ptr;
s32 i, j;
ptr = gCrashScreen.framebuffer + gCrashScreen.width * y + x;
for (i = 0; i < h; i++) {
for (j = 0; j < w; j++) {
// 0xe738 = 0b1110011100111000
*ptr = ((*ptr & 0xe738) >> 2) | 1;
ptr++;
}
ptr += gCrashScreen.width - w;
}
}
*/
GLOBAL_ASM("asm/non_matchings/crash_screen/func_800040C0.s")
GLOBAL_ASM("asm/non_matchings/crash_screen/crash_screen.s")
/*
void crash_screen_draw_square(uint_ptr arg0, s32 arg1) {
s32 temp_a0;
s32 temp_a1;
s32 temp_a1_2;
s32 temp_ra;
s32 temp_s0;
s32 temp_s1;
s32 temp_t0;
s32 temp_v1;
s32 phi_s2;
s32 phi_s0;
s16 *phi_v0;
s32 phi_v1;
void *phi_v0_2;
s32 phi_a1;
s32 phi_s1;
s32 phi_a0;
s32 phi_a1_2;
s32 phi_v1_2;
s32 phi_a0_2;
s32 phi_a0_3;
s32 phi_a1_3;
s32 phi_a1_4;
phi_s2 = 0x28;
phi_s0 = 0x2E;
phi_a0_2 = arg0;
phi_a1_3 = arg1;
do {
phi_s1 = phi_s2;
phi_a0 = phi_a0_2;
phi_a1_2 = phi_a1_3;
phi_a0_3 = phi_a0_2;
phi_a1_4 = phi_a1_3;
if (phi_s2 < phi_s0) {
do {
if (phi_s2 < phi_s0) {
temp_a0 = phi_s0 - phi_s2;
temp_t0 = temp_a0 & 3;
temp_ra = arg0 + (phi_s1 * 0x280);
phi_v1_2 = phi_s2;
if (temp_t0 != 0) {
phi_v0 = temp_ra + (phi_s2 * 2);
phi_v1 = phi_s2;
do {
temp_v1 = phi_v1 + 1;
if (temp_a0 == 6) {
*phi_v0 = 0xF801;
} else {
*phi_v0 = 0xFFFF;
}
phi_v0 += 2;
phi_v1 = temp_v1;
} while ((temp_t0 + phi_s2) != temp_v1);
phi_v1_2 = temp_v1;
phi_a0_3 = temp_a0;
phi_a1_4 = temp_v1 * 2;
if (temp_v1 != phi_s0) {
goto block_10;
}
} else {
block_10:
temp_a1 = phi_v1_2 * 2;
phi_v0_2 = temp_ra + temp_a1;
phi_a1 = temp_a1;
do {
temp_a1_2 = phi_a1 + 8;
if (temp_a0 == 6) {
phi_v0_2->unk0 = 0xF801;
} else {
phi_v0_2->unk0 = 0xFFFF;
}
if (temp_a0 == 6) {
phi_v0_2->unk2 = 0xF801;
} else {
phi_v0_2->unk2 = 0xFFFF;
}
if (temp_a0 == 6) {
phi_v0_2->unk4 = 0xF801;
} else {
phi_v0_2->unk4 = 0xFFFF;
}
if (temp_a0 == 6) {
phi_v0_2->unk6 = 0xF801;
} else {
phi_v0_2->unk6 = 0xFFFF;
}
phi_v0_2 += 8;
phi_a1 = temp_a1_2;
phi_a0_3 = temp_a0;
phi_a1_4 = temp_a1_2;
} while (temp_a1_2 != (phi_s0 * 2));
}
}
temp_s1 = phi_s1 + 1;
phi_s1 = temp_s1;
phi_a0 = phi_a0_3;
phi_a1_2 = phi_a1_4;
} while (temp_s1 != phi_s0);
}
temp_s0 = phi_s0 - 1;
phi_s2 += 1;
phi_s0 = temp_s0;
phi_a0_2 = phi_a0;
phi_a1_3 = phi_a1_2;
} while (temp_s0 != 0x2C);
osWritebackDCacheAll(phi_a0, phi_a1_2, 0xF801, 0xFFFF);
osViSwapBuffer(arg0);
}
void crash_screen_draw_info(uint_ptr arg0, void *arg1) {
s32 temp_a2;
s32 temp_s0;
s32 temp_s1;
s32 temp_s1_3;
s32 temp_s1_4;
s32 temp_t0;
s32 temp_v1;
u32 temp_s1_2;
u32 temp_t3;
u32 temp_t4;
void *temp_s2;
void *temp_v0;
void *phi_v0;
s32 phi_v1;
s32 phi_a2;
s32 phi_t0;
s32 phi_s1;
u32 phi_s4;
s32 phi_s1_2;
u32 phi_s4_2;
s32 phi_s1_3;
u32 phi_s4_3;
void *phi_a3;
phi_t0 = 0;
do {
phi_a2 = 0;
phi_a3 = arg0 + (((D_800DC670 * 0x18) + phi_t0 + 0x30) * 0x280);
loop_2:
phi_v0 = phi_a3;
phi_v1 = 0;
loop_3:
temp_v1 = phi_v1 + 4;
phi_v0->unkCA = 1;
phi_v0->unkCC = 1;
phi_v0->unkCE = 1;
temp_v0 = phi_v0 + 8;
temp_v0->unkC0 = 1;
phi_v0 = temp_v0;
phi_v1 = temp_v1;
if (temp_v1 != 0x78) {
goto loop_3;
}
temp_a2 = phi_a2 + 1;
phi_a2 = temp_a2;
phi_a3 += 0x280;
if (temp_a2 < 0x10) {
goto loop_2;
}
temp_t0 = phi_t0 + 0x14;
phi_t0 = temp_t0;
} while ((temp_t0 < 0x3C) != 0);
temp_s0 = (D_800DC670 * 0x18) + 0x35;
func_800040C0(arg0, 0x6C, temp_s0, arg1->unk14 & 0xF);
func_800040C0(arg0, 0x74, temp_s0, 0x10U);
temp_s2 = arg1 + 0x20;
phi_s1 = 0xB4;
phi_s4 = temp_s2->unkFC;
do {
func_800040C0(arg0, phi_s1, temp_s0, phi_s4 & 0xF);
temp_s1 = phi_s1 - 8;
phi_s1 = temp_s1;
phi_s4 = phi_s4 >> 4;
} while ((temp_s1 < 0x7C) == 0);
temp_s1_2 = ((u32) temp_s2->unk100 >> 2) & 0x1F;
func_800040C0(arg0, 0xBC, temp_s0, 0x10U);
func_800040C0(arg0, 0xC4, temp_s0, temp_s1_2 >> 4);
func_800040C0(arg0, 0xCC, temp_s0, temp_s1_2 & 0xF);
phi_s1_2 = 0xB4;
phi_s4_2 = temp_s2->unkE4;
do {
func_800040C0(arg0, phi_s1_2, 0x49, phi_s4_2 & 0xF);
temp_s1_3 = phi_s1_2 - 8;
temp_t3 = phi_s4_2 >> 4;
phi_s1_2 = temp_s1_3;
phi_s4_2 = temp_t3;
} while ((temp_s1_3 < 0x7C) == 0);
temp_t4 = temp_s2->unkFC & ~3;
phi_s1_3 = 0xB4;
phi_s4_3 = temp_t3;
if (temp_t4 >= 0x80000001U) {
phi_s1_3 = 0xB4;
phi_s4_3 = temp_t3;
if (temp_t4 < 0x803FFF7FU) {
phi_s1_3 = 0xB4;
phi_s4_3 = *temp_t4;
}
}
do {
func_800040C0(arg0, phi_s1_3, 0x5D, phi_s4_3 & 0xF);
temp_s1_4 = phi_s1_3 - 8;
phi_s1_3 = temp_s1_4;
phi_s4_3 = phi_s4_3 >> 4;
} while ((temp_s1_4 < 0x7C) == 0);
osWritebackDCacheAll();
osViSwapBuffer(arg0);
}
void *get_faulted_thread(void) {
s32 temp_v0_2;
void *temp_v0;
void *temp_v1;
s32 phi_v0;
void *phi_v1;
temp_v0 = __osGetCurrFaultedThread();
if (temp_v0->unk4 != -1) {
phi_v0 = temp_v0->unk4;
phi_v1 = temp_v0;
loop_2:
if ((phi_v0 > 0) && (phi_v0 < 0x80) && ((phi_v1->unk12 & 3) != 0)) {
return phi_v1;
}
temp_v1 = phi_v1->unkC;
temp_v0_2 = temp_v1->unk4;
phi_v0 = temp_v0_2;
phi_v1 = temp_v1;
if (temp_v0_2 == -1) {
goto block_7;
}
goto loop_2;
}
block_7:
return NULL;
}
void thread9_crash_screen(s32 arg0) {
? sp44;
s32 temp_v1;
u16 temp_v0_2;
void *temp_v0;
osSetEventMesg(0xC, &D_80162D40, 0x10);
osSetEventMesg(0xA, &D_80162D40, 0x10);
D_80162D60 = 0;
loop_1:
osRecvMesg(&D_80162D40, &sp44, 1);
temp_v0 = get_faulted_thread();
D_80162D64 = temp_v0;
if (temp_v0 == 0) {
goto loop_1;
}
if (D_800DC670 != 0) {
goto block_10;
}
crash_screen_draw_square(pFramebuffer);
loop_4:
read_controllers();
temp_v0_2 = D_800DC4BC->unk6;
if (temp_v0_2 == 0) {
goto loop_4;
}
temp_v1 = D_80162D60;
if (temp_v0_2 != *(&D_800DC6FC + (temp_v1 * 2))) {
goto block_7;
}
D_80162D60 = (s32) (temp_v1 + 1);
goto block_8;
block_7:
D_80162D60 = 0;
block_8:
if (*(&D_800DC6FC + (D_80162D60 * 2)) != 0xFFFF) {
goto loop_4;
}
crash_screen_draw_info(pFramebuffer, D_80162D64);
block_10:
if (D_800DC670 >= 5) {
goto loop_1;
}
D_800DC670 = (s32) (D_800DC670 + 1);
goto loop_1;
}
// crash_screen_set_framebuffer
void func_800046AC(uintptr_t framebuffer) {
pFramebuffer = framebuffer;
}
void create_debug_thread(void) {
osCreateMesgQueue(&D_80162D40, &D_80162D58, 1);
osCreateThread(&D_80162790, 9, thread9_crash_screen, 0, &D_80162D40, 0x7F);
}
void start_debug_thread(void) {
osStartThread(&D_80162790);
}
*/

View File

@ -41,10 +41,11 @@ extern struct SPTask *sCurrentAudioSPTask;
extern struct SPTask *sCurrentDisplaySPTask;
extern struct VblankHandler *gVblankHandler1;
extern struct VblankHandler *gVblankHandler2;
extern uintptr_t gPhysicalFramebuffers[3];
extern const f64 D_800EB640;
extern struct VblankHandler sSoundVblankHandler;
extern struct SPTask *gGfxSPTask;
extern OSMesgQueue D_8014EF58, D_8014EF88, D_8014EFD0, gIntrMesgQueue;
extern OSMesgQueue D_8014EF58, D_8014EF70, D_8014EF88, D_8014EFD0, gIntrMesgQueue;
extern OSMesgQueue sSoundMesgQueue;
extern OSMesg sSoundMesgBuf;
extern OSMesg D_8014F004, D_8014F058, D_8014F018;
@ -87,11 +88,15 @@ extern u32 D_802F9F80;
extern struct SPTask* sNextDisplaySPTask;
extern u16 gFrameBufferIndex;
extern u16 sRenderingFramebuffer;
extern struct GfxPool gGfxPools[2];
extern s32 gGlobalTimer;
// Framebuffer rendering values (max 3)
extern u16 sRenderedFramebuffer; // = 0;
extern u16 sRenderingFramebuffer; // = 0;
// Declarations (in this file)
void thread1_idle(void *arg0);
void thread3_video(void *arg0);
@ -349,7 +354,7 @@ void rendering_init(void) {
func_80000D3C(0);
func_80000CE8();
send_display_list(&gGfxPool->spTask);
gFrameBufferIndex++;
sRenderingFramebuffer++;
gGlobalTimer++;
}
@ -360,38 +365,24 @@ void config_gfx_pool(void) {
gGfxSPTask = &gGfxPool->spTask;
}
// likely display_and_vsync from SM64
#ifdef MIPS_TO_C
// generated by mips_to_c commit cae1414eb1bf34873a831a523692fe29870a6f3b
void *func_80000F34(void) {
u16 temp_t2;
u16 temp_t5;
void display_and_vsync(void) {
profiler_log_thread5_time(2);
osRecvMesg(&D_8014EF88, &D_8014F098, 1);
send_display_list(gGfxPool + 0x28B20);
send_display_list(&gGfxPool->spTask);
profiler_log_thread5_time(3);
osRecvMesg(&D_8014EF70, &D_8014F098, 1);
osViSwapBuffer(((D_800DC55C * 4) + 0x80150000)->unk2A8 | 0x80000000);
osViSwapBuffer((void *) PHYSICAL_TO_VIRTUAL(gPhysicalFramebuffers[sRenderedFramebuffer]));
profiler_log_thread5_time(4);
osRecvMesg(&D_8014EF70, &D_8014F098, 1);
func_800046AC(((D_800DC55C * 4) + 0x80150000)->unk2A8);
temp_t2 = D_800DC55C + 1;
D_800DC55C = temp_t2;
if (3 == (temp_t2 & 0xFFFF)) {
D_800DC55C = (u16)0U;
func_800046AC(gPhysicalFramebuffers[sRenderedFramebuffer]);
if (++sRenderedFramebuffer == 3) {
sRenderedFramebuffer = 0;
}
temp_t5 = gFrameBufferIndex + 1;
gFrameBufferIndex = temp_t5;
if (3 == (temp_t5 & 0xFFFF)) {
gFrameBufferIndex = (u16)0U;
if (++sRenderingFramebuffer == 3) {
sRenderingFramebuffer = 0;
}
gGlobalTimer = (s32) (gGlobalTimer + 1);
return &gGlobalTimer;
gGlobalTimer++;
}
#else
GLOBAL_ASM("asm/non_matchings/main/func_80000F34.s")
#endif
void func_8000105C(void) {
bzero(SEG_80280000, 0xDF00);
@ -1048,9 +1039,9 @@ void thread3_video(void *arg0) {
void *temp_v0;
void *phi_v0;
D_801502A8.unk0 = &D_8031F780;
D_801502A8.unk4 = &D_80344F80;
D_801502A8.unk8 = &D_8036A780;
gPhysicalFramebuffers.unk0 = &D_8031F780;
gPhysicalFramebuffers.unk4 = &D_80344F80;
gPhysicalFramebuffers.unk8 = &D_8036A780;
phi_v0 = &D_80344F80;
loop_1:
// potential unrolled loop?
@ -1158,7 +1149,7 @@ loop_3:
read_controllers();
func_80001ECC();
func_80000CE8();
func_80000F34();
display_and_vsync();
goto loop_3;
}
#else