From 9f98210488073f1b5c8136152b95e3fc8970b6e4 Mon Sep 17 00:00:00 2001 From: Roman971 <32455037+Roman971@users.noreply.github.com> Date: Fri, 1 May 2020 17:09:20 +0200 Subject: [PATCH] Decompile z_map_exp.c (2 non matchings left) (#104) Also documented the map data table (not decompiled yet however), and added a DungeonItem enum to use with gSaveContext.dungeonItems reads/writes. --- .../code/z_construct/func_801109B0.s | 2 +- .../code/z_map_exp/Interface_DrawMinimap.s | 807 ------------------ .../{func_8008226C.s => Map_Update.s} | 42 +- ..._80081240.s => Minimap_DrawCompassIcons.s} | 14 +- .../code/z_map_exp/func_800807A0.s | 26 - .../code/z_map_exp/func_800807FC.s | 82 -- .../code/z_map_exp/func_800808FC.s | 149 ---- .../code/z_map_exp/func_80080AB4.s | 316 ------- .../code/z_map_exp/func_80080E04.s | 140 --- .../code/z_map_exp/func_80080F44.s | 11 - .../code/z_map_exp/func_80080F68.s | 262 ------ .../code/z_map_exp/func_80082248.s | 11 - .../code/z_parameter/Interface_Draw.s | 4 +- .../code/z_parameter/Interface_Update.s | 2 +- .../actors/ovl_kaleido_scope/func_8081BB10.s | 32 +- .../actors/ovl_kaleido_scope/func_80826BA8.s | 2 +- .../actors/ovl_kaleido_scope/func_80826CB4.s | 2 +- .../actors/ovl_player_actor/func_80846CD8.s | 2 +- data/z_map_data.data.s | 122 +++ data/z_map_exp.bss.s | 11 - data/z_map_exp.data.s | 26 - include/functions.h | 21 +- include/regs.h | 13 + include/variables.h | 11 +- include/z64.h | 56 +- include/z64item.h | 6 + spec | 3 +- src/code/z_actor.c | 9 +- src/code/z_construct.c | 28 +- src/code/z_elf_message.c | 2 +- src/code/z_lifemeter.c | 2 +- src/code/z_map_exp.c | 605 ++++++++++++- src/code/z_map_mark.c | 34 +- src/code/z_parameter.c | 30 +- src/code/z_room.c | 4 +- src/libultra_code/osReadMempak.c | 3 +- 36 files changed, 894 insertions(+), 1998 deletions(-) delete mode 100644 asm/non_matchings/code/z_map_exp/Interface_DrawMinimap.s rename asm/non_matchings/code/z_map_exp/{func_8008226C.s => Map_Update.s} (90%) rename asm/non_matchings/code/z_map_exp/{func_80081240.s => Minimap_DrawCompassIcons.s} (97%) delete mode 100644 asm/non_matchings/code/z_map_exp/func_800807A0.s delete mode 100644 asm/non_matchings/code/z_map_exp/func_800807FC.s delete mode 100644 asm/non_matchings/code/z_map_exp/func_800808FC.s delete mode 100644 asm/non_matchings/code/z_map_exp/func_80080AB4.s delete mode 100644 asm/non_matchings/code/z_map_exp/func_80080E04.s delete mode 100644 asm/non_matchings/code/z_map_exp/func_80080F44.s delete mode 100644 asm/non_matchings/code/z_map_exp/func_80080F68.s delete mode 100644 asm/non_matchings/code/z_map_exp/func_80082248.s create mode 100644 data/z_map_data.data.s delete mode 100644 data/z_map_exp.bss.s delete mode 100644 data/z_map_exp.data.s diff --git a/asm/non_matchings/code/z_construct/func_801109B0.s b/asm/non_matchings/code/z_construct/func_801109B0.s index 9e2177c224..6101c418d2 100644 --- a/asm/non_matchings/code/z_construct/func_801109B0.s +++ b/asm/non_matchings/code/z_construct/func_801109B0.s @@ -463,7 +463,7 @@ glabel func_801109B0 /* B8805C 80110EBC 24A55300 */ addiu $a1, $a1, 0x5300 /* B88060 80110EC0 0C01E258 */ jal Health_InitData /* B88064 80110EC4 8FA40058 */ lw $a0, 0x58($sp) -/* B88068 80110EC8 0C0203DA */ jal func_80080F68 +/* B88068 80110EC8 0C0203DA */ jal Map_Init /* B8806C 80110ECC 8FA40058 */ lw $a0, 0x58($sp) /* B88070 80110ED0 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016 /* B88074 80110ED4 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570 diff --git a/asm/non_matchings/code/z_map_exp/Interface_DrawMinimap.s b/asm/non_matchings/code/z_map_exp/Interface_DrawMinimap.s deleted file mode 100644 index 3053dcd234..0000000000 --- a/asm/non_matchings/code/z_map_exp/Interface_DrawMinimap.s +++ /dev/null @@ -1,807 +0,0 @@ -.rdata -glabel D_8013D958 - .asciz "../z_map_exp.c" - .balign 4 - -glabel D_8013D968 - .asciz "Game_play_demo_mode_check=%d\n" - .balign 4 - -glabel D_8013D988 - .asciz "../z_map_exp.c" - .balign 4 - -.late_rodata -glabel jtbl_8013DC14 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - .word L80081AA0 - -glabel jtbl_8013DC64 - .word L80081784 - .word L80081784 - .word L80081784 - .word L80081784 - .word L80081784 - .word L80081784 - .word L80081784 - .word L80081784 - .word L80081784 - .word L80081784 - -.text -glabel Interface_DrawMinimap -/* AF8880 800816E0 3C0E8016 */ lui $t6, %hi(gSaveContext+0x1402) # $t6, 0x8016 -/* AF8884 800816E4 95CEFA62 */ lhu $t6, %lo(gSaveContext+0x1402)($t6) -/* AF8888 800816E8 27BDFEF0 */ addiu $sp, $sp, -0x110 -/* AF888C 800816EC AFBF001C */ sw $ra, 0x1c($sp) -/* AF8890 800816F0 AFA40110 */ sw $a0, 0x110($sp) -/* AF8894 800816F4 AFAE0100 */ sw $t6, 0x100($sp) -/* AF8898 800816F8 8C850000 */ lw $a1, ($a0) -/* AF889C 800816FC 3C068014 */ lui $a2, %hi(D_8013D958) # $a2, 0x8014 -/* AF88A0 80081700 24C6D958 */ addiu $a2, %lo(D_8013D958) # addiu $a2, $a2, -0x26a8 -/* AF88A4 80081704 27A400EC */ addiu $a0, $sp, 0xec -/* AF88A8 80081708 24070272 */ li $a3, 626 -/* AF88AC 8008170C 0C031AB1 */ jal Graph_OpenDisps -/* AF88B0 80081710 AFA500FC */ sw $a1, 0xfc($sp) -/* AF88B4 80081714 8FB80110 */ lw $t8, 0x110($sp) -/* AF88B8 80081718 3C190001 */ lui $t9, 1 -/* AF88BC 8008171C 8FA800FC */ lw $t0, 0xfc($sp) -/* AF88C0 80081720 0338C821 */ addu $t9, $t9, $t8 -/* AF88C4 80081724 97390934 */ lhu $t9, 0x934($t9) -/* AF88C8 80081728 2B210004 */ slti $at, $t9, 4 -/* AF88CC 8008172C 502002BC */ beql $at, $zero, .L80082220 -/* AF88D0 80081730 8FAF0110 */ lw $t7, 0x110($sp) -/* AF88D4 80081734 870200A4 */ lh $v0, 0xa4($t8) -/* AF88D8 80081738 2841000A */ slti $at, $v0, 0xa -/* AF88DC 8008173C 14200009 */ bnez $at, .L80081764 -/* AF88E0 80081740 244EFFAF */ addiu $t6, $v0, -0x51 -/* AF88E4 80081744 2DC10014 */ sltiu $at, $t6, 0x14 -/* AF88E8 80081748 102002B4 */ beqz $at, .L8008221C -/* AF88EC 8008174C 000E7080 */ sll $t6, $t6, 2 -/* AF88F0 80081750 3C018014 */ lui $at, %hi(jtbl_8013DC14) -/* AF88F4 80081754 002E0821 */ addu $at, $at, $t6 -/* AF88F8 80081758 8C2EDC14 */ lw $t6, %lo(jtbl_8013DC14)($at) -/* AF88FC 8008175C 01C00008 */ jr $t6 -/* AF8900 80081760 00000000 */ nop -.L80081764: -/* AF8904 80081764 2C41000A */ sltiu $at, $v0, 0xa -/* AF8908 80081768 102002AC */ beqz $at, .L8008221C -/* AF890C 8008176C 00027880 */ sll $t7, $v0, 2 -/* AF8910 80081770 3C018014 */ lui $at, %hi(jtbl_8013DC64) -/* AF8914 80081774 002F0821 */ addu $at, $at, $t7 -/* AF8918 80081778 8C2FDC64 */ lw $t7, %lo(jtbl_8013DC64)($at) -/* AF891C 8008177C 01E00008 */ jr $t7 -/* AF8920 80081780 00000000 */ nop -glabel L80081784 -/* AF8924 80081784 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016 -/* AF8928 80081788 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* AF892C 8008178C 8FAE0110 */ lw $t6, 0x110($sp) -/* AF8930 80081790 87380DD2 */ lh $t8, 0xdd2($t9) -/* AF8934 80081794 57000091 */ bnezl $t8, .L800819DC -/* AF8938 80081798 8FAE0110 */ lw $t6, 0x110($sp) -/* AF893C 8008179C 8DC40000 */ lw $a0, ($t6) -/* AF8940 800817A0 0C025148 */ jal func_80094520 -/* AF8944 800817A4 AFA800FC */ sw $t0, 0xfc($sp) -/* AF8948 800817A8 8FA800FC */ lw $t0, 0xfc($sp) -/* AF894C 800817AC 3C19FC61 */ lui $t9, (0xFC6196C3 >> 16) # lui $t9, 0xfc61 -/* AF8950 800817B0 3C18FF2F */ lui $t8, (0xFF2FFFFF >> 16) # lui $t8, 0xff2f -/* AF8954 800817B4 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8958 800817B8 3718FFFF */ ori $t8, (0xFF2FFFFF & 0xFFFF) # ori $t8, $t8, 0xffff -/* AF895C 800817BC 373996C3 */ ori $t9, (0xFC6196C3 & 0xFFFF) # ori $t9, $t9, 0x96c3 -/* AF8960 800817C0 246F0008 */ addiu $t7, $v1, 8 -/* AF8964 800817C4 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF8968 800817C8 AC780004 */ sw $t8, 4($v1) -/* AF896C 800817CC AC790000 */ sw $t9, ($v1) -/* AF8970 800817D0 8FAE0100 */ lw $t6, 0x100($sp) -/* AF8974 800817D4 3C0F8016 */ lui $t7, %hi(gSaveContext) # $t7, 0x8016 -/* AF8978 800817D8 25EFE660 */ addiu $t7, %lo(gSaveContext) # addiu $t7, $t7, -0x19a0 -/* AF897C 800817DC 3C198012 */ lui $t9, %hi(gBitFlags+8) # $t9, 0x8012 -/* AF8980 800817E0 01CF3021 */ addu $a2, $t6, $t7 -/* AF8984 800817E4 90C200A8 */ lbu $v0, 0xa8($a2) -/* AF8988 800817E8 8F397128 */ lw $t9, %lo(gBitFlags+8)($t9) -/* AF898C 800817EC 0322C024 */ and $t8, $t9, $v0 -/* AF8990 800817F0 1300006D */ beqz $t8, .L800819A8 -/* AF8994 800817F4 00000000 */ nop -/* AF8998 800817F8 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF899C 800817FC 3C0FFA00 */ lui $t7, 0xfa00 -/* AF89A0 80081800 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* AF89A4 80081804 246E0008 */ addiu $t6, $v1, 8 -/* AF89A8 80081808 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF89AC 8008180C AC6F0000 */ sw $t7, ($v1) -/* AF89B0 80081810 8FA50110 */ lw $a1, 0x110($sp) -/* AF89B4 80081814 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* AF89B8 80081818 3C0A0700 */ lui $t2, 0x700 -/* AF89BC 8008181C 00A12821 */ addu $a1, $a1, $at -/* AF89C0 80081820 94B90254 */ lhu $t9, 0x254($a1) -/* AF89C4 80081824 3C0164FF */ lui $at, (0x64FFFF00 >> 16) # lui $at, 0x64ff -/* AF89C8 80081828 3421FF00 */ ori $at, (0x64FFFF00 & 0xFFFF) # ori $at, $at, 0xff00 -/* AF89CC 8008182C 333800FF */ andi $t8, $t9, 0xff -/* AF89D0 80081830 03017025 */ or $t6, $t8, $at -/* AF89D4 80081834 AC6E0004 */ sw $t6, 4($v1) -/* AF89D8 80081838 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF89DC 8008183C 3C19FD90 */ lui $t9, 0xfd90 -/* AF89E0 80081840 3C0BE700 */ lui $t3, 0xe700 -/* AF89E4 80081844 246F0008 */ addiu $t7, $v1, 8 -/* AF89E8 80081848 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF89EC 8008184C AC790000 */ sw $t9, ($v1) -/* AF89F0 80081850 8CB8013C */ lw $t8, 0x13c($a1) -/* AF89F4 80081854 3C0FF590 */ lui $t7, 0xf590 -/* AF89F8 80081858 3C0CF200 */ lui $t4, 0xf200 -/* AF89FC 8008185C AC780004 */ sw $t8, 4($v1) -/* AF8A00 80081860 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8A04 80081864 3C18E600 */ lui $t8, 0xe600 -/* AF8A08 80081868 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AF8A0C 8008186C 246E0008 */ addiu $t6, $v1, 8 -/* AF8A10 80081870 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF8A14 80081874 AC6A0004 */ sw $t2, 4($v1) -/* AF8A18 80081878 AC6F0000 */ sw $t7, ($v1) -/* AF8A1C 8008187C 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8A20 80081880 3C0FF300 */ lui $t7, 0xf300 -/* AF8A24 80081884 3C01E400 */ lui $at, 0xe400 -/* AF8A28 80081888 24790008 */ addiu $t9, $v1, 8 -/* AF8A2C 8008188C AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF8A30 80081890 AC600004 */ sw $zero, 4($v1) -/* AF8A34 80081894 AC780000 */ sw $t8, ($v1) -/* AF8A38 80081898 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8A3C 8008189C 3C19077F */ lui $t9, (0x077F7156 >> 16) # lui $t9, 0x77f -/* AF8A40 800818A0 37397156 */ ori $t9, (0x077F7156 & 0xFFFF) # ori $t9, $t9, 0x7156 -/* AF8A44 800818A4 246E0008 */ addiu $t6, $v1, 8 -/* AF8A48 800818A8 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF8A4C 800818AC AC790004 */ sw $t9, 4($v1) -/* AF8A50 800818B0 AC6F0000 */ sw $t7, ($v1) -/* AF8A54 800818B4 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8A58 800818B8 3C0FF580 */ lui $t7, (0xF5800C00 >> 16) # lui $t7, 0xf580 -/* AF8A5C 800818BC 35EF0C00 */ ori $t7, (0xF5800C00 & 0xFFFF) # ori $t7, $t7, 0xc00 -/* AF8A60 800818C0 24780008 */ addiu $t8, $v1, 8 -/* AF8A64 800818C4 AD1802B0 */ sw $t8, 0x2b0($t0) -/* AF8A68 800818C8 AC600004 */ sw $zero, 4($v1) -/* AF8A6C 800818CC AC6B0000 */ sw $t3, ($v1) -/* AF8A70 800818D0 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8A74 800818D4 3C180017 */ lui $t8, (0x0017C150 >> 16) # lui $t8, 0x17 -/* AF8A78 800818D8 3718C150 */ ori $t8, (0x0017C150 & 0xFFFF) # ori $t8, $t8, 0xc150 -/* AF8A7C 800818DC 246E0008 */ addiu $t6, $v1, 8 -/* AF8A80 800818E0 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF8A84 800818E4 AC600004 */ sw $zero, 4($v1) -/* AF8A88 800818E8 AC6F0000 */ sw $t7, ($v1) -/* AF8A8C 800818EC 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8A90 800818F0 3C0DE100 */ lui $t5, 0xe100 -/* AF8A94 800818F4 3C1FF100 */ lui $ra, 0xf100 -/* AF8A98 800818F8 24790008 */ addiu $t9, $v1, 8 -/* AF8A9C 800818FC AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF8AA0 80081900 AC780004 */ sw $t8, 4($v1) -/* AF8AA4 80081904 AC6C0000 */ sw $t4, ($v1) -/* AF8AA8 80081908 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8AAC 8008190C 246E0008 */ addiu $t6, $v1, 8 -/* AF8AB0 80081910 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF8AB4 80081914 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AF8AB8 80081918 844F0E1E */ lh $t7, 0xe1e($v0) -/* AF8ABC 8008191C 25F90055 */ addiu $t9, $t7, 0x55 -/* AF8AC0 80081920 0019C080 */ sll $t8, $t9, 2 -/* AF8AC4 80081924 84590E1C */ lh $t9, 0xe1c($v0) -/* AF8AC8 80081928 330E0FFF */ andi $t6, $t8, 0xfff -/* AF8ACC 8008192C 01C17825 */ or $t7, $t6, $at -/* AF8AD0 80081930 27380060 */ addiu $t8, $t9, 0x60 -/* AF8AD4 80081934 00187080 */ sll $t6, $t8, 2 -/* AF8AD8 80081938 31D90FFF */ andi $t9, $t6, 0xfff -/* AF8ADC 8008193C 0019C300 */ sll $t8, $t9, 0xc -/* AF8AE0 80081940 01F87025 */ or $t6, $t7, $t8 -/* AF8AE4 80081944 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AF8AE8 80081948 AC6E0000 */ sw $t6, ($v1) -/* AF8AEC 8008194C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AF8AF0 80081950 84590E1E */ lh $t9, 0xe1e($v0) -/* AF8AF4 80081954 844E0E1C */ lh $t6, 0xe1c($v0) -/* AF8AF8 80081958 00197880 */ sll $t7, $t9, 2 -/* AF8AFC 8008195C 31F80FFF */ andi $t8, $t7, 0xfff -/* AF8B00 80081960 000EC880 */ sll $t9, $t6, 2 -/* AF8B04 80081964 332F0FFF */ andi $t7, $t9, 0xfff -/* AF8B08 80081968 000F7300 */ sll $t6, $t7, 0xc -/* AF8B0C 8008196C 030EC825 */ or $t9, $t8, $t6 -/* AF8B10 80081970 AC790004 */ sw $t9, 4($v1) -/* AF8B14 80081974 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8B18 80081978 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 -/* AF8B1C 8008197C 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 -/* AF8B20 80081980 246F0008 */ addiu $t7, $v1, 8 -/* AF8B24 80081984 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF8B28 80081988 AC600004 */ sw $zero, 4($v1) -/* AF8B2C 8008198C AC6D0000 */ sw $t5, ($v1) -/* AF8B30 80081990 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8B34 80081994 24780008 */ addiu $t8, $v1, 8 -/* AF8B38 80081998 AD1802B0 */ sw $t8, 0x2b0($t0) -/* AF8B3C 8008199C AC6E0004 */ sw $t6, 4($v1) -/* AF8B40 800819A0 AC7F0000 */ sw $ra, ($v1) -/* AF8B44 800819A4 90C200A8 */ lbu $v0, 0xa8($a2) -.L800819A8: -/* AF8B48 800819A8 3C198012 */ lui $t9, %hi(gBitFlags+4) # $t9, 0x8012 -/* AF8B4C 800819AC 8F397124 */ lw $t9, %lo(gBitFlags+4)($t9) -/* AF8B50 800819B0 03227824 */ and $t7, $t9, $v0 -/* AF8B54 800819B4 51E00009 */ beql $t7, $zero, .L800819DC -/* AF8B58 800819B8 8FAE0110 */ lw $t6, 0x110($sp) -/* AF8B5C 800819BC 0C020490 */ jal func_80081240 -/* AF8B60 800819C0 8FA40110 */ lw $a0, 0x110($sp) -/* AF8B64 800819C4 8FB80110 */ lw $t8, 0x110($sp) -/* AF8B68 800819C8 0C025148 */ jal func_80094520 -/* AF8B6C 800819CC 8F040000 */ lw $a0, ($t8) -/* AF8B70 800819D0 0C01EE33 */ jal MapMark_DrawConditionally -/* AF8B74 800819D4 8FA40110 */ lw $a0, 0x110($sp) -/* AF8B78 800819D8 8FAE0110 */ lw $t6, 0x110($sp) -.L800819DC: -/* AF8B7C 800819DC 2401FFDF */ li $at, -33 -/* AF8B80 800819E0 95D90020 */ lhu $t9, 0x20($t6) -/* AF8B84 800819E4 03217827 */ nor $t7, $t9, $at -/* AF8B88 800819E8 55E0020D */ bnezl $t7, .L80082220 -/* AF8B8C 800819EC 8FAF0110 */ lw $t7, 0x110($sp) -/* AF8B90 800819F0 0C02FF21 */ jal Gameplay_InCsMode -/* AF8B94 800819F4 01C02025 */ move $a0, $t6 -/* AF8B98 800819F8 54400209 */ bnezl $v0, .L80082220 -/* AF8B9C 800819FC 8FAF0110 */ lw $t7, 0x110($sp) -/* AF8BA0 80081A00 0C02FF21 */ jal Gameplay_InCsMode -/* AF8BA4 80081A04 8FA40110 */ lw $a0, 0x110($sp) -/* AF8BA8 80081A08 3C048014 */ lui $a0, %hi(D_8013D968) # $a0, 0x8014 -/* AF8BAC 80081A0C 2484D968 */ addiu $a0, %lo(D_8013D968) # addiu $a0, $a0, -0x2698 -/* AF8BB0 80081A10 0C00084C */ jal osSyncPrintf -/* AF8BB4 80081A14 00402825 */ move $a1, $v0 -/* AF8BB8 80081A18 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AF8BBC 80081A1C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AF8BC0 80081A20 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* AF8BC4 80081A24 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* AF8BC8 80081A28 87190DD2 */ lh $t9, 0xdd2($t8) -/* AF8BCC 80081A2C 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* AF8BD0 80081A30 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* AF8BD4 80081A34 1720000E */ bnez $t9, .L80081A70 -/* AF8BD8 80081A38 24044814 */ li $a0, 18452 -/* AF8BDC 80081A3C 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* AF8BE0 80081A40 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* AF8BE4 80081A44 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* AF8BE8 80081A48 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* AF8BEC 80081A4C 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* AF8BF0 80081A50 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* AF8BF4 80081A54 AFA70010 */ sw $a3, 0x10($sp) -/* AF8BF8 80081A58 AFAF0014 */ sw $t7, 0x14($sp) -/* AF8BFC 80081A5C 24044813 */ li $a0, 18451 -/* AF8C00 80081A60 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* AF8C04 80081A64 24060004 */ li $a2, 4 -/* AF8C08 80081A68 10000007 */ b .L80081A88 -/* AF8C0C 80081A6C 00000000 */ nop -.L80081A70: -/* AF8C10 80081A70 3C0E8013 */ lui $t6, %hi(D_801333E8) # $t6, 0x8013 -/* AF8C14 80081A74 25CE33E8 */ addiu $t6, %lo(D_801333E8) # addiu $t6, $t6, 0x33e8 -/* AF8C18 80081A78 AFAE0014 */ sw $t6, 0x14($sp) -/* AF8C1C 80081A7C 24060004 */ li $a2, 4 -/* AF8C20 80081A80 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* AF8C24 80081A84 AFA70010 */ sw $a3, 0x10($sp) -.L80081A88: -/* AF8C28 80081A88 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AF8C2C 80081A8C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AF8C30 80081A90 84580DD2 */ lh $t8, 0xdd2($v0) -/* AF8C34 80081A94 3B190001 */ xori $t9, $t8, 1 -/* AF8C38 80081A98 100001E0 */ b .L8008221C -/* AF8C3C 80081A9C A4590DD2 */ sh $t9, 0xdd2($v0) -glabel L80081AA0 -/* AF8C40 80081AA0 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016 -/* AF8C44 80081AA4 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7) -/* AF8C48 80081AA8 8FB80110 */ lw $t8, 0x110($sp) -/* AF8C4C 80081AAC 85EE0DD2 */ lh $t6, 0xdd2($t7) -/* AF8C50 80081AB0 55C001B1 */ bnezl $t6, .L80082178 -/* AF8C54 80081AB4 8FB90110 */ lw $t9, 0x110($sp) -/* AF8C58 80081AB8 8F040000 */ lw $a0, ($t8) -/* AF8C5C 80081ABC 0C025148 */ jal func_80094520 -/* AF8C60 80081AC0 AFA800FC */ sw $t0, 0xfc($sp) -/* AF8C64 80081AC4 8FA800FC */ lw $t0, 0xfc($sp) -/* AF8C68 80081AC8 3C0FFC11 */ lui $t7, (0xFC119623 >> 16) # lui $t7, 0xfc11 -/* AF8C6C 80081ACC 3C0EFF2F */ lui $t6, (0xFF2FFFFF >> 16) # lui $t6, 0xff2f -/* AF8C70 80081AD0 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8C74 80081AD4 35CEFFFF */ ori $t6, (0xFF2FFFFF & 0xFFFF) # ori $t6, $t6, 0xffff -/* AF8C78 80081AD8 35EF9623 */ ori $t7, (0xFC119623 & 0xFFFF) # ori $t7, $t7, 0x9623 -/* AF8C7C 80081ADC 24790008 */ addiu $t9, $v1, 8 -/* AF8C80 80081AE0 AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF8C84 80081AE4 AC6E0004 */ sw $t6, 4($v1) -/* AF8C88 80081AE8 AC6F0000 */ sw $t7, ($v1) -/* AF8C8C 80081AEC 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8C90 80081AF0 3C19FA00 */ lui $t9, 0xfa00 -/* AF8C94 80081AF4 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AF8C98 80081AF8 24780008 */ addiu $t8, $v1, 8 -/* AF8C9C 80081AFC AD1802B0 */ sw $t8, 0x2b0($t0) -/* AF8CA0 80081B00 AC790000 */ sw $t9, ($v1) -/* AF8CA4 80081B04 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AF8CA8 80081B08 8FA50110 */ lw $a1, 0x110($sp) -/* AF8CAC 80081B0C 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* AF8CB0 80081B10 844F0F3C */ lh $t7, 0xf3c($v0) -/* AF8CB4 80081B14 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* AF8CB8 80081B18 00A12821 */ addu $a1, $a1, $at -/* AF8CBC 80081B1C 31EE00FF */ andi $t6, $t7, 0xff -/* AF8CC0 80081B20 844F0F38 */ lh $t7, 0xf38($v0) -/* AF8CC4 80081B24 000EC200 */ sll $t8, $t6, 8 -/* AF8CC8 80081B28 3C0A0700 */ lui $t2, 0x700 -/* AF8CCC 80081B2C 000F7600 */ sll $t6, $t7, 0x18 -/* AF8CD0 80081B30 844F0F3A */ lh $t7, 0xf3a($v0) -/* AF8CD4 80081B34 030EC825 */ or $t9, $t8, $t6 -/* AF8CD8 80081B38 3C098016 */ lui $t1, %hi(D_8015FFD0) # $t1, 0x8016 -/* AF8CDC 80081B3C 31F800FF */ andi $t8, $t7, 0xff -/* AF8CE0 80081B40 00187400 */ sll $t6, $t8, 0x10 -/* AF8CE4 80081B44 94B80254 */ lhu $t8, 0x254($a1) -/* AF8CE8 80081B48 032E7825 */ or $t7, $t9, $t6 -/* AF8CEC 80081B4C 2529FFD0 */ addiu $t1, %lo(D_8015FFD0) # addiu $t1, $t1, -0x30 -/* AF8CF0 80081B50 331900FF */ andi $t9, $t8, 0xff -/* AF8CF4 80081B54 01F97025 */ or $t6, $t7, $t9 -/* AF8CF8 80081B58 AC6E0004 */ sw $t6, 4($v1) -/* AF8CFC 80081B5C 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8D00 80081B60 3C0FFD70 */ lui $t7, 0xfd70 -/* AF8D04 80081B64 24780008 */ addiu $t8, $v1, 8 -/* AF8D08 80081B68 AD1802B0 */ sw $t8, 0x2b0($t0) -/* AF8D0C 80081B6C AC6F0000 */ sw $t7, ($v1) -/* AF8D10 80081B70 8CB9013C */ lw $t9, 0x13c($a1) -/* AF8D14 80081B74 3C18F570 */ lui $t8, 0xf570 -/* AF8D18 80081B78 AC790004 */ sw $t9, 4($v1) -/* AF8D1C 80081B7C 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8D20 80081B80 3C19E600 */ lui $t9, 0xe600 -/* AF8D24 80081B84 246E0008 */ addiu $t6, $v1, 8 -/* AF8D28 80081B88 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF8D2C 80081B8C AC6A0004 */ sw $t2, 4($v1) -/* AF8D30 80081B90 AC780000 */ sw $t8, ($v1) -/* AF8D34 80081B94 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8D38 80081B98 3C18F300 */ lui $t8, 0xf300 -/* AF8D3C 80081B9C 246F0008 */ addiu $t7, $v1, 8 -/* AF8D40 80081BA0 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF8D44 80081BA4 AC600004 */ sw $zero, 4($v1) -/* AF8D48 80081BA8 AC790000 */ sw $t9, ($v1) -/* AF8D4C 80081BAC 8D0702B0 */ lw $a3, 0x2b0($t0) -/* AF8D50 80081BB0 24EE0008 */ addiu $t6, $a3, 8 -/* AF8D54 80081BB4 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF8D58 80081BB8 ACF80000 */ sw $t8, ($a3) -/* AF8D5C 80081BBC 8D240000 */ lw $a0, ($t1) -/* AF8D60 80081BC0 8FA60100 */ lw $a2, 0x100($sp) -/* AF8D64 80081BC4 8C8F0040 */ lw $t7, 0x40($a0) -/* AF8D68 80081BC8 8C8E0044 */ lw $t6, 0x44($a0) -/* AF8D6C 80081BCC 00063040 */ sll $a2, $a2, 1 -/* AF8D70 80081BD0 01E6C821 */ addu $t9, $t7, $a2 -/* AF8D74 80081BD4 01C6C021 */ addu $t8, $t6, $a2 -/* AF8D78 80081BD8 870F0000 */ lh $t7, ($t8) -/* AF8D7C 80081BDC 87220000 */ lh $v0, ($t9) -/* AF8D80 80081BE0 240407FF */ li $a0, 2047 -/* AF8D84 80081BE4 01E20019 */ multu $t7, $v0 -/* AF8D88 80081BE8 00002812 */ mflo $a1 -/* AF8D8C 80081BEC 24A50003 */ addiu $a1, $a1, 3 -/* AF8D90 80081BF0 00052883 */ sra $a1, $a1, 2 -/* AF8D94 80081BF4 24A5FFFF */ addiu $a1, $a1, -1 -/* AF8D98 80081BF8 28A107FF */ slti $at, $a1, 0x7ff -/* AF8D9C 80081BFC 10200003 */ beqz $at, .L80081C0C -/* AF8DA0 80081C00 00000000 */ nop -/* AF8DA4 80081C04 10000001 */ b .L80081C0C -/* AF8DA8 80081C08 00A02025 */ move $a0, $a1 -.L80081C0C: -/* AF8DAC 80081C0C 04410003 */ bgez $v0, .L80081C1C -/* AF8DB0 80081C10 00021903 */ sra $v1, $v0, 4 -/* AF8DB4 80081C14 2441000F */ addiu $at, $v0, 0xf -/* AF8DB8 80081C18 00011903 */ sra $v1, $at, 4 -.L80081C1C: -/* AF8DBC 80081C1C 1C600003 */ bgtz $v1, .L80081C2C -/* AF8DC0 80081C20 00602825 */ move $a1, $v1 -/* AF8DC4 80081C24 10000001 */ b .L80081C2C -/* AF8DC8 80081C28 24050001 */ li $a1, 1 -.L80081C2C: -/* AF8DCC 80081C2C 1C600003 */ bgtz $v1, .L80081C3C -/* AF8DD0 80081C30 24B907FF */ addiu $t9, $a1, 0x7ff -/* AF8DD4 80081C34 10000002 */ b .L80081C40 -/* AF8DD8 80081C38 24020001 */ li $v0, 1 -.L80081C3C: -/* AF8DDC 80081C3C 00601025 */ move $v0, $v1 -.L80081C40: -/* AF8DE0 80081C40 0322001A */ div $zero, $t9, $v0 -/* AF8DE4 80081C44 00007012 */ mflo $t6 -/* AF8DE8 80081C48 31D80FFF */ andi $t8, $t6, 0xfff -/* AF8DEC 80081C4C 14400002 */ bnez $v0, .L80081C58 -/* AF8DF0 80081C50 00000000 */ nop -/* AF8DF4 80081C54 0007000D */ break 7 -.L80081C58: -/* AF8DF8 80081C58 2401FFFF */ li $at, -1 -/* AF8DFC 80081C5C 14410004 */ bne $v0, $at, .L80081C70 -/* AF8E00 80081C60 3C018000 */ lui $at, 0x8000 -/* AF8E04 80081C64 17210002 */ bne $t9, $at, .L80081C70 -/* AF8E08 80081C68 00000000 */ nop -/* AF8E0C 80081C6C 0006000D */ break 6 -.L80081C70: -/* AF8E10 80081C70 30990FFF */ andi $t9, $a0, 0xfff -/* AF8E14 80081C74 00197300 */ sll $t6, $t9, 0xc -/* AF8E18 80081C78 030A7825 */ or $t7, $t8, $t2 -/* AF8E1C 80081C7C 01EEC025 */ or $t8, $t7, $t6 -/* AF8E20 80081C80 ACF80004 */ sw $t8, 4($a3) -/* AF8E24 80081C84 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8E28 80081C88 3C0BE700 */ lui $t3, 0xe700 -/* AF8E2C 80081C8C 3C01F560 */ lui $at, 0xf560 -/* AF8E30 80081C90 24790008 */ addiu $t9, $v1, 8 -/* AF8E34 80081C94 AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF8E38 80081C98 AC600004 */ sw $zero, 4($v1) -/* AF8E3C 80081C9C AC6B0000 */ sw $t3, ($v1) -/* AF8E40 80081CA0 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8E44 80081CA4 3C0CF200 */ lui $t4, 0xf200 -/* AF8E48 80081CA8 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AF8E4C 80081CAC 246F0008 */ addiu $t7, $v1, 8 -/* AF8E50 80081CB0 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF8E54 80081CB4 8D2E0000 */ lw $t6, ($t1) -/* AF8E58 80081CB8 3C0DE100 */ lui $t5, 0xe100 -/* AF8E5C 80081CBC 3C1FF100 */ lui $ra, 0xf100 -/* AF8E60 80081CC0 8DD80040 */ lw $t8, 0x40($t6) -/* AF8E64 80081CC4 0306C821 */ addu $t9, $t8, $a2 -/* AF8E68 80081CC8 872F0000 */ lh $t7, ($t9) -/* AF8E6C 80081CCC AC600004 */ sw $zero, 4($v1) -/* AF8E70 80081CD0 000F7043 */ sra $t6, $t7, 1 -/* AF8E74 80081CD4 25D80007 */ addiu $t8, $t6, 7 -/* AF8E78 80081CD8 0018C8C3 */ sra $t9, $t8, 3 -/* AF8E7C 80081CDC 332F01FF */ andi $t7, $t9, 0x1ff -/* AF8E80 80081CE0 000F7240 */ sll $t6, $t7, 9 -/* AF8E84 80081CE4 01C1C025 */ or $t8, $t6, $at -/* AF8E88 80081CE8 AC780000 */ sw $t8, ($v1) -/* AF8E8C 80081CEC 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8E90 80081CF0 3C01E400 */ lui $at, 0xe400 -/* AF8E94 80081CF4 24790008 */ addiu $t9, $v1, 8 -/* AF8E98 80081CF8 AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF8E9C 80081CFC AC6C0000 */ sw $t4, ($v1) -/* AF8EA0 80081D00 8D240000 */ lw $a0, ($t1) -/* AF8EA4 80081D04 8C8F0044 */ lw $t7, 0x44($a0) -/* AF8EA8 80081D08 01E67021 */ addu $t6, $t7, $a2 -/* AF8EAC 80081D0C 85D80000 */ lh $t8, ($t6) -/* AF8EB0 80081D10 2719FFFF */ addiu $t9, $t8, -1 -/* AF8EB4 80081D14 8C980040 */ lw $t8, 0x40($a0) -/* AF8EB8 80081D18 00197880 */ sll $t7, $t9, 2 -/* AF8EBC 80081D1C 31EE0FFF */ andi $t6, $t7, 0xfff -/* AF8EC0 80081D20 0306C821 */ addu $t9, $t8, $a2 -/* AF8EC4 80081D24 872F0000 */ lh $t7, ($t9) -/* AF8EC8 80081D28 25F8FFFF */ addiu $t8, $t7, -1 -/* AF8ECC 80081D2C 0018C880 */ sll $t9, $t8, 2 -/* AF8ED0 80081D30 332F0FFF */ andi $t7, $t9, 0xfff -/* AF8ED4 80081D34 000FC300 */ sll $t8, $t7, 0xc -/* AF8ED8 80081D38 01D8C825 */ or $t9, $t6, $t8 -/* AF8EDC 80081D3C AC790004 */ sw $t9, 4($v1) -/* AF8EE0 80081D40 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8EE4 80081D44 246F0008 */ addiu $t7, $v1, 8 -/* AF8EE8 80081D48 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF8EEC 80081D4C 8D240000 */ lw $a0, ($t1) -/* AF8EF0 80081D50 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AF8EF4 80081D54 00602825 */ move $a1, $v1 -/* AF8EF8 80081D58 8C8E0044 */ lw $t6, 0x44($a0) -/* AF8EFC 80081D5C 844F0DD0 */ lh $t7, 0xdd0($v0) -/* AF8F00 80081D60 01C6C021 */ addu $t8, $t6, $a2 -/* AF8F04 80081D64 87190000 */ lh $t9, ($t8) -/* AF8F08 80081D68 032F7021 */ addu $t6, $t9, $t7 -/* AF8F0C 80081D6C 000EC080 */ sll $t8, $t6, 2 -/* AF8F10 80081D70 33190FFF */ andi $t9, $t8, 0xfff -/* AF8F14 80081D74 8C980040 */ lw $t8, 0x40($a0) -/* AF8F18 80081D78 03217825 */ or $t7, $t9, $at -/* AF8F1C 80081D7C 844E0DCE */ lh $t6, 0xdce($v0) -/* AF8F20 80081D80 0306C821 */ addu $t9, $t8, $a2 -/* AF8F24 80081D84 87380000 */ lh $t8, ($t9) -/* AF8F28 80081D88 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AF8F2C 80081D8C 24010052 */ li $at, 82 -/* AF8F30 80081D90 01D8C821 */ addu $t9, $t6, $t8 -/* AF8F34 80081D94 00197080 */ sll $t6, $t9, 2 -/* AF8F38 80081D98 31D80FFF */ andi $t8, $t6, 0xfff -/* AF8F3C 80081D9C 0018CB00 */ sll $t9, $t8, 0xc -/* AF8F40 80081DA0 01F97025 */ or $t6, $t7, $t9 -/* AF8F44 80081DA4 AC6E0000 */ sw $t6, ($v1) -/* AF8F48 80081DA8 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AF8F4C 80081DAC 84580DD0 */ lh $t8, 0xdd0($v0) -/* AF8F50 80081DB0 844E0DCE */ lh $t6, 0xdce($v0) -/* AF8F54 80081DB4 00187880 */ sll $t7, $t8, 2 -/* AF8F58 80081DB8 31F90FFF */ andi $t9, $t7, 0xfff -/* AF8F5C 80081DBC 000EC080 */ sll $t8, $t6, 2 -/* AF8F60 80081DC0 330F0FFF */ andi $t7, $t8, 0xfff -/* AF8F64 80081DC4 000F7300 */ sll $t6, $t7, 0xc -/* AF8F68 80081DC8 032EC025 */ or $t8, $t9, $t6 -/* AF8F6C 80081DCC AC780004 */ sw $t8, 4($v1) -/* AF8F70 80081DD0 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8F74 80081DD4 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400 -/* AF8F78 80081DD8 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400 -/* AF8F7C 80081DDC 246F0008 */ addiu $t7, $v1, 8 -/* AF8F80 80081DE0 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF8F84 80081DE4 AC600004 */ sw $zero, 4($v1) -/* AF8F88 80081DE8 AC6D0000 */ sw $t5, ($v1) -/* AF8F8C 80081DEC 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF8F90 80081DF0 3C0F8016 */ lui $t7, %hi(gSaveContext+4) # $t7, 0x8016 -/* AF8F94 80081DF4 24790008 */ addiu $t9, $v1, 8 -/* AF8F98 80081DF8 AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF8F9C 80081DFC AC6E0004 */ sw $t6, 4($v1) -/* AF8FA0 80081E00 AC7F0000 */ sw $ra, ($v1) -/* AF8FA4 80081E04 8FB80110 */ lw $t8, 0x110($sp) -/* AF8FA8 80081E08 00601025 */ move $v0, $v1 -/* AF8FAC 80081E0C 870400A4 */ lh $a0, 0xa4($t8) -/* AF8FB0 80081E10 10810005 */ beq $a0, $at, .L80081E28 -/* AF8FB4 80081E14 24010055 */ li $at, 85 -/* AF8FB8 80081E18 10810003 */ beq $a0, $at, .L80081E28 -/* AF8FBC 80081E1C 24010059 */ li $at, 89 -/* AF8FC0 80081E20 5481000B */ bnel $a0, $at, .L80081E50 -/* AF8FC4 80081E24 8D390000 */ lw $t9, ($t1) -.L80081E28: -/* AF8FC8 80081E28 8DEFE664 */ lw $t7, %lo(gSaveContext+4)($t7) -/* AF8FCC 80081E2C 24010011 */ li $at, 17 -/* AF8FD0 80081E30 24020011 */ li $v0, 17 -/* AF8FD4 80081E34 11E00003 */ beqz $t7, .L80081E44 -/* AF8FD8 80081E38 00000000 */ nop -/* AF8FDC 80081E3C 10000001 */ b .L80081E44 -/* AF8FE0 80081E40 24020005 */ li $v0, 5 -.L80081E44: -/* AF8FE4 80081E44 5041007D */ beql $v0, $at, .L8008203C -/* AF8FE8 80081E48 24010059 */ li $at, 89 -/* AF8FEC 80081E4C 8D390000 */ lw $t9, ($t1) -.L80081E50: -/* AF8FF0 80081E50 3C078012 */ lui $a3, %hi(D_80123A5C) # $a3, 0x8012 -/* AF8FF4 80081E54 24E73A5C */ addiu $a3, %lo(D_80123A5C) # addiu $a3, $a3, 0x3a5c -/* AF8FF8 80081E58 84EE0000 */ lh $t6, ($a3) -/* AF8FFC 80081E5C 8F220050 */ lw $v0, 0x50($t9) -/* AF9000 80081E60 3405FFFF */ li $a1, 65535 -/* AF9004 80081E64 000EC040 */ sll $t8, $t6, 1 -/* AF9008 80081E68 00587821 */ addu $t7, $v0, $t8 -/* AF900C 80081E6C 95E30000 */ lhu $v1, ($t7) -/* AF9010 80081E70 50A3000E */ beql $a1, $v1, .L80081EAC -/* AF9014 80081E74 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF9018 80081E78 10A3006F */ beq $a1, $v1, .L80082038 -/* AF901C 80081E7C 0046C821 */ addu $t9, $v0, $a2 -/* AF9020 80081E80 972E0000 */ lhu $t6, ($t9) -/* AF9024 80081E84 3C0F8012 */ lui $t7, %hi(gBitFlags) -/* AF9028 80081E88 3C198016 */ lui $t9, %hi(gSaveContext+0xf2c) # $t9, 0x8016 -/* AF902C 80081E8C 000EC080 */ sll $t8, $t6, 2 -/* AF9030 80081E90 01F87821 */ addu $t7, $t7, $t8 -/* AF9034 80081E94 8DEF7120 */ lw $t7, %lo(gBitFlags)($t7) -/* AF9038 80081E98 9739F58C */ lhu $t9, %lo(gSaveContext+0xf2c)($t9) -/* AF903C 80081E9C 01F97024 */ and $t6, $t7, $t9 -/* AF9040 80081EA0 51C00066 */ beql $t6, $zero, .L8008203C -/* AF9044 80081EA4 24010059 */ li $at, 89 -/* AF9048 80081EA8 8D0302B0 */ lw $v1, 0x2b0($t0) -.L80081EAC: -/* AF904C 80081EAC 3C190200 */ lui $t9, %hi(D_02002500) # $t9, 0x200 -/* AF9050 80081EB0 27392500 */ addiu $t9, %lo(D_02002500) # addiu $t9, $t9, 0x2500 -/* AF9054 80081EB4 24780008 */ addiu $t8, $v1, 8 -/* AF9058 80081EB8 AD1802B0 */ sw $t8, 0x2b0($t0) -/* AF905C 80081EBC 3C0FFD10 */ lui $t7, 0xfd10 -/* AF9060 80081EC0 AC6F0000 */ sw $t7, ($v1) -/* AF9064 80081EC4 AC790004 */ sw $t9, 4($v1) -/* AF9068 80081EC8 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF906C 80081ECC 3C18F510 */ lui $t8, 0xf510 -/* AF9070 80081ED0 3C19E600 */ lui $t9, 0xe600 -/* AF9074 80081ED4 246E0008 */ addiu $t6, $v1, 8 -/* AF9078 80081ED8 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF907C 80081EDC AC6A0004 */ sw $t2, 4($v1) -/* AF9080 80081EE0 AC780000 */ sw $t8, ($v1) -/* AF9084 80081EE4 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF9088 80081EE8 3C18F300 */ lui $t8, 0xf300 -/* AF908C 80081EEC 3C01E400 */ lui $at, 0xe400 -/* AF9090 80081EF0 246F0008 */ addiu $t7, $v1, 8 -/* AF9094 80081EF4 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF9098 80081EF8 AC600004 */ sw $zero, 4($v1) -/* AF909C 80081EFC AC790000 */ sw $t9, ($v1) -/* AF90A0 80081F00 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF90A4 80081F04 3C0F0703 */ lui $t7, (0x0703F400 >> 16) # lui $t7, 0x703 -/* AF90A8 80081F08 35EFF400 */ ori $t7, (0x0703F400 & 0xFFFF) # ori $t7, $t7, 0xf400 -/* AF90AC 80081F0C 246E0008 */ addiu $t6, $v1, 8 -/* AF90B0 80081F10 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF90B4 80081F14 AC6F0004 */ sw $t7, 4($v1) -/* AF90B8 80081F18 AC780000 */ sw $t8, ($v1) -/* AF90BC 80081F1C 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF90C0 80081F20 3C18F510 */ lui $t8, (0xF5100400 >> 16) # lui $t8, 0xf510 -/* AF90C4 80081F24 37180400 */ ori $t8, (0xF5100400 & 0xFFFF) # ori $t8, $t8, 0x400 -/* AF90C8 80081F28 24790008 */ addiu $t9, $v1, 8 -/* AF90CC 80081F2C AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF90D0 80081F30 AC600004 */ sw $zero, 4($v1) -/* AF90D4 80081F34 AC6B0000 */ sw $t3, ($v1) -/* AF90D8 80081F38 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF90DC 80081F3C 3C190001 */ lui $t9, (0x0001C01C >> 16) # lui $t9, 1 -/* AF90E0 80081F40 3739C01C */ ori $t9, (0x0001C01C & 0xFFFF) # ori $t9, $t9, 0xc01c -/* AF90E4 80081F44 246E0008 */ addiu $t6, $v1, 8 -/* AF90E8 80081F48 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF90EC 80081F4C AC600004 */ sw $zero, 4($v1) -/* AF90F0 80081F50 AC780000 */ sw $t8, ($v1) -/* AF90F4 80081F54 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF90F8 80081F58 246F0008 */ addiu $t7, $v1, 8 -/* AF90FC 80081F5C AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF9100 80081F60 AC790004 */ sw $t9, 4($v1) -/* AF9104 80081F64 AC6C0000 */ sw $t4, ($v1) -/* AF9108 80081F68 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF910C 80081F6C 246E0008 */ addiu $t6, $v1, 8 -/* AF9110 80081F70 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF9114 80081F74 8D240000 */ lw $a0, ($t1) -/* AF9118 80081F78 84E20000 */ lh $v0, ($a3) -/* AF911C 80081F7C 8C98004C */ lw $t8, 0x4c($a0) -/* AF9120 80081F80 00021040 */ sll $v0, $v0, 1 -/* AF9124 80081F84 03027821 */ addu $t7, $t8, $v0 -/* AF9128 80081F88 85F90000 */ lh $t9, ($t7) -/* AF912C 80081F8C 272E0008 */ addiu $t6, $t9, 8 -/* AF9130 80081F90 000EC080 */ sll $t8, $t6, 2 -/* AF9134 80081F94 8C8E0048 */ lw $t6, 0x48($a0) -/* AF9138 80081F98 330F0FFF */ andi $t7, $t8, 0xfff -/* AF913C 80081F9C 01E1C825 */ or $t9, $t7, $at -/* AF9140 80081FA0 01C2C021 */ addu $t8, $t6, $v0 -/* AF9144 80081FA4 870F0000 */ lh $t7, ($t8) -/* AF9148 80081FA8 25EE0008 */ addiu $t6, $t7, 8 -/* AF914C 80081FAC 000EC080 */ sll $t8, $t6, 2 -/* AF9150 80081FB0 330F0FFF */ andi $t7, $t8, 0xfff -/* AF9154 80081FB4 000F7300 */ sll $t6, $t7, 0xc -/* AF9158 80081FB8 032EC025 */ or $t8, $t9, $t6 -/* AF915C 80081FBC AC780000 */ sw $t8, ($v1) -/* AF9160 80081FC0 8D240000 */ lw $a0, ($t1) -/* AF9164 80081FC4 84E20000 */ lh $v0, ($a3) -/* AF9168 80081FC8 8C8F004C */ lw $t7, 0x4c($a0) -/* AF916C 80081FCC 00021040 */ sll $v0, $v0, 1 -/* AF9170 80081FD0 01E2C821 */ addu $t9, $t7, $v0 -/* AF9174 80081FD4 872E0000 */ lh $t6, ($t9) -/* AF9178 80081FD8 8C990048 */ lw $t9, 0x48($a0) -/* AF917C 80081FDC 000EC080 */ sll $t8, $t6, 2 -/* AF9180 80081FE0 330F0FFF */ andi $t7, $t8, 0xfff -/* AF9184 80081FE4 03227021 */ addu $t6, $t9, $v0 -/* AF9188 80081FE8 85D80000 */ lh $t8, ($t6) -/* AF918C 80081FEC 0018C880 */ sll $t9, $t8, 2 -/* AF9190 80081FF0 332E0FFF */ andi $t6, $t9, 0xfff -/* AF9194 80081FF4 000EC300 */ sll $t8, $t6, 0xc -/* AF9198 80081FF8 01F8C825 */ or $t9, $t7, $t8 -/* AF919C 80081FFC AC790004 */ sw $t9, 4($v1) -/* AF91A0 80082000 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF91A4 80082004 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 -/* AF91A8 80082008 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 -/* AF91AC 8008200C 246E0008 */ addiu $t6, $v1, 8 -/* AF91B0 80082010 AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF91B4 80082014 AC600004 */ sw $zero, 4($v1) -/* AF91B8 80082018 AC6D0000 */ sw $t5, ($v1) -/* AF91BC 8008201C 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF91C0 80082020 246F0008 */ addiu $t7, $v1, 8 -/* AF91C4 80082024 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF91C8 80082028 AC780004 */ sw $t8, 4($v1) -/* AF91CC 8008202C AC7F0000 */ sw $ra, ($v1) -/* AF91D0 80082030 8FB90110 */ lw $t9, 0x110($sp) -/* AF91D4 80082034 872400A4 */ lh $a0, 0xa4($t9) -.L80082038: -/* AF91D8 80082038 24010059 */ li $at, 89 -.L8008203C: -/* AF91DC 8008203C 1481004B */ bne $a0, $at, .L8008216C -/* AF91E0 80082040 3C0E8012 */ lui $t6, %hi(gBitFlags+0x24) # $t6, 0x8012 -/* AF91E4 80082044 3C0F8016 */ lui $t7, %hi(gSaveContext+0xf2c) # $t7, 0x8016 -/* AF91E8 80082048 95EFF58C */ lhu $t7, %lo(gSaveContext+0xf2c)($t7) -/* AF91EC 8008204C 8DCE7144 */ lw $t6, %lo(gBitFlags+0x24)($t6) -/* AF91F0 80082050 3C040200 */ lui $a0, %hi(D_02002500) # $a0, 0x200 -/* AF91F4 80082054 01CFC024 */ and $t8, $t6, $t7 -/* AF91F8 80082058 13000044 */ beqz $t8, .L8008216C -/* AF91FC 8008205C 00000000 */ nop -/* AF9200 80082060 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF9204 80082064 24842500 */ addiu $a0, %lo(D_02002500) # addiu $a0, $a0, 0x2500 -/* AF9208 80082068 3C0EFD10 */ lui $t6, 0xfd10 -/* AF920C 8008206C 24790008 */ addiu $t9, $v1, 8 -/* AF9210 80082070 AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF9214 80082074 AC640004 */ sw $a0, 4($v1) -/* AF9218 80082078 AC6E0000 */ sw $t6, ($v1) -/* AF921C 8008207C 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF9220 80082080 3C18F510 */ lui $t8, 0xf510 -/* AF9224 80082084 3C0EE600 */ lui $t6, 0xe600 -/* AF9228 80082088 246F0008 */ addiu $t7, $v1, 8 -/* AF922C 8008208C AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF9230 80082090 AC6A0004 */ sw $t2, 4($v1) -/* AF9234 80082094 AC780000 */ sw $t8, ($v1) -/* AF9238 80082098 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF923C 8008209C 3C18F300 */ lui $t8, 0xf300 -/* AF9240 800820A0 24790008 */ addiu $t9, $v1, 8 -/* AF9244 800820A4 AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF9248 800820A8 AC600004 */ sw $zero, 4($v1) -/* AF924C 800820AC AC6E0000 */ sw $t6, ($v1) -/* AF9250 800820B0 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF9254 800820B4 3C190703 */ lui $t9, (0x0703F400 >> 16) # lui $t9, 0x703 -/* AF9258 800820B8 3739F400 */ ori $t9, (0x0703F400 & 0xFFFF) # ori $t9, $t9, 0xf400 -/* AF925C 800820BC 246F0008 */ addiu $t7, $v1, 8 -/* AF9260 800820C0 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF9264 800820C4 AC790004 */ sw $t9, 4($v1) -/* AF9268 800820C8 AC780000 */ sw $t8, ($v1) -/* AF926C 800820CC 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF9270 800820D0 3C18F510 */ lui $t8, (0xF5100400 >> 16) # lui $t8, 0xf510 -/* AF9274 800820D4 37180400 */ ori $t8, (0xF5100400 & 0xFFFF) # ori $t8, $t8, 0x400 -/* AF9278 800820D8 246E0008 */ addiu $t6, $v1, 8 -/* AF927C 800820DC AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF9280 800820E0 AC600004 */ sw $zero, 4($v1) -/* AF9284 800820E4 AC6B0000 */ sw $t3, ($v1) -/* AF9288 800820E8 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF928C 800820EC 3C0E0001 */ lui $t6, (0x0001C01C >> 16) # lui $t6, 1 -/* AF9290 800820F0 35CEC01C */ ori $t6, (0x0001C01C & 0xFFFF) # ori $t6, $t6, 0xc01c -/* AF9294 800820F4 246F0008 */ addiu $t7, $v1, 8 -/* AF9298 800820F8 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF929C 800820FC AC600004 */ sw $zero, 4($v1) -/* AF92A0 80082100 AC780000 */ sw $t8, ($v1) -/* AF92A4 80082104 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF92A8 80082108 3C18E445 */ lui $t8, (0xE4458288 >> 16) # lui $t8, 0xe445 -/* AF92AC 8008210C 37188288 */ ori $t8, (0xE4458288 & 0xFFFF) # ori $t8, $t8, 0x8288 -/* AF92B0 80082110 24790008 */ addiu $t9, $v1, 8 -/* AF92B4 80082114 AD1902B0 */ sw $t9, 0x2b0($t0) -/* AF92B8 80082118 AC6E0004 */ sw $t6, 4($v1) -/* AF92BC 8008211C AC6C0000 */ sw $t4, ($v1) -/* AF92C0 80082120 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF92C4 80082124 3C190043 */ lui $t9, (0x00438268 >> 16) # lui $t9, 0x43 -/* AF92C8 80082128 37398268 */ ori $t9, (0x00438268 & 0xFFFF) # ori $t9, $t9, 0x8268 -/* AF92CC 8008212C 246F0008 */ addiu $t7, $v1, 8 -/* AF92D0 80082130 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF92D4 80082134 AC790004 */ sw $t9, 4($v1) -/* AF92D8 80082138 AC780000 */ sw $t8, ($v1) -/* AF92DC 8008213C 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF92E0 80082140 3C180400 */ lui $t8, (0x04000400 >> 16) # lui $t8, 0x400 -/* AF92E4 80082144 37180400 */ ori $t8, (0x04000400 & 0xFFFF) # ori $t8, $t8, 0x400 -/* AF92E8 80082148 246E0008 */ addiu $t6, $v1, 8 -/* AF92EC 8008214C AD0E02B0 */ sw $t6, 0x2b0($t0) -/* AF92F0 80082150 AC600004 */ sw $zero, 4($v1) -/* AF92F4 80082154 AC6D0000 */ sw $t5, ($v1) -/* AF92F8 80082158 8D0302B0 */ lw $v1, 0x2b0($t0) -/* AF92FC 8008215C 246F0008 */ addiu $t7, $v1, 8 -/* AF9300 80082160 AD0F02B0 */ sw $t7, 0x2b0($t0) -/* AF9304 80082164 AC780004 */ sw $t8, 4($v1) -/* AF9308 80082168 AC7F0000 */ sw $ra, ($v1) -.L8008216C: -/* AF930C 8008216C 0C020490 */ jal func_80081240 -/* AF9310 80082170 8FA40110 */ lw $a0, 0x110($sp) -/* AF9314 80082174 8FB90110 */ lw $t9, 0x110($sp) -.L80082178: -/* AF9318 80082178 2401FFDF */ li $at, -33 -/* AF931C 8008217C 972E0020 */ lhu $t6, 0x20($t9) -/* AF9320 80082180 01C17827 */ nor $t7, $t6, $at -/* AF9324 80082184 55E00026 */ bnezl $t7, .L80082220 -/* AF9328 80082188 8FAF0110 */ lw $t7, 0x110($sp) -/* AF932C 8008218C 0C02FF21 */ jal Gameplay_InCsMode -/* AF9330 80082190 03202025 */ move $a0, $t9 -/* AF9334 80082194 14400021 */ bnez $v0, .L8008221C -/* AF9338 80082198 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016 -/* AF933C 8008219C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8) -/* AF9340 800821A0 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* AF9344 800821A4 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* AF9348 800821A8 870E0DD2 */ lh $t6, 0xdd2($t8) -/* AF934C 800821AC 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* AF9350 800821B0 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* AF9354 800821B4 15C0000E */ bnez $t6, .L800821F0 -/* AF9358 800821B8 24044814 */ li $a0, 18452 -/* AF935C 800821BC 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013 -/* AF9360 800821C0 3C0F8013 */ lui $t7, %hi(D_801333E8) # $t7, 0x8013 -/* AF9364 800821C4 25EF33E8 */ addiu $t7, %lo(D_801333E8) # addiu $t7, $t7, 0x33e8 -/* AF9368 800821C8 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0 -/* AF936C 800821CC 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013 -/* AF9370 800821D0 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4 -/* AF9374 800821D4 AFA70010 */ sw $a3, 0x10($sp) -/* AF9378 800821D8 AFAF0014 */ sw $t7, 0x14($sp) -/* AF937C 800821DC 24044813 */ li $a0, 18451 -/* AF9380 800821E0 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* AF9384 800821E4 24060004 */ li $a2, 4 -/* AF9388 800821E8 10000007 */ b .L80082208 -/* AF938C 800821EC 00000000 */ nop -.L800821F0: -/* AF9390 800821F0 3C198013 */ lui $t9, %hi(D_801333E8) # $t9, 0x8013 -/* AF9394 800821F4 273933E8 */ addiu $t9, %lo(D_801333E8) # addiu $t9, $t9, 0x33e8 -/* AF9398 800821F8 AFB90014 */ sw $t9, 0x14($sp) -/* AF939C 800821FC 24060004 */ li $a2, 4 -/* AF93A0 80082200 0C03DCE3 */ jal Audio_PlaySoundGeneral -/* AF93A4 80082204 AFA70010 */ sw $a3, 0x10($sp) -.L80082208: -/* AF93A8 80082208 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AF93AC 8008220C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* AF93B0 80082210 84580DD2 */ lh $t8, 0xdd2($v0) -/* AF93B4 80082214 3B0E0001 */ xori $t6, $t8, 1 -/* AF93B8 80082218 A44E0DD2 */ sh $t6, 0xdd2($v0) -.L8008221C: -/* AF93BC 8008221C 8FAF0110 */ lw $t7, 0x110($sp) -.L80082220: -/* AF93C0 80082220 3C068014 */ lui $a2, %hi(D_8013D988) # $a2, 0x8014 -/* AF93C4 80082224 24C6D988 */ addiu $a2, %lo(D_8013D988) # addiu $a2, $a2, -0x2678 -/* AF93C8 80082228 27A400EC */ addiu $a0, $sp, 0xec -/* AF93CC 8008222C 2407030E */ li $a3, 782 -/* AF93D0 80082230 0C031AD5 */ jal Graph_CloseDisps -/* AF93D4 80082234 8DE50000 */ lw $a1, ($t7) -/* AF93D8 80082238 8FBF001C */ lw $ra, 0x1c($sp) -/* AF93DC 8008223C 27BD0110 */ addiu $sp, $sp, 0x110 -/* AF93E0 80082240 03E00008 */ jr $ra -/* AF93E4 80082244 00000000 */ nop - diff --git a/asm/non_matchings/code/z_map_exp/func_8008226C.s b/asm/non_matchings/code/z_map_exp/Map_Update.s similarity index 90% rename from asm/non_matchings/code/z_map_exp/func_8008226C.s rename to asm/non_matchings/code/z_map_exp/Map_Update.s index 491c2cd72d..56066c6f80 100644 --- a/asm/non_matchings/code/z_map_exp/func_8008226C.s +++ b/asm/non_matchings/code/z_map_exp/Map_Update.s @@ -46,7 +46,7 @@ glabel jtbl_8013DC8C .word L8008255C .text -glabel func_8008226C +glabel Map_Update /* AF940C 8008226C 27BDFFB0 */ addiu $sp, $sp, -0x50 /* AF9410 80082270 3C010001 */ lui $at, 1 /* AF9414 80082274 AFBF002C */ sw $ra, 0x2c($sp) @@ -86,7 +86,7 @@ glabel L800822DC /* AF9498 800822F8 910900A8 */ lbu $t1, 0xa8($t0) /* AF949C 800822FC 8CF90008 */ lw $t9, 8($a3) /* AF94A0 80082300 0013C0C0 */ sll $t8, $s3, 3 -/* AF94A4 80082304 3C0C8016 */ lui $t4, %hi(D_8015FFD0) # $t4, 0x8016 +/* AF94A4 80082304 3C0C8016 */ lui $t4, %hi(gMapData) # $t4, 0x8016 /* AF94A8 80082308 03295024 */ and $t2, $t9, $t1 /* AF94AC 8008230C 11400004 */ beqz $t2, .L80082320 /* AF94B0 80082310 0313C023 */ subu $t8, $t8, $s3 @@ -96,7 +96,7 @@ glabel L800822DC .L80082320: /* AF94C0 80082320 A240015F */ sb $zero, 0x15f($s2) .L80082324: -/* AF94C4 80082324 8D8CFFD0 */ lw $t4, %lo(D_8015FFD0)($t4) +/* AF94C4 80082324 8D8CFFD0 */ lw $t4, %lo(gMapData)($t4) /* AF94C8 80082328 00137140 */ sll $t6, $s3, 5 /* AF94CC 8008232C 00008825 */ move $s1, $zero /* AF94D0 80082330 8D8D0054 */ lw $t5, 0x54($t4) @@ -129,7 +129,7 @@ glabel L800822DC /* AF9534 80082394 AC6A00EC */ sw $t2, 0xec($v1) /* AF9538 80082398 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) /* AF953C 8008239C 02202825 */ move $a1, $s1 -/* AF9540 800823A0 0C020892 */ jal func_80082248 +/* AF9540 800823A0 0C020892 */ jal Map_GetFloorTextIndexOffset /* AF9544 800823A4 A5710F50 */ sh $s1, 0xf50($t3) /* AF9548 800823A8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 /* AF954C 800823AC 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) @@ -139,7 +139,7 @@ glabel L800822DC /* AF955C 800823BC 004D7021 */ addu $t6, $v0, $t5 /* AF9560 800823C0 118E0008 */ beq $t4, $t6, .L800823E4 /* AF9564 800823C4 00000000 */ nop -/* AF9568 800823C8 0C020892 */ jal func_80082248 +/* AF9568 800823C8 0C020892 */ jal Map_GetFloorTextIndexOffset /* AF956C 800823CC 02202825 */ move $a1, $s1 /* AF9570 800823D0 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 /* AF9574 800823D4 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) @@ -147,13 +147,13 @@ glabel L800822DC /* AF957C 800823DC 004FC021 */ addu $t8, $v0, $t7 /* AF9580 800823E0 A4780F2E */ sh $t8, 0xf2e($v1) .L800823E4: -/* AF9584 800823E4 3C198012 */ lui $t9, %hi(D_80123A60) # $t9, 0x8012 -/* AF9588 800823E8 87393A60 */ lh $t9, %lo(D_80123A60)($t9) +/* AF9584 800823E4 3C198012 */ lui $t9, %hi(sLastRoomNum) # $t9, 0x8012 +/* AF9588 800823E8 87393A60 */ lh $t9, %lo(sLastRoomNum)($t9) /* AF958C 800823EC 8646025C */ lh $a2, 0x25c($s2) -/* AF9590 800823F0 3C088016 */ lui $t0, %hi(D_8015FFD0) # $t0, 0x8016 +/* AF9590 800823F0 3C088016 */ lui $t0, %hi(gMapData) # $t0, 0x8016 /* AF9594 800823F4 1326000D */ beq $t9, $a2, .L8008242C /* AF9598 800823F8 00000000 */ nop -/* AF959C 800823FC 8D08FFD0 */ lw $t0, %lo(D_8015FFD0)($t0) +/* AF959C 800823FC 8D08FFD0 */ lw $t0, %lo(gMapData)($t0) /* AF95A0 80082400 00135040 */ sll $t2, $s3, 1 /* AF95A4 80082404 3C048014 */ lui $a0, %hi(D_8013D998) # $a0, 0x8014 /* AF95A8 80082408 8D090058 */ lw $t1, 0x58($t0) @@ -163,11 +163,11 @@ glabel L800822DC /* AF95B8 80082418 0C00084C */ jal osSyncPrintf /* AF95BC 8008241C 95670000 */ lhu $a3, ($t3) /* AF95C0 80082420 8646025C */ lh $a2, 0x25c($s2) -/* AF95C4 80082424 3C018012 */ lui $at, %hi(D_80123A60) # $at, 0x8012 -/* AF95C8 80082428 A4263A60 */ sh $a2, %lo(D_80123A60)($at) +/* AF95C4 80082424 3C018012 */ lui $at, %hi(sLastRoomNum) # $at, 0x8012 +/* AF95C8 80082428 A4263A60 */ sh $a2, %lo(sLastRoomNum)($at) .L8008242C: -/* AF95CC 8008242C 3C028016 */ lui $v0, %hi(D_8015FFD0) # $v0, 0x8016 -/* AF95D0 80082430 8C42FFD0 */ lw $v0, %lo(D_8015FFD0)($v0) +/* AF95CC 8008242C 3C028016 */ lui $v0, %hi(gMapData) # $v0, 0x8016 +/* AF95D0 80082430 8C42FFD0 */ lw $v0, %lo(gMapData)($v0) /* AF95D4 80082434 00136840 */ sll $t5, $s3, 1 /* AF95D8 80082438 AFAD0034 */ sw $t5, 0x34($sp) /* AF95DC 8008243C 8C4C0058 */ lw $t4, 0x58($v0) @@ -220,14 +220,14 @@ glabel L800822DC /* AF9694 800824F4 0C00084C */ jal osSyncPrintf /* AF9698 800824F8 2484D9D8 */ addiu $a0, %lo(D_8013D9D8) # addiu $a0, $a0, -0x2628 /* AF969C 800824FC 02802025 */ move $a0, $s4 -/* AF96A0 80082500 0C0202AD */ jal func_80080AB4 +/* AF96A0 80082500 0C0202AD */ jal Map_InitData /* AF96A4 80082504 8645025C */ lh $a1, 0x25c($s2) /* AF96A8 80082508 3C018016 */ lui $at, %hi(gSaveContext+0x1422) # $at, 0x8016 /* AF96AC 8008250C A420FA82 */ sh $zero, %lo(gSaveContext+0x1422)($at) -/* AF96B0 80082510 0C0201E8 */ jal func_800807A0 +/* AF96B0 80082510 0C0201E8 */ jal Map_SavePlayerInitialInfo /* AF96B4 80082514 02802025 */ move $a0, $s4 -/* AF96B8 80082518 3C028016 */ lui $v0, %hi(D_8015FFD0) # $v0, 0x8016 -/* AF96BC 8008251C 8C42FFD0 */ lw $v0, %lo(D_8015FFD0)($v0) +/* AF96B8 80082518 3C028016 */ lui $v0, %hi(gMapData) # $v0, 0x8016 +/* AF96BC 8008251C 8C42FFD0 */ lw $v0, %lo(gMapData)($v0) /* AF96C0 80082520 8FAD0034 */ lw $t5, 0x34($sp) /* AF96C4 80082524 8646025C */ lh $a2, 0x25c($s2) /* AF96C8 80082528 8C4B0058 */ lw $t3, 0x58($v0) @@ -246,8 +246,8 @@ glabel L800822DC /* AF96F4 80082554 10000019 */ b .L800825BC /* AF96F8 80082558 A5C60F28 */ sh $a2, 0xf28($t6) glabel L8008255C -/* AF96FC 8008255C 3C0F8016 */ lui $t7, %hi(D_8015FFD0) # $t7, 0x8016 -/* AF9700 80082560 8DEFFFD0 */ lw $t7, %lo(D_8015FFD0)($t7) +/* AF96FC 8008255C 3C0F8016 */ lui $t7, %hi(gMapData) # $t7, 0x8016 +/* AF9700 80082560 8DEFFFD0 */ lw $t7, %lo(gMapData)($t7) /* AF9704 80082564 0002C840 */ sll $t9, $v0, 1 /* AF9708 80082568 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 /* AF970C 8008256C 8DF80004 */ lw $t8, 4($t7) @@ -255,9 +255,9 @@ glabel L8008255C /* AF9714 80082574 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 /* AF9718 80082578 03194021 */ addu $t0, $t8, $t9 /* AF971C 8008257C 8509FFDE */ lh $t1, -0x22($t0) -/* AF9720 80082580 3C0B8016 */ lui $t3, %hi(D_8015FFD0) # $t3, 0x8016 +/* AF9720 80082580 3C0B8016 */ lui $t3, %hi(gMapData) # $t3, 0x8016 /* AF9724 80082584 A5490F50 */ sh $t1, 0xf50($t2) -/* AF9728 80082588 8D6BFFD0 */ lw $t3, %lo(D_8015FFD0)($t3) +/* AF9728 80082588 8D6BFFD0 */ lw $t3, %lo(gMapData)($t3) /* AF972C 8008258C 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) /* AF9730 80082590 868C00A4 */ lh $t4, 0xa4($s4) /* AF9734 80082594 8D6D0000 */ lw $t5, ($t3) diff --git a/asm/non_matchings/code/z_map_exp/func_80081240.s b/asm/non_matchings/code/z_map_exp/Minimap_DrawCompassIcons.s similarity index 97% rename from asm/non_matchings/code/z_map_exp/func_80081240.s rename to asm/non_matchings/code/z_map_exp/Minimap_DrawCompassIcons.s index 662f8a4cd5..86391db6bd 100644 --- a/asm/non_matchings/code/z_map_exp/func_80081240.s +++ b/asm/non_matchings/code/z_map_exp/Minimap_DrawCompassIcons.s @@ -23,7 +23,7 @@ glabel D_8013DC10 .float -1.6 .text -glabel func_80081240 +glabel Minimap_DrawCompassIcons /* AF83E0 80081240 27BDFF90 */ addiu $sp, $sp, -0x70 /* AF83E4 80081244 AFBF001C */ sw $ra, 0x1c($sp) /* AF83E8 80081248 AFB00018 */ sw $s0, 0x18($sp) @@ -199,12 +199,12 @@ glabel func_80081240 /* AF867C 800814DC AE1802B0 */ sw $t8, 0x2b0($s0) /* AF8680 800814E0 AC450004 */ sw $a1, 4($v0) /* AF8684 800814E4 AC590000 */ sw $t9, ($v0) -/* AF8688 800814E8 3C028012 */ lui $v0, %hi(D_80123A50) # $v0, 0x8012 -/* AF868C 800814EC 84423A50 */ lh $v0, %lo(D_80123A50)($v0) +/* AF8688 800814E8 3C028012 */ lui $v0, %hi(sPlayerInitialPosX) # $v0, 0x8012 +/* AF868C 800814EC 84423A50 */ lh $v0, %lo(sPlayerInitialPosX)($v0) /* AF8690 800814F0 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 /* AF8694 800814F4 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1) -/* AF8698 800814F8 3C048012 */ lui $a0, %hi(D_80123A54) # $a0, 0x8012 -/* AF869C 800814FC 84843A54 */ lh $a0, %lo(D_80123A54)($a0) +/* AF8698 800814F8 3C048012 */ lui $a0, %hi(sPlayerInitialPosZ) # $a0, 0x8012 +/* AF869C 800814FC 84843A54 */ lh $a0, %lo(sPlayerInitialPosZ)($a0) /* AF86A0 80081500 84690F30 */ lh $t1, 0xf30($v1) /* AF86A4 80081504 3C014120 */ li $at, 0x41200000 # 0.000000 /* AF86A8 80081508 44810000 */ mtc1 $at, $f0 @@ -277,8 +277,8 @@ glabel func_80081240 /* AF87A4 80081604 468021A0 */ cvt.s.w $f6, $f4 /* AF87A8 80081608 0C0342DC */ jal Matrix_RotateX /* AF87AC 8008160C 46083303 */ div.s $f12, $f6, $f8 -/* AF87B0 80081610 3C098012 */ lui $t1, %hi(D_80123A58) # $t1, 0x8012 -/* AF87B4 80081614 85293A58 */ lh $t1, %lo(D_80123A58)($t1) +/* AF87B0 80081610 3C098012 */ lui $t1, %hi(sPlayerInitialDirection) # $t1, 0x8012 +/* AF87B4 80081614 85293A58 */ lh $t1, %lo(sPlayerInitialDirection)($t1) /* AF87B8 80081618 3C014120 */ li $at, 0x41200000 # 0.000000 /* AF87BC 8008161C 44819000 */ mtc1 $at, $f18 /* AF87C0 80081620 44895000 */ mtc1 $t1, $f10 diff --git a/asm/non_matchings/code/z_map_exp/func_800807A0.s b/asm/non_matchings/code/z_map_exp/func_800807A0.s deleted file mode 100644 index df3fb6d4dd..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_800807A0.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_800807A0 -/* AF7940 800807A0 8C821C44 */ lw $v0, 0x1c44($a0) -/* AF7944 800807A4 3C018012 */ lui $at, %hi(D_80123A50) # $at, 0x8012 -/* AF7948 800807A8 24097FFF */ li $t1, 32767 -/* AF794C 800807AC C4440024 */ lwc1 $f4, 0x24($v0) -/* AF7950 800807B0 4600218D */ trunc.w.s $f6, $f4 -/* AF7954 800807B4 440F3000 */ mfc1 $t7, $f6 -/* AF7958 800807B8 00000000 */ nop -/* AF795C 800807BC A42F3A50 */ sh $t7, %lo(D_80123A50)($at) -/* AF7960 800807C0 C448002C */ lwc1 $f8, 0x2c($v0) -/* AF7964 800807C4 3C018012 */ lui $at, %hi(D_80123A54) # $at, 0x8012 -/* AF7968 800807C8 4600428D */ trunc.w.s $f10, $f8 -/* AF796C 800807CC 44195000 */ mfc1 $t9, $f10 -/* AF7970 800807D0 00000000 */ nop -/* AF7974 800807D4 A4393A54 */ sh $t9, %lo(D_80123A54)($at) -/* AF7978 800807D8 844800B6 */ lh $t0, 0xb6($v0) -/* AF797C 800807DC 01285023 */ subu $t2, $t1, $t0 -/* AF7980 800807E0 05410003 */ bgez $t2, .L800807F0 -/* AF7984 800807E4 000A5A83 */ sra $t3, $t2, 0xa -/* AF7988 800807E8 254103FF */ addiu $at, $t2, 0x3ff -/* AF798C 800807EC 00015A83 */ sra $t3, $at, 0xa -.L800807F0: -/* AF7990 800807F0 3C018012 */ lui $at, %hi(D_80123A58) -/* AF7994 800807F4 03E00008 */ jr $ra -/* AF7998 800807F8 A42B3A58 */ sh $t3, %lo(D_80123A58)($at) - diff --git a/asm/non_matchings/code/z_map_exp/func_800807FC.s b/asm/non_matchings/code/z_map_exp/func_800807FC.s deleted file mode 100644 index c39c6dafcd..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_800807FC.s +++ /dev/null @@ -1,82 +0,0 @@ -.rdata -glabel D_8013D700 - .asciz "\x1b[33m" - .balign 4 - -glabel D_8013D708 - .asciz "PALETEセット 【 i=%x : room=%x 】Room_Inf[%d][4]=%x ( map_palete_no = %d )\n" - # EUC-JP: PALETEセット 【 i=%x : room=%x 】 | Palette set - .balign 4 - -glabel D_8013D75C - .asciz "\x1b[m" - .balign 4 - -.text -glabel func_800807FC -/* AF799C 800807FC 3C0E8016 */ lui $t6, %hi(D_8015FFD0) # $t6, 0x8016 -/* AF79A0 80080800 8DCEFFD0 */ lw $t6, %lo(D_8015FFD0)($t6) -/* AF79A4 80080804 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* AF79A8 80080808 3C078016 */ lui $a3, %hi(gSaveContext+0x1402) # $a3, 0x8016 -/* AF79AC 8008080C 94E7FA62 */ lhu $a3, %lo(gSaveContext+0x1402)($a3) -/* AF79B0 80080810 AFBF001C */ sw $ra, 0x1c($sp) -/* AF79B4 80080814 AFA50034 */ sw $a1, 0x34($sp) -/* AF79B8 80080818 8DCF0008 */ lw $t7, 8($t6) -/* AF79BC 8008081C 3C0A0001 */ lui $t2, 1 -/* AF79C0 80080820 00052C00 */ sll $a1, $a1, 0x10 -/* AF79C4 80080824 01445021 */ addu $t2, $t2, $a0 -/* AF79C8 80080828 854A074C */ lh $t2, 0x74c($t2) -/* AF79CC 8008082C 00052C03 */ sra $a1, $a1, 0x10 -/* AF79D0 80080830 0007C180 */ sll $t8, $a3, 6 -/* AF79D4 80080834 00054040 */ sll $t0, $a1, 1 -/* AF79D8 80080838 01F8C821 */ addu $t9, $t7, $t8 -/* AF79DC 8008083C 03284821 */ addu $t1, $t9, $t0 -/* AF79E0 80080840 00803025 */ move $a2, $a0 -/* AF79E4 80080844 14AA0004 */ bne $a1, $t2, .L80080858 -/* AF79E8 80080848 85220000 */ lh $v0, ($t1) -/* AF79EC 8008084C 3C010001 */ lui $at, 1 -/* AF79F0 80080850 00240821 */ addu $at, $at, $a0 -/* AF79F4 80080854 A422074E */ sh $v0, 0x74e($at) -.L80080858: -/* AF79F8 80080858 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* AF79FC 8008085C 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* AF7A00 80080860 00C15821 */ addu $t3, $a2, $at -/* AF7A04 80080864 3C048014 */ lui $a0, %hi(D_8013D700) # $a0, 0x8014 -/* AF7A08 80080868 2484D700 */ addiu $a0, %lo(D_8013D700) # addiu $a0, $a0, -0x2900 -/* AF7A0C 8008086C AFAB0020 */ sw $t3, 0x20($sp) -/* AF7A10 80080870 A7A20026 */ sh $v0, 0x26($sp) -/* AF7A14 80080874 A7A50036 */ sh $a1, 0x36($sp) -/* AF7A18 80080878 0C00084C */ jal osSyncPrintf -/* AF7A1C 8008087C AFA7002C */ sw $a3, 0x2c($sp) -/* AF7A20 80080880 8FA7002C */ lw $a3, 0x2c($sp) -/* AF7A24 80080884 3C0D8016 */ lui $t5, %hi(gSaveContext+0xe8) -/* AF7A28 80080888 8FAE0020 */ lw $t6, 0x20($sp) -/* AF7A2C 8008088C 000760C0 */ sll $t4, $a3, 3 -/* AF7A30 80080890 01876023 */ subu $t4, $t4, $a3 -/* AF7A34 80080894 000C6080 */ sll $t4, $t4, 2 -/* AF7A38 80080898 01AC6821 */ addu $t5, $t5, $t4 -/* AF7A3C 8008089C 8DADE748 */ lw $t5, %lo(gSaveContext+0xe8)($t5) -/* AF7A40 800808A0 3C048014 */ lui $a0, %hi(D_8013D708) # $a0, 0x8014 -/* AF7A44 800808A4 2484D708 */ addiu $a0, %lo(D_8013D708) # addiu $a0, $a0, -0x28f8 -/* AF7A48 800808A8 AFAD0010 */ sw $t5, 0x10($sp) -/* AF7A4C 800808AC 85CF025E */ lh $t7, 0x25e($t6) -/* AF7A50 800808B0 87A50026 */ lh $a1, 0x26($sp) -/* AF7A54 800808B4 87A60036 */ lh $a2, 0x36($sp) -/* AF7A58 800808B8 0C00084C */ jal osSyncPrintf -/* AF7A5C 800808BC AFAF0014 */ sw $t7, 0x14($sp) -/* AF7A60 800808C0 3C048014 */ lui $a0, %hi(D_8013D75C) # $a0, 0x8014 -/* AF7A64 800808C4 0C00084C */ jal osSyncPrintf -/* AF7A68 800808C8 2484D75C */ addiu $a0, %lo(D_8013D75C) # addiu $a0, $a0, -0x28a4 -/* AF7A6C 800808CC 87B90026 */ lh $t9, 0x26($sp) -/* AF7A70 800808D0 8FB80020 */ lw $t8, 0x20($sp) -/* AF7A74 800808D4 24090002 */ li $t1, 2 -/* AF7A78 800808D8 00194040 */ sll $t0, $t9, 1 -/* AF7A7C 800808DC 03081021 */ addu $v0, $t8, $t0 -/* AF7A80 800808E0 240A00BF */ li $t2, 191 -/* AF7A84 800808E4 A0490140 */ sb $t1, 0x140($v0) -/* AF7A88 800808E8 A04A0141 */ sb $t2, 0x141($v0) -/* AF7A8C 800808EC 8FBF001C */ lw $ra, 0x1c($sp) -/* AF7A90 800808F0 27BD0030 */ addiu $sp, $sp, 0x30 -/* AF7A94 800808F4 03E00008 */ jr $ra -/* AF7A98 800808F8 00000000 */ nop - diff --git a/asm/non_matchings/code/z_map_exp/func_800808FC.s b/asm/non_matchings/code/z_map_exp/func_800808FC.s deleted file mode 100644 index 0f4cf0ec29..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_800808FC.s +++ /dev/null @@ -1,149 +0,0 @@ -.late_rodata -glabel jtbl_8013D9DC - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L80080A84 - .word L80080A84 - .word L80080A84 - .word L80080A84 - .word L80080A84 - .word L80080A84 - .word L80080A84 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - .word L800809C4 - -.text -glabel func_800808FC -/* AF7A9C 800808FC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* AF7AA0 80080900 AFB70034 */ sw $s7, 0x34($sp) -/* AF7AA4 80080904 3C178016 */ lui $s7, %hi(gSaveContext) # $s7, 0x8016 -/* AF7AA8 80080908 AFBE0038 */ sw $fp, 0x38($sp) -/* AF7AAC 8008090C 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* AF7AB0 80080910 0005F400 */ sll $fp, $a1, 0x10 -/* AF7AB4 80080914 26F7E660 */ addiu $s7, %lo(gSaveContext) # addiu $s7, $s7, -0x19a0 -/* AF7AB8 80080918 AFB5002C */ sw $s5, 0x2c($sp) -/* AF7ABC 8008091C AFB40028 */ sw $s4, 0x28($sp) -/* AF7AC0 80080920 AFB00018 */ sw $s0, 0x18($sp) -/* AF7AC4 80080924 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* AF7AC8 80080928 0080A825 */ move $s5, $a0 -/* AF7ACC 8008092C 001EF403 */ sra $fp, $fp, 0x10 -/* AF7AD0 80080930 AFBF003C */ sw $ra, 0x3c($sp) -/* AF7AD4 80080934 AFB60030 */ sw $s6, 0x30($sp) -/* AF7AD8 80080938 AFB30024 */ sw $s3, 0x24($sp) -/* AF7ADC 8008093C AFB20020 */ sw $s2, 0x20($sp) -/* AF7AE0 80080940 AFB1001C */ sw $s1, 0x1c($sp) -/* AF7AE4 80080944 AFA50044 */ sw $a1, 0x44($sp) -/* AF7AE8 80080948 96F41402 */ lhu $s4, 0x1402($s7) -/* AF7AEC 8008094C 00811821 */ addu $v1, $a0, $at -/* AF7AF0 80080950 00008025 */ move $s0, $zero -.L80080954: -/* AF7AF4 80080954 00701021 */ addu $v0, $v1, $s0 -/* AF7AF8 80080958 26100001 */ addiu $s0, $s0, 1 -/* AF7AFC 8008095C 00108400 */ sll $s0, $s0, 0x10 -/* AF7B00 80080960 00108403 */ sra $s0, $s0, 0x10 -/* AF7B04 80080964 2A010010 */ slti $at, $s0, 0x10 -/* AF7B08 80080968 A0400140 */ sb $zero, 0x140($v0) -/* AF7B0C 8008096C 1420FFF9 */ bnez $at, .L80080954 -/* AF7B10 80080970 A0400150 */ sb $zero, 0x150($v0) -/* AF7B14 80080974 3C168012 */ lui $s6, %hi(gBitFlags) # $s6, 0x8012 -/* AF7B18 80080978 26D67120 */ addiu $s6, %lo(gBitFlags) # addiu $s6, $s6, 0x7120 -/* AF7B1C 8008097C 02F47821 */ addu $t7, $s7, $s4 -/* AF7B20 80080980 91F800A8 */ lbu $t8, 0xa8($t7) -/* AF7B24 80080984 8ECE0008 */ lw $t6, 8($s6) -/* AF7B28 80080988 24080001 */ li $t0, 1 -/* AF7B2C 8008098C 01D8C824 */ and $t9, $t6, $t8 -/* AF7B30 80080990 53200004 */ beql $t9, $zero, .L800809A4 -/* AF7B34 80080994 96A900A4 */ lhu $t1, 0xa4($s5) -/* AF7B38 80080998 A060015E */ sb $zero, 0x15e($v1) -/* AF7B3C 8008099C A068015F */ sb $t0, 0x15f($v1) -/* AF7B40 800809A0 96A900A4 */ lhu $t1, 0xa4($s5) -.L800809A4: -/* AF7B44 800809A4 2D210019 */ sltiu $at, $t1, 0x19 -/* AF7B48 800809A8 10200036 */ beqz $at, .L80080A84 -/* AF7B4C 800809AC 00094880 */ sll $t1, $t1, 2 -/* AF7B50 800809B0 3C018014 */ lui $at, %hi(jtbl_8013D9DC) -/* AF7B54 800809B4 00290821 */ addu $at, $at, $t1 -/* AF7B58 800809B8 8C29D9DC */ lw $t1, %lo(jtbl_8013D9DC)($at) -/* AF7B5C 800809BC 01200008 */ jr $t1 -/* AF7B60 800809C0 00000000 */ nop -glabel L800809C4 -/* AF7B64 800809C4 3C028016 */ lui $v0, %hi(D_8015FFD0) # $v0, 0x8016 -/* AF7B68 800809C8 8C42FFD0 */ lw $v0, %lo(D_8015FFD0)($v0) -/* AF7B6C 800809CC 00149840 */ sll $s3, $s4, 1 -/* AF7B70 800809D0 00008025 */ move $s0, $zero -/* AF7B74 800809D4 8C4A000C */ lw $t2, 0xc($v0) -/* AF7B78 800809D8 2412001C */ li $s2, 28 -/* AF7B7C 800809DC 241100FF */ li $s1, 255 -/* AF7B80 800809E0 01535821 */ addu $t3, $t2, $s3 -/* AF7B84 800809E4 85630000 */ lh $v1, ($t3) -/* AF7B88 800809E8 58600027 */ blezl $v1, .L80080A88 -/* AF7B8C 800809EC 8FBF003C */ lw $ra, 0x3c($sp) -/* AF7B90 800809F0 8C4C0010 */ lw $t4, 0x10($v0) -.L800809F4: -/* AF7B94 800809F4 001468C0 */ sll $t5, $s4, 3 -/* AF7B98 800809F8 01B46823 */ subu $t5, $t5, $s4 -/* AF7B9C 800809FC 001E70C0 */ sll $t6, $fp, 3 -/* AF7BA0 80080A00 01DE7023 */ subu $t6, $t6, $fp -/* AF7BA4 80080A04 000D6940 */ sll $t5, $t5, 5 -/* AF7BA8 80080A08 000E7080 */ sll $t6, $t6, 2 -/* AF7BAC 80080A0C 018D7821 */ addu $t7, $t4, $t5 -/* AF7BB0 80080A10 01EEC021 */ addu $t8, $t7, $t6 -/* AF7BB4 80080A14 0010C840 */ sll $t9, $s0, 1 -/* AF7BB8 80080A18 03194021 */ addu $t0, $t8, $t9 -/* AF7BBC 80080A1C 85050000 */ lh $a1, ($t0) -/* AF7BC0 80080A20 50B10013 */ beql $a1, $s1, .L80080A70 -/* AF7BC4 80080A24 26100001 */ addiu $s0, $s0, 1 -/* AF7BC8 80080A28 02920019 */ multu $s4, $s2 -/* AF7BCC 80080A2C 00054880 */ sll $t1, $a1, 2 -/* AF7BD0 80080A30 02C95021 */ addu $t2, $s6, $t1 -/* AF7BD4 80080A34 8D4B0000 */ lw $t3, ($t2) -/* AF7BD8 80080A38 00006012 */ mflo $t4 -/* AF7BDC 80080A3C 02EC6821 */ addu $t5, $s7, $t4 -/* AF7BE0 80080A40 8DAF00E8 */ lw $t7, 0xe8($t5) -/* AF7BE4 80080A44 016F7024 */ and $t6, $t3, $t7 -/* AF7BE8 80080A48 51C00009 */ beql $t6, $zero, .L80080A70 -/* AF7BEC 80080A4C 26100001 */ addiu $s0, $s0, 1 -/* AF7BF0 80080A50 0C0201FF */ jal func_800807FC -/* AF7BF4 80080A54 02A02025 */ move $a0, $s5 -/* AF7BF8 80080A58 3C028016 */ lui $v0, %hi(D_8015FFD0) # $v0, 0x8016 -/* AF7BFC 80080A5C 8C42FFD0 */ lw $v0, %lo(D_8015FFD0)($v0) -/* AF7C00 80080A60 8C58000C */ lw $t8, 0xc($v0) -/* AF7C04 80080A64 0313C821 */ addu $t9, $t8, $s3 -/* AF7C08 80080A68 87230000 */ lh $v1, ($t9) -/* AF7C0C 80080A6C 26100001 */ addiu $s0, $s0, 1 -.L80080A70: -/* AF7C10 80080A70 00108400 */ sll $s0, $s0, 0x10 -/* AF7C14 80080A74 00108403 */ sra $s0, $s0, 0x10 -/* AF7C18 80080A78 0203082A */ slt $at, $s0, $v1 -/* AF7C1C 80080A7C 5420FFDD */ bnezl $at, .L800809F4 -/* AF7C20 80080A80 8C4C0010 */ lw $t4, 0x10($v0) -.L80080A84: -glabel L80080A84 -/* AF7C24 80080A84 8FBF003C */ lw $ra, 0x3c($sp) -.L80080A88: -/* AF7C28 80080A88 8FB00018 */ lw $s0, 0x18($sp) -/* AF7C2C 80080A8C 8FB1001C */ lw $s1, 0x1c($sp) -/* AF7C30 80080A90 8FB20020 */ lw $s2, 0x20($sp) -/* AF7C34 80080A94 8FB30024 */ lw $s3, 0x24($sp) -/* AF7C38 80080A98 8FB40028 */ lw $s4, 0x28($sp) -/* AF7C3C 80080A9C 8FB5002C */ lw $s5, 0x2c($sp) -/* AF7C40 80080AA0 8FB60030 */ lw $s6, 0x30($sp) -/* AF7C44 80080AA4 8FB70034 */ lw $s7, 0x34($sp) -/* AF7C48 80080AA8 8FBE0038 */ lw $fp, 0x38($sp) -/* AF7C4C 80080AAC 03E00008 */ jr $ra -/* AF7C50 80080AB0 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/code/z_map_exp/func_80080AB4.s b/asm/non_matchings/code/z_map_exp/func_80080AB4.s deleted file mode 100644 index fe0fd89497..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_80080AB4.s +++ /dev/null @@ -1,316 +0,0 @@ -.rdata -glabel D_8013D760 - .asciz "\x1b[34m" - .balign 4 - -glabel D_8013D768 - .asciz "KKK=%d\n" - # EUC-JP: KKK= - .balign 4 - -glabel D_8013D774 - .asciz "\x1b[m" - .balign 4 - -glabel D_8013D778 - .asciz "../z_map_exp.c" - .balign 4 - -glabel D_8013D788 - .asciz "\x1b[33m" - .balign 4 - -glabel D_8013D790 - .asciz "デクの樹ダンジョンMAP テクスチャDMA(%x) scene_id_offset=%d VREG(30)=%d\n" - # EUC-JP: デクの樹ダンジョンMAP テクスチャDMA | Deck Tree Dungeon MAP Texture DMA - .balign 4 - -glabel D_8013D7E0 - .asciz "\x1b[m" - .balign 4 - -glabel D_8013D7E4 - .asciz "../z_map_exp.c" - .balign 4 - -glabel D_8013D7F4 - .asciz "MAP 各階ONチェック\n" - # EUC-JP: MAP 各階ONチェック | MAP ON check on each floor - .balign 4 - -.late_rodata -glabel jtbl_8013DA40 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - .word L80080B28 - -glabel jtbl_8013DA90 - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080DF4 - .word L80080DF4 - .word L80080DF4 - .word L80080DF4 - .word L80080DF4 - .word L80080DF4 - .word L80080DF4 - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - .word L80080CBC - -.text -glabel func_80080AB4 -/* AF7C54 80080AB4 3C068016 */ lui $a2, %hi(gSaveContext) # $a2, 0x8016 -/* AF7C58 80080AB8 24C6E660 */ addiu $a2, %lo(gSaveContext) # addiu $a2, $a2, -0x19a0 -/* AF7C5C 80080ABC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* AF7C60 80080AC0 94CE1402 */ lhu $t6, 0x1402($a2) -/* AF7C64 80080AC4 AFBF001C */ sw $ra, 0x1c($sp) -/* AF7C68 80080AC8 AFA40038 */ sw $a0, 0x38($sp) -/* AF7C6C 80080ACC AFA5003C */ sw $a1, 0x3c($sp) -/* AF7C70 80080AD0 AFAE0034 */ sw $t6, 0x34($sp) -/* AF7C74 80080AD4 848300A4 */ lh $v1, 0xa4($a0) -/* AF7C78 80080AD8 28610019 */ slti $at, $v1, 0x19 -/* AF7C7C 80080ADC 1420000A */ bnez $at, .L80080B08 -/* AF7C80 80080AE0 00601025 */ move $v0, $v1 -/* AF7C84 80080AE4 2458FFAF */ addiu $t8, $v0, -0x51 -/* AF7C88 80080AE8 2F010014 */ sltiu $at, $t8, 0x14 -/* AF7C8C 80080AEC 102000C1 */ beqz $at, .L80080DF4 -/* AF7C90 80080AF0 0018C080 */ sll $t8, $t8, 2 -/* AF7C94 80080AF4 3C018014 */ lui $at, %hi(jtbl_8013DA40) -/* AF7C98 80080AF8 00380821 */ addu $at, $at, $t8 -/* AF7C9C 80080AFC 8C38DA40 */ lw $t8, %lo(jtbl_8013DA40)($at) -/* AF7CA0 80080B00 03000008 */ jr $t8 -/* AF7CA4 80080B04 00000000 */ nop -.L80080B08: -/* AF7CA8 80080B08 2C410019 */ sltiu $at, $v0, 0x19 -/* AF7CAC 80080B0C 102000B9 */ beqz $at, .L80080DF4 -/* AF7CB0 80080B10 0002C880 */ sll $t9, $v0, 2 -/* AF7CB4 80080B14 3C018014 */ lui $at, %hi(jtbl_8013DA90) -/* AF7CB8 80080B18 00390821 */ addu $at, $at, $t9 -/* AF7CBC 80080B1C 8C39DA90 */ lw $t9, %lo(jtbl_8013DA90)($at) -/* AF7CC0 80080B20 03200008 */ jr $t9 -/* AF7CC4 80080B24 00000000 */ nop -glabel L80080B28 -/* AF7CC8 80080B28 24010053 */ li $at, 83 -/* AF7CCC 80080B2C 14610009 */ bne $v1, $at, .L80080B54 -/* AF7CD0 80080B30 87A50036 */ lh $a1, 0x36($sp) -/* AF7CD4 80080B34 3C098012 */ lui $t1, %hi(gBitFlags+0x28) # $t1, 0x8012 -/* AF7CD8 80080B38 8D297148 */ lw $t1, %lo(gBitFlags+0x28)($t1) -/* AF7CDC 80080B3C 8CCA00A4 */ lw $t2, 0xa4($a2) -/* AF7CE0 80080B40 012A5824 */ and $t3, $t1, $t2 -/* AF7CE4 80080B44 11600032 */ beqz $t3, .L80080C10 -/* AF7CE8 80080B48 00000000 */ nop -/* AF7CEC 80080B4C 10000030 */ b .L80080C10 -/* AF7CF0 80080B50 24050014 */ li $a1, 20 -.L80080B54: -/* AF7CF4 80080B54 24010057 */ li $at, 87 -/* AF7CF8 80080B58 54610012 */ bnel $v1, $at, .L80080BA4 -/* AF7CFC 80080B5C 2401005A */ li $at, 90 -/* AF7D00 80080B60 8CCC0004 */ lw $t4, 4($a2) -/* AF7D04 80080B64 24010011 */ li $at, 17 -/* AF7D08 80080B68 24020011 */ li $v0, 17 -/* AF7D0C 80080B6C 11800003 */ beqz $t4, .L80080B7C -/* AF7D10 80080B70 3C0D8012 */ lui $t5, %hi(gBitFlags+8) # $t5, 0x8012 -/* AF7D14 80080B74 10000001 */ b .L80080B7C -/* AF7D18 80080B78 24020005 */ li $v0, 5 -.L80080B7C: -/* AF7D1C 80080B7C 14410024 */ bne $v0, $at, .L80080C10 -/* AF7D20 80080B80 00000000 */ nop -/* AF7D24 80080B84 8DAD7128 */ lw $t5, %lo(gBitFlags+8)($t5) -/* AF7D28 80080B88 8CCE00A4 */ lw $t6, 0xa4($a2) -/* AF7D2C 80080B8C 01AE7824 */ and $t7, $t5, $t6 -/* AF7D30 80080B90 15E0001F */ bnez $t7, .L80080C10 -/* AF7D34 80080B94 00000000 */ nop -/* AF7D38 80080B98 1000001D */ b .L80080C10 -/* AF7D3C 80080B9C 24050015 */ li $a1, 21 -/* AF7D40 80080BA0 2401005A */ li $at, 90 -.L80080BA4: -/* AF7D44 80080BA4 54610012 */ bnel $v1, $at, .L80080BF0 -/* AF7D48 80080BA8 2401005D */ li $at, 93 -/* AF7D4C 80080BAC 8CD80004 */ lw $t8, 4($a2) -/* AF7D50 80080BB0 24010011 */ li $at, 17 -/* AF7D54 80080BB4 24020011 */ li $v0, 17 -/* AF7D58 80080BB8 13000003 */ beqz $t8, .L80080BC8 -/* AF7D5C 80080BBC 00000000 */ nop -/* AF7D60 80080BC0 10000001 */ b .L80080BC8 -/* AF7D64 80080BC4 24020005 */ li $v0, 5 -.L80080BC8: -/* AF7D68 80080BC8 14410011 */ bne $v0, $at, .L80080C10 -/* AF7D6C 80080BCC 00000000 */ nop -/* AF7D70 80080BD0 94D90EE6 */ lhu $t9, 0xee6($a2) -/* AF7D74 80080BD4 2401000F */ li $at, 15 -/* AF7D78 80080BD8 3329000F */ andi $t1, $t9, 0xf -/* AF7D7C 80080BDC 1121000C */ beq $t1, $at, .L80080C10 -/* AF7D80 80080BE0 00000000 */ nop -/* AF7D84 80080BE4 1000000A */ b .L80080C10 -/* AF7D88 80080BE8 24050016 */ li $a1, 22 -/* AF7D8C 80080BEC 2401005D */ li $at, 93 -.L80080BF0: -/* AF7D90 80080BF0 14610007 */ bne $v1, $at, .L80080C10 -/* AF7D94 80080BF4 00000000 */ nop -/* AF7D98 80080BF8 94CA0EE6 */ lhu $t2, 0xee6($a2) -/* AF7D9C 80080BFC 2401000F */ li $at, 15 -/* AF7DA0 80080C00 314B000F */ andi $t3, $t2, 0xf -/* AF7DA4 80080C04 15610002 */ bne $t3, $at, .L80080C10 -/* AF7DA8 80080C08 00000000 */ nop -/* AF7DAC 80080C0C 24050017 */ li $a1, 23 -.L80080C10: -/* AF7DB0 80080C10 3C048014 */ lui $a0, %hi(D_8013D760) # $a0, 0x8014 -/* AF7DB4 80080C14 2484D760 */ addiu $a0, %lo(D_8013D760) # addiu $a0, $a0, -0x28a0 -/* AF7DB8 80080C18 0C00084C */ jal osSyncPrintf -/* AF7DBC 80080C1C A7A5002E */ sh $a1, 0x2e($sp) -/* AF7DC0 80080C20 3C048014 */ lui $a0, %hi(D_8013D768) # $a0, 0x8014 -/* AF7DC4 80080C24 2484D768 */ addiu $a0, %lo(D_8013D768) # addiu $a0, $a0, -0x2898 -/* AF7DC8 80080C28 0C00084C */ jal osSyncPrintf -/* AF7DCC 80080C2C 87A5002E */ lh $a1, 0x2e($sp) -/* AF7DD0 80080C30 3C048014 */ lui $a0, %hi(D_8013D774) # $a0, 0x8014 -/* AF7DD4 80080C34 0C00084C */ jal osSyncPrintf -/* AF7DD8 80080C38 2484D774 */ addiu $a0, %lo(D_8013D774) # addiu $a0, $a0, -0x288c -/* AF7DDC 80080C3C 87A8002E */ lh $t0, 0x2e($sp) -/* AF7DE0 80080C40 3C028016 */ lui $v0, %hi(D_8015FFD0) # $v0, 0x8016 -/* AF7DE4 80080C44 8C42FFD0 */ lw $v0, %lo(D_8015FFD0)($v0) -/* AF7DE8 80080C48 3C018012 */ lui $at, %hi(D_80123A5C) # $at, 0x8012 -/* AF7DEC 80080C4C A4283A5C */ sh $t0, %lo(D_80123A5C)($at) -/* AF7DF0 80080C50 8FA90034 */ lw $t1, 0x34($sp) -/* AF7DF4 80080C54 8C4C0028 */ lw $t4, 0x28($v0) -/* AF7DF8 80080C58 8FA30038 */ lw $v1, 0x38($sp) -/* AF7DFC 80080C5C 8C590024 */ lw $t9, 0x24($v0) -/* AF7E00 80080C60 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* AF7E04 80080C64 00086840 */ sll $t5, $t0, 1 -/* AF7E08 80080C68 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* AF7E0C 80080C6C 00095040 */ sll $t2, $t1, 1 -/* AF7E10 80080C70 018D7021 */ addu $t6, $t4, $t5 -/* AF7E14 80080C74 95CF0000 */ lhu $t7, ($t6) -/* AF7E18 80080C78 3C180097 */ lui $t8, %hi(_map_grand_staticSegmentRomStart) # $t8, 0x97 -/* AF7E1C 80080C7C 00611821 */ addu $v1, $v1, $at -/* AF7E20 80080C80 032A5821 */ addu $t3, $t9, $t2 -/* AF7E24 80080C84 95660000 */ lhu $a2, ($t3) -/* AF7E28 80080C88 8C64013C */ lw $a0, 0x13c($v1) -/* AF7E2C 80080C8C 27184000 */ addiu $t8, %lo(_map_grand_staticSegmentRomStart) # addiu $t8, $t8, 0x4000 -/* AF7E30 80080C90 240C0135 */ li $t4, 309 -/* AF7E34 80080C94 3C078014 */ lui $a3, %hi(D_8013D778) # $a3, 0x8014 -/* AF7E38 80080C98 24E7D778 */ addiu $a3, %lo(D_8013D778) # addiu $a3, $a3, -0x2888 -/* AF7E3C 80080C9C AFAC0010 */ sw $t4, 0x10($sp) -/* AF7E40 80080CA0 AFA30024 */ sw $v1, 0x24($sp) -/* AF7E44 80080CA4 0C0006A8 */ jal DmaMgr_SendRequest1 -/* AF7E48 80080CA8 01F82821 */ addu $a1, $t7, $t8 -/* AF7E4C 80080CAC 8FA30024 */ lw $v1, 0x24($sp) -/* AF7E50 80080CB0 8FAD0034 */ lw $t5, 0x34($sp) -/* AF7E54 80080CB4 1000004F */ b .L80080DF4 -/* AF7E58 80080CB8 A46D0258 */ sh $t5, 0x258($v1) -glabel L80080CBC -/* AF7E5C 80080CBC 3C048014 */ lui $a0, %hi(D_8013D788) # $a0, 0x8014 -/* AF7E60 80080CC0 0C00084C */ jal osSyncPrintf -/* AF7E64 80080CC4 2484D788 */ addiu $a0, %lo(D_8013D788) # addiu $a0, $a0, -0x2878 -/* AF7E68 80080CC8 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016 -/* AF7E6C 80080CCC 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* AF7E70 80080CD0 3C048014 */ lui $a0, %hi(D_8013D790) # $a0, 0x8014 -/* AF7E74 80080CD4 2484D790 */ addiu $a0, %lo(D_8013D790) # addiu $a0, $a0, -0x2870 -/* AF7E78 80080CD8 87A5003E */ lh $a1, 0x3e($sp) -/* AF7E7C 80080CDC 8FA60034 */ lw $a2, 0x34($sp) -/* AF7E80 80080CE0 0C00084C */ jal osSyncPrintf -/* AF7E84 80080CE4 85C70F50 */ lh $a3, 0xf50($t6) -/* AF7E88 80080CE8 3C048014 */ lui $a0, %hi(D_8013D7E0) # $a0, 0x8014 -/* AF7E8C 80080CEC 0C00084C */ jal osSyncPrintf -/* AF7E90 80080CF0 2484D7E0 */ addiu $a0, %lo(D_8013D7E0) # addiu $a0, $a0, -0x2820 -/* AF7E94 80080CF4 3C188016 */ lui $t8, %hi(D_8015FFD0) # $t8, 0x8016 -/* AF7E98 80080CF8 8F18FFD0 */ lw $t8, %lo(D_8015FFD0)($t8) -/* AF7E9C 80080CFC 8FB90034 */ lw $t9, 0x34($sp) -/* AF7EA0 80080D00 8FAF0038 */ lw $t7, 0x38($sp) -/* AF7EA4 80080D04 8F090020 */ lw $t1, 0x20($t8) -/* AF7EA8 80080D08 00195040 */ sll $t2, $t9, 1 -/* AF7EAC 80080D0C 87AD003E */ lh $t5, 0x3e($sp) -/* AF7EB0 80080D10 012A5821 */ addu $t3, $t1, $t2 -/* AF7EB4 80080D14 956C0000 */ lhu $t4, ($t3) -/* AF7EB8 80080D18 3C040001 */ lui $a0, 1 -/* AF7EBC 80080D1C 008F2021 */ addu $a0, $a0, $t7 -/* AF7EC0 80080D20 018D7021 */ addu $t6, $t4, $t5 -/* AF7EC4 80080D24 000E7A00 */ sll $t7, $t6, 8 -/* AF7EC8 80080D28 01EE7823 */ subu $t7, $t7, $t6 -/* AF7ECC 80080D2C 3C18009A */ lui $t8, %hi(_map_i_staticSegmentRomStart) # $t8, 0x9a -/* AF7ED0 80080D30 27185000 */ addiu $t8, %lo(_map_i_staticSegmentRomStart) # addiu $t8, $t8, 0x5000 -/* AF7ED4 80080D34 000F7900 */ sll $t7, $t7, 4 -/* AF7ED8 80080D38 8C84062C */ lw $a0, 0x62c($a0) -/* AF7EDC 80080D3C 2419015A */ li $t9, 346 -/* AF7EE0 80080D40 3C078014 */ lui $a3, %hi(D_8013D7E4) # $a3, 0x8014 -/* AF7EE4 80080D44 24E7D7E4 */ addiu $a3, %lo(D_8013D7E4) # addiu $a3, $a3, -0x281c -/* AF7EE8 80080D48 AFB90010 */ sw $t9, 0x10($sp) -/* AF7EEC 80080D4C 01F82821 */ addu $a1, $t7, $t8 -/* AF7EF0 80080D50 0C0006A8 */ jal DmaMgr_SendRequest1 -/* AF7EF4 80080D54 24060FF0 */ li $a2, 4080 -/* AF7EF8 80080D58 8FAB0034 */ lw $t3, 0x34($sp) -/* AF7EFC 80080D5C 3C068016 */ lui $a2, %hi(D_8015FFD0) # $a2, 0x8016 -/* AF7F00 80080D60 24C6FFD0 */ addiu $a2, %lo(D_8015FFD0) # addiu $a2, $a2, -0x30 -/* AF7F04 80080D64 8CC90000 */ lw $t1, ($a2) -/* AF7F08 80080D68 000B6080 */ sll $t4, $t3, 2 -/* AF7F0C 80080D6C 018B6023 */ subu $t4, $t4, $t3 -/* AF7F10 80080D70 87A2003E */ lh $v0, 0x3e($sp) -/* AF7F14 80080D74 8D2A0014 */ lw $t2, 0x14($t1) -/* AF7F18 80080D78 000C6080 */ sll $t4, $t4, 2 -/* AF7F1C 80080D7C 018B6023 */ subu $t4, $t4, $t3 -/* AF7F20 80080D80 000C60C0 */ sll $t4, $t4, 3 -/* AF7F24 80080D84 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AF7F28 80080D88 00021040 */ sll $v0, $v0, 1 -/* AF7F2C 80080D8C 014C6821 */ addu $t5, $t2, $t4 -/* AF7F30 80080D90 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* AF7F34 80080D94 01A27021 */ addu $t6, $t5, $v0 -/* AF7F38 80080D98 85CF0000 */ lh $t7, ($t6) -/* AF7F3C 80080D9C 8C780000 */ lw $t8, ($v1) -/* AF7F40 80080DA0 A70F0F34 */ sh $t7, 0xf34($t8) -/* AF7F44 80080DA4 8FAB0034 */ lw $t3, 0x34($sp) -/* AF7F48 80080DA8 8CD90000 */ lw $t9, ($a2) -/* AF7F4C 80080DAC 8C6F0000 */ lw $t7, ($v1) -/* AF7F50 80080DB0 000B5080 */ sll $t2, $t3, 2 -/* AF7F54 80080DB4 014B5023 */ subu $t2, $t2, $t3 -/* AF7F58 80080DB8 8F290018 */ lw $t1, 0x18($t9) -/* AF7F5C 80080DBC 000A5080 */ sll $t2, $t2, 2 -/* AF7F60 80080DC0 014B5023 */ subu $t2, $t2, $t3 -/* AF7F64 80080DC4 000A50C0 */ sll $t2, $t2, 3 -/* AF7F68 80080DC8 012A6021 */ addu $t4, $t1, $t2 -/* AF7F6C 80080DCC 01826821 */ addu $t5, $t4, $v0 -/* AF7F70 80080DD0 85AE0000 */ lh $t6, ($t5) -/* AF7F74 80080DD4 A5EE0F36 */ sh $t6, 0xf36($t7) -/* AF7F78 80080DD8 8C780000 */ lw $t8, ($v1) -/* AF7F7C 80080DDC 8FA40038 */ lw $a0, 0x38($sp) -/* AF7F80 80080DE0 0C02023F */ jal func_800808FC -/* AF7F84 80080DE4 87050F50 */ lh $a1, 0xf50($t8) -/* AF7F88 80080DE8 3C048014 */ lui $a0, %hi(D_8013D7F4) # $a0, 0x8014 -/* AF7F8C 80080DEC 0C00084C */ jal osSyncPrintf -/* AF7F90 80080DF0 2484D7F4 */ addiu $a0, %lo(D_8013D7F4) # addiu $a0, $a0, -0x280c -glabel L80080DF4 -.L80080DF4: -/* AF7F94 80080DF4 8FBF001C */ lw $ra, 0x1c($sp) -/* AF7F98 80080DF8 27BD0038 */ addiu $sp, $sp, 0x38 -/* AF7F9C 80080DFC 03E00008 */ jr $ra -/* AF7FA0 80080E00 00000000 */ nop - diff --git a/asm/non_matchings/code/z_map_exp/func_80080E04.s b/asm/non_matchings/code/z_map_exp/func_80080E04.s deleted file mode 100644 index d8f8562ebd..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_80080E04.s +++ /dev/null @@ -1,140 +0,0 @@ -.rdata -glabel D_8013D810 - .asciz "*******\n*******\nroom_no=%d (%d)(%d)\n*******\n*******\n" - # EUC-JP: ******* ******* room_no=%d (%d)(%d) ******* ******* - .balign 4 - -glabel D_8013D864 - .asciz "ROOM_INF=%d\n" - # EUC-JP: ROOM_INF= - .balign 4 - -glabel D_8013D87C - .asciz "\x1b[33m" - .balign 4 - -glabel D_8013D884 - .asciz "部屋部屋=%d\n" - # EUC-JP: 部屋部屋= | Room Room = - .balign 4 - -glabel D_8013D894 - .asciz "\x1b[m" - .balign 4 - -.late_rodata -glabel jtbl_8013DAF4 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080F1C - .word L80080F1C - .word L80080F1C - .word L80080F1C - .word L80080F1C - .word L80080F1C - .word L80080F1C - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - .word L80080E74 - -.text -glabel func_80080E04 -/* AF7FA4 80080E04 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* AF7FA8 80080E08 AFA40020 */ sw $a0, 0x20($sp) -/* AF7FAC 80080E0C 8FAE0020 */ lw $t6, 0x20($sp) -/* AF7FB0 80080E10 3C068016 */ lui $a2, %hi(gSaveContext+0x1402) # $a2, 0x8016 -/* AF7FB4 80080E14 94C6FA62 */ lhu $a2, %lo(gSaveContext+0x1402)($a2) -/* AF7FB8 80080E18 AFBF0014 */ sw $ra, 0x14($sp) -/* AF7FBC 80080E1C AFA50024 */ sw $a1, 0x24($sp) -/* AF7FC0 80080E20 3C048014 */ lui $a0, %hi(D_8013D810) # $a0, 0x8014 -/* AF7FC4 80080E24 85C700A4 */ lh $a3, 0xa4($t6) -/* AF7FC8 80080E28 2484D810 */ addiu $a0, %lo(D_8013D810) # addiu $a0, $a0, -0x27f0 -/* AF7FCC 80080E2C 87A50026 */ lh $a1, 0x26($sp) -/* AF7FD0 80080E30 0C00084C */ jal osSyncPrintf -/* AF7FD4 80080E34 AFA6001C */ sw $a2, 0x1c($sp) -/* AF7FD8 80080E38 87A30026 */ lh $v1, 0x26($sp) -/* AF7FDC 80080E3C 8FAF0020 */ lw $t7, 0x20($sp) -/* AF7FE0 80080E40 3C010001 */ lui $at, 1 -/* AF7FE4 80080E44 04600034 */ bltz $v1, .L80080F18 -/* AF7FE8 80080E48 002F0821 */ addu $at, $at, $t7 -/* AF7FEC 80080E4C 8FAF0020 */ lw $t7, 0x20($sp) -/* AF7FF0 80080E50 95F800A4 */ lhu $t8, 0xa4($t7) -/* AF7FF4 80080E54 2F010019 */ sltiu $at, $t8, 0x19 -/* AF7FF8 80080E58 10200030 */ beqz $at, .L80080F1C -/* AF7FFC 80080E5C 0018C080 */ sll $t8, $t8, 2 -/* AF8000 80080E60 3C018014 */ lui $at, %hi(jtbl_8013DAF4) -/* AF8004 80080E64 00380821 */ addu $at, $at, $t8 -/* AF8008 80080E68 8C38DAF4 */ lw $t8, %lo(jtbl_8013DAF4)($at) -/* AF800C 80080E6C 03000008 */ jr $t8 -/* AF8010 80080E70 00000000 */ nop -glabel L80080E74 -/* AF8014 80080E74 8FB9001C */ lw $t9, 0x1c($sp) -/* AF8018 80080E78 3C098016 */ lui $t1, %hi(gSaveContext) # $t1, 0x8016 -/* AF801C 80080E7C 2529E660 */ addiu $t1, %lo(gSaveContext) # addiu $t1, $t1, -0x19a0 -/* AF8020 80080E80 001940C0 */ sll $t0, $t9, 3 -/* AF8024 80080E84 01194023 */ subu $t0, $t0, $t9 -/* AF8028 80080E88 00084080 */ sll $t0, $t0, 2 -/* AF802C 80080E8C 00035880 */ sll $t3, $v1, 2 -/* AF8030 80080E90 3C0C8012 */ lui $t4, %hi(gBitFlags) -/* AF8034 80080E94 018B6021 */ addu $t4, $t4, $t3 -/* AF8038 80080E98 01091021 */ addu $v0, $t0, $t1 -/* AF803C 80080E9C 8C4A00E8 */ lw $t2, 0xe8($v0) -/* AF8040 80080EA0 8D8C7120 */ lw $t4, %lo(gBitFlags)($t4) -/* AF8044 80080EA4 3C048014 */ lui $a0, %hi(D_8013D864) # $a0, 0x8014 -/* AF8048 80080EA8 2484D864 */ addiu $a0, %lo(D_8013D864) # addiu $a0, $a0, -0x279c -/* AF804C 80080EAC 014C2825 */ or $a1, $t2, $t4 -/* AF8050 80080EB0 0C00084C */ jal osSyncPrintf -/* AF8054 80080EB4 AC4500E8 */ sw $a1, 0xe8($v0) -/* AF8058 80080EB8 8FA40020 */ lw $a0, 0x20($sp) -/* AF805C 80080EBC 87A50026 */ lh $a1, 0x26($sp) -/* AF8060 80080EC0 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* AF8064 80080EC4 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* AF8068 80080EC8 00811021 */ addu $v0, $a0, $at -/* AF806C 80080ECC A445025C */ sh $a1, 0x25c($v0) -/* AF8070 80080ED0 8FAE001C */ lw $t6, 0x1c($sp) -/* AF8074 80080ED4 0C0201FF */ jal func_800807FC -/* AF8078 80080ED8 A44E025A */ sh $t6, 0x25a($v0) -/* AF807C 80080EDC 3C048014 */ lui $a0, %hi(D_8013D87C) # $a0, 0x8014 -/* AF8080 80080EE0 0C00084C */ jal osSyncPrintf -/* AF8084 80080EE4 2484D87C */ addiu $a0, %lo(D_8013D87C) # addiu $a0, $a0, -0x2784 -/* AF8088 80080EE8 3C048014 */ lui $a0, %hi(D_8013D884) # $a0, 0x8014 -/* AF808C 80080EEC 2484D884 */ addiu $a0, %lo(D_8013D884) # addiu $a0, $a0, -0x277c -/* AF8090 80080EF0 0C00084C */ jal osSyncPrintf -/* AF8094 80080EF4 87A50026 */ lh $a1, 0x26($sp) -/* AF8098 80080EF8 3C048014 */ lui $a0, %hi(D_8013D894) # $a0, 0x8014 -/* AF809C 80080EFC 0C00084C */ jal osSyncPrintf -/* AF80A0 80080F00 2484D894 */ addiu $a0, %lo(D_8013D894) # addiu $a0, $a0, -0x276c -/* AF80A4 80080F04 8FA40020 */ lw $a0, 0x20($sp) -/* AF80A8 80080F08 0C0202AD */ jal func_80080AB4 -/* AF80AC 80080F0C 87A50026 */ lh $a1, 0x26($sp) -/* AF80B0 80080F10 10000002 */ b .L80080F1C -/* AF80B4 80080F14 00000000 */ nop -.L80080F18: -/* AF80B8 80080F18 A420074C */ sh $zero, 0x74c($at) -glabel L80080F1C -.L80080F1C: -/* AF80BC 80080F1C 3C188016 */ lui $t8, %hi(gSaveContext+0x1422) # $t8, 0x8016 -/* AF80C0 80080F20 8718FA82 */ lh $t8, %lo(gSaveContext+0x1422)($t8) -/* AF80C4 80080F24 24010002 */ li $at, 2 -/* AF80C8 80080F28 13010002 */ beq $t8, $at, .L80080F34 -/* AF80CC 80080F2C 3C018016 */ lui $at, %hi(gSaveContext+0x1422) # $at, 0x8016 -/* AF80D0 80080F30 A420FA82 */ sh $zero, %lo(gSaveContext+0x1422)($at) -.L80080F34: -/* AF80D4 80080F34 8FBF0014 */ lw $ra, 0x14($sp) -/* AF80D8 80080F38 27BD0020 */ addiu $sp, $sp, 0x20 -/* AF80DC 80080F3C 03E00008 */ jr $ra -/* AF80E0 80080F40 00000000 */ nop - diff --git a/asm/non_matchings/code/z_map_exp/func_80080F44.s b/asm/non_matchings/code/z_map_exp/func_80080F44.s deleted file mode 100644 index 00b6e60549..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_80080F44.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_80080F44 -/* AF80E4 80080F44 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AF80E8 80080F48 AFBF0014 */ sw $ra, 0x14($sp) -/* AF80EC 80080F4C 0C01ECD9 */ jal MapMark_ClearPointers -/* AF80F0 80080F50 00000000 */ nop -/* AF80F4 80080F54 8FBF0014 */ lw $ra, 0x14($sp) -/* AF80F8 80080F58 3C018016 */ lui $at, %hi(D_8015FFD0) # $at, 0x8016 -/* AF80FC 80080F5C AC20FFD0 */ sw $zero, %lo(D_8015FFD0)($at) -/* AF8100 80080F60 03E00008 */ jr $ra -/* AF8104 80080F64 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/asm/non_matchings/code/z_map_exp/func_80080F68.s b/asm/non_matchings/code/z_map_exp/func_80080F68.s deleted file mode 100644 index 62b495df70..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_80080F68.s +++ /dev/null @@ -1,262 +0,0 @@ -.rdata -glabel D_8013D898 - .asciz "../z_map_exp.c" - .balign 4 - -glabel D_8013D8A8 - .asciz "\n\n\nMAP テクスチャ初期化 scene_data_ID=%d\nmapSegment=%x\n\n" - # EUC-JP: MAP テクスチャ初期化 | MAP texture initalization - .balign 4 - -glabel D_8013D8E8 - .asciz "parameter->mapSegment != NULL" - .balign 4 - -glabel D_8013D908 - .asciz "../z_map_exp.c" - .balign 4 - -.late_rodata -glabel jtbl_8013DB58 - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - .word L8008106C - -glabel jtbl_8013DBA8 - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - .word L8008114C - -.text -glabel func_80080F68 -/* AF8108 80080F68 3C088016 */ lui $t0, %hi(D_8015FFD0) # $t0, 0x8016 -/* AF810C 80080F6C 3C0E8012 */ lui $t6, %hi(D_801257F8) # $t6, 0x8012 -/* AF8110 80080F70 2508FFD0 */ addiu $t0, %lo(D_8015FFD0) # addiu $t0, $t0, -0x30 -/* AF8114 80080F74 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* AF8118 80080F78 25CE57F8 */ addiu $t6, %lo(D_801257F8) # addiu $t6, $t6, 0x57f8 -/* AF811C 80080F7C 3C010001 */ lui $at, 1 -/* AF8120 80080F80 AFBF0014 */ sw $ra, 0x14($sp) -/* AF8124 80080F84 2402FFFF */ li $v0, -1 -/* AF8128 80080F88 AD0E0000 */ sw $t6, ($t0) -/* AF812C 80080F8C 00811821 */ addu $v1, $a0, $at -/* AF8130 80080F90 A4620748 */ sh $v0, 0x748($v1) -/* AF8134 80080F94 A462074A */ sh $v0, 0x74a($v1) -/* AF8138 80080F98 3C068014 */ lui $a2, %hi(D_8013D898) # $a2, 0x8014 -/* AF813C 80080F9C 24C6D898 */ addiu $a2, %lo(D_8013D898) # addiu $a2, $a2, -0x2768 -/* AF8140 80080FA0 AFA40030 */ sw $a0, 0x30($sp) -/* AF8144 80080FA4 AFA30018 */ sw $v1, 0x18($sp) -/* AF8148 80080FA8 24051000 */ li $a1, 4096 -/* AF814C 80080FAC 0C031521 */ jal Game_Alloc -/* AF8150 80080FB0 240701C9 */ li $a3, 457 -/* AF8154 80080FB4 8FA70030 */ lw $a3, 0x30($sp) -/* AF8158 80080FB8 3C010001 */ lui $at, (0x000104F0 >> 16) # lui $at, 1 -/* AF815C 80080FBC 342104F0 */ ori $at, (0x000104F0 & 0xFFFF) # ori $at, $at, 0x4f0 -/* AF8160 80080FC0 00E11821 */ addu $v1, $a3, $at -/* AF8164 80080FC4 AC62013C */ sw $v0, 0x13c($v1) -/* AF8168 80080FC8 3C048014 */ lui $a0, %hi(D_8013D8A8) # $a0, 0x8014 -/* AF816C 80080FCC 84E500A4 */ lh $a1, 0xa4($a3) -/* AF8170 80080FD0 AFA3001C */ sw $v1, 0x1c($sp) -/* AF8174 80080FD4 2484D8A8 */ addiu $a0, %lo(D_8013D8A8) # addiu $a0, $a0, -0x2758 -/* AF8178 80080FD8 0C00084C */ jal osSyncPrintf -/* AF817C 80080FDC 00403025 */ move $a2, $v0 -/* AF8180 80080FE0 8FA3001C */ lw $v1, 0x1c($sp) -/* AF8184 80080FE4 3C088016 */ lui $t0, %hi(D_8015FFD0) # $t0, 0x8016 -/* AF8188 80080FE8 3C048014 */ lui $a0, %hi(D_8013D8E8) # $a0, 0x8014 -/* AF818C 80080FEC 8C6F013C */ lw $t7, 0x13c($v1) -/* AF8190 80080FF0 2508FFD0 */ addiu $t0, %lo(D_8015FFD0) # addiu $t0, $t0, -0x30 -/* AF8194 80080FF4 2484D8E8 */ addiu $a0, %lo(D_8013D8E8) # addiu $a0, $a0, -0x2718 -/* AF8198 80080FF8 15E00006 */ bnez $t7, .L80081014 -/* AF819C 80080FFC 3C058014 */ lui $a1, %hi(D_8013D908) # $a1, 0x8014 -/* AF81A0 80081000 24A5D908 */ addiu $a1, %lo(D_8013D908) # addiu $a1, $a1, -0x26f8 -/* AF81A4 80081004 0C0007FC */ jal __assert -/* AF81A8 80081008 240601CB */ li $a2, 459 -/* AF81AC 8008100C 3C088016 */ lui $t0, %hi(D_8015FFD0) # $t0, 0x8016 -/* AF81B0 80081010 2508FFD0 */ addiu $t0, %lo(D_8015FFD0) # addiu $t0, $t0, -0x30 -.L80081014: -/* AF81B4 80081014 8FA40030 */ lw $a0, 0x30($sp) -/* AF81B8 80081018 848900A4 */ lh $t1, 0xa4($a0) -/* AF81BC 8008101C 29210019 */ slti $at, $t1, 0x19 -/* AF81C0 80081020 1420000A */ bnez $at, .L8008104C -/* AF81C4 80081024 01201025 */ move $v0, $t1 -/* AF81C8 80081028 2458FFAF */ addiu $t8, $v0, -0x51 -/* AF81CC 8008102C 2F010014 */ sltiu $at, $t8, 0x14 -/* AF81D0 80081030 1020007F */ beqz $at, .L80081230 -/* AF81D4 80081034 0018C080 */ sll $t8, $t8, 2 -/* AF81D8 80081038 3C018014 */ lui $at, %hi(jtbl_8013DB58) -/* AF81DC 8008103C 00380821 */ addu $at, $at, $t8 -/* AF81E0 80081040 8C38DB58 */ lw $t8, %lo(jtbl_8013DB58)($at) -/* AF81E4 80081044 03000008 */ jr $t8 -/* AF81E8 80081048 00000000 */ nop -.L8008104C: -/* AF81EC 8008104C 2C410019 */ sltiu $at, $v0, 0x19 -/* AF81F0 80081050 10200077 */ beqz $at, .L80081230 -/* AF81F4 80081054 0002C880 */ sll $t9, $v0, 2 -/* AF81F8 80081058 3C018014 */ lui $at, %hi(jtbl_8013DBA8) -/* AF81FC 8008105C 00390821 */ addu $at, $at, $t9 -/* AF8200 80081060 8C39DBA8 */ lw $t9, %lo(jtbl_8013DBA8)($at) -/* AF8204 80081064 03200008 */ jr $t9 -/* AF8208 80081068 00000000 */ nop -glabel L8008106C -/* AF820C 8008106C 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AF8210 80081070 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* AF8214 80081074 8C6B0000 */ lw $t3, ($v1) -/* AF8218 80081078 3C078016 */ lui $a3, %hi(gSaveContext) # $a3, 0x8016 -/* AF821C 8008107C 24E7E660 */ addiu $a3, %lo(gSaveContext) # addiu $a3, $a3, -0x19a0 -/* AF8220 80081080 2526FFAF */ addiu $a2, $t1, -0x51 -/* AF8224 80081084 A4E61402 */ sh $a2, 0x1402($a3) -/* AF8228 80081088 A5660F2A */ sh $a2, 0xf2a($t3) -/* AF822C 8008108C 8D0C0000 */ lw $t4, ($t0) -/* AF8230 80081090 000610C0 */ sll $v0, $a2, 3 -/* AF8234 80081094 8C780000 */ lw $t8, ($v1) -/* AF8238 80081098 8D8D0034 */ lw $t5, 0x34($t4) -/* AF823C 8008109C 00062C00 */ sll $a1, $a2, 0x10 -/* AF8240 800810A0 00052C03 */ sra $a1, $a1, 0x10 -/* AF8244 800810A4 01A27021 */ addu $t6, $t5, $v0 -/* AF8248 800810A8 85CF0000 */ lh $t7, ($t6) -/* AF824C 800810AC A70F0F30 */ sh $t7, 0xf30($t8) -/* AF8250 800810B0 8D190000 */ lw $t9, ($t0) -/* AF8254 800810B4 8C6D0000 */ lw $t5, ($v1) -/* AF8258 800810B8 8F2A0034 */ lw $t2, 0x34($t9) -/* AF825C 800810BC 01425821 */ addu $t3, $t2, $v0 -/* AF8260 800810C0 856C0002 */ lh $t4, 2($t3) -/* AF8264 800810C4 A5AC0F32 */ sh $t4, 0xf32($t5) -/* AF8268 800810C8 8D0E0000 */ lw $t6, ($t0) -/* AF826C 800810CC 8C6A0000 */ lw $t2, ($v1) -/* AF8270 800810D0 8DCF0034 */ lw $t7, 0x34($t6) -/* AF8274 800810D4 01E2C021 */ addu $t8, $t7, $v0 -/* AF8278 800810D8 87190004 */ lh $t9, 4($t8) -/* AF827C 800810DC A5590F34 */ sh $t9, 0xf34($t2) -/* AF8280 800810E0 8D0B0000 */ lw $t3, ($t0) -/* AF8284 800810E4 8C6F0000 */ lw $t7, ($v1) -/* AF8288 800810E8 8D6C0034 */ lw $t4, 0x34($t3) -/* AF828C 800810EC 01826821 */ addu $t5, $t4, $v0 -/* AF8290 800810F0 85AE0006 */ lh $t6, 6($t5) -/* AF8294 800810F4 A5EE0F36 */ sh $t6, 0xf36($t7) -/* AF8298 800810F8 0C0202AD */ jal func_80080AB4 -/* AF829C 800810FC AFA6002C */ sw $a2, 0x2c($sp) -/* AF82A0 80081100 3C088016 */ lui $t0, %hi(D_8015FFD0) # $t0, 0x8016 -/* AF82A4 80081104 2508FFD0 */ addiu $t0, %lo(D_8015FFD0) # addiu $t0, $t0, -0x30 -/* AF82A8 80081108 8D180000 */ lw $t8, ($t0) -/* AF82AC 8008110C 8FA6002C */ lw $a2, 0x2c($sp) -/* AF82B0 80081110 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AF82B4 80081114 8F19002C */ lw $t9, 0x2c($t8) -/* AF82B8 80081118 00061040 */ sll $v0, $a2, 1 -/* AF82BC 8008111C 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* AF82C0 80081120 03225021 */ addu $t2, $t9, $v0 -/* AF82C4 80081124 854B0000 */ lh $t3, ($t2) -/* AF82C8 80081128 8C6C0000 */ lw $t4, ($v1) -/* AF82CC 8008112C A58B0DCE */ sh $t3, 0xdce($t4) -/* AF82D0 80081130 8D0D0000 */ lw $t5, ($t0) -/* AF82D4 80081134 8C790000 */ lw $t9, ($v1) -/* AF82D8 80081138 8DAE0030 */ lw $t6, 0x30($t5) -/* AF82DC 8008113C 01C27821 */ addu $t7, $t6, $v0 -/* AF82E0 80081140 85F80000 */ lh $t8, ($t7) -/* AF82E4 80081144 1000003A */ b .L80081230 -/* AF82E8 80081148 A7380DD0 */ sh $t8, 0xdd0($t9) -glabel L8008114C -/* AF82EC 8008114C 29210011 */ slti $at, $t1, 0x11 -/* AF82F0 80081150 14200003 */ bnez $at, .L80081160 -/* AF82F4 80081154 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016 -/* AF82F8 80081158 10000002 */ b .L80081164 -/* AF82FC 8008115C 2526FFEF */ addiu $a2, $t1, -0x11 -.L80081160: -/* AF8300 80081160 01203025 */ move $a2, $t1 -.L80081164: -/* AF8304 80081164 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570 -/* AF8308 80081168 8C6B0000 */ lw $t3, ($v1) -/* AF830C 8008116C 3C078016 */ lui $a3, %hi(gSaveContext) # $a3, 0x8016 -/* AF8310 80081170 24E7E660 */ addiu $a3, %lo(gSaveContext) # addiu $a3, $a3, -0x19a0 -/* AF8314 80081174 A4E61402 */ sh $a2, 0x1402($a3) -/* AF8318 80081178 A5660F2A */ sh $a2, 0xf2a($t3) -/* AF831C 8008117C 848900A4 */ lh $t1, 0xa4($a0) -/* AF8320 80081180 2921000A */ slti $at, $t1, 0xa -/* AF8324 80081184 14200003 */ bnez $at, .L80081194 -/* AF8328 80081188 29210011 */ slti $at, $t1, 0x11 -/* AF832C 8008118C 54200029 */ bnezl $at, .L80081234 -/* AF8330 80081190 8FBF0014 */ lw $ra, 0x14($sp) -.L80081194: -/* AF8334 80081194 8D0C0000 */ lw $t4, ($t0) -/* AF8338 80081198 000610C0 */ sll $v0, $a2, 3 -/* AF833C 8008119C 8C780000 */ lw $t8, ($v1) -/* AF8340 800811A0 8D8D003C */ lw $t5, 0x3c($t4) -/* AF8344 800811A4 01A27021 */ addu $t6, $t5, $v0 -/* AF8348 800811A8 85CF0000 */ lh $t7, ($t6) -/* AF834C 800811AC A70F0F30 */ sh $t7, 0xf30($t8) -/* AF8350 800811B0 8D190000 */ lw $t9, ($t0) -/* AF8354 800811B4 8C6D0000 */ lw $t5, ($v1) -/* AF8358 800811B8 8F2A003C */ lw $t2, 0x3c($t9) -/* AF835C 800811BC 01425821 */ addu $t3, $t2, $v0 -/* AF8360 800811C0 856C0002 */ lh $t4, 2($t3) -/* AF8364 800811C4 A5AC0F32 */ sh $t4, 0xf32($t5) -/* AF8368 800811C8 8D0E0000 */ lw $t6, ($t0) -/* AF836C 800811CC 8C6A0000 */ lw $t2, ($v1) -/* AF8370 800811D0 8DCF003C */ lw $t7, 0x3c($t6) -/* AF8374 800811D4 01E2C021 */ addu $t8, $t7, $v0 -/* AF8378 800811D8 87190004 */ lh $t9, 4($t8) -/* AF837C 800811DC A5590F34 */ sh $t9, 0xf34($t2) -/* AF8380 800811E0 8D0B0000 */ lw $t3, ($t0) -/* AF8384 800811E4 8C6F0000 */ lw $t7, ($v1) -/* AF8388 800811E8 00065040 */ sll $t2, $a2, 1 -/* AF838C 800811EC 8D6C003C */ lw $t4, 0x3c($t3) -/* AF8390 800811F0 01826821 */ addu $t5, $t4, $v0 -/* AF8394 800811F4 85AE0006 */ lh $t6, 6($t5) -/* AF8398 800811F8 A5EE0F36 */ sh $t6, 0xf36($t7) -/* AF839C 800811FC 8D180000 */ lw $t8, ($t0) -/* AF83A0 80081200 8C6C0000 */ lw $t4, ($v1) -/* AF83A4 80081204 8F190038 */ lw $t9, 0x38($t8) -/* AF83A8 80081208 032A5821 */ addu $t3, $t9, $t2 -/* AF83AC 8008120C 85670000 */ lh $a3, ($t3) -/* AF83B0 80081210 A5870F2C */ sh $a3, 0xf2c($t4) -/* AF83B4 80081214 8C6D0000 */ lw $t5, ($v1) -/* AF83B8 80081218 A5A70F2E */ sh $a3, 0xf2e($t5) -/* AF83BC 8008121C 8FAE0018 */ lw $t6, 0x18($sp) -/* AF83C0 80081220 0C020381 */ jal func_80080E04 -/* AF83C4 80081224 81C51CBC */ lb $a1, 0x1cbc($t6) -/* AF83C8 80081228 0C01ECA4 */ jal MapMark_Init -/* AF83CC 8008122C 8FA40030 */ lw $a0, 0x30($sp) -.L80081230: -/* AF83D0 80081230 8FBF0014 */ lw $ra, 0x14($sp) -.L80081234: -/* AF83D4 80081234 27BD0030 */ addiu $sp, $sp, 0x30 -/* AF83D8 80081238 03E00008 */ jr $ra -/* AF83DC 8008123C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_map_exp/func_80082248.s b/asm/non_matchings/code/z_map_exp/func_80082248.s deleted file mode 100644 index c688f75d82..0000000000 --- a/asm/non_matchings/code/z_map_exp/func_80082248.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_80082248 -/* AF93E8 80082248 3C0E8016 */ lui $t6, %hi(D_8015FFD0) # $t6, 0x8016 -/* AF93EC 8008224C 8DCEFFD0 */ lw $t6, %lo(D_8015FFD0)($t6) -/* AF93F0 80082250 0004C100 */ sll $t8, $a0, 4 -/* AF93F4 80082254 00054040 */ sll $t0, $a1, 1 -/* AF93F8 80082258 8DCF0000 */ lw $t7, ($t6) -/* AF93FC 8008225C 01F8C821 */ addu $t9, $t7, $t8 -/* AF9400 80082260 03284821 */ addu $t1, $t9, $t0 -/* AF9404 80082264 03E00008 */ jr $ra -/* AF9408 80082268 85220000 */ lh $v0, ($t1) - diff --git a/asm/non_matchings/code/z_parameter/Interface_Draw.s b/asm/non_matchings/code/z_parameter/Interface_Draw.s index b36db288bf..a32c2b4fd9 100644 --- a/asm/non_matchings/code/z_parameter/Interface_Draw.s +++ b/asm/non_matchings/code/z_parameter/Interface_Draw.s @@ -140,7 +140,7 @@ glabel Interface_Draw /* B01C74 8008AAD4 02E02025 */ move $a0, $s7 /* B01C78 8008AAD8 0C022A65 */ jal func_8008A994 /* B01C7C 8008AADC 02C02025 */ move $a0, $s6 -/* B01C80 8008AAE0 0C01E3C7 */ jal Interface_DrawHealth +/* B01C80 8008AAE0 0C01E3C7 */ jal Health_Draw /* B01C84 8008AAE4 02E02025 */ move $a0, $s7 /* B01C88 8008AAE8 0C025148 */ jal func_80094520 /* B01C8C 8008AAEC 8EE40000 */ lw $a0, ($s7) @@ -499,7 +499,7 @@ glabel L8008ABB0 .L8008B02C: /* B021CC 8008B02C 0C0220A1 */ jal Interface_DrawMagicBar /* B021D0 8008B030 02E02025 */ move $a0, $s7 -/* B021D4 8008B034 0C0205B8 */ jal Interface_DrawMinimap +/* B021D4 8008B034 0C0205B8 */ jal Minimap_Draw /* B021D8 8008B038 02E02025 */ move $a0, $s7 /* B021DC 8008B03C 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016 /* B021E0 8008B040 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2) diff --git a/asm/non_matchings/code/z_parameter/Interface_Update.s b/asm/non_matchings/code/z_parameter/Interface_Update.s index 5c62a560ad..14171c165e 100644 --- a/asm/non_matchings/code/z_parameter/Interface_Update.s +++ b/asm/non_matchings/code/z_parameter/Interface_Update.s @@ -381,7 +381,7 @@ glabel L8008D93C /* B04B54 8008D9B4 03017821 */ addu $t7, $t8, $at /* B04B58 8008D9B8 AFAF0028 */ sw $t7, 0x28($sp) .L8008D9BC: -/* B04B5C 8008D9BC 0C02089B */ jal func_8008226C +/* B04B5C 8008D9BC 0C02089B */ jal Map_Update /* B04B60 8008D9C0 8FA40048 */ lw $a0, 0x48($sp) /* B04B64 8008D9C4 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016 /* B04B68 8008D9C8 2508E660 */ addiu $t0, %lo(gSaveContext) # addiu $t0, $t0, -0x19a0 diff --git a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081BB10.s b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081BB10.s index f2db1d4f88..527e2e773a 100644 --- a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081BB10.s +++ b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081BB10.s @@ -109,8 +109,8 @@ glabel func_8081BB10 /* 08488 8081BCA8 8625021A */ lh $a1, 0x021A($s1) ## 0000021A /* 0848C 8081BCAC 3C128016 */ lui $s2, %hi(gSaveContext) /* 08490 8081BCB0 2652E660 */ addiu $s2, %lo(gSaveContext) -/* 08494 8081BCB4 3C198016 */ lui $t9, %hi(D_8015FFD0) -/* 08498 8081BCB8 8F39FFD0 */ lw $t9, %lo(D_8015FFD0)($t9) +/* 08494 8081BCB4 3C198016 */ lui $t9, %hi(gMapData) +/* 08498 8081BCB8 8F39FFD0 */ lw $t9, %lo(gMapData)($t9) /* 0849C 8081BCBC 96581402 */ lhu $t8, 0x1402($s2) ## 8015FA62 /* 084A0 8081BCC0 3C038016 */ lui $v1, %hi(gGameInfo) /* 084A4 8081BCC4 8F2F0000 */ lw $t7, 0x0000($t9) ## 80160000 @@ -215,10 +215,10 @@ glabel func_8081BB10 /* 08610 8081BE30 01C27023 */ subu $t6, $t6, $v0 /* 08614 8081BE34 000E7080 */ sll $t6, $t6, 2 /* 08618 8081BE38 024EC021 */ addu $t8, $s2, $t6 -/* 0861C 8081BE3C 3C088016 */ lui $t0, %hi(D_8015FFD0) +/* 0861C 8081BE3C 3C088016 */ lui $t0, %hi(gMapData) /* 08620 8081BE40 3C030001 */ lui $v1, 0x0001 ## $v1 = 00010000 /* 08624 8081BE44 346304F0 */ ori $v1, $v1, 0x04F0 ## $v1 = 000104F0 -/* 08628 8081BE48 2508FFD0 */ addiu $t0, %lo(D_8015FFD0) +/* 08628 8081BE48 2508FFD0 */ addiu $t0, %lo(gMapData) /* 0862C 8081BE4C 8F0400EC */ lw $a0, 0x00EC($t8) ## 000000EC /* 08630 8081BE50 8FA601F0 */ lw $a2, 0x01F0($sp) /* 08634 8081BE54 0007C880 */ sll $t9, $a3, 2 @@ -286,11 +286,11 @@ glabel func_8081BB10 /* 08710 8081BF30 24EE0003 */ addiu $t6, $a3, 0x0003 ## $t6 = 00000001 /* 08714 8081BF34 8D590008 */ lw $t9, 0x0008($t2) ## 80127128 /* 08718 8081BF38 91EE00A8 */ lbu $t6, 0x00A8($t7) ## 000000A6 -/* 0871C 8081BF3C 3C0F8016 */ lui $t7, %hi(D_8015FFD0) +/* 0871C 8081BF3C 3C0F8016 */ lui $t7, %hi(gMapData) /* 08720 8081BF40 032EC024 */ and $t8, $t9, $t6 /* 08724 8081BF44 1300000F */ beq $t8, $zero, .L8081BF84 /* 08728 8081BF48 8FAE01F0 */ lw $t6, 0x01F0($sp) -/* 0872C 8081BF4C 8DEFFFD0 */ lw $t7, %lo(D_8015FFD0)($t7) +/* 0872C 8081BF4C 8DEFFFD0 */ lw $t7, %lo(gMapData)($t7) /* 08730 8081BF50 01C3C021 */ addu $t8, $t6, $v1 /* 08734 8081BF54 8DF90068 */ lw $t9, 0x0068($t7) ## 80160068 /* 08738 8081BF58 870F025A */ lh $t7, 0x025A($t8) ## 0000025A @@ -313,8 +313,8 @@ glabel func_8081BB10 /* 08774 8081BF94 5420FFE1 */ bnel $at, $zero, .L8081BF1C /* 08778 8081BF98 0007C880 */ sll $t9, $a3, 2 .L8081BF9C: -/* 0877C 8081BF9C 3C088016 */ lui $t0, %hi(D_8015FFD0) -/* 08780 8081BFA0 2508FFD0 */ addiu $t0, %lo(D_8015FFD0) +/* 0877C 8081BF9C 3C088016 */ lui $t0, %hi(gMapData) +/* 08780 8081BFA0 2508FFD0 */ addiu $t0, %lo(gMapData) /* 08784 8081BFA4 8D180000 */ lw $t8, 0x0000($t0) ## 8015FFD0 /* 08788 8081BFA8 3C038016 */ lui $v1, %hi(gGameInfo) /* 0878C 8081BFAC 0002C900 */ sll $t9, $v0, 4 @@ -426,11 +426,11 @@ glabel func_8081BB10 /* 08920 8081C140 00000000 */ nop /* 08924 8081C144 86220236 */ lh $v0, 0x0236($s1) ## 00000236 /* 08928 8081C148 A6200224 */ sh $zero, 0x0224($s1) ## 00000224 -/* 0892C 8081C14C 3C0F8016 */ lui $t7, %hi(D_8015FFD0) +/* 0892C 8081C14C 3C0F8016 */ lui $t7, %hi(gMapData) /* 08930 8081C150 A622021A */ sh $v0, 0x021A($s1) ## 0000021A /* 08934 8081C154 A6220248 */ sh $v0, 0x0248($s1) ## 00000248 /* 08938 8081C158 96591402 */ lhu $t9, 0x1402($s2) ## 8015FA62 -/* 0893C 8081C15C 8DEFFFD0 */ lw $t7, %lo(D_8015FFD0)($t7) +/* 0893C 8081C15C 8DEFFFD0 */ lw $t7, %lo(gMapData)($t7) /* 08940 8081C160 3C038016 */ lui $v1, %hi(gGameInfo) /* 08944 8081C164 0019C100 */ sll $t8, $t9, 4 /* 08948 8081C168 8DEE0000 */ lw $t6, 0x0000($t7) ## 80160000 @@ -844,12 +844,12 @@ glabel func_8081BB10 /* 08F68 8081C788 24E70001 */ addiu $a3, $a3, 0x0001 ## $a3 = 00000001 /* 08F6C 8081C78C 8E0602C0 */ lw $a2, 0x02C0($s0) ## 000002C0 /* 08F70 8081C790 3C19FD70 */ lui $t9, 0xFD70 ## $t9 = FD700000 -/* 08F74 8081C794 3C0E8016 */ lui $t6, %hi(D_8015FFD0) +/* 08F74 8081C794 3C0E8016 */ lui $t6, %hi(gMapData) /* 08F78 8081C798 24CF0008 */ addiu $t7, $a2, 0x0008 ## $t7 = 00000008 /* 08F7C 8081C79C AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0 /* 08F80 8081C7A0 ACD90000 */ sw $t9, 0x0000($a2) ## 00000000 /* 08F84 8081C7A4 8FAF0048 */ lw $t7, 0x0048($sp) -/* 08F88 8081C7A8 8DCEFFD0 */ lw $t6, %lo(D_8015FFD0)($t6) +/* 08F88 8081C7A8 8DCEFFD0 */ lw $t6, %lo(gMapData)($t6) /* 08F8C 8081C7AC 00091040 */ sll $v0, $t1, 1 /* 08F90 8081C7B0 85F9025A */ lh $t9, 0x025A($t7) ## 00000262 /* 08F94 8081C7B4 8DD80068 */ lw $t8, 0x0068($t6) ## 80160068 @@ -952,12 +952,12 @@ glabel func_8081BB10 /* 09110 8081C930 ACD90004 */ sw $t9, 0x0004($a2) ## 00000004 /* 09114 8081C934 8E0602C0 */ lw $a2, 0x02C0($s0) ## 000002C0 /* 09118 8081C938 3C0FFD70 */ lui $t7, 0xFD70 ## $t7 = FD700000 -/* 0911C 8081C93C 3C0E8016 */ lui $t6, %hi(D_8015FFD0) +/* 0911C 8081C93C 3C0E8016 */ lui $t6, %hi(gMapData) /* 09120 8081C940 24D80008 */ addiu $t8, $a2, 0x0008 ## $t8 = 00000008 /* 09124 8081C944 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0 /* 09128 8081C948 ACCF0000 */ sw $t7, 0x0000($a2) ## 00000000 /* 0912C 8081C94C 8FB80048 */ lw $t8, 0x0048($sp) -/* 09130 8081C950 8DCEFFD0 */ lw $t6, %lo(D_8015FFD0)($t6) +/* 09130 8081C950 8DCEFFD0 */ lw $t6, %lo(gMapData)($t6) /* 09134 8081C954 00094C00 */ sll $t1, $t1, 16 /* 09138 8081C958 870F025A */ lh $t7, 0x025A($t8) ## 00000262 /* 0913C 8081C95C 8DD90068 */ lw $t9, 0x0068($t6) ## 80160068 @@ -1175,8 +1175,8 @@ glabel func_8081BB10 /* 0948C 8081CCAC 91F800A8 */ lbu $t8, 0x00A8($t7) ## 000000B0 /* 09490 8081CCB0 03387024 */ and $t6, $t9, $t8 /* 09494 8081CCB4 11C0004C */ beq $t6, $zero, .L8081CDE8 -/* 09498 8081CCB8 3C0F8016 */ lui $t7, %hi(D_8015FFD0) -/* 0949C 8081CCBC 8DEFFFD0 */ lw $t7, %lo(D_8015FFD0)($t7) +/* 09498 8081CCB8 3C0F8016 */ lui $t7, %hi(gMapData) +/* 0949C 8081CCBC 8DEFFFD0 */ lw $t7, %lo(gMapData)($t7) /* 094A0 8081CCC0 0002C040 */ sll $t8, $v0, 1 /* 094A4 8081CCC4 2401FF9D */ addiu $at, $zero, 0xFF9D ## $at = FFFFFF9D /* 094A8 8081CCC8 8DF9006C */ lw $t9, 0x006C($t7) ## 8016006C diff --git a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826BA8.s b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826BA8.s index c20eb773cf..83e64ed69c 100644 --- a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826BA8.s +++ b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826BA8.s @@ -20,7 +20,7 @@ glabel func_80826BA8 /* 133CC 80826BEC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 133D0 80826BF0 24A5FFFD */ addiu $a1, $a1, 0xFFFD ## $a1 = FFFFFFFD /* 133D4 80826BF4 00052C00 */ sll $a1, $a1, 16 -/* 133D8 80826BF8 0C02023F */ jal func_800808FC +/* 133D8 80826BF8 0C02023F */ jal Map_SetFloorPalettesData /* 133DC 80826BFC 00052C03 */ sra $a1, $a1, 16 /* 133E0 80826C00 860200A4 */ lh $v0, 0x00A4($s0) ## 000000A4 /* 133E4 80826C04 8FA30024 */ lw $v1, 0x0024($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826CB4.s b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826CB4.s index 4223b7faf5..5a4c7436ef 100644 --- a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826CB4.s +++ b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_80826CB4.s @@ -3094,7 +3094,7 @@ glabel L80829880 /* 16060 80829880 3C050001 */ lui $a1, 0x0001 ## $a1 = 00010000 /* 16064 80829884 00B12821 */ addu $a1, $a1, $s1 /* 16068 80829888 84A5074C */ lh $a1, 0x074C($a1) ## 0001074C -/* 1606C 8082988C 0C0202AD */ jal func_80080AB4 +/* 1606C 8082988C 0C0202AD */ jal Map_InitData /* 16070 80829890 02202025 */ or $a0, $s1, $zero ## $a0 = 8082AB98 glabel L80829894 /* 16074 80829894 3C078083 */ lui $a3, %hi(D_808321A8) ## $a3 = 80830000 diff --git a/asm/non_matchings/overlays/actors/ovl_player_actor/func_80846CD8.s b/asm/non_matchings/overlays/actors/ovl_player_actor/func_80846CD8.s index 3158c61b98..9c73beebe8 100644 --- a/asm/non_matchings/overlays/actors/ovl_player_actor/func_80846CD8.s +++ b/asm/non_matchings/overlays/actors/ovl_player_actor/func_80846CD8.s @@ -349,7 +349,7 @@ glabel func_80846CD8 /* 14FB0 808471C0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 /* 14FB4 808471C4 A64013C0 */ sh $zero, 0x13C0($s2) ## 8015FA20 .L808471C8: -/* 14FB8 808471C8 0C0201E8 */ jal func_800807A0 +/* 14FB8 808471C8 0C0201E8 */ jal Map_SavePlayerInitialInfo /* 14FBC 808471CC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 /* 14FC0 808471D0 3C0B8016 */ lui $t3, %hi(gGameInfo) /* 14FC4 808471D4 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3) diff --git a/data/z_map_data.data.s b/data/z_map_data.data.s new file mode 100644 index 0000000000..44823cd702 --- /dev/null +++ b/data/z_map_data.data.s @@ -0,0 +1,122 @@ +.include "macro.inc" + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purposee registers + +.section .data + +glabel D_80123A70 + .incbin "baserom.z64", 0xB9AC10, 0xA0 + +glabel D_80123B10 + .incbin "baserom.z64", 0xB9ACB0, 0x10 + +glabel D_80123B20 + .incbin "baserom.z64", 0xB9ACC0, 0x280 + +glabel D_80123DA0 + .incbin "baserom.z64", 0xB9AF40, 0x14 + +glabel D_80123DB4 + .incbin "baserom.z64", 0xB9AF54, 0x8C0 + +glabel D_80124674 + .incbin "baserom.z64", 0xB9B814, 0x370 + +glabel D_801249E4 + .incbin "baserom.z64", 0xB9BB84, 0x370 + +glabel D_80124D54 + .incbin "baserom.z64", 0xB9BEF4, 0xC + +glabel D_80124D60 + .incbin "baserom.z64", 0xB9BF00, 0x14 + +glabel D_80124D74 + .incbin "baserom.z64", 0xB9BF14, 0x30 + +glabel D_80124DA4 + .incbin "baserom.z64", 0xB9BF44, 0x30 + +glabel D_80124DD4 + .incbin "baserom.z64", 0xB9BF74, 0x30 + +glabel D_80124E04 + .incbin "baserom.z64", 0xB9BFA4, 0x30 + +glabel D_80124E34 + .incbin "baserom.z64", 0xB9BFD4, 0xC0 + +glabel D_80124EF4 + .incbin "baserom.z64", 0xB9C094, 0x14 + +glabel D_80124F08 + .incbin "baserom.z64", 0xB9C0A8, 0x50 + +glabel D_80124F58 + .incbin "baserom.z64", 0xB9C0F8, 0x30 + +glabel D_80124F88 + .incbin "baserom.z64", 0xB9C128, 0x30 + +glabel D_80124FB8 + .incbin "baserom.z64", 0xB9C158, 0x30 + +glabel D_80124FE8 + .incbin "baserom.z64", 0xB9C188, 0x30 + +glabel D_80125018 + .incbin "baserom.z64", 0xB9C1B8, 0x28 + +glabel D_80125040 + .incbin "baserom.z64", 0xB9C1E0, 0x140 + +glabel D_80125180 + .incbin "baserom.z64", 0xB9C320, 0x14 + +glabel D_80125194 + .incbin "baserom.z64", 0xB9C334, 0x200 + +glabel D_80125394 + .incbin "baserom.z64", 0xB9C534, 0x200 + +glabel D_80125594 + .incbin "baserom.z64", 0xB9C734, 0x200 + +glabel D_80125794 + .incbin "baserom.z64", 0xB9C934, 0x50 + +glabel D_801257E4 + .incbin "baserom.z64", 0xB9C984, 0x14 + +glabel gMapDataTable + .word D_80123A70 + .word D_80123B10 + .word D_80123B20 + .word D_80123DA0 + .word D_80123DB4 + .word D_80124674 + .word D_801249E4 + .word D_80124D54 + .word D_80124D60 + .word D_80124D74 + .word D_80124DA4 + .word D_80124DD4 + .word D_80124E04 + .word D_80124E34 + .word D_80124EF4 + .word D_80124F08 + .word D_80124F58 + .word D_80124F88 + .word D_80124FB8 + .word D_80124FE8 + .word D_80125018 + .word D_80125040 + .word D_80125180 + .word D_80125194 + .word D_80125394 + .word D_80125594 + .word D_80125794 + .word D_801257E4 diff --git a/data/z_map_exp.bss.s b/data/z_map_exp.bss.s deleted file mode 100644 index 6bd057e2af..0000000000 --- a/data/z_map_exp.bss.s +++ /dev/null @@ -1,11 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purposee registers - -.section .bss - -glabel D_8015FFD0 - .space 0x10 diff --git a/data/z_map_exp.data.s b/data/z_map_exp.data.s deleted file mode 100644 index acbab1295f..0000000000 --- a/data/z_map_exp.data.s +++ /dev/null @@ -1,26 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purposee registers - -.section .data - -glabel D_80123A50 - .incbin "baserom.z64", 0xB9ABF0, 0x4 - -glabel D_80123A54 - .incbin "baserom.z64", 0xB9ABF4, 0x4 - -glabel D_80123A58 - .incbin "baserom.z64", 0xB9ABF8, 0x4 - -glabel D_80123A5C - .incbin "baserom.z64", 0xB9ABFC, 0x4 - -glabel D_80123A60 - .incbin "baserom.z64", 0xB9AC00, 0x1D98 - -glabel D_801257F8 - .incbin "baserom.z64", 0xB9C998, 0x78 diff --git a/include/functions.h b/include/functions.h index 6862c239c9..6f828827d0 100644 --- a/include/functions.h +++ b/include/functions.h @@ -922,7 +922,7 @@ void func_800788CC(u16 sfxId); void func_80078914(Vec3f* arg0, u16 sfxId); void Health_InitData(GlobalContext* globalCtx); void Health_UpdateData(GlobalContext* globalCtx); -void Interface_DrawHealth(GlobalContext* globalCtx); +void Health_Draw(GlobalContext* globalCtx); void Health_HandleCriticalAlarm(GlobalContext* globalCtx); void Lights_InitPositionalLight(LightInfoPositional* info, s16 posX, s16 posY, s16 posZ, u8 red, u8 green, u8 blue, s16 radius, u32 type); @@ -994,17 +994,14 @@ s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s1 // ? func_800803F0(?); // ? func_80080480(?); void func_80080788(UNK_TYPE, UNK_TYPE); -// ? func_800807A0(?); -// ? func_800807FC(?); -// ? func_800808FC(?); -// ? func_80080AB4(?); -// ? func_80080E04(?); -// ? func_80080F44(?); -void func_80080F68(GlobalContext* globalCtx); -// ? func_80081240(?); -void Interface_DrawMinimap(GlobalContext* globalCtx); -// ? func_80082248(?); -void func_8008226C(GlobalContext* globalCtx); +void Map_SavePlayerInitialInfo(GlobalContext* globalCtx); +void Map_SetFloorPalettesData(GlobalContext* globalCtx, s16 floor); +void Map_InitData(GlobalContext* globalCtx, s16 room); +void Map_InitRoomData(GlobalContext* globalCtx, s16 room); +void Map_Destroy(GlobalContext* globalCtx); +void Map_Init(GlobalContext* globalCtx); +void Minimap_Draw(GlobalContext* globalCtx); +void Map_Update(GlobalContext* globalCtx); void Interface_ChangeAlpha(u16 alphaType); void Interface_SetSceneRestrictions(GlobalContext* globalCtx); void Inventory_SwapAgeEquipment(void); diff --git a/include/regs.h b/include/regs.h index b76587458e..099e9e6861 100644 --- a/include/regs.h +++ b/include/regs.h @@ -69,8 +69,21 @@ #define R_MAGIC_BAR_LARGE_Y XREG(50) #define R_MAGIC_FILL_X XREG(51) #define R_B_LABEL_DD WREG(0) +#define R_OW_MINIMAP_X WREG(29) +#define R_OW_MINIMAP_Y WREG(30) +#define R_MINIMAP_TOGGLED WREG(31) #define R_B_LABEL_X(i) WREG(40 + i) #define R_B_LABEL_Y(i) WREG(43 + i) +#define R_DGN_MINIMAP_X WREG(68) +#define R_DGN_MINIMAP_Y WREG(69) +#define R_MAP_INDEX VREG(11) +#define R_MAP_TEX_INDEX_BASE VREG(12) +#define R_MAP_TEX_INDEX VREG(13) +#define R_COMPASS_SCALE_X VREG(14) +#define R_COMPASS_SCALE_Y VREG(15) +#define R_COMPASS_OFFSET_X VREG(16) +#define R_COMPASS_OFFSET_Y VREG(17) +#define R_MINIMAP_COLOR(i) VREG(18 + i) #define R_ITEM_AMMO_X(i) VREG(64 + i) #define R_ITEM_AMMO_Y(i) VREG(68 + i) #define R_ITEM_ICON_WIDTH(i) VREG(76 + i) diff --git a/include/variables.h b/include/variables.h index 77212d0b10..8dbca766dd 100644 --- a/include/variables.h +++ b/include/variables.h @@ -36,7 +36,7 @@ extern u32 D_03012B20; //extern ? D_04003238; extern u32 D_04004298; //extern ? D_04006020; -//extern ? D_0400C820; +extern Gfx D_0400C820[]; extern u32 D_0400CB70; extern u32 D_04010130; //extern ? D_04015720; @@ -421,12 +421,7 @@ extern s16 D_80120130; //extern ? D_8012396C; //extern ? D_80123978; //extern ? D_801239D4; -//extern ? D_80123A50; -//extern ? D_80123A54; -//extern ? D_80123A58; -//extern ? D_80123A5C; -//extern ? D_80123A60; -//extern ? D_801257F8; +extern MapData gMapDataTable; //extern ? D_80125870; extern s16 gSpoilingItems[3]; extern s16 gSpoilingItemReverts[3]; @@ -3443,7 +3438,7 @@ extern u8 D_8015FD70; //extern ? D_8015FDAE; //extern ? D_8015FDB0; //extern ? D_8015FDF8; -//extern ? D_8015FFD0; +extern MapData* gMapData; //extern ? D_80160001; //extern ? D_80160004; //extern ? D_80160005; diff --git a/include/z64.h b/include/z64.h index 411db75f72..a6c94a5c58 100644 --- a/include/z64.h +++ b/include/z64.h @@ -59,8 +59,8 @@ typedef struct { /* 0x08 */ u32 clear; /* 0x0C */ u32 collect; /* 0x10 */ u32 unk; - /* 0x14 */ u32 rooms1; - /* 0x18 */ u32 rooms2; + /* 0x14 */ u32 rooms; + /* 0x18 */ u32 floors; } SaveSceneFlags; // size = 0x1C typedef struct { @@ -186,7 +186,7 @@ typedef struct { /* 0x13F6 */ s16 unk_13F6; /* 0x13F8 */ s16 unk_13F8; /* 0x13FA */ u16 eventInf[4]; // "event_inf" - /* 0x1402 */ u16 dungeonIndex; + /* 0x1402 */ u16 mapIndex; // intended for maps/minimaps but commonly used as the dungeon index /* 0x1404 */ u16 minigameState; /* 0x1406 */ u16 minigameScore; // "yabusame_total" /* 0x1408 */ char unk_1408[0x0001]; @@ -439,13 +439,6 @@ typedef struct { /* 0x016A */ s16 unk_16A; // unknown if used } Camera; // size = 0x16C -typedef struct { - /* 0x0000 */ Camera cameras[4]; - /* 0x05B0 */ Camera* cameraPtrs[4]; - /* 0x05C0 */ s16 activeCamera; - /* 0x05C2 */ s16 nextCamera; -} CameraContext; // size = 0x5C4 - typedef struct { /* 0x00 */ u8 musicSeq; /* 0x01 */ u8 nighttimeSFX; @@ -631,7 +624,7 @@ typedef struct { /* 0x0134 */ void* do_actionSegment; /* 0x0138 */ void* icon_itemSegment; /* 0x013C */ void* mapSegment; - /* 0x0140 */ char unk_140[0x20]; + /* 0x0140 */ u8 unk_140[32]; /* 0x0160 */ DmaRequest dmaRequest_160; /* 0x0180 */ DmaRequest dmaRequest_180; /* 0x01A0 */ char unk_1A0[0x20]; @@ -673,9 +666,10 @@ typedef struct { /* 0x0252 */ u16 magicAlpha; // also Rupee and Key counters alpha /* 0x0254 */ u16 minimapAlpha; /* 0x0256 */ s16 startAlpha; - /* 0x0258 */ char unk_258[0x004]; - /* 0x025C */ s16 roomNum; - /* 0x025E */ char unk_25E[0x002]; + /* 0x0258 */ s16 unk_258; + /* 0x025A */ s16 unk_25A; + /* 0x025C */ s16 mapRoomNum; + /* 0x025E */ s16 mapPaletteNum; // "map_palete_no" /* 0x0260 */ u8 unk_260; /* 0x0261 */ u8 unk_261; struct { @@ -1202,6 +1196,40 @@ typedef struct PreNMIContext { /* 0xA8 */ UNK_TYPE unk_A8; } PreNMIContext; // size = 0xAC +// All arrays pointed in this struct are indexed by "map indexes" +// In dungeons, the map index corresponds to the dungeon index (which also indexes keys, items, etc) +// In overworld areas, the map index corresponds to the overworld area index (spot 00, 01, etc) +typedef struct { + /* 0x00 */ s16 (*floorTexIndexOffset)[8]; // dungeon texture index offset by floor + /* 0x04 */ s16* bossFloor; // floor the boss is on + /* 0x08 */ s16 (*roomPalette)[32]; // map palette by room + /* 0x0C */ s16* maxPaletteCount; // max number of palettes in a same floor + /* 0x10 */ s16 (*paletteRoom)[8][14]; // room by palette by floor + /* 0x14 */ s16 (*roomCompassOffsetX)[44]; // dungeon compass icon X offset by room + /* 0x18 */ s16 (*roomCompassOffsetY)[44]; // dungeon compass icon Y offset by room + /* 0x1C */ u8* dgnMinimapCount; // number of room minimaps + /* 0x20 */ u16* dgnMinimapTexIndexOffset; // dungeon minimap texture index offset + /* 0x24 */ u16* owMinimapTexSize; + /* 0x28 */ u16* owMinimapTexOffset; + /* 0x2C */ s16* owMinimapPosX; + /* 0x30 */ s16* owMinimapPosY; + /* 0x34 */ s16 (*owCompassInfo)[4]; // [X scale, Y scale, X offset, Y offset] + /* 0x38 */ s16* dgnMinimapTexIndexBase; // dungeon minimap texture index base + /* 0x3C */ s16 (*dgnCompassInfo)[4]; // [X scale, Y scale, X offset, Y offset] + /* 0x40 */ s16* owMinimapWidth; + /* 0x44 */ s16* owMinimapHeight; + /* 0x48 */ s16* owEntranceIconPosX; // "dungeon entrance" icon X pos + /* 0x4C */ s16* owEntranceIconPosY; // "dungeon entrance" icon Y pos + /* 0x50 */ u16* owEntranceFlag; // flag in inf_table[26] based on which entrance icons are shown (0xFFFF = always shown) + /* 0x54 */ f32 (*floorCoordY)[8]; // Y coordinate of each floor + /* 0x58 */ u16* switchEntryCount; // number of "room switch" entries, which correspond to the next 3 arrays + /* 0x5C */ u8 (*switchFromRoom)[51]; // room to come from + /* 0x60 */ u8 (*switchFromFloor)[51]; // floor to come from + /* 0x64 */ u8 (*switchToRoom)[51]; // room to go to + /* 0x68 */ UNK_PTR unk_68; + /* 0x6C */ UNK_PTR unk_6C; +} MapData; // size = 0x70 + typedef struct { /* 0x00 */ s8 chestFlag; // chest icon is only displayed if this flag is not set for the current room /* 0x01 */ u8 x, y; // coordinates to place the icon (top-left corner), relative to the minimap texture diff --git a/include/z64item.h b/include/z64item.h index 7b28a910ea..7df521cf32 100644 --- a/include/z64item.h +++ b/include/z64item.h @@ -47,6 +47,12 @@ typedef enum { /* 0x18 */ QUEST_HEART_PIECE } QuestItem; +typedef enum { + /* 0x00 */ DUNGEON_KEY_BOSS, + /* 0x01 */ DUNGEON_COMPASS, + /* 0x02 */ DUNGEON_MAP +} DungeonItem; + typedef enum { /* 0x00 */ SLOT_STICK, /* 0x01 */ SLOT_NUT, diff --git a/spec b/spec index ca857e184c..6c92107031 100644 --- a/spec +++ b/spec @@ -342,8 +342,7 @@ beginseg include "build/src/code/z_onepointdemo.o" include "build/data/z_onepointdemo.data.o" include "build/src/code/z_map_exp.o" - include "build/data/z_map_exp.data.o" - include "build/data/z_map_exp.bss.o" + include "build/data/z_map_data.data.o" include "build/src/code/z_parameter.o" include "build/src/code/z_path.o" include "build/asm/code_8008E6A0.o" diff --git a/src/code/z_actor.c b/src/code/z_actor.c index aa3b4999c9..decdcc605e 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -2753,11 +2753,10 @@ Actor* Actor_Spawn(ActorContext* actorCtx, GlobalContext* globalCtx, s16 actorId overlayEntry->nbLoaded = 0; } - actorInit = - (ActorInit*)((u32)(overlayEntry->initInfo != NULL - ? (ActorInit*)((u32)overlayEntry->initInfo - (s32)((u32)overlayEntry->vramStart - - (u32)overlayEntry->loadedRamAddr)) - : NULL)); + actorInit = (void*)(u32)((overlayEntry->initInfo != NULL) + ? (void*)((u32)overlayEntry->initInfo - + (s32)((u32)overlayEntry->vramStart - (u32)overlayEntry->loadedRamAddr)) + : NULL); } objBankIndex = Object_GetIndex(&globalCtx->objectCtx, actorInit->objectId); diff --git a/src/code/z_construct.c b/src/code/z_construct.c index 75ac3d50ab..e6788647a7 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -2,7 +2,7 @@ #include void func_80110990(GlobalContext* globalCtx) { - func_80080F44(globalCtx); + Map_Destroy(globalCtx); } #ifdef NON_MATCHING @@ -165,7 +165,7 @@ void func_801109B0(GlobalContext* globalCtx) { osSyncPrintf("PARAMETER領域=%x\n", parameterSize + 0x5300); Health_InitData(globalCtx); - func_80080F68(globalCtx); + Map_Init(globalCtx); interfaceCtx->unk_242 = 0; interfaceCtx->unk_23C = 0; @@ -483,9 +483,9 @@ void func_80111070(void) { WREG(26) = -0x28; WREG(27) = 0; WREG(28) = 0; - WREG(29) = 0xEE; - WREG(30) = 0xA4; - WREG(31) = 0; + R_OW_MINIMAP_X = 0xEE; + R_OW_MINIMAP_Y = 0xA4; + R_MINIMAP_TOGGLED = 0; WREG(32) = 0x7A; WREG(33) = 0x3C; WREG(35) = 0; @@ -520,8 +520,8 @@ void func_80111070(void) { WREG(64) = -0x25; WREG(65) = 0x1E; WREG(66) = -0x32; - WREG(68) = 0xCC; - WREG(69) = 0x8C; + R_DGN_MINIMAP_X = 0xCC; + R_DGN_MINIMAP_Y = 0x8C; WREG(87) = 0x50; WREG(88) = 0x46; WREG(89) = 0x28; @@ -543,13 +543,13 @@ void func_80111070(void) { VREG(7) = 0x4E; VREG(8) = 0xA6; VREG(9) = 0x28; - VREG(14) = 0x20; - VREG(15) = 0x20; - VREG(16) = 0x6E; - VREG(17) = -0x2E4; - VREG(18) = 0; - VREG(19) = 0xFF; - VREG(20) = 0xFF; + R_COMPASS_SCALE_X = 0x20; + R_COMPASS_SCALE_Y = 0x20; + R_COMPASS_OFFSET_X = 0x6E; + R_COMPASS_OFFSET_Y = -0x2E4; + R_MINIMAP_COLOR(0) = 0; + R_MINIMAP_COLOR(1) = 0xFF; + R_MINIMAP_COLOR(2) = 0xFF; } VREG(21) = 0; diff --git a/src/code/z_elf_message.c b/src/code/z_elf_message.c index e37756c6d7..0342e84683 100644 --- a/src/code/z_elf_message.c +++ b/src/code/z_elf_message.c @@ -25,7 +25,7 @@ u32 ElfMessage_CheckCondition(ElfMessage* msg) { return ((msg->byte0 & 1) == 1) == !!(gSaveContext.eventChkInf[(msg->byte1 & 0xF0) >> 4] & temp); case 2: return ((msg->byte0 & 1) == 1) == - !!(gBitFlags[msg->byte1 - ITEM_KEY_BOSS] & gSaveContext.dungeonItems[gSaveContext.dungeonIndex]); + !!(gBitFlags[msg->byte1 - ITEM_KEY_BOSS] & gSaveContext.dungeonItems[gSaveContext.mapIndex]); case 4: return ((msg->byte0 & 1) == 1) == (msg->byte3 == INV_CONTENT(msg->byte1)); case 6: diff --git a/src/code/z_lifemeter.c b/src/code/z_lifemeter.c index 9cc05db1c7..63c328ce6f 100644 --- a/src/code/z_lifemeter.c +++ b/src/code/z_lifemeter.c @@ -184,7 +184,7 @@ s32 func_80078E84(GlobalContext* globalCtx) { return 0; } -void Interface_DrawHealth(GlobalContext* globalCtx) { +void Health_Draw(GlobalContext* globalCtx) { s32 pad[5]; u8* heartBgImg; u32 curColorSet; diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index b740bba3cb..6505d207da 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -1,24 +1,607 @@ #include #include +#include -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_800807A0.s") +MapData* gMapData; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_800807FC.s") +s16 sPlayerInitialPosX = 0; +s16 sPlayerInitialPosZ = 0; +s16 sPlayerInitialDirection = 0; +s16 sEntranceIconMapIndex = 0; +s16 sLastRoomNum = 99; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_800808FC.s") +void Map_SavePlayerInitialInfo(GlobalContext* globalCtx) { + Player* player = PLAYER; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_80080AB4.s") + sPlayerInitialPosX = player->actor.posRot.pos.x; + sPlayerInitialPosZ = player->actor.posRot.pos.z; + sPlayerInitialDirection = (s16)((0x7FFF - player->actor.shape.rot.y) / 0x400); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_80080E04.s") +void Map_SetPaletteData(GlobalContext* globalCtx, s16 room) { + s32 mapIndex = gSaveContext.mapIndex; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + s16 paletteNum = gMapData->roomPalette[mapIndex][room]; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_80080F44.s") + if (interfaceCtx->mapRoomNum == room) { + interfaceCtx->mapPaletteNum = paletteNum; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_80080F68.s") + osSyncPrintf(VT_FGCOL(YELLOW)); + // Translates to: "PALETE Set" + osSyncPrintf("PALETEセット 【 i=%x : room=%x 】Room_Inf[%d][4]=%x ( map_palete_no = %d )\n", paletteNum, + room, mapIndex, gSaveContext.sceneFlags[mapIndex].rooms, interfaceCtx->mapPaletteNum); + osSyncPrintf(VT_RST); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_80081240.s") + interfaceCtx->unk_140[paletteNum * 2] = 2; + interfaceCtx->unk_140[paletteNum * 2 + 1] = 0xBF; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/Interface_DrawMinimap.s") +void Map_SetFloorPalettesData(GlobalContext* globalCtx, s16 floor) { + s32 mapIndex = gSaveContext.mapIndex; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + s16 room; + s16 i; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_80082248.s") + for (i = 0; i < 16; i++) { + interfaceCtx->unk_140[i] = 0; + interfaceCtx->unk_140[i + 16] = 0; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/func_8008226C.s") + if (gSaveContext.dungeonItems[mapIndex] & gBitFlags[DUNGEON_MAP]) { + interfaceCtx->unk_140[30] = 0; + interfaceCtx->unk_140[31] = 1; + } + + switch (globalCtx->sceneNum) { + case SCENE_YDAN: + case SCENE_DDAN: + case SCENE_BDAN: + case SCENE_BMORI1: + case SCENE_HIDAN: + case SCENE_MIZUSIN: + case SCENE_JYASINZOU: + case SCENE_HAKADAN: + case SCENE_HAKADANCH: + case SCENE_ICE_DOUKUTO: + case SCENE_YDAN_BOSS: + case SCENE_DDAN_BOSS: + case SCENE_BDAN_BOSS: + case SCENE_MORIBOSSROOM: + case SCENE_FIRE_BS: + case SCENE_MIZUSIN_BS: + case SCENE_JYASINBOSS: + case SCENE_HAKADAN_BS: + for (i = 0; i < gMapData->maxPaletteCount[mapIndex]; i++) { + room = gMapData->paletteRoom[mapIndex][floor][i]; + if ((room != 0xFF) && (gSaveContext.sceneFlags[mapIndex].rooms & gBitFlags[room])) { + Map_SetPaletteData(globalCtx, room); + } + } + break; + } +} + +void Map_InitData(GlobalContext* globalCtx, s16 room) { + s32 mapIndex = gSaveContext.mapIndex; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + s16 extendedMapIndex; + + switch (globalCtx->sceneNum) { + case SCENE_SPOT00: + case SCENE_SPOT01: + case SCENE_SPOT02: + case SCENE_SPOT03: + case SCENE_SPOT04: + case SCENE_SPOT05: + case SCENE_SPOT06: + case SCENE_SPOT07: + case SCENE_SPOT08: + case SCENE_SPOT09: + case SCENE_SPOT10: + case SCENE_SPOT11: + case SCENE_SPOT12: + case SCENE_SPOT13: + case SCENE_SPOT15: + case SCENE_SPOT16: + case SCENE_SPOT17: + case SCENE_SPOT18: + case SCENE_SPOT20: + case SCENE_GANON_TOU: + extendedMapIndex = mapIndex; + if (globalCtx->sceneNum == SCENE_SPOT02) { + if (CHECK_QUEST_ITEM(QUEST_SONG_NOCTURNE)) { + extendedMapIndex = 0x14; + } + } else if (globalCtx->sceneNum == SCENE_SPOT06) { + if ((LINK_AGE_IN_YEARS == YEARS_ADULT) && !CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER)) { + extendedMapIndex = 0x15; + } + } else if (globalCtx->sceneNum == SCENE_SPOT09) { + if ((LINK_AGE_IN_YEARS == YEARS_ADULT) && !((gSaveContext.eventChkInf[9] & 0xF) == 0xF)) { + extendedMapIndex = 0x16; + } + } else if (globalCtx->sceneNum == SCENE_SPOT12) { + if ((gSaveContext.eventChkInf[9] & 0xF) == 0xF) { + extendedMapIndex = 0x17; + } + } + osSyncPrintf(VT_FGCOL(BLUE)); + osSyncPrintf("KKK=%d\n", extendedMapIndex); + osSyncPrintf(VT_RST); + sEntranceIconMapIndex = extendedMapIndex; + DmaMgr_SendRequest1(interfaceCtx->mapSegment, + (u32)_map_grand_staticSegmentRomStart + gMapData->owMinimapTexOffset[extendedMapIndex], + gMapData->owMinimapTexSize[mapIndex], "../z_map_exp.c", 309); + interfaceCtx->unk_258 = mapIndex; + break; + case SCENE_YDAN: + case SCENE_DDAN: + case SCENE_BDAN: + case SCENE_BMORI1: + case SCENE_HIDAN: + case SCENE_MIZUSIN: + case SCENE_JYASINZOU: + case SCENE_HAKADAN: + case SCENE_HAKADANCH: + case SCENE_ICE_DOUKUTO: + case SCENE_YDAN_BOSS: + case SCENE_DDAN_BOSS: + case SCENE_BDAN_BOSS: + case SCENE_MORIBOSSROOM: + case SCENE_FIRE_BS: + case SCENE_MIZUSIN_BS: + case SCENE_JYASINBOSS: + case SCENE_HAKADAN_BS: + osSyncPrintf(VT_FGCOL(YELLOW)); + // Translates to: "Deku Tree Dungeon MAP Texture DMA" + osSyncPrintf("デクの樹ダンジョンMAP テクスチャDMA(%x) scene_id_offset=%d VREG(30)=%d\n", room, + mapIndex, VREG(30)); + osSyncPrintf(VT_RST); + DmaMgr_SendRequest1(globalCtx->interfaceCtx.mapSegment, + (u32)_map_i_staticSegmentRomStart + + ((gMapData->dgnMinimapTexIndexOffset[mapIndex] + room) * 0xFF0), + 0xFF0, "../z_map_exp.c", 346); + R_COMPASS_OFFSET_X = gMapData->roomCompassOffsetX[mapIndex][room]; + R_COMPASS_OFFSET_Y = gMapData->roomCompassOffsetY[mapIndex][room]; + Map_SetFloorPalettesData(globalCtx, VREG(30)); + // Translates to: "MAP Individual Floor ON Check" + osSyncPrintf("MAP 各階ONチェック\n"); + break; + } +} + +void Map_InitRoomData(GlobalContext* globalCtx, s16 room) { + s32 mapIndex = gSaveContext.mapIndex; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + + osSyncPrintf("*******\n*******\nroom_no=%d (%d)(%d)\n*******\n*******\n", room, + mapIndex, globalCtx->sceneNum); + + if (room >= 0) { + switch (globalCtx->sceneNum) { + case SCENE_YDAN: + case SCENE_DDAN: + case SCENE_BDAN: + case SCENE_BMORI1: + case SCENE_HIDAN: + case SCENE_MIZUSIN: + case SCENE_JYASINZOU: + case SCENE_HAKADAN: + case SCENE_HAKADANCH: + case SCENE_ICE_DOUKUTO: + case SCENE_YDAN_BOSS: + case SCENE_DDAN_BOSS: + case SCENE_BDAN_BOSS: + case SCENE_MORIBOSSROOM: + case SCENE_FIRE_BS: + case SCENE_MIZUSIN_BS: + case SCENE_JYASINBOSS: + case SCENE_HAKADAN_BS: + gSaveContext.sceneFlags[mapIndex].rooms |= gBitFlags[room]; + osSyncPrintf("ROOM_INF=%d\n", gSaveContext.sceneFlags[mapIndex].rooms); + interfaceCtx->mapRoomNum = room; + interfaceCtx->unk_25A = mapIndex; + Map_SetPaletteData(globalCtx, room); + osSyncPrintf(VT_FGCOL(YELLOW)); + osSyncPrintf("部屋部屋=%d\n", room); // "Room Room = %d" + osSyncPrintf(VT_RST); + Map_InitData(globalCtx, room); + break; + } + } else { + interfaceCtx->mapRoomNum = 0; + } + + if (gSaveContext.unk_1422 != 2) { + gSaveContext.unk_1422 = 0; + } +} + +void Map_Destroy(GlobalContext* globalCtx) { + MapMark_ClearPointers(globalCtx); + gMapData = NULL; +} + +void Map_Init(GlobalContext* globalCtx) { + s32 mapIndex = gSaveContext.mapIndex; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + + gMapData = &gMapDataTable; + + interfaceCtx->unk_258 = -1; + interfaceCtx->unk_25A = -1; + + interfaceCtx->mapSegment = Game_Alloc(&globalCtx->state, 0x1000, "../z_map_exp.c", 457); + // Translates to "MAP TEXTURE INITIALIZATION scene_data_ID=%d mapSegment=%x" + osSyncPrintf("\n\n\nMAP テクスチャ初期化 scene_data_ID=%d\nmapSegment=%x\n\n", globalCtx->sceneNum, + interfaceCtx->mapSegment, globalCtx); + if (interfaceCtx->mapSegment == NULL) { + __assert("parameter->mapSegment != NULL", "../z_map_exp.c", 459); + } + + switch (globalCtx->sceneNum) { + case SCENE_SPOT00: + case SCENE_SPOT01: + case SCENE_SPOT02: + case SCENE_SPOT03: + case SCENE_SPOT04: + case SCENE_SPOT05: + case SCENE_SPOT06: + case SCENE_SPOT07: + case SCENE_SPOT08: + case SCENE_SPOT09: + case SCENE_SPOT10: + case SCENE_SPOT11: + case SCENE_SPOT12: + case SCENE_SPOT13: + case SCENE_SPOT15: + case SCENE_SPOT16: + case SCENE_SPOT17: + case SCENE_SPOT18: + case SCENE_SPOT20: + case SCENE_GANON_TOU: + mapIndex = globalCtx->sceneNum - SCENE_SPOT00; + R_MAP_INDEX = gSaveContext.mapIndex = mapIndex; + R_COMPASS_SCALE_X = gMapData->owCompassInfo[mapIndex][0]; + R_COMPASS_SCALE_Y = gMapData->owCompassInfo[mapIndex][1]; + R_COMPASS_OFFSET_X = gMapData->owCompassInfo[mapIndex][2]; + R_COMPASS_OFFSET_Y = gMapData->owCompassInfo[mapIndex][3]; + Map_InitData(globalCtx, mapIndex); + R_OW_MINIMAP_X = gMapData->owMinimapPosX[mapIndex]; + R_OW_MINIMAP_Y = gMapData->owMinimapPosY[mapIndex]; + break; + case SCENE_YDAN: + case SCENE_DDAN: + case SCENE_BDAN: + case SCENE_BMORI1: + case SCENE_HIDAN: + case SCENE_MIZUSIN: + case SCENE_JYASINZOU: + case SCENE_HAKADAN: + case SCENE_HAKADANCH: + case SCENE_ICE_DOUKUTO: + case SCENE_GANON: + case SCENE_MEN: + case SCENE_GERUDOWAY: + case SCENE_GANONTIKA: + case SCENE_GANON_SONOGO: + case SCENE_GANONTIKA_SONOGO: + case SCENE_TAKARAYA: + case SCENE_YDAN_BOSS: + case SCENE_DDAN_BOSS: + case SCENE_BDAN_BOSS: + case SCENE_MORIBOSSROOM: + case SCENE_FIRE_BS: + case SCENE_MIZUSIN_BS: + case SCENE_JYASINBOSS: + case SCENE_HAKADAN_BS: + mapIndex = + (globalCtx->sceneNum >= SCENE_YDAN_BOSS) ? globalCtx->sceneNum - SCENE_YDAN_BOSS : globalCtx->sceneNum; + R_MAP_INDEX = gSaveContext.mapIndex = mapIndex; + if ((globalCtx->sceneNum <= SCENE_ICE_DOUKUTO) || (globalCtx->sceneNum >= SCENE_YDAN_BOSS)) { + R_COMPASS_SCALE_X = gMapData->dgnCompassInfo[mapIndex][0]; + R_COMPASS_SCALE_Y = gMapData->dgnCompassInfo[mapIndex][1]; + R_COMPASS_OFFSET_X = gMapData->dgnCompassInfo[mapIndex][2]; + R_COMPASS_OFFSET_Y = gMapData->dgnCompassInfo[mapIndex][3]; + R_MAP_TEX_INDEX = R_MAP_TEX_INDEX_BASE = gMapData->dgnMinimapTexIndexBase[mapIndex]; + Map_InitRoomData(globalCtx, globalCtx->roomCtx.curRoom.num); + MapMark_Init(globalCtx); + } + break; + } +} + +#ifdef NON_MATCHING +// regalloc and minor ordering differences +void Minimap_DrawCompassIcons(GlobalContext* globalCtx) { + GraphicsContext* gfxCtx; + Player* player = PLAYER; + s16 tempX, tempY, tempZ; + Gfx* dispRefs[4]; + + gfxCtx = globalCtx->state.gfxCtx; + Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_map_exp.c", 565); + + if (globalCtx->interfaceCtx.minimapAlpha >= 0xAA) { + func_80094A14(globalCtx->state.gfxCtx); + + gSPMatrix(gfxCtx->overlay.p++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gDPSetCombineLERP(gfxCtx->overlay.p++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, + PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); + gDPSetEnvColor(gfxCtx->overlay.p++, 0x00, 0x00, 0x00, 0xFF); + gDPSetCombineMode(gfxCtx->overlay.p++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + + tempX = player->actor.posRot.pos.x; + tempZ = player->actor.posRot.pos.z; + tempX /= R_COMPASS_SCALE_X; + tempZ /= R_COMPASS_SCALE_Y; + Matrix_Translate((R_COMPASS_OFFSET_X + tempX) / 10.0f, (R_COMPASS_OFFSET_Y - tempZ) / 10.0f, 0.0f, MTXMODE_NEW); + Matrix_Scale(0.4f, 0.4f, 0.4f, MTXMODE_APPLY); + Matrix_RotateX(-1.6f, MTXMODE_APPLY); + tempY = (0x7FFF - player->actor.shape.rot.y) / 0x400; + Matrix_RotateY(tempY / 10.0f, MTXMODE_APPLY); + gSPMatrix(gfxCtx->overlay.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_map_exp.c", 585), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xC8, 0xFF, 0x00, 0xFF); + gSPDisplayList(gfxCtx->overlay.p++, D_0400C820); + + tempX = sPlayerInitialPosX; + tempZ = sPlayerInitialPosZ; + tempX /= R_COMPASS_SCALE_X; + tempZ /= R_COMPASS_SCALE_Y; + Matrix_Translate((R_COMPASS_OFFSET_X + tempX) / 10.0f, (R_COMPASS_OFFSET_Y - tempZ) / 10.0f, 0.0f, MTXMODE_NEW); + Matrix_Scale(VREG(9) / 100.0f, VREG(9) / 100.0f, VREG(9) / 100.0f, MTXMODE_APPLY); + Matrix_RotateX(VREG(52) / 10.0f, MTXMODE_APPLY); + Matrix_RotateY(sPlayerInitialDirection / 10.0f, MTXMODE_APPLY); + gSPMatrix(gfxCtx->overlay.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_map_exp.c", 603), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0xFF, 0xC8, 0x00, 0x00, 0xFF); + gSPDisplayList(gfxCtx->overlay.p++, D_0400C820); + } + + Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_map_exp.c", 607); +} +#else +#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/Minimap_DrawCompassIcons.s") +#endif + +void Minimap_Draw(GlobalContext* globalCtx) { + s32 pad[2]; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + s32 mapIndex = gSaveContext.mapIndex; + GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; + Gfx* dispRefs[4]; + + Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_map_exp.c", 626); + + if (globalCtx->pauseCtx.state < 4) { + switch (globalCtx->sceneNum) { + case SCENE_YDAN: + case SCENE_DDAN: + case SCENE_BDAN: + case SCENE_BMORI1: + case SCENE_HIDAN: + case SCENE_MIZUSIN: + case SCENE_JYASINZOU: + case SCENE_HAKADAN: + case SCENE_HAKADANCH: + case SCENE_ICE_DOUKUTO: + if (!R_MINIMAP_TOGGLED) { + func_80094520(globalCtx->state.gfxCtx); + gDPSetCombineLERP(gfxCtx->overlay.p++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, + 0, TEXEL0, 0, PRIMITIVE, 0); + + if (gSaveContext.dungeonItems[mapIndex] & gBitFlags[DUNGEON_MAP]) { + gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0x64, 0xFF, 0xFF, interfaceCtx->minimapAlpha); + + gDPLoadTextureBlock_4b(gfxCtx->overlay.p++, interfaceCtx->mapSegment, G_IM_FMT_I, 96, 85, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSPTextureRectangle(gfxCtx->overlay.p++, R_DGN_MINIMAP_X << 2, R_DGN_MINIMAP_Y << 2, + (R_DGN_MINIMAP_X + 96) << 2, (R_DGN_MINIMAP_Y + 85) << 2, G_TX_RENDERTILE, + 0, 0, 1024, 1024); + } + + if (gSaveContext.dungeonItems[mapIndex] & gBitFlags[DUNGEON_COMPASS]) { + Minimap_DrawCompassIcons(globalCtx); // Draw icons for the player spawn and current position + func_80094520(globalCtx->state.gfxCtx); + MapMark_DrawConditionally(globalCtx); + } + } + + if (!~(globalCtx->state.input[0].press.in.button | ~L_TRIG) && !Gameplay_InCsMode(globalCtx)) { + osSyncPrintf("Game_play_demo_mode_check=%d\n", Gameplay_InCsMode(globalCtx)); + // clang-format off + if (!R_MINIMAP_TOGGLED) { Audio_PlaySoundGeneral(NA_SE_SY_CAMERA_ZOOM_UP, &D_801333D4, 4, + &D_801333E0, &D_801333E0, &D_801333E8); } + else { Audio_PlaySoundGeneral(NA_SE_SY_CAMERA_ZOOM_DOWN, &D_801333D4, 4, + &D_801333E0, &D_801333E0, &D_801333E8); } + // clang-format on + R_MINIMAP_TOGGLED ^= 1; + } + + break; + case SCENE_SPOT00: + case SCENE_SPOT01: + case SCENE_SPOT02: + case SCENE_SPOT03: + case SCENE_SPOT04: + case SCENE_SPOT05: + case SCENE_SPOT06: + case SCENE_SPOT07: + case SCENE_SPOT08: + case SCENE_SPOT09: + case SCENE_SPOT10: + case SCENE_SPOT11: + case SCENE_SPOT12: + case SCENE_SPOT13: + case SCENE_SPOT15: + case SCENE_SPOT16: + case SCENE_SPOT17: + case SCENE_SPOT18: + case SCENE_SPOT20: + case SCENE_GANON_TOU: + if (!R_MINIMAP_TOGGLED) { + func_80094520(globalCtx->state.gfxCtx); + + gDPSetCombineMode(gfxCtx->overlay.p++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, R_MINIMAP_COLOR(0), R_MINIMAP_COLOR(1), + R_MINIMAP_COLOR(2), interfaceCtx->minimapAlpha); + + gDPLoadTextureBlock_4b(gfxCtx->overlay.p++, interfaceCtx->mapSegment, G_IM_FMT_IA, + gMapData->owMinimapWidth[mapIndex], gMapData->owMinimapHeight[mapIndex], 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSPTextureRectangle(gfxCtx->overlay.p++, R_OW_MINIMAP_X << 2, R_OW_MINIMAP_Y << 2, + (R_OW_MINIMAP_X + gMapData->owMinimapWidth[mapIndex]) << 2, + (R_OW_MINIMAP_Y + gMapData->owMinimapHeight[mapIndex]) << 2, G_TX_RENDERTILE, 0, + 0, 1024, 1024); + + if (((globalCtx->sceneNum != SCENE_SPOT01) && (globalCtx->sceneNum != SCENE_SPOT04) && + (globalCtx->sceneNum != SCENE_SPOT08)) || + (LINK_AGE_IN_YEARS != YEARS_ADULT)) { + if ((gMapData->owEntranceFlag[sEntranceIconMapIndex] == 0xFFFF) || + ((gMapData->owEntranceFlag[sEntranceIconMapIndex] != 0xFFFF) && + (gSaveContext.infTable[26] & gBitFlags[gMapData->owEntranceFlag[mapIndex]]))) { + + gDPLoadTextureBlock(gfxCtx->overlay.p++, D_02002500, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSPTextureRectangle(gfxCtx->overlay.p++, + gMapData->owEntranceIconPosX[sEntranceIconMapIndex] << 2, + gMapData->owEntranceIconPosY[sEntranceIconMapIndex] << 2, + (gMapData->owEntranceIconPosX[sEntranceIconMapIndex] + 8) << 2, + (gMapData->owEntranceIconPosY[sEntranceIconMapIndex] + 8) << 2, + G_TX_RENDERTILE, 0, 0, 1024, 1024); + } + } + + if ((globalCtx->sceneNum == SCENE_SPOT08) && (gSaveContext.infTable[26] & gBitFlags[9])) { + gDPLoadTextureBlock(gfxCtx->overlay.p++, D_02002500, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gSPTextureRectangle(gfxCtx->overlay.p++, 1080, 616, 1112, 648, G_TX_RENDERTILE, 0, 0, 1024, + 1024); + } + + Minimap_DrawCompassIcons(globalCtx); // Draw icons for the player spawn and current position + } + + if (!~(globalCtx->state.input[0].press.in.button | ~L_TRIG) && !Gameplay_InCsMode(globalCtx)) { + // clang-format off + if (!R_MINIMAP_TOGGLED) { Audio_PlaySoundGeneral(NA_SE_SY_CAMERA_ZOOM_UP, &D_801333D4, 4, + &D_801333E0, &D_801333E0, &D_801333E8); } + else { Audio_PlaySoundGeneral(NA_SE_SY_CAMERA_ZOOM_DOWN, &D_801333D4, 4, + &D_801333E0, &D_801333E0, &D_801333E8); } + // clang-format on + R_MINIMAP_TOGGLED ^= 1; + } + + break; + } + } + + Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_map_exp.c", 782); +} + +s16 Map_GetFloorTextIndexOffset(s32 mapIndex, s32 floor) { + return gMapData->floorTexIndexOffset[mapIndex][floor]; +} + +#ifdef NON_MATCHING +// single extra load instruction +void Map_Update(GlobalContext* globalCtx) { + Player* player = PLAYER; + s32 mapIndex = gSaveContext.mapIndex; + InterfaceContext* interfaceCtx = &globalCtx->interfaceCtx; + s16 floor; + s16 i; + + if ((globalCtx->pauseCtx.state == 0) && (globalCtx->pauseCtx.flag == 0)) { + switch (globalCtx->sceneNum) { + case SCENE_YDAN: + case SCENE_DDAN: + case SCENE_BDAN: + case SCENE_BMORI1: + case SCENE_HIDAN: + case SCENE_MIZUSIN: + case SCENE_JYASINZOU: + case SCENE_HAKADAN: + case SCENE_HAKADANCH: + case SCENE_ICE_DOUKUTO: + case SCENE_GANON: + case SCENE_MEN: + case SCENE_GERUDOWAY: + case SCENE_GANONTIKA: + case SCENE_GANON_SONOGO: + case SCENE_GANONTIKA_SONOGO: + case SCENE_TAKARAYA: + interfaceCtx->unk_140[30] = 0; + if (gSaveContext.dungeonItems[mapIndex] & gBitFlags[DUNGEON_MAP]) { + interfaceCtx->unk_140[31] = 1; + } else { + interfaceCtx->unk_140[31] = 0; + } + + for (floor = 0; floor < 8; floor++) { + if (player->actor.posRot.pos.y > gMapData->floorCoordY[mapIndex][floor]) { + break; + } + } + + if (1) { // Appears to be necessary to match + gSaveContext.sceneFlags[mapIndex].floors |= gBitFlags[floor]; + VREG(30) = floor; + if (R_MAP_TEX_INDEX != (R_MAP_TEX_INDEX_BASE + Map_GetFloorTextIndexOffset(mapIndex, floor))) { + R_MAP_TEX_INDEX = R_MAP_TEX_INDEX_BASE + Map_GetFloorTextIndexOffset(mapIndex, floor); + } + } + + if (interfaceCtx->mapRoomNum != sLastRoomNum) { + // Translates to "Current floor = %d Current room = %x Number of rooms = %d" + osSyncPrintf("現在階=%d 現在部屋=%x 部屋数=%d\n", floor, interfaceCtx->mapRoomNum, + gMapData->switchEntryCount[mapIndex]); + if (interfaceCtx->mapRoomNum) {} // Improves codegen but may not be necessary + sLastRoomNum = interfaceCtx->mapRoomNum; + } + + for (i = 0; i < gMapData->switchEntryCount[mapIndex]; i++) { + if ((interfaceCtx->mapRoomNum == gMapData->switchFromRoom[mapIndex][i]) && + (floor == gMapData->switchFromFloor[mapIndex][i])) { + interfaceCtx->mapRoomNum = gMapData->switchToRoom[mapIndex][i]; + osSyncPrintf(VT_FGCOL(YELLOW)); + osSyncPrintf("階層切替=%x\n", interfaceCtx->mapRoomNum); // "Layer switching = %x" + osSyncPrintf(VT_RST); + Map_InitData(globalCtx, interfaceCtx->mapRoomNum); + gSaveContext.unk_1422 = 0; + Map_SavePlayerInitialInfo(globalCtx); + } + } + + VREG(10) = interfaceCtx->mapRoomNum; + break; + case SCENE_YDAN_BOSS: + case SCENE_DDAN_BOSS: + case SCENE_BDAN_BOSS: + case SCENE_MORIBOSSROOM: + case SCENE_FIRE_BS: + case SCENE_MIZUSIN_BS: + case SCENE_JYASINBOSS: + case SCENE_HAKADAN_BS: + VREG(30) = gMapData->bossFloor[globalCtx->sceneNum - SCENE_YDAN_BOSS]; + R_MAP_TEX_INDEX = R_MAP_TEX_INDEX_BASE + + gMapData->floorTexIndexOffset[globalCtx->sceneNum - SCENE_YDAN_BOSS][VREG(30)]; + break; + } + } +} +#else +#pragma GLOBAL_ASM("asm/non_matchings/code/z_map_exp/Map_Update.s") +#endif diff --git a/src/code/z_map_mark.c b/src/code/z_map_mark.c index 8fdef5d0c5..798ec58749 100644 --- a/src/code/z_map_mark.c +++ b/src/code/z_map_mark.c @@ -18,9 +18,9 @@ typedef struct { /* 0x00 */ void* loadedRamAddr; // original name: "allocp" /* 0x04 */ u32 vromStart; /* 0x08 */ u32 vromEnd; - /* 0x0C */ u32 vramStart; - /* 0x10 */ u32 vramEnd; - /* 0x14 */ u32 vramTable; + /* 0x0C */ void* vramStart; + /* 0x10 */ void* vramEnd; + /* 0x14 */ void* vramTable; } MapMarkDataOverlay; // size = 0x18 static u32 sBaseImageSizes[] = { 0, 1, 2, 3 }; @@ -46,18 +46,16 @@ static MapMarkDataOverlay sMapMarkDataOvl = { NULL, (u32)_ovl_map_mark_dataSegmentRomStart, (u32)_ovl_map_mark_dataSegmentRomEnd, - (u32)_ovl_map_mark_dataSegmentStart, - (u32)_ovl_map_mark_dataSegmentEnd, - (u32)gMapMarkDataTable, + _ovl_map_mark_dataSegmentStart, + _ovl_map_mark_dataSegmentEnd, + gMapMarkDataTable, }; static MapMarksData** sLoadedMarkDataTable; -extern u8** D_8015FFD0; - void MapMark_Init(GlobalContext* globalCtx) { MapMarkDataOverlay* overlay = &sMapMarkDataOvl; - u32 overlaySize = overlay->vramEnd - overlay->vramStart; + u32 overlaySize = (u32)overlay->vramEnd - (u32)overlay->vramStart; overlay->loadedRamAddr = Game_Alloc(&globalCtx->state, overlaySize, "../z_map_mark.c", 235); LogUtils_CheckNullPointer("dlftbl->allocp", overlay->loadedRamAddr, "../z_map_mark.c", 236); @@ -65,10 +63,10 @@ void MapMark_Init(GlobalContext* globalCtx) { Overlay_Load(overlay->vromStart, overlay->vromEnd, overlay->vramStart, overlay->vramEnd, overlay->loadedRamAddr); sLoadedMarkDataTable = gMapMarkDataTable; - sLoadedMarkDataTable = - (void*)(s32)((overlay->vramTable != 0) - ? (void*)(overlay->vramTable - (s32)(overlay->vramStart - (s32)overlay->loadedRamAddr)) - : NULL); + sLoadedMarkDataTable = (void*)(u32)( + (overlay->vramTable != NULL) + ? (void*)((u32)overlay->vramTable - (s32)((u32)overlay->vramStart - (u32)overlay->loadedRamAddr)) + : NULL); } void MapMark_ClearPointers(GlobalContext* globalCtx) { @@ -81,24 +79,24 @@ void MapMark_Draw(GlobalContext* globalCtx) { MapMarkData* mapMarkData; MapMarkPoint* markPoint; MapMarkInfo* markInfo; - u16 dungeonId; + u16 dungeon; s32 i; s32 rectLeft; s32 rectTop; GraphicsContext* gfxCtx; Gfx* dispRefs[4]; - dungeonId = gSaveContext.dungeonIndex; + dungeon = gSaveContext.mapIndex; interfaceCtx = &globalCtx->interfaceCtx; - if ((D_8015FFD0 != NULL) && (globalCtx->interfaceCtx.roomNum >= D_8015FFD0[7][dungeonId])) { + if ((gMapData != NULL) && (globalCtx->interfaceCtx.mapRoomNum >= gMapData->dgnMinimapCount[dungeon])) { // Translates to: "ROOM NUMBER EXCEEDED, YIKES %d/%d MapMarkDraw PROCESSING INTERRUPTED" osSyncPrintf(VT_COL(RED, WHITE) "部屋番号がオーバーしてるで,ヤバイで %d/%d \nMapMarkDraw の処理を中断します\n", - VT_RST, globalCtx->interfaceCtx.roomNum, D_8015FFD0[7][dungeonId]); + VT_RST, globalCtx->interfaceCtx.mapRoomNum, gMapData->dgnMinimapCount[dungeon]); return; } - mapMarkData = &sLoadedMarkDataTable[dungeonId][interfaceCtx->roomNum][0]; + mapMarkData = &sLoadedMarkDataTable[dungeon][interfaceCtx->mapRoomNum][0]; gfxCtx = globalCtx->state.gfxCtx; Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_map_mark.c", 303); diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 860678a287..5c32f70c29 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -1413,14 +1413,14 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) { gSaveContext.equipment |= (gBitFlags[item - ITEM_BOOTS_KOKIRI] << gEquipShifts[EQUIP_BOOTS]); return ITEM_NONE; } else if ((item == ITEM_KEY_BOSS) || (item == ITEM_COMPASS) || (item == ITEM_DUNGEON_MAP)) { - gSaveContext.dungeonItems[gSaveContext.dungeonIndex] |= gBitFlags[item - ITEM_KEY_BOSS]; + gSaveContext.dungeonItems[gSaveContext.mapIndex] |= gBitFlags[item - ITEM_KEY_BOSS]; return ITEM_NONE; } else if (item == ITEM_KEY_SMALL) { - if (gSaveContext.dungeonKeys[gSaveContext.dungeonIndex] < 0) { - gSaveContext.dungeonKeys[gSaveContext.dungeonIndex] = 1; + if (gSaveContext.dungeonKeys[gSaveContext.mapIndex] < 0) { + gSaveContext.dungeonKeys[gSaveContext.mapIndex] = 1; return ITEM_NONE; } else { - gSaveContext.dungeonKeys[gSaveContext.dungeonIndex]++; + gSaveContext.dungeonKeys[gSaveContext.mapIndex]++; return ITEM_NONE; } } else if ((item == ITEM_QUIVER_30) || (item == ITEM_BOW)) { @@ -2130,9 +2130,8 @@ void Interface_SetNaviCall(GlobalContext* globalCtx, u16 naviCallState) { if (((naviCallState == 0x1D) || (naviCallState == 0x1E)) && !interfaceCtx->naviCalling && (globalCtx->csCtx.state == 0)) { // clang-format off - // NOLINTNEXTLINE - if (naviCallState == 0x1E) Audio_PlaySoundGeneral(NA_SE_VO_NAVY_CALL, &D_801333D4, 4, - &D_801333E0, &D_801333E0, &D_801333E8); + if (naviCallState == 0x1E) { Audio_PlaySoundGeneral(NA_SE_VO_NAVY_CALL, &D_801333D4, 4, + &D_801333E0, &D_801333E0, &D_801333E8); } // clang-format on if (naviCallState == 0x1D) { @@ -2178,10 +2177,9 @@ s32 Health_ChangeBy(GlobalContext* globalCtx, s16 healthChange) { gSaveContext.healthCapacity); // clang-format off - // NOLINTNEXTLINE - if (healthChange > 0) Audio_PlaySoundGeneral(NA_SE_SY_HP_RECOVER, &D_801333D4, 4, - &D_801333E0, &D_801333E0, &D_801333E8); - else if ((gSaveContext.doubleDefense != 0) && (healthChange < 0)) { + if (healthChange > 0) { Audio_PlaySoundGeneral(NA_SE_SY_HP_RECOVER, &D_801333D4, 4, + &D_801333E0, &D_801333E0, &D_801333E8); + } else if ((gSaveContext.doubleDefense != 0) && (healthChange < 0)) { healthChange >>= 1; // Translates to: "Heart decrease halved!!=%d" osSyncPrintf("ハート減少半分!!=%d\n", healthChange); @@ -3161,7 +3159,7 @@ void Interface_Draw(GlobalContext* globalCtx) { if (pauseCtx->flag == 0) { Interface_InitVertices(globalCtx); func_8008A994(interfaceCtx); - Interface_DrawHealth(globalCtx); + Health_Draw(globalCtx); func_80094520(globalCtx->state.gfxCtx); @@ -3185,7 +3183,7 @@ void Interface_Draw(GlobalContext* globalCtx) { case SCENE_GANON_SONOGO: case SCENE_GANONTIKA_SONOGO: case SCENE_TAKARAYA: - if (gSaveContext.dungeonKeys[gSaveContext.dungeonIndex] >= 0) { + if (gSaveContext.dungeonKeys[gSaveContext.mapIndex] >= 0) { // Small Key Icon gDPPipeSync(gfxCtx->overlay.p++); gDPSetPrimColor(gfxCtx->overlay.p++, 0, 0, 0xC8, 0xE6, 0xFF, interfaceCtx->magicAlpha); @@ -3200,7 +3198,7 @@ void Interface_Draw(GlobalContext* globalCtx) { PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); interfaceCtx->counterDigits[2] = 0; - interfaceCtx->counterDigits[3] = gSaveContext.dungeonKeys[gSaveContext.dungeonIndex]; + interfaceCtx->counterDigits[3] = gSaveContext.dungeonKeys[gSaveContext.mapIndex]; while (interfaceCtx->counterDigits[3] >= 10) { interfaceCtx->counterDigits[2]++; @@ -3268,7 +3266,7 @@ void Interface_Draw(GlobalContext* globalCtx) { } Interface_DrawMagicBar(globalCtx); - Interface_DrawMinimap(globalCtx); + Minimap_Draw(globalCtx); if ((R_PAUSE_MENU_MODE != 2) && (R_PAUSE_MENU_MODE != 3)) { func_8002C124(&globalCtx->actorCtx.targetCtx, globalCtx); // Draw Z-Target @@ -4099,7 +4097,7 @@ void Interface_Update(GlobalContext* globalCtx) { break; } - func_8008226C(globalCtx); + Map_Update(globalCtx); if (gSaveContext.healthAccumulator != 0) { gSaveContext.healthAccumulator -= 4; diff --git a/src/code/z_room.c b/src/code/z_room.c index 600f4e0144..9fcd433f86 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -655,9 +655,9 @@ void func_80097534(GlobalContext* globalCtx, RoomContext* roomCtx) { roomCtx->prevRoom.segment = NULL; func_80031B14(globalCtx, &globalCtx->actorCtx); Actor_SpawnTransitionActors(globalCtx, &globalCtx->actorCtx); - func_80080E04(globalCtx, roomCtx->curRoom.num); + Map_InitRoomData(globalCtx, roomCtx->curRoom.num); if (!((globalCtx->sceneNum >= SCENE_SPOT00) && (globalCtx->sceneNum <= SCENE_SPOT20))) { - func_800807A0(globalCtx); + Map_SavePlayerInitialInfo(globalCtx); } func_800F66C0(globalCtx->roomCtx.curRoom.echo); } diff --git a/src/libultra_code/osReadMempak.c b/src/libultra_code/osReadMempak.c index 1632e52289..9b6955a7d8 100644 --- a/src/libultra_code/osReadMempak.c +++ b/src/libultra_code/osReadMempak.c @@ -16,8 +16,7 @@ s32 osReadMempak(OSMesgQueue* ctrlrqueue, s32 ctrlridx, u16 addr, PIF_mempak_dat _osCont_lastPollType = 2; D_80134D20 = ctrlridx; // clang-format off - // NOLINTNEXTLINE - for (i = 0; i < ctrlridx; i++) *bufptr++ = 0; + for (i = 0; i < ctrlridx; i++) { *bufptr++ = 0; } // clang-format on pifMempakBuf.status_control = 1; ((PIF_header_t*)bufptr)->slot_type = 0xff;