Post by kirby on Sept 3, 2016 22:49:18 GMT

This is the patch the kicked modding into something that was worth looking at, and has already created quite a bit of discussion elsewhere on the boards. This thread aims to explain technically what it does, what it doesn't do, and help create a discussion on how to fix it. It can be found on GitHub (Gamecube, PC).

The underlined function call is the call that is made to register an item spawner when the level is being loaded. All this mod currently does is NOP out this call, so the item spawners are never made. The address of this call is 0x0050864E on PC and 0x800D3FE0 on Gamecube. Side-effects wise this seems fine, the only registers it touched were eax and ecx which are both cleared immediately after. Obviously the memory is different - there's no item spawners - but this is what we want. Currently, this disables most but not all items. Current exceptions seem to be:

The portals on Romeo Drive

Any items that spawn from a slam

Any items that come out of breakable scenery that is destroyed in a slam

This indicates that these aren't item spawners but something else. I've been through most of the other "SIGNAL_REGISTER_*" called at load time, including the obvious ones with the word 'item', and none of them get it. This leads me to think they're probably a property of the spitters (slam events) and whatever item objects are (might also be splitters). I think the direction to go in would be to look at these. Please share any thoughts or specific cases where items still spawn.