1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-08 15:30:14 +00:00

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.
This commit is contained in:
Roman971 2020-05-01 17:09:20 +02:00 committed by GitHub
parent 9f1c996db5
commit 9f98210488
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 894 additions and 1998 deletions

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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)