Some shtuff

This commit is contained in:
Ethan Roseman 2020-10-15 18:11:56 -04:00
parent 5a2f8d8834
commit f45c24f7c8
22 changed files with 522 additions and 221 deletions

View File

@ -70,6 +70,9 @@ submodules:
split:
rm -rf $(DATA_DIRS) && ./tools/n64splat/split.py baserom.z64 tools/splat.yaml . --modes ld bin
split-all:
rm -rf $(DATA_DIRS) && ./tools/n64splat/split.py baserom.z64 tools/splat.yaml . --modes all
$(TARGET).ld: tools/splat.yaml
./tools/n64splat/split.py baserom.z64 tools/splat.yaml . --modes ld

View File

@ -1,15 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel GetActionSuccess
/* 197B74 80269294 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 197B78 80269298 AFBF0010 */ sw $ra, 0x10($sp)
/* 197B7C 8026929C 8C82000C */ lw $v0, 0xc($a0)
/* 197B80 802692A0 3C06800E */ lui $a2, 0x800e
/* 197B84 802692A4 80C6C0F1 */ lb $a2, -0x3f0f($a2)
/* 197B88 802692A8 0C0B2026 */ jal set_variable
/* 197B8C 802692AC 8C450000 */ lw $a1, ($v0)
/* 197B90 802692B0 8FBF0010 */ lw $ra, 0x10($sp)
/* 197B94 802692B4 24020002 */ addiu $v0, $zero, 2
/* 197B98 802692B8 03E00008 */ jr $ra
/* 197B9C 802692BC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,15 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel GetActionSuccessCopy
/* 197DD8 802694F8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 197DDC 802694FC AFBF0010 */ sw $ra, 0x10($sp)
/* 197DE0 80269500 8C82000C */ lw $v0, 0xc($a0)
/* 197DE4 80269504 3C06800E */ lui $a2, 0x800e
/* 197DE8 80269508 80C6C0F1 */ lb $a2, -0x3f0f($a2)
/* 197DEC 8026950C 0C0B2026 */ jal set_variable
/* 197DF0 80269510 8C450000 */ lw $a1, ($v0)
/* 197DF4 80269514 8FBF0010 */ lw $ra, 0x10($sp)
/* 197DF8 80269518 24020002 */ addiu $v0, $zero, 2
/* 197DFC 8026951C 03E00008 */ jr $ra
/* 197E00 80269520 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,15 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel GetBlockResult
/* 197E5C 8026957C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 197E60 80269580 AFBF0010 */ sw $ra, 0x10($sp)
/* 197E64 80269584 8C82000C */ lw $v0, 0xc($a0)
/* 197E68 80269588 3C06800E */ lui $a2, 0x800e
/* 197E6C 8026958C 80C6C0F7 */ lb $a2, -0x3f09($a2)
/* 197E70 80269590 0C0B2026 */ jal set_variable
/* 197E74 80269594 8C450000 */ lw $a1, ($v0)
/* 197E78 80269598 8FBF0010 */ lw $ra, 0x10($sp)
/* 197E7C 8026959C 24020002 */ addiu $v0, $zero, 2
/* 197E80 802695A0 03E00008 */ jr $ra
/* 197E84 802695A4 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,15 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SetActionSuccess
/* 197BA0 802692C0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 197BA4 802692C4 AFBF0010 */ sw $ra, 0x10($sp)
/* 197BA8 802692C8 8C82000C */ lw $v0, 0xc($a0)
/* 197BAC 802692CC 0C0B1EAF */ jal get_variable
/* 197BB0 802692D0 8C450000 */ lw $a1, ($v0)
/* 197BB4 802692D4 8FBF0010 */ lw $ra, 0x10($sp)
/* 197BB8 802692D8 3C01800E */ lui $at, 0x800e
/* 197BBC 802692DC A022C0F1 */ sb $v0, -0x3f0f($at)
/* 197BC0 802692E0 24020002 */ addiu $v0, $zero, 2
/* 197BC4 802692E4 03E00008 */ jr $ra
/* 197BC8 802692E8 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,12 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802693F0
/* 197CD0 802693F0 3C02800E */ lui $v0, %hi(gBattleStatus)
/* 197CD4 802693F4 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* 197CD8 802693F8 8C430000 */ lw $v1, ($v0)
/* 197CDC 802693FC 2404BFFF */ addiu $a0, $zero, -0x4001
/* 197CE0 80269400 00641824 */ and $v1, $v1, $a0
/* 197CE4 80269404 AC430000 */ sw $v1, ($v0)
/* 197CE8 80269408 03E00008 */ jr $ra
/* 197CEC 8026940C 24020002 */ addiu $v0, $zero, 2

View File

@ -1,23 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel GetDamageIntensity
/* 1AF120 80280840 3C03800E */ lui $v1, 0x800e
/* 1AF124 80280844 8463C1F0 */ lh $v1, -0x3e10($v1)
/* 1AF128 80280848 28620004 */ slti $v0, $v1, 4
/* 1AF12C 8028084C 10400003 */ beqz $v0, .L8028085C
/* 1AF130 80280850 28620007 */ slti $v0, $v1, 7
/* 1AF134 80280854 080A021E */ j .L80280878
/* 1AF138 80280858 AC800084 */ sw $zero, 0x84($a0)
.L8028085C:
/* 1AF13C 8028085C 14400005 */ bnez $v0, .L80280874
/* 1AF140 80280860 24020001 */ addiu $v0, $zero, 1
/* 1AF144 80280864 2862000A */ slti $v0, $v1, 0xa
/* 1AF148 80280868 50400002 */ beql $v0, $zero, .L80280874
/* 1AF14C 8028086C 24020003 */ addiu $v0, $zero, 3
/* 1AF150 80280870 24020002 */ addiu $v0, $zero, 2
.L80280874:
/* 1AF154 80280874 AC820084 */ sw $v0, 0x84($a0)
.L80280878:
/* 1AF158 80280878 03E00008 */ jr $ra
/* 1AF15C 8028087C 24020002 */ addiu $v0, $zero, 2

View File

