diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index 180ba891b7e54798f625c5749544904cf62bbf41..8b0edc942763f65e90484801e63bcf8806087240 100644
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index fcbb703871f41ea576b673382a23b7f295859f2e..b7f48e7a3e3602b78c43887a81fe5ccad2cdd9a9 100644
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index 8e1d22a5b38063733fc5aaa41ce2e6b85b9ea1b9..dfd03cb9a416f9a7660f773da6c2f4b96d35f299 100644
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 4158c146b59981b2bf4b3a917188aa9e4558e59d..4dda34df41dc73e0901a25f0c428edf2c3cb5bcc 100644
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index a020e95aaab3ee9d9e22f91def5772c34c46274f..276736be673440a38b104b719df8ce5e30a1f0f2 100644
Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/gradle.properties b/android/gradle.properties
index 735a31b222ae2d60727ba53bc31642c0b8a5c257..f07950de1a69180764367cd68362635b07cfbcce 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -2,5 +2,5 @@ org.gradle.jvmargs=-Xmx1536M
 android.enableR8=true
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=1.0.11
-app.versionCode=12
+app.versionName=1.0.12
+app.versionCode=13
diff --git a/fastlane/metadata/android/en-US/changelogs/0.txt b/fastlane/metadata/android/en-US/changelogs/0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1bdc5cab87c5631b216ee01fb1d70cdcec45109e
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/0.txt
@@ -0,0 +1 @@
+Initial commit
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/1.txt b/fastlane/metadata/android/en-US/changelogs/1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a3dc10591f062a0f23c402a7b171505202d53e72
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/1.txt
@@ -0,0 +1 @@
+Add initial application
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/11.txt b/fastlane/metadata/android/en-US/changelogs/11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d1140b3e3563c89ada1c0cd78e444666fe9e8a89
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/11.txt
@@ -0,0 +1 @@
+Clean some code
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/12.txt b/fastlane/metadata/android/en-US/changelogs/12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b044b15653291db559bceea45a6ce01d0705e5ea
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/12.txt
@@ -0,0 +1 @@
+Upgrade Flutter framework and dependencies
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/13.txt b/fastlane/metadata/android/en-US/changelogs/13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..99279280fee17072740cca18003cb09ccc4c2960
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/13.txt
@@ -0,0 +1 @@
+Improve app metadata, include fdroid metadata in repository
diff --git a/fastlane/metadata/android/en-US/changelogs/2.txt b/fastlane/metadata/android/en-US/changelogs/2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bcf2d053699369ae28d07d05b7ea9f7c77751b65
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/2.txt
@@ -0,0 +1 @@
+Fix application icon
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/3.txt b/fastlane/metadata/android/en-US/changelogs/3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..df93d4e041db503e8cb74538c2ba789e7be953ef
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/3.txt
@@ -0,0 +1 @@
+Remove "rate us" button
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/4.txt b/fastlane/metadata/android/en-US/changelogs/4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..43ffd53860248fb831c30bdadaca61949f53bcb7
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/4.txt
@@ -0,0 +1 @@
+Test get version code on build release
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/5.txt b/fastlane/metadata/android/en-US/changelogs/5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..369e4866c4e9748e5eba76f7a7154b8abf579b8f
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/5.txt
@@ -0,0 +1 @@
+Improve CI build tasks
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/6.txt b/fastlane/metadata/android/en-US/changelogs/6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e318c7f4dfbe532f083452f3fc696b4b1aa8e74d
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/6.txt
@@ -0,0 +1 @@
+Improve CI/CD, create tag on new release step
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/7.txt b/fastlane/metadata/android/en-US/changelogs/7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f854128dce0c85ba879510d36819a80e7672260a
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/7.txt
@@ -0,0 +1 @@
+Improve CI/CD, fix release, skip jobs
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/8.txt b/fastlane/metadata/android/en-US/changelogs/8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..53b9ded7b28803e4290110ab7ddabbf46b1895af
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/8.txt
@@ -0,0 +1 @@
+Add jabber notification on create tag
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/9.txt b/fastlane/metadata/android/en-US/changelogs/9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c83a007aefb20b0870fb79416af911d1579263c5
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/9.txt
@@ -0,0 +1 @@
+Add GPLv3 license file, upgrade flutter framework
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ffe96fa22adb4783eb1275c473fa62833cb30416
--- /dev/null
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -0,0 +1 @@
+Memory, simple and classic
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.png b/fastlane/metadata/android/en-US/images/featureGraphic.png
new file mode 100644
index 0000000000000000000000000000000000000000..d94cd4c48e61c0b2a131b828585ef141878cbe03
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/featureGraphic.png differ
diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9c7e46f93033a0fef31a98bdaf41a7bf4ab2b38
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ
diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ffe96fa22adb4783eb1275c473fa62833cb30416
--- /dev/null
+++ b/fastlane/metadata/android/en-US/short_description.txt
@@ -0,0 +1 @@
+Memory, simple and classic
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ffe96fa22adb4783eb1275c473fa62833cb30416
--- /dev/null
+++ b/fastlane/metadata/android/en-US/title.txt
@@ -0,0 +1 @@
+Memory, simple and classic
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/0.txt b/fastlane/metadata/android/fr-FR/changelogs/0.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0cc9d7a6fcd401fbc87f617a1e24fb5e70264201
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/0.txt
@@ -0,0 +1 @@
+Premier commit
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/1.txt b/fastlane/metadata/android/fr-FR/changelogs/1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..912e923f7e03144d7d961ca7998cd5aa019ff4b0
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/1.txt
@@ -0,0 +1 @@
+Création de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/11.txt b/fastlane/metadata/android/fr-FR/changelogs/11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..40bd48993773c37f07c0805d14f815c948d10c12
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/11.txt
@@ -0,0 +1 @@
+Nettoyage de code
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/12.txt b/fastlane/metadata/android/fr-FR/changelogs/12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5df598f5484db54a72c4c13715743b6587b5b4a1
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/12.txt
@@ -0,0 +1 @@
+Mise à jour du framework Flutter et de ses dépendances
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/13.txt b/fastlane/metadata/android/fr-FR/changelogs/13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..da1156453c759a53a1fccfcfa1f5a0c746f6c001
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/13.txt
@@ -0,0 +1 @@
+Ajout des métadata fdroid dans le dépôt
diff --git a/fastlane/metadata/android/fr-FR/changelogs/2.txt b/fastlane/metadata/android/fr-FR/changelogs/2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..bfaf22c1b0048d4382adcf34adf0d89efcabbd4e
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/2.txt
@@ -0,0 +1 @@
+Correction de l'icone de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/3.txt b/fastlane/metadata/android/fr-FR/changelogs/3.txt
new file mode 100644
index 0000000000000000000000000000000000000000..705a92287902599856a644c59d8d89b1767f5102
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/3.txt
@@ -0,0 +1 @@
+Suppression du bouton "rate us"
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/4.txt b/fastlane/metadata/android/fr-FR/changelogs/4.txt
new file mode 100644
index 0000000000000000000000000000000000000000..da7ab9b41eb74208f22201cbca852efc5afafdf3
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/4.txt
@@ -0,0 +1 @@
+Test de la version à la construction de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/5.txt b/fastlane/metadata/android/fr-FR/changelogs/5.txt
new file mode 100644
index 0000000000000000000000000000000000000000..126ee0b637a0b9bb23ce8be18cb5b2059dc93e07
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/5.txt
@@ -0,0 +1 @@
+Améliorations de la chaine de construction de l'application
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/6.txt b/fastlane/metadata/android/fr-FR/changelogs/6.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7f3899f095e2b25f455313a3878bcc426c1080ef
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/6.txt
@@ -0,0 +1 @@
+Améliorations de la chaine de construction de l'application, création d'un tag pour une nouvelle version
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/7.txt b/fastlane/metadata/android/fr-FR/changelogs/7.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a531e441e795874f166f3571b90ee65433948581
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/7.txt
@@ -0,0 +1 @@
+Améliorations de la chaine de construction de l'application, corrections sur la création de version
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/8.txt b/fastlane/metadata/android/fr-FR/changelogs/8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..25647138bfc1c4cf673d3edba8dbd92473d3150b
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/8.txt
@@ -0,0 +1 @@
+Ajout d'une notification Jabber à la création d'une nouvelle version
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/changelogs/9.txt b/fastlane/metadata/android/fr-FR/changelogs/9.txt
new file mode 100644
index 0000000000000000000000000000000000000000..70e554ebf602ae6f81b5f7b22000f57a993ee86b
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/9.txt
@@ -0,0 +1 @@
+Ajout du fichier de licence GPLv3, mise à jour du framework Flutter
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b0414570078754ae649d41df2804c58cf1a35fa2
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/full_description.txt
@@ -0,0 +1 @@
+Memory, simple et classique
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/short_description.txt b/fastlane/metadata/android/fr-FR/short_description.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b0414570078754ae649d41df2804c58cf1a35fa2
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/short_description.txt
@@ -0,0 +1 @@
+Memory, simple et classique
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/title.txt b/fastlane/metadata/android/fr-FR/title.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b0414570078754ae649d41df2804c58cf1a35fa2
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/title.txt
@@ -0,0 +1 @@
+Memory, simple et classique
\ No newline at end of file
diff --git a/fdroid_metadata.yml b/fdroid_metadata.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0efd7a1a8bede1f9cb26155b71eb70f2fd9e9fbc
--- /dev/null
+++ b/fdroid_metadata.yml
@@ -0,0 +1,17 @@
+AuthorName:   'Benoît Harrault'
+Categories:
+  - Games
+Name:         Memory for kids
+AutoName:     Memory
+License:      GPL-3.0-only
+WebSite:      'https://git.harrault.fr/android/memory'
+SourceCode:   https://git.harrault.fr/android/memory
+IssueTracker: https://git.harrault.fr/android/memory/issues
+Changelog:    https://git.harrault.fr/android/memory/-/tags
+Summary:      ''
+
+Description:  |-
+    Memory, simple and classic.
+
+RepoType:     git
+Repo:         'https://git.harrault.fr/android/memory.git'
diff --git a/icons/build_icons.sh b/icons/build_application_icons.sh
similarity index 56%
rename from icons/build_icons.sh
rename to icons/build_application_icons.sh
index 02a6d5dd387a00352c0a2f9c1a9409b707a5875b..7d5ebb61276b80b4034edfc0f4703c7e60c4f5fe 100755
--- a/icons/build_icons.sh
+++ b/icons/build_application_icons.sh
@@ -4,14 +4,23 @@
 command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
 command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
 command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
