diff options
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/unk_02006D98_c.c | 424 |
1 files changed, 211 insertions, 213 deletions
diff --git a/arm9/src/unk_02006D98_c.c b/arm9/src/unk_02006D98_c.c index f1fb4f34..0e39671b 100644 --- a/arm9/src/unk_02006D98_c.c +++ b/arm9/src/unk_02006D98_c.c @@ -17,71 +17,63 @@ struct UnkStruct4{ +static 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, +}; -const struct UnkStruct4 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}, {0xFF, 0xFF}, -}; -const struct UnkStruct4 UNK_020ECCE2[] = { - {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}, +static 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, }; - - -const struct UnkStruct4 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}, +static 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 struct UnkStruct4 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}, +static 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 struct UnkStruct4 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} + +static const int UNK_020ECBD0[4][4] = { + {160, 160, 224, 176}, {160, 160, 224, 176}, {160, 176, 224, 192}, {160, 192, 224, 208} }; -// const int UNK_020ECD4C[4][2][4] = { + +// static const int UNK_020ECD4C[4][2][4] = { // { // {0, 0, 0x50, 0x50}, {0x50, 0, 0xA0, 0x50} // }, { @@ -100,17 +92,25 @@ const struct UnkStruct4 UNK_020ECDCC[] = { // } // }; -const int UNK_020ECBD0[4][4] = { - {160, 160, 224, 176}, {160, 160, 224, 176}, {160, 176, 224, 192}, {160, 192, 224, 208} + +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, }; const struct UnkStruct4 *UNK_02105AE8[] = { - UNK_020ECCE2, - UNK_020ECC78, - UNK_020ECC10, - UNK_020ECDCC, + (struct UnkStruct4 *)(UNK_020ECCE0+2), + (struct UnkStruct4 *)UNK_020ECC78, + (struct UnkStruct4 *)UNK_020ECC10, + (struct UnkStruct4 *)UNK_020ECDCC, }; struct UnkStruct2 { @@ -265,178 +265,176 @@ extern void FUN_02007F48(struct UnkStruct2 *); - -// extern struct UnkStruct3 UNK_020ECD4C[4]; extern void NNS_G2dDrawSpriteFast(s16 param0, s16 param1, int param2, int param3, int param4, int param5, int param6, int param7, int param8); -// 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); + FUN_020082A8(param0); + FUN_020086F4(param0); -// NNS_G3dGeFlushBuffer(); + NNS_G3dGeFlushBuffer(); -// reg_G3_MTX_PUSH = 0; + reg_G3_MTX_PUSH = 0; -// reg_G3_TEXIMAGE_PARAM = (param0->unk29C >> 3) | (param0->unk274 << 26) | (1 << 30) | (param0->unk26C << 20) | (param0->unk270 << 23) | (param0->unk27C << 29); + reg_G3_TEXIMAGE_PARAM = (param0->unk29C >> 3) | (param0->unk274 << 26) | (1 << 30) | (param0->unk26C << 20) | (param0->unk270 << 23) | (param0->unk27C << 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) { -// continue; -// } + 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) { -// param0->unk000[st18].unk68(¶m0->unk000[st18], ¶m0->unk000[st18].unk24); -// } + if (param0->unk000[st18].unk68 != NULL) { + param0->unk000[st18].unk68(¶m0->unk000[st18], ¶m0->unk000[st18].unk24); + } -// NNS_G3dGeFlushBuffer(); + NNS_G3dGeFlushBuffer(); -// if (param0->unk2E3 != 1) { -// reg_G3_MTX_IDENTITY = 0; -// } + if (param0->unk2E3 != 1) { + reg_G3_MTX_IDENTITY = 0; + } -// FUN_02007F48(¶m0->unk000[st18]); + FUN_02007F48(¶m0->unk000[st18]); -// u32 shift; -// if (param0->unk274 == 2) { -// shift = 1; -// } else { -// shift = 0; -// } + u32 shift; + if (param0->unk274 == 2) { + shift = 1; + } else { + shift = 0; + } -// 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; - -// 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 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); - -// 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) | -// 0x8000; - - -// reg_G3_SPE_EMI = 0x4210; - -// { -// u32 r1 = param0->unk000[st18].unk00_1; -// u32 r0 = param0->unk000[st18].unk54_2; -// reg_G3_POLYGON_ATTR = 0xc0 | (r1<<24) | (r0<<16); -// } - -// if (param0->unk000[st18].unk54_1 != 0) { -// u32 r6 = param0->unk000[st18].unk44 + UNK_020ECD4C[st18].unk00[param0->unk000[st18].unk5B*4]; -// u32 r12 = param0->unk000[st18].unk46; -// u32 r1 = param0->unk000[st18].unk45 + UNK_020ECD4C[st18].unk00[param0->unk000[st18].unk5B*4 + 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].unk6E, -// 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; - -// 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].unk6E, -// param0->unk000[st18].unk28 + param0->unk000[st18].unk30, -// arg3, -// arg4, -// UNK_020ECD4C[st18].unk00[param0->unk000[st18].unk5B*4], -// UNK_020ECD4C[st18].unk00[param0->unk000[st18].unk5B*4+1], -// UNK_020ECD4C[st18].unk00[param0->unk000[st18].unk5B*4+2], -// UNK_020ECD4C[st18].unk00[param0->unk000[st18].unk5B*4+3] -// ); -// } - - -// if (param0->unk000[st18].unk6C_0 == 0 || param0->unk000[st18].unk6C_5 == 0 || param0->unk000[st18].unk54_1 != 0 || (param0->unk2E4 & 1) != 0) { -// continue; -// } - -// if (param0->unk2E3 != 1) { -// reg_G3_MTX_IDENTITY = 0; -// } - -// u32 shift2; -// if (param0->unk274 == 2) { -// shift2 = 1; -// } else { -// shift2 = 0; -// } -// reg_G3_TEXPLTT_BASE = (param0->unk2A4 + ((param0->unk000[st18].unk6C_0+3)<<5))>>(4-shift2); - - - -// if (param0->unk000[st18].unk6C_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_2 != 0) { -// param0->unk000[st18].unk70 = param0->unk000[st18].unk24+ param0->unk000[st18].unk2C + param0->unk000[st18].unk74; -// } - -// if (param0->unk000[st18].unk6C_3 != 0) { -// param0->unk000[st18].unk72 = param0->unk000[st18].unk26 + param0->unk000[st18].unk2E + param0->unk000[st18].unk76; -// } - - -// NNS_G2dDrawSpriteFast( -// param0->unk000[st18].unk70 - (arg3/2), -// param0->unk000[st18].unk72 - (arg4/2), -// 0xFFFFFC18, -// arg3, -// arg4, -// UNK_020ECBD0[param0->unk000[st18].unk6C_5*4], -// UNK_020ECBD0[param0->unk000[st18].unk6C_5*4 + 1], -// UNK_020ECBD0[param0->unk000[st18].unk6C_5*4 + 2], -// UNK_020ECBD0[param0->unk000[st18].unk6C_5*4 + 3] -// ); + 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; + + 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 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); + + 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) | + 0x8000; -// } + reg_G3_SPE_EMI = 0x4210; -// reg_G3_MTX_POP = 1; -// } + { + u32 r1 = param0->unk000[st18].unk00_1; + u32 r0 = param0->unk000[st18].unk54_2; + 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]; + 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 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].unk6E, + 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; + + 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].unk6E, + 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] + ); + } + + + if (param0->unk000[st18].unk6C_0 == 0 || param0->unk000[st18].unk6C_5 == 0 || param0->unk000[st18].unk54_1 != 0 || (param0->unk2E4 & 1) != 0) { + continue; + } + + if (param0->unk2E3 != 1) { + reg_G3_MTX_IDENTITY = 0; + } + + u32 shift2; + if (param0->unk274 == 2) { + shift2 = 1; + } else { + shift2 = 0; + } + reg_G3_TEXPLTT_BASE = (param0->unk2A4 + ((param0->unk000[st18].unk6C_0+3)<<5))>>(4-shift2); + + + + if (param0->unk000[st18].unk6C_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_2 != 0) { + param0->unk000[st18].unk70 = param0->unk000[st18].unk24+ param0->unk000[st18].unk2C + param0->unk000[st18].unk74; + } + + if (param0->unk000[st18].unk6C_3 != 0) { + param0->unk000[st18].unk72 = param0->unk000[st18].unk26 + param0->unk000[st18].unk2E + param0->unk000[st18].unk76; + } + + + NNS_G2dDrawSpriteFast( + param0->unk000[st18].unk70 - (arg3/2), + param0->unk000[st18].unk72 - (arg4/2), + 0xFFFFFC18, + arg3, + arg4, + UNK_020ECBD0[param0->unk000[st18].unk6C_5][0], + UNK_020ECBD0[param0->unk000[st18].unk6C_5][1], + UNK_020ECBD0[param0->unk000[st18].unk6C_5][2], + UNK_020ECBD0[param0->unk000[st18].unk6C_5][3] + ); + + } + + + reg_G3_MTX_POP = 1; +} |