From 14f66f5e100561a71f2fe2be957b74c16303b8b1 Mon Sep 17 00:00:00 2001 From: Treeki Date: Fri, 24 Jun 2011 14:24:31 +0200 Subject: brought this up to date with the linker scripts from master --- kamek_ntsc.x | 63 ++++++++++++++++++++++++++++++++++++++++++++++++- kamek_ntsc2.x | 63 ++++++++++++++++++++++++++++++++++++++++++++++++- kamek_pal.x | 75 ++++++++++++++++++++++++++++++++++++++++++++++++----------- kamek_pal2.x | 63 ++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 248 insertions(+), 16 deletions(-) diff --git a/kamek_ntsc.x b/kamek_ntsc.x index e93be35..f9a3800 100644 --- a/kamek_ntsc.x +++ b/kamek_ntsc.x @@ -5,6 +5,18 @@ OUTPUT_FORMAT ("binary") }*/ SECTIONS { + GetSpecificPlayerActor = 0x8005F900; + TimeStopFlag = 0x80429CFA; + TimerBranch = 0x800E39C8; + MarioDescentRate = 0x8042B864; + MarioJumpArc = 0x802F561C; + MarioJumpMax = 0x8042B848; + MiniMarioJumpArc = 0x802F5664; + MarioSize = 0x8042B874; + AlwaysDrawFlag = 0x80064540; + AlwaysDrawBranch = 0x80064544; + + _savefpr_14 = 0x802DCCA8; _savefpr_15 = 0x802DCCAC; _savefpr_16 = 0x802DCCB0; @@ -173,9 +185,18 @@ SECTIONS { DrawAllLayoutsAfterX__Fi = 0x80163390; DrawAllLayoutsAfterXandBeforeY__Fii = 0x80163420; + findPaneByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007300; + findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007320; + findPictureByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x800073D0; + findWindowByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007470; __ct__Q23m2d13EmbedLayout_cFv = 0x800C8950; __dt__Q23m2d13EmbedLayout_cFv = 0x800C89A0; loadArc__Q23m2d13EmbedLayout_cFPCcb = 0x800C8CB0; + loadAnimations__Q23m2d13EmbedLayout_cFPPCci = 0x800C8FB0; + loadGroups__Q23m2d13EmbedLayout_cFPPCcPii = 0x800C90F0; + enableNonLoopAnim__Q23m2d13EmbedLayout_cFib = 0x800C92F0; + enableLoopAnim__Q23m2d13EmbedLayout_cFi = 0x800C9380; + disableAllAnimations__Q23m2d13EmbedLayout_cFv = 0x800C9500; free__Q23m2d13EmbedLayout_cFv = 0x800C9930; execAnimations__Q23m2d13EmbedLayout_cFv = 0x800C9560; scheduleForDrawing__Q23m2d6Base_cFv = 0x80163850; @@ -200,14 +221,30 @@ SECTIONS { Init__Q34nw4r3g3d7ResFileFv = 0x8023A590; Bind__Q34nw4r3g3d7ResFileFQ34nw4r3g3d7ResFile = 0x8023A350; GetResMdl__Q34nw4r3g3d7ResFileCFPCc = 0x80239E30; + GetResTex__Q34nw4r3g3d7ResFileCFPCc = 0x80239F20; g3dMemAllocator__Q24nw4r3g3d = 0x8042A3C8; __ScnMdl__Construct__Q24nw4r3g3dFPvPUiPvUii = 0x8025CA20; __ScnMdlSimple__Construct__Q24nw4r3g3dFPvPUiPvi = 0x8025A380; InsertIntoScene__Q24nw4r3g3dFPv = 0x80164E50; + GetResMat__Q34nw4r3g3d6ResMdlCFPCc = 0x8023B760; + + DisableIndirectTexturing__3m3dFv = 0x80164F50; + InitTexObjWithResTex__3m3dFP9_GXTexObjPv14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilter = 0x802C7C70; + + /* This is preliminary and kinda strange, most of these just point to ScnLeaf for now */ + setup__Q23m3d6proc_cFPvPUi = 0x80164FD0; + __ct__Q23m3d6proc_cFv = 0x8016A010; + __dt__Q23m3d6proc_cFv = 0x8016A030; + free__Q23m3d6proc_cFv = 0x8016A090; + scheduleForDrawing__Q23m3d6proc_cFv = 0x8016A0E0; + getViewMatrix__Q23m3d6proc_cFPA3_A4_f = 0x8016A190; + returnUnknown__Q23m3d6proc_cFv = 0x8000F720; + /* End preliminary section */ + __ct__Q23m3d5mdl_cFv = 0x80169CD0; __dt__Q23m3d5mdl_cFv = 0x80169D20; - setup__Q23m3d5mdl_cFPvPvUiiPUi = 0x80169D90; + setup__Q23m3d5mdl_cFQ34nw4r3g3d6ResMdlPvUiiPUi = 0x80169D90; oneSetupType__Q23m3d5mdl_cFv = 0x80064C10; sub_80064BF0__Q23m3d5mdl_cFv = 0x80064BF0; setDrawMatrix__Q23m3d5mdl_cFPA4_Cf = 0x8016A170; @@ -231,6 +268,12 @@ SECTIONS { allocateBuffer__10mTexture_cFPv = 0x802C11E0; plotPixel__10mTexture_cFUsUs8_GXColor = 0x802C1280; + SetFontSize__Q34nw4r2ut10CharWriterFff = 0x8022D2F0; + + __ct__Q34nw4r2ut10TextWriterFv = 0x80230780; + __dt__Q34nw4r2ut10TextWriterFv = 0x802307E0; + CalcStringWidth__Q34nw4r2ut10TextWriterCFPCwi = 0x802310D0; + GameHeaps = 0x80377C48; BGDatClass = 0x80429DF0; @@ -300,6 +343,16 @@ SECTIONS { load__12dDvdLoader_cFPCcUcPv = 0x8008F1B0; unload__12dDvdLoader_cFv = 0x8008F310; + SZSDecompClass = 0x80377AE4; + LZDecompClass = 0x80377AF0; + LHDecompClass = 0x80377AFC; + LRCDecompClass = 0x80377B08; + RLDecompClass = 0x80377B14; + StoreCompressionClassList = 0x8016B090; + DecompBufferPointer = 0x80429460; + + TryAndFindCompressedFile = 0x8016BAA0; + _Z22BgTexMng__LoadAnimTilePvisPcS0_c = 0x80087B60; /* same for ntsc */ BgTexMng__LoadAnimTile__FPvisPcPcc = 0x80087B60; /* same for ntsc */ @@ -373,6 +426,8 @@ SECTIONS { AllocFromGameHeap1__FUi = 0x801628C0; FreeFromGameHeap1__FPv = 0x80162920; + AllocFromGameHeap1 = 0x801628C0; + _Z19lyt__Layout__LayoutPv = 0x802ACB40; _Z15lyt__Layout__dtPvi = 0x802ACB80; _Z18lyt__Layout__BuildPvPKvS_ = 0x802ACCB0; @@ -403,6 +458,8 @@ SECTIONS { DVDReadPrio__FP9DVDHandlePviii = 0x801CAB20; DVDClose__FP9DVDHandle = 0x801CAA00; + DVDConvertPathToEntrynum = 0x801CA680; + _ZN8SaveFile8GetBlockEi = 0x800E0380; _ZN8SaveFile10GetQSBlockEi = 0x800E03B0; @@ -492,6 +549,7 @@ SECTIONS { _Z6memsetPvij = 0x800046B4; sprintf__FPcPCce = 0x802E17DC; snprintf__FPciPCce = 0x802E16E8; + memcmp__FPCvPCvUi = 0x802DF098; _Z6strcatPKcS0_ = 0x802E1A3C; _Znaj = 0x802B9210; @@ -580,12 +638,15 @@ SECTIONS { GXSetTevKAlphaSel = 0x801C85B0; GXSetTevSwapMode = 0x801C8600; GXSetTevSwapModeTable = 0x801C8640; + GXSetAlphaCompare = 0x801C86C0; GXSetTevOrder = 0x801C8790; GXSetNumTevStages = 0x801C88F0; GXSetFog = 0x801C8920; + GXSetFogRangeAdj = 0x801C8CB0; GXSetBlendMode = 0x801C8DC0; GXSetZMode = 0x801C8E70; GXSetZCompLoc = 0x801C8EB0; + GXSetDither = 0x801C8F90; GXCallDisplayList = 0x801C95E0; GXSetProjection = 0x801C9840; GXLoadPosMtxImm = 0x801C9940; diff --git a/kamek_ntsc2.x b/kamek_ntsc2.x index 2d48f72..8af9cc3 100644 --- a/kamek_ntsc2.x +++ b/kamek_ntsc2.x @@ -5,6 +5,18 @@ OUTPUT_FORMAT ("binary") }*/ SECTIONS { + GetSpecificPlayerActor = 0x8005F900; + TimeStopFlag = 0x80429CFA; + TimerBranch = 0x800E39C8; + MarioDescentRate = 0x8042B864; + MarioJumpArc = 0x802F561C; + MarioJumpMax = 0x8042B848; + MiniMarioJumpArc = 0x802F5664; + MarioSize = 0x8042B874; + AlwaysDrawFlag = 0x80064540; + AlwaysDrawBranch = 0x80064544; + + _savefpr_14 = 0x802DCCA8; _savefpr_15 = 0x802DCCAC; _savefpr_16 = 0x802DCCB0; @@ -173,9 +185,18 @@ SECTIONS { DrawAllLayoutsAfterX__Fi = 0x80163390; DrawAllLayoutsAfterXandBeforeY__Fii = 0x80163420; + findPaneByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007300; + findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007320; + findPictureByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x800073D0; + findWindowByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007470; __ct__Q23m2d13EmbedLayout_cFv = 0x800C8950; __dt__Q23m2d13EmbedLayout_cFv = 0x800C89A0; loadArc__Q23m2d13EmbedLayout_cFPCcb = 0x800C8CB0; + loadAnimations__Q23m2d13EmbedLayout_cFPPCci = 0x800C8FB0; + loadGroups__Q23m2d13EmbedLayout_cFPPCcPii = 0x800C90F0; + enableNonLoopAnim__Q23m2d13EmbedLayout_cFib = 0x800C92F0; + enableLoopAnim__Q23m2d13EmbedLayout_cFi = 0x800C9380; + disableAllAnimations__Q23m2d13EmbedLayout_cFv = 0x800C9500; free__Q23m2d13EmbedLayout_cFv = 0x800C9930; execAnimations__Q23m2d13EmbedLayout_cFv = 0x800C9560; scheduleForDrawing__Q23m2d6Base_cFv = 0x80163850; @@ -200,14 +221,30 @@ SECTIONS { Init__Q34nw4r3g3d7ResFileFv = 0x8023A590; Bind__Q34nw4r3g3d7ResFileFQ34nw4r3g3d7ResFile = 0x8023A350; GetResMdl__Q34nw4r3g3d7ResFileCFPCc = 0x80239E30; + GetResTex__Q34nw4r3g3d7ResFileCFPCc = 0x80239F20; g3dMemAllocator__Q24nw4r3g3d = 0x8042A3C8; __ScnMdl__Construct__Q24nw4r3g3dFPvPUiPvUii = 0x8025CA20; __ScnMdlSimple__Construct__Q24nw4r3g3dFPvPUiPvi = 0x8025A380; InsertIntoScene__Q24nw4r3g3dFPv = 0x80164E50; + GetResMat__Q34nw4r3g3d6ResMdlCFPCc = 0x8023B760; + + DisableIndirectTexturing__3m3dFv = 0x80164F50; + InitTexObjWithResTex__3m3dFP9_GXTexObjPv14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilter = 0x802C7C70; + + /* This is preliminary and kinda strange, most of these just point to ScnLeaf for now */ + setup__Q23m3d6proc_cFPvPUi = 0x80164FD0; + __ct__Q23m3d6proc_cFv = 0x8016A010; + __dt__Q23m3d6proc_cFv = 0x8016A030; + free__Q23m3d6proc_cFv = 0x8016A090; + scheduleForDrawing__Q23m3d6proc_cFv = 0x8016A0E0; + getViewMatrix__Q23m3d6proc_cFPA3_A4_f = 0x8016A190; + returnUnknown__Q23m3d6proc_cFv = 0x8000F720; + /* End preliminary section */ + __ct__Q23m3d5mdl_cFv = 0x80169CD0; __dt__Q23m3d5mdl_cFv = 0x80169D20; - setup__Q23m3d5mdl_cFPvPvUiiPUi = 0x80169D90; + setup__Q23m3d5mdl_cFQ34nw4r3g3d6ResMdlPvUiiPUi = 0x80169D90; oneSetupType__Q23m3d5mdl_cFv = 0x80064C10; sub_80064BF0__Q23m3d5mdl_cFv = 0x80064BF0; setDrawMatrix__Q23m3d5mdl_cFPA4_Cf = 0x8016A170; @@ -231,6 +268,12 @@ SECTIONS { allocateBuffer__10mTexture_cFPv = 0x802C11E0; plotPixel__10mTexture_cFUsUs8_GXColor = 0x802C1280; + SetFontSize__Q34nw4r2ut10CharWriterFff = 0x8022D2F0; + + __ct__Q34nw4r2ut10TextWriterFv = 0x80230780; + __dt__Q34nw4r2ut10TextWriterFv = 0x802307E0; + CalcStringWidth__Q34nw4r2ut10TextWriterCFPCwi = 0x802310D0; + GameHeaps = 0x80377C48; BGDatClass = 0x80429DF0; @@ -300,6 +343,16 @@ SECTIONS { load__12dDvdLoader_cFPCcUcPv = 0x8008F1B0; unload__12dDvdLoader_cFv = 0x8008F310; + SZSDecompClass = 0x80377AE4; + LZDecompClass = 0x80377AF0; + LHDecompClass = 0x80377AFC; + LRCDecompClass = 0x80377B08; + RLDecompClass = 0x80377B14; + StoreCompressionClassList = 0x8016B090; + DecompBufferPointer = 0x80429460; + + TryAndFindCompressedFile = 0x8016BAA0; + _Z22BgTexMng__LoadAnimTilePvisPcS0_c = 0x80087B60; /* same for ntsc */ BgTexMng__LoadAnimTile__FPvisPcPcc = 0x80087B60; /* same for ntsc */ @@ -373,6 +426,8 @@ SECTIONS { AllocFromGameHeap1__FUi = 0x801628C0; FreeFromGameHeap1__FPv = 0x80162920; + AllocFromGameHeap1 = 0x801628C0; + _Z19lyt__Layout__LayoutPv = 0x802ACB40; _Z15lyt__Layout__dtPvi = 0x802ACB80; _Z18lyt__Layout__BuildPvPKvS_ = 0x802ACCB0; @@ -403,6 +458,8 @@ SECTIONS { DVDReadPrio__FP9DVDHandlePviii = 0x801CAB20; DVDClose__FP9DVDHandle = 0x801CAA00; + DVDConvertPathToEntrynum = 0x801CA680; + _ZN8SaveFile8GetBlockEi = 0x800E0380; _ZN8SaveFile10GetQSBlockEi = 0x800E03B0; @@ -492,6 +549,7 @@ SECTIONS { _Z6memsetPvij = 0x800046B4; sprintf__FPcPCce = 0x802E17DC; snprintf__FPciPCce = 0x802E16E8; + memcmp__FPCvPCvUi = 0x802DF098; _Z6strcatPKcS0_ = 0x802E1A3C; _Znaj = 0x802B9210; @@ -580,12 +638,15 @@ SECTIONS { GXSetTevKAlphaSel = 0x801C85B0; GXSetTevSwapMode = 0x801C8600; GXSetTevSwapModeTable = 0x801C8640; + GXSetAlphaCompare = 0x801C86C0; GXSetTevOrder = 0x801C8790; GXSetNumTevStages = 0x801C88F0; GXSetFog = 0x801C8920; + GXSetFogRangeAdj = 0x801C8CB0; GXSetBlendMode = 0x801C8DC0; GXSetZMode = 0x801C8E70; GXSetZCompLoc = 0x801C8EB0; + GXSetDither = 0x801C8F90; GXCallDisplayList = 0x801C95E0; GXSetProjection = 0x801C9840; GXLoadPosMtxImm = 0x801C9940; diff --git a/kamek_pal.x b/kamek_pal.x index f3da9bf..720c71b 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -5,18 +5,18 @@ OUTPUT_FORMAT ("binary") }*/ SECTIONS { - GetSpecificPlayerActor = 0x8005F900; - TimeStopFlag = 0x80429FDA; - TimerBranch = 0x800E3AB8; - MarioDescentRate = 0x8042BB44; - MarioJumpArc = 0x802F591C; - MarioJumpMax = 0x8042BB28; - MiniMarioJumpArc = 0x802F5964; - MarioSize = 0x8042BB54; - AlwaysDrawFlag = 0x80064540; - AlwaysDrawBranch = 0x80064544; - - + GetSpecificPlayerActor = 0x8005F900; + TimeStopFlag = 0x80429FDA; + TimerBranch = 0x800E3AB8; + MarioDescentRate = 0x8042BB44; + MarioJumpArc = 0x802F591C; + MarioJumpMax = 0x8042BB28; + MiniMarioJumpArc = 0x802F5964; + MarioSize = 0x8042BB54; + AlwaysDrawFlag = 0x80064540; + AlwaysDrawBranch = 0x80064544; + + _savefpr_14 = 0x802DCF98; _savefpr_15 = 0x802DCF9C; _savefpr_16 = 0x802DCFA0; @@ -185,9 +185,18 @@ SECTIONS { DrawAllLayoutsAfterX__Fi = 0x801634D0; DrawAllLayoutsAfterXandBeforeY__Fii = 0x80163560; + findPaneByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007300; + findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007320; + findPictureByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x800073D0; + findWindowByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0x80007470; __ct__Q23m2d13EmbedLayout_cFv = 0x800C89A0; __dt__Q23m2d13EmbedLayout_cFv = 0x800C89F0; loadArc__Q23m2d13EmbedLayout_cFPCcb = 0x800C8D00; + loadAnimations__Q23m2d13EmbedLayout_cFPPCci = 0x800C90A0; + loadGroups__Q23m2d13EmbedLayout_cFPPCcPii = 0x800C91E0; + enableNonLoopAnim__Q23m2d13EmbedLayout_cFib = 0x800C93E0; + enableLoopAnim__Q23m2d13EmbedLayout_cFi = 0x800C9470; + disableAllAnimations__Q23m2d13EmbedLayout_cFv = 0x800C95F0; free__Q23m2d13EmbedLayout_cFv = 0x800C9A20; execAnimations__Q23m2d13EmbedLayout_cFv = 0x800C9650; scheduleForDrawing__Q23m2d6Base_cFv = 0x80163990; @@ -212,14 +221,30 @@ SECTIONS { Init__Q34nw4r3g3d7ResFileFv = 0x8023A6D0; Bind__Q34nw4r3g3d7ResFileFQ34nw4r3g3d7ResFile = 0x8023A490; GetResMdl__Q34nw4r3g3d7ResFileCFPCc = 0x80239F70; + GetResTex__Q34nw4r3g3d7ResFileCFPCc = 0x8023A060; g3dMemAllocator__Q24nw4r3g3d = 0x8042A6A8; __ScnMdl__Construct__Q24nw4r3g3dFPvPUiPvUii = 0x8025CB60; __ScnMdlSimple__Construct__Q24nw4r3g3dFPvPUiPvi = 0x8025A4C0; InsertIntoScene__Q24nw4r3g3dFPv = 0x80164F90; + GetResMat__Q34nw4r3g3d6ResMdlCFPCc = 0x8023B8A0; + + DisableIndirectTexturing__3m3dFv = 0x80165090; + InitTexObjWithResTex__3m3dFP9_GXTexObjPv14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilter = 0x802C7F60; + + /* This is preliminary and kinda strange, most of these just point to ScnLeaf for now */ + setup__Q23m3d6proc_cFPvPUi = 0x80165110; + __ct__Q23m3d6proc_cFv = 0x8016A150; + __dt__Q23m3d6proc_cFv = 0x8016A170; + free__Q23m3d6proc_cFv = 0x8016A1D0; + scheduleForDrawing__Q23m3d6proc_cFv = 0x8016A220; + getViewMatrix__Q23m3d6proc_cFPA3_A4_f = 0x8016A2D0; + returnUnknown__Q23m3d6proc_cFv = 0x8000F720; + /* End preliminary section */ + __ct__Q23m3d5mdl_cFv = 0x80169E10; __dt__Q23m3d5mdl_cFv = 0x80169E60; - setup__Q23m3d5mdl_cFPvPvUiiPUi = 0x80169ED0; + setup__Q23m3d5mdl_cFQ34nw4r3g3d6ResMdlPvUiiPUi = 0x80169ED0; oneSetupType__Q23m3d5mdl_cFv = 0x80064C10; sub_80064BF0__Q23m3d5mdl_cFv = 0x80064BF0; setDrawMatrix__Q23m3d5mdl_cFPA4_Cf = 0x8016A2B0; @@ -243,6 +268,12 @@ SECTIONS { allocateBuffer__10mTexture_cFPv = 0x802C14D0; plotPixel__10mTexture_cFUsUs8_GXColor = 0x802C1570; + SetFontSize__Q34nw4r2ut10CharWriterFff = 0x8022D430; + + __ct__Q34nw4r2ut10TextWriterFv = 0x802308C0; + __dt__Q34nw4r2ut10TextWriterFv = 0x80230920; + CalcStringWidth__Q34nw4r2ut10TextWriterCFPCwi = 0x80231210; + GameHeaps = 0x80377F48; BGDatClass = 0x8042A0D0; @@ -312,6 +343,16 @@ SECTIONS { load__12dDvdLoader_cFPCcUcPv = 0x8008F1B0; unload__12dDvdLoader_cFv = 0x8008F310; + SZSDecompClass = 0x80377DE4; + LZDecompClass = 0x80377DF0; + LHDecompClass = 0x80377DFC; + LRCDecompClass = 0x80377E08; + RLDecompClass = 0x80377E14; + StoreCompressionClassList = 0x8016B1D0; + DecompBufferPointer = 0x80429758; + + TryAndFindCompressedFile = 0x8016BBE0; + _Z22BgTexMng__LoadAnimTilePvisPcS0_c = 0x80087B60; /* same for ntsc */ BgTexMng__LoadAnimTile__FPvisPcPcc = 0x80087B60; /* same for ntsc */ @@ -385,6 +426,8 @@ SECTIONS { AllocFromGameHeap1__FUi = 0x80162A00; FreeFromGameHeap1__FPv = 0x80162A60; + AllocFromGameHeap1 = 0x80162A00; + _Z19lyt__Layout__LayoutPv = 0x802ACC80; _Z15lyt__Layout__dtPvi = 0x802ACCC0; _Z18lyt__Layout__BuildPvPKvS_ = 0x802ACDF0; @@ -415,6 +458,8 @@ SECTIONS { DVDReadPrio__FP9DVDHandlePviii = 0x801CAC60; DVDClose__FP9DVDHandle = 0x801CAB40; + DVDConvertPathToEntrynum = 0x801CA7C0; + _ZN8SaveFile8GetBlockEi = 0x800E0470; _ZN8SaveFile10GetQSBlockEi = 0x800E04A0; @@ -504,6 +549,7 @@ SECTIONS { _Z6memsetPvij = 0x800046B4; sprintf__FPcPCce = 0x802E1ACC; snprintf__FPciPCce = 0x802E19D8; + memcmp__FPCvPCvUi = 0x802DF388; _Z6strcatPKcS0_ = 0x802E1D2C; _Znaj = 0x802B9350; @@ -592,12 +638,15 @@ SECTIONS { GXSetTevKAlphaSel = 0x801C86F0; GXSetTevSwapMode = 0x801C8740; GXSetTevSwapModeTable = 0x801C8780; + GXSetAlphaCompare = 0x801C8800; GXSetTevOrder = 0x801C88D0; GXSetNumTevStages = 0x801C8A30; GXSetFog = 0x801C8A60; + GXSetFogRangeAdj = 0x801C8DF0; GXSetBlendMode = 0x801C8F00; GXSetZMode = 0x801C8FB0; GXSetZCompLoc = 0x801C8FF0; + GXSetDither = 0x801C90D0; GXCallDisplayList = 0x801C9720; GXSetProjection = 0x801C9980; GXLoadPosMtxImm = 0x801C9A80; diff --git a/kamek_pal2.x b/kamek_pal2.x index c18de20..8f6ff14 100644 --- a/kamek_pal2.x +++ b/kamek_pal2.x @@ -5,6 +5,18 @@ OUTPUT_FORMAT ("binary") }*/ SECTIONS { + GetSpecificPlayerActor = 0xDEADBEEF; + TimeStopFlag = 0xDEADBEEF; + TimerBranch = 0xDEADBEEF; + MarioDescentRate = 0xDEADBEEF; + MarioJumpArc = 0xDEADBEEF; + MarioJumpMax = 0xDEADBEEF; + MiniMarioJumpArc = 0xDEADBEEF; + MarioSize = 0xDEADBEEF; + AlwaysDrawFlag = 0xDEADBEEF; + AlwaysDrawBranch = 0xDEADBEEF; + + _savefpr_14 = 0xDEADBEEF; _savefpr_15 = 0xDEADBEEF; _savefpr_16 = 0xDEADBEEF; @@ -173,9 +185,18 @@ SECTIONS { DrawAllLayoutsAfterX__Fi = 0xDEADBEEF; DrawAllLayoutsAfterXandBeforeY__Fii = 0xDEADBEEF; + findPaneByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0xDEADBEEF; + findTextBoxByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0xDEADBEEF; + findPictureByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0xDEADBEEF; + findWindowByName__Q23m2d17EmbedLayoutBase_cCFPCc = 0xDEADBEEF; __ct__Q23m2d13EmbedLayout_cFv = 0xDEADBEEF; __dt__Q23m2d13EmbedLayout_cFv = 0xDEADBEEF; loadArc__Q23m2d13EmbedLayout_cFPCcb = 0xDEADBEEF; + loadAnimations__Q23m2d13EmbedLayout_cFPPCci = 0xDEADBEEF; + loadGroups__Q23m2d13EmbedLayout_cFPPCcPii = 0xDEADBEEF; + enableNonLoopAnim__Q23m2d13EmbedLayout_cFib = 0xDEADBEEF; + enableLoopAnim__Q23m2d13EmbedLayout_cFi = 0xDEADBEEF; + disableAllAnimations__Q23m2d13EmbedLayout_cFv = 0xDEADBEEF; free__Q23m2d13EmbedLayout_cFv = 0xDEADBEEF; execAnimations__Q23m2d13EmbedLayout_cFv = 0xDEADBEEF; scheduleForDrawing__Q23m2d6Base_cFv = 0xDEADBEEF; @@ -200,14 +221,30 @@ SECTIONS { Init__Q34nw4r3g3d7ResFileFv = 0xDEADBEEF; Bind__Q34nw4r3g3d7ResFileFQ34nw4r3g3d7ResFile = 0xDEADBEEF; GetResMdl__Q34nw4r3g3d7ResFileCFPCc = 0xDEADBEEF; + GetResTex__Q34nw4r3g3d7ResFileCFPCc = 0xDEADBEEF; g3dMemAllocator__Q24nw4r3g3d = 0xDEADBEEF; __ScnMdl__Construct__Q24nw4r3g3dFPvPUiPvUii = 0xDEADBEEF; __ScnMdlSimple__Construct__Q24nw4r3g3dFPvPUiPvi = 0xDEADBEEF; InsertIntoScene__Q24nw4r3g3dFPv = 0xDEADBEEF; + GetResMat__Q34nw4r3g3d6ResMdlCFPCc = 0xDEADBEEF; + + DisableIndirectTexturing__3m3dFv = 0xDEADBEEF; + InitTexObjWithResTex__3m3dFP9_GXTexObjPv14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilter = 0xDEADBEEF; + + /* This is preliminary and kinda strange, most of these just point to ScnLeaf for now */ + setup__Q23m3d6proc_cFPvPUi = 0xDEADBEEF; + __ct__Q23m3d6proc_cFv = 0xDEADBEEF; + __dt__Q23m3d6proc_cFv = 0xDEADBEEF; + free__Q23m3d6proc_cFv = 0xDEADBEEF; + scheduleForDrawing__Q23m3d6proc_cFv = 0xDEADBEEF; + getViewMatrix__Q23m3d6proc_cFPA3_A4_f = 0xDEADBEEF; + returnUnknown__Q23m3d6proc_cFv = 0xDEADBEEF; + /* End preliminary section */ + __ct__Q23m3d5mdl_cFv = 0xDEADBEEF; __dt__Q23m3d5mdl_cFv = 0xDEADBEEF; - setup__Q23m3d5mdl_cFPvPvUiiPUi = 0xDEADBEEF; + setup__Q23m3d5mdl_cFQ34nw4r3g3d6ResMdlPvUiiPUi = 0xDEADBEEF; oneSetupType__Q23m3d5mdl_cFv = 0xDEADBEEF; sub_80064BF0__Q23m3d5mdl_cFv = 0xDEADBEEF; setDrawMatrix__Q23m3d5mdl_cFPA4_Cf = 0xDEADBEEF; @@ -231,6 +268,12 @@ SECTIONS { allocateBuffer__10mTexture_cFPv = 0xDEADBEEF; plotPixel__10mTexture_cFUsUs8_GXColor = 0xDEADBEEF; + SetFontSize__Q34nw4r2ut10CharWriterFff = 0xDEADBEEF; + + __ct__Q34nw4r2ut10TextWriterFv = 0xDEADBEEF; + __dt__Q34nw4r2ut10TextWriterFv = 0xDEADBEEF; + CalcStringWidth__Q34nw4r2ut10TextWriterCFPCwi = 0xDEADBEEF; + GameHeaps = 0xDEADBEEF; BGDatClass = 0xDEADBEEF; @@ -300,6 +343,16 @@ SECTIONS { load__12dDvdLoader_cFPCcUcPv = 0xDEADBEEF; unload__12dDvdLoader_cFv = 0xDEADBEEF; + SZSDecompClass = 0xDEADBEEF; + LZDecompClass = 0xDEADBEEF; + LHDecompClass = 0xDEADBEEF; + LRCDecompClass = 0xDEADBEEF; + RLDecompClass = 0xDEADBEEF; + StoreCompressionClassList = 0xDEADBEEF; + DecompBufferPointer = 0xDEADBEEF; + + TryAndFindCompressedFile = 0xDEADBEEF; + _Z22BgTexMng__LoadAnimTilePvisPcS0_c = 0xDEADBEEF; /* same for ntsc */ BgTexMng__LoadAnimTile__FPvisPcPcc = 0xDEADBEEF; /* same for ntsc */ @@ -373,6 +426,8 @@ SECTIONS { AllocFromGameHeap1__FUi = 0xDEADBEEF; FreeFromGameHeap1__FPv = 0xDEADBEEF; + AllocFromGameHeap1 = 0xDEADBEEF; + _Z19lyt__Layout__LayoutPv = 0xDEADBEEF; _Z15lyt__Layout__dtPvi = 0xDEADBEEF; _Z18lyt__Layout__BuildPvPKvS_ = 0xDEADBEEF; @@ -403,6 +458,8 @@ SECTIONS { DVDReadPrio__FP9DVDHandlePviii = 0xDEADBEEF; DVDClose__FP9DVDHandle = 0xDEADBEEF; + DVDConvertPathToEntrynum = 0xDEADBEEF; + _ZN8SaveFile8GetBlockEi = 0xDEADBEEF; _ZN8SaveFile10GetQSBlockEi = 0xDEADBEEF; @@ -492,6 +549,7 @@ SECTIONS { _Z6memsetPvij = 0xDEADBEEF; sprintf__FPcPCce = 0xDEADBEEF; snprintf__FPciPCce = 0xDEADBEEF; + memcmp__FPCvPCvUi = 0xDEADBEEF; _Z6strcatPKcS0_ = 0xDEADBEEF; _Znaj = 0xDEADBEEF; @@ -580,12 +638,15 @@ SECTIONS { GXSetTevKAlphaSel = 0xDEADBEEF; GXSetTevSwapMode = 0xDEADBEEF; GXSetTevSwapModeTable = 0xDEADBEEF; + GXSetAlphaCompare = 0xDEADBEEF; GXSetTevOrder = 0xDEADBEEF; GXSetNumTevStages = 0xDEADBEEF; GXSetFog = 0xDEADBEEF; + GXSetFogRangeAdj = 0xDEADBEEF; GXSetBlendMode = 0xDEADBEEF; GXSetZMode = 0xDEADBEEF; GXSetZCompLoc = 0xDEADBEEF; + GXSetDither = 0xDEADBEEF; GXCallDisplayList = 0xDEADBEEF; GXSetProjection = 0xDEADBEEF; GXLoadPosMtxImm = 0xDEADBEEF; -- cgit v1.2.3 From 673484e580337cd1ab14bfd43c770f004494b9a4 Mon Sep 17 00:00:00 2001 From: Treeki Date: Fri, 24 Jun 2011 14:24:45 +0200 Subject: added the compression updates from master --- NewerProject.yaml | 1 + compression.yaml | 18 ++++++++ src/compression.S | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 compression.yaml create mode 100644 src/compression.S diff --git a/NewerProject.yaml b/NewerProject.yaml index 367d0c5..727447c 100644 --- a/NewerProject.yaml +++ b/NewerProject.yaml @@ -18,3 +18,4 @@ modules: # - processed/replay.yaml - processed/growup.yaml - processed/levelspecial.yaml + - processed/compression.yaml diff --git a/compression.yaml b/compression.yaml new file mode 100644 index 0000000..9d3a058 --- /dev/null +++ b/compression.yaml @@ -0,0 +1,18 @@ +--- +source_files: [../src/compression.S] +hooks: + - name: InitialiseEverything + type: branch_insn + branch_type: b + src_addr_pal: 0x8015BC70 + target_func: 'InitCompression' + + - name: GetFileEntrynumNew + type: branch_insn + branch_type: b + src_addr_pal: 0x8016BD70 + target_func: 'GetFileEntrynumNew' + + - name: FixStreamingLHDecompression + type: nop_insn + area_pal: 0x801D7884 diff --git a/src/compression.S b/src/compression.S new file mode 100644 index 0000000..dfa2894 --- /dev/null +++ b/src/compression.S @@ -0,0 +1,127 @@ +.text +.align 4 +.set sp, 1 + +#ifndef __MWERKS__ +.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 +.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 +.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 +.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 +.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 +.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 +.set r30,30; .set r31,31; .set f0,0; .set f2,2; .set f3,3 +.set f1,1; .set f30,30; .set f31,31 +#endif + +.extern StoreCompressionClassList + +.extern SZSDecompClass +.extern LZDecompClass +.extern LHDecompClass +.extern LRCDecompClass +.extern RLDecompClass + +.extern DecompBufferPointer + +.extern AllocFromGameHeap1 +.extern OSReport + +.extern TryAndFindCompressedFile +.extern DVDConvertPathToEntrynum + +.global InitCompression +InitCompression: + stwu sp, -0x10(sp) + mflr r0 + stw r0, 0x14(sp) + # -- Prolog + + lis r3, CMsg@h + ori r3, r3, CMsg@l + crclr 4*cr1+eq + bl OSReport + + lis r3, CCCL@h + ori r3, r3, CCCL@l + lis r4, CCCL_End@h + ori r4, r4, CCCL_End@l + bl StoreCompressionClassList + + # Allocate a buffer for decompression stuff + li r3, 0x8B4 + bl AllocFromGameHeap1 + lis r4, DecompBufferPointer@h + ori r4, r4, DecompBufferPointer@l + stw r3, 0(r4) + + mr r4, r3 + lis r3, CMsg2@h + ori r3, r3, CMsg2@l + crclr 4*cr1+eq + bl OSReport + + # -- Epilog + li r3, 1 + lwz r0, 0x14(sp) + mtlr r0 + addi sp, sp, 0x10 + blr + + +.global GetFileEntrynumNew +GetFileEntrynumNew: + stwu sp, -0x20(sp) + mflr r0 + stw r0, 0x24(sp) + stw r31, 0x1C(sp) + stw r30, 0x18(sp) + stw r29, 0x14(sp) + # Compression Type pointer (byte*) + mr r30, r4 + # Filename + mr r29, r3 + + # first, try compression + # don't bother checking 5278, it's always on in NSMBW anyway + bl TryAndFindCompressedFile + cmpwi r3, -1 + bne returnEntrynum + + # didn't find it, so try the normal version + mr r3, r29 + bl DVDConvertPathToEntrynum + # return value gets passed through + + cmpwi r30, 0 + beq returnEntrynum + li r0, 0 + stb r0, 0(r30) + +returnEntrynum: + lwz r31, 0x1C(sp) + lwz r30, 0x18(sp) + lwz r29, 0x14(sp) + lwz r0, 0x24(sp) + mtlr r0 + addi sp, sp, 0x20 + blr + + +.data +CCCL: + .long LHDecompClass + .long LZDecompClass +CCCL_End: + .long 0 + +CMsg: + .string "Setting up fancy decompression!\n" + +CMsg2: + .string "Buffer: %p\n" + +.align 4 + + + + -- cgit v1.2.3