summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-11-07 15:14:14 -0500
committerMax <mparisi@stevens.edu>2020-11-07 15:14:14 -0500
commit2ac190172940c5646a8848c46a3a1f61c7cbcfa9 (patch)
tree91707d9073b46576b96b4e102f4a6803b3bf10a4
parent2ae7b5c414293c202ef46942ad0fa34ad373763f (diff)
decomp 801DDF78 and add mtx.h
-rw-r--r--asm/code_80032FE8.s2
-rw-r--r--asm/code_800B9E10.s4
-rw-r--r--asm/code_800E4234.s2
-rw-r--r--asm/code_800F8AC4.s2
-rw-r--r--asm/code_80155B50.s2
-rw-r--r--asm/code_801DDF78_asm.s (renamed from asm/code_801DDF78.s)71
-rw-r--r--asm/code_801E5F7C.s2
-rw-r--r--asm/code_801EE044.s2
-rw-r--r--asm/code_801F1AE8.s4
-rw-r--r--asm/code_801F98EC.s2
-rw-r--r--asm/code_80235A74.s4
-rw-r--r--include/SDK/mtx.h22
-rw-r--r--obj_files.mk3
-rw-r--r--src/code_801DBE90.cpp6
-rw-r--r--src/code_801DD8C0.cpp1
-rw-r--r--src/code_801DDF78.cpp141
16 files changed, 182 insertions, 88 deletions
diff --git a/asm/code_80032FE8.s b/asm/code_80032FE8.s
index 292d8a5..1355391 100644
--- a/asm/code_80032FE8.s
+++ b/asm/code_80032FE8.s
@@ -198,7 +198,7 @@ lbl_8003329C:
lbl_800332A0:
/* 800332A0 0002EF00 2C 03 00 00 */ cmpwi r3, 0
/* 800332A4 0002EF04 41 82 00 08 */ beq lbl_800332AC
-/* 800332A8 0002EF08 48 1A AC D1 */ bl func_801DDF78
+/* 800332A8 0002EF08 48 1A AC D1 */ bl __ct__8GScameraFv
lbl_800332AC:
/* 800332AC 0002EF0C C0 02 81 D4 */ lfs f0, lbl_806407D4-_SDA2_BASE_(r2)
/* 800332B0 0002EF10 3C A0 80 49 */ lis r5, lbl_80493614@ha
diff --git a/asm/code_800B9E10.s b/asm/code_800B9E10.s
index 1f72416..e40e14b 100644
--- a/asm/code_800B9E10.s
+++ b/asm/code_800B9E10.s
@@ -221,7 +221,7 @@ lbl_800BA0F0:
lbl_800BA0F4:
/* 800BA0F4 000B5D54 2C 03 00 00 */ cmpwi r3, 0
/* 800BA0F8 000B5D58 41 82 00 08 */ beq lbl_800BA100
-/* 800BA0FC 000B5D5C 48 12 3E 7D */ bl func_801DDF78
+/* 800BA0FC 000B5D5C 48 12 3E 7D */ bl __ct__8GScameraFv
lbl_800BA100:
/* 800BA100 000B5D60 90 7F 02 B4 */ stw r3, 0x2b4(r31)
/* 800BA104 000B5D64 2C 03 00 00 */ cmpwi r3, 0
@@ -12367,7 +12367,7 @@ func_800C51EC:
/* 800C5234 000C0E94 40 82 00 30 */ bne lbl_800C5264
/* 800C5238 000C0E98 3F 60 80 48 */ lis r27, lbl_8047CE70@ha
/* 800C523C 000C0E9C 38 7B CE 70 */ addi r3, r27, lbl_8047CE70@l
-/* 800C5240 000C0EA0 48 11 8D 39 */ bl func_801DDF78
+/* 800C5240 000C0EA0 48 11 8D 39 */ bl __ct__8GScameraFv
/* 800C5244 000C0EA4 3C 80 80 1E */ lis r4, func_801DE19C@ha
/* 800C5248 000C0EA8 3C A0 80 48 */ lis r5, lbl_8047CE64@ha
/* 800C524C 000C0EAC 38 7B CE 70 */ addi r3, r27, -12688
diff --git a/asm/code_800E4234.s b/asm/code_800E4234.s
index 36efb83..d589698 100644
--- a/asm/code_800E4234.s
+++ b/asm/code_800E4234.s
@@ -2868,7 +2868,7 @@ lbl_800E69E8:
/* 800E6A28 000E2688 7C 00 07 75 */ extsb. r0, r0
/* 800E6A2C 000E268C 40 82 00 28 */ bne lbl_800E6A54
/* 800E6A30 000E2690 38 7E 01 18 */ addi r3, r30, 0x118
-/* 800E6A34 000E2694 48 0F 75 45 */ bl func_801DDF78
+/* 800E6A34 000E2694 48 0F 75 45 */ bl __ct__8GScameraFv
/* 800E6A38 000E2698 3C 80 80 1E */ lis r4, func_801DE19C@ha
/* 800E6A3C 000E269C 38 7E 01 18 */ addi r3, r30, 0x118
/* 800E6A40 000E26A0 38 84 E1 9C */ addi r4, r4, func_801DE19C@l
diff --git a/asm/code_800F8AC4.s b/asm/code_800F8AC4.s
index 33aad40..5ac6f8b 100644
--- a/asm/code_800F8AC4.s
+++ b/asm/code_800F8AC4.s
@@ -9852,7 +9852,7 @@ lbl_80101ED8:
lbl_80101EDC:
/* 80101EDC 000FDB3C 2C 03 00 00 */ cmpwi r3, 0
/* 80101EE0 000FDB40 41 82 00 08 */ beq lbl_80101EE8
-/* 80101EE4 000FDB44 48 0D C0 95 */ bl func_801DDF78
+/* 80101EE4 000FDB44 48 0D C0 95 */ bl __ct__8GScameraFv
lbl_80101EE8:
/* 80101EE8 000FDB48 80 8D 82 70 */ lwz r4, lbl_8063D530-_SDA_BASE_(r13)
/* 80101EEC 000FDB4C 90 64 00 D8 */ stw r3, 0xd8(r4)
diff --git a/asm/code_80155B50.s b/asm/code_80155B50.s
index c6eff69..956b596 100644
--- a/asm/code_80155B50.s
+++ b/asm/code_80155B50.s
@@ -1613,7 +1613,7 @@ lbl_801571E8:
lbl_801571EC:
/* 801571EC 00152E4C 2C 03 00 00 */ cmpwi r3, 0
/* 801571F0 00152E50 41 82 00 08 */ beq lbl_801571F8
-/* 801571F4 00152E54 48 08 6D 85 */ bl func_801DDF78
+/* 801571F4 00152E54 48 08 6D 85 */ bl __ct__8GScameraFv
lbl_801571F8:
/* 801571F8 00152E58 90 7E 00 08 */ stw r3, 8(r30)
lbl_801571FC:
diff --git a/asm/code_801DDF78.s b/asm/code_801DDF78_asm.s
index d3af0ca..6c5ec4e 100644
--- a/asm/code_801DDF78.s
+++ b/asm/code_801DDF78_asm.s
@@ -3,77 +3,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
# GScamera constructor
-.global func_801DDF78
-func_801DDF78:
-/* 801DDF78 001D9BD8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801DDF7C 001D9BDC 7C 08 02 A6 */ mflr r0
-/* 801DDF80 001D9BE0 38 80 00 04 */ li r4, 4
-/* 801DDF84 001D9BE4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801DDF88 001D9BE8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DDF8C 001D9BEC 7C 7F 1B 78 */ mr r31, r3
-/* 801DDF90 001D9BF0 48 01 3B 59 */ bl func_801F1AE8
-/* 801DDF94 001D9BF4 C0 42 96 0C */ lfs f2, lbl_80641C0C-_SDA2_BASE_(r2)
-/* 801DDF98 001D9BF8 38 00 00 00 */ li r0, 0
-/* 801DDF9C 001D9BFC C0 22 96 10 */ lfs f1, lbl_80641C10-_SDA2_BASE_(r2)
-/* 801DDFA0 001D9C00 3C A0 80 42 */ lis r5, lbl_80423358@ha
-/* 801DDFA4 001D9C04 C0 A2 96 00 */ lfs f5, lbl_80641C00-_SDA2_BASE_(r2)
-/* 801DDFA8 001D9C08 38 A5 33 58 */ addi r5, r5, lbl_80423358@l
-/* 801DDFAC 001D9C0C C0 02 96 14 */ lfs f0, lbl_80641C14-_SDA2_BASE_(r2)
-/* 801DDFB0 001D9C10 38 80 01 09 */ li r4, 0x109
-/* 801DDFB4 001D9C14 D0 5F 01 84 */ stfs f2, 0x184(r31)
-/* 801DDFB8 001D9C18 38 7F 01 D4 */ addi r3, r31, 0x1d4
-/* 801DDFBC 001D9C1C C0 E2 95 F8 */ lfs f7, lbl_80641BF8-_SDA2_BASE_(r2)
-/* 801DDFC0 001D9C20 C0 C2 95 FC */ lfs f6, lbl_80641BFC-_SDA2_BASE_(r2)
-/* 801DDFC4 001D9C24 C0 82 96 04 */ lfs f4, lbl_80641C04-_SDA2_BASE_(r2)
-/* 801DDFC8 001D9C28 C0 62 96 08 */ lfs f3, lbl_80641C08-_SDA2_BASE_(r2)
-/* 801DDFCC 001D9C2C 90 BF 01 00 */ stw r5, 0x100(r31)
-/* 801DDFD0 001D9C30 90 9F 01 04 */ stw r4, 0x104(r31)
-/* 801DDFD4 001D9C34 90 1F 01 08 */ stw r0, 0x108(r31)
-/* 801DDFD8 001D9C38 90 1F 01 4C */ stw r0, 0x14c(r31)
-/* 801DDFDC 001D9C3C 90 1F 01 50 */ stw r0, 0x150(r31)
-/* 801DDFE0 001D9C40 90 1F 01 54 */ stw r0, 0x154(r31)
-/* 801DDFE4 001D9C44 90 1F 01 58 */ stw r0, 0x158(r31)
-/* 801DDFE8 001D9C48 90 1F 01 5C */ stw r0, 0x15c(r31)
-/* 801DDFEC 001D9C4C 90 1F 01 60 */ stw r0, 0x160(r31)
-/* 801DDFF0 001D9C50 90 1F 01 64 */ stw r0, 0x164(r31)
-/* 801DDFF4 001D9C54 D0 FF 01 68 */ stfs f7, 0x168(r31)
-/* 801DDFF8 001D9C58 D0 DF 01 6C */ stfs f6, 0x16c(r31)
-/* 801DDFFC 001D9C5C D0 BF 01 78 */ stfs f5, 0x178(r31)
-/* 801DE000 001D9C60 D0 9F 01 7C */ stfs f4, 0x17c(r31)
-/* 801DE004 001D9C64 D0 7F 01 80 */ stfs f3, 0x180(r31)
-/* 801DE008 001D9C68 D0 3F 01 88 */ stfs f1, 0x188(r31)
-/* 801DE00C 001D9C6C D0 3F 01 8C */ stfs f1, 0x18c(r31)
-/* 801DE010 001D9C70 D0 1F 01 90 */ stfs f0, 0x190(r31)
-/* 801DE014 001D9C74 D0 3F 01 94 */ stfs f1, 0x194(r31)
-/* 801DE018 001D9C78 D0 BF 01 98 */ stfs f5, 0x198(r31)
-/* 801DE01C 001D9C7C D0 3F 01 9C */ stfs f1, 0x19c(r31)
-/* 801DE020 001D9C80 D0 3F 01 A0 */ stfs f1, 0x1a0(r31)
-/* 801DE024 001D9C84 D0 3F 01 A4 */ stfs f1, 0x1a4(r31)
-/* 801DE028 001D9C88 D0 3F 01 A8 */ stfs f1, 0x1a8(r31)
-/* 801DE02C 001D9C8C D0 3F 01 AC */ stfs f1, 0x1ac(r31)
-/* 801DE030 001D9C90 D0 3F 01 B0 */ stfs f1, 0x1b0(r31)
-/* 801DE034 001D9C94 D0 1F 01 B4 */ stfs f0, 0x1b4(r31)
-/* 801DE038 001D9C98 D0 3F 01 B8 */ stfs f1, 0x1b8(r31)
-/* 801DE03C 001D9C9C D0 BF 01 BC */ stfs f5, 0x1bc(r31)
-/* 801DE040 001D9CA0 D0 3F 01 C0 */ stfs f1, 0x1c0(r31)
-/* 801DE044 001D9CA4 D0 3F 01 C4 */ stfs f1, 0x1c4(r31)
-/* 801DE048 001D9CA8 D0 3F 01 C8 */ stfs f1, 0x1c8(r31)
-/* 801DE04C 001D9CAC D0 3F 01 CC */ stfs f1, 0x1cc(r31)
-/* 801DE050 001D9CB0 90 1F 01 D0 */ stw r0, 0x1d0(r31)
-/* 801DE054 001D9CB4 D0 5F 01 84 */ stfs f2, 0x184(r31)
-/* 801DE058 001D9CB8 48 09 DE D5 */ bl PSMTXIdentity
-/* 801DE05C 001D9CBC 38 7F 02 04 */ addi r3, r31, 0x204
-/* 801DE060 001D9CC0 48 09 DE CD */ bl PSMTXIdentity
-/* 801DE064 001D9CC4 38 7F 02 34 */ addi r3, r31, 0x234
-/* 801DE068 001D9CC8 48 09 DE C5 */ bl PSMTXIdentity
-/* 801DE06C 001D9CCC 7F E3 FB 78 */ mr r3, r31
-/* 801DE070 001D9CD0 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DE074 001D9CD4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801DE078 001D9CD8 7C 08 03 A6 */ mtlr r0
-/* 801DE07C 001D9CDC 38 21 00 10 */ addi r1, r1, 0x10
-/* 801DE080 001D9CE0 4E 80 00 20 */ blr
-
-# GScamera constructor
.global func_801DE084
func_801DE084:
/* 801DE084 001D9CE4 94 21 FF F0 */ stwu r1, -0x10(r1)
diff --git a/asm/code_801E5F7C.s b/asm/code_801E5F7C.s
index a3f63ca..b716071 100644
--- a/asm/code_801E5F7C.s
+++ b/asm/code_801E5F7C.s
@@ -15,7 +15,7 @@ func_801E5F7C:
/* 801E5F9C 001E1BFC 7C DE 33 78 */ mr r30, r6
/* 801E5FA0 001E1C00 7C FF 3B 78 */ mr r31, r7
/* 801E5FA4 001E1C04 38 80 00 05 */ li r4, 5
-/* 801E5FA8 001E1C08 48 00 BB 41 */ bl func_801F1AE8
+/* 801E5FA8 001E1C08 48 00 BB 41 */ bl __ct__6GSnullFUc
/* 801E5FAC 001E1C0C 88 BF 00 03 */ lbz r5, 3(r31)
/* 801E5FB0 001E1C10 3C E0 80 42 */ lis r7, lbl_80423590@ha
/* 801E5FB4 001E1C14 38 C0 00 00 */ li r6, 0
diff --git a/asm/code_801EE044.s b/asm/code_801EE044.s
index 5118332..ff78337 100644
--- a/asm/code_801EE044.s
+++ b/asm/code_801EE044.s
@@ -2282,7 +2282,7 @@ func_801F0098:
/* 801F00B0 001EBD10 38 80 00 03 */ li r4, 3
/* 801F00B4 001EBD14 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801F00B8 001EBD18 7C 7D 1B 78 */ mr r29, r3
-/* 801F00BC 001EBD1C 48 00 1A 2D */ bl func_801F1AE8
+/* 801F00BC 001EBD1C 48 00 1A 2D */ bl __ct__6GSnullFUc
/* 801F00C0 001EBD20 C0 42 97 E0 */ lfs f2, lbl_80641DE0-_SDA2_BASE_(r2)
/* 801F00C4 001EBD24 3C 60 80 42 */ lis r3, lbl_80423668@ha
/* 801F00C8 001EBD28 3B E0 00 00 */ li r31, 0
diff --git a/asm/code_801F1AE8.s b/asm/code_801F1AE8.s
index fd861d8..b202a70 100644
--- a/asm/code_801F1AE8.s
+++ b/asm/code_801F1AE8.s
@@ -2,8 +2,8 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_801F1AE8
-func_801F1AE8:
+.global __ct__6GSnullFUc
+__ct__6GSnullFUc:
/* 801F1AE8 001ED748 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801F1AEC 001ED74C 7C 08 02 A6 */ mflr r0
/* 801F1AF0 001ED750 90 01 00 14 */ stw r0, 0x14(r1)
diff --git a/asm/code_801F98EC.s b/asm/code_801F98EC.s
index a51555e..9425c99 100644
--- a/asm/code_801F98EC.s
+++ b/asm/code_801F98EC.s
@@ -12,7 +12,7 @@ func_801F98EC:
/* 801F9900 001F5560 38 80 00 07 */ li r4, 7
/* 801F9904 001F5564 93 C1 00 08 */ stw r30, 8(r1)
/* 801F9908 001F5568 7C 7E 1B 78 */ mr r30, r3
-/* 801F990C 001F556C 4B FF 81 DD */ bl func_801F1AE8
+/* 801F990C 001F556C 4B FF 81 DD */ bl __ct__6GSnullFUc
/* 801F9910 001F5570 C0 02 98 40 */ lfs f0, lbl_80641E40-_SDA2_BASE_(r2)
/* 801F9914 001F5574 3C 60 80 42 */ lis r3, lbl_80423720@ha
/* 801F9918 001F5578 38 00 00 00 */ li r0, 0
diff --git a/asm/code_80235A74.s b/asm/code_80235A74.s
index 6c95dc1..a9754ff 100644
--- a/asm/code_80235A74.s
+++ b/asm/code_80235A74.s
@@ -79,7 +79,7 @@ lbl_80235B68:
lbl_80235B6C:
/* 80235B6C 002317CC 2C 03 00 00 */ cmpwi r3, 0
/* 80235B70 002317D0 41 82 00 08 */ beq lbl_80235B78
-/* 80235B74 002317D4 4B FA 84 05 */ bl func_801DDF78
+/* 80235B74 002317D4 4B FA 84 05 */ bl __ct__8GScameraFv
lbl_80235B78:
/* 80235B78 002317D8 3C 80 80 49 */ lis r4, lbl_80496754@ha
/* 80235B7C 002317DC 38 84 67 54 */ addi r4, r4, lbl_80496754@l
@@ -97,7 +97,7 @@ lbl_80235BA4:
/* 80235BA4 00231804 2C 03 00 00 */ cmpwi r3, 0
/* 80235BA8 00231808 7C 60 1B 78 */ mr r0, r3
/* 80235BAC 0023180C 41 82 00 0C */ beq lbl_80235BB8
-/* 80235BB0 00231810 4B FA 83 C9 */ bl func_801DDF78
+/* 80235BB0 00231810 4B FA 83 C9 */ bl __ct__8GScameraFv
/* 80235BB4 00231814 7C 60 1B 78 */ mr r0, r3
lbl_80235BB8:
/* 80235BB8 00231818 3C 80 80 49 */ lis r4, lbl_80496754@ha
diff --git a/include/SDK/mtx.h b/include/SDK/mtx.h
new file mode 100644
index 0000000..a2c9cd1
--- /dev/null
+++ b/include/SDK/mtx.h
@@ -0,0 +1,22 @@
+#ifndef POKEREVO_MTX_H
+#define POKEREVO_MTX_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef f32 Mtx[3][4];
+typedef f32 (*MtxPtr)[4];
+#define MTX_PTR_OFFSET 3
+
+
+#define MTXIdentity PSMTXIdentity
+
+void PSMTXIdentity(Mtx m);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif //POKEREVO_MTX_H
diff --git a/obj_files.mk b/obj_files.mk
index a5cfb9f..6a9aaef 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -229,7 +229,8 @@ SPLIT_O_FILES := \
$(BUILD_DIR)/src/code_801DCE6C.o \
$(BUILD_DIR)/src/code_801DD5C8.o \
$(BUILD_DIR)/src/code_801DD8C0.o \
- $(BUILD_DIR)/asm/code_801DDF78.o \
+ $(BUILD_DIR)/src/code_801DDF78.o \
+ $(BUILD_DIR)/asm/code_801DDF78_asm.o \
$(BUILD_DIR)/asm/code_801DF040.o \
$(BUILD_DIR)/asm/code_801E07E8.o \
$(BUILD_DIR)/asm/code_801E0810.o \
diff --git a/src/code_801DBE90.cpp b/src/code_801DBE90.cpp
index 7534f0d..dd99e20 100644
--- a/src/code_801DBE90.cpp
+++ b/src/code_801DBE90.cpp
@@ -20,7 +20,7 @@ static void func_801DBFEC(s32 p1, DVDFileInfo* p2);
static void func_801DC068(s32 p1, DVDFileInfo* p2);
static void func_801DC264(void);
static s32 func_801DC7DC(void);
-static void func_801DC888(s32 p1);
+static void func_801DC888(s32 driveStatus);
static void func_801DC8E8(u32 p1);
static void func_801DC900(void);
static void func_801DC918(s32 p1, DVDCommandBlock*);
@@ -311,9 +311,9 @@ BOOL func_801DC7F8(gUnkClass5* p1, s32 offset, void (*p3)(s32, void*))
return DVDSeekAsyncPrio(&p1->unk4, offset, &func_801DC068, 2) != 0;
}
-static void func_801DC888(s32 p1)
+static void func_801DC888(s32 driveStatus)
{
- switch (p1) {
+ switch (driveStatus) {
case -1:
gUnk8063F328 = 9;
break;
diff --git a/src/code_801DD8C0.cpp b/src/code_801DD8C0.cpp
index dc82f62..89c315c 100644
--- a/src/code_801DD8C0.cpp
+++ b/src/code_801DD8C0.cpp
@@ -166,6 +166,7 @@ void GSanimationObject::func_801DDABC(u16 id, u16 p3, float p4, float p5)
}
}
+// 801DDB64
GSblendObject::GSblendObject(gUnkClass8* list) : GSanimationObject(list), unk8(NULL), unkC(0.0f)
{
if (unk4)
diff --git a/src/code_801DDF78.cpp b/src/code_801DDF78.cpp
new file mode 100644
index 0000000..c826a73
--- /dev/null
+++ b/src/code_801DDF78.cpp
@@ -0,0 +1,141 @@
+
+
+// GScamera
+
+#include <SDK/mtx.h>
+#include "GSblendObject.h"
+
+class GSnull : public GSblendObject
+{
+ u8 unk10[0xF0]; // padding
+public:
+ u32* vptr100; // TODO: replace
+
+ GSnull(u8 p1);
+ ~GSnull();
+};
+
+class GScamera : public GSnull
+{
+ u32 unk104;
+ u32 unk108;
+
+ u8 unk10C[0x40]; // pad
+
+
+ u32 unk14C;
+ u32 unk150;
+ u32 unk154;
+ u32 unk158;
+ u32 unk15C;
+ u32 unk160;
+ u32 unk164;
+
+ float unk168;
+ float unk16C;
+
+ u8 unk170[0x8]; // pad
+
+ float unk178;
+ float unk17C;
+ float unk180;
+
+ float unk184;
+
+ float unk188;
+ float unk18C;
+ float unk190;
+ float unk194;
+ float unk198;
+ float unk19C;
+ float unk1A0;
+ float unk1A4;
+ float unk1A8;
+ float unk1AC;
+ float unk1B0;
+ float unk1B4;
+ float unk1B8;
+ float unk1BC;
+ float unk1C0;
+ float unk1C4;
+ float unk1C8;
+ float unk1CC;
+ u32 unk1D0;
+ Mtx unk1D4;
+ Mtx unk204;
+ Mtx unk234;
+
+public:
+ GScamera();
+
+};
+
+extern "C" {
+
+__declspec(section ".data") extern u32 lbl_80423358; // GScamera vtable
+
+// 801DDF78
+GScamera::GScamera() : GSnull(4)
+{
+ #if 0
+ 10.0f //f2
+ 0 // r0
+ 0.0f // f1
+ lbl_80423358 //r5
+ 1.0f // f5
+ -1.0f // f0
+ 0x109 // r4
+ 60.0f // f7
+ 1.28f //f6
+ 0.1 //f4
+ 100000.0f //f3
+ #endif
+
+ unk184 = 10.0f;
+ vptr100 = &lbl_80423358;
+ unk104 = 0x109;
+ unk108 = 0;
+
+ unk14C = 0;
+ unk150 = 0;
+ unk154 = 0;
+ unk158 = 0;
+ unk15C = 0;
+ unk160 = 0;
+ unk164 = 0;
+
+ unk168 = 60.0f;
+ unk16C = 1.28f;
+ unk178 = 1.0f;
+ unk17C = 0.1f;
+ unk180 = 100000.0f;
+ unk188 = 0.0f;
+ unk18C = 0.0f;
+ unk190 = -1.0f;
+ unk194 = 0.0f;
+ unk198 = 1.0f;
+ unk19C = 0.0f;
+ unk1A0 = 0.0f;
+ unk1A4 = 0.0f;
+ unk1A8 = 0.0f;
+ unk1AC = 0.0f;
+ unk1B0 = 0.0f;
+ unk1B4 = -1.0f;
+ unk1B8 = 0.0f;
+ unk1BC = 1.0f;
+ unk1C0 = 0.0f;
+ unk1C4 = 0.0f;
+ unk1C8 = 0.0f;
+ unk1CC = 0.0f;
+ unk1D0 = 0;
+
+ unk184 = 10.0f;
+
+ MTXIdentity(unk1D4);
+ MTXIdentity(unk204);
+ MTXIdentity(unk234);
+}
+
+
+
+}