The Android build needs one libultraship change that is not upstream yet:
gfx_check_image_signature() rejects Android arm64's tagged heap pointers, so
every asset reached through a heap-allocated path string was drawn as raw
texture data instead of being resolved. See the submodule commit for detail.
The fork exists only to carry that patch. Once it lands upstream, move the
url back to Kenix3/libultraship and bump the pin; do not let this fork grow
a second unrelated change in the meantime.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Updated various level headers (vcutm.h, wdw.h, wf.h, wmotr.h) to ensure macro object strings are aligned using ALIGN_ASSET(2).
- Modified texture headers (effect.h, skyboxes/bbh.h, bidw.h, bitfs.h, bits.h, ccm.h, cloud_floor.h, clouds.h, ssl.h, water.h, wdw.h, title_screen_bg.h) to apply ALIGN_ASSET(2) to string declarations for consistency and improved memory alignment.
- Refactored Game.cpp to clarify asset unpacking process on Android, removing unnecessary AndroidUtils.h and AndroidUtils.cpp files.
- Enhanced GameExtractor to support explicit asset and game path parameters for better compatibility with Android's asset management.
- Updated Rando module to resolve randomizer folder path on first use to avoid issues with global constructors during Android initialization.
- Improved error handling in asset loading within AssetArrayFactory to log missing assets more effectively.