mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Merge pull request #26 from DavidSM64/davids-branch
Decompiled 9 functions in unknown_043920
This commit is contained in:
@@ -14,10 +14,16 @@ Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU
|
||||
* `binutils-mips`
|
||||
* `libssl-dev`
|
||||
|
||||
#### Debian / Ubuntu
|
||||
### Debian / Ubuntu
|
||||
|
||||
`sudo apt install build-essential pkg-config git binutils-mips-linux-gnu python3 libssl-dev`
|
||||
|
||||
#### qemu-irix
|
||||
|
||||
Download qemu-irix `.deb` package here: https://github.com/n64decomp/qemu-irix/releases
|
||||
|
||||
Then install it by running `sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb`
|
||||
|
||||
## Setup
|
||||
1. Place the ROM file within the `baseroms` directory.
|
||||
**a.** Any DKR ROM should work as long as it is US 1.0.
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
glabel func_8004F77C
|
||||
/* 05037C 8004F77C 908E020A */ lbu $t6, 0x20a($a0)
|
||||
/* 050380 8004F780 2401FF7F */ li $at, -129
|
||||
/* 050384 8004F784 01C17824 */ and $t7, $t6, $at
|
||||
/* 050388 8004F788 A08F020A */ sb $t7, 0x20a($a0)
|
||||
/* 05038C 8004F78C 3C188012 */ lui $t8, %hi(D_8011D528) # $t8, 0x8012
|
||||
/* 050390 8004F790 8F18D528 */ lw $t8, %lo(D_8011D528)($t8)
|
||||
/* 050394 8004F794 35E90080 */ ori $t1, $t7, 0x80
|
||||
/* 050398 8004F798 33194000 */ andi $t9, $t8, 0x4000
|
||||
/* 05039C 8004F79C 13200002 */ beqz $t9, .L8004F7A8
|
||||
/* 0503A0 8004F7A0 00000000 */ nop
|
||||
/* 0503A4 8004F7A4 A089020A */ sb $t1, 0x20a($a0)
|
||||
.L8004F7A8:
|
||||
/* 0503A8 8004F7A8 9082020A */ lbu $v0, 0x20a($a0)
|
||||
/* 0503AC 8004F7AC 00000000 */ nop
|
||||
/* 0503B0 8004F7B0 304A00C0 */ andi $t2, $v0, 0xc0
|
||||
/* 0503B4 8004F7B4 11400007 */ beqz $t2, .L8004F7D4
|
||||
/* 0503B8 8004F7B8 3043000F */ andi $v1, $v0, 0xf
|
||||
/* 0503BC 8004F7BC 24630001 */ addiu $v1, $v1, 1
|
||||
/* 0503C0 8004F7C0 28610003 */ slti $at, $v1, 3
|
||||
/* 0503C4 8004F7C4 14200008 */ bnez $at, .L8004F7E8
|
||||
/* 0503C8 8004F7C8 304BFFF0 */ andi $t3, $v0, 0xfff0
|
||||
/* 0503CC 8004F7CC 10000005 */ b .L8004F7E4
|
||||
/* 0503D0 8004F7D0 24030002 */ li $v1, 2
|
||||
.L8004F7D4:
|
||||
/* 0503D4 8004F7D4 2463FFFF */ addiu $v1, $v1, -1
|
||||
/* 0503D8 8004F7D8 04610003 */ bgez $v1, .L8004F7E8
|
||||
/* 0503DC 8004F7DC 304BFFF0 */ andi $t3, $v0, 0xfff0
|
||||
/* 0503E0 8004F7E0 00001825 */ move $v1, $zero
|
||||
.L8004F7E4:
|
||||
/* 0503E4 8004F7E4 304BFFF0 */ andi $t3, $v0, 0xfff0
|
||||
.L8004F7E8:
|
||||
/* 0503E8 8004F7E8 01636025 */ or $t4, $t3, $v1
|
||||
/* 0503EC 8004F7EC 03E00008 */ jr $ra
|
||||
/* 0503F0 8004F7F0 A08C020A */ sb $t4, 0x20a($a0)
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
glabel func_8005234C
|
||||
/* 052F4C 8005234C 8482016C */ lh $v0, 0x16c($a0)
|
||||
/* 052F50 80052350 00000000 */ nop
|
||||
/* 052F54 80052354 000270C3 */ sra $t6, $v0, 3
|
||||
/* 052F58 80052358 004E7823 */ subu $t7, $v0, $t6
|
||||
/* 052F5C 8005235C A48F016C */ sh $t7, 0x16c($a0)
|
||||
/* 052F60 80052360 8482016C */ lh $v0, 0x16c($a0)
|
||||
/* 052F64 80052364 00000000 */ nop
|
||||
/* 052F68 80052368 2841FFF7 */ slti $at, $v0, -9
|
||||
/* 052F6C 8005236C 14200004 */ bnez $at, .L80052380
|
||||
/* 052F70 80052370 2841000A */ slti $at, $v0, 0xa
|
||||
/* 052F74 80052374 10200002 */ beqz $at, .L80052380
|
||||
/* 052F78 80052378 00000000 */ nop
|
||||
/* 052F7C 8005237C A480016C */ sh $zero, 0x16c($a0)
|
||||
.L80052380:
|
||||
/* 052F80 80052380 03E00008 */ jr $ra
|
||||
/* 052F84 80052384 00000000 */ nop
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
glabel func_800535C4
|
||||
/* 0541C4 800535C4 27BDFF90 */ addiu $sp, $sp, -0x70
|
||||
/* 0541C8 800535C8 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 0541CC 800535CC 00A08025 */ move $s0, $a1
|
||||
/* 0541D0 800535D0 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0541D4 800535D4 860E01A0 */ lh $t6, 0x1a0($s0)
|
||||
/* 0541D8 800535D8 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012
|
||||
/* 0541DC 800535DC 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0
|
||||
/* 0541E0 800535E0 000E7823 */ negu $t7, $t6
|
||||
/* 0541E4 800535E4 A4AF0000 */ sh $t7, ($a1)
|
||||
/* 0541E8 800535E8 84980002 */ lh $t8, 2($a0)
|
||||
/* 0541EC 800535EC 44800000 */ mtc1 $zero, $f0
|
||||
/* 0541F0 800535F0 0018C823 */ negu $t9, $t8
|
||||
/* 0541F4 800535F4 A4B90002 */ sh $t9, 2($a1)
|
||||
/* 0541F8 800535F8 860801A4 */ lh $t0, 0x1a4($s0)
|
||||
/* 0541FC 800535FC 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 054200 80053600 44812000 */ mtc1 $at, $f4
|
||||
/* 054204 80053604 00084823 */ negu $t1, $t0
|
||||
/* 054208 80053608 A4A90004 */ sh $t1, 4($a1)
|
||||
/* 05420C 8005360C 27A40030 */ addiu $a0, $sp, 0x30
|
||||
/* 054210 80053610 E4A0000C */ swc1 $f0, 0xc($a1)
|
||||
/* 054214 80053614 E4A00010 */ swc1 $f0, 0x10($a1)
|
||||
/* 054218 80053618 E4A00014 */ swc1 $f0, 0x14($a1)
|
||||
/* 05421C 8005361C 0C01BF9D */ jal func_8006FE74
|
||||
/* 054220 80053620 E4A40008 */ swc1 $f4, 8($a1)
|
||||
/* 054224 80053624 44800000 */ mtc1 $zero, $f0
|
||||
/* 054228 80053628 260A00A0 */ addiu $t2, $s0, 0xa0
|
||||
/* 05422C 8005362C 260B00A4 */ addiu $t3, $s0, 0xa4
|
||||
/* 054230 80053630 260C009C */ addiu $t4, $s0, 0x9c
|
||||
/* 054234 80053634 44050000 */ mfc1 $a1, $f0
|
||||
/* 054238 80053638 44070000 */ mfc1 $a3, $f0
|
||||
/* 05423C 8005363C AFAC0018 */ sw $t4, 0x18($sp)
|
||||
/* 054240 80053640 AFAB0014 */ sw $t3, 0x14($sp)
|
||||
/* 054244 80053644 AFAA0010 */ sw $t2, 0x10($sp)
|
||||
/* 054248 80053648 27A40030 */ addiu $a0, $sp, 0x30
|
||||
/* 05424C 8005364C 0C01BD93 */ jal func_8006F64C
|
||||
/* 054250 80053650 3C06BF80 */ lui $a2, 0xbf80
|
||||
/* 054254 80053654 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 054258 80053658 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 05425C 8005365C 03E00008 */ jr $ra
|
||||
/* 054260 80053660 27BD0070 */ addiu $sp, $sp, 0x70
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
glabel func_80053664
|
||||
/* 054264 80053664 C48400B4 */ lwc1 $f4, 0xb4($a0)
|
||||
/* 054268 80053668 44803800 */ mtc1 $zero, $f7
|
||||
/* 05426C 8005366C 44803000 */ mtc1 $zero, $f6
|
||||
/* 054270 80053670 46002021 */ cvt.d.s $f0, $f4
|
||||
/* 054274 80053674 4620303C */ c.lt.d $f6, $f0
|
||||
/* 054278 80053678 3C01800E */ lui $at, %hi(D_800E676C) # $at, 0x800e
|
||||
/* 05427C 8005367C 45000007 */ bc1f .L8005369C
|
||||
/* 054280 80053680 3C028012 */ lui $v0, %hi(D_8011D528) # $v0, 0x8012
|
||||
/* 054284 80053684 C4296768 */ lwc1 $f9, %lo(D_800E6768)($at)
|
||||
/* 054288 80053688 C428676C */ lwc1 $f8, %lo(D_800E676C)($at)
|
||||
/* 05428C 8005368C 00000000 */ nop
|
||||
/* 054290 80053690 46280281 */ sub.d $f10, $f0, $f8
|
||||
/* 054294 80053694 46205420 */ cvt.s.d $f16, $f10
|
||||
/* 054298 80053698 E49000B4 */ swc1 $f16, 0xb4($a0)
|
||||
.L8005369C:
|
||||
/* 05429C 8005369C 8C42D528 */ lw $v0, %lo(D_8011D528)($v0)
|
||||
/* 0542A0 800536A0 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 0542A4 800536A4 304E8000 */ andi $t6, $v0, 0x8000
|
||||
/* 0542A8 800536A8 11C00007 */ beqz $t6, .L800536C8
|
||||
/* 0542AC 800536AC 304F4000 */ andi $t7, $v0, 0x4000
|
||||
/* 0542B0 800536B0 44819000 */ mtc1 $at, $f18
|
||||
/* 0542B4 800536B4 3C028012 */ lui $v0, %hi(D_8011D528) # $v0, 0x8012
|
||||
/* 0542B8 800536B8 E49200B4 */ swc1 $f18, 0xb4($a0)
|
||||
/* 0542BC 800536BC 8C42D528 */ lw $v0, %lo(D_8011D528)($v0)
|
||||
/* 0542C0 800536C0 00000000 */ nop
|
||||
/* 0542C4 800536C4 304F4000 */ andi $t7, $v0, 0x4000
|
||||
.L800536C8:
|
||||
/* 0542C8 800536C8 11E00011 */ beqz $t7, .L80053710
|
||||
/* 0542CC 800536CC 3C01800E */ lui $at, 0x800e
|
||||
/* 0542D0 800536D0 C48400B8 */ lwc1 $f4, 0xb8($a0)
|
||||
/* 0542D4 800536D4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
|
||||
/* 0542D8 800536D8 44813800 */ mtc1 $at, $f7
|
||||
/* 0542DC 800536DC 44803000 */ mtc1 $zero, $f6
|
||||
/* 0542E0 800536E0 46002021 */ cvt.d.s $f0, $f4
|
||||
/* 0542E4 800536E4 4626003C */ c.lt.d $f0, $f6
|
||||
/* 0542E8 800536E8 3C01800E */ lui $at, %hi(D_800E6774) # $at, 0x800e
|
||||
/* 0542EC 800536EC 45000016 */ bc1f .L80053748
|
||||
/* 0542F0 800536F0 00000000 */ nop
|
||||
/* 0542F4 800536F4 C4296770 */ lwc1 $f9, %lo(D_800E6770)($at)
|
||||
/* 0542F8 800536F8 C4286774 */ lwc1 $f8, %lo(D_800E6774)($at)
|
||||
/* 0542FC 800536FC 00000000 */ nop
|
||||
/* 054300 80053700 46280280 */ add.d $f10, $f0, $f8
|
||||
/* 054304 80053704 46205420 */ cvt.s.d $f16, $f10
|
||||
/* 054308 80053708 03E00008 */ jr $ra
|
||||
/* 05430C 8005370C E49000B8 */ swc1 $f16, 0xb8($a0)
|
||||
|
||||
.L80053710:
|
||||
/* 054310 80053710 C49200B8 */ lwc1 $f18, 0xb8($a0)
|
||||
/* 054314 80053714 C4256778 */ lwc1 $f5, 0x6778($at)
|
||||
/* 054318 80053718 C424677C */ lwc1 $f4, 0x677c($at)
|
||||
/* 05431C 8005371C 46009021 */ cvt.d.s $f0, $f18
|
||||
/* 054320 80053720 4620203C */ c.lt.d $f4, $f0
|
||||
/* 054324 80053724 3C01800E */ lui $at, %hi(D_800E6784) # $at, 0x800e
|
||||
/* 054328 80053728 45000007 */ bc1f .L80053748
|
||||
/* 05432C 8005372C 00000000 */ nop
|
||||
/* 054330 80053730 C4276780 */ lwc1 $f7, %lo(D_800E6780)($at)
|
||||
/* 054334 80053734 C4266784 */ lwc1 $f6, %lo(D_800E6784)($at)
|
||||
/* 054338 80053738 00000000 */ nop
|
||||
/* 05433C 8005373C 46260201 */ sub.d $f8, $f0, $f6
|
||||
/* 054340 80053740 462042A0 */ cvt.s.d $f10, $f8
|
||||
/* 054344 80053744 E48A00B8 */ swc1 $f10, 0xb8($a0)
|
||||
.L80053748:
|
||||
/* 054348 80053748 03E00008 */ jr $ra
|
||||
/* 05434C 8005374C 00000000 */ nop
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
glabel func_80056930
|
||||
/* 057530 80056930 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 057534 80056934 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 057538 80056938 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 05753C 8005693C 0C0270C3 */ jal func_8009C30C
|
||||
/* 057540 80056940 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 057544 80056944 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 057548 80056948 304E0100 */ andi $t6, $v0, 0x100
|
||||
/* 05754C 8005694C 11C00006 */ beqz $t6, .L80056968
|
||||
/* 057550 80056950 24050162 */ li $a1, 354
|
||||
/* 057554 80056954 24060008 */ li $a2, 8
|
||||
/* 057558 80056958 0C015C2E */ jal func_800570B8
|
||||
/* 05755C 8005695C 24070082 */ li $a3, 130
|
||||
/* 057560 80056960 10000007 */ b .L80056980
|
||||
/* 057564 80056964 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80056968:
|
||||
/* 057568 80056968 8FAF001C */ lw $t7, 0x1c($sp)
|
||||
/* 05756C 8005696C 00000000 */ nop
|
||||
/* 057570 80056970 81E50003 */ lb $a1, 3($t7)
|
||||
/* 057574 80056974 0C015C12 */ jal func_80057048
|
||||
/* 057578 80056978 24A50156 */ addiu $a1, $a1, 0x156
|
||||
/* 05757C 8005697C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80056980:
|
||||
/* 057580 80056980 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 057584 80056984 03E00008 */ jr $ra
|
||||
/* 057588 80056988 00000000 */ nop
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
glabel func_80057048
|
||||
/* 057C48 80057048 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 057C4C 8005704C 3C0F8012 */ lui $t7, %hi(D_8011D55C) # $t7, 0x8012
|
||||
/* 057C50 80057050 8DEFD55C */ lw $t7, %lo(D_8011D55C)($t7)
|
||||
/* 057C54 80057054 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 057C58 80057058 AFA40020 */ sw $a0, 0x20($sp)
|
||||
/* 057C5C 8005705C AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* 057C60 80057060 8C820064 */ lw $v0, 0x64($a0)
|
||||
/* 057C64 80057064 2401FFFF */ li $at, -1
|
||||
/* 057C68 80057068 11E1000A */ beq $t7, $at, .L80057094
|
||||
/* 057C6C 8005706C 00807025 */ move $t6, $a0
|
||||
/* 057C70 80057070 8C580108 */ lw $t8, 0x108($v0)
|
||||
/* 057C74 80057074 97A40026 */ lhu $a0, 0x26($sp)
|
||||
/* 057C78 80057078 17000007 */ bnez $t8, .L80057098
|
||||
/* 057C7C 8005707C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 057C80 80057080 8DC5000C */ lw $a1, 0xc($t6)
|
||||
/* 057C84 80057084 8DC60010 */ lw $a2, 0x10($t6)
|
||||
/* 057C88 80057088 8DC70014 */ lw $a3, 0x14($t6)
|
||||
/* 057C8C 8005708C 0C0007AA */ jal func_80001EA8
|
||||
/* 057C90 80057090 AFA00010 */ sw $zero, 0x10($sp)
|
||||
.L80057094:
|
||||
/* 057C94 80057094 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
.L80057098:
|
||||
/* 057C98 80057098 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 057C9C 8005709C 03E00008 */ jr $ra
|
||||
/* 057CA0 800570A0 00000000 */ nop
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
glabel func_800570A4
|
||||
/* 057CA4 800570A4 8C820064 */ lw $v0, 0x64($a0)
|
||||
/* 057CA8 800570A8 00000000 */ nop
|
||||
/* 057CAC 800570AC A445020E */ sh $a1, 0x20e($v0)
|
||||
/* 057CB0 800570B0 03E00008 */ jr $ra
|
||||
/* 057CB4 800570B4 A0460210 */ sb $a2, 0x210($v0)
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
glabel func_800579B0
|
||||
/* 0585B0 800579B0 AFA50004 */ sw $a1, 4($sp)
|
||||
/* 0585B4 800579B4 3C0E8012 */ lui $t6, %hi(D_8011D534) # $t6, 0x8012
|
||||
/* 0585B8 800579B8 8DCED534 */ lw $t6, %lo(D_8011D534)($t6)
|
||||
/* 0585BC 800579BC 808301E1 */ lb $v1, 0x1e1($a0)
|
||||
/* 0585C0 800579C0 44866000 */ mtc1 $a2, $f12
|
||||
/* 0585C4 800579C4 01C31023 */ subu $v0, $t6, $v1
|
||||
/* 0585C8 800579C8 44822000 */ mtc1 $v0, $f4
|
||||
/* 0585CC 800579CC 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
|
||||
/* 0585D0 800579D0 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0585D4 800579D4 44818800 */ mtc1 $at, $f17
|
||||
/* 0585D8 800579D8 44808000 */ mtc1 $zero, $f16
|
||||
/* 0585DC 800579DC 460C3202 */ mul.s $f8, $f6, $f12
|
||||
/* 0585E0 800579E0 460042A1 */ cvt.d.s $f10, $f8
|
||||
/* 0585E4 800579E4 46305482 */ mul.d $f18, $f10, $f16
|
||||
/* 0585E8 800579E8 444FF800 */ cfc1 $t7, $31
|
||||
/* 0585EC 800579EC 00000000 */ nop
|
||||
/* 0585F0 800579F0 35E10003 */ ori $at, $t7, 3
|
||||
/* 0585F4 800579F4 38210002 */ xori $at, $at, 2
|
||||
/* 0585F8 800579F8 44C1F800 */ ctc1 $at, $31
|
||||
/* 0585FC 800579FC 00000000 */ nop
|
||||
/* 058600 80057A00 46209124 */ cvt.w.d $f4, $f18
|
||||
/* 058604 80057A04 44062000 */ mfc1 $a2, $f4
|
||||
/* 058608 80057A08 44CFF800 */ ctc1 $t7, $31
|
||||
/* 05860C 80057A0C 10400009 */ beqz $v0, .L80057A34
|
||||
/* 058610 80057A10 00C02825 */ move $a1, $a2
|
||||
/* 058614 80057A14 14C00008 */ bnez $a2, .L80057A38
|
||||
/* 058618 80057A18 0065C021 */ addu $t8, $v1, $a1
|
||||
/* 05861C 80057A1C 18400002 */ blez $v0, .L80057A28
|
||||
/* 058620 80057A20 00000000 */ nop
|
||||
/* 058624 80057A24 24050001 */ li $a1, 1
|
||||
.L80057A28:
|
||||
/* 058628 80057A28 04410003 */ bgez $v0, .L80057A38
|
||||
/* 05862C 80057A2C 0065C021 */ addu $t8, $v1, $a1
|
||||
/* 058630 80057A30 2405FFFF */ li $a1, -1
|
||||
.L80057A34:
|
||||
/* 058634 80057A34 0065C021 */ addu $t8, $v1, $a1
|
||||
.L80057A38:
|
||||
/* 058638 80057A38 03E00008 */ jr $ra
|
||||
/* 05863C 80057A3C A09801E1 */ sb $t8, 0x1e1($a0)
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
glabel func_8005C270
|
||||
/* 05CE70 8005C270 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 05CE74 8005C274 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 05CE78 8005C278 0C006E99 */ jal func_8001BA64
|
||||
/* 05CE7C 8005C27C AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 05CE80 8005C280 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 05CE84 8005C284 00000000 */ nop
|
||||
/* 05CE88 8005C288 808E0192 */ lb $t6, 0x192($a0)
|
||||
/* 05CE8C 8005C28C 00000000 */ nop
|
||||
/* 05CE90 8005C290 25CFFFFF */ addiu $t7, $t6, -1
|
||||
/* 05CE94 8005C294 A08F0192 */ sb $t7, 0x192($a0)
|
||||
/* 05CE98 8005C298 80830192 */ lb $v1, 0x192($a0)
|
||||
/* 05CE9C 8005C29C 00000000 */ nop
|
||||
/* 05CEA0 8005C2A0 04610007 */ bgez $v1, .L8005C2C0
|
||||
/* 05CEA4 8005C2A4 00000000 */ nop
|
||||
/* 05CEA8 8005C2A8 80850193 */ lb $a1, 0x193($a0)
|
||||
/* 05CEAC 8005C2AC 0062C021 */ addu $t8, $v1, $v0
|
||||
/* 05CEB0 8005C2B0 18A00003 */ blez $a1, .L8005C2C0
|
||||
/* 05CEB4 8005C2B4 A0980192 */ sb $t8, 0x192($a0)
|
||||
/* 05CEB8 8005C2B8 24B9FFFF */ addiu $t9, $a1, -1
|
||||
/* 05CEBC 8005C2BC A0990193 */ sb $t9, 0x193($a0)
|
||||
.L8005C2C0:
|
||||
/* 05CEC0 8005C2C0 84820190 */ lh $v0, 0x190($a0)
|
||||
/* 05CEC4 8005C2C4 00000000 */ nop
|
||||
/* 05CEC8 8005C2C8 28418301 */ slti $at, $v0, -0x7cff
|
||||
/* 05CECC 8005C2CC 14200002 */ bnez $at, .L8005C2D8
|
||||
/* 05CED0 8005C2D0 2448FFFF */ addiu $t0, $v0, -1
|
||||
/* 05CED4 8005C2D4 A4880190 */ sh $t0, 0x190($a0)
|
||||
.L8005C2D8:
|
||||
/* 05CED8 8005C2D8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 05CEDC 8005C2DC 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 05CEE0 8005C2E0 03E00008 */ jr $ra
|
||||
/* 05CEE4 8005C2E4 00000000 */ nop
|
||||
|
||||
/* 05CEE8 8005C2E8 00000000 */ nop
|
||||
/* 05CEEC 8005C2EC 00000000 */ nop
|
||||
|
||||
+244
-9
@@ -8,7 +8,13 @@ extern s32 D_800DCB50;
|
||||
extern s16 D_800DCB54;
|
||||
extern f32 D_800DCB9C;
|
||||
extern s32 D_800DCDD0;
|
||||
extern f64 D_800E6768;
|
||||
extern f64 D_800E6770;
|
||||
extern f64 D_800E6778;
|
||||
extern f64 D_800E6780;
|
||||
extern f32 D_800E6A00;
|
||||
extern s32 D_8011D528;
|
||||
extern s32 D_8011D55C;
|
||||
extern s8 D_8011D582;
|
||||
extern s8 D_8011D583;
|
||||
extern s8 D_8011D584;
|
||||
@@ -46,7 +52,36 @@ GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004D590.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004D95C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004DAB0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004DE38.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004F77C.s")
|
||||
|
||||
typedef struct unk8004F77C {
|
||||
u8 unk0[0x20A];
|
||||
u8 unk20A;
|
||||
} unk8004F77C;
|
||||
|
||||
void func_8004F77C(unk8004F77C *arg0) {
|
||||
s32 temp;
|
||||
|
||||
arg0->unk20A &= ~0x80;
|
||||
if ((D_8011D528 & 0x4000) != 0) {
|
||||
arg0->unk20A |= 0x80;
|
||||
}
|
||||
|
||||
temp = arg0->unk20A & 0xF;
|
||||
if ((arg0->unk20A & 0xC0) != 0) {
|
||||
temp++;
|
||||
if (temp >= 3) {
|
||||
temp = 2;
|
||||
}
|
||||
} else {
|
||||
temp--;
|
||||
if (temp < 0) {
|
||||
temp = 0;
|
||||
}
|
||||
}
|
||||
|
||||
arg0->unk20A = (arg0->unk20A & 0xFFF0) | temp;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8004F7F4.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80050754.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80050850.s")
|
||||
@@ -65,15 +100,115 @@ void func_800521B8(s32 arg0) {
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800521C4.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005234C.s")
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk8005234C {
|
||||
u8 unk0[0x16C];
|
||||
s16 unk16C;
|
||||
} unk8005234C;
|
||||
|
||||
void func_8005234C(unk8005234C *arg0) {
|
||||
arg0->unk16C -= arg0->unk16C >> 3;
|
||||
if (arg0->unk16C >= -9 && arg0->unk16C < 10) { // Deadzone?
|
||||
arg0->unk16C = 0;
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052388.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005250C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052988.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052B64.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052D7C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80053478.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800535C4.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80053664.s")
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk8011D510 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
u16 unk6;
|
||||
f32 unk8;
|
||||
f32 unkC;
|
||||
f32 unk10;
|
||||
f32 unk14;
|
||||
} unk8011D510;
|
||||
|
||||
extern unk8011D510 D_8011D510;
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk800535C4 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
} unk800535C4;
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk800535C4_2 {
|
||||
u8 unk0[0x9C];
|
||||
s32 unk9C;
|
||||
s32 unkA0;
|
||||
s32 unkA4;
|
||||
u8 unkA8[0xF8];
|
||||
s16 unk1A0;
|
||||
s16 unk1A2;
|
||||
s16 unk1A4;
|
||||
} unk800535C4_2;
|
||||
|
||||
/* Size: 0x40 Bytes */
|
||||
typedef struct unk800535C4_3 {
|
||||
u8 unk0[0x40];
|
||||
} unk800535C4_3;
|
||||
|
||||
void func_8006F64C(unk800535C4_3*, f32, f32, f32, s32*, s32*, s32*);
|
||||
|
||||
void func_800535C4(unk800535C4 *arg0, unk800535C4_2 *arg1) {
|
||||
unk800535C4_3 sp30;
|
||||
|
||||
D_8011D510.unk0 = -arg1->unk1A0;
|
||||
D_8011D510.unk2 = -arg0->unk2;
|
||||
D_8011D510.unk4 = -arg1->unk1A4;
|
||||
D_8011D510.unkC = 0;
|
||||
D_8011D510.unk10 = 0;
|
||||
D_8011D510.unk14 = 0;
|
||||
D_8011D510.unk8 = 1;
|
||||
func_8006FE74(&sp30, &D_8011D510);
|
||||
|
||||
func_8006F64C(&sp30, 0, -1, 0, &arg1->unkA0, &arg1->unkA4, &arg1->unk9C);
|
||||
}
|
||||
|
||||
typedef struct unk80053664 {
|
||||
u8 unk0[0xB4];
|
||||
f32 unkB4;
|
||||
f32 unkB8;
|
||||
} unk80053664;
|
||||
|
||||
void func_80053664(unk80053664 *arg0) {
|
||||
f64 temp_f0;
|
||||
f64 temp_f0_2;
|
||||
f64 temp_f0_3;
|
||||
|
||||
temp_f0 = (f64) arg0->unkB4;
|
||||
|
||||
if (0.0 < temp_f0) {
|
||||
arg0->unkB4 = (f32) (temp_f0 - D_800E6768);
|
||||
}
|
||||
|
||||
if ((D_8011D528 & 0x8000) != 0) {
|
||||
arg0->unkB4 = 1.0f;
|
||||
}
|
||||
|
||||
if ((D_8011D528 & 0x4000) != 0) {
|
||||
temp_f0_2 = (f64) arg0->unkB8;
|
||||
if (temp_f0_2 < 1.0) {
|
||||
arg0->unkB8 = (f32) (temp_f0_2 + D_800E6770);
|
||||
}
|
||||
} else {
|
||||
temp_f0_3 = (f64) arg0->unkB8;
|
||||
if (D_800E6778 < temp_f0_3) {
|
||||
arg0->unkB8 = (f32) (temp_f0_3 - D_800E6780);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80053750.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80053E9C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80054110.s")
|
||||
@@ -81,16 +216,92 @@ GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005492C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80054FD0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80055A84.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80055EC0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80056930.s")
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk800570A4 {
|
||||
u8 unk0[0x108];
|
||||
s32 unk108;
|
||||
u8 unk10C[0x102];
|
||||
s16 unk20E;
|
||||
s8 unk210;
|
||||
} unk800570A4;
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk800570A4_2 {
|
||||
u8 unk0[0xC];
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
s32 unk14;
|
||||
u8 unk18[0x4C];
|
||||
unk800570A4* unk64;
|
||||
} unk800570A4_2;
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk80056930 {
|
||||
u8 unk0[0x3];
|
||||
s8 unk3;
|
||||
} unk80056930;
|
||||
|
||||
void func_80057048(unk800570A4_2 *arg0, s32 arg1);
|
||||
|
||||
void func_80056930(unk800570A4_2 *arg0, unk80056930 *arg1) {
|
||||
if ((func_8009C30C() & 0x100) != 0) {
|
||||
func_800570B8(arg0, 0x162, 8, 0x82);
|
||||
} else {
|
||||
func_80057048(arg0, arg1->unk3 + 0x156);
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005698C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80056E2C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80057048.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800570A4.s")
|
||||
|
||||
|
||||
void func_80057048(unk800570A4_2 *arg0, s32 arg1) {
|
||||
unk800570A4 *temp = arg0->unk64;
|
||||
u16 temp2 = arg1;
|
||||
if (D_8011D55C != -1 && temp->unk108 == 0) {
|
||||
func_80001EA8(temp2, arg0->unkC, arg0->unk10, arg0->unk14, 0);
|
||||
}
|
||||
}
|
||||
|
||||
unk800570A4 *func_800570A4(unk800570A4_2 *arg0, s32 arg1, s32 arg2) {
|
||||
unk800570A4 *temp = arg0->unk64;
|
||||
temp->unk20E = arg1;
|
||||
temp->unk210 = arg2;
|
||||
return temp;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800570B8.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80057220.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800575EC.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800576E0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800579B0.s")
|
||||
|
||||
extern s32 D_8011D534;
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk800579B0 {
|
||||
u8 unk0[0x1E1];
|
||||
s8 unk1E1;
|
||||
} unk800579B0;
|
||||
|
||||
void func_800579B0(unk800579B0 *arg0, s32 arg1, f32 arg2) {
|
||||
s32 temp, temp2;
|
||||
|
||||
temp = D_8011D534 - arg0->unk1E1;
|
||||
temp2 = (s32)((f64)((f32)temp * arg2) * 0.125);
|
||||
|
||||
if (temp != 0 && temp2 == 0) {
|
||||
if (temp > 0) {
|
||||
temp2 = 1;
|
||||
}
|
||||
if (temp < 0) {
|
||||
temp2 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
arg0->unk1E1 = arg0->unk1E1 + temp2;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80057A40.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800580B4.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800581E8.s")
|
||||
@@ -202,4 +413,28 @@ void func_8005C25C(void) {
|
||||
D_800DCB9C = D_800E6A00;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005C270.s")
|
||||
/* Unknown Size */
|
||||
typedef struct unk8005C270 {
|
||||
u8 unk0[0x190];
|
||||
s16 unk190;
|
||||
s8 unk192;
|
||||
s8 unk193;
|
||||
} unk8005C270;
|
||||
|
||||
void func_8005C270(unk8005C270 *arg0) {
|
||||
s32 temp = func_8001BA64();
|
||||
|
||||
arg0->unk192--;
|
||||
if (arg0->unk192 < 0) {
|
||||
arg0->unk192 += temp;
|
||||
if(arg0->unk193 > 0){
|
||||
arg0->unk193--;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg0->unk190 >= -31999) {
|
||||
arg0->unk190--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1312,7 +1312,7 @@ D_800E6764 = 0x800E6764;
|
||||
D_800E6768 = 0x800E6768;
|
||||
D_800E676C = 0x800E676C;
|
||||
D_800E6770 = 0x800E6770;
|
||||
D_800E6774 = 0x800E6774;
|
||||
D_800E6778 = 0x800E6778;
|
||||
D_800E6780 = 0x800E6780;
|
||||
D_800E6784 = 0x800E6784;
|
||||
D_800E6788 = 0x800E6788;
|
||||
|
||||
Reference in New Issue
Block a user