Skip to content

Conversation

@bluisblu
Copy link
Contributor

@bluisblu bluisblu commented Nov 6, 2025

No description provided.

@github-actions

This comment was marked as outdated.

@bluisblu bluisblu marked this pull request as draft November 7, 2025 05:05
@github-actions

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

inline_depth(5) is a guess at how `-inline auto` should behave based on the function in zTaskBox, and it seems to match the most functions from what I can tell
@github-actions

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@github-actions
Copy link

main/SB/Game/zWad1

Section From To Bytes
⚠️ .text 3.44% 3.43% --11
📈 .text 0.00% 3.43% +3776
Function From To Bytes
⚠️ zEGenerator_Reset(zEGenerator*, xScene*) 55.28% 50.02% --11

main/SB/Game/zWad2

Section From To Bytes
📈 .text 2.03% 2.20% +222
📈 .text 0.00% 2.20% +2887
Function From To Bytes
📈 zNPCMgr_Shutdown() 16.53% 55.21% +222

main/SB/Game/zWad3

Section From To Bytes
📈 .text 6.79% 7.04% +497
📈 .text 0.00% 7.04% +13891
📈 .text 0.00% 7.04% +13891
Function From To Bytes
📈 zSceneGetName(unsigned int) 29.48% 45.26% +31
⚠️ zSceneRender() 12.62% 10.03% --10
⚠️ zSceneSetup_serialTraverseCB(unsigned int, xSerial*) 66.57% 57.94% --23
⚠️ zSceneReset() 18.81% 18.45% --9
📈 zSceneInitFunc_Dispatcher(zScene*, zSceneObjectInstanceDesc*, unsigned int) 55.69% 80.96% +75
📈 zSceneInitFunc_Volume(zScene*, zSceneObjectInstanceDesc*, unsigned int) 33.61% 54.06% +84
📈 zSceneInitFunc_Surface(zScene*, zSceneObjectInstanceDesc*, unsigned int) 54.48% 73.33% +48
📈 zSceneInitFunc_Camera(zScene*, zSceneObjectInstanceDesc*, unsigned int) 57.68% 80.09% +66
📈 zSceneInitFunc_MovePoint(zScene*, zSceneObjectInstanceDesc*, unsigned int) 57.30% 86.71% +90
📈 zSceneInitFunc_Default(zScene*, zSceneObjectInstanceDesc*, unsigned int) 59.06% 86.07% +88
📈 zSceneInitFunc_DefaultEnt(zScene*, zSceneObjectInstanceDesc*, unsigned int) 57.30% 79.52% +78
📈 zSaveLoad_SaveLoop() 24.03% 24.85% +18
📈 zSaveLoad_SaveGame() 34.55% 35.36% +16
📈 zSaveLoad_DoAutoSave() 72.54% 73.53% +8
⚠️ zSaveLoadAutoSaveUpdate() 41.73% 31.67% --61
⚠️ zSaveLoad_GameSelect(int) 28.22% 28.11% --4

main/SB/Game/zWadUI

Section From To Bytes
⚠️ .text 0.47% 0.37% --40
📈 .text 0.00% 0.37% +148
Function From To Bytes
⚠️ zUIController_Init(xBase&, xDynAsset&, unsigned long) 75.00% 12.50% --20
⚠️ zUIUserString_Init(xBase&, xDynAsset&, unsigned long) 75.00% 12.50% --20

main/SB/Core/x/xWad4

Section From To Bytes
📈 .text 15.61% 17.03% +1756
📈 .text 0.00% 17.03% +21151
Function From To Bytes
📈 XSGAutoData::SetCache(int, int, int) 70.70% 92.50% +43
📈 xSG_cb_ISGChange(void*, en_CHGCODE) 0.00% 15.25% +9
xSG_cb_leader_load(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_READCONTEXT*, unsigned int, int) 95.33% 100.00% +10
xSG_cb_leader_svproc(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_WRITECONTEXT*) 96.06% 100.00% +11
⚠️ xSGProcess(st_XSAVEGAME_DATA*) 27.48% 23.45% --39
⚠️ xSGSetup(st_XSAVEGAME_DATA*, int, char*, int, long long, int) 57.51% 48.80% --38
📈 xSGGameIsEmpty(st_XSAVEGAME_DATA*, int) 20.29% 49.55% +67
📈 PKR_LoadStep_Async() 22.90% 25.32% +59
📈 PKR_parse_TOC(st_HIPLOADDATA*, st_PACKER_READ_DATA*) 32.88% 47.08% +141
📈 PKRStartup() 34.40% 96.49% +141
📈 xParGroupAddPar(xParGroup*) 40.03% 58.10% +129
📈 xParGroupAnimate(xParGroup*, float) 0.00% 58.50% +372
📈 xParCmdRotateAround_Update(xParCmd*, xParGroup*, float) 52.53% 68.53% +57
📈 xParCmdMoveRandom_Update(xParCmd*, xParGroup*, float) 6.74% 7.59% +10
⚠️ xParCmdMove_Update(xParCmd*, xParGroup*, float) 7.68% 0.00% --10
📈 xParCmdAccelerate_Update(xParCmd*, xParGroup*, float) 0.18% 18.21% +24
xParCmdInit() 0.89% 100.00% +677
📈 xPadNormalizeAnalog(_tagxPad&, int, int) 70.66% 80.41% +87

main/SB/Core/x/xWad2

