Files
Momentum-Firmware/assets
WillyJL 3ef283824d FBT: Optimize icons blob -4KB DFU, scrub unused icons (#291)
* Unused icons to check later

* Exclude disabled icons from firmware

* Format

* Also report free flash in gh comment

* Fix free flash calc

* Fix?

* Fix??

* Split to next line

* Remove dead icons

* Some spring cleaning of icons cooker

* Improve unused icons script

* Disable icons that cant be used in asset packs

* These will need a workaround for external

* Revert "These will need a workaround for external"

This reverts commit fb23d97952.

* Here's the workaround: split assets lib

now there is "assets" and "fwassets"

firmware links with fwassets and includes all icons
however not all of them are exposed to api

if an app needs a firmware icon not in api, it can use fap_libs=["assets"]
this will link against this dummy assets lib
it only contains the icons that arent exposed to api

this way, an app using assets lib will still benefit from asset packs
but at same time, we can remove pointless icons from dfu blob

* Update changelog
2024-11-05 08:32:24 +01:00
..
2024-08-12 18:34:41 +02:00
2024-08-12 18:34:41 +02:00
2024-06-22 01:40:04 +03:00

Firmware Assets

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 allowed
  • VARIANT - 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

  • dolphin - Dolphin game assets sources. Goes to compiled and resources folders in build directory.
  • packs - Hot-swappable asset packs used system wide, both animations and icons. Compiled to .bm and .bmx, then put at SD/asset_packs
  • icons - Icons sources. Goes to compiled folder in build directory.
  • protobuf - Protobuf sources. Goes to compiled folder in build directory.
  • slideshow - One-time slideshows for desktop