summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/src/unk_02006D98.c1806
-rw-r--r--include/unk_02006D98.h165
2 files changed, 1382 insertions, 589 deletions
diff --git a/arm9/src/unk_02006D98.c b/arm9/src/unk_02006D98.c
index 154e3284..78e3d157 100644
--- a/arm9/src/unk_02006D98.c
+++ b/arm9/src/unk_02006D98.c
@@ -1,218 +1,662 @@
#include "global.h"
+#include "unk_02006D98.h"
#include "MI_memory.h"
#include "NNS_g2d.h"
#include "filesystem.h"
#include "heap.h"
-#include "poketool/pokegra/otherpoke.naix"
-#include "registers.h"
#include "mod63_021DB450.h"
#include "palette.h"
-
-struct UnkStruct4{
- u8 unk0;
- u8 unk1;
-};
-
-
+#include "poketool/pokegra/otherpoke.naix"
+#include "registers.h"
const u8 UNK_020ECCE0[] = {
- 0xFF, 0xFF, 0x1B, 0x0F, 0x1C, 0x0F, 0x1D, 0x0F, 0x1E, 0x0F, 0x1A, 0x10, 0x1B, 0x10, 0x1C, 0x10, 0x1D, 0x10,
- 0x1E, 0x10, 0x1F, 0x10, 0x19, 0x11, 0x1A, 0x11, 0x1B, 0x11, 0x1C, 0x11, 0x1D, 0x11, 0x1E, 0x11,
- 0x1F, 0x11, 0x20, 0x11, 0x19, 0x12, 0x1A, 0x12, 0x1B, 0x12, 0x1C, 0x12, 0x1D, 0x12, 0x1E, 0x12,
- 0x1F, 0x12, 0x20, 0x12, 0x19, 0x13, 0x1A, 0x13, 0x1B, 0x13, 0x1C, 0x13, 0x1D, 0x13, 0x1E, 0x13,
- 0x1F, 0x13, 0x20, 0x13, 0x19, 0x14, 0x1A, 0x14, 0x1B, 0x14, 0x1C, 0x14, 0x1D, 0x14, 0x1E, 0x14,
- 0x1F, 0x14, 0x20, 0x14, 0x1A, 0x15, 0x1B, 0x15, 0x1C, 0x15, 0x1D, 0x15, 0x1E, 0x15, 0x1F, 0x15,
- 0x1B, 0x16, 0x1C, 0x16, 0x1D, 0x16, 0x1E, 0x16, 0xFF, 0xFF,
+ 0xFF,
+ 0xFF,
+ 0x1B,
+ 0x0F,
+ 0x1C,
+ 0x0F,
+ 0x1D,
+ 0x0F,
+ 0x1E,
+ 0x0F,
+ 0x1A,
+ 0x10,
+ 0x1B,
+ 0x10,
+ 0x1C,
+ 0x10,
+ 0x1D,
+ 0x10,
+ 0x1E,
+ 0x10,
+ 0x1F,
+ 0x10,
+ 0x19,
+ 0x11,
+ 0x1A,
+ 0x11,
+ 0x1B,
+ 0x11,
+ 0x1C,
+ 0x11,
+ 0x1D,
+ 0x11,
+ 0x1E,
+ 0x11,
+ 0x1F,
+ 0x11,
+ 0x20,
+ 0x11,
+ 0x19,
+ 0x12,
+ 0x1A,
+ 0x12,
+ 0x1B,
+ 0x12,
+ 0x1C,
+ 0x12,
+ 0x1D,
+ 0x12,
+ 0x1E,
+ 0x12,
+ 0x1F,
+ 0x12,
+ 0x20,
+ 0x12,
+ 0x19,
+ 0x13,
+ 0x1A,
+ 0x13,
+ 0x1B,
+ 0x13,
+ 0x1C,
+ 0x13,
+ 0x1D,
+ 0x13,
+ 0x1E,
+ 0x13,
+ 0x1F,
+ 0x13,
+ 0x20,
+ 0x13,
+ 0x19,
+ 0x14,
+ 0x1A,
+ 0x14,
+ 0x1B,
+ 0x14,
+ 0x1C,
+ 0x14,
+ 0x1D,
+ 0x14,
+ 0x1E,
+ 0x14,
+ 0x1F,
+ 0x14,
+ 0x20,
+ 0x14,
+ 0x1A,
+ 0x15,
+ 0x1B,
+ 0x15,
+ 0x1C,
+ 0x15,
+ 0x1D,
+ 0x15,
+ 0x1E,
+ 0x15,
+ 0x1F,
+ 0x15,
+ 0x1B,
+ 0x16,
+ 0x1C,
+ 0x16,
+ 0x1D,
+ 0x16,
+ 0x1E,
+ 0x16,
+ 0xFF,
+ 0xFF,
};
-
-
-
const u8 UNK_020ECC10[] = {
- 0x1E, 0x21, 0x1F, 0x21, 0x20, 0x21, 0x1D, 0x22, 0x1E, 0x22, 0x1F, 0x22, 0x20, 0x22, 0x21, 0x22,
- 0x1C, 0x23, 0x1D, 0x23, 0x1E, 0x23, 0x1F, 0x23, 0x20, 0x23, 0x21, 0x23, 0x22, 0x23, 0x1C, 0x24,
- 0x1D, 0x24, 0x1E, 0x24, 0x1F, 0x24, 0x20, 0x24, 0x21, 0x24, 0x22, 0x24, 0x1C, 0x25, 0x1D, 0x25,
- 0x1E, 0x25, 0x1F, 0x25, 0x20, 0x25, 0x21, 0x25, 0x22, 0x25, 0x1C, 0x26, 0x1D, 0x26, 0x1E, 0x26,
- 0x1F, 0x26, 0x20, 0x26, 0x21, 0x26, 0x22, 0x26, 0x1C, 0x27, 0x1D, 0x27, 0x1E, 0x27, 0x1F, 0x27,
- 0x20, 0x27, 0x21, 0x27, 0x22, 0x27, 0x1D, 0x28, 0x1E, 0x28, 0x1F, 0x28, 0x20, 0x28, 0x21, 0x28,
- 0x1E, 0x29, 0x1F, 0x29, 0x20, 0x29, 0xFF, 0xFF,
+ 0x1E,
+ 0x21,
+ 0x1F,
+ 0x21,
+ 0x20,
+ 0x21,
+ 0x1D,
+ 0x22,
+ 0x1E,
+ 0x22,
+ 0x1F,
+ 0x22,
+ 0x20,
+ 0x22,
+ 0x21,
+ 0x22,
+ 0x1C,
+ 0x23,
+ 0x1D,
+ 0x23,
+ 0x1E,
+ 0x23,
+ 0x1F,
+ 0x23,
+ 0x20,
+ 0x23,
+ 0x21,
+ 0x23,
+ 0x22,
+ 0x23,
+ 0x1C,
+ 0x24,
+ 0x1D,
+ 0x24,
+ 0x1E,
+ 0x24,
+ 0x1F,
+ 0x24,
+ 0x20,
+ 0x24,
+ 0x21,
+ 0x24,
+ 0x22,
+ 0x24,
+ 0x1C,
+ 0x25,
+ 0x1D,
+ 0x25,
+ 0x1E,
+ 0x25,
+ 0x1F,
+ 0x25,
+ 0x20,
+ 0x25,
+ 0x21,
+ 0x25,
+ 0x22,
+ 0x25,
+ 0x1C,
+ 0x26,
+ 0x1D,
+ 0x26,
+ 0x1E,
+ 0x26,
+ 0x1F,
+ 0x26,
+ 0x20,
+ 0x26,
+ 0x21,
+ 0x26,
+ 0x22,
+ 0x26,
+ 0x1C,
+ 0x27,
+ 0x1D,
+ 0x27,
+ 0x1E,
+ 0x27,
+ 0x1F,
+ 0x27,
+ 0x20,
+ 0x27,
+ 0x21,
+ 0x27,
+ 0x22,
+ 0x27,
+ 0x1D,
+ 0x28,
+ 0x1E,
+ 0x28,
+ 0x1F,
+ 0x28,
+ 0x20,
+ 0x28,
+ 0x21,
+ 0x28,
+ 0x1E,
+ 0x29,
+ 0x1F,
+ 0x29,
+ 0x20,
+ 0x29,
+ 0xFF,
+ 0xFF,
};
-
const u8 UNK_020ECC78[] = {
- 0x33, 0x11, 0x34, 0x11, 0x35, 0x11, 0x36, 0x11, 0x32, 0x12, 0x33, 0x12, 0x34, 0x12, 0x35, 0x12,
- 0x36, 0x12, 0x37, 0x12, 0x31, 0x13, 0x32, 0x13, 0x33, 0x13, 0x34, 0x13, 0x35, 0x13, 0x36, 0x13,
- 0x37, 0x13, 0x38, 0x13, 0x31, 0x14, 0x32, 0x14, 0x33, 0x14, 0x34, 0x14, 0x35, 0x14, 0x36, 0x14,
- 0x37, 0x14, 0x38, 0x14, 0x31, 0x15, 0x32, 0x15, 0x33, 0x15, 0x34, 0x15, 0x35, 0x15, 0x36, 0x15,
- 0x37, 0x15, 0x38, 0x15, 0x31, 0x16, 0x32, 0x16, 0x33, 0x16, 0x34, 0x16, 0x35, 0x16, 0x36, 0x16,
- 0x37, 0x16, 0x38, 0x16, 0x32, 0x17, 0x33, 0x17, 0x34, 0x17, 0x35, 0x17, 0x36, 0x17, 0x37, 0x17,
- 0x33, 0x18, 0x34, 0x18, 0x35, 0x18, 0x36, 0x18,
-};
-
-const u8 UNK_020ECDCC[] = {
- 0x2B, 0x21, 0x2C, 0x21, 0x2D, 0x21, 0x29, 0x22, 0x2A, 0x22, 0x2B, 0x22, 0x2C, 0x22, 0x2D, 0x22,
- 0x2E, 0x22, 0x2F, 0x22, 0x28, 0x23, 0x29, 0x23, 0x2A, 0x23, 0x2B, 0x23, 0x2C, 0x23, 0x2D, 0x23,
- 0x2E, 0x23, 0x2F, 0x23, 0x30, 0x23, 0x28, 0x24, 0x29, 0x24, 0x2A, 0x24, 0x2B, 0x24, 0x2C, 0x24,
- 0x2D, 0x24, 0x2E, 0x24, 0x2F, 0x24, 0x30, 0x24, 0x28, 0x25, 0x29, 0x25, 0x2A, 0x25, 0x2B, 0x25,
- 0x2C, 0x25, 0x2D, 0x25, 0x2E, 0x25, 0x2F, 0x25, 0x30, 0x25, 0x28, 0x26, 0x29, 0x26, 0x2A, 0x26,
- 0x2B, 0x26, 0x2C, 0x26, 0x2D, 0x26, 0x2E, 0x26, 0x2F, 0x26, 0x30, 0x26, 0x28, 0x27, 0x29, 0x27,
- 0x2A, 0x27, 0x2B, 0x27, 0x2C, 0x27, 0x2D, 0x27, 0x2E, 0x27, 0x2F, 0x27, 0x30, 0x27, 0x28, 0x28,
- 0x29, 0x28, 0x2A, 0x28, 0x2B, 0x28, 0x2C, 0x28, 0x2D, 0x28, 0x2E, 0x28, 0x2F, 0x28, 0x30, 0x28,
- 0x29, 0x29, 0x2A, 0x29, 0x2B, 0x29, 0x2C, 0x29, 0x2D, 0x29, 0x2E, 0x29, 0x2F, 0x29, 0x2B, 0x2A,
- 0x2C, 0x2A, 0x2D, 0x2A, 0xFF, 0xFF
+ 0x33,
+ 0x11,
+ 0x34,
+ 0x11,
+ 0x35,
+ 0x11,
+ 0x36,
+ 0x11,
+ 0x32,
+ 0x12,
+ 0x33,
+ 0x12,
+ 0x34,
+ 0x12,
+ 0x35,
+ 0x12,
+ 0x36,
+ 0x12,
+ 0x37,
+ 0x12,
+ 0x31,
+ 0x13,
+ 0x32,
+ 0x13,
+ 0x33,
+ 0x13,
+ 0x34,
+ 0x13,
+ 0x35,
+ 0x13,
+ 0x36,
+ 0x13,
+ 0x37,
+ 0x13,
+ 0x38,
+ 0x13,
+ 0x31,
+ 0x14,
+ 0x32,
+ 0x14,
+ 0x33,
+ 0x14,
+ 0x34,
+ 0x14,
+ 0x35,
+ 0x14,
+ 0x36,
+ 0x14,
+ 0x37,
+ 0x14,
+ 0x38,
+ 0x14,
+ 0x31,
+ 0x15,
+ 0x32,
+ 0x15,
+ 0x33,
+ 0x15,
+ 0x34,
+ 0x15,
+ 0x35,
+ 0x15,
+ 0x36,
+ 0x15,
+ 0x37,
+ 0x15,
+ 0x38,
+ 0x15,
+ 0x31,
+ 0x16,
+ 0x32,
+ 0x16,
+ 0x33,
+ 0x16,
+ 0x34,
+ 0x16,
+ 0x35,
+ 0x16,
+ 0x36,
+ 0x16,
+ 0x37,
+ 0x16,
+ 0x38,
+ 0x16,
+ 0x32,
+ 0x17,
+ 0x33,
+ 0x17,
+ 0x34,
+ 0x17,
+ 0x35,
+ 0x17,
+ 0x36,
+ 0x17,
+ 0x37,
+ 0x17,
+ 0x33,
+ 0x18,
+ 0x34,
+ 0x18,
+ 0x35,
+ 0x18,
+ 0x36,
+ 0x18,
};
-
-
+const u8 UNK_020ECDCC[] = { 0x2B,
+ 0x21,
+ 0x2C,
+ 0x21,
+ 0x2D,
+ 0x21,
+ 0x29,
+ 0x22,
+ 0x2A,
+ 0x22,
+ 0x2B,
+ 0x22,
+ 0x2C,
+ 0x22,
+ 0x2D,
+ 0x22,
+ 0x2E,
+ 0x22,
+ 0x2F,
+ 0x22,
+ 0x28,
+ 0x23,
+ 0x29,
+ 0x23,
+ 0x2A,
+ 0x23,
+ 0x2B,
+ 0x23,
+ 0x2C,
+ 0x23,
+ 0x2D,
+ 0x23,
+ 0x2E,
+ 0x23,
+ 0x2F,
+ 0x23,
+ 0x30,
+ 0x23,
+ 0x28,
+ 0x24,
+ 0x29,
+ 0x24,
+ 0x2A,
+ 0x24,
+ 0x2B,
+ 0x24,
+ 0x2C,
+ 0x24,
+ 0x2D,
+ 0x24,
+ 0x2E,
+ 0x24,
+ 0x2F,
+ 0x24,
+ 0x30,
+ 0x24,
+ 0x28,
+ 0x25,
+ 0x29,
+ 0x25,
+ 0x2A,
+ 0x25,
+ 0x2B,
+ 0x25,
+ 0x2C,
+ 0x25,
+ 0x2D,
+ 0x25,
+ 0x2E,
+ 0x25,
+ 0x2F,
+ 0x25,
+ 0x30,
+ 0x25,
+ 0x28,
+ 0x26,
+ 0x29,
+ 0x26,
+ 0x2A,
+ 0x26,
+ 0x2B,
+ 0x26,
+ 0x2C,
+ 0x26,
+ 0x2D,
+ 0x26,
+ 0x2E,
+ 0x26,
+ 0x2F,
+ 0x26,
+ 0x30,
+ 0x26,
+ 0x28,
+ 0x27,
+ 0x29,
+ 0x27,
+ 0x2A,
+ 0x27,
+ 0x2B,
+ 0x27,
+ 0x2C,
+ 0x27,
+ 0x2D,
+ 0x27,
+ 0x2E,
+ 0x27,
+ 0x2F,
+ 0x27,
+ 0x30,
+ 0x27,
+ 0x28,
+ 0x28,
+ 0x29,
+ 0x28,
+ 0x2A,
+ 0x28,
+ 0x2B,
+ 0x28,
+ 0x2C,
+ 0x28,
+ 0x2D,
+ 0x28,
+ 0x2E,
+ 0x28,
+ 0x2F,
+ 0x28,
+ 0x30,
+ 0x28,
+ 0x29,
+ 0x29,
+ 0x2A,
+ 0x29,
+ 0x2B,
+ 0x29,
+ 0x2C,
+ 0x29,
+ 0x2D,
+ 0x29,
+ 0x2E,
+ 0x29,
+ 0x2F,
+ 0x29,
+ 0x2B,
+ 0x2A,
+ 0x2C,
+ 0x2A,
+ 0x2D,
+ 0x2A,
+ 0xFF,
+ 0xFF };
const int UNK_020ECBD0[4][4] = {
- {160, 160, 224, 176}, {160, 160, 224, 176}, {160, 176, 224, 192}, {160, 192, 224, 208}
+ { 160, 160, 224, 176 }, { 160, 160, 224, 176 }, { 160, 176, 224, 192 }, { 160, 192, 224, 208 }
};
-
-
-// static const int UNK_020ECD4C[4][2][4] = {
+// const int UNK_020ECD4C[4][2][4] = {
// {
// {0, 0, 0x50, 0x50}, {0x50, 0, 0xA0, 0x50}
// }, {
-
+
// {0, 0x50, 0x50, 0xA0}, {0x50, 0x50, 0xA0, 0xA0}
-
+
// }, {
-
// {0, 0xA0, 0x50, 0xF0}, {0x50, 0xA0, 0xA0, 0xF0}
-
+
// }, {
-
+
// {0xA0, 0, 0xF0, 0x50}, {0xA0, 0x50, 0xF0, 0xA0}
-
+
// }
// };
-
const u8 UNK_020ECD4C[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
- 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
- 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00,
- 0x50, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00,
- 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
- 0xA0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xF0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xF0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xF0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x50,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xF0,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0xA0,
+ 0x00,
+ 0x00,
+ 0x00,
};
-
-
struct UnkStruct4 *UNK_02105AE8[] = {
// ugly hack to fix extra padding added by the compiler
- (struct UnkStruct4 *)(UNK_020ECCE0+2),
+ (struct UnkStruct4 *)(UNK_020ECCE0 + 2),
(struct UnkStruct4 *)UNK_020ECC78,
(struct UnkStruct4 *)UNK_020ECC10,
(struct UnkStruct4 *)UNK_020ECDCC,
};
-
-struct UnkStruct2_sub {
- s8 unk0;
- u8 unk1;
-};
-struct UnkStruct2_sub2 {
- u16 unk0_0:2;
- u16 unk0_2:1;
- u16 unk0_3:1;
- u16 unk0_4:1;
- u16 unk0_5:2;
- s8 unk2;
- u8 unk3;
- s16 unk4;
- s16 unk6;
- s16 unk8;
- s16 unka;
-};
-
-struct UnkStruct2 {
- u32 unk00_0:1;
- u32 unk00_1:6;
- u32 unk00_7:1;
- u32 unk00_8:1;
- struct UnkStruct63_021DB49C unk04;
- struct UnkStruct63_021DB49C unk14;
- s16 unk24;
- s16 unk26;
- u32 unk28;
- s16 unk2C;
- s16 unk2E;
- u32 unk30;
- s16 unk34;
- s16 unk36;
- u16 unk38;
- u16 unk3A;
- u16 unk3C;
- u16 unk3E;
- s16 unk40;
- s16 unk42;
- u8 unk44;
- u8 unk45;
- u8 unk46;
- u8 unk47;
- u8 unk48;
- u8 unk49;
- u8 unk4A;
- u8 unk4B;
- u32 unk4C;
- u32 unk50_0:5;
- u32 unk50_5:5;
- u32 unk50_a:5;
- u32 unk50_f:5;
- u32 unk50_14:5;
- u32 unk50_19:5;
- u32 unk50_1E:2;
- u32 unk54_0:1;
- u32 unk54_1:1;
- u32 unk54_2:5;
- u32 unk54_7:2;
- u32 unk54_9:1;
- u32 unk54_A:1;
- u32 unk54_B:1;
- u32 unk54_C:1;
- u32 unk54_D:4;
- u8 unk58;
- u8 unk59;
- u8 unk5A;
- u8 unk5B;
- u8 unk5C[10];
- void (*unk68)(struct UnkStruct2 *, void *);
- struct UnkStruct2_sub2 unk6C;
- struct UnkStruct2_sub2 unk78;
- struct UnkStruct2_sub unk84[10];
-};
-
-
-struct UnkStruct1
-{
- struct UnkStruct2 unk000[4];
- NNSG2dImageProxy unk260;
- NNSG2dImagePaletteProxy unk284;
- u32 unk298;
- u32 unk29C;
- u32 unk2A0;
- u32 unk2A4;
- u32 unk2A8;
- u8 *unk2AC;
- u16 *unk2B0;
- u16 *unk2B4;
- NNSG2dCharacterData unk2B8;
- NNSG2dPaletteData unk2D0;
- u8 unk2E0;
- u8 unk2E1;
- u8 unk2E2;
- u8 unk2E3;
- u32 unk2E4;
-};
-
extern void NNS_G2dSetupSoftwareSpriteCamera(void);
-extern void FUN_02008A74(u8 *);
+extern void NNS_G3dGeFlushBuffer();
+extern void NNS_G2dDrawSpriteFast(s16 param0,
+ s16 param1,
+ int param2,
+ int param3,
+ int param4,
+ int param5,
+ int param6,
+ int param7,
+ int param8);
THUMB_FUNC struct UnkStruct1 *FUN_02006D98(u32 heap_id)
{
@@ -269,22 +713,13 @@ THUMB_FUNC struct UnkStruct1 *FUN_02006D98(u32 heap_id)
return ptr;
}
-
-extern void FUN_020082A8(struct UnkStruct1 *);
-extern void FUN_020086F4(struct UnkStruct1 *);
-extern void NNS_G3dGeFlushBuffer();
-extern void FUN_02007F48(struct UnkStruct2 *);
-
-
-
-extern void NNS_G2dDrawSpriteFast(s16 param0, s16 param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8);
-
#ifdef NONMATCHING
// mostly matching, only 2 register writes messed up
-THUMB_FUNC void FUN_02006ED4(struct UnkStruct1 *param0) {
- s32 arg3;
- s32 arg4;
+THUMB_FUNC void FUN_02006ED4(struct UnkStruct1 *param0)
+{
+ s32 arg3;
+ s32 arg4;
FUN_020082A8(param0);
FUN_020086F4(param0);
@@ -294,169 +729,190 @@ THUMB_FUNC void FUN_02006ED4(struct UnkStruct1 *param0) {
reg_G3_MTX_PUSH = 0;
// this is all shuffled however I try
- reg_G3_TEXIMAGE_PARAM = (param0->unk29C >> 3) | (param0->unk260.attr.fmt << 26) | (1 << 30) | (param0->unk260.attr.sizeS << 20) | (param0->unk260.attr.sizeT << 23) | (param0->unk260.attr.plttUse << 29);
+ reg_G3_TEXIMAGE_PARAM = (param0->unk29C >> 3) | (param0->unk260.attr.fmt << 26) | (1 << 30) |
+ (param0->unk260.attr.sizeS << 20) | (param0->unk260.attr.sizeT << 23) |
+ (param0->unk260.attr.plttUse << 29);
- for (int st18 = 0; st18 < 4; st18++) {
- if (param0->unk000[st18].unk00_0 == 0 || param0->unk000[st18].unk54_0 != 0 || param0->unk000[st18].unk54_B != 0) {
+ for (int st18 = 0; st18 < 4; st18++)
+ {
+ if (param0->unk000[st18].unk00_0 == 0 || param0->unk000[st18].unk54_0 != 0 ||
+ param0->unk000[st18].unk54_B != 0)
+ {
continue;
}
- if (param0->unk000[st18].unk68 != NULL) {
+ if (param0->unk000[st18].unk68 != NULL)
+ {
param0->unk000[st18].unk68(&param0->unk000[st18], &param0->unk000[st18].unk24);
}
NNS_G3dGeFlushBuffer();
- if (param0->unk2E3 != 1) {
+ if (param0->unk2E3 != 1)
+ {
reg_G3_MTX_IDENTITY = 0;
}
FUN_02007F48(&param0->unk000[st18]);
-
+
u32 shift;
- if (param0->unk260.attr.fmt == 2) {
+ if (param0->unk260.attr.fmt == 2)
+ {
shift = 1;
- } else {
+ }
+ else
+ {
shift = 0;
}
- reg_G3_TEXPLTT_BASE = (param0->unk2A4 + st18*0x20)>>(4-shift);
+ reg_G3_TEXPLTT_BASE = (param0->unk2A4 + st18 * 0x20) >> (4 - shift);
- u32 r1 = param0->unk000[st18].unk28<<0xc;
- u32 r0 = (param0->unk000[st18].unk26 + param0->unk000[st18].unk42)<<0xc;
- u32 r3 = (param0->unk000[st18].unk24 + param0->unk000[st18].unk40)<<0xc;
+ u32 r1 = param0->unk000[st18].unk28 << 0xc;
+ u32 r0 = (param0->unk000[st18].unk26 + param0->unk000[st18].unk42) << 0xc;
+ u32 r3 = (param0->unk000[st18].unk24 + param0->unk000[st18].unk40) << 0xc;
reg_G3_MTX_TRANS = r3;
reg_G3_MTX_TRANS = r0;
reg_G3_MTX_TRANS = r1;
+ s32 idx = ((s32)param0->unk000[st18].unk38) >> 4;
+ G3_RotX(FX_SinCosTable_[idx * 2], FX_SinCosTable_[idx * 2 + 1]);
- s32 idx = ((s32)param0->unk000[st18].unk38)>>4;
- G3_RotX(FX_SinCosTable_[idx*2], FX_SinCosTable_[idx*2+1]);
-
- s32 idy = ((s32)param0->unk000[st18].unk3A)>>4;
- G3_RotY(FX_SinCosTable_[idy*2], FX_SinCosTable_[idy*2+1]);
-
- s32 idz = ((s32)param0->unk000[st18].unk3C)>>4;
- G3_RotZ(FX_SinCosTable_[idz*2], FX_SinCosTable_[idz*2+1]);
+ s32 idy = ((s32)param0->unk000[st18].unk3A) >> 4;
+ G3_RotY(FX_SinCosTable_[idy * 2], FX_SinCosTable_[idy * 2 + 1]);
+ s32 idz = ((s32)param0->unk000[st18].unk3C) >> 4;
+ G3_RotZ(FX_SinCosTable_[idz * 2], FX_SinCosTable_[idz * 2 + 1]);
- r1 = -(param0->unk000[st18].unk28<<0xc);
- r0 = -((param0->unk000[st18].unk26 + param0->unk000[st18].unk42)<<0xc);
- r3 = -((param0->unk000[st18].unk24 + param0->unk000[st18].unk40)<<0xc);
+ r1 = -(param0->unk000[st18].unk28 << 0xc);
+ r0 = -((param0->unk000[st18].unk26 + param0->unk000[st18].unk42) << 0xc);
+ r3 = -((param0->unk000[st18].unk24 + param0->unk000[st18].unk40) << 0xc);
reg_G3_MTX_TRANS = r3;
reg_G3_MTX_TRANS = r0;
reg_G3_MTX_TRANS = r1;
reg_G3_DIF_AMB =
- ((u16)(param0->unk000[st18].unk50_0 | (param0->unk000[st18].unk50_5<<5) | (param0->unk000[st18].unk50_a<<10))) |
- (((u16)(param0->unk000[st18].unk50_f | (param0->unk000[st18].unk50_14<<5) | (param0->unk000[st18].unk50_19<<10)))<<16) |
+ ((u16)(param0->unk000[st18].unk50_0 | (param0->unk000[st18].unk50_5 << 5) |
+ (param0->unk000[st18].unk50_a << 10))) |
+ (((u16)(param0->unk000[st18].unk50_f | (param0->unk000[st18].unk50_14 << 5) |
+ (param0->unk000[st18].unk50_19 << 10)))
+ << 16) |
0x8000;
-
reg_G3_SPE_EMI = 0x4210;
-
{
// shuffled there as well
u32 r1 = param0->unk000[st18].unk00_1;
u32 r0 = param0->unk000[st18].unk54_2;
- reg_G3_POLYGON_ATTR = 0xc0 | (r1<<24) | (r0<<16);
+ reg_G3_POLYGON_ATTR = 0xc0 | (r1 << 24) | (r0 << 16);
}
- if (param0->unk000[st18].unk54_1 != 0) {
- u32 r6 = param0->unk000[st18].unk44 + (*((int(*)[4][2][4])&UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][0];
+ if (param0->unk000[st18].unk54_1 != 0)
+ {
+ u32 r6 = param0->unk000[st18].unk44 +
+ (*((int(*)[4][2][4]) & UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][0];
u32 r12 = param0->unk000[st18].unk46;
- u32 r1 = param0->unk000[st18].unk45 + (*((int(*)[4][2][4])&UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][1];
+ u32 r1 = param0->unk000[st18].unk45 +
+ (*((int(*)[4][2][4]) & UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][1];
u32 r7 = param0->unk000[st18].unk47;
u32 r0 = r12 + r6;
-
- NNS_G2dDrawSpriteFast(
- param0->unk000[st18].unk24-40 + param0->unk000[st18].unk44 + param0->unk000[st18].unk2C,
- param0->unk000[st18].unk26-40 + param0->unk000[st18].unk45 + param0->unk000[st18].unk2E - param0->unk000[st18].unk6C.unk2,
+ NNS_G2dDrawSpriteFast(param0->unk000[st18].unk24 - 40 + param0->unk000[st18].unk44 +
+ param0->unk000[st18].unk2C,
+ param0->unk000[st18].unk26 - 40 + param0->unk000[st18].unk45 +
+ param0->unk000[st18].unk2E - param0->unk000[st18].unk6C.unk2,
param0->unk000[st18].unk28 + param0->unk000[st18].unk30,
r12,
r7,
r6,
r1,
r0,
- r7 + r1
- );
-
- } else {
- arg3 = (param0->unk000[st18].unk34*80)>>8;
- arg4 = (param0->unk000[st18].unk36*80)>>8;
+ r7 + r1);
+ }
+ else
+ {
+ arg3 = (param0->unk000[st18].unk34 * 80) >> 8;
+ arg4 = (param0->unk000[st18].unk36 * 80) >> 8;
NNS_G2dDrawSpriteFast(
- param0->unk000[st18].unk24-(arg3/2)+param0->unk000[st18].unk2C,
- param0->unk000[st18].unk26-(arg4/2)+ param0->unk000[st18].unk2E - param0->unk000[st18].unk6C.unk2,
+ param0->unk000[st18].unk24 - (arg3 / 2) + param0->unk000[st18].unk2C,
+ param0->unk000[st18].unk26 - (arg4 / 2) + param0->unk000[st18].unk2E -
+ param0->unk000[st18].unk6C.unk2,
param0->unk000[st18].unk28 + param0->unk000[st18].unk30,
arg3,
arg4,
- (*((int(*)[4][2][4])&UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][0],
- (*((int(*)[4][2][4])&UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][1],
- (*((int(*)[4][2][4])&UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][2],
- (*((int(*)[4][2][4])&UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][3]
- );
+ (*((int(*)[4][2][4]) & UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][0],
+ (*((int(*)[4][2][4]) & UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][1],
+ (*((int(*)[4][2][4]) & UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][2],
+ (*((int(*)[4][2][4]) & UNK_020ECD4C))[st18][param0->unk000[st18].unk5B][3]);
}
-
- if (param0->unk000[st18].unk6C.unk0_0 == 0 || param0->unk000[st18].unk6C.unk0_5 == 0 || param0->unk000[st18].unk54_1 != 0 || (param0->unk2E4 & 1) != 0) {
+ if (param0->unk000[st18].unk6C.unk0_0 == 0 || param0->unk000[st18].unk6C.unk0_5 == 0 ||
+ param0->unk000[st18].unk54_1 != 0 || (param0->unk2E4 & 1) != 0)
+ {
continue;
}
- if (param0->unk2E3 != 1) {
+ if (param0->unk2E3 != 1)
+ {
reg_G3_MTX_IDENTITY = 0;
}
u32 shift2;
- if (param0->unk260.attr.fmt == 2) {
+ if (param0->unk260.attr.fmt == 2)
+ {
shift2 = 1;
- } else {
+ }
+ else
+ {
shift2 = 0;
}
- reg_G3_TEXPLTT_BASE = (param0->unk2A4 + ((param0->unk000[st18].unk6C.unk0_0+3)<<5))>>(4-shift2);
-
+ reg_G3_TEXPLTT_BASE =
+ (param0->unk2A4 + ((param0->unk000[st18].unk6C.unk0_0 + 3) << 5)) >> (4 - shift2);
-
- if (param0->unk000[st18].unk6C.unk0_4 != 0) {
- arg3 = (param0->unk000[st18].unk34*64)>>8;
- arg4 = (param0->unk000[st18].unk36*16)>>8;
- } else {
+ if (param0->unk000[st18].unk6C.unk0_4 != 0)
+ {
+ arg3 = (param0->unk000[st18].unk34 * 64) >> 8;
+ arg4 = (param0->unk000[st18].unk36 * 16) >> 8;
+ }
+ else
+ {
arg3 = 64;
arg4 = 16;
}
- if (param0->unk000[st18].unk6C.unk0_2 != 0) {
- param0->unk000[st18].unk6C.unk4 = param0->unk000[st18].unk24+ param0->unk000[st18].unk2C + param0->unk000[st18].unk6C.unk8;
+ if (param0->unk000[st18].unk6C.unk0_2 != 0)
+ {
+ param0->unk000[st18].unk6C.unk4 = param0->unk000[st18].unk24 +
+ param0->unk000[st18].unk2C +
+ param0->unk000[st18].unk6C.unk8;
}
- if (param0->unk000[st18].unk6C.unk0_3 != 0) {
- param0->unk000[st18].unk6C.unk6 = param0->unk000[st18].unk26 + param0->unk000[st18].unk2E + param0->unk000[st18].unk6C.unka;
+ if (param0->unk000[st18].unk6C.unk0_3 != 0)
+ {
+ param0->unk000[st18].unk6C.unk6 = param0->unk000[st18].unk26 +
+ param0->unk000[st18].unk2E +
+ param0->unk000[st18].unk6C.unka;
}
-
- NNS_G2dDrawSpriteFast(
- param0->unk000[st18].unk6C.unk4 - (arg3/2),
- param0->unk000[st18].unk6C.unk4 - (arg4/2),
+ NNS_G2dDrawSpriteFast(param0->unk000[st18].unk6C.unk4 - (arg3 / 2),
+ param0->unk000[st18].unk6C.unk4 - (arg4 / 2),
0xFFFFFC18,
arg3,
arg4,
UNK_020ECBD0[param0->unk000[st18].unk6C.unk0_5][0],
UNK_020ECBD0[param0->unk000[st18].unk6C.unk0_5][1],
UNK_020ECBD0[param0->unk000[st18].unk6C.unk0_5][2],
- UNK_020ECBD0[param0->unk000[st18].unk6C.unk0_5][3]
- );
-
+ UNK_020ECBD0[param0->unk000[st18].unk6C.unk0_5][3]);
}
-
reg_G3_MTX_POP = 1;
}
#else
-asm void FUN_02006ED4(struct UnkStruct1 *param0) {
+asm void FUN_02006ED4(struct UnkStruct1 *param0)
+{
// clang-format off
push {r3-r7, lr}
sub sp, #0x20
@@ -965,50 +1421,60 @@ _020072D6:
}
#endif
-
-
-THUMB_FUNC void FUN_020072E8(struct UnkStruct1 *param0) {
+THUMB_FUNC void FUN_020072E8(struct UnkStruct1 *param0)
+{
FreeToHeap(param0->unk2AC);
FreeToHeap(param0->unk2B0);
FreeToHeap(param0->unk2B4);
FreeToHeap(param0);
}
-
-THUMB_FUNC void FUN_02007314(struct UnkStruct2 *param0) {
+THUMB_FUNC void FUN_02007314(struct UnkStruct2 *param0)
+{
param0->unk59 = 0;
- for (s32 i = 0; i < 10; i++) {
+ for (s32 i = 0; i < 10; i++)
+ {
param0->unk5C[i] = 0;
}
- if (param0->unk84[param0->unk59].unk0 == -1) {
+ if (param0->unk84[param0->unk59].unk0 == -1)
+ {
param0->unk5B = 0;
return;
}
param0->unk58 = 1;
- param0->unk5B = param0->unk84[param0->unk59].unk0;
+ param0->unk5B = (u8)param0->unk84[param0->unk59].unk0;
param0->unk5A = param0->unk84[param0->unk59].unk1;
-
}
-
-THUMB_FUNC void FUN_0200737C(struct UnkStruct2 *param0, struct UnkStruct2_sub *param1) {
- MI_CpuCopy8(param1, param0->unk84, sizeof(struct UnkStruct2_sub)*10);
+THUMB_FUNC void FUN_0200737C(struct UnkStruct2 *param0, struct UnkStruct2_sub *param1)
+{
+ MI_CpuCopy8(param1, param0->unk84, sizeof(struct UnkStruct2_sub) * 10);
}
-THUMB_FUNC BOOL FUN_02007390(struct UnkStruct2 *param0) {
- if (param0->unk58 != 0) {
+THUMB_FUNC BOOL FUN_02007390(struct UnkStruct2 *param0)
+{
+ if (param0->unk58 != 0)
+ {
return TRUE;
}
return FALSE;
}
-extern u32 FUN_020073E8(struct UnkStruct1 *param0, struct UnkStruct63_021DB49C *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6, u32 param7, u32 param8);
-
-THUMB_FUNC u32 FUN_020073A0(struct UnkStruct1 *param0, struct UnkStruct63_021DB49C *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7) {
+THUMB_FUNC struct UnkStruct2 *FUN_020073A0(struct UnkStruct1 *param0,
+ struct UnkStruct63_021DB49C *param1,
+ u32 param2,
+ u32 param3,
+ u32 param4,
+ u32 param5,
+ const void *param6,
+ void (*param7)(struct UnkStruct2 *, void *))
+{
s32 i;
- for (i = 0; i < 4; i++) {
- if (param0->unk000[i].unk00_0 == 0) {
+ for (i = 0; i < 4; i++)
+ {
+ if (param0->unk000[i].unk00_0 == 0)
+ {
break;
}
}
@@ -1017,8 +1483,16 @@ THUMB_FUNC u32 FUN_020073A0(struct UnkStruct1 *param0, struct UnkStruct63_021DB4
return FUN_020073E8(param0, param1, param2, param3, param4, param5, i, param6, param7);
}
-
-THUMB_FUNC u32 FUN_020073E8(struct UnkStruct1 *param0, struct UnkStruct63_021DB49C *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6, u32 param7, u32 param8) {
+THUMB_FUNC struct UnkStruct2 *FUN_020073E8(struct UnkStruct1 *param0,
+ struct UnkStruct63_021DB49C *param1,
+ u32 param2,
+ u32 param3,
+ u32 param4,
+ u32 param5,
+ s32 param6,
+ const void *param7,
+ void (*param8)(struct UnkStruct2 *, void *))
+{
GF_ASSERT(param0->unk000[param6].unk00_0 == 0);
MIi_CpuClearFast(0, &param0->unk000[param6], sizeof(struct UnkStruct2));
@@ -1048,42 +1522,45 @@ THUMB_FUNC u32 FUN_020073E8(struct UnkStruct1 *param0, struct UnkStruct63_021DB
param0->unk000[param6].unk6C.unk0_3 = 1;
param0->unk000[param6].unk6C.unk0_4 = 1;
- if (param7 != 0) {
+ if (param7 != NULL)
+ {
MI_CpuCopy8(param7, param0->unk000[param6].unk84, 0x14);
}
return &param0->unk000[param6];
}
-
-THUMB_FUNC void FUN_02007534(struct UnkStruct2 *param0) {
+THUMB_FUNC void FUN_02007534(struct UnkStruct2 *param0)
+{
param0->unk00_0 = 0;
}
-
-THUMB_FUNC void FUN_02007540(struct UnkStruct1 *param0) {
- for (s32 i = 0; i < 4; i++) {
+THUMB_FUNC void FUN_02007540(struct UnkStruct1 *param0)
+{
+ for (s32 i = 0; i < 4; i++)
+ {
FUN_02007534(&param0->unk000[i]);
}
}
-
-THUMB_FUNC void FUN_02007558(struct UnkStruct2 *param0, u32 param1, u32 param2) {
- switch (param1) {
+THUMB_FUNC void FUN_02007558(struct UnkStruct2 *param0, u32 param1, u32 param2)
+{
+ switch (param1)
+ {
case 0:
- param0->unk24 = param2;
+ param0->unk24 = (s16)param2;
break;
case 1:
- param0->unk26 = param2;
+ param0->unk26 = (s16)param2;
break;
case 2:
param0->unk28 = param2;
break;
case 3:
- param0->unk2C = param2;
+ param0->unk2C = (s16)param2;
break;
case 4:
- param0->unk2E = param2;
+ param0->unk2E = (s16)param2;
break;
case 5:
param0->unk30 = param2;
@@ -1092,52 +1569,52 @@ THUMB_FUNC void FUN_02007558(struct UnkStruct2 *param0, u32 param1, u32 param2)
param0->unk54_0 = param2;
break;
case 7:
- param0->unk38 = param2;
+ param0->unk38 = (u16)param2;
break;
case 8:
- param0->unk3A = param2;
+ param0->unk3A = (u16)param2;
break;
case 9:
- param0->unk3C = param2;
+ param0->unk3C = (u16)param2;
break;
case 10:
- param0->unk40 = param2;
+ param0->unk40 = (s16)param2;
break;
case 11:
- param0->unk42 = param2;
+ param0->unk42 = (s16)param2;
break;
case 12:
- param0->unk34 = param2;
+ param0->unk34 = (s16)param2;
break;
case 13:
- param0->unk36 = param2;
+ param0->unk36 = (s16)param2;
break;
case 14:
param0->unk54_1 = param2;
break;
case 15:
- param0->unk44 = param2;
+ param0->unk44 = (u8)param2;
break;
case 16:
- param0->unk45 = param2;
+ param0->unk45 = (u8)param2;
break;
case 17:
- param0->unk46 = param2;
+ param0->unk46 = (u8)param2;
break;
case 18:
- param0->unk47 = param2;
+ param0->unk47 = (u8)param2;
break;
case 19:
- param0->unk6C.unk4 = param2;
+ param0->unk6C.unk4 = (s16)param2;
break;
case 20:
- param0->unk6C.unk6 = param2;
+ param0->unk6C.unk6 = (s16)param2;
break;
case 21:
- param0->unk6C.unk8 = param2;
+ param0->unk6C.unk8 = (s16)param2;
break;
case 22:
- param0->unk6C.unka = param2;
+ param0->unk6C.unka = (s16)param2;
break;
case 23:
param0->unk54_2 = param2;
@@ -1169,15 +1646,15 @@ THUMB_FUNC void FUN_02007558(struct UnkStruct2 *param0, u32 param1, u32 param2)
param0->unk00_8 = 1;
break;
case 32:
- param0->unk48 = param2;
+ param0->unk48 = (u8)param2;
param0->unk00_8 = 1;
break;
case 33:
- param0->unk49 = param2;
+ param0->unk49 = (u8)param2;
param0->unk00_8 = 1;
break;
case 34:
- param0->unk4A = param2;
+ param0->unk4A = (u8)param2;
break;
case 35:
param0->unk54_9 = param2;
@@ -1191,175 +1668,175 @@ THUMB_FUNC void FUN_02007558(struct UnkStruct2 *param0, u32 param1, u32 param2)
param0->unk54_B = param2;
break;
case 38:
- param0->unk5B = param2;
+ param0->unk5B = (u8)param2;
break;
case 40:
param0->unk54_D = param2;
param0->unk00_7 = 1;
break;
case 41:
- param0->unk6C.unk2 = param2;
+ param0->unk6C.unk2 = (s8)param2;
break;
case 42:
- param0->unk6C.unk0_0 = param2;
+ param0->unk6C.unk0_0 = (u16)param2;
param0->unk00_8 = 1;
break;
case 43:
- param0->unk6C.unk0_2 = param2;
+ param0->unk6C.unk0_2 = (u16)param2;
break;
case 44:
- param0->unk6C.unk0_3 = param2;
+ param0->unk6C.unk0_3 = (u16)param2;
break;
case 45:
- param0->unk6C.unk0_4 = param2;
+ param0->unk6C.unk0_4 = (u16)param2;
break;
case 46:
- param0->unk6C.unk0_5 = param2;
+ param0->unk6C.unk0_5 = (u16)param2;
break;
}
}
-
-THUMB_FUNC u32 FUN_0200782C(struct UnkStruct2 *param0, u32 param1) {
- switch (param1) {
+THUMB_FUNC u32 FUN_0200782C(struct UnkStruct2 *param0, u32 param1)
+{
+ switch (param1)
+ {
case 0:
return param0->unk24;
case 1:
return param0->unk26;
-
+
case 2:
return param0->unk28;
-
+
case 3:
return param0->unk2C;
-
+
case 4:
return param0->unk2E;
-
+
case 5:
return param0->unk30;
-
+
case 6:
return param0->unk54_0;
-
+
case 7:
return param0->unk38;
-
+
case 8:
return param0->unk3A;
-
+
case 9:
return param0->unk3C;
-
+
case 10:
return param0->unk40;
-
+
case 11:
return param0->unk42;
-
+
case 12:
return param0->unk34;
-
+
case 13:
return param0->unk36;
-
+
case 14:
return param0->unk54_1;
-
+
case 15:
return param0->unk44;
-
+
case 16:
return param0->unk45;
-
+
case 17:
return param0->unk46;
-
+
case 18:
return param0->unk47;
-
+
case 19:
return param0->unk6C.unk4;
-
+
case 20:
return param0->unk6C.unk6;
-
+
case 21:
return param0->unk6C.unk8;
-
+
case 22:
return param0->unk6C.unka;
-
+
case 23:
return param0->unk54_2;
-
+
case 24:
return param0->unk50_0;
-
+
case 25:
return param0->unk50_5;
-
+
case 26:
return param0->unk50_a;
-
+
case 27:
return param0->unk50_f;
-
+
case 28:
return param0->unk50_14;
-
+
case 29:
return param0->unk50_19;
-
+
case 30:
return param0->unk54_C;
-
+
case 31:
return param0->unk4C;
-
+
case 32:
return param0->unk48;
-
+
case 33:
return param0->unk49;
-
+
case 34:
return param0->unk4A;
-
+
case 35:
return param0->unk54_9;
-
+
case 36:
return param0->unk54_A;
-
+
case 37:
return param0->unk54_B;
-
+
case 38:
return param0->unk5B;
-
+
case 40:
return param0->unk54_D;
-
+
case 41:
return param0->unk6C.unk2;
-
+
case 42:
return param0->unk6C.unk0_0;
-
+
case 43:
return param0->unk6C.unk0_2;
-
+
case 44:
return param0->unk6C.unk0_3;
-
+
case 45:
return param0->unk6C.unk0_4;
-
+
case 46:
return param0->unk6C.unk0_5;
-
}
GF_AssertFail();
@@ -1367,9 +1844,10 @@ THUMB_FUNC u32 FUN_0200782C(struct UnkStruct2 *param0, u32 param1) {
return 0;
}
-
-THUMB_FUNC void FUN_020079E0(struct UnkStruct2 *param0, u32 param1, u32 param2) {
- switch (param1) {
+THUMB_FUNC void FUN_020079E0(struct UnkStruct2 *param0, u32 param1, u32 param2)
+{
+ switch (param1)
+ {
case 0:
param0->unk24 += param2;
break;
@@ -1519,29 +1997,34 @@ THUMB_FUNC void FUN_020079E0(struct UnkStruct2 *param0, u32 param1, u32 param2)
}
}
-
-THUMB_FUNC void FUN_02007E40(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) {
+THUMB_FUNC void FUN_02007E40(
+ struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4)
+{
param0->unk54_1 = 1;
- param0->unk44 = param1;
- param0->unk45 = param2;
- param0->unk46 = param3;
- param0->unk47 = param4;
+ param0->unk44 = (u8)param1;
+ param0->unk45 = (u8)param2;
+ param0->unk46 = (u8)param3;
+ param0->unk47 = (u8)param4;
}
-
-THUMB_FUNC void FUN_02007E68(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) {
+THUMB_FUNC void FUN_02007E68(
+ struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4)
+{
param0->unk54_C = 1;
- param0->unk48 = param1;
- param0->unk49 = param2;
+ param0->unk48 = (u8)param1;
+ param0->unk49 = (u8)param2;
param0->unk4A = 0;
- param0->unk4B = param3;
+ param0->unk4B = (u8)param3;
param0->unk4C = param4;
}
-
-THUMB_FUNC void FUN_02007E98(struct UnkStruct1 *param0, u32 param1, u32 param2, u32 param3, u32 param4) {
- for (s32 i = 0; i < 4; i++) {
- if (param0->unk000[i].unk00_0 == 0) {
+THUMB_FUNC void FUN_02007E98(
+ struct UnkStruct1 *param0, u32 param1, u32 param2, u32 param3, u32 param4)
+{
+ for (s32 i = 0; i < 4; i++)
+ {
+ if (param0->unk000[i].unk00_0 == 0)
+ {
continue;
}
@@ -1554,8 +2037,8 @@ THUMB_FUNC void FUN_02007E98(struct UnkStruct1 *param0, u32 param1, u32 param2,
}
}
-
-THUMB_FUNC void FUN_02007EEC(struct UnkStruct2 *param0) {
+THUMB_FUNC void FUN_02007EEC(struct UnkStruct2 *param0)
+{
param0->unk54_C = 0;
param0->unk48 = 0;
param0->unk49 = 0;
@@ -1565,40 +2048,46 @@ THUMB_FUNC void FUN_02007EEC(struct UnkStruct2 *param0) {
param0->unk00_8 = 1;
}
-
-
-THUMB_FUNC BOOL FUN_02007F20(struct UnkStruct2 *param0) {
+THUMB_FUNC BOOL FUN_02007F20(struct UnkStruct2 *param0)
+{
return param0->unk54_C == 1;
}
-
-THUMB_FUNC void FUN_02007F34(struct UnkStruct2 *param0, s32 param1) {
- param0->unk2E = (40-param1) - (((40-param1)*param0->unk36)>>8);
+THUMB_FUNC void FUN_02007F34(struct UnkStruct2 *param0, s32 param1)
+{
+ param0->unk2E = (s16)((40 - param1) - (((40 - param1) * param0->unk36) >> 8));
}
-
#ifdef NONMATCHING
-THUMB_FUNC void FUN_02007F48(struct UnkStruct2 *param0) {
+THUMB_FUNC void FUN_02007F48(struct UnkStruct2 *param0)
+{
u8 *r6 = &param0->unk59;
- if (param0->unk58 == 0) {
+ if (param0->unk58 == 0)
+ {
return;
}
- if (param0->unk5A == 0) {
+ if (param0->unk5A == 0)
+ {
(*r6)++;
- while (param0->unk84[*r6].unk0 < -1) {
+ while (param0->unk84[*r6].unk0 < -1)
+ {
param0->unk5C[*r6]++;
- if (param0->unk84[*r6].unk1 == param0->unk5C[*r6] || param0->unk84[*r6].unk1 == 0) {
+ if (param0->unk84[*r6].unk1 == param0->unk5C[*r6] || param0->unk84[*r6].unk1 == 0)
+ {
param0->unk5C[*r6] = 0;
r6++;
- } else {
- *r6 = -2-param0->unk84[*r6].unk0;
+ }
+ else
+ {
+ *r6 = -2 - param0->unk84[*r6].unk0;
}
}
- if (param0->unk84[*r6].unk0 == -1 || *r6 >= 10) {
+ if (param0->unk84[*r6].unk0 == -1 || *r6 >= 10)
+ {
param0->unk5B = 0;
param0->unk58 = 0;
@@ -1607,13 +2096,15 @@ THUMB_FUNC void FUN_02007F48(struct UnkStruct2 *param0) {
param0->unk5B = param0->unk84[*r6].unk0;
param0->unk5A = param0->unk84[*r6].unk1;
-
- } else {
+ }
+ else
+ {
param0->unk5A--;
}
}
#else
-asm void FUN_02007F48(struct UnkStruct2 *param0) {
+asm void FUN_02007F48(struct UnkStruct2 *param0)
+{
// clang-format off
push {r4-r7}
add r1, r0, #0x0
@@ -1727,58 +2218,72 @@ _0200800A:
}
#endif
-
-THUMB_FUNC void FUN_02008010(u8 *param0, struct UnkStruct2_sub *param1) {
+THUMB_FUNC void FUN_02008010(u8 *param0, struct UnkStruct2_sub *param1)
+{
param0[0] = 1;
param0[2] = 0;
- param0[1] = param1->unk0;
+ param0[1] = (u8)param1->unk0;
param0[3] = param1->unk1;
- ((u32 *)param0)[4] = param1;
+ ((struct UnkStruct2_sub **)param0)[4] = param1;
- for (s32 i= 0; i<10;i++) {
- param0[i+4]=0;
+ for (s32 i = 0; i < 10; i++)
+ {
+ param0[i + 4] = 0;
}
}
#ifdef NONMATCHING
-THUMB_FUNC s32 FUN_02008030(u8 *param0) {
- if (*param0 != 0) {
- u8 *r3 = param0+2;
+THUMB_FUNC s32 FUN_02008030(u8 *param0)
+{
+ if (*param0 != 0)
+ {
+ u8 *r3 = param0 + 2;
struct UnkStruct2_sub *r4 = ((struct UnkStruct2_sub **)param0)[4];
- if (*param0 != 0) {
- if (param0[3] == 0) {
+ if (*param0 != 0)
+ {
+ if (param0[3] == 0)
+ {
(*r3)++;
- while (r4[*r3].unk0 < -1) {
- param0[*r3+4]++;
- if (r4[*r3].unk1 == param0[*r3+4] || r4[*r3].unk1 == 0) {
- param0[*r3+4] = 0;
+ while (r4[*r3].unk0 < -1)
+ {
+ param0[*r3 + 4]++;
+ if (r4[*r3].unk1 == param0[*r3 + 4] || r4[*r3].unk1 == 0)
+ {
+ param0[*r3 + 4] = 0;
r3++;
- } else {
+ }
+ else
+ {
*r3 = -2 - r4[*r3].unk0;
}
}
-
- if (r4[*r3].unk0 == -1 || *r3 >= 10) {
+
+ if (r4[*r3].unk0 == -1 || *r3 >= 10)
+ {
param0[0] = 0;
param0[1] = 0;
- } else {
+ }
+ else
+ {
param0[1] = r4[*r3].unk0;
param0[3] = r4[*r3].unk1;
}
- } else {
+ }
+ else
+ {
param0[3]--;
}
}
return param0[1];
-
}
return -1;
}
#else
-asm s32 FUN_02008030(u8 *param0) {
+asm s32 FUN_02008030(u8 *param0)
+{
// clang-format off
push {r4-r7}
ldrb r1, [r0, #0x0]
@@ -1873,45 +2378,47 @@ _020080C6:
}
#endif
-
-THUMB_FUNC void FUN_020080D0(struct UnkStruct2 *param0) {
+THUMB_FUNC void FUN_020080D0(struct UnkStruct2 *param0)
+{
param0->unk00_7 = 1;
param0->unk00_8 = 1;
}
-
-THUMB_FUNC void FUN_020080E0(struct UnkStruct2 *param0) {
+THUMB_FUNC void FUN_020080E0(struct UnkStruct2 *param0)
+{
param0->unk14 = param0->unk04;
param0->unk78 = param0->unk6C;
}
-
-THUMB_FUNC void FUN_0200813C(struct UnkStruct2 *param0) {
+THUMB_FUNC void FUN_0200813C(struct UnkStruct2 *param0)
+{
param0->unk04 = param0->unk14;
param0->unk6C = param0->unk78;
param0->unk00_7 = 1;
param0->unk00_8 = 1;
}
-
-THUMB_FUNC void FUN_020081A8(struct UnkStruct1 *param0, u32 param1, u32 param2) {
+THUMB_FUNC void FUN_020081A8(struct UnkStruct1 *param0, u32 param1, u32 param2)
+{
param0->unk29C = param1;
param0->unk2A0 = param2;
}
-
-THUMB_FUNC void FUN_020081B4(struct UnkStruct1 *param0, u32 param1, u32 param2) {
+THUMB_FUNC void FUN_020081B4(struct UnkStruct1 *param0, u32 param1, u32 param2)
+{
param0->unk2A4 = param1;
param0->unk2A8 = param2;
}
-
-THUMB_FUNC u32 FUN_020081C0(u32 param0) {
- return param0+4;
+THUMB_FUNC u32 FUN_020081C0(u32 param0)
+{
+ return param0 + 4;
}
-THUMB_FUNC void FUN_020081C4(struct UnkStruct1 *param0) {
- if (param0->unk2E1 != 0) {
+THUMB_FUNC void FUN_020081C4(struct UnkStruct1 *param0)
+{
+ if (param0->unk2E1 != 0)
+ {
param0->unk2E1 = 0;
NNS_G2dInitImageProxy(&param0->unk260);
@@ -1920,48 +2427,46 @@ THUMB_FUNC void FUN_020081C4(struct UnkStruct1 *param0) {
param0->unk2B8.szByte = param0->unk2A0;
param0->unk2B8.pRawData = param0->unk2AC;
- NNS_G2dLoadImage2DMapping(&param0->unk2B8, param0->unk29C, 0, &param0->unk260);
-
+ NNS_G2dLoadImage2DMapping(
+ &param0->unk2B8, param0->unk29C, NNS_G2D_VRAM_TYPE_3DMAIN, &param0->unk260);
}
- if (param0->unk2E2 != 0) {
+ if (param0->unk2E2 != 0)
+ {
param0->unk2E2 = 0;
NNS_G2dInitImagePaletteProxy(&param0->unk284);
param0->unk2D0.szByte = param0->unk2A8;
param0->unk2D0.pRawData = param0->unk2B0;
- NNS_G2dLoadPalette(&param0->unk2D0, param0->unk2A4, 0, &param0->unk284);
-
+ NNS_G2dLoadPalette(
+ &param0->unk2D0, param0->unk2A4, NNS_G2D_VRAM_TYPE_3DMAIN, &param0->unk284);
}
}
-
-THUMB_FUNC void FUN_0200825C(struct UnkStruct1 *param0, u8 param1) {
+THUMB_FUNC void FUN_0200825C(struct UnkStruct1 *param0, u8 param1)
+{
param0->unk2E3 = param1;
}
-
-THUMB_FUNC BOOL FUN_02008268(struct UnkStruct2 *param0) {
+THUMB_FUNC BOOL FUN_02008268(struct UnkStruct2 *param0)
+{
GF_ASSERT(param0);
return param0->unk00_0 != 0;
}
-
-THUMB_FUNC void FUN_02008284(struct UnkStruct1 *param0, u32 param1) {
+THUMB_FUNC void FUN_02008284(struct UnkStruct1 *param0, u32 param1)
+{
param0->unk2E4 |= param1;
}
-
-THUMB_FUNC void FUN_02008290(struct UnkStruct1 *param0, u32 param1) {
- param0->unk2E4 &= (param1^~0);
+THUMB_FUNC void FUN_02008290(struct UnkStruct1 *param0, u32 param1)
+{
+ param0->unk2E4 &= (param1 ^ ~0);
}
-
-extern void FUN_020088EC(struct UnkStruct2 *, u8 *);
-extern u8 FUN_020088D8(u8);
-
-THUMB_FUNC void FUN_020082A8(struct UnkStruct1 *param0) {
+THUMB_FUNC void FUN_020082A8(struct UnkStruct1 *param0)
+{
NNSG2dCharacterData *st58;
int st54;
int r4;
@@ -1970,11 +2475,15 @@ THUMB_FUNC void FUN_020082A8(struct UnkStruct1 *param0) {
void *st4c;
u8 st48 = 0;
- for (st54 = 0; st54 < 4; st54++) {
- if (param0->unk000[st54].unk00_0 != 0 && param0->unk000[st54].unk00_7 != 0) {
+ for (st54 = 0; st54 < 4; st54++)
+ {
+ if (param0->unk000[st54].unk00_0 != 0 && param0->unk000[st54].unk00_7 != 0)
+ {
param0->unk000[st54].unk00_7 = 0;
st48 = 1;
- st4c = AllocAndReadWholeNarcMemberByIdPair(param0->unk000[st54].unk04.field_00, param0->unk000[st54].unk04.field_02, param0->unk298);
+ st4c = AllocAndReadWholeNarcMemberByIdPair((NarcId)param0->unk000[st54].unk04.field_00,
+ param0->unk000[st54].unk04.field_02,
+ param0->unk298);
NNS_G2dGetUnpackedCharacterData(st4c, &st58);
param0->unk2B8.pixelFmt = st58->pixelFmt;
param0->unk2B8.mapingType = st58->mapingType;
@@ -1984,82 +2493,164 @@ THUMB_FUNC void FUN_020082A8(struct UnkStruct1 *param0) {
FUN_02008A74(st50);
FUN_020088EC(&param0->unk000[st54], st50);
- if (st54 == 3) {
- for (st14 = 0; st14 < 0x50; st14++) {
- for (r4 = 0; r4 < 0x50; r4++) {
- if (r4 < 0x28) {
- if (param0->unk000[st54].unk54_9 != 0 && param0->unk000[st54].unk54_A != 0) {
- param0->unk2AC[st14*0x80+r4+0x50] = FUN_020088D8(st50[(0x4f-st14)*0x50+(0x27-r4)]);
- } else if (param0->unk000[st54].unk54_9 != 0) {
- param0->unk2AC[st14*0x80+r4+0x50] = FUN_020088D8(st50[st14*0x50+(0x27-r4)]);
- } else if (param0->unk000[st54].unk54_A != 0) {
- param0->unk2AC[st14*0x80+r4+0x50] = st50[(0x4f-st14)*0x50+r4];
- } else if (param0->unk000[st54].unk54_D != 0) {
- if (st14%(param0->unk000[st54].unk54_D*2) != 0) {
- param0->unk2AC[st14*0x80+r4+0x50] = param0->unk2AC[(st14-1)*0x80+r4+0x50];
- } else if (r4%param0->unk000[st54].unk54_D != 0) {
- param0->unk2AC[st14*0x80+r4+0x50] = param0->unk2AC[st14*0x80+r4+0x4f];
- } else {
- param0->unk2AC[st14*0x80+r4+0x50] = ((st50[st14*0x50+r4]&0xf) | ((st50[st14*0x50+r4]&0xf)<<4));
+ if (st54 == 3)
+ {
+ for (st14 = 0; st14 < 0x50; st14++)
+ {
+ for (r4 = 0; r4 < 0x50; r4++)
+ {
+ if (r4 < 0x28)
+ {
+ if (param0->unk000[st54].unk54_9 != 0 &&
+ param0->unk000[st54].unk54_A != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x50] =
+ FUN_020088D8(st50[(0x4f - st14) * 0x50 + (0x27 - r4)]);
+ }
+ else if (param0->unk000[st54].unk54_9 != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x50] =
+ FUN_020088D8(st50[st14 * 0x50 + (0x27 - r4)]);
+ }
+ else if (param0->unk000[st54].unk54_A != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x50] =
+ st50[(0x4f - st14) * 0x50 + r4];
+ }
+ else if (param0->unk000[st54].unk54_D != 0)
+ {
+ if (st14 % (param0->unk000[st54].unk54_D * 2) != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x50] =
+ param0->unk2AC[(st14 - 1) * 0x80 + r4 + 0x50];
+ }
+ else if (r4 % param0->unk000[st54].unk54_D != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x50] =
+ param0->unk2AC[st14 * 0x80 + r4 + 0x4f];
+ }
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x50] =
+ (u8)((st50[st14 * 0x50 + r4] & 0xf) |
+ ((st50[st14 * 0x50 + r4] & 0xf) << 4));
}
- } else {
- param0->unk2AC[st14*0x80+r4+0x50] = st50[st14*0x50+r4];
}
- } else {
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x50] = st50[st14 * 0x50 + r4];
+ }
+ }
+ else
+ {
//_02008442
- if (param0->unk000[st54].unk54_9 != 0 && param0->unk000[st54].unk54_A != 0) {
- param0->unk2AC[st14*0x80+r4+0x2828] = FUN_020088D8(st50[(0x4f-st14)*0x50+(0x4f-(r4-0x28))]);
- } else if (param0->unk000[st54].unk54_9 != 0) {
- param0->unk2AC[st14*0x80+r4+0x2828] = FUN_020088D8(st50[st14*0x50+(0x4f-(r4-0x28))]);
- } else if (param0->unk000[st54].unk54_A != 0) {
- param0->unk2AC[st14*0x80+r4+0x2828] = st50[(0x4f-st14)*0x50+r4];
- } else if (param0->unk000[st54].unk54_D != 0) {
- if (st14%(param0->unk000[st54].unk54_D*2) != 0) {
- param0->unk2AC[st14*0x80+r4+0x2828] = param0->unk2AC[(st14-1)*0x80+r4+0x2828];
- } else if (r4%param0->unk000[st54].unk54_D != 0) {
- param0->unk2AC[st14*0x80+r4+0x2828] = param0->unk2AC[st14*0x80+(r4-1)+0x2828];
- } else {
- param0->unk2AC[st14*0x80+r4+0x2828] = ((st50[st14*0x50+r4]&0xf) | ((st50[st14*0x50+r4]&0xf)<<4));
+ if (param0->unk000[st54].unk54_9 != 0 &&
+ param0->unk000[st54].unk54_A != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x2828] =
+ FUN_020088D8(st50[(0x4f - st14) * 0x50 + (0x4f - (r4 - 0x28))]);
+ }
+ else if (param0->unk000[st54].unk54_9 != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x2828] =
+ FUN_020088D8(st50[st14 * 0x50 + (0x4f - (r4 - 0x28))]);
+ }
+ else if (param0->unk000[st54].unk54_A != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x2828] =
+ st50[(0x4f - st14) * 0x50 + r4];
+ }
+ else if (param0->unk000[st54].unk54_D != 0)
+ {
+ if (st14 % (param0->unk000[st54].unk54_D * 2) != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x2828] =
+ param0->unk2AC[(st14 - 1) * 0x80 + r4 + 0x2828];
+ }
+ else if (r4 % param0->unk000[st54].unk54_D != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x2828] =
+ param0->unk2AC[st14 * 0x80 + (r4 - 1) + 0x2828];
+ }
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x2828] =
+ (u8)((st50[st14 * 0x50 + r4] & 0xf) |
+ ((st50[st14 * 0x50 + r4] & 0xf) << 4));
}
- } else {
- param0->unk2AC[st14*0x80+r4+0x2828] = st50[st14*0x50+r4];
+ }
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + 0x2828] = st50[st14 * 0x50 + r4];
}
}
}
}
-
- } else {
+ }
+ else
+ {
//_02008554
- for (st14 = 0; st14 < 0x50; st14++) {
- for (r4 = 0; r4 < 0x50; r4++) {
- if (param0->unk000[st54].unk54_9 != 0 && param0->unk000[st54].unk54_A != 0) {
- if (r4 < 0x28) {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = FUN_020088D8(st50[(0x4f-st14)*0x50+(0x27-r4)]);
- } else {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = FUN_020088D8(st50[(0x4f-st14)*0x50+(0x4f-(r4-0x28))]);
+ for (st14 = 0; st14 < 0x50; st14++)
+ {
+ for (r4 = 0; r4 < 0x50; r4++)
+ {
+ if (param0->unk000[st54].unk54_9 != 0 && param0->unk000[st54].unk54_A != 0)
+ {
+ if (r4 < 0x28)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ FUN_020088D8(st50[(0x4f - st14) * 0x50 + (0x27 - r4)]);
+ }
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ FUN_020088D8(st50[(0x4f - st14) * 0x50 + (0x4f - (r4 - 0x28))]);
+ }
+ }
+ else if (param0->unk000[st54].unk54_9 != 0)
+ {
+ if (r4 < 0x28)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ FUN_020088D8(st50[st14 * 0x50 + (0x27 - r4)]);
+ }
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ FUN_020088D8(st50[st14 * 0x50 + (0x4f - (r4 - 0x28))]);
+ }
+ }
+ else if (param0->unk000[st54].unk54_A != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ st50[(0x4f - st14) * 0x50 + r4];
+ }
+ else if (param0->unk000[st54].unk54_D != 0)
+ {
+ if (st14 % (param0->unk000[st54].unk54_D * 2) != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ param0->unk2AC[(st14 - 1) * 0x80 + r4 + st54 * 0x2800];
}
- } else if (param0->unk000[st54].unk54_9 != 0) {
- if (r4 < 0x28) {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = FUN_020088D8(st50[st14*0x50+(0x27-r4)]);
- } else {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = FUN_020088D8(st50[st14*0x50+(0x4f-(r4-0x28))]);
- }
- } else if (param0->unk000[st54].unk54_A != 0) {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = st50[(0x4f-st14)*0x50+r4];
- } else if (param0->unk000[st54].unk54_D != 0) {
- if (st14%(param0->unk000[st54].unk54_D*2) != 0) {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = param0->unk2AC[(st14-1)*0x80+r4+st54*0x2800];
- } else if (r4%(param0->unk000[st54].unk54_D) != 0) {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = param0->unk2AC[st14*0x80+(r4-1)+st54*0x2800];
- } else {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = ((st50[st14*0x50+r4]&0xf) | ((st50[st14*0x50+r4]&0xf)<<4));
+ else if (r4 % (param0->unk000[st54].unk54_D) != 0)
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ param0->unk2AC[st14 * 0x80 + (r4 - 1) + st54 * 0x2800];
}
- } else {
- param0->unk2AC[st14*0x80+r4+st54*0x2800] = st50[st14*0x50+r4];
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ (u8)((st50[st14 * 0x50 + r4] & 0xf) |
+ ((st50[st14 * 0x50 + r4] & 0xf) << 4));
+ }
+ }
+ else
+ {
+ param0->unk2AC[st14 * 0x80 + r4 + st54 * 0x2800] =
+ st50[st14 * 0x50 + r4];
}
}
}
-
}
FreeToHeap(st4c);
@@ -2070,86 +2661,108 @@ THUMB_FUNC void FUN_020082A8(struct UnkStruct1 *param0) {
param0->unk2E1 = st48;
}
-
-
-THUMB_FUNC void FUN_020086F4(struct UnkStruct1 *param0) {
+THUMB_FUNC void FUN_020086F4(struct UnkStruct1 *param0)
+{
NNSG2dPaletteData *st18;
int st14, r7;
u16 *r1;
void *st10;
u8 stc = 0;
-
- for (st14 = 0 ; st14 < 4; st14++) {
- if (param0->unk000[st14].unk00_0 != 0 && param0->unk000[st14].unk00_8 != 0) {
+ for (st14 = 0; st14 < 4; st14++)
+ {
+ if (param0->unk000[st14].unk00_0 != 0 && param0->unk000[st14].unk00_8 != 0)
+ {
param0->unk000[st14].unk00_8 = 0;
stc = 1;
- st10 = AllocAndReadWholeNarcMemberByIdPair(param0->unk000[st14].unk04.field_00, param0->unk000[st14].unk04.field_04, param0->unk298);
+ st10 = AllocAndReadWholeNarcMemberByIdPair((NarcId)param0->unk000[st14].unk04.field_00,
+ param0->unk000[st14].unk04.field_04,
+ param0->unk298);
NNS_G2dGetUnpackedPaletteData(st10, &st18);
param0->unk2D0.fmt = st18->fmt;
r1 = st18->pRawData;
- for (r7 = 0; r7 < 0x10; r7++) {
- param0->unk2B0[st14*0x10+r7] = r1[r7];
- param0->unk2B4[st14*0x10+r7] = r1[r7];
+ for (r7 = 0; r7 < 0x10; r7++)
+ {
+ param0->unk2B0[st14 * 0x10 + r7] = r1[r7];
+ param0->unk2B4[st14 * 0x10 + r7] = r1[r7];
}
FreeToHeap(st10);
- if (param0->unk000[st14].unk6C.unk0_0 != 0) {
- st10 = AllocAndReadWholeNarcMemberByIdPair(NARC_POKETOOL_POKEGRA_OTHERPOKE, NARC_otherpoke_narc_0212_NCLR, param0->unk298);
+ if (param0->unk000[st14].unk6C.unk0_0 != 0)
+ {
+ st10 = AllocAndReadWholeNarcMemberByIdPair(
+ NARC_POKETOOL_POKEGRA_OTHERPOKE, NARC_otherpoke_narc_0212_NCLR, param0->unk298);
NNS_G2dGetUnpackedPaletteData(st10, &st18);
r1 = st18->pRawData;
- for (r7 = 0; r7 < 0x10; r7++) {
- param0->unk2B0[(param0->unk000[st14].unk6C.unk0_0+3)*0x10 + r7] = r1[r7];
- param0->unk2B4[(param0->unk000[st14].unk6C.unk0_0+3)*0x10 + r7] = r1[r7];
+ for (r7 = 0; r7 < 0x10; r7++)
+ {
+ param0->unk2B0[(param0->unk000[st14].unk6C.unk0_0 + 3) * 0x10 + r7] = r1[r7];
+ param0->unk2B4[(param0->unk000[st14].unk6C.unk0_0 + 3) * 0x10 + r7] = r1[r7];
}
FreeToHeap(st10);
}
}
//_020087E0
- if (param0->unk000[st14].unk00_0 != 0 && param0->unk000[st14].unk54_C != 0) {
- if (param0->unk000[st14].unk4A == 0) {
+ if (param0->unk000[st14].unk00_0 != 0 && param0->unk000[st14].unk54_C != 0)
+ {
+ if (param0->unk000[st14].unk4A == 0)
+ {
stc = 1;
param0->unk000[st14].unk4A = param0->unk000[st14].unk4B;
- BlendPalette(param0->unk2B4+st14*0x10, param0->unk2B0+st14*0x10, 0x10, param0->unk000[st14].unk48, (u16)param0->unk000[st14].unk4C);
-
- if (param0->unk000[st14].unk6C.unk0_0 != 0) {
- BlendPalette(param0->unk2B4+(param0->unk000[st14].unk6C.unk0_0+3)*0x10, param0->unk2B0+(param0->unk000[st14].unk6C.unk0_0+3)*0x10, 0x10, param0->unk000[st14].unk48, (u16)param0->unk000[st14].unk4C);
+ BlendPalette(param0->unk2B4 + st14 * 0x10,
+ param0->unk2B0 + st14 * 0x10,
+ 0x10,
+ param0->unk000[st14].unk48,
+ (u16)param0->unk000[st14].unk4C);
+
+ if (param0->unk000[st14].unk6C.unk0_0 != 0)
+ {
+ BlendPalette(param0->unk2B4 + (param0->unk000[st14].unk6C.unk0_0 + 3) * 0x10,
+ param0->unk2B0 + (param0->unk000[st14].unk6C.unk0_0 + 3) * 0x10,
+ 0x10,
+ param0->unk000[st14].unk48,
+ (u16)param0->unk000[st14].unk4C);
}
- if (param0->unk000[st14].unk48 == param0->unk000[st14].unk49) {
+ if (param0->unk000[st14].unk48 == param0->unk000[st14].unk49)
+ {
param0->unk000[st14].unk54_C = 0;
- } else if (param0->unk000[st14].unk48 > param0->unk000[st14].unk49) {
+ }
+ else if (param0->unk000[st14].unk48 > param0->unk000[st14].unk49)
+ {
param0->unk000[st14].unk48--;
- } else {
+ }
+ else
+ {
param0->unk000[st14].unk48++;
}
- } else {
+ }
+ else
+ {
param0->unk000[st14].unk4A--;
}
}
}
param0->unk2E2 = stc;
-
}
-
-
-THUMB_FUNC u8 FUN_020088D8(u8 param0) {
- return ((u8)((param0&0xf0)>>4)) | ((u8)(param0<<4));
+THUMB_FUNC u8 FUN_020088D8(u8 param0)
+{
+ return (u8)(((u8)((param0 & 0xf0) >> 4)) | ((u8)(param0 << 4)));
}
-extern void FUN_02008904(u8 *param0, u32 param1, u32 param2);
-
-THUMB_FUNC void FUN_020088EC(struct UnkStruct2 *param0, u8 *param1) {
- if (param0->unk04.field_06 != 0) {
- FUN_02008904(param1, param0->unk04.field_0C,1);
+THUMB_FUNC void FUN_020088EC(struct UnkStruct2 *param0, u8 *param1)
+{
+ if (param0->unk04.field_06 != 0)
+ {
+ FUN_02008904(param1, param0->unk04.field_0C, 1);
}
}
-
-THUMB_FUNC void FUN_02008904(u8 *param0, u32 param1, u32 param2) {
+THUMB_FUNC void FUN_02008904(u8 *param0, u32 param1, u32 param2)
+{
struct UnkStruct4 *st10;
s32 i;
u32 r2;
@@ -2158,20 +2771,27 @@ THUMB_FUNC void FUN_02008904(u8 *param0, u32 param1, u32 param2) {
u8 r1;
u32 st0 = param1;
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < 4; i++)
+ {
st10 = UNK_02105AE8[i];
r1 = 0;
- while (st10[r1].unk0 != 0xff) {
- r0 = st10[r1].unk0+((param1&0xf) - 8);
- r4 = st10[r1].unk1+(((param1&0xf0)>>4)-8);
- r2 = r0/2 + r4*0x50;
- if ((r0&1) != 0) {
- if ((param0[r2]&0xf0) >= 0x10 && (param0[r2]&0xf0) <= 0x30) {
+ while (st10[r1].unk0 != 0xff)
+ {
+ r0 = (u8)(st10[r1].unk0 + ((param1 & 0xf) - 8));
+ r4 = (u8)(st10[r1].unk1 + (((param1 & 0xf0) >> 4) - 8));
+ r2 = (u32)(r0 / 2 + r4 * 0x50);
+ if ((r0 & 1) != 0)
+ {
+ if ((param0[r2] & 0xf0) >= 0x10 && (param0[r2] & 0xf0) <= 0x30)
+ {
param0[r2] += 0x50;
}
- } else {
- if ((param0[r2]&0xf) >= 1 && (param0[r2]&0xf) <= 3) {
- param0[r2]+= 5;
+ }
+ else
+ {
+ if ((param0[r2] & 0xf) >= 1 && (param0[r2] & 0xf) <= 3)
+ {
+ param0[r2] += 5;
}
}
@@ -2182,21 +2802,29 @@ THUMB_FUNC void FUN_02008904(u8 *param0, u32 param1, u32 param2) {
param1 = st0;
- if (param2 != 0) {
- for (i = 0; i < 4; i++) {
+ if (param2 != 0)
+ {
+ for (i = 0; i < 4; i++)
+ {
st10 = UNK_02105AE8[i];
r1 = 0;
- while (st10[r1].unk0 != 0xff) {
- r0 = st10[r1].unk0-14+((param1&0xf)-8)+0x50;
- r4 = st10[r1].unk1+(((param1&0xf0)>>4)-8);
- r2 = r0/2 + r4*0x50;
- if ((r0 &1) != 0) {
- if ((param0[r2]&0xf0) >= 0x10 && (param0[r2]&0xf0) <= 0x30) {
+ while (st10[r1].unk0 != 0xff)
+ {
+ r0 = (u8)(st10[r1].unk0 - 14 + ((param1 & 0xf) - 8) + 0x50);
+ r4 = (u8)(st10[r1].unk1 + (((param1 & 0xf0) >> 4) - 8));
+ r2 = (u32)(r0 / 2 + r4 * 0x50);
+ if ((r0 & 1) != 0)
+ {
+ if ((param0[r2] & 0xf0) >= 0x10 && (param0[r2] & 0xf0) <= 0x30)
+ {
param0[r2] += 0x50;
}
- } else {
- if ((param0[r2]&0xf) >= 1 && (param0[r2]&0xf) <= 3) {
- param0[r2]+= 5;
+ }
+ else
+ {
+ if ((param0[r2] & 0xf) >= 1 && (param0[r2] & 0xf) <= 3)
+ {
+ param0[r2] += 5;
}
}
r1++;
@@ -2206,18 +2834,18 @@ THUMB_FUNC void FUN_02008904(u8 *param0, u32 param1, u32 param2) {
}
}
+THUMB_FUNC u16 FUN_02008A54(u32 *param0)
+{
+ *param0 = (*param0) * 0x41C64E6D + 0x6073;
-
-THUMB_FUNC u16 FUN_02008A54(u32 *param0) {
- *param0 = (*param0)*0x41C64E6D+0x6073;
-
- return *param0>>16;
+ return (u16)(*param0 >> 16);
}
-
-THUMB_FUNC void FUN_02008A74(u8 *param0) {
+THUMB_FUNC void FUN_02008A74(u8 *param0)
+{
u32 st0 = ((u16 *)param0)[0xc7f];
- for (s32 r4 = 0xc7f; r4 > -1; r4--) {
+ for (s32 r4 = 0xc7f; r4 > -1; r4--)
+ {
((u16 *)param0)[r4] ^= st0;
FUN_02008A54(&st0);
}
diff --git a/include/unk_02006D98.h b/include/unk_02006D98.h
new file mode 100644
index 00000000..308e5dbc
--- /dev/null
+++ b/include/unk_02006D98.h
@@ -0,0 +1,165 @@
+#include "global.h"
+#include "NNS_g2d.h"
+#include "mod63_021DB450.h"
+
+struct UnkStruct2_sub
+{
+ s8 unk0;
+ u8 unk1;
+};
+struct UnkStruct2_sub2
+{
+ u16 unk0_0 : 2;
+ u16 unk0_2 : 1;
+ u16 unk0_3 : 1;
+ u16 unk0_4 : 1;
+ u16 unk0_5 : 2;
+ s8 unk2;
+ u8 unk3;
+ s16 unk4;
+ s16 unk6;
+ s16 unk8;
+ s16 unka;
+};
+
+struct UnkStruct2
+{
+ u32 unk00_0 : 1;
+ u32 unk00_1 : 6;
+ u32 unk00_7 : 1;
+ u32 unk00_8 : 1;
+ struct UnkStruct63_021DB49C unk04;
+ struct UnkStruct63_021DB49C unk14;
+ s16 unk24;
+ s16 unk26;
+ u32 unk28;
+ s16 unk2C;
+ s16 unk2E;
+ u32 unk30;
+ s16 unk34;
+ s16 unk36;
+ u16 unk38;
+ u16 unk3A;
+ u16 unk3C;
+ u16 unk3E;
+ s16 unk40;
+ s16 unk42;
+ u8 unk44;
+ u8 unk45;
+ u8 unk46;
+ u8 unk47;
+ u8 unk48;
+ u8 unk49;
+ u8 unk4A;
+ u8 unk4B;
+ u32 unk4C;
+ u32 unk50_0 : 5;
+ u32 unk50_5 : 5;
+ u32 unk50_a : 5;
+ u32 unk50_f : 5;
+ u32 unk50_14 : 5;
+ u32 unk50_19 : 5;
+ u32 unk50_1E : 2;
+ u32 unk54_0 : 1;
+ u32 unk54_1 : 1;
+ u32 unk54_2 : 5;
+ u32 unk54_7 : 2;
+ u32 unk54_9 : 1;
+ u32 unk54_A : 1;
+ u32 unk54_B : 1;
+ u32 unk54_C : 1;
+ u32 unk54_D : 4;
+ u8 unk58;
+ u8 unk59;
+ u8 unk5A;
+ u8 unk5B;
+ u8 unk5C[10];
+ void (*unk68)(struct UnkStruct2 *, void *);
+ struct UnkStruct2_sub2 unk6C;
+ struct UnkStruct2_sub2 unk78;
+ struct UnkStruct2_sub unk84[10];
+};
+
+struct UnkStruct1
+{
+ struct UnkStruct2 unk000[4];
+ NNSG2dImageProxy unk260;
+ NNSG2dImagePaletteProxy unk284;
+ u32 unk298;
+ u32 unk29C;
+ u32 unk2A0;
+ u32 unk2A4;
+ u32 unk2A8;
+ u8 *unk2AC;
+ u16 *unk2B0;
+ u16 *unk2B4;
+ NNSG2dCharacterData unk2B8;
+ NNSG2dPaletteData unk2D0;
+ u8 unk2E0;
+ u8 unk2E1;
+ u8 unk2E2;
+ u8 unk2E3;
+ u32 unk2E4;
+};
+
+struct UnkStruct4
+{
+ u8 unk0;
+ u8 unk1;
+};
+
+struct UnkStruct1 *FUN_02006D98(u32 heap_id);
+void FUN_02006ED4(struct UnkStruct1 *param0);
+void FUN_020072E8(struct UnkStruct1 *param0);
+void FUN_02007314(struct UnkStruct2 *param0);
+void FUN_0200737C(struct UnkStruct2 *param0, struct UnkStruct2_sub *param1);
+BOOL FUN_02007390(struct UnkStruct2 *param0);
+struct UnkStruct2 *FUN_020073A0(struct UnkStruct1 *param0,
+ struct UnkStruct63_021DB49C *param1,
+ u32 param2,
+ u32 param3,
+ u32 param4,
+ u32 param5,
+ const void *param6,
+ void (*param7)(struct UnkStruct2 *, void *));
+struct UnkStruct2 *FUN_020073E8(struct UnkStruct1 *param0,
+ struct UnkStruct63_021DB49C *param1,
+ u32 param2,
+ u32 param3,
+ u32 param4,
+ u32 param5,
+ s32 param6,
+ const void *param7,
+ void (*param8)(struct UnkStruct2 *, void *));
+void FUN_02007534(struct UnkStruct2 *param0);
+void FUN_02007540(struct UnkStruct1 *param0);
+void FUN_02007558(struct UnkStruct2 *param0, u32 param1, u32 param2);
+u32 FUN_0200782C(struct UnkStruct2 *param0, u32 param1);
+void FUN_020079E0(struct UnkStruct2 *param0, u32 param1, u32 param2);
+void FUN_02007E40(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
+void FUN_02007E68(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
+void FUN_02007E98(struct UnkStruct1 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
+void FUN_02007EEC(struct UnkStruct2 *param0);
+BOOL FUN_02007F20(struct UnkStruct2 *param0);
+void FUN_02007F34(struct UnkStruct2 *param0, s32 param1);
+void FUN_02007F48(struct UnkStruct2 *param0);
+void FUN_02008010(u8 *param0, struct UnkStruct2_sub *param1);
+s32 FUN_02008030(u8 *param0);
+void FUN_020080D0(struct UnkStruct2 *param0);
+void FUN_020080E0(struct UnkStruct2 *param0);
+void FUN_0200813C(struct UnkStruct2 *param0);
+void FUN_020081A8(struct UnkStruct1 *param0, u32 param1, u32 param2);
+void FUN_020081B4(struct UnkStruct1 *param0, u32 param1, u32 param2);
+u32 FUN_020081C0(u32 param0);
+void FUN_020081C4(struct UnkStruct1 *param0);
+void FUN_0200825C(struct UnkStruct1 *param0, u8 param1);
+BOOL FUN_02008268(struct UnkStruct2 *param0);
+void FUN_02008284(struct UnkStruct1 *param0, u32 param1);
+void FUN_02008290(struct UnkStruct1 *param0, u32 param1);
+void FUN_020082A8(struct UnkStruct1 *param0);
+void FUN_020086F4(struct UnkStruct1 *param0);
+u8 FUN_020088D8(u8 param0);
+void FUN_020088EC(struct UnkStruct2 *param0, u8 *param1);
+void FUN_02008904(u8 *param0, u32 param1, u32 param2);
+u16 FUN_02008A54(u32 *param0);
+void FUN_02008A74(u8 *param0);