diff --git a/README.md b/README.md index db641238..5d952f40 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is a work in progress decompilation of Metroid - Zero Mission. 2575/2721 functions decompiled (94.63%, 146 left) -0x31d32b/0x76b014 bytes of data not in blobs (42%, 0x44dce9 left) +0x31f53b/0x76b014 bytes of data not in blobs (42.09%, 0x44bad9 left) Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0 diff --git a/database.txt b/database.txt index 786120dc..b233ff57 100644 --- a/database.txt +++ b/database.txt @@ -2583,7 +2583,7 @@ Blob_40dd0b_40e0c4.bin;953;0x40dd0b;1 Blob_415460_446d68.bin;203016;0x415460;1 Blob_454818_45f45c.bin;44100;0x454818;1 Blob_479400_4bfee4.bin;289508;0x479400;1 -Blob_5d91fc_74f8b4.bin;1533624;0x5d91fc;1 +Blob_5db40c_74f8b4.bin;1524904;0x5db40c;1 Blob_754bd0_75e6a8.bin;39640;0x754bd0;1 Blob_75fae4_75fd78.bin;660;0x75fae4;1 Blob_7602d4_760420.bin;332;0x7602d4;1 diff --git a/include/constants/clipdata.h b/include/constants/clipdata.h index cbe6f8f7..4fd750f1 100644 --- a/include/constants/clipdata.h +++ b/include/constants/clipdata.h @@ -247,6 +247,7 @@ #define CLIPDATA_BG0_TRIGGER_DEFAULT_TRANSPARENCY 0x8B #define CLIPDATA_WEAK_LAVA 0xA0 #define CLIPDATA_STRONG_LAVA 0xA1 +#define CLIPDATA_ACID 0xA2 #define CLIPDATA_TILEMAP_FLAG 0x400 diff --git a/include/data/clipdata_types.h b/include/data/clipdata_types.h index be591296..4eb239b4 100644 --- a/include/data/clipdata_types.h +++ b/include/data/clipdata_types.h @@ -3,7 +3,7 @@ #include "types.h" -extern const u16 sClipdataCollisionTypes[176]; +extern const u8 sClipdataCollisionTypes[176]; extern const u16 sClipdataBehaviorTypes[176]; extern const u8 sCommonTilesGfx[4096]; diff --git a/linker.ld b/linker.ld index b124318e..bc7732dc 100644 --- a/linker.ld +++ b/linker.ld @@ -692,7 +692,8 @@ SECTIONS { src/data/ending_and_gallery_data.o(.rodata); src/data/chozodia_escape_data.o(.rodata); src/data/io_transfer_data.o(.rodata); - /* 5d91fc-74f8b4 */ + src/data/clipdata_types.o(.rodata); + /* 5db40c-74f8b4 */ src/data/animated_tiles_data.o(.rodata); src/data/shortcut_pointers.o(.rodata); /* 754bd0-75e6a8 */ diff --git a/src/data/clipdata_types.c b/src/data/clipdata_types.c index eca9ddce..b0b22e58 100644 --- a/src/data/clipdata_types.c +++ b/src/data/clipdata_types.c @@ -3,7 +3,7 @@ #include "constants/clipdata.h" #include "macros.h" -const u16 sClipdataCollisionTypes[176] = { +const u8 sClipdataCollisionTypes[176] = { [CLIPDATA_AIR] = CLIPDATA_TYPE_AIR, [CLIPDATA_PASS_THROUGH_BOTTOM] = CLIPDATA_TYPE_PASS_THROUGH_BOTTOM, [CLIPDATA_NON_POWER_GRIP] = CLIPDATA_TYPE_SOLID, @@ -99,6 +99,7 @@ const u16 sClipdataCollisionTypes[176] = { [CLIPDATA_BG0_TRIGGER_DEFAULT_TRANSPARENCY] = CLIPDATA_TYPE_AIR, [CLIPDATA_WEAK_LAVA] = CLIPDATA_TYPE_AIR, [CLIPDATA_STRONG_LAVA] = CLIPDATA_TYPE_AIR, + [CLIPDATA_ACID] = CLIPDATA_TYPE_AIR }; const u16 sClipdataBehaviorTypes[176] = { @@ -197,7 +198,10 @@ const u16 sClipdataBehaviorTypes[176] = { [CLIPDATA_BG0_TRIGGER_DEFAULT_TRANSPARENCY] = CLIP_BEHAVIOR_BG0_TRIGGER_DEFAULT_TRANSPARENCY, [CLIPDATA_WEAK_LAVA] = CLIP_BEHAVIOR_WEAK_LAVA, [CLIPDATA_STRONG_LAVA] = CLIP_BEHAVIOR_STRONG_LAVA, + [CLIPDATA_ACID] = CLIP_BEHAVIOR_ACID }; const u8 sCommonTilesGfx[4096] = INCBIN_U8("data/common/CommonTiles.gfx"); const u8 sCommonTilesMothershipGfx[4096] = INCBIN_U8("data/common/CommonTilesMotherShip.gfx"); + +static const u8 sTempArray_5db40c[0x1744a8] = INCBIN_U8("data/Blob_5db40c_74f8b4.bin"); diff --git a/src/data/io_transfer_data.c b/src/data/io_transfer_data.c index b43c5462..e75e70c7 100644 --- a/src/data/io_transfer_data.c +++ b/src/data/io_transfer_data.c @@ -1,5 +1,4 @@ #include "data/io_transfer_data.h" -#include "macros.h" const struct IoTransferInfo sIoTransferInfo_Empty = { .pFunction = NULL, @@ -29,5 +28,3 @@ const u8 sErrorString_SendOverflow[20] = " SEND OVER FLOW "; const u8 sErrorString_ReceiveOverflow[20] = " RECV OVER FLOW "; const u8 sErrorString_SioInternal[20] = "SIO INTERVAL ERROR"; const u8 sErrorString_SioStop[20] = " SIO STOP ERROR "; - -static const u8 sTempArray_5d914c[0x1766b8] = INCBIN_U8("data/Blob_5d91fc_74f8b4.bin");