@ -0,0 +1,67 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B704C
/* E218BC 802B704C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* E218C0 802B7050 AFB00010 */ sw $s0, 0x10($sp)
/* E218C4 802B7054 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* E218C8 802B7058 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* E218CC 802B705C AFBF0014 */ sw $ra, 0x14($sp)
/* E218D0 802B7060 0C011052 */ jal func_80044148
/* E218D4 802B7064 00000000 */ nop
/* E218D8 802B7068 14400031 */ bnez $v0, .L802B7130
/* E218DC 802B706C 0000102D */ daddu $v0, $zero, $zero
/* E218E0 802B7070 8E020000 */ lw $v0, ($s0)
/* E218E4 802B7074 30420020 */ andi $v0, $v0, 0x20
/* E218E8 802B7078 1440002D */ bnez $v0, .L802B7130
/* E218EC 802B707C 0000102D */ daddu $v0, $zero, $zero
/* E218F0 802B7080 8E020004 */ lw $v0, 4($s0)
/* E218F4 802B7084 30420080 */ andi $v0, $v0, 0x80
/* E218F8 802B7088 10400029 */ beqz $v0, .L802B7130
/* E218FC 802B708C 0000102D */ daddu $v0, $zero, $zero
/* E21900 802B7090 0C03814E */ jal func_800E0538
/* E21904 802B7094 00000000 */ nop
/* E21908 802B7098 14400025 */ bnez $v0, .L802B7130
/* E2190C 802B709C 0000102D */ daddu $v0, $zero, $zero
/* E21910 802B70A0 0C0381B6 */ jal func_800E06D8
/* E21914 802B70A4 00000000 */ nop
/* E21918 802B70A8 14400021 */ bnez $v0, .L802B7130
/* E2191C 802B70AC 0000102D */ daddu $v0, $zero, $zero
/* E21920 802B70B0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* E21924 802B70B4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* E21928 802B70B8 3C049249 */ lui $a0, 0x9249
/* E2192C 802B70BC 9443008C */ lhu $v1, 0x8c($v0)
/* E21930 802B70C0 34842493 */ ori $a0, $a0, 0x2493
/* E21934 802B70C4 00031C00 */ sll $v1, $v1, 0x10
/* E21938 802B70C8 00031403 */ sra $v0, $v1, 0x10
/* E2193C 802B70CC 00440018 */ mult $v0, $a0
/* E21940 802B70D0 00031FC3 */ sra $v1, $v1, 0x1f
/* E21944 802B70D4 00002810 */ mfhi $a1
/* E21948 802B70D8 00A22021 */ addu $a0, $a1, $v0
/* E2194C 802B70DC 00042083 */ sra $a0, $a0, 2
/* E21950 802B70E0 00832023 */ subu $a0, $a0, $v1
/* E21954 802B70E4 000418C0 */ sll $v1, $a0, 3
/* E21958 802B70E8 00641823 */ subu $v1, $v1, $a0
/* E2195C 802B70EC 00431023 */ subu $v0, $v0, $v1
/* E21960 802B70F0 00021400 */ sll $v0, $v0, 0x10
/* E21964 802B70F4 00021403 */ sra $v0, $v0, 0x10
/* E21968 802B70F8 2442FFFE */ addiu $v0, $v0, -2
/* E2196C 802B70FC 04420001 */ bltzl $v0, .L802B7104
/* E21970 802B7100 00021023 */ negu $v0, $v0
.L802B7104:
/* E21974 802B7104 00042400 */ sll $a0, $a0, 0x10
/* E21978 802B7108 00042403 */ sra $a0, $a0, 0x10
/* E2197C 802B710C 00441021 */ addu $v0, $v0, $a0
/* E21980 802B7110 28420006 */ slti $v0, $v0, 6
/* E21984 802B7114 10400006 */ beqz $v0, .L802B7130
/* E21988 802B7118 0000102D */ daddu $v0, $zero, $zero
/* E2198C 802B711C 0C0ADC00 */ jal func_802B7000_2
/* E21990 802B7120 00000000 */ nop
/* E21994 802B7124 14400002 */ bnez $v0, .L802B7130
/* E21998 802B7128 0000102D */ daddu $v0, $zero, $zero
/* E2199C 802B712C 24020001 */ addiu $v0, $zero, 1
.L802B7130:
/* E219A0 802B7130 8FBF0014 */ lw $ra, 0x14($sp)
/* E219A4 802B7134 8FB00010 */ lw $s0, 0x10($sp)
/* E219A8 802B7138 03E00008 */ jr $ra
/* E219AC 802B713C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -0,0 +1,41 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B7140
/* E219B0 802B7140 27BDFFE8 */ addiu $sp, $sp, -0x18
/* E219B4 802B7144 AFB00010 */ sw $s0, 0x10($sp)
/* E219B8 802B7148 3C10802B */ lui $s0, 0x802b
/* E219BC 802B714C 26107D18 */ addiu $s0, $s0, 0x7d18
/* E219C0 802B7150 AFBF0014 */ sw $ra, 0x14($sp)
/* E219C4 802B7154 8E040000 */ lw $a0, ($s0)
/* E219C8 802B7158 0C00A580 */ jal mem_clear
/* E219CC 802B715C 24050028 */ addiu $a1, $zero, 0x28
/* E219D0 802B7160 3C048011 */ lui $a0, %hi(gPlayerStatus)
/* E219D4 802B7164 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus)
/* E219D8 802B7168 8E030000 */ lw $v1, ($s0)
/* E219DC 802B716C C4800028 */ lwc1 $f0, 0x28($a0)
/* E219E0 802B7170 E4600000 */ swc1 $f0, ($v1)
/* E219E4 802B7174 848200B0 */ lh $v0, 0xb0($a0)
/* E219E8 802B7178 C480002C */ lwc1 $f0, 0x2c($a0)
/* E219EC 802B717C 44821000 */ mtc1 $v0, $f2
/* E219F0 802B7180 00000000 */ nop
/* E219F4 802B7184 468010A0 */ cvt.s.w $f2, $f2
/* E219F8 802B7188 46020000 */ add.s $f0, $f0, $f2
/* E219FC 802B718C 3C014100 */ lui $at, 0x4100
/* E21A00 802B7190 44811000 */ mtc1 $at, $f2
/* E21A04 802B7194 00000000 */ nop
/* E21A08 802B7198 46020000 */ add.s $f0, $f0, $f2
/* E21A0C 802B719C E4600004 */ swc1 $f0, 4($v1)
/* E21A10 802B71A0 C4800030 */ lwc1 $f0, 0x30($a0)
/* E21A14 802B71A4 E4600008 */ swc1 $f0, 8($v1)
/* E21A18 802B71A8 8C820004 */ lw $v0, 4($a0)
/* E21A1C 802B71AC 34420040 */ ori $v0, $v0, 0x40
/* E21A20 802B71B0 AC820004 */ sw $v0, 4($a0)
/* E21A24 802B71B4 8FBF0014 */ lw $ra, 0x14($sp)
/* E21A28 802B71B8 8FB00010 */ lw $s0, 0x10($sp)
/* E21A2C 802B71BC 3C03802B */ lui $v1, 0x802b
/* E21A30 802B71C0 246374F0 */ addiu $v1, $v1, 0x74f0
/* E21A34 802B71C4 3C018011 */ lui $at, 0x8011
/* E21A38 802B71C8 AC23C920 */ sw $v1, -0x36e0($at)
/* E21A3C 802B71CC 03E00008 */ jr $ra
/* E21A40 802B71D0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -0,0 +1,209 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B71D4
/* E21A44 802B71D4 3C028011 */ lui $v0, 0x8011
/* E21A48 802B71D8 8C42EFCC */ lw $v0, -0x1034($v0)
/* E21A4C 802B71DC 27BDFF38 */ addiu $sp, $sp, -0xc8
/* E21A50 802B71E0 AFBF00C0 */ sw $ra, 0xc0($sp)
/* E21A54 802B71E4 AFB300BC */ sw $s3, 0xbc($sp)
/* E21A58 802B71E8 AFB200B8 */ sw $s2, 0xb8($sp)
/* E21A5C 802B71EC AFB100B4 */ sw $s1, 0xb4($sp)
/* E21A60 802B71F0 30420040 */ andi $v0, $v0, 0x40
/* E21A64 802B71F4 104000B7 */ beqz $v0, .L802B74D4
/* E21A68 802B71F8 AFB000B0 */ sw $s0, 0xb0($sp)
/* E21A6C 802B71FC 3C13802B */ lui $s3, 0x802b
/* E21A70 802B7200 26737D18 */ addiu $s3, $s3, 0x7d18
/* E21A74 802B7204 8E620000 */ lw $v0, ($s3)
/* E21A78 802B7208 27A40018 */ addiu $a0, $sp, 0x18
/* E21A7C 802B720C 8C45000C */ lw $a1, 0xc($v0)
/* E21A80 802B7210 3C120001 */ lui $s2, 1
/* E21A84 802B7214 00A0302D */ daddu $a2, $a1, $zero
/* E21A88 802B7218 0C019DF0 */ jal guScaleF
/* E21A8C 802B721C 00A0382D */ daddu $a3, $a1, $zero
/* E21A90 802B7220 27B00058 */ addiu $s0, $sp, 0x58
/* E21A94 802B7224 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* E21A98 802B7228 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* E21A9C 802B722C 44800000 */ mtc1 $zero, $f0
/* E21AA0 802B7230 00031080 */ sll $v0, $v1, 2
/* E21AA4 802B7234 00431021 */ addu $v0, $v0, $v1
/* E21AA8 802B7238 00021080 */ sll $v0, $v0, 2
/* E21AAC 802B723C 00431023 */ subu $v0, $v0, $v1
/* E21AB0 802B7240 000218C0 */ sll $v1, $v0, 3
/* E21AB4 802B7244 00431021 */ addu $v0, $v0, $v1
/* E21AB8 802B7248 000210C0 */ sll $v0, $v0, 3
/* E21ABC 802B724C 44060000 */ mfc1 $a2, $f0
/* E21AC0 802B7250 3C01800B */ lui $at, 0x800b
/* E21AC4 802B7254 00220821 */ addu $at, $at, $v0
/* E21AC8 802B7258 C4201DEC */ lwc1 $f0, 0x1dec($at)
/* E21ACC 802B725C 3C073F80 */ lui $a3, 0x3f80
/* E21AD0 802B7260 46000007 */ neg.s $f0, $f0
/* E21AD4 802B7264 44050000 */ mfc1 $a1, $f0
/* E21AD8 802B7268 0200202D */ daddu $a0, $s0, $zero
/* E21ADC 802B726C 0C019EC8 */ jal guRotateF
/* E21AE0 802B7270 AFA60010 */ sw $a2, 0x10($sp)
/* E21AE4 802B7274 27A40018 */ addiu $a0, $sp, 0x18
/* E21AE8 802B7278 0200282D */ daddu $a1, $s0, $zero
/* E21AEC 802B727C 0C019D80 */ jal guMtxCatF
/* E21AF0 802B7280 0080302D */ daddu $a2, $a0, $zero
/* E21AF4 802B7284 8E620000 */ lw $v0, ($s3)
/* E21AF8 802B7288 36521630 */ ori $s2, $s2, 0x1630
/* E21AFC 802B728C 8C450000 */ lw $a1, ($v0)
/* E21B00 802B7290 8C460004 */ lw $a2, 4($v0)
/* E21B04 802B7294 8C470008 */ lw $a3, 8($v0)
/* E21B08 802B7298 0C019E40 */ jal guTranslateF
/* E21B0C 802B729C 0200202D */ daddu $a0, $s0, $zero
/* E21B10 802B72A0 27A40018 */ addiu $a0, $sp, 0x18
/* E21B14 802B72A4 0200282D */ daddu $a1, $s0, $zero
/* E21B18 802B72A8 0C019D80 */ jal guMtxCatF
/* E21B1C 802B72AC 0200302D */ daddu $a2, $s0, $zero
/* E21B20 802B72B0 0200202D */ daddu $a0, $s0, $zero
/* E21B24 802B72B4 3C108007 */ lui $s0, 0x8007
/* E21B28 802B72B8 261041F0 */ addiu $s0, $s0, 0x41f0
/* E21B2C 802B72BC 3C11800A */ lui $s1, 0x800a
/* E21B30 802B72C0 2631A674 */ addiu $s1, $s1, -0x598c
/* E21B34 802B72C4 96050000 */ lhu $a1, ($s0)
/* E21B38 802B72C8 8E220000 */ lw $v0, ($s1)
/* E21B3C 802B72CC 00052980 */ sll $a1, $a1, 6
/* E21B40 802B72D0 00B22821 */ addu $a1, $a1, $s2
/* E21B44 802B72D4 0C019D40 */ jal guMtxF2L
/* E21B48 802B72D8 00452821 */ addu $a1, $v0, $a1
/* E21B4C 802B72DC 3C02DA38 */ lui $v0, 0xda38
/* E21B50 802B72E0 34420002 */ ori $v0, $v0, 2
/* E21B54 802B72E4 3C07800A */ lui $a3, 0x800a
/* E21B58 802B72E8 24E7A66C */ addiu $a3, $a3, -0x5994
/* E21B5C 802B72EC 3C089249 */ lui $t0, 0x9249
/* E21B60 802B72F0 35082493 */ ori $t0, $t0, 0x2493
/* E21B64 802B72F4 8CE50000 */ lw $a1, ($a3)
/* E21B68 802B72F8 96060000 */ lhu $a2, ($s0)
/* E21B6C 802B72FC 00A0202D */ daddu $a0, $a1, $zero
/* E21B70 802B7300 24A50008 */ addiu $a1, $a1, 8
/* E21B74 802B7304 AC820000 */ sw $v0, ($a0)
/* E21B78 802B7308 30C2FFFF */ andi $v0, $a2, 0xffff
/* E21B7C 802B730C 00021180 */ sll $v0, $v0, 6
/* E21B80 802B7310 8E230000 */ lw $v1, ($s1)
/* E21B84 802B7314 00521021 */ addu $v0, $v0, $s2
/* E21B88 802B7318 00621821 */ addu $v1, $v1, $v0
/* E21B8C 802B731C AC830004 */ sw $v1, 4($a0)
/* E21B90 802B7320 3C038007 */ lui $v1, %hi(gGameStatusPtr)
/* E21B94 802B7324 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
/* E21B98 802B7328 3C02DE00 */ lui $v0, 0xde00
/* E21B9C 802B732C ACA20000 */ sw $v0, ($a1)
/* E21BA0 802B7330 3C02802B */ lui $v0, 0x802b
/* E21BA4 802B7334 24427CA0 */ addiu $v0, $v0, 0x7ca0
/* E21BA8 802B7338 ACA20004 */ sw $v0, 4($a1)
/* E21BAC 802B733C 9462008C */ lhu $v0, 0x8c($v1)
/* E21BB0 802B7340 24C60001 */ addiu $a2, $a2, 1
/* E21BB4 802B7344 ACE50000 */ sw $a1, ($a3)
/* E21BB8 802B7348 00021400 */ sll $v0, $v0, 0x10
/* E21BBC 802B734C 00022403 */ sra $a0, $v0, 0x10
/* E21BC0 802B7350 00880018 */ mult $a0, $t0
/* E21BC4 802B7354 24A50008 */ addiu $a1, $a1, 8
/* E21BC8 802B7358 A6060000 */ sh $a2, ($s0)
/* E21BCC 802B735C 000217C3 */ sra $v0, $v0, 0x1f
/* E21BD0 802B7360 00004810 */ mfhi $t1
/* E21BD4 802B7364 01241821 */ addu $v1, $t1, $a0
/* E21BD8 802B7368 00031883 */ sra $v1, $v1, 2
/* E21BDC 802B736C 00621823 */ subu $v1, $v1, $v0
/* E21BE0 802B7370 000310C0 */ sll $v0, $v1, 3
/* E21BE4 802B7374 00431023 */ subu $v0, $v0, $v1
/* E21BE8 802B7378 00822023 */ subu $a0, $a0, $v0
/* E21BEC 802B737C 00042400 */ sll $a0, $a0, 0x10
/* E21BF0 802B7380 00042403 */ sra $a0, $a0, 0x10
/* E21BF4 802B7384 2484FFFE */ addiu $a0, $a0, -2
/* E21BF8 802B7388 04820001 */ bltzl $a0, .L802B7390
/* E21BFC 802B738C 00042023 */ negu $a0, $a0
.L802B7390:
/* E21C00 802B7390 00031C00 */ sll $v1, $v1, 0x10
/* E21C04 802B7394 00031C03 */ sra $v1, $v1, 0x10
/* E21C08 802B7398 00832021 */ addu $a0, $a0, $v1
/* E21C0C 802B739C 2C820006 */ sltiu $v0, $a0, 6
/* E21C10 802B73A0 10400013 */ beqz $v0, .L802B73F0
/* E21C14 802B73A4 ACE50000 */ sw $a1, ($a3)
/* E21C18 802B73A8 00041080 */ sll $v0, $a0, 2
/* E21C1C 802B73AC 3C01802B */ lui $at, 0x802b
/* E21C20 802B73B0 00220821 */ addu $at, $at, $v0
/* E21C24 802B73B4 8C227D20 */ lw $v0, 0x7d20($at)
/* E21C28 802B73B8 00400008 */ jr $v0
/* E21C2C 802B73BC 00000000 */ nop
/* E21C30 802B73C0 080ADCFF */ j .L802B73FC
/* E21C34 802B73C4 24030004 */ addiu $v1, $zero, 4
/* E21C38 802B73C8 080ADCFF */ j .L802B73FC
/* E21C3C 802B73CC 24030008 */ addiu $v1, $zero, 8
/* E21C40 802B73D0 080ADCFF */ j .L802B73FC
/* E21C44 802B73D4 24030010 */ addiu $v1, $zero, 0x10
/* E21C48 802B73D8 080ADCFF */ j .L802B73FC
/* E21C4C 802B73DC 24030020 */ addiu $v1, $zero, 0x20
/* E21C50 802B73E0 080ADCFF */ j .L802B73FC
/* E21C54 802B73E4 24030040 */ addiu $v1, $zero, 0x40
/* E21C58 802B73E8 080ADCFF */ j .L802B73FC
/* E21C5C 802B73EC 24030080 */ addiu $v1, $zero, 0x80
.L802B73F0:
/* E21C60 802B73F0 8E620000 */ lw $v0, ($s3)
/* E21C64 802B73F4 2403FFFF */ addiu $v1, $zero, -1
/* E21C68 802B73F8 AC400020 */ sw $zero, 0x20($v0)
.L802B73FC:
/* E21C6C 802B73FC 3C11802B */ lui $s1, 0x802b
/* E21C70 802B7400 26317C60 */ addiu $s1, $s1, 0x7c60
/* E21C74 802B7404 04600017 */ bltz $v1, .L802B7464
/* E21C78 802B7408 AFB1009C */ sw $s1, 0x9c($sp)
/* E21C7C 802B740C 3C10802B */ lui $s0, 0x802b
/* E21C80 802B7410 26107D18 */ addiu $s0, $s0, 0x7d18
/* E21C84 802B7414 8E040000 */ lw $a0, ($s0)
/* E21C88 802B7418 8C820020 */ lw $v0, 0x20($a0)
/* E21C8C 802B741C 24630002 */ addiu $v1, $v1, 2
/* E21C90 802B7420 24420001 */ addiu $v0, $v0, 1
/* E21C94 802B7424 AC820020 */ sw $v0, 0x20($a0)
/* E21C98 802B7428 0043102A */ slt $v0, $v0, $v1
/* E21C9C 802B742C 14400005 */ bnez $v0, .L802B7444
/* E21CA0 802B7430 00000000 */ nop
/* E21CA4 802B7434 AC800020 */ sw $zero, 0x20($a0)
/* E21CA8 802B7438 2404007D */ addiu $a0, $zero, 0x7d
/* E21CAC 802B743C 0C052736 */ jal play_sound_at_player
/* E21CB0 802B7440 0000282D */ daddu $a1, $zero, $zero
.L802B7444:
/* E21CB4 802B7444 8E020000 */ lw $v0, ($s0)
/* E21CB8 802B7448 8C420020 */ lw $v0, 0x20($v0)
/* E21CBC 802B744C 28420002 */ slti $v0, $v0, 2
/* E21CC0 802B7450 50400004 */ beql $v0, $zero, .L802B7464
/* E21CC4 802B7454 AFB1009C */ sw $s1, 0x9c($sp)
/* E21CC8 802B7458 3C02802B */ lui $v0, 0x802b
/* E21CCC 802B745C 24427C80 */ addiu $v0, $v0, 0x7c80
/* E21CD0 802B7460 AFA2009C */ sw $v0, 0x9c($sp)
.L802B7464:
/* E21CD4 802B7464 0000202D */ daddu $a0, $zero, $zero
/* E21CD8 802B7468 27A50098 */ addiu $a1, $sp, 0x98
/* E21CDC 802B746C 0080302D */ daddu $a2, $a0, $zero
/* E21CE0 802B7470 27A70058 */ addiu $a3, $sp, 0x58
/* E21CE4 802B7474 3C02802B */ lui $v0, 0x802b
/* E21CE8 802B7478 24427640 */ addiu $v0, $v0, 0x7640
/* E21CEC 802B747C AFA20098 */ sw $v0, 0x98($sp)
/* E21CF0 802B7480 24020038 */ addiu $v0, $zero, 0x38
/* E21CF4 802B7484 A7A200A0 */ sh $v0, 0xa0($sp)
/* E21CF8 802B7488 A7A200A2 */ sh $v0, 0xa2($sp)
/* E21CFC 802B748C 2402FFE4 */ addiu $v0, $zero, -0x1c
/* E21D00 802B7490 A7A200A4 */ sh $v0, 0xa4($sp)
/* E21D04 802B7494 2402002E */ addiu $v0, $zero, 0x2e
/* E21D08 802B7498 A7A200A6 */ sh $v0, 0xa6($sp)
/* E21D0C 802B749C 240200FF */ addiu $v0, $zero, 0xff
/* E21D10 802B74A0 0C04EBDC */ jal func_8013AF70
/* E21D14 802B74A4 A3A200A8 */ sb $v0, 0xa8($sp)
/* E21D18 802B74A8 3C05D838 */ lui $a1, 0xd838
/* E21D1C 802B74AC 3C03800A */ lui $v1, 0x800a
/* E21D20 802B74B0 2463A66C */ addiu $v1, $v1, -0x5994
/* E21D24 802B74B4 8C620000 */ lw $v0, ($v1)
/* E21D28 802B74B8 34A50002 */ ori $a1, $a1, 2
/* E21D2C 802B74BC 0040202D */ daddu $a0, $v0, $zero
/* E21D30 802B74C0 24420008 */ addiu $v0, $v0, 8
/* E21D34 802B74C4 AC620000 */ sw $v0, ($v1)
/* E21D38 802B74C8 24020040 */ addiu $v0, $zero, 0x40
/* E21D3C 802B74CC AC850000 */ sw $a1, ($a0)
/* E21D40 802B74D0 AC820004 */ sw $v0, 4($a0)
.L802B74D4:
/* E21D44 802B74D4 8FBF00C0 */ lw $ra, 0xc0($sp)
/* E21D48 802B74D8 8FB300BC */ lw $s3, 0xbc($sp)
/* E21D4C 802B74DC 8FB200B8 */ lw $s2, 0xb8($sp)
/* E21D50 802B74E0 8FB100B4 */ lw $s1, 0xb4($sp)
/* E21D54 802B74E4 8FB000B0 */ lw $s0, 0xb0($sp)
/* E21D58 802B74E8 03E00008 */ jr $ra
/* E21D5C 802B74EC 27BD00C8 */ addiu $sp, $sp, 0xc8

