mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
258 lines
12 KiB
ArmAsm
258 lines
12 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel update_triggers
|
|
/* 0DBF60 80145860 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0DBF64 80145864 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 0DBF68 80145868 3C128016 */ lui $s2, 0x8016
|
|
/* 0DBF6C 8014586C 2652A550 */ addiu $s2, $s2, -0x5ab0
|
|
/* 0DBF70 80145870 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 0DBF74 80145874 0000982D */ daddu $s3, $zero, $zero
|
|
/* 0DBF78 80145878 AFBF0028 */ sw $ra, 0x28($sp)
|
|
/* 0DBF7C 8014587C AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 0DBF80 80145880 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0DBF84 80145884 A6400016 */ sh $zero, 0x16($s2)
|
|
.L80145888:
|
|
/* 0DBF88 80145888 3C038016 */ lui $v1, 0x8016
|
|
/* 0DBF8C 8014588C 8C639390 */ lw $v1, -0x6c70($v1)
|
|
/* 0DBF90 80145890 00131080 */ sll $v0, $s3, 2
|
|
/* 0DBF94 80145894 00431021 */ addu $v0, $v0, $v1
|
|
/* 0DBF98 80145898 8C510000 */ lw $s1, ($v0)
|
|
/* 0DBF9C 8014589C 522000B1 */ beql $s1, $zero, .L80145B64
|
|
/* 0DBFA0 801458A0 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DBFA4 801458A4 8E230000 */ lw $v1, ($s1)
|
|
/* 0DBFA8 801458A8 30620001 */ andi $v0, $v1, 1
|
|
/* 0DBFAC 801458AC 504000AD */ beql $v0, $zero, .L80145B64
|
|
/* 0DBFB0 801458B0 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DBFB4 801458B4 30620010 */ andi $v0, $v1, 0x10
|
|
/* 0DBFB8 801458B8 144000A8 */ bnez $v0, .L80145B5C
|
|
/* 0DBFBC 801458BC 34620002 */ ori $v0, $v1, 2
|
|
/* 0DBFC0 801458C0 30620040 */ andi $v0, $v1, 0x40
|
|
/* 0DBFC4 801458C4 1040000D */ beqz $v0, .L801458FC
|
|
/* 0DBFC8 801458C8 00000000 */ nop
|
|
/* 0DBFCC 801458CC 86430012 */ lh $v1, 0x12($s2)
|
|
/* 0DBFD0 801458D0 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DBFD4 801458D4 14430003 */ bne $v0, $v1, .L801458E4
|
|
/* 0DBFD8 801458D8 00000000 */ nop
|
|
/* 0DBFDC 801458DC 0C0381B0 */ jal func_800E06C0
|
|
/* 0DBFE0 801458E0 24040001 */ addiu $a0, $zero, 1
|
|
.L801458E4:
|
|
/* 0DBFE4 801458E4 86430000 */ lh $v1, ($s2)
|
|
/* 0DBFE8 801458E8 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DBFEC 801458EC 5443009D */ bnel $v0, $v1, .L80145B64
|
|
/* 0DBFF0 801458F0 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DBFF4 801458F4 0C0381B0 */ jal func_800E06C0
|
|
/* 0DBFF8 801458F8 0000202D */ daddu $a0, $zero, $zero
|
|
.L801458FC:
|
|
/* 0DBFFC 801458FC 8E240000 */ lw $a0, ($s1)
|
|
/* 0DC000 80145900 30820080 */ andi $v0, $a0, 0x80
|
|
/* 0DC004 80145904 10400006 */ beqz $v0, .L80145920
|
|
/* 0DC008 80145908 3C020008 */ lui $v0, 8
|
|
/* 0DC00C 8014590C 86430002 */ lh $v1, 2($s2)
|
|
/* 0DC010 80145910 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC014 80145914 54430093 */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC018 80145918 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC01C 8014591C 3C020008 */ lui $v0, 8
|
|
.L80145920:
|
|
/* 0DC020 80145920 00821024 */ and $v0, $a0, $v0
|
|
/* 0DC024 80145924 10400006 */ beqz $v0, .L80145940
|
|
/* 0DC028 80145928 30820100 */ andi $v0, $a0, 0x100
|
|
/* 0DC02C 8014592C 86430006 */ lh $v1, 6($s2)
|
|
/* 0DC030 80145930 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC034 80145934 5443008B */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC038 80145938 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC03C 8014593C 30820100 */ andi $v0, $a0, 0x100
|
|
.L80145940:
|
|
/* 0DC040 80145940 1040000E */ beqz $v0, .L8014597C
|
|
/* 0DC044 80145944 00000000 */ nop
|
|
/* 0DC048 80145948 86430012 */ lh $v1, 0x12($s2)
|
|
/* 0DC04C 8014594C 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC050 80145950 14430002 */ bne $v0, $v1, .L8014595C
|
|
/* 0DC054 80145954 24020001 */ addiu $v0, $zero, 1
|
|
/* 0DC058 80145958 A6420016 */ sh $v0, 0x16($s2)
|
|
.L8014595C:
|
|
/* 0DC05C 8014595C 8643000A */ lh $v1, 0xa($s2)
|
|
/* 0DC060 80145960 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC064 80145964 5443007F */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC068 80145968 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC06C 8014596C 0C0394BE */ jal func_800E52F8
|
|
/* 0DC070 80145970 00000000 */ nop
|
|
/* 0DC074 80145974 5040007B */ beql $v0, $zero, .L80145B64
|
|
/* 0DC078 80145978 26730001 */ addiu $s3, $s3, 1
|
|
.L8014597C:
|
|
/* 0DC07C 8014597C 8E240000 */ lw $a0, ($s1)
|
|
/* 0DC080 80145980 30820400 */ andi $v0, $a0, 0x400
|
|
/* 0DC084 80145984 10400006 */ beqz $v0, .L801459A0
|
|
/* 0DC088 80145988 30820200 */ andi $v0, $a0, 0x200
|
|
/* 0DC08C 8014598C 86430012 */ lh $v1, 0x12($s2)
|
|
/* 0DC090 80145990 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC094 80145994 54430073 */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC098 80145998 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC09C 8014599C 30820200 */ andi $v0, $a0, 0x200
|
|
.L801459A0:
|
|
/* 0DC0A0 801459A0 10400006 */ beqz $v0, .L801459BC
|
|
/* 0DC0A4 801459A4 30820800 */ andi $v0, $a0, 0x800
|
|
/* 0DC0A8 801459A8 86430004 */ lh $v1, 4($s2)
|
|
/* 0DC0AC 801459AC 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC0B0 801459B0 5443006C */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC0B4 801459B4 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC0B8 801459B8 30820800 */ andi $v0, $a0, 0x800
|
|
.L801459BC:
|
|
/* 0DC0BC 801459BC 10400011 */ beqz $v0, .L80145A04
|
|
/* 0DC0C0 801459C0 30821000 */ andi $v0, $a0, 0x1000
|
|
/* 0DC0C4 801459C4 86430002 */ lh $v1, 2($s2)
|
|
/* 0DC0C8 801459C8 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC0CC 801459CC 54430065 */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC0D0 801459D0 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC0D4 801459D4 3C028007 */ lui $v0, 0x8007
|
|
/* 0DC0D8 801459D8 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 0DC0DC 801459DC 8C420010 */ lw $v0, 0x10($v0)
|
|
/* 0DC0E0 801459E0 30428000 */ andi $v0, $v0, 0x8000
|
|
/* 0DC0E4 801459E4 5040005F */ beql $v0, $zero, .L80145B64
|
|
/* 0DC0E8 801459E8 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC0EC 801459EC 3C028011 */ lui $v0, 0x8011
|
|
/* 0DC0F0 801459F0 8C42EFC8 */ lw $v0, -0x1038($v0)
|
|
/* 0DC0F4 801459F4 30422000 */ andi $v0, $v0, 0x2000
|
|
/* 0DC0F8 801459F8 5440005A */ bnel $v0, $zero, .L80145B64
|
|
/* 0DC0FC 801459FC 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC100 80145A00 30821000 */ andi $v0, $a0, 0x1000
|
|
.L80145A04:
|
|
/* 0DC104 80145A04 10400006 */ beqz $v0, .L80145A20
|
|
/* 0DC108 80145A08 3C020004 */ lui $v0, 4
|
|
/* 0DC10C 80145A0C 86430014 */ lh $v1, 0x14($s2)
|
|
/* 0DC110 80145A10 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC114 80145A14 54430053 */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC118 80145A18 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC11C 80145A1C 3C020004 */ lui $v0, 4
|
|
.L80145A20:
|
|
/* 0DC120 80145A20 00821024 */ and $v0, $a0, $v0
|
|
/* 0DC124 80145A24 10400006 */ beqz $v0, .L80145A40
|
|
/* 0DC128 80145A28 30822000 */ andi $v0, $a0, 0x2000
|
|
/* 0DC12C 80145A2C 86430008 */ lh $v1, 8($s2)
|
|
/* 0DC130 80145A30 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC134 80145A34 5443004B */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC138 80145A38 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC13C 80145A3C 30822000 */ andi $v0, $a0, 0x2000
|
|
.L80145A40:
|
|
/* 0DC140 80145A40 10400006 */ beqz $v0, .L80145A5C
|
|
/* 0DC144 80145A44 30824000 */ andi $v0, $a0, 0x4000
|
|
/* 0DC148 80145A48 8643000C */ lh $v1, 0xc($s2)
|
|
/* 0DC14C 80145A4C 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC150 80145A50 54430044 */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC154 80145A54 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC158 80145A58 30824000 */ andi $v0, $a0, 0x4000
|
|
.L80145A5C:
|
|
/* 0DC15C 80145A5C 10400006 */ beqz $v0, .L80145A78
|
|
/* 0DC160 80145A60 30828000 */ andi $v0, $a0, 0x8000
|
|
/* 0DC164 80145A64 8643000E */ lh $v1, 0xe($s2)
|
|
/* 0DC168 80145A68 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC16C 80145A6C 5443003D */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC170 80145A70 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC174 80145A74 30828000 */ andi $v0, $a0, 0x8000
|
|
.L80145A78:
|
|
/* 0DC178 80145A78 10400006 */ beqz $v0, .L80145A94
|
|
/* 0DC17C 80145A7C 3C020010 */ lui $v0, 0x10
|
|
/* 0DC180 80145A80 86430010 */ lh $v1, 0x10($s2)
|
|
/* 0DC184 80145A84 8E220008 */ lw $v0, 8($s1)
|
|
/* 0DC188 80145A88 54430036 */ bnel $v0, $v1, .L80145B64
|
|
/* 0DC18C 80145A8C 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC190 80145A90 3C020010 */ lui $v0, 0x10
|
|
.L80145A94:
|
|
/* 0DC194 80145A94 00821024 */ and $v0, $a0, $v0
|
|
/* 0DC198 80145A98 1040001C */ beqz $v0, .L80145B0C
|
|
/* 0DC19C 80145A9C 00000000 */ nop
|
|
/* 0DC1A0 80145AA0 86420018 */ lh $v0, 0x18($s2)
|
|
/* 0DC1A4 80145AA4 0442002F */ bltzl $v0, .L80145B64
|
|
/* 0DC1A8 80145AA8 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC1AC 80145AAC C6420020 */ lwc1 $f2, 0x20($s2)
|
|
/* 0DC1B0 80145AB0 8E300008 */ lw $s0, 8($s1)
|
|
/* 0DC1B4 80145AB4 C6400024 */ lwc1 $f0, 0x24($s2)
|
|
/* 0DC1B8 80145AB8 E7A20010 */ swc1 $f2, 0x10($sp)
|
|
/* 0DC1BC 80145ABC E7A00014 */ swc1 $f0, 0x14($sp)
|
|
/* 0DC1C0 80145AC0 C60C0000 */ lwc1 $f12, ($s0)
|
|
/* 0DC1C4 80145AC4 C60E0004 */ lwc1 $f14, 4($s0)
|
|
/* 0DC1C8 80145AC8 8E060008 */ lw $a2, 8($s0)
|
|
/* 0DC1CC 80145ACC 0C00A7CB */ jal dist3D
|
|
/* 0DC1D0 80145AD0 8E47001C */ lw $a3, 0x1c($s2)
|
|
/* 0DC1D4 80145AD4 C604000C */ lwc1 $f4, 0xc($s0)
|
|
/* 0DC1D8 80145AD8 3C013F00 */ lui $at, 0x3f00
|
|
/* 0DC1DC 80145ADC 44811000 */ mtc1 $at, $f2
|
|
/* 0DC1E0 80145AE0 00000000 */ nop
|
|
/* 0DC1E4 80145AE4 46022102 */ mul.s $f4, $f4, $f2
|
|
/* 0DC1E8 80145AE8 00000000 */ nop
|
|
/* 0DC1EC 80145AEC 3C014248 */ lui $at, 0x4248
|
|
/* 0DC1F0 80145AF0 44811000 */ mtc1 $at, $f2
|
|
/* 0DC1F4 80145AF4 00000000 */ nop
|
|
/* 0DC1F8 80145AF8 46022100 */ add.s $f4, $f4, $f2
|
|
/* 0DC1FC 80145AFC 4600203C */ c.lt.s $f4, $f0
|
|
/* 0DC200 80145B00 00000000 */ nop
|
|
/* 0DC204 80145B04 45030017 */ bc1tl .L80145B64
|
|
/* 0DC208 80145B08 26730001 */ addiu $s3, $s3, 1
|
|
.L80145B0C:
|
|
/* 0DC20C 80145B0C 8E220000 */ lw $v0, ($s1)
|
|
/* 0DC210 80145B10 3C030001 */ lui $v1, 1
|
|
/* 0DC214 80145B14 00431024 */ and $v0, $v0, $v1
|
|
/* 0DC218 80145B18 10400005 */ beqz $v0, .L80145B30
|
|
/* 0DC21C 80145B1C 00000000 */ nop
|
|
/* 0DC220 80145B20 0C05152F */ jal get_global_flag
|
|
/* 0DC224 80145B24 8E240004 */ lw $a0, 4($s1)
|
|
/* 0DC228 80145B28 5040000E */ beql $v0, $zero, .L80145B64
|
|
/* 0DC22C 80145B2C 26730001 */ addiu $s3, $s3, 1
|
|
.L80145B30:
|
|
/* 0DC230 80145B30 8E220000 */ lw $v0, ($s1)
|
|
/* 0DC234 80145B34 3C030002 */ lui $v1, 2
|
|
/* 0DC238 80145B38 00431024 */ and $v0, $v0, $v1
|
|
/* 0DC23C 80145B3C 10400005 */ beqz $v0, .L80145B54
|
|
/* 0DC240 80145B40 00000000 */ nop
|
|
/* 0DC244 80145B44 0C05157C */ jal get_area_flag
|
|
/* 0DC248 80145B48 8E240004 */ lw $a0, 4($s1)
|
|
/* 0DC24C 80145B4C 50400005 */ beql $v0, $zero, .L80145B64
|
|
/* 0DC250 80145B50 26730001 */ addiu $s3, $s3, 1
|
|
.L80145B54:
|
|
/* 0DC254 80145B54 8E220000 */ lw $v0, ($s1)
|
|
/* 0DC258 80145B58 34420002 */ ori $v0, $v0, 2
|
|
.L80145B5C:
|
|
/* 0DC25C 80145B5C AE220000 */ sw $v0, ($s1)
|
|
/* 0DC260 80145B60 26730001 */ addiu $s3, $s3, 1
|
|
.L80145B64:
|
|
/* 0DC264 80145B64 2A620040 */ slti $v0, $s3, 0x40
|
|
/* 0DC268 80145B68 1440FF47 */ bnez $v0, .L80145888
|
|
/* 0DC26C 80145B6C 2410FFFD */ addiu $s0, $zero, -3
|
|
/* 0DC270 80145B70 0000982D */ daddu $s3, $zero, $zero
|
|
.L80145B74:
|
|
/* 0DC274 80145B74 3C038016 */ lui $v1, 0x8016
|
|
/* 0DC278 80145B78 8C639390 */ lw $v1, -0x6c70($v1)
|
|
/* 0DC27C 80145B7C 00131080 */ sll $v0, $s3, 2
|
|
/* 0DC280 80145B80 00431021 */ addu $v0, $v0, $v1
|
|
/* 0DC284 80145B84 8C510000 */ lw $s1, ($v0)
|
|
/* 0DC288 80145B88 52200010 */ beql $s1, $zero, .L80145BCC
|
|
/* 0DC28C 80145B8C 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC290 80145B90 8E230000 */ lw $v1, ($s1)
|
|
/* 0DC294 80145B94 30620001 */ andi $v0, $v1, 1
|
|
/* 0DC298 80145B98 5040000C */ beql $v0, $zero, .L80145BCC
|
|
/* 0DC29C 80145B9C 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC2A0 80145BA0 30620002 */ andi $v0, $v1, 2
|
|
/* 0DC2A4 80145BA4 50400009 */ beql $v0, $zero, .L80145BCC
|
|
/* 0DC2A8 80145BA8 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC2AC 80145BAC 8E22000C */ lw $v0, 0xc($s1)
|
|
/* 0DC2B0 80145BB0 0040F809 */ jalr $v0
|
|
/* 0DC2B4 80145BB4 0220202D */ daddu $a0, $s1, $zero
|
|
/* 0DC2B8 80145BB8 14400004 */ bnez $v0, .L80145BCC
|
|
/* 0DC2BC 80145BBC 26730001 */ addiu $s3, $s3, 1
|
|
/* 0DC2C0 80145BC0 8E220000 */ lw $v0, ($s1)
|
|
/* 0DC2C4 80145BC4 00501024 */ and $v0, $v0, $s0
|
|
/* 0DC2C8 80145BC8 AE220000 */ sw $v0, ($s1)
|
|
.L80145BCC:
|
|
/* 0DC2CC 80145BCC 2A620040 */ slti $v0, $s3, 0x40
|
|
/* 0DC2D0 80145BD0 1440FFE8 */ bnez $v0, .L80145B74
|
|
/* 0DC2D4 80145BD4 00000000 */ nop
|
|
/* 0DC2D8 80145BD8 8FBF0028 */ lw $ra, 0x28($sp)
|
|
/* 0DC2DC 80145BDC 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 0DC2E0 80145BE0 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0DC2E4 80145BE4 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0DC2E8 80145BE8 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0DC2EC 80145BEC 03E00008 */ jr $ra
|
|
/* 0DC2F0 80145BF0 27BD0030 */ addiu $sp, $sp, 0x30
|
|
|