Section From To Bytes
📈 .text 10.95% 13.22% +5004
📈 .text 0.00% 13.22% +29153
Function From To Bytes
📈 xIniParse(char*, int) 67.06% 97.07% +350
⚠️ xhud::text_widget::update(float) 10.66% 8.76% --9
📈 xhud::text_widget::type() const 77.78% 99.94% +15
📈 xhud::text_widget::setup() 13.36% 42.30% +362
📈 xhud::model_widget::update(float) 31.30% 37.57% +24
📈 xhud::model_widget::is(unsigned int) const 31.60% 65.05% +53
📈 xhud::model_widget::type() const 77.78% 99.94% +15
📈 xhud::widget::clear_motives() 37.24% 55.96% +37
📈 xhud::widget::dispatcher(xBase*, unsigned int, const float*, xBase*, unsigned int) 75.60% 87.90% +24
HIPLReadString(st_HIPLOADDATA*, char*) 55.88% 100.00% +194
HIPLReadFloats(st_HIPLOADDATA*, float*, int) 33.14% 100.00% +133
HIPLReadLongs(st_HIPLOADDATA*, int*, int) 33.14% 100.00% +133
HIPLReadShorts(st_HIPLOADDATA*, short*, int) 34.33% 100.00% +133
HIPLReadBytes(st_HIPLOADDATA*, char*, int) 30.87% 100.00% +129
HIPLBlockEnter(st_HIPLOADDATA*) 52.59% 100.00% +242
📈 HIPLCreate(const char*, char*, int, int) 82.69% 95.83% +63
⚠️ xGroupEventCB(xBase*, xBase*, unsigned int, const float*, xBase*, unsigned int) 52.61% 51.75% --4
📈 xGroupSetup(xGroup*) 29.67% 34.50% +10
⚠️ xEntHide(xEnt*) 26.67% 0.00% --15
⚠️ xEntShow(xEnt*) 26.67% 0.00% --15
⚠️ xGridIterFirstCell(xGrid*, int, int, xGridIterator&) 47.76% 0.00% --64
⚠️ xGridIterFirstCell(xGridBound**, xGridIterator&) 85.33% 0.00% --51
⚠️ xFXRingRender() 62.79% 3.45% --68
📈 xtextbox::layout::changed(const xtextbox&) 30.99% 52.98% +215
📈 xtextbox::layout::render(const xtextbox&, int, int) 25.86% 32.73% +144
📈 xtextbox::layout::calc(const xtextbox&, unsigned long) 35.46% 46.71% +272
📈 xtextbox::layout::merge_line(xtextbox::jot_line&) 19.32% 36.20% +106
📈 xtextbox::layout::refresh_end(const xtextbox&) 14.88% 77.23% +172
📈 xtextbox::layout::clear() 9.18% 13.50% +26
📈 xtextbox::layout::refresh(const xtextbox&, bool) 25.50% 83.95% +187
📈 @unnamed@xWad2_cpp@::parse_next_text_jot(xtextbox::jot&, const xtextbox&, const xtextbox&, const char*, unsigned long) 3.59% 5.35% +17
xFFXApplyOne(xFFX*, xEnt*, xScene*, float) 17.80% 100.00% +437
xFactory::DestroyAll() 22.98% 100.00% +200
📈 xFactory::CreateItem(int, void*, RyzMemGrow*) 83.89% 85.52% +4
📈 xEntDriveUpdate(xEntDrive*, xScene*, float, const xCollis*) 33.54% 34.80% +43
📈 xEntDriveMount(xEntDrive*, xEnt*, float, const xCollis*) 45.11% 49.93% +87
📈 xEntCollideFloor(xEnt*, xScene*, float) 64.15% 70.90% +76
⚠️ xEntCollCheckOneEntNoDepen(xEnt*, xScene*, void*) 71.30% 68.93% --32
📈 xEntCollCheckOneGrid(xEnt*, xScene*, xEnt* (*)(xEnt*, xScene*, void*), xGrid*) 30.96% 92.39% +1012
📈 xEntCollide(xEnt*, xScene*, float) 27.58% 55.19% +429
📈 xEntApplyPhysics(xEnt*, xScene*, float) 34.50% 49.82% +106
📈 xEntMotionToMatrix(xEnt*, xEntFrame*) 17.39% 38.29% +152
⚠️ xEntDefaultTranslate(xEnt*, xVec3*, xMat4x3*) 35.58% 34.55% --4
📈 xEntBeginUpdate(xEnt*, xScene*, float) 22.26% 37.15% +59
⚠️ xEntUpdate(xEnt*, xScene*, float) 36.22% 0.00% --212
⚠️ xEntRestorePipeline(xModelInstance*) 59.29% 29.64% --16
⚠️ @unnamed@xWad2_cpp@::update_stacked_entity(xScene&, xEnt&, float) 25.22% 0.00% --177

main/SB/Core/x/xWad3

Section From To Bytes
📈 .text 15.14% 15.97% +498
📈 .text 0.00% 15.97% +9573
Function From To Bytes
xModelInstanceFree(xModelInstance*) 24.42% 100.00% +498
xMat4x3Rot(xMat4x3*, const xVec3*, float, const xVec3*) 14.28% 14.22% +/-0

main/SB/Core/x/xWad1

