Wow, it takes a lot of ugly code to keep blinky happy...
Perform PortaPack initialization separately from and earlier than UI initialization. Track if PortaPack was detected, provide (mostly useless) pointer if so. Put "weak" declarations into respective headers. Moving #includes around.
I'll be adding some non-UI API functions to the top-level PortaPack structure.