xShadow progress - #778
Merged
Merged
Conversation
|
| 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 |
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.