Merge headers from nitro decomp (#69)

* merge headers from nitro decomp

* cleanup: use inlines from g2.h and gx.h when changing registers

* cleanup: remove externs declarations in source files
This commit is contained in:
Yanis
2026-05-25 02:55:16 +02:00
committed by GitHub
parent 530fcd8c07
commit 69ef244371
138 changed files with 3084 additions and 1096 deletions
+6 -6
View File
@@ -22,7 +22,7 @@ func_01ff92a8 kind:function(arm,size=0x64) addr:0x01ff92a8
func_01ff930c kind:function(arm,size=0xc) addr:0x01ff930c
func_01ff9318 kind:function(arm,size=0x4c) addr:0x01ff9318
func_01ff9364 kind:function(arm,size=0x28) addr:0x01ff9364
Vec3p_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c
VecFx32_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c
func_01ff93c0 kind:function(arm,size=0x5c) addr:0x01ff93c0
func_01ff941c kind:function(arm,size=0x60) addr:0x01ff941c
func_01ff947c kind:function(arm,size=0x50) addr:0x01ff947c
@@ -97,12 +97,12 @@ func_01ffb618 kind:function(arm,size=0x2c) addr:0x01ffb618
func_01ffb644 kind:function(arm,size=0x28) addr:0x01ffb644
func_01ffb66c kind:function(arm,size=0x3c) addr:0x01ffb66c
func_01ffb6a8 kind:function(arm,size=0x3c) addr:0x01ffb6a8
Vec3p_Add kind:function(arm,size=0x30) addr:0x01ffb6e4
VecFx32_Add kind:function(arm,size=0x30) addr:0x01ffb6e4
func_01ffb714 kind:function(arm,size=0x30) addr:0x01ffb714
Vec3p_Dot kind:function(arm,size=0x3c) addr:0x01ffb744
VecFx32_Dot kind:function(arm,size=0x3c) addr:0x01ffb744
func_01ffb780 kind:function(arm,size=0x80) addr:0x01ffb780
Vec3p_Length kind:function(arm,size=0x60) addr:0x01ffb800
Vec3p_Normalize kind:function(arm,size=0x114) addr:0x01ffb860
VecFx32_Length kind:function(arm,size=0x60) addr:0x01ffb800
VecFx32_Normalize kind:function(arm,size=0x114) addr:0x01ffb860
func_01ffb974 kind:function(arm,size=0x58) addr:0x01ffb974
func_01ffb9cc kind:function(arm,size=0x7c) addr:0x01ffb9cc
func_01ffba48 kind:function(arm,size=0x198) addr:0x01ffba48
@@ -212,7 +212,7 @@ _ZN9MapObject13func_01fff590Ei kind:function(arm,size=0x40) addr:0x01fff590
_ZN10ActorRupee13func_01fff5d0Eii kind:function(arm,size=0x3c) addr:0x01fff5d0
_ZN18UnkStruct_027e09b413func_01fff60cEiiihii kind:function(arm,size=0x8c) addr:0x01fff60c
func_01fff698 kind:function(arm,size=0x38) addr:0x01fff698
_ZN21UnkStruct_027e0cd8_1013func_01fff6d0EP5Vec3pPiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
_ZN21UnkStruct_027e0cd8_1013func_01fff6d0EP7VecFx32PiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
func_01fff744 kind:function(arm,size=0x20) addr:0x01fff744
func_01fff764 kind:function(arm,size=0xec) addr:0x01fff764
func_01fff850 kind:function(arm,size=0x158) addr:0x01fff850
+17 -17
View File
@@ -12,7 +12,7 @@ func_ov000_02052a14 kind:function(arm,size=0xec) addr:0x02052a14
func_ov000_02052b00 kind:function(arm,size=0xcc) addr:0x02052b00
func_ov000_02052bcc kind:function(arm,size=0x60) addr:0x02052bcc
func_ov000_02052c2c kind:function(arm,size=0x1c) addr:0x02052c2c
_ZN23UnkSystem7_UnkStruct_0019func_ov000_02052c48EP5Vec3pS1_ kind:function(arm,size=0xf0) addr:0x02052c48
_ZN23UnkSystem7_UnkStruct_0019func_ov000_02052c48EP7VecFx32S1_ kind:function(arm,size=0xf0) addr:0x02052c48
func_ov000_02052d38 kind:function(arm,size=0x38) addr:0x02052d38
func_ov000_02052d70 kind:function(arm,size=0xb4) addr:0x02052d70
func_ov000_02052e24 kind:function(arm,size=0x78) addr:0x02052e24
@@ -486,7 +486,7 @@ _ZN23UnkStruct_027e0998_Base19func_ov000_02061768Ev kind:function(arm,size=0x4)
func_ov000_0206176c kind:function(thumb,size=0xbc) addr:0x0206176c
func_ov000_02061828 kind:function(thumb,size=0x28) addr:0x02061828
_ZN23UnkStruct_027e0998_Base19func_ov000_02061850Ei kind:function(arm,size=0x18) addr:0x02061850
_ZN23UnkStruct_027e0998_Base8vfunc_00EP5Vec3pP5Vec2sPt kind:function(arm,size=0x1e0) addr:0x02061868
_ZN23UnkStruct_027e0998_Base8vfunc_00EP7VecFx32P5Vec2sPt kind:function(arm,size=0x1e0) addr:0x02061868
func_ov000_02061a48 kind:function(arm,size=0x28) addr:0x02061a48
_ZN23UnkStruct_027e0998_Base19func_ov000_02061a70Ev kind:function(arm,size=0xc) addr:0x02061a70
func_ov000_02061a7c kind:function(arm,size=0x10) addr:0x02061a7c
@@ -1061,11 +1061,11 @@ func_ov000_02071934 kind:function(arm,size=0x60) addr:0x02071934
func_ov000_02071994 kind:function(arm,size=0x1c) addr:0x02071994
func_ov000_020719b0 kind:function(arm,size=0xc4) addr:0x020719b0
func_ov000_02071a74 kind:function(arm,size=0xbc) addr:0x02071a74
_ZN18UnkStruct_027e09a819func_ov000_02071b30EiP5Vec3pi kind:function(arm,size=0xa4) addr:0x02071b30
_ZN18UnkStruct_027e09a819func_ov000_02071b30EiP7VecFx32i kind:function(arm,size=0xa4) addr:0x02071b30
func_ov000_02071bd4 kind:function(arm,size=0x90) addr:0x02071bd4
func_ov000_02071c64 kind:function(arm,size=0x2c) addr:0x02071c64
func_ov000_02071c90 kind:function(arm,size=0xa4) addr:0x02071c90
_ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP5Vec3pi kind:function(arm,size=0xb0) addr:0x02071d34
_ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP7VecFx32i kind:function(arm,size=0xb0) addr:0x02071d34
func_ov000_02071de4 kind:function(arm,size=0xa0) addr:0x02071de4
func_ov000_02071e84 kind:function(arm,size=0x14) addr:0x02071e84
func_ov000_02071e98 kind:function(arm,size=0x14) addr:0x02071e98
@@ -1253,7 +1253,7 @@ func_ov000_020781d4 kind:function(arm,size=0x14) addr:0x020781d4
func_ov000_020781e8 kind:function(arm,size=0x48) addr:0x020781e8
_ZN21UnkStruct_027e09bc_0c19func_ov000_02078230Ei kind:function(arm,size=0xe4) addr:0x02078230
func_ov000_02078314 kind:function(arm,size=0x38) addr:0x02078314
_ZN21UnkStruct_027e09bc_0c19func_ov000_0207834cEP5Vec3pii kind:function(arm,size=0x40) addr:0x0207834c
_ZN21UnkStruct_027e09bc_0c19func_ov000_0207834cEP7VecFx32ii kind:function(arm,size=0x40) addr:0x0207834c
func_ov000_0207838c kind:function(arm,size=0x70) addr:0x0207838c
func_ov000_020783fc kind:function(arm,size=0x88) addr:0x020783fc
func_ov000_02078484 kind:function(arm,size=0x40) addr:0x02078484
@@ -1270,7 +1270,7 @@ func_ov000_020786dc kind:function(arm,size=0x2c) addr:0x020786dc
func_ov000_02078708 kind:function(arm,size=0x24) addr:0x02078708
func_ov000_0207872c kind:function(arm,size=0x1c) addr:0x0207872c
func_ov000_02078748 kind:function(arm,size=0x1c) addr:0x02078748
_ZN21UnkStruct_027e09bc_0c19func_ov000_02078764EP5Vec3pPvi kind:function(arm,size=0x54) addr:0x02078764
_ZN21UnkStruct_027e09bc_0c19func_ov000_02078764EP7VecFx32Pvi kind:function(arm,size=0x54) addr:0x02078764
func_ov000_020787b8 kind:function(arm,size=0x7c) addr:0x020787b8
func_ov000_02078834 kind:function(arm,size=0x9c) addr:0x02078834
func_ov000_020788d0 kind:function(arm,size=0x68) addr:0x020788d0
@@ -1560,7 +1560,7 @@ func_ov000_02080190 kind:function(arm,size=0x20) addr:0x02080190
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x020801b0
func_ov000_02080210 kind:function(arm,size=0x78) addr:0x02080210
func_ov000_02080288 kind:function(arm,size=0x64) addr:0x02080288
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020802ecEtP5Vec3p kind:function(arm,size=0x78) addr:0x020802ec
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020802ecEtP7VecFx32 kind:function(arm,size=0x78) addr:0x020802ec
func_ov000_02080364 kind:function(arm,size=0x88) addr:0x02080364
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020803ecEt kind:function(arm,size=0x150) addr:0x020803ec
_ZN21UnkStruct_027e0cd8_0c19func_ov000_0208053cEt kind:function(arm,size=0xe4) addr:0x0208053c
@@ -2096,7 +2096,7 @@ func_ov000_02090750 kind:function(arm,size=0x3c) addr:0x02090750
func_ov000_0209078c kind:function(arm,size=0x30) addr:0x0209078c
_ZN24UnkStruct_ov000_0208f8208vfunc_14Ev kind:function(arm,size=0x4) addr:0x020907bc
_ZN24UnkStruct_ov000_0208f8208vfunc_18Eiii kind:function(arm,size=0x4) addr:0x020907c0
_ZN24UnkStruct_ov000_0208f8208vfunc_1cEP5Vec3p kind:function(arm,size=0x54) addr:0x020907c4
_ZN24UnkStruct_ov000_0208f8208vfunc_1cEP7VecFx32 kind:function(arm,size=0x54) addr:0x020907c4
func_ov000_02090818 kind:function(arm,size=0x38) addr:0x02090818
func_ov000_02090850 kind:function(arm,size=0x90) addr:0x02090850
func_ov000_020908e0 kind:function(arm,size=0x104) addr:0x020908e0
@@ -2326,13 +2326,13 @@ _ZN5Actor8vfunc_30Ev kind:function(arm,size=0x4) addr:0x020984c4
_ZN5Actor8vfunc_34Ev kind:function(arm,size=0x8) addr:0x020984c8
_ZN5Actor19func_ov000_020984d0Ev kind:function(arm,size=0x20) addr:0x020984d0
_ZN5Actor19func_ov000_020984f0Ev kind:function(arm,size=0x28) addr:0x020984f0
_ZN5Actor8vfunc_00EP5Vec3p kind:function(arm,size=0x24) addr:0x02098518
_ZN5Actor8vfunc_00EP7VecFx32 kind:function(arm,size=0x24) addr:0x02098518
_ZN5Actor19func_ov000_0209853cEi kind:function(arm,size=0x18) addr:0x0209853c
_ZN5Actor8vfunc_04Ev kind:function(arm,size=0x18) addr:0x02098554
_ZN5Actor8vfunc_08Ev kind:function(arm,size=0xc) addr:0x0209856c
_ZN5Actor8vfunc_0cEv kind:function(arm,size=0xc) addr:0x02098578
_ZN5Actor8vfunc_38Ei kind:function(arm,size=0x6c) addr:0x02098584
_ZN5Actor8vfunc_3cEiP5Vec3p kind:function(arm,size=0x3c) addr:0x020985f0
_ZN5Actor8vfunc_3cEiP7VecFx32 kind:function(arm,size=0x3c) addr:0x020985f0
_ZN5Actor19func_ov000_0209862cEi kind:function(arm,size=0x28) addr:0x0209862c
func_ov000_02098654 kind:function(arm,size=0x28) addr:0x02098654
func_ov000_0209867c kind:function(arm,size=0x38) addr:0x0209867c
@@ -2561,7 +2561,7 @@ _ZN9MapObject8vfunc_1CEv kind:function(arm,size=0x8) addr:0x0209d1cc
_ZN9MapObject8vfunc_20Ev kind:function(arm,size=0x4) addr:0x0209d1d4
_ZN9MapObject8vfunc_24Ev kind:function(arm,size=0xc) addr:0x0209d1d8
_ZN9MapObject8vfunc_28Ev kind:function(arm,size=0x8) addr:0x0209d1e4
_ZN9MapObject8vfunc_2CEP5Vec3p kind:function(arm,size=0x40) addr:0x0209d1ec
_ZN9MapObject8vfunc_2CEP7VecFx32 kind:function(arm,size=0x40) addr:0x0209d1ec
_ZN9MapObject19func_ov000_0209d22cEPsPS_i kind:function(arm,size=0x48) addr:0x0209d22c
_ZN9MapObject19func_ov000_0209d274Ei kind:function(arm,size=0x28) addr:0x0209d274
_ZN9MapObject19func_ov000_0209d29cEi kind:function(arm,size=0x28) addr:0x0209d29c
@@ -2570,11 +2570,11 @@ _ZN9MapObject19func_ov000_0209d2f0EiiP5Vec2b kind:function(arm,size=0xc4) addr:0
_ZN9MapObject19func_ov000_0209d3b4Eii kind:function(arm,size=0x80) addr:0x0209d3b4
_ZN9MapObject19func_ov000_0209d434EPcP34UnkStruct_ov019_020d24c8_28_258_00i kind:function(arm,size=0xe4) addr:0x0209d434
_ZN9MapObject19func_ov000_0209d518Eiiih kind:function(arm,size=0x34) addr:0x0209d518
_ZN9MapObject19func_ov000_0209d54cEPvPS_iP5Vec3pii kind:function(arm,size=0x7c) addr:0x0209d54c
_ZN9MapObject19func_ov000_0209d54cEPvPS_iP7VecFx32ii kind:function(arm,size=0x7c) addr:0x0209d54c
_ZN9MapObject19func_ov000_0209d5c8E8ActorRef kind:function(arm,size=0x4c) addr:0x0209d5c8
_ZN9MapObject19func_ov000_0209d614Ei kind:function(arm,size=0x54) addr:0x0209d614
_ZN9MapObject19func_ov000_0209d668Ev kind:function(arm,size=0x44) addr:0x0209d668
_ZN9MapObject19func_ov000_0209d6acEP5Vec3p kind:function(arm,size=0x54) addr:0x0209d6ac
_ZN9MapObject19func_ov000_0209d6acEP7VecFx32 kind:function(arm,size=0x54) addr:0x0209d6ac
func_ov000_0209d700 kind:function(arm,size=0x50) addr:0x0209d700
_ZN19func_ov000_0209d750D0Ev kind:function(arm,size=0x1c) addr:0x0209d750
_ZN19func_ov000_0209d76cD2Ev kind:function(arm,size=0x14) addr:0x0209d76c
@@ -2669,10 +2669,10 @@ func_ov000_0209fe54 kind:function(arm,size=0x18) addr:0x0209fe54
func_ov000_0209fe6c kind:function(arm,size=0x18) addr:0x0209fe6c
func_ov000_0209fe84 kind:function(arm,size=0x1c) addr:0x0209fe84
func_ov000_0209fea0 kind:function(arm,size=0xc) addr:0x0209fea0
_ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP5Vec3piii kind:function(arm,size=0x78) addr:0x0209feac
_ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP7VecFx32iii kind:function(arm,size=0x78) addr:0x0209feac
func_ov000_0209ff24 kind:function(arm,size=0x28) addr:0x0209ff24
func_ov000_0209ff4c kind:function(arm,size=0x40) addr:0x0209ff4c
_ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP5Vec3pi kind:function(arm,size=0x74) addr:0x0209ff8c
_ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP7VecFx32i kind:function(arm,size=0x74) addr:0x0209ff8c
func_ov000_020a0000 kind:function(arm,size=0xa0) addr:0x020a0000
func_ov000_020a00a0 kind:function(arm,size=0x34) addr:0x020a00a0
func_ov000_020a00d4 kind:function(arm,size=0x3c) addr:0x020a00d4
@@ -3035,7 +3035,7 @@ _ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8db0Ev kind:function(arm,size=0x20)
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8dd0Ev kind:function(arm,size=0x20) addr:0x020a8dd0
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8df0E8ActorRefi kind:function(arm,size=0x94) addr:0x020a8df0
_ZN23ActorUnk_ov000_020a8bb08vfunc_b4Ev kind:function(arm,size=0x18) addr:0x020a8e84
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8e9cEP5Vec3p kind:function(arm,size=0x24) addr:0x020a8e9c
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8e9cEP7VecFx32 kind:function(arm,size=0x24) addr:0x020a8e9c
_ZN23ActorUnk_ov000_020a8bb08vfunc_b0Ev kind:function(arm,size=0x94) addr:0x020a8ec0
_ZN23ActorUnk_ov000_020a8bb08vfunc_88Ev kind:function(arm,size=0x8) addr:0x020a8f54
_ZN23ActorUnk_ov000_020a8bb08vfunc_8cEv kind:function(arm,size=0x8) addr:0x020a8f5c
@@ -3049,7 +3049,7 @@ _ZN23ActorUnk_ov000_020a8bb08vfunc_68Ev kind:function(arm,size=0x50) addr:0x020a
_ZN23ActorUnk_ov000_020a8bb08vfunc_7cEv kind:function(arm,size=0x8) addr:0x020a91a0
_ZN23ActorUnk_ov000_020a8bb08vfunc_80Ev kind:function(arm,size=0x8) addr:0x020a91a8
_ZN23ActorUnk_ov000_020a8bb08vfunc_84Ev kind:function(arm,size=0x8) addr:0x020a91b0
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a91b8EP5Vec3pi kind:function(arm,size=0x48) addr:0x020a91b8
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a91b8EP7VecFx32i kind:function(arm,size=0x48) addr:0x020a91b8
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a9200Ev kind:function(arm,size=0x1c) addr:0x020a9200
_ZN23ActorUnk_ov000_020a8bb08vfunc_70Ev kind:function(arm,size=0x24) addr:0x020a921c
_ZN23ActorUnk_ov000_020a8bb08vfunc_74Ev kind:function(arm,size=0x4) addr:0x020a9240
+2 -2
View File
@@ -109,9 +109,9 @@ _ZN18UnkStruct_027e09987DestroyEv kind:function(arm,size=0x2c) addr:0x020c6f08
_ZN18UnkStruct_027e0998D1Ev kind:function(arm,size=0x14) addr:0x020c6f34
_ZN18UnkStruct_027e0998C1Ev kind:function(arm,size=0x20) addr:0x020c6f48
_ZN18UnkStruct_027e09986CreateEv kind:function(arm,size=0x24) addr:0x020c6f68
_ZN18UnkStruct_027e09988vfunc_00EP5Vec3pP5Vec2sPt kind:function(arm,size=0x1e0) addr:0x020c6f8c
_ZN18UnkStruct_027e09988vfunc_00EP7VecFx32P5Vec2sPt kind:function(arm,size=0x1e0) addr:0x020c6f8c
_ZN18UnkStruct_027e099819func_ov024_020c716cEv kind:function(arm,size=0xa8) addr:0x020c716c
_ZN18UnkStruct_027e099819func_ov024_020c7214EP5Vec3pP5Vec2sPt kind:function(arm,size=0x68) addr:0x020c7214
_ZN18UnkStruct_027e099819func_ov024_020c7214EP7VecFx32P5Vec2sPt kind:function(arm,size=0x68) addr:0x020c7214
_ZN18UnkStruct_027e099819func_ov024_020c727cEP5Vec2sPt kind:function(arm,size=0x84) addr:0x020c727c
_ZN18UnkStruct_027e099819func_ov024_020c7300Ei kind:function(arm,size=0x54) addr:0x020c7300
_ZN18UnkStruct_027e099819func_ov024_020c7354Ev kind:function(arm,size=0x3c) addr:0x020c7354
+4 -4
View File
@@ -559,7 +559,7 @@ _ZN19ActorProfileUnkROCKD1Ev kind:function(arm,size=0x14) addr:0x020e8ca4
_ZN17ActorProfileRupee10GetProfileEv kind:function(arm,size=0xc) addr:0x020e8cb8
_ZN17ActorProfileRupee6CreateEv kind:function(arm,size=0x24) addr:0x020e8cc4
_ZN17ActorProfileRupeeC1Ev kind:function(arm,size=0x44) addr:0x020e8ce8
_ZN10ActorRupee19func_ov031_020e8d2cEP5Vec3phii kind:function(arm,size=0x7c) addr:0x020e8d2c
_ZN10ActorRupee19func_ov031_020e8d2cEP7VecFx32hii kind:function(arm,size=0x7c) addr:0x020e8d2c
_ZN10ActorRupeeC1Ev kind:function(arm,size=0x74) addr:0x020e8da8
_ZN10ActorRupee8vfunc_18Ei kind:function(arm,size=0x1d0) addr:0x020e8e1c
_ZN10ActorRupee19func_ov031_020e8fecEv kind:function(arm,size=0x7c) addr:0x020e8fec
@@ -1298,7 +1298,7 @@ _ZN17MapObjectDoorBase19func_ov031_020fcd40Ev kind:function(arm,size=0x28) addr:
_ZN17MapObjectDoorBase8vfunc_70Ev kind:function(arm,size=0x80) addr:0x020fcd68
_ZN17MapObjectDoorBase8vfunc_44Ev kind:function(arm,size=0x4) addr:0x020fcde8
_ZN17MapObjectDoorBase8vfunc_4CEv kind:function(arm,size=0x4) addr:0x020fcdec
_ZN17MapObjectDoorBase8vfunc_84EiP5Vec3pPs kind:function(arm,size=0x11c) addr:0x020fcdf0
_ZN17MapObjectDoorBase8vfunc_84EiP7VecFx32Ps kind:function(arm,size=0x11c) addr:0x020fcdf0
_ZN17MapObjectDoorBase19func_ov031_020fcf0cEi kind:function(arm,size=0x24) addr:0x020fcf0c
_ZN17MapObjectDoorBase19func_ov031_020fcf30Ev kind:function(arm,size=0x44) addr:0x020fcf30
_ZN17MapObjectDoorBase9vfunc2_04Ev kind:function(arm,size=0x4) addr:0x020fcf74
@@ -1338,8 +1338,8 @@ _ZN24MapObjectDoorDangerSpawn8vfunc_48Ev kind:function(arm,size=0x2c) addr:0x020
_ZN24MapObjectDoorDangerSpawn8vfunc_4CEv kind:function(arm,size=0x44) addr:0x020fe2e8
_ZN24MapObjectDoorDangerSpawn8vfunc_88Ev kind:function(arm,size=0x24) addr:0x020fe32c
_ZN24MapObjectDoorDangerSpawn8vfunc_8CEv kind:function(arm,size=0x38) addr:0x020fe350
_ZN24MapObjectDoorDangerSpawn8vfunc_84EiP5Vec3pPs kind:function(arm,size=0x274) addr:0x020fe388
_ZN24MapObjectDoorDangerSpawn19func_ov031_020fe5fcEP5Vec3pPS_ kind:function(arm,size=0x9c) addr:0x020fe5fc
_ZN24MapObjectDoorDangerSpawn8vfunc_84EiP7VecFx32Ps kind:function(arm,size=0x274) addr:0x020fe388
_ZN24MapObjectDoorDangerSpawn19func_ov031_020fe5fcEP7VecFx32PS_ kind:function(arm,size=0x9c) addr:0x020fe5fc
_ZN24MapObjectDoorDangerSpawnD1Ev kind:function(arm,size=0x30) addr:0x020fe698
_ZN24MapObjectDoorDangerSpawnD0Ev kind:function(arm,size=0x38) addr:0x020fe6c8
_ZN31MapObjectProfileDoorDangerSpawnD1Ev kind:function(arm,size=0x14) addr:0x020fe700
+1 -1
View File
@@ -4,7 +4,7 @@ _ZN17PlayerSceneChangeD0Ev kind:function(arm,size=0x60) addr:0x02184b5c
_ZN17PlayerSceneChange19func_ov112_02184bbcEs kind:function(arm,size=0x58) addr:0x02184bbc
_ZN17PlayerSceneChange8vfunc_0cEP35UnkStruct_PlayerGet_vfunc_0c_param1 kind:function(arm,size=0xb68) addr:0x02184c14
_ZN17PlayerSceneChange8vfunc_10Eii kind:function(arm,size=0x80c) addr:0x0218577c
_ZN17PlayerSceneChange8vfunc_1cEP5Vec3p kind:function(arm,size=0x84) addr:0x02185f88
_ZN17PlayerSceneChange8vfunc_1cEP7VecFx32 kind:function(arm,size=0x84) addr:0x02185f88
_ZN18PlayerSceneChange2C1Ev kind:function(arm,size=0x40) addr:0x0218600c
_ZN18PlayerSceneChange28vfunc_0cEP35UnkStruct_PlayerGet_vfunc_0c_param1 kind:function(arm,size=0x25c) addr:0x0218604c
_ZN18PlayerSceneChange28vfunc_10Eii kind:function(arm,size=0x208) addr:0x021862a8
+9 -9
View File
@@ -685,11 +685,11 @@ _ZN18UnkStruct_02049b8013func_02013ee8Eii kind:function(arm,size=0x98) addr:0x02
func_02013f80 kind:function(arm,size=0x6c) addr:0x02013f80
func_02013fec kind:function(arm,size=0xc) addr:0x02013fec
func_02013ff8 kind:function(arm,size=0x12c) addr:0x02013ff8
_ZN12TouchControl11UpdateStateEP10TouchStatePK15TouchStateFlags kind:function(arm,size=0xb8) addr:0x02014124
_ZN12TouchControl11UpdateStateEP10TouchStatePK6TPData kind:function(arm,size=0xb8) addr:0x02014124
_ZN12TouchControlC1Ev kind:function(thumb,size=0x3c) addr:0x020141dc
_ZN12TouchControl13IncreaseSpeedEt kind:function(arm,size=0x18) addr:0x02014218
_ZN12TouchControl11UpdateFlagsEt kind:function(arm,size=0x12c) addr:0x02014230
_ZN12TouchControl20UpdateWithStateFlagsEP15TouchStateFlagst kind:function(arm,size=0x44) addr:0x0201435c
_ZN12TouchControl20UpdateWithStateFlagsEP6TPDatat kind:function(arm,size=0x44) addr:0x0201435c
_ZN12TouchControl6UpdateEPK10TouchStatet kind:function(arm,size=0x50) addr:0x020143a0
_ZN12TouchControl13func_020143f0Ev kind:function(arm,size=0x24) addr:0x020143f0
_ZN12TouchControl13func_02014414Etb kind:function(arm,size=0x64) addr:0x02014414
@@ -1775,15 +1775,15 @@ FS_func_0034 kind:function(arm,size=0x8) addr:0x0202d4d8
FS_AddRomVolume kind:function(arm,size=0x144) addr:0x0202d4e0
func_0202d624 kind:function(arm,size=0x20) addr:0x0202d624
func_0202d644 kind:function(arm,size=0x30) addr:0x0202d644
func_0202d674 kind:function(arm,size=0x1c) addr:0x0202d674
func_0202d690 kind:function(arm,size=0x3c) addr:0x0202d690
func_0202d6cc kind:function(arm,size=0x28) addr:0x0202d6cc
func_0202d6f4 kind:function(arm,size=0xfc) addr:0x0202d6f4
FS_GetOverlaySize kind:function(arm,size=0x1c) addr:0x0202d674
FS_ClearOverlayCacheAndBss kind:function(arm,size=0x3c) addr:0x0202d690
FS_Overlay_0202d6cc kind:function(arm,size=0x28) addr:0x0202d6cc
FS_Overlay_0202d6f4 kind:function(arm,size=0xfc) addr:0x0202d6f4
FS_LoadOverlayInfo kind:function(arm,size=0x100) addr:0x0202d7f0
FS_LoadOverlayFile kind:function(arm,size=0x94) addr:0x0202d8f0
func_0202d984 kind:function(arm,size=0x90) addr:0x0202d984
FS_Overlay_0202d984 kind:function(arm,size=0x90) addr:0x0202d984
FS_StartOverlay kind:function(arm,size=0xf4) addr:0x0202da14
Overlay_CleanupResources kind:function(arm,size=0xf0) addr:0x0202db08
FS_CleanupOverlayResources kind:function(arm,size=0xf0) addr:0x0202db08
FS_StopOverlay kind:function(arm,size=0x10) addr:0x0202dbf8
FS_LoadOverlay kind:function(arm,size=0x58) addr:0x0202dc08
FS_UnloadOverlay kind:function(arm,size=0x50) addr:0x0202dc60
@@ -1801,7 +1801,7 @@ TP_GetUserInfo kind:function(arm,size=0x94) addr:0x0202e864
TP_SetCalibrateParam kind:function(arm,size=0xf0) addr:0x0202e8f8
TP_func_0002 kind:function(arm,size=0x9c) addr:0x0202e9e8
TP_func_0003 kind:function(arm,size=0x4c) addr:0x0202ea84
TP_GetTouchStateFlags kind:function(arm,size=0x1c) addr:0x0202ead0
TP_GetData kind:function(arm,size=0x1c) addr:0x0202ead0
TP_func_0004 kind:function(arm,size=0x1ec) addr:0x0202eaec
TP_GetCalibratedPoint kind:function(arm,size=0x11c) addr:0x0202ecd8
TP_func_0005 kind:function(arm,size=0x18) addr:0x0202edf4
+6 -6
View File
@@ -22,7 +22,7 @@ func_01ff92a8 kind:function(arm,size=0x64) addr:0x01ff92a8
func_01ff930c kind:function(arm,size=0xc) addr:0x01ff930c
func_01ff9318 kind:function(arm,size=0x4c) addr:0x01ff9318
func_01ff9364 kind:function(arm,size=0x28) addr:0x01ff9364
Vec3p_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c
VecFx32_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c
func_01ff93c0 kind:function(arm,size=0x5c) addr:0x01ff93c0
func_01ff941c kind:function(arm,size=0x60) addr:0x01ff941c
func_01ff947c kind:function(arm,size=0x50) addr:0x01ff947c
@@ -97,12 +97,12 @@ func_01ffb618 kind:function(arm,size=0x2c) addr:0x01ffb618
func_01ffb644 kind:function(arm,size=0x28) addr:0x01ffb644
func_01ffb66c kind:function(arm,size=0x3c) addr:0x01ffb66c
func_01ffb6a8 kind:function(arm,size=0x3c) addr:0x01ffb6a8
Vec3p_Add kind:function(arm,size=0x30) addr:0x01ffb6e4
VecFx32_Add kind:function(arm,size=0x30) addr:0x01ffb6e4
func_01ffb714 kind:function(arm,size=0x30) addr:0x01ffb714
Vec3p_Dot kind:function(arm,size=0x3c) addr:0x01ffb744
VecFx32_Dot kind:function(arm,size=0x3c) addr:0x01ffb744
func_01ffb780 kind:function(arm,size=0x80) addr:0x01ffb780
Vec3p_Length kind:function(arm,size=0x60) addr:0x01ffb800
Vec3p_Normalize kind:function(arm,size=0x114) addr:0x01ffb860
VecFx32_Length kind:function(arm,size=0x60) addr:0x01ffb800
VecFx32_Normalize kind:function(arm,size=0x114) addr:0x01ffb860
func_01ffb974 kind:function(arm,size=0x58) addr:0x01ffb974
func_01ffb9cc kind:function(arm,size=0x7c) addr:0x01ffb9cc
func_01ffba48 kind:function(arm,size=0x198) addr:0x01ffba48
@@ -212,7 +212,7 @@ _ZN9MapObject13func_01fff590Ei kind:function(arm,size=0x40) addr:0x01fff590
_ZN10ActorRupee13func_01fff5d0Eii kind:function(arm,size=0x3c) addr:0x01fff5d0
_ZN18UnkStruct_027e09b413func_01fff60cEiiihii kind:function(arm,size=0x8c) addr:0x01fff60c
func_01fff698 kind:function(arm,size=0x38) addr:0x01fff698
_ZN21UnkStruct_027e0cd8_1013func_01fff6d0EP5Vec3pPiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
_ZN21UnkStruct_027e0cd8_1013func_01fff6d0EP7VecFx32PiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
func_01fff744 kind:function(arm,size=0x20) addr:0x01fff744
func_01fff764 kind:function(arm,size=0xec) addr:0x01fff764
func_01fff850 kind:function(arm,size=0x158) addr:0x01fff850
+17 -17
View File
@@ -12,7 +12,7 @@ func_ov000_02053f94 kind:function(arm,size=0xec) addr:0x02053f94
func_ov000_02054080 kind:function(arm,size=0xcc) addr:0x02054080
func_ov000_0205414c kind:function(arm,size=0x60) addr:0x0205414c
func_ov000_020541ac kind:function(arm,size=0x1c) addr:0x020541ac
_ZN23UnkSystem7_UnkStruct_0019func_ov000_02052c48EP5Vec3pS1_ kind:function(arm,size=0xf0) addr:0x020541c8
_ZN23UnkSystem7_UnkStruct_0019func_ov000_02052c48EP7VecFx32S1_ kind:function(arm,size=0xf0) addr:0x020541c8
func_ov000_020542b8 kind:function(arm,size=0x38) addr:0x020542b8
func_ov000_020542f0 kind:function(arm,size=0xb4) addr:0x020542f0
func_ov000_020543a4 kind:function(arm,size=0x78) addr:0x020543a4
@@ -486,7 +486,7 @@ _ZN23UnkStruct_027e0998_Base19func_ov000_02061768Ev kind:function(arm,size=0x4)
func_ov000_02062cf4 kind:function(thumb,size=0xbc) addr:0x02062cf4
func_ov000_02062db0 kind:function(thumb,size=0x28) addr:0x02062db0
_ZN23UnkStruct_027e0998_Base19func_ov000_02061850Ei kind:function(arm,size=0x18) addr:0x02062dd8
_ZN23UnkStruct_027e0998_Base8vfunc_00EP5Vec3pP5Vec2sPt kind:function(arm,size=0x1e0) addr:0x02062df0
_ZN23UnkStruct_027e0998_Base8vfunc_00EP7VecFx32P5Vec2sPt kind:function(arm,size=0x1e0) addr:0x02062df0
func_ov000_02062fd0 kind:function(arm,size=0x28) addr:0x02062fd0
_ZN23UnkStruct_027e0998_Base19func_ov000_02061a70Ev kind:function(arm,size=0xc) addr:0x02062ff8
func_ov000_02063004 kind:function(arm,size=0x10) addr:0x02063004
@@ -1062,11 +1062,11 @@ func_ov000_02072fec kind:function(arm,size=0x60) addr:0x02072fec
func_ov000_0207304c kind:function(arm,size=0x1c) addr:0x0207304c
func_ov000_02073068 kind:function(arm,size=0xc4) addr:0x02073068
func_ov000_0207312c kind:function(arm,size=0xbc) addr:0x0207312c
_ZN18UnkStruct_027e09a819func_ov000_02071b30EiP5Vec3pi kind:function(arm,size=0xa4) addr:0x020731e8
_ZN18UnkStruct_027e09a819func_ov000_02071b30EiP7VecFx32i kind:function(arm,size=0xa4) addr:0x020731e8
func_ov000_0207328c kind:function(arm,size=0x90) addr:0x0207328c
func_ov000_0207331c kind:function(arm,size=0x2c) addr:0x0207331c
func_ov000_02073348 kind:function(arm,size=0xa4) addr:0x02073348
_ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP5Vec3pi kind:function(arm,size=0xb0) addr:0x020733ec
_ZN18UnkStruct_027e09a819func_ov000_02071d34EPviP7VecFx32i kind:function(arm,size=0xb0) addr:0x020733ec
func_ov000_0207349c kind:function(arm,size=0xa0) addr:0x0207349c
func_ov000_0207353c kind:function(arm,size=0x14) addr:0x0207353c
func_ov000_02073550 kind:function(arm,size=0x14) addr:0x02073550
@@ -1251,7 +1251,7 @@ func_ov000_0207988c kind:function(arm,size=0x14) addr:0x0207988c
func_ov000_020798a0 kind:function(arm,size=0x48) addr:0x020798a0
_ZN21UnkStruct_027e09bc_0c19func_ov000_02078230Ei kind:function(arm,size=0xe4) addr:0x020798e8
func_ov000_020799cc kind:function(arm,size=0x38) addr:0x020799cc
_ZN21UnkStruct_027e09bc_0c19func_ov000_0207834cEP5Vec3pii kind:function(arm,size=0x40) addr:0x02079a04
_ZN21UnkStruct_027e09bc_0c19func_ov000_0207834cEP7VecFx32ii kind:function(arm,size=0x40) addr:0x02079a04
func_ov000_02079a44 kind:function(arm,size=0x70) addr:0x02079a44
func_ov000_02079ab4 kind:function(arm,size=0x88) addr:0x02079ab4
func_ov000_02079b3c kind:function(arm,size=0x40) addr:0x02079b3c
@@ -1268,7 +1268,7 @@ func_ov000_02079d94 kind:function(arm,size=0x2c) addr:0x02079d94
func_ov000_02079dc0 kind:function(arm,size=0x24) addr:0x02079dc0
func_ov000_02079de4 kind:function(arm,size=0x1c) addr:0x02079de4
func_ov000_02079e00 kind:function(arm,size=0x1c) addr:0x02079e00
_ZN21UnkStruct_027e09bc_0c19func_ov000_02078764EP5Vec3pPvi kind:function(arm,size=0x54) addr:0x02079e1c
_ZN21UnkStruct_027e09bc_0c19func_ov000_02078764EP7VecFx32Pvi kind:function(arm,size=0x54) addr:0x02079e1c
func_ov000_02079e70 kind:function(arm,size=0x7c) addr:0x02079e70
func_ov000_02079eec kind:function(arm,size=0x9c) addr:0x02079eec
func_ov000_02079f88 kind:function(arm,size=0x68) addr:0x02079f88
@@ -1558,7 +1558,7 @@ func_ov000_02081848 kind:function(arm,size=0x20) addr:0x02081848
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x02081868
func_ov000_020818c8 kind:function(arm,size=0x78) addr:0x020818c8
func_ov000_02081940 kind:function(arm,size=0x64) addr:0x02081940
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020802ecEtP5Vec3p kind:function(arm,size=0x78) addr:0x020819a4
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020802ecEtP7VecFx32 kind:function(arm,size=0x78) addr:0x020819a4
func_ov000_02081a1c kind:function(arm,size=0x88) addr:0x02081a1c
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020803ecEt kind:function(arm,size=0x150) addr:0x02081aa4
_ZN21UnkStruct_027e0cd8_0c19func_ov000_0208053cEt kind:function(arm,size=0xe4) addr:0x02081bf4
@@ -2094,7 +2094,7 @@ func_ov000_02091e2c kind:function(arm,size=0x3c) addr:0x02091e2c
func_ov000_02091e68 kind:function(arm,size=0x30) addr:0x02091e68
_ZN24UnkStruct_ov000_0208f8208vfunc_14Ev kind:function(arm,size=0x4) addr:0x02091e98
_ZN24UnkStruct_ov000_0208f8208vfunc_18Eiii kind:function(arm,size=0x4) addr:0x02091e9c
_ZN24UnkStruct_ov000_0208f8208vfunc_1cEP5Vec3p kind:function(arm,size=0x54) addr:0x02091ea0
_ZN24UnkStruct_ov000_0208f8208vfunc_1cEP7VecFx32 kind:function(arm,size=0x54) addr:0x02091ea0
func_ov000_02091ef4 kind:function(arm,size=0x38) addr:0x02091ef4
func_ov000_02091f2c kind:function(arm,size=0x90) addr:0x02091f2c
func_ov000_02091fbc kind:function(arm,size=0x104) addr:0x02091fbc
@@ -2323,13 +2323,13 @@ _ZN5Actor8vfunc_30Ev kind:function(arm,size=0x4) addr:0x02099c6c
_ZN5Actor8vfunc_34Ev kind:function(arm,size=0x8) addr:0x02099c70
_ZN5Actor19func_ov000_020984d0Ev kind:function(arm,size=0x20) addr:0x02099c78
_ZN5Actor19func_ov000_020984f0Ev kind:function(arm,size=0x28) addr:0x02099c98
_ZN5Actor8vfunc_00EP5Vec3p kind:function(arm,size=0x24) addr:0x02099cc0
_ZN5Actor8vfunc_00EP7VecFx32 kind:function(arm,size=0x24) addr:0x02099cc0
_ZN5Actor19func_ov000_0209853cEi kind:function(arm,size=0x18) addr:0x02099ce4
_ZN5Actor8vfunc_04Ev kind:function(arm,size=0x18) addr:0x02099cfc
_ZN5Actor8vfunc_08Ev kind:function(arm,size=0xc) addr:0x02099d14
_ZN5Actor8vfunc_0cEv kind:function(arm,size=0xc) addr:0x02099d20
_ZN5Actor8vfunc_38Ei kind:function(arm,size=0x6c) addr:0x02099d2c
_ZN5Actor8vfunc_3cEiP5Vec3p kind:function(arm,size=0x3c) addr:0x02099d98
_ZN5Actor8vfunc_3cEiP7VecFx32 kind:function(arm,size=0x3c) addr:0x02099d98
_ZN5Actor19func_ov000_0209862cEi kind:function(arm,size=0x28) addr:0x02099dd4
func_ov000_02099dfc kind:function(arm,size=0x28) addr:0x02099dfc
func_ov000_02099e24 kind:function(arm,size=0x38) addr:0x02099e24
@@ -2557,7 +2557,7 @@ _ZN9MapObject8vfunc_1CEv kind:function(arm,size=0x8) addr:0x0209e990
_ZN9MapObject8vfunc_20Ev kind:function(arm,size=0x4) addr:0x0209e998
_ZN9MapObject8vfunc_24Ev kind:function(arm,size=0xc) addr:0x0209e99c
_ZN9MapObject8vfunc_28Ev kind:function(arm,size=0x8) addr:0x0209e9a8
_ZN9MapObject8vfunc_2CEP5Vec3p kind:function(arm,size=0x40) addr:0x0209e9b0
_ZN9MapObject8vfunc_2CEP7VecFx32 kind:function(arm,size=0x40) addr:0x0209e9b0
_ZN9MapObject19func_ov000_0209d22cEPsPS_i kind:function(arm,size=0x48) addr:0x0209e9f0
_ZN9MapObject19func_ov000_0209d274Ei kind:function(arm,size=0x28) addr:0x0209ea38
_ZN9MapObject19func_ov000_0209d29cEi kind:function(arm,size=0x28) addr:0x0209ea60
@@ -2566,11 +2566,11 @@ _ZN9MapObject19func_ov000_0209d2f0EiiP5Vec2b kind:function(arm,size=0xc4) addr:0
_ZN9MapObject19func_ov000_0209d3b4Eii kind:function(arm,size=0x80) addr:0x0209eb78
_ZN9MapObject19func_ov000_0209d434EPcP34UnkStruct_ov019_020d24c8_28_258_00i kind:function(arm,size=0xe4) addr:0x0209ebf8
_ZN9MapObject19func_ov000_0209d518Eiiih kind:function(arm,size=0x34) addr:0x0209ecdc
_ZN9MapObject19func_ov000_0209d54cEPvPS_iP5Vec3pii kind:function(arm,size=0x7c) addr:0x0209ed10
_ZN9MapObject19func_ov000_0209d54cEPvPS_iP7VecFx32ii kind:function(arm,size=0x7c) addr:0x0209ed10
_ZN9MapObject19func_ov000_0209d5c8E8ActorRef kind:function(arm,size=0x4c) addr:0x0209ed8c
_ZN9MapObject19func_ov000_0209d614Ei kind:function(arm,size=0x54) addr:0x0209edd8
_ZN9MapObject19func_ov000_0209d668Ev kind:function(arm,size=0x44) addr:0x0209ee2c
_ZN9MapObject19func_ov000_0209d6acEP5Vec3p kind:function(arm,size=0x54) addr:0x0209ee70
_ZN9MapObject19func_ov000_0209d6acEP7VecFx32 kind:function(arm,size=0x54) addr:0x0209ee70
func_ov000_0209eec4 kind:function(arm,size=0x50) addr:0x0209eec4
_ZN19func_ov000_0209ef14D0Ev kind:function(arm,size=0x1c) addr:0x0209ef14
_ZN19func_ov000_0209ef30D2Ev kind:function(arm,size=0x14) addr:0x0209ef30
@@ -2667,10 +2667,10 @@ func_ov000_020a162c kind:function(arm,size=0x18) addr:0x020a162c
func_ov000_020a1644 kind:function(arm,size=0x18) addr:0x020a1644
func_ov000_020a165c kind:function(arm,size=0x1c) addr:0x020a165c
func_ov000_020a1678 kind:function(arm,size=0xc) addr:0x020a1678
_ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP5Vec3piii kind:function(arm,size=0x78) addr:0x020a1684
_ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP7VecFx32iii kind:function(arm,size=0x78) addr:0x020a1684
func_ov000_020a16fc kind:function(arm,size=0x28) addr:0x020a16fc
func_ov000_020a1724 kind:function(arm,size=0x40) addr:0x020a1724
_ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP5Vec3pi kind:function(arm,size=0x74) addr:0x020a1764
_ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP7VecFx32i kind:function(arm,size=0x74) addr:0x020a1764
func_ov000_020a17d8 kind:function(arm,size=0xa0) addr:0x020a17d8
func_ov000_020a1878 kind:function(arm,size=0x34) addr:0x020a1878
func_ov000_020a18ac kind:function(arm,size=0x3c) addr:0x020a18ac
@@ -3034,7 +3034,7 @@ _ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8db0Ev kind:function(arm,size=0x20)
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8dd0Ev kind:function(arm,size=0x20) addr:0x020aa5d0
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8df0E8ActorRefi kind:function(arm,size=0x94) addr:0x020aa5f0
_ZN23ActorUnk_ov000_020a8bb08vfunc_b4Ev kind:function(arm,size=0x18) addr:0x020aa684
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8e9cEP5Vec3p kind:function(arm,size=0x24) addr:0x020aa69c
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a8e9cEP7VecFx32 kind:function(arm,size=0x24) addr:0x020aa69c
_ZN23ActorUnk_ov000_020a8bb08vfunc_b0Ev kind:function(arm,size=0x94) addr:0x020aa6c0
_ZN23ActorUnk_ov000_020a8bb08vfunc_88Ev kind:function(arm,size=0x8) addr:0x020aa754
_ZN23ActorUnk_ov000_020a8bb08vfunc_8cEv kind:function(arm,size=0x8) addr:0x020aa75c
@@ -3048,7 +3048,7 @@ _ZN23ActorUnk_ov000_020a8bb08vfunc_68Ev kind:function(arm,size=0x50) addr:0x020a
_ZN23ActorUnk_ov000_020a8bb08vfunc_7cEv kind:function(arm,size=0x8) addr:0x020aa9a0
_ZN23ActorUnk_ov000_020a8bb08vfunc_80Ev kind:function(arm,size=0x8) addr:0x020aa9a8
_ZN23ActorUnk_ov000_020a8bb08vfunc_84Ev kind:function(arm,size=0x8) addr:0x020aa9b0
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a91b8EP5Vec3pi kind:function(arm,size=0x48) addr:0x020aa9b8
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a91b8EP7VecFx32i kind:function(arm,size=0x48) addr:0x020aa9b8
_ZN23ActorUnk_ov000_020a8bb019func_ov000_020a9200Ev kind:function(arm,size=0x1c) addr:0x020aaa00
_ZN23ActorUnk_ov000_020a8bb08vfunc_70Ev kind:function(arm,size=0x24) addr:0x020aaa1c
_ZN23ActorUnk_ov000_020a8bb08vfunc_74Ev kind:function(arm,size=0x4) addr:0x020aaa40
+2 -2
View File
@@ -109,9 +109,9 @@ _ZN18UnkStruct_027e09987DestroyEv kind:function(arm,size=0x2c) addr:0x020c8758
_ZN18UnkStruct_027e0998D1Ev kind:function(arm,size=0x14) addr:0x020c8784
_ZN18UnkStruct_027e0998C1Ev kind:function(arm,size=0x20) addr:0x020c8798
_ZN18UnkStruct_027e09986CreateEv kind:function(arm,size=0x24) addr:0x020c87b8
_ZN18UnkStruct_027e09988vfunc_00EP5Vec3pP5Vec2sPt kind:function(arm,size=0x1e0) addr:0x020c87dc
_ZN18UnkStruct_027e09988vfunc_00EP7VecFx32P5Vec2sPt kind:function(arm,size=0x1e0) addr:0x020c87dc
_ZN18UnkStruct_027e099819func_ov024_020c716cEv kind:function(arm,size=0xa8) addr:0x020c89bc
_ZN18UnkStruct_027e099819func_ov024_020c7214EP5Vec3pP5Vec2sPt kind:function(arm,size=0x68) addr:0x020c8a64
_ZN18UnkStruct_027e099819func_ov024_020c7214EP7VecFx32P5Vec2sPt kind:function(arm,size=0x68) addr:0x020c8a64
_ZN18UnkStruct_027e099819func_ov024_020c727cEP5Vec2sPt kind:function(arm,size=0x84) addr:0x020c8acc
_ZN18UnkStruct_027e099819func_ov024_020c7300Ei kind:function(arm,size=0x54) addr:0x020c8b50
_ZN18UnkStruct_027e099819func_ov024_020c7354Ev kind:function(arm,size=0x3c) addr:0x020c8ba4
+4 -4
View File
@@ -559,7 +559,7 @@ _ZN19ActorProfileUnkROCKD1Ev kind:function(arm,size=0x14) addr:0x020ea690
_ZN17ActorProfileRupee10GetProfileEv kind:function(arm,size=0xc) addr:0x020ea6a4
_ZN17ActorProfileRupee6CreateEv kind:function(arm,size=0x24) addr:0x020ea6b0
_ZN17ActorProfileRupeeC1Ev kind:function(arm,size=0x44) addr:0x020ea6d4
_ZN10ActorRupee19func_ov031_020e8d2cEP5Vec3phii kind:function(arm,size=0x7c) addr:0x020ea718
_ZN10ActorRupee19func_ov031_020e8d2cEP7VecFx32hii kind:function(arm,size=0x7c) addr:0x020ea718
_ZN10ActorRupeeC1Ev kind:function(arm,size=0x74) addr:0x020ea794
_ZN10ActorRupee8vfunc_18Ei kind:function(arm,size=0x1d0) addr:0x020ea808
_ZN10ActorRupee19func_ov031_020e8fecEv kind:function(arm,size=0x7c) addr:0x020ea9d8
@@ -1297,7 +1297,7 @@ _ZN17MapObjectDoorBase19func_ov031_020fcd40Ev kind:function(arm,size=0x28) addr:
_ZN17MapObjectDoorBase8vfunc_70Ev kind:function(arm,size=0x80) addr:0x020fe7b0
_ZN17MapObjectDoorBase8vfunc_44Ev kind:function(arm,size=0x4) addr:0x020fe830
_ZN17MapObjectDoorBase8vfunc_4CEv kind:function(arm,size=0x4) addr:0x020fe834
_ZN17MapObjectDoorBase8vfunc_84EiP5Vec3pPs kind:function(arm,size=0x11c) addr:0x020fe838
_ZN17MapObjectDoorBase8vfunc_84EiP7VecFx32Ps kind:function(arm,size=0x11c) addr:0x020fe838
_ZN17MapObjectDoorBase19func_ov031_020fcf0cEi kind:function(arm,size=0x24) addr:0x020fe954
_ZN17MapObjectDoorBase19func_ov031_020fcf30Ev kind:function(arm,size=0x44) addr:0x020fe978
_ZN17MapObjectDoorBase9vfunc2_04Ev kind:function(arm,size=0x4) addr:0x020fe9bc
@@ -1337,8 +1337,8 @@ _ZN24MapObjectDoorDangerSpawn8vfunc_48Ev kind:function(arm,size=0x2c) addr:0x020
_ZN24MapObjectDoorDangerSpawn8vfunc_4CEv kind:function(arm,size=0x44) addr:0x020ffd90
_ZN24MapObjectDoorDangerSpawn8vfunc_88Ev kind:function(arm,size=0x24) addr:0x020ffdd4
_ZN24MapObjectDoorDangerSpawn8vfunc_8CEv kind:function(arm,size=0x38) addr:0x020ffdf8
_ZN24MapObjectDoorDangerSpawn8vfunc_84EiP5Vec3pPs kind:function(arm,size=0x274) addr:0x020ffe30
_ZN24MapObjectDoorDangerSpawn19func_ov031_020fe5fcEP5Vec3pPS_ kind:function(arm,size=0x9c) addr:0x021000a4
_ZN24MapObjectDoorDangerSpawn8vfunc_84EiP7VecFx32Ps kind:function(arm,size=0x274) addr:0x020ffe30
_ZN24MapObjectDoorDangerSpawn19func_ov031_020fe5fcEP7VecFx32PS_ kind:function(arm,size=0x9c) addr:0x021000a4
_ZN24MapObjectDoorDangerSpawnD1Ev kind:function(arm,size=0x30) addr:0x02100140
_ZN24MapObjectDoorDangerSpawnD0Ev kind:function(arm,size=0x38) addr:0x02100170
_ZN31MapObjectProfileDoorDangerSpawnD1Ev kind:function(arm,size=0x14) addr:0x021001a8
+1 -1
View File
@@ -4,7 +4,7 @@ _ZN17PlayerSceneChangeD0Ev kind:function(arm,size=0x60) addr:0x021866dc
_ZN17PlayerSceneChange19func_ov112_02184bbcEs kind:function(arm,size=0x58) addr:0x0218673c
_ZN17PlayerSceneChange8vfunc_0cEP35UnkStruct_PlayerGet_vfunc_0c_param1 kind:function(arm,size=0xb68) addr:0x02186794
_ZN17PlayerSceneChange8vfunc_10Eii kind:function(arm,size=0x80c) addr:0x021872fc
_ZN17PlayerSceneChange8vfunc_1cEP5Vec3p kind:function(arm,size=0x84) addr:0x02187b08
_ZN17PlayerSceneChange8vfunc_1cEP7VecFx32 kind:function(arm,size=0x84) addr:0x02187b08
_ZN18PlayerSceneChange2C1Ev kind:function(arm,size=0x40) addr:0x02187b8c
_ZN18PlayerSceneChange28vfunc_0cEP35UnkStruct_PlayerGet_vfunc_0c_param1 kind:function(arm,size=0x25c) addr:0x02187bcc
_ZN18PlayerSceneChange28vfunc_10Eii kind:function(arm,size=0x208) addr:0x02187e28
+8 -8
View File
@@ -685,11 +685,11 @@ _ZN18UnkStruct_02049b8013func_02013ee8Eii kind:function(arm,size=0x98) addr:0x02
func_02013f84 kind:function(arm,size=0x6c) addr:0x02013f84
func_02013ff0 kind:function(arm,size=0xc) addr:0x02013ff0
func_02013ffc kind:function(arm,size=0x12c) addr:0x02013ffc
_ZN12TouchControl11UpdateStateEP10TouchStatePK15TouchStateFlags kind:function(arm,size=0xb8) addr:0x02014128
_ZN12TouchControl11UpdateStateEP10TouchStatePK6TPData kind:function(arm,size=0xb8) addr:0x02014128
_ZN12TouchControlC1Ev kind:function(thumb,size=0x3c) addr:0x020141e0
_ZN12TouchControl13IncreaseSpeedEt kind:function(arm,size=0x18) addr:0x0201421c
_ZN12TouchControl11UpdateFlagsEt kind:function(arm,size=0x12c) addr:0x02014234
_ZN12TouchControl20UpdateWithStateFlagsEP15TouchStateFlagst kind:function(arm,size=0x44) addr:0x02014360
_ZN12TouchControl20UpdateWithStateFlagsEP6TPDatat kind:function(arm,size=0x44) addr:0x02014360
_ZN12TouchControl6UpdateEPK10TouchStatet kind:function(arm,size=0x50) addr:0x020143a4
_ZN12TouchControl13func_020143f0Ev kind:function(arm,size=0x24) addr:0x020143f4
_ZN12TouchControl13func_02014414Etb kind:function(arm,size=0x64) addr:0x02014418
@@ -1796,15 +1796,15 @@ FS_func_0034 kind:function(arm,size=0x8) addr:0x0202ea08
FS_AddRomVolume kind:function(arm,size=0x144) addr:0x0202ea10
func_0202d624 kind:function(arm,size=0x20) addr:0x0202eb54
func_0202eb74 kind:function(arm,size=0x30) addr:0x0202eb74
func_0202eba4 kind:function(arm,size=0x1c) addr:0x0202eba4
func_0202ebc0 kind:function(arm,size=0x3c) addr:0x0202ebc0
func_0202ebfc kind:function(arm,size=0x28) addr:0x0202ebfc
func_0202ec24 kind:function(arm,size=0xfc) addr:0x0202ec24
FS_GetOverlaySize kind:function(arm,size=0x1c) addr:0x0202eba4
FS_ClearOverlayCacheAndBss kind:function(arm,size=0x3c) addr:0x0202ebc0
FS_Overlay_0202d6cc kind:function(arm,size=0x28) addr:0x0202ebfc
FS_Overlay_0202d6f4 kind:function(arm,size=0xfc) addr:0x0202ec24
FS_LoadOverlayInfo kind:function(arm,size=0x100) addr:0x0202ed20
FS_LoadOverlayFile kind:function(arm,size=0x94) addr:0x0202ee20
func_0202eeb4 kind:function(arm,size=0x90) addr:0x0202eeb4
FS_Overlay_0202d984 kind:function(arm,size=0x90) addr:0x0202eeb4
FS_StartOverlay kind:function(arm,size=0xf4) addr:0x0202ef44
Overlay_CleanupResources kind:function(arm,size=0xf0) addr:0x0202f038
FS_CleanupOverlayResources kind:function(arm,size=0xf0) addr:0x0202f038
FS_StopOverlay kind:function(arm,size=0x10) addr:0x0202f128
FS_LoadOverlay kind:function(arm,size=0x58) addr:0x0202f138
FS_UnloadOverlay kind:function(arm,size=0x50) addr:0x0202f190
+8 -8
View File
@@ -20,7 +20,7 @@
class ActorParams {
public:
/* 00 */ Vec3p mInitialPos;
/* 00 */ VecFx32 mInitialPos;
/* 0C */ s16 mInitialAngle;
/* 0E */ s8 mUnk_0E;
/* 0F */ bool mUnk_0F;
@@ -102,9 +102,9 @@ class Actor_c4;
class Actor : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ Vec3p mPos;
/* 10 */ Vec3p mPrevPos;
/* 1C */ Vec3p mVel;
/* 04 */ VecFx32 mPos;
/* 10 */ VecFx32 mPrevPos;
/* 1C */ VecFx32 mVel;
/* 28 */ s16 mAngle;
/* 2A */ unk16 mUnk_2A;
/* 2C */ unk32 mUnk_2C; // gravity?
@@ -129,7 +129,7 @@ public:
/* 90 */ ActorProfile *mpProfile;
/* 94 */
/* 00 */ virtual void vfunc_00(Vec3p *param1);
/* 00 */ virtual void vfunc_00(VecFx32 *param1);
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual unk16 vfunc_08();
/* 0C */ virtual unk8 vfunc_0c();
@@ -144,7 +144,7 @@ public:
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual unk32 vfunc_34();
/* 38 */ virtual unk32 vfunc_38(unk32 param1);
/* 3C */ virtual bool vfunc_3c(unk32 param2, Vec3p *param3);
/* 3C */ virtual bool vfunc_3c(unk32 param2, VecFx32 *param3);
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
@@ -178,7 +178,7 @@ public:
unk32 func_ov000_02098910(unk32 param1, unk32 param2);
s32 func_ov000_02098518(unk32 *param1);
Vec3p *func_ov000_0209853c(unk32 param1);
VecFx32 *func_ov000_0209853c(unk32 param1);
s32 func_ov000_02098554();
s16 func_ov000_0209856c();
s8 func_ov000_02098578();
@@ -194,7 +194,7 @@ public:
bool func_ov000_02098a60(unk32 param1);
void func_ov000_02098a88(unk32 param1, unk32 param2);
void func_ov017_020bf5c4(Vec3p *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
void func_ov017_020bf5c4(VecFx32 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
};
struct Actor_c4_stack {
+1 -1
View File
@@ -78,7 +78,7 @@ public:
void func_ov017_020bf9c8(Actor *param1);
void func_ov031_020e8d2c(Vec3p *param1, u8 param2, unk32 param3, unk32 param4);
void func_ov031_020e8d2c(VecFx32 *param1, u8 param2, unk32 param3, unk32 param4);
void func_ov031_020e8fec();
void func_ov031_020e9068();
void func_ov031_020e9108();
+7 -7
View File
@@ -24,8 +24,8 @@ public:
/* 2C */ unk32 mUnk_2C;
/* 30 */ unk16 mUnk_30;
/* 32 */ unk16 mUnk_32;
/* 34 */ Vec3p mUnk_34;
/* 40 */ Vec3p mUnk_40;
/* 34 */ VecFx32 mUnk_34;
/* 40 */ VecFx32 mUnk_40;
/* 4C */
ActorUnk_vfunc_b0();
@@ -51,7 +51,7 @@ public:
/* 0A */ unk32 mUnk_08;
/* 0C */
void func_01ffc6d4(u16 param1, Vec3p *pos);
void func_01ffc6d4(u16 param1, VecFx32 *pos);
ActorUnk_ov000_020a8bb0_a4() {}
~ActorUnk_ov000_020a8bb0_a4() {}
@@ -71,7 +71,7 @@ public:
/* 0B4 */ unk32 mUnk_0B4;
/* 0B8 */ unk32 mUnk_0B8;
/* 0BC */ ActorRef mUnk_0BC;
/* 0C0 */ Vec3p mUnk_0C0;
/* 0C0 */ VecFx32 mUnk_0C0;
/* 0CC */ unk16 mUnk_0CC;
/* 0CC */ unk16 mUnk_0CE;
/* 0D0 */ unk32 mUnk_0D0;
@@ -134,14 +134,14 @@ public:
/* B8 */ virtual void vfunc_b8();
/* BC */
void func_ov000_020a8ae0(q20 param1);
void func_ov000_020a8ae0(fx32 param1);
ActorUnk_ov000_020a8bb0(UnkSystem4 *param1, unk32 param2);
bool func_ov000_020a8db0();
bool func_ov000_020a8dd0();
void func_ov000_020a8df0(ActorRef param1, unk32 param2);
void func_ov000_020a8e9c(Vec3p *param1);
void func_ov000_020a8e9c(VecFx32 *param1);
void func_ov000_020a8ff4();
void func_ov000_020a91b8(Vec3p *param1, unk32 param2);
void func_ov000_020a91b8(VecFx32 *param1, unk32 param2);
void func_ov000_020a9200();
void func_ov000_020a9248();
void func_ov000_020a94b0();
+6 -6
View File
@@ -49,12 +49,12 @@ public:
/* 9A */ unk8 mUnk_9A;
/* 9B */ SCCNType mUnk_9B : 8;
/* 9C */ unk32 mUnk_9C;
/* A0 */ q20 mUnk_A0;
/* A4 */ q20 mUnk_A4;
/* A8 */ q20 mUnk_A8;
/* AC */ q20 mUnk_AC;
/* B0 */ q20 mUnk_B0;
/* B4 */ q20 mUnk_B4;
/* A0 */ fx32 mUnk_A0;
/* A4 */ fx32 mUnk_A4;
/* A8 */ fx32 mUnk_A8;
/* AC */ fx32 mUnk_AC;
/* B0 */ fx32 mUnk_B0;
/* B4 */ fx32 mUnk_B4;
/* B8 */ unk32 mUnk_B8;
/* BC */ unk32 mUnk_BC;
/* C0 */ unk32 mUnk_C0;
+1 -1
View File
@@ -8,8 +8,8 @@
#include "global.h"
#include "iterator.hpp"
#include "math.hpp"
#include "regs.h"
#include "types.h"
#include <nitro/reg.h>
extern const unk16 data_ov019_020d1bb0[];
extern "C" void func_ov001_020bd6a8();
+2 -2
View File
@@ -5,11 +5,11 @@
#include "Player/TouchControl.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_02049b18.hpp"
#include "input.hpp"
#include "math.hpp"
#include "types.h"
#include <nitro/button.h>
#include <nitro/touch.h>
#include <nitro/tp.h>
class GameModeManagerBase;
class GameModeManagerBase_104;
+11 -11
View File
@@ -67,16 +67,16 @@ public:
/* 0C */ virtual void vfunc_0C() = 0;
/* 10 */ virtual void vfunc_10(Cylinder *param1) = 0;
/* 14 */ virtual void vfunc_14() = 0;
/* 18 */ virtual void vfunc_18(Vec3p *param1) = 0;
/* 1C */ virtual void vfunc_1C(Vec3p *param1) = 0;
/* 18 */ virtual void vfunc_18(VecFx32 *param1) = 0;
/* 1C */ virtual void vfunc_1C(VecFx32 *param1) = 0;
/* 20 */
};
class MapObject_10 : public MapObject_10_Base {
public:
/* 00 (vtable) */
/* 0C */ Vec3p mUnk_0C;
/* 18 */ Vec3p mUnk_18;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ VecFx32 mUnk_18;
/* 24 */
MapObject_10() {}
@@ -88,8 +88,8 @@ public:
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10(Cylinder *param1);
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18(Vec3p *param1);
/* 1C */ virtual void vfunc_1C(Vec3p *param1);
/* 18 */ virtual void vfunc_18(VecFx32 *param1);
/* 1C */ virtual void vfunc_1C(VecFx32 *param1);
/* 20 */
};
@@ -116,7 +116,7 @@ public:
class MapObject : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ Vec3p mPos;
/* 04 */ VecFx32 mPos;
/* 10 */ MapObject_10 *mUnk_10;
/* 14 */ s16 mUnk_14;
/* 16 */ s16 mUnk_16;
@@ -144,7 +144,7 @@ public:
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual unk32 vfunc_28();
/* 2C */ virtual bool vfunc_2C(Vec3p *param1);
/* 2C */ virtual bool vfunc_2C(VecFx32 *param1);
/* 30 */ virtual ~MapObject();
/* 38 */
@@ -175,15 +175,15 @@ public:
bool func_ov000_0209d29c(unk32 param1);
void func_ov000_0209d2c4(unk32 param1, unk32 param2);
void func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2b *param3);
void func_ov000_0209d3b4(unk32 param1, q20 size);
void func_ov000_0209d3b4(unk32 param1, fx32 size);
void func_ov000_0209d434(s8 *param1, UnkStruct_ov019_020d24c8_28_258_00 *param2, unk32 param3);
void func_ov000_0209d518(unk32 param1, unk32 param2, unk32 param3, u8 param4);
void func_ov000_0209d5c8(ActorRef ref);
void func_ov000_0209d614(unk32 param1);
bool func_ov000_0209d668();
void func_ov000_0209d6ac(Vec3p *param1);
void func_ov000_0209d6ac(VecFx32 *param1);
static void func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx);
static void func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2);
static void func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, Vec3p *param3, unk32 param4, unk32 param5);
static void func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, VecFx32 *param3, unk32 param4, unk32 param5);
};
+3 -3
View File
@@ -9,7 +9,7 @@ public:
/* 04 */ unk32 mUnk_44;
/* 08 */ unk16 mUnk_48;
/* 0A */ s16 mUnk_4A;
/* 0C */ Vec3p mUnk_4C;
/* 0C */ VecFx32 mUnk_4C;
/* 18 */
MapObject_UnkStruct1(); // func_ov000_02073194 & func_ov000_020731c4
@@ -27,7 +27,7 @@ public:
/* 18 */ bool mUnk_58;
/* 19 */ unk8 mUnk_59;
/* 1A */ s16 mUnk_5A;
/* 1C */ Vec3p mUnk_5C;
/* 1C */ VecFx32 mUnk_5C;
/* 28 */
MapObject_UnkStruct1_Derived1(); // func_ov000_02073234
@@ -112,7 +112,7 @@ public:
/* 78 */ virtual void vfunc_78();
/* 7C */ virtual void vfunc_7C();
/* 80 */ virtual void vfunc_80();
/* 84 */ virtual void vfunc_84(unk32 param1, Vec3p *param2, unk16 *param3);
/* 84 */ virtual void vfunc_84(unk32 param1, VecFx32 *param2, unk16 *param3);
/* 88 */ virtual bool vfunc_88();
/* 8C */ virtual unk32 vfunc_8C();
/* 90 */
@@ -63,7 +63,7 @@ public:
/* 6C */ virtual bool vfunc_6C() override;
/* 74 */ virtual void vfunc_74() override;
/* 7C */ virtual void vfunc_7C() override;
/* 84 */ virtual void vfunc_84(unk32 param1, Vec3p *param2, unk16 *param3) override;
/* 84 */ virtual void vfunc_84(unk32 param1, VecFx32 *param2, unk16 *param3) override;
/* 88 */ virtual bool vfunc_88() override;
/* 8C */ virtual unk32 vfunc_8C() override;
@@ -72,5 +72,5 @@ public:
bool func_ov031_020fdec8(void);
static void func_ov031_020fe5fc(Vec3p *param1, MapObjectDoorDangerSpawn *thisx);
static void func_ov031_020fe5fc(VecFx32 *param1, MapObjectDoorDangerSpawn *thisx);
};
+2 -2
View File
@@ -14,14 +14,14 @@ public:
/* 0F4 */ MapObject_10 mUnk_0F4;
#if IS_JP
/* 118 */ MapObject_10 mUnk_118;
/* 13C */ q20 mUnkPos;
/* 13C */ fx32 mUnkPos;
/* 140 */ bool mUnk_140;
/* 141 */ bool mUnk_141;
/* 142 */ unk8 mUnk_142; // pad
/* 143 */ unk8 mUnk_143; // pad
/* 144 */
#else
/* 118 */ q20 mUnkPos;
/* 118 */ fx32 mUnkPos;
/* 11C */
#endif
+1 -1
View File
@@ -29,7 +29,7 @@ public:
MapObject *func_01fff498(Vec2b param1);
void func_01fff4cc(UnkCallback_func_01fff4cc param1, void *param2);
MapObject **func_01fff520(UnkStruct_ov000_020b34c4 *param1, MapObject **param2);
void func_01fff6d0(Vec3p *param1, s32 *param2, s32 *param3);
void func_01fff6d0(VecFx32 *param1, s32 *param2, s32 *param3);
MapObjectId func_ov000_0209c3a8(Vec2b *param1);
void func_ov000_0209c3e8();
+5 -5
View File
@@ -5,15 +5,15 @@
#include "math.hpp"
struct Cylinder {
Vec3p pos;
q20 size; // height and radius
VecFx32 pos;
fx32 size; // height and radius
Cylinder() {}
Cylinder(q20 size) {
Cylinder(fx32 size) {
this->Init(size);
}
void Init(q20 size) {
void Init(fx32 size) {
pos.x = 0;
pos.y = size;
pos.z = 0;
@@ -22,7 +22,7 @@ struct Cylinder {
}
void MakeEmpty() {
pos = gVec3p_ZERO;
pos = gVecFx32_ZERO;
size = -1;
}
};
+4 -4
View File
@@ -6,10 +6,10 @@
// incomplete
class PlayerActor {
public:
/* 00 */ Vec3p mPos;
/* 0C */ Vec3p mPrevPos;
/* 18 */ Vec3p mVel;
/* 24 */ Vec3p mAccel;
/* 00 */ VecFx32 mPos;
/* 0C */ VecFx32 mPrevPos;
/* 18 */ VecFx32 mVel;
/* 24 */ VecFx32 mAccel;
/* 30 */ u16 mAngle;
/* 32 */ u8 mInvincibilityTimer;
/* 33 */ u8 mInvincibilityIconTimer; // the blinking icon on top-screen
+2 -2
View File
@@ -90,10 +90,10 @@ struct UnkStruct_ov110_02185dc8 {
class UnkStruct_ov110_021861ec {
public:
/* 00 */ Vec3p mUnk_00;
/* 00 */ VecFx32 mUnk_00;
/* 0C */
ARM UnkStruct_ov110_021861ec(q20 x, q20 y, q20 z) {
ARM UnkStruct_ov110_021861ec(fx32 x, fx32 y, fx32 z) {
this->mUnk_00.x = x;
this->mUnk_00.y = y;
this->mUnk_00.z = z;
+6 -6
View File
@@ -17,14 +17,14 @@ public:
/* 54 */ UnkStruct_SceneChange1 mUnk_54;
/* 68 */ unk32 mUnk_68;
/* 6C */ s32 mUnk_6C;
/* 70 */ volatile Vec3p mUnk_70;
/* 70 */ volatile VecFx32 mUnk_70;
/* 7C */ unk32 mUnk_7C;
/* 80 */ volatile Vec3p mUnk_80;
/* 80 */ volatile VecFx32 mUnk_80;
/* 8C */ unk32 mUnk_8C;
/* 90 */ volatile u32 mUnk_90;
/* 94 */ u16 mUnk_94[2];
/* 98 */ unk32 mUnk_98;
/* 9C */ Vec3p mUnk_9C;
/* 9C */ VecFx32 mUnk_9C;
/* A8 */ unk16 mUnk_A8;
/* AA */ unk16 mUnk_AA;
/* AC */ bool mUnk_AC;
@@ -38,7 +38,7 @@ public:
/* 04 */ virtual ~PlayerSceneChange() override;
/* 0C */ virtual void vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) override;
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2) override;
/* 1C */ virtual bool vfunc_1c(Vec3p *param1) override;
/* 1C */ virtual bool vfunc_1c(VecFx32 *param1) override;
};
class PlayerSceneChange2 : public UnkStruct_ov000_0208f820 {
@@ -47,8 +47,8 @@ public:
/* 48 */ unk32 mUnk_48;
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ Vec3p mUnk_54;
/* 54 */ Vec3p mUnk_60;
/* 54 */ VecFx32 mUnk_54;
/* 54 */ VecFx32 mUnk_60;
PlayerSceneChange2();
+14 -3
View File
@@ -2,7 +2,8 @@
#include "math.hpp"
#include "types.h"
#include <nitro/touch.h>
#include <nitro/tp.h>
typedef u16 TouchFlags;
enum TouchFlag_ {
@@ -14,6 +15,14 @@ enum TouchFlag_ {
#define CHECK_TOUCH_FLAGS(pTC, flags) ((pTC)->mFlags & (flags))
struct TouchState {
/* 00 */ bool touch;
/* 01 */ bool unk_01;
/* 02 */ struct {
s16 x, y;
} touchPos;
}; // size = 0x06
class TouchControl {
public:
/* 00 */ u16 mSpeed;
@@ -34,11 +43,13 @@ public:
TouchControl();
void IncreaseSpeed(u16 increase);
void UpdateFlags(u16 speed);
void UpdateWithStateFlags(TouchStateFlags *state, u16 speed);
void UpdateWithStateFlags(TPData *state, u16 speed);
void Update(const TouchState *state, u16 speed);
void func_02014414(u16 speedIncrease, bool shouldIncrease);
void func_02014478(TouchState *state, u16 speed);
static bool func_020143f0();
static void UpdateState(TouchState *state, const TouchStateFlags *stateFlags);
static void UpdateState(TouchState *state, const TPData *stateFlags);
};
extern TouchState data_02049b4c;
+1 -1
View File
@@ -4,10 +4,10 @@
#include "MainGame/MiscAdvManager.hpp"
#include "Save/AdventureFlags.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include "global.h"
#include "types.h"
#include <nitro/mi.h>
//! TODO: kinda draft state for now
+1 -1
View File
@@ -3,7 +3,7 @@
#include "System/SysFault.hpp"
#include "types.h"
#include <nitro/Overlay.h>
#include <nitro/fs.h>
typedef u32 ItemFlag;
+3 -6
View File
@@ -3,13 +3,10 @@
#include "Game/GameModeManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "regs.h"
#include "types.h"
extern "C" {
void GX_SetGraphicsMode(unk32 param1, unk32 param2, unk32 param3);
void GXS_SetGraphicsMode(unk32 param1);
}
#include <nitro/g2.h>
#include <nitro/reg.h>
DECL_PTMF(TitleScreenPTMF, Input *pButtons, TouchControl *pTouchControl);
@@ -124,7 +121,7 @@ public:
this->mpGameMode = NULL;
GX_SetGraphicsMode(1, 0, 1);
GXS_SetGraphicsMode(5);
REG_BG3CNT_SUB = (REG_BG3CNT_SUB & 0x0043) | 0x4E14;
G2S_SetBG3Control(1, 0, 14, 5, 0);
}
void func_ov025_020c4c20();
+10 -10
View File
@@ -3,11 +3,11 @@
#include "Game/GameModeManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkFileSystem.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "global.h"
#include "math.hpp"
#include "profile.hpp"
#include "types.h"
#include <nitro/mi.h>
#include <nns/text.h>
@@ -1006,7 +1006,7 @@ public:
/* 08 */ virtual void vfunc_08(void *param1); // resource thing? (GetUnkPointer1_Impl as param1)
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2);
/* 14 */ virtual void vfunc_14(Mat3p *param1, VecFx32 *param2);
/* 18 */ virtual void vfunc_18();
/* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1);
/* 20 */ virtual void vfunc_20();
@@ -1093,10 +1093,10 @@ public:
// data_ov000_020b1a98
/* 00 */ virtual ~UnkSystem6();
/* 08 */ virtual void vfunc_08(void *param1); // resource thing like UnkSystem4?
/* 0C */ virtual void vfunc_0C() = 0;
/* 10 */ virtual void vfunc_10() = 0;
/* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2) = 0;
/* 18 */ virtual void vfunc_18() = 0;
/* 0C */ virtual void vfunc_0C() = 0;
/* 10 */ virtual void vfunc_10() = 0;
/* 14 */ virtual void vfunc_14(Mat3p *param1, VecFx32 *param2) = 0;
/* 18 */ virtual void vfunc_18() = 0;
/* 1C */
};
@@ -1111,7 +1111,7 @@ public:
// data_ov000_020b1a48
/* 00 */ virtual ~UnkSystem6_Derived1() override {}
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual void vfunc_14(Mat3p *param1, Vec3p *param2) override;
/* 14 */ virtual void vfunc_14(Mat3p *param1, VecFx32 *param2) override;
/* 18 */ virtual void vfunc_18() override;
};
@@ -1140,13 +1140,13 @@ struct UnkStackStruct1 {
/* 03 */ unk8 mUnk_03;
/* 04 */ void *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ Vec3p mUnk_0C;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ unk16 mUnk_18;
/* 1A */ unk16 mUnk_1A;
/* 1C */ unk16 mUnk_1C;
/* 1E */ unk16 mUnk_1E;
/* 20 */ unk32 mUnk_20;
/* 24 */ Vec3p mUnk_24;
/* 24 */ VecFx32 mUnk_24;
/* 30 */ unk16 mUnk_30;
/* 32 */ unk16 mUnk_32;
/* 34 */ unk16 mUnk_34;
@@ -1165,7 +1165,7 @@ struct UnkSystem7_UnkStruct_00 {
/* 28 */ STRUCT_PAD(0x28, 0xA4);
/* A4 */ unk16 mUnk_A4;
void func_ov000_02052c48(Vec3p *param1, Vec3p *param2);
void func_ov000_02052c48(VecFx32 *param1, VecFx32 *param2);
};
class UnkSystem7 {
-27
View File
@@ -1,27 +0,0 @@
#pragma once
#include "types.h"
//! TODO: temporary place until this is documented properly
#ifdef __cplusplus
extern "C" {
#endif
void MI_CpuFill16(int value, void *dst, size_t size);
void MI_CpuCopy16(void *src, void *dest, size_t size);
void MI_CpuFill32(int value, void *dest, size_t size);
// MI_CpuCopy32
// Stream32
void _MI_CpuFill(int value, void *dst, size_t size);
void _MI_CpuCopy(void *src, void *dest, size_t size);
// CopySingle256
// CopySingle288
// CopySingle384
// CopySingle512
void MI_CpuFill8(void *dst, int value, size_t size);
// Copy
// Zero288
// Swap32
#ifdef __cplusplus
}
#endif
+1 -1
View File
@@ -2,8 +2,8 @@
#include "Player/TouchControl.hpp"
#include "global.h"
#include "input.hpp"
#include "types.h"
#include <nitro/button.h>
class UnkStruct_02049b18_06 {
public:
+5 -5
View File
@@ -2,10 +2,11 @@
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "global.h"
#include "types.h"
#include <nitro/mi.h>
class GameModeManagerBase;
struct UnkStruct_0204a110_Sub2_000_158 {
@@ -69,7 +70,7 @@ public:
/* 200 */
UnkStruct_0204a110_Sub3_00() {
MI_CpuFill16(0, (u16 *) this->mUnk_000, sizeof(this->mUnk_000));
MI_CpuFill16(0, this->mUnk_000, sizeof(this->mUnk_000));
}
};
@@ -159,8 +160,7 @@ public:
UnkSubStruct1_Methods;
};
//! TODO: actually a matrix
extern Vec4p data_027e0120;
extern MtxFx22 data_027e0120;
class UnkStruct_0204a110_Sub7 {
public:
@@ -170,7 +170,7 @@ public:
/* 03 */ unk8 mUnk_03;
/* 04 */ UnkSystem2_UnkSubSystem9 *mUnk_04;
/* 08 */ UnkStruct_0204a110_Sub7_08 *mUnk_08;
/* 0C */ Vec4p mUnk_0C; // same type as data_027e0120?
/* 0C */ MtxFx22 mUnk_0C;
/* 1C */
UnkStruct_0204a110_Sub7();
+1 -1
View File
@@ -3,7 +3,7 @@
#include "Unknown/UnkStruct_02049b18.hpp"
#include "global.h"
#include "types.h"
#include <nitro/button.h>
#include <nitro/pad.h>
class UnkStruct_0204e64c_00 {
public:
+1 -1
View File
@@ -4,7 +4,7 @@
#include "Player/Player.hpp"
#include "Player/TouchControl.hpp"
#include "global.h"
#include <nitro/button.h>
#include <nitro/pad.h>
// incomplete
class UnkStruct_027e0478 {
+3 -3
View File
@@ -18,7 +18,7 @@ public:
UnkStruct_027e0998_Base();
// data_ov000_020b1e08
/* 00 */ virtual bool vfunc_00(Vec3p *pPos, Vec2s *param2, u16 *param3);
/* 00 */ virtual bool vfunc_00(VecFx32 *pPos, Vec2s *param2, u16 *param3);
/* 04 */
void func_ov000_02061760();
@@ -38,11 +38,11 @@ public:
~UnkStruct_027e0998(); // ClearInstance
// data_ov024_020d7c98
/* 00 */ virtual bool vfunc_00(Vec3p *pPos, Vec2s *param2, u16 *param3) override;
/* 00 */ virtual bool vfunc_00(VecFx32 *pPos, Vec2s *param2, u16 *param3) override;
/* 04 */
bool func_ov024_020c716c();
bool func_ov024_020c7214(Vec3p *pPos, Vec2s *param2, u16 *param3);
bool func_ov024_020c7214(VecFx32 *pPos, Vec2s *param2, u16 *param3);
bool func_ov024_020c727c(Vec2s *param1, u16 *param2);
bool func_ov024_020c7300(unk32 param1);
bool func_ov024_020c7354();
+1 -1
View File
@@ -227,7 +227,7 @@ public:
/* 28 */ unk32 mUnk_28;
/* 2C */ s16 mUnk_2C;
/* 2C */ unk16 mUnk_2E;
/* 30 */ Vec3p mUnk_30;
/* 30 */ VecFx32 mUnk_30;
/* 3C */ STRUCT_PAD(0x3C, 0x54);
/* 54 */ void *mUnk_54; // vtable
/* 58 */ UnkStruct_WarpUnk1 *mpWarpUnk1;
+2 -2
View File
@@ -5,8 +5,8 @@
class UnkStruct_027e09a8 {
public:
void func_ov000_02071b30(unk32 param1, Vec3p *pPos, unk32 param3);
void func_ov000_02071d34(void *param1, unk32 param2, Vec3p *pPos, unk32 param4);
void func_ov000_02071b30(unk32 param1, VecFx32 *pPos, unk32 param3);
void func_ov000_02071d34(void *param1, unk32 param2, VecFx32 *pPos, unk32 param4);
};
extern UnkStruct_027e09a8 *data_027e09a8;
+1 -1
View File
@@ -1,8 +1,8 @@
#pragma once
#include "Unknown/UnkMemFuncs.h"
#include "global.h"
#include "types.h"
#include <nitro/mi.h>
#include "math.hpp"
+2 -2
View File
@@ -5,8 +5,8 @@
class UnkStruct_027e09bc_0c {
public:
void func_ov000_02078230(unk32 param1);
bool func_ov000_0207834c(Vec3p *param1, unk32 param2, unk32 param3);
bool func_ov000_02078764(Vec3p *param1, void *param2, unk32 param3);
bool func_ov000_0207834c(VecFx32 *param1, unk32 param2, unk32 param3);
bool func_ov000_02078764(VecFx32 *param1, void *param2, unk32 param3);
};
class UnkStruct_027e09bc {
+5 -5
View File
@@ -90,10 +90,10 @@ public:
/* 1C */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual q20 vfunc_28(Vec3p *param1, unk32 param2, unk32 param3);
/* 28 */ virtual fx32 vfunc_28(VecFx32 *param1, unk32 param2, unk32 param3);
/* 2C */ virtual void vfunc_2c();
q20 func_01ffedf4(Vec2b *pPos);
fx32 func_01ffedf4(Vec2b *pPos);
unk32 func_ov000_02080180(void *param1);
bool func_ov000_02080658(unk32 param1, UnkStruct_SceneChange1 *param2);
@@ -102,9 +102,9 @@ public:
void func_ov000_020801b0(Vec2b *param1, unk32 param2, unk32 param3);
void func_ov000_0208053c(u16 param1);
void func_ov000_020803ec(u16 param1);
unk32 func_ov000_020802ec(u16 param1, Vec3p *param2);
unk32 func_ov000_020802ec(u16 param1, VecFx32 *param2);
Vec3p *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1);
VecFx32 *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1);
};
class UnkStruct_027e0cd8_04_0C {
@@ -138,7 +138,7 @@ public:
/* 0C */ UnkStruct_027e0cd8_0c *mUnk_0C; // related to train?
/* 10 */ MapObjectManager *mUnk_10;
/* 14 */ STRUCT_PAD(0x14, 0x24);
/* 24 */ Vec3p mUnk_24;
/* 24 */ VecFx32 mUnk_24;
/* 34 */ STRUCT_PAD(0x34, 0x4C);
/* 4C */
+3 -3
View File
@@ -76,14 +76,14 @@ public:
/* 40 */ unk32 *mUnk_40; // pointer to data_027e0478 when not on the train
/* 44 */
Vec3p *func_01fff148(unk32 param1);
VecFx32 *func_01fff148(unk32 param1);
bool func_01fff1a4();
// overlay 0
void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, u16 param3);
void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, u16 param3);
void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, void *param3);
void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, void *param3);
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
+3 -3
View File
@@ -6,9 +6,9 @@
class UnkStruct_027e0cec {
public:
void func_ov000_0209feac(unk32 param1, Vec3p *param2, unk32 param3, unk32 param4, unk32 param5);
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, Vec3p *param3, unk32 param4);
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, Vec3p *param4, unk32 param5);
void func_ov000_0209feac(unk32 param1, VecFx32 *param2, unk32 param3, unk32 param4, unk32 param5);
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, VecFx32 *param3, unk32 param4);
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, VecFx32 *param4, unk32 param5);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
void func_ov000_020a0220(void *param1, void *param2);
};
+1 -1
View File
@@ -7,7 +7,7 @@
#include "Unknown/UnkStruct_02049b18.hpp"
#include "global.h"
#include "types.h"
#include <nitro/button.h>
#include <nitro/pad.h>
class UnkStruct_ov000_02067bc4_Sub1 {
public:
+7 -7
View File
@@ -55,7 +55,7 @@ public:
// /* 3C */ unk32 mUnk_3C;
// /* 40 */ u16 mUnk_40;
void func_ov093_0216f76c(Vec3p *param1, unk32 param2);
void func_ov093_0216f76c(VecFx32 *param1, unk32 param2);
};
class UnkStruct_ov000_0208f820_28 {
@@ -136,7 +136,7 @@ public:
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ Vec3p mUnk_10;
/* 10 */ VecFx32 mUnk_10;
/* 1C */ ItemId mUnk_1C;
};
@@ -204,9 +204,9 @@ public:
/* 28 */ UnkStruct_ov000_0208f820_28 *mUnk_28;
/* 2C */ UnkStruct_ov000_0208f820_2c *mUnk_2C;
/* 30 */ UnkStruct_ov000_0208f820_30 *mUnk_30;
/* 34 */ Vec3p *mUnk_34;
/* 38 */ Vec3p *mUnk_38;
/* 3C */ Vec3p *mUnk_3C;
/* 34 */ VecFx32 *mUnk_34;
/* 38 */ VecFx32 *mUnk_38;
/* 3C */ VecFx32 *mUnk_3C;
/* 40 */ UnkStruct_ov000_0208f820_40 *mUnk_40;
/* 44 */ UnkStruct_ov000_0208f820_44 *mUnk_44;
/* 48 */
@@ -217,11 +217,11 @@ public:
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2) = 0;
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18(unk32 param1, unk32 param2, unk32 param3);
/* 1C */ virtual bool vfunc_1c(Vec3p *param1);
/* 1C */ virtual bool vfunc_1c(VecFx32 *param1);
/* 20 */
UnkStruct_ov000_0208f820();
bool func_ov000_020914b0(unk32 param1, Vec3p *param2, unk32 param3);
bool func_ov000_020914b0(unk32 param1, VecFx32 *param2, unk32 param3);
bool func_ov000_02091e68(unk32 param1);
};
+1 -1
View File
@@ -10,7 +10,7 @@ class UnkStruct_ov000_020b5d34_00 {
public:
/* 00 */ unk32 *mUnk_00;
/* 04 */ MapObject_20 *mUnk_04;
/* 08 */ Vec3p *mUnk_08;
/* 08 */ VecFx32 *mUnk_08;
/* 0C */ s16 *mUnk_0C;
/* 10 */
};
+1 -1
View File
@@ -7,7 +7,7 @@
#include "global.h"
#include "types.h"
#include <nitro/button.h>
#include <nitro/pad.h>
// Title Card Scene Message Index (see sBMGSceneMap)
typedef s32 TC_SceneMsgIdx;
-3
View File
@@ -1,9 +1,6 @@
#ifndef GLOBAL_H
#define GLOBAL_H
#define ARRAY_LEN_U(arr) (u32)((sizeof(arr) / sizeof(*arr)))
#define ARRAY_LEN(arr) (s32)((sizeof(arr) / sizeof(*arr)))
// Prevent the IDE from reporting errors that the compiler/linker won't report
#ifdef __INTELLISENSE__
#endif
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "types.h"
#include <nitro/pad.h>
#define CHECK_BUTTON_COMBO(value, btn) ((value) & (btn))
struct Input {
/* 00 */ u16 cur;
/* 02 */ volatile u16 press;
/* 04 */ u16 release;
/* 06 */
Input();
unk32 func_02013c08(u16 param1);
unk32 func_02013b24(unk32 param1);
unk32 func_02013bbc();
};
+8 -8
View File
@@ -231,11 +231,11 @@ static inline void Vec2b_Copy(const Vec2b *a, Vec2b *dst) {
union Vec2pCpp {
struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 0 */ fx32 x;
/* 4 */ fx32 y;
/* 8 */
};
q20 coords[2];
fx32 coords[2];
void operator=(const Vec2pCpp &from) {
this->x = from.x;
@@ -243,7 +243,7 @@ union Vec2pCpp {
}
Vec2pCpp() {}
Vec2pCpp(q20 X, q20 Y) {
Vec2pCpp(fx32 X, fx32 Y) {
x = X;
y = Y;
}
@@ -267,16 +267,16 @@ static inline void Vec2pCpp_Clear(Vec2pCpp *dst) {
}
static inline void Vec2pCpp_Add(const Vec2pCpp *a, const Vec2pCpp *b, Vec2pCpp *dst) {
q20 x = a->x + b->x;
q20 y = a->y + b->y;
fx32 x = a->x + b->x;
fx32 y = a->y + b->y;
dst->x = x;
dst->y = y;
}
static inline void Vec2pCpp_Sub(const Vec2pCpp *a, const Vec2pCpp *b, Vec2pCpp *dst) {
q20 x = a->x - b->x;
q20 y = a->y - b->y;
fx32 x = a->x - b->x;
fx32 y = a->y - b->y;
dst->x = x;
dst->y = y;
+1 -31
View File
@@ -1,37 +1,7 @@
#ifndef TYPES_H
#define TYPES_H
#include <stddef.h>
typedef unsigned long long u64;
typedef unsigned int u32;
typedef unsigned short u16;
typedef unsigned char u8;
typedef long long s64;
typedef int s32;
typedef short s16;
typedef char s8;
typedef float f32;
typedef double f64;
typedef volatile u64 vu64;
typedef volatile u32 vu32;
typedef volatile u16 vu16;
typedef volatile u8 vu8;
typedef volatile s64 vs64;
typedef volatile s32 vs32;
typedef volatile s16 vs16;
typedef volatile s8 vs8;
typedef volatile f32 vf32;
typedef volatile f64 vf64;
typedef u32 BOOL;
#define ATTRIBUTE_ALIGN(x) __attribute__((aligned(x)))
#include <nitro/types.h>
typedef s8 unk8;
typedef s16 unk16;
+11
View File
@@ -0,0 +1,11 @@
#ifndef _C_STDBOOL_H
#define _C_STDBOOL_H
#ifndef __cplusplus
#define bool int
#define true 1
#define false 0
#define __bool_true_false_are_defined 1
#endif
#endif
-3
View File
@@ -28,10 +28,7 @@ typedef unsigned int size_t;
#endif
#ifndef __cplusplus
typedef int bool;
typedef unsigned short wchar_t;
#define true 1
#define false 0
#endif
#ifdef __cplusplus
+1
View File
@@ -1,3 +1,4 @@
#include <stdbool.h>
#include <stddef.h>
#include <string.h>
+1
View File
@@ -6,6 +6,7 @@
#include <mem.h>
#include <secure_error.h>
#include <stdarg.h>
#include <stdbool.h>
#include <string.h>
#include <wstring.h>
+21
View File
@@ -0,0 +1,21 @@
#include <stdbool.h>
#include <stddef.h>
#include "nitro/card.h"
#include "nitro/dc.h"
#include "nitro/fs.h"
#include "nitro/fx.h"
#include "nitro/g2.h"
#include "nitro/gx.h"
#include "nitro/hw.h"
#include "nitro/mi.h"
#include "nitro/os.h"
#include "nitro/pad.h"
#include "nitro/pm.h"
#include "nitro/reg.h"
#include "nitro/rtc.h"
#include "nitro/snd.h"
#include "nitro/std.h"
#include "nitro/svc.h"
#include "nitro/tp.h"
#include "nitro/types.h"
-43
View File
@@ -1,43 +0,0 @@
#ifndef _NITRO_OVERLAY_H
#define _NITRO_OVERLAY_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define EXTERN_OVERLAY_ID(name_or_index) extern u32 OVERLAY_##name_or_index##_ID;
#define OVERLAY_ID(name_or_index) ((u32) & OVERLAY_##name_or_index##_ID)
typedef struct Overlay {
/* 00 */ unk32 mId;
/* 04 */ void *mBaseAddress;
/* 08 */ u32 mTextSize;
/* 0C */ s32 mBssSize;
/* 10 */ unk32 mCtorStart;
/* 14 */ unk32 mCtorEnd;
/* 18 */ unk32 mFileId;
/* 1C */ u32 mFileSize;
/* 20 */
} Overlay;
u32 Overlay_FileSize(Overlay *overlay);
void Overlay_ClearCacheAndBss(Overlay *overlay);
void Overlay_func_02042238(unk32 *param1, Overlay *overlay);
bool Overlay_func_02042250(Overlay *param1, Overlay *param2, s32 param3, unk32 param4, s32 param5, u32 param6, s32 param7,
u32 param8);
bool Overlay_func_020422ec(Overlay *param1, Overlay *param2, s32 param3);
bool Overlay_func_0204238c(Overlay *overlay);
bool Overlay_func_020423e8(s32 param1, unk32 param2, unk32 param3);
void Overlay_Init(Overlay *overlay);
void Overlay_RunGlobalDestructors(Overlay *overlay);
bool Overlay_Destroy(Overlay *overlay);
bool FS_LoadOverlay(Overlay *overlay, unk32 param2);
bool FS_UnloadOverlay(Overlay *overlay, unk32 param2);
#ifdef __cplusplus
}
#endif
#endif
-30
View File
@@ -1,30 +0,0 @@
#pragma once
#include "types.h"
#define BTN_A (1 << 0) // 0x0001
#define BTN_B (1 << 1) // 0x0002
#define BTN_SELECT (1 << 2) // 0x0004
#define BTN_START (1 << 3) // 0x0008
#define BTN_DRIGHT (1 << 4) // 0x0010
#define BTN_DLEFT (1 << 5) // 0x0020
#define BTN_DUP (1 << 6) // 0x0040
#define BTN_DDOWN (1 << 7) // 0x0080
#define BTN_R (1 << 8) // 0x0100
#define BTN_L (1 << 9) // 0x0200
#define BTN_X (1 << 10) // 0x0400
#define BTN_Y (1 << 11) // 0x0800
#define CHECK_BUTTON_COMBO(value, btn) ((value) & (btn))
struct Input {
/* 00 */ u16 cur;
/* 02 */ volatile u16 press;
/* 04 */ u16 release;
/* 06 */
Input();
unk32 func_02013c08(u16 param1);
unk32 func_02013b24(unk32 param1);
unk32 func_02013bbc();
};
+71
View File
@@ -0,0 +1,71 @@
#ifndef _NITRO_CARD_H
#define _NITRO_CARD_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/types.h"
#define CARD_BACKUP_TYPE_EEPROM 1
#define CARD_BACKUP_TYPE_FLASH 2
#define CARD_BACKUP_TYPE_FRAM 3
#define CARD_BACKUP_TYPE_EEPROM_4KBITS (0x900 | CARD_BACKUP_TYPE_EEPROM)
#define CARD_BACKUP_TYPE_EEPROM_64KBITS (0xd00 | CARD_BACKUP_TYPE_EEPROM)
#define CARD_BACKUP_TYPE_EEPROM_512KBITS (0x1000 | CARD_BACKUP_TYPE_EEPROM)
#define CARD_BACKUP_TYPE_FLASH_2MBITS (0x1200 | CARD_BACKUP_TYPE_FLASH)
#define CARD_BACKUP_TYPE_FLASH_4MBITS (0x1300 | CARD_BACKUP_TYPE_FLASH)
#define CARD_BACKUP_TYPE_FLASH_8MBITS (0x1400 | CARD_BACKUP_TYPE_FLASH)
#define CARD_BACKUP_TYPE_FRAM_256KBITS (0xf00 | CARD_BACKUP_TYPE_FRAM)
// TODO: Find values for these
#define CARD_RESULT_SUCCESS 0
#define CARD_RESULT_FAILURE
#define CARD_RESULT_INVALID_PARAM
#define CARD_RESULT_UNSUPPORTED
#define CARD_RESULT_TIMEOUT
#define CARD_RESULT_CANCELED
#define CARD_RESULT_NO_RESPONSE
#define CARD_RESULT_ERROR
typedef u32 CARDBackupType;
typedef u32 CARDResult;
void CARD_LockBackup(u16 cardId);
void CARD_UnlockBackup(u16 cardId);
BOOL CARD_IdentifyBackup(CARDBackupType type);
CARDBackupType CARD_GetBackupType();
#define CARD_IsBackupEeprom() (CARD_GetBackupType() & 0xff) == CARD_BACKUP_TYPE_EEPROM
#define CARD_IsBackupFlash() (CARD_GetBackupType() & 0xff) == CARD_BACKUP_TYPE_FLASH
#define CARD_IsBackupFram() (CARD_GetBackupType() & 0xff) == CARD_BACKUP_TYPE_FRAM
BOOL CARD_ReadWriteBackupAsync(u32 offset, void *buf, u32 size, void *, void *, u32, u32, u32, u32);
void CARD_WaitBackupAsync(void);
CARDResult CARD_GetResultCode(void);
BOOL CARD_func_0033();
void CARD_func_0034();
inline BOOL CARD_ReadEepromAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) {
return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 1, 6, 1, 0);
}
inline BOOL CARD_ReadFlashAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) {
return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 0, 6, 1, 0);
}
inline BOOL CARD_ReadFramAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) {
return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 1, 6, 1, 0);
}
inline BOOL CARD_WriteAndVerifyEepromAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) {
return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 1, 8, 10, 2);
}
inline BOOL CARD_WriteAndVerifyFlashAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) {
return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 0, 7, 10, 2);
}
inline BOOL CARD_WriteAndVerifyFramAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) {
return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 1, 8, 10, 2);
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+25
View File
@@ -0,0 +1,25 @@
#ifndef _NITRO_DC_H
#define _NITRO_DC_H
#include "nitro/types.h"
#ifdef __cplusplus
extern "C" {
#endif
void DC_StoreAll(void);
void DC_StoreRange(void *ptr, u32 size);
void DC_FlushAll(void);
void DC_FlushRange(void *ptr, u32 size);
void DC_InvalidateRange(void *ptr, u32 size);
void DC_func_0004(void *, int);
void DC_func_0002();
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+178
View File
@@ -0,0 +1,178 @@
#ifndef _NITRO_FS_H
#define _NITRO_FS_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/os.h"
#include "nitro/types.h"
#define FS_SEEK_SET 0
#define FS_SEEK_CUR 1
#define FS_SEEK_END 2
#define FS_FILE_FLAG_FILE 0x10
#define FS_FILEMODE_R 0x1
struct FSVolume;
typedef struct FSUnkStruct2 {
/* 00 */ struct FSVolume *unk_00;
/* 04 */ s16 unk_04;
/* 06 */ u16 unk_06;
/* 08 */
} FSUnkStruct2;
typedef struct FSUnkStruct5 {
/* 00 */ struct FSVolume *volume;
/* 04 */ struct FSVolume *next;
/* 08 */ struct FSVolume *prev;
/* 0c */
} FSUnkStruct5;
struct FSFile;
typedef struct FSVolume {
/* 00 */ u32 volumeName;
/* 04 */ struct FSVolume *next;
/* 08 */ struct FSVolume *prev;
/* 0c */ u32 unk_0c;
/* 10 */ u32 unk_10;
/* 14 */ u32 unk_14;
/* 18 */ u32 unk_18;
/* 1c */ vu32 flags;
/* 20 */ u32 unk_20;
/* 24 */ struct FSVolume *unk_24;
/* 28 */ u32 unk_28;
/* 2c */ u32 *fat;
/* 30 */ u32 fatSize;
/* 34 */ u8 *fnt;
/* 38 */ u32 fntSize;
/* 3c */ u32 fatRomOffset;
/* 40 */ u32 fntRomOffset;
/* 44 */ u32 *unk_44;
/* 48 */ BOOL (*unk_48)(struct FSVolume *, u32, u32, u32);
/* 4c */ BOOL (*unk_4c)(struct FSVolume *, u32, u32, u32);
/* 50 */ BOOL (*unk_50)(struct FSVolume *, u32, u32, u32);
/* 54 */ u32 (*unk_54)(struct FSFile *, u32);
/* 58 */ u32 unk_58;
/* 5c */
} FSVolume;
typedef struct FSUnkStruct3 {
/* 00 */ u32 volumeName;
/* 04 */ u32 unk_04;
/* 08 */ u32 unk_08;
/* 0c */ u32 unk_0c;
/* 10 */ u32 unk_10;
/* 14 */ u8 unk_14[0x94 - 0x14];
/* 94 */
} FSUnkStruct3;
typedef struct FSUnkStruct7 {
/* 00 */ u32 unk_00;
/* 04 */ u32 unk_04;
/* 08 */ u32 unk_08;
/* 0c */
} FSUnkStruct7;
typedef struct FSFile {
/* 00 */ u32 unk_00;
/* 04 */ s32 *unk_04;
/* 08 */ FSVolume *volume;
/* 0c */ vu32 flags;
/* 10 */ u32 unk_10;
/* 14 */ u32 unk_14;
/* 18 */ OSLinkedList unk_18;
/* 20 */ u32 unk_20;
/* 24 */ u32 startRomOffset;
/* 28 */ u32 endRomOffset;
/* 2c */ u32 cursor;
/* 30 */ u32 buf;
union {
/* 34 */ u32 unk_34;
struct {
/* 34 */ u16 unk_34_s;
/* 36 */ u16 unk_36_s;
};
};
/* 38 */ u16 unk_38;
/* 3c */ u32 unk_3c;
/* 40 */ u32 unk_40;
/* 44 */ u32 unk_44;
/* 48 */
} FSFile;
typedef struct FSFntDirectory {
/* 00 */ u32 subtableOffset;
/* 04 */ u16 firstFileId;
/* 06 */ u16 parentId;
/* 08 */
} FSFntDirectory;
typedef struct FSDirEntry {
/* 00 */ u32 unk_00;
/* 04 */ union {
u32 unk_04_u32;
struct {
u16 unk_04_u16;
u16 unk_06;
};
};
/* 08 */ u32 unk_08;
/* 0c */ u32 unk_0c;
/* 10 */ u32 unk_10;
/* 14 */ char name[0x80];
/* 94 */
} FSDirEntry;
typedef struct FSOverlay {
/* 00 */ s32 id;
/* 04 */ void *addr;
/* 08 */ u32 textSize;
/* 0C */ s32 bssSize;
/* 10 */ s32 ctorStart;
/* 14 */ s32 ctorEnd;
/* 18 */ s32 fileId;
/* 1C */ u32 fileSize;
/* 20 */
} FSOverlay;
void FS_Init(u32 dmaCount);
void FS_InitFile(FSFile *file);
BOOL FS_OpenFile(FSFile *file, const char *path);
BOOL FS_OpenFileEx(FSFile *file, const char *path, u32 flags);
BOOL FS_SeekFile(FSFile *file, s32 pos, u32 mode);
u32 FS_GetLength(FSFile *file);
u32 FS_ReadFile(FSFile *file, void *buf, u32 size);
BOOL FS_CloseFile(FSFile *file);
inline BOOL FS_IsFile(FSFile *file) {
return !!(file->flags & FS_FILE_FLAG_FILE);
}
BOOL FS_FindDir(FSFile *file, const char *path);
BOOL FS_ReadDir(FSFile *file, FSDirEntry *dir);
void FS_CloseDirectory(FSFile *file);
#define EXTERN_OVERLAY_ID(name_or_index) extern u32 OVERLAY_##name_or_index##_ID;
#define OVERLAY_ID(name_or_index) ((u32) & OVERLAY_##name_or_index##_ID)
u32 FS_GetOverlaySize(FSOverlay *overlay);
void FS_ClearOverlayCacheAndBss(FSOverlay *overlay);
void FS_Overlay_0202d6cc(void **param1, FSOverlay *overlay); // param1 is the address of gArchiveList
BOOL FS_Overlay_0202d6f4(FSOverlay *param1, FSOverlay *param2, s32 param3, s32 param4, s32 param5, u32 param6, s32 param7,
u32 param8);
BOOL FS_LoadOverlayInfo(FSOverlay *overlay, s32 param2, s32 param3);
BOOL FS_LoadOverlayFile(FSOverlay *overlay);
BOOL FS_Overlay_0202d984(FSOverlay *param1, s32 param2, s32 param3);
BOOL FS_StartOverlay(FSOverlay *overlay);
BOOL FS_CleanupOverlayResources(FSOverlay *overlay);
BOOL FS_StopOverlay(FSOverlay *overlay);
BOOL FS_LoadOverlay(FSOverlay *overlay, s32 param2);
BOOL FS_UnloadOverlay(FSOverlay *overlay, s32 param2);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+46
View File
@@ -0,0 +1,46 @@
#ifndef _NITRO_FX_H
#define _NITRO_FX_H
#include "nitro/types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define FX32_SHIFT 12
#define FX16_SHIFT 12
#define FX32_ONE (fx32)(1 << FX32_SHIFT)
#define FX16_ONE (fx16)(1 << FX16_SHIFT)
typedef s32 fx32;
typedef s16 fx16;
typedef union VecFx32 {
struct {
/* 00 */ fx32 x;
/* 04 */ fx32 y;
/* 08 */ fx32 z;
/* 0c */
};
fx32 coords[3];
} VecFx32;
typedef union MtxFx22 {
struct {
/* 00 */ fx32 x;
/* 04 */ fx32 y;
/* 08 */ fx32 z;
/* 0c */ fx32 w;
/* 10 */
};
fx32 coords[4];
} MtxFx22;
void FX_Init(void);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+343
View File
@@ -0,0 +1,343 @@
#ifndef _NITRO_G2_H
#define _NITRO_G2_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/fx.h"
#include "nitro/gx.h"
#include "nitro/reg.h"
#include "nitro/types.h"
void G2_SetBGAffine(u32 *reg, MtxFx22 *mtx, s32 x0, s32 y0, s32 x1, s32 y1);
void _G2_SetBlend(u32 *reg, u32 srcPlane, u32 dstPlane, u32 srcAlpha, u32 dstAlpha);
void *G2_GetBG2ScrPtr(void);
void *G2_GetBG3ScrPtr(void);
void *G2S_func_0001();
inline void G2_SetBG0Priority(u32 value) {
REG_BG0CNT = (REG_BG0CNT & ~0x3) | (value);
}
inline void G2_SetBG1Priority(u32 value) {
REG_BG1CNT = (REG_BG1CNT & ~0x3) | (value);
}
inline void G2_SetBG2Priority(u32 value) {
REG_BG2CNT = (REG_BG2CNT & ~0x3) | (value);
}
inline void G2_SetBG3Priority(u32 value) {
REG_BG3CNT = (REG_BG3CNT & ~0x3) | (value);
}
inline void G2S_SetBG0Priority(u32 value) {
REG_BG0CNT_SUB = (REG_BG0CNT_SUB & ~0x3) | (value);
}
inline void G2S_SetBG1Priority(u32 value) {
REG_BG1CNT_SUB = (REG_BG1CNT_SUB & ~0x3) | (value);
}
inline void G2S_SetBG2Priority(u32 value) {
REG_BG2CNT_SUB = (REG_BG2CNT_SUB & ~0x3) | (value);
}
inline void G2S_SetBG3Priority(u32 value) {
REG_BG3CNT_SUB = (REG_BG3CNT_SUB & ~0x3) | (value);
}
inline void G2_SetBG0Offset(u32 x, u32 y) {
REG_BG0OFS = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2_SetBG1Offset(u32 x, u32 y) {
REG_BG1OFS = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2_SetBG2Offset(u32 x, u32 y) {
REG_BG2OFS = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2_SetBG3Offset(u32 x, u32 y) {
REG_BG3OFS = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2S_SetBG0Offset(u32 x, u32 y) {
REG_BG0OFS_SUB = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2S_SetBG1Offset(u32 x, u32 y) {
REG_BG1OFS_SUB = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2S_SetBG2Offset(u32 x, u32 y) {
REG_BG2OFS_SUB = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2S_SetBG3Offset(u32 x, u32 y) {
REG_BG3OFS_SUB = (x & 0x1ff) | ((y << 16) & 0x1ff0000);
}
inline void G2_SetBG0Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase, u32) {
REG_BG0CNT = (REG_BG0CNT & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2_SetBG1Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase, u32) {
REG_BG1CNT = (REG_BG1CNT & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2_SetBG2Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase, u32) {
REG_BG2CNT = (REG_BG2CNT & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2_SetBG3Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase, u32) {
REG_BG3CNT = (REG_BG3CNT & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2S_SetBG0Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase,
u32) {
REG_BG0CNT_SUB = (REG_BG0CNT_SUB & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2S_SetBG1Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase,
u32) {
REG_BG1CNT_SUB = (REG_BG1CNT_SUB & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2S_SetBG2Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase,
u32) {
REG_BG2CNT_SUB = (REG_BG2CNT_SUB & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2S_SetBG3Control(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase,
u32) {
REG_BG3CNT_SUB = (REG_BG3CNT_SUB & 0x43) | (scrSize << 0xe) | (colMode << 0x7) | (scrBase << 0x8) | (charBase << 0x2);
}
inline void G2_SetBG2Control256Bmp(GXBGScrSize256Bmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG2CNT = (REG_BG2CNT & 0x43) | (scrSize << 0xe) | 0x80 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2_SetBG3Control256Bmp(GXBGScrSize256Bmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG3CNT = (REG_BG3CNT & 0x43) | (scrSize << 0xe) | 0x80 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2S_SetBG2Control256Bmp(GXBGScrSize256Bmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG2CNT_SUB = (REG_BG2CNT_SUB & 0x43) | (scrSize << 0xe) | 0x80 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2S_SetBG3Control256Bmp(GXBGScrSize256Bmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG3CNT_SUB = (REG_BG3CNT_SUB & 0x43) | (scrSize << 0xe) | 0x80 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2_SetBG2ControlDCBmp(GXBGScrSizeDcBmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG2CNT = (REG_BG2CNT & 0x43) | (scrSize << 0xe) | 0x84 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2_SetBG3ControlDCBmp(GXBGScrSizeDcBmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG3CNT = (REG_BG3CNT & 0x43) | (scrSize << 0xe) | 0x84 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2S_SetBG2ControlDCBmp(GXBGScrSizeDcBmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG2CNT_SUB = (REG_BG2CNT_SUB & 0x43) | (scrSize << 0xe) | 0x84 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2S_SetBG3ControlDCBmp(GXBGScrSizeDcBmp scrSize, GXBGAreaOver areaOver, GXBGBmpScrBase scrBase) {
REG_BG3CNT_SUB = (REG_BG3CNT_SUB & 0x43) | (scrSize << 0xe) | 0x84 | (scrBase << 0x8) | (areaOver << 0xd);
}
inline void G2_SetBG2ControlText(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase) {
G2_SetBG2Control(scrSize, colMode, scrBase, charBase, 0);
}
inline void G2_SetBG3ControlText(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase) {
G2_SetBG3Control(scrSize, colMode, scrBase, charBase, 0);
}
inline void G2S_SetBG2ControlText(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase) {
G2S_SetBG2Control(scrSize, colMode, scrBase, charBase, 0);
}
inline void G2S_SetBG3ControlText(GXBGScrSizeText scrSize, GXBGColorMode colMode, GXBGScrBase scrBase, GXBGCharBase charBase) {
G2S_SetBG3Control(scrSize, colMode, scrBase, charBase, 0);
}
inline void G2_SetBG2Affine(MtxFx22 *mtx, u32 param2, u32 param3, u32 param4, u32 param5) {
G2_SetBGAffine((u32 *) &REG_BG2PA, mtx, param2, param3, param4, param5);
}
inline void G2_SetBG3Affine(MtxFx22 *mtx, u32 param2, u32 param3, u32 param4, u32 param5) {
G2_SetBGAffine((u32 *) &REG_BG3PA, mtx, param2, param3, param4, param5);
}
inline void G2S_SetBG2Affine(MtxFx22 *mtx, u32 param2, u32 param3, u32 param4, u32 param5) {
G2_SetBGAffine((u32 *) &REG_BG2PA_SUB, mtx, param2, param3, param4, param5);
}
inline void G2S_SetBG3Affine(MtxFx22 *mtx, u32 param2, u32 param3, u32 param4, u32 param5) {
G2_SetBGAffine((u32 *) &REG_BG3PA_SUB, mtx, param2, param3, param4, param5);
}
inline void G2_ChangeBlendAlpha(u32 param1, u32 param2) {
REG_BLDALPHA = param1 | (param2 << 8);
}
inline void G2S_ChangeBlendAlpha(u32 param1, u32 param2) {
REG_BLDALPHA_SUB = param1 | (param2 << 8);
}
inline void G2_BG0Mosaic(BOOL flag) {
if (flag) {
REG_BG0CNT |= 0x40;
} else {
REG_BG0CNT &= ~0x40;
}
}
inline void G2_BG1Mosaic(BOOL flag) {
if (flag) {
REG_BG1CNT |= 0x40;
} else {
REG_BG1CNT &= ~0x40;
}
}
inline void G2_BG2Mosaic(BOOL flag) {
if (flag) {
REG_BG2CNT |= 0x40;
} else {
REG_BG2CNT &= ~0x40;
}
}
inline void G2_BG3Mosaic(BOOL flag) {
if (flag) {
REG_BG3CNT |= 0x40;
} else {
REG_BG3CNT &= ~0x40;
}
}
inline void G2S_BG0Mosaic(BOOL flag) {
if (flag) {
REG_BG0CNT_SUB |= 0x40;
} else {
REG_BG0CNT_SUB &= ~0x40;
}
}
inline void G2S_BG1Mosaic(BOOL flag) {
if (flag) {
REG_BG1CNT_SUB |= 0x40;
} else {
REG_BG1CNT_SUB &= ~0x40;
}
}
inline void G2S_BG2Mosaic(BOOL flag) {
if (flag) {
REG_BG2CNT_SUB |= 0x40;
} else {
REG_BG2CNT_SUB &= ~0x40;
}
}
inline void G2S_BG3Mosaic(BOOL flag) {
if (flag) {
REG_BG3CNT_SUB |= 0x40;
} else {
REG_BG3CNT_SUB &= ~0x40;
}
}
inline void G2_SetBGMosaicSize(u32 width, u32 height) {
REG_MOSAIC = width | (height << 4);
}
inline void G2S_SetBGMosaicSize(u32 width, u32 height) {
REG_MOSAIC_SUB = width | (height << 4);
}
inline void G2_SetOBJMosaicSize(u32 width, u32 height) {
REG_OBJMOSAIC = width | (height << 4);
}
inline void G2S_SetOBJMosaicSize(u32 width, u32 height) {
REG_OBJMOSAIC_SUB = width | (height << 4);
}
inline void G2_BlendNone() {
REG_BLDCNT = 0;
}
inline void G2S_BlendNone() {
REG_BLDCNT_SUB = 0;
}
inline void G2_SetBlendAlpha(u32 srcPlane, u32 dstPlane, u32 srcAlpha, u32 dstAlpha) {
_G2_SetBlend((u32 *) &REG_BLDCNT, srcPlane, dstPlane, srcAlpha, dstAlpha);
}
inline void G2S_SetBlendAlpha(u32 srcPlane, u32 dstPlane, u32 srcAlpha, u32 dstAlpha) {
_G2_SetBlend((u32 *) &REG_BLDCNT_SUB, srcPlane, dstPlane, srcAlpha, dstAlpha);
}
inline void G2_GetOBJPosition(GXOamAttr *oam, u32 *x, u32 *y) {
*x = (oam->attr01 & 0x1ff0000) >> 16;
*y = oam->attr01 & 0xff;
}
inline void G2_SetOBJPosition(GXOamAttr *oam, u32 x, u32 y) {
oam->attr01 = (oam->attr01 & 0xfe00ff00) | (y & 0xff) | (x << 0x17 >> 0x7);
}
inline u32 G2_GetOBJCharName(GXOamAttr *oam) {
return oam->attr2 & 0x3ff;
}
inline void G2_SetOBJCharName(volatile GXOamAttr *oam, u32 name) {
oam->attr2 = (oam->attr2 & -0x400) | (name);
}
inline u32 G2_GetOBJColorParam(GXOamAttr *oam) {
return (oam->attr2 & 0xf000) >> 0xc;
}
// Defined as macro as sometimes `oam` is volatile and other times not
#define G2_GetOBJMode(oam) (GXOamMode)(((oam)->attr01 & 0xc00) >> 0xa)
// inline GXOamMode G2_GetOBJMode(volatile GXOamAttr *oam) {
// return ((oam)->attr01 & 0xc00) >> 0xa;
// }
inline void G2_SetOBJMode(GXOamAttr *oam, GXOamMode mode, u32 color) {
oam->attr01 = (oam->attr01 & ~0xc00) | (mode << 0xa);
oam->attr2 = (oam->attr2 & ~0xf000) | (color << 0xc);
}
inline void G2_SetOBJPriority(GXOamAttr *oam, u32 prio) {
// no implementation found
}
inline void G2_SetOBJAttr(GXOamAttr *oam, u32 x, u32 y, u32 param4, GXOamMode mode, BOOL param6, u32 effect, u32 shape,
u32 color, u32 param10, u32 param11, u32 param12) {
// Unused: param4, param6, effect, param11, param12
// c1ff0cff
// 3 bits at 0x8
// 4 bits at 0xc
// 5 bits at 0x19
oam->attr01 = (y & 0xff) | (mode << 0xa) | (shape << 0x1e) | ((x << 0x17) >> 0x7);
// f3ff
// 2 bits at 0xa
oam->attr2 = param10 | (color << 0xc);
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+122
View File
@@ -0,0 +1,122 @@
#ifndef _NITRO_G3_H
#define _NITRO_G3_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/fx.h"
#include "nitro/gx.h"
#include "nitro/types.h"
#define G3OP_TEXCOORD 0x1 // guess
void G3X_Init(void);
void G3X_InitTable(void);
void G3X_InitMtxStack(void);
void G3X_Reset(void);
void G3X_SetClearColor(u32 rgb, u32 a, u32 param3, u32 param4, BOOL param5);
inline void G3_TexImageParam(GXTexFmt fmt, u32 gen, GXTexSizeS sizeS, GXTexSizeT sizeT, u32 repeat, u32 flip,
GXTexPlttColor0 color0, u32 addr) {
// Unclear where repeat and flip should go
// GGCFFFTT_TSSSxAAA_AAAAAAAA_AAAAAxxx
// G: gen
// C: color0
// F: fmt
// T: sizeT
// S: sizeS
// A: addr
REG_GFX_FIFO_TEXTURE_PARAM =
(fmt << 0x1a) | (addr << 0x3) | (gen << 0x1e) | (sizeS << 0x14) | (sizeT << 0x17) | (color0 << 0x1d);
}
inline void G3_TexPlttBase(u32 addr, GXTexFmt fmt) {
REG_GFX_FIFO_TEXTURE_PALETTE = addr >> (4 - (fmt == 2));
}
inline void G3_PolygonAttr(u32 lightMask, u32 polygonMode, u32 cull, u32 id, u32 alpha, u32 param6) {
// Unclear where lightMask, cull and param6 should go
// xxIIIIII_xxxAAAAA_xxxxxxxx_PPxxxxxx
// I: id
// A: alpha
// P: polygonMode
REG_GFX_FIFO_POLYGON_ATTR = (id << 0x18) | (polygonMode << 0x6) | (alpha << 0x10);
}
inline void G3_PushMtx(void) {
REG_GFX_FIFO_MATRIX_PUSH = 0;
}
inline void G3_Translate(fx32 x, fx32 y, fx32 z) {
REG_GFX_FIFO_MATRIX_TRANSLATE = x;
REG_GFX_FIFO_MATRIX_TRANSLATE = y;
REG_GFX_FIFO_MATRIX_TRANSLATE = z;
}
inline void G3_ViewPort(u32 left, u32 top, u32 right, u32 bottom) {
// Unclear how to combine the arguments
// left = 0, top = 0, right = 255, bottom = 191 => 0x8000
REG_GFX_FIFO_VIEWPORT = 0xbfff0000;
}
void _G3_Ortho(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 far, fx32 param7, BOOL param8, void *param9);
inline void G3_Ortho(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 far, void *param7) {
_G3_Ortho(top, bottom, left, right, near, far, FX32_ONE, TRUE, param7);
}
inline void G3_StoreMtx(u32 param1) {
REG_GFX_FIFO_MATRIX_STORE = param1;
}
void _G3_LookAt(VecFx32 *camera, VecFx32 *up, VecFx32 *lookAt, BOOL param4, void *param5);
inline void G3_LookAt(VecFx32 *camera, VecFx32 *up, VecFx32 *lookAt, void *param4) {
_G3_LookAt(camera, up, lookAt, true, param4);
}
inline void G3_MtxMode(u32 mode) {
REG_GFX_FIFO_MATRIX_MODE = mode;
}
inline void G3_Identity(void) {
REG_GFX_FIFO_MATRIX_IDENTITY = 0;
}
inline void G3_PopMtx(u32 param1) {
REG_GFX_FIFO_MATRIX_POP = param1;
}
inline void G3_Begin(u32 shape) {
REG_GFX_FIFO_POLYGONS_BEGIN = shape;
}
inline void G3_Color(u16 color) {
REG_GFX_FIFO_VERTEX_COLOR = color;
}
inline void G3_Direct1(u32 op, GXSt texCoord) {
switch (op) {
case G3OP_TEXCOORD:
REG_GFX_FIFO_VERTEX_TEXCOORD = texCoord;
break;
}
}
inline void G3_Vtx(u16 x, u16 y, u16 z) {
REG_GFX_FIFO_VERTEX_16 = x | (y << 0x10);
REG_GFX_FIFO_VERTEX_16 = z;
}
inline void G3_End(void) {
REG_GFX_FIFO_POLYGONS_END = 0;
}
inline void G3_SwapBuffers(u32 sortMode, u32 bufferMode) {
// Unclear what values these macros have and how they are meant to be combined
// GX_SORTMODE_MANUAL | GX_BUFFERMODE_Z == 0x1
REG_GFX_FIFO_SWAP_BUFFERS = 0x1;
}
inline BOOL G3X_IsGeometryBusy(void) {
return REG_GFX_STATUS & 0x8000000;
}
inline void G3X_AntiAlias(BOOL param1) {
REG_DISP3DCNT = REG_DISP3DCNT & ~0x3000 | (param1 << 0x4);
}
inline void G3X_AlphaBlend(BOOL param1) {
REG_DISP3DCNT = REG_DISP3DCNT & ~0x3000 | (param1 << 0x3);
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+423
View File
@@ -0,0 +1,423 @@
#ifndef _NITRO_GX_H
#define _NITRO_GX_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/reg.h"
#include "nitro/types.h"
#define GX_POWER_ALL 0x20e
#define GX_DISP_SELECT_MAIN_SUB 0x8000
#define GX_DISP_SELECT_SUB_MAIN 0
#define GX_DISPMODE_GRAPHICS 1
#define GX_DISPMODE_VRAM_C 0xa
#define GX_DISPMODE_VRAM_D 0xe
#define GX_VRAM_LCDC_ALL 0x1ff
#define GX_VRAM_LCDC_C 0x4
#define GX_VRAM_LCDC_D 0x8
#define GX_VRAM_BG_NONE ((GXVRamBG) 0)
#define GX_VRAM_BG_128_A ((GXVRamBG) 0x1)
#define GX_VRAM_BG_128_B ((GXVRamBG) 0x2)
#define GX_VRAM_BG_128_C ((GXVRamBG) 0x4)
#define GX_VRAM_BG_128_D ((GXVRamBG) 0x8)
#define GX_VRAM_BG_256_AB ((GXVRamBG) 0x3)
#define GX_VRAM_BG_384_ABC ((GXVRamBG) 0x7)
#define GX_VRAM_BG_384_ABD ((GXVRamBG) 0xb)
#define GX_VRAM_BG_512_ABCD ((GXVRamBG) 0xf)
#define GX_VRAM_SUB_BG_NONE ((GXVRamBG) 0)
#define GX_VRAM_SUB_BG_32_H ((GXVRamBG) 0x80)
#define GX_VRAM_SUB_BG_48_HI ((GXVRamBG) 0x180)
#define GX_VRAM_SUB_BG_128_C ((GXVRamBG) 0x4)
#define GX_VRAM_OBJ_NONE ((GXVRamOBJ) 0)
#define GX_VRAM_OBJ_128_A ((GXVRamOBJ) 0x1)
#define GX_VRAM_OBJ_128_B ((GXVRamOBJ) 0x2)
#define GX_VRAM_OBJ_128_C ((GXVRamOBJ) 0x4)
#define GX_VRAM_OBJ_128_D ((GXVRamOBJ) 0x8)
#define GX_VRAM_OBJ_64_E ((GXVRamOBJ) 0x10)
#define GX_VRAM_OBJ_16_F ((GXVRamOBJ) 0x20)
#define GX_VRAM_OBJ_16_G ((GXVRamOBJ) 0x40)
#define GX_VRAM_SUB_OBJ_NONE ((GXVRamOBJ) 0)
#define GX_VRAM_SUB_OBJ_16_I ((GXVRamOBJ) 0x100)
#define GX_VRAM_SUB_OBJ_128_D ((GXVRamOBJ) 0x8)
#define GX_VRAM_BGEXTPLTT_01_F 0x20
#define GX_VRAM_BGEXTPLTT_0123_FG 0x60
#define GX_VRAM_SUB_BGEXTPLTT_0123_H 0x80
#define GX_VRAM_SUB_OBJEXTPLTT_0_I 0x100
#define GX_VRAM_OBJEXTPLTT_0_F 0x20
#define GX_VRAM_OBJEXTPLTT_0_G 0x40
#define GX_VRAM_TEX_01_AB 0x3
#define GX_VRAM_TEXPLTT_0123_E 0x10
#define GX_PLANEMASK_NONE 0
#define GX_PLANEMASK_BG0 0x1
#define GX_PLANEMASK_BG1 0x2
#define GX_PLANEMASK_BG2 0x4
#define GX_PLANEMASK_BG3 0x8
#define GX_PLANEMASK_OBJ 0x10
#define GX_BGCHAROFFSET_0x00000 0
#define GX_BGSCROFFSET_0x00000 0
#define GX_BGMODE_0 0
#define GX_BGMODE_3 3
#define GX_BGMODE_5 5
#define GX_BG0_AS_2D 0
#define GX_BG_SCRSIZE_TEXT_256x256 0
#define GX_BG_SCRSIZE_256BMP_128x128 ((GXBGScrSize256Bmp) 0)
#define GX_BG_SCRSIZE_256BMP_256x256 ((GXBGScrSize256Bmp) 1)
#define GX_BG_SCRSIZE_256BMP_512x256 ((GXBGScrSize256Bmp) 2)
#define GX_BG_SCRSIZE_256BMP_512x512 ((GXBGScrSize256Bmp) 3)
#define GX_BG_SCRSIZE_DCBMP_128x128 ((GXBGScrSizeDcBmp) 0)
#define GX_BG_SCRSIZE_DCBMP_256x256 ((GXBGScrSizeDcBmp) 1)
#define GX_BG_SCRSIZE_DCBMP_512x256 ((GXBGScrSizeDcBmp) 2)
#define GX_BG_SCRSIZE_DCBMP_512x512 ((GXBGScrSizeDcBmp) 3)
#define GX_BG_AREAOVER_XLU ((GXBGAreaOver) 0)
#define GX_BG_AREAOVER_REPEAT ((GXBGAreaOver) 1)
#define GX_BG_BMPSCRBASE_0x00000 ((GXBGBmpScrBase) 0)
#define GX_BG_BMPSCRBASE_0x04000 ((GXBGBmpScrBase) 1)
#define GX_BG_BMPSCRBASE_0x08000 ((GXBGBmpScrBase) 2)
#define GX_BG_BMPSCRBASE_0x0c000 ((GXBGBmpScrBase) 3)
#define GX_BG_BMPSCRBASE_0x10000 ((GXBGBmpScrBase) 4)
#define GX_BG_BMPSCRBASE_0x14000 ((GXBGBmpScrBase) 5)
#define GX_BG_BMPSCRBASE_0x18000 ((GXBGBmpScrBase) 6)
#define GX_BG_BMPSCRBASE_0x1c000 ((GXBGBmpScrBase) 7)
#define GX_BG_BMPSCRBASE_0x20000 ((GXBGBmpScrBase) 8)
#define GX_BG_BMPSCRBASE_0x24000 ((GXBGBmpScrBase) 9)
#define GX_BG_BMPSCRBASE_0x28000 ((GXBGBmpScrBase) 10)
#define GX_BG_BMPSCRBASE_0x2c000 ((GXBGBmpScrBase) 11)
#define GX_BG_BMPSCRBASE_0x30000 ((GXBGBmpScrBase) 12)
#define GX_BG_BMPSCRBASE_0x34000 ((GXBGBmpScrBase) 13)
#define GX_BG_BMPSCRBASE_0x38000 ((GXBGBmpScrBase) 14)
#define GX_BG_BMPSCRBASE_0x3c000 ((GXBGBmpScrBase) 15)
#define GX_BG_BMPSCRBASE_0x40000 ((GXBGBmpScrBase) 16)
#define GX_BG_BMPSCRBASE_0x44000 ((GXBGBmpScrBase) 17)
#define GX_BG_BMPSCRBASE_0x48000 ((GXBGBmpScrBase) 18)
#define GX_BG_BMPSCRBASE_0x4c000 ((GXBGBmpScrBase) 19)
#define GX_BG_BMPSCRBASE_0x50000 ((GXBGBmpScrBase) 20)
#define GX_BG_BMPSCRBASE_0x54000 ((GXBGBmpScrBase) 21)
#define GX_BG_BMPSCRBASE_0x58000 ((GXBGBmpScrBase) 22)
#define GX_BG_BMPSCRBASE_0x5c000 ((GXBGBmpScrBase) 23)
#define GX_BG_BMPSCRBASE_0x60000 ((GXBGBmpScrBase) 24)
#define GX_BG_BMPSCRBASE_0x64000 ((GXBGBmpScrBase) 25)
#define GX_BG_BMPSCRBASE_0x68000 ((GXBGBmpScrBase) 26)
#define GX_BG_BMPSCRBASE_0x6c000 ((GXBGBmpScrBase) 27)
#define GX_BG_BMPSCRBASE_0x70000 ((GXBGBmpScrBase) 28)
#define GX_BG_BMPSCRBASE_0x74000 ((GXBGBmpScrBase) 29)
#define GX_BG_BMPSCRBASE_0x78000 ((GXBGBmpScrBase) 30)
#define GX_BG_BMPSCRBASE_0x7c000 ((GXBGBmpScrBase) 31)
#define GX_BG_COLORMODE_16 0
#define GX_BG_CHARBASE_0x00000 0
#define GX_BG_SCRBASE_0x0000 0
#define GX_BG_EXTPLTT_01 1
#define GX_OBJVRAMMODE_CHAR_1D_32K 0x10
#define GX_OBJVRAMMODE_CHAR_1D_64K 0x100010
#define GX_OBJVRAMMODE_CHAR_1D_128K 0x200010
#define GX_OBJVRAMMODE_CHAR_1D_256K 0x300010
#define GX_BLEND_PLANEMASK_NONE 0
#define GX_BLEND_PLANEMASK_BG0 0x1
#define GX_BLEND_PLANEMASK_BG1 0x2
#define GX_BLEND_PLANEMASK_BG2 0x4
#define GX_BLEND_PLANEMASK_BG3 0x8
#define GX_BLEND_PLANEMASK_OBJ 0x10
#define GX_BLEND_PLANEMASK_BD 0x20
#define GX_OAM_MODE_XLU 1
#define GX_OAM_MODE_BITMAPOBJ 3
#define GX_OAM_EFFECT_NONE 0
#define GX_OAM_SHAPE_64x64 0x3
#define GX_OAM_COLOR_16 0xf
#define GX_TEXSIZE_S8 0
#define GX_TEXSIZE_S16 0x1
#define GX_TEXSIZE_S32 0x2
#define GX_TEXSIZE_S64 0x3
#define GX_TEXSIZE_S128 0x4
#define GX_TEXSIZE_S256 0x5
#define GX_TEXSIZE_S512 0x6
#define GX_TEXSIZE_S1024 0x7
#define GX_TEXSIZE_T8 0
#define GX_TEXSIZE_T16 0x1
#define GX_TEXSIZE_T32 0x2
#define GX_TEXSIZE_T64 0x3
#define GX_TEXSIZE_T128 0x4
#define GX_TEXSIZE_T256 0x5
#define GX_TEXSIZE_T512 0x6
#define GX_TEXSIZE_T1024 0x7
#define GX_TEXFMT_NONE 0
#define GX_TEXFMT_PLTT4 0x2
#define GX_TEXFMT_PLTT16 0x3
#define GX_TEXFMT_PLTT256 0x4
#define GX_TEXFMT_DIRECT 0x7
#define GX_TEXPLTTCOLOR0_USE 0
#define GX_TEXPLTTCOLOR0_TRNS 0x1
#define GX_TEXGEN_NONE 0
#define GX_TEXGEN_TEXCOORD 0x1
#define GX_TEXREPEAT_NONE 0
#define GX_TEXFLIP_NONE 0
#define GX_LIGHTMASK_NONE 0
#define GX_POLYGONMODE_MODULATE 0x3
#define GX_CULL_NONE 0
#define GX_BEGIN_QUADS 0x1
#define GX_RGB(r, g, b) ((r) | ((g) << 0x5) | ((b) << 0xa))
#define GX_CAPTURE_SIZE_256x192 -1 // unknown value
#define GX_CAPTURE_MODE_A -1 // unknown value
#define GX_CAPTURE_SRCA_2D3D -1 // unknown value
#define GX_CAPTURE_DEST_VRAM_C_0x00000 0x2
#define GX_CAPTURE_DEST_VRAM_D_0x00000 0x3
#define GX_SORTMODE_MANUAL -1 // unknown value
#define GX_BUFFERMODE_Z -1 // unknown value
#define GX_MTXMODE_POSITION_VECTOR 0x2
#define GX_MTXMODE_TEXTURE 0x3
typedef u32 GXVRamBG;
typedef u32 GXVRamOBJ;
typedef struct {
u32 attr01;
union {
u16 attr2;
u32 attr23;
};
} GXOamAttr;
typedef u32 GXOamMode;
typedef u32 GXBGScrSize256Bmp;
typedef u32 GXBGScrSizeDcBmp;
typedef u32 GXBGAreaOver;
typedef u32 GXBGBmpScrBase;
typedef u32 GXBGScrSizeText;
typedef u32 GXBGColorMode;
typedef u32 GXBGScrBase;
typedef u32 GXBGCharBase;
typedef u32 GXOBJVRamModeChar;
typedef u32 GXTexFmt;
typedef s32 GXTexSizeS;
typedef s32 GXTexSizeT;
typedef u32 GXSt;
inline GXSt GX_ST(GXTexSizeS sizeS, GXTexSizeT sizeT) {
u16 t = sizeT << 8 >> 16;
u16 s = sizeS << 8 >> 16;
return s | (t << 16);
}
typedef u32 GXTexPlttColor0;
typedef u32 GXCaptureSrcB;
typedef struct GX_UnkStruct2 {
/* 00 */ u16 unk_00;
/* 02 */ u16 unk_02;
/* 04 */ u16 unk_04;
/* 06 */ u16 unk_06;
/* 08 */ u16 unk_08;
/* 0a */ u16 unk_0a;
/* 0c */ u16 unk_0c;
/* 0e */ u16 unk_0e;
/* 10 */ u16 unk_10;
/* 12 */ u16 unk_12;
/* 14 */ u16 unk_14;
/* 16 */ u16 unk_16;
/* 18 */ u16 unk_18;
/* 1a */
} GX_UnkStruct2;
void GX_Init(void);
void GX_DispOff(void);
void GX_DispOn(void);
u16 GX_VBlankIntr(BOOL);
u16 GX_HBlankIntr(BOOL);
void GX_SetBankForLCDC(s32);
void GX_DisableBankForLCDC(void);
void GX_SetBankForBG(s32);
void GX_SetBankForOBJ(s32);
void GX_SetBankForSubBG(s32);
void GX_SetBankForSubOBJ(s32);
void GX_SetBankForTex(u32);
void GX_SetBankForTexPltt(u32);
void GX_SetGraphicsMode(u32, u32, u32);
void GXS_SetGraphicsMode(u32);
void GX_LoadOAM(GXOamAttr *oam, u32 offset, u32 size);
void GXS_LoadOAM(GXOamAttr *oam, u32 offset, u32 size);
void GX_LoadBG0Char(void *ptr, u32 offset, u32 size);
void GX_LoadBG0Scr(void *ptr, u32 offset, u32 size);
void GX_LoadBG1Char(void *ptr, u32 offset, u32 size);
void GX_LoadBG1Scr(void *ptr, u32 offset, u32 size);
void GX_LoadBG2Bmp(void *ptr, u32 offset, u32 size);
void GX_LoadBG2Char(void *ptr, u32 offset, u32 size);
void GX_LoadBG2Scr(void *ptr, u32 offset, u32 size);
void GX_LoadBG3Bmp(void *ptr, u32 offset, u32 size);
void GX_LoadBG3Char(void *ptr, u32 offset, u32 size);
void GX_LoadBG3Scr(void *ptr, u32 offset, u32 size);
void GXS_LoadBG0Char(void *ptr, u32 offset, u32 size);
void GXS_LoadBG0Scr(void *ptr, u32 offset, u32 size);
void GXS_LoadBG1Char(void *ptr, u32 offset, u32 size);
void GXS_LoadBG1Scr(void *ptr, u32 offset, u32 size);
void GXS_LoadBG2Bmp(void *ptr, u32 offset, u32 size);
void GXS_LoadBG2Char(void *ptr, u32 offset, u32 size);
void GXS_LoadBG2Scr(void *ptr, u32 offset, u32 size);
void GXS_LoadBG3Bmp(void *ptr, u32 offset, u32 size);
void GXS_LoadBG3Char(void *ptr, u32 offset, u32 size);
void GXS_LoadBG3Scr(void *ptr, u32 offset, u32 size);
void GX_LoadBGPltt(void *ptr, u32 offset, u32 size);
void GX_LoadOBJPltt(void *ptr, u32 offset, u32 size);
void GXS_LoadBGPltt(void *ptr, u32 offset, u32 size);
void GXS_LoadOBJPltt(void *ptr, u32 offset, u32 size);
void GX_LoadOBJ(void *ptr, u32 offset, u32 size);
void GXS_LoadOBJ(void *ptr, u32 offset, u32 size);
BOOL GX_TrySetBankForBGExtPltt(s32);
BOOL GX_TrySetBankForSubBGExtPltt(s32);
BOOL GX_TrySetBankForOBJExtPltt(s32);
BOOL GX_TrySetBankForSubOBJExtPltt(s32);
u16 GX_ResetBankForBGExtPltt(void);
u16 GX_ResetBankForSubBGExtPltt(void);
u16 GX_ResetBankForOBJExtPltt(void);
u16 GX_ResetBankForSubOBJExtPltt(void);
void GX_BeginLoadBGExtPltt(void);
void GX_LoadBGExtPltt(void *ptr, u32 offset, u32 size);
void GX_EndLoadBGExtPltt(void);
void GXS_BeginLoadBGExtPltt(void);
void GXS_LoadBGExtPltt(void *ptr, u32 offset, u32 size);
void GXS_EndLoadBGExtPltt(void);
void GX_BeginLoadOBJExtPltt(void);
void GX_LoadOBJExtPltt(void *ptr, u32 offset, u32 size);
void GX_EndLoadOBJExtPltt(void);
void GXS_BeginLoadOBJExtPltt(void);
void GXS_LoadOBJExtPltt(void *ptr, u32 offset, u32 size);
void GXS_EndLoadOBJExtPltt(void);
void GX_BeginLoadTexPltt(void);
void GX_LoadTexPltt(void *ptr, u32 offset, u32 size);
void GX_EndLoadTexPltt(void);
void GX_BeginLoadTex(void);
void GX_LoadTex(void *ptr, u32 offset, u32 size);
void GX_EndLoadTex(void);
void GX_func_0008(void *, s32, s32);
extern u16 data_020a7088;
extern u32 data_020a708c;
extern u16 data_0216a0dc;
extern u16 data_0216a0de;
extern GX_UnkStruct2 data_0216a0e0;
inline void GXS_DispOff(void) {
REG_DISPCNT_SUB &= ~0x10000;
}
inline void GXS_DispOn(void) {
REG_DISPCNT_SUB |= 0x10000;
}
inline void GX_SetPower(u32 value) {
REG_POWER_CNT = (REG_POWER_CNT & 0xFFFFFDF1) | (value);
}
inline void GX_SetDispSelect(u32 value) {
REG_POWER_CNT = (REG_POWER_CNT & ~0x8000) | value;
}
inline void GX_SetOBJVRamModeChar(u32 value) {
REG_DISPCNT = (REG_DISPCNT & 0xFFCFFFEF) | (value);
}
inline void GXS_SetOBJVRamModeChar(u32 value) {
REG_DISPCNT_SUB = (REG_DISPCNT_SUB & 0xFFCFFFEF) | (value);
}
inline u16 GX_GetVCount(void) {
return REG_VCOUNT;
}
inline void GX_SetVisiblePlane(s32 plane) {
REG_DISPCNT = (REG_DISPCNT & ~0x1f00) | (plane << 8);
}
inline void GXS_SetVisiblePlane(s32 plane) {
REG_DISPCNT_SUB = (REG_DISPCNT_SUB & ~0x1f00) | (plane << 8);
}
inline void GX_SetBGCharOffset(u32 offset) {
REG_DISPCNT = (REG_DISPCNT & ~0x7000000) | offset;
}
inline void GX_SetBGScrOffset(u32 offset) {
REG_DISPCNT = (REG_DISPCNT & ~0x38000000) | offset;
}
inline void GX_SetCapture(u32 size, u32 mode, u32 srcA, GXCaptureSrcB srcB, u32 dest, u32 param6, u32 param7) {
// Unclear how to combine the arguments
// size = GX_CAPTURE_SIZE_256x192,
// mode = GX_CAPTURE_MODE_A,
// srcA = GX_CAPTURE_SRCA_2D3D,
// srcB = 0,
// dest = GX_CAPTURE_DEST_VRAM_C_0x00000,
// param6 = 16,
// param7 = 0,
// => 0x80320010
REG_DISPCAPCNT = 0x80300010 | (dest << 0x10);
}
inline void GXS_SetOBJVRamModeBmp(u32 mode) {
REG_DISPCNT_SUB = REG_DISPCNT_SUB & ~0x60 | ((mode & 0x3) << 5);
}
inline void GX_SetVisibleWindows(s32 windows) {
REG_DISPCNT = (REG_DISPCNT & ~0xE000) | (windows << 13);
}
inline void GXS_SetVisibleWindows(s32 windows) {
REG_DISPCNT_SUB = (REG_DISPCNT_SUB & ~0xE000) | (windows << 13);
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+39
View File
@@ -0,0 +1,39 @@
#ifndef _NITRO_HW_H
#define _NITRO_HW_H
#ifdef __cplusplus
extern "C" {
#endif
#define HW_PLTT ((void *) 0x05000000)
#define HW_PLTT_SIZE 0x400
#define HW_DB_PLTT ((void *) 0x05000400)
#define HW_DB_PLTT_SIZE 0x400
#define HW_BG_VRAM ((void *) 0x06000000)
#define HW_BG_VRAM_SIZE // TODO
#define HW_DB_BG_VRAM ((void *) 0x06200000)
#define HW_DB_BG_VRAM_SIZE // TODO
#define HW_OBJ_VRAM ((void *) 0x06400000)
#define HW_OBJ_VRAM_SIZE // TODO
#define HW_DB_OBJ_VRAM ((void *) 0x06600000)
#define HW_DB_OBJ_VRAM_SIZE // TODO
#define HW_LCDC_VRAM ((void *) 0x06800000)
#define HW_LCDC_VRAM_SIZE 0xA4000
#define HW_OAM ((void *) 0x07000000)
#define HW_OAM_SIZE 0x400
#define HW_DB_OAM ((void *) 0x07000400)
#define HW_DB_OAM_SIZE 0x400
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+60 -84
View File
@@ -4,6 +4,8 @@
#include "global.h"
#include "types.h"
#include <nitro/fx.h>
#if __MWERKS__
#define Vec2_Set(a, dst) \
{ \
@@ -45,18 +47,13 @@ extern "C" {
#define CLAMP(x, min, max) ((x) > (max) ? (max) : (x) < (min) ? (min) : (x))
#define CLAMP2(x, min, max) ((x) > (max) ? (max) : (x) >= (min) ? (x) : (min))
// Q20.12 fixed point number
typedef s32 q20;
// Q4.12 fixed point number
typedef s16 q4;
#define INT_TO_Q20(n) ((s32) ((n) << 12))
#define INT_TO_Q20(n) ((s32) ((n) << FX32_SHIFT))
#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4))
#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2))
#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1)))
#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12)
#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12)
#define DIV_Q20(a, b) (((a) << 12) / (b))
#define ROUND_Q20(n) (((s32) (n) + 0x800) >> FX32_SHIFT)
#define MUL_Q20(a, b) (fx32)((((s64) (a)) * ((s64) (b)) + 0x800) >> FX32_SHIFT)
#define DIV_Q20(a, b) (((a) << FX32_SHIFT) / (b))
#define DEG_TO_ANG(n) ((n) * 0x10000 / 360)
#define SIN(n) (gSinCosTable[2 * ((n) >> 4)])
@@ -67,38 +64,17 @@ typedef s16 q4;
typedef union Vec2p {
struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 0 */ fx32 x;
/* 4 */ fx32 y;
/* 8 */
};
q20 coords[2];
fx32 coords[2];
} Vec2p;
#define Vec2p_Add(a, b, dst) Vec2_Add(Vec2p, a, b, dst)
#define Vec2p_Sub(a, b, dst) Vec2_Sub(Vec2p, a, b, dst)
#define Vec2p_Set(a, dst) Vec2_Set(Vec2p, a, dst)
#define Vec2p_Clear(dst) Vec2_Clear(q20, dst)
typedef union Vec3p {
struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 8 */ q20 z;
/* C */
};
q20 coords[3];
} Vec3p;
typedef union Vec4p {
struct {
/* 00 */ q20 x;
/* 04 */ q20 y;
/* 08 */ q20 z;
/* 0C */ q20 w;
/* 10 */
};
q20 coords[4];
} Vec4p;
#define Vec2p_Clear(dst) Vec2_Clear(fx32, dst)
typedef struct Mat2p {
/* 00 */ Vec2p xColumn;
@@ -107,25 +83,25 @@ typedef struct Mat2p {
} Mat2p;
typedef struct Mat3p {
/* 00 */ Vec3p xColumn;
/* 0C */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 00 */ VecFx32 xColumn;
/* 0C */ VecFx32 yColumn;
/* 18 */ VecFx32 zColumn;
/* 24 */
} Mat3p;
typedef struct Mat4x3p {
/* 00 */ Vec3p xColumn;
/* 0C */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 24 */ Vec3p wColumn;
/* 00 */ VecFx32 xColumn;
/* 0C */ VecFx32 yColumn;
/* 18 */ VecFx32 zColumn;
/* 24 */ VecFx32 wColumn;
/* 30 */
} Mat4x3p;
typedef struct Mat4p {
/* 00 */ Vec4p xColumn;
/* 10 */ Vec4p yColumn;
/* 20 */ Vec4p zColumn;
/* 30 */ Vec4p wColumn;
/* 00 */ MtxFx22 xColumn;
/* 10 */ MtxFx22 yColumn;
/* 20 */ MtxFx22 zColumn;
/* 30 */ MtxFx22 wColumn;
/* 40 */
} Mat4p;
@@ -148,85 +124,85 @@ void StartDivision64By32(u32 a, u32 b);
u32 CoDivide32(u32 a, u32 b);
u32 CoRemainder(u32 a, u32 b);
bool Approach(unk32 *src, unk32 dest, unk32 step);
bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
extern q4 gSinCosTable[];
bool Approach(s32 *src, s32 dest, s32 step);
bool Approach_thunk(s32 *src, s32 dest, s32 step);
extern fx16 gSinCosTable[];
extern const Vec3p gVec3p_ZERO;
extern const VecFx32 gVecFx32_ZERO;
void Vec3p_Add(Vec3p *a, const Vec3p *b, Vec3p *out);
void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
q20 Vec3p_Length(Vec3p *a);
void Vec3p_Normalize(Vec3p *vec, Vec3p *out);
void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out);
q20 Vec3p_Distance(Vec3p *a, Vec3p *b);
bool Vec3p_TryNormalize(Vec3p *vec);
q20 Vec3p_DistanceSquared(Vec3p *a, Vec3p *b);
void Vec3p_Scale(Vec3p *vec, q20 scale);
bool Vec3p_CalculateNormal(Vec3p *vec, Vec3p *a, Vec3p *b, Vec3p *c);
void VecFx32_Add(VecFx32 *a, const VecFx32 *b, VecFx32 *out);
void VecFx32_Sub(VecFx32 *a, VecFx32 *b, VecFx32 *out);
fx32 VecFx32_Dot(VecFx32 *a, VecFx32 *b);
void VecFx32_Cross(VecFx32 *a, VecFx32 *b, VecFx32 *out);
fx32 VecFx32_Length(VecFx32 *a);
void VecFx32_Normalize(VecFx32 *vec, VecFx32 *out);
void VecFx32_Axpy(fx32 a, VecFx32 *x, VecFx32 *y, VecFx32 *out);
fx32 VecFx32_Distance(VecFx32 *a, VecFx32 *b);
bool VecFx32_TryNormalize(VecFx32 *vec);
fx32 VecFx32_DistanceSquared(VecFx32 *a, VecFx32 *b);
void VecFx32_Scale(VecFx32 *vec, fx32 scale);
bool VecFx32_CalculateNormal(VecFx32 *vec, VecFx32 *a, VecFx32 *b, VecFx32 *c);
static inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
static inline void VecFx32_Rotate(VecFx32 *vec, fx32 sin, fx32 cos, VecFx32 *out) {
out->x += MUL_Q20(vec->z, sin);
out->z += MUL_Q20(vec->z, cos);
out->x += MUL_Q20(vec->x, cos);
out->z += MUL_Q20(vec->x, -sin);
}
static inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) {
q20 z = vec->z;
q20 x = vec->x;
static inline void VecFx32_CopyXZ(VecFx32 *vec, VecFx32 *out) {
fx32 z = vec->z;
fx32 x = vec->x;
out->x = x;
out->y = 0;
out->z = z;
}
static inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) {
static inline void VecFx32_Copy(VecFx32 *vec, VecFx32 *out) {
out->x = vec->x;
out->y = vec->y;
out->z = vec->z;
}
static inline void Vec3p_Init(q20 x, q20 y, q20 z, Vec3p *dst) {
static inline void VecFx32_Init(fx32 x, fx32 y, fx32 z, VecFx32 *dst) {
dst->x = x;
dst->y = y;
dst->z = z;
}
void Mat2p_InitIdentity(Mat2p *m);
void Mat2p_InitRotation(Mat2p *m, q20 sin, q20 cos);
void Mat2p_InitRotation(Mat2p *m, fx32 sin, fx32 cos);
void Mat2p_Multiply(Mat2p *a, Mat2p *b, Mat2p *out);
void Mat3p_InitIdentity(Mat3p *m);
void Mat3p_CopyToMat4x3p(Mat3p *m, Mat4x3p *out);
void Mat3p_InitScale(Mat3p *m, q20 x, q20 y, q20 z);
void Mat3p_ScaleColumns(Mat3p *m, Mat3p *out, q20 x, q20 y, q20 z);
void Mat3p_InitXRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_InitYRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_InitZRotation(Mat3p *m, q20 sin, q20 cos);
void Mat3p_func_01ff8248(Mat3p *m, Vec3p *v, q20 scale, q20 offset);
void Mat3p_InitScale(Mat3p *m, fx32 x, fx32 y, fx32 z);
void Mat3p_ScaleColumns(Mat3p *m, Mat3p *out, fx32 x, fx32 y, fx32 z);
void Mat3p_InitXRotation(Mat3p *m, fx32 sin, fx32 cos);
void Mat3p_InitYRotation(Mat3p *m, fx32 sin, fx32 cos);
void Mat3p_InitZRotation(Mat3p *m, fx32 sin, fx32 cos);
void Mat3p_func_01ff8248(Mat3p *m, VecFx32 *v, fx32 scale, fx32 offset);
void Mat3p_func_01ff83a0(Mat3p *a, Mat3p *b);
void Mat3p_Multiply(Mat3p *a, Mat3p *b, Mat3p *out);
void Mat3p_MultiplyVec(Vec3p *v, Mat3p *m, Vec3p *out);
void Mat3p_MultiplyVec(VecFx32 *v, Mat3p *m, VecFx32 *out);
void Mat4x3p_InitIdentity(Mat4x3p *m);
void Mat4x3p_CopyToMat4p(Mat4x3p *m, Mat4p *out);
void Mat4x3p_func_01ff8988(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
void Mat4x3p_InitScale(Mat4x3p *m, q20 x, q20 y, q20 z);
void Mat4x3p_ScaleColumns(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z);
void Mat4x3p_InitXRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_InitYRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_InitZRotation(Mat4x3p *m, q20 sin, q20 cos);
void Mat4x3p_func_01ff8ad8(Mat4x3p *m, Vec3p *v, q20 scale, q20 offset);
void Mat4x3p_func_01ff8988(Mat4x3p *m, Mat4x3p *out, fx32 x, fx32 y, fx32 z);
void Mat4x3p_InitScale(Mat4x3p *m, fx32 x, fx32 y, fx32 z);
void Mat4x3p_ScaleColumns(Mat4x3p *m, Mat4x3p *out, fx32 x, fx32 y, fx32 z);
void Mat4x3p_InitXRotation(Mat4x3p *m, fx32 sin, fx32 cos);
void Mat4x3p_InitYRotation(Mat4x3p *m, fx32 sin, fx32 cos);
void Mat4x3p_InitZRotation(Mat4x3p *m, fx32 sin, fx32 cos);
void Mat4x3p_func_01ff8ad8(Mat4x3p *m, VecFx32 *v, fx32 scale, fx32 offset);
void Mat4x3p_func_01ff8af8(Mat4x3p *a, Mat4x3p *b);
void Mat4x3p_Multiply(Mat4x3p *a, Mat4x3p *b, Mat4x3p *out);
void Mat4x3p_MultiplyVec(Vec3p *v, Mat4x3p *m, Vec3p *out);
void Mat4x3p_MultiplyVec(VecFx32 *v, Mat4x3p *m, VecFx32 *out);
void Mat4p_InitIdentity(Mat4p *m);
void Mat4p_CopyToMat4x3p(Mat4p *m, Mat4x3p *out);
void Mat4p_InitZRotation(Mat4p *m, q20 sin, q20 cos);
void Mat4p_InitZRotation(Mat4p *m, fx32 sin, fx32 cos);
void Mat4p_Multiply(Mat4p *a, Mat4p *b, Mat4p *out);
#ifdef __cplusplus
+64
View File
@@ -0,0 +1,64 @@
#ifndef _NITRO_MB_H
#define _NITRO_MB_H
#include "nitro/types.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MB_USER_NAME_LENGTH 0 // nocheckin
typedef struct {
u16 length;
u16 rssi;
u16 bssid[3];
u16 ssidLength;
u8 ssid[32];
u16 capaInfo;
struct {
u16 basic;
u16 support;
} rateSet;
u16 beaconPeriod;
u16 dtimPeriod;
u16 channel;
u16 cfpPeriod;
u16 cfpMaxDuration;
} MBParentBssDesc;
typedef struct MBGameRegistry {
/* 00 */ const char *programPathName;
/* 04 */ const u16 *title;
/* 08 */ const u16 *description;
/* 0c */ const char *iconCharacterDataFile;
/* 10 */ const char *iconPaletteFile;
/* 14 */ u32 ggid;
/* 18 */ u8 numPlayers;
/* 19 */ u8 unk_19[0x3c - 0x19];
/* 3c */
} MBGameRegistry;
typedef struct MBUserInfo {
// nocheckin
u16 nameLength;
char name[1];
} MBUserInfo;
inline BOOL MB_IsMultiBootChild(void) {
return REG_027FFC40 == 0x2;
}
inline const MBParentBssDesc *MB_GetMultiBootParentBssDesc(void) {
BOOL b = REG_027FFC40 == 2;
if (b) {
return (const MBParentBssDesc *) &REG_027FFC42;
} else {
return NULL;
}
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+45
View File
@@ -0,0 +1,45 @@
#ifndef _NITRO_MI_H
#define _NITRO_MI_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/types.h"
#define MI_DMA_MAX_NUM 3
void MI_DmaFill32(u32, void *ptr, u8 value, u32 size);
void MI_DmaCopy16(u32, void *src, void *dst, u32 size);
void MI_DmaCopy32(u32, void *src, void *dst, u32 size);
void MI_func_0206d87c(u32, void *src, void *dst, u32 size, u32, u32);
void MI_func_0206d934(u32);
BOOL MI_IsDmaBusy(u32);
void _MI_CpuCopy(void *src, void *dest, u32 size);
void _MI_CpuFill(u32 value, void *ptr, u32 size);
void MI_CpuFill8(void *ptr, u8 value, u32 size);
void MI_CpuCopy8(void *src, void *dst, u32 size);
void MI_CpuCopy16(void *src, void *dst, u32 size);
void MI_CpuCopy32(void *src, void *dst, u32 size);
void MI_CpuFill16(int value, void *dst, size_t size);
void MI_CpuFill32(u32 value, void *ptr, u32 size);
void MI_Swap(u32 *a, u32 *b);
inline void MI_CpuClearFast(void *ptr, u32 size) {
_MI_CpuFill(0, ptr, size);
}
inline void MI_CpuFillFast(void *ptr, u8 value, u32 size) {
_MI_CpuFill(value, ptr, size);
}
inline void MI_CpuCopyFast(void *src, void *dest, u32 size) {
_MI_CpuCopy(src, dest, size);
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+238
View File
@@ -0,0 +1,238 @@
#ifndef _NITRO_OS_H
#define _NITRO_OS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdarg.h>
#include "nitro/os/context.h"
#include "nitro/os/mutex.h"
#include "nitro/os/thread.h"
#include "nitro/reg.h"
#define OS_IE_V_BLANK 1
#define OS_IE_H_BLANK 2
#define OS_ARENA_MAIN 0
#define OS_ARENA_ITCM 3
#define OS_ARENA_DTCM 4
#define OS_CURRENT_HEAP_HANDLE -1
#define OS_MESSAGE_NOBLOCK 0
#define OS_MESSAGE_BLOCK 1
#define OS_CONSOLE_ISDEBUGGER 0x40000000
#define OS_CONSOLE_NITRO 0x80000000
#define OS_LOCK_ID_ERROR -3
#define OS_THREAD_LAUNCHER_PRIORITY 0x10
typedef struct OSLinkedList {
/* 00 */ void *head;
/* 04 */ void *tail;
/* 08 */
} OSLinkedList;
typedef struct OSMessageQueue {
/* 00 */ OSLinkedList unk_00;
/* 08 */ u32 unk_08;
/* 0c */ u32 unk_0c;
/* 10 */ u32 unk_10;
/* 14 */ u32 unk_14;
/* 18 */ u32 unk_18;
/* 1c */ u32 unk_1c;
/* 20 */
} OSMessageQueue;
// TODO: Maybe align is wrong? g_msgBuf in PM4 is aligned by 8 with 4 bytes of padding before it
typedef void *OSMessage ATTRIBUTE_ALIGN(8);
typedef struct OSAlarm {
/* 00 */ u32 unk_00;
/* 04 */ u32 unk_04;
/* 08 */ u32 unk_08;
/* 0c */ u32 unk_0c;
/* 10 */ u32 unk_10;
/* 14 */ void *unk_14;
/* 18 */ void *unk_18;
/* 1c */ u32 unk_1c;
/* 20 */ u32 unk_20;
/* 24 */ u32 unk_24;
/* 28 */ u32 unk_28;
/* 2c */
} OSAlarm;
typedef struct OSDma {
/* 00 */ vu32 src;
/* 04 */ vu32 dst;
/* 08 */ vu32 cnt;
/* 0c */
} OSDma;
typedef u32 OSHeapHandle;
typedef u64 OSTime;
typedef u32 OSIntrMode;
void OS_Init(void);
void OS_InitThread(void);
void OS_InitTick(void);
void OS_InitAlarm(void);
void OS_Terminate(void);
void OS_SetIrqFunction(u32 type, void (*function)());
void OS_EnableIrqMask(u32 mask);
void OS_WaitVBlankIntr(void);
void _OS_SpinWait(u32 param1);
inline void OS_SpinWait(u32 param1) {
_OS_SpinWait(param1 / 2);
}
void _OS_Panic();
#ifdef DEBUG
void OS_TPrintf(const char *format, ...) {}
void OS_Printf(const char *format, ...) {}
void OS_TVPrintf(const char *format, va_list args) {}
void OS_TPanic(const char *message) {}
void OS_Panic(const char *message) {}
#else
#define OS_TPrintf(...)
#define OS_Printf(...)
#define OS_TVPrintf(...)
#define OS_TPanic(...) _OS_Panic()
#define OS_Panic(...) _OS_Panic()
#endif
void OS_ResetSystem(u32);
void *OS_InitAlloc(u32 arena, u32 addrLo, u32 addrHi, u32);
u32 OS_GetArenaLo(u32 arena);
u32 OS_GetArenaHi(u32 arena);
void OS_SetArenaLo(u32 arena, void *addr);
void *OS_AllocFromArenaLo(u32 arena, u32 size, u32 num);
OSHeapHandle OS_CreateHeap(u32 arena, void *addrLo, void *addrHi);
void OS_SetCurrentHeap(u32 arena, OSHeapHandle heap);
void OS_DumpHeap(u32 arena, OSHeapHandle heap);
void *OS_AllocFromHeap(u32 arena, OSHeapHandle heap, u32 size);
void OS_FreeFromHeap(u32 arena, OSHeapHandle heap, void *ptr);
u32 OS_CheckHeap(u32 arena, OSHeapHandle heap);
void OS_Sleep(u32 time);
#ifdef DEBUG
void OS_CheckStack(OSThread *thread);
#else
#define OS_CheckStack(thread)
#endif
void OS_func_0044(void);
s32 OS_func_0039(OSMutexQueue *param1);
void OS_InitMessageQueue(OSMessageQueue *queue, OSMessage *buf, u32 bufLength);
void OS_ReceiveMessage(OSMessageQueue *queue, OSMessage *message, u32 block);
void OS_SendMessage(OSMessageQueue *queue, OSMessage message, u32 block);
void OS_CreateAlarm(OSAlarm *alarm);
void OS_SetPeriodicAlarm(OSAlarm *alarm, OSTime, OSTime, void (*callback)(void *arg), void *arg);
void OS_CancelAlarm(OSAlarm *alarm);
OSTime OS_GetTick(void);
u32 OS_GetConsoleType(void);
u32 OS_GetLockID(void);
OSIntrMode OS_DisableInterrupts(void);
u32 OS_DisableInterrupts_Irq(void);
void OS_RestoreInterrupts(u32);
void OS_EnableInterrupts(void);
BOOL OS_func_0206d5ac(u16, u32);
void OS_func_0206d66c(u16, u32);
u32 OS_func_0206d3cc(void);
void OS_func_0013(s32, void (*)(u32), u32);
void OS_func_0167(void);
void OS_func_0169(u32, void (*)(u32, u32, u32));
BOOL OS_func_0170(u32, u32);
s32 OS_func_0171(u32, u32, u32);
s32 OS_func_0174(void);
BOOL OS_func_0065(void);
inline void OS_SetIrqCheckFlag(void) {
REG_IRQ |= 1;
}
inline u16 OS_EnableIrq(void) {
u16 oldVal = REG_IME;
REG_IME = 1;
return oldVal;
}
inline u32 OS_GetMainArenaLo() {
return OS_GetArenaLo(OS_ARENA_MAIN);
}
inline u32 OS_GetMainArenaHi(void) {
return OS_GetArenaHi(OS_ARENA_MAIN);
}
inline u32 OS_GetITCMArenaLo() {
return OS_GetArenaLo(OS_ARENA_ITCM);
}
inline u32 OS_GetITCMArenaHi() {
return OS_GetArenaHi(OS_ARENA_ITCM);
}
inline u32 OS_GetDTCMArenaLo() {
return OS_GetArenaLo(OS_ARENA_DTCM);
}
inline u32 OS_GetDTCMArenaHi() {
return OS_GetArenaHi(OS_ARENA_DTCM);
}
inline void OS_SetMainArenaLo(void *addr) {
OS_SetArenaLo(OS_ARENA_MAIN, addr);
}
inline void *OS_AllocFromMainArenaLo(u32 size, u32 num) {
return OS_AllocFromArenaLo(OS_ARENA_MAIN, size, num);
}
inline void *OS_Alloc(u32 size) {
return OS_AllocFromHeap(OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE, size);
}
inline void OS_Free(void *ptr) {
OS_FreeFromHeap(OS_ARENA_MAIN, OS_CURRENT_HEAP_HANDLE, ptr);
}
inline OSTime OS_MilliSecondsToTicks(OSTime ms) {
return (ms * 33514) / 64;
}
inline OSTime OS_MicroSecondsToTicks(OSTime us) {
return OS_MilliSecondsToTicks(us) / 1000;
}
inline OSTime OS_TicksToMilliSeconds(OSTime ticks) {
return (ticks * 64) / 33514;
}
inline BOOL OS_IsRunOnTwl(void) {
#ifndef IS_TWL
return false;
#else
// Probably checks some reg here
#endif
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef NITROSDK_OS_CONTEXT_H
#define NITROSDK_OS_CONTEXT_H
#ifndef _NITRO_CONTEXT_H
#define _NITRO_CONTEXT_H
#include <types.h>
@@ -12,4 +12,4 @@ typedef struct OSContext {
/* 0x44 */ char unk_40[0x20];
} OSContext; // Size: 0x64
#endif // NITROSDK_OS_CONTEXT_H
#endif // _NITRO_CONTEXT_H
+4 -3
View File
@@ -1,5 +1,5 @@
#ifndef NITROSDK_OS_THREAD_H
#define NITROSDK_OS_THREAD_H
#ifndef _NITRO_THREAD_H
#define _NITRO_THREAD_H
#include <nitro/os/context.h>
@@ -71,6 +71,7 @@ OSMutex *OS_RemoveMutexFromQueue(OSMutexQueue *queue);
OSThread *OS_SelectThread(void);
void OS_CreateThread(OSThread *thread, void (*func)(void *), void *arg, void *stack, u32 stackSize, u32 priority);
void OS_ExitThread(void);
void OS_WakeupThreadDirect(void *param1);
/// MARK: Inlines
@@ -95,4 +96,4 @@ static inline u32 OS_GetThreadId(OSThread *thread) {
return thread->id;
}
#endif // NITROSDK_OS_THREAD_H
#endif // _NITRO_THREAD_H
+44
View File
@@ -0,0 +1,44 @@
#ifndef _NITRO_PAD_H
#define _NITRO_PAD_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/reg.h"
#include "nitro/types.h"
#define PAD_BUTTON_A (1 << 0) // 0x0001
#define PAD_BUTTON_B (1 << 1) // 0x0002
#define PAD_BUTTON_SELECT (1 << 2) // 0x0004
#define PAD_BUTTON_START (1 << 3) // 0x0008
#define PAD_KEY_RIGHT (1 << 4) // 0x0010
#define PAD_KEY_LEFT (1 << 5) // 0x0020
#define PAD_KEY_UP (1 << 6) // 0x0040
#define PAD_KEY_DOWN (1 << 7) // 0x0080
#define PAD_BUTTON_R (1 << 8) // 0x0100
#define PAD_BUTTON_L (1 << 9) // 0x0200
#define PAD_BUTTON_X (1 << 10) // 0x0400
#define PAD_BUTTON_Y (1 << 11) // 0x0800
#define PAD_BUTTON_ALL \
(PAD_BUTTON_A | PAD_BUTTON_B | PAD_BUTTON_SELECT | PAD_BUTTON_START | PAD_BUTTON_R | PAD_BUTTON_L | PAD_BUTTON_X | \
PAD_BUTTON_Y)
#define PAD_KEY_ALL (PAD_KEY_RIGHT | PAD_KEY_LEFT | PAD_KEY_UP | PAD_KEY_DOWN)
#define PAD_ALL (PAD_BUTTON_ALL | PAD_KEY_ALL)
inline BOOL PAD_DetectFold(void) {
return (REG_PAD & 0x8000) >> 0xf;
}
inline u16 PAD_Read(void) {
return ((REG_KEYINPUT | REG_PAD) ^ 0x2fff) & 0x2fff;
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+23
View File
@@ -0,0 +1,23 @@
#ifndef _NITRO_PM_H
#define _NITRO_PM_H
#ifdef __cplusplus
extern "C" {
#endif
// TODO: These two may swap values
#define PM_TRIGGER_COVER_OPEN 4
#define PM_TRIGGER_CARD 8
#define PM_LCD_POWER_OFF 0
#define PM_LCD_POWER_ON 0x1
void PM_GoSleepMode(u32, u32, u32);
BOOL PM_SetLCDPower(u32 power);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
@@ -5,13 +5,21 @@
extern "C" {
#endif
#include "types.h"
#include "nitro/types.h"
#define REG_POWER_CNT (*(vu16 *) 0x04000304)
#define REG_IME (*(vu16 *) 0x04000208)
#define REG_DISPSTAT (*(vu16 *) 0x4000004)
#define REG_VCOUNT (*(vu16 *) 0x04000006)
#define REG_DISP3DCNT (*(vu16 *) 0x04000060)
#define REG_DISPCAPCNT (*(vu32 *) 0x04000064)
#define REG_GFX_STATUS (*(vu32 *) 0x04000600)
#define REG_DMA ((OSDma *) 0x040000b0)
#define REG_DMA0SAD (*(vu32 *) 0x040000b0)
#define REG_DMA0DAD (*(vu32 *) 0x040000b4)
#define REG_DMA0CNT (*(vu32 *) 0x040000b8)
#define REG_VRAM_CNT_ABCD (*(vu32 *) 0x04000240)
#define REG_VRAM_CNT_A (*(vu8 *) 0x04000240)
@@ -26,19 +34,50 @@ extern "C" {
#define REG_VRAM_CNT_H (*(vu8 *) 0x04000248)
#define REG_VRAM_CNT_I (*(vu8 *) 0x04000249)
#define REG_PAD (*(u16 *) 0x027FFFA8)
#if NITRO_VERSION >= 0x05057533
#define _BIOS_REG_BASE 0x02FFF000
#else
#define _BIOS_REG_BASE 0x027FF000
#endif
#define REG_PAD (*(u16 *) (_BIOS_REG_BASE | 0xFA8))
#define REG_KEYINPUT (*(u16 *) 0x04000130)
#define REG_FRAME_COUNTER (*(u32 *) 0x027FFC3C)
#define REG_027FFC40 (*(u16 *) 0x027FFC40)
#define REG_FNT_ROM_OFFSET (*(u32 *) 0x027FFE40)
#define REG_FNT_SIZE (*(u32 *) 0x027FFE44)
#define REG_FAT_ROM_OFFSET (*(u32 *) 0x027FFE48)
#define REG_FAT_SIZE (*(u32 *) 0x027FFE4C)
#define REG_FRAME_COUNTER (*(u32 *) (_BIOS_REG_BASE | 0xC3C))
#define REG_027FFC40 (*(u16 *) (_BIOS_REG_BASE | 0xC40))
#define REG_027FFC42 (*(u16 *) (_BIOS_REG_BASE | 0xC42))
#define REG_027FFDE8 (*(u32 *) (_BIOS_REG_BASE | 0xDE8))
#define REG_027FFDEA (*(u16 *) (_BIOS_REG_BASE | 0xDEA))
#define REG_027FFDEC (*(u32 *) (_BIOS_REG_BASE | 0xDEC))
#define REG_FNT_ROM_OFFSET (*(u32 *) (_BIOS_REG_BASE | 0xE40))
#define REG_FNT_SIZE (*(u32 *) (_BIOS_REG_BASE | 0xE44))
#define REG_FAT_ROM_OFFSET (*(u32 *) (_BIOS_REG_BASE | 0xE48))
#define REG_FAT_SIZE (*(u32 *) (_BIOS_REG_BASE | 0xE4C))
#define REG_027FFF9C (*(u32 *) (_BIOS_REG_BASE | 0xF9C))
#define REG_027FFFA0 (*(u32 *) (_BIOS_REG_BASE | 0xFA0))
extern u32 _DTCM_BASE; // TODO: Provide address via LCF
#define DTCM_BASE ((u8 *) &_DTCM_BASE)
#define REG_IRQ (*(u32 *) (DTCM_BASE + 0x3FF8))
#define REG_GFX_FIFO (*(vu32 *) 0x04000400)
#define REG_GFX_FIFO_MATRIX_MODE (*(vu32 *) 0x04000440)
#define REG_GFX_FIFO_MATRIX_PUSH (*(vu32 *) 0x04000444)
#define REG_GFX_FIFO_MATRIX_POP (*(vu32 *) 0x04000448)
#define REG_GFX_FIFO_MATRIX_STORE (*(vu32 *) 0x0400044c)
#define REG_GFX_FIFO_MATRIX_RESTORE (*(vu32 *) 0x04000450)
#define REG_GFX_FIFO_MATRIX_IDENTITY (*(vu32 *) 0x04000454)
#define REG_GFX_FIFO_MATRIX_TRANSLATE (*(vu32 *) 0x04000470)
#define REG_GFX_FIFO_VERTEX_COLOR (*(vu32 *) 0x04000480)
#define REG_GFX_FIFO_VERTEX_TEXCOORD (*(vu32 *) 0x04000488)
#define REG_GFX_FIFO_VERTEX_16 (*(vu32 *) 0x0400048c)
#define REG_GFX_FIFO_POLYGON_ATTR (*(vu32 *) 0x040004a4)
#define REG_GFX_FIFO_TEXTURE_PARAM (*(vu32 *) 0x040004a8)
#define REG_GFX_FIFO_TEXTURE_PALETTE (*(vu32 *) 0x040004ac)
#define REG_GFX_FIFO_POLYGONS_BEGIN (*(vu32 *) 0x04000500)
#define REG_GFX_FIFO_POLYGONS_END (*(vu32 *) 0x04000504)
#define REG_GFX_FIFO_SWAP_BUFFERS (*(vu32 *) 0x04000540)
#define REG_GFX_FIFO_VIEWPORT (*(vu32 *) 0x04000580)
extern u32 __DTCM_LO;
#define DTCM_LO ((u8 *) &__DTCM_LO)
#define REG_IRQ (*(u32 *) (DTCM_LO + 0x3FF8))
#define _MAIN_REG_BASE 0x04000000
#define _SUB_REG_BASE 0x04001000
@@ -130,25 +169,7 @@ extern u32 _DTCM_BASE; // TODO: Provide address via LCF
#define REG_BLDALPHA_SUB _REG_BLDALPHA(_SUB_REG_BASE)
#define REG_MASTER_BRIGHT_SUB _REG_MASTER_BRIGHT(_SUB_REG_BASE)
#define REG_SWAP_BUFFERS (*(((u32 *) (_MAIN_REG_BASE | 0x00000540))))
#define REG_VRAM (*(((u32 *) (0x06800000))))
#define REG_PALETTE_A (*(((u32 *) (0x05000000))))
#define REG_PALETTE_B (*(((u32 *) (0x05000400))))
#define REG_OAM_A (*(((u32 *) (0x07000000))))
#define REG_OAM_B (*(((u32 *) (0x07000400))))
#define REG_GFX_FIFO (*(vu32 *) 0x04000400)
#define GFX_FIFO_MTX_MODE (*(vu32 *) 0x04000440)
#define GFX_FIFO_MTX_PUSH (*(vu32 *) 0x04000444)
#define GFX_FIFO_MTX_POP (*(vu32 *) 0x04000448)
#define GFX_FIFO_MTX_STORE (*(vu32 *) 0x0400044c)
#define GFX_FIFO_MTX_RESTORE (*(vu32 *) 0x04000450)
#define GFX_FIFO_MTX_IDENTITY (*(vu32 *) 0x04000454)
#define GFX_FIFO_SWAP_BUFFERS (*(vu32 *) 0x04000540)
#define GFX_FIFO_VIEWPORT (*(vu32 *) 0x04000580)
#define REG_GFX_RAM_COUNT (*(vu16 *) 0x04000604)
#define REG_GFX_RAM_COUNT_2 (*(vu16 *) 0x04000606)
#define REG_04FFF200 (*(vu32 *) 0x04fff200)
#ifdef __cplusplus
} // extern "C"
+32
View File
@@ -0,0 +1,32 @@
#ifndef _NITRO_RTC_H
#define _NITRO_RTC_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/types.h"
typedef struct RTCDate {
u32 year;
u32 month;
u32 day;
u32 unk;
} RTCDate;
typedef struct RTCTime {
u32 hour;
u32 minute;
u32 second;
} RTCTime;
void RTC_Init(void);
s32 RTC_GetDate(RTCDate *date);
s32 RTC_GetTime(RTCTime *time);
u64 RTC_ConvertDateTimeToSecond(const RTCDate *date, const RTCTime *time);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+70
View File
@@ -0,0 +1,70 @@
#ifndef _NITRO_SND_H
#define _NITRO_SND_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/types.h"
#define SND_COMMAND_NOBLOCK 0
#define SND_COMMAND_BLOCK 1
#define SND_TIMER_CLOCK 0xffb0ff
#define SND_WAVE_FORMAT_PCM16 1
#define SND_CHANNEL_LOOP_REPEAT 1
#define SND_CHANNEL_DATASHIFT_NONE 0
typedef void (*SNDAlarmCallback)(void *arg);
typedef u32 SNDCommandType;
enum SNDCommandType_ {
SNDCommandType_StartTimer = 0xc,
SNDCommandType_SetupChannelPcm = 0xe,
SNDCommandType_SetupAlarm = 0x12,
SNDCommandType_SetChannelVolume = 0x14,
SNDCommandType_SetChannelPan = 0x15,
SNDCommandType_LockChannel = 0x1a,
SNDCommandType_Unk_1d = 0x1d,
};
typedef struct SNDCommand {
/* 00 */ struct SNDCommand *next;
/* 04 */ SNDCommandType type;
// Usage differs based on command type
// For channels and alarms, each bit is a channel/alarm to apply to
// It can also be a pointer to memory
/* 08 */ u32 target;
/* 0c */ u32 param0;
/* 10 */ u32 param1;
/* 14 */ u32 param2;
/* 18 */
} SNDCommand;
void SND_Init(void);
SNDCommand *SND_RecvCommandReply(u32);
BOOL SND_FlushCommand(u32);
void SND_StopTimer(u32 channel, u32, u32 alarm, u32);
void SND_UnlockChannel(u32 channel, u32);
void SND_LockChannel(u32 channel, u32);
void SND_SetChannelVolume(u32 channel, u32 volume, u32 datashift);
void SND_SetChannelPan(u32 channel, u32 pan);
void SND_SetupChannelPcm(u32 channel, u32 format, void *buf, u32 loop, u32, u32 numSamples, u32 volume, u32 datashift, u32,
u32);
void SND_SetupAlarm(u32 num, u32, u32, SNDAlarmCallback callback, void *arg);
void SND_StartTimer(u32 channel, u32, u32 num, u32);
u32 SND_GetCurrentCommandTag(void);
void SND_WaitForCommandProc(u32 tag);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+17
View File
@@ -0,0 +1,17 @@
#ifndef _NITRO_STD_H
#define _NITRO_STD_H
#ifdef __cplusplus
extern "C" {
#endif
s32 STD_CompareNString(const char *src, const char *dst, s32 size);
s32 STD_CompareString(const char *src, const char *dst);
char *STD_CopyString(char *dst, const char *src);
char *STD_SearchString(const char *src, const char *dst);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+14
View File
@@ -0,0 +1,14 @@
#ifndef _NITRO_SVC_H
#define _NITRO_SVC_H
#ifdef __cplusplus
extern "C" {
#endif
void SVC_WaitVBlankIntr(void);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
-40
View File
@@ -1,40 +0,0 @@
#pragma once
#include "global.h"
#include "types.h"
#include <nitro/math.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct TouchStateFlags {
/* 00 */ struct {
u16 x, y;
} touchPos;
/* 04 */ u16 touch;
/* 06 */ u16 flags;
} TouchStateFlags; // size = 0x08
typedef struct TouchState {
/* 00 */ bool touch;
/* 01 */ bool unk_01;
/* 02 */ struct {
s16 x, y;
} touchPos;
} TouchState; // size = 0x06
void WaitForTouchUpdate(u16 param1);
bool TP_GetTouchStateFlags(TouchStateFlags *pState);
static inline void TP_CopyState(TouchState *from, TouchState *to) {
to->touch = from->touch;
to->unk_01 = from->unk_01;
to->touchPos = from->touchPos;
}
extern TouchState data_02049b4c;
#ifdef __cplusplus
}
#endif
+70
View File
@@ -0,0 +1,70 @@
#ifndef _NITRO_TP_H
#define _NITRO_TP_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/types.h"
#define TP_VALIDITY_VALID 0
#define TP_VALIDITY_INVALID_X 1
#define TP_VALIDITY_INVALID_Y 2
#define TP_VALIDITY_INVALID_XY 3
#define TP_REQUEST_COMMAND_AUTO_SAMPLING 0x10
#define TP_RESULT_SUCCESS 0x0
#define TP_TOUCH_ON 0x1
typedef struct TPCalibrateParam {
/* 00 */ s16 unk_00;
/* 02 */ s16 unk_02;
/* 04 */ s16 unk_04;
/* 06 */ s16 unk_06;
/* 08 */
} TPCalibrateParam;
typedef struct TPData {
u16 x;
u16 y;
u16 touch;
u16 validity;
} TPData;
typedef u32 TPRequestCommand;
typedef u32 TPRequestResult;
void TP_Init(void);
void TP_SetCallback(void (*callback)(TPRequestCommand command, TPRequestResult result, u16 index));
BOOL TP_GetUserInfo(TPCalibrateParam *calibrate);
void TP_SetCalibrateParam(const TPCalibrateParam *calibrate);
void func_020711c0(void);
BOOL func_02071254(TPData *data);
BOOL TP_GetData(TPData *data);
void TP_GetCalibratedPoint(TPData *, TPData *);
void _TP_RequestAutoSamplingStart(u32 param1, u32 param2, TPData *sampleBuf, u32 sampleBufSize);
void TP_func_02032704(u32 param1);
void TP_func_0203271c(u32 param1);
void TP_GetLatestCalibratedPointInAuto(TPData *data);
inline BOOL TP_RequestRawSampling(TPData *data) {
func_020711c0();
return func_02071254(data);
}
inline void TP_RequestAutoSamplingStart(u32 param1, u32 param2, TPData *sampleBuf, u32 sampleBufSize) {
_TP_RequestAutoSamplingStart(param1, param2, sampleBuf, sampleBufSize);
TP_func_02032704(2);
TP_func_0203271c(2);
}
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+48
View File
@@ -0,0 +1,48 @@
#ifndef _NITRO_TYPES_H
#define _NITRO_TYPES_H
#include <stdbool.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned long long u64;
typedef unsigned int u32;
typedef unsigned short u16;
typedef unsigned char u8;
typedef long long s64;
typedef int s32;
typedef short s16;
typedef char s8;
typedef float f32;
typedef double f64;
typedef volatile u64 vu64;
typedef volatile u32 vu32;
typedef volatile u16 vu16;
typedef volatile u8 vu8;
typedef volatile s64 vs64;
typedef volatile s32 vs32;
typedef volatile s16 vs16;
typedef volatile s8 vs8;
typedef volatile f32 vf32;
typedef volatile f64 vf64;
typedef u32 BOOL;
#define ATTRIBUTE_ALIGN(x) __attribute__((aligned(x)))
#define ARRAY_LEN(arr) (s32)((sizeof(arr) / sizeof(*arr)))
#define ARRAY_LEN_U(arr) (u32)((sizeof(arr) / sizeof(*arr)))
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+209
View File
@@ -0,0 +1,209 @@
#ifndef _NITRO_WM_H
#define _NITRO_WM_H
#ifdef __cplusplus
extern "C" {
#endif
#define WM_SYSTEM_BUF_SIZE 0xf00
#define WM_ERRCODE_SUCCESS 0
#define WM_ERRCODE_FAILED 0x1
#define WM_ERRCODE_ILLEGAL_STATE 0x3
#define WM_ERRCODE_OPERATING 0x2
#define WM_ERRCODE_TIMEOUT 0x9
#define WM_ERRCODE_NO_ENTRY 0xb // may swap value with WM_ERRCODE_OVER_MAX_ENTRY
#define WM_ERRCODE_OVER_MAX_ENTRY 0xc
#define WM_ERRCODE_SEND_FAILED 0xf
#define WM_STATECODE_PARENT_START 0x0
#define WM_STATECODE_PARENT_FOUND 0x5
#define WM_STATECODE_MP_START 0xa
#define WM_STATECODE_CONNECTED 0x7
#define WM_STATECODE_BEACON_LOST 0x8
#define WM_STATECODE_DISCONNECTED 0x9
#define WM_STATECODE_PORT_RECV 0x15
#define WM_SIZE_BSSID 6
#define WM_SIZE_SSID 32
#define WM_ATTR_FLAG_ENTRY 0x1
#define WM_ATTR_FLAG_MB 0x2
#define WM_STATE_PARENT 0x7 // may swap value with WM_STATE_CHILD
#define WM_STATE_CHILD 0x8
typedef u16 WMErrCode;
typedef u16 WMStateCode;
typedef struct WMParentParam {
/* 00 */ void *userGameInfo;
/* 04 */ u16 userGameInfoLength;
/* 08 */ u32 ggid;
/* 0c */ u16 tgid;
/* 0e */ u16 entryFlag;
/* 10 */ u16 maxEntry;
/* 12 */ u16 multiBootFlag;
/* 14 */ u16 KS_Flag;
/* 16 */ u16 CS_Flag;
/* 18 */ u16 beaconPeriod;
/* 1a */ u8 unk_1a[0x32 - 0x1a];
/* 32 */ u16 channel;
/* 34 */ u16 parentMaxSize;
/* 36 */ u16 childMaxSize;
/* 38 */
} WMParentParam;
typedef struct WMScanParam {
/* 00 */ void *scanBuf;
/* 04 */ u16 channel;
/* 06 */ u16 maxChannelTime;
/* 08 */ u8 bssid[WM_SIZE_BSSID];
/* 0e */ u8 unk_0e[0x20 - 0x0e];
/* 20 */
} WMScanParam;
typedef struct WMGameInfo {
/* 00 */ u32 ggid;
/* 04 */ u8 unk_04[0x07 - 0x04];
/* 07 */ u8 attribute;
/* 08 */ u8 unk_08[0x78];
/* 80 */
} WMGameInfo;
typedef struct WMBssDesc {
u16 length;
u16 rssi;
u8 bssid[WM_SIZE_BSSID];
u16 ssidLength;
u8 ssid[WM_SIZE_SSID];
u16 capaInfo;
struct {
u16 basic;
u16 support;
} rateSet;
u16 beaconPeriod;
u16 dtimPeriod;
u16 channel;
u16 cfpPeriod;
u16 cfpMaxDuration;
u16 gameInfoLength;
u16 rsv;
WMGameInfo gameInfo;
} WMBssDesc;
typedef struct WMCallback {
u8 unk_00[0x02 - 0x00];
WMErrCode errcode;
} WMCallback;
typedef struct WMPortRecvCallback {
/* 00 */ u8 unk_00[0x02 - 0x00];
/* 02 */ WMErrCode errcode;
/* 04 */ WMStateCode state;
/* 08 */ u8 unk_08[0x0c - 0x08];
/* 0c */ void *data;
/* 10 */ u16 length;
/* 14 */
} WMPortRecvCallback;
typedef struct WMStartMPCallback {
/* 00 */ u8 unk_00[0x02 - 0x00];
/* 02 */ WMErrCode errcode;
/* 04 */ WMStateCode state;
} WMStartMPCallback;
typedef struct WMStartParentCallback {
/* 00 */ u8 unk_00[0x02 - 0x00];
/* 02 */ WMErrCode errcode;
/* 04 */ u8 unk_04[0x08 - 0x04];
/* 08 */ WMStateCode state;
/* 0a */ u8 unk_0a[0x10 - 0x0a];
/* 10 */ u16 aid;
} WMStartParentCallback;
typedef struct WMStartConnectCallback {
/* 00 */ u8 unk_00[0x02 - 0x00];
/* 02 */ WMErrCode errcode;
/* 04 */ u8 unk_04[0x08 - 0x04];
/* 08 */ WMStateCode state;
} WMStartConnectCallback;
typedef struct WMStartScanCallback {
/* 00 */ u8 unk_00[0x02 - 0x00];
/* 02 */ WMErrCode errcode;
/* 04 */ u8 unk_04[0x08 - 0x04];
/* 08 */ WMStateCode state;
/* 0a */ u8 unk_0a[0x3c - 0x0a];
/* 3c */ WMGameInfo gameInfo;
} WMStartScanCallback;
typedef struct WMPortSendCallback {
/* 00 */ u8 unk_00[0x02 - 0x00];
/* 02 */ WMErrCode errcode;
/* 04 */ u8 unk_04[0x0c - 0x04];
/* 0c */ u16 destBitmap;
/* 0e */ u8 unk_0e[0x10 - 0x0e];
/* 10 */ u16 sentBitmap;
/* 12 */ u8 unk_12[0x14 - 0x12];
/* 14 */ void *data;
/* 18 */ u16 length;
} WMPortSendCallback;
typedef struct WMMeasureChannelCallback {
/* 00 */ u8 unk_00[0x02 - 0x00];
/* 02 */ WMErrCode errcode;
/* 04 */ u8 unk_04[0x08 - 0x04];
/* 08 */ u16 channel;
/* 0a */ u16 ccaBusyRatio;
} WMMeasureChannelCallback;
typedef struct WMStatus {
WMStateCode state;
u8 unk[0x7cc];
} WMStatus;
WMErrCode WM_Initialize(void *buf, void (*callback)(void *arg), u32 param3);
WMErrCode WM_SetPortCallback(u16 port, void (*callback)(void *arg), void *param3);
void WM_SetEntry(void (*callback)(void *arg), u32 param2);
WMErrCode WM_SetParentParameter(void (*callback)(void *arg), WMParentParam *parentParam);
WMErrCode _WM_SetMPDataToPort(void (*callback)(void *arg), u32 param2, u16 *data, u32 length, u32 recvBitmap, u16 port,
u32 param7);
inline WMErrCode WM_SetMPDataToPort(void (*callback)(void *arg), u16 *data, u32 length, u32 recvBitmap, u16 port, u32 param6) {
return _WM_SetMPDataToPort(callback, 0, data, length, recvBitmap, port, param6);
}
u32 WM_GetMPSendBufferSize(void);
u32 WM_GetMPReceiveBufferSize(void);
u32 WM_GetDispersionBeaconPeriod(void);
u32 WM_GetDispersionScanPeriod(void);
u32 WM_GetAllowedChannel(void);
u32 WM_GetLinkLevel(void);
u16 WM_GetNextTgid(void);
WMErrCode WM_StartParent(void (*callback)(void *arg));
WMErrCode _WM_StartConnect(void (*callback)(void *arg), WMBssDesc *bssDesc, void *param3, u32 param4, u32 param5);
inline WMErrCode WM_StartConnect(void (*callback)(void *arg), WMBssDesc *bssDesc, void *param3) {
return _WM_StartConnect(callback, bssDesc, param3, 1, 0);
}
void WM_Disconnect(void (*callback)(void *arg), u16 aid);
WMErrCode WM_Reset(void (*callback)(void *arg));
WMErrCode WM_End(void (*callback)(void *arg));
WMErrCode WM_StartMP(void (*callback)(void *arg), u16 *recvBuf, u32 recvBufSize, u16 *sendBuf, u32 sendBufSize,
u32 commsPerFrame);
void WM_EndMP(void (*callback)(void *arg));
WMErrCode WM_StartScan(void (*callback)(void *arg), WMScanParam *scanParam);
WMErrCode WM_EndScan(void (*callback)(void *arg));
WMErrCode WM_MeasureChannel(void (*callback)(void *arg), u32 param2, u32 param3, u16 channel, u32 param5);
void WM_ReadStatus(WMStatus *status);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+3
View File
@@ -0,0 +1,3 @@
#define IS_TWL
#include "nitro.h"
+8 -8
View File
@@ -63,14 +63,14 @@ typedef struct G3d_Model_ {
/* 18 */ u8 numMat; // number of materials
/* 19 */ u8 numMesh; // number of meshes
/* 1A */ u8 dummy2[2];
/* 1C */ q20 upScale;
/* 20 */ q20 downScale;
/* 24 */ u16 numVertex; // number of vertices
/* 26 */ u16 numPolygon; // number of polygons
/* 28 */ u16 numTriangle; // number of triangles
/* 2A */ u16 numQuad; // number of quads
/* 2C */ q4 boundingBoxMin[3]; // bounding box lower vertex
/* 32 */ q4 boundingBoxMax[3]; // bounding box upper vertex
/* 1C */ fx32 upScale;
/* 20 */ fx32 downScale;
/* 24 */ u16 numVertex; // number of vertices
/* 26 */ u16 numPolygon; // number of polygons
/* 28 */ u16 numTriangle; // number of triangles
/* 2A */ u16 numQuad; // number of quads
/* 2C */ fx16 boundingBoxMin[3]; // bounding box lower vertex
/* 32 */ fx16 boundingBoxMax[3]; // bounding box upper vertex
/* 38 */ u8 dummy3[8];
/* 40 */ G3d_NameList boneList; // bone list
/* 4C */
+4 -4
View File
@@ -50,8 +50,8 @@ typedef struct G3d_RenderState_ {
/* D4 */ G3d_NameList *boneList;
/* D8 */ const G3d_Material_List *materialList;
/* DC */ G3d_NameList *meshList;
/* E0 */ q20 upScale;
/* E4 */ q20 downScale;
/* E0 */ fx32 upScale;
/* E4 */ fx32 downScale;
/* E8 */ void *jntScalingHandler; // scaling handler
/* EC */ void *jntSRTHandler; // SRT transform handler
/* F0 */ void *textureHandler; // texture matrix handler
@@ -102,8 +102,8 @@ static inline void G3d_MtxMult44_inline(const Mat4p *m) {
PushGeometryCommand(0x18, (u32 *) m, 0x10);
}
static inline void G3d_Scale_inline(q20 x, q20 y, q20 z) {
Vec3p vec;
static inline void G3d_Scale_inline(fx32 x, fx32 y, fx32 z) {
VecFx32 vec;
vec.x = x;
vec.y = y;
vec.z = z;
+61 -61
View File
@@ -1,30 +1,30 @@
#include "nns/g3d/sbc.h"
typedef struct UnkStruct_027e037c_ {
/* 000 */ unk32 mUnk_000;
/* 004 */ unk32 mUnk_004;
/* 000 */ s32 mUnk_000;
/* 004 */ s32 mUnk_004;
/* 008 */ Mat4p mUnk_008;
/* 048 */ unk32 mUnk_048;
/* 048 */ s32 mUnk_048;
/* 04C */ Mat4x3p mUnk_04C;
/* 07C */ unk32 mUnk_07C;
/* 080 */ unk32 mUnk_080;
/* 084 */ unk32 mUnk_084;
/* 088 */ unk32 mUnk_088;
/* 08C */ unk32 mUnk_08C;
/* 090 */ unk32 mUnk_090;
/* 094 */ unk32 mUnk_094;
/* 098 */ unk32 mUnk_098;
/* 09C */ unk32 mUnk_09C;
/* 0A0 */ unk32 mUnk_0A0;
/* 0A4 */ unk32 mUnk_0A4;
/* 0A8 */ unk32 mUnk_0A8;
/* 0AC */ unk32 mUnk_0AC;
/* 0B0 */ unk32 mUnk_0B0;
/* 0B4 */ unk32 mUnk_0B4;
/* 0B8 */ unk32 mUnk_0B8;
/* 07C */ s32 mUnk_07C;
/* 080 */ s32 mUnk_080;
/* 084 */ s32 mUnk_084;
/* 088 */ s32 mUnk_088;
/* 08C */ s32 mUnk_08C;
/* 090 */ s32 mUnk_090;
/* 094 */ s32 mUnk_094;
/* 098 */ s32 mUnk_098;
/* 09C */ s32 mUnk_09C;
/* 0A0 */ s32 mUnk_0A0;
/* 0A4 */ s32 mUnk_0A4;
/* 0A8 */ s32 mUnk_0A8;
/* 0AC */ s32 mUnk_0AC;
/* 0B0 */ s32 mUnk_0B0;
/* 0B4 */ s32 mUnk_0B4;
/* 0B8 */ s32 mUnk_0B8;
/* 0BC */ Mat3p rotation;
/* 0E0 */ Vec3p translation;
/* 0EC */ Vec3p scale;
/* 0F8 */ unk32 mUnk_0F8;
/* 0E0 */ VecFx32 translation;
/* 0EC */ VecFx32 scale;
/* 0F8 */ s32 mUnk_0F8;
/* 0FC */ u32 flags;
/* 100 */ Mat4x3p mUnk_100;
/* 130 */ Mat4x3p mUnk_130;
@@ -34,8 +34,8 @@ typedef struct UnkStruct_027e037c_ {
} UnkStruct_027e037c;
extern UnkStruct_027e037c data_027e0208;
#include "Unknown/UnkMemFuncs.h"
#include "regs.h"
#include <nitro/mi.h>
#include <nitro/reg.h>
#define G3D_SBC_CMD_MASK 0x1f
#define G3D_SBC_FLG_MASK 0xe0
@@ -48,12 +48,12 @@ extern Mat4x3p *func_0200c198();
extern Mat4x3p *func_0200c23c();
extern Mat4x3p *func_0200c270();
extern s32 func_02024d94(Mat3p *matrix);
extern void func_02024a68(unk32 param1);
extern void func_02024a68(s32 param1);
extern void func_02024a30(Mat4x3p *matrix);
extern void func_01ff8dac(const void *param1, u32 param2);
extern void func_02024a84(Mat3p *param1);
extern Mat3p gGeomMatrix;
extern Vec3p gGeomTranslation;
extern VecFx32 gGeomTranslation;
extern void G3d_GetCurrentMtx(Mat4x3p *mtx1, Mat3p *mtx2);
UnkStruct_0205ae08 data_02046c80;
@@ -69,7 +69,7 @@ void G3d_RenderSBCCommands(G3d_RenderState *renderState) {
// Initializes the render state and starts rendering the SBC command list
void G3d_InitRenderState(G3d_RenderState *renderState, G3d_RenderObject *renderObj) {
_MI_CpuFill(0, (short *) renderState, sizeof(*renderState));
MI_CpuClearFast(renderState, sizeof(*renderState));
renderState->mUnk_C4[0] = 1;
renderState->flag = G3D_RENDERST_FLAG_BONE_VISIBLE;
@@ -194,8 +194,8 @@ void G3d_SBCRender_007(G3d_RenderState *renderState, u32 opCode) {
};
// clang-format on
Vec3p *translationVec = (Vec3p *) &funcArgs[12];
Vec3p *scaleVec = (Vec3p *) &funcArgs[15];
VecFx32 *translationVec = (VecFx32 *) &funcArgs[12];
VecFx32 *scaleVec = (VecFx32 *) &funcArgs[15];
Mat4p currentMtx;
u8 callbackSkip;
u32 callbackSegment;
@@ -273,9 +273,9 @@ void G3d_SBCRender_007(G3d_RenderState *renderState, u32 opCode) {
translationVec->y = currentMtx.wColumn.y;
translationVec->z = currentMtx.wColumn.z;
scaleVec->x = Vec3p_Length((Vec3p *) &currentMtx.xColumn);
scaleVec->y = Vec3p_Length((Vec3p *) &currentMtx.yColumn);
scaleVec->z = Vec3p_Length((Vec3p *) &currentMtx.zColumn);
scaleVec->x = VecFx32_Length((VecFx32 *) &currentMtx.xColumn);
scaleVec->y = VecFx32_Length((VecFx32 *) &currentMtx.yColumn);
scaleVec->z = VecFx32_Length((VecFx32 *) &currentMtx.zColumn);
if (data_027e0208.flags & 1) {
REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3
@@ -333,9 +333,9 @@ void G3d_SBCRender_008(G3d_RenderState *renderState, u32 opCode) {
};
// clang-format on
Vec3p *translationVec = (Vec3p *) &funcArgs[12];
Vec3p *scaleVec = (Vec3p *) &funcArgs[15];
Mat4x3p *mtx = (Mat4x3p *) &funcArgs[3];
VecFx32 *translationVec = (VecFx32 *) &funcArgs[12];
VecFx32 *scaleVec = (VecFx32 *) &funcArgs[15];
Mat4x3p *mtx = (Mat4x3p *) &funcArgs[3];
u8 callbackSkip;
u32 callbackSegment;
@@ -411,17 +411,17 @@ void G3d_SBCRender_008(G3d_RenderState *renderState, u32 opCode) {
translationVec->y = currentMtx.wColumn.y;
translationVec->z = currentMtx.wColumn.z;
scaleVec->x = Vec3p_Length((Vec3p *) &currentMtx.xColumn);
scaleVec->y = Vec3p_Length((Vec3p *) &currentMtx.yColumn);
scaleVec->z = Vec3p_Length((Vec3p *) &currentMtx.zColumn);
scaleVec->x = VecFx32_Length((VecFx32 *) &currentMtx.xColumn);
scaleVec->y = VecFx32_Length((VecFx32 *) &currentMtx.yColumn);
scaleVec->z = VecFx32_Length((VecFx32 *) &currentMtx.zColumn);
if (currentMtx.yColumn.y != 0 || currentMtx.yColumn.z != 0) {
Vec3p_Normalize((Vec3p *) &currentMtx.yColumn, (Vec3p *) &mtx->yColumn);
VecFx32_Normalize((VecFx32 *) &currentMtx.yColumn, (VecFx32 *) &mtx->yColumn);
mtx->zColumn.y = -mtx->yColumn.z;
mtx->zColumn.z = mtx->yColumn.y;
} else {
Vec3p_Normalize((Vec3p *) &currentMtx.zColumn, (Vec3p *) &mtx->zColumn);
VecFx32_Normalize((VecFx32 *) &currentMtx.zColumn, (VecFx32 *) &mtx->zColumn);
mtx->yColumn.z = -mtx->zColumn.y;
mtx->yColumn.y = mtx->zColumn.z;
@@ -483,13 +483,13 @@ void G3d_SBCRender_SKN(G3d_RenderState *renderState, u32) {
Mat4p *mat4x;
Mat3p *mat3x;
_MI_CpuFill(0, (unk16 *) &mtxStruct, sizeof(mtxStruct));
MI_CpuClearFast(&mtxStruct, sizeof(mtxStruct));
FlushGfxQueue();
GFX_FIFO_MTX_MODE = 0; // Projection
GFX_FIFO_MTX_STORE = 1;
GFX_FIFO_MTX_IDENTITY = 0;
GFX_FIFO_MTX_MODE = 2; // Position + Vector
REG_GFX_FIFO_MATRIX_MODE = 0; // Projection
REG_GFX_FIFO_MATRIX_STORE = 1;
REG_GFX_FIFO_MATRIX_IDENTITY = 0;
REG_GFX_FIFO_MATRIX_MODE = 2; // Position + Vector
for (i = 0; i < numTerms; i++) {
u32 jntIndex = *(termPtr + 1);
@@ -499,8 +499,8 @@ void G3d_SBCRender_SKN(G3d_RenderState *renderState, u32) {
if (!unk) {
G3d_SetBitArray(&renderState->mUnk_CC[0], jntIndex);
GFX_FIFO_MTX_RESTORE = (*termPtr);
GFX_FIFO_MTX_MODE = 1; // Position
REG_GFX_FIFO_MATRIX_RESTORE = (*termPtr);
REG_GFX_FIFO_MATRIX_MODE = 1; // Position
func_02024a68(&invBMtx[jntIndex].mtx);
}
@@ -521,7 +521,7 @@ void G3d_SBCRender_SKN(G3d_RenderState *renderState, u32) {
if (!unk) {
while (func_02024d64(mat4x))
;
GFX_FIFO_MTX_MODE = 2; // Position + Vector
REG_GFX_FIFO_MATRIX_MODE = 2; // Position + Vector
func_02024a84(&invBMtx[jntIndex].unkMtx);
}
@@ -564,12 +564,12 @@ void G3d_SBCRender_SKN(G3d_RenderState *renderState, u32) {
mtxStruct.mtx2.zColumn.z += (weight * mat3x->zColumn.z) >> 0xc;
func_02024a30((const Mat4x3p *) &mtxStruct.mtx2);
GFX_FIFO_MTX_MODE = 1; // Position
REG_GFX_FIFO_MATRIX_MODE = 1; // Position
func_02024a30(&mtxStruct.mtx1);
GFX_FIFO_MTX_MODE = 0; // Projection
GFX_FIFO_MTX_RESTORE = 1;
GFX_FIFO_MTX_MODE = 2; // Position + Vector
GFX_FIFO_MTX_STORE = (*(renderState->currentCmd + 1));
REG_GFX_FIFO_MATRIX_MODE = 0; // Projection
REG_GFX_FIFO_MATRIX_RESTORE = 1;
REG_GFX_FIFO_MATRIX_MODE = 2; // Position + Vector
REG_GFX_FIFO_MATRIX_STORE = (*(renderState->currentCmd + 1));
renderState->currentCmd += 3 + *(renderState->currentCmd + 2) * 3;
}
@@ -622,7 +622,7 @@ void G3d_SBCRender_00A(G3d_RenderState *renderState, u32) {
// Renders the Scale SBC command
void G3d_SBCRender_SCL(G3d_RenderState *renderState, u32 opCode) {
Vec3p scaleVector;
VecFx32 scaleVector;
if (!(renderState->flag & G3D_RENDERST_FLAG_SKIP_CMD) && !(renderState->flag & G3D_RENDERST_FLAG_SKIP_SBC_RENDER)) {
if (opCode == 0) {
@@ -676,7 +676,7 @@ void G3d_SBCRender_00C(G3d_RenderState *renderState, u32) {
if (!callbackSkip) {
s32 width = renderState->matAnim->width;
s32 height = renderState->matAnim->height;
Vec3p vec;
VecFx32 vec;
u32 tmp;
G3d_Scale_inline(width << 15, -height << 15, INT_TO_Q20(1) << 4);
@@ -890,19 +890,19 @@ void G3d_SBCRender_00D(G3d_RenderState *renderState, u32) {
{
FlushGfxQueue();
GFX_FIFO_MTX_MODE = 0; // Projection
GFX_FIFO_MTX_PUSH = 0;
GFX_FIFO_MTX_IDENTITY = 0;
REG_GFX_FIFO_MATRIX_MODE = 0; // Projection
REG_GFX_FIFO_MATRIX_PUSH = 0;
REG_GFX_FIFO_MATRIX_IDENTITY = 0;
while (func_02024d64(&mtx))
;
GFX_FIFO_MTX_POP = 1;
GFX_FIFO_MTX_MODE = 3; // Texture
REG_GFX_FIFO_MATRIX_POP = 1;
REG_GFX_FIFO_MATRIX_MODE = 3; // Texture
}
PushGeometryCommand(0x16, &mtx, 0x10);
tmp = GX_PACK_TEXCOORD_PARAM((q20) (mtx.wColumn.x >> 4), (q20) (mtx.wColumn.y >> 4));
tmp = GX_PACK_TEXCOORD_PARAM((fx32) (mtx.wColumn.x >> 4), (fx32) (mtx.wColumn.y >> 4));
PushGeometryCommand(0x22, (u32 *) &tmp, 1); // TEXCOORD
}
+7 -7
View File
@@ -1,7 +1,7 @@
#include "Actor/Actor.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include <nitro/mi.h>
ARM Actor::Actor() {
this->mVel.x = 0;
@@ -21,9 +21,9 @@ ARM Actor::Actor() {
this->mUnk_5C.func_ov000_020975f8();
this->mRef.Reset();
this->mpProfile = NULL;
_MI_CpuCopy(&data_ov000_020b539c_eur.mUnk_00, &this->mUnk_5C, sizeof(ActorParams));
Vec3p_Copy(&this->mUnk_5C.mInitialPos, &this->mPos);
Vec3p_Copy(&this->mUnk_5C.mInitialPos, &this->mPrevPos);
MI_CpuCopyFast(&data_ov000_020b539c_eur.mUnk_00, &this->mUnk_5C, sizeof(ActorParams));
VecFx32_Copy(&this->mUnk_5C.mInitialPos, &this->mPos);
VecFx32_Copy(&this->mUnk_5C.mInitialPos, &this->mPrevPos);
this->mAngle = this->mUnk_5C.mInitialAngle;
SET_FLAGS(this->mFlags, ActorFlag_Alive, ActorFlag_Visible, ActorFlag_Active, ActorFlag_14);
this->mUnk_44 = 0xFF;
@@ -82,7 +82,7 @@ ARM void Actor::func_ov000_020984f0() {
}
// non-matching
ARM void Actor::vfunc_00(Vec3p *param1) {
ARM void Actor::vfunc_00(VecFx32 *param1) {
*param1 = mPos;
param1->y += mUnk_4E;
// short sVar1;
@@ -94,7 +94,7 @@ ARM void Actor::vfunc_00(Vec3p *param1) {
// param1->z = this->mPos.z;
}
ARM Vec3p *Actor::func_ov000_0209853c(unk32 param1) {
ARM VecFx32 *Actor::func_ov000_0209853c(unk32 param1) {
return data_027e0ce0->func_01fff148(param1);
}
@@ -142,7 +142,7 @@ ARM unk32 Actor::vfunc_38(unk32 param1) {
}
// non-matching
ARM bool Actor::vfunc_3c(unk32 param2, Vec3p *param3) {
ARM bool Actor::vfunc_3c(unk32 param2, VecFx32 *param3) {
if (!GET_FLAG(this->mFlags, ActorFlag_Grabbed)) {
return false;
}
+1 -1
View File
@@ -70,7 +70,7 @@ ARM void ActorUnkEFIK::vfunc_20() {
u16 random = gRandom.Next32(0, 6);
if (random == 0) {
Vec3p vec;
VecFx32 vec;
pUVar5->func_ov000_020808f4(&vec, bStack_40, 0);
data_027e0cec->func_ov000_020a0220(&this->mUnk_98, &vec);
}
+10 -10
View File
@@ -6,8 +6,8 @@
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_ov000_020b5214.hpp"
extern "C" void func_01ffedac(u16 *, Vec3p *);
extern "C" void func_01ffb9cc(void *, Vec3p *);
extern "C" void func_01ffedac(u16 *, VecFx32 *);
extern "C" void func_01ffb9cc(void *, VecFx32 *);
ARM DECL_PROFILE(ActorProfileUnkSWOB);
@@ -79,19 +79,19 @@ ARM void ActorUnkSWOB::func_ov000_0209aa30(void) {
}
break;
case 2: {
Vec3p temp;
Vec3p vec2;
Vec3p vec;
VecFx32 temp;
VecFx32 vec2;
VecFx32 vec;
ActorParams AStack_7c;
u16 auStack_80[2];
int j;
u32 i;
data_ov000_020b5214.func_ov000_0206db44(0xA3);
temp.coords = data_027e0ce0->func_01fff148(0)->coords;
vec2.x = temp.x;
vec2.y = temp.y + FLOAT_TO_Q20(3.0f);
vec2.z = temp.z;
temp = *data_027e0ce0->func_01fff148(0);
vec2.x = temp.x;
vec2.y = temp.y + FLOAT_TO_Q20(3.0f);
vec2.z = temp.z;
AStack_7c.mUnk_28 = 0;
AStack_7c.func_ov000_020975f8();
@@ -104,7 +104,7 @@ ARM void ActorUnkSWOB::func_ov000_0209aa30(void) {
vec.y = 0;
vec.z = INT_TO_Q20(gRandom.Next32(0, 11) - 5);
Vec3p_Add(&vec, &vec2, &vec);
VecFx32_Add(&vec, &vec2, &vec);
if (j < 10) {
func_01ffedac(auStack_80, &vec);
@@ -4,7 +4,7 @@
#include "flags.h"
#include "global.h"
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8ae0(q20 param1) {
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8ae0(fx32 param1) {
u32 posY = this->mVel.y;
if (posY <= param1) {
@@ -110,10 +110,10 @@ ARM void ActorUnk_ov000_020a8bb0::vfunc_b4() {
}
// non-matching
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8e9c(Vec3p *param1) {
q20 z = param1->x;
q20 y = param1->y;
q20 x = param1->z;
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8e9c(VecFx32 *param1) {
fx32 z = param1->x;
fx32 y = param1->y;
fx32 x = param1->z;
this->mUnk_0C0.x = x;
this->mUnk_0C0.y = y;
@@ -192,7 +192,7 @@ ARM unk32 ActorUnk_ov000_020a8bb0::vfunc_84() {
return 1;
}
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a91b8(Vec3p *param1, unk32 param2) {
ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a91b8(VecFx32 *param1, unk32 param2) {
this->func_ov000_020a8e9c(param1);
if (param2 != 0) {
+2 -2
View File
@@ -1,8 +1,8 @@
#include "Item/ItemManager.hpp"
#include "Save/SaveManager.hpp"
#include "System/Random.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "global.h"
#include <nitro/mi.h>
static const unk32 data_ov000_020afda8[] = {
0x0015007E, 0x0015007F, 0x00150080, 0x00150081, 0x00150082, 0x00150083, 0x00150084, 0x00150085,
@@ -86,7 +86,7 @@ extern u16 data_ov000_020afe90;
extern u16 data_ov000_020afe94;
ARM void TreasureManager::func_ov000_020a9b10(void *param1) {
_MI_CpuCopy(param1, this, sizeof(TreasureManager));
MI_CpuCopyFast(param1, this, sizeof(TreasureManager));
}
ARM unk32 TreasureManager::func_ov000_020a9b2c(unk32 param1) {
+21 -21
View File
@@ -2,17 +2,17 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "Physics/Cylinder.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_0204af1c.hpp"
#include "Unknown/UnkStruct_027e0998.hpp"
#include "Unknown/UnkStruct_027e09b4.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_ov000_020b5d34.hpp"
#include <nitro/mi.h>
extern "C" void func_01ffb714(Vec3p *, Vec3p *, void *);
extern "C" void func_01ffb9cc(Vec3p *, Vec3p *);
extern "C" u16 func_01ffbbe0(q20 x, q20 z);
extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, void *);
extern "C" void func_01ffb9cc(VecFx32 *, VecFx32 *);
extern "C" u16 func_01ffbbe0(fx32 x, fx32 z);
extern "C" void func_01ffecdc(unk32 param1, Cylinder *param2);
extern "C" bool func_01ffd768(unk32, void *, void *, unk8);
@@ -32,13 +32,13 @@ ARM MapObject::MapObject() {
*(u32 *) &this->mUnk_38 = *ptr2->mUnk_00;
Vec3p *ptr = ptr2->mUnk_08;
VecFx32 *ptr = ptr2->mUnk_08;
this->mPos.x = ptr->x;
this->mPos.y = ptr->y;
this->mPos.z = ptr->z;
this->mUnk_14 = *ptr2->mUnk_0C;
_MI_CpuCopy(ptr2->mUnk_04, &this->mUnk_20, sizeof(MapObject_20));
MI_CpuCopyFast(ptr2->mUnk_04, &this->mUnk_20, sizeof(MapObject_20));
for (int i = 0; i < ARRAY_LEN(this->mUnk_18); i++) {
this->mUnk_18[i] = 0;
@@ -56,12 +56,12 @@ ARM bool MapObject::vfunc_00() {
ARM void MapObject::vfunc_04() {}
ARM void MapObject::func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx) {
Vec3p pos;
VecFx32 pos;
Vec2p out;
MapObjectManager *t = data_027e0cd8->mUnk_10;
pos.coords = thisx->mPos.coords;
t->func_01fff6d0(&pos, (q20 *) &out.y, (q20 *) &out.x);
pos = thisx->mPos;
t->func_01fff6d0(&pos, (fx32 *) &out.y, (fx32 *) &out.x);
Vec2p temp;
temp.y = out.x;
@@ -91,7 +91,7 @@ ARM bool MapObject::func_ov000_0209d144(Vec2s *param1, unk32 param2, unk32 param
stack[1] = 0;
stack[2] = 0;
this->vfunc_2C((Vec3p *) &stack);
this->vfunc_2C((VecFx32 *) &stack);
unk8 value = this->mpProfile->mUnk_04[param2];
Vec2s stack2;
@@ -118,10 +118,10 @@ ARM unk32 MapObject::vfunc_28() {
return 0;
}
ARM bool MapObject::vfunc_2C(Vec3p *param1) {
ARM bool MapObject::vfunc_2C(VecFx32 *param1) {
if (this->mUnk_10 != NULL) {
this->mUnk_10->vfunc_18(param1);
Vec3p_Add(param1, &this->mPos, param1);
VecFx32_Add(param1, &this->mPos, param1);
return true;
}
@@ -129,7 +129,7 @@ ARM bool MapObject::vfunc_2C(Vec3p *param1) {
}
ARM void MapObject::func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2) {
Vec3p local_18;
VecFx32 local_18;
func_01ffb714(data_027e0ce0->func_01fff148(param2), &thisx->mPos, &local_18);
*param1 = func_01ffbbe0(local_18.x, local_18.z);
}
@@ -171,7 +171,7 @@ ARM void MapObject::func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2b *param
}
}
ARM void MapObject::func_ov000_0209d3b4(unk32 param1, q20 size) {
ARM void MapObject::func_ov000_0209d3b4(unk32 param1, fx32 size) {
Cylinder spC;
if (this->mUnk_10 != NULL) {
@@ -180,7 +180,7 @@ ARM void MapObject::func_ov000_0209d3b4(unk32 param1, q20 size) {
spC.Init(FLOAT_TO_Q20(0.5f));
}
Vec3p_Add(&spC.pos, &this->mPos, &spC.pos);
VecFx32_Add(&spC.pos, &this->mPos, &spC.pos);
spC.size += size;
func_01ffecdc(param1, &spC);
@@ -229,7 +229,7 @@ ARM void MapObject::func_ov000_0209d518(unk32 param1, unk32 param2, unk32 param3
}
struct TempStruct {
Vec3p pos;
VecFx32 pos;
u16 param_r2;
s16 extra_s16;
u16 extra_u16;
@@ -239,7 +239,7 @@ struct TempStruct {
};
// non-matching
ARM void MapObject::func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, Vec3p *param3, unk32 param4,
ARM void MapObject::func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, VecFx32 *param3, unk32 param4,
unk32 param5) {
TempStruct local_4c;
local_4c.mUnk_28 = 0;
@@ -287,10 +287,10 @@ ARM bool MapObject::func_ov000_0209d668() {
return pUVar1->func_ov000_02081f3c(this->mUnk_20.mUnk_14, uVar2);
}
ARM void MapObject::func_ov000_0209d6ac(Vec3p *param1) {
ARM void MapObject::func_ov000_0209d6ac(VecFx32 *param1) {
if (this->mUnk_10 == NULL) {
volatile Vec3p *tempPos = &this->mPos;
Vec3p pos;
volatile VecFx32 *tempPos = &this->mPos;
VecFx32 pos;
pos.x = tempPos->x;
pos.y = tempPos->y;
@@ -303,5 +303,5 @@ ARM void MapObject::func_ov000_0209d6ac(Vec3p *param1) {
}
this->mUnk_10->vfunc_1C(param1);
Vec3p_Add(param1, &this->mPos, param1);
VecFx32_Add(param1, &this->mPos, param1);
}
@@ -44,7 +44,7 @@ ARM bool MapObjectMiniBlocks::vfunc_00(void) {
this->mPos.y = pUnkStruct_027e0cd8_0c->func_01ffedf4(&vec);
}
Vec3p vec;
VecFx32 vec;
vec.x = FLOAT_TO_Q20(0.0f);
vec.y = FLOAT_TO_Q20(0.0f);
vec.z = FLOAT_TO_Q20(0.0f);
@@ -125,7 +125,7 @@ next:
}
func_01ff9638(&vec, -this->mUnk_14);
Vec3p_Add(&this->mPos, &vec, &this->mPos);
VecFx32_Add(&this->mPos, &vec, &this->mPos);
return true;
}
@@ -2,8 +2,8 @@
#include "Actor/Actor.hpp"
#include "MapObject/MapObject.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_ov000_020b5d34.hpp"
#include <nitro/mi.h>
extern unk8 data_ov000_020af4d4[];
@@ -1,11 +1,11 @@
#include "MapObject/MapObjectSwitchStep.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_0204af1c.hpp"
#include "Unknown/UnkStruct_027e0998.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_ov000_020b5214.hpp"
#include <nitro/mi.h>
extern "C" unk32 func_0200f218(unk32, const char *);
+1 -1
View File
@@ -1,6 +1,5 @@
#include "Actor/ActorManager.hpp"
#include "System/OverlayManager.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_027e09a0.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
@@ -9,6 +8,7 @@
#include "Unknown/UnkStruct_027e0d70.hpp"
#include "flags.h"
#include "global.h"
#include <nitro/mi.h>
extern "C" {
void func_ov000_020977e4();
@@ -18,8 +18,6 @@
extern "C" {
void *func_ov024_020d1658();
void *func_ov000_02066294();
void GX_SetGraphicsMode(unk32 param1, unk32 param2, unk32 param3);
void GXS_SetGraphicsMode(unk32 param1);
}
extern int data_ov001_020c27a8;

Some files were not shown because too many files have changed in this diff Show More