From 9982bcab28773731fc9d4d2aa2f9c0dc6ba92a88 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 27 Nov 2020 23:34:39 -0500 Subject: [PATCH] dSv_zoneActor_c ok dSv_zone_c ok dSv_restart_c ok dSv_turnRestart_c ok dSv_info_c::init ok some dSv_save_c ok --- asm/d/a/d_a_alink.s | 22 +-- asm/d/com/inf/d_com_inf_game.s | 8 +- asm/d/d_event.s | 2 +- asm/d/d_item.s | 2 +- asm/d/d_save.s | 327 +------------------------------ asm/d/d_stage.s | 6 +- asm/d/file/d_file_select.s | 6 +- asm/d/map/path/d_map_path_fmap.s | 6 +- asm/d/menu/d_menu_save.s | 4 +- asm/d/s/d_s_play.s | 2 +- asm/d/s/d_s_room.s | 2 +- include/d_save.h | 14 +- include/func_8003501C.s | 37 ++++ include/func_800350A8.s | 5 + include/func_800350BC.s | 14 ++ include/func_800350F0.s | 25 +++ include/func_8003514C.s | 23 +++ include/func_800351A4.s | 26 +++ include/func_80035200.s | 49 +++++ include/functions.h | 12 ++ src/d/d_save/d_save.cpp | 147 +++++++++++++- 21 files changed, 380 insertions(+), 359 deletions(-) create mode 100644 include/func_8003501C.s create mode 100644 include/func_800350A8.s create mode 100644 include/func_800350BC.s create mode 100644 include/func_800350F0.s create mode 100644 include/func_8003514C.s create mode 100644 include/func_800351A4.s create mode 100644 include/func_80035200.s diff --git a/asm/d/a/d_a_alink.s b/asm/d/a/d_a_alink.s index c3cb015e684..778a7e4f60b 100644 --- a/asm/d/a/d_a_alink.s +++ b/asm/d/a/d_a_alink.s @@ -9771,7 +9771,7 @@ lbl_800A61F4: /* 800A620C 000A314C A8 BF 04 E6 */ lha r5, 0x4e6(r31) /* 800A6210 000A3150 80 1F 00 B0 */ lwz r0, 0xb0(r31) /* 800A6214 000A3154 54 06 06 BE */ clrlwi r6, r0, 0x1a -/* 800A6218 000A3158 4B F8 ED 69 */ bl dSv_restart_c_NS_setRoom +/* 800A6218 000A3158 4B F8 ED 69 */ bl setRoom__13dSv_restart_cFRC4cXyzsSc /* 800A621C 000A315C C0 1F 04 D0 */ lfs f0, 0x4d0(r31) /* 800A6220 000A3160 D0 1F 37 80 */ stfs f0, 0x3780(r31) /* 800A6224 000A3164 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) @@ -10024,7 +10024,7 @@ lbl_800A6550: /* 800A65C4 000A3504 38 80 00 6F */ li r4, 0x6f /* 800A65C8 000A3508 88 1F 04 BA */ lbz r0, 0x4ba(r31) /* 800A65CC 000A350C 7C 05 07 74 */ extsb r5, r0 -/* 800A65D0 000A3510 4B F8 EC 31 */ bl dSv_info_c_NS_onSwitch +/* 800A65D0 000A3510 4B F8 EC 31 */ bl onSwitch__10dSv_info_cFii /* 800A65D4 000A3514 48 00 00 1C */ b lbl_800A65F0 lbl_800A65D8: /* 800A65D8 000A3518 3C 60 80 40 */ lis r3, lbl_804061C0@ha @@ -36844,7 +36844,7 @@ lbl_800BDDB4: /* 800BDDCC 000BAD0C 38 63 0E D8 */ addi r3, r3, 0xed8 /* 800BDDD0 000BAD10 38 9E 04 D0 */ addi r4, r30, 0x4d0 /* 800BDDD4 000BAD14 A8 BE 04 E6 */ lha r5, 0x4e6(r30) -/* 800BDDD8 000BAD18 4B F7 71 CD */ bl dSv_turnRestart_c_NS_set +/* 800BDDD8 000BAD18 4B F7 71 CD */ bl set__17dSv_turnRestart_cFRC4cXyzsScUl lbl_800BDDDC: /* 800BDDDC 000BAD1C 88 7E 2F AD */ lbz r3, 0x2fad(r30) /* 800BDDE0 000BAD20 C0 22 92 C0 */ lfs f1, lbl_80452CC0-_SDA2_BASE_(r2) @@ -78666,7 +78666,7 @@ lbl_800E29F0: /* 800E2A28 000DF968 38 80 00 93 */ li r4, 0x93 /* 800E2A2C 000DF96C 88 1D 04 BA */ lbz r0, 0x4ba(r29) /* 800E2A30 000DF970 7C 05 07 74 */ extsb r5, r0 -/* 800E2A34 000DF974 4B F5 27 CD */ bl dSv_info_c_NS_onSwitch +/* 800E2A34 000DF974 4B F5 27 CD */ bl onSwitch__10dSv_info_cFii lbl_800E2A38: /* 800E2A38 000DF978 B3 9D 31 14 */ sth r28, 0x3114(r29) /* 800E2A3C 000DF97C 38 7D 36 A8 */ addi r3, r29, 0x36a8 @@ -83877,7 +83877,7 @@ lbl_800E73C0: /* 800E7400 000E4340 80 BF 27 F4 */ lwz r5, 0x27f4(r31) /* 800E7404 000E4344 88 05 04 BA */ lbz r0, 0x4ba(r5) /* 800E7408 000E4348 7C 05 07 74 */ extsb r5, r0 -/* 800E740C 000E434C 4B F4 DD F5 */ bl dSv_info_c_NS_onSwitch +/* 800E740C 000E434C 4B F4 DD F5 */ bl onSwitch__10dSv_info_cFii /* 800E7410 000E4350 38 80 00 00 */ li r4, 0 /* 800E7414 000E4354 48 00 00 28 */ b lbl_800E743C lbl_800E7418: @@ -147437,7 +147437,7 @@ daAlink_c_NS_dungeonReturnWarp: /* 8011F838 0011C778 38 81 00 18 */ addi r4, r1, 0x18 /* 8011F83C 0011C77C 7F C5 F3 78 */ mr r5, r30 /* 8011F840 0011C780 7F A6 EB 78 */ mr r6, r29 -/* 8011F844 0011C784 4B F1 57 3D */ bl dSv_restart_c_NS_setRoom +/* 8011F844 0011C784 4B F1 57 3D */ bl setRoom__13dSv_restart_cFRC4cXyzsSc /* 8011F848 0011C788 38 00 00 01 */ li r0, 1 /* 8011F84C 0011C78C 90 01 00 08 */ stw r0, 8(r1) /* 8011F850 0011C790 38 00 00 00 */ li r0, 0 @@ -147516,7 +147516,7 @@ lbl_8011F934: /* 8011F96C 0011C8AC 88 A5 00 50 */ lbz r5, 0x50(r5) /* 8011F970 0011C8B0 88 1E 00 4E */ lbz r0, 0x4e(r30) /* 8011F974 0011C8B4 7C 06 07 74 */ extsb r6, r0 -/* 8011F978 0011C8B8 4B F1 56 2D */ bl dSv_turnRestart_c_NS_set +/* 8011F978 0011C8B8 4B F1 56 2D */ bl set__17dSv_turnRestart_cFRC4cXyzsScUl /* 8011F97C 0011C8BC 38 00 00 01 */ li r0, 1 /* 8011F980 0011C8C0 90 01 00 08 */ stw r0, 8(r1) /* 8011F984 0011C8C4 38 00 00 00 */ li r0, 0 @@ -183340,7 +183340,7 @@ lbl_8013F818: /* 8013F844 0013C784 A8 BE 04 E6 */ lha r5, 0x4e6(r30) /* 8013F848 0013C788 80 1E 00 B0 */ lwz r0, 0xb0(r30) /* 8013F84C 0013C78C 54 06 06 BE */ clrlwi r6, r0, 0x1a -/* 8013F850 0013C790 4B EF 57 31 */ bl dSv_restart_c_NS_setRoom +/* 8013F850 0013C790 4B EF 57 31 */ bl setRoom__13dSv_restart_cFRC4cXyzsSc lbl_8013F854: /* 8013F854 0013C794 7F C3 F3 78 */ mr r3, r30 /* 8013F858 0013C798 4B FD 84 39 */ bl daAlink_c_NS_resetSpecialEvent @@ -183431,7 +183431,7 @@ lbl_8013F970: /* 8013F980 0013C8C0 38 80 00 66 */ li r4, 0x66 /* 8013F984 0013C8C4 88 1F 04 BA */ lbz r0, 0x4ba(r31) /* 8013F988 0013C8C8 7C 05 07 74 */ extsb r5, r0 -/* 8013F98C 0013C8CC 4B EF 58 75 */ bl dSv_info_c_NS_onSwitch +/* 8013F98C 0013C8CC 4B EF 58 75 */ bl onSwitch__10dSv_info_cFii /* 8013F990 0013C8D0 48 00 00 64 */ b lbl_8013F9F4 lbl_8013F994: /* 8013F994 0013C8D4 2C 00 00 B0 */ cmpwi r0, 0xb0 @@ -183441,7 +183441,7 @@ lbl_8013F994: /* 8013F9A4 0013C8E4 38 80 00 67 */ li r4, 0x67 /* 8013F9A8 0013C8E8 88 1F 04 BA */ lbz r0, 0x4ba(r31) /* 8013F9AC 0013C8EC 7C 05 07 74 */ extsb r5, r0 -/* 8013F9B0 0013C8F0 4B EF 58 51 */ bl dSv_info_c_NS_onSwitch +/* 8013F9B0 0013C8F0 4B EF 58 51 */ bl onSwitch__10dSv_info_cFii /* 8013F9B4 0013C8F4 48 00 00 40 */ b lbl_8013F9F4 lbl_8013F9B8: /* 8013F9B8 0013C8F8 2C 00 00 B3 */ cmpwi r0, 0xb3 @@ -185237,7 +185237,7 @@ fopAcM_onSwitch: /* 80141244 0013E184 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 80141248 0013E188 88 05 04 BA */ lbz r0, 0x4ba(r5) /* 8014124C 0013E18C 7C 05 07 74 */ extsb r5, r0 -/* 80141250 0013E190 4B EF 3F B1 */ bl dSv_info_c_NS_onSwitch +/* 80141250 0013E190 4B EF 3F B1 */ bl onSwitch__10dSv_info_cFii /* 80141254 0013E194 80 01 00 14 */ lwz r0, 0x14(r1) /* 80141258 0013E198 7C 08 03 A6 */ mtlr r0 /* 8014125C 0013E19C 38 21 00 10 */ addi r1, r1, 0x10 diff --git a/asm/d/com/inf/d_com_inf_game.s b/asm/d/com/inf/d_com_inf_game.s index 23edc1b0fb2..1c669467c54 100644 --- a/asm/d/com/inf/d_com_inf_game.s +++ b/asm/d/com/inf/d_com_inf_game.s @@ -2646,7 +2646,7 @@ dComIfGs_onStageSwitch: /* 8002D670 0002A5B0 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8002D674 0002A5B4 7F E4 FB 78 */ mr r4, r31 /* 8002D678 0002A5B8 38 A0 FF FF */ li r5, -1 -/* 8002D67C 0002A5BC 48 00 7B 85 */ bl dSv_info_c_NS_onSwitch +/* 8002D67C 0002A5BC 48 00 7B 85 */ bl onSwitch__10dSv_info_cFii lbl_8002D680: /* 8002D680 0002A5C0 57 C4 28 34 */ slwi r4, r30, 5 /* 8002D684 0002A5C4 3C 60 80 40 */ lis r3, lbl_804061C0@ha @@ -5456,7 +5456,7 @@ lbl_8002FBFC: /* 8002FC0C 0002CB4C 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8002FC10 0002CB50 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8002FC14 0002CB54 88 84 00 13 */ lbz r4, 0x13(r4) -/* 8002FC18 0002CB58 48 00 54 91 */ bl dSv_save_c_NS_getSave2 +/* 8002FC18 0002CB58 48 00 54 91 */ bl getSave2__10dSv_save_cFi /* 8002FC1C 0002CB5C 7F 84 E3 78 */ mr r4, r28 /* 8002FC20 0002CB60 48 00 4E 85 */ bl onVisitedRoom__13dSv_memory2_cFi lbl_8002FC24: @@ -5481,7 +5481,7 @@ lbl_8002FC24: /* 8002FC6C 0002CBAC 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8002FC70 0002CBB0 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8002FC74 0002CBB4 88 84 00 13 */ lbz r4, 0x13(r4) -/* 8002FC78 0002CBB8 48 00 54 31 */ bl dSv_save_c_NS_getSave2 +/* 8002FC78 0002CBB8 48 00 54 31 */ bl getSave2__10dSv_save_cFi /* 8002FC7C 0002CBBC 7F E4 FB 78 */ mr r4, r31 /* 8002FC80 0002CBC0 48 00 4E 49 */ bl offVisitedRoom__13dSv_memory2_cFi /* 8002FC84 0002CBC4 83 E1 00 0C */ lwz r31, 0xc(r1) @@ -5507,7 +5507,7 @@ dComIfGs_isVisitedRoom: /* 8002FCC8 0002CC08 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8002FCCC 0002CC0C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8002FCD0 0002CC10 88 84 00 13 */ lbz r4, 0x13(r4) -/* 8002FCD4 0002CC14 48 00 53 D5 */ bl dSv_save_c_NS_getSave2 +/* 8002FCD4 0002CC14 48 00 53 D5 */ bl getSave2__10dSv_save_cFi /* 8002FCD8 0002CC18 7F E4 FB 78 */ mr r4, r31 /* 8002FCDC 0002CC1C 48 00 4E 11 */ bl isVisitedRoom__13dSv_memory2_cFi /* 8002FCE0 0002CC20 83 E1 00 0C */ lwz r31, 0xc(r1) diff --git a/asm/d/d_event.s b/asm/d/d_event.s index 79736477317..0ed1713b0e1 100644 --- a/asm/d/d_event.s +++ b/asm/d/d_event.s @@ -317,7 +317,7 @@ lbl_8004188C: /* 800418D4 0003E814 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 800418D8 0003E818 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 800418DC 0003E81C 7F 85 E3 78 */ mr r5, r28 -/* 800418E0 0003E820 4B FF 39 21 */ bl dSv_info_c_NS_onSwitch +/* 800418E0 0003E820 4B FF 39 21 */ bl onSwitch__10dSv_info_cFii lbl_800418E4: /* 800418E4 0003E824 A0 1F 00 02 */ lhz r0, 2(r31) /* 800418E8 0003E828 54 00 05 AF */ rlwinm. r0, r0, 0, 0x16, 0x17 diff --git a/asm/d/d_item.s b/asm/d/d_item.s index c5596bc6bfa..40eb7a546a7 100644 --- a/asm/d/d_item.s +++ b/asm/d/d_item.s @@ -553,7 +553,7 @@ lbl_80098680: /* 800986F8 00095638 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 800986FC 0009563C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 80098700 00095640 38 80 00 1C */ li r4, 0x1c -/* 80098704 00095644 4B F9 CA FD */ bl dSv_info_c_NS_onSwitch +/* 80098704 00095644 4B F9 CA FD */ bl onSwitch__10dSv_info_cFii /* 80098708 00095648 80 01 00 14 */ lwz r0, 0x14(r1) /* 8009870C 0009564C 7C 08 03 A6 */ mtlr r0 /* 80098710 00095650 38 21 00 10 */ addi r1, r1, 0x10 diff --git a/asm/d/d_save.s b/asm/d/d_save.s index c040406b1bb..b850960fb5d 100644 --- a/asm/d/d_save.s +++ b/asm/d/d_save.s @@ -2,321 +2,6 @@ .section .text, "ax" # 80032918 -.global dSv_zoneActor_c_NS_init -dSv_zoneActor_c_NS_init: -/* 80034EB4 00031DF4 38 80 00 00 */ li r4, 0 -/* 80034EB8 00031DF8 7C 85 23 78 */ mr r5, r4 -/* 80034EBC 00031DFC 38 00 00 04 */ li r0, 4 -/* 80034EC0 00031E00 7C 09 03 A6 */ mtctr r0 -lbl_80034EC4: -/* 80034EC4 00031E04 7C A3 21 2E */ stwx r5, r3, r4 -/* 80034EC8 00031E08 38 84 00 04 */ addi r4, r4, 4 -/* 80034ECC 00031E0C 42 00 FF F8 */ bdnz lbl_80034EC4 -/* 80034ED0 00031E10 4E 80 00 20 */ blr - -.global dSv_zoneActor_c_NS_on -dSv_zoneActor_c_NS_on: -/* 80034ED4 00031E14 7C 80 2E 70 */ srawi r0, r4, 5 -/* 80034ED8 00031E18 54 07 10 3A */ slwi r7, r0, 2 -/* 80034EDC 00031E1C 7C C3 38 2E */ lwzx r6, r3, r7 -/* 80034EE0 00031E20 38 A0 00 01 */ li r5, 1 -/* 80034EE4 00031E24 54 80 06 FE */ clrlwi r0, r4, 0x1b -/* 80034EE8 00031E28 7C A0 00 30 */ slw r0, r5, r0 -/* 80034EEC 00031E2C 7C C0 03 78 */ or r0, r6, r0 -/* 80034EF0 00031E30 7C 03 39 2E */ stwx r0, r3, r7 -/* 80034EF4 00031E34 4E 80 00 20 */ blr - -.global dSv_zoneActor_c_NS_off -dSv_zoneActor_c_NS_off: -/* 80034EF8 00031E38 7C 80 2E 70 */ srawi r0, r4, 5 -/* 80034EFC 00031E3C 54 07 10 3A */ slwi r7, r0, 2 -/* 80034F00 00031E40 7C C3 38 2E */ lwzx r6, r3, r7 -/* 80034F04 00031E44 38 A0 00 01 */ li r5, 1 -/* 80034F08 00031E48 54 80 06 FE */ clrlwi r0, r4, 0x1b -/* 80034F0C 00031E4C 7C A0 00 30 */ slw r0, r5, r0 -/* 80034F10 00031E50 7C C0 00 78 */ andc r0, r6, r0 -/* 80034F14 00031E54 7C 03 39 2E */ stwx r0, r3, r7 -/* 80034F18 00031E58 4E 80 00 20 */ blr - -.global dSv_zoneActor_c_NS_is -dSv_zoneActor_c_NS_is: -/* 80034F1C 00031E5C 38 A0 00 01 */ li r5, 1 -/* 80034F20 00031E60 54 80 06 FE */ clrlwi r0, r4, 0x1b -/* 80034F24 00031E64 7C A5 00 30 */ slw r5, r5, r0 -/* 80034F28 00031E68 7C 80 2E 70 */ srawi r0, r4, 5 -/* 80034F2C 00031E6C 54 00 10 3A */ slwi r0, r0, 2 -/* 80034F30 00031E70 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80034F34 00031E74 7C A3 00 38 */ and r3, r5, r0 -/* 80034F38 00031E78 30 03 FF FF */ addic r0, r3, -1 -/* 80034F3C 00031E7C 7C 60 19 10 */ subfe r3, r0, r3 -/* 80034F40 00031E80 4E 80 00 20 */ blr - -.global dSv_zone_c_NS_init -dSv_zone_c_NS_init: -/* 80034F44 00031E84 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80034F48 00031E88 7C 08 02 A6 */ mflr r0 -/* 80034F4C 00031E8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80034F50 00031E90 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80034F54 00031E94 7C 7F 1B 78 */ mr r31, r3 -/* 80034F58 00031E98 98 83 00 00 */ stb r4, 0(r3) -/* 80034F5C 00031E9C 38 7F 00 02 */ addi r3, r31, 2 -/* 80034F60 00031EA0 4B FF FD 41 */ bl init__13dSv_zoneBit_cFv -/* 80034F64 00031EA4 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80034F68 00031EA8 4B FF FF 4D */ bl dSv_zoneActor_c_NS_init -/* 80034F6C 00031EAC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80034F70 00031EB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80034F74 00031EB4 7C 08 03 A6 */ mtlr r0 -/* 80034F78 00031EB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80034F7C 00031EBC 4E 80 00 20 */ blr - -.global dSv_restart_c_NS_setRoom -dSv_restart_c_NS_setRoom: -/* 80034F80 00031EC0 98 C3 00 00 */ stb r6, 0(r3) -/* 80034F84 00031EC4 C0 04 00 00 */ lfs f0, 0(r4) -/* 80034F88 00031EC8 D0 03 00 08 */ stfs f0, 8(r3) -/* 80034F8C 00031ECC C0 04 00 04 */ lfs f0, 4(r4) -/* 80034F90 00031ED0 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 80034F94 00031ED4 C0 04 00 08 */ lfs f0, 8(r4) -/* 80034F98 00031ED8 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 80034F9C 00031EDC B0 A3 00 06 */ sth r5, 6(r3) -/* 80034FA0 00031EE0 4E 80 00 20 */ blr - -.global dSv_turnRestart_c_NS_set -dSv_turnRestart_c_NS_set: -/* 80034FA4 00031EE4 C0 04 00 00 */ lfs f0, 0(r4) -/* 80034FA8 00031EE8 D0 03 00 00 */ stfs f0, 0(r3) -/* 80034FAC 00031EEC C0 04 00 04 */ lfs f0, 4(r4) -/* 80034FB0 00031EF0 D0 03 00 04 */ stfs f0, 4(r3) -/* 80034FB4 00031EF4 C0 04 00 08 */ lfs f0, 8(r4) -/* 80034FB8 00031EF8 D0 03 00 08 */ stfs f0, 8(r3) -/* 80034FBC 00031EFC B0 A3 00 10 */ sth r5, 0x10(r3) -/* 80034FC0 00031F00 98 C3 00 12 */ stb r6, 0x12(r3) -/* 80034FC4 00031F04 90 E3 00 0C */ stw r7, 0xc(r3) -/* 80034FC8 00031F08 4E 80 00 20 */ blr - -.global dSv_info_c_NS_init -dSv_info_c_NS_init: -/* 80034FCC 00031F0C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80034FD0 00031F10 7C 08 02 A6 */ mflr r0 -/* 80034FD4 00031F14 90 01 00 14 */ stw r0, 0x14(r1) -/* 80034FD8 00031F18 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80034FDC 00031F1C 7C 7F 1B 78 */ mr r31, r3 -/* 80034FE0 00031F20 48 00 00 3D */ bl dSv_save_c_NS_init -/* 80034FE4 00031F24 38 7F 09 58 */ addi r3, r31, 0x958 -/* 80034FE8 00031F28 4B FF FA 7D */ bl init__12dSv_memory_cFv -/* 80034FEC 00031F2C 38 7F 09 78 */ addi r3, r31, 0x978 -/* 80034FF0 00031F30 38 80 FF FF */ li r4, -1 -/* 80034FF4 00031F34 4B FF FB 21 */ bl init__12dSv_danBit_cFSc -/* 80034FF8 00031F38 7F E3 FB 78 */ mr r3, r31 -/* 80034FFC 00031F3C 48 00 01 51 */ bl dSv_info_c_NS_initZone -/* 80035000 00031F40 38 7F 0D D8 */ addi r3, r31, 0xdd8 -/* 80035004 00031F44 4B FF F9 51 */ bl init__11dSv_event_cFv -/* 80035008 00031F48 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8003500C 00031F4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80035010 00031F50 7C 08 03 A6 */ mtlr r0 -/* 80035014 00031F54 38 21 00 10 */ addi r1, r1, 0x10 -/* 80035018 00031F58 4E 80 00 20 */ blr - -.global dSv_save_c_NS_init -dSv_save_c_NS_init: -/* 8003501C 00031F5C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80035020 00031F60 7C 08 02 A6 */ mflr r0 -/* 80035024 00031F64 90 01 00 24 */ stw r0, 0x24(r1) -/* 80035028 00031F68 39 61 00 20 */ addi r11, r1, 0x20 -/* 8003502C 00031F6C 48 32 D1 B1 */ bl _savegpr_29 -/* 80035030 00031F70 7C 7D 1B 78 */ mr r29, r3 -/* 80035034 00031F74 4B FF F6 71 */ bl init__12dSv_player_cFv -/* 80035038 00031F78 3B C0 00 00 */ li r30, 0 -/* 8003503C 00031F7C 3B E0 00 00 */ li r31, 0 -lbl_80035040: -/* 80035040 00031F80 38 7F 01 F0 */ addi r3, r31, 0x1f0 -/* 80035044 00031F84 7C 7D 1A 14 */ add r3, r29, r3 -/* 80035048 00031F88 4B FF FA 1D */ bl init__12dSv_memory_cFv -/* 8003504C 00031F8C 3B DE 00 01 */ addi r30, r30, 1 -/* 80035050 00031F90 2C 1E 00 20 */ cmpwi r30, 0x20 -/* 80035054 00031F94 3B FF 00 20 */ addi r31, r31, 0x20 -/* 80035058 00031F98 41 80 FF E8 */ blt lbl_80035040 -/* 8003505C 00031F9C 3B C0 00 00 */ li r30, 0 -/* 80035060 00031FA0 3B E0 00 00 */ li r31, 0 -lbl_80035064: -/* 80035064 00031FA4 38 7F 05 F0 */ addi r3, r31, 0x5f0 -/* 80035068 00031FA8 7C 7D 1A 14 */ add r3, r29, r3 -/* 8003506C 00031FAC 4B FF FA 19 */ bl init__13dSv_memory2_cFv -/* 80035070 00031FB0 3B DE 00 01 */ addi r30, r30, 1 -/* 80035074 00031FB4 2C 1E 00 40 */ cmpwi r30, 0x40 -/* 80035078 00031FB8 3B FF 00 08 */ addi r31, r31, 8 -/* 8003507C 00031FBC 41 80 FF E8 */ blt lbl_80035064 -/* 80035080 00031FC0 38 7D 07 F0 */ addi r3, r29, 0x7f0 -/* 80035084 00031FC4 4B FF F8 D1 */ bl init__11dSv_event_cFv -/* 80035088 00031FC8 38 7D 09 40 */ addi r3, r29, 0x940 -/* 8003508C 00031FCC 4B FF F9 91 */ bl init__14dSv_MiniGame_cFv -/* 80035090 00031FD0 39 61 00 20 */ addi r11, r1, 0x20 -/* 80035094 00031FD4 48 32 D1 95 */ bl _restgpr_29 -/* 80035098 00031FD8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8003509C 00031FDC 7C 08 03 A6 */ mtlr r0 -/* 800350A0 00031FE0 38 21 00 20 */ addi r1, r1, 0x20 -/* 800350A4 00031FE4 4E 80 00 20 */ blr - -.global dSv_save_c_NS_getSave2 -dSv_save_c_NS_getSave2: -/* 800350A8 00031FE8 7C 60 1B 78 */ mr r0, r3 -/* 800350AC 00031FEC 54 83 18 38 */ slwi r3, r4, 3 -/* 800350B0 00031FF0 38 63 05 F0 */ addi r3, r3, 0x5f0 -/* 800350B4 00031FF4 7C 60 1A 14 */ add r3, r0, r3 -/* 800350B8 00031FF8 4E 80 00 20 */ blr - -.global dSv_info_c_NS_getSave -dSv_info_c_NS_getSave: -/* 800350BC 00031FFC 54 84 28 34 */ slwi r4, r4, 5 -/* 800350C0 00032000 38 84 01 F0 */ addi r4, r4, 0x1f0 -/* 800350C4 00032004 7C 83 22 14 */ add r4, r3, r4 -/* 800350C8 00032008 38 A3 09 54 */ addi r5, r3, 0x954 -/* 800350CC 0003200C 38 84 FF FC */ addi r4, r4, -4 -/* 800350D0 00032010 38 00 00 04 */ li r0, 4 -/* 800350D4 00032014 7C 09 03 A6 */ mtctr r0 -lbl_800350D8: -/* 800350D8 00032018 80 64 00 04 */ lwz r3, 4(r4) -/* 800350DC 0003201C 84 04 00 08 */ lwzu r0, 8(r4) -/* 800350E0 00032020 90 65 00 04 */ stw r3, 4(r5) -/* 800350E4 00032024 94 05 00 08 */ stwu r0, 8(r5) -/* 800350E8 00032028 42 00 FF F0 */ bdnz lbl_800350D8 -/* 800350EC 0003202C 4E 80 00 20 */ blr - -.global dSv_info_c_NS_putSave -dSv_info_c_NS_putSave: -/* 800350F0 00032030 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 800350F4 00032034 38 E1 00 04 */ addi r7, r1, 4 -/* 800350F8 00032038 38 C3 09 54 */ addi r6, r3, 0x954 -/* 800350FC 0003203C 38 00 00 04 */ li r0, 4 -/* 80035100 00032040 7C 09 03 A6 */ mtctr r0 -lbl_80035104: -/* 80035104 00032044 80 A6 00 04 */ lwz r5, 4(r6) -/* 80035108 00032048 84 06 00 08 */ lwzu r0, 8(r6) -/* 8003510C 0003204C 90 A7 00 04 */ stw r5, 4(r7) -/* 80035110 00032050 94 07 00 08 */ stwu r0, 8(r7) -/* 80035114 00032054 42 00 FF F0 */ bdnz lbl_80035104 -/* 80035118 00032058 54 80 28 34 */ slwi r0, r4, 5 -/* 8003511C 0003205C 7C 63 02 14 */ add r3, r3, r0 -/* 80035120 00032060 38 A3 01 EC */ addi r5, r3, 0x1ec -/* 80035124 00032064 38 81 00 04 */ addi r4, r1, 4 -/* 80035128 00032068 38 00 00 04 */ li r0, 4 -/* 8003512C 0003206C 7C 09 03 A6 */ mtctr r0 -lbl_80035130: -/* 80035130 00032070 80 64 00 04 */ lwz r3, 4(r4) -/* 80035134 00032074 84 04 00 08 */ lwzu r0, 8(r4) -/* 80035138 00032078 90 65 00 04 */ stw r3, 4(r5) -/* 8003513C 0003207C 94 05 00 08 */ stwu r0, 8(r5) -/* 80035140 00032080 42 00 FF F0 */ bdnz lbl_80035130 -/* 80035144 00032084 38 21 00 30 */ addi r1, r1, 0x30 -/* 80035148 00032088 4E 80 00 20 */ blr - -.global dSv_info_c_NS_initZone -dSv_info_c_NS_initZone: -/* 8003514C 0003208C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80035150 00032090 7C 08 02 A6 */ mflr r0 -/* 80035154 00032094 90 01 00 24 */ stw r0, 0x24(r1) -/* 80035158 00032098 39 61 00 20 */ addi r11, r1, 0x20 -/* 8003515C 0003209C 48 32 D0 81 */ bl _savegpr_29 -/* 80035160 000320A0 7C 7D 1B 78 */ mr r29, r3 -/* 80035164 000320A4 3B C0 00 00 */ li r30, 0 -/* 80035168 000320A8 3B E0 00 00 */ li r31, 0 -lbl_8003516C: -/* 8003516C 000320AC 38 7F 09 B4 */ addi r3, r31, 0x9b4 -/* 80035170 000320B0 7C 7D 1A 14 */ add r3, r29, r3 -/* 80035174 000320B4 38 80 FF FF */ li r4, -1 -/* 80035178 000320B8 4B FF FD CD */ bl dSv_zone_c_NS_init -/* 8003517C 000320BC 3B DE 00 01 */ addi r30, r30, 1 -/* 80035180 000320C0 2C 1E 00 20 */ cmpwi r30, 0x20 -/* 80035184 000320C4 3B FF 00 20 */ addi r31, r31, 0x20 -/* 80035188 000320C8 41 80 FF E4 */ blt lbl_8003516C -/* 8003518C 000320CC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80035190 000320D0 48 32 D0 99 */ bl _restgpr_29 -/* 80035194 000320D4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80035198 000320D8 7C 08 03 A6 */ mtlr r0 -/* 8003519C 000320DC 38 21 00 20 */ addi r1, r1, 0x20 -/* 800351A0 000320E0 4E 80 00 20 */ blr - -.global dSv_info_c_NS_createZone -dSv_info_c_NS_createZone: -/* 800351A4 000320E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800351A8 000320E8 7C 08 02 A6 */ mflr r0 -/* 800351AC 000320EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800351B0 000320F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800351B4 000320F4 38 63 09 B4 */ addi r3, r3, 0x9b4 -/* 800351B8 000320F8 3B E0 00 00 */ li r31, 0 -/* 800351BC 000320FC 38 00 00 20 */ li r0, 0x20 -/* 800351C0 00032100 7C 09 03 A6 */ mtctr r0 -lbl_800351C4: -/* 800351C4 00032104 88 03 00 00 */ lbz r0, 0(r3) -/* 800351C8 00032108 7C 00 07 75 */ extsb. r0, r0 -/* 800351CC 0003210C 40 80 00 10 */ bge lbl_800351DC -/* 800351D0 00032110 4B FF FD 75 */ bl dSv_zone_c_NS_init -/* 800351D4 00032114 7F E3 FB 78 */ mr r3, r31 -/* 800351D8 00032118 48 00 00 14 */ b lbl_800351EC -lbl_800351DC: -/* 800351DC 0003211C 38 63 00 20 */ addi r3, r3, 0x20 -/* 800351E0 00032120 3B FF 00 01 */ addi r31, r31, 1 -/* 800351E4 00032124 42 00 FF E0 */ bdnz lbl_800351C4 -/* 800351E8 00032128 38 60 FF FF */ li r3, -1 -lbl_800351EC: -/* 800351EC 0003212C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800351F0 00032130 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800351F4 00032134 7C 08 03 A6 */ mtlr r0 -/* 800351F8 00032138 38 21 00 10 */ addi r1, r1, 0x10 -/* 800351FC 0003213C 4E 80 00 20 */ blr - -.global dSv_info_c_NS_onSwitch -dSv_info_c_NS_onSwitch: -/* 80035200 00032140 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80035204 00032144 7C 08 02 A6 */ mflr r0 -/* 80035208 00032148 90 01 00 14 */ stw r0, 0x14(r1) -/* 8003520C 0003214C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80035210 00032150 93 C1 00 08 */ stw r30, 8(r1) -/* 80035214 00032154 7C 7E 1B 78 */ mr r30, r3 -/* 80035218 00032158 7C 9F 23 78 */ mr r31, r4 -/* 8003521C 0003215C 2C 1F FF FF */ cmpwi r31, -1 -/* 80035220 00032160 41 82 00 78 */ beq lbl_80035298 -/* 80035224 00032164 2C 1F 00 FF */ cmpwi r31, 0xff -/* 80035228 00032168 40 82 00 08 */ bne lbl_80035230 -/* 8003522C 0003216C 48 00 00 6C */ b lbl_80035298 -lbl_80035230: -/* 80035230 00032170 2C 1F 00 80 */ cmpwi r31, 0x80 -/* 80035234 00032174 40 80 00 10 */ bge lbl_80035244 -/* 80035238 00032178 38 7E 09 58 */ addi r3, r30, 0x958 -/* 8003523C 0003217C 4B FF F5 D5 */ bl onSwitch__12dSv_memBit_cFi -/* 80035240 00032180 48 00 00 58 */ b lbl_80035298 -lbl_80035244: -/* 80035244 00032184 2C 1F 00 C0 */ cmpwi r31, 0xc0 -/* 80035248 00032188 40 80 00 14 */ bge lbl_8003525C -/* 8003524C 0003218C 38 7E 09 78 */ addi r3, r30, 0x978 -/* 80035250 00032190 38 9F FF 80 */ addi r4, r31, -128 -/* 80035254 00032194 4B FF F9 45 */ bl onSwitch__12dSv_danBit_cFi -/* 80035258 00032198 48 00 00 40 */ b lbl_80035298 -lbl_8003525C: -/* 8003525C 0003219C 7C A3 2B 78 */ mr r3, r5 -/* 80035260 000321A0 4B FF 87 51 */ bl dStage_roomControl_c_NS_getZoneNo -/* 80035264 000321A4 2C 1F 00 E0 */ cmpwi r31, 0xe0 -/* 80035268 000321A8 40 80 00 1C */ bge lbl_80035284 -/* 8003526C 000321AC 54 63 28 34 */ slwi r3, r3, 5 -/* 80035270 000321B0 38 63 09 B6 */ addi r3, r3, 0x9b6 -/* 80035274 000321B4 7C 7E 1A 14 */ add r3, r30, r3 -/* 80035278 000321B8 38 9F FF 40 */ addi r4, r31, -192 -/* 8003527C 000321BC 4B FF FA 89 */ bl onSwitch__13dSv_zoneBit_cFi -/* 80035280 000321C0 48 00 00 18 */ b lbl_80035298 -lbl_80035284: -/* 80035284 000321C4 54 63 28 34 */ slwi r3, r3, 5 -/* 80035288 000321C8 38 63 09 B6 */ addi r3, r3, 0x9b6 -/* 8003528C 000321CC 7C 7E 1A 14 */ add r3, r30, r3 -/* 80035290 000321D0 38 9F FF 20 */ addi r4, r31, -224 -/* 80035294 000321D4 4B FF FB 19 */ bl onOneSwitch__13dSv_zoneBit_cFi -lbl_80035298: -/* 80035298 000321D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8003529C 000321DC 83 C1 00 08 */ lwz r30, 8(r1) -/* 800352A0 000321E0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800352A4 000321E4 7C 08 03 A6 */ mtlr r0 -/* 800352A8 000321E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 800352AC 000321EC 4E 80 00 20 */ blr - .global dSv_info_c_NS_offSwitch dSv_info_c_NS_offSwitch: /* 800352B0 000321F0 94 21 FF F0 */ stwu r1, -0x10(r1) @@ -612,7 +297,7 @@ lbl_80035680: /* 8003568C 000325CC 38 63 09 C4 */ addi r3, r3, 0x9c4 /* 80035690 000325D0 7C 7E 1A 14 */ add r3, r30, r3 /* 80035694 000325D4 7F E4 FB 78 */ mr r4, r31 -/* 80035698 000325D8 4B FF F8 3D */ bl dSv_zoneActor_c_NS_on +/* 80035698 000325D8 4B FF F8 3D */ bl on__15dSv_zoneActor_cFi lbl_8003569C: /* 8003569C 000325DC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800356A0 000325E0 83 C1 00 08 */ lwz r30, 8(r1) @@ -642,7 +327,7 @@ lbl_800356F0: /* 800356FC 0003263C 38 63 09 C4 */ addi r3, r3, 0x9c4 /* 80035700 00032640 7C 7E 1A 14 */ add r3, r30, r3 /* 80035704 00032644 7F E4 FB 78 */ mr r4, r31 -/* 80035708 00032648 4B FF F7 F1 */ bl dSv_zoneActor_c_NS_off +/* 80035708 00032648 4B FF F7 F1 */ bl off__15dSv_zoneActor_cFi lbl_8003570C: /* 8003570C 0003264C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80035710 00032650 83 C1 00 08 */ lwz r30, 8(r1) @@ -677,7 +362,7 @@ lbl_80035764: /* 80035770 000326B0 38 63 09 C4 */ addi r3, r3, 0x9c4 /* 80035774 000326B4 7C 7E 1A 14 */ add r3, r30, r3 /* 80035778 000326B8 7F E4 FB 78 */ mr r4, r31 -/* 8003577C 000326BC 4B FF F7 A1 */ bl dSv_zoneActor_c_NS_is +/* 8003577C 000326BC 4B FF F7 A1 */ bl is__15dSv_zoneActor_cCFi lbl_80035780: /* 80035780 000326C0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80035784 000326C4 83 C1 00 08 */ lwz r30, 8(r1) @@ -974,8 +659,8 @@ lbl_80035B60: /* 80035BC8 00032B08 38 21 00 10 */ addi r1, r1, 0x10 /* 80035BCC 00032B0C 4E 80 00 20 */ blr -.global dSv_info_c_NS_initdata_to_card -dSv_info_c_NS_initdata_to_card: +.global init__10dSv_info_cFvdata_to_card +init__10dSv_info_cFvdata_to_card: /* 80035BD0 00032B10 94 21 F6 90 */ stwu r1, -0x970(r1) /* 80035BD4 00032B14 7C 08 02 A6 */ mflr r0 /* 80035BD8 00032B18 90 01 09 74 */ stw r0, 0x974(r1) @@ -1001,7 +686,7 @@ dSv_info_c_NS_initdata_to_card: /* 80035C18 00032B58 38 E0 00 40 */ li r7, 0x40 /* 80035C1C 00032B5C 48 32 C1 45 */ bl func_80361D60 /* 80035C20 00032B60 38 61 00 08 */ addi r3, r1, 8 -/* 80035C24 00032B64 4B FF F3 F9 */ bl dSv_save_c_NS_init +/* 80035C24 00032B64 4B FF F3 F9 */ bl init__10dSv_save_cFv /* 80035C28 00032B68 38 61 01 BC */ addi r3, r1, 0x1bc /* 80035C2C 00032B6C 3C 80 80 38 */ lis r4, lbl_80379234@ha /* 80035C30 00032B70 38 84 92 34 */ addi r4, r4, lbl_80379234@l diff --git a/asm/d/d_stage.s b/asm/d/d_stage.s index 77d78cc918a..bcd22c7c951 100644 --- a/asm/d/d_stage.s +++ b/asm/d/d_stage.s @@ -387,7 +387,7 @@ dStage_roomControl_c_NS_initZone: /* 80024340 00021280 90 01 00 14 */ stw r0, 0x14(r1) /* 80024344 00021284 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 80024348 00021288 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l -/* 8002434C 0002128C 48 01 0E 01 */ bl dSv_info_c_NS_initZone +/* 8002434C 0002128C 48 01 0E 01 */ bl initZone__10dSv_info_cFv /* 80024350 00021290 3C 60 80 3F */ lis r3, lbl_803F6094@ha /* 80024354 00021294 38 03 60 94 */ addi r0, r3, lbl_803F6094@l /* 80024358 00021298 7C 04 03 78 */ mr r4, r0 @@ -1872,7 +1872,7 @@ lbl_800257BC: /* 800257D8 00022718 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 800257DC 0002271C 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 800257E0 00022720 7F E4 FB 78 */ mr r4, r31 -/* 800257E4 00022724 48 00 F8 D9 */ bl dSv_info_c_NS_getSave +/* 800257E4 00022724 48 00 F8 D9 */ bl getSave__10dSv_info_cFi /* 800257E8 00022728 3C 60 80 43 */ lis r3, lbl_804307EC@ha /* 800257EC 0002272C 38 63 07 EC */ addi r3, r3, lbl_804307EC@l /* 800257F0 00022730 48 23 6A 09 */ bl dSvBit_HIO_c_NS_init @@ -3438,7 +3438,7 @@ lbl_80026E34: /* 80026E58 00023D98 54 04 FE FE */ rlwinm r4, r0, 0x1f, 0x1b, 0x1f /* 80026E5C 00023D9C 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 80026E60 00023DA0 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l -/* 80026E64 00023DA4 48 00 E2 8D */ bl dSv_info_c_NS_putSave +/* 80026E64 00023DA4 48 00 E2 8D */ bl putSave__10dSv_info_cFi /* 80026E68 00023DA8 38 6D 87 F4 */ addi r3, r13, lbl_80450D74-_SDA_BASE_ /* 80026E6C 00023DAC 4B FF DC 51 */ bl dStage_roomControl_c_NS_roomDzs_c_NS_remove /* 80026E70 00023DB0 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) diff --git a/asm/d/file/d_file_select.s b/asm/d/file/d_file_select.s index 76386587ca9..29ad0c8a15c 100644 --- a/asm/d/file/d_file_select.s +++ b/asm/d/file/d_file_select.s @@ -1040,7 +1040,7 @@ lbl_8018446C: /* 80184484 001813C4 98 1F 02 65 */ stb r0, 0x265(r31) /* 80184488 001813C8 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8018448C 001813CC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l -/* 80184490 001813D0 4B EB 0B 3D */ bl dSv_info_c_NS_init +/* 80184490 001813D0 4B EB 0B 3D */ bl init__10dSv_info_cFv /* 80184494 001813D4 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 80184498 001813D8 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8018449C 001813DC 38 63 0F 38 */ addi r3, r3, 0xf38 @@ -7150,7 +7150,7 @@ lbl_80189E10: /* 80189E8C 00186DCC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 80189E90 00186DD0 38 9F 03 B8 */ addi r4, r31, 0x3b8 /* 80189E94 00186DD4 88 BF 02 65 */ lbz r5, 0x265(r31) -/* 80189E98 00186DD8 4B EA BD 39 */ bl dSv_info_c_NS_initdata_to_card +/* 80189E98 00186DD8 4B EA BD 39 */ bl init__10dSv_info_cFvdata_to_card /* 80189E9C 00186DDC 38 7F 03 B8 */ addi r3, r31, 0x3b8 /* 80189EA0 00186DE0 88 9F 02 65 */ lbz r4, 0x265(r31) /* 80189EA4 00186DE4 4B E8 DE 95 */ bl mDoMemCdRWm_SetCheckSumGameData @@ -13932,7 +13932,7 @@ lbl_80190278: /* 80190278 0018D1B8 7F E3 FB 78 */ mr r3, r31 /* 8019027C 0018D1BC 38 9D 03 B8 */ addi r4, r29, 0x3b8 /* 80190280 0018D1C0 7F C5 F3 78 */ mr r5, r30 -/* 80190284 0018D1C4 4B EA 59 4D */ bl dSv_info_c_NS_initdata_to_card +/* 80190284 0018D1C4 4B EA 59 4D */ bl init__10dSv_info_cFvdata_to_card /* 80190288 0018D1C8 38 7D 03 B8 */ addi r3, r29, 0x3b8 /* 8019028C 0018D1CC 57 C4 06 3E */ clrlwi r4, r30, 0x18 /* 80190290 0018D1D0 4B E8 7A A9 */ bl mDoMemCdRWm_SetCheckSumGameData diff --git a/asm/d/map/path/d_map_path_fmap.s b/asm/d/map/path/d_map_path_fmap.s index 1553dcae1d1..67c9b62224b 100644 --- a/asm/d/map/path/d_map_path_fmap.s +++ b/asm/d/map/path/d_map_path_fmap.s @@ -55,7 +55,7 @@ dMenu_Fmap_room_data_c_NS_isArrival: /* 8003D834 0003A774 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8003D838 0003A778 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8003D83C 0003A77C 88 84 00 02 */ lbz r4, 2(r4) -/* 8003D840 0003A780 4B FF 78 69 */ bl dSv_save_c_NS_getSave2 +/* 8003D840 0003A780 4B FF 78 69 */ bl getSave2__10dSv_save_cFi /* 8003D844 0003A784 88 9F 00 10 */ lbz r4, 0x10(r31) /* 8003D848 0003A788 4B FF 72 A5 */ bl isVisitedRoom__13dSv_memory2_cFi /* 8003D84C 0003A78C 30 03 FF FF */ addic r0, r3, -1 @@ -160,7 +160,7 @@ dMenu_Fmap_stage_data_c_NS_isArrival: lbl_8003D98C: /* 8003D98C 0003A8CC 7F E3 FB 78 */ mr r3, r31 /* 8003D990 0003A8D0 7F A4 EB 78 */ mr r4, r29 -/* 8003D994 0003A8D4 4B FF 77 15 */ bl dSv_save_c_NS_getSave2 +/* 8003D994 0003A8D4 4B FF 77 15 */ bl getSave2__10dSv_save_cFi /* 8003D998 0003A8D8 88 9E 00 10 */ lbz r4, 0x10(r30) /* 8003D99C 0003A8DC 4B FF 71 51 */ bl isVisitedRoom__13dSv_memory2_cFi /* 8003D9A0 0003A8E0 30 03 FF FF */ addic r0, r3, -1 @@ -351,7 +351,7 @@ lbl_8003DC24: /* 8003DC24 0003AB64 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8003DC28 0003AB68 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8003DC2C 0003AB6C 80 81 00 38 */ lwz r4, 0x38(r1) -/* 8003DC30 0003AB70 4B FF 74 79 */ bl dSv_save_c_NS_getSave2 +/* 8003DC30 0003AB70 4B FF 74 79 */ bl getSave2__10dSv_save_cFi /* 8003DC34 0003AB74 88 99 00 10 */ lbz r4, 0x10(r25) /* 8003DC38 0003AB78 4B FF 6E B5 */ bl isVisitedRoom__13dSv_memory2_cFi /* 8003DC3C 0003AB7C 2C 03 00 00 */ cmpwi r3, 0 diff --git a/asm/d/menu/d_menu_save.s b/asm/d/menu/d_menu_save.s index 80f772161a8..271ba6696b0 100644 --- a/asm/d/menu/d_menu_save.s +++ b/asm/d/menu/d_menu_save.s @@ -3437,7 +3437,7 @@ dMenu_save_c_NS_dataWrite: /* 801F2874 001EF7B4 54 04 FE FE */ rlwinm r4, r0, 0x1f, 0x1b, 0x1f /* 801F2878 001EF7B8 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 801F287C 001EF7BC 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l -/* 801F2880 001EF7C0 4B E4 28 71 */ bl dSv_info_c_NS_putSave +/* 801F2880 001EF7C0 4B E4 28 71 */ bl putSave__10dSv_info_cFi /* 801F2884 001EF7C4 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 801F2888 001EF7C8 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 801F288C 001EF7CC 38 9D 01 D0 */ addi r4, r29, 0x1d0 @@ -7927,7 +7927,7 @@ lbl_801F6978: /* 801F6978 001F38B8 7F E3 FB 78 */ mr r3, r31 /* 801F697C 001F38BC 38 9D 01 D0 */ addi r4, r29, 0x1d0 /* 801F6980 001F38C0 7F C5 F3 78 */ mr r5, r30 -/* 801F6984 001F38C4 4B E3 F2 4D */ bl dSv_info_c_NS_initdata_to_card +/* 801F6984 001F38C4 4B E3 F2 4D */ bl init__10dSv_info_cFvdata_to_card /* 801F6988 001F38C8 38 7D 01 D0 */ addi r3, r29, 0x1d0 /* 801F698C 001F38CC 57 C4 06 3E */ clrlwi r4, r30, 0x18 /* 801F6990 001F38D0 4B E2 13 A9 */ bl mDoMemCdRWm_SetCheckSumGameData diff --git a/asm/d/s/d_s_play.s b/asm/d/s/d_s_play.s index b8dd4cc1f3c..8bbc8b07acc 100644 --- a/asm/d/s/d_s_play.s +++ b/asm/d/s/d_s_play.s @@ -1413,7 +1413,7 @@ lbl_8025A788: /* 8025A870 002577B0 4B DB F5 29 */ bl fopAcM_create_X1_ /* 8025A874 002577B4 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8025A878 002577B8 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l -/* 8025A87C 002577BC 4B DD A7 51 */ bl dSv_info_c_NS_init +/* 8025A87C 002577BC 4B DD A7 51 */ bl init__10dSv_info_cFv /* 8025A880 002577C0 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8025A884 002577C4 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8025A888 002577C8 38 00 00 00 */ li r0, 0 diff --git a/asm/d/s/d_s_room.s b/asm/d/s/d_s_room.s index b593f9bef18..94908df90ef 100644 --- a/asm/d/s/d_s_room.s +++ b/asm/d/s/d_s_room.s @@ -856,7 +856,7 @@ lbl_8025B9DC: /* 8025B9F0 00258930 3C 60 80 40 */ lis r3, lbl_804061C0@ha /* 8025B9F4 00258934 38 63 61 C0 */ addi r3, r3, lbl_804061C0@l /* 8025B9F8 00258938 7F A4 EB 78 */ mr r4, r29 -/* 8025B9FC 0025893C 4B DD 97 A9 */ bl dSv_info_c_NS_createZone +/* 8025B9FC 0025893C 4B DD 97 A9 */ bl createZone__10dSv_info_cFi /* 8025BA00 00258940 7C 64 1B 78 */ mr r4, r3 /* 8025BA04 00258944 7F A3 EB 78 */ mr r3, r29 /* 8025BA08 00258948 48 00 00 A5 */ bl dStage_roomControl_c_NS_setZoneNo diff --git a/include/d_save.h b/include/d_save.h index 2287dbf75ac..95e89419827 100644 --- a/include/d_save.h +++ b/include/d_save.h @@ -547,16 +547,16 @@ class dSv_zoneActor_c { void init(void); void on(int); void off(int); - u8 is(int) const; + bool is(int) const; private: - u32 unk0[4]; + u32 actor_bitfield[4]; }; class dSv_zone_c { public: dSv_zone_c(void); // the assembly for this is in d_com_inf_game.s - void init(void); + void init(int); private: u8 unk0; @@ -591,11 +591,11 @@ class dSv_turnRestart_c { class dSv_save_c { public: void init(void); - dSv_memory2_c getSave2(int); + dSv_memory2_c* getSave2(int); private: dSv_player_c player; - u8 unk476[20]; + u8 unk476[4]; dSv_memory_c area_flags[32]; dSv_memory2_c unk_flags[64]; dSv_event_c event_flags; @@ -609,7 +609,7 @@ class dSv_info_c { void getSave(int); void putSave(int); void initZone(void); - int createZone(int); + u32 createZone(int); void onSwitch(int, int); void offSwitch(int, int); bool isSwitch(int, int) const; @@ -631,4 +631,4 @@ class dSv_info_c { dSv_restart_c restart; dSv_event_c events; dSv_turnRestart_c turn_restart; -}; +}; \ No newline at end of file diff --git a/include/func_8003501C.s b/include/func_8003501C.s new file mode 100644 index 00000000000..2c5934a10e7 --- /dev/null +++ b/include/func_8003501C.s @@ -0,0 +1,37 @@ +/* 8003501C 00031F5C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80035020 00031F60 7C 08 02 A6 */ mflr r0 +/* 80035024 00031F64 90 01 00 24 */ stw r0, 0x24(r1) +/* 80035028 00031F68 39 61 00 20 */ addi r11, r1, 0x20 +/* 8003502C 00031F6C 48 32 D1 B1 */ bl _savegpr_29 +/* 80035030 00031F70 7C 7D 1B 78 */ mr r29, r3 +/* 80035034 00031F74 4B FF F6 71 */ bl init__12dSv_player_cFv +/* 80035038 00031F78 3B C0 00 00 */ li r30, 0 +/* 8003503C 00031F7C 3B E0 00 00 */ li r31, 0 +lbl_80035040: +/* 80035040 00031F80 38 7F 01 F0 */ addi r3, r31, 0x1f0 +/* 80035044 00031F84 7C 7D 1A 14 */ add r3, r29, r3 +/* 80035048 00031F88 4B FF FA 1D */ bl init__12dSv_memory_cFv +/* 8003504C 00031F8C 3B DE 00 01 */ addi r30, r30, 1 +/* 80035050 00031F90 2C 1E 00 20 */ cmpwi r30, 0x20 +/* 80035054 00031F94 3B FF 00 20 */ addi r31, r31, 0x20 +/* 80035058 00031F98 41 80 FF E8 */ blt lbl_80035040 +/* 8003505C 00031F9C 3B C0 00 00 */ li r30, 0 +/* 80035060 00031FA0 3B E0 00 00 */ li r31, 0 +lbl_80035064: +/* 80035064 00031FA4 38 7F 05 F0 */ addi r3, r31, 0x5f0 +/* 80035068 00031FA8 7C 7D 1A 14 */ add r3, r29, r3 +/* 8003506C 00031FAC 4B FF FA 19 */ bl init__13dSv_memory2_cFv +/* 80035070 00031FB0 3B DE 00 01 */ addi r30, r30, 1 +/* 80035074 00031FB4 2C 1E 00 40 */ cmpwi r30, 0x40 +/* 80035078 00031FB8 3B FF 00 08 */ addi r31, r31, 8 +/* 8003507C 00031FBC 41 80 FF E8 */ blt lbl_80035064 +/* 80035080 00031FC0 38 7D 07 F0 */ addi r3, r29, 0x7f0 +/* 80035084 00031FC4 4B FF F8 D1 */ bl init__11dSv_event_cFv +/* 80035088 00031FC8 38 7D 09 40 */ addi r3, r29, 0x940 +/* 8003508C 00031FCC 4B FF F9 91 */ bl init__14dSv_MiniGame_cFv +/* 80035090 00031FD0 39 61 00 20 */ addi r11, r1, 0x20 +/* 80035094 00031FD4 48 32 D1 95 */ bl _restgpr_29 +/* 80035098 00031FD8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8003509C 00031FDC 7C 08 03 A6 */ mtlr r0 +/* 800350A0 00031FE0 38 21 00 20 */ addi r1, r1, 0x20 +/* 800350A4 00031FE4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_800350A8.s b/include/func_800350A8.s new file mode 100644 index 00000000000..df9b53d4b60 --- /dev/null +++ b/include/func_800350A8.s @@ -0,0 +1,5 @@ +/* 800350A8 00031FE8 7C 60 1B 78 */ mr r0, r3 +/* 800350AC 00031FEC 54 83 18 38 */ slwi r3, r4, 3 +/* 800350B0 00031FF0 38 63 05 F0 */ addi r3, r3, 0x5f0 +/* 800350B4 00031FF4 7C 60 1A 14 */ add r3, r0, r3 +/* 800350B8 00031FF8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_800350BC.s b/include/func_800350BC.s new file mode 100644 index 00000000000..e37496a9d13 --- /dev/null +++ b/include/func_800350BC.s @@ -0,0 +1,14 @@ +/* 800350BC 00031FFC 54 84 28 34 */ slwi r4, r4, 5 +/* 800350C0 00032000 38 84 01 F0 */ addi r4, r4, 0x1f0 +/* 800350C4 00032004 7C 83 22 14 */ add r4, r3, r4 +/* 800350C8 00032008 38 A3 09 54 */ addi r5, r3, 0x954 +/* 800350CC 0003200C 38 84 FF FC */ addi r4, r4, -4 +/* 800350D0 00032010 38 00 00 04 */ li r0, 4 +/* 800350D4 00032014 7C 09 03 A6 */ mtctr r0 +lbl_800350D8: +/* 800350D8 00032018 80 64 00 04 */ lwz r3, 4(r4) +/* 800350DC 0003201C 84 04 00 08 */ lwzu r0, 8(r4) +/* 800350E0 00032020 90 65 00 04 */ stw r3, 4(r5) +/* 800350E4 00032024 94 05 00 08 */ stwu r0, 8(r5) +/* 800350E8 00032028 42 00 FF F0 */ bdnz lbl_800350D8 +/* 800350EC 0003202C 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_800350F0.s b/include/func_800350F0.s new file mode 100644 index 00000000000..6cbf8f44469 --- /dev/null +++ b/include/func_800350F0.s @@ -0,0 +1,25 @@ +/* 800350F0 00032030 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 800350F4 00032034 38 E1 00 04 */ addi r7, r1, 4 +/* 800350F8 00032038 38 C3 09 54 */ addi r6, r3, 0x954 +/* 800350FC 0003203C 38 00 00 04 */ li r0, 4 +/* 80035100 00032040 7C 09 03 A6 */ mtctr r0 +lbl_80035104: +/* 80035104 00032044 80 A6 00 04 */ lwz r5, 4(r6) +/* 80035108 00032048 84 06 00 08 */ lwzu r0, 8(r6) +/* 8003510C 0003204C 90 A7 00 04 */ stw r5, 4(r7) +/* 80035110 00032050 94 07 00 08 */ stwu r0, 8(r7) +/* 80035114 00032054 42 00 FF F0 */ bdnz lbl_80035104 +/* 80035118 00032058 54 80 28 34 */ slwi r0, r4, 5 +/* 8003511C 0003205C 7C 63 02 14 */ add r3, r3, r0 +/* 80035120 00032060 38 A3 01 EC */ addi r5, r3, 0x1ec +/* 80035124 00032064 38 81 00 04 */ addi r4, r1, 4 +/* 80035128 00032068 38 00 00 04 */ li r0, 4 +/* 8003512C 0003206C 7C 09 03 A6 */ mtctr r0 +lbl_80035130: +/* 80035130 00032070 80 64 00 04 */ lwz r3, 4(r4) +/* 80035134 00032074 84 04 00 08 */ lwzu r0, 8(r4) +/* 80035138 00032078 90 65 00 04 */ stw r3, 4(r5) +/* 8003513C 0003207C 94 05 00 08 */ stwu r0, 8(r5) +/* 80035140 00032080 42 00 FF F0 */ bdnz lbl_80035130 +/* 80035144 00032084 38 21 00 30 */ addi r1, r1, 0x30 +/* 80035148 00032088 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_8003514C.s b/include/func_8003514C.s new file mode 100644 index 00000000000..9f99a1386ab --- /dev/null +++ b/include/func_8003514C.s @@ -0,0 +1,23 @@ +/* 8003514C 0003208C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80035150 00032090 7C 08 02 A6 */ mflr r0 +/* 80035154 00032094 90 01 00 24 */ stw r0, 0x24(r1) +/* 80035158 00032098 39 61 00 20 */ addi r11, r1, 0x20 +/* 8003515C 0003209C 48 32 D0 81 */ bl _savegpr_29 +/* 80035160 000320A0 7C 7D 1B 78 */ mr r29, r3 +/* 80035164 000320A4 3B C0 00 00 */ li r30, 0 +/* 80035168 000320A8 3B E0 00 00 */ li r31, 0 +lbl_8003516C: +/* 8003516C 000320AC 38 7F 09 B4 */ addi r3, r31, 0x9b4 +/* 80035170 000320B0 7C 7D 1A 14 */ add r3, r29, r3 +/* 80035174 000320B4 38 80 FF FF */ li r4, -1 +/* 80035178 000320B8 4B FF FD CD */ bl init__10dSv_zone_cFi +/* 8003517C 000320BC 3B DE 00 01 */ addi r30, r30, 1 +/* 80035180 000320C0 2C 1E 00 20 */ cmpwi r30, 0x20 +/* 80035184 000320C4 3B FF 00 20 */ addi r31, r31, 0x20 +/* 80035188 000320C8 41 80 FF E4 */ blt lbl_8003516C +/* 8003518C 000320CC 39 61 00 20 */ addi r11, r1, 0x20 +/* 80035190 000320D0 48 32 D0 99 */ bl _restgpr_29 +/* 80035194 000320D4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80035198 000320D8 7C 08 03 A6 */ mtlr r0 +/* 8003519C 000320DC 38 21 00 20 */ addi r1, r1, 0x20 +/* 800351A0 000320E0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_800351A4.s b/include/func_800351A4.s new file mode 100644 index 00000000000..9579ee90d6e --- /dev/null +++ b/include/func_800351A4.s @@ -0,0 +1,26 @@ +/* 800351A4 000320E4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800351A8 000320E8 7C 08 02 A6 */ mflr r0 +/* 800351AC 000320EC 90 01 00 14 */ stw r0, 0x14(r1) +/* 800351B0 000320F0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800351B4 000320F4 38 63 09 B4 */ addi r3, r3, 0x9b4 +/* 800351B8 000320F8 3B E0 00 00 */ li r31, 0 +/* 800351BC 000320FC 38 00 00 20 */ li r0, 0x20 +/* 800351C0 00032100 7C 09 03 A6 */ mtctr r0 +lbl_800351C4: +/* 800351C4 00032104 88 03 00 00 */ lbz r0, 0(r3) +/* 800351C8 00032108 7C 00 07 75 */ extsb. r0, r0 +/* 800351CC 0003210C 40 80 00 10 */ bge lbl_800351DC +/* 800351D0 00032110 4B FF FD 75 */ bl init__10dSv_zone_cFi +/* 800351D4 00032114 7F E3 FB 78 */ mr r3, r31 +/* 800351D8 00032118 48 00 00 14 */ b lbl_800351EC +lbl_800351DC: +/* 800351DC 0003211C 38 63 00 20 */ addi r3, r3, 0x20 +/* 800351E0 00032120 3B FF 00 01 */ addi r31, r31, 1 +/* 800351E4 00032124 42 00 FF E0 */ bdnz lbl_800351C4 +/* 800351E8 00032128 38 60 FF FF */ li r3, -1 +lbl_800351EC: +/* 800351EC 0003212C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800351F0 00032130 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800351F4 00032134 7C 08 03 A6 */ mtlr r0 +/* 800351F8 00032138 38 21 00 10 */ addi r1, r1, 0x10 +/* 800351FC 0003213C 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/func_80035200.s b/include/func_80035200.s new file mode 100644 index 00000000000..d178bfa50c1 --- /dev/null +++ b/include/func_80035200.s @@ -0,0 +1,49 @@ +/* 80035200 00032140 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80035204 00032144 7C 08 02 A6 */ mflr r0 +/* 80035208 00032148 90 01 00 14 */ stw r0, 0x14(r1) +/* 8003520C 0003214C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80035210 00032150 93 C1 00 08 */ stw r30, 8(r1) +/* 80035214 00032154 7C 7E 1B 78 */ mr r30, r3 +/* 80035218 00032158 7C 9F 23 78 */ mr r31, r4 +/* 8003521C 0003215C 2C 1F FF FF */ cmpwi r31, -1 +/* 80035220 00032160 41 82 00 78 */ beq lbl_80035298 +/* 80035224 00032164 2C 1F 00 FF */ cmpwi r31, 0xff +/* 80035228 00032168 40 82 00 08 */ bne lbl_80035230 +/* 8003522C 0003216C 48 00 00 6C */ b lbl_80035298 +lbl_80035230: +/* 80035230 00032170 2C 1F 00 80 */ cmpwi r31, 0x80 +/* 80035234 00032174 40 80 00 10 */ bge lbl_80035244 +/* 80035238 00032178 38 7E 09 58 */ addi r3, r30, 0x958 +/* 8003523C 0003217C 4B FF F5 D5 */ bl onSwitch__12dSv_memBit_cFi +/* 80035240 00032180 48 00 00 58 */ b lbl_80035298 +lbl_80035244: +/* 80035244 00032184 2C 1F 00 C0 */ cmpwi r31, 0xc0 +/* 80035248 00032188 40 80 00 14 */ bge lbl_8003525C +/* 8003524C 0003218C 38 7E 09 78 */ addi r3, r30, 0x978 +/* 80035250 00032190 38 9F FF 80 */ addi r4, r31, -128 +/* 80035254 00032194 4B FF F9 45 */ bl onSwitch__12dSv_danBit_cFi +/* 80035258 00032198 48 00 00 40 */ b lbl_80035298 +lbl_8003525C: +/* 8003525C 0003219C 7C A3 2B 78 */ mr r3, r5 +/* 80035260 000321A0 4B FF 87 51 */ bl dStage_roomControl_c_NS_getZoneNo +/* 80035264 000321A4 2C 1F 00 E0 */ cmpwi r31, 0xe0 +/* 80035268 000321A8 40 80 00 1C */ bge lbl_80035284 +/* 8003526C 000321AC 54 63 28 34 */ slwi r3, r3, 5 +/* 80035270 000321B0 38 63 09 B6 */ addi r3, r3, 0x9b6 +/* 80035274 000321B4 7C 7E 1A 14 */ add r3, r30, r3 +/* 80035278 000321B8 38 9F FF 40 */ addi r4, r31, -192 +/* 8003527C 000321BC 4B FF FA 89 */ bl onSwitch__13dSv_zoneBit_cFi +/* 80035280 000321C0 48 00 00 18 */ b lbl_80035298 +lbl_80035284: +/* 80035284 000321C4 54 63 28 34 */ slwi r3, r3, 5 +/* 80035288 000321C8 38 63 09 B6 */ addi r3, r3, 0x9b6 +/* 8003528C 000321CC 7C 7E 1A 14 */ add r3, r30, r3 +/* 80035290 000321D0 38 9F FF 20 */ addi r4, r31, -224 +/* 80035294 000321D4 4B FF FB 19 */ bl onOneSwitch__13dSv_zoneBit_cFi +lbl_80035298: +/* 80035298 000321D8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8003529C 000321DC 83 C1 00 08 */ lwz r30, 8(r1) +/* 800352A0 000321E0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800352A4 000321E4 7C 08 03 A6 */ mtlr r0 +/* 800352A8 000321E8 38 21 00 10 */ addi r1, r1, 0x10 +/* 800352AC 000321EC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/functions.h b/include/functions.h index d3182a8c22f..f72d106e71c 100644 --- a/include/functions.h +++ b/include/functions.h @@ -42,4 +42,16 @@ extern "C" { void setInitEventBit(void); void daObjCarry_c_NS_clrSaveFlag(void); void daObjCarry_c_NS_setSaveFlag(void); + void init__14dSv_MiniGame_cFv(void); + void init__11dSv_event_cFv(void); + void init__13dSv_memory2_cFv(void); + void init__12dSv_memory_cFv(void); + void init__12dSv_player_cFv(void); + void init__10dSv_info_cFvZone(void); + void init__10dSv_zone_cFi(void); + void onOneSwitch__13dSv_zoneBit_cFi(void); + void onSwitch__13dSv_zoneBit_cFi(void); + void dStage_roomControl_c_NS_getZoneNo(void); + void onSwitch__12dSv_danBit_cFi(void); + void onSwitch__12dSv_memBit_cFi(void); } \ No newline at end of file diff --git a/src/d/d_save/d_save.cpp b/src/d/d_save/d_save.cpp index e8f178f8a81..dd5fbb5cde9 100644 --- a/src/d/d_save/d_save.cpp +++ b/src/d/d_save/d_save.cpp @@ -1193,4 +1193,149 @@ void dSv_zoneBit_c::onOneItem(int param_1) { bool dSv_zoneBit_c::isOneItem(int param_1) const { return this->room_item & 1 << param_1 ? true : false; -} \ No newline at end of file +} + +void dSv_zoneActor_c::init(void) { + for (int i = 0; i < 4; i++) { + this->actor_bitfield[i] = 0; + } +} + +void dSv_zoneActor_c::on(int param_1) { + this->actor_bitfield[param_1 >> 5] |= 1 << (param_1 & 0x1F); +} + +void dSv_zoneActor_c::off(int param_1) { + this->actor_bitfield[param_1 >> 5] &= ~(1 << (param_1 & 0x1F)); +} + +bool dSv_zoneActor_c::is(int param_1) const { + return this->actor_bitfield[param_1 >> 5] & 1 << (param_1 & 0x1F) ? true : false; +} + +void dSv_zone_c::init(int param_1) { + this->unk0 = param_1; + zone_bit.init(); + zone_actor.init(); +} + +void dSv_restart_c::setRoom(const cXyz& i_position, short i_angle, s8 param_3) { + this->unk0 = param_3; + this->position = i_position; + this->angle = i_angle; +} + +void dSv_turnRestart_c::set(const cXyz& i_position, short i_angle, s8 param_3, u32 param_4) { + this->position = i_position; + this->angle = i_angle; + this->unk18 = param_3; + this->unk12 = param_4; +} + +void dSv_info_c::init(void) { + this->save_file.init(); + this->memory.init(); + this->dungeon_bit.init(-1); + initZone(); + this->events.init(); +} + + +void dSv_save_c::init(void) { + this->player.init(); + for (int i = 0; i < 0x20; i++) { + this->area_flags[i].init(); + } + + for (int i = 0; i < 0x40; i++) { + this->unk_flags[i].init(); + } + + this->event_flags.init(); + this->minigame_flags.init(); +} + +dSv_memory2_c* dSv_save_c::getSave2(int param_1) { + return this->unk_flags + param_1; +} + +#ifdef NONMATCHING +void dSv_info_c::getSave(int) { + for (int i = 0; i < 4; i++) { + + } +} +#else +asm void dSv_info_c::getSave(int) { + nofralloc + #include "func_800350BC.s" +} +#endif + +#ifdef NONMATCHING +void dSv_info_c::getSave(int) { + for (int i = 0; i < 4; i++) { + + } + + for (int i = 0; i < 4; i++) { + + } +} +#else +asm void dSv_info_c::putSave(int) { + nofralloc + #include "func_800350F0.s" +} +#endif + +void dSv_info_c::initZone(void) { + for (int i = 0; i < 0x20; i++) { + this->zones[i].init(-1); + } +} + +#ifdef NONMATCHING +u32 dSv_info_c::createZone(int param_1) { + for (int i = 0; i < 0x20; i++) { + if (this->zones[i].test() < 0) { + this->zones[i].init(param_1); + return i; + } + } + return -1; +} +#else +asm u32 dSv_info_c::createZone(int param_1) { + nofralloc + #include "func_800351A4.s" +} +#endif + +#ifdef NONMATCHING +void dSv_info_c::onSwitch(int param_1, int param_2) { + if ((param_1 != -0x1) && (param_1 != 0xff)) { + if (param_1 < 0x80) { + this->memory.getTempFlags().onSwitch(param_1); + } + else { + if (param_1 < 0xc0) { + this->dungeon_bit.onSwitch(param_1 - 0x80); + } + else { + if (param_1 < 0xe0) { + this->zones[getZoneNo(param_2,param_1)].getZoneBit().onSwitch(param_1 - 0xC0); + } + else { + this->zones[getZoneNo(param_2,param_1)].getZoneBit().onOneSwitch(param_1 - 0xE0); + } + } + } + } +} +#else +asm void dSv_info_c::onSwitch(int param_1, int param_2) { + nofralloc + #include "func_80035200.s" +} +#endif \ No newline at end of file