diff --git a/config/eur/arm9/config.yaml b/config/eur/arm9/config.yaml index 9904a737..2ce5e41c 100644 --- a/config/eur/arm9/config.yaml +++ b/config/eur/arm9/config.yaml @@ -1,824 +1,825 @@ -rom_config: '../../../extract/eur/config.yaml' -build_path: '../../../build/eur' -delinks_path: '../../../build/eur/delinks' +rom_config: ../../../extract/eur/config.yaml +build_path: ../../../build/eur +delinks_path: ../../../build/eur/delinks +enable_dsprot: true main_module: name: main - object: '../../../build/eur/build/arm9.bin' - hash: '365f7c27109b64e1' + object: ../../../build/eur/build/arm9.bin + hash: 365f7c27109b64e1 delinks: delinks.txt symbols: symbols.txt relocations: relocs.txt autoloads: -- kind: Itcm - name: itcm - object: '../../../build/eur/build/itcm.bin' - hash: '3a0b005d4ae12cd0' - delinks: itcm/delinks.txt - symbols: itcm/symbols.txt - relocations: itcm/relocs.txt -- kind: Dtcm - name: dtcm - object: '../../../build/eur/build/dtcm.bin' - hash: '2d458cd97b1ad7b5' - delinks: dtcm/delinks.txt - symbols: dtcm/symbols.txt - relocations: dtcm/relocs.txt + - kind: Itcm + name: itcm + object: ../../../build/eur/build/itcm.bin + hash: 3a0b005d4ae12cd0 + delinks: itcm/delinks.txt + symbols: itcm/symbols.txt + relocations: itcm/relocs.txt + - kind: Dtcm + name: dtcm + object: ../../../build/eur/build/dtcm.bin + hash: 2d458cd97b1ad7b5 + delinks: dtcm/delinks.txt + symbols: dtcm/symbols.txt + relocations: dtcm/relocs.txt overlays: -- id: 0 - name: ov000 - object: '../../../build/eur/build/arm9_ov000.bin' - hash: c0f1210794d27be6 - delinks: overlays/ov000/delinks.txt - symbols: overlays/ov000/symbols.txt - relocations: overlays/ov000/relocs.txt -- id: 1 - name: ov001 - object: '../../../build/eur/build/arm9_ov001.bin' - hash: '9b522bdc66799553' - delinks: overlays/ov001/delinks.txt - symbols: overlays/ov001/symbols.txt - relocations: overlays/ov001/relocs.txt -- id: 2 - name: ov002 - object: '../../../build/eur/build/arm9_ov002.bin' - hash: c9219a9fcbc23aa8 - delinks: overlays/ov002/delinks.txt - symbols: overlays/ov002/symbols.txt - relocations: overlays/ov002/relocs.txt -- id: 3 - name: ov003 - object: '../../../build/eur/build/arm9_ov003.bin' - hash: '547135cd247127da' - delinks: overlays/ov003/delinks.txt - symbols: overlays/ov003/symbols.txt - relocations: overlays/ov003/relocs.txt -- id: 4 - name: ov004 - object: '../../../build/eur/build/arm9_ov004.bin' - hash: '1feed5ece654ece0' - delinks: overlays/ov004/delinks.txt - symbols: overlays/ov004/symbols.txt - relocations: overlays/ov004/relocs.txt -- id: 5 - name: ov005 - object: '../../../build/eur/build/arm9_ov005.bin' - hash: b87dc816d9d5543b - delinks: overlays/ov005/delinks.txt - symbols: overlays/ov005/symbols.txt - relocations: overlays/ov005/relocs.txt -- id: 6 - name: ov006 - object: '../../../build/eur/build/arm9_ov006.bin' - hash: '115d3e87b5ff2672' - delinks: overlays/ov006/delinks.txt - symbols: overlays/ov006/symbols.txt - relocations: overlays/ov006/relocs.txt -- id: 7 - name: ov007 - object: '../../../build/eur/build/arm9_ov007.bin' - hash: '8e23a366de0683e4' - delinks: overlays/ov007/delinks.txt - symbols: overlays/ov007/symbols.txt - relocations: overlays/ov007/relocs.txt -- id: 8 - name: ov008 - object: '../../../build/eur/build/arm9_ov008.bin' - hash: '30ab215f6960ff97' - delinks: overlays/ov008/delinks.txt - symbols: overlays/ov008/symbols.txt - relocations: overlays/ov008/relocs.txt -- id: 9 - name: ov009 - object: '../../../build/eur/build/arm9_ov009.bin' - hash: '6e007bd11ec5da0f' - delinks: overlays/ov009/delinks.txt - symbols: overlays/ov009/symbols.txt - relocations: overlays/ov009/relocs.txt -- id: 10 - name: ov010 - object: '../../../build/eur/build/arm9_ov010.bin' - hash: c70a28ae94ad8701 - delinks: overlays/ov010/delinks.txt - symbols: overlays/ov010/symbols.txt - relocations: overlays/ov010/relocs.txt -- id: 11 - name: ov011 - object: '../../../build/eur/build/arm9_ov011.bin' - hash: c1d84bfc16c5c8e7 - delinks: overlays/ov011/delinks.txt - symbols: overlays/ov011/symbols.txt - relocations: overlays/ov011/relocs.txt -- id: 12 - name: ov012 - object: '../../../build/eur/build/arm9_ov012.bin' - hash: ee9956da473d15e2 - delinks: overlays/ov012/delinks.txt - symbols: overlays/ov012/symbols.txt - relocations: overlays/ov012/relocs.txt -- id: 13 - name: ov013 - object: '../../../build/eur/build/arm9_ov013.bin' - hash: '65f932cb56e73077' - delinks: overlays/ov013/delinks.txt - symbols: overlays/ov013/symbols.txt - relocations: overlays/ov013/relocs.txt -- id: 14 - name: ov014 - object: '../../../build/eur/build/arm9_ov014.bin' - hash: b905fb7bf2dcc625 - delinks: overlays/ov014/delinks.txt - symbols: overlays/ov014/symbols.txt - relocations: overlays/ov014/relocs.txt -- id: 15 - name: ov015 - object: '../../../build/eur/build/arm9_ov015.bin' - hash: '50c156eb3066c0ef' - delinks: overlays/ov015/delinks.txt - symbols: overlays/ov015/symbols.txt - relocations: overlays/ov015/relocs.txt -- id: 16 - name: ov016 - object: '../../../build/eur/build/arm9_ov016.bin' - hash: '2190b080eef7060c' - delinks: overlays/ov016/delinks.txt - symbols: overlays/ov016/symbols.txt - relocations: overlays/ov016/relocs.txt -- id: 17 - name: ov017 - object: '../../../build/eur/build/arm9_ov017.bin' - hash: '93e90cb27e7d3ed3' - delinks: overlays/ov017/delinks.txt - symbols: overlays/ov017/symbols.txt - relocations: overlays/ov017/relocs.txt -- id: 18 - name: ov018 - object: '../../../build/eur/build/arm9_ov018.bin' - hash: '248b2fa38fb39695' - delinks: overlays/ov018/delinks.txt - symbols: overlays/ov018/symbols.txt - relocations: overlays/ov018/relocs.txt -- id: 19 - name: ov019 - object: '../../../build/eur/build/arm9_ov019.bin' - hash: a7493432680b204f - delinks: overlays/ov019/delinks.txt - symbols: overlays/ov019/symbols.txt - relocations: overlays/ov019/relocs.txt -- id: 20 - name: ov020 - object: '../../../build/eur/build/arm9_ov020.bin' - hash: db3c5ebc1e1009e7 - delinks: overlays/ov020/delinks.txt - symbols: overlays/ov020/symbols.txt - relocations: overlays/ov020/relocs.txt -- id: 21 - name: ov021 - object: '../../../build/eur/build/arm9_ov021.bin' - hash: dd77cc41e2846b61 - delinks: overlays/ov021/delinks.txt - symbols: overlays/ov021/symbols.txt - relocations: overlays/ov021/relocs.txt -- id: 22 - name: ov022 - object: '../../../build/eur/build/arm9_ov022.bin' - hash: '09a46cc8c442c08c' - delinks: overlays/ov022/delinks.txt - symbols: overlays/ov022/symbols.txt - relocations: overlays/ov022/relocs.txt -- id: 23 - name: ov023 - object: '../../../build/eur/build/arm9_ov023.bin' - hash: '38a4b7c22cee180e' - delinks: overlays/ov023/delinks.txt - symbols: overlays/ov023/symbols.txt - relocations: overlays/ov023/relocs.txt -- id: 24 - name: ov024 - object: '../../../build/eur/build/arm9_ov024.bin' - hash: '2dcf5f2e79ec062e' - delinks: overlays/ov024/delinks.txt - symbols: overlays/ov024/symbols.txt - relocations: overlays/ov024/relocs.txt -- id: 25 - name: ov025 - object: '../../../build/eur/build/arm9_ov025.bin' - hash: '4f75d06dbd145a96' - delinks: overlays/ov025/delinks.txt - symbols: overlays/ov025/symbols.txt - relocations: overlays/ov025/relocs.txt -- id: 26 - name: ov026 - object: '../../../build/eur/build/arm9_ov026.bin' - hash: c2c86d2bae03ffca - delinks: overlays/ov026/delinks.txt - symbols: overlays/ov026/symbols.txt - relocations: overlays/ov026/relocs.txt -- id: 27 - name: ov027 - object: '../../../build/eur/build/arm9_ov027.bin' - hash: fe32f521471c5cbe - delinks: overlays/ov027/delinks.txt - symbols: overlays/ov027/symbols.txt - relocations: overlays/ov027/relocs.txt -- id: 28 - name: ov028 - object: '../../../build/eur/build/arm9_ov028.bin' - hash: d24209285f1b722b - delinks: overlays/ov028/delinks.txt - symbols: overlays/ov028/symbols.txt - relocations: overlays/ov028/relocs.txt -- id: 29 - name: ov029 - object: '../../../build/eur/build/arm9_ov029.bin' - hash: e2eec8c423dd66a3 - delinks: overlays/ov029/delinks.txt - symbols: overlays/ov029/symbols.txt - relocations: overlays/ov029/relocs.txt -- id: 30 - name: ov030 - object: '../../../build/eur/build/arm9_ov030.bin' - hash: ca7780147af5384f - delinks: overlays/ov030/delinks.txt - symbols: overlays/ov030/symbols.txt - relocations: overlays/ov030/relocs.txt -- id: 31 - name: ov031 - object: '../../../build/eur/build/arm9_ov031.bin' - hash: cbf1734135ebba3f - delinks: overlays/ov031/delinks.txt - symbols: overlays/ov031/symbols.txt - relocations: overlays/ov031/relocs.txt -- id: 32 - name: ov032 - object: '../../../build/eur/build/arm9_ov032.bin' - hash: '258ce1af02f7b5a6' - delinks: overlays/ov032/delinks.txt - symbols: overlays/ov032/symbols.txt - relocations: overlays/ov032/relocs.txt -- id: 33 - name: ov033 - object: '../../../build/eur/build/arm9_ov033.bin' - hash: c404595d8228183a - delinks: overlays/ov033/delinks.txt - symbols: overlays/ov033/symbols.txt - relocations: overlays/ov033/relocs.txt -- id: 34 - name: ov034 - object: '../../../build/eur/build/arm9_ov034.bin' - hash: e19ff275a277ac11 - delinks: overlays/ov034/delinks.txt - symbols: overlays/ov034/symbols.txt - relocations: overlays/ov034/relocs.txt -- id: 35 - name: ov035 - object: '../../../build/eur/build/arm9_ov035.bin' - hash: '3c9638b03b55bb29' - delinks: overlays/ov035/delinks.txt - symbols: overlays/ov035/symbols.txt - relocations: overlays/ov035/relocs.txt -- id: 36 - name: ov036 - object: '../../../build/eur/build/arm9_ov036.bin' - hash: d6af105f1693ec24 - delinks: overlays/ov036/delinks.txt - symbols: overlays/ov036/symbols.txt - relocations: overlays/ov036/relocs.txt -- id: 37 - name: ov037 - object: '../../../build/eur/build/arm9_ov037.bin' - hash: '0ccdd2b5cc70efcd' - delinks: overlays/ov037/delinks.txt - symbols: overlays/ov037/symbols.txt - relocations: overlays/ov037/relocs.txt -- id: 38 - name: ov038 - object: '../../../build/eur/build/arm9_ov038.bin' - hash: '9c947d5315549a53' - delinks: overlays/ov038/delinks.txt - symbols: overlays/ov038/symbols.txt - relocations: overlays/ov038/relocs.txt -- id: 39 - name: ov039 - object: '../../../build/eur/build/arm9_ov039.bin' - hash: '923fe107606f302e' - delinks: overlays/ov039/delinks.txt - symbols: overlays/ov039/symbols.txt - relocations: overlays/ov039/relocs.txt -- id: 40 - name: ov040 - object: '../../../build/eur/build/arm9_ov040.bin' - hash: '57f79cb721138bd0' - delinks: overlays/ov040/delinks.txt - symbols: overlays/ov040/symbols.txt - relocations: overlays/ov040/relocs.txt -- id: 41 - name: ov041 - object: '../../../build/eur/build/arm9_ov041.bin' - hash: '36cda5a493c67d41' - delinks: overlays/ov041/delinks.txt - symbols: overlays/ov041/symbols.txt - relocations: overlays/ov041/relocs.txt -- id: 42 - name: ov042 - object: '../../../build/eur/build/arm9_ov042.bin' - hash: '32f20aac8a2b1f76' - delinks: overlays/ov042/delinks.txt - symbols: overlays/ov042/symbols.txt - relocations: overlays/ov042/relocs.txt -- id: 43 - name: ov043 - object: '../../../build/eur/build/arm9_ov043.bin' - hash: '2c7bccd5c998a3c3' - delinks: overlays/ov043/delinks.txt - symbols: overlays/ov043/symbols.txt - relocations: overlays/ov043/relocs.txt -- id: 44 - name: ov044 - object: '../../../build/eur/build/arm9_ov044.bin' - hash: b4506796097b96c4 - delinks: overlays/ov044/delinks.txt - symbols: overlays/ov044/symbols.txt - relocations: overlays/ov044/relocs.txt -- id: 45 - name: ov045 - object: '../../../build/eur/build/arm9_ov045.bin' - hash: ce029a99e6dfbeb0 - delinks: overlays/ov045/delinks.txt - symbols: overlays/ov045/symbols.txt - relocations: overlays/ov045/relocs.txt -- id: 46 - name: ov046 - object: '../../../build/eur/build/arm9_ov046.bin' - hash: ac82cb668500fc51 - delinks: overlays/ov046/delinks.txt - symbols: overlays/ov046/symbols.txt - relocations: overlays/ov046/relocs.txt -- id: 47 - name: ov047 - object: '../../../build/eur/build/arm9_ov047.bin' - hash: a3d29795eaaa3de2 - delinks: overlays/ov047/delinks.txt - symbols: overlays/ov047/symbols.txt - relocations: overlays/ov047/relocs.txt -- id: 48 - name: ov048 - object: '../../../build/eur/build/arm9_ov048.bin' - hash: '7d8898dd35aa2444' - delinks: overlays/ov048/delinks.txt - symbols: overlays/ov048/symbols.txt - relocations: overlays/ov048/relocs.txt -- id: 49 - name: ov049 - object: '../../../build/eur/build/arm9_ov049.bin' - hash: '9b58fc999d7c7f2e' - delinks: overlays/ov049/delinks.txt - symbols: overlays/ov049/symbols.txt - relocations: overlays/ov049/relocs.txt -- id: 50 - name: ov050 - object: '../../../build/eur/build/arm9_ov050.bin' - hash: '2be32e40355f53fe' - delinks: overlays/ov050/delinks.txt - symbols: overlays/ov050/symbols.txt - relocations: overlays/ov050/relocs.txt -- id: 51 - name: ov051 - object: '../../../build/eur/build/arm9_ov051.bin' - hash: '59aa10bf16f262be' - delinks: overlays/ov051/delinks.txt - symbols: overlays/ov051/symbols.txt - relocations: overlays/ov051/relocs.txt -- id: 52 - name: ov052 - object: '../../../build/eur/build/arm9_ov052.bin' - hash: '942682f80405bb75' - delinks: overlays/ov052/delinks.txt - symbols: overlays/ov052/symbols.txt - relocations: overlays/ov052/relocs.txt -- id: 53 - name: ov053 - object: '../../../build/eur/build/arm9_ov053.bin' - hash: bf6a70199a6f5bd3 - delinks: overlays/ov053/delinks.txt - symbols: overlays/ov053/symbols.txt - relocations: overlays/ov053/relocs.txt -- id: 54 - name: ov054 - object: '../../../build/eur/build/arm9_ov054.bin' - hash: '5724e7aaff7630ec' - delinks: overlays/ov054/delinks.txt - symbols: overlays/ov054/symbols.txt - relocations: overlays/ov054/relocs.txt -- id: 55 - name: ov055 - object: '../../../build/eur/build/arm9_ov055.bin' - hash: '8a49fee3ba7d39d5' - delinks: overlays/ov055/delinks.txt - symbols: overlays/ov055/symbols.txt - relocations: overlays/ov055/relocs.txt -- id: 56 - name: ov056 - object: '../../../build/eur/build/arm9_ov056.bin' - hash: d97a709166a9a3ad - delinks: overlays/ov056/delinks.txt - symbols: overlays/ov056/symbols.txt - relocations: overlays/ov056/relocs.txt -- id: 57 - name: ov057 - object: '../../../build/eur/build/arm9_ov057.bin' - hash: '909f9c9bc9206bcf' - delinks: overlays/ov057/delinks.txt - symbols: overlays/ov057/symbols.txt - relocations: overlays/ov057/relocs.txt -- id: 58 - name: ov058 - object: '../../../build/eur/build/arm9_ov058.bin' - hash: '9e7b3969866f16a0' - delinks: overlays/ov058/delinks.txt - symbols: overlays/ov058/symbols.txt - relocations: overlays/ov058/relocs.txt -- id: 59 - name: ov059 - object: '../../../build/eur/build/arm9_ov059.bin' - hash: '78da375e188089fa' - delinks: overlays/ov059/delinks.txt - symbols: overlays/ov059/symbols.txt - relocations: overlays/ov059/relocs.txt -- id: 60 - name: ov060 - object: '../../../build/eur/build/arm9_ov060.bin' - hash: '134f11b632492d92' - delinks: overlays/ov060/delinks.txt - symbols: overlays/ov060/symbols.txt - relocations: overlays/ov060/relocs.txt -- id: 61 - name: ov061 - object: '../../../build/eur/build/arm9_ov061.bin' - hash: '1433471824240b78' - delinks: overlays/ov061/delinks.txt - symbols: overlays/ov061/symbols.txt - relocations: overlays/ov061/relocs.txt -- id: 62 - name: ov062 - object: '../../../build/eur/build/arm9_ov062.bin' - hash: '09619cead72bc614' - delinks: overlays/ov062/delinks.txt - symbols: overlays/ov062/symbols.txt - relocations: overlays/ov062/relocs.txt -- id: 63 - name: ov063 - object: '../../../build/eur/build/arm9_ov063.bin' - hash: da2ea100a49f5f78 - delinks: overlays/ov063/delinks.txt - symbols: overlays/ov063/symbols.txt - relocations: overlays/ov063/relocs.txt -- id: 64 - name: ov064 - object: '../../../build/eur/build/arm9_ov064.bin' - hash: '6c5c8bef7efca8f1' - delinks: overlays/ov064/delinks.txt - symbols: overlays/ov064/symbols.txt - relocations: overlays/ov064/relocs.txt -- id: 65 - name: ov065 - object: '../../../build/eur/build/arm9_ov065.bin' - hash: a7279a952fa2626c - delinks: overlays/ov065/delinks.txt - symbols: overlays/ov065/symbols.txt - relocations: overlays/ov065/relocs.txt -- id: 66 - name: ov066 - object: '../../../build/eur/build/arm9_ov066.bin' - hash: '7b837220bfd2d445' - delinks: overlays/ov066/delinks.txt - symbols: overlays/ov066/symbols.txt - relocations: overlays/ov066/relocs.txt -- id: 67 - name: ov067 - object: '../../../build/eur/build/arm9_ov067.bin' - hash: '3a6c7806918c2ac0' - delinks: overlays/ov067/delinks.txt - symbols: overlays/ov067/symbols.txt - relocations: overlays/ov067/relocs.txt -- id: 68 - name: ov068 - object: '../../../build/eur/build/arm9_ov068.bin' - hash: '83e4b34ce96804df' - delinks: overlays/ov068/delinks.txt - symbols: overlays/ov068/symbols.txt - relocations: overlays/ov068/relocs.txt -- id: 69 - name: ov069 - object: '../../../build/eur/build/arm9_ov069.bin' - hash: f5641d08eddec26e - delinks: overlays/ov069/delinks.txt - symbols: overlays/ov069/symbols.txt - relocations: overlays/ov069/relocs.txt -- id: 70 - name: ov070 - object: '../../../build/eur/build/arm9_ov070.bin' - hash: f1b36f87535de3ae - delinks: overlays/ov070/delinks.txt - symbols: overlays/ov070/symbols.txt - relocations: overlays/ov070/relocs.txt -- id: 71 - name: ov071 - object: '../../../build/eur/build/arm9_ov071.bin' - hash: bc3a0e9ccc7acbd2 - delinks: overlays/ov071/delinks.txt - symbols: overlays/ov071/symbols.txt - relocations: overlays/ov071/relocs.txt -- id: 72 - name: ov072 - object: '../../../build/eur/build/arm9_ov072.bin' - hash: '06579c4df825d7b3' - delinks: overlays/ov072/delinks.txt - symbols: overlays/ov072/symbols.txt - relocations: overlays/ov072/relocs.txt -- id: 73 - name: ov073 - object: '../../../build/eur/build/arm9_ov073.bin' - hash: '9fce7479029f7fd4' - delinks: overlays/ov073/delinks.txt - symbols: overlays/ov073/symbols.txt - relocations: overlays/ov073/relocs.txt -- id: 74 - name: ov074 - object: '../../../build/eur/build/arm9_ov074.bin' - hash: '49eea8810b5307df' - delinks: overlays/ov074/delinks.txt - symbols: overlays/ov074/symbols.txt - relocations: overlays/ov074/relocs.txt -- id: 75 - name: ov075 - object: '../../../build/eur/build/arm9_ov075.bin' - hash: a5a03a309d4614a3 - delinks: overlays/ov075/delinks.txt - symbols: overlays/ov075/symbols.txt - relocations: overlays/ov075/relocs.txt -- id: 76 - name: ov076 - object: '../../../build/eur/build/arm9_ov076.bin' - hash: a281993bb6cc2b08 - delinks: overlays/ov076/delinks.txt - symbols: overlays/ov076/symbols.txt - relocations: overlays/ov076/relocs.txt -- id: 77 - name: ov077 - object: '../../../build/eur/build/arm9_ov077.bin' - hash: '91827d457418d1ab' - delinks: overlays/ov077/delinks.txt - symbols: overlays/ov077/symbols.txt - relocations: overlays/ov077/relocs.txt -- id: 78 - name: ov078 - object: '../../../build/eur/build/arm9_ov078.bin' - hash: e02bef49903710b8 - delinks: overlays/ov078/delinks.txt - symbols: overlays/ov078/symbols.txt - relocations: overlays/ov078/relocs.txt -- id: 79 - name: ov079 - object: '../../../build/eur/build/arm9_ov079.bin' - hash: '2e5577f7ff8b9658' - delinks: overlays/ov079/delinks.txt - symbols: overlays/ov079/symbols.txt - relocations: overlays/ov079/relocs.txt -- id: 80 - name: ov080 - object: '../../../build/eur/build/arm9_ov080.bin' - hash: '08c4a768219f1fac' - delinks: overlays/ov080/delinks.txt - symbols: overlays/ov080/symbols.txt - relocations: overlays/ov080/relocs.txt -- id: 81 - name: ov081 - object: '../../../build/eur/build/arm9_ov081.bin' - hash: c71d649493d749df - delinks: overlays/ov081/delinks.txt - symbols: overlays/ov081/symbols.txt - relocations: overlays/ov081/relocs.txt -- id: 82 - name: ov082 - object: '../../../build/eur/build/arm9_ov082.bin' - hash: '1a9632fc762458f8' - delinks: overlays/ov082/delinks.txt - symbols: overlays/ov082/symbols.txt - relocations: overlays/ov082/relocs.txt -- id: 83 - name: ov083 - object: '../../../build/eur/build/arm9_ov083.bin' - hash: '5cef5c65fcc105de' - delinks: overlays/ov083/delinks.txt - symbols: overlays/ov083/symbols.txt - relocations: overlays/ov083/relocs.txt -- id: 84 - name: ov084 - object: '../../../build/eur/build/arm9_ov084.bin' - hash: '24d9625d5ab522f2' - delinks: overlays/ov084/delinks.txt - symbols: overlays/ov084/symbols.txt - relocations: overlays/ov084/relocs.txt -- id: 85 - name: ov085 - object: '../../../build/eur/build/arm9_ov085.bin' - hash: d051913cf991e71a - delinks: overlays/ov085/delinks.txt - symbols: overlays/ov085/symbols.txt - relocations: overlays/ov085/relocs.txt -- id: 86 - name: ov086 - object: '../../../build/eur/build/arm9_ov086.bin' - hash: a7f3fc55a9203fe2 - delinks: overlays/ov086/delinks.txt - symbols: overlays/ov086/symbols.txt - relocations: overlays/ov086/relocs.txt -- id: 87 - name: ov087 - object: '../../../build/eur/build/arm9_ov087.bin' - hash: a1a8a0216ae1aaa6 - delinks: overlays/ov087/delinks.txt - symbols: overlays/ov087/symbols.txt - relocations: overlays/ov087/relocs.txt -- id: 88 - name: ov088 - object: '../../../build/eur/build/arm9_ov088.bin' - hash: '178b5cb0a63e9459' - delinks: overlays/ov088/delinks.txt - symbols: overlays/ov088/symbols.txt - relocations: overlays/ov088/relocs.txt -- id: 89 - name: ov089 - object: '../../../build/eur/build/arm9_ov089.bin' - hash: afb7fb4bb697fa71 - delinks: overlays/ov089/delinks.txt - symbols: overlays/ov089/symbols.txt - relocations: overlays/ov089/relocs.txt -- id: 90 - name: ov090 - object: '../../../build/eur/build/arm9_ov090.bin' - hash: '85bbd6b4880294b4' - delinks: overlays/ov090/delinks.txt - symbols: overlays/ov090/symbols.txt - relocations: overlays/ov090/relocs.txt -- id: 91 - name: ov091 - object: '../../../build/eur/build/arm9_ov091.bin' - hash: '7c77109397e61553' - delinks: overlays/ov091/delinks.txt - symbols: overlays/ov091/symbols.txt - relocations: overlays/ov091/relocs.txt -- id: 92 - name: ov092 - object: '../../../build/eur/build/arm9_ov092.bin' - hash: f135d1e3d0ddb168 - delinks: overlays/ov092/delinks.txt - symbols: overlays/ov092/symbols.txt - relocations: overlays/ov092/relocs.txt -- id: 93 - name: ov093 - object: '../../../build/eur/build/arm9_ov093.bin' - hash: '53ed24b3265bd708' - delinks: overlays/ov093/delinks.txt - symbols: overlays/ov093/symbols.txt - relocations: overlays/ov093/relocs.txt -- id: 94 - name: ov094 - object: '../../../build/eur/build/arm9_ov094.bin' - hash: c59fdaee3c9719b9 - delinks: overlays/ov094/delinks.txt - symbols: overlays/ov094/symbols.txt - relocations: overlays/ov094/relocs.txt -- id: 95 - name: ov095 - object: '../../../build/eur/build/arm9_ov095.bin' - hash: '301caecfb0f32573' - delinks: overlays/ov095/delinks.txt - symbols: overlays/ov095/symbols.txt - relocations: overlays/ov095/relocs.txt -- id: 96 - name: ov096 - object: '../../../build/eur/build/arm9_ov096.bin' - hash: ef60d5fcec9f2cdf - delinks: overlays/ov096/delinks.txt - symbols: overlays/ov096/symbols.txt - relocations: overlays/ov096/relocs.txt -- id: 97 - name: ov097 - object: '../../../build/eur/build/arm9_ov097.bin' - hash: a3051d1c98a8cc28 - delinks: overlays/ov097/delinks.txt - symbols: overlays/ov097/symbols.txt - relocations: overlays/ov097/relocs.txt -- id: 98 - name: ov098 - object: '../../../build/eur/build/arm9_ov098.bin' - hash: ef744340921cc9c3 - delinks: overlays/ov098/delinks.txt - symbols: overlays/ov098/symbols.txt - relocations: overlays/ov098/relocs.txt -- id: 99 - name: ov099 - object: '../../../build/eur/build/arm9_ov099.bin' - hash: fdb60b0eab043576 - delinks: overlays/ov099/delinks.txt - symbols: overlays/ov099/symbols.txt - relocations: overlays/ov099/relocs.txt -- id: 100 - name: ov100 - object: '../../../build/eur/build/arm9_ov100.bin' - hash: a3051d1c98a8cc28 - delinks: overlays/ov100/delinks.txt - symbols: overlays/ov100/symbols.txt - relocations: overlays/ov100/relocs.txt -- id: 101 - name: ov101 - object: '../../../build/eur/build/arm9_ov101.bin' - hash: '7edc989f1232173f' - delinks: overlays/ov101/delinks.txt - symbols: overlays/ov101/symbols.txt - relocations: overlays/ov101/relocs.txt -- id: 102 - name: ov102 - object: '../../../build/eur/build/arm9_ov102.bin' - hash: e6ef52887814f70c - delinks: overlays/ov102/delinks.txt - symbols: overlays/ov102/symbols.txt - relocations: overlays/ov102/relocs.txt -- id: 103 - name: ov103 - object: '../../../build/eur/build/arm9_ov103.bin' - hash: c015064aac30546d - delinks: overlays/ov103/delinks.txt - symbols: overlays/ov103/symbols.txt - relocations: overlays/ov103/relocs.txt -- id: 104 - name: ov104 - object: '../../../build/eur/build/arm9_ov104.bin' - hash: '9979f3882e625301' - delinks: overlays/ov104/delinks.txt - symbols: overlays/ov104/symbols.txt - relocations: overlays/ov104/relocs.txt -- id: 105 - name: ov105 - object: '../../../build/eur/build/arm9_ov105.bin' - hash: c9cad1afb8ec4d1e - delinks: overlays/ov105/delinks.txt - symbols: overlays/ov105/symbols.txt - relocations: overlays/ov105/relocs.txt -- id: 106 - name: ov106 - object: '../../../build/eur/build/arm9_ov106.bin' - hash: '7ad2e80138b4ef7b' - delinks: overlays/ov106/delinks.txt - symbols: overlays/ov106/symbols.txt - relocations: overlays/ov106/relocs.txt -- id: 107 - name: ov107 - object: '../../../build/eur/build/arm9_ov107.bin' - hash: b238aaeb01bc4fcb - delinks: overlays/ov107/delinks.txt - symbols: overlays/ov107/symbols.txt - relocations: overlays/ov107/relocs.txt -- id: 108 - name: ov108 - object: '../../../build/eur/build/arm9_ov108.bin' - hash: '3f929370e0c63b44' - delinks: overlays/ov108/delinks.txt - symbols: overlays/ov108/symbols.txt - relocations: overlays/ov108/relocs.txt -- id: 109 - name: ov109 - object: '../../../build/eur/build/arm9_ov109.bin' - hash: '70917cde5a01d297' - delinks: overlays/ov109/delinks.txt - symbols: overlays/ov109/symbols.txt - relocations: overlays/ov109/relocs.txt -- id: 110 - name: ov110 - object: '../../../build/eur/build/arm9_ov110.bin' - hash: cfc784e076c3234b - delinks: overlays/ov110/delinks.txt - symbols: overlays/ov110/symbols.txt - relocations: overlays/ov110/relocs.txt -- id: 111 - name: ov111 - object: '../../../build/eur/build/arm9_ov111.bin' - hash: b378b46638d6b060 - delinks: overlays/ov111/delinks.txt - symbols: overlays/ov111/symbols.txt - relocations: overlays/ov111/relocs.txt -- id: 112 - name: ov112 - object: '../../../build/eur/build/arm9_ov112.bin' - hash: ec0d999711ea53f6 - delinks: overlays/ov112/delinks.txt - symbols: overlays/ov112/symbols.txt - relocations: overlays/ov112/relocs.txt -- id: 113 - name: ov113 - object: '../../../build/eur/build/arm9_ov113.bin' - hash: '4a330c44f116c4c4' - delinks: overlays/ov113/delinks.txt - symbols: overlays/ov113/symbols.txt - relocations: overlays/ov113/relocs.txt + - id: 0 + name: ov000 + object: ../../../build/eur/build/arm9_ov000.bin + hash: c0f1210794d27be6 + delinks: overlays/ov000/delinks.txt + symbols: overlays/ov000/symbols.txt + relocations: overlays/ov000/relocs.txt + - id: 1 + name: ov001 + object: ../../../build/eur/build/arm9_ov001.bin + hash: 7a5d2dace1b3944e + delinks: overlays/ov001/delinks.txt + symbols: overlays/ov001/symbols.txt + relocations: overlays/ov001/relocs.txt + - id: 2 + name: ov002 + object: ../../../build/eur/build/arm9_ov002.bin + hash: c9219a9fcbc23aa8 + delinks: overlays/ov002/delinks.txt + symbols: overlays/ov002/symbols.txt + relocations: overlays/ov002/relocs.txt + - id: 3 + name: ov003 + object: ../../../build/eur/build/arm9_ov003.bin + hash: 547135cd247127da + delinks: overlays/ov003/delinks.txt + symbols: overlays/ov003/symbols.txt + relocations: overlays/ov003/relocs.txt + - id: 4 + name: ov004 + object: ../../../build/eur/build/arm9_ov004.bin + hash: 1feed5ece654ece0 + delinks: overlays/ov004/delinks.txt + symbols: overlays/ov004/symbols.txt + relocations: overlays/ov004/relocs.txt + - id: 5 + name: ov005 + object: ../../../build/eur/build/arm9_ov005.bin + hash: b87dc816d9d5543b + delinks: overlays/ov005/delinks.txt + symbols: overlays/ov005/symbols.txt + relocations: overlays/ov005/relocs.txt + - id: 6 + name: ov006 + object: ../../../build/eur/build/arm9_ov006.bin + hash: 115d3e87b5ff2672 + delinks: overlays/ov006/delinks.txt + symbols: overlays/ov006/symbols.txt + relocations: overlays/ov006/relocs.txt + - id: 7 + name: ov007 + object: ../../../build/eur/build/arm9_ov007.bin + hash: 8e23a366de0683e4 + delinks: overlays/ov007/delinks.txt + symbols: overlays/ov007/symbols.txt + relocations: overlays/ov007/relocs.txt + - id: 8 + name: ov008 + object: ../../../build/eur/build/arm9_ov008.bin + hash: 30ab215f6960ff97 + delinks: overlays/ov008/delinks.txt + symbols: overlays/ov008/symbols.txt + relocations: overlays/ov008/relocs.txt + - id: 9 + name: ov009 + object: ../../../build/eur/build/arm9_ov009.bin + hash: 6e007bd11ec5da0f + delinks: overlays/ov009/delinks.txt + symbols: overlays/ov009/symbols.txt + relocations: overlays/ov009/relocs.txt + - id: 10 + name: ov010 + object: ../../../build/eur/build/arm9_ov010.bin + hash: c70a28ae94ad8701 + delinks: overlays/ov010/delinks.txt + symbols: overlays/ov010/symbols.txt + relocations: overlays/ov010/relocs.txt + - id: 11 + name: ov011 + object: ../../../build/eur/build/arm9_ov011.bin + hash: c1d84bfc16c5c8e7 + delinks: overlays/ov011/delinks.txt + symbols: overlays/ov011/symbols.txt + relocations: overlays/ov011/relocs.txt + - id: 12 + name: ov012 + object: ../../../build/eur/build/arm9_ov012.bin + hash: ee9956da473d15e2 + delinks: overlays/ov012/delinks.txt + symbols: overlays/ov012/symbols.txt + relocations: overlays/ov012/relocs.txt + - id: 13 + name: ov013 + object: ../../../build/eur/build/arm9_ov013.bin + hash: 65f932cb56e73077 + delinks: overlays/ov013/delinks.txt + symbols: overlays/ov013/symbols.txt + relocations: overlays/ov013/relocs.txt + - id: 14 + name: ov014 + object: ../../../build/eur/build/arm9_ov014.bin + hash: b905fb7bf2dcc625 + delinks: overlays/ov014/delinks.txt + symbols: overlays/ov014/symbols.txt + relocations: overlays/ov014/relocs.txt + - id: 15 + name: ov015 + object: ../../../build/eur/build/arm9_ov015.bin + hash: 50c156eb3066c0ef + delinks: overlays/ov015/delinks.txt + symbols: overlays/ov015/symbols.txt + relocations: overlays/ov015/relocs.txt + - id: 16 + name: ov016 + object: ../../../build/eur/build/arm9_ov016.bin + hash: 2190b080eef7060c + delinks: overlays/ov016/delinks.txt + symbols: overlays/ov016/symbols.txt + relocations: overlays/ov016/relocs.txt + - id: 17 + name: ov017 + object: ../../../build/eur/build/arm9_ov017.bin + hash: 93e90cb27e7d3ed3 + delinks: overlays/ov017/delinks.txt + symbols: overlays/ov017/symbols.txt + relocations: overlays/ov017/relocs.txt + - id: 18 + name: ov018 + object: ../../../build/eur/build/arm9_ov018.bin + hash: 248b2fa38fb39695 + delinks: overlays/ov018/delinks.txt + symbols: overlays/ov018/symbols.txt + relocations: overlays/ov018/relocs.txt + - id: 19 + name: ov019 + object: ../../../build/eur/build/arm9_ov019.bin + hash: a7493432680b204f + delinks: overlays/ov019/delinks.txt + symbols: overlays/ov019/symbols.txt + relocations: overlays/ov019/relocs.txt + - id: 20 + name: ov020 + object: ../../../build/eur/build/arm9_ov020.bin + hash: db3c5ebc1e1009e7 + delinks: overlays/ov020/delinks.txt + symbols: overlays/ov020/symbols.txt + relocations: overlays/ov020/relocs.txt + - id: 21 + name: ov021 + object: ../../../build/eur/build/arm9_ov021.bin + hash: dd77cc41e2846b61 + delinks: overlays/ov021/delinks.txt + symbols: overlays/ov021/symbols.txt + relocations: overlays/ov021/relocs.txt + - id: 22 + name: ov022 + object: ../../../build/eur/build/arm9_ov022.bin + hash: 09a46cc8c442c08c + delinks: overlays/ov022/delinks.txt + symbols: overlays/ov022/symbols.txt + relocations: overlays/ov022/relocs.txt + - id: 23 + name: ov023 + object: ../../../build/eur/build/arm9_ov023.bin + hash: 38a4b7c22cee180e + delinks: overlays/ov023/delinks.txt + symbols: overlays/ov023/symbols.txt + relocations: overlays/ov023/relocs.txt + - id: 24 + name: ov024 + object: ../../../build/eur/build/arm9_ov024.bin + hash: 2dcf5f2e79ec062e + delinks: overlays/ov024/delinks.txt + symbols: overlays/ov024/symbols.txt + relocations: overlays/ov024/relocs.txt + - id: 25 + name: ov025 + object: ../../../build/eur/build/arm9_ov025.bin + hash: 4f75d06dbd145a96 + delinks: overlays/ov025/delinks.txt + symbols: overlays/ov025/symbols.txt + relocations: overlays/ov025/relocs.txt + - id: 26 + name: ov026 + object: ../../../build/eur/build/arm9_ov026.bin + hash: c2c86d2bae03ffca + delinks: overlays/ov026/delinks.txt + symbols: overlays/ov026/symbols.txt + relocations: overlays/ov026/relocs.txt + - id: 27 + name: ov027 + object: ../../../build/eur/build/arm9_ov027.bin + hash: fe32f521471c5cbe + delinks: overlays/ov027/delinks.txt + symbols: overlays/ov027/symbols.txt + relocations: overlays/ov027/relocs.txt + - id: 28 + name: ov028 + object: ../../../build/eur/build/arm9_ov028.bin + hash: d24209285f1b722b + delinks: overlays/ov028/delinks.txt + symbols: overlays/ov028/symbols.txt + relocations: overlays/ov028/relocs.txt + - id: 29 + name: ov029 + object: ../../../build/eur/build/arm9_ov029.bin + hash: e2eec8c423dd66a3 + delinks: overlays/ov029/delinks.txt + symbols: overlays/ov029/symbols.txt + relocations: overlays/ov029/relocs.txt + - id: 30 + name: ov030 + object: ../../../build/eur/build/arm9_ov030.bin + hash: ca7780147af5384f + delinks: overlays/ov030/delinks.txt + symbols: overlays/ov030/symbols.txt + relocations: overlays/ov030/relocs.txt + - id: 31 + name: ov031 + object: ../../../build/eur/build/arm9_ov031.bin + hash: cbf1734135ebba3f + delinks: overlays/ov031/delinks.txt + symbols: overlays/ov031/symbols.txt + relocations: overlays/ov031/relocs.txt + - id: 32 + name: ov032 + object: ../../../build/eur/build/arm9_ov032.bin + hash: 258ce1af02f7b5a6 + delinks: overlays/ov032/delinks.txt + symbols: overlays/ov032/symbols.txt + relocations: overlays/ov032/relocs.txt + - id: 33 + name: ov033 + object: ../../../build/eur/build/arm9_ov033.bin + hash: c404595d8228183a + delinks: overlays/ov033/delinks.txt + symbols: overlays/ov033/symbols.txt + relocations: overlays/ov033/relocs.txt + - id: 34 + name: ov034 + object: ../../../build/eur/build/arm9_ov034.bin + hash: e19ff275a277ac11 + delinks: overlays/ov034/delinks.txt + symbols: overlays/ov034/symbols.txt + relocations: overlays/ov034/relocs.txt + - id: 35 + name: ov035 + object: ../../../build/eur/build/arm9_ov035.bin + hash: 3c9638b03b55bb29 + delinks: overlays/ov035/delinks.txt + symbols: overlays/ov035/symbols.txt + relocations: overlays/ov035/relocs.txt + - id: 36 + name: ov036 + object: ../../../build/eur/build/arm9_ov036.bin + hash: d6af105f1693ec24 + delinks: overlays/ov036/delinks.txt + symbols: overlays/ov036/symbols.txt + relocations: overlays/ov036/relocs.txt + - id: 37 + name: ov037 + object: ../../../build/eur/build/arm9_ov037.bin + hash: 0ccdd2b5cc70efcd + delinks: overlays/ov037/delinks.txt + symbols: overlays/ov037/symbols.txt + relocations: overlays/ov037/relocs.txt + - id: 38 + name: ov038 + object: ../../../build/eur/build/arm9_ov038.bin + hash: 9c947d5315549a53 + delinks: overlays/ov038/delinks.txt + symbols: overlays/ov038/symbols.txt + relocations: overlays/ov038/relocs.txt + - id: 39 + name: ov039 + object: ../../../build/eur/build/arm9_ov039.bin + hash: 923fe107606f302e + delinks: overlays/ov039/delinks.txt + symbols: overlays/ov039/symbols.txt + relocations: overlays/ov039/relocs.txt + - id: 40 + name: ov040 + object: ../../../build/eur/build/arm9_ov040.bin + hash: 57f79cb721138bd0 + delinks: overlays/ov040/delinks.txt + symbols: overlays/ov040/symbols.txt + relocations: overlays/ov040/relocs.txt + - id: 41 + name: ov041 + object: ../../../build/eur/build/arm9_ov041.bin + hash: 36cda5a493c67d41 + delinks: overlays/ov041/delinks.txt + symbols: overlays/ov041/symbols.txt + relocations: overlays/ov041/relocs.txt + - id: 42 + name: ov042 + object: ../../../build/eur/build/arm9_ov042.bin + hash: 32f20aac8a2b1f76 + delinks: overlays/ov042/delinks.txt + symbols: overlays/ov042/symbols.txt + relocations: overlays/ov042/relocs.txt + - id: 43 + name: ov043 + object: ../../../build/eur/build/arm9_ov043.bin + hash: 2c7bccd5c998a3c3 + delinks: overlays/ov043/delinks.txt + symbols: overlays/ov043/symbols.txt + relocations: overlays/ov043/relocs.txt + - id: 44 + name: ov044 + object: ../../../build/eur/build/arm9_ov044.bin + hash: b4506796097b96c4 + delinks: overlays/ov044/delinks.txt + symbols: overlays/ov044/symbols.txt + relocations: overlays/ov044/relocs.txt + - id: 45 + name: ov045 + object: ../../../build/eur/build/arm9_ov045.bin + hash: ce029a99e6dfbeb0 + delinks: overlays/ov045/delinks.txt + symbols: overlays/ov045/symbols.txt + relocations: overlays/ov045/relocs.txt + - id: 46 + name: ov046 + object: ../../../build/eur/build/arm9_ov046.bin + hash: ac82cb668500fc51 + delinks: overlays/ov046/delinks.txt + symbols: overlays/ov046/symbols.txt + relocations: overlays/ov046/relocs.txt + - id: 47 + name: ov047 + object: ../../../build/eur/build/arm9_ov047.bin + hash: a3d29795eaaa3de2 + delinks: overlays/ov047/delinks.txt + symbols: overlays/ov047/symbols.txt + relocations: overlays/ov047/relocs.txt + - id: 48 + name: ov048 + object: ../../../build/eur/build/arm9_ov048.bin + hash: 7d8898dd35aa2444 + delinks: overlays/ov048/delinks.txt + symbols: overlays/ov048/symbols.txt + relocations: overlays/ov048/relocs.txt + - id: 49 + name: ov049 + object: ../../../build/eur/build/arm9_ov049.bin + hash: 9b58fc999d7c7f2e + delinks: overlays/ov049/delinks.txt + symbols: overlays/ov049/symbols.txt + relocations: overlays/ov049/relocs.txt + - id: 50 + name: ov050 + object: ../../../build/eur/build/arm9_ov050.bin + hash: 2be32e40355f53fe + delinks: overlays/ov050/delinks.txt + symbols: overlays/ov050/symbols.txt + relocations: overlays/ov050/relocs.txt + - id: 51 + name: ov051 + object: ../../../build/eur/build/arm9_ov051.bin + hash: 59aa10bf16f262be + delinks: overlays/ov051/delinks.txt + symbols: overlays/ov051/symbols.txt + relocations: overlays/ov051/relocs.txt + - id: 52 + name: ov052 + object: ../../../build/eur/build/arm9_ov052.bin + hash: 942682f80405bb75 + delinks: overlays/ov052/delinks.txt + symbols: overlays/ov052/symbols.txt + relocations: overlays/ov052/relocs.txt + - id: 53 + name: ov053 + object: ../../../build/eur/build/arm9_ov053.bin + hash: bf6a70199a6f5bd3 + delinks: overlays/ov053/delinks.txt + symbols: overlays/ov053/symbols.txt + relocations: overlays/ov053/relocs.txt + - id: 54 + name: ov054 + object: ../../../build/eur/build/arm9_ov054.bin + hash: 5724e7aaff7630ec + delinks: overlays/ov054/delinks.txt + symbols: overlays/ov054/symbols.txt + relocations: overlays/ov054/relocs.txt + - id: 55 + name: ov055 + object: ../../../build/eur/build/arm9_ov055.bin + hash: 8a49fee3ba7d39d5 + delinks: overlays/ov055/delinks.txt + symbols: overlays/ov055/symbols.txt + relocations: overlays/ov055/relocs.txt + - id: 56 + name: ov056 + object: ../../../build/eur/build/arm9_ov056.bin + hash: d97a709166a9a3ad + delinks: overlays/ov056/delinks.txt + symbols: overlays/ov056/symbols.txt + relocations: overlays/ov056/relocs.txt + - id: 57 + name: ov057 + object: ../../../build/eur/build/arm9_ov057.bin + hash: 909f9c9bc9206bcf + delinks: overlays/ov057/delinks.txt + symbols: overlays/ov057/symbols.txt + relocations: overlays/ov057/relocs.txt + - id: 58 + name: ov058 + object: ../../../build/eur/build/arm9_ov058.bin + hash: 9e7b3969866f16a0 + delinks: overlays/ov058/delinks.txt + symbols: overlays/ov058/symbols.txt + relocations: overlays/ov058/relocs.txt + - id: 59 + name: ov059 + object: ../../../build/eur/build/arm9_ov059.bin + hash: 78da375e188089fa + delinks: overlays/ov059/delinks.txt + symbols: overlays/ov059/symbols.txt + relocations: overlays/ov059/relocs.txt + - id: 60 + name: ov060 + object: ../../../build/eur/build/arm9_ov060.bin + hash: 134f11b632492d92 + delinks: overlays/ov060/delinks.txt + symbols: overlays/ov060/symbols.txt + relocations: overlays/ov060/relocs.txt + - id: 61 + name: ov061 + object: ../../../build/eur/build/arm9_ov061.bin + hash: 1433471824240b78 + delinks: overlays/ov061/delinks.txt + symbols: overlays/ov061/symbols.txt + relocations: overlays/ov061/relocs.txt + - id: 62 + name: ov062 + object: ../../../build/eur/build/arm9_ov062.bin + hash: 09619cead72bc614 + delinks: overlays/ov062/delinks.txt + symbols: overlays/ov062/symbols.txt + relocations: overlays/ov062/relocs.txt + - id: 63 + name: ov063 + object: ../../../build/eur/build/arm9_ov063.bin + hash: da2ea100a49f5f78 + delinks: overlays/ov063/delinks.txt + symbols: overlays/ov063/symbols.txt + relocations: overlays/ov063/relocs.txt + - id: 64 + name: ov064 + object: ../../../build/eur/build/arm9_ov064.bin + hash: 6c5c8bef7efca8f1 + delinks: overlays/ov064/delinks.txt + symbols: overlays/ov064/symbols.txt + relocations: overlays/ov064/relocs.txt + - id: 65 + name: ov065 + object: ../../../build/eur/build/arm9_ov065.bin + hash: a7279a952fa2626c + delinks: overlays/ov065/delinks.txt + symbols: overlays/ov065/symbols.txt + relocations: overlays/ov065/relocs.txt + - id: 66 + name: ov066 + object: ../../../build/eur/build/arm9_ov066.bin + hash: 7b837220bfd2d445 + delinks: overlays/ov066/delinks.txt + symbols: overlays/ov066/symbols.txt + relocations: overlays/ov066/relocs.txt + - id: 67 + name: ov067 + object: ../../../build/eur/build/arm9_ov067.bin + hash: 3a6c7806918c2ac0 + delinks: overlays/ov067/delinks.txt + symbols: overlays/ov067/symbols.txt + relocations: overlays/ov067/relocs.txt + - id: 68 + name: ov068 + object: ../../../build/eur/build/arm9_ov068.bin + hash: 83e4b34ce96804df + delinks: overlays/ov068/delinks.txt + symbols: overlays/ov068/symbols.txt + relocations: overlays/ov068/relocs.txt + - id: 69 + name: ov069 + object: ../../../build/eur/build/arm9_ov069.bin + hash: f5641d08eddec26e + delinks: overlays/ov069/delinks.txt + symbols: overlays/ov069/symbols.txt + relocations: overlays/ov069/relocs.txt + - id: 70 + name: ov070 + object: ../../../build/eur/build/arm9_ov070.bin + hash: f1b36f87535de3ae + delinks: overlays/ov070/delinks.txt + symbols: overlays/ov070/symbols.txt + relocations: overlays/ov070/relocs.txt + - id: 71 + name: ov071 + object: ../../../build/eur/build/arm9_ov071.bin + hash: bc3a0e9ccc7acbd2 + delinks: overlays/ov071/delinks.txt + symbols: overlays/ov071/symbols.txt + relocations: overlays/ov071/relocs.txt + - id: 72 + name: ov072 + object: ../../../build/eur/build/arm9_ov072.bin + hash: 06579c4df825d7b3 + delinks: overlays/ov072/delinks.txt + symbols: overlays/ov072/symbols.txt + relocations: overlays/ov072/relocs.txt + - id: 73 + name: ov073 + object: ../../../build/eur/build/arm9_ov073.bin + hash: 9fce7479029f7fd4 + delinks: overlays/ov073/delinks.txt + symbols: overlays/ov073/symbols.txt + relocations: overlays/ov073/relocs.txt + - id: 74 + name: ov074 + object: ../../../build/eur/build/arm9_ov074.bin + hash: 49eea8810b5307df + delinks: overlays/ov074/delinks.txt + symbols: overlays/ov074/symbols.txt + relocations: overlays/ov074/relocs.txt + - id: 75 + name: ov075 + object: ../../../build/eur/build/arm9_ov075.bin + hash: a5a03a309d4614a3 + delinks: overlays/ov075/delinks.txt + symbols: overlays/ov075/symbols.txt + relocations: overlays/ov075/relocs.txt + - id: 76 + name: ov076 + object: ../../../build/eur/build/arm9_ov076.bin + hash: a281993bb6cc2b08 + delinks: overlays/ov076/delinks.txt + symbols: overlays/ov076/symbols.txt + relocations: overlays/ov076/relocs.txt + - id: 77 + name: ov077 + object: ../../../build/eur/build/arm9_ov077.bin + hash: 91827d457418d1ab + delinks: overlays/ov077/delinks.txt + symbols: overlays/ov077/symbols.txt + relocations: overlays/ov077/relocs.txt + - id: 78 + name: ov078 + object: ../../../build/eur/build/arm9_ov078.bin + hash: e02bef49903710b8 + delinks: overlays/ov078/delinks.txt + symbols: overlays/ov078/symbols.txt + relocations: overlays/ov078/relocs.txt + - id: 79 + name: ov079 + object: ../../../build/eur/build/arm9_ov079.bin + hash: 2e5577f7ff8b9658 + delinks: overlays/ov079/delinks.txt + symbols: overlays/ov079/symbols.txt + relocations: overlays/ov079/relocs.txt + - id: 80 + name: ov080 + object: ../../../build/eur/build/arm9_ov080.bin + hash: 08c4a768219f1fac + delinks: overlays/ov080/delinks.txt + symbols: overlays/ov080/symbols.txt + relocations: overlays/ov080/relocs.txt + - id: 81 + name: ov081 + object: ../../../build/eur/build/arm9_ov081.bin + hash: c71d649493d749df + delinks: overlays/ov081/delinks.txt + symbols: overlays/ov081/symbols.txt + relocations: overlays/ov081/relocs.txt + - id: 82 + name: ov082 + object: ../../../build/eur/build/arm9_ov082.bin + hash: 1a9632fc762458f8 + delinks: overlays/ov082/delinks.txt + symbols: overlays/ov082/symbols.txt + relocations: overlays/ov082/relocs.txt + - id: 83 + name: ov083 + object: ../../../build/eur/build/arm9_ov083.bin + hash: 5cef5c65fcc105de + delinks: overlays/ov083/delinks.txt + symbols: overlays/ov083/symbols.txt + relocations: overlays/ov083/relocs.txt + - id: 84 + name: ov084 + object: ../../../build/eur/build/arm9_ov084.bin + hash: 24d9625d5ab522f2 + delinks: overlays/ov084/delinks.txt + symbols: overlays/ov084/symbols.txt + relocations: overlays/ov084/relocs.txt + - id: 85 + name: ov085 + object: ../../../build/eur/build/arm9_ov085.bin + hash: d051913cf991e71a + delinks: overlays/ov085/delinks.txt + symbols: overlays/ov085/symbols.txt + relocations: overlays/ov085/relocs.txt + - id: 86 + name: ov086 + object: ../../../build/eur/build/arm9_ov086.bin + hash: a7f3fc55a9203fe2 + delinks: overlays/ov086/delinks.txt + symbols: overlays/ov086/symbols.txt + relocations: overlays/ov086/relocs.txt + - id: 87 + name: ov087 + object: ../../../build/eur/build/arm9_ov087.bin + hash: a1a8a0216ae1aaa6 + delinks: overlays/ov087/delinks.txt + symbols: overlays/ov087/symbols.txt + relocations: overlays/ov087/relocs.txt + - id: 88 + name: ov088 + object: ../../../build/eur/build/arm9_ov088.bin + hash: 178b5cb0a63e9459 + delinks: overlays/ov088/delinks.txt + symbols: overlays/ov088/symbols.txt + relocations: overlays/ov088/relocs.txt + - id: 89 + name: ov089 + object: ../../../build/eur/build/arm9_ov089.bin + hash: afb7fb4bb697fa71 + delinks: overlays/ov089/delinks.txt + symbols: overlays/ov089/symbols.txt + relocations: overlays/ov089/relocs.txt + - id: 90 + name: ov090 + object: ../../../build/eur/build/arm9_ov090.bin + hash: 85bbd6b4880294b4 + delinks: overlays/ov090/delinks.txt + symbols: overlays/ov090/symbols.txt + relocations: overlays/ov090/relocs.txt + - id: 91 + name: ov091 + object: ../../../build/eur/build/arm9_ov091.bin + hash: 7c77109397e61553 + delinks: overlays/ov091/delinks.txt + symbols: overlays/ov091/symbols.txt + relocations: overlays/ov091/relocs.txt + - id: 92 + name: ov092 + object: ../../../build/eur/build/arm9_ov092.bin + hash: f135d1e3d0ddb168 + delinks: overlays/ov092/delinks.txt + symbols: overlays/ov092/symbols.txt + relocations: overlays/ov092/relocs.txt + - id: 93 + name: ov093 + object: ../../../build/eur/build/arm9_ov093.bin + hash: 53ed24b3265bd708 + delinks: overlays/ov093/delinks.txt + symbols: overlays/ov093/symbols.txt + relocations: overlays/ov093/relocs.txt + - id: 94 + name: ov094 + object: ../../../build/eur/build/arm9_ov094.bin + hash: c59fdaee3c9719b9 + delinks: overlays/ov094/delinks.txt + symbols: overlays/ov094/symbols.txt + relocations: overlays/ov094/relocs.txt + - id: 95 + name: ov095 + object: ../../../build/eur/build/arm9_ov095.bin + hash: 301caecfb0f32573 + delinks: overlays/ov095/delinks.txt + symbols: overlays/ov095/symbols.txt + relocations: overlays/ov095/relocs.txt + - id: 96 + name: ov096 + object: ../../../build/eur/build/arm9_ov096.bin + hash: ef60d5fcec9f2cdf + delinks: overlays/ov096/delinks.txt + symbols: overlays/ov096/symbols.txt + relocations: overlays/ov096/relocs.txt + - id: 97 + name: ov097 + object: ../../../build/eur/build/arm9_ov097.bin + hash: a3051d1c98a8cc28 + delinks: overlays/ov097/delinks.txt + symbols: overlays/ov097/symbols.txt + relocations: overlays/ov097/relocs.txt + - id: 98 + name: ov098 + object: ../../../build/eur/build/arm9_ov098.bin + hash: ef744340921cc9c3 + delinks: overlays/ov098/delinks.txt + symbols: overlays/ov098/symbols.txt + relocations: overlays/ov098/relocs.txt + - id: 99 + name: ov099 + object: ../../../build/eur/build/arm9_ov099.bin + hash: fdb60b0eab043576 + delinks: overlays/ov099/delinks.txt + symbols: overlays/ov099/symbols.txt + relocations: overlays/ov099/relocs.txt + - id: 100 + name: ov100 + object: ../../../build/eur/build/arm9_ov100.bin + hash: a3051d1c98a8cc28 + delinks: overlays/ov100/delinks.txt + symbols: overlays/ov100/symbols.txt + relocations: overlays/ov100/relocs.txt + - id: 101 + name: ov101 + object: ../../../build/eur/build/arm9_ov101.bin + hash: 7edc989f1232173f + delinks: overlays/ov101/delinks.txt + symbols: overlays/ov101/symbols.txt + relocations: overlays/ov101/relocs.txt + - id: 102 + name: ov102 + object: ../../../build/eur/build/arm9_ov102.bin + hash: e6ef52887814f70c + delinks: overlays/ov102/delinks.txt + symbols: overlays/ov102/symbols.txt + relocations: overlays/ov102/relocs.txt + - id: 103 + name: ov103 + object: ../../../build/eur/build/arm9_ov103.bin + hash: c015064aac30546d + delinks: overlays/ov103/delinks.txt + symbols: overlays/ov103/symbols.txt + relocations: overlays/ov103/relocs.txt + - id: 104 + name: ov104 + object: ../../../build/eur/build/arm9_ov104.bin + hash: 9979f3882e625301 + delinks: overlays/ov104/delinks.txt + symbols: overlays/ov104/symbols.txt + relocations: overlays/ov104/relocs.txt + - id: 105 + name: ov105 + object: ../../../build/eur/build/arm9_ov105.bin + hash: c9cad1afb8ec4d1e + delinks: overlays/ov105/delinks.txt + symbols: overlays/ov105/symbols.txt + relocations: overlays/ov105/relocs.txt + - id: 106 + name: ov106 + object: ../../../build/eur/build/arm9_ov106.bin + hash: 7ad2e80138b4ef7b + delinks: overlays/ov106/delinks.txt + symbols: overlays/ov106/symbols.txt + relocations: overlays/ov106/relocs.txt + - id: 107 + name: ov107 + object: ../../../build/eur/build/arm9_ov107.bin + hash: b238aaeb01bc4fcb + delinks: overlays/ov107/delinks.txt + symbols: overlays/ov107/symbols.txt + relocations: overlays/ov107/relocs.txt + - id: 108 + name: ov108 + object: ../../../build/eur/build/arm9_ov108.bin + hash: 3f929370e0c63b44 + delinks: overlays/ov108/delinks.txt + symbols: overlays/ov108/symbols.txt + relocations: overlays/ov108/relocs.txt + - id: 109 + name: ov109 + object: ../../../build/eur/build/arm9_ov109.bin + hash: 70917cde5a01d297 + delinks: overlays/ov109/delinks.txt + symbols: overlays/ov109/symbols.txt + relocations: overlays/ov109/relocs.txt + - id: 110 + name: ov110 + object: ../../../build/eur/build/arm9_ov110.bin + hash: cfc784e076c3234b + delinks: overlays/ov110/delinks.txt + symbols: overlays/ov110/symbols.txt + relocations: overlays/ov110/relocs.txt + - id: 111 + name: ov111 + object: ../../../build/eur/build/arm9_ov111.bin + hash: b378b46638d6b060 + delinks: overlays/ov111/delinks.txt + symbols: overlays/ov111/symbols.txt + relocations: overlays/ov111/relocs.txt + - id: 112 + name: ov112 + object: ../../../build/eur/build/arm9_ov112.bin + hash: ec0d999711ea53f6 + delinks: overlays/ov112/delinks.txt + symbols: overlays/ov112/symbols.txt + relocations: overlays/ov112/relocs.txt + - id: 113 + name: ov113 + object: ../../../build/eur/build/arm9_ov113.bin + hash: 4a330c44f116c4c4 + delinks: overlays/ov113/delinks.txt + symbols: overlays/ov113/symbols.txt + relocations: overlays/ov113/relocs.txt diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index 738730c9..008a4094 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -73,14 +73,6 @@ libs/c/src/ansi_files.c: .data start:0x020446a8 end:0x0204478c .bss start:0x020517a0 end:0x02051aa0 -libs/c/src/float.c: - complete - .data start:0x0204478c end:0x02044790 - -libs/c/src/locale.c: - complete - .data start:0x02044790 end:0x020449ac - libs/c/src/arith.c: complete .text start:0x020338d4 end:0x020338ec @@ -109,6 +101,14 @@ libs/c/src/mem_funcs.c: complete .text start:0x02033d7c end:0x02033e28 +libs/c/src/float.c: + complete + .data start:0x0204478c end:0x02044790 + +libs/c/src/locale.c: + complete + .data start:0x02044790 end:0x020449ac + libs/c/src/secure_error.c: complete .text start:0x02033e28 end:0x02033e54 diff --git a/config/eur/arm9/dtcm/symbols.txt b/config/eur/arm9/dtcm/symbols.txt index 401c501f..8aa57f58 100644 --- a/config/eur/arm9/dtcm/symbols.txt +++ b/config/eur/arm9/dtcm/symbols.txt @@ -29,7 +29,6 @@ data_027e0200 kind:bss addr:0x027e0200 data_027e0204 kind:bss addr:0x027e0204 data_027e0208 kind:bss addr:0x027e0208 data_027e0210 kind:bss addr:0x027e0210 -data_027e0254 kind:bss addr:0x027e0254 data_027e0288 kind:bss addr:0x027e0288 data_027e02b0 kind:bss addr:0x027e02b0 gGeomMatrix kind:bss addr:0x027e02c4 diff --git a/config/eur/arm9/overlays/ov000/relocs.txt b/config/eur/arm9/overlays/ov000/relocs.txt index 4828787a..40f1b757 100644 --- a/config/eur/arm9/overlays/ov000/relocs.txt +++ b/config/eur/arm9/overlays/ov000/relocs.txt @@ -3316,6 +3316,9 @@ from:0x0207477c kind:arm_call to:0x02073148 module:overlay(0) from:0x02074784 kind:arm_call to:0x02011ff4 module:main from:0x0207479c kind:arm_call to:0x020616c8 module:overlay(0) from:0x020747a4 kind:arm_call to:0x02073148 module:overlay(0) +from:0x020747b8 kind:arm_branch to:0x02074768 module:overlay(0) +from:0x020747c8 kind:arm_branch to:0x0207475c module:overlay(0) +from:0x020747d8 kind:arm_branch to:0x02074790 module:overlay(0) from:0x020747f0 kind:arm_call to:0x02073154 module:overlay(0) from:0x02074814 kind:arm_call to:0x020166ac module:main from:0x02074820 kind:arm_call to:0x0206738c module:overlay(0) diff --git a/config/eur/arm9/overlays/ov001/delinks.txt b/config/eur/arm9/overlays/ov001/delinks.txt index 186440c4..3fc3a81b 100644 --- a/config/eur/arm9/overlays/ov001/delinks.txt +++ b/config/eur/arm9/overlays/ov001/delinks.txt @@ -1,9 +1,9 @@ .text start:0x020b6520 end:0x020c25c0 kind:code align:32 - .rodata start:0x020c25c0 end:0x020c2814 kind:rodata align:4 + .rodata start:0x020c25c0 end:0x020c2812 kind:rodata align:4 .init start:0x020c2814 end:0x020c2900 kind:code align:4 .ctor start:0x020c2900 end:0x020c2920 kind:rodata align:4 .data start:0x020c2940 end:0x020c2fe0 kind:data align:32 - .bss start:0x020c2fe0 end:0x020c4720 kind:bss align:32 + .bss start:0x020c2fe0 end:0x020c4704 kind:bss align:32 src/001_SceneInit/SceneInitializers_001.cpp: .text start:0x020b6520 end:0x020b7430 @@ -102,6 +102,11 @@ src/001_SceneInit/Player/PlayerLinkActor_001.cpp: complete .text start:0x020bc99c end:0x020bcca0 +libs/dsprot/src/extra.c: + complete + .rodata start:0x020c27f4 end:0x020c280c + .bss start:0x020c4700 end:0x020c4704 + src/001_SceneInit/UnkStruct_027e0ce0_1C_001.cpp: .text start:0x020bcca0 end:0x020bd514 .data start:0x020c2c70 end:0x020c2c80 @@ -191,7 +196,7 @@ src/001_SceneInit/code_020bfeec.cpp: src/001_SceneInit/Game/AdventureModeManager_001.cpp: .text start:0x020bff74 end:0x020c0944 - .rodata start:0x020c276c end:0x020c280c + .rodata start:0x020c276c end:0x020c27f4 src/001_SceneInit/Game/GameModeAdventure_001.cpp: complete @@ -204,3 +209,77 @@ src/001_SceneInit/code_020c099c.cpp: .init start:0x020c28f0 end:0x020c2900 .ctor start:0x020c2908 end:0x020c290c .data start:0x020c2fd4 end:0x020c2fe0 + +libs/dsprot/src/dsprot_main.c: + complete + .text start:0x020c0a24 end:0x020c0e34 + +libs/dsprot/src/dsprot_main_decryptor.s: + complete + .text start:0x020c0e34 end:0x020c1104 + +libs/dsprot/src/dsprot_main_decoder.s: + complete + .text start:0x020c1104 end:0x020c1150 + .ctor start:0x020c290c end:0x020c2910 + +libs/dsprot/src/integrity.c: + complete + .text start:0x020c1150 end:0x020c1528 + +libs/dsprot/src/integrity_decryptor.s: + complete + .text start:0x020c1528 end:0x020c1708 + +libs/dsprot/src/integrity_decoder.s: + complete + .text start:0x020c1708 end:0x020c1740 + .ctor start:0x020c2910 end:0x020c2914 + +libs/dsprot/src/encryptor.c: + complete + .text start:0x020c1740 end:0x020c19c4 + +libs/dsprot/src/encryptor_decryptor.s: + complete + .text start:0x020c19c4 end:0x020c19ec + .ctor start:0x020c2914 end:0x020c2918 + +libs/dsprot/src/mac_owner.c: + complete + .text start:0x020c19ec end:0x020c1b4c + .rodata start:0x020c280c end:0x020c2812 + +libs/dsprot/src/mac_owner_decryptor.s: + complete + .text start:0x020c1b4c end:0x020c1c3c + +libs/dsprot/src/rom_util.c: + complete + .text start:0x020c1c3c end:0x020c1e18 + +libs/dsprot/src/rom_util_decryptor.s: + complete + .text start:0x020c1e18 end:0x020c1f08 + +libs/dsprot/src/rom_test.c: + complete + .text start:0x020c1f08 end:0x020c2090 + +libs/dsprot/src/rom_test_decryptor.s: + complete + .text start:0x020c2090 end:0x020c2180 + +libs/dsprot/src/coretests_decoder.s: + complete + .text start:0x020c2180 end:0x020c21c8 + .ctor start:0x020c2918 end:0x020c291c + +libs/dsprot/src/rc4.c: + complete + .text start:0x020c21c8 end:0x020c2570 + +libs/dsprot/src/rc4_decoder.s: + complete + .text start:0x020c2570 end:0x020c25c0 + .ctor start:0x020c291c end:0x020c2920 diff --git a/config/eur/arm9/overlays/ov001/relocs.txt b/config/eur/arm9/overlays/ov001/relocs.txt index 2277ed73..85b4c8cc 100644 --- a/config/eur/arm9/overlays/ov001/relocs.txt +++ b/config/eur/arm9/overlays/ov001/relocs.txt @@ -1917,7 +1917,7 @@ from:0x020bf01a kind:thumb_call_arm to:0x02016694 module:main from:0x020bf020 kind:thumb_call_arm to:0x020bf08c module:overlay(1) from:0x020bf038 kind:thumb_call to:0x020a0460 module:overlay(0) from:0x020bf054 kind:arm_call to:0x0201667c module:main -from:0x020bf078 kind:load to:0x020c3f30 module:overlay(17) add:0x8 +from:0x020bf078 kind:load to:0x020c2fe4 add:0xf54 module:overlay(1) from:0x020bf088 kind:load to:0x027e0cec module:dtcm from:0x020bf09c kind:load to:0x027e0cec module:dtcm from:0x020bf0ac kind:load to:0x0204999c module:main @@ -2315,37 +2315,207 @@ from:0x020c09ee kind:thumb_call_arm to:0x020c1014 module:overlay(1) from:0x020c0a18 kind:load to:0x020c099d module:overlay(1) from:0x020c0a1c kind:load to:0x020c09c1 module:overlay(1) from:0x020c0a20 kind:load to:0x020c46fc module:overlay(1) -from:0x020c0c44 kind:load to:0x020c2928 module:overlays(2,4) -from:0x020c0e9c kind:load to:0x020c4701 module:overlay(1) -from:0x020c0f14 kind:load to:0x020c4701 module:overlay(1) -from:0x020c0f8c kind:load to:0x020c4701 module:overlay(1) -from:0x020c1004 kind:load to:0x020c4701 module:overlay(1) -from:0x020c107c kind:load to:0x020c4701 module:overlay(1) -from:0x020c10f4 kind:load to:0x020c4701 module:overlay(1) -from:0x020c111c kind:load to:0x020c22ac module:overlay(1) -from:0x020c1590 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1608 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1680 kind:load to:0x020c4701 module:overlay(1) -from:0x020c16f8 kind:load to:0x020c4701 module:overlay(1) +from:0x020c0ad0 kind:load to:0x020c2090 add:0x1400 module:overlay(1) +from:0x020c0ad4 kind:load to:0x020c1618 add:0x1400 module:overlay(1) +from:0x020c0b88 kind:load to:0x020c2108 add:0x1400 module:overlay(1) +from:0x020c0b8c kind:load to:0x020c1690 add:0x1400 module:overlay(1) +from:0x020c0c40 kind:load to:0x020c1b4c add:0x1400 module:overlay(1) +from:0x020c0c44 kind:load to:0x020c1528 add:0x1400 module:overlay(1) +from:0x020c0cf8 kind:load to:0x020c1bc4 add:0x1400 module:overlay(1) +from:0x020c0cfc kind:load to:0x020c15a0 add:0x1400 module:overlay(1) +from:0x020c0e54 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c0e80 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c0e9c kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c0ea0 kind:load to:0x020c4700 add:0x14ac module:overlay(1) +from:0x020c0ea4 kind:load to:0x020c4700 add:0x428b module:overlay(1) +from:0x020c0ea8 kind:load to:0x020c0a24 add:0x1400 module:overlay(1) +from:0x020c0ecc kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c0ef8 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c0f14 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c0f18 kind:load to:0x020c4700 add:0x14ac module:overlay(1) +from:0x020c0f1c kind:load to:0x020c4700 add:0x428b module:overlay(1) +from:0x020c0f20 kind:load to:0x020c0adc add:0x1400 module:overlay(1) +from:0x020c0f44 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c0f70 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c0f8c kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c0f90 kind:load to:0x020c4700 add:0x14ac module:overlay(1) +from:0x020c0f94 kind:load to:0x020c4700 add:0x428b module:overlay(1) +from:0x020c0f98 kind:load to:0x020c0b94 add:0x1400 module:overlay(1) +from:0x020c0fbc kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c0fe8 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1004 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1008 kind:load to:0x020c4700 add:0x14ac module:overlay(1) +from:0x020c100c kind:load to:0x020c4700 add:0x428b module:overlay(1) +from:0x020c1010 kind:load to:0x020c0c4c add:0x1400 module:overlay(1) +from:0x020c1034 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c1060 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c107c kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1080 kind:load to:0x020c4700 add:0x1494 module:overlay(1) +from:0x020c1084 kind:load to:0x020c4700 add:0x428b module:overlay(1) +from:0x020c1088 kind:load to:0x020c0d04 add:0x1400 module:overlay(1) +from:0x020c10ac kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c10d8 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c10f4 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c10f8 kind:load to:0x020c4700 add:0x1494 module:overlay(1) +from:0x020c10fc kind:load to:0x020c4700 add:0x428b module:overlay(1) +from:0x020c1100 kind:load to:0x020c0d9c add:0x1400 module:overlay(1) +from:0x020c110c kind:arm_call to:0x020c179c module:overlay(1) +from:0x020c1114 kind:load to:0x020c0e34 add:0x1400 module:overlay(1) +from:0x020c1118 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c111c kind:load to:0x020c0eac add:0x1400 module:overlay(1) +from:0x020c1120 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c1124 kind:load to:0x020c0f24 add:0x1400 module:overlay(1) +from:0x020c1128 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c112c kind:load to:0x020c0f9c add:0x1400 module:overlay(1) +from:0x020c1130 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c1134 kind:load to:0x020c1014 add:0x1400 module:overlay(1) +from:0x020c1138 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c113c kind:load to:0x020c108c add:0x1400 module:overlay(1) +from:0x020c1140 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c114c kind:load to:0x020c27f4 add:0x1400 module:overlay(1) +from:0x020c1224 kind:load to:0x020c1b4c add:0x1400 module:overlay(1) +from:0x020c1338 kind:load to:0x020c1bc4 add:0x1400 module:overlay(1) +from:0x020c1410 kind:load to:0x020c2090 add:0x1400 module:overlay(1) +from:0x020c1524 kind:load to:0x020c2108 add:0x1400 module:overlay(1) +from:0x020c1548 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c1574 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1590 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1594 kind:load to:0x020c4700 add:0x14d4 module:overlay(1) +from:0x020c1598 kind:load to:0x020c4700 add:0xd228 module:overlay(1) +from:0x020c159c kind:load to:0x020c1150 add:0x1400 module:overlay(1) +from:0x020c15c0 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c15ec kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1608 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c160c kind:load to:0x020c4700 add:0x1510 module:overlay(1) +from:0x020c1610 kind:load to:0x020c4700 add:0xd228 module:overlay(1) +from:0x020c1614 kind:load to:0x020c1228 add:0x1400 module:overlay(1) +from:0x020c1638 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c1664 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1680 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1684 kind:load to:0x020c4700 add:0x14d4 module:overlay(1) +from:0x020c1688 kind:load to:0x020c4700 add:0xd228 module:overlay(1) +from:0x020c168c kind:load to:0x020c133c add:0x1400 module:overlay(1) +from:0x020c16b0 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c16dc kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c16f8 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c16fc kind:load to:0x020c4700 add:0x1510 module:overlay(1) +from:0x020c1700 kind:load to:0x020c4700 add:0xd228 module:overlay(1) +from:0x020c1704 kind:load to:0x020c1414 add:0x1400 module:overlay(1) +from:0x020c1710 kind:arm_call to:0x020c179c module:overlay(1) from:0x020c1718 kind:load to:0x020c1528 add:0x1400 module:overlay(1) +from:0x020c171c kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c1720 kind:load to:0x020c15a0 add:0x1400 module:overlay(1) +from:0x020c1724 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c1728 kind:load to:0x020c1618 add:0x1400 module:overlay(1) +from:0x020c172c kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c1730 kind:load to:0x020c1690 add:0x1400 module:overlay(1) +from:0x020c1734 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c174c kind:arm_call to:0x02027654 module:main +from:0x020c1758 kind:arm_call to:0x02027690 module:main +from:0x020c17e4 kind:arm_call to:0x020c1760 module:overlay(1) +from:0x020c1890 kind:arm_call to:0x020c1740 module:overlay(1) from:0x020c18a4 kind:load to:0x020c4700 module:overlay(1) +from:0x020c1914 kind:arm_call to:0x020c2518 module:overlay(1) +from:0x020c1920 kind:arm_call to:0x020c1740 module:overlay(1) from:0x020c1930 kind:load to:0x020c4700 module:overlay(1) +from:0x020c19a4 kind:arm_call to:0x020c24c0 module:overlay(1) +from:0x020c19b0 kind:arm_call to:0x020c1740 module:overlay(1) from:0x020c19c0 kind:load to:0x020c4700 module:overlay(1) +from:0x020c19cc kind:arm_call to:0x020c179c module:overlay(1) +from:0x020c19d4 kind:load to:0x020c1934 add:0x1400 module:overlay(1) +from:0x020c19d8 kind:load to:0x020c4700 add:0x148c module:overlay(1) +from:0x020c19dc kind:load to:0x020c18ac add:0x1400 module:overlay(1) +from:0x020c19e0 kind:load to:0x020c4700 add:0x1484 module:overlay(1) +from:0x020c19f8 kind:arm_call to:0x020282f4 module:main +from:0x020c1a34 kind:arm_call to:0x02028310 module:main from:0x020c1a98 kind:load to:0x020c280c module:overlay(1) +from:0x020c1aa8 kind:arm_call to:0x020282f4 module:main +from:0x020c1ae4 kind:arm_call to:0x02028310 module:main from:0x020c1b48 kind:load to:0x020c280c module:overlay(1) -from:0x020c1bb4 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1bbc kind:load to:0x020d22ea module:overlay(19) -from:0x020c1c2c kind:load to:0x020c4701 module:overlay(1) -from:0x020c1c34 kind:load to:0x020d22ea module:overlay(19) -from:0x020c1e80 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1e88 kind:load to:0x020d22ea module:overlay(19) -from:0x020c1ef8 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1f00 kind:load to:0x020d22ea module:overlay(19) -from:0x020c20f8 kind:load to:0x020c4701 module:overlay(1) -from:0x020c2100 kind:load to:0x020d22ea module:overlay(19) -from:0x020c2170 kind:load to:0x020c4701 module:overlay(1) -from:0x020c2178 kind:load to:0x020d22ea module:overlay(19) -from:0x020c258c kind:load to:0x020c5b4c module:overlay(20) +from:0x020c1b6c kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c1b98 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1bb4 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1bb8 kind:load to:0x020c4700 add:0x14ac module:overlay(1) +from:0x020c1bbc kind:load to:0x020c4700 add:0xdbea module:overlay(1) +from:0x020c1bc0 kind:load to:0x020c19ec add:0x1400 module:overlay(1) +from:0x020c1be4 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c1c10 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1c2c kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1c30 kind:load to:0x020c4700 add:0x14ac module:overlay(1) +from:0x020c1c34 kind:load to:0x020c4700 add:0xdbea module:overlay(1) +from:0x020c1c38 kind:load to:0x020c1a9c add:0x1400 module:overlay(1) +from:0x020c1c50 kind:arm_call to:0x02026738 module:main +from:0x020c1c60 kind:arm_call to:0x02030d10 module:main +from:0x020c1da4 kind:arm_call to:0x02030d2c module:main +from:0x020c1dac kind:arm_call to:0x02026790 module:main +from:0x020c1e38 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c1e64 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1e80 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1e84 kind:load to:0x020c4700 add:0x157c module:overlay(1) +from:0x020c1e88 kind:load to:0x020c4700 add:0xdbea module:overlay(1) +from:0x020c1e8c kind:load to:0x020c1c3c add:0x1400 module:overlay(1) +from:0x020c1eb0 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c1edc kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c1ef8 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c1efc kind:load to:0x020c4700 add:0x1454 module:overlay(1) +from:0x020c1f00 kind:load to:0x020c4700 add:0xdbea module:overlay(1) +from:0x020c1f04 kind:load to:0x020c1dc0 add:0x1400 module:overlay(1) +from:0x020c1f3c kind:arm_call to:0x020c1e18 module:overlay(1) +from:0x020c1f48 kind:arm_call to:0x020c1e90 module:overlay(1) +from:0x020c2000 kind:arm_call to:0x020c1e18 module:overlay(1) +from:0x020c200c kind:arm_call to:0x020c1e90 module:overlay(1) +from:0x020c20b0 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c20dc kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c20f8 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c20fc kind:load to:0x020c4700 add:0x14c4 module:overlay(1) +from:0x020c2100 kind:load to:0x020c4700 add:0xdbea module:overlay(1) +from:0x020c2104 kind:load to:0x020c1f08 add:0x1400 module:overlay(1) +from:0x020c2128 kind:arm_call to:0x020c18ac module:overlay(1) +from:0x020c2154 kind:arm_call to:0x020c1934 module:overlay(1) +from:0x020c2170 kind:load to:0x020c4700 add:0x1 module:overlay(1) +from:0x020c2174 kind:load to:0x020c4700 add:0x14c4 module:overlay(1) +from:0x020c2178 kind:load to:0x020c4700 add:0xdbea module:overlay(1) +from:0x020c217c kind:load to:0x020c1fcc add:0x1400 module:overlay(1) +from:0x020c2188 kind:arm_call to:0x020c179c module:overlay(1) +from:0x020c2190 kind:load to:0x020c2090 add:0x1400 module:overlay(1) +from:0x020c2194 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c2198 kind:load to:0x020c2108 add:0x1400 module:overlay(1) +from:0x020c219c kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c21a0 kind:load to:0x020c1b4c add:0x1400 module:overlay(1) +from:0x020c21a4 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c21a8 kind:load to:0x020c1bc4 add:0x1400 module:overlay(1) +from:0x020c21ac kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c21b0 kind:load to:0x020c1e18 add:0x1400 module:overlay(1) +from:0x020c21b4 kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c21b8 kind:load to:0x020c1e90 add:0x1400 module:overlay(1) +from:0x020c21bc kind:load to:0x020c4700 add:0x1468 module:overlay(1) +from:0x020c22d8 kind:arm_call to:0x020c2288 module:overlay(1) +from:0x020c22f4 kind:arm_call to:0x020c1760 module:overlay(1) +from:0x020c2364 kind:arm_call to:0x020c223c module:overlay(1) +from:0x020c2378 kind:arm_call to:0x020c223c module:overlay(1) +from:0x020c23e0 kind:arm_call to:0x020c2288 module:overlay(1) +from:0x020c23fc kind:arm_call to:0x020c1760 module:overlay(1) +from:0x020c246c kind:arm_call to:0x020c223c module:overlay(1) +from:0x020c2480 kind:arm_call to:0x020c223c module:overlay(1) +from:0x020c24e4 kind:arm_call to:0x020c21c8 module:overlay(1) +from:0x020c24f8 kind:arm_call to:0x020c22ac module:overlay(1) +from:0x020c253c kind:arm_call to:0x020c21c8 module:overlay(1) +from:0x020c2550 kind:arm_call to:0x020c23b4 module:overlay(1) +from:0x020c2578 kind:arm_call to:0x020c179c module:overlay(1) +from:0x020c2580 kind:load to:0x020c21c8 add:0x1400 module:overlay(1) +from:0x020c2584 kind:load to:0x020c4700 add:0x1474 module:overlay(1) +from:0x020c2588 kind:load to:0x020c223c add:0x1400 module:overlay(1) +from:0x020c258c kind:load to:0x020c4700 add:0x144c module:overlay(1) +from:0x020c2590 kind:load to:0x020c2288 add:0x1400 module:overlay(1) +from:0x020c2594 kind:load to:0x020c4700 add:0x1424 module:overlay(1) +from:0x020c2598 kind:load to:0x020c22ac add:0x1400 module:overlay(1) +from:0x020c259c kind:load to:0x020c4700 add:0x1508 module:overlay(1) +from:0x020c25a0 kind:load to:0x020c23b4 add:0x1400 module:overlay(1) +from:0x020c25a4 kind:load to:0x020c4700 add:0x1508 module:overlay(1) +from:0x020c25a8 kind:load to:0x020c24c0 add:0x1400 module:overlay(1) +from:0x020c25ac kind:load to:0x020c4700 add:0x1458 module:overlay(1) +from:0x020c25b0 kind:load to:0x020c2518 add:0x1400 module:overlay(1) +from:0x020c25b4 kind:load to:0x020c4700 add:0x1458 module:overlay(1) from:0x020c2822 kind:thumb_call to:0x020b7430 module:overlay(1) from:0x020c2830 kind:load to:0x020c2fe0 module:overlay(1) from:0x020c2834 kind:load to:0x020c2fe4 module:overlay(1) @@ -2364,6 +2534,11 @@ from:0x020c28fc kind:load to:0x020c2fd4 module:overlay(1) from:0x020c2900 kind:load to:0x020c2815 module:overlay(1) from:0x020c2904 kind:load to:0x020c2839 module:overlay(1) from:0x020c2908 kind:load to:0x020c28f1 module:overlay(1) +from:0x020c290c kind:load to:0x020c1104 module:overlay(1) +from:0x020c2910 kind:load to:0x020c1708 module:overlay(1) +from:0x020c2914 kind:load to:0x020c19c4 module:overlay(1) +from:0x020c2918 kind:load to:0x020c2180 module:overlay(1) +from:0x020c291c kind:load to:0x020c2570 module:overlay(1) from:0x020c29fc kind:load to:0x020b83f9 module:overlay(1) from:0x020c2a00 kind:load to:0x020b8491 module:overlay(1) from:0x020c2a04 kind:load to:0x020b85cd module:overlay(1) diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index e8a3ed42..992fd14d 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -442,55 +442,55 @@ _ZN17GameModeAdventureC1Ev kind:function(thumb,size=0x58) addr:0x020c0944 _Z19func_ov001_020c099cv kind:function(thumb,size=0x24) addr:0x020c099c _Z19func_ov001_020c09c0v kind:function(thumb,size=0x1c) addr:0x020c09c0 _ZN20GameModeDownloadPlay19func_ov001_020c09dcEv kind:function(thumb,size=0x48) addr:0x020c09dc -DetectFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c0a24 -DetectNotFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c0adc -DetectEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c0b94 -DetectNotEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c0c4c -DetectDummy kind:function(arm,size=0x98,unknown) addr:0x020c0d04 -DetectNotDummy kind:function(arm,size=0x98,unknown) addr:0x020c0d9c -DSProt_DetectFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c0e34 -DSProt_DetectNotFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c0eac -DSProt_DetectEmulator kind:function(arm,size=0x78,unknown) addr:0x020c0f24 -DSProt_DetectNotEmulator kind:function(arm,size=0x78,unknown) addr:0x020c0f9c -DSProt_DetectDummy kind:function(arm,size=0x78,unknown) addr:0x020c1014 -DSProt_DetectNotDummy kind:function(arm,size=0x78,unknown) addr:0x020c108c -NitroStaticInit kind:function(arm,size=0x4c,unknown) addr:0x020c1104 local -Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c1150 -Integrity_MACOwner_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c1228 -Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c133c -Integrity_ROMTest_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c1414 -RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c1528 -RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c15a0 -RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c1618 -RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c1690 -NitroStaticInit kind:function(arm,size=0x38,unknown) addr:0x020c1708 local -clearDataAndInstructionCache kind:function(arm,size=0x20,unknown) addr:0x020c1740 -Encryptor_CategorizeInstruction kind:function(arm,size=0x3c,unknown) addr:0x020c1760 -Encryptor_DecodeFunctionTable kind:function(arm,size=0x110,unknown) addr:0x020c179c -Encryptor_DecryptFunction kind:function(arm,size=0x88,unknown) addr:0x020c18ac -Encryptor_EncryptFunction kind:function(arm,size=0x90,unknown) addr:0x020c1934 -NitroStaticInit kind:function(arm,size=0x28,unknown) addr:0x020c19c4 local -MACOwner_IsBad kind:function(arm,size=0xb0,unknown) addr:0x020c19ec -MACOwner_IsGood kind:function(arm,size=0xb0,unknown) addr:0x020c1a9c -RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c1b4c -RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c1bc4 -ROMUtil_Read kind:function(arm,size=0x184,unknown) addr:0x020c1c3c -ROMUtil_CRC32 kind:function(arm,size=0x58,unknown) addr:0x020c1dc0 -RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,unknown) addr:0x020c1e18 -RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,unknown) addr:0x020c1e90 -ROMTest_IsBad kind:function(arm,size=0xc4,unknown) addr:0x020c1f08 -ROMTest_IsGood kind:function(arm,size=0xc4,unknown) addr:0x020c1fcc -RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c2090 -RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c2108 -NitroStaticInit kind:function(arm,size=0x48,unknown) addr:0x020c2180 local -RC4_Init kind:function(arm,size=0x74,unknown) addr:0x020c21c8 -RC4_Byte kind:function(arm,size=0x4c,unknown) addr:0x020c223c -RC4_InitSBox kind:function(arm,size=0x24,unknown) addr:0x020c2288 -RC4_EncryptInstructions kind:function(arm,size=0x108,unknown) addr:0x020c22ac -RC4_DecryptInstructions kind:function(arm,size=0x10c,unknown) addr:0x020c23b4 -RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c24c0 -RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c2518 -NitroStaticInit kind:function(arm,size=0x50,unknown) addr:0x020c2570 local +DetectFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0a24 +DetectNotFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0adc +DetectEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0b94 +DetectNotEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0c4c +DetectDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c0d04 +DetectNotDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c0d9c +DSProt_DetectFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0e34 +DSProt_DetectNotFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0eac +DSProt_DetectEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0f24 +DSProt_DetectNotEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0f9c +DSProt_DetectDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1014 +DSProt_DetectNotDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c108c +NitroStaticInit kind:function(arm,size=0x4c) addr:0x020c1104 local +Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c1150 +Integrity_MACOwner_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c1228 +Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c133c +Integrity_ROMTest_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c1414 +RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1528 +RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c15a0 +RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1618 +RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1690 +NitroStaticInit kind:function(arm,size=0x38) addr:0x020c1708 local +clearDataAndInstructionCache kind:function(arm,size=0x20) addr:0x020c1740 local +Encryptor_CategorizeInstruction kind:function(arm,size=0x3c) addr:0x020c1760 +Encryptor_DecodeFunctionTable kind:function(arm,size=0x110) addr:0x020c179c +Encryptor_DecryptFunction kind:function(arm,size=0x88,dsprot=0x84) addr:0x020c18ac +Encryptor_EncryptFunction kind:function(arm,size=0x90,dsprot=0x8c) addr:0x020c1934 +NitroStaticInit kind:function(arm,size=0x28) addr:0x020c19c4 local +MACOwner_IsBad kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c19ec +MACOwner_IsGood kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c1a9c +RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1b4c +RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1bc4 +ROMUtil_Read kind:function(arm,size=0x184,dsprot=(0x17c,0xc7ea)) addr:0x020c1c3c +ROMUtil_CRC32 kind:function(arm,size=0x58,dsprot=(0x54,0xc7ea)) addr:0x020c1dc0 +RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1e18 +RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1e90 +ROMTest_IsBad kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c1f08 +ROMTest_IsGood kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c1fcc +RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2090 +RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2108 +NitroStaticInit kind:function(arm,size=0x48) addr:0x020c2180 local +RC4_Init kind:function(arm,size=0x74,dsprot=0x74) addr:0x020c21c8 +RC4_Byte kind:function(arm,size=0x4c,dsprot=0x4c) addr:0x020c223c +RC4_InitSBox kind:function(arm,size=0x24,dsprot=0x24) addr:0x020c2288 +RC4_EncryptInstructions kind:function(arm,size=0x108,dsprot=0x108) addr:0x020c22ac +RC4_DecryptInstructions kind:function(arm,size=0x10c,dsprot=0x108) addr:0x020c23b4 +RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c24c0 +RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c2518 +NitroStaticInit kind:function(arm,size=0x50) addr:0x020c2570 local data_ov001_020c25c0 kind:data(any) addr:0x020c25c0 data_ov001_020c25d4 kind:data(any) addr:0x020c25d4 data_ov001_020c25fc kind:data(any) addr:0x020c25fc @@ -504,18 +504,19 @@ data_ov001_020c2750 kind:data(any) addr:0x020c2750 local data_ov001_020c275e kind:data(any) addr:0x020c275e local data_ov001_020c276c kind:data(any) addr:0x020c276c data_ov001_020c27a8 kind:data(any) addr:0x020c27a8 -bad_mac_addr kind:data(any) addr:0x020c280c +DSProt_Garbage kind:data(any) addr:0x020c27f4 +bad_mac_addr kind:data(any) addr:0x020c280c local __sinit_CourseList.cpp kind:function(thumb,size=0x24) addr:0x020c2814 local __sinit_UnkStruct_027e0cd8_0C_001.cpp kind:function(thumb,size=0xb8) addr:0x020c2838 __sinit_code_020c099c.cpp kind:function(thumb,size=0x10) addr:0x020c28f0 local .p__sinit_CourseList.cpp kind:data(word) addr:0x020c2900 local .p__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:data(word) addr:0x020c2904 .p__sinit_code_020c099c.cpp kind:data(word) addr:0x020c2908 local -.p__sinit_ov001_020c1104 kind:data(word) addr:0x020c290c local -.p__sinit_ov001_020c1708 kind:data(word) addr:0x020c2910 local -.p__sinit_ov001_020c19c4 kind:data(word) addr:0x020c2914 local -.p__sinit_ov001_020c2180 kind:data(word) addr:0x020c2918 local -.p__sinit_ov001_020c2570 kind:data(word) addr:0x020c291c local +NitroStaticInit_11 kind:data(word) addr:0x020c290c local +NitroStaticInit_8 kind:data(word) addr:0x020c2910 local +NitroStaticInit_6 kind:data(word) addr:0x020c2914 local +NitroStaticInit_10 kind:data(word) addr:0x020c2918 local +NitroStaticInit_11 kind:data(word) addr:0x020c291c local @433 kind:data(byte[22]) addr:0x020c2940 local @450 kind:data(byte[22]) addr:0x020c2958 local @3570 kind:data(byte[18]) addr:0x020c2970 local @@ -635,5 +636,4 @@ data_ov001_020c40f4 kind:bss addr:0x020c40f4 local data_ov001_020c46f4 kind:bss addr:0x020c46f4 local data_ov001_020c46f8 kind:bss addr:0x020c46f8 local data_ov001_020c46fc kind:bss addr:0x020c46fc local -data_ov001_020c4700 kind:bss addr:0x020c4700 -data_ov001_020c4701 kind:bss addr:0x020c4701 +DSProt_BSS kind:bss addr:0x020c4700 diff --git a/config/eur/arm9/overlays/ov019/symbols.txt b/config/eur/arm9/overlays/ov019/symbols.txt index fc95cb64..88b1eb10 100644 --- a/config/eur/arm9/overlays/ov019/symbols.txt +++ b/config/eur/arm9/overlays/ov019/symbols.txt @@ -31,7 +31,7 @@ _ZN25UnkSystem1_ov019_Derived18vfunc_1CEjii kind:function(arm,size=0x1ac) addr:0 _ZN25UnkSystem1_ov019_Derived18vfunc_20Eiii kind:function(arm,size=0x110) addr:0x020c5430 _ZN25UnkSystem1_ov019_Derived119func_ov019_020c5540Ebs kind:function(arm,size=0x50) addr:0x020c5540 _ZN25UnkSystem1_ov019_Derived119func_ov019_020c5590Eiii kind:function(arm,size=0x84) addr:0x020c5590 -_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c5614 +_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c5614 weak _ZN14FileSelectMainC1Ev kind:function(arm,size=0x9a0) addr:0x020c5630 _ZN25UnkSystem1_ov019_Derived3D1Ev kind:function(arm,size=0x14) addr:0x020c5fd0 _ZN14FileSelectMainD1Ev kind:function(arm,size=0x1f8) addr:0x020c5fe4 @@ -237,12 +237,12 @@ _ZN21FileSelectManager_16419func_ov019_020d02f4Ev kind:function(arm,size=0x28) a _ZN25UnkSystem1_ov019_Derived2C1Ev kind:function(arm,size=0x40) addr:0x020d031c _ZN25UnkSystem1_ov019_Derived28vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d035c _ZN25UnkSystem1_ov019_Derived28vfunc_1CEjii kind:function(arm,size=0x1f0) addr:0x020d03a4 -_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d0594 +_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d0594 weak _ZN25UnkSystem1_ov019_Derived3C2Ev kind:function(arm,size=0x4c) addr:0x020d05b0 _ZN25UnkSystem1_ov019_Derived38vfunc_04Ev kind:function(arm,size=0x14) addr:0x020d05fc _ZN25UnkSystem1_ov019_Derived38vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d0610 _ZN25UnkSystem1_ov019_Derived38vfunc_1CEjii kind:function(arm,size=0x1f8) addr:0x020d0658 -_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d0850 +_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d0850 weak _ZN11SaveManager19func_ov019_020d086cEt kind:function(arm,size=0x90) addr:0x020d086c _ZN11SaveManager19func_ov019_020d08fcEiM8SaveFileFvvE kind:function(arm,size=0x68) addr:0x020d08fc _ZN11SaveManager19func_ov019_020d0964Ev kind:function(arm,size=0x78) addr:0x020d0964 diff --git a/config/eur/arm9/overlays/ov024/delinks.txt b/config/eur/arm9/overlays/ov024/delinks.txt index 4e60ae3b..56dabda6 100644 --- a/config/eur/arm9/overlays/ov024/delinks.txt +++ b/config/eur/arm9/overlays/ov024/delinks.txt @@ -213,6 +213,10 @@ src/024_MainGame/Train/code_020d51dc_024.cpp: .data start:0x020d851c end:0x020d8550 .bss start:0x020d86a4 end:0x020d86a8 +src/024_MainGame/Train/data_ov024_020d8550.cpp: + complete + .data start:0x020d8550 end:0x020d85d4 + src/024_MainGame/Train/UnkTrainSystem1_024.cpp: complete .text start:0x020d54a0 end:0x020d58b4 @@ -248,10 +252,6 @@ src/024_MainGame/Actor/Actor_Derived1_EC_024.cpp: .text start:0x020d6650 end:0x020d6e9c .bss start:0x020d86b4 end:0x020d86b8 -src/024_MainGame/Train/data_ov024_020d8550.cpp: - complete - .data start:0x020d8550 end:0x020d85d4 - src/024_MainGame/Actor/ActorUnkOBPC.cpp: complete .text start:0x020d6e9c end:0x020d7318 diff --git a/config/eur/arm9/overlays/ov026/relocs.txt b/config/eur/arm9/overlays/ov026/relocs.txt index cc0489c8..ac86c67c 100644 --- a/config/eur/arm9/overlays/ov026/relocs.txt +++ b/config/eur/arm9/overlays/ov026/relocs.txt @@ -9197,6 +9197,9 @@ from:0x0212e438 kind:load to:0x0214173c module:overlay(26) from:0x0212e43c kind:load to:0x02138a14 module:overlay(26) from:0x0212e440 kind:load to:0x021417e0 module:overlay(26) from:0x0212e44c kind:arm_call to:0x0209790c module:overlay(0) +from:0x0212e460 kind:arm_branch to:0x0212bbf8 module:overlay(26) +from:0x0212e470 kind:arm_branch to:0x0212c478 module:overlay(26) +from:0x0212e480 kind:arm_branch to:0x0212bb68 module:overlay(26) from:0x0212e490 kind:arm_call to:0x0212fb14 module:overlay(26) from:0x0212e540 kind:arm_call to:0x0212fb24 module:overlay(26) from:0x0212e568 kind:arm_call to:0x0212e488 module:overlay(26) diff --git a/config/eur/arm9/overlays/ov026/symbols.txt b/config/eur/arm9/overlays/ov026/symbols.txt index da8d0bf3..76eeec1f 100644 --- a/config/eur/arm9/overlays/ov026/symbols.txt +++ b/config/eur/arm9/overlays/ov026/symbols.txt @@ -2860,7 +2860,7 @@ _ZTV19data_ov026_021384b4 kind:data(any) addr:0x021384b4 _ZTV19data_ov026_021384d8 kind:data(any) addr:0x021384d8 data_ov026_0213853c kind:data(any) addr:0x0213853c data_ov026_0213855c kind:data(any) addr:0x0213855c -_ZTV19data_ov026_0213855c kind:data(any) addr:0x0213855c ambiguous +_ZTV19data_ov026_0213855c kind:data(any) addr:0x0213855c _ZTV19data_ov026_02138578 kind:data(any) addr:0x02138578 _ZTV19data_ov026_02138594 kind:data(any) addr:0x02138594 ambiguous _ZTV19data_ov026_021385dc kind:data(any) addr:0x021385dc diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index bd78dc38..a88d02ac 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -1268,6 +1268,8 @@ from:0x020e450c kind:load to:0x027e09b8 module:dtcm from:0x020e4510 kind:load to:0x027e0d34 module:dtcm from:0x020e4550 kind:arm_call to:0x02098a88 module:overlay(0) from:0x020e4578 kind:arm_call to:0x02097724 module:overlay(0) +from:0x020e458c kind:arm_branch to:0x020e42f0 module:overlay(31) +from:0x020e459c kind:arm_branch to:0x020e42ac module:overlay(31) from:0x020e45ac kind:load to:0x021164f8 module:overlay(31) from:0x020e45c0 kind:arm_call to:0x02011f3c module:main from:0x020e45cc kind:arm_call to:0x020e4620 module:overlay(31) @@ -3823,6 +3825,12 @@ from:0x020fb26c kind:arm_call to:0x02011ff4 module:main from:0x020fb284 kind:arm_call to:0x020616c8 module:overlay(0) from:0x020fb28c kind:arm_call to:0x02098488 module:overlay(0) from:0x020fb2a0 kind:arm_call to:0x02097724 module:overlay(0) +from:0x020fb2b4 kind:arm_branch to:0x020fb250 module:overlay(31) +from:0x020fb2c4 kind:arm_branch to:0x020fae08 module:overlay(31) +from:0x020fb2d4 kind:arm_branch to:0x020fada8 module:overlay(31) +from:0x020fb2e4 kind:arm_branch to:0x020fadb4 module:overlay(31) +from:0x020fb2f4 kind:arm_branch to:0x020fad88 module:overlay(31) +from:0x020fb304 kind:arm_branch to:0x020fb278 module:overlay(31) from:0x020fb314 kind:load to:0x02116ff8 module:overlay(31) from:0x020fb328 kind:arm_call to:0x02011f3c module:main from:0x020fb334 kind:arm_call to:0x020fb364 module:overlay(31) @@ -3974,6 +3982,8 @@ from:0x020fd0a4 kind:arm_call to:0x0209d0ac module:overlay(0) from:0x020fd0bc kind:arm_call to:0x020a02d4 module:overlay(0) from:0x020fd0c4 kind:arm_call to:0x0209d0ac module:overlay(0) from:0x020fd0cc kind:arm_call to:0x02011ff4 module:main +from:0x020fd0e0 kind:arm_branch to:0x020fcf78 module:overlay(31) +from:0x020fd0f0 kind:arm_branch to:0x020fcf74 module:overlay(31) from:0x020fd100 kind:load to:0x0211728c module:overlay(31) from:0x020fd114 kind:arm_call to:0x02011f3c module:main from:0x020fd120 kind:arm_call to:0x020fd178 module:overlay(31) @@ -4159,6 +4169,8 @@ from:0x020fe6e4 kind:arm_call to:0x020a02d4 module:overlay(0) from:0x020fe6ec kind:arm_call to:0x0209d0ac module:overlay(0) from:0x020fe6f4 kind:arm_call to:0x02011ff4 module:main from:0x020fe708 kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x020fe71c kind:arm_branch to:0x020fd404 module:overlay(31) +from:0x020fe72c kind:arm_branch to:0x020fd3f8 module:overlay(31) from:0x020fe73c kind:load to:0x02117370 module:overlay(31) from:0x020fe750 kind:arm_call to:0x02011f3c module:main from:0x020fe75c kind:arm_call to:0x020fe7b8 module:overlay(31) @@ -4937,6 +4949,9 @@ from:0x02104ed0 kind:arm_call to:0x0207eca8 module:overlay(0) from:0x02104ed8 kind:arm_call to:0x02103158 module:overlay(31) from:0x02104ee0 kind:arm_call to:0x02011ff4 module:main from:0x02104ef4 kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x02104f08 kind:arm_branch to:0x02104a30 module:overlay(31) +from:0x02104f18 kind:arm_branch to:0x0210481c module:overlay(31) +from:0x02104f28 kind:arm_branch to:0x021047f8 module:overlay(31) from:0x02104f38 kind:load to:0x02117f3c module:overlay(31) from:0x02104f4c kind:arm_call to:0x02011f3c module:main from:0x02104f58 kind:arm_call to:0x02104fec module:overlay(31) @@ -5697,6 +5712,11 @@ from:0x0210ba34 kind:arm_call_thumb to:0x02057b8c module:overlay(0) from:0x0210ba3c kind:arm_call to:0x020616c8 module:overlay(0) from:0x0210ba44 kind:arm_call to:0x0209d0ac module:overlay(0) from:0x0210ba58 kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x0210ba6c kind:arm_branch to:0x0210b9f8 module:overlay(31) +from:0x0210ba7c kind:arm_branch to:0x0210b920 module:overlay(31) +from:0x0210ba8c kind:arm_branch to:0x0210b8a8 module:overlay(31) +from:0x0210ba9c kind:arm_branch to:0x0210ba28 module:overlay(31) +from:0x0210baac kind:arm_branch to:0x0210b9c0 module:overlay(31) from:0x0210babc kind:load to:0x02118da8 module:overlay(31) from:0x0210bad0 kind:arm_call to:0x02011f3c module:main from:0x0210badc kind:arm_call to:0x0210bb84 module:overlay(31) @@ -5867,6 +5887,9 @@ from:0x0210ce8c kind:arm_call_thumb to:0x02057b8c module:overlay(0) from:0x0210ce94 kind:arm_call to:0x0209d0ac module:overlay(0) from:0x0210ce9c kind:arm_call to:0x02011ff4 module:main from:0x0210ceb0 kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x0210cec4 kind:arm_branch to:0x0210caf0 module:overlay(31) +from:0x0210ced4 kind:arm_branch to:0x0210cb7c module:overlay(31) +from:0x0210cee4 kind:arm_branch to:0x0210cac4 module:overlay(31) from:0x0210cef4 kind:load to:0x02118eac module:overlay(31) from:0x0210cf08 kind:arm_call to:0x02011f3c module:main from:0x0210cf14 kind:arm_call to:0x0210d2d8 module:overlay(31) diff --git a/config/eur/arm9/overlays/ov033/relocs.txt b/config/eur/arm9/overlays/ov033/relocs.txt index 6a441292..2b180a0f 100644 --- a/config/eur/arm9/overlays/ov033/relocs.txt +++ b/config/eur/arm9/overlays/ov033/relocs.txt @@ -297,6 +297,12 @@ from:0x0211b6f0 kind:arm_call to:0x0205b224 module:overlay(0) from:0x0211b6fc kind:load to:0x021216bc module:overlay(33) from:0x0211b710 kind:arm_call to:0x02119044 module:overlay(33) from:0x0211b718 kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x0211b72c kind:arm_branch to:0x0211a144 module:overlay(33) +from:0x0211b73c kind:arm_branch to:0x0211b480 module:overlay(33) +from:0x0211b74c kind:arm_branch to:0x0211b43c module:overlay(33) +from:0x0211b75c kind:arm_branch to:0x0211b3cc module:overlay(33) +from:0x0211b76c kind:arm_branch to:0x0211b458 module:overlay(33) +from:0x0211b77c kind:arm_branch to:0x0211a0e4 module:overlay(33) from:0x0211b78c kind:load to:0x02122650 module:overlay(33) from:0x0211b7a0 kind:arm_call to:0x02011f3c module:main from:0x0211b7ac kind:arm_call to:0x0211b860 module:overlay(33) diff --git a/config/eur/arm9/overlays/ov034/symbols.txt b/config/eur/arm9/overlays/ov034/symbols.txt index b5b5ec59..ca7de099 100644 --- a/config/eur/arm9/overlays/ov034/symbols.txt +++ b/config/eur/arm9/overlays/ov034/symbols.txt @@ -246,7 +246,7 @@ __sinit_MapObjectUnkGELG.cpp kind:function(arm,size=0x84) addr:0x02122748 .p__sinit_MapObjectUnkWPHL.cpp kind:data(word) addr:0x021227e4 .p__sinit_MapObjectUnkGELG.cpp kind:data(word) addr:0x021227e8 data_ov034_02122808 kind:data(any) addr:0x02122808 -_ZTV19data_ov034_02122808 kind:data(any) addr:0x02122808 ambiguous +_ZTV19data_ov034_02122808 kind:data(any) addr:0x02122808 _ZTV19data_ov034_02122824 kind:data(any) addr:0x02122824 _ZTV19data_ov034_02122888 kind:data(any) addr:0x02122888 data_ov034_021228ac kind:data(any) addr:0x021228ac diff --git a/config/eur/arm9/overlays/ov036/relocs.txt b/config/eur/arm9/overlays/ov036/relocs.txt index 84656156..7ecb54c2 100644 --- a/config/eur/arm9/overlays/ov036/relocs.txt +++ b/config/eur/arm9/overlays/ov036/relocs.txt @@ -291,6 +291,16 @@ from:0x0211aea8 kind:arm_call to:0x020e7434 module:overlay(31) from:0x0211aeb0 kind:arm_call to:0x02011ff4 module:main from:0x0211aec8 kind:arm_call_thumb to:0x0209a248 module:overlay(0) from:0x0211aed0 kind:arm_call to:0x020e7434 module:overlay(31) +from:0x0211aee4 kind:arm_branch to:0x0211add0 module:overlay(36) +from:0x0211aef4 kind:arm_branch to:0x0211ab30 module:overlay(36) +from:0x0211af04 kind:arm_branch to:0x0211aa88 module:overlay(36) +from:0x0211af14 kind:arm_branch to:0x0211aa84 module:overlay(36) +from:0x0211af24 kind:arm_branch to:0x0211aa80 module:overlay(36) +from:0x0211af34 kind:arm_branch to:0x0211aa68 module:overlay(36) +from:0x0211af44 kind:arm_branch to:0x0211a93c module:overlay(36) +from:0x0211af54 kind:arm_branch to:0x0211a938 module:overlay(36) +from:0x0211af64 kind:arm_branch to:0x0211a934 module:overlay(36) +from:0x0211af74 kind:arm_branch to:0x0211ae00 module:overlay(36) from:0x0211af84 kind:load to:0x02122774 module:overlay(36) from:0x0211af98 kind:arm_call to:0x02011f3c module:main from:0x0211afa4 kind:arm_call to:0x0211b008 module:overlay(36) @@ -318,6 +328,8 @@ from:0x0211b1f8 kind:arm_call to:0x020616c8 module:overlay(0) from:0x0211b200 kind:arm_call_thumb to:0x0209a248 module:overlay(0) from:0x0211b208 kind:arm_call to:0x020e7434 module:overlay(31) from:0x0211b21c kind:arm_call to:0x0209790c module:overlay(0) +from:0x0211b230 kind:arm_branch to:0x0211b1ac module:overlay(36) +from:0x0211b240 kind:arm_branch to:0x0211b1e4 module:overlay(36) from:0x0211b250 kind:load to:0x0212285c module:overlay(36) from:0x0211b264 kind:arm_call to:0x02011f3c module:main from:0x0211b270 kind:arm_call to:0x0211b2d0 module:overlay(36) @@ -345,6 +357,8 @@ from:0x0211b4d0 kind:arm_call to:0x020616c8 module:overlay(0) from:0x0211b4d8 kind:arm_call_thumb to:0x0209a248 module:overlay(0) from:0x0211b4e0 kind:arm_call to:0x020e7434 module:overlay(31) from:0x0211b4f4 kind:arm_call to:0x0209790c module:overlay(0) +from:0x0211b508 kind:arm_branch to:0x0211b484 module:overlay(36) +from:0x0211b518 kind:arm_branch to:0x0211b4bc module:overlay(36) from:0x0211b528 kind:load to:0x02122944 module:overlay(36) from:0x0211b53c kind:arm_call to:0x02011f3c module:main from:0x0211b548 kind:arm_call to:0x0211b5ac module:overlay(36) @@ -372,6 +386,8 @@ from:0x0211b7bc kind:arm_call to:0x020616c8 module:overlay(0) from:0x0211b7c4 kind:arm_call_thumb to:0x0209a248 module:overlay(0) from:0x0211b7cc kind:arm_call to:0x020e7434 module:overlay(31) from:0x0211b7e0 kind:arm_call to:0x0209790c module:overlay(0) +from:0x0211b7f4 kind:arm_branch to:0x0211b770 module:overlay(36) +from:0x0211b804 kind:arm_branch to:0x0211b7a8 module:overlay(36) from:0x0211b814 kind:load to:0x02122a2c module:overlay(36) from:0x0211b828 kind:arm_call to:0x02011f3c module:main from:0x0211b834 kind:arm_call to:0x0211b898 module:overlay(36) @@ -397,6 +413,8 @@ from:0x0211ba84 kind:arm_call to:0x020616c8 module:overlay(0) from:0x0211ba8c kind:arm_call_thumb to:0x0209a248 module:overlay(0) from:0x0211ba94 kind:arm_call to:0x020e7434 module:overlay(31) from:0x0211baa8 kind:arm_call to:0x0209790c module:overlay(0) +from:0x0211babc kind:arm_branch to:0x0211ba38 module:overlay(36) +from:0x0211bacc kind:arm_branch to:0x0211ba70 module:overlay(36) from:0x0211badc kind:load to:0x02122b14 module:overlay(36) from:0x0211baf0 kind:arm_call to:0x02011f3c module:main from:0x0211bafc kind:arm_call to:0x0211bb64 module:overlay(36) @@ -424,6 +442,8 @@ from:0x0211bd90 kind:arm_call to:0x020616c8 module:overlay(0) from:0x0211bd98 kind:arm_call_thumb to:0x0209a248 module:overlay(0) from:0x0211bda0 kind:arm_call to:0x020e7434 module:overlay(31) from:0x0211bdb4 kind:arm_call to:0x0209790c module:overlay(0) +from:0x0211bdc8 kind:arm_branch to:0x0211bd44 module:overlay(36) +from:0x0211bdd8 kind:arm_branch to:0x0211bd7c module:overlay(36) from:0x0211bde8 kind:load to:0x02122bfc module:overlay(36) from:0x0211bdfc kind:arm_call to:0x02011f3c module:main from:0x0211be08 kind:arm_call to:0x0211becc module:overlay(36) @@ -463,6 +483,8 @@ from:0x0211c154 kind:arm_call to:0x020616c8 module:overlay(0) from:0x0211c15c kind:arm_call_thumb to:0x0209a248 module:overlay(0) from:0x0211c164 kind:arm_call to:0x020e7434 module:overlay(31) from:0x0211c178 kind:arm_call to:0x0209790c module:overlay(0) +from:0x0211c18c kind:arm_branch to:0x0211c108 module:overlay(36) +from:0x0211c19c kind:arm_branch to:0x0211c140 module:overlay(36) from:0x0211c1ac kind:load to:0x02122ce4 module:overlay(36) from:0x0211c1c0 kind:arm_call to:0x02011f3c module:main from:0x0211c1cc kind:arm_call to:0x0211c63c module:overlay(36) @@ -614,6 +636,16 @@ from:0x0211d74c kind:arm_call to:0x020a8768 module:overlay(0) from:0x0211d754 kind:load to:0x027e0ce0 module:dtcm from:0x0211d758 kind:load to:0x027e09b8 module:dtcm from:0x0211d7a4 kind:arm_call to:0x0209790c module:overlay(0) +from:0x0211d7b8 kind:arm_branch to:0x0211c794 module:overlay(36) +from:0x0211d7c8 kind:arm_branch to:0x0211c994 module:overlay(36) +from:0x0211d7d8 kind:arm_branch to:0x0211c984 module:overlay(36) +from:0x0211d7e8 kind:arm_branch to:0x0211c980 module:overlay(36) +from:0x0211d7f8 kind:arm_branch to:0x0211c97c module:overlay(36) +from:0x0211d808 kind:arm_branch to:0x0211c978 module:overlay(36) +from:0x0211d818 kind:arm_branch to:0x0211c974 module:overlay(36) +from:0x0211d828 kind:arm_branch to:0x0211c970 module:overlay(36) +from:0x0211d838 kind:arm_branch to:0x0211c96c module:overlay(36) +from:0x0211d848 kind:arm_branch to:0x0211c754 module:overlay(36) from:0x0211d858 kind:load to:0x02122dd8 module:overlay(36) from:0x0211d86c kind:arm_call to:0x02011f3c module:main from:0x0211d878 kind:arm_call to:0x0211d8a8 module:overlay(36) @@ -672,6 +704,16 @@ from:0x0211dd58 kind:arm_call to:0x0200f37c module:main from:0x0211dd60 kind:arm_call to:0x0200bed8 module:main from:0x0211dd68 kind:arm_call_thumb to:0x020156f4 module:main from:0x0211dd7c kind:arm_call to:0x02097724 module:overlay(0) +from:0x0211dd90 kind:arm_branch to:0x0211daf0 module:overlay(36) +from:0x0211dda0 kind:arm_branch to:0x0211dd08 module:overlay(36) +from:0x0211ddb0 kind:arm_branch to:0x0211dcf8 module:overlay(36) +from:0x0211ddc0 kind:arm_branch to:0x0211dcf4 module:overlay(36) +from:0x0211ddd0 kind:arm_branch to:0x0211dcf0 module:overlay(36) +from:0x0211dde0 kind:arm_branch to:0x0211dcec module:overlay(36) +from:0x0211ddf0 kind:arm_branch to:0x0211dce8 module:overlay(36) +from:0x0211de00 kind:arm_branch to:0x0211dce4 module:overlay(36) +from:0x0211de10 kind:arm_branch to:0x0211dce0 module:overlay(36) +from:0x0211de20 kind:arm_branch to:0x0211dac0 module:overlay(36) from:0x0211de30 kind:load to:0x02122e24 module:overlay(36) from:0x0211de44 kind:arm_call to:0x02011f3c module:main from:0x0211de50 kind:arm_call to:0x0211de80 module:overlay(36) diff --git a/config/eur/arm9/overlays/ov049/relocs.txt b/config/eur/arm9/overlays/ov049/relocs.txt index b11fbc06..c96a5fb4 100644 --- a/config/eur/arm9/overlays/ov049/relocs.txt +++ b/config/eur/arm9/overlays/ov049/relocs.txt @@ -477,6 +477,8 @@ from:0x0213441c kind:arm_call to:0x021343e4 module:overlay(49) from:0x02134424 kind:arm_call to:0x02098488 module:overlay(0) from:0x0213442c kind:arm_call to:0x02011ff4 module:main from:0x02134440 kind:arm_call to:0x02097724 module:overlay(0) +from:0x02134454 kind:arm_branch to:0x021342f0 module:overlay(49) +from:0x02134464 kind:arm_branch to:0x0213420c module:overlay(49) from:0x02134488 kind:load to:0x027e09b8 module:dtcm from:0x021344a8 kind:load to:0x027e09b8 module:dtcm from:0x021344c8 kind:load to:0x027e09b8 module:dtcm diff --git a/config/eur/arm9/overlays/ov056/relocs.txt b/config/eur/arm9/overlays/ov056/relocs.txt index f8d4ae75..892c610a 100644 --- a/config/eur/arm9/overlays/ov056/relocs.txt +++ b/config/eur/arm9/overlays/ov056/relocs.txt @@ -241,6 +241,16 @@ from:0x0213b21c kind:arm_call to:0x02078484 module:overlay(0) from:0x0213b228 kind:load to:0x027e09bc module:dtcm from:0x0213b230 kind:load to:0x027e09b8 module:dtcm from:0x0213b240 kind:arm_call to:0x02097724 module:overlay(0) +from:0x0213b254 kind:arm_branch to:0x0213aeac module:overlay(56) +from:0x0213b264 kind:arm_branch to:0x0213b234 module:overlay(56) +from:0x0213b274 kind:arm_branch to:0x0213b148 module:overlay(56) +from:0x0213b284 kind:arm_branch to:0x0213b144 module:overlay(56) +from:0x0213b294 kind:arm_branch to:0x0213b140 module:overlay(56) +from:0x0213b2a4 kind:arm_branch to:0x0213b13c module:overlay(56) +from:0x0213b2b4 kind:arm_branch to:0x0213b138 module:overlay(56) +from:0x0213b2c4 kind:arm_branch to:0x0213b134 module:overlay(56) +from:0x0213b2d4 kind:arm_branch to:0x0213b0e4 module:overlay(56) +from:0x0213b2e4 kind:arm_branch to:0x0213ae54 module:overlay(56) from:0x0213b318 kind:arm_call to:0x020d3dec module:overlay(24) from:0x0213b33c kind:load to:0x027e0ce0 module:dtcm from:0x0213b360 kind:arm_call to:0x0213c40c module:overlay(56) diff --git a/config/eur/arm9/overlays/ov058/relocs.txt b/config/eur/arm9/overlays/ov058/relocs.txt index bea0f574..4e45e0dd 100644 --- a/config/eur/arm9/overlays/ov058/relocs.txt +++ b/config/eur/arm9/overlays/ov058/relocs.txt @@ -419,6 +419,8 @@ from:0x0214297c kind:arm_call to:0x02142944 module:overlay(58) from:0x02142984 kind:arm_call to:0x02098488 module:overlay(0) from:0x0214298c kind:arm_call to:0x02011ff4 module:main from:0x021429a0 kind:arm_call to:0x02097724 module:overlay(0) +from:0x021429b4 kind:arm_branch to:0x021428c8 module:overlay(58) +from:0x021429c4 kind:arm_branch to:0x0214286c module:overlay(58) from:0x021429d4 kind:load to:0x02156040 module:overlay(58) from:0x021429e8 kind:arm_call to:0x02011f3c module:main from:0x021429f4 kind:arm_call to:0x02142a2c module:overlay(58) @@ -1252,6 +1254,8 @@ from:0x0214ab64 kind:load to:0x020d86b0 module:overlay(24) from:0x0214ab74 kind:load to:0x027e0d48 module:dtcm from:0x0214ab88 kind:load to:0x027e0d48 module:dtcm from:0x0214ab94 kind:arm_call to:0x02097724 module:overlay(0) +from:0x0214aba8 kind:arm_branch to:0x0214ab34 module:overlay(58) +from:0x0214abb8 kind:arm_branch to:0x0214ab04 module:overlay(58) from:0x0214abc8 kind:load to:0x02157124 module:overlay(58) from:0x0214abdc kind:arm_call to:0x02011f3c module:main from:0x0214abe8 kind:arm_call to:0x0214acf4 module:overlay(58) @@ -1560,6 +1564,8 @@ from:0x0214d6cc kind:arm_call to:0x0214d694 module:overlay(58) from:0x0214d6d4 kind:arm_call to:0x02098488 module:overlay(0) from:0x0214d6dc kind:arm_call to:0x02011ff4 module:main from:0x0214d6f0 kind:arm_call to:0x02097724 module:overlay(0) +from:0x0214d704 kind:arm_branch to:0x0214d558 module:overlay(58) +from:0x0214d714 kind:arm_branch to:0x0214d540 module:overlay(58) from:0x0214d724 kind:load to:0x02157258 module:overlay(58) from:0x0214d738 kind:arm_call to:0x02011f3c module:main from:0x0214d744 kind:arm_call to:0x0214d774 module:overlay(58) diff --git a/config/eur/arm9/overlays/ov058/symbols.txt b/config/eur/arm9/overlays/ov058/symbols.txt index 936fa72e..fc283017 100644 --- a/config/eur/arm9/overlays/ov058/symbols.txt +++ b/config/eur/arm9/overlays/ov058/symbols.txt @@ -828,7 +828,7 @@ data_ov058_02155190 kind:data(any) addr:0x02155190 _ZTV19data_ov058_021551a4 kind:data(any) addr:0x021551a4 data_ov058_021551c8 kind:data(any) addr:0x021551c8 _ZTV19data_ov058_02155208 kind:data(any) addr:0x02155208 -_ZTV19data_ov058_02155210 kind:data(any) addr:0x02155210 ambiguous +_ZTV19data_ov058_02155210 kind:data(any) addr:0x02155210 _ZTV19data_ov058_02155264 kind:data(any) addr:0x02155264 _ZTV19data_ov058_02155288 kind:data(any) addr:0x02155288 _ZTV19data_ov058_021552bc kind:data(any) addr:0x021552bc ambiguous diff --git a/config/eur/arm9/overlays/ov062/symbols.txt b/config/eur/arm9/overlays/ov062/symbols.txt index 5c07fbb5..30d18425 100644 --- a/config/eur/arm9/overlays/ov062/symbols.txt +++ b/config/eur/arm9/overlays/ov062/symbols.txt @@ -484,7 +484,7 @@ data_ov062_02160734 kind:data(any) addr:0x02160734 data_ov062_02160750 kind:data(any) addr:0x02160750 _ZTV19data_ov062_02160788 kind:data(any) addr:0x02160788 data_ov062_021607c0 kind:data(any) addr:0x021607c0 -_ZTV19data_ov062_021607c0 kind:data(any) addr:0x021607c0 ambiguous +_ZTV19data_ov062_021607c0 kind:data(any) addr:0x021607c0 _ZTV19data_ov062_021607e8 kind:data(any) addr:0x021607e8 data_ov062_02160818 kind:data(any) addr:0x02160818 data_ov062_0216081c kind:data(any) addr:0x0216081c diff --git a/config/eur/arm9/overlays/ov063/relocs.txt b/config/eur/arm9/overlays/ov063/relocs.txt index 779bf5ac..c1be0aae 100644 --- a/config/eur/arm9/overlays/ov063/relocs.txt +++ b/config/eur/arm9/overlays/ov063/relocs.txt @@ -1168,6 +1168,13 @@ from:0x02160a30 kind:arm_call_thumb to:0x02057ed4 module:overlay(0) from:0x02160a38 kind:arm_call to:0x020616c8 module:overlay(0) from:0x02160a40 kind:arm_call to:0x0209d0ac module:overlay(0) from:0x02160a54 kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x02160a68 kind:arm_branch to:0x021609c4 module:overlay(63) +from:0x02160a78 kind:arm_branch to:0x0216095c module:overlay(63) +from:0x02160a88 kind:arm_branch to:0x02160938 module:overlay(63) +from:0x02160a98 kind:arm_branch to:0x02160918 module:overlay(63) +from:0x02160aa8 kind:arm_branch to:0x021608a8 module:overlay(63) +from:0x02160ab8 kind:arm_branch to:0x02160880 module:overlay(63) +from:0x02160ac8 kind:arm_branch to:0x02160a0c module:overlay(63) from:0x02160ad8 kind:load to:0x02164708 module:overlay(63) from:0x02160aec kind:arm_call to:0x02011f3c module:main from:0x02160af8 kind:arm_call to:0x02160bd0 module:overlay(63) diff --git a/config/eur/arm9/overlays/ov065/relocs.txt b/config/eur/arm9/overlays/ov065/relocs.txt index 84d8dd5c..a3905462 100644 --- a/config/eur/arm9/overlays/ov065/relocs.txt +++ b/config/eur/arm9/overlays/ov065/relocs.txt @@ -320,6 +320,12 @@ from:0x02159be8 kind:arm_call_thumb to:0x02057ed4 module:overlay(0) from:0x02159bf0 kind:arm_call to:0x020616c8 module:overlay(0) from:0x02159bf8 kind:arm_call to:0x0209d0ac module:overlay(0) from:0x02159c0c kind:arm_call to:0x0209c8b4 module:overlay(0) +from:0x02159c20 kind:arm_branch to:0x02159b8c module:overlay(65) +from:0x02159c30 kind:arm_branch to:0x02159b40 module:overlay(65) +from:0x02159c40 kind:arm_branch to:0x02159b20 module:overlay(65) +from:0x02159c50 kind:arm_branch to:0x02159ad8 module:overlay(65) +from:0x02159c60 kind:arm_branch to:0x02159ab8 module:overlay(65) +from:0x02159c70 kind:arm_branch to:0x02159bcc module:overlay(65) from:0x02159c80 kind:load to:0x0215b80c module:overlay(65) from:0x02159c94 kind:arm_call to:0x02011f3c module:main from:0x02159ca0 kind:arm_call to:0x02159cf0 module:overlay(65) diff --git a/config/eur/arm9/overlays/ov067/symbols.txt b/config/eur/arm9/overlays/ov067/symbols.txt index 0544c27d..853f78ec 100644 --- a/config/eur/arm9/overlays/ov067/symbols.txt +++ b/config/eur/arm9/overlays/ov067/symbols.txt @@ -286,7 +286,7 @@ data_ov067_0215cf68 kind:data(any) addr:0x0215cf68 ambiguous data_ov067_0215cfa0 kind:data(any) addr:0x0215cfa0 data_ov067_0215cfb5 kind:data(any) addr:0x0215cfb5 ambiguous data_ov067_0215cfc0 kind:data(any) addr:0x0215cfc0 -_ZTV19data_ov067_0215cfc0 kind:data(any) addr:0x0215cfc0 ambiguous +_ZTV19data_ov067_0215cfc0 kind:data(any) addr:0x0215cfc0 data_ov067_0215cfe4 kind:data(any) addr:0x0215cfe4 data_ov067_0215d024 kind:data(any) addr:0x0215d024 data_ov067_0215d07c kind:data(any) addr:0x0215d07c diff --git a/config/eur/arm9/overlays/ov070/relocs.txt b/config/eur/arm9/overlays/ov070/relocs.txt index 89c6b1aa..451f429c 100644 --- a/config/eur/arm9/overlays/ov070/relocs.txt +++ b/config/eur/arm9/overlays/ov070/relocs.txt @@ -610,6 +610,8 @@ from:0x02143f88 kind:arm_call to:0x02098488 module:overlay(0) from:0x02143f9c kind:arm_call to:0x02098488 module:overlay(0) from:0x02143fa4 kind:arm_call to:0x02011ff4 module:main from:0x02143fb8 kind:arm_call to:0x02097724 module:overlay(0) +from:0x02143fcc kind:arm_branch to:0x02143f2c module:overlay(70) +from:0x02143fdc kind:arm_branch to:0x02143eac module:overlay(70) from:0x02143ff0 kind:load to:0x0214dc74 module:overlay(70) from:0x02143ffc kind:load to:0x0214fdb4 module:overlay(70) from:0x02144010 kind:arm_call to:0x02011f3c module:main @@ -1465,6 +1467,7 @@ from:0x0214b2f0 kind:arm_call_thumb to:0x02057ed4 module:overlay(0) from:0x0214b2f8 kind:arm_call to:0x0209d0ac module:overlay(0) from:0x0214b300 kind:arm_call to:0x02011ff4 module:main from:0x0214b314 kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x0214b328 kind:arm_branch to:0x0214a33c module:overlay(70) from:0x0214b338 kind:load to:0x02150968 module:overlay(70) from:0x0214b34c kind:arm_call to:0x02011f3c module:main from:0x0214b358 kind:arm_call to:0x0214b3a4 module:overlay(70) diff --git a/config/eur/arm9/overlays/ov073/relocs.txt b/config/eur/arm9/overlays/ov073/relocs.txt index 45d07db5..c5281ca7 100644 --- a/config/eur/arm9/overlays/ov073/relocs.txt +++ b/config/eur/arm9/overlays/ov073/relocs.txt @@ -1784,6 +1784,10 @@ from:0x0216344c kind:arm_call to:0x02011ff4 module:main from:0x02163464 kind:arm_call to:0x020616c8 module:overlay(0) from:0x0216346c kind:arm_call to:0x02098488 module:overlay(0) from:0x02163480 kind:arm_call to:0x0209790c module:overlay(0) +from:0x02163494 kind:arm_branch to:0x02163430 module:overlay(73) +from:0x021634a4 kind:arm_branch to:0x02163388 module:overlay(73) +from:0x021634b4 kind:arm_branch to:0x02163368 module:overlay(73) +from:0x021634c4 kind:arm_branch to:0x02163458 module:overlay(73) from:0x0216351c kind:arm_call to:0x01fff1a4 module:itcm from:0x02163534 kind:arm_call to:0x01fff148 module:itcm from:0x02163544 kind:arm_call to:0x01fff148 module:itcm diff --git a/config/eur/arm9/overlays/ov083/symbols.txt b/config/eur/arm9/overlays/ov083/symbols.txt index 743c480b..267bd766 100644 --- a/config/eur/arm9/overlays/ov083/symbols.txt +++ b/config/eur/arm9/overlays/ov083/symbols.txt @@ -277,7 +277,7 @@ data_ov083_0215d800 kind:data(any) addr:0x0215d800 _ZTV19data_ov083_0215d808 kind:data(any) addr:0x0215d808 data_ov083_0215d834 kind:data(any) addr:0x0215d834 _ZTV19data_ov083_0215d878 kind:data(any) addr:0x0215d878 -_ZTV19data_ov083_0215d880 kind:data(any) addr:0x0215d880 ambiguous +_ZTV19data_ov083_0215d880 kind:data(any) addr:0x0215d880 data_ov083_0215d8d8 kind:data(any) addr:0x0215d8d8 data_ov083_0215d8f0 kind:data(any) addr:0x0215d8f0 data_ov083_0215d908 kind:data(any) addr:0x0215d908 diff --git a/config/eur/arm9/overlays/ov088/symbols.txt b/config/eur/arm9/overlays/ov088/symbols.txt index 6186c357..5207a6f0 100644 --- a/config/eur/arm9/overlays/ov088/symbols.txt +++ b/config/eur/arm9/overlays/ov088/symbols.txt @@ -733,7 +733,7 @@ _ZTV19data_ov088_02175184 kind:data(any) addr:0x02175184 _ZTV19data_ov088_021751a8 kind:data(any) addr:0x021751a8 _ZTV19data_ov088_02175214 kind:data(any) addr:0x02175214 _ZTV19data_ov088_02175238 kind:data(any) addr:0x02175238 -_ZTV19data_ov088_02175240 kind:data(any) addr:0x02175240 ambiguous +_ZTV19data_ov088_02175240 kind:data(any) addr:0x02175240 _ZTV19data_ov088_021752a8 kind:data(any) addr:0x021752a8 _ZTV19data_ov088_021752cc kind:data(any) addr:0x021752cc _ZTV19data_ov088_021752ec kind:data(any) addr:0x021752ec ambiguous diff --git a/config/eur/arm9/overlays/ov091/symbols.txt b/config/eur/arm9/overlays/ov091/symbols.txt index a53c51a9..484f7835 100644 --- a/config/eur/arm9/overlays/ov091/symbols.txt +++ b/config/eur/arm9/overlays/ov091/symbols.txt @@ -546,7 +546,7 @@ data_ov091_02177aa0 kind:data(any) addr:0x02177aa0 ambiguous _ZTV19data_ov091_02177aac kind:data(any) addr:0x02177aac _ZTV19data_ov091_02177ad0 kind:data(any) addr:0x02177ad0 data_ov091_02177b40 kind:data(any) addr:0x02177b40 -_ZTV19data_ov091_02177b40 kind:data(any) addr:0x02177b40 ambiguous +_ZTV19data_ov091_02177b40 kind:data(any) addr:0x02177b40 _ZTV19data_ov091_02177b5c kind:data(any) addr:0x02177b5c data_ov091_02177bb8 kind:data(any) addr:0x02177bb8 data_ov091_02177bd0 kind:data(any) addr:0x02177bd0 diff --git a/config/eur/arm9/overlays/ov094/relocs.txt b/config/eur/arm9/overlays/ov094/relocs.txt index d5a9c53a..66eaa740 100644 --- a/config/eur/arm9/overlays/ov094/relocs.txt +++ b/config/eur/arm9/overlays/ov094/relocs.txt @@ -1345,6 +1345,8 @@ from:0x02171038 kind:arm_call to:0x020672ac module:overlay(0) from:0x02171040 kind:arm_call_thumb to:0x02057ed4 module:overlay(0) from:0x02171048 kind:arm_call to:0x020616c8 module:overlay(0) from:0x02171050 kind:arm_call to:0x0209d0ac module:overlay(0) +from:0x02171064 kind:arm_branch to:0x02170ff4 module:overlay(94) +from:0x02171074 kind:arm_branch to:0x0217102c module:overlay(94) from:0x02171084 kind:load to:0x02179258 module:overlay(94) from:0x02171098 kind:arm_call to:0x02011f3c module:main from:0x021710a4 kind:arm_call to:0x02171190 module:overlay(94) @@ -1414,6 +1416,11 @@ from:0x0217177c kind:arm_call to:0x02011ff4 module:main from:0x02171790 kind:arm_call to:0x0209cc80 module:overlay(0) from:0x02171798 kind:arm_call to:0x02011ff4 module:main from:0x021717ac kind:arm_call to:0x0209cc80 module:overlay(0) +from:0x021717c0 kind:arm_branch to:0x021716e0 module:overlay(94) +from:0x021717d0 kind:arm_branch to:0x02171694 module:overlay(94) +from:0x021717e0 kind:arm_branch to:0x02171674 module:overlay(94) +from:0x021717f0 kind:arm_branch to:0x02171604 module:overlay(94) +from:0x02171800 kind:arm_branch to:0x02171720 module:overlay(94) from:0x02171810 kind:load to:0x021792f0 module:overlay(94) from:0x02171824 kind:arm_call to:0x02011f3c module:main from:0x02171830 kind:arm_call to:0x021718cc module:overlay(94) @@ -1699,6 +1706,15 @@ from:0x021738ac kind:load to:0x027e09bc module:dtcm from:0x021738b0 kind:load to:0x02176190 module:overlay(94) from:0x021738bc kind:load to:0x0203e964 module:main from:0x021738cc kind:arm_call to:0x0209c9d8 module:overlay(0) +from:0x021738e0 kind:arm_branch to:0x02172af4 module:overlay(94) +from:0x021738f0 kind:arm_branch to:0x02171ca8 module:overlay(94) +from:0x02173900 kind:arm_branch to:0x02173574 module:overlay(94) +from:0x02173910 kind:arm_branch to:0x02173514 module:overlay(94) +from:0x02173920 kind:arm_branch to:0x02173520 module:overlay(94) +from:0x02173930 kind:arm_branch to:0x021734fc module:overlay(94) +from:0x02173940 kind:arm_branch to:0x02171c0c module:overlay(94) +from:0x02173950 kind:arm_branch to:0x02172a44 module:overlay(94) +from:0x02173960 kind:arm_branch to:0x02172a18 module:overlay(94) from:0x02173970 kind:load to:0x02179614 module:overlay(94) from:0x02173984 kind:arm_call to:0x02011f3c module:main from:0x02173990 kind:arm_call to:0x02173b08 module:overlay(94) diff --git a/config/eur/arm9/overlays/ov096/relocs.txt b/config/eur/arm9/overlays/ov096/relocs.txt index 9b8c1f15..a34c9160 100644 --- a/config/eur/arm9/overlays/ov096/relocs.txt +++ b/config/eur/arm9/overlays/ov096/relocs.txt @@ -137,6 +137,8 @@ from:0x0217ab30 kind:arm_call to:0x02098488 module:overlay(0) from:0x0217ab44 kind:arm_call to:0x02098488 module:overlay(0) from:0x0217ab4c kind:arm_call to:0x02011ff4 module:main from:0x0217ab60 kind:arm_call to:0x02097724 module:overlay(0) +from:0x0217ab74 kind:arm_branch to:0x0217a910 module:overlay(96) +from:0x0217ab84 kind:arm_branch to:0x0217a8cc module:overlay(96) from:0x0217ab94 kind:load to:0x0217e2e8 module:overlay(96) from:0x0217aba8 kind:arm_call to:0x02011f3c module:main from:0x0217abb4 kind:arm_call to:0x0217abe4 module:overlay(96) diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt index 453da310..3fb61abd 100644 --- a/config/eur/arm9/relocs.txt +++ b/config/eur/arm9/relocs.txt @@ -5624,10 +5624,12 @@ from:0x0203d300 kind:arm_call to:0x0203d2d0 module:main from:0x0203d308 kind:arm_call to:0x02011ff4 module:main from:0x0203d3d0 kind:arm_call to:0x0203ba64 module:main from:0x0203d3e0 kind:arm_call to:0x0203ba64 module:main -from:0x0203d428 kind:load to:0x0203d5fc module:main -from:0x0203d42c kind:load to:0x0203d824 module:main +from:0x0203d428 kind:link_time_const(__exception_table_start__) +from:0x0203d42c kind:link_time_const(__exception_table_end__) from:0x0203d440 kind:arm_call to:0x0203ba64 module:main from:0x0203d450 kind:arm_call to:0x0203ba64 module:main +from:0x0203d4cc kind:arm_branch to:0x0203cc7c module:main +from:0x0203d518 kind:arm_branch to:0x0203cc7c module:main from:0x0203d564 kind:load to:0x02038cd4 module:main from:0x0203d5fc kind:load to:0x02038bac module:main from:0x0203d604 kind:load to:0x0203d51c module:main diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 6662190a..dd38e414 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1474,7 +1474,7 @@ OS_func_0032 kind:function(arm,size=0x18) addr:0x02026700 OS_func_0033 kind:function(arm,size=0x18) addr:0x02026718 OS_func_0034 kind:function(arm,size=0x8) addr:0x02026730 OS_GetLockID kind:function(arm,size=0x58) addr:0x02026738 -func_02026790 kind:function(arm,size=0x30) addr:0x02026790 +OS_func_0178 kind:function(arm,size=0x30) addr:0x02026790 sscanf kind:function(arm,size=0x28) addr:0x020267c0 vsscanf kind:function(arm,size=0x18) addr:0x020267e8 snprintf kind:function(arm,size=0x28) addr:0x02026800 @@ -1527,12 +1527,12 @@ func_0202758c kind:function(arm,size=0x24) addr:0x0202758c DC_func_0001 kind:function(arm,size=0xc) addr:0x020275b0 DC_func_0002 kind:function(arm,size=0x2c) addr:0x020275bc DC_FlushAll kind:function(arm,size=0x34) addr:0x020275e8 -DC_func_0003 kind:function(arm,size=0x1c) addr:0x0202761c +DC_InvalidateRange kind:function(arm,size=0x1c) addr:0x0202761c DC_StoreRange kind:function(arm,size=0x1c) addr:0x02027638 -DC_func_0004 kind:function(arm,size=0x24) addr:0x02027654 +DC_FlushRange kind:function(arm,size=0x24) addr:0x02027654 DC_func_0005 kind:function(arm,size=0xc) addr:0x02027678 IC_func_0001 kind:function(arm,size=0xc) addr:0x02027684 -IC_func_0002 kind:function(arm,size=0x1c) addr:0x02027690 +IC_InvalidateRange kind:function(arm,size=0x1c) addr:0x02027690 OS_func_0069 kind:function(arm,size=0x20) addr:0x020276ac OS_Init kind:function(thumb,size=0x44) addr:0x020276cc OS_func_0070 kind:function(thumb,size=0xb0) addr:0x02027710 @@ -1582,8 +1582,8 @@ OS_func_0104 kind:function(arm,size=0x54) addr:0x02028188 OS_func_0105 kind:function(arm,size=0x30) addr:0x020281dc OS_func_0106 kind:function(arm,size=0x2c) addr:0x0202820c OS_ResetSystem kind:function(arm,size=0xbc) addr:0x02028238 -func_020282f4 kind:function(arm,size=0x1c) addr:0x020282f4 -func_02028310 kind:function(arm,size=0x80) addr:0x02028310 +OS_func_0176 kind:function(arm,size=0x1c) addr:0x020282f4 +OS_func_0177 kind:function(arm,size=0x80) addr:0x02028310 OS_func_0107 kind:function(arm,size=0x8) addr:0x02028390 OS_func_0108 kind:function(arm,size=0x34) addr:0x02028398 OS_func_0110 kind:function(arm,size=0x84) addr:0x020283cc @@ -2058,10 +2058,10 @@ func_02039e18 kind:function(arm,size=0x68) addr:0x02039e18 _f2d kind:function(arm,size=0x84) addr:0x02039e80 func_02039f04 kind:function(arm,size=0x48) addr:0x02039f04 func_02039f4c kind:function(arm,size=0x48) addr:0x02039f4c -func_02039f94 kind:function(arm,size=0x10) addr:0x02039f94 -func_02039fa4 kind:function(arm,size=0x1b0) addr:0x02039fa4 -_ll_udiv kind:function(arm,size=0xc) addr:0x0203a154 -_ull_mod kind:function(arm,size=0x3c) addr:0x0203a160 +func_02039f94 kind:function(arm,size=0x1c0) addr:0x02039f94 +.L_02039fa4 kind:label(arm) addr:0x02039fa4 +_ll_udiv kind:function(arm,size=0x48) addr:0x0203a154 +_ull_mod kind:label(arm) addr:0x0203a160 _ull_mul kind:function(arm,size=0x20) addr:0x0203a19c _s32_div_f kind:function(arm,size=0x20c) addr:0x0203a1bc _u32_div_f kind:function(arm,size=0x1e4) addr:0x0203a3c8 @@ -2129,26 +2129,71 @@ _ZN13func_0203d2e4D1Ev kind:function(arm,size=0x14) addr:0x0203d2e4 _ZN13func_0203d2f8D0Ev kind:function(arm,size=0x1c) addr:0x0203d2f8 func_0203d314 kind:function(arm,size=0x5c) addr:0x0203d314 func_0203d370 kind:function(arm,size=0xa0) addr:0x0203d370 -func_0203d410 kind:function(arm,size=0x20) addr:0x0203d410 +__FindExceptionTable kind:function(arm,size=0x20) addr:0x0203d410 func_0203d430 kind:function(arm,size=0x28) addr:0x0203d430 func_0203d458 kind:function(arm,size=0x30) addr:0x0203d458 func_0203d488 kind:function(arm,size=0x48) addr:0x0203d488 func_0204fc68 kind:function(arm,size=0x4c) addr:0x0203d4d0 -data_0203d51c kind:data(any) addr:0x0203d51c -data_0203d52c kind:data(any) addr:0x0203d52c -data_0203d540 kind:data(any) addr:0x0203d540 -data_0203d550 kind:data(any) addr:0x0203d550 -data_0203d568 kind:data(any) addr:0x0203d568 -data_0203d570 kind:data(any) addr:0x0203d570 -data_0203d580 kind:data(any) addr:0x0203d580 -data_0203d588 kind:data(any) addr:0x0203d588 -data_0203d59c kind:data(any) addr:0x0203d59c -data_0203d5a4 kind:data(any) addr:0x0203d5a4 -data_0203d5ac kind:data(any) addr:0x0203d5ac -data_0203d5c0 kind:data(any) addr:0x0203d5c0 -data_0203d5d4 kind:data(any) addr:0x0203d5d4 -data_0203d5e8 kind:data(any) addr:0x0203d5e8 -data_0203d5fc kind:data(any) addr:0x0203d5fc +@ET@02038bac kind:data(any) addr:0x0203d51c +@ET@02038c5c kind:data(any) addr:0x0203d52c +@ET@02038d0c kind:data(any) addr:0x0203d540 +@ET@02038dc0 kind:data(any) addr:0x0203d550 +@ET@0203bc70 kind:data(any) addr:0x0203d568 +@ET@0203bf2c kind:data(any) addr:0x0203d570 +@ET@0203c760 kind:data(any) addr:0x0203d580 +@ET@0203c934 kind:data(any) addr:0x0203d588 +@ET@0203c9e4 kind:data(any) addr:0x0203d59c +@ET@0203ca44 kind:data(any) addr:0x0203d5a4 +@ET@0203d048 kind:data(any) addr:0x0203d5ac +@ET@0203d0a4 kind:data(any) addr:0x0203d5c0 +@ET@0203d160 kind:data(any) addr:0x0203d5d4 +@ET@0203d210 kind:data(any) addr:0x0203d5e8 +@EX@02038bac kind:data(word[3]) addr:0x0203d5fc +@EX@02038c24 kind:data(word[3]) addr:0x0203d608 +@EX@02038c4c kind:data(word[3]) addr:0x0203d614 +@EX@02038c5c kind:data(word[3]) addr:0x0203d620 +@EX@02038c9c kind:data(word[3]) addr:0x0203d62c +@EX@02038cbc kind:data(word[3]) addr:0x0203d638 +@EX@02038cd8 kind:data(word[3]) addr:0x0203d644 +@EX@02038cf4 kind:data(word[3]) addr:0x0203d650 +@EX@02038d0c kind:data(word[3]) addr:0x0203d65c +@EX@02038d2c kind:data(word[3]) addr:0x0203d668 +@EX@02038d44 kind:data(word[3]) addr:0x0203d674 +@EX@02038d64 kind:data(word[3]) addr:0x0203d680 +@EX@02038d94 kind:data(word[3]) addr:0x0203d68c +@EX@02038dc0 kind:data(word[3]) addr:0x0203d698 +@EX@0203b924 kind:data(word[3]) addr:0x0203d6a4 +@EX@0203b944 kind:data(word[3]) addr:0x0203d6b0 +@EX@0203b994 kind:data(word[3]) addr:0x0203d6bc +@EX@0203bb4c kind:data(word[3]) addr:0x0203d6c8 +@EX@0203bc70 kind:data(word[3]) addr:0x0203d6d4 +@EX@0203bf2c kind:data(word[3]) addr:0x0203d6e0 +@EX@0203c760 kind:data(word[3]) addr:0x0203d6ec +@EX@0203c8b4 kind:data(word[3]) addr:0x0203d6f8 +@EX@0203c934 kind:data(word[3]) addr:0x0203d704 +@EX@0203c9e4 kind:data(word[3]) addr:0x0203d710 +@EX@0203ca44 kind:data(word[3]) addr:0x0203d71c +@EX@0203cc7c kind:data(word[3]) addr:0x0203d728 +@EX@0203cd70 kind:data(word[3]) addr:0x0203d734 +@EX@0203cd98 kind:data(word[3]) addr:0x0203d740 +@EX@0203cdb8 kind:data(word[3]) addr:0x0203d74c +@EX@0203cde8 kind:data(word[3]) addr:0x0203d758 +@EX@0203ce2c kind:data(word[3]) addr:0x0203d764 +@EX@0203ce38 kind:data(word[3]) addr:0x0203d770 +@EX@0203ce44 kind:data(word[3]) addr:0x0203d77c +@EX@0203ce5c kind:data(word[3]) addr:0x0203d788 +@EX@0203d048 kind:data(word[3]) addr:0x0203d794 +@EX@0203d0a4 kind:data(word[3]) addr:0x0203d7a0 +@EX@0203d160 kind:data(word[3]) addr:0x0203d7ac +@EX@0203d210 kind:data(word[3]) addr:0x0203d7b8 +@EX@0203d270 kind:data(word[3]) addr:0x0203d7c4 +@EX@0203d2a0 kind:data(word[3]) addr:0x0203d7d0 +@EX@0203d2b4 kind:data(word[3]) addr:0x0203d7dc +@EX@0203d2d0 kind:data(word[3]) addr:0x0203d7e8 +@EX@0203d2e4 kind:data(word[3]) addr:0x0203d7f4 +@EX@0203d2f8 kind:data(word[3]) addr:0x0203d800 +@EX@0203d370 kind:data(word[3]) addr:0x0203d80c +@EX@0203d430 kind:data(word[3]) addr:0x0203d818 __sinit_0203d824 kind:function(arm,size=0x1c) addr:0x0203d824 __sinit_0203d840 kind:function(arm,size=0x60) addr:0x0203d840 __sinit_0203d8a0 kind:function(arm,size=0x50) addr:0x0203d8a0 diff --git a/config/jp/arm9/config.yaml b/config/jp/arm9/config.yaml index 025dbf5d..29486b87 100644 --- a/config/jp/arm9/config.yaml +++ b/config/jp/arm9/config.yaml @@ -1,824 +1,825 @@ -rom_config: '../../../extract/jp/config.yaml' -build_path: '../../../build/jp' -delinks_path: '../../../build/jp/delinks' +rom_config: ../../../extract/jp/config.yaml +build_path: ../../../build/jp +delinks_path: ../../../build/jp/delinks +enable_dsprot: true main_module: name: main - object: '../../../build/jp/build/arm9.bin' - hash: '7e61164c820edb0a' + object: ../../../build/jp/build/arm9.bin + hash: 7e61164c820edb0a delinks: delinks.txt symbols: symbols.txt relocations: relocs.txt autoloads: -- kind: Itcm - name: itcm - object: '../../../build/jp/build/itcm.bin' - hash: '19f361668c1b6642' - delinks: itcm/delinks.txt - symbols: itcm/symbols.txt - relocations: itcm/relocs.txt -- kind: Dtcm - name: dtcm - object: '../../../build/jp/build/dtcm.bin' - hash: '07361b1ce1a642b1' - delinks: dtcm/delinks.txt - symbols: dtcm/symbols.txt - relocations: dtcm/relocs.txt + - kind: Itcm + name: itcm + object: ../../../build/jp/build/itcm.bin + hash: 19f361668c1b6642 + delinks: itcm/delinks.txt + symbols: itcm/symbols.txt + relocations: itcm/relocs.txt + - kind: Dtcm + name: dtcm + object: ../../../build/jp/build/dtcm.bin + hash: 07361b1ce1a642b1 + delinks: dtcm/delinks.txt + symbols: dtcm/symbols.txt + relocations: dtcm/relocs.txt overlays: -- id: 0 - name: ov000 - object: '../../../build/jp/build/arm9_ov000.bin' - hash: '3ca88de8f39c6d31' - delinks: overlays/ov000/delinks.txt - symbols: overlays/ov000/symbols.txt - relocations: overlays/ov000/relocs.txt -- id: 1 - name: ov001 - object: '../../../build/jp/build/arm9_ov001.bin' - hash: b3e39ecf45750f54 - delinks: overlays/ov001/delinks.txt - symbols: overlays/ov001/symbols.txt - relocations: overlays/ov001/relocs.txt -- id: 2 - name: ov002 - object: '../../../build/jp/build/arm9_ov002.bin' - hash: '42b9ff3924e771c5' - delinks: overlays/ov002/delinks.txt - symbols: overlays/ov002/symbols.txt - relocations: overlays/ov002/relocs.txt -- id: 3 - name: ov003 - object: '../../../build/jp/build/arm9_ov003.bin' - hash: a3fd527c3d346f5e - delinks: overlays/ov003/delinks.txt - symbols: overlays/ov003/symbols.txt - relocations: overlays/ov003/relocs.txt -- id: 4 - name: ov004 - object: '../../../build/jp/build/arm9_ov004.bin' - hash: e09605fba5027362 - delinks: overlays/ov004/delinks.txt - symbols: overlays/ov004/symbols.txt - relocations: overlays/ov004/relocs.txt -- id: 5 - name: ov005 - object: '../../../build/jp/build/arm9_ov005.bin' - hash: '8f8a67b955dd5fb2' - delinks: overlays/ov005/delinks.txt - symbols: overlays/ov005/symbols.txt - relocations: overlays/ov005/relocs.txt -- id: 6 - name: ov006 - object: '../../../build/jp/build/arm9_ov006.bin' - hash: cd28d4ead0dcb897 - delinks: overlays/ov006/delinks.txt - symbols: overlays/ov006/symbols.txt - relocations: overlays/ov006/relocs.txt -- id: 7 - name: ov007 - object: '../../../build/jp/build/arm9_ov007.bin' - hash: '4b1da36edd680d62' - delinks: overlays/ov007/delinks.txt - symbols: overlays/ov007/symbols.txt - relocations: overlays/ov007/relocs.txt -- id: 8 - name: ov008 - object: '../../../build/jp/build/arm9_ov008.bin' - hash: '8bc7de43650dad39' - delinks: overlays/ov008/delinks.txt - symbols: overlays/ov008/symbols.txt - relocations: overlays/ov008/relocs.txt -- id: 9 - name: ov009 - object: '../../../build/jp/build/arm9_ov009.bin' - hash: afad180bb50ecbcc - delinks: overlays/ov009/delinks.txt - symbols: overlays/ov009/symbols.txt - relocations: overlays/ov009/relocs.txt -- id: 10 - name: ov010 - object: '../../../build/jp/build/arm9_ov010.bin' - hash: '6624155b2f778022' - delinks: overlays/ov010/delinks.txt - symbols: overlays/ov010/symbols.txt - relocations: overlays/ov010/relocs.txt -- id: 11 - name: ov011 - object: '../../../build/jp/build/arm9_ov011.bin' - hash: '16b1d7e48ca7adc0' - delinks: overlays/ov011/delinks.txt - symbols: overlays/ov011/symbols.txt - relocations: overlays/ov011/relocs.txt -- id: 12 - name: ov012 - object: '../../../build/jp/build/arm9_ov012.bin' - hash: '4935a56ebb12821d' - delinks: overlays/ov012/delinks.txt - symbols: overlays/ov012/symbols.txt - relocations: overlays/ov012/relocs.txt -- id: 13 - name: ov013 - object: '../../../build/jp/build/arm9_ov013.bin' - hash: '6c2c4bdeeb17dae1' - delinks: overlays/ov013/delinks.txt - symbols: overlays/ov013/symbols.txt - relocations: overlays/ov013/relocs.txt -- id: 14 - name: ov014 - object: '../../../build/jp/build/arm9_ov014.bin' - hash: db8d43c34e94c3f7 - delinks: overlays/ov014/delinks.txt - symbols: overlays/ov014/symbols.txt - relocations: overlays/ov014/relocs.txt -- id: 15 - name: ov015 - object: '../../../build/jp/build/arm9_ov015.bin' - hash: e925351218a789e4 - delinks: overlays/ov015/delinks.txt - symbols: overlays/ov015/symbols.txt - relocations: overlays/ov015/relocs.txt -- id: 16 - name: ov016 - object: '../../../build/jp/build/arm9_ov016.bin' - hash: '3f22fc748b7693a4' - delinks: overlays/ov016/delinks.txt - symbols: overlays/ov016/symbols.txt - relocations: overlays/ov016/relocs.txt -- id: 17 - name: ov017 - object: '../../../build/jp/build/arm9_ov017.bin' - hash: '26c4c7b6b8cf46f8' - delinks: overlays/ov017/delinks.txt - symbols: overlays/ov017/symbols.txt - relocations: overlays/ov017/relocs.txt -- id: 18 - name: ov018 - object: '../../../build/jp/build/arm9_ov018.bin' - hash: '17e3f9cbcde25029' - delinks: overlays/ov018/delinks.txt - symbols: overlays/ov018/symbols.txt - relocations: overlays/ov018/relocs.txt -- id: 19 - name: ov019 - object: '../../../build/jp/build/arm9_ov019.bin' - hash: '7f9b5f4752141691' - delinks: overlays/ov019/delinks.txt - symbols: overlays/ov019/symbols.txt - relocations: overlays/ov019/relocs.txt -- id: 20 - name: ov020 - object: '../../../build/jp/build/arm9_ov020.bin' - hash: '6681f1fcb8b60c53' - delinks: overlays/ov020/delinks.txt - symbols: overlays/ov020/symbols.txt - relocations: overlays/ov020/relocs.txt -- id: 21 - name: ov021 - object: '../../../build/jp/build/arm9_ov021.bin' - hash: '2ee81d538079573c' - delinks: overlays/ov021/delinks.txt - symbols: overlays/ov021/symbols.txt - relocations: overlays/ov021/relocs.txt -- id: 22 - name: ov022 - object: '../../../build/jp/build/arm9_ov022.bin' - hash: d14e4b454e3abea6 - delinks: overlays/ov022/delinks.txt - symbols: overlays/ov022/symbols.txt - relocations: overlays/ov022/relocs.txt -- id: 23 - name: ov023 - object: '../../../build/jp/build/arm9_ov023.bin' - hash: c6a300bc09236867 - delinks: overlays/ov023/delinks.txt - symbols: overlays/ov023/symbols.txt - relocations: overlays/ov023/relocs.txt -- id: 24 - name: ov024 - object: '../../../build/jp/build/arm9_ov024.bin' - hash: '80934b4d9eedd075' - delinks: overlays/ov024/delinks.txt - symbols: overlays/ov024/symbols.txt - relocations: overlays/ov024/relocs.txt -- id: 25 - name: ov025 - object: '../../../build/jp/build/arm9_ov025.bin' - hash: '070eb13654a44570' - delinks: overlays/ov025/delinks.txt - symbols: overlays/ov025/symbols.txt - relocations: overlays/ov025/relocs.txt -- id: 26 - name: ov026 - object: '../../../build/jp/build/arm9_ov026.bin' - hash: ec767b145c7ec2a4 - delinks: overlays/ov026/delinks.txt - symbols: overlays/ov026/symbols.txt - relocations: overlays/ov026/relocs.txt -- id: 27 - name: ov027 - object: '../../../build/jp/build/arm9_ov027.bin' - hash: '0886b04415d1ba91' - delinks: overlays/ov027/delinks.txt - symbols: overlays/ov027/symbols.txt - relocations: overlays/ov027/relocs.txt -- id: 28 - name: ov028 - object: '../../../build/jp/build/arm9_ov028.bin' - hash: '113da9d6fdeef592' - delinks: overlays/ov028/delinks.txt - symbols: overlays/ov028/symbols.txt - relocations: overlays/ov028/relocs.txt -- id: 29 - name: ov029 - object: '../../../build/jp/build/arm9_ov029.bin' - hash: '4e965927a9987ad9' - delinks: overlays/ov029/delinks.txt - symbols: overlays/ov029/symbols.txt - relocations: overlays/ov029/relocs.txt -- id: 30 - name: ov030 - object: '../../../build/jp/build/arm9_ov030.bin' - hash: '849f555bb2d200b6' - delinks: overlays/ov030/delinks.txt - symbols: overlays/ov030/symbols.txt - relocations: overlays/ov030/relocs.txt -- id: 31 - name: ov031 - object: '../../../build/jp/build/arm9_ov031.bin' - hash: '02eeae2ee7206227' - delinks: overlays/ov031/delinks.txt - symbols: overlays/ov031/symbols.txt - relocations: overlays/ov031/relocs.txt -- id: 32 - name: ov032 - object: '../../../build/jp/build/arm9_ov032.bin' - hash: '94d66efad7b5c262' - delinks: overlays/ov032/delinks.txt - symbols: overlays/ov032/symbols.txt - relocations: overlays/ov032/relocs.txt -- id: 33 - name: ov033 - object: '../../../build/jp/build/arm9_ov033.bin' - hash: '171fc41f30f0e9ed' - delinks: overlays/ov033/delinks.txt - symbols: overlays/ov033/symbols.txt - relocations: overlays/ov033/relocs.txt -- id: 34 - name: ov034 - object: '../../../build/jp/build/arm9_ov034.bin' - hash: cd7b87a1f0eeddf4 - delinks: overlays/ov034/delinks.txt - symbols: overlays/ov034/symbols.txt - relocations: overlays/ov034/relocs.txt -- id: 35 - name: ov035 - object: '../../../build/jp/build/arm9_ov035.bin' - hash: '97b2df7c9c46043b' - delinks: overlays/ov035/delinks.txt - symbols: overlays/ov035/symbols.txt - relocations: overlays/ov035/relocs.txt -- id: 36 - name: ov036 - object: '../../../build/jp/build/arm9_ov036.bin' - hash: aabdcf6c7deb2ea9 - delinks: overlays/ov036/delinks.txt - symbols: overlays/ov036/symbols.txt - relocations: overlays/ov036/relocs.txt -- id: 37 - name: ov037 - object: '../../../build/jp/build/arm9_ov037.bin' - hash: d60954da95379bb9 - delinks: overlays/ov037/delinks.txt - symbols: overlays/ov037/symbols.txt - relocations: overlays/ov037/relocs.txt -- id: 38 - name: ov038 - object: '../../../build/jp/build/arm9_ov038.bin' - hash: '0b12a8886200833b' - delinks: overlays/ov038/delinks.txt - symbols: overlays/ov038/symbols.txt - relocations: overlays/ov038/relocs.txt -- id: 39 - name: ov039 - object: '../../../build/jp/build/arm9_ov039.bin' - hash: f274c2b0eef1d546 - delinks: overlays/ov039/delinks.txt - symbols: overlays/ov039/symbols.txt - relocations: overlays/ov039/relocs.txt -- id: 40 - name: ov040 - object: '../../../build/jp/build/arm9_ov040.bin' - hash: '010e6b37818c442d' - delinks: overlays/ov040/delinks.txt - symbols: overlays/ov040/symbols.txt - relocations: overlays/ov040/relocs.txt -- id: 41 - name: ov041 - object: '../../../build/jp/build/arm9_ov041.bin' - hash: '5ca5af2610c8927b' - delinks: overlays/ov041/delinks.txt - symbols: overlays/ov041/symbols.txt - relocations: overlays/ov041/relocs.txt -- id: 42 - name: ov042 - object: '../../../build/jp/build/arm9_ov042.bin' - hash: '54ce5710c904864c' - delinks: overlays/ov042/delinks.txt - symbols: overlays/ov042/symbols.txt - relocations: overlays/ov042/relocs.txt -- id: 43 - name: ov043 - object: '../../../build/jp/build/arm9_ov043.bin' - hash: '3e0de449fc60d4c7' - delinks: overlays/ov043/delinks.txt - symbols: overlays/ov043/symbols.txt - relocations: overlays/ov043/relocs.txt -- id: 44 - name: ov044 - object: '../../../build/jp/build/arm9_ov044.bin' - hash: ca2fe7306a1eedbb - delinks: overlays/ov044/delinks.txt - symbols: overlays/ov044/symbols.txt - relocations: overlays/ov044/relocs.txt -- id: 45 - name: ov045 - object: '../../../build/jp/build/arm9_ov045.bin' - hash: '4b9c190c4273bcd6' - delinks: overlays/ov045/delinks.txt - symbols: overlays/ov045/symbols.txt - relocations: overlays/ov045/relocs.txt -- id: 46 - name: ov046 - object: '../../../build/jp/build/arm9_ov046.bin' - hash: '29da2fc7a32a1622' - delinks: overlays/ov046/delinks.txt - symbols: overlays/ov046/symbols.txt - relocations: overlays/ov046/relocs.txt -- id: 47 - name: ov047 - object: '../../../build/jp/build/arm9_ov047.bin' - hash: '0bc994210248f439' - delinks: overlays/ov047/delinks.txt - symbols: overlays/ov047/symbols.txt - relocations: overlays/ov047/relocs.txt -- id: 48 - name: ov048 - object: '../../../build/jp/build/arm9_ov048.bin' - hash: '140c7ec22abd1d52' - delinks: overlays/ov048/delinks.txt - symbols: overlays/ov048/symbols.txt - relocations: overlays/ov048/relocs.txt -- id: 49 - name: ov049 - object: '../../../build/jp/build/arm9_ov049.bin' - hash: '1451d0967cf79b76' - delinks: overlays/ov049/delinks.txt - symbols: overlays/ov049/symbols.txt - relocations: overlays/ov049/relocs.txt -- id: 50 - name: ov050 - object: '../../../build/jp/build/arm9_ov050.bin' - hash: '45a4ebae6359940d' - delinks: overlays/ov050/delinks.txt - symbols: overlays/ov050/symbols.txt - relocations: overlays/ov050/relocs.txt -- id: 51 - name: ov051 - object: '../../../build/jp/build/arm9_ov051.bin' - hash: d9c0a5b98a5cbf2c - delinks: overlays/ov051/delinks.txt - symbols: overlays/ov051/symbols.txt - relocations: overlays/ov051/relocs.txt -- id: 52 - name: ov052 - object: '../../../build/jp/build/arm9_ov052.bin' - hash: '75f8873ae19c9089' - delinks: overlays/ov052/delinks.txt - symbols: overlays/ov052/symbols.txt - relocations: overlays/ov052/relocs.txt -- id: 53 - name: ov053 - object: '../../../build/jp/build/arm9_ov053.bin' - hash: f2594a14dccb24b5 - delinks: overlays/ov053/delinks.txt - symbols: overlays/ov053/symbols.txt - relocations: overlays/ov053/relocs.txt -- id: 54 - name: ov054 - object: '../../../build/jp/build/arm9_ov054.bin' - hash: '17642eaf9f2e35a3' - delinks: overlays/ov054/delinks.txt - symbols: overlays/ov054/symbols.txt - relocations: overlays/ov054/relocs.txt -- id: 55 - name: ov055 - object: '../../../build/jp/build/arm9_ov055.bin' - hash: '068df44dab4f95d1' - delinks: overlays/ov055/delinks.txt - symbols: overlays/ov055/symbols.txt - relocations: overlays/ov055/relocs.txt -- id: 56 - name: ov056 - object: '../../../build/jp/build/arm9_ov056.bin' - hash: '8bab94301704ed5a' - delinks: overlays/ov056/delinks.txt - symbols: overlays/ov056/symbols.txt - relocations: overlays/ov056/relocs.txt -- id: 57 - name: ov057 - object: '../../../build/jp/build/arm9_ov057.bin' - hash: f238df4c5f88b6cc - delinks: overlays/ov057/delinks.txt - symbols: overlays/ov057/symbols.txt - relocations: overlays/ov057/relocs.txt -- id: 58 - name: ov058 - object: '../../../build/jp/build/arm9_ov058.bin' - hash: d8a98b0d148c8185 - delinks: overlays/ov058/delinks.txt - symbols: overlays/ov058/symbols.txt - relocations: overlays/ov058/relocs.txt -- id: 59 - name: ov059 - object: '../../../build/jp/build/arm9_ov059.bin' - hash: '881d75bb2d3e7556' - delinks: overlays/ov059/delinks.txt - symbols: overlays/ov059/symbols.txt - relocations: overlays/ov059/relocs.txt -- id: 60 - name: ov060 - object: '../../../build/jp/build/arm9_ov060.bin' - hash: '56c648d5e390c9fe' - delinks: overlays/ov060/delinks.txt - symbols: overlays/ov060/symbols.txt - relocations: overlays/ov060/relocs.txt -- id: 61 - name: ov061 - object: '../../../build/jp/build/arm9_ov061.bin' - hash: a9636f817a93d656 - delinks: overlays/ov061/delinks.txt - symbols: overlays/ov061/symbols.txt - relocations: overlays/ov061/relocs.txt -- id: 62 - name: ov062 - object: '../../../build/jp/build/arm9_ov062.bin' - hash: '478ee3de529c20f9' - delinks: overlays/ov062/delinks.txt - symbols: overlays/ov062/symbols.txt - relocations: overlays/ov062/relocs.txt -- id: 63 - name: ov063 - object: '../../../build/jp/build/arm9_ov063.bin' - hash: '3312201a8bea8a67' - delinks: overlays/ov063/delinks.txt - symbols: overlays/ov063/symbols.txt - relocations: overlays/ov063/relocs.txt -- id: 64 - name: ov064 - object: '../../../build/jp/build/arm9_ov064.bin' - hash: '36554bb51d287764' - delinks: overlays/ov064/delinks.txt - symbols: overlays/ov064/symbols.txt - relocations: overlays/ov064/relocs.txt -- id: 65 - name: ov065 - object: '../../../build/jp/build/arm9_ov065.bin' - hash: abe0e7f1780906cc - delinks: overlays/ov065/delinks.txt - symbols: overlays/ov065/symbols.txt - relocations: overlays/ov065/relocs.txt -- id: 66 - name: ov066 - object: '../../../build/jp/build/arm9_ov066.bin' - hash: '74f800a8d43f860c' - delinks: overlays/ov066/delinks.txt - symbols: overlays/ov066/symbols.txt - relocations: overlays/ov066/relocs.txt -- id: 67 - name: ov067 - object: '../../../build/jp/build/arm9_ov067.bin' - hash: '5769b10a3ecdc887' - delinks: overlays/ov067/delinks.txt - symbols: overlays/ov067/symbols.txt - relocations: overlays/ov067/relocs.txt -- id: 68 - name: ov068 - object: '../../../build/jp/build/arm9_ov068.bin' - hash: '48cdefbbdf849f2f' - delinks: overlays/ov068/delinks.txt - symbols: overlays/ov068/symbols.txt - relocations: overlays/ov068/relocs.txt -- id: 69 - name: ov069 - object: '../../../build/jp/build/arm9_ov069.bin' - hash: '06f205095a57546a' - delinks: overlays/ov069/delinks.txt - symbols: overlays/ov069/symbols.txt - relocations: overlays/ov069/relocs.txt -- id: 70 - name: ov070 - object: '../../../build/jp/build/arm9_ov070.bin' - hash: '01e0e8ab104ed07d' - delinks: overlays/ov070/delinks.txt - symbols: overlays/ov070/symbols.txt - relocations: overlays/ov070/relocs.txt -- id: 71 - name: ov071 - object: '../../../build/jp/build/arm9_ov071.bin' - hash: '4bbf64a0af7199b4' - delinks: overlays/ov071/delinks.txt - symbols: overlays/ov071/symbols.txt - relocations: overlays/ov071/relocs.txt -- id: 72 - name: ov072 - object: '../../../build/jp/build/arm9_ov072.bin' - hash: '285b1833676f73be' - delinks: overlays/ov072/delinks.txt - symbols: overlays/ov072/symbols.txt - relocations: overlays/ov072/relocs.txt -- id: 73 - name: ov073 - object: '../../../build/jp/build/arm9_ov073.bin' - hash: '2630cf1e03dde21a' - delinks: overlays/ov073/delinks.txt - symbols: overlays/ov073/symbols.txt - relocations: overlays/ov073/relocs.txt -- id: 74 - name: ov074 - object: '../../../build/jp/build/arm9_ov074.bin' - hash: '22e456eb43a86e0c' - delinks: overlays/ov074/delinks.txt - symbols: overlays/ov074/symbols.txt - relocations: overlays/ov074/relocs.txt -- id: 75 - name: ov075 - object: '../../../build/jp/build/arm9_ov075.bin' - hash: '2bacd3ab0167c646' - delinks: overlays/ov075/delinks.txt - symbols: overlays/ov075/symbols.txt - relocations: overlays/ov075/relocs.txt -- id: 76 - name: ov076 - object: '../../../build/jp/build/arm9_ov076.bin' - hash: '47016d373353c0fe' - delinks: overlays/ov076/delinks.txt - symbols: overlays/ov076/symbols.txt - relocations: overlays/ov076/relocs.txt -- id: 77 - name: ov077 - object: '../../../build/jp/build/arm9_ov077.bin' - hash: '48c603e45387d0f3' - delinks: overlays/ov077/delinks.txt - symbols: overlays/ov077/symbols.txt - relocations: overlays/ov077/relocs.txt -- id: 78 - name: ov078 - object: '../../../build/jp/build/arm9_ov078.bin' - hash: a4b2e6c38246d88d - delinks: overlays/ov078/delinks.txt - symbols: overlays/ov078/symbols.txt - relocations: overlays/ov078/relocs.txt -- id: 79 - name: ov079 - object: '../../../build/jp/build/arm9_ov079.bin' - hash: '57ea89e66b221d09' - delinks: overlays/ov079/delinks.txt - symbols: overlays/ov079/symbols.txt - relocations: overlays/ov079/relocs.txt -- id: 80 - name: ov080 - object: '../../../build/jp/build/arm9_ov080.bin' - hash: '1d13e3ca97d22f45' - delinks: overlays/ov080/delinks.txt - symbols: overlays/ov080/symbols.txt - relocations: overlays/ov080/relocs.txt -- id: 81 - name: ov081 - object: '../../../build/jp/build/arm9_ov081.bin' - hash: '86adadc83141d9bc' - delinks: overlays/ov081/delinks.txt - symbols: overlays/ov081/symbols.txt - relocations: overlays/ov081/relocs.txt -- id: 82 - name: ov082 - object: '../../../build/jp/build/arm9_ov082.bin' - hash: f8387c8e1e50f4ae - delinks: overlays/ov082/delinks.txt - symbols: overlays/ov082/symbols.txt - relocations: overlays/ov082/relocs.txt -- id: 83 - name: ov083 - object: '../../../build/jp/build/arm9_ov083.bin' - hash: e1ee946fbf80386e - delinks: overlays/ov083/delinks.txt - symbols: overlays/ov083/symbols.txt - relocations: overlays/ov083/relocs.txt -- id: 84 - name: ov084 - object: '../../../build/jp/build/arm9_ov084.bin' - hash: d6fe7d93730d75ad - delinks: overlays/ov084/delinks.txt - symbols: overlays/ov084/symbols.txt - relocations: overlays/ov084/relocs.txt -- id: 85 - name: ov085 - object: '../../../build/jp/build/arm9_ov085.bin' - hash: '24a358413192a357' - delinks: overlays/ov085/delinks.txt - symbols: overlays/ov085/symbols.txt - relocations: overlays/ov085/relocs.txt -- id: 86 - name: ov086 - object: '../../../build/jp/build/arm9_ov086.bin' - hash: b72be41ad68bd021 - delinks: overlays/ov086/delinks.txt - symbols: overlays/ov086/symbols.txt - relocations: overlays/ov086/relocs.txt -- id: 87 - name: ov087 - object: '../../../build/jp/build/arm9_ov087.bin' - hash: f7ab2c84015b9e47 - delinks: overlays/ov087/delinks.txt - symbols: overlays/ov087/symbols.txt - relocations: overlays/ov087/relocs.txt -- id: 88 - name: ov088 - object: '../../../build/jp/build/arm9_ov088.bin' - hash: '04af2eb27bbe99cc' - delinks: overlays/ov088/delinks.txt - symbols: overlays/ov088/symbols.txt - relocations: overlays/ov088/relocs.txt -- id: 89 - name: ov089 - object: '../../../build/jp/build/arm9_ov089.bin' - hash: a5df7ec71cc90cae - delinks: overlays/ov089/delinks.txt - symbols: overlays/ov089/symbols.txt - relocations: overlays/ov089/relocs.txt -- id: 90 - name: ov090 - object: '../../../build/jp/build/arm9_ov090.bin' - hash: '5995b58c40606762' - delinks: overlays/ov090/delinks.txt - symbols: overlays/ov090/symbols.txt - relocations: overlays/ov090/relocs.txt -- id: 91 - name: ov091 - object: '../../../build/jp/build/arm9_ov091.bin' - hash: '0855f5208b3ffe85' - delinks: overlays/ov091/delinks.txt - symbols: overlays/ov091/symbols.txt - relocations: overlays/ov091/relocs.txt -- id: 92 - name: ov092 - object: '../../../build/jp/build/arm9_ov092.bin' - hash: '245dc598a982cad8' - delinks: overlays/ov092/delinks.txt - symbols: overlays/ov092/symbols.txt - relocations: overlays/ov092/relocs.txt -- id: 93 - name: ov093 - object: '../../../build/jp/build/arm9_ov093.bin' - hash: '23cd81f613bd26cc' - delinks: overlays/ov093/delinks.txt - symbols: overlays/ov093/symbols.txt - relocations: overlays/ov093/relocs.txt -- id: 94 - name: ov094 - object: '../../../build/jp/build/arm9_ov094.bin' - hash: a1b72300e84d645b - delinks: overlays/ov094/delinks.txt - symbols: overlays/ov094/symbols.txt - relocations: overlays/ov094/relocs.txt -- id: 95 - name: ov095 - object: '../../../build/jp/build/arm9_ov095.bin' - hash: '0d5172cf12f06de5' - delinks: overlays/ov095/delinks.txt - symbols: overlays/ov095/symbols.txt - relocations: overlays/ov095/relocs.txt -- id: 96 - name: ov096 - object: '../../../build/jp/build/arm9_ov096.bin' - hash: ed9e823942851138 - delinks: overlays/ov096/delinks.txt - symbols: overlays/ov096/symbols.txt - relocations: overlays/ov096/relocs.txt -- id: 97 - name: ov097 - object: '../../../build/jp/build/arm9_ov097.bin' - hash: a3051d1c98a8cc28 - delinks: overlays/ov097/delinks.txt - symbols: overlays/ov097/symbols.txt - relocations: overlays/ov097/relocs.txt -- id: 98 - name: ov098 - object: '../../../build/jp/build/arm9_ov098.bin' - hash: '9aeb232782a47c34' - delinks: overlays/ov098/delinks.txt - symbols: overlays/ov098/symbols.txt - relocations: overlays/ov098/relocs.txt -- id: 99 - name: ov099 - object: '../../../build/jp/build/arm9_ov099.bin' - hash: '3efeac962f763f9d' - delinks: overlays/ov099/delinks.txt - symbols: overlays/ov099/symbols.txt - relocations: overlays/ov099/relocs.txt -- id: 100 - name: ov100 - object: '../../../build/jp/build/arm9_ov100.bin' - hash: a3051d1c98a8cc28 - delinks: overlays/ov100/delinks.txt - symbols: overlays/ov100/symbols.txt - relocations: overlays/ov100/relocs.txt -- id: 101 - name: ov101 - object: '../../../build/jp/build/arm9_ov101.bin' - hash: '662d5eb7e791eba0' - delinks: overlays/ov101/delinks.txt - symbols: overlays/ov101/symbols.txt - relocations: overlays/ov101/relocs.txt -- id: 102 - name: ov102 - object: '../../../build/jp/build/arm9_ov102.bin' - hash: c5f773853b363473 - delinks: overlays/ov102/delinks.txt - symbols: overlays/ov102/symbols.txt - relocations: overlays/ov102/relocs.txt -- id: 103 - name: ov103 - object: '../../../build/jp/build/arm9_ov103.bin' - hash: '17458a91585e1979' - delinks: overlays/ov103/delinks.txt - symbols: overlays/ov103/symbols.txt - relocations: overlays/ov103/relocs.txt -- id: 104 - name: ov104 - object: '../../../build/jp/build/arm9_ov104.bin' - hash: '4ce76498d9bd532f' - delinks: overlays/ov104/delinks.txt - symbols: overlays/ov104/symbols.txt - relocations: overlays/ov104/relocs.txt -- id: 105 - name: ov105 - object: '../../../build/jp/build/arm9_ov105.bin' - hash: fe5d169fce528d49 - delinks: overlays/ov105/delinks.txt - symbols: overlays/ov105/symbols.txt - relocations: overlays/ov105/relocs.txt -- id: 106 - name: ov106 - object: '../../../build/jp/build/arm9_ov106.bin' - hash: b6e99bff4a14a1a5 - delinks: overlays/ov106/delinks.txt - symbols: overlays/ov106/symbols.txt - relocations: overlays/ov106/relocs.txt -- id: 107 - name: ov107 - object: '../../../build/jp/build/arm9_ov107.bin' - hash: '5321c14a37e3419a' - delinks: overlays/ov107/delinks.txt - symbols: overlays/ov107/symbols.txt - relocations: overlays/ov107/relocs.txt -- id: 108 - name: ov108 - object: '../../../build/jp/build/arm9_ov108.bin' - hash: '07696cd45feccf58' - delinks: overlays/ov108/delinks.txt - symbols: overlays/ov108/symbols.txt - relocations: overlays/ov108/relocs.txt -- id: 109 - name: ov109 - object: '../../../build/jp/build/arm9_ov109.bin' - hash: f2d981a8ce9a609a - delinks: overlays/ov109/delinks.txt - symbols: overlays/ov109/symbols.txt - relocations: overlays/ov109/relocs.txt -- id: 110 - name: ov110 - object: '../../../build/jp/build/arm9_ov110.bin' - hash: cc3413282ac716ba - delinks: overlays/ov110/delinks.txt - symbols: overlays/ov110/symbols.txt - relocations: overlays/ov110/relocs.txt -- id: 111 - name: ov111 - object: '../../../build/jp/build/arm9_ov111.bin' - hash: f66434d3e4ae7193 - delinks: overlays/ov111/delinks.txt - symbols: overlays/ov111/symbols.txt - relocations: overlays/ov111/relocs.txt -- id: 112 - name: ov112 - object: '../../../build/jp/build/arm9_ov112.bin' - hash: daa3e97c9e787403 - delinks: overlays/ov112/delinks.txt - symbols: overlays/ov112/symbols.txt - relocations: overlays/ov112/relocs.txt -- id: 113 - name: ov113 - object: '../../../build/jp/build/arm9_ov113.bin' - hash: '0130c7f74000863e' - delinks: overlays/ov113/delinks.txt - symbols: overlays/ov113/symbols.txt - relocations: overlays/ov113/relocs.txt + - id: 0 + name: ov000 + object: ../../../build/jp/build/arm9_ov000.bin + hash: 3ca88de8f39c6d31 + delinks: overlays/ov000/delinks.txt + symbols: overlays/ov000/symbols.txt + relocations: overlays/ov000/relocs.txt + - id: 1 + name: ov001 + object: ../../../build/jp/build/arm9_ov001.bin + hash: 9b219c3935ec3e0e + delinks: overlays/ov001/delinks.txt + symbols: overlays/ov001/symbols.txt + relocations: overlays/ov001/relocs.txt + - id: 2 + name: ov002 + object: ../../../build/jp/build/arm9_ov002.bin + hash: 42b9ff3924e771c5 + delinks: overlays/ov002/delinks.txt + symbols: overlays/ov002/symbols.txt + relocations: overlays/ov002/relocs.txt + - id: 3 + name: ov003 + object: ../../../build/jp/build/arm9_ov003.bin + hash: a3fd527c3d346f5e + delinks: overlays/ov003/delinks.txt + symbols: overlays/ov003/symbols.txt + relocations: overlays/ov003/relocs.txt + - id: 4 + name: ov004 + object: ../../../build/jp/build/arm9_ov004.bin + hash: e09605fba5027362 + delinks: overlays/ov004/delinks.txt + symbols: overlays/ov004/symbols.txt + relocations: overlays/ov004/relocs.txt + - id: 5 + name: ov005 + object: ../../../build/jp/build/arm9_ov005.bin + hash: 8f8a67b955dd5fb2 + delinks: overlays/ov005/delinks.txt + symbols: overlays/ov005/symbols.txt + relocations: overlays/ov005/relocs.txt + - id: 6 + name: ov006 + object: ../../../build/jp/build/arm9_ov006.bin + hash: cd28d4ead0dcb897 + delinks: overlays/ov006/delinks.txt + symbols: overlays/ov006/symbols.txt + relocations: overlays/ov006/relocs.txt + - id: 7 + name: ov007 + object: ../../../build/jp/build/arm9_ov007.bin + hash: 4b1da36edd680d62 + delinks: overlays/ov007/delinks.txt + symbols: overlays/ov007/symbols.txt + relocations: overlays/ov007/relocs.txt + - id: 8 + name: ov008 + object: ../../../build/jp/build/arm9_ov008.bin + hash: 8bc7de43650dad39 + delinks: overlays/ov008/delinks.txt + symbols: overlays/ov008/symbols.txt + relocations: overlays/ov008/relocs.txt + - id: 9 + name: ov009 + object: ../../../build/jp/build/arm9_ov009.bin + hash: afad180bb50ecbcc + delinks: overlays/ov009/delinks.txt + symbols: overlays/ov009/symbols.txt + relocations: overlays/ov009/relocs.txt + - id: 10 + name: ov010 + object: ../../../build/jp/build/arm9_ov010.bin + hash: 6624155b2f778022 + delinks: overlays/ov010/delinks.txt + symbols: overlays/ov010/symbols.txt + relocations: overlays/ov010/relocs.txt + - id: 11 + name: ov011 + object: ../../../build/jp/build/arm9_ov011.bin + hash: 16b1d7e48ca7adc0 + delinks: overlays/ov011/delinks.txt + symbols: overlays/ov011/symbols.txt + relocations: overlays/ov011/relocs.txt + - id: 12 + name: ov012 + object: ../../../build/jp/build/arm9_ov012.bin + hash: 4935a56ebb12821d + delinks: overlays/ov012/delinks.txt + symbols: overlays/ov012/symbols.txt + relocations: overlays/ov012/relocs.txt + - id: 13 + name: ov013 + object: ../../../build/jp/build/arm9_ov013.bin + hash: 6c2c4bdeeb17dae1 + delinks: overlays/ov013/delinks.txt + symbols: overlays/ov013/symbols.txt + relocations: overlays/ov013/relocs.txt + - id: 14 + name: ov014 + object: ../../../build/jp/build/arm9_ov014.bin + hash: db8d43c34e94c3f7 + delinks: overlays/ov014/delinks.txt + symbols: overlays/ov014/symbols.txt + relocations: overlays/ov014/relocs.txt + - id: 15 + name: ov015 + object: ../../../build/jp/build/arm9_ov015.bin + hash: e925351218a789e4 + delinks: overlays/ov015/delinks.txt + symbols: overlays/ov015/symbols.txt + relocations: overlays/ov015/relocs.txt + - id: 16 + name: ov016 + object: ../../../build/jp/build/arm9_ov016.bin + hash: 3f22fc748b7693a4 + delinks: overlays/ov016/delinks.txt + symbols: overlays/ov016/symbols.txt + relocations: overlays/ov016/relocs.txt + - id: 17 + name: ov017 + object: ../../../build/jp/build/arm9_ov017.bin + hash: 26c4c7b6b8cf46f8 + delinks: overlays/ov017/delinks.txt + symbols: overlays/ov017/symbols.txt + relocations: overlays/ov017/relocs.txt + - id: 18 + name: ov018 + object: ../../../build/jp/build/arm9_ov018.bin + hash: 17e3f9cbcde25029 + delinks: overlays/ov018/delinks.txt + symbols: overlays/ov018/symbols.txt + relocations: overlays/ov018/relocs.txt + - id: 19 + name: ov019 + object: ../../../build/jp/build/arm9_ov019.bin + hash: 7f9b5f4752141691 + delinks: overlays/ov019/delinks.txt + symbols: overlays/ov019/symbols.txt + relocations: overlays/ov019/relocs.txt + - id: 20 + name: ov020 + object: ../../../build/jp/build/arm9_ov020.bin + hash: 6681f1fcb8b60c53 + delinks: overlays/ov020/delinks.txt + symbols: overlays/ov020/symbols.txt + relocations: overlays/ov020/relocs.txt + - id: 21 + name: ov021 + object: ../../../build/jp/build/arm9_ov021.bin + hash: 2ee81d538079573c + delinks: overlays/ov021/delinks.txt + symbols: overlays/ov021/symbols.txt + relocations: overlays/ov021/relocs.txt + - id: 22 + name: ov022 + object: ../../../build/jp/build/arm9_ov022.bin + hash: d14e4b454e3abea6 + delinks: overlays/ov022/delinks.txt + symbols: overlays/ov022/symbols.txt + relocations: overlays/ov022/relocs.txt + - id: 23 + name: ov023 + object: ../../../build/jp/build/arm9_ov023.bin + hash: c6a300bc09236867 + delinks: overlays/ov023/delinks.txt + symbols: overlays/ov023/symbols.txt + relocations: overlays/ov023/relocs.txt + - id: 24 + name: ov024 + object: ../../../build/jp/build/arm9_ov024.bin + hash: 80934b4d9eedd075 + delinks: overlays/ov024/delinks.txt + symbols: overlays/ov024/symbols.txt + relocations: overlays/ov024/relocs.txt + - id: 25 + name: ov025 + object: ../../../build/jp/build/arm9_ov025.bin + hash: 070eb13654a44570 + delinks: overlays/ov025/delinks.txt + symbols: overlays/ov025/symbols.txt + relocations: overlays/ov025/relocs.txt + - id: 26 + name: ov026 + object: ../../../build/jp/build/arm9_ov026.bin + hash: ec767b145c7ec2a4 + delinks: overlays/ov026/delinks.txt + symbols: overlays/ov026/symbols.txt + relocations: overlays/ov026/relocs.txt + - id: 27 + name: ov027 + object: ../../../build/jp/build/arm9_ov027.bin + hash: 0886b04415d1ba91 + delinks: overlays/ov027/delinks.txt + symbols: overlays/ov027/symbols.txt + relocations: overlays/ov027/relocs.txt + - id: 28 + name: ov028 + object: ../../../build/jp/build/arm9_ov028.bin + hash: 113da9d6fdeef592 + delinks: overlays/ov028/delinks.txt + symbols: overlays/ov028/symbols.txt + relocations: overlays/ov028/relocs.txt + - id: 29 + name: ov029 + object: ../../../build/jp/build/arm9_ov029.bin + hash: 4e965927a9987ad9 + delinks: overlays/ov029/delinks.txt + symbols: overlays/ov029/symbols.txt + relocations: overlays/ov029/relocs.txt + - id: 30 + name: ov030 + object: ../../../build/jp/build/arm9_ov030.bin + hash: 849f555bb2d200b6 + delinks: overlays/ov030/delinks.txt + symbols: overlays/ov030/symbols.txt + relocations: overlays/ov030/relocs.txt + - id: 31 + name: ov031 + object: ../../../build/jp/build/arm9_ov031.bin + hash: 02eeae2ee7206227 + delinks: overlays/ov031/delinks.txt + symbols: overlays/ov031/symbols.txt + relocations: overlays/ov031/relocs.txt + - id: 32 + name: ov032 + object: ../../../build/jp/build/arm9_ov032.bin + hash: 94d66efad7b5c262 + delinks: overlays/ov032/delinks.txt + symbols: overlays/ov032/symbols.txt + relocations: overlays/ov032/relocs.txt + - id: 33 + name: ov033 + object: ../../../build/jp/build/arm9_ov033.bin + hash: 171fc41f30f0e9ed + delinks: overlays/ov033/delinks.txt + symbols: overlays/ov033/symbols.txt + relocations: overlays/ov033/relocs.txt + - id: 34 + name: ov034 + object: ../../../build/jp/build/arm9_ov034.bin + hash: cd7b87a1f0eeddf4 + delinks: overlays/ov034/delinks.txt + symbols: overlays/ov034/symbols.txt + relocations: overlays/ov034/relocs.txt + - id: 35 + name: ov035 + object: ../../../build/jp/build/arm9_ov035.bin + hash: 97b2df7c9c46043b + delinks: overlays/ov035/delinks.txt + symbols: overlays/ov035/symbols.txt + relocations: overlays/ov035/relocs.txt + - id: 36 + name: ov036 + object: ../../../build/jp/build/arm9_ov036.bin + hash: aabdcf6c7deb2ea9 + delinks: overlays/ov036/delinks.txt + symbols: overlays/ov036/symbols.txt + relocations: overlays/ov036/relocs.txt + - id: 37 + name: ov037 + object: ../../../build/jp/build/arm9_ov037.bin + hash: d60954da95379bb9 + delinks: overlays/ov037/delinks.txt + symbols: overlays/ov037/symbols.txt + relocations: overlays/ov037/relocs.txt + - id: 38 + name: ov038 + object: ../../../build/jp/build/arm9_ov038.bin + hash: 0b12a8886200833b + delinks: overlays/ov038/delinks.txt + symbols: overlays/ov038/symbols.txt + relocations: overlays/ov038/relocs.txt + - id: 39 + name: ov039 + object: ../../../build/jp/build/arm9_ov039.bin + hash: f274c2b0eef1d546 + delinks: overlays/ov039/delinks.txt + symbols: overlays/ov039/symbols.txt + relocations: overlays/ov039/relocs.txt + - id: 40 + name: ov040 + object: ../../../build/jp/build/arm9_ov040.bin + hash: 010e6b37818c442d + delinks: overlays/ov040/delinks.txt + symbols: overlays/ov040/symbols.txt + relocations: overlays/ov040/relocs.txt + - id: 41 + name: ov041 + object: ../../../build/jp/build/arm9_ov041.bin + hash: 5ca5af2610c8927b + delinks: overlays/ov041/delinks.txt + symbols: overlays/ov041/symbols.txt + relocations: overlays/ov041/relocs.txt + - id: 42 + name: ov042 + object: ../../../build/jp/build/arm9_ov042.bin + hash: 54ce5710c904864c + delinks: overlays/ov042/delinks.txt + symbols: overlays/ov042/symbols.txt + relocations: overlays/ov042/relocs.txt + - id: 43 + name: ov043 + object: ../../../build/jp/build/arm9_ov043.bin + hash: 3e0de449fc60d4c7 + delinks: overlays/ov043/delinks.txt + symbols: overlays/ov043/symbols.txt + relocations: overlays/ov043/relocs.txt + - id: 44 + name: ov044 + object: ../../../build/jp/build/arm9_ov044.bin + hash: ca2fe7306a1eedbb + delinks: overlays/ov044/delinks.txt + symbols: overlays/ov044/symbols.txt + relocations: overlays/ov044/relocs.txt + - id: 45 + name: ov045 + object: ../../../build/jp/build/arm9_ov045.bin + hash: 4b9c190c4273bcd6 + delinks: overlays/ov045/delinks.txt + symbols: overlays/ov045/symbols.txt + relocations: overlays/ov045/relocs.txt + - id: 46 + name: ov046 + object: ../../../build/jp/build/arm9_ov046.bin + hash: 29da2fc7a32a1622 + delinks: overlays/ov046/delinks.txt + symbols: overlays/ov046/symbols.txt + relocations: overlays/ov046/relocs.txt + - id: 47 + name: ov047 + object: ../../../build/jp/build/arm9_ov047.bin + hash: 0bc994210248f439 + delinks: overlays/ov047/delinks.txt + symbols: overlays/ov047/symbols.txt + relocations: overlays/ov047/relocs.txt + - id: 48 + name: ov048 + object: ../../../build/jp/build/arm9_ov048.bin + hash: 140c7ec22abd1d52 + delinks: overlays/ov048/delinks.txt + symbols: overlays/ov048/symbols.txt + relocations: overlays/ov048/relocs.txt + - id: 49 + name: ov049 + object: ../../../build/jp/build/arm9_ov049.bin + hash: 1451d0967cf79b76 + delinks: overlays/ov049/delinks.txt + symbols: overlays/ov049/symbols.txt + relocations: overlays/ov049/relocs.txt + - id: 50 + name: ov050 + object: ../../../build/jp/build/arm9_ov050.bin + hash: 45a4ebae6359940d + delinks: overlays/ov050/delinks.txt + symbols: overlays/ov050/symbols.txt + relocations: overlays/ov050/relocs.txt + - id: 51 + name: ov051 + object: ../../../build/jp/build/arm9_ov051.bin + hash: d9c0a5b98a5cbf2c + delinks: overlays/ov051/delinks.txt + symbols: overlays/ov051/symbols.txt + relocations: overlays/ov051/relocs.txt + - id: 52 + name: ov052 + object: ../../../build/jp/build/arm9_ov052.bin + hash: 75f8873ae19c9089 + delinks: overlays/ov052/delinks.txt + symbols: overlays/ov052/symbols.txt + relocations: overlays/ov052/relocs.txt + - id: 53 + name: ov053 + object: ../../../build/jp/build/arm9_ov053.bin + hash: f2594a14dccb24b5 + delinks: overlays/ov053/delinks.txt + symbols: overlays/ov053/symbols.txt + relocations: overlays/ov053/relocs.txt + - id: 54 + name: ov054 + object: ../../../build/jp/build/arm9_ov054.bin + hash: 17642eaf9f2e35a3 + delinks: overlays/ov054/delinks.txt + symbols: overlays/ov054/symbols.txt + relocations: overlays/ov054/relocs.txt + - id: 55 + name: ov055 + object: ../../../build/jp/build/arm9_ov055.bin + hash: 068df44dab4f95d1 + delinks: overlays/ov055/delinks.txt + symbols: overlays/ov055/symbols.txt + relocations: overlays/ov055/relocs.txt + - id: 56 + name: ov056 + object: ../../../build/jp/build/arm9_ov056.bin + hash: 8bab94301704ed5a + delinks: overlays/ov056/delinks.txt + symbols: overlays/ov056/symbols.txt + relocations: overlays/ov056/relocs.txt + - id: 57 + name: ov057 + object: ../../../build/jp/build/arm9_ov057.bin + hash: f238df4c5f88b6cc + delinks: overlays/ov057/delinks.txt + symbols: overlays/ov057/symbols.txt + relocations: overlays/ov057/relocs.txt + - id: 58 + name: ov058 + object: ../../../build/jp/build/arm9_ov058.bin + hash: d8a98b0d148c8185 + delinks: overlays/ov058/delinks.txt + symbols: overlays/ov058/symbols.txt + relocations: overlays/ov058/relocs.txt + - id: 59 + name: ov059 + object: ../../../build/jp/build/arm9_ov059.bin + hash: 881d75bb2d3e7556 + delinks: overlays/ov059/delinks.txt + symbols: overlays/ov059/symbols.txt + relocations: overlays/ov059/relocs.txt + - id: 60 + name: ov060 + object: ../../../build/jp/build/arm9_ov060.bin + hash: 56c648d5e390c9fe + delinks: overlays/ov060/delinks.txt + symbols: overlays/ov060/symbols.txt + relocations: overlays/ov060/relocs.txt + - id: 61 + name: ov061 + object: ../../../build/jp/build/arm9_ov061.bin + hash: a9636f817a93d656 + delinks: overlays/ov061/delinks.txt + symbols: overlays/ov061/symbols.txt + relocations: overlays/ov061/relocs.txt + - id: 62 + name: ov062 + object: ../../../build/jp/build/arm9_ov062.bin + hash: 478ee3de529c20f9 + delinks: overlays/ov062/delinks.txt + symbols: overlays/ov062/symbols.txt + relocations: overlays/ov062/relocs.txt + - id: 63 + name: ov063 + object: ../../../build/jp/build/arm9_ov063.bin + hash: 3312201a8bea8a67 + delinks: overlays/ov063/delinks.txt + symbols: overlays/ov063/symbols.txt + relocations: overlays/ov063/relocs.txt + - id: 64 + name: ov064 + object: ../../../build/jp/build/arm9_ov064.bin + hash: 36554bb51d287764 + delinks: overlays/ov064/delinks.txt + symbols: overlays/ov064/symbols.txt + relocations: overlays/ov064/relocs.txt + - id: 65 + name: ov065 + object: ../../../build/jp/build/arm9_ov065.bin + hash: abe0e7f1780906cc + delinks: overlays/ov065/delinks.txt + symbols: overlays/ov065/symbols.txt + relocations: overlays/ov065/relocs.txt + - id: 66 + name: ov066 + object: ../../../build/jp/build/arm9_ov066.bin + hash: 74f800a8d43f860c + delinks: overlays/ov066/delinks.txt + symbols: overlays/ov066/symbols.txt + relocations: overlays/ov066/relocs.txt + - id: 67 + name: ov067 + object: ../../../build/jp/build/arm9_ov067.bin + hash: 5769b10a3ecdc887 + delinks: overlays/ov067/delinks.txt + symbols: overlays/ov067/symbols.txt + relocations: overlays/ov067/relocs.txt + - id: 68 + name: ov068 + object: ../../../build/jp/build/arm9_ov068.bin + hash: 48cdefbbdf849f2f + delinks: overlays/ov068/delinks.txt + symbols: overlays/ov068/symbols.txt + relocations: overlays/ov068/relocs.txt + - id: 69 + name: ov069 + object: ../../../build/jp/build/arm9_ov069.bin + hash: 06f205095a57546a + delinks: overlays/ov069/delinks.txt + symbols: overlays/ov069/symbols.txt + relocations: overlays/ov069/relocs.txt + - id: 70 + name: ov070 + object: ../../../build/jp/build/arm9_ov070.bin + hash: 01e0e8ab104ed07d + delinks: overlays/ov070/delinks.txt + symbols: overlays/ov070/symbols.txt + relocations: overlays/ov070/relocs.txt + - id: 71 + name: ov071 + object: ../../../build/jp/build/arm9_ov071.bin + hash: 4bbf64a0af7199b4 + delinks: overlays/ov071/delinks.txt + symbols: overlays/ov071/symbols.txt + relocations: overlays/ov071/relocs.txt + - id: 72 + name: ov072 + object: ../../../build/jp/build/arm9_ov072.bin + hash: 285b1833676f73be + delinks: overlays/ov072/delinks.txt + symbols: overlays/ov072/symbols.txt + relocations: overlays/ov072/relocs.txt + - id: 73 + name: ov073 + object: ../../../build/jp/build/arm9_ov073.bin + hash: 2630cf1e03dde21a + delinks: overlays/ov073/delinks.txt + symbols: overlays/ov073/symbols.txt + relocations: overlays/ov073/relocs.txt + - id: 74 + name: ov074 + object: ../../../build/jp/build/arm9_ov074.bin + hash: 22e456eb43a86e0c + delinks: overlays/ov074/delinks.txt + symbols: overlays/ov074/symbols.txt + relocations: overlays/ov074/relocs.txt + - id: 75 + name: ov075 + object: ../../../build/jp/build/arm9_ov075.bin + hash: 2bacd3ab0167c646 + delinks: overlays/ov075/delinks.txt + symbols: overlays/ov075/symbols.txt + relocations: overlays/ov075/relocs.txt + - id: 76 + name: ov076 + object: ../../../build/jp/build/arm9_ov076.bin + hash: 47016d373353c0fe + delinks: overlays/ov076/delinks.txt + symbols: overlays/ov076/symbols.txt + relocations: overlays/ov076/relocs.txt + - id: 77 + name: ov077 + object: ../../../build/jp/build/arm9_ov077.bin + hash: 48c603e45387d0f3 + delinks: overlays/ov077/delinks.txt + symbols: overlays/ov077/symbols.txt + relocations: overlays/ov077/relocs.txt + - id: 78 + name: ov078 + object: ../../../build/jp/build/arm9_ov078.bin + hash: a4b2e6c38246d88d + delinks: overlays/ov078/delinks.txt + symbols: overlays/ov078/symbols.txt + relocations: overlays/ov078/relocs.txt + - id: 79 + name: ov079 + object: ../../../build/jp/build/arm9_ov079.bin + hash: 57ea89e66b221d09 + delinks: overlays/ov079/delinks.txt + symbols: overlays/ov079/symbols.txt + relocations: overlays/ov079/relocs.txt + - id: 80 + name: ov080 + object: ../../../build/jp/build/arm9_ov080.bin + hash: 1d13e3ca97d22f45 + delinks: overlays/ov080/delinks.txt + symbols: overlays/ov080/symbols.txt + relocations: overlays/ov080/relocs.txt + - id: 81 + name: ov081 + object: ../../../build/jp/build/arm9_ov081.bin + hash: 86adadc83141d9bc + delinks: overlays/ov081/delinks.txt + symbols: overlays/ov081/symbols.txt + relocations: overlays/ov081/relocs.txt + - id: 82 + name: ov082 + object: ../../../build/jp/build/arm9_ov082.bin + hash: f8387c8e1e50f4ae + delinks: overlays/ov082/delinks.txt + symbols: overlays/ov082/symbols.txt + relocations: overlays/ov082/relocs.txt + - id: 83 + name: ov083 + object: ../../../build/jp/build/arm9_ov083.bin + hash: e1ee946fbf80386e + delinks: overlays/ov083/delinks.txt + symbols: overlays/ov083/symbols.txt + relocations: overlays/ov083/relocs.txt + - id: 84 + name: ov084 + object: ../../../build/jp/build/arm9_ov084.bin + hash: d6fe7d93730d75ad + delinks: overlays/ov084/delinks.txt + symbols: overlays/ov084/symbols.txt + relocations: overlays/ov084/relocs.txt + - id: 85 + name: ov085 + object: ../../../build/jp/build/arm9_ov085.bin + hash: 24a358413192a357 + delinks: overlays/ov085/delinks.txt + symbols: overlays/ov085/symbols.txt + relocations: overlays/ov085/relocs.txt + - id: 86 + name: ov086 + object: ../../../build/jp/build/arm9_ov086.bin + hash: b72be41ad68bd021 + delinks: overlays/ov086/delinks.txt + symbols: overlays/ov086/symbols.txt + relocations: overlays/ov086/relocs.txt + - id: 87 + name: ov087 + object: ../../../build/jp/build/arm9_ov087.bin + hash: f7ab2c84015b9e47 + delinks: overlays/ov087/delinks.txt + symbols: overlays/ov087/symbols.txt + relocations: overlays/ov087/relocs.txt + - id: 88 + name: ov088 + object: ../../../build/jp/build/arm9_ov088.bin + hash: 04af2eb27bbe99cc + delinks: overlays/ov088/delinks.txt + symbols: overlays/ov088/symbols.txt + relocations: overlays/ov088/relocs.txt + - id: 89 + name: ov089 + object: ../../../build/jp/build/arm9_ov089.bin + hash: a5df7ec71cc90cae + delinks: overlays/ov089/delinks.txt + symbols: overlays/ov089/symbols.txt + relocations: overlays/ov089/relocs.txt + - id: 90 + name: ov090 + object: ../../../build/jp/build/arm9_ov090.bin + hash: 5995b58c40606762 + delinks: overlays/ov090/delinks.txt + symbols: overlays/ov090/symbols.txt + relocations: overlays/ov090/relocs.txt + - id: 91 + name: ov091 + object: ../../../build/jp/build/arm9_ov091.bin + hash: 0855f5208b3ffe85 + delinks: overlays/ov091/delinks.txt + symbols: overlays/ov091/symbols.txt + relocations: overlays/ov091/relocs.txt + - id: 92 + name: ov092 + object: ../../../build/jp/build/arm9_ov092.bin + hash: 245dc598a982cad8 + delinks: overlays/ov092/delinks.txt + symbols: overlays/ov092/symbols.txt + relocations: overlays/ov092/relocs.txt + - id: 93 + name: ov093 + object: ../../../build/jp/build/arm9_ov093.bin + hash: 23cd81f613bd26cc + delinks: overlays/ov093/delinks.txt + symbols: overlays/ov093/symbols.txt + relocations: overlays/ov093/relocs.txt + - id: 94 + name: ov094 + object: ../../../build/jp/build/arm9_ov094.bin + hash: a1b72300e84d645b + delinks: overlays/ov094/delinks.txt + symbols: overlays/ov094/symbols.txt + relocations: overlays/ov094/relocs.txt + - id: 95 + name: ov095 + object: ../../../build/jp/build/arm9_ov095.bin + hash: 0d5172cf12f06de5 + delinks: overlays/ov095/delinks.txt + symbols: overlays/ov095/symbols.txt + relocations: overlays/ov095/relocs.txt + - id: 96 + name: ov096 + object: ../../../build/jp/build/arm9_ov096.bin + hash: ed9e823942851138 + delinks: overlays/ov096/delinks.txt + symbols: overlays/ov096/symbols.txt + relocations: overlays/ov096/relocs.txt + - id: 97 + name: ov097 + object: ../../../build/jp/build/arm9_ov097.bin + hash: a3051d1c98a8cc28 + delinks: overlays/ov097/delinks.txt + symbols: overlays/ov097/symbols.txt + relocations: overlays/ov097/relocs.txt + - id: 98 + name: ov098 + object: ../../../build/jp/build/arm9_ov098.bin + hash: 9aeb232782a47c34 + delinks: overlays/ov098/delinks.txt + symbols: overlays/ov098/symbols.txt + relocations: overlays/ov098/relocs.txt + - id: 99 + name: ov099 + object: ../../../build/jp/build/arm9_ov099.bin + hash: 3efeac962f763f9d + delinks: overlays/ov099/delinks.txt + symbols: overlays/ov099/symbols.txt + relocations: overlays/ov099/relocs.txt + - id: 100 + name: ov100 + object: ../../../build/jp/build/arm9_ov100.bin + hash: a3051d1c98a8cc28 + delinks: overlays/ov100/delinks.txt + symbols: overlays/ov100/symbols.txt + relocations: overlays/ov100/relocs.txt + - id: 101 + name: ov101 + object: ../../../build/jp/build/arm9_ov101.bin + hash: 662d5eb7e791eba0 + delinks: overlays/ov101/delinks.txt + symbols: overlays/ov101/symbols.txt + relocations: overlays/ov101/relocs.txt + - id: 102 + name: ov102 + object: ../../../build/jp/build/arm9_ov102.bin + hash: c5f773853b363473 + delinks: overlays/ov102/delinks.txt + symbols: overlays/ov102/symbols.txt + relocations: overlays/ov102/relocs.txt + - id: 103 + name: ov103 + object: ../../../build/jp/build/arm9_ov103.bin + hash: 17458a91585e1979 + delinks: overlays/ov103/delinks.txt + symbols: overlays/ov103/symbols.txt + relocations: overlays/ov103/relocs.txt + - id: 104 + name: ov104 + object: ../../../build/jp/build/arm9_ov104.bin + hash: 4ce76498d9bd532f + delinks: overlays/ov104/delinks.txt + symbols: overlays/ov104/symbols.txt + relocations: overlays/ov104/relocs.txt + - id: 105 + name: ov105 + object: ../../../build/jp/build/arm9_ov105.bin + hash: fe5d169fce528d49 + delinks: overlays/ov105/delinks.txt + symbols: overlays/ov105/symbols.txt + relocations: overlays/ov105/relocs.txt + - id: 106 + name: ov106 + object: ../../../build/jp/build/arm9_ov106.bin + hash: b6e99bff4a14a1a5 + delinks: overlays/ov106/delinks.txt + symbols: overlays/ov106/symbols.txt + relocations: overlays/ov106/relocs.txt + - id: 107 + name: ov107 + object: ../../../build/jp/build/arm9_ov107.bin + hash: 5321c14a37e3419a + delinks: overlays/ov107/delinks.txt + symbols: overlays/ov107/symbols.txt + relocations: overlays/ov107/relocs.txt + - id: 108 + name: ov108 + object: ../../../build/jp/build/arm9_ov108.bin + hash: 07696cd45feccf58 + delinks: overlays/ov108/delinks.txt + symbols: overlays/ov108/symbols.txt + relocations: overlays/ov108/relocs.txt + - id: 109 + name: ov109 + object: ../../../build/jp/build/arm9_ov109.bin + hash: f2d981a8ce9a609a + delinks: overlays/ov109/delinks.txt + symbols: overlays/ov109/symbols.txt + relocations: overlays/ov109/relocs.txt + - id: 110 + name: ov110 + object: ../../../build/jp/build/arm9_ov110.bin + hash: cc3413282ac716ba + delinks: overlays/ov110/delinks.txt + symbols: overlays/ov110/symbols.txt + relocations: overlays/ov110/relocs.txt + - id: 111 + name: ov111 + object: ../../../build/jp/build/arm9_ov111.bin + hash: f66434d3e4ae7193 + delinks: overlays/ov111/delinks.txt + symbols: overlays/ov111/symbols.txt + relocations: overlays/ov111/relocs.txt + - id: 112 + name: ov112 + object: ../../../build/jp/build/arm9_ov112.bin + hash: daa3e97c9e787403 + delinks: overlays/ov112/delinks.txt + symbols: overlays/ov112/symbols.txt + relocations: overlays/ov112/relocs.txt + - id: 113 + name: ov113 + object: ../../../build/jp/build/arm9_ov113.bin + hash: 0130c7f74000863e + delinks: overlays/ov113/delinks.txt + symbols: overlays/ov113/symbols.txt + relocations: overlays/ov113/relocs.txt diff --git a/config/jp/arm9/dtcm/symbols.txt b/config/jp/arm9/dtcm/symbols.txt index 401c501f..8aa57f58 100644 --- a/config/jp/arm9/dtcm/symbols.txt +++ b/config/jp/arm9/dtcm/symbols.txt @@ -29,7 +29,6 @@ data_027e0200 kind:bss addr:0x027e0200 data_027e0204 kind:bss addr:0x027e0204 data_027e0208 kind:bss addr:0x027e0208 data_027e0210 kind:bss addr:0x027e0210 -data_027e0254 kind:bss addr:0x027e0254 data_027e0288 kind:bss addr:0x027e0288 data_027e02b0 kind:bss addr:0x027e02b0 gGeomMatrix kind:bss addr:0x027e02c4 diff --git a/config/jp/arm9/overlays/ov000/relocs.txt b/config/jp/arm9/overlays/ov000/relocs.txt index 48eb954a..9901e8ac 100644 --- a/config/jp/arm9/overlays/ov000/relocs.txt +++ b/config/jp/arm9/overlays/ov000/relocs.txt @@ -3316,6 +3316,9 @@ from:0x02075e34 kind:arm_call to:0x02074800 module:overlay(0) from:0x02075e3c kind:arm_call to:0x02011ff4 module:main from:0x02075e54 kind:arm_call to:0x02062c50 module:overlay(0) from:0x02075e5c kind:arm_call to:0x02074800 module:overlay(0) +from:0x02075e70 kind:arm_branch to:0x02075e20 module:overlay(0) +from:0x02075e80 kind:arm_branch to:0x02075e14 module:overlay(0) +from:0x02075e90 kind:arm_branch to:0x02075e48 module:overlay(0) from:0x02075ea8 kind:arm_call to:0x0207480c module:overlay(0) from:0x02075ecc kind:arm_call to:0x02016644 module:main from:0x02075ed8 kind:arm_call to:0x02068928 module:overlay(0) @@ -9189,6 +9192,7 @@ from:0x020b0af4 kind:load to:0x02123c90 module:overlay(34) from:0x020b0af8 kind:load to:0x021602f0 module:overlay(86) from:0x020b0afc kind:load to:0x02102d54 module:overlay(31) from:0x020b0b00 kind:load to:0x021531bc module:overlay(58) +from:0x020b0b04 kind:load to:0x0210d81c module:overlay(31) from:0x020b0b08 kind:load to:0x0211e4a4 module:overlay(39) from:0x020b0b0c kind:load to:0x0215c5d8 module:overlay(69) from:0x020b0b10 kind:load to:0x0215ce70 module:overlay(77) @@ -9898,16 +9902,19 @@ from:0x020b3b04 kind:load to:0x02074824 module:overlay(0) from:0x020b3b08 kind:load to:0x02075dcc module:overlay(0) from:0x020b3b0c kind:load to:0x02074830 module:overlay(0) from:0x020b3b10 kind:load to:0x02075e14 module:overlay(0) +from:0x020b3b1c kind:load to:0x02075e88 module:overlay(0) from:0x020b3b20 kind:load to:0x02075e68 module:overlay(0) from:0x020b3b24 kind:load to:0x02062c68 module:overlay(0) from:0x020b3b28 kind:load to:0x02062c6c module:overlay(0) from:0x020b3b2c kind:load to:0x02062c70 module:overlay(0) +from:0x020b3b30 kind:load to:0x02075e78 module:overlay(0) from:0x020b3b34 kind:load to:0x02062c78 module:overlay(0) from:0x020b3b38 kind:load to:0x02062c7c module:overlay(0) from:0x020b3b3c kind:load to:0x02062c80 module:overlay(0) from:0x020b3b40 kind:load to:0x02062c84 module:overlay(0) from:0x020b3b4c kind:load to:0x0207662c module:overlay(0) from:0x020b3b50 kind:load to:0x020766a0 module:overlay(0) +from:0x020b3b54 kind:load to:0x02075e98 module:overlay(0) from:0x020b3b58 kind:load to:0x02075ea0 module:overlay(0) from:0x020b3b5c kind:load to:0x02075ee4 module:overlay(0) from:0x020b3b60 kind:load to:0x02076130 module:overlay(0) diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 75dc4fea..ec48d63f 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -1168,7 +1168,10 @@ func_ov000_02075dcc kind:function(arm,size=0x48) addr:0x02075dcc func_ov000_02075e14 kind:function(arm,size=0xc) addr:0x02075e14 _ZN19func_ov000_02075e20D0Ev kind:function(arm,size=0x28) addr:0x02075e20 _ZN19func_ov000_02075e48D2Ev kind:function(arm,size=0x20) addr:0x02075e48 -func_ov000_02075e68 kind:function(arm,size=0x38) addr:0x02075e68 +func_ov000_02075e68 kind:function(arm,size=0x10) addr:0x02075e68 +func_ov000_02075e78 kind:function(arm,size=0x10) addr:0x02075e78 +func_ov000_02075e88 kind:function(arm,size=0x10) addr:0x02075e88 +func_ov000_02075e98 kind:function(arm,size=0x8) addr:0x02075e98 func_ov000_02075ea0 kind:function(arm,size=0x44) addr:0x02075ea0 func_ov000_02075ee4 kind:function(arm,size=0x24c) addr:0x02075ee4 func_ov000_02076130 kind:function(arm,size=0x18) addr:0x02076130 diff --git a/config/jp/arm9/overlays/ov001/delinks.txt b/config/jp/arm9/overlays/ov001/delinks.txt index 5d24c7e8..9b9c4f89 100644 --- a/config/jp/arm9/overlays/ov001/delinks.txt +++ b/config/jp/arm9/overlays/ov001/delinks.txt @@ -1,9 +1,9 @@ - .text start:0x020b7d40 end:0x020c2278 kind:code align:32 - .rodata start:0x020c2278 end:0x020c4068 kind:rodata align:4 + .text start:0x020b7d40 end:0x020c3e14 kind:code align:32 + .rodata start:0x020c3e14 end:0x020c4066 kind:rodata align:4 .init start:0x020c4068 end:0x020c4154 kind:code align:4 .ctor start:0x020c4154 end:0x020c4174 kind:rodata align:4 .data start:0x020c4180 end:0x020c4820 kind:data align:32 - .bss start:0x020c4820 end:0x020c5f60 kind:bss align:32 + .bss start:0x020c4820 end:0x020c5f44 kind:bss align:32 src/001_SceneInit/SceneInitializers_001.cpp: .text start:0x020b7d40 end:0x020b8c58 @@ -191,7 +191,7 @@ src/001_SceneInit/code_020bfeec.cpp: src/001_SceneInit/Game/AdventureModeManager_001.cpp: .text start:0x020c17c8 end:0x020c2198 - .rodata start:0x020c3fc0 end:0x020c4060 + .rodata start:0x020c3fc0 end:0x020c4048 src/001_SceneInit/Game/GameModeAdventure_001.cpp: complete @@ -204,3 +204,82 @@ src/001_SceneInit/code_020c099c.cpp: .init start:0x020c4144 end:0x020c4154 .ctor start:0x020c415c end:0x020c4160 .data start:0x020c4814 end:0x020c4818 + +libs/dsprot/src/dsprot_main.c: + complete + .text start:0x020c2278 end:0x020c2688 + +libs/dsprot/src/dsprot_main_decryptor.s: + complete + .text start:0x020c2688 end:0x020c2958 + +libs/dsprot/src/dsprot_main_decoder.s: + complete + .text start:0x020c2958 end:0x020c29a4 + .ctor start:0x020c4160 end:0x020c4164 + +libs/dsprot/src/integrity.c: + complete + .text start:0x020c29a4 end:0x020c2d7c + +libs/dsprot/src/integrity_decryptor.s: + complete + .text start:0x020c2d7c end:0x020c2f5c + +libs/dsprot/src/integrity_decoder.s: + complete + .text start:0x020c2f5c end:0x020c2f94 + .ctor start:0x020c4164 end:0x020c4168 + +libs/dsprot/src/encryptor.c: + complete + .text start:0x020c2f94 end:0x020c3218 + +libs/dsprot/src/encryptor_decryptor.s: + complete + .text start:0x020c3218 end:0x020c3240 + .ctor start:0x020c4168 end:0x020c416c + +libs/dsprot/src/mac_owner.c: + complete + .text start:0x020c3240 end:0x020c33a0 + .rodata start:0x020c4060 end:0x020c4066 + +libs/dsprot/src/mac_owner_decryptor.s: + complete + .text start:0x020c33a0 end:0x020c3490 + +libs/dsprot/src/rom_util.c: + complete + .text start:0x020c3490 end:0x020c366c + +libs/dsprot/src/rom_util_decryptor.s: + complete + .text start:0x020c366c end:0x020c375c + +libs/dsprot/src/rom_test.c: + complete + .text start:0x020c375c end:0x020c38e4 + +libs/dsprot/src/rom_test_decryptor.s: + complete + .text start:0x020c38e4 end:0x020c39d4 + +libs/dsprot/src/coretests_decoder.s: + complete + .text start:0x020c39d4 end:0x020c3a1c + .ctor start:0x020c416c end:0x020c4170 + +libs/dsprot/src/rc4.c: + complete + .text start:0x020c3a1c end:0x020c3dc4 + +libs/dsprot/src/rc4_decoder.s: + complete + .text start:0x020c3dc4 end:0x020c3e14 + .ctor start:0x020c4170 end:0x020c4174 + +libs/dsprot/src/extra.c: + complete + .rodata start:0x020c4048 end:0x020c4060 + .bss start:0x020c5f40 end:0x020c5f44 diff --git a/config/jp/arm9/overlays/ov001/relocs.txt b/config/jp/arm9/overlays/ov001/relocs.txt index 7c6b7d98..e6a4cda5 100644 --- a/config/jp/arm9/overlays/ov001/relocs.txt +++ b/config/jp/arm9/overlays/ov001/relocs.txt @@ -1920,7 +1920,7 @@ from:0x020c086e kind:thumb_call_arm to:0x0201662c module:main from:0x020c0874 kind:thumb_call_arm to:0x020c08e0 module:overlay(1) from:0x020c088c kind:thumb_call to:0x020a1c38 module:overlay(0) from:0x020c08a8 kind:arm_call to:0x02016614 module:main -from:0x020c08cc kind:load to:0x020c5750 module:overlay(17) add:0x8 +from:0x020c08cc kind:load to:0x020c4824 add:0xf34 module:overlay(1) from:0x020c08dc kind:load to:0x027e0cec module:dtcm from:0x020c08f0 kind:load to:0x027e0cec module:dtcm from:0x020c0900 kind:load to:0x0204af1c module:main @@ -2318,41 +2318,207 @@ from:0x020c2242 kind:thumb_call_arm to:0x020c2868 module:overlay(1) from:0x020c226c kind:load to:0x020c21f1 module:overlay(1) from:0x020c2270 kind:load to:0x020c2215 module:overlay(1) from:0x020c2274 kind:load to:0x020c5f3c module:overlay(1) -from:0x020c2498 kind:load to:0x020c417c module:overlays(2,4) -from:0x020c26f0 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2768 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c27e0 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2858 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c28d0 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2948 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2970 kind:load to:0x020c3b00 module:overlay(1) -from:0x020c2de4 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2e5c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2ed4 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2f4c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2f6c kind:load to:0x020c417c module:overlays(2,4) +from:0x020c2324 kind:load to:0x020c38e4 add:0x1400 module:overlay(1) +from:0x020c2328 kind:load to:0x020c2e6c add:0x1400 module:overlay(1) +from:0x020c23dc kind:load to:0x020c395c add:0x1400 module:overlay(1) +from:0x020c23e0 kind:load to:0x020c2ee4 add:0x1400 module:overlay(1) +from:0x020c2494 kind:load to:0x020c33a0 add:0x1400 module:overlay(1) +from:0x020c2498 kind:load to:0x020c2d7c add:0x1400 module:overlay(1) +from:0x020c254c kind:load to:0x020c3418 add:0x1400 module:overlay(1) +from:0x020c2550 kind:load to:0x020c2df4 add:0x1400 module:overlay(1) +from:0x020c26a8 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c26d4 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c26f0 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c26f4 kind:load to:0x020c5f40 add:0x14ac module:overlay(1) +from:0x020c26f8 kind:load to:0x020c5f40 add:0x428b module:overlay(1) +from:0x020c26fc kind:load to:0x020c2278 add:0x1400 module:overlay(1) +from:0x020c2720 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c274c kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c2768 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c276c kind:load to:0x020c5f40 add:0x14ac module:overlay(1) +from:0x020c2770 kind:load to:0x020c5f40 add:0x428b module:overlay(1) +from:0x020c2774 kind:load to:0x020c2330 add:0x1400 module:overlay(1) +from:0x020c2798 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c27c4 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c27e0 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c27e4 kind:load to:0x020c5f40 add:0x14ac module:overlay(1) +from:0x020c27e8 kind:load to:0x020c5f40 add:0x428b module:overlay(1) +from:0x020c27ec kind:load to:0x020c23e8 add:0x1400 module:overlay(1) +from:0x020c2810 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c283c kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c2858 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c285c kind:load to:0x020c5f40 add:0x14ac module:overlay(1) +from:0x020c2860 kind:load to:0x020c5f40 add:0x428b module:overlay(1) +from:0x020c2864 kind:load to:0x020c24a0 add:0x1400 module:overlay(1) +from:0x020c2888 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c28b4 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c28d0 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c28d4 kind:load to:0x020c5f40 add:0x1494 module:overlay(1) +from:0x020c28d8 kind:load to:0x020c5f40 add:0x428b module:overlay(1) +from:0x020c28dc kind:load to:0x020c2558 add:0x1400 module:overlay(1) +from:0x020c2900 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c292c kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c2948 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c294c kind:load to:0x020c5f40 add:0x1494 module:overlay(1) +from:0x020c2950 kind:load to:0x020c5f40 add:0x428b module:overlay(1) +from:0x020c2954 kind:load to:0x020c25f0 add:0x1400 module:overlay(1) +from:0x020c2960 kind:arm_call to:0x020c2ff0 module:overlay(1) +from:0x020c2968 kind:load to:0x020c2688 add:0x1400 module:overlay(1) +from:0x020c296c kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2970 kind:load to:0x020c2700 add:0x1400 module:overlay(1) +from:0x020c2974 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2978 kind:load to:0x020c2778 add:0x1400 module:overlay(1) +from:0x020c297c kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2980 kind:load to:0x020c27f0 add:0x1400 module:overlay(1) +from:0x020c2984 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2988 kind:load to:0x020c2868 add:0x1400 module:overlay(1) +from:0x020c298c kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2990 kind:load to:0x020c28e0 add:0x1400 module:overlay(1) +from:0x020c2994 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c29a0 kind:load to:0x020c4048 add:0x1400 module:overlay(1) +from:0x020c2a78 kind:load to:0x020c33a0 add:0x1400 module:overlay(1) +from:0x020c2b8c kind:load to:0x020c3418 add:0x1400 module:overlay(1) +from:0x020c2c64 kind:load to:0x020c38e4 add:0x1400 module:overlay(1) +from:0x020c2d78 kind:load to:0x020c395c add:0x1400 module:overlay(1) +from:0x020c2d9c kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c2dc8 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c2de4 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c2de8 kind:load to:0x020c5f40 add:0x14d4 module:overlay(1) +from:0x020c2dec kind:load to:0x020c5f40 add:0xd228 module:overlay(1) +from:0x020c2df0 kind:load to:0x020c29a4 add:0x1400 module:overlay(1) +from:0x020c2e14 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c2e40 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c2e5c kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c2e60 kind:load to:0x020c5f40 add:0x1510 module:overlay(1) +from:0x020c2e64 kind:load to:0x020c5f40 add:0xd228 module:overlay(1) +from:0x020c2e68 kind:load to:0x020c2a7c add:0x1400 module:overlay(1) +from:0x020c2e8c kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c2eb8 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c2ed4 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c2ed8 kind:load to:0x020c5f40 add:0x14d4 module:overlay(1) +from:0x020c2edc kind:load to:0x020c5f40 add:0xd228 module:overlay(1) +from:0x020c2ee0 kind:load to:0x020c2b90 add:0x1400 module:overlay(1) +from:0x020c2f04 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c2f30 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c2f4c kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c2f50 kind:load to:0x020c5f40 add:0x1510 module:overlay(1) +from:0x020c2f54 kind:load to:0x020c5f40 add:0xd228 module:overlay(1) +from:0x020c2f58 kind:load to:0x020c2c68 add:0x1400 module:overlay(1) +from:0x020c2f64 kind:arm_call to:0x020c2ff0 module:overlay(1) +from:0x020c2f6c kind:load to:0x020c2d7c add:0x1400 module:overlay(1) +from:0x020c2f70 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2f74 kind:load to:0x020c2df4 add:0x1400 module:overlay(1) +from:0x020c2f78 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2f7c kind:load to:0x020c2e6c add:0x1400 module:overlay(1) +from:0x020c2f80 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2f84 kind:load to:0x020c2ee4 add:0x1400 module:overlay(1) +from:0x020c2f88 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c2fa0 kind:arm_call to:0x02028b84 module:main +from:0x020c2fac kind:arm_call to:0x02028bc0 module:main +from:0x020c3038 kind:arm_call to:0x020c2fb4 module:overlay(1) +from:0x020c30e4 kind:arm_call to:0x020c2f94 module:overlay(1) from:0x020c30f8 kind:load to:0x020c5f40 module:overlay(1) +from:0x020c3168 kind:arm_call to:0x020c3d6c module:overlay(1) +from:0x020c3174 kind:arm_call to:0x020c2f94 module:overlay(1) from:0x020c3184 kind:load to:0x020c5f40 module:overlay(1) +from:0x020c31f8 kind:arm_call to:0x020c3d14 module:overlay(1) +from:0x020c3204 kind:arm_call to:0x020c2f94 module:overlay(1) from:0x020c3214 kind:load to:0x020c5f40 module:overlay(1) -from:0x020c322c kind:load to:0x020c73cc module:overlay(25) +from:0x020c3220 kind:arm_call to:0x020c2ff0 module:overlay(1) +from:0x020c3228 kind:load to:0x020c3188 add:0x1400 module:overlay(1) +from:0x020c322c kind:load to:0x020c5f40 add:0x148c module:overlay(1) +from:0x020c3230 kind:load to:0x020c3100 add:0x1400 module:overlay(1) +from:0x020c3234 kind:load to:0x020c5f40 add:0x1484 module:overlay(1) +from:0x020c324c kind:arm_call to:0x02029824 module:main +from:0x020c3288 kind:arm_call to:0x02029840 module:main from:0x020c32ec kind:load to:0x020c4060 module:overlay(1) +from:0x020c32fc kind:arm_call to:0x02029824 module:main +from:0x020c3338 kind:arm_call to:0x02029840 module:main from:0x020c339c kind:load to:0x020c4060 module:overlay(1) -from:0x020c3408 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c3410 kind:load to:0x020d3b2a module:overlay(19) -from:0x020c3480 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c3488 kind:load to:0x020d3b2a module:overlay(19) -from:0x020c36d4 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c36dc kind:load to:0x020d3b2a module:overlay(19) -from:0x020c374c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c3750 kind:load to:0x020c7394 module:overlay(25) -from:0x020c3754 kind:load to:0x020d3b2a module:overlay(19) -from:0x020c394c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c3954 kind:load to:0x020d3b2a module:overlay(19) -from:0x020c39c4 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c39cc kind:load to:0x020d3b2a module:overlay(19) -from:0x020c3de0 kind:load to:0x020c738c module:overlay(25) -from:0x020c3e00 kind:load to:0x020c7398 module:overlay(25) -from:0x020c3e08 kind:load to:0x020c7398 module:overlay(25) +from:0x020c33c0 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c33ec kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c3408 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c340c kind:load to:0x020c5f40 add:0x14ac module:overlay(1) +from:0x020c3410 kind:load to:0x020c5f40 add:0xdbea module:overlay(1) +from:0x020c3414 kind:load to:0x020c3240 add:0x1400 module:overlay(1) +from:0x020c3438 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c3464 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c3480 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c3484 kind:load to:0x020c5f40 add:0x14ac module:overlay(1) +from:0x020c3488 kind:load to:0x020c5f40 add:0xdbea module:overlay(1) +from:0x020c348c kind:load to:0x020c32f0 add:0x1400 module:overlay(1) +from:0x020c34a4 kind:arm_call to:0x02027c68 module:main +from:0x020c34b4 kind:arm_call to:0x02032240 module:main +from:0x020c35f8 kind:arm_call to:0x0203225c module:main +from:0x020c3600 kind:arm_call to:0x02027cc0 module:main +from:0x020c368c kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c36b8 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c36d4 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c36d8 kind:load to:0x020c5f40 add:0x157c module:overlay(1) +from:0x020c36dc kind:load to:0x020c5f40 add:0xdbea module:overlay(1) +from:0x020c36e0 kind:load to:0x020c3490 add:0x1400 module:overlay(1) +from:0x020c3704 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c3730 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c374c kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c3750 kind:load to:0x020c5f40 add:0x1454 module:overlay(1) +from:0x020c3754 kind:load to:0x020c5f40 add:0xdbea module:overlay(1) +from:0x020c3758 kind:load to:0x020c3614 add:0x1400 module:overlay(1) +from:0x020c3790 kind:arm_call to:0x020c366c module:overlay(1) +from:0x020c379c kind:arm_call to:0x020c36e4 module:overlay(1) +from:0x020c3854 kind:arm_call to:0x020c366c module:overlay(1) +from:0x020c3860 kind:arm_call to:0x020c36e4 module:overlay(1) +from:0x020c3904 kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c3930 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c394c kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c3950 kind:load to:0x020c5f40 add:0x14c4 module:overlay(1) +from:0x020c3954 kind:load to:0x020c5f40 add:0xdbea module:overlay(1) +from:0x020c3958 kind:load to:0x020c375c add:0x1400 module:overlay(1) +from:0x020c397c kind:arm_call to:0x020c3100 module:overlay(1) +from:0x020c39a8 kind:arm_call to:0x020c3188 module:overlay(1) +from:0x020c39c4 kind:load to:0x020c5f40 add:0x1 module:overlay(1) +from:0x020c39c8 kind:load to:0x020c5f40 add:0x14c4 module:overlay(1) +from:0x020c39cc kind:load to:0x020c5f40 add:0xdbea module:overlay(1) +from:0x020c39d0 kind:load to:0x020c3820 add:0x1400 module:overlay(1) +from:0x020c39dc kind:arm_call to:0x020c2ff0 module:overlay(1) +from:0x020c39e4 kind:load to:0x020c38e4 add:0x1400 module:overlay(1) +from:0x020c39e8 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c39ec kind:load to:0x020c395c add:0x1400 module:overlay(1) +from:0x020c39f0 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c39f4 kind:load to:0x020c33a0 add:0x1400 module:overlay(1) +from:0x020c39f8 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c39fc kind:load to:0x020c3418 add:0x1400 module:overlay(1) +from:0x020c3a00 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c3a04 kind:load to:0x020c366c add:0x1400 module:overlay(1) +from:0x020c3a08 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c3a0c kind:load to:0x020c36e4 add:0x1400 module:overlay(1) +from:0x020c3a10 kind:load to:0x020c5f40 add:0x1468 module:overlay(1) +from:0x020c3b2c kind:arm_call to:0x020c3adc module:overlay(1) +from:0x020c3b48 kind:arm_call to:0x020c2fb4 module:overlay(1) +from:0x020c3bb8 kind:arm_call to:0x020c3a90 module:overlay(1) +from:0x020c3bcc kind:arm_call to:0x020c3a90 module:overlay(1) +from:0x020c3c34 kind:arm_call to:0x020c3adc module:overlay(1) +from:0x020c3c50 kind:arm_call to:0x020c2fb4 module:overlay(1) +from:0x020c3cc0 kind:arm_call to:0x020c3a90 module:overlay(1) +from:0x020c3cd4 kind:arm_call to:0x020c3a90 module:overlay(1) +from:0x020c3d38 kind:arm_call to:0x020c3a1c module:overlay(1) +from:0x020c3d4c kind:arm_call to:0x020c3b00 module:overlay(1) +from:0x020c3d90 kind:arm_call to:0x020c3a1c module:overlay(1) +from:0x020c3da4 kind:arm_call to:0x020c3c08 module:overlay(1) +from:0x020c3dcc kind:arm_call to:0x020c2ff0 module:overlay(1) +from:0x020c3dd4 kind:load to:0x020c3a1c add:0x1400 module:overlay(1) +from:0x020c3dd8 kind:load to:0x020c5f40 add:0x1474 module:overlay(1) +from:0x020c3ddc kind:load to:0x020c3a90 add:0x1400 module:overlay(1) +from:0x020c3de0 kind:load to:0x020c5f40 add:0x144c module:overlay(1) +from:0x020c3de4 kind:load to:0x020c3adc add:0x1400 module:overlay(1) +from:0x020c3de8 kind:load to:0x020c5f40 add:0x1424 module:overlay(1) +from:0x020c3dec kind:load to:0x020c3b00 add:0x1400 module:overlay(1) +from:0x020c3df0 kind:load to:0x020c5f40 add:0x1508 module:overlay(1) +from:0x020c3df4 kind:load to:0x020c3c08 add:0x1400 module:overlay(1) +from:0x020c3df8 kind:load to:0x020c5f40 add:0x1508 module:overlay(1) +from:0x020c3dfc kind:load to:0x020c3d14 add:0x1400 module:overlay(1) +from:0x020c3e00 kind:load to:0x020c5f40 add:0x1458 module:overlay(1) +from:0x020c3e04 kind:load to:0x020c3d6c add:0x1400 module:overlay(1) +from:0x020c3e08 kind:load to:0x020c5f40 add:0x1458 module:overlay(1) from:0x020c4076 kind:thumb_call to:0x020b8c58 module:overlay(1) from:0x020c4084 kind:load to:0x020c4820 module:overlay(1) from:0x020c4088 kind:load to:0x020c4824 module:overlay(1) @@ -2371,6 +2537,11 @@ from:0x020c4150 kind:load to:0x020c4814 module:overlay(1) from:0x020c4154 kind:load to:0x020c4069 module:overlay(1) from:0x020c4158 kind:load to:0x020c408d module:overlay(1) from:0x020c415c kind:load to:0x020c4145 module:overlay(1) +from:0x020c4160 kind:load to:0x020c2958 module:overlay(1) +from:0x020c4164 kind:load to:0x020c2f5c module:overlay(1) +from:0x020c4168 kind:load to:0x020c3218 module:overlay(1) +from:0x020c416c kind:load to:0x020c39d4 module:overlay(1) +from:0x020c4170 kind:load to:0x020c3dc4 module:overlay(1) from:0x020c423c kind:load to:0x020b9c39 module:overlay(1) from:0x020c4240 kind:load to:0x020b9cd1 module:overlay(1) from:0x020c4244 kind:load to:0x020b9e0d module:overlay(1) diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index 6cdb21d4..8de587a9 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -442,55 +442,55 @@ _ZN17GameModeAdventureC1Ev kind:function(thumb,size=0x58) addr:0x020c2198 _Z19func_ov001_020c099cv kind:function(thumb,size=0x24) addr:0x020c21f0 _Z19func_ov001_020c09c0v kind:function(thumb,size=0x1c) addr:0x020c2214 _ZN20GameModeDownloadPlay19func_ov001_020c09dcEv kind:function(thumb,size=0x48) addr:0x020c2230 -DetectFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c2278 -DetectNotFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c2330 -DetectEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c23e8 -DetectNotEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c24a0 -DetectDummy kind:function(arm,size=0x98,unknown) addr:0x020c2558 -DetectNotDummy kind:function(arm,size=0x98,unknown) addr:0x020c25f0 -DSProt_DetectFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c2688 -DSProt_DetectNotFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c2700 -DSProt_DetectEmulator kind:function(arm,size=0x78,unknown) addr:0x020c2778 -DSProt_DetectNotEmulator kind:function(arm,size=0x78,unknown) addr:0x020c27f0 -DSProt_DetectDummy kind:function(arm,size=0x78,unknown) addr:0x020c2868 -DSProt_DetectNotDummy kind:function(arm,size=0x78,unknown) addr:0x020c28e0 -NitroStaticInit kind:function(arm,size=0x4c,unknown) addr:0x020c2958 local -Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c29a4 -Integrity_MACOwner_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c2a7c -Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c2b90 -Integrity_ROMTest_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c2c68 -RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c2d7c -RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c2df4 -RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c2e6c -RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c2ee4 -NitroStaticInit kind:function(arm,size=0x38,unknown) addr:0x020c2f5c local -clearDataAndInstructionCache kind:function(arm,size=0x20,unknown) addr:0x020c2f94 -Encryptor_CategorizeInstruction kind:function(arm,size=0x3c,unknown) addr:0x020c2fb4 -Encryptor_DecodeFunctionTable kind:function(arm,size=0x110,unknown) addr:0x020c2ff0 -Encryptor_DecryptFunction kind:function(arm,size=0x88,unknown) addr:0x020c3100 -Encryptor_EncryptFunction kind:function(arm,size=0x90,unknown) addr:0x020c3188 -NitroStaticInit kind:function(arm,size=0x28,unknown) addr:0x020c3218 local -MACOwner_IsBad kind:function(arm,size=0xb0,unknown) addr:0x020c3240 -MACOwner_IsGood kind:function(arm,size=0xb0,unknown) addr:0x020c32f0 -RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c33a0 -RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c3418 -ROMUtil_Read kind:function(arm,size=0x184,unknown) addr:0x020c3490 -ROMUtil_CRC32 kind:function(arm,size=0x58,unknown) addr:0x020c3614 -RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,unknown) addr:0x020c366c -RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,unknown) addr:0x020c36e4 -ROMTest_IsBad kind:function(arm,size=0xc4,unknown) addr:0x020c375c -ROMTest_IsGood kind:function(arm,size=0xc4,unknown) addr:0x020c3820 -RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c38e4 -RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c395c -NitroStaticInit kind:function(arm,size=0x48,unknown) addr:0x020c39d4 local -RC4_Init kind:function(arm,size=0x74,unknown) addr:0x020c3a1c -RC4_Byte kind:function(arm,size=0x4c,unknown) addr:0x020c3a90 -RC4_InitSBox kind:function(arm,size=0x24,unknown) addr:0x020c3adc -RC4_EncryptInstructions kind:function(arm,size=0x108,unknown) addr:0x020c3b00 -RC4_DecryptInstructions kind:function(arm,size=0x10c,unknown) addr:0x020c3c08 -RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c3d14 -RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c3d6c -NitroStaticInit kind:function(arm,size=0x50,unknown) addr:0x020c3dc4 local +DetectFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c2278 +DetectNotFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c2330 +DetectEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c23e8 +DetectNotEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c24a0 +DetectDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c2558 +DetectNotDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c25f0 +DSProt_DetectFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2688 +DSProt_DetectNotFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2700 +DSProt_DetectEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2778 +DSProt_DetectNotEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c27f0 +DSProt_DetectDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2868 +DSProt_DetectNotDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c28e0 +NitroStaticInit kind:function(arm,size=0x4c) addr:0x020c2958 local +Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c29a4 +Integrity_MACOwner_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c2a7c +Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c2b90 +Integrity_ROMTest_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c2c68 +RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2d7c +RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2df4 +RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2e6c +RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2ee4 +NitroStaticInit kind:function(arm,size=0x38) addr:0x020c2f5c local +clearDataAndInstructionCache kind:function(arm,size=0x20) addr:0x020c2f94 local +Encryptor_CategorizeInstruction kind:function(arm,size=0x3c) addr:0x020c2fb4 +Encryptor_DecodeFunctionTable kind:function(arm,size=0x110) addr:0x020c2ff0 +Encryptor_DecryptFunction kind:function(arm,size=0x88,dsprot=0x84) addr:0x020c3100 +Encryptor_EncryptFunction kind:function(arm,size=0x90,dsprot=0x8c) addr:0x020c3188 +NitroStaticInit kind:function(arm,size=0x28) addr:0x020c3218 local +MACOwner_IsBad kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c3240 +MACOwner_IsGood kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c32f0 +RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c33a0 +RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c3418 +ROMUtil_Read kind:function(arm,size=0x184,dsprot=(0x17c,0xc7ea)) addr:0x020c3490 +ROMUtil_CRC32 kind:function(arm,size=0x58,dsprot=(0x54,0xc7ea)) addr:0x020c3614 +RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c366c +RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c36e4 +ROMTest_IsBad kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c375c +ROMTest_IsGood kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c3820 +RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c38e4 +RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c395c +NitroStaticInit kind:function(arm,size=0x48) addr:0x020c39d4 local +RC4_Init kind:function(arm,size=0x74,dsprot=0x74) addr:0x020c3a1c +RC4_Byte kind:function(arm,size=0x4c,dsprot=0x4c) addr:0x020c3a90 +RC4_InitSBox kind:function(arm,size=0x24,dsprot=0x24) addr:0x020c3adc +RC4_EncryptInstructions kind:function(arm,size=0x108,dsprot=0x108) addr:0x020c3b00 +RC4_DecryptInstructions kind:function(arm,size=0x10c,dsprot=0x108) addr:0x020c3c08 +RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c3d14 +RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c3d6c +NitroStaticInit kind:function(arm,size=0x50) addr:0x020c3dc4 local data_ov001_020c25c0 kind:data(any) addr:0x020c3e14 data_ov001_020c25d4 kind:data(any) addr:0x020c3e28 data_ov001_020c25fc kind:data(any) addr:0x020c3e50 @@ -504,18 +504,19 @@ data_ov001_020c2750 kind:data(any) addr:0x020c3fa4 local data_ov001_020c275e kind:data(any) addr:0x020c3fb2 local data_ov001_020c276c kind:data(any) addr:0x020c3fc0 data_ov001_020c27a8 kind:data(any) addr:0x020c3ffc -bad_mac_addr kind:data(any) addr:0x020c4060 +DSProt_Garbage kind:data(any) addr:0x020c4048 +bad_mac_addr kind:data(any) addr:0x020c4060 local __sinit_CourseList.cpp kind:function(thumb,size=0x24) addr:0x020c4068 local __sinit_UnkStruct_027e0cd8_0C_001.cpp kind:function(thumb,size=0xb8) addr:0x020c408c __sinit_code_020c099c.cpp kind:function(thumb,size=0x10) addr:0x020c4144 local .p__sinit_CourseList.cpp kind:data(word) addr:0x020c4154 local .p__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:data(word) addr:0x020c4158 .p__sinit_code_020c099c.cpp kind:data(word) addr:0x020c415c local -.p__sinit_ov001_020c2958 kind:data(word) addr:0x020c4160 local -.p__sinit_ov001_020c2f5c kind:data(word) addr:0x020c4164 local -.p__sinit_ov001_020c3218 kind:data(word) addr:0x020c4168 local -.p__sinit_ov001_020c39d4 kind:data(word) addr:0x020c416c local -.p__sinit_ov001_020c3dc4 kind:data(word) addr:0x020c4170 local +NitroStaticInit_11 kind:data(word) addr:0x020c4160 local +NitroStaticInit_8 kind:data(word) addr:0x020c4164 local +NitroStaticInit_6 kind:data(word) addr:0x020c4168 local +NitroStaticInit_10 kind:data(word) addr:0x020c416c local +NitroStaticInit_11 kind:data(word) addr:0x020c4170 local @433 kind:data(byte[22]) addr:0x020c4180 local @450 kind:data(byte[22]) addr:0x020c4198 local @3570 kind:data(byte[18]) addr:0x020c41b0 local @@ -635,5 +636,4 @@ data_ov001_020c40f4 kind:bss addr:0x020c5934 local data_ov001_020c46f4 kind:bss addr:0x020c5f34 local data_ov001_020c46f8 kind:bss addr:0x020c5f38 local data_ov001_020c46fc kind:bss addr:0x020c5f3c local -data_ov001_020c5f40 kind:bss addr:0x020c5f40 -data_ov001_020c5f41 kind:bss addr:0x020c5f41 +DSProt_BSS kind:bss addr:0x020c5f40 diff --git a/config/jp/arm9/overlays/ov019/symbols.txt b/config/jp/arm9/overlays/ov019/symbols.txt index 88d91f1e..71caba27 100644 --- a/config/jp/arm9/overlays/ov019/symbols.txt +++ b/config/jp/arm9/overlays/ov019/symbols.txt @@ -31,7 +31,7 @@ _ZN25UnkSystem1_ov019_Derived18vfunc_1CEjii kind:function(arm,size=0x1ac) addr:0 _ZN25UnkSystem1_ov019_Derived18vfunc_20Eiii kind:function(arm,size=0x110) addr:0x020c6c50 _ZN25UnkSystem1_ov019_Derived119func_ov019_020c5540Ebs kind:function(arm,size=0x50) addr:0x020c6d60 _ZN25UnkSystem1_ov019_Derived119func_ov019_020c5590Eiii kind:function(arm,size=0x84) addr:0x020c6db0 -_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c6e34 +_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c6e34 weak _ZN14FileSelectMainC1Ev kind:function(arm,size=0x9a0) addr:0x020c6e50 _ZN25UnkSystem1_ov019_Derived3D1Ev kind:function(arm,size=0x14) addr:0x020c77f0 _ZN14FileSelectMainD1Ev kind:function(arm,size=0x1f8) addr:0x020c7804 @@ -237,12 +237,12 @@ _ZN21FileSelectManager_16419func_ov019_020d02f4Ev kind:function(arm,size=0x28) a _ZN25UnkSystem1_ov019_Derived2C1Ev kind:function(arm,size=0x40) addr:0x020d1b3c _ZN25UnkSystem1_ov019_Derived28vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d1b7c _ZN25UnkSystem1_ov019_Derived28vfunc_1CEjii kind:function(arm,size=0x1f0) addr:0x020d1bc4 -_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d1db4 +_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d1db4 weak _ZN25UnkSystem1_ov019_Derived3C2Ev kind:function(arm,size=0x4c) addr:0x020d1dd0 _ZN25UnkSystem1_ov019_Derived38vfunc_04Ev kind:function(arm,size=0x14) addr:0x020d1e1c _ZN25UnkSystem1_ov019_Derived38vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d1e30 _ZN25UnkSystem1_ov019_Derived38vfunc_1CEjii kind:function(arm,size=0x1f8) addr:0x020d1e78 -_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d2070 +_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d2070 weak _ZN11SaveManager19func_ov019_020d086cEt kind:function(arm,size=0x90) addr:0x020d208c _ZN11SaveManager19func_ov019_020d08fcEiM8SaveFileFvvE kind:function(arm,size=0x68) addr:0x020d211c _ZN11SaveManager19func_ov019_020d0964Ev kind:function(arm,size=0x78) addr:0x020d2184 diff --git a/config/jp/arm9/overlays/ov026/relocs.txt b/config/jp/arm9/overlays/ov026/relocs.txt index 5463d661..2741bf67 100644 --- a/config/jp/arm9/overlays/ov026/relocs.txt +++ b/config/jp/arm9/overlays/ov026/relocs.txt @@ -9259,6 +9259,9 @@ from:0x0213075c kind:load to:0x02143abc module:overlay(26) from:0x02130760 kind:load to:0x0213ad94 module:overlay(26) from:0x02130764 kind:load to:0x02143b60 module:overlay(26) from:0x02130770 kind:arm_call to:0x020990b4 module:overlay(0) +from:0x02130784 kind:arm_branch to:0x0212df00 module:overlay(26) +from:0x02130794 kind:arm_branch to:0x0212e79c module:overlay(26) +from:0x021307a4 kind:arm_branch to:0x0212de70 module:overlay(26) from:0x021307b4 kind:arm_call to:0x02131e38 module:overlay(26) from:0x02130864 kind:arm_call to:0x02131e48 module:overlay(26) from:0x0213088c kind:arm_call to:0x021307ac module:overlay(26) diff --git a/config/jp/arm9/overlays/ov030/symbols.txt b/config/jp/arm9/overlays/ov030/symbols.txt index d8eea57a..6e80081e 100644 --- a/config/jp/arm9/overlays/ov030/symbols.txt +++ b/config/jp/arm9/overlays/ov030/symbols.txt @@ -501,7 +501,7 @@ data_ov030_02154074 kind:data(any) addr:0x02154074 ambiguous data_ov030_02154094 kind:data(any) addr:0x02154094 ambiguous _ZTV19data_ov030_02154094 kind:data(any) addr:0x02154094 data_ov030_02154100 kind:data(any) addr:0x02154100 -_ZTV19data_ov030_02154100 kind:data(any) addr:0x02154100 ambiguous +_ZTV19data_ov030_02154100 kind:data(any) addr:0x02154100 _ZGVN15ProfileInstanceI23MapObjectProfileUnkETTVE8sProfileE kind:bss addr:0x02154120 @30680 kind:bss addr:0x02154124 _ZN15ProfileInstanceI23MapObjectProfileUnkETTVE8sProfileE kind:bss addr:0x02154130 diff --git a/config/jp/arm9/overlays/ov031/relocs.txt b/config/jp/arm9/overlays/ov031/relocs.txt index 6417fd32..ea77ea5a 100644 --- a/config/jp/arm9/overlays/ov031/relocs.txt +++ b/config/jp/arm9/overlays/ov031/relocs.txt @@ -1269,6 +1269,8 @@ from:0x020e5ef8 kind:load to:0x027e09b8 module:dtcm from:0x020e5efc kind:load to:0x027e0d34 module:dtcm from:0x020e5f3c kind:arm_call to:0x0209a230 module:overlay(0) from:0x020e5f64 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x020e5f78 kind:arm_branch to:0x020e5cdc module:overlay(31) +from:0x020e5f88 kind:arm_branch to:0x020e5c98 module:overlay(31) from:0x020e5f98 kind:load to:0x02118298 module:overlay(31) from:0x020e5fac kind:arm_call to:0x02011f3c module:main from:0x020e5fb8 kind:arm_call to:0x020e600c module:overlay(31) @@ -3822,6 +3824,12 @@ from:0x020fccc4 kind:arm_call to:0x02011ff4 module:main from:0x020fccdc kind:arm_call to:0x02062c50 module:overlay(0) from:0x020fcce4 kind:arm_call to:0x02099c30 module:overlay(0) from:0x020fccf8 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x020fcd0c kind:arm_branch to:0x020fcca8 module:overlay(31) +from:0x020fcd1c kind:arm_branch to:0x020fc860 module:overlay(31) +from:0x020fcd2c kind:arm_branch to:0x020fc800 module:overlay(31) +from:0x020fcd3c kind:arm_branch to:0x020fc80c module:overlay(31) +from:0x020fcd4c kind:arm_branch to:0x020fc7e0 module:overlay(31) +from:0x020fcd5c kind:arm_branch to:0x020fccd0 module:overlay(31) from:0x020fcd6c kind:load to:0x02118d98 module:overlay(31) from:0x020fcd80 kind:arm_call to:0x02011f3c module:main from:0x020fcd8c kind:arm_call to:0x020fcdbc module:overlay(31) @@ -3973,6 +3981,8 @@ from:0x020feaec kind:arm_call to:0x0209e870 module:overlay(0) from:0x020feb04 kind:arm_call to:0x020a1aac module:overlay(0) from:0x020feb0c kind:arm_call to:0x0209e870 module:overlay(0) from:0x020feb14 kind:arm_call to:0x02011ff4 module:main +from:0x020feb28 kind:arm_branch to:0x020fe9c0 module:overlay(31) +from:0x020feb38 kind:arm_branch to:0x020fe9bc module:overlay(31) from:0x020feb48 kind:load to:0x0211902c module:overlay(31) from:0x020feb5c kind:arm_call to:0x02011f3c module:main from:0x020feb68 kind:arm_call to:0x020febc0 module:overlay(31) @@ -4161,6 +4171,8 @@ from:0x0210018c kind:arm_call to:0x020a1aac module:overlay(0) from:0x02100194 kind:arm_call to:0x0209e870 module:overlay(0) from:0x0210019c kind:arm_call to:0x02011ff4 module:main from:0x021001b0 kind:arm_call to:0x0209e19c module:overlay(0) +from:0x021001c4 kind:arm_branch to:0x020feeac module:overlay(31) +from:0x021001d4 kind:arm_branch to:0x020feea0 module:overlay(31) from:0x021001e4 kind:load to:0x02119110 module:overlay(31) from:0x021001f8 kind:arm_call to:0x02011f3c module:main from:0x02100204 kind:arm_call to:0x02100260 module:overlay(31) @@ -4946,6 +4958,9 @@ from:0x02106c2c kind:arm_call to:0x02080360 module:overlay(0) from:0x02106c34 kind:arm_call to:0x02104eb4 module:overlay(31) from:0x02106c3c kind:arm_call to:0x02011ff4 module:main from:0x02106c50 kind:arm_call to:0x0209e19c module:overlay(0) +from:0x02106c64 kind:arm_branch to:0x0210678c module:overlay(31) +from:0x02106c74 kind:arm_branch to:0x02106578 module:overlay(31) +from:0x02106c84 kind:arm_branch to:0x02106554 module:overlay(31) from:0x02106c94 kind:load to:0x02119cdc module:overlay(31) from:0x02106ca8 kind:arm_call to:0x02011f3c module:main from:0x02106cb4 kind:arm_call to:0x02106d48 module:overlay(31) @@ -5708,6 +5723,11 @@ from:0x0210d79c kind:arm_call_thumb to:0x0205910c module:overlay(0) from:0x0210d7a4 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0210d7ac kind:arm_call to:0x0209e870 module:overlay(0) from:0x0210d7c0 kind:arm_call to:0x0209e19c module:overlay(0) +from:0x0210d7d4 kind:arm_branch to:0x0210d760 module:overlay(31) +from:0x0210d7e4 kind:arm_branch to:0x0210d688 module:overlay(31) +from:0x0210d7f4 kind:arm_branch to:0x0210d610 module:overlay(31) +from:0x0210d804 kind:arm_branch to:0x0210d790 module:overlay(31) +from:0x0210d814 kind:arm_branch to:0x0210d728 module:overlay(31) from:0x0210d824 kind:load to:0x0211ab48 module:overlay(31) from:0x0210d838 kind:arm_call to:0x02011f3c module:main from:0x0210d844 kind:arm_call to:0x0210d8ec module:overlay(31) @@ -5878,6 +5898,9 @@ from:0x0210ebf4 kind:arm_call_thumb to:0x0205910c module:overlay(0) from:0x0210ebfc kind:arm_call to:0x0209e870 module:overlay(0) from:0x0210ec04 kind:arm_call to:0x02011ff4 module:main from:0x0210ec18 kind:arm_call to:0x0209e19c module:overlay(0) +from:0x0210ec2c kind:arm_branch to:0x0210e858 module:overlay(31) +from:0x0210ec3c kind:arm_branch to:0x0210e8e4 module:overlay(31) +from:0x0210ec4c kind:arm_branch to:0x0210e82c module:overlay(31) from:0x0210ec5c kind:load to:0x0211ac4c module:overlay(31) from:0x0210ec70 kind:arm_call to:0x02011f3c module:main from:0x0210ec7c kind:arm_call to:0x0210f040 module:overlay(31) diff --git a/config/jp/arm9/overlays/ov033/relocs.txt b/config/jp/arm9/overlays/ov033/relocs.txt index 3e4731e1..611124d3 100644 --- a/config/jp/arm9/overlays/ov033/relocs.txt +++ b/config/jp/arm9/overlays/ov033/relocs.txt @@ -297,6 +297,12 @@ from:0x0211d490 kind:arm_call to:0x0205c7ac module:overlay(0) from:0x0211d49c kind:load to:0x0212349c module:overlay(33) from:0x0211d4b0 kind:arm_call to:0x0211ade4 module:overlay(33) from:0x0211d4b8 kind:arm_call to:0x0209e19c module:overlay(0) +from:0x0211d4cc kind:arm_branch to:0x0211bee4 module:overlay(33) +from:0x0211d4dc kind:arm_branch to:0x0211d220 module:overlay(33) +from:0x0211d4ec kind:arm_branch to:0x0211d1dc module:overlay(33) +from:0x0211d4fc kind:arm_branch to:0x0211d16c module:overlay(33) +from:0x0211d50c kind:arm_branch to:0x0211d1f8 module:overlay(33) +from:0x0211d51c kind:arm_branch to:0x0211be84 module:overlay(33) from:0x0211d52c kind:load to:0x02124430 module:overlay(33) from:0x0211d540 kind:arm_call to:0x02011f3c module:main from:0x0211d54c kind:arm_call to:0x0211d600 module:overlay(33) diff --git a/config/jp/arm9/overlays/ov034/symbols.txt b/config/jp/arm9/overlays/ov034/symbols.txt index e480750c..104aec1d 100644 --- a/config/jp/arm9/overlays/ov034/symbols.txt +++ b/config/jp/arm9/overlays/ov034/symbols.txt @@ -246,7 +246,7 @@ __sinit_MapObjectUnkGELG.cpp kind:function(arm,size=0x84) addr:0x02124504 .p__sinit_MapObjectUnkWPHL.cpp kind:data(word) addr:0x021245a0 .p__sinit_MapObjectUnkGELG.cpp kind:data(word) addr:0x021245a4 data_ov034_021245c8 kind:data(any) addr:0x021245c8 -_ZTV19data_ov034_021245c8 kind:data(any) addr:0x021245c8 ambiguous +_ZTV19data_ov034_021245c8 kind:data(any) addr:0x021245c8 _ZTV19data_ov034_021245e4 kind:data(any) addr:0x021245e4 _ZTV19data_ov034_02124648 kind:data(any) addr:0x02124648 data_ov034_0212466c kind:data(any) addr:0x0212466c diff --git a/config/jp/arm9/overlays/ov036/relocs.txt b/config/jp/arm9/overlays/ov036/relocs.txt index c621f0c6..ceb6fefa 100644 --- a/config/jp/arm9/overlays/ov036/relocs.txt +++ b/config/jp/arm9/overlays/ov036/relocs.txt @@ -291,6 +291,16 @@ from:0x0211cc4c kind:arm_call to:0x020e8e20 module:overlay(31) from:0x0211cc54 kind:arm_call to:0x02011ff4 module:main from:0x0211cc6c kind:arm_call_thumb to:0x0209ba14 module:overlay(0) from:0x0211cc74 kind:arm_call to:0x020e8e20 module:overlay(31) +from:0x0211cc88 kind:arm_branch to:0x0211cb74 module:overlay(36) +from:0x0211cc98 kind:arm_branch to:0x0211c8d4 module:overlay(36) +from:0x0211cca8 kind:arm_branch to:0x0211c82c module:overlay(36) +from:0x0211ccb8 kind:arm_branch to:0x0211c828 module:overlay(36) +from:0x0211ccc8 kind:arm_branch to:0x0211c824 module:overlay(36) +from:0x0211ccd8 kind:arm_branch to:0x0211c80c module:overlay(36) +from:0x0211cce8 kind:arm_branch to:0x0211c6e0 module:overlay(36) +from:0x0211ccf8 kind:arm_branch to:0x0211c6dc module:overlay(36) +from:0x0211cd08 kind:arm_branch to:0x0211c6d8 module:overlay(36) +from:0x0211cd18 kind:arm_branch to:0x0211cba4 module:overlay(36) from:0x0211cd28 kind:load to:0x02124514 module:overlay(36) from:0x0211cd3c kind:arm_call to:0x02011f3c module:main from:0x0211cd48 kind:arm_call to:0x0211cdac module:overlay(36) @@ -318,6 +328,8 @@ from:0x0211cf9c kind:arm_call to:0x02062c50 module:overlay(0) from:0x0211cfa4 kind:arm_call_thumb to:0x0209ba14 module:overlay(0) from:0x0211cfac kind:arm_call to:0x020e8e20 module:overlay(31) from:0x0211cfc0 kind:arm_call to:0x020990b4 module:overlay(0) +from:0x0211cfd4 kind:arm_branch to:0x0211cf50 module:overlay(36) +from:0x0211cfe4 kind:arm_branch to:0x0211cf88 module:overlay(36) from:0x0211cff4 kind:load to:0x021245fc module:overlay(36) from:0x0211d008 kind:arm_call to:0x02011f3c module:main from:0x0211d014 kind:arm_call to:0x0211d074 module:overlay(36) @@ -345,6 +357,8 @@ from:0x0211d274 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0211d27c kind:arm_call_thumb to:0x0209ba14 module:overlay(0) from:0x0211d284 kind:arm_call to:0x020e8e20 module:overlay(31) from:0x0211d298 kind:arm_call to:0x020990b4 module:overlay(0) +from:0x0211d2ac kind:arm_branch to:0x0211d228 module:overlay(36) +from:0x0211d2bc kind:arm_branch to:0x0211d260 module:overlay(36) from:0x0211d2cc kind:load to:0x021246e4 module:overlay(36) from:0x0211d2e0 kind:arm_call to:0x02011f3c module:main from:0x0211d2ec kind:arm_call to:0x0211d350 module:overlay(36) @@ -372,6 +386,8 @@ from:0x0211d560 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0211d568 kind:arm_call_thumb to:0x0209ba14 module:overlay(0) from:0x0211d570 kind:arm_call to:0x020e8e20 module:overlay(31) from:0x0211d584 kind:arm_call to:0x020990b4 module:overlay(0) +from:0x0211d598 kind:arm_branch to:0x0211d514 module:overlay(36) +from:0x0211d5a8 kind:arm_branch to:0x0211d54c module:overlay(36) from:0x0211d5b8 kind:load to:0x021247cc module:overlay(36) from:0x0211d5cc kind:arm_call to:0x02011f3c module:main from:0x0211d5d8 kind:arm_call to:0x0211d63c module:overlay(36) @@ -397,6 +413,8 @@ from:0x0211d828 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0211d830 kind:arm_call_thumb to:0x0209ba14 module:overlay(0) from:0x0211d838 kind:arm_call to:0x020e8e20 module:overlay(31) from:0x0211d84c kind:arm_call to:0x020990b4 module:overlay(0) +from:0x0211d860 kind:arm_branch to:0x0211d7dc module:overlay(36) +from:0x0211d870 kind:arm_branch to:0x0211d814 module:overlay(36) from:0x0211d880 kind:load to:0x021248b4 module:overlay(36) from:0x0211d894 kind:arm_call to:0x02011f3c module:main from:0x0211d8a0 kind:arm_call to:0x0211d908 module:overlay(36) @@ -424,6 +442,8 @@ from:0x0211db34 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0211db3c kind:arm_call_thumb to:0x0209ba14 module:overlay(0) from:0x0211db44 kind:arm_call to:0x020e8e20 module:overlay(31) from:0x0211db58 kind:arm_call to:0x020990b4 module:overlay(0) +from:0x0211db6c kind:arm_branch to:0x0211dae8 module:overlay(36) +from:0x0211db7c kind:arm_branch to:0x0211db20 module:overlay(36) from:0x0211db8c kind:load to:0x0212499c module:overlay(36) from:0x0211dba0 kind:arm_call to:0x02011f3c module:main from:0x0211dbac kind:arm_call to:0x0211dc70 module:overlay(36) @@ -463,6 +483,8 @@ from:0x0211def8 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0211df00 kind:arm_call_thumb to:0x0209ba14 module:overlay(0) from:0x0211df08 kind:arm_call to:0x020e8e20 module:overlay(31) from:0x0211df1c kind:arm_call to:0x020990b4 module:overlay(0) +from:0x0211df30 kind:arm_branch to:0x0211deac module:overlay(36) +from:0x0211df40 kind:arm_branch to:0x0211dee4 module:overlay(36) from:0x0211df50 kind:load to:0x02124a84 module:overlay(36) from:0x0211df64 kind:arm_call to:0x02011f3c module:main from:0x0211df70 kind:arm_call to:0x0211e3e0 module:overlay(36) @@ -614,6 +636,16 @@ from:0x0211f4f0 kind:arm_call to:0x020a9f68 module:overlay(0) from:0x0211f4f8 kind:load to:0x027e0ce0 module:dtcm from:0x0211f4fc kind:load to:0x027e09b8 module:dtcm from:0x0211f548 kind:arm_call to:0x020990b4 module:overlay(0) +from:0x0211f55c kind:arm_branch to:0x0211e538 module:overlay(36) +from:0x0211f56c kind:arm_branch to:0x0211e738 module:overlay(36) +from:0x0211f57c kind:arm_branch to:0x0211e728 module:overlay(36) +from:0x0211f58c kind:arm_branch to:0x0211e724 module:overlay(36) +from:0x0211f59c kind:arm_branch to:0x0211e720 module:overlay(36) +from:0x0211f5ac kind:arm_branch to:0x0211e71c module:overlay(36) +from:0x0211f5bc kind:arm_branch to:0x0211e718 module:overlay(36) +from:0x0211f5cc kind:arm_branch to:0x0211e714 module:overlay(36) +from:0x0211f5dc kind:arm_branch to:0x0211e710 module:overlay(36) +from:0x0211f5ec kind:arm_branch to:0x0211e4f8 module:overlay(36) from:0x0211f5fc kind:load to:0x02124b78 module:overlay(36) from:0x0211f610 kind:arm_call to:0x02011f3c module:main from:0x0211f61c kind:arm_call to:0x0211f64c module:overlay(36) @@ -672,6 +704,16 @@ from:0x0211fafc kind:arm_call to:0x0200f37c module:main from:0x0211fb04 kind:arm_call to:0x0200bed8 module:main from:0x0211fb0c kind:arm_call_thumb to:0x0201568c module:main from:0x0211fb20 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x0211fb34 kind:arm_branch to:0x0211f894 module:overlay(36) +from:0x0211fb44 kind:arm_branch to:0x0211faac module:overlay(36) +from:0x0211fb54 kind:arm_branch to:0x0211fa9c module:overlay(36) +from:0x0211fb64 kind:arm_branch to:0x0211fa98 module:overlay(36) +from:0x0211fb74 kind:arm_branch to:0x0211fa94 module:overlay(36) +from:0x0211fb84 kind:arm_branch to:0x0211fa90 module:overlay(36) +from:0x0211fb94 kind:arm_branch to:0x0211fa8c module:overlay(36) +from:0x0211fba4 kind:arm_branch to:0x0211fa88 module:overlay(36) +from:0x0211fbb4 kind:arm_branch to:0x0211fa84 module:overlay(36) +from:0x0211fbc4 kind:arm_branch to:0x0211f864 module:overlay(36) from:0x0211fbd4 kind:load to:0x02124bc4 module:overlay(36) from:0x0211fbe8 kind:arm_call to:0x02011f3c module:main from:0x0211fbf4 kind:arm_call to:0x0211fc24 module:overlay(36) diff --git a/config/jp/arm9/overlays/ov038/symbols.txt b/config/jp/arm9/overlays/ov038/symbols.txt index a01b7cfd..e0e9803c 100644 --- a/config/jp/arm9/overlays/ov038/symbols.txt +++ b/config/jp/arm9/overlays/ov038/symbols.txt @@ -218,7 +218,7 @@ data_ov038_02122d2c kind:data(any) addr:0x02122d2c _ZTV19data_ov038_02122e0c kind:data(any) addr:0x02122e0c data_ov038_02122e38 kind:data(any) addr:0x02122e38 _ZTV19data_ov038_02122e58 kind:data(any) addr:0x02122e58 -_ZTV19data_ov038_02122e60 kind:data(any) addr:0x02122e60 ambiguous +_ZTV19data_ov038_02122e60 kind:data(any) addr:0x02122e60 data_ov038_02122ed8 kind:data(any) addr:0x02122ed8 data_ov038_02122ef4 kind:data(any) addr:0x02122ef4 data_ov038_02122f10 kind:data(any) addr:0x02122f10 diff --git a/config/jp/arm9/overlays/ov049/relocs.txt b/config/jp/arm9/overlays/ov049/relocs.txt index 84475010..9fbb4e09 100644 --- a/config/jp/arm9/overlays/ov049/relocs.txt +++ b/config/jp/arm9/overlays/ov049/relocs.txt @@ -481,6 +481,8 @@ from:0x02135e6c kind:arm_call to:0x02135e34 module:overlay(49) from:0x02135e74 kind:arm_call to:0x02099c30 module:overlay(0) from:0x02135e7c kind:arm_call to:0x02011ff4 module:main from:0x02135e90 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x02135ea4 kind:arm_branch to:0x02135d40 module:overlay(49) +from:0x02135eb4 kind:arm_branch to:0x02135c5c module:overlay(49) from:0x02135ed8 kind:load to:0x027e09b8 module:dtcm from:0x02135ef8 kind:load to:0x027e09b8 module:dtcm from:0x02135f18 kind:load to:0x027e09b8 module:dtcm diff --git a/config/jp/arm9/overlays/ov056/relocs.txt b/config/jp/arm9/overlays/ov056/relocs.txt index 24e344ac..a0c4b6f7 100644 --- a/config/jp/arm9/overlays/ov056/relocs.txt +++ b/config/jp/arm9/overlays/ov056/relocs.txt @@ -246,6 +246,16 @@ from:0x0213cda4 kind:arm_call to:0x02079b3c module:overlay(0) from:0x0213cdb0 kind:load to:0x027e09bc module:dtcm from:0x0213cdb8 kind:load to:0x027e09b8 module:dtcm from:0x0213cdc8 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x0213cddc kind:arm_branch to:0x0213ca34 module:overlay(56) +from:0x0213cdec kind:arm_branch to:0x0213cdbc module:overlay(56) +from:0x0213cdfc kind:arm_branch to:0x0213ccd0 module:overlay(56) +from:0x0213ce0c kind:arm_branch to:0x0213cccc module:overlay(56) +from:0x0213ce1c kind:arm_branch to:0x0213ccc8 module:overlay(56) +from:0x0213ce2c kind:arm_branch to:0x0213ccc4 module:overlay(56) +from:0x0213ce3c kind:arm_branch to:0x0213ccc0 module:overlay(56) +from:0x0213ce4c kind:arm_branch to:0x0213ccbc module:overlay(56) +from:0x0213ce5c kind:arm_branch to:0x0213cc6c module:overlay(56) +from:0x0213ce6c kind:arm_branch to:0x0213c9dc module:overlay(56) from:0x0213cea0 kind:arm_call to:0x020d5740 module:overlay(24) from:0x0213cec4 kind:load to:0x027e0ce0 module:dtcm from:0x0213cee8 kind:arm_call to:0x0213df94 module:overlay(56) diff --git a/config/jp/arm9/overlays/ov058/relocs.txt b/config/jp/arm9/overlays/ov058/relocs.txt index dca5e5a1..7665d010 100644 --- a/config/jp/arm9/overlays/ov058/relocs.txt +++ b/config/jp/arm9/overlays/ov058/relocs.txt @@ -419,6 +419,8 @@ from:0x0214455c kind:arm_call to:0x02144524 module:overlay(58) from:0x02144564 kind:arm_call to:0x02099c30 module:overlay(0) from:0x0214456c kind:arm_call to:0x02011ff4 module:main from:0x02144580 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x02144594 kind:arm_branch to:0x021444a8 module:overlay(58) +from:0x021445a4 kind:arm_branch to:0x0214444c module:overlay(58) from:0x021445b4 kind:load to:0x02157d80 module:overlay(58) from:0x021445c8 kind:arm_call to:0x02011f3c module:main from:0x021445d4 kind:arm_call to:0x0214460c module:overlay(58) @@ -1254,6 +1256,8 @@ from:0x0214c7a8 kind:load to:0x020da050 module:overlay(24) from:0x0214c7b8 kind:load to:0x027e0d48 module:dtcm from:0x0214c7cc kind:load to:0x027e0d48 module:dtcm from:0x0214c7d8 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x0214c7ec kind:arm_branch to:0x0214c778 module:overlay(58) +from:0x0214c7fc kind:arm_branch to:0x0214c748 module:overlay(58) from:0x0214c80c kind:load to:0x02158e64 module:overlay(58) from:0x0214c820 kind:arm_call to:0x02011f3c module:main from:0x0214c82c kind:arm_call to:0x0214c938 module:overlay(58) @@ -1562,6 +1566,8 @@ from:0x0214f310 kind:arm_call to:0x0214f2d8 module:overlay(58) from:0x0214f318 kind:arm_call to:0x02099c30 module:overlay(0) from:0x0214f320 kind:arm_call to:0x02011ff4 module:main from:0x0214f334 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x0214f348 kind:arm_branch to:0x0214f19c module:overlay(58) +from:0x0214f358 kind:arm_branch to:0x0214f184 module:overlay(58) from:0x0214f368 kind:load to:0x02158f98 module:overlay(58) from:0x0214f37c kind:arm_call to:0x02011f3c module:main from:0x0214f388 kind:arm_call to:0x0214f3b8 module:overlay(58) diff --git a/config/jp/arm9/overlays/ov060/symbols.txt b/config/jp/arm9/overlays/ov060/symbols.txt index 40fd58cd..8659dc3b 100644 --- a/config/jp/arm9/overlays/ov060/symbols.txt +++ b/config/jp/arm9/overlays/ov060/symbols.txt @@ -389,7 +389,7 @@ __sinit_MapObjectUnkEXCT.cpp kind:function(arm,size=0x50) addr:0x021630dc _ZTV19data_ov060_02163180 kind:data(any) addr:0x02163180 _ZTV19data_ov060_021631a4 kind:data(any) addr:0x021631a4 data_ov060_021631d0 kind:data(any) addr:0x021631d0 -_ZTV19data_ov060_021631d0 kind:data(any) addr:0x021631d0 ambiguous +_ZTV19data_ov060_021631d0 kind:data(any) addr:0x021631d0 data_ov060_021631f4 kind:data(any) addr:0x021631f4 data_ov060_02163238 kind:data(any) addr:0x02163238 data_ov060_02163248 kind:data(any) addr:0x02163248 ambiguous diff --git a/config/jp/arm9/overlays/ov063/relocs.txt b/config/jp/arm9/overlays/ov063/relocs.txt index f71db28e..4d4ad6a5 100644 --- a/config/jp/arm9/overlays/ov063/relocs.txt +++ b/config/jp/arm9/overlays/ov063/relocs.txt @@ -1176,6 +1176,13 @@ from:0x02162848 kind:arm_call_thumb to:0x02059454 module:overlay(0) from:0x02162850 kind:arm_call to:0x02062c50 module:overlay(0) from:0x02162858 kind:arm_call to:0x0209e870 module:overlay(0) from:0x0216286c kind:arm_call to:0x0209e19c module:overlay(0) +from:0x02162880 kind:arm_branch to:0x021627dc module:overlay(63) +from:0x02162890 kind:arm_branch to:0x02162774 module:overlay(63) +from:0x021628a0 kind:arm_branch to:0x02162750 module:overlay(63) +from:0x021628b0 kind:arm_branch to:0x02162730 module:overlay(63) +from:0x021628c0 kind:arm_branch to:0x021626c0 module:overlay(63) +from:0x021628d0 kind:arm_branch to:0x02162698 module:overlay(63) +from:0x021628e0 kind:arm_branch to:0x02162824 module:overlay(63) from:0x021628f0 kind:load to:0x02166528 module:overlay(63) from:0x02162904 kind:arm_call to:0x02011f3c module:main from:0x02162910 kind:arm_call to:0x021629e8 module:overlay(63) diff --git a/config/jp/arm9/overlays/ov064/symbols.txt b/config/jp/arm9/overlays/ov064/symbols.txt index 0f8ce462..cfa60056 100644 --- a/config/jp/arm9/overlays/ov064/symbols.txt +++ b/config/jp/arm9/overlays/ov064/symbols.txt @@ -157,7 +157,7 @@ _ZTV19data_ov064_0215c434 kind:data(any) addr:0x0215c434 _ZTV19data_ov064_0215c458 kind:data(any) addr:0x0215c458 _ZTV19data_ov064_0215c468 kind:data(any) addr:0x0215c468 ambiguous data_ov064_0215c4c0 kind:data(any) addr:0x0215c4c0 -_ZTV19data_ov064_0215c4c0 kind:data(any) addr:0x0215c4c0 ambiguous +_ZTV19data_ov064_0215c4c0 kind:data(any) addr:0x0215c4c0 _ZTV19data_ov064_0215c4dc kind:data(any) addr:0x0215c4dc _ZTV19data_ov064_0215c53c kind:data(any) addr:0x0215c53c _ZTV19data_ov064_0215c560 kind:data(any) addr:0x0215c560 diff --git a/config/jp/arm9/overlays/ov065/relocs.txt b/config/jp/arm9/overlays/ov065/relocs.txt index 06a3d086..d1a1b35e 100644 --- a/config/jp/arm9/overlays/ov065/relocs.txt +++ b/config/jp/arm9/overlays/ov065/relocs.txt @@ -320,6 +320,12 @@ from:0x0215b928 kind:arm_call_thumb to:0x02059454 module:overlay(0) from:0x0215b930 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0215b938 kind:arm_call to:0x0209e870 module:overlay(0) from:0x0215b94c kind:arm_call to:0x0209e078 module:overlay(0) +from:0x0215b960 kind:arm_branch to:0x0215b8cc module:overlay(65) +from:0x0215b970 kind:arm_branch to:0x0215b880 module:overlay(65) +from:0x0215b980 kind:arm_branch to:0x0215b860 module:overlay(65) +from:0x0215b990 kind:arm_branch to:0x0215b818 module:overlay(65) +from:0x0215b9a0 kind:arm_branch to:0x0215b7f8 module:overlay(65) +from:0x0215b9b0 kind:arm_branch to:0x0215b90c module:overlay(65) from:0x0215b9c0 kind:load to:0x0215d54c module:overlay(65) from:0x0215b9d4 kind:arm_call to:0x02011f3c module:main from:0x0215b9e0 kind:arm_call to:0x0215ba30 module:overlay(65) diff --git a/config/jp/arm9/overlays/ov067/symbols.txt b/config/jp/arm9/overlays/ov067/symbols.txt index cf8da5d9..c55f1ae0 100644 --- a/config/jp/arm9/overlays/ov067/symbols.txt +++ b/config/jp/arm9/overlays/ov067/symbols.txt @@ -270,7 +270,7 @@ __sinit_MapObjectUnkDRVT.cpp kind:function(arm,size=0x50) addr:0x0215e7ac .p__sinit_MapObjectUnkMTOR.cpp kind:data(word) addr:0x0215e824 .p__sinit_MapObjectUnkDRVT.cpp kind:data(word) addr:0x0215e828 data_ov067_0215e848 kind:data(any) addr:0x0215e848 -_ZTV19data_ov067_0215e848 kind:data(any) addr:0x0215e848 ambiguous +_ZTV19data_ov067_0215e848 kind:data(any) addr:0x0215e848 data_ov067_0215e858 kind:data(any) addr:0x0215e858 ambiguous _ZTV19data_ov067_0215e864 kind:data(any) addr:0x0215e864 _ZTV19data_ov067_0215e888 kind:data(any) addr:0x0215e888 diff --git a/config/jp/arm9/overlays/ov070/relocs.txt b/config/jp/arm9/overlays/ov070/relocs.txt index 97c5e1d3..7057fae7 100644 --- a/config/jp/arm9/overlays/ov070/relocs.txt +++ b/config/jp/arm9/overlays/ov070/relocs.txt @@ -610,6 +610,8 @@ from:0x02145d10 kind:arm_call to:0x02099c30 module:overlay(0) from:0x02145d24 kind:arm_call to:0x02099c30 module:overlay(0) from:0x02145d2c kind:arm_call to:0x02011ff4 module:main from:0x02145d40 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x02145d54 kind:arm_branch to:0x02145cb4 module:overlay(70) +from:0x02145d64 kind:arm_branch to:0x02145c34 module:overlay(70) from:0x02145d78 kind:load to:0x0214fcac module:overlay(70) from:0x02145d84 kind:load to:0x02151dd4 module:overlay(70) from:0x02145d98 kind:arm_call to:0x02011f3c module:main @@ -1475,6 +1477,7 @@ from:0x0214d198 kind:arm_call_thumb to:0x02059454 module:overlay(0) from:0x0214d1a0 kind:arm_call to:0x0209e870 module:overlay(0) from:0x0214d1a8 kind:arm_call to:0x02011ff4 module:main from:0x0214d1bc kind:arm_call to:0x0209e19c module:overlay(0) +from:0x0214d1d0 kind:arm_branch to:0x0214c1a0 module:overlay(70) from:0x0214d1e0 kind:load to:0x02152988 module:overlay(70) from:0x0214d1f4 kind:arm_call to:0x02011f3c module:main from:0x0214d200 kind:arm_call to:0x0214d24c module:overlay(70) diff --git a/config/jp/arm9/overlays/ov073/relocs.txt b/config/jp/arm9/overlays/ov073/relocs.txt index 87012aba..02195fcf 100644 --- a/config/jp/arm9/overlays/ov073/relocs.txt +++ b/config/jp/arm9/overlays/ov073/relocs.txt @@ -1784,6 +1784,10 @@ from:0x0216546c kind:arm_call to:0x02011ff4 module:main from:0x02165484 kind:arm_call to:0x02062c50 module:overlay(0) from:0x0216548c kind:arm_call to:0x02099c30 module:overlay(0) from:0x021654a0 kind:arm_call to:0x020990b4 module:overlay(0) +from:0x021654b4 kind:arm_branch to:0x02165450 module:overlay(73) +from:0x021654c4 kind:arm_branch to:0x021653a8 module:overlay(73) +from:0x021654d4 kind:arm_branch to:0x02165388 module:overlay(73) +from:0x021654e4 kind:arm_branch to:0x02165478 module:overlay(73) from:0x0216553c kind:arm_call to:0x01fff1a4 module:itcm from:0x02165554 kind:arm_call to:0x01fff148 module:itcm from:0x02165564 kind:arm_call to:0x01fff148 module:itcm diff --git a/config/jp/arm9/overlays/ov077/symbols.txt b/config/jp/arm9/overlays/ov077/symbols.txt index 45237dcc..9628eecc 100644 --- a/config/jp/arm9/overlays/ov077/symbols.txt +++ b/config/jp/arm9/overlays/ov077/symbols.txt @@ -270,7 +270,7 @@ data_ov077_0215d784 kind:data(any) addr:0x0215d784 data_ov077_0215d798 kind:data(any) addr:0x0215d798 ambiguous _ZTV19data_ov077_0215d798 kind:data(any) addr:0x0215d798 _ZTV19data_ov077_0215d7bc kind:data(any) addr:0x0215d7bc -_ZTV19data_ov077_0215d7c4 kind:data(any) addr:0x0215d7c4 ambiguous +_ZTV19data_ov077_0215d7c4 kind:data(any) addr:0x0215d7c4 _ZTV19data_ov077_0215d7d0 kind:data(any) addr:0x0215d7d0 ambiguous data_ov077_0215d820 kind:data(any) addr:0x0215d820 _ZTV19data_ov077_0215d834 kind:data(any) addr:0x0215d834 @@ -295,7 +295,7 @@ data_ov077_0215da0c kind:data(any) addr:0x0215da0c data_ov077_0215da24 kind:data(any) addr:0x0215da24 data_ov077_0215da44 kind:data(any) addr:0x0215da44 _ZTV19data_ov077_0215da88 kind:data(any) addr:0x0215da88 -_ZTV19data_ov077_0215da90 kind:data(any) addr:0x0215da90 ambiguous +_ZTV19data_ov077_0215da90 kind:data(any) addr:0x0215da90 data_ov077_0215dae0 kind:data(any) addr:0x0215dae0 ambiguous data_ov077_0215dae8 kind:data(any) addr:0x0215dae8 data_ov077_0215daec kind:data(any) addr:0x0215daec diff --git a/config/jp/arm9/overlays/ov094/relocs.txt b/config/jp/arm9/overlays/ov094/relocs.txt index f92a087e..57bd024e 100644 --- a/config/jp/arm9/overlays/ov094/relocs.txt +++ b/config/jp/arm9/overlays/ov094/relocs.txt @@ -1346,6 +1346,8 @@ from:0x021732b0 kind:arm_call to:0x02068848 module:overlay(0) from:0x021732b8 kind:arm_call_thumb to:0x02059454 module:overlay(0) from:0x021732c0 kind:arm_call to:0x02062c50 module:overlay(0) from:0x021732c8 kind:arm_call to:0x0209e870 module:overlay(0) +from:0x021732dc kind:arm_branch to:0x0217326c module:overlay(94) +from:0x021732ec kind:arm_branch to:0x021732a4 module:overlay(94) from:0x021732fc kind:load to:0x0217b518 module:overlay(94) from:0x02173310 kind:arm_call to:0x02011f3c module:main from:0x0217331c kind:arm_call to:0x02173414 module:overlay(94) @@ -1413,6 +1415,11 @@ from:0x02173a3c kind:arm_call to:0x02011ff4 module:main from:0x02173a50 kind:arm_call to:0x0209e444 module:overlay(0) from:0x02173a58 kind:arm_call to:0x02011ff4 module:main from:0x02173a6c kind:arm_call to:0x0209e444 module:overlay(0) +from:0x02173a80 kind:arm_branch to:0x021739a0 module:overlay(94) +from:0x02173a90 kind:arm_branch to:0x02173954 module:overlay(94) +from:0x02173aa0 kind:arm_branch to:0x02173934 module:overlay(94) +from:0x02173ab0 kind:arm_branch to:0x021738c4 module:overlay(94) +from:0x02173ac0 kind:arm_branch to:0x021739e0 module:overlay(94) from:0x02173ad0 kind:load to:0x0217b5b0 module:overlay(94) from:0x02173ae4 kind:arm_call to:0x02011f3c module:main from:0x02173af0 kind:arm_call to:0x02173b8c module:overlay(94) @@ -1698,6 +1705,15 @@ from:0x02175b6c kind:load to:0x027e09bc module:dtcm from:0x02175b70 kind:load to:0x02178450 module:overlay(94) from:0x02175b7c kind:load to:0x0203feb0 module:main from:0x02175b8c kind:arm_call to:0x0209e19c module:overlay(0) +from:0x02175ba0 kind:arm_branch to:0x02174db4 module:overlay(94) +from:0x02175bb0 kind:arm_branch to:0x02173f68 module:overlay(94) +from:0x02175bc0 kind:arm_branch to:0x02175834 module:overlay(94) +from:0x02175bd0 kind:arm_branch to:0x021757d4 module:overlay(94) +from:0x02175be0 kind:arm_branch to:0x021757e0 module:overlay(94) +from:0x02175bf0 kind:arm_branch to:0x021757bc module:overlay(94) +from:0x02175c00 kind:arm_branch to:0x02173ecc module:overlay(94) +from:0x02175c10 kind:arm_branch to:0x02174d04 module:overlay(94) +from:0x02175c20 kind:arm_branch to:0x02174cd8 module:overlay(94) from:0x02175c30 kind:load to:0x0217b8d4 module:overlay(94) from:0x02175c44 kind:arm_call to:0x02011f3c module:main from:0x02175c50 kind:arm_call to:0x02175dc8 module:overlay(94) diff --git a/config/jp/arm9/overlays/ov096/relocs.txt b/config/jp/arm9/overlays/ov096/relocs.txt index 27fe3da8..e7da04e0 100644 --- a/config/jp/arm9/overlays/ov096/relocs.txt +++ b/config/jp/arm9/overlays/ov096/relocs.txt @@ -137,6 +137,8 @@ from:0x0217cdf0 kind:arm_call to:0x02099c30 module:overlay(0) from:0x0217ce04 kind:arm_call to:0x02099c30 module:overlay(0) from:0x0217ce0c kind:arm_call to:0x02011ff4 module:main from:0x0217ce20 kind:arm_call to:0x02098ecc module:overlay(0) +from:0x0217ce34 kind:arm_branch to:0x0217cbd0 module:overlay(96) +from:0x0217ce44 kind:arm_branch to:0x0217cb8c module:overlay(96) from:0x0217ce54 kind:load to:0x021805a8 module:overlay(96) from:0x0217ce68 kind:arm_call to:0x02011f3c module:main from:0x0217ce74 kind:arm_call to:0x0217cea4 module:overlay(96) diff --git a/config/jp/arm9/relocs.txt b/config/jp/arm9/relocs.txt index e2568fd6..60b550e6 100644 --- a/config/jp/arm9/relocs.txt +++ b/config/jp/arm9/relocs.txt @@ -5738,10 +5738,12 @@ from:0x0203e830 kind:arm_call to:0x0203e800 module:main from:0x0203e838 kind:arm_call to:0x02011ff4 module:main from:0x0203e900 kind:arm_call to:0x0203cf94 module:main from:0x0203e910 kind:arm_call to:0x0203cf94 module:main -from:0x0203e958 kind:load to:0x0203eb2c module:main -from:0x0203e95c kind:load to:0x0203ed54 module:main +from:0x0203e958 kind:link_time_const(__exception_table_start__) +from:0x0203e95c kind:link_time_const(__exception_table_end__) from:0x0203e970 kind:arm_call to:0x0203cf94 module:main from:0x0203e980 kind:arm_call to:0x0203cf94 module:main +from:0x0203e9fc kind:arm_branch to:0x0203e1ac module:main +from:0x0203ea48 kind:arm_branch to:0x0203e1ac module:main from:0x0203ea94 kind:load to:0x0203a204 module:main from:0x0203eb2c kind:load to:0x0203a0dc module:main from:0x0203eb34 kind:load to:0x0203ea4c module:main diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 3253c869..f073806c 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -1495,7 +1495,7 @@ OS_func_0032 kind:function(arm,size=0x18) addr:0x02027c30 OS_func_0033 kind:function(arm,size=0x18) addr:0x02027c48 OS_func_0034 kind:function(arm,size=0x8) addr:0x02027c60 OS_GetLockID kind:function(arm,size=0x58) addr:0x02027c68 -func_02027cc0 kind:function(arm,size=0x30) addr:0x02027cc0 +OS_func_0178 kind:function(arm,size=0x30) addr:0x02027cc0 sscanf kind:function(arm,size=0x28) addr:0x02027cf0 vsscanf kind:function(arm,size=0x18) addr:0x02027d18 snprintf kind:function(arm,size=0x28) addr:0x02027d30 @@ -1548,12 +1548,12 @@ func_02028abc kind:function(arm,size=0x24) addr:0x02028abc DC_func_0001 kind:function(arm,size=0xc) addr:0x02028ae0 DC_func_0002 kind:function(arm,size=0x2c) addr:0x02028aec DC_FlushAll kind:function(arm,size=0x34) addr:0x02028b18 -DC_func_0003 kind:function(arm,size=0x1c) addr:0x02028b4c +DC_InvalidateRange kind:function(arm,size=0x1c) addr:0x02028b4c DC_StoreRange kind:function(arm,size=0x1c) addr:0x02028b68 -DC_func_0004 kind:function(arm,size=0x24) addr:0x02028b84 +DC_FlushRange kind:function(arm,size=0x24) addr:0x02028b84 DC_func_0005 kind:function(arm,size=0xc) addr:0x02028ba8 IC_func_0001 kind:function(arm,size=0xc) addr:0x02028bb4 -IC_func_0002 kind:function(arm,size=0x1c) addr:0x02028bc0 +IC_InvalidateRange kind:function(arm,size=0x1c) addr:0x02028bc0 OS_func_0069 kind:function(arm,size=0x20) addr:0x02028bdc OS_Init kind:function(thumb,size=0x44) addr:0x02028bfc OS_func_0070 kind:function(thumb,size=0xb0) addr:0x02028c40 @@ -1603,8 +1603,8 @@ OS_func_0104 kind:function(arm,size=0x54) addr:0x020296b8 OS_func_0105 kind:function(arm,size=0x30) addr:0x0202970c OS_func_0106 kind:function(arm,size=0x2c) addr:0x0202973c OS_ResetSystem kind:function(arm,size=0xbc) addr:0x02029768 -func_02029824 kind:function(arm,size=0x1c) addr:0x02029824 -func_02029840 kind:function(arm,size=0x80) addr:0x02029840 +OS_func_0176 kind:function(arm,size=0x1c) addr:0x02029824 +OS_func_0177 kind:function(arm,size=0x80) addr:0x02029840 OS_func_0107 kind:function(arm,size=0x8) addr:0x020298c0 OS_func_0108 kind:function(arm,size=0x34) addr:0x020298c8 OS_func_0110 kind:function(arm,size=0x84) addr:0x020298fc @@ -2079,10 +2079,10 @@ func_0203b348 kind:function(arm,size=0x68) addr:0x0203b348 _f2d kind:function(arm,size=0x84) addr:0x0203b3b0 func_0203b434 kind:function(arm,size=0x48) addr:0x0203b434 func_0203b47c kind:function(arm,size=0x48) addr:0x0203b47c -func_0203b4c4 kind:function(arm,size=0x10) addr:0x0203b4c4 -func_0203b4d4 kind:function(arm,size=0x1b0) addr:0x0203b4d4 -_ll_udiv kind:function(arm,size=0xc) addr:0x0203b684 -_ull_mod kind:function(arm,size=0x3c) addr:0x0203b690 +func_0203b4c4 kind:function(arm,size=0x1c0) addr:0x0203b4c4 +.L_0203b4d4 kind:label(arm) addr:0x0203b4d4 +_ll_udiv kind:function(arm,size=0x48) addr:0x0203b684 +_ull_mod kind:label(arm) addr:0x0203b690 _ull_mul kind:function(arm,size=0x20) addr:0x0203b6cc _s32_div_f kind:function(arm,size=0x20c) addr:0x0203b6ec _u32_div_f kind:function(arm,size=0x1e4) addr:0x0203b8f8 @@ -2150,26 +2150,71 @@ _ZN13func_0203e814D1Ev kind:function(arm,size=0x14) addr:0x0203e814 _ZN13func_0203e828D0Ev kind:function(arm,size=0x1c) addr:0x0203e828 func_0203e844 kind:function(arm,size=0x5c) addr:0x0203e844 func_0203e8a0 kind:function(arm,size=0xa0) addr:0x0203e8a0 -func_0203e940 kind:function(arm,size=0x20) addr:0x0203e940 +__FindExceptionTable kind:function(arm,size=0x20) addr:0x0203e940 func_0203e960 kind:function(arm,size=0x28) addr:0x0203e960 func_0203e988 kind:function(arm,size=0x30) addr:0x0203e988 func_0203e9b8 kind:function(arm,size=0x48) addr:0x0203e9b8 func_0203ea00 kind:function(arm,size=0x4c) addr:0x0203ea00 -data_0203ea4c kind:data(any) addr:0x0203ea4c -data_0203ea5c kind:data(any) addr:0x0203ea5c -data_0203ea70 kind:data(any) addr:0x0203ea70 -data_0203ea80 kind:data(any) addr:0x0203ea80 -data_0203ea98 kind:data(any) addr:0x0203ea98 -data_0203eaa0 kind:data(any) addr:0x0203eaa0 -data_0203eab0 kind:data(any) addr:0x0203eab0 -data_0203eab8 kind:data(any) addr:0x0203eab8 -data_0203eacc kind:data(any) addr:0x0203eacc -data_0203ead4 kind:data(any) addr:0x0203ead4 -data_0203eadc kind:data(any) addr:0x0203eadc -data_0203eaf0 kind:data(any) addr:0x0203eaf0 -data_0203eb04 kind:data(any) addr:0x0203eb04 -data_0203eb18 kind:data(any) addr:0x0203eb18 -data_0203eb2c kind:data(any) addr:0x0203eb2c +@ET@0203a0dc kind:data(any) addr:0x0203ea4c +@ET@0203a18c kind:data(any) addr:0x0203ea5c +@ET@0203a23c kind:data(any) addr:0x0203ea70 +@ET@0203a2f0 kind:data(any) addr:0x0203ea80 +@ET@0203d1a0 kind:data(any) addr:0x0203ea98 +@ET@0203d45c kind:data(any) addr:0x0203eaa0 +@ET@0203dc90 kind:data(any) addr:0x0203eab0 +@ET@0203de64 kind:data(any) addr:0x0203eab8 +@ET@0203df14 kind:data(any) addr:0x0203eacc +@ET@0203df74 kind:data(any) addr:0x0203ead4 +@ET@0203e578 kind:data(any) addr:0x0203eadc +@ET@0203e5d4 kind:data(any) addr:0x0203eaf0 +@ET@0203e690 kind:data(any) addr:0x0203eb04 +@ET@0203e740 kind:data(any) addr:0x0203eb18 +@EX@0203a0dc kind:data(word[3]) addr:0x0203eb2c +@EX@0203a154 kind:data(word[3]) addr:0x0203eb38 +@EX@0203a17c kind:data(word[3]) addr:0x0203eb44 +@EX@0203a18c kind:data(word[3]) addr:0x0203eb50 +@EX@0203a1cc kind:data(word[3]) addr:0x0203eb5c +@EX@0203a1ec kind:data(word[3]) addr:0x0203eb68 +@EX@0203a208 kind:data(word[3]) addr:0x0203eb74 +@EX@0203a224 kind:data(word[3]) addr:0x0203eb80 +@EX@0203a23c kind:data(word[3]) addr:0x0203eb8c +@EX@0203a25c kind:data(word[3]) addr:0x0203eb98 +@EX@0203a274 kind:data(word[3]) addr:0x0203eba4 +@EX@0203a294 kind:data(word[3]) addr:0x0203ebb0 +@EX@0203a2c4 kind:data(word[3]) addr:0x0203ebbc +@EX@0203a2f0 kind:data(word[3]) addr:0x0203ebc8 +@EX@0203ce54 kind:data(word[3]) addr:0x0203ebd4 +@EX@0203ce74 kind:data(word[3]) addr:0x0203ebe0 +@EX@0203cec4 kind:data(word[3]) addr:0x0203ebec +@EX@0203d07c kind:data(word[3]) addr:0x0203ebf8 +@EX@0203d1a0 kind:data(word[3]) addr:0x0203ec04 +@EX@0203d45c kind:data(word[3]) addr:0x0203ec10 +@EX@0203dc90 kind:data(word[3]) addr:0x0203ec1c +@EX@0203dde4 kind:data(word[3]) addr:0x0203ec28 +@EX@0203de64 kind:data(word[3]) addr:0x0203ec34 +@EX@0203df14 kind:data(word[3]) addr:0x0203ec40 +@EX@0203df74 kind:data(word[3]) addr:0x0203ec4c +@EX@0203e1ac kind:data(word[3]) addr:0x0203ec58 +@EX@0203e2a0 kind:data(word[3]) addr:0x0203ec64 +@EX@0203e2c8 kind:data(word[3]) addr:0x0203ec70 +@EX@0203e2e8 kind:data(word[3]) addr:0x0203ec7c +@EX@0203e318 kind:data(word[3]) addr:0x0203ec88 +@EX@0203e35c kind:data(word[3]) addr:0x0203ec94 +@EX@0203e368 kind:data(word[3]) addr:0x0203eca0 +@EX@0203e374 kind:data(word[3]) addr:0x0203ecac +@EX@0203e38c kind:data(word[3]) addr:0x0203ecb8 +@EX@0203e578 kind:data(word[3]) addr:0x0203ecc4 +@EX@0203e5d4 kind:data(word[3]) addr:0x0203ecd0 +@EX@0203e690 kind:data(word[3]) addr:0x0203ecdc +@EX@0203e740 kind:data(word[3]) addr:0x0203ece8 +@EX@0203e7a0 kind:data(word[3]) addr:0x0203ecf4 +@EX@0203e7d0 kind:data(word[3]) addr:0x0203ed00 +@EX@0203e7e4 kind:data(word[3]) addr:0x0203ed0c +@EX@0203e800 kind:data(word[3]) addr:0x0203ed18 +@EX@0203e814 kind:data(word[3]) addr:0x0203ed24 +@EX@0203e828 kind:data(word[3]) addr:0x0203ed30 +@EX@0203e8a0 kind:data(word[3]) addr:0x0203ed3c +@EX@0203e960 kind:data(word[3]) addr:0x0203ed48 __sinit_0203ed54 kind:function(arm,size=0x1c) addr:0x0203ed54 __sinit_0203ed70 kind:function(arm,size=0x60) addr:0x0203ed70 __sinit_0203edd0 kind:function(arm,size=0x50) addr:0x0203edd0 diff --git a/libs/dsprot/.clangd b/libs/dsprot/.clangd new file mode 100644 index 00000000..43281fa4 --- /dev/null +++ b/libs/dsprot/.clangd @@ -0,0 +1,8 @@ +CompileFlags: + Add: + - -Wno-int-to-pointer-cast +Diagnostics: + Suppress: + - sizeof_alignof_function_type + - bad_reinterpret_cast_small_int + - typecheck_pointer_arith_void_type diff --git a/libs/dsprot/README.md b/libs/dsprot/README.md new file mode 100644 index 00000000..17ad70c5 --- /dev/null +++ b/libs/dsprot/README.md @@ -0,0 +1 @@ +Credits to taxicat1 aka Mow: https://github.com/taxicat1/dsprot/ diff --git a/libs/dsprotect/include/dsprot.h b/libs/dsprot/include/dsprot.h similarity index 93% rename from libs/dsprotect/include/dsprot.h rename to libs/dsprot/include/dsprot.h index 2819af4f..1f55249b 100644 --- a/libs/dsprotect/include/dsprot.h +++ b/libs/dsprot/include/dsprot.h @@ -17,7 +17,7 @@ #ifndef DSP_NO_NITRO - #include // For u32 + #include // For u32 #else /* DSP_NO_NITRO */ @@ -113,8 +113,14 @@ extern u32 DSProt_DetectNotDummy(void *callback); #else /* SDK_ASM */ -.public DSProt_DetectFlashcart.public DSProt_DetectNotFlashcart.public DSProt_DetectEmulator.public DSProt_DetectNotEmulator - .public DSProt_DetectDummy.public DSProt_DetectNotDummy +// clang-format off +.public DSProt_DetectFlashcart +.public DSProt_DetectNotFlashcart +.public DSProt_DetectEmulator +.public DSProt_DetectNotEmulator +.public DSProt_DetectDummy +.public DSProt_DetectNotDummy + // clang-format on #endif /* SDK_ASM */ diff --git a/libs/dsprot/include/dsprot/asm_macro.inc b/libs/dsprot/include/dsprot/asm_macro.inc new file mode 100644 index 00000000..b43600cd --- /dev/null +++ b/libs/dsprot/include/dsprot/asm_macro.inc @@ -0,0 +1,91 @@ +#pragma once +#include "dsprot/encoding_constants.h" + + .macro arm_func_start name + .balign 4, 0 + .global \name + .type \name, @function + .arm + .endm + + .macro local_arm_func_start name + .balign 4, 0 + .type \name, @function + .arm + .endm + + .macro arm_func_end name + .size \name, .-\name + .endm + + + .macro sinit sinit_func + .type NitroStaticInit_\@, @object +NitroStaticInit_\@: + .word \sinit_func + .size NitroStaticInit_\@, .-NitroStaticInit_\@ + .endm + + + .public DSProt_BSS + .public Encryptor_DecryptFunction + .public Encryptor_EncryptFunction + + .macro run_encrypted_func func, length, key + stmfd sp!, {r4-r7} ; `r0`-`r3` contain the arguments that must be passed into the inner function. + stmfd sp!, {r0-r3} ; Stack manipulation to move `r0`-`r3` into `r4`-`r7` for storage. + ldmfd sp!, {r4-r7} ; Original values of `r4`-`r7` get pushed onto the stack. + ldr r1, func_\@ ; Get second function decrypter argument, obfuscated function address. + adr r3, storage_\@ ; `lr` cannot be stored on the stack when we call the inner function, + str lr, [r3] ; so it is stored in the pool below. + ldr r2, length_\@ ; Get third function decrypter argument, obfuscated length. + ldr r0, key_\@ ; Get first function decrypter argument, obfuscated key. + bl Encryptor_DecryptFunction ; Call function decrypter with args (key, addr, len). + mov ip, r0 ; Function decrypter returns the de-obfuscated function address. Save it in `ip`. + stmfd sp!, {r4-r7} ; Stack manipulation again to restore the original `r0`-`r3`. + ldmfd sp!, {r0-r3} ; + ldmfd sp!, {r4-r7} ; Stack is now restored, so `sp` is correct for the inner function call. + blx ip ; Call inner function. + stmfd sp!, {r4} ; `r4` about to be used as storage space for the inner function return, so save it on the stack. + mov r4, r0 ; Copy the return from the inner function into `r4` so we can can run the function re-encrypter. + ldr r1, func_\@ ; Get second function encrypter argument, obfuscated function address. + ldr r2, length_\@ ; Get third function encrypter argument, obfuscated length. + ldr r0, key_\@ ; Get first function encrypter argument, obfuscated key. + bl Encryptor_EncryptFunction ; Call function encrypter. + str r0, key_\@ ; Function encrypter returns the new key it used, store this back into the pool for next time. + mov r0, r4 ; Restore the return value from the inner function from `r4` to `r0`. + ldmfd sp!, {r4} ; Restore the original value of `r4` from the stack. + ldr lr, storage_\@ ; Load `lr` return address back from the storage space in the pool. + str pc, storage_\@ ; Store `pc` in its place, presumably just to overwrite the return address. + bx lr ; Return with return value from inner function. +storage_\@: + .word DSProt_BSS + 1 +length_\@: + .word DSProt_BSS + \length + ENC_VAL_1 +key_\@: + .word DSProt_BSS + \key + ENC_VAL_1 +func_\@: + .word \func + ENC_VAL_1 + .endm + + + .public Encryptor_DecodeFunctionTable + + .macro decode_func_table table + stmdb sp!, {lr} + adr r0, \table + bl Encryptor_DecodeFunctionTable + ldmia sp!, {pc} + .endm + + .macro func_table_entry func, size + .word \func + ENC_VAL_1, DSProt_BSS + \size + ENC_VAL_1 + .endm + + .macro func_table_end + .word 0, 0 + .endm + + .macro garbage_ref ref + .word \ref + ENC_VAL_1 + .endm diff --git a/libs/dsprot/include/dsprot/bss.h b/libs/dsprot/include/dsprot/bss.h new file mode 100644 index 00000000..9057b9cc --- /dev/null +++ b/libs/dsprot/include/dsprot/bss.h @@ -0,0 +1,8 @@ +#ifndef BSS_H +#define BSS_H + +#include + +extern u8 DSProt_BSS[4]; + +#endif diff --git a/libs/dsprot/include/dsprot/encoding_constants.h b/libs/dsprot/include/dsprot/encoding_constants.h new file mode 100644 index 00000000..e8745534 --- /dev/null +++ b/libs/dsprot/include/dsprot/encoding_constants.h @@ -0,0 +1,21 @@ +#ifndef ENCODING_CONSTANTS_H +#define ENCODING_CONSTANTS_H + +#define INS_OPCODE_LINKBIT (0x01) +#define INS_OPCODE_MASK (0xFF000000) +#define INS_OPCODE_SHIFT (24) +#define INS_OPERANDS_MASK (0x00FFFFFF) + +#define ADDR_PLUS_ADDEND(ref, addend) ((u32) (&ref + ((addend) / sizeof(ref)))) + +#define ENC_VAL_1 (0x1400) +#define ENC_VAL_2 ((ENC_VAL_1 >> 2) + 2) + +#define ENC_BYTE_A (0x65) +#define ENC_BYTE_B (0x56) +#define ENC_BYTE_C (0x68) +#define ENC_BYTE_D (0xD0) + +#define ENC_SBOX_XOR (0x01) + +#endif diff --git a/libs/dsprot/include/dsprot/encryptor.h b/libs/dsprot/include/dsprot/encryptor.h new file mode 100644 index 00000000..050a8146 --- /dev/null +++ b/libs/dsprot/include/dsprot/encryptor.h @@ -0,0 +1,23 @@ +#ifndef ENCRYPTOR_H +#define ENCRYPTOR_H + +#include + +typedef struct { + u32 obfs_addr; + u32 obfs_size; +} FuncInfo; + +enum { + INS_TYPE_OTHER = 0, + INS_TYPE_BLXIMM, + INS_TYPE_BL, + INS_TYPE_B +}; + +u32 Encryptor_CategorizeInstruction(u32 instruction); +void Encryptor_DecodeFunctionTable(FuncInfo *functions); +void *Encryptor_DecryptFunction(u32 key, u32 func_addr, u32 size); +u32 Encryptor_EncryptFunction(u32 key, u32 func_addr, u32 size); + +#endif diff --git a/libs/dsprot/include/dsprot/garbage.h b/libs/dsprot/include/dsprot/garbage.h new file mode 100644 index 00000000..3d018cb1 --- /dev/null +++ b/libs/dsprot/include/dsprot/garbage.h @@ -0,0 +1,8 @@ +#ifndef GARBAGE_H +#define GARBAGE_H + +#include + +extern const u32 DSProt_Garbage[6]; + +#endif diff --git a/libs/dsprot/include/dsprot/integrity.h b/libs/dsprot/include/dsprot/integrity.h new file mode 100644 index 00000000..a0ba9758 --- /dev/null +++ b/libs/dsprot/include/dsprot/integrity.h @@ -0,0 +1,12 @@ +#ifndef INTEGRITY_H +#define INTEGRITY_H + +#include + +// Assembly decryption wrappers +extern u32 RunEncrypted_Integrity_MACOwner_IsBad(void); +extern u32 RunEncrypted_Integrity_MACOwner_IsGood(void); +extern u32 RunEncrypted_Integrity_ROMTest_IsBad(void); +extern u32 RunEncrypted_Integrity_ROMTest_IsGood(void); + +#endif diff --git a/libs/dsprot/include/dsprot/mac_owner.h b/libs/dsprot/include/dsprot/mac_owner.h new file mode 100644 index 00000000..9a68572a --- /dev/null +++ b/libs/dsprot/include/dsprot/mac_owner.h @@ -0,0 +1,10 @@ +#ifndef MAC_OWNER_H +#define MAC_OWNER_H + +#include + +// Assembly decryption wrappers +extern u32 RunEncrypted_MACOwner_IsBad(void); +extern u32 RunEncrypted_MACOwner_IsGood(void); + +#endif diff --git a/libs/dsprot/include/dsprot/rc4.h b/libs/dsprot/include/dsprot/rc4.h new file mode 100644 index 00000000..908788ab --- /dev/null +++ b/libs/dsprot/include/dsprot/rc4.h @@ -0,0 +1,9 @@ +#ifndef RC4_H +#define RC4_H + +#include + +u32 RC4_InitAndEncryptInstructions(void *key, void *dst, void *src, u32 size); +u32 RC4_InitAndDecryptInstructions(void *key, void *dst, void *src, u32 size); + +#endif diff --git a/libs/dsprot/include/dsprot/rom_test.h b/libs/dsprot/include/dsprot/rom_test.h new file mode 100644 index 00000000..5f95baca --- /dev/null +++ b/libs/dsprot/include/dsprot/rom_test.h @@ -0,0 +1,10 @@ +#ifndef ROM_TEST_H +#define ROM_TEST_H + +#include + +// Assembly decryption wrappers +extern u32 RunEncrypted_ROMTest_IsBad(void); +extern u32 RunEncrypted_ROMTest_IsGood(void); + +#endif diff --git a/libs/dsprot/include/dsprot/rom_util.h b/libs/dsprot/include/dsprot/rom_util.h new file mode 100644 index 00000000..1ab13dc3 --- /dev/null +++ b/libs/dsprot/include/dsprot/rom_util.h @@ -0,0 +1,10 @@ +#ifndef ROM_UTIL_H +#define ROM_UTIL_H + +#include + +// Assembly decryption wrappers +extern void RunEncrypted_ROMUtil_Read(void *dest, u32 addr, s32 num_bytes); +extern u32 RunEncrypted_ROMUtil_CRC32(void *buf, u32 size); + +#endif diff --git a/libs/dsprot/src/dsprot_main.c b/libs/dsprot/src/dsprot_main.c new file mode 100644 index 00000000..5f50ac48 --- /dev/null +++ b/libs/dsprot/src/dsprot_main.c @@ -0,0 +1,152 @@ +/* No dedicated header */ + +#include "dsprot.h" +#include "dsprot/encoding_constants.h" +#include "dsprot/encryptor.h" +#include "dsprot/integrity.h" +#include "dsprot/mac_owner.h" +#include "dsprot/rom_test.h" + +// Functions to be encrypted (cannot be called directly) +u32 DetectFlashcart(void *callback); +u32 DetectNotFlashcart(void *callback); +u32 DetectEmulator(void *callback); +u32 DetectNotEmulator(void *callback); +u32 DetectDummy(void *callback); +u32 DetectNotDummy(void *callback); + +#define DSP_OBFS_OFFSET (0x320) + +#define FUNC_QUEUE_END (0) + +typedef u32 (*TaskFunc)(void); +typedef void (*CallbackFunc)(void); + +enum { + EXPECT_FALSE, + EXPECT_TRUE +}; + +// This was likely not originally an inline, but an inline is able to match here nicely +static inline u32 dsprotMain(u32 *func_queue, int expected_result, void *callback) { + BOOL ret; + BOOL func_result; + s32 compare_sum; + u32 i; + s32 func_result_sum; + + // These two bit arrays must be signed to match + compare_sum = 0; + func_result_sum = 0; + + for (i = 0; func_queue[i] != FUNC_QUEUE_END; i++) { + func_result = ((TaskFunc) (func_queue[i] - ENC_VAL_1 - DSP_OBFS_OFFSET))() != 0; + + func_result_sum += func_result; + func_result_sum <<= 1; + + compare_sum += TRUE; + compare_sum <<= 1; + } + + if (expected_result == EXPECT_TRUE) { + ret = (func_result_sum >> 1) == (compare_sum >> 1); + } else { + ret = ((func_result_sum & compare_sum) >> 1) != 0; + } + + if (callback != NULL && ret) { + ((CallbackFunc) callback)(); + } + + return (u32) ret; +} + +u32 DetectFlashcart(void *callback) { + u32 func_queue[32]; + + func_queue[2] = FUNC_QUEUE_END; + func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET; + func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_ROMTest_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET; + + return dsprotMain(&func_queue[0], EXPECT_FALSE, callback); +} + +u32 DetectNotFlashcart(void *callback) { + u32 func_queue[32]; + + func_queue[2] = FUNC_QUEUE_END; + func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET; + func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_ROMTest_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET; + + return dsprotMain(&func_queue[0], EXPECT_TRUE, callback); +} + +u32 DetectEmulator(void *callback) { + u32 func_queue[32]; + + func_queue[2] = FUNC_QUEUE_END; + func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET; + func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_MACOwner_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET; + + return dsprotMain(&func_queue[0], EXPECT_FALSE, callback); +} + +u32 DetectNotEmulator(void *callback) { + u32 func_queue[32]; + + func_queue[2] = FUNC_QUEUE_END; + func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET; + func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_MACOwner_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET; + + return dsprotMain(&func_queue[0], EXPECT_TRUE, callback); +} + +u32 DetectDummy(void *callback) { + u32 func_queue[32]; + + // Prevent optimization of the function queue processing + *(u32 *) &func_queue[0] = FUNC_QUEUE_END; + + return dsprotMain(&func_queue[0], EXPECT_FALSE, callback); +} + +u32 DetectNotDummy(void *callback) { + u32 func_queue[32]; + + // Prevent optimization of the function queue processing + *(u32 *) &func_queue[0] = FUNC_QUEUE_END; + + return dsprotMain(&func_queue[0], EXPECT_TRUE, callback); +} + +// DECRYPTION_WRAPPER(DetectFlashcart, 0xac, 0x2e8b, DSProt_) +// DECRYPTION_WRAPPER(DetectNotFlashcart, 0xac, 0x2e8b, DSProt_) +// DECRYPTION_WRAPPER(DetectEmulator, 0xac, 0x2e8b, DSProt_) +// DECRYPTION_WRAPPER(DetectNotEmulator, 0xac, 0x2e8b, DSProt_) +// DECRYPTION_WRAPPER(DetectDummy, 0x94, 0x2e8b, DSProt_) +// DECRYPTION_WRAPPER(DetectNotDummy, 0x94, 0x2e8b, DSProt_) + +// // clang-format off +// asm void NitroStaticInit() { +// stmdb sp!, {lr}; +// add r0, pc, #0x4; +// bl Encryptor_DecodeFunctionTable; +// ldmia sp!, {pc}; +// dcd DSProt_DetectFlashcart + ENC_VAL_1 +// dcd DSProt_BSS + 0x68 + ENC_VAL_1 +// dcd DSProt_DetectNotFlashcart + ENC_VAL_1 +// dcd DSProt_BSS + 0x68 + ENC_VAL_1 +// dcd DSProt_DetectEmulator + ENC_VAL_1 +// dcd DSProt_BSS + 0x68 + ENC_VAL_1 +// dcd DSProt_DetectNotEmulator + ENC_VAL_1 +// dcd DSProt_BSS + 0x68 + ENC_VAL_1 +// dcd DSProt_DetectDummy + ENC_VAL_1 +// dcd DSProt_BSS + 0x68 + ENC_VAL_1 +// dcd DSProt_DetectNotDummy + ENC_VAL_1 +// dcd DSProt_BSS + 0x68 + ENC_VAL_1 +// dcd 0 +// dcd 0 +// dcd DSProt_Garbage + 0x1400 +// } +// // clang-format on diff --git a/libs/dsprot/src/encryptor.c b/libs/dsprot/src/encryptor.c new file mode 100644 index 00000000..dbf65265 --- /dev/null +++ b/libs/dsprot/src/encryptor.c @@ -0,0 +1,137 @@ +#include "dsprot/encryptor.h" + +#include + +#include "dsprot/bss.h" +#include "dsprot/encoding_constants.h" +#include "dsprot/rc4.h" + +#define ROTL(x, a) ((a) == 0 ? (x) : (((x) << (a)) | ((x) >> (32 - (a))))) + +static void clearDataAndInstructionCache(void *start_addr, u32 num_bytes); + +static void clearDataAndInstructionCache(void *start_addr, u32 num_bytes) { + DC_FlushRange(start_addr, num_bytes); + IC_InvalidateRange(start_addr, num_bytes); +} + +u32 Encryptor_CategorizeInstruction(u32 instruction) { + u8 opcode; + + opcode = instruction >> INS_OPCODE_SHIFT; + + // Branch instruction + if ((opcode & 0x0E) == 0x0A) { + // BLX immediate type + if ((opcode & 0xF0) == 0xF0) { + return INS_TYPE_BLXIMM; + } + + // Link bit + if (opcode & INS_OPCODE_LINKBIT) { + return INS_TYPE_BL; + } else { + return INS_TYPE_B; + } + } + + return INS_TYPE_OTHER; +} + +void Encryptor_DecodeFunctionTable(FuncInfo *functions) { + u32 *addr; + u32 size; + u32 *end_addr; + + if (functions == NULL) { + return; + } + + for (; functions->obfs_addr != 0; functions++) { + addr = (u32 *) functions->obfs_addr; + size = functions->obfs_size - (u32) &DSProt_BSS - ENC_VAL_1; + + if (addr == NULL) { + break; + } + + addr = (u32 *) ((u32) addr - ENC_VAL_1); + end_addr = addr + (size / 4); + + for (; addr < end_addr; addr++) { + switch (Encryptor_CategorizeInstruction(*addr)) { + case INS_TYPE_BLXIMM: + case INS_TYPE_BL: { + u32 opcode = (*addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT); + u32 operands = ((*addr & INS_OPERANDS_MASK) - ENC_VAL_1) & INS_OPERANDS_MASK; + + *addr = opcode | operands; + } break; + + case INS_TYPE_B: { + u32 opcode = (*addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT); + u32 operands = ((*addr & INS_OPERANDS_MASK) - ENC_VAL_2) & INS_OPERANDS_MASK; + + *addr = opcode | operands; + } break; + + default: { + u8 *addr_bytes = (u8 *) addr; + *addr = (addr_bytes[0] ^ ENC_BYTE_A) | ((addr_bytes[1] ^ ENC_BYTE_B) << 8) | + ((addr_bytes[2] ^ ENC_BYTE_C) << 16) | ((addr_bytes[3] ^ ENC_BYTE_D) << 24); + } break; + } + } + + clearDataAndInstructionCache((void *) (functions->obfs_addr - ENC_VAL_1), size); + } +} + +static inline void expandRC4Key(u32 seed_key, u32 size, u32 *expanded_key) { + expanded_key[0] = ROTL(seed_key, 0) ^ size; + expanded_key[1] = ROTL(seed_key, 8) ^ size; + expanded_key[2] = ROTL(seed_key, 16) ^ size; + expanded_key[3] = ROTL(seed_key, 24) ^ size; +} + +void *Encryptor_DecryptFunction(u32 key, u32 func_addr, u32 size) { + u32 expanded_key[4]; + void *func_ptr; + + // Deobfuscate arguments + func_ptr = (void *) func_addr; + func_ptr -= ENC_VAL_1; + + size -= (u32) &DSProt_BSS + ENC_VAL_1; + key -= (u32) &DSProt_BSS + ENC_VAL_1; + + expandRC4Key(key, size, &expanded_key[0]); + RC4_InitAndDecryptInstructions(&expanded_key[0], func_ptr, func_ptr, size); + clearDataAndInstructionCache(func_ptr, size); + + return func_ptr; +} + +u32 Encryptor_EncryptFunction(u32 key, u32 func_addr, u32 size) { + u32 expanded_key[4]; + void *func_ptr; + + // Deobfuscate arguments + func_ptr = (void *) func_addr; + func_ptr -= ENC_VAL_1; + + size -= (u32) &DSProt_BSS + ENC_VAL_1; + key -= (u32) &DSProt_BSS + ENC_VAL_1; + + // Change key + key += func_addr >> 20; + + expandRC4Key(key, size, &expanded_key[0]); + RC4_InitAndEncryptInstructions(&expanded_key[0], func_ptr, func_ptr, size); + clearDataAndInstructionCache(func_ptr, size); + + // Re-obfuscate key + key += (u32) &DSProt_BSS + ENC_VAL_1; + + return key; +} diff --git a/libs/dsprot/src/extra.c b/libs/dsprot/src/extra.c new file mode 100644 index 00000000..736d71f6 --- /dev/null +++ b/libs/dsprot/src/extra.c @@ -0,0 +1,8 @@ +#include "dsprot/bss.h" +#include "dsprot/garbage.h" + +u8 DSProt_BSS[4]; + +const u32 DSProt_Garbage[6] = { + 0xebaa0114, 0x40064eb7, 0x5f013696, 0xe5211f83, 0xe7ef335b, 0xe84b197c, +}; diff --git a/libs/dsprot/src/integrity.c b/libs/dsprot/src/integrity.c new file mode 100644 index 00000000..bb1b9480 --- /dev/null +++ b/libs/dsprot/src/integrity.c @@ -0,0 +1,120 @@ +#include "dsprot/integrity.h" + +#include "dsprot/encoding_constants.h" +#include "dsprot/mac_owner.h" +#include "dsprot/rom_test.h" + +// Functions to be encrypted (cannot be called directly) +u32 Integrity_MACOwner_IsBad(void); +u32 Integrity_MACOwner_IsGood(void); +u32 Integrity_ROMTest_IsBad(void); +u32 Integrity_ROMTest_IsGood(void); + +#define INTEGRITY_OBFS_OFFSET (ENC_VAL_1 & ~0xFFF) + +// This was likely not originally an inline, but an inline is able to match here nicely +static inline u32 checkDecryptionWrapper(u8 *addr, u32 match_ret, u32 mismatch_ret) { + u32 offset; + + addr += INTEGRITY_OBFS_OFFSET; + offset = ENC_VAL_1 - INTEGRITY_OBFS_OFFSET; + + // The bytes checked here are from the `run_encrypted_func` macro defined in asm_macro.inc: + // e92d00f0 stmfd sp!, {r4-r7} + // e92d000f stmfd sp!, {r0-r3} + // e8bd00f0 ldmfd sp!, {r4-r7} + // e59f103c ldr r1, [pc, #60] + if (addr[offset++] != 0xF0) { + return mismatch_ret; + } + if (addr[offset++] != 0x00) { + return mismatch_ret; + } + if (addr[offset++] != 0x2D) { + return mismatch_ret; + } + if (addr[offset++] != 0xE9) { + return mismatch_ret; + } + + if (addr[offset++] != 0x0F) { + return mismatch_ret; + } + if (addr[offset++] != 0x00) { + return mismatch_ret; + } + if (addr[offset++] != 0x2D) { + return mismatch_ret; + } + if (addr[offset++] != 0xE9) { + return mismatch_ret; + } + + if (addr[offset++] != 0xF0) { + return mismatch_ret; + } + if (addr[offset++] != 0x00) { + return mismatch_ret; + } + if (addr[offset++] != 0xBD) { + return mismatch_ret; + } + if (addr[offset++] != 0xE8) { + return mismatch_ret; + } + + if (addr[offset++] != 0x60) { + return mismatch_ret; + } + if (addr[offset++] != 0x10) { + return mismatch_ret; + } + if (addr[offset++] != 0x9F) { + return mismatch_ret; + } + if (addr[offset++] != 0xE5) { + return mismatch_ret; + } + + return match_ret; +} + +u32 Integrity_MACOwner_IsBad(void) { + u8 *addr; + u32 ret; + + addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsBad, ENC_VAL_1) - (ENC_VAL_1 * 2); + ret = (u32) addr + 1; + + return checkDecryptionWrapper(addr, 0, ret); +} + +u32 Integrity_MACOwner_IsGood(void) { + u8 *addr; + u32 ret; + + addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsGood, ENC_VAL_1) - (ENC_VAL_1 * 2); + ret = (u32) addr; + + return checkDecryptionWrapper(addr, ret + 1, 0); +} + +u32 Integrity_ROMTest_IsBad(void) { + u8 *addr; + u32 ret; + + addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsBad, ENC_VAL_1) - (ENC_VAL_1 * 2); + ret = (u32) addr + 1; + + return checkDecryptionWrapper(addr, 0, ret); +} + +u32 Integrity_ROMTest_IsGood(void) { + u8 *addr; + u32 ret; + + addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsGood, ENC_VAL_1) - (ENC_VAL_1 * 2); + ret = (u32) addr; + + return checkDecryptionWrapper(addr, ret + 1, 0); +} diff --git a/libs/dsprot/src/mac_owner.c b/libs/dsprot/src/mac_owner.c new file mode 100644 index 00000000..c2f98427 --- /dev/null +++ b/libs/dsprot/src/mac_owner.c @@ -0,0 +1,55 @@ +#include "dsprot/mac_owner.h" + +#include + +// Functions to be encrypted (cannot be called directly) +u32 MACOwner_IsBad(void); +u32 MACOwner_IsGood(void); + +#define MAC_ADDR_SIZE (6) + +#define ENC_MAC_ADDR_BYTE (0xFF) + +static const u8 bad_mac_addr[MAC_ADDR_SIZE] = {0x00 ^ ENC_MAC_ADDR_BYTE, 0x09 ^ ENC_MAC_ADDR_BYTE, 0xBF ^ ENC_MAC_ADDR_BYTE, + 0x00 ^ ENC_MAC_ADDR_BYTE, 0x00 ^ ENC_MAC_ADDR_BYTE, 0x31 ^ ENC_MAC_ADDR_BYTE}; + +static inline u32 testMACOwner(u32 pass_ret, u32 fail_ret) { + u8 mac_addr[MAC_ADDR_SIZE]; + OSOwnerInfo owner_info; + int i; + u32 ret; + + OS_func_0176(&mac_addr[0]); + for (i = 0; i < MAC_ADDR_SIZE; i++) { + if (bad_mac_addr[i] != (mac_addr[i] ^ ENC_MAC_ADDR_BYTE)) { + break; + } + } + + OS_func_0177(&owner_info); + if (i == MAC_ADDR_SIZE && owner_info.birthday.month == 1 && owner_info.birthday.day == 1 && + owner_info.nickNameLength == 0) { + ret = fail_ret; + goto EXIT; + } + + for (i = 0; i < MAC_ADDR_SIZE; i++) { + if (mac_addr[i] != 0x00) { + ret = pass_ret; + goto EXIT; + } + } + + ret = fail_ret; + +EXIT: + return ret; +} + +u32 MACOwner_IsBad(void) { + return testMACOwner(0, 1); +} + +u32 MACOwner_IsGood(void) { + return testMACOwner(1, 0); +} diff --git a/libs/dsprot/src/rc4.c b/libs/dsprot/src/rc4.c new file mode 100644 index 00000000..644b2ac1 --- /dev/null +++ b/libs/dsprot/src/rc4.c @@ -0,0 +1,210 @@ +#include "dsprot/rc4.h" +#include "dsprot/encoding_constants.h" +#include "dsprot/encryptor.h" + +#define RC4_KEY_SIZE (16) + +typedef struct { + int i; + int j; + u8 S[256]; +} RC4_Ctx; + +// Functions to be encoded (cannot be static) +void RC4_Init(RC4_Ctx *ctx, const void *key, u32 key_len); +u8 RC4_Byte(RC4_Ctx *ctx); +u32 RC4_InitSBox(u8 *sbox); +u32 RC4_EncryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size); +u32 RC4_DecryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size); + +void RC4_Init(RC4_Ctx *ctx, const void *key, u32 key_len) { + u8 tmp1; + u8 tmp2; + int Ki; + u8 Si; + int i; + int j; + + Ki = 0; + Si = 0; + ctx->i = 0; + ctx->j = 0; + + for (j = 0; j < 256; j++) { + ctx->S[j] = j; + } + + // Modification to RC4: i = 255 -> 0, instead of 0 -> 255 + for (i = 255; i >= 0; i--) { + tmp1 = ctx->S[i]; + Si = Si + ((u8 *) key)[Ki] + tmp1; + tmp2 = ctx->S[Si]; + + ctx->S[Si] = tmp1; + ctx->S[i] = tmp2; + + Ki++; + if (Ki >= key_len) { + Ki = 0; + } + } +} + +u8 RC4_Byte(RC4_Ctx *ctx) { + u8 i; + u8 ival; + u8 j; + u8 jval; + + i = ctx->i + 1; + ival = ctx->S[i]; + j = ival + ctx->j; + jval = ctx->S[j]; + + ctx->i = i; + ctx->j = j; + + ctx->S[j] = ival; + ctx->S[i] = jval; + + return ctx->S[(ival + jval) & 0xFF]; +} + +u32 RC4_InitSBox(u8 *sbox) { + int i; + for (i = 0; i < 256; i++) { + sbox[i] = (u8) i ^ ENC_SBOX_XOR; + } + + return 0; +} + +u32 RC4_EncryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) { + u8 sbox[256]; + ulong offset; + u8 *src_bytes; + u8 *dst_bytes; + + if (size & 3) { + return -1; + } + + src_bytes = (u8 *) src; + dst_bytes = (u8 *) dst; + + RC4_InitSBox(&sbox[0]); + + for (offset = 0; offset < size; offset += 4) { + switch (Encryptor_CategorizeInstruction(*(u32 *) (src_bytes + offset))) { + case INS_TYPE_BLXIMM: + case INS_TYPE_BL: { + u32 opcode; + u32 operands; + u32 *src_addr = (u32 *) (src_bytes + offset); + u32 *dst_addr = (u32 *) (dst_bytes + offset); + + *dst_addr = *src_addr; + + opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT); + operands = ((*dst_addr & INS_OPERANDS_MASK) + ENC_VAL_2) & INS_OPERANDS_MASK; + + *dst_addr = opcode | operands; + } break; + + case INS_TYPE_B: { + u32 opcode; + u32 operands; + u32 *src_addr = (u32 *) (src_bytes + offset); + u32 *dst_addr = (u32 *) (dst_bytes + offset); + + *dst_addr = *src_addr; + + opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT); + operands = ((*dst_addr & INS_OPERANDS_MASK) + ENC_VAL_1) & INS_OPERANDS_MASK; + + *dst_addr = opcode | operands; + } break; + + default: + dst_bytes[offset] = src_bytes[offset] ^ RC4_Byte(ctx); + dst_bytes[offset + 1] = src_bytes[offset + 1] ^ RC4_Byte(ctx); + dst_bytes[offset + 2] = sbox[src_bytes[offset + 2]]; + dst_bytes[offset + 3] = src_bytes[offset + 3]; + break; + } + } + + return 0; +} + +u32 RC4_DecryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) { + u8 sbox[256]; + ulong offset; + u8 *src_bytes; + u8 *dst_bytes; + + if (size & 3) { + return -1; + } + + src_bytes = (u8 *) src; + dst_bytes = (u8 *) dst; + + RC4_InitSBox(&sbox[0]); + + for (offset = 0; offset < size; offset += 4) { + switch (Encryptor_CategorizeInstruction(*(u32 *) (src_bytes + offset))) { + case INS_TYPE_BLXIMM: + case INS_TYPE_BL: { + u32 opcode; + u32 operands; + u32 *src_addr = (u32 *) (src_bytes + offset); + u32 *dst_addr = (u32 *) (dst_bytes + offset); + + *dst_addr = *src_addr; + + opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT); + operands = ((*dst_addr & INS_OPERANDS_MASK) - ENC_VAL_1) & INS_OPERANDS_MASK; + + *dst_addr = opcode | operands; + } break; + + case INS_TYPE_B: { + u32 opcode; + u32 operands; + u32 *src_addr = (u32 *) (src_bytes + offset); + u32 *dst_addr = (u32 *) (dst_bytes + offset); + + *dst_addr = *src_addr; + + opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT); + operands = ((*dst_addr & INS_OPERANDS_MASK) - ENC_VAL_2) & INS_OPERANDS_MASK; + + *dst_addr = opcode | operands; + } break; + + default: + dst_bytes[offset] = src_bytes[offset] ^ RC4_Byte(ctx); + dst_bytes[offset + 1] = src_bytes[offset + 1] ^ RC4_Byte(ctx); + dst_bytes[offset + 2] = sbox[src_bytes[offset + 2]]; + dst_bytes[offset + 3] = src_bytes[offset + 3]; + break; + } + } + + return 0; +} + +u32 RC4_InitAndEncryptInstructions(void *key, void *dst, void *src, u32 size) { + RC4_Ctx ctx; + RC4_Init(&ctx, key, RC4_KEY_SIZE); + // Must coerce output to -1 or 0 like this to match + return RC4_EncryptInstructions(&ctx, dst, src, size) == -1 ? -1 : 0; +} + +u32 RC4_InitAndDecryptInstructions(void *key, void *dst, void *src, u32 size) { + RC4_Ctx ctx; + RC4_Init(&ctx, key, RC4_KEY_SIZE); + // Must coerce output to -1 or 0 like this to match + return RC4_DecryptInstructions(&ctx, dst, src, size) == -1 ? -1 : 0; +} diff --git a/libs/dsprot/src/rom_test.c b/libs/dsprot/src/rom_test.c new file mode 100644 index 00000000..09da2ac5 --- /dev/null +++ b/libs/dsprot/src/rom_test.c @@ -0,0 +1,67 @@ +#include "dsprot/rom_test.h" +#include "dsprot/rom_util.h" + +#include + +// Functions to be encrypted (cannot be called directly) +u32 ROMTest_IsBad(void); +u32 ROMTest_IsGood(void); + +#define ROM_BLOCK_SIZE CARD_ROM_PAGE_SIZE + +static inline u32 testROM(u32 pass_ret, u32 fail_ret) { + // Extra CRC entry is required to match + u32 crcs[7]; + u8 rom_buf[ROM_BLOCK_SIZE]; + int i; + u32 rom_addr; + u32 ret; + + rom_addr = 0x1000; + + for (i = 0; i < 6; i++) { + RunEncrypted_ROMUtil_Read(&rom_buf[0], rom_addr, ROM_BLOCK_SIZE); + crcs[i] = RunEncrypted_ROMUtil_CRC32(&rom_buf[0], ROM_BLOCK_SIZE); + + if (i == 2) { + // Has to be like this to match + rom_addr = 1; + rom_addr <<= 15; + } else { + rom_addr += ROM_BLOCK_SIZE; + } + } + + // Checking the ROM reading results were as expected: + // 0 == 1 == 2 == 3 + // 3 != 4 and 3 != 5 + + for (i = 0; i < 3; i++) { + if (crcs[i] != crcs[3]) { + ret = fail_ret; + goto EXIT; + } + } + + if (crcs[3] == crcs[4] && crcs[3] == crcs[5]) { + ret = fail_ret; + } else { + ret = pass_ret; + } + +EXIT: + // Erasing read buffer + for (i = 0; i < ROM_BLOCK_SIZE; i++) { + rom_buf[i] = 0; + } + + return ret; +} + +u32 ROMTest_IsBad(void) { + return testROM(0, 1); +} + +u32 ROMTest_IsGood(void) { + return testROM(1, 0); +} diff --git a/libs/dsprot/src/rom_util.c b/libs/dsprot/src/rom_util.c new file mode 100644 index 00000000..fe38b55e --- /dev/null +++ b/libs/dsprot/src/rom_util.c @@ -0,0 +1,150 @@ +#include "dsprot/rom_util.h" + +#include +#include +#include + +// Functions to be encrypted (cannot be called directly) +void ROMUtil_Read(void *dest, u32 addr, s32 num_bytes); +u32 ROMUtil_CRC32(void *buf, u32 size); + +void ROMUtil_Read(void *dest, u32 addr, s32 num_bytes) { + u8 buffer[8]; + vu8 *vnull; + u32 register_base_1; + vu8 *register_base_2; + u32 card_ctrl_13; + s32 addr_offset; + u16 lock_id; + u16 ext_mem_register_val_original; + u32 output; + s32 card_ctrl_cmd; + int i; + + lock_id = OS_GetLockID(); + CARD_func_0010(lock_id); + + // Alias for volatile null pointer + vnull = NULL; + + // Alias for register base (0x04000000) + register_base_1 = 1; + register_base_1 <<= 26; + + // Another alias for register base (0x04000000) + register_base_2 = (vu8 *) REG_BASE; + + // External memory control register (0x04000204) + // Save value to rewrite later + ext_mem_register_val_original = REG_EXMEM_CNT; + + // Set current processor accessing the gamecard bus to the ARM9 + OS_SetNdsSlotAccess(OS_CPU_ARM9); + + // Obfuscated, create address 0x027FFE60 + // This is offset 0x60 in the ROM header: port 0x040001A4 / setting for normal commands + card_ctrl_13 = 5; + card_ctrl_13 <<= 18; + card_ctrl_13 -= 13; + + // Detect if the system is in DSi mode. If so, change the address to 0x02FFFE60 + if (*(vu8 *) (register_base_1 + REG_A9ROM_OFFSET) & 1) { + card_ctrl_13 |= 0x40000; + } + + card_ctrl_13 <<= 5; + + // Read port setting and set page read flags + card_ctrl_cmd = (*(vs32 *) card_ctrl_13 & ~CARD_CTL_CMD_MASK) | (CARD_CTL_CMD_PAGE | CARD_CTL_READ | CARD_CTL_START); + + // Calculate offset to round back to nearest 0x200-byte block. + // E.G. if we want to read starting from 0x1208, we actually need to + // request the block at 0x1200 and then ignore the first 8 bytes of the result. + // This would set `addr_offset` to -8. + addr_offset = 0 - (addr & (CARD_ROM_PAGE_SIZE - 1)); + + // Wait for card to not be busy + while (*(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) & CARD_CTL_START) { + continue; + } + + // Write enable flag to card ROM and SPI control register + *(vu8 *) (register_base_1 + REG_CARD_AUX_SPI_CNT_OFFSET + 1) = CARDMST_ENABLE; + + // Read 8-byte command out from gamecard bus, write this back later + for (i = 0; i < 8; i++) { + buffer[i] = *(vnull + _MAIN_REG_BASE + REG_CARD_CMD_OFFSET + i); + } + + addr += addr_offset; + + while (addr_offset < num_bytes) { + // Read a 0x200-byte data block from ROM + + // Write 8-byte command to registers + // B7XXXXXXXX000000 -> 0x200-byte encrypted data read from address XXXXXXXX + register_base_2[REG_CARD_CMD_OFFSET + 0] = CARD_CMD_ENCRYPTED_READ; + register_base_2[REG_CARD_CMD_OFFSET + 1] = addr >> 24; + register_base_2[REG_CARD_CMD_OFFSET + 2] = addr >> 16; + register_base_2[REG_CARD_CMD_OFFSET + 3] = addr >> 8; + register_base_2[REG_CARD_CMD_OFFSET + 4] = addr; + register_base_2[REG_CARD_CMD_OFFSET + 5] = 0x00; + register_base_2[REG_CARD_CMD_OFFSET + 6] = 0x00; + register_base_2[REG_CARD_CMD_OFFSET + 7] = 0x00; + + // Submit command + *(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) = card_ctrl_cmd; + + // Copy the output into the destination buffer, within the bounds of num_bytes + // (Must read the output out of the I/O register regardless) + do { + if (*(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) & CARD_DATA_READY) { + output = *(vu32 *) (register_base_1 + REG_CARD_DATA_OFFSET); + if (addr_offset >= 0 && addr_offset < num_bytes) { + *(u32 *) ((u32) dest + addr_offset) = output; + } + + addr_offset += 4; + } + } while (*(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) & CARD_CTL_START); + + // Advance address to next block + addr += CARD_ROM_PAGE_SIZE; + } + + // Done reading, restore everything how it was before + + // Write original command back to gamecard bus + for (i = 0; i < 8; i++) { + *(vnull + _MAIN_REG_BASE + REG_CARD_CMD_OFFSET + i) = buffer[i]; + } + + // Write original value back to to external memory control register + *(vu16 *) (register_base_1 + REG_EXMEM_CNT_OFFSET) = ext_mem_register_val_original; + + CARD_func_0011(lock_id); + OS_func_0178(lock_id); +} + +u32 ROMUtil_CRC32(void *buf, u32 size) { + int i; + u32 crc; + u32 poly; + u8 *byte_ptr; + + byte_ptr = (u8 *) buf; + crc = 0xFFFFFFFF; + poly = 0xEDB88320; + while (size-- != 0) { + crc ^= *byte_ptr++; + for (i = 0; i < 8; i++) { + if (crc & 1) { + crc = (crc >> 1); + } else { + crc = poly ^ (crc >> 1); + } + } + } + + return ~crc; +} diff --git a/libs/dsprot/tools/asmwriter.py b/libs/dsprot/tools/asmwriter.py new file mode 100644 index 00000000..5dc5e785 --- /dev/null +++ b/libs/dsprot/tools/asmwriter.py @@ -0,0 +1,254 @@ +import sys +from argparse import ArgumentParser, Namespace +from bisect import bisect_left, bisect_right +from collections.abc import Generator +from io import TextIOWrapper +from pathlib import Path +from typing import Never + +import elftools.construct +import elftools.elf.sections +from elftools.elf.elffile import ELFFile +from elftools.elf.sections import SymbolTableSection + +ASM_COMMON_INCLUDE = "dsprot/asm_macro.inc" +STATIC_INIT_FN_NAME = "NitroStaticInit" + + +def address(symbol: elftools.elf.sections.Symbol) -> int: + value = symbol.entry.get("st_value") + if type(value) is not int: + panic( + f"Expected st_value of symbol {symbol.name} to be an int but got {type(value)} = {value}" + ) + return value + + +class Symbol: + def __init__(self, symbol: elftools.elf.sections.Symbol): + self.symbol = symbol + self.address = address(symbol) + self.section: Section | None = None + + def name(self) -> str: + return self.symbol.name + + def size(self) -> int: + size = self.symbol.entry.get("st_size") + if type(size) is not int: + panic( + f"Expected st_size of symbol {self.symbol.name} to be an int but got {type(size)} = {size}" + ) + return size + + def _st_info(self) -> elftools.construct.Container: + st_info = self.symbol.entry.get("st_info") + if type(st_info) is not elftools.construct.Container: + panic( + f"Expected st_info of symbol {self.symbol.name} to be a Container but got {type(st_info)} = {st_info}" + ) + return st_info + + def section_index(self) -> int | None: + shndx = self.symbol.entry.get("st_shndx") + if shndx in ["SHN_UNDEF", "SHN_ABS"]: + return None + if type(shndx) is not int: + panic( + f"Expected st_shndx of symbol {self.symbol.name} to be an int but got {type(shndx)} = {shndx}" + ) + return shndx + + def type(self) -> str: + st_info = self._st_info() + st_type = st_info.get("type") + if type(st_type) is not str: + panic( + f"Expected st_info.type of symbol {self.symbol.name} to be a str but got {type(st_type)} = {st_type}" + ) + return st_type + + def code_size(self) -> int: + if self.type() != "STT_FUNC": + return 0 + + address = self.address + size = self.size() + end_address = address + size + + # Look for constant pool inside this function + if self.section is not None: + for next_symbol in self.section.symbols_by_address(address + 1): + if next_symbol.address >= end_address: + break + if next_symbol.name() == "$d": + return next_symbol.address - self.address + + # If no constant pool exists, this function's size is st_size + return size + + +class Section: + def __init__(self, elf: "Elf", section: elftools.elf.sections.Section): + self.elf = elf + self.section = section + self.symbols: list[Symbol] = [] + self.symbol_indices_by_address: list[int] = [] + + def name(self) -> str: + return self.section.name + + def add_symbol(self, symbol: Symbol): + index = len(self.symbols) + self.symbols.append(symbol) + pos = bisect_right( + self.symbol_indices_by_address, + symbol.address, + key=lambda s: self.symbols[s].address, + ) + self.symbol_indices_by_address.insert(pos, index) + + def symbols_by_address(self, start_address=0) -> Generator[Symbol]: + start_index = bisect_left( + self.symbol_indices_by_address, + start_address, + key=lambda i: self.symbols[i].address, + ) + for i in range(start_index, len(self.symbols)): + yield self.symbols[self.symbol_indices_by_address[i]] + + +class Elf: + def __init__(self, elf: ELFFile): + self.elf = elf + self.sections: list[Section] = [ + Section(self, section) for section in elf.iter_sections() + ] + for section in elf.iter_sections(): + if not isinstance(section, SymbolTableSection): + continue + for symbol in section.iter_symbols(): + symbol = Symbol(symbol) + section_index = symbol.section_index() + if section_index is not None: + symbol.section = self.sections[section_index] + symbol.section.add_symbol(symbol) + + def symbol_by_name(self, name: str) -> Generator[Symbol]: + for section in self.sections: + for symbol in section.symbols: + if symbol.name() == name: + yield symbol + + +class Args: + def __init__(self, args: Namespace): + self.output = Path(args.output) + self.garbage: str | None = args.garbage + self.prefix: str = args.prefix + + self.inputs = list(map(Path, args.input)) + for input in self.inputs: + if not input.exists(): + raise ValueError(f"Input file '{input}' does not exist") + + key: str | None = args.key + if key is None: + self.key = None + elif key.startswith("0x"): + self.key = int(key, base=16) + else: + self.key = int(key, base=10) + + if args.key is None: + self.symbols = [f"{args.prefix}{symbol}" for symbol in args.symbols] + else: + self.symbols = list(map(str, args.symbols)) + + +def panic(message) -> Never: + print(message) + sys.exit(1) + + +def write_assembly(f: TextIOWrapper, args: Args, symbols: list[Symbol]) -> None: + f.write("; Generated by libs/dsprot/tools/asmwriter.py\n") + f.write("\n") + + f.write(f'.include "{ASM_COMMON_INCLUDE}"\n') + f.write("\n") + + for symbol in symbols: + f.write(f".public {symbol.name()}\n") + if args.garbage is not None: + f.write(f".public {args.garbage}\n") + f.write("\n") + + f.write(" .text\n") + f.write(" .balign 4, 0\n") + f.write("\n") + + if args.key is not None: + for symbol in symbols: + f.write(f" arm_func_start {args.prefix}{symbol.name()}\n") + f.write(f"{args.prefix}{symbol.name()}:\n") + f.write( + f" run_encrypted_func {symbol.name()}, {symbol.code_size():#x}, {args.key:#x}\n" + ) + f.write(f" arm_func_end {args.prefix}{symbol.name()}\n") + f.write("\n") + else: + f.write(f" local_arm_func_start {STATIC_INIT_FN_NAME}\n") + f.write(f"{STATIC_INIT_FN_NAME}:\n") + f.write(" decode_func_table encoded_func_table\n") + f.write("encoded_func_table:\n") + for symbol in symbols: + symbol_name = symbol.name() + if args.key is not None: + symbol_name = args.prefix + symbol_name + f.write(f" func_table_entry {symbol_name}, {symbol.code_size():#x}\n") + f.write(" func_table_end\n") + if args.garbage is not None: + f.write(f" garbage_ref {args.garbage}\n") + f.write(f" arm_func_end {STATIC_INIT_FN_NAME}\n") + f.write("\n") + + f.write(" .section .ctor, 4\n") + f.write(f" sinit {STATIC_INIT_FN_NAME}\n") + f.write("\n") + + +def main(): + parser = ArgumentParser() + parser.add_argument("-i", "--input", required=True, nargs="+") + parser.add_argument("-o", "--output", required=True) + parser.add_argument("-s", "--symbols", required=True, nargs="+") + parser.add_argument("-g", "--garbage") + parser.add_argument("-k", "--key") + parser.add_argument("-p", "--prefix", default="RunEncrypted_") + try: + args = Args(parser.parse_args()) + except ValueError as e: + panic(e) + + symbols = {} + missing_symbols = args.symbols.copy() + for input in args.inputs: + with input.open("rb") as f: + elf = Elf(ELFFile(f)) + for symbol_name in missing_symbols.copy(): + matches = list(elf.symbol_by_name(symbol_name)) + if len(matches) == 0: + continue + symbols[symbol_name] = matches[0] + missing_symbols.remove(symbol_name) + if len(missing_symbols) > 0: + panic(f"Symbol {missing_symbols[0]} does not exist") + + symbols = [symbols[name] for name in args.symbols] + with args.output.open("w") as f: + write_assembly(f, args, symbols) + + +if __name__ == "__main__": + main() diff --git a/libs/nitro/include/nitro.h b/libs/nitro/include/nitro.h index 05ff09d3..f954dda3 100644 --- a/libs/nitro/include/nitro.h +++ b/libs/nitro/include/nitro.h @@ -2,7 +2,6 @@ #include #include "nitro/card.h" -#include "nitro/dc.h" #include "nitro/fs.h" #include "nitro/fx.h" #include "nitro/g2.h" diff --git a/libs/nitro/include/nitro/card.h b/libs/nitro/include/nitro/card.h index 3e8d48bf..6e219ccf 100644 --- a/libs/nitro/include/nitro/card.h +++ b/libs/nitro/include/nitro/card.h @@ -29,6 +29,19 @@ extern "C" { #define CARD_RESULT_NO_RESPONSE #define CARD_RESULT_ERROR +#define CARD_ROM_PAGE_SIZE 0x200 + +#define CARD_DATA_READY 0x800000 + +#define CARD_CTL_CMD_MASK 0x7000000 +#define CARD_CTL_CMD_PAGE 0x1000000 +#define CARD_CTL_READ 0x20000000 +#define CARD_CTL_START 0x80000000 + +#define CARD_CMD_ENCRYPTED_READ 0xb7 + +#define CARDMST_ENABLE 0x80 + typedef u32 CARDBackupType; typedef u32 CARDResult; @@ -45,6 +58,9 @@ CARDResult CARD_GetResultCode(void); BOOL CARD_func_0033(); void CARD_func_0034(); +void CARD_func_0010(u32); +void CARD_func_0011(u32); + inline BOOL CARD_ReadEepromAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) { return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 1, 6, 1, 0); } diff --git a/libs/nitro/include/nitro/os.h b/libs/nitro/include/nitro/os.h index b3c0d35b..45efa30d 100644 --- a/libs/nitro/include/nitro/os.h +++ b/libs/nitro/include/nitro/os.h @@ -7,8 +7,10 @@ extern "C" { #include +#include "nitro/os/cache.h" #include "nitro/os/context.h" #include "nitro/os/mutex.h" +#include "nitro/os/owner.h" #include "nitro/os/thread.h" #include "nitro/reg.h" @@ -30,6 +32,12 @@ extern "C" { #define OS_THREAD_LAUNCHER_PRIORITY 0x10 +#define OS_EXMEM_CNT_NDS_SLOT_ACCESS_SHIFT 11 +#define OS_EXMEM_CNT_NDS_SLOT_ACCESS (1 << OS_EXMEM_CNT_NDS_SLOT_ACCESS_SHIFT) + +#define OS_CPU_ARM9 0 +#define OS_CPU_ARM7 1 + typedef struct OSLinkedList { /* 00 */ void *head; /* 04 */ void *tail; @@ -166,6 +174,9 @@ s32 OS_func_0171(u32, u32, u32); s32 OS_func_0174(void); BOOL OS_func_0065(void); +void OS_func_0176(u8 *); +void OS_func_0178(u32); + inline void OS_SetIrqCheckFlag(void) { REG_IRQ |= 1; } @@ -228,9 +239,16 @@ inline BOOL OS_IsRunOnTwl(void) { return false; #else // Probably checks some reg here + #define REG_A9ROM_OFFSET 0x4000 + #define REG_SCFG_A9ROM_SEC_MASK 1 + #endif } +inline void OS_SetNdsSlotAccess(u32 processor) { + REG_EXMEM_CNT = (REG_EXMEM_CNT & ~OS_EXMEM_CNT_NDS_SLOT_ACCESS) | (processor << OS_EXMEM_CNT_NDS_SLOT_ACCESS_SHIFT); +} + #ifdef __cplusplus } // extern "C" #endif diff --git a/libs/nitro/include/nitro/dc.h b/libs/nitro/include/nitro/os/cache.h similarity index 70% rename from libs/nitro/include/nitro/dc.h rename to libs/nitro/include/nitro/os/cache.h index 008c7aae..f2fd9a3a 100644 --- a/libs/nitro/include/nitro/dc.h +++ b/libs/nitro/include/nitro/os/cache.h @@ -1,12 +1,14 @@ -#ifndef _NITRO_DC_H -#define _NITRO_DC_H - -#include "nitro/types.h" +#ifndef _NITRO_OS_CACHE_H +#define _NITRO_OS_CACHE_H #ifdef __cplusplus extern "C" { #endif +#include "nitro/types.h" + +#define OS_CACHE_LINE_SIZE 0x20 + void DC_StoreAll(void); void DC_StoreRange(void *ptr, u32 size); @@ -15,9 +17,10 @@ void DC_FlushRange(void *ptr, u32 size); void DC_InvalidateRange(void *ptr, u32 size); -void DC_func_0004(void *, int); void DC_func_0002(); +void IC_InvalidateRange(void *ptr, u32 size); + #ifdef __cplusplus } // extern "C" #endif diff --git a/libs/nitro/include/nitro/os/context.h b/libs/nitro/include/nitro/os/context.h index ef194ae5..f4f0ddec 100644 --- a/libs/nitro/include/nitro/os/context.h +++ b/libs/nitro/include/nitro/os/context.h @@ -1,7 +1,7 @@ #ifndef _NITRO_CONTEXT_H #define _NITRO_CONTEXT_H -#include +#include "nitro/types.h" typedef struct OSContext { /* 0x00 */ u32 cpsr; diff --git a/libs/nitro/include/nitro/os/mutex.h b/libs/nitro/include/nitro/os/mutex.h index 5ccfb7b7..0811ff82 100644 --- a/libs/nitro/include/nitro/os/mutex.h +++ b/libs/nitro/include/nitro/os/mutex.h @@ -1,8 +1,8 @@ #ifndef NITROSDK_OS_MUTEX_H #define NITROSDK_OS_MUTEX_H -#include -#include +#include "nitro/os/thread.h" +#include "nitro/types.h" typedef struct OSMutex { /* 0x00 */ OSThreadQueue queue; diff --git a/libs/nitro/include/nitro/os/owner.h b/libs/nitro/include/nitro/os/owner.h new file mode 100644 index 00000000..79f64dbb --- /dev/null +++ b/libs/nitro/include/nitro/os/owner.h @@ -0,0 +1,28 @@ +#ifndef _NITRO_OS_OWNER_H +#define _NITRO_OS_OWNER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "nitro/types.h" + +typedef struct OSOwnerInfo { + /* 00 */ u8 unk_00[0x2]; + struct { + /* 02 */ u8 month; + /* 03 */ u8 day; + } birthday; + /* 04 */ u8 unk_04[0x16]; + /* 1a */ u16 nickNameLength; + /* 1c */ u8 unk_1c[0x38]; + /* 54 */ +} OSOwnerInfo; + +void OS_func_0177(OSOwnerInfo *info); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif diff --git a/libs/nitro/include/nitro/reg.h b/libs/nitro/include/nitro/reg.h index 6741cf75..2f72d9ed 100644 --- a/libs/nitro/include/nitro/reg.h +++ b/libs/nitro/include/nitro/reg.h @@ -7,32 +7,37 @@ extern "C" { #include "nitro/types.h" -#define REG_POWER_CNT (*(vu16 *) 0x04000304) -#define REG_IME (*(vu16 *) 0x04000208) +#define REG_BASE 0x4000000 -#define REG_DISPSTAT (*(vu16 *) 0x4000004) -#define REG_VCOUNT (*(vu16 *) 0x04000006) -#define REG_DISP3DCNT (*(vu16 *) 0x04000060) -#define REG_DISPCAPCNT (*(vu32 *) 0x04000064) -#define REG_GFX_STATUS (*(vu32 *) 0x04000600) +#define REG_POWER_CNT (*(vu16 *) (REG_BASE | 0x304)) +#define REG_IME (*(vu16 *) (REG_BASE | 0x208)) -#define REG_DMA ((OSDma *) 0x040000B0) -#define REG_DMA0SAD (*(vu32 *) 0x040000B0) -#define REG_DMA0DAD (*(vu32 *) 0x040000B4) -#define REG_DMA0CNT (*(vu32 *) 0x040000B8) +#define REG_DISPSTAT (*(vu16 *) (REG_BASE | 0x4)) +#define REG_VCOUNT (*(vu16 *) (REG_BASE | 0x6)) +#define REG_DISP3DCNT (*(vu16 *) (REG_BASE | 0x60)) +#define REG_DISPCAPCNT (*(vu32 *) (REG_BASE | 0x64)) +#define REG_GFX_STATUS (*(vu32 *) (REG_BASE | 0x600)) -#define REG_VRAM_CNT_ABCD (*(vu32 *) 0x04000240) -#define REG_VRAM_CNT_A (*(vu8 *) 0x04000240) -#define REG_VRAM_CNT_B (*(vu8 *) 0x04000241) -#define REG_VRAM_CNT_C (*(vu8 *) 0x04000242) -#define REG_VRAM_CNT_D (*(vu8 *) 0x04000243) -#define REG_VRAM_CNT_E (*(vu8 *) 0x04000244) -#define REG_VRAM_CNT_F (*(vu8 *) 0x04000245) -#define REG_VRAM_CNT_G (*(vu8 *) 0x04000246) -#define REG_WRAM_CNT (*(vu8 *) 0x04000247) -#define REG_VRAM_CNT_HI (*(vu16 *) 0x04000248) -#define REG_VRAM_CNT_H (*(vu8 *) 0x04000248) -#define REG_VRAM_CNT_I (*(vu8 *) 0x04000249) +#define REG_DMA ((OSDma *) (REG_BASE | 0xB0)) +#define REG_DMA0SAD (*(vu32 *) (REG_BASE | 0xB0)) +#define REG_DMA0DAD (*(vu32 *) (REG_BASE | 0xB4)) +#define REG_DMA0CNT (*(vu32 *) (REG_BASE | 0xB8)) + +#define REG_VRAM_CNT_ABCD (*(vu32 *) (REG_BASE | 0x240)) +#define REG_VRAM_CNT_A (*(vu8 *) (REG_BASE | 0x240)) +#define REG_VRAM_CNT_B (*(vu8 *) (REG_BASE | 0x241)) +#define REG_VRAM_CNT_C (*(vu8 *) (REG_BASE | 0x242)) +#define REG_VRAM_CNT_D (*(vu8 *) (REG_BASE | 0x243)) +#define REG_VRAM_CNT_E (*(vu8 *) (REG_BASE | 0x244)) +#define REG_VRAM_CNT_F (*(vu8 *) (REG_BASE | 0x245)) +#define REG_VRAM_CNT_G (*(vu8 *) (REG_BASE | 0x246)) +#define REG_WRAM_CNT (*(vu8 *) (REG_BASE | 0x247)) +#define REG_VRAM_CNT_HI (*(vu16 *) (REG_BASE | 0x248)) +#define REG_VRAM_CNT_H (*(vu8 *) (REG_BASE | 0x248)) +#define REG_VRAM_CNT_I (*(vu8 *) (REG_BASE | 0x249)) + +#define REG_EXMEM_CNT_OFFSET 0x204 +#define REG_EXMEM_CNT (*(vu16 *) (REG_BASE | REG_EXMEM_CNT_OFFSET)) #if NITRO_VERSION >= 0x05057533 #define _BIOS_REG_BASE 0x02FFF000 @@ -41,7 +46,16 @@ extern "C" { #endif #define REG_PAD (*(u16 *) (_BIOS_REG_BASE | 0xFA8)) -#define REG_KEYINPUT (*(u16 *) 0x04000130) +#define REG_KEYINPUT (*(u16 *) (REG_BASE | 0x130)) + +#define REG_CARD_AUX_SPI_CNT_OFFSET 0x1A0 +#define REG_CARD_AUX_SPI_CNT (*(vu16 *) (REG_BASE | 0x1A0)) +#define REG_CARD_CNT_OFFSET 0x1A4 +#define REG_CARD_CNT (*(vu32 *) (REG_BASE | REG_CARD_CNT_OFFSET)) +#define REG_CARD_CMD_OFFSET 0x1A8 +#define REG_CARD_CMD (*(vu8 *) (REG_BASE | REG_CARD_CMD_OFFSET)) +#define REG_CARD_DATA_OFFSET 0x100010 +#define REG_CARD_DATA (*(vu32 *) (REG_BASE | REG_CARD_DATA_OFFSET)) #define REG_FRAME_COUNTER (*(u32 *) (_BIOS_REG_BASE | 0xC3C)) #define REG_027FFC40 (*(u16 *) (_BIOS_REG_BASE | 0xC40)) @@ -56,33 +70,33 @@ extern "C" { #define REG_027FFF9C (*(u32 *) (_BIOS_REG_BASE | 0xF9C)) #define REG_027FFFA0 (*(u32 *) (_BIOS_REG_BASE | 0xFA0)) -#define REG_GFX_FIFO (*(vu32 *) 0x04000400) -#define REG_GFX_FIFO_MATRIX_MODE (*(vu32 *) 0x04000440) -#define REG_GFX_FIFO_MATRIX_PUSH (*(vu32 *) 0x04000444) -#define REG_GFX_FIFO_MATRIX_POP (*(vu32 *) 0x04000448) -#define REG_GFX_FIFO_MATRIX_STORE (*(vu32 *) 0x0400044C) -#define REG_GFX_FIFO_MATRIX_RESTORE (*(vu32 *) 0x04000450) -#define REG_GFX_FIFO_MATRIX_IDENTITY (*(vu32 *) 0x04000454) -#define REG_GFX_FIFO_MATRIX_TRANSLATE (*(vu32 *) 0x04000470) -#define REG_GFX_FIFO_VERTEX_COLOR (*(vu32 *) 0x04000480) -#define REG_GFX_FIFO_VERTEX_TEXCOORD (*(vu32 *) 0x04000488) -#define REG_GFX_FIFO_VERTEX_16 (*(vu32 *) 0x0400048C) -#define REG_GFX_FIFO_VERTEX_XZ (*(vu32 *) 0x04000498) -#define REG_GFX_FIFO_POLYGON_ATTR (*(vu32 *) 0x040004A4) -#define REG_GFX_FIFO_TEXTURE_PARAM (*(vu32 *) 0x040004A8) -#define REG_GFX_FIFO_TEXTURE_PALETTE (*(vu32 *) 0x040004AC) -#define REG_GFX_FIFO_DIFFUSE_AMBIENT_REFLECT (*(vu32 *) 0x040004C0) -#define REG_GFX_FIFO_POLYGONS_BEGIN (*(vu32 *) 0x04000500) -#define REG_GFX_FIFO_POLYGONS_END (*(vu32 *) 0x04000504) -#define REG_GFX_FIFO_SWAP_BUFFERS (*(vu32 *) 0x04000540) -#define REG_GFX_FIFO_VIEWPORT (*(vu32 *) 0x04000580) +#define REG_GFX_FIFO (*(vu32 *) (REG_BASE | 0x400)) +#define REG_GFX_FIFO_MATRIX_MODE (*(vu32 *) (REG_BASE | 0x440)) +#define REG_GFX_FIFO_MATRIX_PUSH (*(vu32 *) (REG_BASE | 0x444)) +#define REG_GFX_FIFO_MATRIX_POP (*(vu32 *) (REG_BASE | 0x448)) +#define REG_GFX_FIFO_MATRIX_STORE (*(vu32 *) (REG_BASE | 0x44C)) +#define REG_GFX_FIFO_MATRIX_RESTORE (*(vu32 *) (REG_BASE | 0x450)) +#define REG_GFX_FIFO_MATRIX_IDENTITY (*(vu32 *) (REG_BASE | 0x454)) +#define REG_GFX_FIFO_MATRIX_TRANSLATE (*(vu32 *) (REG_BASE | 0x470)) +#define REG_GFX_FIFO_VERTEX_COLOR (*(vu32 *) (REG_BASE | 0x480)) +#define REG_GFX_FIFO_VERTEX_TEXCOORD (*(vu32 *) (REG_BASE | 0x488)) +#define REG_GFX_FIFO_VERTEX_16 (*(vu32 *) (REG_BASE | 0x48C)) +#define REG_GFX_FIFO_VERTEX_XZ (*(vu32 *) (REG_BASE | 0x498)) +#define REG_GFX_FIFO_POLYGON_ATTR (*(vu32 *) (REG_BASE | 0x4A4)) +#define REG_GFX_FIFO_TEXTURE_PARAM (*(vu32 *) (REG_BASE | 0x4A8)) +#define REG_GFX_FIFO_TEXTURE_PALETTE (*(vu32 *) (REG_BASE | 0x4AC)) +#define REG_GFX_FIFO_DIFFUSE_AMBIENT_REFLECT (*(vu32 *) (REG_BASE | 0x4C0)) +#define REG_GFX_FIFO_POLYGONS_BEGIN (*(vu32 *) (REG_BASE | 0x500)) +#define REG_GFX_FIFO_POLYGONS_END (*(vu32 *) (REG_BASE | 0x504)) +#define REG_GFX_FIFO_SWAP_BUFFERS (*(vu32 *) (REG_BASE | 0x540)) +#define REG_GFX_FIFO_VIEWPORT (*(vu32 *) (REG_BASE | 0x580)) extern u32 __DTCM_LO; #define DTCM_LO ((u8 *) &__DTCM_LO) #define REG_IRQ (*(u32 *) (DTCM_LO + 0x3FF8)) -#define _MAIN_REG_BASE 0x04000000 -#define _SUB_REG_BASE 0x04001000 +#define _MAIN_REG_BASE REG_BASE +#define _SUB_REG_BASE (REG_BASE | 0x1000) #define _REG_DISPCNT(base) (*(u32 *) ((base) | 0x0)) #define _REG_BG0CNT(base) (*(vu16 *) ((base) | 0x8)) @@ -171,7 +185,10 @@ extern u32 __DTCM_LO; #define REG_BLDALPHA_SUB _REG_BLDALPHA(_SUB_REG_BASE) #define REG_MASTER_BRIGHT_SUB _REG_MASTER_BRIGHT(_SUB_REG_BASE) -#define REG_04FFF200 (*(vu32 *) 0x04FFF200) +#define REG_A9ROM_OFFSET 0x4000 +#define REG_A9ROM (*(vu16 *) (REG_BASE | REG_A9ROM_OFFSET)) + +#define REG_04FFF200 (*(vu32 *) (REG_BASE | 0xFFF200)) #ifdef __cplusplus } // extern "C" diff --git a/libs/nitro/include/nitro/types.h b/libs/nitro/include/nitro/types.h index ea92b8cf..efb0d13b 100644 --- a/libs/nitro/include/nitro/types.h +++ b/libs/nitro/include/nitro/types.h @@ -9,11 +9,13 @@ extern "C" { #endif typedef unsigned long long u64; +typedef unsigned long ulong; typedef unsigned int u32; typedef unsigned short u16; typedef unsigned char u8; typedef long long s64; +typedef long long slong; typedef int s32; typedef short s16; typedef char s8; @@ -22,11 +24,13 @@ typedef float f32; typedef double f64; typedef volatile u64 vu64; +typedef volatile u64 vulong; typedef volatile u32 vu32; typedef volatile u16 vu16; typedef volatile u8 vu8; typedef volatile s64 vs64; +typedef volatile s64 vslong; typedef volatile s32 vs32; typedef volatile s16 vs16; typedef volatile s8 vs8; @@ -35,6 +39,8 @@ typedef volatile f32 vf32; typedef volatile f64 vf64; typedef s32 BOOL; +#define TRUE 1 +#define FALSE 0 #define ATTRIBUTE_ALIGN(x) __attribute__((aligned(x))) diff --git a/src/001_SceneInit/Game/AdventureModeManager_001.cpp b/src/001_SceneInit/Game/AdventureModeManager_001.cpp index fffb4aa2..031de058 100644 --- a/src/001_SceneInit/Game/AdventureModeManager_001.cpp +++ b/src/001_SceneInit/Game/AdventureModeManager_001.cpp @@ -20,8 +20,7 @@ extern "C" void *func_ov000_02066294(); static const s16 data_ov001_020c27a8[] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0010, 0x0011, 0x0012, 0x0014, 0x0015, 0x0018, 0x001C, 0x0019, 0x001A, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0017, 0x0028, 0x003C, 0x0000, 0x0114, - 0xEBAA, 0x4EB7, 0x4006, 0x3696, 0x5F01, 0x1F83, 0xE521, 0x335B, 0xE7EF, 0x197C, 0xE84B, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0017, 0x0028, 0x003C, 0x0000, }; static const s16 data_ov001_020c276c[] = { diff --git a/src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp b/src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp index aefb25b1..8e1f0faa 100644 --- a/src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp @@ -3,8 +3,8 @@ #include "Unknown/UnkStruct_027e09a4.hpp" #include "Unknown/UnkStruct_027e0cec.hpp" -#include #include +#include extern "C" void *func_02001308(void *, size_t, u32); extern "C" UnkStruct_027e0cec_18_04 *func_ov000_02054690(void *, unk32, unk32, unk32, unk32, unk32); diff --git a/src/018_StartUp/GameModeStartUp.cpp b/src/018_StartUp/GameModeStartUp.cpp index 99528385..c1335857 100644 --- a/src/018_StartUp/GameModeStartUp.cpp +++ b/src/018_StartUp/GameModeStartUp.cpp @@ -10,7 +10,6 @@ #include "Unknown/UnkStruct_ov000_020b4ec4.hpp" #include "Unknown/UnkStruct_ov000_020b50c0.hpp" -#include #include #include #include diff --git a/src/019_MainSelect/FileSelectSubScreen.cpp b/src/019_MainSelect/FileSelectSubScreen.cpp index 488085eb..2f46fe86 100644 --- a/src/019_MainSelect/FileSelectSubScreen.cpp +++ b/src/019_MainSelect/FileSelectSubScreen.cpp @@ -4,8 +4,8 @@ #include "Unknown/UnkStruct_0204af1c.hpp" #include "global.h" -#include #include +#include extern "C" { void func_0200a7b0(unk32 param1, void *param2, void *param3, void *param4, unk32 param5, unk32 param6, unk32 param7, diff --git a/src/024_MainGame/Game/AdventureModeManager_024.cpp b/src/024_MainGame/Game/AdventureModeManager_024.cpp index cd571b12..af9ac24d 100644 --- a/src/024_MainGame/Game/AdventureModeManager_024.cpp +++ b/src/024_MainGame/Game/AdventureModeManager_024.cpp @@ -27,8 +27,8 @@ #include "Unknown/UnkStruct_ov031_02118fa4.hpp" #include "versions.h" -#include #include +#include extern "C" { void func_02019b3c(); diff --git a/src/024_MainGame/Game/AdventureModeManager_1B8_Base_024.cpp b/src/024_MainGame/Game/AdventureModeManager_1B8_Base_024.cpp index 45253c32..87c63b17 100644 --- a/src/024_MainGame/Game/AdventureModeManager_1B8_Base_024.cpp +++ b/src/024_MainGame/Game/AdventureModeManager_1B8_Base_024.cpp @@ -7,8 +7,8 @@ #include "Unknown/UnkStruct_ov017_020c3f70.hpp" #include -#include #include +#include extern "C" { void func_ov000_0205a950(u8 bgType, bool isTopScreen, bool); @@ -397,7 +397,7 @@ bool AdventureModeManager_1B8_Base::func_ov024_020d0df8(unk32 param1, unk32 para } void AdventureModeManager_1B8_Base::func_ov024_020d0e64(void *ptr, u32 size) { - DC_func_0004(ptr, size * 2); + DC_FlushRange(ptr, size * 2); GXS_BeginLoadBGExtPltt(); GXS_LoadBGExtPltt(ptr, 0x4000, size * 2); GXS_EndLoadBGExtPltt(); diff --git a/src/024_MainGame/Unknown/UnkStruct_027e0d08_024.cpp b/src/024_MainGame/Unknown/UnkStruct_027e0d08_024.cpp index 9d2a5cd4..8fa3a076 100644 --- a/src/024_MainGame/Unknown/UnkStruct_027e0d08_024.cpp +++ b/src/024_MainGame/Unknown/UnkStruct_027e0d08_024.cpp @@ -2,7 +2,7 @@ #include "Unknown/UnkStruct_027e0d08.hpp" #include "Unknown/UnkStruct_ov000_020b50c0.hpp" -#include +#include #include extern "C" BOOL func_0200169c(void *, int, int, int, int, void *, int); @@ -193,8 +193,8 @@ void UnkStruct_027e0d08::func_ov024_020d5fe4(s16 *param1, s16 *param2, u32 param this->mUnk_14 -= 0x1000; } - DC_func_0004(param1, param3); - DC_func_0004(param2, param3); + DC_FlushRange(param1, param3); + DC_FlushRange(param2, param3); } DECL_INSTANCE(UnkStruct_027e0d08, data_027e0d08); diff --git a/tools/configure.py b/tools/configure.py index 77697dfb..37f79317 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -4,8 +4,9 @@ import json import argparse import subprocess import glob +import ninja_syntax -from typing import List, Dict, Any +from typing import List, Dict, Any, Callable from pathlib import Path from project import ProjectConfig, Object, process_project @@ -20,7 +21,7 @@ parser.add_argument("--noclangd", "-c", help='Do not create clangd config', requ args = parser.parse_args() config = ProjectConfig("st", args.compiler, "dsi/1.2p1", args.wine, args.dsd, Path(__file__).resolve()) -config.dsd_tag = "v0.11.0" +config.dsd_tag = "v0.12.0" config.wibo_tag = "1.1.0" config.objdiff_tag = "v3.7.1" config.sjiswrap_tag = "v1.2.2" @@ -65,6 +66,10 @@ config.cflags_base = [ "-ipa file", # InterProcedural Analysis ] +config.asflags = [ + "-proc arm5TE", # Target processor +] + config.ldflags = [ "-proc arm946e", # Target processor "-dead", # Strip unused code @@ -75,6 +80,8 @@ config.ldflags = [ ] +type NinjaBuild = Callable[[ProjectConfig, str, ninja_syntax.Writer], None] + # Helper function for Nitro libraries def NitroLib(lib_name: str, objects: List[Object]) -> Dict[str, Any]: return { @@ -96,6 +103,57 @@ def NNSLib(lib_name: str, objects: List[Object]) -> Dict[str, Any]: "objects": objects, } +# Helper function for dsprot library +DSPROT_SRC = "libs/dsprot/src" +DSPROT_MW_VERSION = "2.0/sp2p3" +def DSProtLib(lib_name: str, objects: List[Object], extra_builds: list[NinjaBuild]) -> Dict[str, Any]: + return { + "lib": lib_name, + "mw_version": DSPROT_MW_VERSION, + "src_dir": DSPROT_SRC, + "cflags": [*config.cflags_base, "-lang c"], + "objects": objects, + "rules": [dsprot_asmwriter_rule], + "extra_builds": extra_builds, + } + +def dsprot_asmwriter_rule(cfg: ProjectConfig, n: ninja_syntax.Writer): + n.rule( + name="dsprot_asmwriter", + command=f"{cfg.python_path} libs/dsprot/tools/asmwriter.py -i $in -o $out $flags" + ) + +def DSProtAsmwriter(asm_file: str, src_objects: list[str], *, flags: list[str]): + def build(cfg: ProjectConfig, version: str, n: ninja_syntax.Writer): + src_obj_path: list[Path] = [ + cfg.get_game_build(version) / DSPROT_SRC / src_object + for src_object in src_objects + ] + asm_path: Path = cfg.get_game_build(version) / DSPROT_SRC / asm_file + asm_obj_path = asm_path.with_suffix(".o") + n.build( + inputs=list(map(str, src_obj_path)), + implicit="libs/dsprot/tools/asmwriter.py", + rule="dsprot_asmwriter", + outputs=str(asm_path), + variables={ + "flags": " ".join(flags) + }, + ) + n.build( + inputs=str(asm_path), + rule="mwas", + outputs=str(asm_obj_path), + variables={ + "game_version": version.upper(), + "mw_version": DSPROT_MW_VERSION, + "as_flags": " ".join(cfg.asflags or []), + "basedir": str(asm_obj_path.parent), + "basefile": str(asm_obj_path.with_suffix("")), + }, + ) + n.newline() + return build # Helper function for libc libraries def LibC(lib_name: str, objects: List[Object]) -> Dict[str, Any]: @@ -1494,6 +1552,65 @@ config.libs = [ [ Object("g3d/sbc.c"), ] + ), + DSProtLib( + "dsprot", + [ + Object("dsprot_main.c"), + Object("integrity.c"), + Object("encryptor.c"), + Object("mac_owner.c"), + Object("rom_util.c"), + Object("rom_test.c"), + Object("rc4.c"), + Object("extra.c"), + ], + extra_builds=[ + DSProtAsmwriter("dsprot_main_decryptor.s", ["dsprot_main.o"], flags=[ + "--key 0x2e8b", + "--prefix DSProt_", + "--symbols DetectFlashcart DetectNotFlashcart DetectEmulator DetectNotEmulator DetectDummy DetectNotDummy", + ]), + DSProtAsmwriter("dsprot_main_decoder.s", ["dsprot_main_decryptor.o"], flags=[ + "--garbage DSProt_Garbage", + "--prefix DSProt_", + "--symbols DetectFlashcart DetectNotFlashcart DetectEmulator DetectNotEmulator DetectDummy DetectNotDummy", + ]), + DSProtAsmwriter("integrity_decryptor.s", ["integrity.o"], flags=[ + "--key 0xbe28", + "--symbols Integrity_MACOwner_IsBad Integrity_MACOwner_IsGood Integrity_ROMTest_IsBad Integrity_ROMTest_IsGood", + ]), + DSProtAsmwriter("integrity_decoder.s", ["integrity_decryptor.o"], flags=[ + "--symbols Integrity_MACOwner_IsBad Integrity_MACOwner_IsGood Integrity_ROMTest_IsBad Integrity_ROMTest_IsGood", + ]), + DSProtAsmwriter("encryptor_decryptor.s", ["encryptor.o"], flags=[ + "--prefix ''", + "--symbols Encryptor_EncryptFunction Encryptor_DecryptFunction", + ]), + DSProtAsmwriter("mac_owner_decryptor.s", ["mac_owner.o"], flags=[ + "--key 0xc7ea", + "--symbols MACOwner_IsBad MACOwner_IsGood", + ]), + DSProtAsmwriter("rom_util_decryptor.s", ["rom_util.o"], flags=[ + "--key 0xc7ea", + "--symbols ROMUtil_Read ROMUtil_CRC32", + ]), + DSProtAsmwriter("rom_test_decryptor.s", ["rom_test.o"], flags=[ + "--key 0xc7ea", + "--symbols ROMTest_IsBad ROMTest_IsGood", + ]), + DSProtAsmwriter( + "coretests_decoder.s", + ["mac_owner_decryptor.o", "rom_util_decryptor.o", "rom_test_decryptor.o"], + flags=[ + "--symbols ROMTest_IsBad ROMTest_IsGood MACOwner_IsBad MACOwner_IsGood ROMUtil_Read ROMUtil_CRC32", + ] + ), + DSProtAsmwriter("rc4_decoder.s", ["rc4.o"], flags=[ + "--prefix ''", + "--symbols RC4_Init RC4_Byte RC4_InitSBox RC4_EncryptInstructions RC4_DecryptInstructions RC4_InitAndEncryptInstructions RC4_InitAndDecryptInstructions", + ]), + ], ) ] diff --git a/tools/m2ctx.py b/tools/m2ctx.py index 7abe93c7..0a4d4ea6 100755 --- a/tools/m2ctx.py +++ b/tools/m2ctx.py @@ -26,7 +26,7 @@ CXX_FLAGS = [ '-Ilibs/runtime/include', '-Ilibs/nitro/include', '-Ilibs/nns/include', - '-Ilibs/dsprotect/include', + '-Ilibs/dsprot/include', f'-DVERSION={args.version}', '-D__MWERKS__', ] diff --git a/tools/project.py b/tools/project.py index 9e408929..a878bccc 100644 --- a/tools/project.py +++ b/tools/project.py @@ -1,3 +1,4 @@ +from collections.abc import Generator import os import sys import json @@ -10,6 +11,7 @@ from get_platform import get_platform COMPILER_MAP = { + "1.2/b56": "mwcc_20_56", "1.2/base": "mwcc_20_72", "1.2/sp2": "mwcc_20_79", "1.2/sp2p3": "mwcc_20_82", @@ -38,13 +40,25 @@ COMPILER_MAP = { Library = Dict[str, Any] -def get_c_cpp_files(dirs: list[Path]): + +def traverse_files(dirs: list[Path]) -> Generator[Path]: for dir in dirs: for root, _, files in os.walk(dir): root = Path(root) for file in files: - if is_cpp(file) or is_c(file): - yield root / file + yield root / file + + +def get_c_cpp_files(dirs: list[Path]) -> Generator[Path]: + for file in traverse_files(dirs): + if is_cpp(file) or is_c(file): + yield file + + +def get_asm_files(dirs: list[Path]) -> Generator[Path]: + for file in traverse_files(dirs): + if is_asm(file): + yield file def is_cpp(name: str | Path): @@ -54,9 +68,15 @@ def is_cpp(name: str | Path): def is_c(name: str | Path): return Path(name).suffix in [".c"] + def is_c_cpp(name: str | Path): return is_c(name) or is_cpp(name) + +def is_asm(name: str | Path): + return Path(name).suffix in [".s"] + + class Object: def __init__(self, name: str, **options: Any): self.name = name @@ -132,8 +152,9 @@ class ProjectConfig: self.objdiff_path = (self.root_path / f"objdiff-cli{self.platform.exe}").resolve() self.sjiswrap_path = (self.root_path / "tools" / "sjiswrap.exe").resolve() self.cc_path = (self.mwcc_path / "mwccarm.exe").resolve() + self.as_path = (self.mwcc_path / "mwasmarm.exe").resolve() self.ld_path = (self.mwcc_path / "mwldarm.exe").resolve() - self.python_path = Path(sys.executable).resolve() + self.python_path = Path(sys.executable) self.dsd_base_flags = [ "--force-color", # Force color output @@ -295,11 +316,15 @@ class ProjectConfig: return self.get_game_build(version) / "build" / "rom_config.yaml" def source_object_files(self, version: str) -> list[str]: - files: list[str] = [] - for source_file in get_c_cpp_files([self.src_path, self.libs_path]): + def to_object(source_file: Path) -> str: src_obj_path = self.get_game_build(version) / source_file - files.append(str(src_obj_path.with_suffix(".o"))) - return files + return str(src_obj_path.with_suffix(".o")) + + dirs = [self.src_path, self.libs_path] + c_cpp_objects = list(map(to_object, get_c_cpp_files(dirs))) + asm_objects = list(map(to_object, get_asm_files(dirs))) + return c_cpp_objects + asm_objects + def arm9_o(self, version: str) -> Path: return self.get_game_build(version) / "arm9.o" @@ -532,44 +557,40 @@ def add_disassemble_builds(cfg: ProjectConfig, version: str, n: ninja_syntax.Wri def add_mwcc_builds(cfg: ProjectConfig, version: str, objects: Dict[str, Object], n: ninja_syntax.Writer, mwcc_implicit: list[str]): - file_map: dict[str, list[str] | None] = {} + file_map: dict[str, Object] = {} for object in objects.values(): - file_map[str(object.src_path)] = object.options["cflags"] + object.options["extra_cflags"] + assert object.src_path is not None, f"Object '{object.name}' is not resolved" + if is_asm(object.src_path): + # file_map[str(object.src_path)] = object.options["asflags"] or [] + object.options["extra_asflags"] or [] + file_map[str(object.src_path)] = object + else: + # file_map[str(object.src_path)] = object.options["cflags"] or [] + object.options["extra_cflags"] or [] + file_map[str(object.src_path)] = object if cfg.auto_add_sources: for source_file in get_c_cpp_files([cfg.src_path, cfg.libs_path]): - if str(source_file) not in file_map: - file_map[str(source_file)] = cfg.cflags_base + source_file = str(source_file) + if source_file not in file_map: + # file_map[source_file] = cfg.cflags_base or [] + file_map[source_file] = Object(source_file, cflags=cfg.cflags_base) + for source_file in get_asm_files([cfg.src_path, cfg.libs_path]): + source_file = str(source_file) + if source_file not in file_map: + # file_map[source_file] = cfg.asflags or [] + file_map[source_file] = Object(source_file, asflags=cfg.asflags) - for src_file, cc_flags in file_map.items(): + for src_file, object in file_map.items(): source_file = Path(src_file) src_obj_path = cfg.get_game_build(version) / source_file if cfg.warn_missing_source and not source_file.exists(): print(f"WARNING: path not found for `{source_file}`") - assert cc_flags is not None, "cc_flags is None" - if "-lang=c++" not in cc_flags or "-lang=c" not in cc_flags: - if is_cpp(source_file): - cc_flags.append("-lang=c++") - elif is_c(source_file): - cc_flags.append("-lang=c") - - n.build( - inputs=str(source_file), - implicit=mwcc_implicit, - rule="mwcc", - outputs=str(src_obj_path.with_suffix(".o")), - variables={ - "game_version": version.upper(), - "cc_flags": " ".join(cc_flags), - "basedir": str(src_obj_path.parent), - "basefile": str(src_obj_path.with_suffix("")), - }, - # order_only="objdiff", - ) - n.newline() + if is_asm(src_file): + add_mwas_build(cfg, version, n, source_file, object, mwcc_implicit) + else: + add_mwcc_build(cfg, version, n, source_file, object, mwcc_implicit) extension = source_file.suffix ctx_file = str(src_obj_path.with_suffix(f".ctx{extension}")) @@ -584,6 +605,53 @@ def add_mwcc_builds(cfg: ProjectConfig, version: str, objects: Dict[str, Object] n.newline() +def add_mwcc_build(cfg: ProjectConfig, version: str, n: ninja_syntax.Writer, source_file: Path, object: Object, mwcc_implicit: list[str]): + src_obj_path = cfg.get_game_build(version) / source_file + + cc_flags: list[str] = object.options["cflags"] or [] + object.options["extra_cflags"] or [] + if "-lang=c++" not in cc_flags or "-lang=c" not in cc_flags: + if is_cpp(source_file): + cc_flags.append("-lang=c++") + elif is_c(source_file): + cc_flags.append("-lang=c") + + n.build( + inputs=str(source_file), + implicit=mwcc_implicit, + rule="mwcc", + outputs=str(src_obj_path.with_suffix(".o")), + variables={ + "game_version": version.upper(), + "mw_version": object.options["mw_version"], + "cc_flags": " ".join(cc_flags), + "basedir": str(src_obj_path.parent), + "basefile": str(src_obj_path.with_suffix("")), + }, + ) + n.newline() + + +def add_mwas_build(cfg: ProjectConfig, version: str, n: ninja_syntax.Writer, source_file: Path, object: Object, mwcc_implicit: list[str]): + src_obj_path = cfg.get_game_build(version) / source_file + + as_flags: list[str] = object.options["asflags"] or [] + object.options["extra_asflags"] or [] + + n.build( + inputs=str(source_file), + implicit=mwcc_implicit, + rule="mwas", + outputs=str(src_obj_path.with_suffix(".o")), + variables={ + "game_version": version.upper(), + "mw_version": object.options["mw_version"], + "as_flags": " ".join(as_flags), + "basedir": str(src_obj_path.parent), + "basefile": str(src_obj_path.with_suffix("")), + }, + ) + n.newline() + + def add_mwld_and_rom_builds(cfg: ProjectConfig, version: str, n: ninja_syntax.Writer): n.comment("Run linker") objects_to_link = [file['object_to_link'] for file in cfg.files(version)] @@ -1025,11 +1093,14 @@ def process_project(cfg: ProjectConfig, args: Any): # -MMD excludes all includes instead of just system includes for some reason, so use -MD instead. includes = " ".join(include for include in cfg.includes) - mwcc_cmd = f'{cfg.wine_path} {cfg.sjiswrap_path} "{cfg.cc_path}" $cc_flags {includes} -DVERSION=$game_version -MD -c $in -o $basedir' + mwcc_cmd = f'{cfg.wine_path} {cfg.sjiswrap_path} "{cfg.mwcc_root}/$mw_version/mwccarm.exe" $cc_flags {includes} -DVERSION=$game_version -MD -c $in -o $basedir' + mwas_cmd = f'{cfg.wine_path} {cfg.sjiswrap_path} "{cfg.mwcc_root}/$mw_version/mwasmarm.exe" $as_flags {includes} -DVERSION=$game_version -MD -c $in -o $basedir' mwcc_implicit = [str(cfg.cc_path), str(cfg.sjiswrap_path)] if cfg.platform and cfg.platform.system != "windows": transform_dep = "tools/transform_dep.py" - mwcc_cmd += f" && $python {transform_dep} $basefile.d $basefile.d" + transform_dep_cmd = f" && $python {transform_dep} $basefile.d $basefile.d" + mwcc_cmd += transform_dep_cmd + mwas_cmd += transform_dep_cmd mwcc_implicit.append(transform_dep) if cfg.wine_path == cfg.default_wibo_path: mwcc_implicit.append(cfg.wine_path) @@ -1040,6 +1111,13 @@ def process_project(cfg: ProjectConfig, args: Any): ) n.newline() + n.rule( + name="mwas", + command=mwas_cmd, + depfile="$basefile.d", + ) + n.newline() + n.rule( name="lcf", command=f"{cfg.dsd_path} {cfg.dsd_flags} lcf -c $config_path" @@ -1134,6 +1212,12 @@ def process_project(cfg: ProjectConfig, args: Any): ) n.newline() + # Custom rules + for lib in cfg.libs or []: + for rule in lib.get("rules") or []: + rule(cfg, n) + n.newline() + add_download_tool_builds(cfg, n, args) add_configure_build(cfg, n) @@ -1159,6 +1243,11 @@ def process_project(cfg: ProjectConfig, args: Any): add_mwcc_builds(cfg, version, objects, n, mwcc_implicit) + # Custom builds + for lib in cfg.libs or []: + for extra_build in lib.get("extra_builds") or []: + extra_build(cfg, version, n) + add_mwld_and_rom_builds(cfg, version, n) cmds_map["sha1"].append(f"sha1_{version}") diff --git a/tools/requirements.txt b/tools/requirements.txt index 4682190e..c927869b 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,3 +1,4 @@ pre-commit +pyelftools pyperclip requests