Section From To Bytes
📈 .text 10.20% 14.26% +7304
📈 .text 0.00% 14.26% +25625
📈 .text 0.00% 14.26% +25625
📈 .text 0.00% 14.26% +25625
Function From To Bytes
📈 xCMupdate(float) 24.85% 37.97% +31
📈 xClimateInitAsset(_tagClimate*, xEnvAsset*) 52.55% 55.25% +10
xBoundDraw(const xBound*) 0.00% 100.00% +4
📈 xBoundOBBIsectRay(const xBox*, const xMat4x3*, const xRay3*, xIsect*) 42.00% 80.77% +528
📈 xBoundGetSphere(xSphere&, const xBound&) 11.74% 16.71% +45
⚠️ xBoundGetBox(xBox&, const xBound&) 30.84% 19.13% --32
AsyncReadStatus(st_FILELOADINFO*) 14.83% 100.00% +180
ReadIDoubles(st_FILELOADINFO*, double*, int) 12.41% 100.00% +385
ReadIFloats(st_FILELOADINFO*, float*, int) 14.84% 100.00% +347
ReadILongs(st_FILELOADINFO*, int*, int) 14.84% 100.00% +347
ReadIShorts(st_FILELOADINFO*, short*, int) 15.34% 100.00% +335
ReadMDoubles(st_FILELOADINFO*, double*, int) 20.27% 100.00% +143
ReadMFloats(st_FILELOADINFO*, float*, int) 20.27% 100.00% +143
ReadMLongs(st_FILELOADINFO*, int*, int) 20.27% 100.00% +143
ReadMShorts(st_FILELOADINFO*, short*, int) 19.96% 100.00% +147
ReadBytes(st_FILELOADINFO*, char*, int) 22.39% 100.00% +127
DiscardBuffer(st_FILELOADINFO*) 0.00% 100.00% +40
📈 ReadSeek(st_FILELOADINFO*, int) 86.02% 94.24% +15
📈 SkipBytes(st_FILELOADINFO*, int) 82.58% 95.18% +27
LoadDestroy(st_FILELOADINFO*) 79.26% 100.00% +28
📈 xPsyche::BrainEnd() 80.00% 86.33% +3
⚠️ xPsyche::BrainBegin() 24.87% 18.20% --3
xBehaveMgr_Shutdown() 96.67% 100.00% +2
⚠️ xBehaveMgr_Startup() 35.73% 29.30% --17
📈 xGoalGeneric::SysEvent(xBase*, xBase*, unsigned int, const float*, xBase*, int*) 97.86% 99.93% +2
📈 xGoalGeneric::Resume(float, void*) 96.12% 99.88% +2
📈 xGoalGeneric::Suspend(float, void*) 96.12% 99.88% +2
📈 xGoalGeneric::Exit(float, void*) 96.12% 99.88% +2
📈 xGoalGeneric::Enter(float, void*) 96.12% 99.88% +2
GOALDestroy_Generic(xFactoryInst*) 84.00% 100.00% +6
📈 GOALCreate_Generic(int, RyzMemGrow*, void*) 35.58% 90.85% +143
📈 xAnimPoolFree(xAnimPlay*) 13.78% 86.79% +511
📈 xAnimPlayEval(xAnimPlay*) 63.76% 92.85% +300
📈 xAnimPlayStartTransition(xAnimPlay*, xAnimTransition*) 20.42% 69.25% +1097
⚠️ SingleUpdate(xAnimSingle*, float) 36.12% 28.70% --316
📈 xAnimPlaySetState(xAnimSingle*, xAnimState*, float) 24.08% 71.51% +502
📈 EffectSingleLoop(xAnimSingle*) 28.04% 98.86% +515
📈 EffectSingleRun(xAnimSingle*) 56.95% 99.51% +209
📈 EffectSingleStart(xAnimSingle*) 58.74% 99.14% +224
📈 xAnimTableAddFileID(xAnimTable*, xAnimFile*, unsigned int, unsigned int, unsigned int) 78.75% 99.94% +71
📈 xAnimTableNewTransition(xAnimTable*, const char*, const char*, unsigned int (*)(xAnimTransition*, xAnimSingle*, void*), unsigned int (*)(xAnimTransition*, xAnimSingle*, void*), unsigned int, unsigned int, float, float, unsigned short, unsigned short, float, unsigned short*) 67.58% 91.65% +152
📈 _xAnimTableAddTransition(xAnimTable*, xAnimTransition*, const char*, const char*) 30.22% 52.65% +487
📈 xAnimFileEval(xAnimFile*, float, float*, unsigned int, xVec3*, xQuat*, float*) 93.86% 98.42% +63
📈 _xCheckAnimNameInner(const char*, const char*, int, char*, int*, int*) 84.39% 93.97% +149
📈 iCameraSetFogParams(iFogParams*, float) 28.55% 68.25% +187

main/SB/Core/x/xWad5

Section From To Bytes
📈 .text 3.99% 5.80% +2392
📈 .text 0.00% 5.80% +7672
Function From To Bytes
📈 xSTGetAssetInfoByType(unsigned int, int, PKRAssetTOCInfo*) 23.55% 68.27% +221
📈 xSTGetAssetInfo(unsigned int, PKRAssetTOCInfo*) 23.06% 76.68% +231
📈 xSTFindAssetByType(unsigned int, int, unsigned int*) 34.61% 91.71% +276
📈 xSTAssetCountByType(unsigned int) 16.79% 90.26% +302
📈 xSTFindAsset(unsigned int, unsigned int*) 25.97% 59.09% +154
📈 xSTAssetName(void*) 18.99% 90.45% +300
📈 xSTAssetName(unsigned int) 29.40% 91.04% +276
📈 xSTSwitchScene(unsigned int, void*, int (*)(void*, float)) 31.58% 59.77% +148
📈 xSTDisconnect(unsigned int, int) 18.56% 49.27% +115
📈 xSTQueueSceneAssets(unsigned int, int) 24.46% 52.59% +115
📈 xSkyDome_Render() 37.26% 58.01% +97
📈 xSkyDome_AddEntity(xEnt*, int, int, int) 31.89% 56.41% +151

