* fbt, faploader: minimal app module implementation * faploader, libs: moved API hashtable core to flipper_application * example: compound api * lib: flipper_application: naming fixes, doxygen comments * fbt: changed `requires` manifest field behavior for app extensions * examples: refactored plugin apps; faploader: changed new API naming; fbt: changed PLUGIN app type meaning * loader: dropped support for debug apps & plugin menus * moved applications/plugins -> applications/external * Restored x bit on chiplist_convert.py * git: fixed free-dap submodule path * pvs: updated submodule paths * examples: example_advanced_plugins.c: removed potential memory leak on errors * examples: example_plugins: refined requires * fbt: not deploying app modules for debug/sample apps; extra validation for .PLUGIN-type apps * apps: removed cdefines for external apps * fbt: moved ext app path definition * fbt: reworked fap_dist handling; f18: synced api_symbols.csv * fbt: removed resources_paths for extapps * scripts: reworked storage * scripts: reworked runfap.py & selfupdate.py to use new api * wip: fal runner * fbt: moved file packaging into separate module * scripts: storage: fixes * scripts: storage: minor fixes for new api * fbt: changed internal artifact storage details for external apps * scripts: storage: additional fixes and better error reporting; examples: using APP_DATA_PATH() * fbt, scripts: reworked launch_app to deploy plugins; moved old runfap.py to distfap.py * fbt: extra check for plugins descriptors * fbt: additional checks in emitter * fbt: better info message on SDK rebuild * scripts: removed requirements.txt * loader: removed remnants of plugins & debug menus * post-review fixes
Requirements
- Python3
- Python3 packages: Pillow & heatshrink2
Compiling
./fbt icons proto dolphin_internal dolphin_blocking dolphin_ext resources
Asset naming rules
Images and Animations
NAME_VARIANT_SIZE
NAME- mandatory - Asset name in CamelCase. [A-Za-z0-9], special symbols not allowedVARIANT- optional - icon variant: can relate to state or rendering conditions. Examples: active, inactive, inverted.SIZE- mandatory - size in px. Example square 10, 20, 24, etc. Example rectangular: 10x8, 19x5, etc.
Image names will be automatically prefixed with I_, animation names with A_.
Icons and Animations will be gathered into icon.h and icon.c.
Dolphin and Games assets
Rules are same as for Images and Animations plus assets are grouped by level and level prepends NAME.
Good starting point: https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/AssetNaming/
Important notes
Don't include assets that you are not using, compiler is not going to strip unused assets.
Structure
compiled- Output folder made for compiled assets, after building project, inbuilddirectory.dolphin- Dolphin game assets sources. Goes tocompiledandresourcesfolders inbuilddirectory.icons- Icons sources. Goes tocompiledfolder inbuilddirectory.protobuf- Protobuf sources. Goes tocompiledfolder inbuilddirectory.resources- Assets that is going to be provisioned to SD card.slideshow- One-time slideshows for desktopunit_tests- Some pre-defined signals for testing purposes.