From 8bd404b8530c5692d94f0349bbf3d608ca13d127 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Wed, 23 Mar 2022 20:39:27 -0400 Subject: [PATCH] Resolve ctors/dtors/extab/extabindex Former-commit-id: ed0d2110d9d74ee26eea3230de529e338c661d43 --- Makefile | 2 +- asm/ctors.s | 118 +++++++++++++++++++++++++++++++++++++- asm/dtors.s | 10 +++- asm/extab.s | 20 ++++++- asm/extabindex.s | 22 ++++++- asm/text.s.REMOVED.git-id | 2 +- 6 files changed, 161 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 56e92754..b6f2afcd 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ ifneq ($(findstring MSYS,$(shell uname)),) endif # If 0, tells the console to chill out. (Quiets the make process.) -VERBOSE ?= 1 +VERBOSE ?= 0 # If MAPGENFLAG set to 1, tells LDFLAGS to generate a mapfile, which makes linking take several minutes. MAPGENFLAG ?= 1 diff --git a/asm/ctors.s b/asm/ctors.s index 00377fca..9ab09a93 100644 --- a/asm/ctors.s +++ b/asm/ctors.s @@ -1,6 +1,118 @@ .include "macros.inc" .section .ctors, "wa" # 0x803CB1C0 - 0x803CB380 -.global lbl_803CB1C0 -lbl_803CB1C0: - .incbin "baserom.dol", 0x3C81C0, 0x1C0 +.global __init_cpp_exceptions_reference +__init_cpp_exceptions_reference: + # ROM: 0x3C81C0 + .4byte __init_cpp_exceptions + .4byte __sinit_CControlMapper_cpp + .4byte __sinit_CPlayer_cpp + .4byte __sinit_CAxisAngle_cpp + .4byte __sinit_CEulerAngles_cpp + .4byte __sinit_CFrontEndUI_cpp + .4byte __sinit_CMFGame_cpp + .4byte __sinit_CAnimData_cpp + .4byte __sinit_CPlayerGun_cpp + .4byte __sinit_CEntity_cpp + .4byte __sinit_CWorld_cpp + .4byte __sinit_CSamusHud_cpp + .4byte __sinit_CPatterned_cpp + .4byte __sinit_CMapArea_cpp + .4byte __sinit_CBallCamera_cpp + .4byte __sinit_CAi_cpp + .4byte __sinit_CTargetReticles_cpp + .4byte __sinit_CSamusDoll_cpp + .4byte __sinit_CPlasmaBeam_cpp + .4byte __sinit_CWaveBeam_cpp + .4byte __sinit_CMappableObject_cpp + .4byte __sinit_CPlayerCameraBob_cpp + .4byte __sinit_CCameraFilter_cpp + .4byte __sinit_CMorphBall_cpp + .4byte __sinit_CDamageVulnerability_cpp + .4byte __sinit_CModelData_cpp + .4byte __sinit_CDecalManager_cpp + .4byte __sinit_TGameTypes_cpp + .4byte __sinit_CSpacePirate_cpp + .4byte __sinit_CPathCamera_cpp + .4byte __sinit_CBSFlyerLocomotion_cpp + .4byte __sinit_CChozoGhost_cpp + .4byte __sinit_CFireFlea_cpp + .4byte __sinit_CPuddleToadGamma_cpp + .4byte __sinit_CPowerBomb_cpp + .4byte __sinit_CParasite_cpp + .4byte __sinit_CSamusFaceReflection_cpp + .4byte __sinit_CCameraShakeData_cpp + .4byte __sinit_CMetroid_cpp + .4byte __sinit_CPlasmaProjectile_cpp + .4byte __sinit_CPlayerOrbit_cpp + .4byte __sinit_CFlameThrower_cpp + .4byte __sinit_CScriptRoomAcoustics_cpp + .4byte __sinit_CIceSheegoth_cpp + .4byte __sinit_CCollisionActor_cpp + .4byte __sinit_CFlaahgra_cpp + .4byte __sinit_CWaveBuster_cpp + .4byte __sinit_CMetroidBeta_cpp + .4byte __sinit_CThardus_cpp + .4byte __sinit_CFlyingPirate_cpp + .4byte __sinit_CEnergyProjectile_cpp + .4byte __sinit_CScriptGunTurret_cpp + .4byte __sinit_CBabygoth_cpp + .4byte __sinit_CScriptCameraPitchVolume_cpp + .4byte __sinit_RumbleFxTable_cpp + .4byte __sinit_CElitePirate_cpp + .4byte __sinit_CGrenadeLauncher_cpp + .4byte __sinit_CScriptLayerManager_cpp + .4byte __sinit_CMagdolite_cpp + .4byte __sinit_CScriptSpindleCamera_cpp + .4byte __sinit_CRidley_cpp + .4byte __sinit_CTryclops_cpp + .4byte __sinit_CNewFlameThrower_cpp + .4byte __sinit_CBurrower_cpp + .4byte __sinit_CMetroidPrimeExo_cpp + .4byte __sinit_CMetroidPrimeEssence_cpp + .4byte sub_802886f0 + .4byte __sinit_CSlideShow_cpp + .4byte __sinit_CArtifactDoll_cpp + .4byte __sinit_CWorldLight_cpp + .4byte __sinit_IWeaponRenderer_cpp + .4byte __sinit_CDecal_cpp + .4byte __sinit_CCubeRenderer_cpp + .4byte __sinit_CGuiFeeHelper_cpp + .4byte __sinit_CGuiWidgetDrawParms_cpp + .4byte __sinit_CCollidableAABox_cpp + .4byte __sinit_CCollisionPrimitive_cpp + .4byte __sinit_CollisionUtil_cpp + .4byte __sinit_CCollidableSphere_cpp + .4byte __sinit_CMaterialFilter_cpp + .4byte __sinit_CStopwatch_cpp + .4byte __sinit_CSfxManager_cpp + .4byte __sinit_CLight_cpp + .4byte __sinit_CGX_cpp + .4byte __sinit_CTevCombiners_cpp + .4byte __sinit_DolphinCGraphics_cpp + .4byte __sinit_CloseEnough_cpp + .4byte __sinit_CMatrix3f_cpp + .4byte __sinit_CMatrix4f_cpp + .4byte __sinit_CQuaternion_cpp + .4byte __sinit_CTransform4f_cpp + .4byte __sinit_CVector2f_cpp + .4byte __sinit_CVector3f_cpp + .4byte __sinit_CMemory_cpp + .4byte sub_8032a504 + .4byte __sinit_CAABox_cpp + .4byte __sinit_rstl_strings_cpp + .4byte __sinit_RstlExtras_cpp + .4byte __sinit_IObj_cpp + .4byte __sinit_CARAMManager_cpp + .4byte __sinit_CCubeMaterial_cpp + .4byte __sinit_CCubeSurface_cpp + .4byte __sinit_CColor_cpp + .4byte __sinit_DolphinCAudioSys_cpp + .4byte __sinit_DolphinCMemoryCardSys_cpp + .4byte __sinit_DolphinCSkinnedModel_cpp + .4byte __sinit_CMidiManager_cpp + .4byte __sinit_CDSPStreamManager_cpp + .4byte __sinit_CStreamAudioManager_cpp + .4byte __sinit_CStaticAudioPlayer_cpp + .4byte __sinit_GameTweaks_cpp + .4byte 0 diff --git a/asm/dtors.s b/asm/dtors.s index 5a2d0122..6aef9864 100644 --- a/asm/dtors.s +++ b/asm/dtors.s @@ -1,6 +1,10 @@ .include "macros.inc" .section .dtors, "wa" # 0x803CB380 - 0x803CB3A0 -.global lbl_803CB380 -lbl_803CB380: - .incbin "baserom.dol", 0x3C8380, 0x10 +.global __destroy_global_chain_reference +__destroy_global_chain_reference: + # ROM: 0x3C8380 + .4byte __destroy_global_chain + .4byte __fini_cpp_exceptions + .4byte __destroy_global_chain + .4byte 0 diff --git a/asm/extab.s b/asm/extab.s index 249c1aa0..af0715bd 100644 --- a/asm/extab.s +++ b/asm/extab.s @@ -1,6 +1,20 @@ .include "macros.inc" .section extab_, "wa" # 0x800035A0 - 0x800035E0 -.global lbl_extab -lbl_extab: - .incbin "baserom.dol", 0x3C8120, 0x28 +.global __destroy_arr_extab +__destroy_arr_extab: + # ROM: 0x3C8120 + .4byte 0x20080000 + .4byte 0 +.global __construct_array_extab +__construct_array_extab: + .4byte 0x20080000 + .4byte 0x00000060 + .4byte 0x00000010 + .4byte 0 + .4byte 0x82000008 + .4byte 0x80389844 +.global __partial_array_destructor_extab +__partial_array_destructor_extab: + .4byte 0x18080000 + .4byte 0 diff --git a/asm/extabindex.s b/asm/extabindex.s index 507e611c..5059c169 100644 --- a/asm/extabindex.s +++ b/asm/extabindex.s @@ -2,7 +2,25 @@ .section extabindex_, "wa" # 0x800035E0 - 0x80003640 lbl_extabindex: - .incbin "baserom.dol", 0x3C8160, 0x24 + # ROM: 0x3C8160 + .4byte __destroy_arr + .4byte 0x00000078 + .4byte __destroy_arr_extab + .4byte __construct_array + .4byte 0x000000F8 + .4byte __construct_array_extab + .4byte __partial_array_destructor + .4byte 0x000000B8 + .4byte __partial_array_destructor_extab + .global lbl_80003604 lbl_80003604: - .incbin "baserom.dol", 0x3C8184, 0x20 + # ROM: 0x3C8184 + .4byte lbl_extabindex + .4byte lbl_80003604 + .4byte __destroy_arr + .4byte 0x00000228 + .4byte 0 + .4byte 0 + .4byte 0 + .4byte 0 diff --git a/asm/text.s.REMOVED.git-id b/asm/text.s.REMOVED.git-id index 795b656a..1554d59b 100644 --- a/asm/text.s.REMOVED.git-id +++ b/asm/text.s.REMOVED.git-id @@ -1 +1 @@ -4d836df38a8442529f8552aaca041fcfbcec58ac \ No newline at end of file +19e8c4d95ec771e02b342850959913cf3f6991dd \ No newline at end of file