main/SB/Core/gc/iWad

Section From To Bytes
📈 .text 18.14% 19.03% +922
📈 .text 0.00% 19.03% +19552
Function From To Bytes
⚠️ iSGCheckForCorruptFiles(st_ISGSESSION*, char(*)[64]) 42.96% 22.05% --81
⚠️ iSG_mc_fopen(st_ISG_MEMCARD_DATA*, const char*, int, en_ISG_IOMODE, en_ASYNC_OPERR*) 59.86% 49.30% --73
📈 iSG_bfr_icondata(char*, CARDStat*, char*, int) 83.93% 99.83% +63
📈 iSG_isSpaceForFile(st_ISG_MEMCARD_DATA*, int, const char*, int*, int*, int*) 67.61% 99.99% +156
⚠️ iSGReadLeader(st_ISGSESSION*, const char*, char*, int, int) 46.96% 42.43% --41
⚠️ iSGSaveFile(st_ISGSESSION*, const char*, char*, int, int, char*) 53.18% 40.13% --156
📈 iSGSelectGameDir(st_ISGSESSION*, const char*) 34.76% 70.48% +182
📈 iSGFileModDate(st_ISGSESSION*, const char*, int*, int*, int*, int*, int*, int*) 34.24% 90.61% +432
📈 iSGFileSize(st_ISGSESSION*, const char*) 39.00% 99.99% +190
📈 iSGTgtState(st_ISGSESSION*, int, const char*) 37.26% 56.51% +174
⚠️ iSGTgtFormat(st_ISGSESSION*, int, int, int*) 69.69% 38.72% --87
📈 iFileRead(tag_xFile*, void*, unsigned int) 19.71% 31.14% +58
⚠️ iFileLoad(const char*, unsigned int*, unsigned int*) 44.95% 0.00% --143
⚠️ iCSFileAsyncRead(xCutscene*, void*, unsigned int) 22.62% 19.35% --8
📈 iCSAsyncReadCB(tag_xFile*) 42.93% 74.58% +56
📈 iAnimEvalSKB(iAnimSKBHeader*, float, unsigned int, xVec3*, xQuat*) 87.54% 91.01% +54
iAnimBlend(float, float, unsigned short*, float*, unsigned int, xVec3*, xQuat*, xVec3*, xQuat*, xVec3*, xQuat*) 92.52% 100.00% +145

main/SB/Game/zTalkBox

Section From To Bytes
⚠️ .text 1.01% 0.81% --39
Function From To Bytes
⚠️ ztalkbox::stop_talk() 84.23% 7.69% --39

main/SB/Game/zTaskBox

Section From To Bytes
📈 .sbss 50.00% 80.00% +4
📈 .text 27.88% 39.01% +459
Function From To Bytes
ztaskbox::stop_talk() 21.94% 100.00% +459

main/SB/Game/zTextBox

Section From To Bytes
📈 .text 24.74% 33.97% +471
Function From To Bytes
📈 ztextbox::render_all() 31.25% 77.98% +95
📈 ztextbox::update_all(xScene&, float) 0.00% 99.83% +23
📈 ztextbox::load(xBase&, xDynAsset&, unsigned long) 6.52% 73.18% +325
📈 ztextbox::set_text(unsigned int) 36.83% 38.10% +2
📈 @unnamed@zTextBox_cpp@::init_textbox(ztextbox&) 73.43% 77.35% +24

main/SB/Core/x/xCamera

Section From To Bytes
📈 .text 20.30% 21.76% +180
Function From To Bytes
📈 xCameraRotate(xCamera*, const xVec3&, float, float, float, float) 65.13% 66.34% +5
⚠️ xCameraRotate(xCamera*, const xMat3x3&, float, float, float) 58.54% 50.30% --34
📈 xCameraLookYPR(xCamera*, unsigned int, float, float, float, float, float, float) 49.93% 52.81% +10
📈 xCameraMove(xCamera*, unsigned int, float, float, float, float, float, float) 43.60% 74.96% +158
📈 xCameraReset(xCamera*, float, float, float) 27.48% 31.52% +40

Wrote comments in their place, until there's a better way to match them
@github-actions
Copy link

main/SB/Game/zWadNME

Section From To Bytes
⚠️ .text 0.04% 0.04% --27
Function From To Bytes
⚠️ zNMEDennis::RenderHud() 100.00% 12.50% --28

main/SB/Game/zWad1

Section From To Bytes
⚠️ .text 3.44% 3.40% --43
📈 .text 0.00% 3.40% +3744
Function From To Bytes
⚠️ zEnvInit(void*, void*) 100.00% 0.00% --32
⚠️ zEGenerator_Reset(zEGenerator*, xScene*) 55.28% 50.02% --11

main/SB/Game/zWad2