View File

@ -0,0 +1,95 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B74F0
/* E21D60 802B74F0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* E21D64 802B74F4 AFB00010 */ sw $s0, 0x10($sp)
/* E21D68 802B74F8 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* E21D6C 802B74FC 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* E21D70 802B7500 AFB10014 */ sw $s1, 0x14($sp)
/* E21D74 802B7504 3C11802B */ lui $s1, 0x802b
/* E21D78 802B7508 26317D18 */ addiu $s1, $s1, 0x7d18
/* E21D7C 802B750C AFBF0018 */ sw $ra, 0x18($sp)
/* E21D80 802B7510 860200B0 */ lh $v0, 0xb0($s0)
/* E21D84 802B7514 C600002C */ lwc1 $f0, 0x2c($s0)
/* E21D88 802B7518 44821000 */ mtc1 $v0, $f2
/* E21D8C 802B751C 00000000 */ nop
/* E21D90 802B7520 468010A0 */ cvt.s.w $f2, $f2
/* E21D94 802B7524 46020000 */ add.s $f0, $f0, $f2
/* E21D98 802B7528 3C014120 */ lui $at, 0x4120
/* E21D9C 802B752C 44811000 */ mtc1 $at, $f2
/* E21DA0 802B7530 8E220000 */ lw $v0, ($s1)
/* E21DA4 802B7534 46020000 */ add.s $f0, $f0, $f2
/* E21DA8 802B7538 C4420004 */ lwc1 $f2, 4($v0)
/* E21DAC 802B753C 46020001 */ sub.s $f0, $f0, $f2
/* E21DB0 802B7540 3C013FC0 */ lui $at, 0x3fc0
/* E21DB4 802B7544 44812000 */ mtc1 $at, $f4
/* E21DB8 802B7548 00000000 */ nop
/* E21DBC 802B754C 46040003 */ div.s $f0, $f0, $f4
/* E21DC0 802B7550 46001080 */ add.s $f2, $f2, $f0
/* E21DC4 802B7554 E4420004 */ swc1 $f2, 4($v0)
/* E21DC8 802B7558 C6000028 */ lwc1 $f0, 0x28($s0)
/* E21DCC 802B755C E4400000 */ swc1 $f0, ($v0)
/* E21DD0 802B7560 C6000030 */ lwc1 $f0, 0x30($s0)
/* E21DD4 802B7564 0C0ADC13 */ jal func_802B704C
/* E21DD8 802B7568 E4400008 */ swc1 $f0, 8($v0)
/* E21DDC 802B756C 14400008 */ bnez $v0, .L802B7590
/* E21DE0 802B7570 24020001 */ addiu $v0, $zero, 1
/* E21DE4 802B7574 8E020004 */ lw $v0, 4($s0)
/* E21DE8 802B7578 2403FFBF */ addiu $v1, $zero, -0x41
/* E21DEC 802B757C 3C018011 */ lui $at, 0x8011
/* E21DF0 802B7580 AC20C920 */ sw $zero, -0x36e0($at)
/* E21DF4 802B7584 00431024 */ and $v0, $v0, $v1
/* E21DF8 802B7588 080ADD8B */ j .L802B762C
/* E21DFC 802B758C AE020004 */ sw $v0, 4($s0)
.L802B7590:
/* E21E00 802B7590 8E240000 */ lw $a0, ($s1)
/* E21E04 802B7594 8C830024 */ lw $v1, 0x24($a0)
/* E21E08 802B7598 10620017 */ beq $v1, $v0, .L802B75F8
/* E21E0C 802B759C 28620002 */ slti $v0, $v1, 2
/* E21E10 802B75A0 50400005 */ beql $v0, $zero, .L802B75B8
/* E21E14 802B75A4 24020002 */ addiu $v0, $zero, 2
/* E21E18 802B75A8 10600007 */ beqz $v1, .L802B75C8
/* E21E1C 802B75AC 00000000 */ nop
/* E21E20 802B75B0 080ADD8B */ j .L802B762C
/* E21E24 802B75B4 00000000 */ nop
.L802B75B8:
/* E21E28 802B75B8 10620015 */ beq $v1, $v0, .L802B7610
/* E21E2C 802B75BC 00000000 */ nop
/* E21E30 802B75C0 080ADD8B */ j .L802B762C
/* E21E34 802B75C4 00000000 */ nop
.L802B75C8:
/* E21E38 802B75C8 8C820018 */ lw $v0, 0x18($a0)
/* E21E3C 802B75CC 0040182D */ daddu $v1, $v0, $zero
/* E21E40 802B75D0 24420001 */ addiu $v0, $v0, 1
/* E21E44 802B75D4 28630006 */ slti $v1, $v1, 6
/* E21E48 802B75D8 14600014 */ bnez $v1, .L802B762C
/* E21E4C 802B75DC AC820018 */ sw $v0, 0x18($a0)
/* E21E50 802B75E0 8C820024 */ lw $v0, 0x24($a0)
/* E21E54 802B75E4 3C013EB8 */ lui $at, 0x3eb8
/* E21E58 802B75E8 342151EC */ ori $at, $at, 0x51ec
/* E21E5C 802B75EC 44810000 */ mtc1 $at, $f0
/* E21E60 802B75F0 080ADD89 */ j .L802B7624
/* E21E64 802B75F4 24420001 */ addiu $v0, $v0, 1
.L802B75F8:
/* E21E68 802B75F8 8C820024 */ lw $v0, 0x24($a0)
/* E21E6C 802B75FC 3C013F11 */ lui $at, 0x3f11
/* E21E70 802B7600 3421EB85 */ ori $at, $at, 0xeb85
/* E21E74 802B7604 44810000 */ mtc1 $at, $f0
/* E21E78 802B7608 080ADD89 */ j .L802B7624
/* E21E7C 802B760C 24420001 */ addiu $v0, $v0, 1
.L802B7610:
/* E21E80 802B7610 8C820024 */ lw $v0, 0x24($a0)
/* E21E84 802B7614 3C013F07 */ lui $at, 0x3f07
/* E21E88 802B7618 3421AE14 */ ori $at, $at, 0xae14
/* E21E8C 802B761C 44810000 */ mtc1 $at, $f0
/* E21E90 802B7620 24420001 */ addiu $v0, $v0, 1
.L802B7624:
/* E21E94 802B7624 E480000C */ swc1 $f0, 0xc($a0)
/* E21E98 802B7628 AC820024 */ sw $v0, 0x24($a0)
.L802B762C:
/* E21E9C 802B762C 8FBF0018 */ lw $ra, 0x18($sp)
/* E21EA0 802B7630 8FB10014 */ lw $s1, 0x14($sp)
/* E21EA4 802B7634 8FB00010 */ lw $s0, 0x10($sp)
/* E21EA8 802B7638 03E00008 */ jr $ra
/* E21EAC 802B763C 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,109 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8005FB10
/* 3AF10 8005FB10 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 3AF14 8005FB14 AFB10014 */ sw $s1, 0x14($sp)
/* 3AF18 8005FB18 0000882D */ daddu $s1, $zero, $zero
/* 3AF1C 8005FB1C AFB40020 */ sw $s4, 0x20($sp)
/* 3AF20 8005FB20 24140002 */ addiu $s4, $zero, 2
/* 3AF24 8005FB24 AFB50024 */ sw $s5, 0x24($sp)
/* 3AF28 8005FB28 24150001 */ addiu $s5, $zero, 1
/* 3AF2C 8005FB2C AFB3001C */ sw $s3, 0x1c($sp)
/* 3AF30 8005FB30 0220982D */ daddu $s3, $s1, $zero
/* 3AF34 8005FB34 AFB20018 */ sw $s2, 0x18($sp)
/* 3AF38 8005FB38 0220902D */ daddu $s2, $s1, $zero
/* 3AF3C 8005FB3C AFBF0028 */ sw $ra, 0x28($sp)
/* 3AF40 8005FB40 AFB00010 */ sw $s0, 0x10($sp)
.L8005FB44:
/* 3AF44 8005FB44 3C02800B */ lui $v0, %hi(nuContRmbCtl)
/* 3AF48 8005FB48 24421D40 */ addiu $v0, $v0, %lo(nuContRmbCtl)
/* 3AF4C 8005FB4C 02428021 */ addu $s0, $s2, $v0
/* 3AF50 8005FB50 92030007 */ lbu $v1, 7($s0)
/* 3AF54 8005FB54 10740015 */ beq $v1, $s4, .L8005FBAC
/* 3AF58 8005FB58 28620003 */ slti $v0, $v1, 3
/* 3AF5C 8005FB5C 50400007 */ beql $v0, $zero, .L8005FB7C
/* 3AF60 8005FB60 28620083 */ slti $v0, $v1, 0x83
/* 3AF64 8005FB64 5060003B */ beql $v1, $zero, .L8005FC54
/* 3AF68 8005FB68 26730068 */ addiu $s3, $s3, 0x68
/* 3AF6C 8005FB6C 10750009 */ beq $v1, $s5, .L8005FB94
/* 3AF70 8005FB70 0200202D */ daddu $a0, $s0, $zero
/* 3AF74 8005FB74 08017F15 */ j .L8005FC54
/* 3AF78 8005FB78 26730068 */ addiu $s3, $s3, 0x68
.L8005FB7C:
/* 3AF7C 8005FB7C 10400034 */ beqz $v0, .L8005FC50
/* 3AF80 8005FB80 28620081 */ slti $v0, $v1, 0x81
/* 3AF84 8005FB84 54400033 */ bnel $v0, $zero, .L8005FC54
/* 3AF88 8005FB88 26730068 */ addiu $s3, $s3, 0x68
/* 3AF8C 8005FB8C 08017F0E */ j .L8005FC38
/* 3AF90 8005FB90 00000000 */ nop
.L8005FB94:
/* 3AF94 8005FB94 0C017E48 */ jal contRmbControl
/* 3AF98 8005FB98 0220282D */ daddu $a1, $s1, $zero
/* 3AF9C 8005FB9C 5440002C */ bnel $v0, $zero, .L8005FC50
/* 3AFA0 8005FBA0 A2000007 */ sb $zero, 7($s0)
/* 3AFA4 8005FBA4 08017F15 */ j .L8005FC54
/* 3AFA8 8005FBA8 26730068 */ addiu $s3, $s3, 0x68
.L8005FBAC:
/* 3AFAC 8005FBAC 92020008 */ lbu $v0, 8($s0)
/* 3AFB0 8005FBB0 14400019 */ bnez $v0, .L8005FC18
/* 3AFB4 8005FBB4 0200202D */ daddu $a0, $s0, $zero
/* 3AFB8 8005FBB8 96030004 */ lhu $v1, 4($s0)
/* 3AFBC 8005FBBC 3C028009 */ lui $v0, %hi(nuContRmbSearchTime)
/* 3AFC0 8005FBC0 8C423CE0 */ lw $v0, %lo(nuContRmbSearchTime)($v0)
/* 3AFC4 8005FBC4 14400002 */ bnez $v0, .L8005FBD0
/* 3AFC8 8005FBC8 0062001B */ divu $zero, $v1, $v0
/* 3AFCC 8005FBCC 0007000D */ break 7
.L8005FBD0:
/* 3AFD0 8005FBD0 00001010 */ mfhi $v0
/* 3AFD4 8005FBD4 1440000C */ bnez $v0, .L8005FC08
/* 3AFD8 8005FBD8 00000000 */ nop
/* 3AFDC 8005FBDC 3C04800E */ lui $a0, %hi(nuSiMesgQ)
/* 3AFE0 8005FBE0 2484AC78 */ addiu $a0, $a0, %lo(nuSiMesgQ)
/* 3AFE4 8005FBE4 3C05800E */ lui $a1, %hi(nuContPfs)
/* 3AFE8 8005FBE8 24A5AAD8 */ addiu $a1, $a1, %lo(nuContPfs)
/* 3AFEC 8005FBEC 02652821 */ addu $a1, $s3, $a1
/* 3AFF0 8005FBF0 0C019FD1 */ jal osMotorInit
/* 3AFF4 8005FBF4 0220302D */ daddu $a2, $s1, $zero
/* 3AFF8 8005FBF8 14400003 */ bnez $v0, .L8005FC08
/* 3AFFC 8005FBFC 00000000 */ nop
/* 3B000 8005FC00 A2150008 */ sb $s5, 8($s0)
/* 3B004 8005FC04 A2140009 */ sb $s4, 9($s0)
.L8005FC08:
/* 3B008 8005FC08 96020004 */ lhu $v0, 4($s0)
/* 3B00C 8005FC0C 24420001 */ addiu $v0, $v0, 1
/* 3B010 8005FC10 08017F14 */ j .L8005FC50
/* 3B014 8005FC14 A6020004 */ sh $v0, 4($s0)
.L8005FC18:
/* 3B018 8005FC18 0C017E48 */ jal contRmbControl
/* 3B01C 8005FC1C 0220282D */ daddu $a1, $s1, $zero
/* 3B020 8005FC20 5040000C */ beql $v0, $zero, .L8005FC54
/* 3B024 8005FC24 26730068 */ addiu $s3, $s3, 0x68
/* 3B028 8005FC28 A6110004 */ sh $s1, 4($s0)
/* 3B02C 8005FC2C A2000008 */ sb $zero, 8($s0)
/* 3B030 8005FC30 08017F14 */ j .L8005FC50
/* 3B034 8005FC34 A2000009 */ sb $zero, 9($s0)
.L8005FC38:
/* 3B038 8005FC38 92020009 */ lbu $v0, 9($s0)
/* 3B03C 8005FC3C 54540005 */ bnel $v0, $s4, .L8005FC54
/* 3B040 8005FC40 26730068 */ addiu $s3, $s3, 0x68
/* 3B044 8005FC44 0200202D */ daddu $a0, $s0, $zero
/* 3B048 8005FC48 0C017E48 */ jal contRmbControl
/* 3B04C 8005FC4C 0220282D */ daddu $a1, $s1, $zero
.L8005FC50:
/* 3B050 8005FC50 26730068 */ addiu $s3, $s3, 0x68
.L8005FC54:
/* 3B054 8005FC54 26310001 */ addiu $s1, $s1, 1
/* 3B058 8005FC58 2E220004 */ sltiu $v0, $s1, 4
/* 3B05C 8005FC5C 1440FFB9 */ bnez $v0, .L8005FB44
/* 3B060 8005FC60 2652000A */ addiu $s2, $s2, 0xa
/* 3B064 8005FC64 8FBF0028 */ lw $ra, 0x28($sp)
/* 3B068 8005FC68 8FB50024 */ lw $s5, 0x24($sp)
/* 3B06C 8005FC6C 8FB40020 */ lw $s4, 0x20($sp)
/* 3B070 8005FC70 8FB3001C */ lw $s3, 0x1c($sp)
/* 3B074 8005FC74 8FB20018 */ lw $s2, 0x18($sp)
/* 3B078 8005FC78 8FB10014 */ lw $s1, 0x14($sp)
/* 3B07C 8005FC7C 8FB00010 */ lw $s0, 0x10($sp)
/* 3B080 8005FC80 0000102D */ daddu $v0, $zero, $zero
/* 3B084 8005FC84 03E00008 */ jr $ra
/* 3B088 8005FC88 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -537,8 +537,12 @@ typedef struct BattleStatus {
/* 0x07A */ u8 incrementStarPointDelay; /* related to star points, set to 0x28 when they are dropped */
/* 0x07B */ u8 damageTaken;
/* 0x07C */ u8 changePartnerAllowed;
/* 0x07D */ char unk_7D[10];
/* 0x087 */ u8 blockResult; /* 0 = fail, 1 = success, -1 = mashed */
/* 0x07D */ char unk_7D[4];
/* 0x081 */ s8 actionSuccess;
/* 0x072 */ char unk_7C[3];
/* 0x085 */ s8 unk_85;
/* 0x086 */ char unk_86;
/* 0x087 */ s8 blockResult; /* 0 = fail, 1 = success, -1 = mashed */
/* 0x088 */ u8 itemUsesLeft; /* set to 2 for doublke dip, 3 for triple */
/* 0x089 */ u8 hpDrainCount;
/* 0x08A */ char unk_8A;
@ -575,7 +579,6 @@ typedef struct BattleStatus {
/* 0x0D8 */ struct Actor* playerActor;
/* 0x0DC */ struct Actor* partnerActor;
/* 0x0E0 */ struct Actor* enemyActors[24];
/* 0x0E4 */ char unk_E4[92];
/* 0x140 */ s16 enemyIDs[24];
/* 0x170 */ char unk_170;
/* 0x171 */ u8 numEnemyActors;
@ -770,6 +773,15 @@ typedef struct Effect {
/* 0x00 */ char unk_00[32];
} Effect; // size = 0x20
typedef struct EffectTableEntry {
/* 0x00 */ s32 dmaStart;
/* 0x04 */ s32 dmaEnd;
/* 0x08 */ s32 dmaDest;
/* 0x0C */ s32 unkStartRom;
/* 0x10 */ s32 unkEndRom;
/* 0x14 */ UNK_FUN_PTR(delegate);
} EffectTableEntry; // size = 0x18
typedef struct ItemEntity {
/* 0x00 */ s32 flags;
/* 0x04 */ s16 boundVar; /* see make_item_entity */

View File

@ -105,6 +105,9 @@ extern u8 D_800A095F;
extern s32 D_800A0960;
extern s32 D_800A0964;
// Pause
//extern s32 gPauseMenuStrings[348];
extern s32 gGameState;
extern s32 D_8009A650[1];
extern u16 D_8009A6A0;
@ -123,6 +126,9 @@ extern UNK_TYPE D_80108558;
extern UNK_TYPE D_8010F250; // play_sound state struct?
extern s8 D_8010EBB0[];
// Effects
extern EffectTableEntry gEffectTable[135];
//nusys
extern OSPiHandle* carthandle;

View File

@ -38,9 +38,15 @@ INCLUDE_ASM(s32, "code_196AA0", func_8026919C);
INCLUDE_ASM(s32, "code_196AA0", func_802691C8);
INCLUDE_ASM(s32, "code_196AA0", GetActionSuccess);
ApiStatus GetActionSuccess(ScriptInstance* script, s32 isInitialCall) {
set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_196AA0", SetActionSuccess);
ApiStatus SetActionSuccess(ScriptInstance* script, s32 isInitialCall) {
gBattleStatus.actionSuccess = get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_196AA0", func_802692EC);
@ -52,7 +58,10 @@ INCLUDE_ASM(s32, "code_196AA0", func_80269370);
INCLUDE_ASM(s32, "code_196AA0", func_8026939C);
INCLUDE_ASM(s32, "code_196AA0", func_802693F0);
ApiStatus func_802693F0(ScriptInstance* script, s32 isInitialCall) {
gBattleStatus.flags1 &= ~0x4000;
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_196AA0", CloseActionCommandInfo);
@ -60,13 +69,19 @@ INCLUDE_ASM(s32, "code_196AA0", func_80269470);
INCLUDE_ASM(s32, "code_196AA0", func_802694A4);
INCLUDE_ASM(s32, "code_196AA0", GetActionSuccessCopy);
ApiStatus GetActionSuccessCopy(ScriptInstance* script, s32 isInitialCall) {
set_variable(script, *script->ptrReadPos, gBattleStatus.actionSuccess);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_196AA0", func_80269524);
INCLUDE_ASM(s32, "code_196AA0", func_80269550);
INCLUDE_ASM(s32, "code_196AA0", GetBlockResult);
ApiStatus GetBlockResult(ScriptInstance* script, s32 isInitialCall) {
set_variable(script, *script->ptrReadPos, gBattleStatus.blockResult);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_196AA0", func_802695A8);

View File

@ -206,7 +206,7 @@ ApiStatus ActorExists(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
ActorId actorID = get_variable(script, *args++);
if (actorID == -0x7F) {
if (actorID == ActorId_SELF) {
actorID = script->ownerActorID;
}

View File

@ -1,5 +1,28 @@
#include "common.h"
INCLUDE_ASM(s32, "code_1AF120", GetDamageIntensity);
ApiStatus GetDamageIntensity(ScriptInstance* script, s32 isInitialCall) {
if (gBattleStatus.lastAttackDamage < 4) {
script->varTable[0] = 0;
} else if (gBattleStatus.lastAttackDamage < 7) {
script->varTable[0] = 1;
} else if (gBattleStatus.lastAttackDamage < 10){
script->varTable[0] = 2;
} else {
script->varTable[0] = 3;
}
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "code_1AF120", ActorAddMovePos);
/*ApiStatus ActorAddMovePos(ScriptInstance* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
Actor* actor;
Vec3f* actorMoveCurrentPos;
actor = (Actor*)get_variable(script, *args++);
actorMoveCurrentPos = &actor->moveCurrentPos;
actorMoveCurrentPos->x += get_variable(script, *args++);
actorMoveCurrentPos->y += get_variable(script, *args++);
actorMoveCurrentPos->z += get_variable(script, *args++);
return ApiStatus_DONE2;
}*/

21
src/code_E21870.c Normal file
View File

@ -0,0 +1,21 @@
#include "common.h"
s32 func_802B7000_2(void) {
s8* something = &D_8010EBB0;
ActionState* actionState = gPlayerActionState;
if (actionState != ActionState_USE_TWEESTER) {
if (something[0] != 1 || (something[3] != 9 && something[3] != 4)) {
return 0;
}
}
return 1;
}
INCLUDE_ASM(s32, "code_E21870", func_802B704C);
INCLUDE_ASM(s32, "code_E21870", func_802B7140);
INCLUDE_ASM(s32, "code_E21870", func_802B71D4);
INCLUDE_ASM(s32, "code_E21870", func_802B74F0);

View File

@ -345,7 +345,7 @@ segments:
start: 0x415D90
vram: 0x802A1000
files:
- [0x415D90, "c", "code_415D90"]
- [0x415D90, "c"]
- [0x4200C0, "bin"] # todo split this further
- name: code
type: code
@ -353,8 +353,8 @@ segments:
vram: 0x80280000
files:
- [0x7e0e80, "c", "code_7e0e80"]
- [0x7E2AA0, "c", "code_7E2AA0"]
- [0x7E3700, "c", "code_7E3700"]
- [0x7E2AA0, "c"]
- [0x7E3700, "c"]
- [0x7e4d00, "bin"]
- [0x7E73A0, "bin"] # todo split this further
- name: code
@ -363,7 +363,15 @@ segments:
vram: 0x802B7000
files:
- [0xe20eb0, "c", "code_e20eb0"]
- [0xe215c0, "bin"]
- [0xE215C0, "bin"]
- name: code
type: code
start: 0xE21870
vram: 0x802B7000
files:
- [0xE21870, "c"]
- [0xE21EB0, "bin"]
- [0xE225B0, "bin"]
- [0xF007C0, "bin", "Battle_Fanfare_02"] # BGM start
- [0xF02160, "bin", "Hey_You_03"]
- [0xF03740, "bin", "The_Goomba_King_s_Decree_07"]

View File

@ -1876,3 +1876,5 @@ SetTattleString;0x80045A58
!osEnqueueThread;0x8006B174
!send_mesg;0x8006AF7C
!handle_CPU;0x8006B038
gPauseMenuStrings;0x8026F778
gEffectTable;0x8007F214

View File

@ -1,3 +1,4 @@
func_8006AF7C = 0x8006AF7C;
func_8006B174 = 0x8006B174;
func_8006B1BC = 0x8006B1BC;
func_802B704C = 0x802B704C;
func_83273000 = 0x83273000;
func_832A6664 = 0x832A6664;
func_832B3000 = 0x832B3000;

View File

@ -213,6 +213,8 @@ gCurrentSaveFile = 0x800DACC0;
gMapFlags = 0x802DA480;
gMapVars = 0x802DA484;
gEffectTable = 0x8007F214;
MarioEnterStage = 0x80284A40;
PeachEnterStage = 0x80284D04;
HandleEvent_Player = 0x802852D4;