Skip to content

iMix: correct types#577

Merged
JoshSanch merged 1 commit intobfbbdecomp:mainfrom
escape209:imix-types
May 29, 2025
Merged

iMix: correct types#577
JoshSanch merged 1 commit intobfbbdecomp:mainfrom
escape209:imix-types

Conversation

@escape209
Copy link
Contributor

Fixes #572.

@github-actions
Copy link

⚠️ 🔥

+2662 bytes
🆗 Bot Rating: Amazing contribution, you are the decomp GOAT 🐐

Regressions: 128

⚠️ main/SB/Core/x/xFX - .rodata -9 bytes -> 27.07%
⚠️ main/SB/Core/x/xFX - .sdata2 -101 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - .text -2316 bytes -> 7.52%
⚠️ main/SB/Core/x/xFX - .text -52 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - .text -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - .data -296 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - .rodata -24 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - .sbss -8 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - .text -2994 bytes -> 0.00%
⚠️ main/SB/Game/zEntPlayer - .rodata -17 bytes -> 73.76%
⚠️ main/SB/Game/zEntPlayer - .text -6871 bytes -> 78.31%
⚠️ main/SB/Game/zNPCTypeCommon - .data -12 bytes -> 0.00%
⚠️ main/SB/Game/zNPCTypeCommon - .rodata -137 bytes -> 1.47%
⚠️ main/SB/Game/zNPCTypeCommon - .sdata2 -15 bytes -> 0.00%
⚠️ main/SB/Game/zNPCTypeVillager - .data -104 bytes -> 47.27%
⚠️ main/SB/Game/zNPCTypeVillager - .rodata -77 bytes -> 80.04%
⚠️ main/SB/Game/zNPCTypeVillager - .sdata2 -20 bytes -> 11.43%
⚠️ main/SB/Game/zNPCTypeVillager - .text -844 bytes -> 12.28%
⚠️ main/SB/Game/zNPCTypeBossSandy - .rodata -80 bytes -> 35.02%
⚠️ main/SB/Game/zNPCTypeBossSandy - .text -633 bytes -> 27.83%
⚠️ main/SB/Game/zNPCTypeBossPlankton - .rodata -2 bytes -> 77.56%
⚠️ main/rwsdk/plugin/collis/ctbsp - .text -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRingCreate(const xVec3*, const xFXRing*) -3 bytes -> 68.97%
⚠️ main/SB/Core/x/xFX - MaterialSetEnvMap(RpMaterial*, void*) -172 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - MaterialSetEnvMap2(RpMaterial*, void*) -128 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXBubbleRender(RpAtomic*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXShinyRender(RpAtomic*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - AtomicSetEnvMap(RpAtomic*, void*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXAtomicEnvMapSetup(RpAtomic*, unsigned int, float) -172 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - MaterialSetBumpMap(RpMaterial*, void*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - MaterialSetBumpEnvMap(RpMaterial*, RwTexture*, float, RwTexture*, float) -204 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUVSetTranslation(const xVec3*) -24 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUVSetScale(const xVec3*) -24 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUVSetAngle(float) -72 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUV2PSetTranslation(const xVec3*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUV2PSetScale(const xVec3*) -24 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUV2PSetAngle(float) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUV2PSetTexture(RwTexture*) -8 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUVAtomicSetup(RpAtomic*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXanimUVCreate() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRenderProximityFade(const xModelInstance&, float, float) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXFireworksInit(const char*, const char*, const char*, const char*, const char*) -200 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXFireworksLaunch(float, const xVec3*, float) -104 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXFireworksUpdate(float) -880 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXStreakInit() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXStreakUpdate(float) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXStreakRender() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXStreakStart(float, float, float, unsigned int, const iColor_tag*, const iColor_tag*, int) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXStreakStop(unsigned int) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXStreakUpdate(unsigned int, const xVec3*, const xVec3*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXShineInit() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXShineUpdate(float) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXShineRender() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXShineStart(const xVec3*, float, float, float, float, unsigned int, const iColor_tag*, const iColor_tag*, float, int) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::init(const char*, const char*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::set_default_config() -64 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::refresh_config() -96 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::set_curve(const xFXRibbon::curve_node*, unsigned long) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::insert(const xVec3&, const xVec3&, float, float, unsigned int) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::insert(const xVec3&, float, float, float, unsigned int) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::set_texture(RwTexture*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::set_texture(unsigned int) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbon::set_texture(const char*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbonSceneEnter() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbonUpdate(float) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXRibbonRender() -3 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXAuraInit() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXAuraAdd(void*, xVec3*, iColor_tag*, float) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXAuraUpdate(float) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXAuraRender() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXSceneSetup() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xFXSceneFinish() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - xParInterp::set(float, float, float, unsigned int) -52 bytes -> 0.00%
⚠️ main/SB/Core/x/xFX - tier_queue<xFXRibbon::joint_data>::clear() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerialStartup(int, st_SERIAL_PERCID_SIZE*) -112 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerialShutdown() -16 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerialTraverse(int (*)(unsigned int, xSerial*)) -124 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::xSerial() -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::~xSerial() -100 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::operator delete(void*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::setClient(unsigned int) -32 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write(char*, int, int) -96 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write_b1(int) -48 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write_b7(unsigned int) -48 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write(unsigned char) -48 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write(short) -48 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write(int) -48 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write(unsigned int) -48 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Write(float) -48 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read(char*, int, int) -240 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read_b1(int*) -40 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read_b7(unsigned int*) -40 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read(unsigned char*) -40 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read(short*) -40 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read(int*) -40 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read(unsigned int*) -40 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::Read(float*) -40 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::wrbit(int) -196 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::rdbit() -156 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial::prepare(unsigned int) -72 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerialWipeMainBuffer() -52 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_init_tables() -240 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_init_buffers(int, st_SERIAL_PERCID_SIZE*) -4 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_ord_compare(void*, void*) -28 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_ord_test(const void*, void*) -18 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - XSER_get_client(unsigned int) -108 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSerial_svgame_register(st_XSAVEGAME_DATA*, en_SAVEGAME_MODE) -216 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_svinfo_ver(void*, st_XSAVEGAME_DATA*, int*, int*) -20 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_svproc_ver(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_WRITECONTEXT*) -64 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_ldproc_ver(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_READCONTEXT*, unsigned int, int) -100 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_svinfo_clt(void*, st_XSAVEGAME_DATA*, int*, int*) -24 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_svproc_clt(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_WRITECONTEXT*) -88 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_ldproc_clt(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_READCONTEXT*, unsigned int, int) -92 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_svproc_fill(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_WRITECONTEXT*) -84 bytes -> 0.00%
⚠️ main/SB/Core/x/xserializer - xSER_xsgclt_ldproc_fill(void*, st_XSAVEGAME_DATA*, st_XSAVEGAME_READCONTEXT*, unsigned int, int) -88 bytes -> 0.00%
⚠️ main/SB/Game/zEntPlayer - zEntPlayer_BoulderVehicleAnimTable() -332 bytes -> 0.00%
⚠️ main/SB/Game/zEntPlayer - zEntPlayer_TreeDomeSBAnimTable() -6539 bytes -> 0.00%
⚠️ main/SB/Core/gc/iMix - __MIXGetVolume(int) -60 bytes -> 0.00%
⚠️ main/SB/Core/gc/iMix - __MIXSetPan(MIXChannel*) -140 bytes -> 0.00%
⚠️ main/SB/Core/gc/iMix - __MIXResetChannel(MIXChannel*) -120 bytes -> 0.00%
⚠️ main/SB/Core/gc/iMix - __MIXClampPan(int) -40 bytes -> 0.00%
⚠️ main/SB/Core/gc/ngcrad3d - Setup_surface_array() -72 bytes -> 0.00%
⚠️ main/SB/Game/zNPCTypeCommon - ZNPC_AnimTable_Common() -132 bytes -> 0.00%
⚠️ main/SB/Game/zNPCTypeCommon - ZNPC_AnimTable_LassoGuide() -288 bytes -> 0.00%
⚠️ main/SB/Game/zNPCTypeVillager - ZNPC_AnimTable_Villager(xAnimTable*) -844 bytes -> 0.00%
⚠️ main/SB/Game/zNPCTypeBossSandy - ZNPC_AnimTable_BossSandyHead() -301 bytes -> 39.73%
⚠️ main/SB/Game/zNPCTypeBossSandy - ZNPC_AnimTable_BossSandyScoreboard() -332 bytes -> 0.00%
⚠️ main/rwsdk/plugin/collis/ctbsp - _rpCollBSPTreeInit -4 bytes -> 0.00%

Progress: 23

📈 main/SB/Core/x/xAnim - .text +71 bytes -> 92.59%
📈 main/SB/Core/gc/iMix - .text +1835 bytes -> 43.59%
📈 main/SB/Core/gc/iTRC - .text +19 bytes -> 73.66%
📈 main/SB/Core/gc/ngcrad3d - .text +272 bytes -> 29.34%
📈 main/SB/Core/gc/ngcrad3d - .sdata2 +30 bytes -> 62.50%
main/SB/Core/gc/iMix - MIXInitChannel +1796 bytes -> 100.00%
📈 main/SB/Core/gc/ngcrad3d - Open_RAD_3D_image +232 bytes -> 92.06%
main/SB/Core/gc/iMix - MIXInit +100 bytes -> 100.00%
main/SB/Core/gc/iMix - MIXAdjustPan +92 bytes -> 100.00%
main/SB/Core/gc/iMix - MIXAdjustInput +48 bytes -> 100.00%
main/SB/Core/gc/iMix - MIXAdjustFader +48 bytes -> 100.00%
main/SB/Core/gc/ngcrad3d - Unlock_RAD_3D_image +48 bytes -> 100.00%
main/SB/Core/x/xAnim - std::atan2f(float, float) +36 bytes -> 100.00%
main/SB/Core/x/xAnim - std::floorf(float) +36 bytes -> 100.00%
main/SB/Core/gc/iMix - MIXReleaseChannel +28 bytes -> 100.00%
main/SB/Core/gc/iMix - MIXGetInput +28 bytes -> 100.00%
main/SB/Core/gc/iMix - MIXGetPan +28 bytes -> 100.00%
main/SB/Core/gc/iMix - MIXGetFader +28 bytes -> 100.00%
main/SB/Core/gc/ngcrad3d - GXColor4u8 +24 bytes -> 100.00%
main/SB/Core/gc/ngcrad3d - GXPosition3s16 +20 bytes -> 100.00%
main/SB/Core/gc/iTRC - GXPosition3s16 +20 bytes -> 100.00%
main/SB/Core/gc/ngcrad3d - GXTexCoord2f32 +16 bytes -> 100.00%
main/SB/Core/gc/ngcrad3d - GXEnd +4 bytes -> 100.00%

@github-actions
Copy link

🆗 ✅

+27 bytes
🆗 Bot Rating: A small contribution, every little bit helps!

No Regressions 🎉

Progress: 2

📈 main/SB/Core/gc/iMix - .text +27 bytes -> 8.47%
main/SB/Core/gc/iMix - __MIXSetPan(MIXChannel*) +27 bytes -> 100.00%

@escape209
Copy link
Contributor Author

Noticed Livewire made some other changes to iMix.c, will restore those before merge

@github-actions
Copy link

🆗 ✅

+27 bytes
🆗 Bot Rating: A small contribution, every little bit helps!

No Regressions 🎉

Progress: 2

📈 main/SB/Core/gc/iMix - .text +27 bytes -> 8.47%
main/SB/Core/gc/iMix - __MIXSetPan(MIXChannel*) +27 bytes -> 100.00%

@github-actions
Copy link

🆗 ✅

+27 bytes
🆗 Bot Rating: A small contribution, every little bit helps!

No Regressions 🎉

Progress: 2

📈 main/SB/Core/gc/iMix - .text +27 bytes -> 8.47%
main/SB/Core/gc/iMix - __MIXSetPan(MIXChannel*) +27 bytes -> 100.00%

@JoshSanch
Copy link
Collaborator

@escape209

Noticed Livewire made some other changes to iMix.c, will restore those before merge

Are all of these changes included in the current version of this PR? If so, I'm comfortable merging.

@escape209
Copy link
Contributor Author

Yeah they are. I just didn't realise before that Livewire had made changes to iMix.c before I pushed, so I just started fresh on it.

@JoshSanch JoshSanch merged commit 248e42f into bfbbdecomp:main May 29, 2025
5 checks passed
@escape209 escape209 deleted the imix-types branch July 22, 2025 17:15
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.

iMix Types Need to be Updated to Match Project Conventions

2 participants