Section From To Bytes
📈 .text 2.03% 2.20% +222
📈 .text 0.00% 2.20% +2887
Function From To Bytes
📈 zNPCMgr_Shutdown() 16.53% 55.21% +222

main/SB/Game/zWad3

Section From To Bytes
📈 .text 6.79% 6.99% +401
📈 .text 0.00% 6.99% +13796
📈 .text 0.00% 6.99% +13796
Function From To Bytes
📈 zSceneGetName(unsigned int) 29.48% 45.26% +31
⚠️ zSceneRender() 12.62% 10.03% --10
⚠️ zSceneSetup_serialTraverseCB(unsigned int, xSerial*) 66.57% 57.94% --23
⚠️ zSceneReset() 18.81% 18.45% --9
📈 zSceneInitFunc_Dispatcher(zScene*, zSceneObjectInstanceDesc*, unsigned int) 55.69% 80.96% +75
📈 zSceneInitFunc_Volume(zScene*, zSceneObjectInstanceDesc*, unsigned int) 33.61% 54.06% +84
📈 zSceneInitFunc_Surface(zScene*, zSceneObjectInstanceDesc*, unsigned int) 54.48% 73.33% +48
📈 zSceneInitFunc_Camera(zScene*, zSceneObjectInstanceDesc*, unsigned int) 57.68% 80.09% +66
📈 zSceneInitFunc_MovePoint(zScene*, zSceneObjectInstanceDesc*, unsigned int) 57.30% 86.71% +90
📈 zSceneInitFunc_Default(zScene*, zSceneObjectInstanceDesc*, unsigned int) 59.06% 86.07% +88
📈 zSceneInitFunc_DefaultEnt(zScene*, zSceneObjectInstanceDesc*, unsigned int) 57.30% 79.52% +78
📈 zSaveLoad_SaveLoop() 24.03% 24.85% +18
📈 zSaveLoad_SaveGame() 34.55% 35.36% +16
📈 zSaveLoad_DoAutoSave() 72.54% 73.53% +8
⚠️ zSaveLoadAutoSaveUpdate() 41.73% 31.67% --61
⚠️ zSaveLoad_GameSelect(int) 28.22% 28.11% --4
⚠️ zSaveLoad_CardCheckGameSlot(int, int, int) 100.00% 0.00% --48
⚠️ zSaveLoad_CardCheckValid(int, int) 100.00% 0.00% --48

main/SB/Game/zWadUI

Section From To Bytes
⚠️ .text 0.47% 0.37% --40
📈 .text 0.00% 0.37% +148
Function From To Bytes
⚠️ zUIController_Init(xBase&, xDynAsset&, unsigned long) 75.00% 12.50% --20
⚠️ zUIUserString_Init(xBase&, xDynAsset&, unsigned long) 75.00% 12.50% --20

main/SB/Core/x/xWad4

Section From To Bytes
📈 .text 15.61% 16.11% +621
📈 .text 0.00% 16.11% +20015
Function From To Bytes
📈 XSGAutoData::SetCache(int, int, int) 70.70% 92.50% +43
📈 xSG_cb_ISGChange(void*, en_CHGCODE) 0.00% 15.25% +9
⚠️ xSG_cb_leader_load(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_READCONTEXT*, unsigned int, int) 95.33% 0.00% --217
⚠️ xSG_cb_leader_svproc(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_WRITECONTEXT*) 96.06% 0.00% --268
⚠️ xSGProcess(st_XSAVEGAME_DATA*) 27.48% 23.45% --39
⚠️ xSGSetup(st_XSAVEGAME_DATA*, int, char*, int, long long, int) 57.51% 48.80% --38
⚠️ xSGSetup(st_XSAVEGAME_DATA*) 85.88% 0.00% --54
📈 xSGGameIsEmpty(st_XSAVEGAME_DATA*, int) 20.29% 49.55% +67
⚠️ xSGInit(en_SAVEGAME_MODE) 100.00% 38.41% --155
📈 PKR_LoadStep_Async() 22.90% 25.32% +59
📈 PKR_parse_TOC(st_HIPLOADDATA*, st_PACKER_READ_DATA*) 32.88% 47.08% +141
⚠️ PKR_ReadInit(void*, const char*, unsigned int, int*, PKRAssetType*, int) 73.43% 0.00% --417
📈 PKRStartup() 34.40% 96.49% +141
📈 xParGroupAddPar(xParGroup*) 40.03% 58.10% +129
📈 xParGroupAnimate(xParGroup*, float) 0.00% 58.50% +372
📈 xParCmdRotateAround_Update(xParCmd*, xParGroup*, float) 52.53% 68.53% +57
📈 xParCmdMoveRandom_Update(xParCmd*, xParGroup*, float) 6.74% 7.59% +10
⚠️ xParCmdMove_Update(xParCmd*, xParGroup*, float) 7.68% 0.00% --10
📈 xParCmdAccelerate_Update(xParCmd*, xParGroup*, float) 0.18% 18.21% +24
xParCmdInit() 0.89% 100.00% +677
📈 xPadNormalizeAnalog(_tagxPad&, int, int) 70.66% 80.41% +87

main/SB/Core/x/xWad2

