Skip to content

xShadow progress - #778

Merged
SquareMan merged 2 commits into
bfbbdecomp:mainfrom
daft7:xShadow
Aug 7, 2026
Merged

xShadow progress#778
SquareMan merged 2 commits into
bfbbdecomp:mainfrom
daft7:xShadow

Conversation

@daft7

@daft7 daft7 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Progress on some of the smaller functions. I have ~30% match on xShadowRenderWorld but scrapped as it wasn't very neat but left the includes for the future. Also Im2DRenderQuad looks like a heck of a meme.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

main/SB/Core/x/xFX

Section From To Bytes
⚠️ .text 29.81% 29.75% --15
Function From To Bytes
⚠️ xFXAuraRender() 100.00% 96.25% --15

main/SB/Core/x/xHudFontMeter

Section From To Bytes
⚠️ .text 52.89% 40.98% --166
Function From To Bytes
⚠️ xhud::font_meter_widget::font_meter_widget(const xhud::font_meter_asset&) 61.13% 0.00% --166

main/SB/Core/x/xShadow

Section From To Bytes
📈 .sbss 78.57% 86.67% +5
📈 .sdata 0.00% 66.67% +5
📈 .sdata2 29.17% 46.25% +20
📈 .text 11.44% 19.78% +1221
Function From To Bytes
📈 xShadowSetLight(xVec3*, xVec3*, float) 0.00% 99.97% +127
xShadowRender(xEnt*, float) 0.00% 100.00% +120
📈 Im2DRenderQuad(float, float, float, float, float, float, float) 0.00% 32.98% +67
📈 InvertRaster(RwCamera*) 0.00% 80.93% +352
📈 ShadowCameraUpdate(RwCamera*, void*, void (*)(void*), xVec3*, float, int) 0.00% 83.40% +346
📈 ShadowCameraSetSpherePersp(RwCamera*, RwV3d*, float) 0.00% 79.29% +206

main/SB/Game/zFX

Section From To Bytes
⚠️ .rodata 64.94% 62.91% --22
⚠️ .sdata2 90.91% 86.79% --4
⚠️ .text 58.56% 42.44% --2951
Function From To Bytes
⚠️ zFX_SpawnBubbleHit(const xVec3*, unsigned int, const xVec3*, const xVec3*, float) 99.49% 0.85% --465
⚠️ zFX_SpawnBubbleTrail(const xVec3*, unsigned int, const xVec3*, const xVec3*) 99.33% 0.00% --357
⚠️ zFX_SpawnBubbleTrailNoNegRandVel(const xVec3*, unsigned int, const xVec3*, const xVec3*) 99.26% 0.00% --321
⚠️ zFX_SpawnBubbleTrail(const xVec3*, const xVec3*, unsigned int, const xVec3*, const xVec3*) 99.43% 0.00% --421
⚠️ zFX_SpawnBubbleTrail(const xVec3*, const xVec3*, const xVec3*, const xVec3*, unsigned int, const xVec3*, const xVec3*, float) 99.58% 0.00% --565
⚠️ zFX_SpawnBubbleMenuTrail(const xVec3*, unsigned int, const xVec3*, const xVec3*) 99.30% 0.00% --341
⚠️ zFX_SpawnBubbleWall() 96.33% 0.00% --477

main/SB/Core/gc/iSnd

Section From To Bytes
⚠️ .sdata2 26.09% 18.18% --6
⚠️ .text 40.77% 32.50% --1176
Function From To Bytes
⚠️ iSndCalcVol(xSndVoiceInfo*, vinfo*) 100.00% 0.00% --148
⚠️ iSndPlay(xSndVoiceInfo*) 100.00% 0.00% --192
⚠️ iSndSetVol(unsigned int, float) 100.00% 0.00% --400
⚠️ iSndSuspend() 100.00% 0.00% --148
⚠️ iSndResume() 100.00% 0.00% --176
⚠️ iSndGetVol(unsigned int) 100.00% 0.00% --112

main/SB/Game/zNPCTypeAmbient

Section From To Bytes
⚠️ .data 98.46% 98.02% --4
⚠️ .text 65.91% 65.81% --7
Function From To Bytes
⚠️ zNPCAmbient::PhysicsFlags() const 100.00% 0.00% --8

main/SB/Game/zEntPlayerBungeeState

Section From To Bytes
⚠️ .text 47.65% 46.95% --176
Function From To Bytes
⚠️ bungee_state::reset() 100.00% 0.00% --96
⚠️ bungee_state::active() 100.00% 0.00% --28
⚠️ bungee_state::landed() 100.00% 0.00% --52

main/SB/Game/zNPCHazard

Section From To Bytes
⚠️ .text 51.68% 51.42% --88
Function From To Bytes
⚠️ UVAModelInfo::GetUV(RwTexCoords*&, int&, RpAtomic*) const 100.00% 0.00% --88

@SquareMan
SquareMan merged commit 24d388c into bfbbdecomp:main Aug 7, 2026
5 checks passed
@daft7
daft7 deleted the xShadow branch August 8, 2026 21:53
joeyballentine added a commit to joeyballentine/bfbb that referenced this pull request Aug 9, 2026
Upstream brought 6 commits (d226f0a..24d388c). Seven files conflicted;
each resolution was measured with solo.py-style per-unit builds
(scratchpad/candidate.py) rather than eyeballed, comparing exact-match
counts for our side vs theirs before choosing.

  xHudFontMeter.cpp  -> ours. Upstream's only hunk was adding `const` to
                       the font_meter_widget ctor param; our branch already
                       had it, plus the implemented body.
  xShadow.h          -> ours. Cosmetic only: upstream renamed param1/param2,
                       we had already renamed param3 to dst_cast as well.
  xShadow.cpp        -> ours. Measured: ours 46 exact / 55 symbols, theirs
                       28 exact / 42. Zero functions exact only in theirs,
                       so bfbbdecomp#778 adds nothing we do not already have.
  zNPCHazard.h       -> both. Upstream's `const` on GetUV merged cleanly;
                       kept our added CloneUV declaration alongside it.
  zNPCTypeRobot.cpp  -> ours. Upstream's only hunk was the float literal
                       0.01666667f -> 0.016666667f in zNPCSleepy_Timestep,
                       which we already have; we had relocated that function
                       for definition-order matching, which is what confused
                       the 3-way merge. The `extern char stringBase[]` on
                       their side is dead here - we replaced every
                       stringBase+0xNN use with real string literals.
  zEntTeleportBox.cpp-> ours. Dead tie at 32 exact each, no function exact
                       only on either side (both did _Init independently).
  zFX.cpp            -> ours (63 exact vs 53), then ported the one genuine
                       win from upstream, below.

zFX_SpawnBubbleTrail(const xVec3*, U32) passed &bubblehit_pos_rnd /
&bubblehit_vel_rnd - a copy-paste from zFX_SpawnBubbleHit directly above it.
Upstream has the correct &bubbletrail_* globals. Real bug, and it flips the
function: zFX 63 -> 64 exact, nothing lost.

Verified: ninja 531/531, main.dol sha1 306526d90b48e99894c3138f5fc8f2716d9fecf6
unchanged. 7385 -> 7388 matched (+3, all from upstream's bungee_state work in
bfbbdecomp#775), fuzzy 64.1447% -> 64.1519%, complete_units 223 unchanged, 0 units
regressed.
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