-command -v convert >/dev/null 2>&1 || { echo >&2 "I require convert (imagemagick) but it's not installed. Aborting."; exit 1; }
 
 CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
 BASE_DIR="$(dirname "${CURRENT_DIR}")"
 
-SOURCE="${CURRENT_DIR}/memory.svg"
+SOURCE="${CURRENT_DIR}/icon.svg"
+SOURCE_FASTLANE="${CURRENT_DIR}/featureGraphic.svg"
+
 OPTIPNG_OPTIONS="-preserve -quiet -o7"
 
+if [ ! -f "${SOURCE}" ]; then
+  echo "Missing file: ${SOURCE}"
+fi
+
+if [ ! -f "${SOURCE_FASTLANE}" ]; then
+  echo "Missing file: ${SOURCE_FASTLANE}"
+fi
+
 # optimize svg
 cp ${SOURCE} ${SOURCE}.tmp
 scour \
@@ -20,6 +29,7 @@ scour \
     --enable-viewboxing \
     --enable-comment-stripping \
     --nindent=4 \
+    --quiet \
     -i ${SOURCE}.tmp \
     -o ${SOURCE}
 rm ${SOURCE}.tmp
@@ -29,6 +39,8 @@ function build_icon() {
   ICON_SIZE="$1"
   TARGET="$2"
 
+  echo "Building ${TARGET}"
+
   TARGET_PNG="${TARGET}.png"
 
   inkscape \
@@ -40,9 +52,42 @@ function build_icon() {
   optipng ${OPTIPNG_OPTIONS} ${TARGET_PNG}
 }
 
+# build fastlane image
+function build_fastlane_image() {
+  WIDTH="$1"
+  HEIGHT="$2"
+  TARGET="$3"
+
+  echo "Building ${TARGET}"
+
+  cp ${SOURCE_FASTLANE} ${SOURCE_FASTLANE}.tmp
+  scour \
+      --remove-descriptive-elements \
+      --enable-id-stripping \
+      --enable-viewboxing \
+      --enable-comment-stripping \
+      --nindent=4 \
+      --quiet \
+      -i ${SOURCE_FASTLANE}.tmp \
+      -o ${SOURCE_FASTLANE}
+  rm ${SOURCE_FASTLANE}.tmp
+
+  TARGET_PNG="${TARGET}.png"
+
+  inkscape \
+      --export-width=${WIDTH} \
+      --export-height=${HEIGHT} \
+      --export-filename=${TARGET_PNG} \
+      ${SOURCE_FASTLANE}
+
+  optipng ${OPTIPNG_OPTIONS} ${TARGET_PNG}
+}
 
 build_icon  72 ${BASE_DIR}/android/app/src/main/res/mipmap-hdpi/ic_launcher
 build_icon  48 ${BASE_DIR}/android/app/src/main/res/mipmap-mdpi/ic_launcher
 build_icon  96 ${BASE_DIR}/android/app/src/main/res/mipmap-xhdpi/ic_launcher
 build_icon 144 ${BASE_DIR}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher
 build_icon 192 ${BASE_DIR}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher
+build_icon 512 ${BASE_DIR}/fastlane/metadata/android/en-US/images/icon
+
+build_fastlane_image 1024 500 ${BASE_DIR}/fastlane/metadata/android/en-US/images/featureGraphic
diff --git a/icons/build_game_icons.sh b/icons/build_game_icons.sh
new file mode 100755
index 0000000000000000000000000000000000000000..218080d1eb12952690ba1e182a468f6e3cf03d65
--- /dev/null
+++ b/icons/build_game_icons.sh
@@ -0,0 +1,98 @@
+#! /bin/bash
+
+# Check dependencies
+command -v inkscape >/dev/null 2>&1 || { echo >&2 "I require inkscape but it's not installed. Aborting."; exit 1; }
+command -v scour >/dev/null 2>&1 || { echo >&2 "I require scour but it's not installed. Aborting."; exit 1; }
+command -v optipng >/dev/null 2>&1 || { echo >&2 "I require optipng but it's not installed. Aborting."; exit 1; }
+
+CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
+BASE_DIR="$(dirname "${CURRENT_DIR}")"
+ASSETS_DIR="${BASE_DIR}/assets"
+
+OPTIPNG_OPTIONS="-preserve -quiet -o7"
+ICON_SIZE=192
+
+#######################################################
+
+# Game images
+AVAILABLE_GAME_IMAGES="
+"
+
+# Settings images
+AVAILABLES_GAME_SETTINGS="
+"
+
+#######################################################
+
+# optimize svg
+function optimize_svg() {
+  SOURCE="$1"
+
+  cp ${SOURCE} ${SOURCE}.tmp
+  scour \
+      --remove-descriptive-elements \
+      --enable-id-stripping \
+      --enable-viewboxing \
+      --enable-comment-stripping \
+      --nindent=4 \
+      --quiet \
+      -i ${SOURCE}.tmp \
+      -o ${SOURCE}
+  rm ${SOURCE}.tmp
+}
+
+# build icons
+function build_icon() {
+  SOURCE="$1"
+  TARGET="$2"
+
+  echo "Building ${TARGET}"
+
+  if [ ! -f "${SOURCE}" ]; then
+    echo "Missing file: ${SOURCE}"
+    exit 1
+  fi
+
+  optimize_svg "${SOURCE}"
+
+  inkscape \
+      --export-width=${ICON_SIZE} \
+      --export-height=${ICON_SIZE} \
+      --export-filename=${TARGET} \
+      ${SOURCE}
+
+  optipng ${OPTIPNG_OPTIONS} ${TARGET}
+}
+
+function build_settings_icons() {
+  INPUT_STRING="$1"
+
+  SETTING_NAME="$(echo "${INPUT_STRING}" | cut -d":" -f1)"
+  SETTING_VALUES="$(echo "${INPUT_STRING}" | cut -d":" -f2 | tr "," " ")"
+
+  for SETTING_VALUE in ${SETTING_VALUES}
+  do
+    SETTING_CODE="${SETTING_NAME}_${SETTING_VALUE}"
+    build_icon ${CURRENT_DIR}/${SETTING_CODE}.svg ${ASSETS_DIR}/icons/${SETTING_CODE}.png
+  done
+}
+
+#######################################################
+
+# Create output folders
+mkdir -p ${ASSETS_DIR}/icons
+
+# Delete existing generated images
+find ${ASSETS_DIR}/icons -type f -name "*.png" -delete
+
+# build game images
+for GAME_IMAGE in ${AVAILABLE_GAME_IMAGES}
+do
+  build_icon ${CURRENT_DIR}/${GAME_IMAGE}.svg ${ASSETS_DIR}/icons/${GAME_IMAGE}.png
+done
+
+# build settings images
+for GAME_SETTING in ${AVAILABLES_GAME_SETTINGS}
+do
+  build_settings_icons "${GAME_SETTING}"
+done
diff --git a/icons/featureGraphic.svg b/icons/featureGraphic.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2033f317c082bce27115e88ca068d358b08318d0
--- /dev/null
+++ b/icons/featureGraphic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 1024 500" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect width="1024" height="500" rx="0" ry="0" fill="#977cff"/></svg>
diff --git a/icons/memory.svg b/icons/icon.svg
similarity index 100%
rename from icons/memory.svg
rename to icons/icon.svg