Section From To Bytes
📈 .text 10.95% 13.30% +5175
📈 .text 0.00% 13.30% +29323
Function From To Bytes
📈 xIniParse(char*, int) 67.06% 97.07% +350
⚠️ xhud::text_widget::update(float) 10.66% 8.76% --9
📈 xhud::text_widget::type() const 77.78% 99.94% +15
📈 xhud::text_widget::setup() 13.36% 42.30% +362
📈 xhud::model_widget::update(float) 31.30% 37.57% +24
📈 xhud::model_widget::is(unsigned int) const 31.60% 65.05% +53
📈 xhud::model_widget::type() const 77.78% 99.94% +15
📈 xhud::widget::clear_motives() 37.24% 55.96% +37
📈 xhud::widget::dispatcher(xBase*, unsigned int, const float*, xBase*, unsigned int) 75.60% 87.90% +24
HIPLReadString(st_HIPLOADDATA*, char*) 55.88% 100.00% +194
HIPLReadFloats(st_HIPLOADDATA*, float*, int) 33.14% 100.00% +133
HIPLReadLongs(st_HIPLOADDATA*, int*, int) 33.14% 100.00% +133
HIPLReadShorts(st_HIPLOADDATA*, short*, int) 34.33% 100.00% +133
HIPLReadBytes(st_HIPLOADDATA*, char*, int) 30.87% 100.00% +129
HIPLBlockEnter(st_HIPLOADDATA*) 52.59% 100.00% +242
📈 HIPLCreate(const char*, char*, int, int) 82.69% 95.83% +63
⚠️ xGroupEventCB(xBase*, xBase*, unsigned int, const float*, xBase*, unsigned int) 52.61% 51.75% --4
📈 xGroupSetup(xGroup*) 29.67% 34.50% +10
📈 xGridIterFirstCell(xGrid*, int, int, xGridIterator&) 47.76% 93.53% +62
⚠️ xFXRingRender() 62.79% 3.45% --68
📈 xtextbox::layout::changed(const xtextbox&) 30.99% 52.98% +215
📈 xtextbox::layout::render(const xtextbox&, int, int) 25.86% 32.73% +144
📈 xtextbox::layout::calc(const xtextbox&, unsigned long) 35.46% 46.71% +272
📈 xtextbox::layout::merge_line(xtextbox::jot_line&) 19.32% 36.20% +106
📈 xtextbox::layout::refresh_end(const xtextbox&) 14.88% 77.23% +172
📈 xtextbox::layout::clear() 9.18% 13.50% +26
📈 xtextbox::layout::refresh(const xtextbox&, bool) 25.50% 83.95% +187
📈 @unnamed@xWad2_cpp@::parse_next_text_jot(xtextbox::jot&, const xtextbox&, const xtextbox&, const char*, unsigned long) 3.59% 5.35% +17
xFFXApplyOne(xFFX*, xEnt*, xScene*, float) 17.80% 100.00% +437
xFactory::DestroyAll() 22.98% 100.00% +200
📈 xFactory::CreateItem(int, void*, RyzMemGrow*) 83.89% 85.52% +4
📈 xEntDriveUpdate(xEntDrive*, xScene*, float, const xCollis*) 33.54% 34.80% +43
📈 xEntDriveMount(xEntDrive*, xEnt*, float, const xCollis*) 45.11% 49.93% +87
📈 xEntCollideFloor(xEnt*, xScene*, float) 64.15% 70.90% +76
⚠️ xEntCollCheckOneEntNoDepen(xEnt*, xScene*, void*) 71.30% 68.93% --32
📈 xEntCollCheckOneGrid(xEnt*, xScene*, xEnt* (*)(xEnt*, xScene*, void*), xGrid*) 30.96% 92.39% +1012
📈 xEntCollide(xEnt*, xScene*, float) 27.58% 55.19% +429
📈 xEntApplyPhysics(xEnt*, xScene*, float) 34.50% 49.82% +106
📈 xEntMotionToMatrix(xEnt*, xEntFrame*) 17.39% 38.29% +152
⚠️ xEntDefaultTranslate(xEnt*, xVec3*, xMat4x3*) 35.58% 34.55% --4
📈 xEntBeginUpdate(xEnt*, xScene*, float) 22.26% 37.15% +59
⚠️ xEntUpdate(xEnt*, xScene*, float) 36.22% 0.00% --212
⚠️ xEntRestorePipeline(xModelInstance*) 59.29% 29.64% --16
⚠️ @unnamed@xWad2_cpp@::update_stacked_entity(xScene&, xEnt&, float) 25.22% 0.00% --177
⚠️ @unnamed@xWad2_cpp@::drop_stacked_entity(xEnt&) 100.00% 0.00% --40

main/SB/Core/x/xWad3

Section From To Bytes
📈 .text 15.14% 15.97% +498
📈 .text 0.00% 15.97% +9573
Function From To Bytes
xModelInstanceFree(xModelInstance*) 24.42% 100.00% +498
xMat4x3Rot(xMat4x3*, const xVec3*, float, const xVec3*) 14.28% 14.22% +/-0

main/SB/Core/x/xWad1

Section From To Bytes
📈 .text 10.20% 14.17% +7134
📈 .text 0.00% 14.17% +25455
📈 .text 0.00% 14.17% +25455
📈 .text 0.00% 14.17% +25455
Function From To Bytes
📈 xCMupdate(float) 24.85% 37.97% +31
📈 xClimateInitAsset(_tagClimate*, xEnvAsset*) 52.55% 55.25% +10
xBoundDraw(const xBound*) 0.00% 100.00% +4
📈 xBoundOBBIsectRay(const xBox*, const xMat4x3*, const xRay3*, xIsect*) 42.00% 80.77% +528
📈 xBoundGetSphere(xSphere&, const xBound&) 11.74% 16.71% +45
⚠️ xBoundGetBox(xBox&, const xBound&) 30.84% 19.13% --32
AsyncReadStatus(st_FILELOADINFO*) 14.83% 100.00% +180
⚠️ AsyncIRead(st_FILELOADINFO*, int, char*, int, int) 100.00% 0.00% --36
⚠️ AsyncMRead(st_FILELOADINFO*, int, char*, int, int) 100.00% 0.00% --36
ReadIDoubles(st_FILELOADINFO*, double*, int) 12.41% 100.00% +385
ReadIFloats(st_FILELOADINFO*, float*, int) 14.84% 100.00% +347
ReadILongs(st_FILELOADINFO*, int*, int) 14.84% 100.00% +347
ReadIShorts(st_FILELOADINFO*, short*, int) 15.34% 100.00% +335
ReadMDoubles(st_FILELOADINFO*, double*, int) 20.27% 100.00% +143
ReadMFloats(st_FILELOADINFO*, float*, int) 20.27% 100.00% +143
ReadMLongs(st_FILELOADINFO*, int*, int) 20.27% 100.00% +143
ReadMShorts(st_FILELOADINFO*, short*, int) 19.96% 100.00% +147
ReadBytes(st_FILELOADINFO*, char*, int) 22.39% 100.00% +127
DiscardBuffer(st_FILELOADINFO*) 0.00% 100.00% +40
📈 ReadSeek(st_FILELOADINFO*, int) 86.02% 94.24% +15
📈 SkipBytes(st_FILELOADINFO*, int) 82.58% 95.18% +27
LoadDestroy(st_FILELOADINFO*) 79.26% 100.00% +28
⚠️ xBinioLoadCreate(const char*, int) 65.76% 64.89% --6
📈 xPsyche::BrainEnd() 80.00% 86.33% +3
⚠️ xPsyche::BrainBegin() 24.87% 18.20% --3
xBehaveMgr_Shutdown() 96.67% 100.00% +2
⚠️ xBehaveMgr_Startup() 35.73% 29.30% --17
📈 xGoalGeneric::SysEvent(xBase*, xBase*, unsigned int, const float*, xBase*, int*) 97.86% 99.93% +2
📈 xGoalGeneric::Resume(float, void*) 96.12% 99.88% +2
📈 xGoalGeneric::Suspend(float, void*) 96.12% 99.88% +2
📈 xGoalGeneric::Exit(float, void*) 96.12% 99.88% +2
📈 xGoalGeneric::Enter(float, void*) 96.12% 99.88% +2
GOALDestroy_Generic(xFactoryInst*) 84.00% 100.00% +6
📈 GOALCreate_Generic(int, RyzMemGrow*, void*) 35.58% 90.85% +143
📈 xAnimPoolFree(xAnimPlay*) 13.78% 86.79% +511
⚠️ xAnimPoolAlloc(xMemPool*, void*, xAnimTable*, xModelInstance*) 100.00% 0.00% --92
📈 xAnimPlayEval(xAnimPlay*) 63.76% 92.85% +300
📈 xAnimPlayStartTransition(xAnimPlay*, xAnimTransition*) 20.42% 69.25% +1097
⚠️ SingleUpdate(xAnimSingle*, float) 36.12% 28.70% --316
📈 xAnimPlaySetState(xAnimSingle*, xAnimState*, float) 24.08% 71.51% +502
📈 EffectSingleLoop(xAnimSingle*) 28.04% 98.86% +515
📈 EffectSingleRun(xAnimSingle*) 56.95% 99.51% +209
📈 EffectSingleStart(xAnimSingle*) 58.74% 99.14% +224
📈 xAnimTableAddFileID(xAnimTable*, xAnimFile*, unsigned int, unsigned int, unsigned int) 78.75% 99.94% +71
📈 xAnimTableNewTransition(xAnimTable*, const char*, const char*, unsigned int (*)(xAnimTransition*, xAnimSingle*, void*), unsigned int (*)(xAnimTransition*, xAnimSingle*, void*), unsigned int, unsigned int, float, float, unsigned short, unsigned short, float, unsigned short*) 67.58% 91.65% +152
📈 _xAnimTableAddTransition(xAnimTable*, xAnimTransition*, const char*, const char*) 30.22% 52.65% +487
📈 xAnimFileEval(xAnimFile*, float, float*, unsigned int, xVec3*, xQuat*, float*) 93.86% 98.42% +63
📈 _xCheckAnimNameInner(const char*, const char*, int, char*, int*, int*) 84.39% 93.97% +149
📈 iCameraSetFogParams(iFogParams*, float) 28.55% 68.25% +187

main/SB/Core/x/xWad5

Section From To Bytes
📈 .text 3.99% 5.80% +2392
📈 .text 0.00% 5.80% +7672
Function From To Bytes
📈 xSTGetAssetInfoByType(unsigned int, int, PKRAssetTOCInfo*) 23.55% 68.27% +221
📈 xSTGetAssetInfo(unsigned int, PKRAssetTOCInfo*) 23.06% 76.68% +231
📈 xSTFindAssetByType(unsigned int, int, unsigned int*) 34.61% 91.71% +276
📈 xSTAssetCountByType(unsigned int) 16.79% 90.26% +302
📈 xSTFindAsset(unsigned int, unsigned int*) 25.97% 59.09% +154
📈 xSTAssetName(void*) 18.99% 90.45% +300
📈 xSTAssetName(unsigned int) 29.40% 91.04% +276
📈 xSTSwitchScene(unsigned int, void*, int (*)(void*, float)) 31.58% 59.77% +148
📈 xSTDisconnect(unsigned int, int) 18.56% 49.27% +115
📈 xSTQueueSceneAssets(unsigned int, int) 24.46% 52.59% +115
📈 xSkyDome_Render() 37.26% 58.01% +97
📈 xSkyDome_AddEntity(xEnt*, int, int, int) 31.89% 56.41% +151

main/SB/Core/gc/iWad

Section From To Bytes
📈 .text 18.14% 18.22% +90
📈 .text 0.00% 18.22% +18721
Function From To Bytes
⚠️ iSGCheckForCorruptFiles(st_ISGSESSION*, char(*)[64]) 42.96% 22.05% --81
⚠️ iSG_mc_fopen(st_ISG_MEMCARD_DATA*, const char*, int, en_ISG_IOMODE, en_ASYNC_OPERR*) 59.86% 49.30% --73
📈 iSG_bfr_icondata(char*, CARDStat*, char*, int) 83.93% 99.83% +63
⚠️ iSG_load_icondata() 99.95% 0.00% --171
📈 iSG_isSpaceForFile(st_ISG_MEMCARD_DATA*, int, const char*, int*, int*, int*) 67.61% 99.99% +156
⚠️ iSGReadLeader(st_ISGSESSION*, const char*, char*, int, int) 46.96% 42.43% --41
⚠️ iSGSaveFile(st_ISGSESSION*, const char*, char*, int, int, char*) 53.18% 40.13% --156
📈 iSGSelectGameDir(st_ISGSESSION*, const char*) 34.76% 70.48% +182
📈 iSGFileModDate(st_ISGSESSION*, const char*, int*, int*, int*, int*, int*, int*) 34.24% 90.61% +432
⚠️ iSGFileModDate(st_ISGSESSION*, const char*) 100.00% 0.00% --56
📈 iSGFileSize(st_ISGSESSION*, const char*) 39.00% 99.99% +190
⚠️ iSGTgtHaveRoomStartup(st_ISGSESSION*, int, int, const char*, const char*, int*, int*, int*) 66.07% 33.22% --219
⚠️ iSGTgtHaveRoom(st_ISGSESSION*, int, int, const char*, const char*, int*, int*, int*) 64.71% 30.30% --220
📈 iSGTgtState(st_ISGSESSION*, int, const char*) 37.26% 56.51% +174
⚠️ iSGTgtFormat(st_ISGSESSION*, int, int, int*) 69.69% 38.72% --87
⚠️ iSGStartup() 92.19% 0.00% --59
⚠️ iMemExit() 100.00% 79.67% --12
📈 iFileRead(tag_xFile*, void*, unsigned int) 19.71% 31.14% +58
⚠️ iFileLoad(const char*, unsigned int*, unsigned int*) 44.95% 0.00% --143
⚠️ iEnvRender(iEnv*, bool) 41.11% 0.49% --92
⚠️ iCSFileAsyncRead(xCutscene*, void*, unsigned int) 22.62% 19.35% --8
📈 iCSAsyncReadCB(tag_xFile*) 42.93% 74.58% +56
📈 iAnimEvalSKB(iAnimSKBHeader*, float, unsigned int, xVec3*, xQuat*) 87.54% 91.01% +54
iAnimBlend(float, float, unsigned short*, float*, unsigned int, xVec3*, xQuat*, xVec3*, xQuat*, xVec3*, xQuat*) 92.52% 100.00% +145

main/SB/Game/zTextBox

Section From To Bytes
📈 .text 24.74% 33.97% +471
Function From To Bytes
📈 ztextbox::render_all() 31.25% 77.98% +95
📈 ztextbox::update_all(xScene&, float) 0.00% 99.83% +23
📈 ztextbox::load(xBase&, xDynAsset&, unsigned long) 6.52% 73.18% +325
📈 ztextbox::set_text(unsigned int) 36.83% 38.10% +2
📈 @unnamed@zTextBox_cpp@::init_textbox(ztextbox&) 73.43% 77.35% +24

main/SB/Core/x/xCamera

Section From To Bytes
⚠️ .sdata2 10.00% 0.00% --15
📈 .text 20.30% 20.93% +78
Function From To Bytes
📈 xCameraRotate(xCamera*, const xVec3&, float, float, float, float) 65.13% 66.34% +5
⚠️ xCameraRotate(xCamera*, const xMat3x3&, float, float, float) 58.54% 50.30% --34
📈 xCameraLookYPR(xCamera*, unsigned int, float, float, float, float, float, float) 49.93% 52.81% +10
📈 xCameraMove(xCamera*, unsigned int, float, float, float, float, float, float) 43.60% 74.96% +158
⚠️ xCameraUpdate(xCamera*, float) 81.53% 29.20% --102
📈 xCameraReset(xCamera*, float, float, float) 27.48% 31.52% +40

@bluisblu bluisblu marked this pull request as ready for review November 11, 2025 14:05
@JoshSanch
Copy link
Collaborator

There's some regressions here that we will have to manage later on but I'm comfortable merging this for now and leaving that as a late-stage decomp task. Great work!

@JoshSanch JoshSanch merged commit a39c300 into bfbbdecomp:main Nov 13, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants