diff --git a/Dockerfile b/Dockerfile
index d59ec465401..917a09aff01 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -10,7 +10,7 @@ ENV RECALBOX_CCACHE_DIR ''
# needed ? xterm
RUN apt-get update -y && \
apt-get -y install build-essential git libncurses5-dev qt5-default qttools5-dev-tools \
-mercurial libdbus-glib-1-dev texinfo zip openssh-client \
+mercurial libdbus-glib-1-dev texinfo zip openssh-client libxml2-utils \
software-properties-common wget cpio bc locales rsync imagemagick \
nano vim automake mtools dosfstools subversion openjdk-8-jdk libssl-dev && \
rm -rf /var/lib/apt/lists/*
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/amstradcpc/_lisezmoi.txt b/board/recalbox/fsoverlay/recalbox/share_init/roms/amstradcpc/_lisezmoi.txt
deleted file mode 100644
index 336e0e7ac77..00000000000
--- a/board/recalbox/fsoverlay/recalbox/share_init/roms/amstradcpc/_lisezmoi.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-## RECALBOX - SYSTEM AMSTRAD CPC ##
-
-Placez ici vos roms amstrad cpc.
-
-Les roms doivent avoir l'extension ".dsk/.zip"
-
-Pour activer le support du gamepad, veuillez entrer dans le menu Retroarch avec "Hotkey+B", puis modifiez l'option :
-"Quick Menu/Core Input Options/User 1 Device type : Retropad" en "Amstrad Joystick"
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/amstradcpc/_readme.txt b/board/recalbox/fsoverlay/recalbox/share_init/roms/amstradcpc/_readme.txt
deleted file mode 100644
index f996e5da085..00000000000
--- a/board/recalbox/fsoverlay/recalbox/share_init/roms/amstradcpc/_readme.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-## RECALBOX - SYSTEM Amstrad CPC ##
-
-Put your amstrad cpc roms in this directory.
-
-Rom files must have a ".dsk/.zip" extension.
-
-You can download amstrad cpc roms on planetemu :
-http://www.planetemu.net/roms/amstrad-cpc-games-dsk
-
-To enable your gamepad support, go in retroarch menu with "Hotkey+B", then switch this option :
-"Quick Menu/Core Input Options/User 1 Device type : Retropad" with "Amstrad Joystick"
-
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/atari2600/_lisezmoi.txt b/board/recalbox/fsoverlay/recalbox/share_init/roms/atari2600/_lisezmoi.txt
deleted file mode 100644
index f1aa5179832..00000000000
--- a/board/recalbox/fsoverlay/recalbox/share_init/roms/atari2600/_lisezmoi.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-## RECALBOX - SYSTEM ATARI2600 ##
-
-Placez ici vos roms atari 2600.
-
-Les roms doivent avoir l'extension ".a26/.bin/.zip"
-
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/atari2600/_readme.txt b/board/recalbox/fsoverlay/recalbox/share_init/roms/atari2600/_readme.txt
deleted file mode 100644
index 7108530663f..00000000000
--- a/board/recalbox/fsoverlay/recalbox/share_init/roms/atari2600/_readme.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-## RECALBOX - SYSTEM Atari 2600 ##
-
-Put your atari 2600 roms in this directory.
-
-Rom files must have a ".a26/.bin/.zip" extension.
-
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_systems.cfg b/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_systems.cfg
deleted file mode 100755
index 34df8c3c7ae..00000000000
--- a/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_systems.cfg
+++ /dev/null
@@ -1,859 +0,0 @@
-
-
-
- Super Nintendo Entertainment System
- snes
- /recalbox/share/roms/snes/
- .smc .sfc .SMC .SFC .zip .ZIP .mgd .MGD
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- snes
- snes
-
-
-
- catsfc
- pocketsnes
- snes9x_next
- snes9x
-
-
-
-
-
- Commodore c64
- c64
- /recalbox/share/roms/c64/
- .d64 .D64 .t64 .T64 .x64 .X64
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- c64
- c64
-
-
-
- x64
-
-
-
-
-
- Nintendo Entertainment System
- nes
- /recalbox/share/roms/nes
- .nes .NES .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- nes
- nes
-
-
-
- fceumm
- fceunext
- nestopia
- quicknes
-
-
-
-
-
- Nintendo 64
- n64
- /recalbox/share/roms/n64
- .n64 .N64 .z64 .Z64 .v64 .V64
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- n64
- n64
-
-
-
- gliden64
- n64
- rice
- glide64mk2
-
-
-
-
- glupen64
-
-
-
-
-
- Game Boy Advance
- gba
- /recalbox/share/roms/gba
- .gba .GBA .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- gba
- gba
-
-
-
- gpsp
- mgba
- meteor
-
-
-
-
-
- Game Boy Color
- gbc
- /recalbox/share/roms/gbc
- .gb .GB .gbc .GBC .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- gbc
- gbc
-
-
-
- gambatte
- tgbdual
-
-
-
-
-
- Game Boy
- gb
- /recalbox/share/roms/gb
- .gb .GB .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- gb
- gb
-
-
-
- gambatte
- tgbdual
-
-
-
-
-
- Family Computer Disk System
- fds
- /recalbox/share/roms/fds
- .fds .FDS .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- fds
- fds
-
-
-
- fceumm
- nestopia
-
-
-
-
-
- Virtual Boy
- virtualboy
- /recalbox/share/roms/virtualboy/
- .zip .ZIP .vb .VB
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- virtualboy
- virtualboy
-
-
-
- mednafen_vb
-
-
-
-
-
- Game and Watch
- gw
- /recalbox/share/roms/gw/
- .zip .ZIP .mgw .MGW
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- gw
- gw
-
-
-
- vb
-
-
-
-
-
- Dreamcast
- dreamcast
- /recalbox/share/roms/dreamcast
- .gdi .GDI .cdi .CDI .chd .CHD
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE%
- dreamcast
- dreamcast
-
-
-
-
-
-
- Sega Megadrive
- megadrive
- /recalbox/share/roms/megadrive
- .md .MD .bin .BIN .zip .ZIP .gen .GEN .smd .SMD
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- genesis, megadrive
- megadrive
-
-
-
- genesisplusgx
- picodrive
-
-
-
-
-
- Sega CD
- segacd
- /recalbox/share/roms/segacd
- .cue .CUE .iso .ISO
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- segacd
- segacd
-
-
-
- genesisplusgx
- picodrive
-
-
-
-
-
- Sega 32x
- sega32x
- /recalbox/share/roms/sega32x
- .32x .32X .smd .SMD .bin .BIN .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- sega32x
- sega32x
-
-
-
- picodrive
-
-
-
-
-
- Sega Master System / Mark III
- mastersystem
- /recalbox/share/roms/mastersystem
- .sms .SMS .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- mastersystem
- mastersystem
-
-
-
- genesisplusgx
- picodrive
-
-
-
-
-
- Sega Game Gear
- gamegear
- /recalbox/share/roms/gamegear
- .gg .GG .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- gamegear
- gamegear
-
-
-
- genesisplusgx
- picodrive
-
-
-
-
-
- Sega SG1000
- sg1000
- /recalbox/share/roms/sg1000
- .sg .SG .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- sg1000
- sg1000
-
-
-
- genesisplusgx
- picodrive
-
-
-
-
-
- Sony Playstation Portable
- psp
- /recalbox/share/roms/psp
- .iso .ISO .cso .CSO
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- psp
- psp
-
-
-
- ppsspp
-
-
-
-
-
- Sony Playstation 1
- psx
- /recalbox/share/roms/psx
- .img .IMG .pbp .PBP .cue .CUE .iso .ISO .ccd .CCD .cbn .CBN
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
-
- psx
- psx
-
-
-
- pcsx_rearmed
-
-
-
-
-
- PC Engine
- pcengine
- /recalbox/share/roms/pcengine
- .pce .PCE .cue .CUE .sgx .SGX .zip .ZIP .ccd .CCD
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- pcengine
- pcengine
-
-
-
- mednafen_supergrafx
- pce
-
-
-
-
-
- PC Engine CD
- pcenginecd
- /recalbox/share/roms/pcenginecd
- .pce .PCE .cue .CUE .sgx .SGX .zip .ZIP .ccd .CCD
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- pcenginecd
- pcenginecd
-
-
-
- mednafen_supergrafx
- pce
-
-
-
-
-
- Supergrafx
- supergrafx
- /recalbox/share/roms/supergrafx
- .pce .PCE .cue .CUE .sgx .SGX .zip .ZIP .ccd .CCD
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- supergrafx
- supergrafx
-
-
-
- mednafen_supergrafx
- pce
-
-
-
-
-
- ScummVM
- scummvm
- /recalbox/share/roms/scummvm
- .scummvm
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- pc
- scummvm
-
-
- Dos (x86)
- dos
- /recalbox/share/roms/dos
- .pc .PC .dos .DOS
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- pc
- pc
-
-
- FBA
- fba
- /recalbox/share/roms/fba
- .zip .ZIP .fba .FBA
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- arcade
- fba
-
-
-
- fba
-
-
-
-
-
-
-
- FBA LIBRETRO
- fba_libretro
- /recalbox/share/roms/fba_libretro
- .zip .ZIP .fba .FBA .iso .ISO .7z .7Z
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- arcade
- fba_libretro
-
-
-
- fba
-
-
-
-
-
- Mame
- mame
- /recalbox/share/roms/mame
- .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- arcade
- mame
-
-
-
- imame4all
- mame078
-
-
-
-
- advancemame
-
-
-
-
-
- Neo-Geo
- neogeo
- /recalbox/share/roms/neogeo
- .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- neogeo
- neogeo
-
-
-
- imame4all
- mame078
- fba
-
-
-
-
-
-
-
- ColecoVision
- colecovision
- /recalbox/share/roms/colecovision
- .col .COL .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- colecovision
- colecovision
-
-
-
- bluemsx
-
-
-
-
-
- Atari 2600
- atari2600
- /recalbox/share/roms/atari2600
- .a26 .A26 .bin .BIN .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- atari2600
- atari2600
-
-
-
- stella
-
-
-
-
-
- Atari 7800
- atari7800
- /recalbox/share/roms/atari7800
- .a78 .A78 .bin .BIN .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- atari7800
- atari7800
-
-
-
- prosystem
-
-
-
-
-
- Lynx
- lynx
- /recalbox/share/roms/lynx/
- .zip .ZIP .lnx .LNX
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- atarilynx
- lynx
-
-
-
- mednafen_lynx
-
-
-
-
-
- Neo-Geo Pocket
- ngp
- /recalbox/share/roms/ngp/
- .zip .ZIP .ngc .NGC .ngp .NGP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- ngp
- ngp
-
-
-
- mednafen_ngp
-
-
-
-
-
- Neo-Geo Pocket Color
- ngpc
- /recalbox/share/roms/ngpc/
- .zip .ZIP .ngc .NGC .ngp .NGP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- ngpc
- ngpc
-
-
-
- mednafen_ngp
-
-
-
-
-
- WonderSwan
- wswan
- /recalbox/share/roms/wswan
- .ws .WS .wsc .WSC .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- wonderswan
- wonderswan
-
-
-
- mednafen_wswan
-
-
-
-
-
- WonderSwan Color
- wswanc
- /recalbox/share/roms/wswanc
- .ws .WS .wsc .WSC .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- wonderswancolor
- wonderswancolor
-
-
-
- mednafen_wswan
-
-
-
-
-
- PrBoom
- prboom
- /recalbox/share/roms/prboom/
- .wad .WAD
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- prboom
- prboom
-
-
-
- prboom
-
-
-
-
-
- Vectrex
- vectrex
- /recalbox/share/roms/vectrex/
- .zip .ZIP .vec .VEC
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- vectrex
- vectrex
-
-
-
- vecx
-
-
-
-
-
- lutro
- lutro
- /recalbox/share/roms/lutro
- .zip .ZIP .lua .LUA .lutro .LUTRO
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- lutro
- lutro
-
-
-
- lutro
-
-
-
-
-
- Cave Story
- cavestory
- /recalbox/share/roms/cavestory
- .exe .EXE
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- cavestory
- cavestory
-
-
-
- nxengine
-
-
-
-
-
- Atarist
- atarist
- /recalbox/share/roms/atarist
- .st .ST .stx .STX .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- atarist
- atarist
-
-
-
- hatari
-
-
-
-
-
- AmstradCPC
- amstradcpc
- /recalbox/share/roms/amstradcpc
- .dsk .DSK .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- amstradcpc
- amstradcpc
-
-
-
- cap32
-
-
-
-
-
- MSX
- msx
- /recalbox/share/roms/msx
- .mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- msx
- msx
-
-
-
- fmsx
- bluemsx
-
-
-
-
-
- MSX1
- msx1
- /recalbox/share/roms/msx1
- .mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- msx
- msx1
-
-
-
- fmsx
- bluemsx
-
-
-
-
-
- MSX2
- msx2
- /recalbox/share/roms/msx2
- .mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- msx
- msx2
-
-
-
- fmsx
- bluemsx
-
-
-
-
-
- Odyssey2
- odyssey2
- /recalbox/share/roms/o2em
- .bin .BIN .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- odyssey2
- odyssey2
-
-
-
- o2em
-
-
-
-
-
- ZX81
- zx81
- /recalbox/share/roms/zx81
- .tzx .TZX .p .P .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- zx81
- zx81
-
-
-
- 81
-
-
-
-
-
- ZXSpectrum
- zxspectrum
- /recalbox/share/roms/zxspectrum
- .tzx .TZX .tap .TAP .z80 .ZX80 .rzx .RZX .scl .SCL .trd .TRD .zip .ZIP
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- zxspectrum
- zxspectrum
-
-
-
- fuse
-
-
-
-
-
- Moonlight
- moonlight
- /recalbox/share/roms/moonlight
- .moonlight .MOONLIGHT
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- moonlight
- moonlight
-
-
-
-
-
-
- Apple II
- apple2
- /recalbox/share/roms/apple2
- .nib .NIB .do .DO .po .PO .dsk .DSK
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- apple2
- apple2
-
-
- GameCube
- gamecube
- /recalbox/share/roms/gamecube/
- .iso .ISO .gc .GC .gcz .GCZ
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- gamecube
- gc
-
-
- Wii
- wii
- /recalbox/share/roms/wii/
- .iso .ISO .wbfs .WBFS
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- wii
- wii
-
-
- Screenshots
- imageviewer
- /recalbox/share/screenshots
- .jpg .JPG .png .PNG
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- ignore
- imageviewer
-
-
-
- imageviewer
-
-
-
-
-
- Favorites
- favorites
- python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
- favorites
-
-
diff --git a/package/Config.in b/package/Config.in
index 89bb6df5d9e..d1688da2229 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -189,7 +189,7 @@ menu "Recalbox"
source "package/recalbox-system/Config.in"
source "package/recalbox-themes/Config.in"
source "package/recalbox-configgen/Config.in"
- source "package/moonlight-embedded/Config.in"
+ source "package/recalbox-romfs/Config.in"
source "package/recalbox-manager/Config.in"
source "package/recalbox-api/Config.in"
source "package/recalbox-initramfs/Config.in"
@@ -235,6 +235,7 @@ menu "Emulators"
source "package/dosbox/Config.in"
source "package/vice/Config.in"
source "package/reicast/Config.in"
+ source "package/moonlight-embedded/Config.in"
source "package/dolphin-emu/Config.in"
if BR2_PACKAGE_RETROARCH
diff --git a/package/advancemame/Config.in b/package/advancemame/Config.in
index ef826d8c93b..898ffd29191 100644
--- a/package/advancemame/Config.in
+++ b/package/advancemame/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_ADVANCEMAME
bool "advancemame"
+ select BR2_PACKAGE_RECALBOX_ROMFS_MAME
help
A MAME 0.106-based emulator
http://www.advancemame.it
diff --git a/package/dolphin-emu/Config.in b/package/dolphin-emu/Config.in
index 9efb1a01bfe..01dc1c19b0c 100644
--- a/package/dolphin-emu/Config.in
+++ b/package/dolphin-emu/Config.in
@@ -11,5 +11,7 @@ config BR2_PACKAGE_DOLPHIN_EMU
select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_SFML
select BR2_PACKAGE_BLUEZ5_UTILS
+ select BR2_PACKAGE_RECALBOX_ROMFS_GAMECUBE
+ select BR2_PACKAGE_RECALBOX_ROMFS_WII
help
A gamecube/wii emulator
diff --git a/package/dosbox/Config.in b/package/dosbox/Config.in
index 0a8026fc5af..e660850feb1 100644
--- a/package/dosbox/Config.in
+++ b/package/dosbox/Config.in
@@ -7,6 +7,7 @@ config BR2_PACKAGE_DOSBOX
select BR2_PACKAGE_LIBOGG
select BR2_PACKAGE_LIBVORBIS
select BR2_PACKAGE_SDL_SOUND
+ select BR2_PACKAGE_RECALBOX_ROMFS_DOS
help
DOSBox is a DOS-emulator that uses the SDL-library
diff --git a/package/libretro-81/Config.in b/package/libretro-81/Config.in
index bbe9b284968..1755b6197a6 100644
--- a/package/libretro-81/Config.in
+++ b/package/libretro-81/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_81
bool "libretro-81"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_ZX81
help
A libretro EightyOne ZX81 emulator core.
diff --git a/package/libretro-beetle-lynx/Config.in b/package/libretro-beetle-lynx/Config.in
index e0e54fb2f83..b429592a9a4 100644
--- a/package/libretro-beetle-lynx/Config.in
+++ b/package/libretro-beetle-lynx/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_BEETLE_LYNX
bool "libretro-beetle-lynx"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_LYNX
help
A libretro Lynx emulator core for ARM.
diff --git a/package/libretro-beetle-ngp/Config.in b/package/libretro-beetle-ngp/Config.in
index d76a0f47fce..614d40aed98 100644
--- a/package/libretro-beetle-ngp/Config.in
+++ b/package/libretro-beetle-ngp/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_BEETLE_NGP
bool "libretro-beetle-ngp"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_NGP
+ select BR2_PACKAGE_RECALBOX_ROMFS_NGPC
help
A libretro NGP emulator core for ARM.
diff --git a/package/libretro-beetle-pce/Config.in b/package/libretro-beetle-pce/Config.in
index 99a280f5fc3..68266dd2fb3 100644
--- a/package/libretro-beetle-pce/Config.in
+++ b/package/libretro-beetle-pce/Config.in
@@ -2,6 +2,9 @@ config BR2_PACKAGE_LIBRETRO_BEETLE_PCE
bool "libretro-beetle-pce"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_PCENGINE
+ select BR2_PACKAGE_RECALBOX_ROMFS_PCENGINECD
+ select BR2_PACKAGE_RECALBOX_ROMFS_SUPERGRAFX
help
A libretro PCE emulator core for ARM.
diff --git a/package/libretro-beetle-supergrafx/Config.in b/package/libretro-beetle-supergrafx/Config.in
index bda19bcd6ed..2f9fe2b897b 100644
--- a/package/libretro-beetle-supergrafx/Config.in
+++ b/package/libretro-beetle-supergrafx/Config.in
@@ -2,6 +2,9 @@ config BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX
bool "libretro-beetle-supergrafx"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_PCENGINE
+ select BR2_PACKAGE_RECALBOX_ROMFS_PCENGINECD
+ select BR2_PACKAGE_RECALBOX_ROMFS_SUPERGRAFX
help
A libretro Supergrafx emulator core for ARM.
diff --git a/package/libretro-beetle-vb/Config.in b/package/libretro-beetle-vb/Config.in
index 6d324aa1a84..f3ffb38e126 100644
--- a/package/libretro-beetle-vb/Config.in
+++ b/package/libretro-beetle-vb/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_BEETLE_VB
bool "libretro-beetle-vb"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_VIRTUALBOY
help
A libretro VIRTUAL BOY emulator core for ARM.
diff --git a/package/libretro-beetle-wswan/Config.in b/package/libretro-beetle-wswan/Config.in
index 09880de2d24..38837b4a424 100644
--- a/package/libretro-beetle-wswan/Config.in
+++ b/package/libretro-beetle-wswan/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN
bool "libretro-beetle-wswan"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_WSWAN
+ select BR2_PACKAGE_RECALBOX_ROMFS_WSWANC
help
A libretro Wonderswan emulator core for ARM.
diff --git a/package/libretro-bluemsx/Config.in b/package/libretro-bluemsx/Config.in
index f91652f0e97..23564948c84 100644
--- a/package/libretro-bluemsx/Config.in
+++ b/package/libretro-bluemsx/Config.in
@@ -2,6 +2,10 @@ config BR2_PACKAGE_LIBRETRO_BLUEMSX
bool "libretro-bluemsx"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_COLECOVISION
+ select BR2_PACKAGE_RECALBOX_ROMFS_MSX
+ select BR2_PACKAGE_RECALBOX_ROMFS_MSX1
+ select BR2_PACKAGE_RECALBOX_ROMFS_MSX2
help
A libretro MSX / ColecoVision emulator core for ARM.
diff --git a/package/libretro-cap32/Config.in b/package/libretro-cap32/Config.in
index eef6039fdee..8d9319bf17e 100644
--- a/package/libretro-cap32/Config.in
+++ b/package/libretro-cap32/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_CAP32
bool "libretro-cap32"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_AMSTRADCPC
help
A libretro AMSTRAD CPC emulator core.
diff --git a/package/libretro-catsfc/Config.in b/package/libretro-catsfc/Config.in
index d5d2acd452f..b37b50c1658 100644
--- a/package/libretro-catsfc/Config.in
+++ b/package/libretro-catsfc/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_CATSFC
bool "libretro-catsfc"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_SNES
help
A libretro SNES emulator core for ARM.
diff --git a/package/libretro-fba/Config.in b/package/libretro-fba/Config.in
index 4a58cad72c5..0277b41d760 100644
--- a/package/libretro-fba/Config.in
+++ b/package/libretro-fba/Config.in
@@ -2,6 +2,9 @@ config BR2_PACKAGE_LIBRETRO_FBA
bool "libretro-fba"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_FBA
+ select BR2_PACKAGE_RECALBOX_ROMFS_FBA_LIBRETRO
+ select BR2_PACKAGE_RECALBOX_ROMFS_NEOGEO
help
A libretro fba emulator core for ARM.
diff --git a/package/libretro-fceumm/Config.in b/package/libretro-fceumm/Config.in
index 742def4e81e..06e4c833de9 100644
--- a/package/libretro-fceumm/Config.in
+++ b/package/libretro-fceumm/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_FCEUMM
bool "libretro-fceumm"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_FDS
+ select BR2_PACKAGE_RECALBOX_ROMFS_NES
help
A libretro NES emulator core for ARM.
diff --git a/package/libretro-fceunext/Config.in b/package/libretro-fceunext/Config.in
index af15efb6ee9..22d8c49c431 100644
--- a/package/libretro-fceunext/Config.in
+++ b/package/libretro-fceunext/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_FCEUNEXT
bool "libretro-fceunext"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_NES
help
A libretro NES emulator core for ARM.
diff --git a/package/libretro-fuse/Config.in b/package/libretro-fuse/Config.in
index 6485a6b5e16..e4768790d19 100644
--- a/package/libretro-fuse/Config.in
+++ b/package/libretro-fuse/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_FUSE
bool "libretro-fuse"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_ZXSPECTRUM
help
A libretro ZX SPECTRUM emulator core.
diff --git a/package/libretro-gambatte/Config.in b/package/libretro-gambatte/Config.in
index d4d00203266..5cffd0eba8b 100644
--- a/package/libretro-gambatte/Config.in
+++ b/package/libretro-gambatte/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_GAMBATTE
bool "libretro-gambatte"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_GB
+ select BR2_PACKAGE_RECALBOX_ROMFS_GBC
help
A libretro GAMEBOY emulator core for ARM.
diff --git a/package/libretro-genesisplusgx/Config.in b/package/libretro-genesisplusgx/Config.in
index 24042c9b22d..bd7c04862e4 100644
--- a/package/libretro-genesisplusgx/Config.in
+++ b/package/libretro-genesisplusgx/Config.in
@@ -2,6 +2,11 @@ config BR2_PACKAGE_LIBRETRO_GENESISPLUSGX
bool "libretro-genesisplusgx"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_GAMEGEAR
+ select BR2_PACKAGE_RECALBOX_ROMFS_MASTERSYSTEM
+ select BR2_PACKAGE_RECALBOX_ROMFS_MEGADRIVE
+ select BR2_PACKAGE_RECALBOX_ROMFS_SEGACD
+ select BR2_PACKAGE_RECALBOX_ROMFS_SG1000
help
A libretro SEGA 8 / 16 bits emulator core for ARM.
diff --git a/package/libretro-glupen64/Config.in b/package/libretro-glupen64/Config.in
index 5f85e2fe97e..93b367fa5d4 100644
--- a/package/libretro-glupen64/Config.in
+++ b/package/libretro-glupen64/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_GLUPEN64
bool "libretro-glupen64"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_N64
help
A alternative libretro N64 emulator core for ARM.
diff --git a/package/libretro-gpsp/Config.in b/package/libretro-gpsp/Config.in
index f4af93cb0a2..c9947694d54 100644
--- a/package/libretro-gpsp/Config.in
+++ b/package/libretro-gpsp/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_GPSP
bool "libretro-gpsp"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_GBA
help
A libretro GBA emulator core for ARM.
diff --git a/package/libretro-gw/Config.in b/package/libretro-gw/Config.in
index c348cc47727..7674102ddc4 100644
--- a/package/libretro-gw/Config.in
+++ b/package/libretro-gw/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_GW
bool "libretro-gw"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_GW
help
A libretro core for Game & Watch simulators
diff --git a/package/libretro-hatari/Config.in b/package/libretro-hatari/Config.in
index c03997868bb..6d0f33a6b04 100644
--- a/package/libretro-hatari/Config.in
+++ b/package/libretro-hatari/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_LIBRETRO_HATARI
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
select BR2_PACKAGE_LIBCAPSIMAGE
+ select BR2_PACKAGE_RECALBOX_ROMFS_ATARIST
help
A libretro Atari ST emulator core.
diff --git a/package/libretro-imame/Config.in b/package/libretro-imame/Config.in
index 9adb806a84f..ca90777adf5 100644
--- a/package/libretro-imame/Config.in
+++ b/package/libretro-imame/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_IMAME
bool "libretro-imame"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_MAME
+ select BR2_PACKAGE_RECALBOX_ROMFS_NEOGEO
help
A libretro imame4all core for ARM.
diff --git a/package/libretro-lutro/Config.in b/package/libretro-lutro/Config.in
index bf5e149cee4..a5eff4d9d25 100644
--- a/package/libretro-lutro/Config.in
+++ b/package/libretro-lutro/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_LUTRO
bool "libretro-lutro"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_LUTRO
help
An experimental lua game framework for libretro.
diff --git a/package/libretro-mame2003/Config.in b/package/libretro-mame2003/Config.in
index 8d8cd1f7b57..01c7b3f865a 100644
--- a/package/libretro-mame2003/Config.in
+++ b/package/libretro-mame2003/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_MAME2003
bool "libretro-mame2003"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_MAME
+ select BR2_PACKAGE_RECALBOX_ROMFS_NEOGEO
help
A libretro mame2003 core for ARM.
diff --git a/package/libretro-meteor/Config.in b/package/libretro-meteor/Config.in
index 623fc85e877..bf01b396510 100644
--- a/package/libretro-meteor/Config.in
+++ b/package/libretro-meteor/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_METEOR
bool "libretro-meteor"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_GBA
help
A libretro GBA emulator core for ARM.
diff --git a/package/libretro-mgba/Config.in b/package/libretro-mgba/Config.in
index 985c0027edd..1ac7730ef81 100644
--- a/package/libretro-mgba/Config.in
+++ b/package/libretro-mgba/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_MGBA
bool "libretro-mgba"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_GBA
help
A libretro GBA emulator core for ARM.
diff --git a/package/libretro-nestopia/Config.in b/package/libretro-nestopia/Config.in
index 31e99d3c644..f9a07795b05 100644
--- a/package/libretro-nestopia/Config.in
+++ b/package/libretro-nestopia/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_NESTOPIA
bool "libretro-nestopia"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_FDS
+ select BR2_PACKAGE_RECALBOX_ROMFS_NES
help
A libretro NES & FDS emulator core for ARM.
diff --git a/package/libretro-nxengine/Config.in b/package/libretro-nxengine/Config.in
index 5efacaad9ff..114276ba15b 100644
--- a/package/libretro-nxengine/Config.in
+++ b/package/libretro-nxengine/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_NXENGINE
bool "libretro-nxengine"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_CAVESTORY
help
NXEngine is a Cave Story game engine clone.
diff --git a/package/libretro-o2em/Config.in b/package/libretro-o2em/Config.in
index e39b026334f..91bdd40953b 100644
--- a/package/libretro-o2em/Config.in
+++ b/package/libretro-o2em/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_O2EM
bool "libretro-o2em"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_O2EM
help
A libretro Odyssey 2/VideoPac emulator core.
diff --git a/package/libretro-pcsx/Config.in b/package/libretro-pcsx/Config.in
index 9c9443ab542..62a191ebb3a 100644
--- a/package/libretro-pcsx/Config.in
+++ b/package/libretro-pcsx/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_PCSX
bool "libretro-pcsx"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_PSX
help
A libretro psx emulator core for ARM.
diff --git a/package/libretro-picodrive/Config.in b/package/libretro-picodrive/Config.in
index 960a628731a..8ed429d5ff8 100644
--- a/package/libretro-picodrive/Config.in
+++ b/package/libretro-picodrive/Config.in
@@ -4,6 +4,12 @@ config BR2_PACKAGE_LIBRETRO_PICODRIVE
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_PACKAGE_LIBPNG
depends on BR2_PACKAGE_SDL
+ select BR2_PACKAGE_RECALBOX_ROMFS_GAMEGEAR
+ select BR2_PACKAGE_RECALBOX_ROMFS_MASTERSYSTEM
+ select BR2_PACKAGE_RECALBOX_ROMFS_MEGADRIVE
+ select BR2_PACKAGE_RECALBOX_ROMFS_SEGA32X
+ select BR2_PACKAGE_RECALBOX_ROMFS_SEGACD
+ select BR2_PACKAGE_RECALBOX_ROMFS_SG1000
help
A libretro Megadrive SMS emulator core for ARM.
diff --git a/package/libretro-pocketsnes/Config.in b/package/libretro-pocketsnes/Config.in
index f246fc0fb08..3632bf70ba8 100644
--- a/package/libretro-pocketsnes/Config.in
+++ b/package/libretro-pocketsnes/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_POCKETSNES
bool "libretro-pocketsnes"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_SNES
help
A libretro SNES emulator core for ARM.
diff --git a/package/libretro-prboom/Config.in b/package/libretro-prboom/Config.in
index f82333e8d73..5ffaf16ee61 100644
--- a/package/libretro-prboom/Config.in
+++ b/package/libretro-prboom/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_PRBOOM
bool "libretro-prboom"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_PRBOOM
help
A libretro PrBoom core for ARM.
diff --git a/package/libretro-prosystem/Config.in b/package/libretro-prosystem/Config.in
index a2af21f443a..96c3a561134 100644
--- a/package/libretro-prosystem/Config.in
+++ b/package/libretro-prosystem/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_PROSYSTEM
bool "libretro-prosystem"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_ATARI7800
help
A libretro ATARI 7800 emulator for ARM.
diff --git a/package/libretro-quicknes/Config.in b/package/libretro-quicknes/Config.in
index 04f88c47b29..fffc959aa7d 100644
--- a/package/libretro-quicknes/Config.in
+++ b/package/libretro-quicknes/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_QUICKNES
bool "libretro-quicknes"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_NES
help
A libretro NES emulator core for ARM.
diff --git a/package/libretro-snes9x-next/Config.in b/package/libretro-snes9x-next/Config.in
index 961ee66a22c..d9738c00223 100644
--- a/package/libretro-snes9x-next/Config.in
+++ b/package/libretro-snes9x-next/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_SNES9X_NEXT
bool "libretro-snes9x-next"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_SNES
help
A libretro SNES emulator core for ARM.
diff --git a/package/libretro-snes9x/Config.in b/package/libretro-snes9x/Config.in
index f8543d1db05..9e099a1113c 100644
--- a/package/libretro-snes9x/Config.in
+++ b/package/libretro-snes9x/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_SNES9X
bool "libretro-snes9x"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_SNES
help
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator http://www.snes9x.com
diff --git a/package/libretro-stella/Config.in b/package/libretro-stella/Config.in
index 47e839e4d33..04a95de8715 100644
--- a/package/libretro-stella/Config.in
+++ b/package/libretro-stella/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_STELLA
bool "libretro-stella"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_ATARI2600
help
A libretro Atari 2600 emulator core for ARM.
diff --git a/package/libretro-tgbdual/Config.in b/package/libretro-tgbdual/Config.in
index 01eb38f5270..eb314cb912d 100644
--- a/package/libretro-tgbdual/Config.in
+++ b/package/libretro-tgbdual/Config.in
@@ -2,6 +2,8 @@ config BR2_PACKAGE_LIBRETRO_TGBDUAL
bool "libretro-tgbdual"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_GB
+ select BR2_PACKAGE_RECALBOX_ROMFS_GBC
help
A libretro GB/C emulator core for ARM.
diff --git a/package/libretro-vecx/Config.in b/package/libretro-vecx/Config.in
index 773be27b003..ee944d66bf0 100644
--- a/package/libretro-vecx/Config.in
+++ b/package/libretro-vecx/Config.in
@@ -2,6 +2,7 @@ config BR2_PACKAGE_LIBRETRO_VECX
bool "libretro-vecx"
depends on BR2_PACKAGE_RETROARCH
depends on BR2_INSTALL_LIBSTDCPP
+ select BR2_PACKAGE_RECALBOX_ROMFS_VECTREX
help
A libretro Vectrex emulator core for ARM.
diff --git a/package/linapple-pie/Config.in b/package/linapple-pie/Config.in
index 16f8633f76a..6d368fef8af 100644
--- a/package/linapple-pie/Config.in
+++ b/package/linapple-pie/Config.in
@@ -8,6 +8,7 @@ config BR2_PACKAGE_LINAPPLE_PIE
depends on BR2_PACKAGE_CURL
depends on BR2_PACKAGE_ZLIB
depends on BR2_PACKAGE_LIBZIP
+ select BR2_PACKAGE_RECALBOX_ROMFS_APPLE2
help
Linapple on Raspberry Pi
Great thanks to Mark Ormond for fine tuning LinApple and
diff --git a/package/moonlight-embedded/Config.in b/package/moonlight-embedded/Config.in
index 09acb27c441..8bbed04f246 100644
--- a/package/moonlight-embedded/Config.in
+++ b/package/moonlight-embedded/Config.in
@@ -1,18 +1,18 @@
config BR2_PACKAGE_MOONLIGHT_EMBEDDED
- bool "moonlight-embedded"
- select BR2_PACKAGE_OPUS
- select BR2_PACKAGE_OPUS_FIXED_POINT
- select BR2_PACKAGE_EXPAT
- select BR2_PACKAGE_LIBEVDEV
- select BR2_PACKAGE_AVAHI
- select BR2_PACKAGE_ALSA_LIB
- select BR2_PACKAGE_HAS_UDEV
- select BR2_PACKAGE_LIBCURL
- select BR2_PACKAGE_LIBCEC
- select BR2_PACKAGE_FFMPEG
- select BR2_PACKAGE_SDL2
- select BR2_PACKAGE_LIBENET
- help
- Gamestream client for embedded systems.
-
- https://github.com/irtimmer/moonlight-embedded/wiki
+ bool "moonlight-embedded"
+ select BR2_PACKAGE_OPUS
+ select BR2_PACKAGE_OPUS_FIXED_POINT
+ select BR2_PACKAGE_EXPAT
+ select BR2_PACKAGE_LIBEVDEV
+ select BR2_PACKAGE_AVAHI
+ select BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_HAS_UDEV
+ select BR2_PACKAGE_LIBCURL
+ select BR2_PACKAGE_LIBCEC
+ select BR2_PACKAGE_FFMPEG
+ select BR2_PACKAGE_SDL2
+ select BR2_PACKAGE_LIBENET
+ select BR2_PACKAGE_RECALBOX_ROMFS_MOONLIGHT
+ help
+ Gamestream client for embedded systems.
+ https://github.com/irtimmer/moonlight-embedded/wiki
diff --git a/package/mupen64plus-gles2/Config.in b/package/mupen64plus-gles2/Config.in
index 1ee1aa917d4..1fdde105c34 100644
--- a/package/mupen64plus-gles2/Config.in
+++ b/package/mupen64plus-gles2/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_MUPEN64PLUS_GLES2
depends on BR2_PACKAGE_SDL2
depends on BR2_PACKAGE_RPI_USERLAND
depends on BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_RECALBOX_ROMFS_N64
help
mupen 64 plus glesn64 module
https://github.com/mupen64plus/
diff --git a/package/mupen64plus-gles2rice/Config.in b/package/mupen64plus-gles2rice/Config.in
index 8adb2ad3cb3..c17db40e280 100644
--- a/package/mupen64plus-gles2rice/Config.in
+++ b/package/mupen64plus-gles2rice/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_MUPEN64PLUS_GLES2RICE
depends on BR2_PACKAGE_SDL2
depends on BR2_PACKAGE_RPI_USERLAND
depends on BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_RECALBOX_ROMFS_N64
help
mupen 64 plus glesrice plugin
https://github.com/mupen64plus/
diff --git a/package/mupen64plus-gliden64/Config.in b/package/mupen64plus-gliden64/Config.in
index 36a8ecb65b2..54908e0de03 100644
--- a/package/mupen64plus-gliden64/Config.in
+++ b/package/mupen64plus-gliden64/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_MUPEN64PLUS_GLIDEN64
select BR2_PACKAGE_SDL2
select BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_RPI_USERLAND
+ select BR2_PACKAGE_RECALBOX_ROMFS_N64
help
mupen 64 plus GLideN64 plugin
https://github.com/gonetz/GLideN64
diff --git a/package/mupen64plus-video-glide64mk2/Config.in b/package/mupen64plus-video-glide64mk2/Config.in
index f9690b3cb94..f3c67e2ca32 100644
--- a/package/mupen64plus-video-glide64mk2/Config.in
+++ b/package/mupen64plus-video-glide64mk2/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_PACKAGE_SDL2
depends on BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_RECALBOX_ROMFS_N64
help
mupen 64 plus video-glide64mk2 module
https://github.com/mupen64plus/
diff --git a/package/pifba/Config.in b/package/pifba/Config.in
index d5b29e58e3d..b3edd515173 100644
--- a/package/pifba/Config.in
+++ b/package/pifba/Config.in
@@ -4,6 +4,8 @@ config BR2_PACKAGE_PIFBA
depends on BR2_PACKAGE_SDL
depends on BR2_PACKAGE_RPI_USERLAND
depends on BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_RECALBOX_ROMFS_FBA
+ select BR2_PACKAGE_RECALBOX_ROMFS_NEOGEO
help
FBA arm optimized
diff --git a/package/ppsspp/Config.in b/package/ppsspp/Config.in
index e82a6581f00..6b9f12c0a05 100644
--- a/package/ppsspp/Config.in
+++ b/package/ppsspp/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_PPSSPP
depends on BR2_PACKAGE_SDL2
depends on BR2_PACKAGE_ZLIB
depends on BR2_PACKAGE_FFMPEG_SWSCALE
+ select BR2_PACKAGE_RECALBOX_ROMFS_PSP
help
A PSP emulator
diff --git a/package/recalbox-romfs/Config.in b/package/recalbox-romfs/Config.in
new file mode 100644
index 00000000000..877c47dc6ae
--- /dev/null
+++ b/package/recalbox-romfs/Config.in
@@ -0,0 +1,59 @@
+# Recalbox-roms main package
+source "package/recalbox-romfs/recalbox-romfs/Config.in"
+
+menu "Rom dirs and xml"
+ source "package/recalbox-romfs/recalbox-romfs-amstradcpc/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-apple2/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-atari2600/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-atari7800/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-atarist/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-c64/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-cavestory/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-colecovision/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-dos/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-dreamcast/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-fba/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-fba_libretro/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-fds/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-gamecube/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-gamegear/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-gb/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-gba/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-gbc/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-gw/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-imageviewer/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-lutro/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-lynx/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-mame/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-mastersystem/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-megadrive/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-moonlight/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-msx/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-msx1/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-msx2/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-n64/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-neogeo/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-nes/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-ngp/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-ngpc/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-o2em/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-pcengine/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-pcenginecd/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-prboom/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-psp/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-psx/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-scummvm/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-sega32x/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-segacd/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-sg1000/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-snes/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-supergrafx/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-vectrex/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-virtualboy/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-wii/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-wswan/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-wswanc/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-zx81/Config.in"
+ source "package/recalbox-romfs/recalbox-romfs-zxspectrum/Config.in"
+endmenu
+
diff --git a/package/recalbox-romfs/recalbox-romfs-amstradcpc/Config.in b/package/recalbox-romfs/recalbox-romfs-amstradcpc/Config.in
new file mode 100644
index 00000000000..4ca1dc210ce
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-amstradcpc/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_AMSTRADCPC
+ bool "recalbox-romfs-amstradcpc"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_CAP32
+ help
+ share_init/roms and xml for amstradcpc
diff --git a/package/recalbox-romfs/recalbox-romfs-amstradcpc/recalbox-romfs-amstradcpc.mk b/package/recalbox-romfs/recalbox-romfs-amstradcpc/recalbox-romfs-amstradcpc.mk
new file mode 100644
index 00000000000..ad9d1682f88
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-amstradcpc/recalbox-romfs-amstradcpc.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-amstradcpc
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system amstradcpc --extension '.dsk .DSK .zip .ZIP' --fullname 'AmstradCPC' --platform amstradcpc --theme amstradcpc libretro:cap32:BR2_PACKAGE_LIBRETRO_CAP32
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_AMSTRADCPC_SOURCE =
+RECALBOX_ROMFS_AMSTRADCPC_SITE =
+RECALBOX_ROMFS_AMSTRADCPC_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_AMSTRADCPC = amstradcpc
+SYSTEM_XML_AMSTRADCPC = $(@D)/$(SYSTEM_NAME_AMSTRADCPC).xml
+# System rom path
+SOURCE_ROMDIR_AMSTRADCPC = $(RECALBOX_ROMFS_AMSTRADCPC_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_CAP32),)
+define CONFIGURE_MAIN_AMSTRADCPC_START
+ echo -e '\n' \
+ '\tAmstradCPC\n' \
+ "\t$(SYSTEM_NAME_AMSTRADCPC)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_AMSTRADCPC)\n' \
+ '\t.dsk .DSK .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tamstradcpc\n' \
+ '\tamstradcpc\n' \
+ '\t' > $(SYSTEM_XML_AMSTRADCPC)
+
+endef
+RECALBOX_ROMFS_AMSTRADCPC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_AMSTRADCPC_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_CAP32),)
+define CONFIGURE_AMSTRADCPC_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_AMSTRADCPC)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_AMSTRADCPC)
+
+endef
+RECALBOX_ROMFS_AMSTRADCPC_CONFIGURE_CMDS += $(CONFIGURE_AMSTRADCPC_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_CAP32),y)
+define CONFIGURE_AMSTRADCPC_LIBRETRO_CAP32_DEF
+ echo -e '\t\t\t\tcap32' >> $(SYSTEM_XML_AMSTRADCPC)
+
+endef
+RECALBOX_ROMFS_AMSTRADCPC_CONFIGURE_CMDS += $(CONFIGURE_AMSTRADCPC_LIBRETRO_CAP32_DEF)
+endif
+
+define CONFIGURE_AMSTRADCPC_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_AMSTRADCPC)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_AMSTRADCPC)
+
+endef
+RECALBOX_ROMFS_AMSTRADCPC_CONFIGURE_CMDS += $(CONFIGURE_AMSTRADCPC_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_AMSTRADCPC_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_AMSTRADCPC)
+ cp -R $(SOURCE_ROMDIR_AMSTRADCPC) $(@D)
+endef
+RECALBOX_ROMFS_AMSTRADCPC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_AMSTRADCPC_END)
+endif
+
+$(eval $(generic-package))
diff --git a/package/recalbox-romfs/recalbox-romfs-amstradcpc/roms/amstradcpc/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-amstradcpc/roms/amstradcpc/_lisezmoi.txt
new file mode 100644
index 00000000000..22affbc300b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-amstradcpc/roms/amstradcpc/_lisezmoi.txt
@@ -0,0 +1 @@
+Remplir ce fichier
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-amstradcpc/roms/amstradcpc/_readme.txt b/package/recalbox-romfs/recalbox-romfs-amstradcpc/roms/amstradcpc/_readme.txt
new file mode 100644
index 00000000000..036cd7999a2
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-amstradcpc/roms/amstradcpc/_readme.txt
@@ -0,0 +1 @@
+Please fill the file
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-apple2/Config.in b/package/recalbox-romfs/recalbox-romfs-apple2/Config.in
new file mode 100644
index 00000000000..a71cf329e90
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-apple2/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_APPLE2
+ bool "recalbox-romfs-apple2"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LINAPPLE_PIE
+ help
+ share_init/roms and xml for apple2
diff --git a/package/recalbox-romfs/recalbox-romfs-apple2/recalbox-romfs-apple2.mk b/package/recalbox-romfs/recalbox-romfs-apple2/recalbox-romfs-apple2.mk
new file mode 100644
index 00000000000..ea9e7e71032
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-apple2/recalbox-romfs-apple2.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-apple2
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system apple2 --extension '.iso .ISO .gc .GC .gcz .GCZ' --fullname 'Apple II' --platform apple2 --theme apple2 BR2_PACKAGE_LINAPPLE_PIE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_APPLE2_SOURCE =
+RECALBOX_ROMFS_APPLE2_SITE =
+RECALBOX_ROMFS_APPLE2_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_APPLE2 = apple2
+SYSTEM_XML_APPLE2 = $(@D)/$(SYSTEM_NAME_APPLE2).xml
+# System rom path
+SOURCE_ROMDIR_APPLE2 = $(RECALBOX_ROMFS_APPLE2_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_LINAPPLE_PIE),y)
+define CONFIGURE_APPLE2
+ echo -e '\n' \
+ '\tApple II\n' \
+ "\t$(SYSTEM_NAME_APPLE2)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_APPLE2)\n' \
+ '\t.iso .ISO .gc .GC .gcz .GCZ\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tapple2\n' \
+ '\tapple2\n' \
+ '' > $(SYSTEM_XML_APPLE2)
+ cp -R $(SOURCE_ROMDIR_APPLE2) $(@D)
+endef
+RECALBOX_ROMFS_APPLE2_CONFIGURE_CMDS += $(CONFIGURE_APPLE2)
+endif
+
+$(eval $(generic-package))
diff --git a/package/recalbox-romfs/recalbox-romfs-apple2/roms/apple2/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-apple2/roms/apple2/_lisezmoi.txt
new file mode 100644
index 00000000000..22affbc300b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-apple2/roms/apple2/_lisezmoi.txt
@@ -0,0 +1 @@
+Remplir ce fichier
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-apple2/roms/apple2/_readme.txt b/package/recalbox-romfs/recalbox-romfs-apple2/roms/apple2/_readme.txt
new file mode 100644
index 00000000000..036cd7999a2
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-apple2/roms/apple2/_readme.txt
@@ -0,0 +1 @@
+Please fill the file
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-atari2600/Config.in b/package/recalbox-romfs/recalbox-romfs-atari2600/Config.in
new file mode 100644
index 00000000000..b129682e0a0
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atari2600/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_ATARI2600
+ bool "recalbox-romfs-atari2600"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_STELLA
+ help
+ share_init/roms and xml for atari2600
diff --git a/package/recalbox-romfs/recalbox-romfs-atari2600/recalbox-romfs-atari2600.mk b/package/recalbox-romfs/recalbox-romfs-atari2600/recalbox-romfs-atari2600.mk
new file mode 100644
index 00000000000..e6867523b50
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atari2600/recalbox-romfs-atari2600.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-atari2600
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system atari2600 --extension '.a26 .A26 .bin .BIN .zip .ZIP' --fullname 'Atari 2600' --platform atari2600 --theme atari2600 libretro:stella:BR2_PACKAGE_LIBRETRO_STELLA
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_ATARI2600_SOURCE =
+RECALBOX_ROMFS_ATARI2600_SITE =
+RECALBOX_ROMFS_ATARI2600_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_ATARI2600 = atari2600
+SYSTEM_XML_ATARI2600 = $(@D)/$(SYSTEM_NAME_ATARI2600).xml
+# System rom path
+SOURCE_ROMDIR_ATARI2600 = $(RECALBOX_ROMFS_ATARI2600_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_STELLA),)
+define CONFIGURE_MAIN_ATARI2600_START
+ echo -e '\n' \
+ '\tAtari 2600\n' \
+ "\t$(SYSTEM_NAME_ATARI2600)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_ATARI2600)\n' \
+ '\t.a26 .A26 .bin .BIN .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tatari2600\n' \
+ '\tatari2600\n' \
+ '\t' > $(SYSTEM_XML_ATARI2600)
+
+endef
+RECALBOX_ROMFS_ATARI2600_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ATARI2600_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_STELLA),)
+define CONFIGURE_ATARI2600_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_ATARI2600)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ATARI2600)
+
+endef
+RECALBOX_ROMFS_ATARI2600_CONFIGURE_CMDS += $(CONFIGURE_ATARI2600_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_STELLA),y)
+define CONFIGURE_ATARI2600_LIBRETRO_STELLA_DEF
+ echo -e '\t\t\t\tstella' >> $(SYSTEM_XML_ATARI2600)
+
+endef
+RECALBOX_ROMFS_ATARI2600_CONFIGURE_CMDS += $(CONFIGURE_ATARI2600_LIBRETRO_STELLA_DEF)
+endif
+
+define CONFIGURE_ATARI2600_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ATARI2600)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_ATARI2600)
+
+endef
+RECALBOX_ROMFS_ATARI2600_CONFIGURE_CMDS += $(CONFIGURE_ATARI2600_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_ATARI2600_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_ATARI2600)
+ cp -R $(SOURCE_ROMDIR_ATARI2600) $(@D)
+endef
+RECALBOX_ROMFS_ATARI2600_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ATARI2600_END)
+endif
+
+$(eval $(generic-package))
diff --git a/package/recalbox-romfs/recalbox-romfs-atari2600/roms/atari2600/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-atari2600/roms/atari2600/_lisezmoi.txt
new file mode 100644
index 00000000000..22affbc300b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atari2600/roms/atari2600/_lisezmoi.txt
@@ -0,0 +1 @@
+Remplir ce fichier
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-atari2600/roms/atari2600/_readme.txt b/package/recalbox-romfs/recalbox-romfs-atari2600/roms/atari2600/_readme.txt
new file mode 100644
index 00000000000..036cd7999a2
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atari2600/roms/atari2600/_readme.txt
@@ -0,0 +1 @@
+Please fill the file
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-atari7800/Config.in b/package/recalbox-romfs/recalbox-romfs-atari7800/Config.in
new file mode 100644
index 00000000000..c20809130b3
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atari7800/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_ATARI7800
+ bool "recalbox-romfs-atari7800"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_PROSYSTEM
+ help
+ share_init/roms and xml for atari7800
diff --git a/package/recalbox-romfs/recalbox-romfs-atari7800/recalbox-romfs-atari7800.mk b/package/recalbox-romfs/recalbox-romfs-atari7800/recalbox-romfs-atari7800.mk
new file mode 100644
index 00000000000..1a57d55bfc9
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atari7800/recalbox-romfs-atari7800.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-atari7800
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system atari7800 --extension '.a78 .A78 .bin .BIN .zip .ZIP' --fullname 'Atari 7800' --platform atari7800 --theme atari7800 libretro:prosystem:BR2_PACKAGE_LIBRETRO_PROSYSTEM
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_ATARI7800_SOURCE =
+RECALBOX_ROMFS_ATARI7800_SITE =
+RECALBOX_ROMFS_ATARI7800_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_ATARI7800 = atari7800
+SYSTEM_XML_ATARI7800 = $(@D)/$(SYSTEM_NAME_ATARI7800).xml
+# System rom path
+SOURCE_ROMDIR_ATARI7800 = $(RECALBOX_ROMFS_ATARI7800_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PROSYSTEM),)
+define CONFIGURE_MAIN_ATARI7800_START
+ echo -e '\n' \
+ '\tAtari 7800\n' \
+ "\t$(SYSTEM_NAME_ATARI7800)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_ATARI7800)\n' \
+ '\t.a78 .A78 .bin .BIN .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tatari7800\n' \
+ '\tatari7800\n' \
+ '\t' > $(SYSTEM_XML_ATARI7800)
+
+endef
+RECALBOX_ROMFS_ATARI7800_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ATARI7800_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PROSYSTEM),)
+define CONFIGURE_ATARI7800_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_ATARI7800)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ATARI7800)
+
+endef
+RECALBOX_ROMFS_ATARI7800_CONFIGURE_CMDS += $(CONFIGURE_ATARI7800_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PROSYSTEM),y)
+define CONFIGURE_ATARI7800_LIBRETRO_PROSYSTEM_DEF
+ echo -e '\t\t\t\tprosystem' >> $(SYSTEM_XML_ATARI7800)
+
+endef
+RECALBOX_ROMFS_ATARI7800_CONFIGURE_CMDS += $(CONFIGURE_ATARI7800_LIBRETRO_PROSYSTEM_DEF)
+endif
+
+define CONFIGURE_ATARI7800_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ATARI7800)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_ATARI7800)
+
+endef
+RECALBOX_ROMFS_ATARI7800_CONFIGURE_CMDS += $(CONFIGURE_ATARI7800_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_ATARI7800_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_ATARI7800)
+ cp -R $(SOURCE_ROMDIR_ATARI7800) $(@D)
+endef
+RECALBOX_ROMFS_ATARI7800_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ATARI7800_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/atari7800/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-atari7800/roms/atari7800/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/atari7800/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-atari7800/roms/atari7800/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/atari7800/_readme.txt b/package/recalbox-romfs/recalbox-romfs-atari7800/roms/atari7800/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/atari7800/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-atari7800/roms/atari7800/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-atarist/Config.in b/package/recalbox-romfs/recalbox-romfs-atarist/Config.in
new file mode 100644
index 00000000000..bd7fae1aceb
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atarist/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_ATARIST
+ bool "recalbox-romfs-atarist"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_HATARI
+ help
+ share_init/roms and xml for atarist
diff --git a/package/recalbox-romfs/recalbox-romfs-atarist/recalbox-romfs-atarist.mk b/package/recalbox-romfs/recalbox-romfs-atarist/recalbox-romfs-atarist.mk
new file mode 100644
index 00000000000..96e94ab1862
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-atarist/recalbox-romfs-atarist.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-atarist
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system atarist --extension '.st .ST .stx .STX .zip .ZIP' --fullname 'Atari ST' --platform atarist --theme atarist libretro:hatari:BR2_PACKAGE_LIBRETRO_HATARI
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_ATARIST_SOURCE =
+RECALBOX_ROMFS_ATARIST_SITE =
+RECALBOX_ROMFS_ATARIST_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_ATARIST = atarist
+SYSTEM_XML_ATARIST = $(@D)/$(SYSTEM_NAME_ATARIST).xml
+# System rom path
+SOURCE_ROMDIR_ATARIST = $(RECALBOX_ROMFS_ATARIST_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_HATARI),)
+define CONFIGURE_MAIN_ATARIST_START
+ echo -e '\n' \
+ '\tAtari ST\n' \
+ "\t$(SYSTEM_NAME_ATARIST)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_ATARIST)\n' \
+ '\t.st .ST .stx .STX .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tatarist\n' \
+ '\tatarist\n' \
+ '\t' > $(SYSTEM_XML_ATARIST)
+
+endef
+RECALBOX_ROMFS_ATARIST_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ATARIST_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_HATARI),)
+define CONFIGURE_ATARIST_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_ATARIST)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ATARIST)
+
+endef
+RECALBOX_ROMFS_ATARIST_CONFIGURE_CMDS += $(CONFIGURE_ATARIST_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_HATARI),y)
+define CONFIGURE_ATARIST_LIBRETRO_HATARI_DEF
+ echo -e '\t\t\t\thatari' >> $(SYSTEM_XML_ATARIST)
+
+endef
+RECALBOX_ROMFS_ATARIST_CONFIGURE_CMDS += $(CONFIGURE_ATARIST_LIBRETRO_HATARI_DEF)
+endif
+
+define CONFIGURE_ATARIST_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ATARIST)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_ATARIST)
+
+endef
+RECALBOX_ROMFS_ATARIST_CONFIGURE_CMDS += $(CONFIGURE_ATARIST_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_ATARIST_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_ATARIST)
+ cp -R $(SOURCE_ROMDIR_ATARIST) $(@D)
+endef
+RECALBOX_ROMFS_ATARIST_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ATARIST_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/atarist/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-atarist/roms/atarist/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/atarist/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-atarist/roms/atarist/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/atarist/_readme.txt b/package/recalbox-romfs/recalbox-romfs-atarist/roms/atarist/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/atarist/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-atarist/roms/atarist/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-c64/Config.in b/package/recalbox-romfs/recalbox-romfs-c64/Config.in
new file mode 100644
index 00000000000..abf768a7360
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-c64/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_C64
+ bool "recalbox-romfs-c64"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_VICE
+ help
+ share_init/roms and xml for c64
diff --git a/package/recalbox-romfs/recalbox-romfs-c64/recalbox-romfs-c64.mk b/package/recalbox-romfs/recalbox-romfs-c64/recalbox-romfs-c64.mk
new file mode 100644
index 00000000000..f75330114c5
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-c64/recalbox-romfs-c64.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-c64
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system c64 --extension '.d64 .D64 .t64 .T64 .x64 .X64' --fullname 'Commodore 64' --platform c64 --theme c64 vice:x64:BR2_PACKAGE_VICE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_C64_SOURCE =
+RECALBOX_ROMFS_C64_SITE =
+RECALBOX_ROMFS_C64_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_C64 = c64
+SYSTEM_XML_C64 = $(@D)/$(SYSTEM_NAME_C64).xml
+# System rom path
+SOURCE_ROMDIR_C64 = $(RECALBOX_ROMFS_C64_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_VICE),)
+define CONFIGURE_MAIN_C64_START
+ echo -e '\n' \
+ '\tCommodore 64\n' \
+ "\t$(SYSTEM_NAME_C64)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_C64)\n' \
+ '\t.d64 .D64 .t64 .T64 .x64 .X64\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tc64\n' \
+ '\tc64\n' \
+ '\t' > $(SYSTEM_XML_C64)
+
+endef
+RECALBOX_ROMFS_C64_CONFIGURE_CMDS += $(CONFIGURE_MAIN_C64_START)
+
+
+ifneq ($(BR2_PACKAGE_VICE),)
+define CONFIGURE_C64_VICE_START
+ echo -e '\t\t' >> $(SYSTEM_XML_C64)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_C64)
+
+endef
+RECALBOX_ROMFS_C64_CONFIGURE_CMDS += $(CONFIGURE_C64_VICE_START)
+
+ifeq ($(BR2_PACKAGE_VICE),y)
+define CONFIGURE_C64_VICE_X64_DEF
+ echo -e '\t\t\t\tx64' >> $(SYSTEM_XML_C64)
+
+endef
+RECALBOX_ROMFS_C64_CONFIGURE_CMDS += $(CONFIGURE_C64_VICE_X64_DEF)
+endif
+
+define CONFIGURE_C64_VICE_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_C64)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_C64)
+
+endef
+RECALBOX_ROMFS_C64_CONFIGURE_CMDS += $(CONFIGURE_C64_VICE_END)
+endif
+
+
+
+define CONFIGURE_MAIN_C64_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_C64)
+ cp -R $(SOURCE_ROMDIR_C64) $(@D)
+endef
+RECALBOX_ROMFS_C64_CONFIGURE_CMDS += $(CONFIGURE_MAIN_C64_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/c64/Oil Imperium/Oil_Imperium_dt_S1.d64 b/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/Oil Imperium/Oil_Imperium_dt_S1.d64
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/c64/Oil Imperium/Oil_Imperium_dt_S1.d64
rename to package/recalbox-romfs/recalbox-romfs-c64/roms/c64/Oil Imperium/Oil_Imperium_dt_S1.d64
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/c64/Oil Imperium/Oil_Imperium_dt_S2.d64 b/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/Oil Imperium/Oil_Imperium_dt_S2.d64
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/c64/Oil Imperium/Oil_Imperium_dt_S2.d64
rename to package/recalbox-romfs/recalbox-romfs-c64/roms/c64/Oil Imperium/Oil_Imperium_dt_S2.d64
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/c64/The_Great_Giana_Sisters.d64 b/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/The_Great_Giana_Sisters.d64
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/c64/The_Great_Giana_Sisters.d64
rename to package/recalbox-romfs/recalbox-romfs-c64/roms/c64/The_Great_Giana_Sisters.d64
diff --git a/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/_lisezmoi.txt
new file mode 100644
index 00000000000..22affbc300b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/_lisezmoi.txt
@@ -0,0 +1 @@
+Remplir ce fichier
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/_readme.txt b/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/_readme.txt
new file mode 100644
index 00000000000..036cd7999a2
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-c64/roms/c64/_readme.txt
@@ -0,0 +1 @@
+Please fill the file
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-cavestory/Config.in b/package/recalbox-romfs/recalbox-romfs-cavestory/Config.in
new file mode 100644
index 00000000000..10bf8aa9cdc
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-cavestory/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_CAVESTORY
+ bool "recalbox-romfs-cavestory"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_NXENGINE
+ help
+ share_init/roms and xml for cavestory
diff --git a/package/recalbox-romfs/recalbox-romfs-cavestory/recalbox-romfs-cavestory.mk b/package/recalbox-romfs/recalbox-romfs-cavestory/recalbox-romfs-cavestory.mk
new file mode 100644
index 00000000000..bd046682ebe
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-cavestory/recalbox-romfs-cavestory.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-cavestory
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system cavestory --extension '.exe .EXE' --fullname 'Cave Story' --platform cavestory --theme cavestory libretro:nxengine:BR2_PACKAGE_LIBRETRO_NXENGINE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_CAVESTORY_SOURCE =
+RECALBOX_ROMFS_CAVESTORY_SITE =
+RECALBOX_ROMFS_CAVESTORY_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_CAVESTORY = cavestory
+SYSTEM_XML_CAVESTORY = $(@D)/$(SYSTEM_NAME_CAVESTORY).xml
+# System rom path
+SOURCE_ROMDIR_CAVESTORY = $(RECALBOX_ROMFS_CAVESTORY_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_NXENGINE),)
+define CONFIGURE_MAIN_CAVESTORY_START
+ echo -e '\n' \
+ '\tCave Story\n' \
+ "\t$(SYSTEM_NAME_CAVESTORY)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_CAVESTORY)\n' \
+ '\t.exe .EXE\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tcavestory\n' \
+ '\tcavestory\n' \
+ '\t' > $(SYSTEM_XML_CAVESTORY)
+
+endef
+RECALBOX_ROMFS_CAVESTORY_CONFIGURE_CMDS += $(CONFIGURE_MAIN_CAVESTORY_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_NXENGINE),)
+define CONFIGURE_CAVESTORY_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_CAVESTORY)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_CAVESTORY)
+
+endef
+RECALBOX_ROMFS_CAVESTORY_CONFIGURE_CMDS += $(CONFIGURE_CAVESTORY_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_NXENGINE),y)
+define CONFIGURE_CAVESTORY_LIBRETRO_NXENGINE_DEF
+ echo -e '\t\t\t\tnxengine' >> $(SYSTEM_XML_CAVESTORY)
+
+endef
+RECALBOX_ROMFS_CAVESTORY_CONFIGURE_CMDS += $(CONFIGURE_CAVESTORY_LIBRETRO_NXENGINE_DEF)
+endif
+
+define CONFIGURE_CAVESTORY_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_CAVESTORY)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_CAVESTORY)
+
+endef
+RECALBOX_ROMFS_CAVESTORY_CONFIGURE_CMDS += $(CONFIGURE_CAVESTORY_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_CAVESTORY_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_CAVESTORY)
+ cp -R $(SOURCE_ROMDIR_CAVESTORY) $(@D)
+endef
+RECALBOX_ROMFS_CAVESTORY_CONFIGURE_CMDS += $(CONFIGURE_MAIN_CAVESTORY_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/cavestory/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-cavestory/roms/cavestory/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/cavestory/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-cavestory/roms/cavestory/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/cavestory/_readme.txt b/package/recalbox-romfs/recalbox-romfs-cavestory/roms/cavestory/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/cavestory/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-cavestory/roms/cavestory/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-colecovision/Config.in b/package/recalbox-romfs/recalbox-romfs-colecovision/Config.in
new file mode 100644
index 00000000000..961d9b67c86
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-colecovision/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_COLECOVISION
+ bool "recalbox-romfs-colecovision"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BLUEMSX
+ help
+ share_init/roms and xml for colecovision
diff --git a/package/recalbox-romfs/recalbox-romfs-colecovision/recalbox-romfs-colecovision.mk b/package/recalbox-romfs/recalbox-romfs-colecovision/recalbox-romfs-colecovision.mk
new file mode 100644
index 00000000000..639b66a94ac
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-colecovision/recalbox-romfs-colecovision.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-colecovision
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system colecovision --extension '.col .COL .zip .ZIP' --fullname 'Colecovision' --platform colecovision --theme colecovision libretro:bluemsx:BR2_PACKAGE_LIBRETRO_BLUEMSX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_COLECOVISION_SOURCE =
+RECALBOX_ROMFS_COLECOVISION_SITE =
+RECALBOX_ROMFS_COLECOVISION_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_COLECOVISION = colecovision
+SYSTEM_XML_COLECOVISION = $(@D)/$(SYSTEM_NAME_COLECOVISION).xml
+# System rom path
+SOURCE_ROMDIR_COLECOVISION = $(RECALBOX_ROMFS_COLECOVISION_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_MAIN_COLECOVISION_START
+ echo -e '\n' \
+ '\tColecovision\n' \
+ "\t$(SYSTEM_NAME_COLECOVISION)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_COLECOVISION)\n' \
+ '\t.col .COL .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tcolecovision\n' \
+ '\tcolecovision\n' \
+ '\t' > $(SYSTEM_XML_COLECOVISION)
+
+endef
+RECALBOX_ROMFS_COLECOVISION_CONFIGURE_CMDS += $(CONFIGURE_MAIN_COLECOVISION_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_COLECOVISION_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_COLECOVISION)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_COLECOVISION)
+
+endef
+RECALBOX_ROMFS_COLECOVISION_CONFIGURE_CMDS += $(CONFIGURE_COLECOVISION_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),y)
+define CONFIGURE_COLECOVISION_LIBRETRO_BLUEMSX_DEF
+ echo -e '\t\t\t\tbluemsx' >> $(SYSTEM_XML_COLECOVISION)
+
+endef
+RECALBOX_ROMFS_COLECOVISION_CONFIGURE_CMDS += $(CONFIGURE_COLECOVISION_LIBRETRO_BLUEMSX_DEF)
+endif
+
+define CONFIGURE_COLECOVISION_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_COLECOVISION)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_COLECOVISION)
+
+endef
+RECALBOX_ROMFS_COLECOVISION_CONFIGURE_CMDS += $(CONFIGURE_COLECOVISION_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_COLECOVISION_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_COLECOVISION)
+ cp -R $(SOURCE_ROMDIR_COLECOVISION) $(@D)
+endef
+RECALBOX_ROMFS_COLECOVISION_CONFIGURE_CMDS += $(CONFIGURE_MAIN_COLECOVISION_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/colecovision/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-colecovision/roms/colecovision/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/colecovision/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-colecovision/roms/colecovision/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/colecovision/_readme.txt b/package/recalbox-romfs/recalbox-romfs-colecovision/roms/colecovision/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/colecovision/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-colecovision/roms/colecovision/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-dos/Config.in b/package/recalbox-romfs/recalbox-romfs-dos/Config.in
new file mode 100644
index 00000000000..384856af17a
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-dos/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_DOS
+ bool "recalbox-romfs-dos"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_DOSBOX
+ help
+ share_init/roms and xml for dos
diff --git a/package/recalbox-romfs/recalbox-romfs-dos/recalbox-romfs-dos.mk b/package/recalbox-romfs/recalbox-romfs-dos/recalbox-romfs-dos.mk
new file mode 100644
index 00000000000..acaaaed431a
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-dos/recalbox-romfs-dos.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-dos
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system dos --extension '.pc .PC .dos .DOS' --fullname 'Dos (x86)' --platform pc --theme pc BR2_PACKAGE_DOSBOX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_DOS_SOURCE =
+RECALBOX_ROMFS_DOS_SITE =
+RECALBOX_ROMFS_DOS_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_DOS = dos
+SYSTEM_XML_DOS = $(@D)/$(SYSTEM_NAME_DOS).xml
+# System rom path
+SOURCE_ROMDIR_DOS = $(RECALBOX_ROMFS_DOS_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_DOSBOX),y)
+define CONFIGURE_DOS
+ echo -e '\n' \
+ '\tDos (x86)\n' \
+ "\t$(SYSTEM_NAME_DOS)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_DOS)\n' \
+ '\t.pc .PC .dos .DOS\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tpc\n' \
+ '\tpc\n' \
+ '' > $(SYSTEM_XML_DOS)
+ cp -R $(SOURCE_ROMDIR_DOS) $(@D)
+endef
+RECALBOX_ROMFS_DOS_CONFIGURE_CMDS += $(CONFIGURE_DOS)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/dos/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-dos/roms/dos/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/dos/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-dos/roms/dos/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/dos/_readme.txt b/package/recalbox-romfs/recalbox-romfs-dos/roms/dos/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/dos/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-dos/roms/dos/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-dreamcast/Config.in b/package/recalbox-romfs/recalbox-romfs-dreamcast/Config.in
new file mode 100644
index 00000000000..f1ec28dd449
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-dreamcast/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_DREAMCAST
+ bool "recalbox-romfs-dreamcast"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_REICAST
+ help
+ share_init/roms and xml for dreamcast
diff --git a/package/recalbox-romfs/recalbox-romfs-dreamcast/recalbox-romfs-dreamcast.mk b/package/recalbox-romfs/recalbox-romfs-dreamcast/recalbox-romfs-dreamcast.mk
new file mode 100644
index 00000000000..1be604766b5
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-dreamcast/recalbox-romfs-dreamcast.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-dreamcast
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system dreamcast --extension '.gdi .GDI .cdi .CDI .chd .CHD' --fullname 'Sega Dreamcast' --platform dreamcast --theme dreamcast BR2_PACKAGE_REICAST
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_DREAMCAST_SOURCE =
+RECALBOX_ROMFS_DREAMCAST_SITE =
+RECALBOX_ROMFS_DREAMCAST_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_DREAMCAST = dreamcast
+SYSTEM_XML_DREAMCAST = $(@D)/$(SYSTEM_NAME_DREAMCAST).xml
+# System rom path
+SOURCE_ROMDIR_DREAMCAST = $(RECALBOX_ROMFS_DREAMCAST_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_REICAST),y)
+define CONFIGURE_DREAMCAST
+ echo -e '\n' \
+ '\tSega Dreamcast\n' \
+ "\t$(SYSTEM_NAME_DREAMCAST)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_DREAMCAST)\n' \
+ '\t.gdi .GDI .cdi .CDI .chd .CHD\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tdreamcast\n' \
+ '\tdreamcast\n' \
+ '' > $(SYSTEM_XML_DREAMCAST)
+ cp -R $(SOURCE_ROMDIR_DREAMCAST) $(@D)
+endef
+RECALBOX_ROMFS_DREAMCAST_CONFIGURE_CMDS += $(CONFIGURE_DREAMCAST)
+endif
+
+$(eval $(generic-package))
diff --git a/package/recalbox-romfs/recalbox-romfs-dreamcast/roms/dreamcast/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-dreamcast/roms/dreamcast/_lisezmoi.txt
new file mode 100644
index 00000000000..22affbc300b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-dreamcast/roms/dreamcast/_lisezmoi.txt
@@ -0,0 +1 @@
+Remplir ce fichier
\ No newline at end of file
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/dreamcast/_liszemoi.txt b/package/recalbox-romfs/recalbox-romfs-dreamcast/roms/dreamcast/_liszemoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/dreamcast/_liszemoi.txt
rename to package/recalbox-romfs/recalbox-romfs-dreamcast/roms/dreamcast/_liszemoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/dreamcast/_readme.txt b/package/recalbox-romfs/recalbox-romfs-dreamcast/roms/dreamcast/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/dreamcast/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-dreamcast/roms/dreamcast/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-fba/Config.in b/package/recalbox-romfs/recalbox-romfs-fba/Config.in
new file mode 100644
index 00000000000..d6caa5ba605
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-fba/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_FBA
+ bool "recalbox-romfs-fba"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_FBA \
+ || BR2_PACKAGE_PIFBA
+ help
+ share_init/roms and xml for fba
diff --git a/package/recalbox-romfs/recalbox-romfs-fba/recalbox-romfs-fba.mk b/package/recalbox-romfs/recalbox-romfs-fba/recalbox-romfs-fba.mk
new file mode 100644
index 00000000000..26a4ee27621
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-fba/recalbox-romfs-fba.mk
@@ -0,0 +1,100 @@
+################################################################################
+#
+# recalbox-romfs-fba
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system fba --extension '.zip .ZIP .fba .FBA' --fullname 'Final Burn Alpha' --platform arcade --theme fba libretro:fba:BR2_PACKAGE_LIBRETRO_FBA fba2x:fba2x:BR2_PACKAGE_PIFBA
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_FBA_SOURCE =
+RECALBOX_ROMFS_FBA_SITE =
+RECALBOX_ROMFS_FBA_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_FBA = fba
+SYSTEM_XML_FBA = $(@D)/$(SYSTEM_NAME_FBA).xml
+# System rom path
+SOURCE_ROMDIR_FBA = $(RECALBOX_ROMFS_FBA_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_PIFBA),)
+define CONFIGURE_MAIN_FBA_START
+ echo -e '\n' \
+ '\tFinal Burn Alpha\n' \
+ "\t$(SYSTEM_NAME_FBA)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_FBA)\n' \
+ '\t.zip .ZIP .fba .FBA\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tarcade\n' \
+ '\tfba\n' \
+ '\t' > $(SYSTEM_XML_FBA)
+
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_MAIN_FBA_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_PIFBA),)
+define CONFIGURE_FBA_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_FBA)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FBA)
+
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_FBA_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_FBA),y)
+define CONFIGURE_FBA_LIBRETRO_FBA_DEF
+ echo -e '\t\t\t\tfba' >> $(SYSTEM_XML_FBA)
+
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_FBA_LIBRETRO_FBA_DEF)
+endif
+
+define CONFIGURE_FBA_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FBA)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_FBA)
+
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_FBA_LIBRETRO_END)
+endif
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_PIFBA),)
+define CONFIGURE_FBA_FBA2X_START
+ echo -e '\t\t' >> $(SYSTEM_XML_FBA)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FBA)
+
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_FBA_FBA2X_START)
+
+ifeq ($(BR2_PACKAGE_PIFBA),y)
+define CONFIGURE_FBA_FBA2X_FBA2X_DEF
+ echo -e '\t\t\t\tfba2x' >> $(SYSTEM_XML_FBA)
+
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_FBA_FBA2X_FBA2X_DEF)
+endif
+
+define CONFIGURE_FBA_FBA2X_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FBA)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_FBA)
+
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_FBA_FBA2X_END)
+endif
+
+
+
+define CONFIGURE_MAIN_FBA_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_FBA)
+ cp -R $(SOURCE_ROMDIR_FBA) $(@D)
+endef
+RECALBOX_ROMFS_FBA_CONFIGURE_CMDS += $(CONFIGURE_MAIN_FBA_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-fba/roms/fba/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-fba/roms/fba/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba/_readme.txt b/package/recalbox-romfs/recalbox-romfs-fba/roms/fba/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-fba/roms/fba/_readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba/clrmamepro/fba_029671_od_release_10_working_roms.dat b/package/recalbox-romfs/recalbox-romfs-fba/roms/fba/clrmamepro/fba_029671_od_release_10_working_roms.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba/clrmamepro/fba_029671_od_release_10_working_roms.dat
rename to package/recalbox-romfs/recalbox-romfs-fba/roms/fba/clrmamepro/fba_029671_od_release_10_working_roms.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba/clrmamepro/piFBA_gamelist.txt b/package/recalbox-romfs/recalbox-romfs-fba/roms/fba/clrmamepro/piFBA_gamelist.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba/clrmamepro/piFBA_gamelist.txt
rename to package/recalbox-romfs/recalbox-romfs-fba/roms/fba/clrmamepro/piFBA_gamelist.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-fba_libretro/Config.in b/package/recalbox-romfs/recalbox-romfs-fba_libretro/Config.in
new file mode 100644
index 00000000000..c3230bd6ec2
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-fba_libretro/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_FBA_LIBRETRO
+ bool "recalbox-romfs-fba_libretro"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_FBA
+ help
+ share_init/roms and xml for fba_libretro
diff --git a/package/recalbox-romfs/recalbox-romfs-fba_libretro/recalbox-romfs-fba_libretro.mk b/package/recalbox-romfs/recalbox-romfs-fba_libretro/recalbox-romfs-fba_libretro.mk
new file mode 100644
index 00000000000..2f51828cd1d
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-fba_libretro/recalbox-romfs-fba_libretro.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-fba_libretro
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system fba_libretro --extension '.zip .ZIP .fba .FBA' --fullname 'FBA_LIBRETRO' --platform arcade --theme fba_libretro libretro:fba:BR2_PACKAGE_LIBRETRO_FBA
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_FBA_LIBRETRO_SOURCE =
+RECALBOX_ROMFS_FBA_LIBRETRO_SITE =
+RECALBOX_ROMFS_FBA_LIBRETRO_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_FBA_LIBRETRO = fba_libretro
+SYSTEM_XML_FBA_LIBRETRO = $(@D)/$(SYSTEM_NAME_FBA_LIBRETRO).xml
+# System rom path
+SOURCE_ROMDIR_FBA_LIBRETRO = $(RECALBOX_ROMFS_FBA_LIBRETRO_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FBA),)
+define CONFIGURE_MAIN_FBA_LIBRETRO_START
+ echo -e '\n' \
+ '\tFBA_LIBRETRO\n' \
+ "\t$(SYSTEM_NAME_FBA_LIBRETRO)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_FBA_LIBRETRO)\n' \
+ '\t.zip .ZIP .fba .FBA\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tarcade\n' \
+ '\tfba_libretro\n' \
+ '\t' > $(SYSTEM_XML_FBA_LIBRETRO)
+
+endef
+RECALBOX_ROMFS_FBA_LIBRETRO_CONFIGURE_CMDS += $(CONFIGURE_MAIN_FBA_LIBRETRO_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FBA),)
+define CONFIGURE_FBA_LIBRETRO_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_FBA_LIBRETRO)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FBA_LIBRETRO)
+
+endef
+RECALBOX_ROMFS_FBA_LIBRETRO_CONFIGURE_CMDS += $(CONFIGURE_FBA_LIBRETRO_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_FBA),y)
+define CONFIGURE_FBA_LIBRETRO_LIBRETRO_FBA_DEF
+ echo -e '\t\t\t\tfba' >> $(SYSTEM_XML_FBA_LIBRETRO)
+
+endef
+RECALBOX_ROMFS_FBA_LIBRETRO_CONFIGURE_CMDS += $(CONFIGURE_FBA_LIBRETRO_LIBRETRO_FBA_DEF)
+endif
+
+define CONFIGURE_FBA_LIBRETRO_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FBA_LIBRETRO)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_FBA_LIBRETRO)
+
+endef
+RECALBOX_ROMFS_FBA_LIBRETRO_CONFIGURE_CMDS += $(CONFIGURE_FBA_LIBRETRO_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_FBA_LIBRETRO_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_FBA_LIBRETRO)
+ cp -R $(SOURCE_ROMDIR_FBA_LIBRETRO) $(@D)
+endef
+RECALBOX_ROMFS_FBA_LIBRETRO_CONFIGURE_CMDS += $(CONFIGURE_MAIN_FBA_LIBRETRO_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/_readme.txt b/package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/_readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FB Alpha v0.2.97.39.dat b/package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FB Alpha v0.2.97.39.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FB Alpha v0.2.97.39.dat
rename to package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FB Alpha v0.2.97.39.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FBA_NEOGEO_only.dat b/package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FBA_NEOGEO_only.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FBA_NEOGEO_only.dat
rename to package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FBA_NEOGEO_only.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FBA_NEOGEO_parents_only.dat b/package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FBA_NEOGEO_parents_only.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FBA_NEOGEO_parents_only.dat
rename to package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FBA_NEOGEO_parents_only.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FBA_parents_only.dat b/package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FBA_parents_only.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/FBA_parents_only.dat
rename to package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/FBA_parents_only.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/fba_libretro_gamelist.txt b/package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/fba_libretro_gamelist.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fba_libretro/clrmamepro/fba_libretro_gamelist.txt
rename to package/recalbox-romfs/recalbox-romfs-fba_libretro/roms/fba_libretro/clrmamepro/fba_libretro_gamelist.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-fds/Config.in b/package/recalbox-romfs/recalbox-romfs-fds/Config.in
new file mode 100644
index 00000000000..64a9302b37a
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-fds/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_FDS
+ bool "recalbox-romfs-fds"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_FCEUMM \
+ || BR2_PACKAGE_LIBRETRO_NESTOPIA
+ help
+ share_init/roms and xml for fds
diff --git a/package/recalbox-romfs/recalbox-romfs-fds/recalbox-romfs-fds.mk b/package/recalbox-romfs/recalbox-romfs-fds/recalbox-romfs-fds.mk
new file mode 100644
index 00000000000..780b2e35167
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-fds/recalbox-romfs-fds.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-fds
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system fds --extension '.fds .FDS .zip .ZIP' --fullname 'Family Computer Disk System' --platform fds --theme fds libretro:fceumm:BR2_PACKAGE_LIBRETRO_FCEUMM libretro:nestopia:BR2_PACKAGE_LIBRETRO_NESTOPIA
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_FDS_SOURCE =
+RECALBOX_ROMFS_FDS_SITE =
+RECALBOX_ROMFS_FDS_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_FDS = fds
+SYSTEM_XML_FDS = $(@D)/$(SYSTEM_NAME_FDS).xml
+# System rom path
+SOURCE_ROMDIR_FDS = $(RECALBOX_ROMFS_FDS_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FCEUMM)$(BR2_PACKAGE_LIBRETRO_NESTOPIA),)
+define CONFIGURE_MAIN_FDS_START
+ echo -e '\n' \
+ '\tFamily Computer Disk System\n' \
+ "\t$(SYSTEM_NAME_FDS)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_FDS)\n' \
+ '\t.fds .FDS .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tfds\n' \
+ '\tfds\n' \
+ '\t' > $(SYSTEM_XML_FDS)
+
+endef
+RECALBOX_ROMFS_FDS_CONFIGURE_CMDS += $(CONFIGURE_MAIN_FDS_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FCEUMM)$(BR2_PACKAGE_LIBRETRO_NESTOPIA),)
+define CONFIGURE_FDS_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_FDS)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FDS)
+
+endef
+RECALBOX_ROMFS_FDS_CONFIGURE_CMDS += $(CONFIGURE_FDS_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_FCEUMM),y)
+define CONFIGURE_FDS_LIBRETRO_FCEUMM_DEF
+ echo -e '\t\t\t\tfceumm' >> $(SYSTEM_XML_FDS)
+
+endef
+RECALBOX_ROMFS_FDS_CONFIGURE_CMDS += $(CONFIGURE_FDS_LIBRETRO_FCEUMM_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_NESTOPIA),y)
+define CONFIGURE_FDS_LIBRETRO_NESTOPIA_DEF
+ echo -e '\t\t\t\tnestopia' >> $(SYSTEM_XML_FDS)
+
+endef
+RECALBOX_ROMFS_FDS_CONFIGURE_CMDS += $(CONFIGURE_FDS_LIBRETRO_NESTOPIA_DEF)
+endif
+
+define CONFIGURE_FDS_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_FDS)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_FDS)
+
+endef
+RECALBOX_ROMFS_FDS_CONFIGURE_CMDS += $(CONFIGURE_FDS_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_FDS_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_FDS)
+ cp -R $(SOURCE_ROMDIR_FDS) $(@D)
+endef
+RECALBOX_ROMFS_FDS_CONFIGURE_CMDS += $(CONFIGURE_MAIN_FDS_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fds/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-fds/roms/fds/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fds/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-fds/roms/fds/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/fds/_readme.txt b/package/recalbox-romfs/recalbox-romfs-fds/roms/fds/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/fds/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-fds/roms/fds/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-gamecube/Config.in b/package/recalbox-romfs/recalbox-romfs-gamecube/Config.in
new file mode 100644
index 00000000000..6c5495b0154
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gamecube/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_GAMECUBE
+ bool "recalbox-romfs-gamecube"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_DOLPHIN_EMU
+ help
+ share_init/roms and xml for gamecube
diff --git a/package/recalbox-romfs/recalbox-romfs-gamecube/recalbox-romfs-gamecube.mk b/package/recalbox-romfs/recalbox-romfs-gamecube/recalbox-romfs-gamecube.mk
new file mode 100644
index 00000000000..31f20fb36e1
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gamecube/recalbox-romfs-gamecube.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-gamecube
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system gamecube --extension '.iso .ISO .gc .GC .gcz .GCZ' --fullname 'GameCube' --platform gc --theme gc BR2_PACKAGE_DOLPHIN_EMU
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_GAMECUBE_SOURCE =
+RECALBOX_ROMFS_GAMECUBE_SITE =
+RECALBOX_ROMFS_GAMECUBE_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_GAMECUBE = gamecube
+SYSTEM_XML_GAMECUBE = $(@D)/$(SYSTEM_NAME_GAMECUBE).xml
+# System rom path
+SOURCE_ROMDIR_GAMECUBE = $(RECALBOX_ROMFS_GAMECUBE_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_DOLPHIN_EMU),y)
+define CONFIGURE_GAMECUBE
+ echo -e '\n' \
+ '\tGameCube\n' \
+ "\t$(SYSTEM_NAME_GAMECUBE)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_GAMECUBE)\n' \
+ '\t.iso .ISO .gc .GC .gcz .GCZ\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tgc\n' \
+ '\tgc\n' \
+ '' > $(SYSTEM_XML_GAMECUBE)
+ cp -R $(SOURCE_ROMDIR_GAMECUBE) $(@D)
+endef
+RECALBOX_ROMFS_GAMECUBE_CONFIGURE_CMDS += $(CONFIGURE_GAMECUBE)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gamecube/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-gamecube/roms/gamecube/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gamecube/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-gamecube/roms/gamecube/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gamecube/_readme.txt b/package/recalbox-romfs/recalbox-romfs-gamecube/roms/gamecube/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gamecube/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-gamecube/roms/gamecube/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-gamegear/Config.in b/package/recalbox-romfs/recalbox-romfs-gamegear/Config.in
new file mode 100644
index 00000000000..f371f021970
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gamegear/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_GAMEGEAR
+ bool "recalbox-romfs-gamegear"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GENESISPLUSGX \
+ || BR2_PACKAGE_LIBRETRO_PICODRIVE
+ help
+ share_init/roms and xml for gamegear
diff --git a/package/recalbox-romfs/recalbox-romfs-gamegear/recalbox-romfs-gamegear.mk b/package/recalbox-romfs/recalbox-romfs-gamegear/recalbox-romfs-gamegear.mk
new file mode 100644
index 00000000000..d48744b72a1
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gamegear/recalbox-romfs-gamegear.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-gamegear
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system gamegear --extension '.gg .GG .zip .ZIP' --fullname 'Sega Game Gear' --platform gamegear --theme gamegear libretro:genesisplusgx:BR2_PACKAGE_LIBRETRO_GENESISPLUSGX libretro:picodrive:BR2_PACKAGE_LIBRETRO_PICODRIVE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_GAMEGEAR_SOURCE =
+RECALBOX_ROMFS_GAMEGEAR_SITE =
+RECALBOX_ROMFS_GAMEGEAR_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_GAMEGEAR = gamegear
+SYSTEM_XML_GAMEGEAR = $(@D)/$(SYSTEM_NAME_GAMEGEAR).xml
+# System rom path
+SOURCE_ROMDIR_GAMEGEAR = $(RECALBOX_ROMFS_GAMEGEAR_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MAIN_GAMEGEAR_START
+ echo -e '\n' \
+ '\tSega Game Gear\n' \
+ "\t$(SYSTEM_NAME_GAMEGEAR)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_GAMEGEAR)\n' \
+ '\t.gg .GG .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tgamegear\n' \
+ '\tgamegear\n' \
+ '\t' > $(SYSTEM_XML_GAMEGEAR)
+
+endef
+RECALBOX_ROMFS_GAMEGEAR_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GAMEGEAR_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_GAMEGEAR_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_GAMEGEAR)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GAMEGEAR)
+
+endef
+RECALBOX_ROMFS_GAMEGEAR_CONFIGURE_CMDS += $(CONFIGURE_GAMEGEAR_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX),y)
+define CONFIGURE_GAMEGEAR_LIBRETRO_GENESISPLUSGX_DEF
+ echo -e '\t\t\t\tgenesisplusgx' >> $(SYSTEM_XML_GAMEGEAR)
+
+endef
+RECALBOX_ROMFS_GAMEGEAR_CONFIGURE_CMDS += $(CONFIGURE_GAMEGEAR_LIBRETRO_GENESISPLUSGX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),y)
+define CONFIGURE_GAMEGEAR_LIBRETRO_PICODRIVE_DEF
+ echo -e '\t\t\t\tpicodrive' >> $(SYSTEM_XML_GAMEGEAR)
+
+endef
+RECALBOX_ROMFS_GAMEGEAR_CONFIGURE_CMDS += $(CONFIGURE_GAMEGEAR_LIBRETRO_PICODRIVE_DEF)
+endif
+
+define CONFIGURE_GAMEGEAR_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GAMEGEAR)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_GAMEGEAR)
+
+endef
+RECALBOX_ROMFS_GAMEGEAR_CONFIGURE_CMDS += $(CONFIGURE_GAMEGEAR_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_GAMEGEAR_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_GAMEGEAR)
+ cp -R $(SOURCE_ROMDIR_GAMEGEAR) $(@D)
+endef
+RECALBOX_ROMFS_GAMEGEAR_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GAMEGEAR_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gamegear/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-gamegear/roms/gamegear/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gamegear/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-gamegear/roms/gamegear/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gamegear/_readme.txt b/package/recalbox-romfs/recalbox-romfs-gamegear/roms/gamegear/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gamegear/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-gamegear/roms/gamegear/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-gb/Config.in b/package/recalbox-romfs/recalbox-romfs-gb/Config.in
new file mode 100644
index 00000000000..d0065badd95
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gb/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_GB
+ bool "recalbox-romfs-gb"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GAMBATTE \
+ || BR2_PACKAGE_LIBRETRO_TGBDUAL
+ help
+ share_init/roms and xml for gb
diff --git a/package/recalbox-romfs/recalbox-romfs-gb/recalbox-romfs-gb.mk b/package/recalbox-romfs/recalbox-romfs-gb/recalbox-romfs-gb.mk
new file mode 100644
index 00000000000..2694a36f6dc
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gb/recalbox-romfs-gb.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-gb
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system gb --extension '.gb .GB .zip .ZIP' --fullname 'Game Boy' --platform gb --theme gb libretro:gambatte:BR2_PACKAGE_LIBRETRO_GAMBATTE libretro:tgbdual:BR2_PACKAGE_LIBRETRO_TGBDUAL
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_GB_SOURCE =
+RECALBOX_ROMFS_GB_SITE =
+RECALBOX_ROMFS_GB_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_GB = gb
+SYSTEM_XML_GB = $(@D)/$(SYSTEM_NAME_GB).xml
+# System rom path
+SOURCE_ROMDIR_GB = $(RECALBOX_ROMFS_GB_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE)$(BR2_PACKAGE_LIBRETRO_TGBDUAL),)
+define CONFIGURE_MAIN_GB_START
+ echo -e '\n' \
+ '\tGame Boy\n' \
+ "\t$(SYSTEM_NAME_GB)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_GB)\n' \
+ '\t.gb .GB .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tgb\n' \
+ '\tgb\n' \
+ '\t' > $(SYSTEM_XML_GB)
+
+endef
+RECALBOX_ROMFS_GB_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GB_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE)$(BR2_PACKAGE_LIBRETRO_TGBDUAL),)
+define CONFIGURE_GB_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_GB)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GB)
+
+endef
+RECALBOX_ROMFS_GB_CONFIGURE_CMDS += $(CONFIGURE_GB_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE),y)
+define CONFIGURE_GB_LIBRETRO_GAMBATTE_DEF
+ echo -e '\t\t\t\tgambatte' >> $(SYSTEM_XML_GB)
+
+endef
+RECALBOX_ROMFS_GB_CONFIGURE_CMDS += $(CONFIGURE_GB_LIBRETRO_GAMBATTE_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_TGBDUAL),y)
+define CONFIGURE_GB_LIBRETRO_TGBDUAL_DEF
+ echo -e '\t\t\t\ttgbdual' >> $(SYSTEM_XML_GB)
+
+endef
+RECALBOX_ROMFS_GB_CONFIGURE_CMDS += $(CONFIGURE_GB_LIBRETRO_TGBDUAL_DEF)
+endif
+
+define CONFIGURE_GB_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GB)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_GB)
+
+endef
+RECALBOX_ROMFS_GB_CONFIGURE_CMDS += $(CONFIGURE_GB_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_GB_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_GB)
+ cp -R $(SOURCE_ROMDIR_GB) $(@D)
+endef
+RECALBOX_ROMFS_GB_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GB_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gb/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-gb/roms/gb/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gb/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-gb/roms/gb/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gb/_readme.txt b/package/recalbox-romfs/recalbox-romfs-gb/roms/gb/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gb/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-gb/roms/gb/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-gba/Config.in b/package/recalbox-romfs/recalbox-romfs-gba/Config.in
new file mode 100644
index 00000000000..a4b6b4244af
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gba/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_GBA
+ bool "recalbox-romfs-gba"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GPSP \
+ || BR2_PACKAGE_LIBRETRO_MGBA \
+ || BR2_PACKAGE_LIBRETRO_METEOR
+ help
+ share_init/roms and xml for gba
diff --git a/package/recalbox-romfs/recalbox-romfs-gba/recalbox-romfs-gba.mk b/package/recalbox-romfs/recalbox-romfs-gba/recalbox-romfs-gba.mk
new file mode 100644
index 00000000000..3c6dd11bcda
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gba/recalbox-romfs-gba.mk
@@ -0,0 +1,91 @@
+################################################################################
+#
+# recalbox-romfs-gba
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system gba --extension '.gba .GBA .zip .ZIP' --fullname 'Game Boy Advance' --platform gba --theme gba libretro:gpsp:BR2_PACKAGE_LIBRETRO_GPSP libretro:mgba:BR2_PACKAGE_LIBRETRO_MGBA libretro:meteor:BR2_PACKAGE_LIBRETRO_METEOR
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_GBA_SOURCE =
+RECALBOX_ROMFS_GBA_SITE =
+RECALBOX_ROMFS_GBA_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_GBA = gba
+SYSTEM_XML_GBA = $(@D)/$(SYSTEM_NAME_GBA).xml
+# System rom path
+SOURCE_ROMDIR_GBA = $(RECALBOX_ROMFS_GBA_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GPSP)$(BR2_PACKAGE_LIBRETRO_MGBA)$(BR2_PACKAGE_LIBRETRO_METEOR),)
+define CONFIGURE_MAIN_GBA_START
+ echo -e '\n' \
+ '\tGame Boy Advance\n' \
+ "\t$(SYSTEM_NAME_GBA)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_GBA)\n' \
+ '\t.gba .GBA .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tgba\n' \
+ '\tgba\n' \
+ '\t' > $(SYSTEM_XML_GBA)
+
+endef
+RECALBOX_ROMFS_GBA_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GBA_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GPSP)$(BR2_PACKAGE_LIBRETRO_MGBA)$(BR2_PACKAGE_LIBRETRO_METEOR),)
+define CONFIGURE_GBA_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_GBA)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GBA)
+
+endef
+RECALBOX_ROMFS_GBA_CONFIGURE_CMDS += $(CONFIGURE_GBA_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GPSP),y)
+define CONFIGURE_GBA_LIBRETRO_GPSP_DEF
+ echo -e '\t\t\t\tgpsp' >> $(SYSTEM_XML_GBA)
+
+endef
+RECALBOX_ROMFS_GBA_CONFIGURE_CMDS += $(CONFIGURE_GBA_LIBRETRO_GPSP_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_MGBA),y)
+define CONFIGURE_GBA_LIBRETRO_MGBA_DEF
+ echo -e '\t\t\t\tmgba' >> $(SYSTEM_XML_GBA)
+
+endef
+RECALBOX_ROMFS_GBA_CONFIGURE_CMDS += $(CONFIGURE_GBA_LIBRETRO_MGBA_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_METEOR),y)
+define CONFIGURE_GBA_LIBRETRO_METEOR_DEF
+ echo -e '\t\t\t\tmeteor' >> $(SYSTEM_XML_GBA)
+
+endef
+RECALBOX_ROMFS_GBA_CONFIGURE_CMDS += $(CONFIGURE_GBA_LIBRETRO_METEOR_DEF)
+endif
+
+define CONFIGURE_GBA_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GBA)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_GBA)
+
+endef
+RECALBOX_ROMFS_GBA_CONFIGURE_CMDS += $(CONFIGURE_GBA_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_GBA_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_GBA)
+ cp -R $(SOURCE_ROMDIR_GBA) $(@D)
+endef
+RECALBOX_ROMFS_GBA_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GBA_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Anguna (Nathan Tolbert and Chris Hildenbrand).gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Anguna (Nathan Tolbert and Chris Hildenbrand).gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Anguna (Nathan Tolbert and Chris Hildenbrand).gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Anguna (Nathan Tolbert and Chris Hildenbrand).gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/GEMini (Mr Smayds).gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/GEMini (Mr Smayds).gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/GEMini (Mr Smayds).gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/GEMini (Mr Smayds).gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/SpaceTwins.gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/SpaceTwins.gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/SpaceTwins.gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/SpaceTwins.gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus Zero EV.gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus Zero EV.gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus Zero EV.gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus Zero EV.gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus Zero.gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus Zero.gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus Zero.gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus Zero.gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus.gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus.gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus.gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus.gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus2.gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus2.gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Uranus2.gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Uranus2.gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Waimanu (disjointedstudio).gba b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Waimanu (disjointedstudio).gba
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/Waimanu (disjointedstudio).gba
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/Waimanu (disjointedstudio).gba
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gba/_readme.txt b/package/recalbox-romfs/recalbox-romfs-gba/roms/gba/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gba/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-gba/roms/gba/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-gbc/Config.in b/package/recalbox-romfs/recalbox-romfs-gbc/Config.in
new file mode 100644
index 00000000000..440dad43bda
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gbc/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_GBC
+ bool "recalbox-romfs-gbc"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GAMBATTE \
+ || BR2_PACKAGE_LIBRETRO_TGBDUAL
+ help
+ share_init/roms and xml for gbc
diff --git a/package/recalbox-romfs/recalbox-romfs-gbc/recalbox-romfs-gbc.mk b/package/recalbox-romfs/recalbox-romfs-gbc/recalbox-romfs-gbc.mk
new file mode 100644
index 00000000000..009aed9e7d7
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gbc/recalbox-romfs-gbc.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-gbc
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system gbc --extension '.gb .GB .gbc .GBC .zip .ZIP' --fullname 'Game Boy Color' --platform gbc --theme gbc libretro:gambatte:BR2_PACKAGE_LIBRETRO_GAMBATTE libretro:tgbdual:BR2_PACKAGE_LIBRETRO_TGBDUAL
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_GBC_SOURCE =
+RECALBOX_ROMFS_GBC_SITE =
+RECALBOX_ROMFS_GBC_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_GBC = gbc
+SYSTEM_XML_GBC = $(@D)/$(SYSTEM_NAME_GBC).xml
+# System rom path
+SOURCE_ROMDIR_GBC = $(RECALBOX_ROMFS_GBC_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE)$(BR2_PACKAGE_LIBRETRO_TGBDUAL),)
+define CONFIGURE_MAIN_GBC_START
+ echo -e '\n' \
+ '\tGame Boy Color\n' \
+ "\t$(SYSTEM_NAME_GBC)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_GBC)\n' \
+ '\t.gb .GB .gbc .GBC .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tgbc\n' \
+ '\tgbc\n' \
+ '\t' > $(SYSTEM_XML_GBC)
+
+endef
+RECALBOX_ROMFS_GBC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GBC_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE)$(BR2_PACKAGE_LIBRETRO_TGBDUAL),)
+define CONFIGURE_GBC_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_GBC)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GBC)
+
+endef
+RECALBOX_ROMFS_GBC_CONFIGURE_CMDS += $(CONFIGURE_GBC_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE),y)
+define CONFIGURE_GBC_LIBRETRO_GAMBATTE_DEF
+ echo -e '\t\t\t\tgambatte' >> $(SYSTEM_XML_GBC)
+
+endef
+RECALBOX_ROMFS_GBC_CONFIGURE_CMDS += $(CONFIGURE_GBC_LIBRETRO_GAMBATTE_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_TGBDUAL),y)
+define CONFIGURE_GBC_LIBRETRO_TGBDUAL_DEF
+ echo -e '\t\t\t\ttgbdual' >> $(SYSTEM_XML_GBC)
+
+endef
+RECALBOX_ROMFS_GBC_CONFIGURE_CMDS += $(CONFIGURE_GBC_LIBRETRO_TGBDUAL_DEF)
+endif
+
+define CONFIGURE_GBC_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GBC)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_GBC)
+
+endef
+RECALBOX_ROMFS_GBC_CONFIGURE_CMDS += $(CONFIGURE_GBC_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_GBC_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_GBC)
+ cp -R $(SOURCE_ROMDIR_GBC) $(@D)
+endef
+RECALBOX_ROMFS_GBC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GBC_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gbc/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-gbc/roms/gbc/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gbc/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-gbc/roms/gbc/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gbc/_readme.txt b/package/recalbox-romfs/recalbox-romfs-gbc/roms/gbc/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gbc/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-gbc/roms/gbc/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-gw/Config.in b/package/recalbox-romfs/recalbox-romfs-gw/Config.in
new file mode 100644
index 00000000000..e59ebd349e3
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gw/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_GW
+ bool "recalbox-romfs-gw"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GW
+ help
+ share_init/roms and xml for gw
diff --git a/package/recalbox-romfs/recalbox-romfs-gw/recalbox-romfs-gw.mk b/package/recalbox-romfs/recalbox-romfs-gw/recalbox-romfs-gw.mk
new file mode 100644
index 00000000000..a807603f097
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-gw/recalbox-romfs-gw.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-gw
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system gw --extension '.zip .ZIP .mgw .MGW' --fullname 'Game and Watch' --platform gw --theme gw libretro:vb:BR2_PACKAGE_LIBRETRO_GW
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_GW_SOURCE =
+RECALBOX_ROMFS_GW_SITE =
+RECALBOX_ROMFS_GW_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_GW = gw
+SYSTEM_XML_GW = $(@D)/$(SYSTEM_NAME_GW).xml
+# System rom path
+SOURCE_ROMDIR_GW = $(RECALBOX_ROMFS_GW_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GW),)
+define CONFIGURE_MAIN_GW_START
+ echo -e '\n' \
+ '\tGame and Watch\n' \
+ "\t$(SYSTEM_NAME_GW)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_GW)\n' \
+ '\t.zip .ZIP .mgw .MGW\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tgw\n' \
+ '\tgw\n' \
+ '\t' > $(SYSTEM_XML_GW)
+
+endef
+RECALBOX_ROMFS_GW_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GW_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GW),)
+define CONFIGURE_GW_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_GW)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GW)
+
+endef
+RECALBOX_ROMFS_GW_CONFIGURE_CMDS += $(CONFIGURE_GW_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GW),y)
+define CONFIGURE_GW_LIBRETRO_VB_DEF
+ echo -e '\t\t\t\tvb' >> $(SYSTEM_XML_GW)
+
+endef
+RECALBOX_ROMFS_GW_CONFIGURE_CMDS += $(CONFIGURE_GW_LIBRETRO_VB_DEF)
+endif
+
+define CONFIGURE_GW_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_GW)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_GW)
+
+endef
+RECALBOX_ROMFS_GW_CONFIGURE_CMDS += $(CONFIGURE_GW_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_GW_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_GW)
+ cp -R $(SOURCE_ROMDIR_GW) $(@D)
+endef
+RECALBOX_ROMFS_GW_CONFIGURE_CMDS += $(CONFIGURE_MAIN_GW_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gw/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-gw/roms/gw/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gw/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-gw/roms/gw/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/gw/_readme.txt b/package/recalbox-romfs/recalbox-romfs-gw/roms/gw/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/gw/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-gw/roms/gw/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-imageviewer/Config.in b/package/recalbox-romfs/recalbox-romfs-imageviewer/Config.in
new file mode 100644
index 00000000000..6b9bf0de031
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-imageviewer/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_IMAGEVIEWER
+ bool "recalbox-romfs-imageviewer"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_RETROARCH
+ help
+ share_init/roms and xml for imageviewer
diff --git a/package/recalbox-romfs/recalbox-romfs-imageviewer/recalbox-romfs-imageviewer.mk b/package/recalbox-romfs/recalbox-romfs-imageviewer/recalbox-romfs-imageviewer.mk
new file mode 100644
index 00000000000..72d9c4527dc
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-imageviewer/recalbox-romfs-imageviewer.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-imageviewer
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system imageviewer --extension '.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .JPG .JPEG .PNG .BMP .PSD .TGA .GIF .HDR .PIC .PPM .PGM"' --fullname 'Screenshots' --platform ignore --theme imageviewer BR2_PACKAGE_RETROARCH
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_IMAGEVIEWER_SOURCE =
+RECALBOX_ROMFS_IMAGEVIEWER_SITE =
+RECALBOX_ROMFS_IMAGEVIEWER_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_IMAGEVIEWER = imageviewer
+SYSTEM_XML_IMAGEVIEWER = $(@D)/$(SYSTEM_NAME_IMAGEVIEWER).xml
+# System rom path
+SOURCE_ROMDIR_IMAGEVIEWER = $(RECALBOX_ROMFS_IMAGEVIEWER_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_RETROARCH),y)
+define CONFIGURE_IMAGEVIEWER
+ echo -e '\n' \
+ '\tScreenshots\n' \
+ "\t$(SYSTEM_NAME_IMAGEVIEWER)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_IMAGEVIEWER)\n' \
+ '\t.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .JPG .JPEG .PNG .BMP .PSD .TGA .GIF .HDR .PIC .PPM .PGM"\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tignore\n' \
+ '\timageviewer\n' \
+ '' > $(SYSTEM_XML_IMAGEVIEWER)
+ cp -R $(SOURCE_ROMDIR_IMAGEVIEWER) $(@D)
+endef
+RECALBOX_ROMFS_IMAGEVIEWER_CONFIGURE_CMDS += $(CONFIGURE_IMAGEVIEWER)
+endif
+
+$(eval $(generic-package))
diff --git a/package/recalbox-romfs/recalbox-romfs-imageviewer/roms/imageviewer/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-imageviewer/roms/imageviewer/_lisezmoi.txt
new file mode 100644
index 00000000000..22affbc300b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-imageviewer/roms/imageviewer/_lisezmoi.txt
@@ -0,0 +1 @@
+Remplir ce fichier
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-imageviewer/roms/imageviewer/_readme.txt b/package/recalbox-romfs/recalbox-romfs-imageviewer/roms/imageviewer/_readme.txt
new file mode 100644
index 00000000000..036cd7999a2
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-imageviewer/roms/imageviewer/_readme.txt
@@ -0,0 +1 @@
+Please fill the file
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-lutro/Config.in b/package/recalbox-romfs/recalbox-romfs-lutro/Config.in
new file mode 100644
index 00000000000..6bad99e7b93
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-lutro/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_LUTRO
+ bool "recalbox-romfs-lutro"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_LUTRO
+ help
+ share_init/roms and xml for lutro
diff --git a/package/recalbox-romfs/recalbox-romfs-lutro/recalbox-romfs-lutro.mk b/package/recalbox-romfs/recalbox-romfs-lutro/recalbox-romfs-lutro.mk
new file mode 100644
index 00000000000..cf42aed222e
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-lutro/recalbox-romfs-lutro.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-lutro
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system lutro --extension '.zip .ZIP .lua .LUA .lutro .LUTRO' --fullname 'Lutro' --platform lutro --theme lutro libretro:lutro:BR2_PACKAGE_LIBRETRO_LUTRO
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_LUTRO_SOURCE =
+RECALBOX_ROMFS_LUTRO_SITE =
+RECALBOX_ROMFS_LUTRO_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_LUTRO = lutro
+SYSTEM_XML_LUTRO = $(@D)/$(SYSTEM_NAME_LUTRO).xml
+# System rom path
+SOURCE_ROMDIR_LUTRO = $(RECALBOX_ROMFS_LUTRO_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_LUTRO),)
+define CONFIGURE_MAIN_LUTRO_START
+ echo -e '\n' \
+ '\tLutro\n' \
+ "\t$(SYSTEM_NAME_LUTRO)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_LUTRO)\n' \
+ '\t.zip .ZIP .lua .LUA .lutro .LUTRO\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tlutro\n' \
+ '\tlutro\n' \
+ '\t' > $(SYSTEM_XML_LUTRO)
+
+endef
+RECALBOX_ROMFS_LUTRO_CONFIGURE_CMDS += $(CONFIGURE_MAIN_LUTRO_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_LUTRO),)
+define CONFIGURE_LUTRO_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_LUTRO)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_LUTRO)
+
+endef
+RECALBOX_ROMFS_LUTRO_CONFIGURE_CMDS += $(CONFIGURE_LUTRO_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_LUTRO),y)
+define CONFIGURE_LUTRO_LIBRETRO_LUTRO_DEF
+ echo -e '\t\t\t\tlutro' >> $(SYSTEM_XML_LUTRO)
+
+endef
+RECALBOX_ROMFS_LUTRO_CONFIGURE_CMDS += $(CONFIGURE_LUTRO_LIBRETRO_LUTRO_DEF)
+endif
+
+define CONFIGURE_LUTRO_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_LUTRO)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_LUTRO)
+
+endef
+RECALBOX_ROMFS_LUTRO_CONFIGURE_CMDS += $(CONFIGURE_LUTRO_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_LUTRO_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_LUTRO)
+ cp -R $(SOURCE_ROMDIR_LUTRO) $(@D)
+endef
+RECALBOX_ROMFS_LUTRO_CONFIGURE_CMDS += $(CONFIGURE_MAIN_LUTRO_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/lutro/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-lutro/roms/lutro/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/lutro/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-lutro/roms/lutro/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/lutro/_readme.txt b/package/recalbox-romfs/recalbox-romfs-lutro/roms/lutro/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/lutro/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-lutro/roms/lutro/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-lynx/Config.in b/package/recalbox-romfs/recalbox-romfs-lynx/Config.in
new file mode 100644
index 00000000000..18845ed6c0a
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-lynx/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_LYNX
+ bool "recalbox-romfs-lynx"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_LYNX
+ help
+ share_init/roms and xml for lynx
diff --git a/package/recalbox-romfs/recalbox-romfs-lynx/recalbox-romfs-lynx.mk b/package/recalbox-romfs/recalbox-romfs-lynx/recalbox-romfs-lynx.mk
new file mode 100644
index 00000000000..e727a7cedba
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-lynx/recalbox-romfs-lynx.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-lynx
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system lynx --extension '.zip .ZIP .lnx .LNX' --fullname 'Lynx' --platform atarilynx --theme lynx libretro:atarilynx:BR2_PACKAGE_LIBRETRO_BEETLE_LYNX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_LYNX_SOURCE =
+RECALBOX_ROMFS_LYNX_SITE =
+RECALBOX_ROMFS_LYNX_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_LYNX = lynx
+SYSTEM_XML_LYNX = $(@D)/$(SYSTEM_NAME_LYNX).xml
+# System rom path
+SOURCE_ROMDIR_LYNX = $(RECALBOX_ROMFS_LYNX_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_LYNX),)
+define CONFIGURE_MAIN_LYNX_START
+ echo -e '\n' \
+ '\tLynx\n' \
+ "\t$(SYSTEM_NAME_LYNX)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_LYNX)\n' \
+ '\t.zip .ZIP .lnx .LNX\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tatarilynx\n' \
+ '\tlynx\n' \
+ '\t' > $(SYSTEM_XML_LYNX)
+
+endef
+RECALBOX_ROMFS_LYNX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_LYNX_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_LYNX),)
+define CONFIGURE_LYNX_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_LYNX)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_LYNX)
+
+endef
+RECALBOX_ROMFS_LYNX_CONFIGURE_CMDS += $(CONFIGURE_LYNX_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_LYNX),y)
+define CONFIGURE_LYNX_LIBRETRO_ATARILYNX_DEF
+ echo -e '\t\t\t\tatarilynx' >> $(SYSTEM_XML_LYNX)
+
+endef
+RECALBOX_ROMFS_LYNX_CONFIGURE_CMDS += $(CONFIGURE_LYNX_LIBRETRO_ATARILYNX_DEF)
+endif
+
+define CONFIGURE_LYNX_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_LYNX)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_LYNX)
+
+endef
+RECALBOX_ROMFS_LYNX_CONFIGURE_CMDS += $(CONFIGURE_LYNX_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_LYNX_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_LYNX)
+ cp -R $(SOURCE_ROMDIR_LYNX) $(@D)
+endef
+RECALBOX_ROMFS_LYNX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_LYNX_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/lynx/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-lynx/roms/lynx/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/lynx/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-lynx/roms/lynx/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/lynx/_readme.txt b/package/recalbox-romfs/recalbox-romfs-lynx/roms/lynx/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/lynx/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-lynx/roms/lynx/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-mame/Config.in b/package/recalbox-romfs/recalbox-romfs-mame/Config.in
new file mode 100644
index 00000000000..e2e899f9625
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-mame/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_MAME
+ bool "recalbox-romfs-mame"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_MAME2003 \
+ || BR2_PACKAGE_LIBRETRO_IMAME \
+ || BR2_PACKAGE_ADVANCEMAME
+ help
+ share_init/roms and xml for mame
diff --git a/package/recalbox-romfs/recalbox-romfs-mame/recalbox-romfs-mame.mk b/package/recalbox-romfs/recalbox-romfs-mame/recalbox-romfs-mame.mk
new file mode 100644
index 00000000000..6ba528dfa17
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-mame/recalbox-romfs-mame.mk
@@ -0,0 +1,108 @@
+################################################################################
+#
+# recalbox-romfs-mame
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system mame --extension '.zip .ZIP' --fullname 'Mame' --platform mame --theme mame libretro:mame078:BR2_PACKAGE_LIBRETRO_MAME2003 libretro:imame4all:BR2_PACKAGE_LIBRETRO_IMAME advancemame:advancemame:BR2_PACKAGE_ADVANCEMAME
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_MAME_SOURCE =
+RECALBOX_ROMFS_MAME_SITE =
+RECALBOX_ROMFS_MAME_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_MAME = mame
+SYSTEM_XML_MAME = $(@D)/$(SYSTEM_NAME_MAME).xml
+# System rom path
+SOURCE_ROMDIR_MAME = $(RECALBOX_ROMFS_MAME_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_ADVANCEMAME),)
+define CONFIGURE_MAIN_MAME_START
+ echo -e '\n' \
+ '\tMame\n' \
+ "\t$(SYSTEM_NAME_MAME)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_MAME)\n' \
+ '\t.zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tmame\n' \
+ '\tmame\n' \
+ '\t' > $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MAME_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_ADVANCEMAME),)
+define CONFIGURE_MAME_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_MAME)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAME_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_MAME2003),y)
+define CONFIGURE_MAME_LIBRETRO_MAME078_DEF
+ echo -e '\t\t\t\tmame078' >> $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAME_LIBRETRO_MAME078_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_IMAME),y)
+define CONFIGURE_MAME_LIBRETRO_IMAME4ALL_DEF
+ echo -e '\t\t\t\timame4all' >> $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAME_LIBRETRO_IMAME4ALL_DEF)
+endif
+
+define CONFIGURE_MAME_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MAME)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAME_LIBRETRO_END)
+endif
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_ADVANCEMAME),)
+define CONFIGURE_MAME_ADVANCEMAME_START
+ echo -e '\t\t' >> $(SYSTEM_XML_MAME)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAME_ADVANCEMAME_START)
+
+ifeq ($(BR2_PACKAGE_ADVANCEMAME),y)
+define CONFIGURE_MAME_ADVANCEMAME_ADVANCEMAME_DEF
+ echo -e '\t\t\t\tadvancemame' >> $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAME_ADVANCEMAME_ADVANCEMAME_DEF)
+endif
+
+define CONFIGURE_MAME_ADVANCEMAME_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MAME)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_MAME)
+
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAME_ADVANCEMAME_END)
+endif
+
+
+
+define CONFIGURE_MAIN_MAME_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_MAME)
+ cp -R $(SOURCE_ROMDIR_MAME) $(@D)
+endef
+RECALBOX_ROMFS_MAME_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MAME_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/_readme.txt b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/_readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/imame4all/imame4all.dat b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/imame4all/imame4all.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/imame4all/imame4all.dat
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/imame4all/imame4all.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/imame4all/imame4all_gamelist.txt b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/imame4all/imame4all_gamelist.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/imame4all/imame4all_gamelist.txt
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/imame4all/imame4all_gamelist.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/mame2003/mame2003.dat b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/mame2003/mame2003.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/mame2003/mame2003.dat
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/mame2003/mame2003.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/mame2003/mame2003_parents_only.dat b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/mame2003/mame2003_parents_only.dat
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/clrmamepro/mame2003/mame2003_parents_only.dat
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/clrmamepro/mame2003/mame2003_parents_only.dat
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/cfg/.keep b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/cfg/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/cfg/.keep
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/cfg/.keep
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/diff/.keep b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/diff/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/diff/.keep
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/diff/.keep
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/hi/.keep b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/hi/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/hi/.keep
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/hi/.keep
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/inp/.keep b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/inp/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/inp/.keep
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/inp/.keep
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/memcard/.keep b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/memcard/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/memcard/.keep
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/memcard/.keep
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/nvram/.keep b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/nvram/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/nvram/.keep
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/nvram/.keep
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/snap/.keep b/package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/snap/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mame/mame2003/snap/.keep
rename to package/recalbox-romfs/recalbox-romfs-mame/roms/mame/mame2003/snap/.keep
diff --git a/package/recalbox-romfs/recalbox-romfs-mastersystem/Config.in b/package/recalbox-romfs/recalbox-romfs-mastersystem/Config.in
new file mode 100644
index 00000000000..099bac74b5a
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-mastersystem/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_MASTERSYSTEM
+ bool "recalbox-romfs-mastersystem"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GENESISPLUSGX \
+ || BR2_PACKAGE_LIBRETRO_PICODRIVE
+ help
+ share_init/roms and xml for mastersystem
diff --git a/package/recalbox-romfs/recalbox-romfs-mastersystem/recalbox-romfs-mastersystem.mk b/package/recalbox-romfs/recalbox-romfs-mastersystem/recalbox-romfs-mastersystem.mk
new file mode 100644
index 00000000000..133d2ca6d51
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-mastersystem/recalbox-romfs-mastersystem.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-mastersystem
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system mastersystem --extension '.sms .SMS .zip .ZIP' --fullname 'Sega Master System / Mark III' --platform mastersystem --theme mastersystem libretro:genesisplusgx:BR2_PACKAGE_LIBRETRO_GENESISPLUSGX libretro:picodrive:BR2_PACKAGE_LIBRETRO_PICODRIVE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_MASTERSYSTEM_SOURCE =
+RECALBOX_ROMFS_MASTERSYSTEM_SITE =
+RECALBOX_ROMFS_MASTERSYSTEM_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_MASTERSYSTEM = mastersystem
+SYSTEM_XML_MASTERSYSTEM = $(@D)/$(SYSTEM_NAME_MASTERSYSTEM).xml
+# System rom path
+SOURCE_ROMDIR_MASTERSYSTEM = $(RECALBOX_ROMFS_MASTERSYSTEM_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MAIN_MASTERSYSTEM_START
+ echo -e '\n' \
+ '\tSega Master System / Mark III\n' \
+ "\t$(SYSTEM_NAME_MASTERSYSTEM)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_MASTERSYSTEM)\n' \
+ '\t.sms .SMS .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tmastersystem\n' \
+ '\tmastersystem\n' \
+ '\t' > $(SYSTEM_XML_MASTERSYSTEM)
+
+endef
+RECALBOX_ROMFS_MASTERSYSTEM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MASTERSYSTEM_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MASTERSYSTEM_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_MASTERSYSTEM)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MASTERSYSTEM)
+
+endef
+RECALBOX_ROMFS_MASTERSYSTEM_CONFIGURE_CMDS += $(CONFIGURE_MASTERSYSTEM_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX),y)
+define CONFIGURE_MASTERSYSTEM_LIBRETRO_GENESISPLUSGX_DEF
+ echo -e '\t\t\t\tgenesisplusgx' >> $(SYSTEM_XML_MASTERSYSTEM)
+
+endef
+RECALBOX_ROMFS_MASTERSYSTEM_CONFIGURE_CMDS += $(CONFIGURE_MASTERSYSTEM_LIBRETRO_GENESISPLUSGX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),y)
+define CONFIGURE_MASTERSYSTEM_LIBRETRO_PICODRIVE_DEF
+ echo -e '\t\t\t\tpicodrive' >> $(SYSTEM_XML_MASTERSYSTEM)
+
+endef
+RECALBOX_ROMFS_MASTERSYSTEM_CONFIGURE_CMDS += $(CONFIGURE_MASTERSYSTEM_LIBRETRO_PICODRIVE_DEF)
+endif
+
+define CONFIGURE_MASTERSYSTEM_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MASTERSYSTEM)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_MASTERSYSTEM)
+
+endef
+RECALBOX_ROMFS_MASTERSYSTEM_CONFIGURE_CMDS += $(CONFIGURE_MASTERSYSTEM_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_MASTERSYSTEM_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_MASTERSYSTEM)
+ cp -R $(SOURCE_ROMDIR_MASTERSYSTEM) $(@D)
+endef
+RECALBOX_ROMFS_MASTERSYSTEM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MASTERSYSTEM_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Digger Chan (Aypok).sms b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Digger Chan (Aypok).sms
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Digger Chan (Aypok).sms
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Digger Chan (Aypok).sms
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).LICENCE.txt b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).LICENCE.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).LICENCE.txt
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).LICENCE.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).README.txt b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).README.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).README.txt
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Digger Chan (Aypok)/Digger Chan (Aypok).README.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k.sms b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k.sms
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k.sms
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k.sms
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k/._Instructions.png b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k/._Instructions.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k/._Instructions.png
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k/._Instructions.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k/Instructions.png b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k/Instructions.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k/Instructions.png
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k/Instructions.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k/ScreenShot.png b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k/ScreenShot.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/Pong Master 4k/ScreenShot.png
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/Pong Master 4k/ScreenShot.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/_readme.txt b/package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/mastersystem/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-mastersystem/roms/mastersystem/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-megadrive/Config.in b/package/recalbox-romfs/recalbox-romfs-megadrive/Config.in
new file mode 100644
index 00000000000..588ef15c581
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-megadrive/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_MEGADRIVE
+ bool "recalbox-romfs-megadrive"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GENESISPLUSGX \
+ || BR2_PACKAGE_LIBRETRO_PICODRIVE
+ help
+ share_init/roms and xml for megadrive
diff --git a/package/recalbox-romfs/recalbox-romfs-megadrive/recalbox-romfs-megadrive.mk b/package/recalbox-romfs/recalbox-romfs-megadrive/recalbox-romfs-megadrive.mk
new file mode 100644
index 00000000000..b7c6bb32e91
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-megadrive/recalbox-romfs-megadrive.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-megadrive
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system megadrive --extension '.md .MD .bin .BIN .zip .ZIP .gen .GEN .smd .SMD' --fullname 'Sega Megadrive' --platform megadrive --theme megadrive libretro:genesisplusgx:BR2_PACKAGE_LIBRETRO_GENESISPLUSGX libretro:picodrive:BR2_PACKAGE_LIBRETRO_PICODRIVE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_MEGADRIVE_SOURCE =
+RECALBOX_ROMFS_MEGADRIVE_SITE =
+RECALBOX_ROMFS_MEGADRIVE_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_MEGADRIVE = megadrive
+SYSTEM_XML_MEGADRIVE = $(@D)/$(SYSTEM_NAME_MEGADRIVE).xml
+# System rom path
+SOURCE_ROMDIR_MEGADRIVE = $(RECALBOX_ROMFS_MEGADRIVE_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MAIN_MEGADRIVE_START
+ echo -e '\n' \
+ '\tSega Megadrive\n' \
+ "\t$(SYSTEM_NAME_MEGADRIVE)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_MEGADRIVE)\n' \
+ '\t.md .MD .bin .BIN .zip .ZIP .gen .GEN .smd .SMD\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tmegadrive\n' \
+ '\tmegadrive\n' \
+ '\t' > $(SYSTEM_XML_MEGADRIVE)
+
+endef
+RECALBOX_ROMFS_MEGADRIVE_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MEGADRIVE_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MEGADRIVE_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_MEGADRIVE)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MEGADRIVE)
+
+endef
+RECALBOX_ROMFS_MEGADRIVE_CONFIGURE_CMDS += $(CONFIGURE_MEGADRIVE_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX),y)
+define CONFIGURE_MEGADRIVE_LIBRETRO_GENESISPLUSGX_DEF
+ echo -e '\t\t\t\tgenesisplusgx' >> $(SYSTEM_XML_MEGADRIVE)
+
+endef
+RECALBOX_ROMFS_MEGADRIVE_CONFIGURE_CMDS += $(CONFIGURE_MEGADRIVE_LIBRETRO_GENESISPLUSGX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),y)
+define CONFIGURE_MEGADRIVE_LIBRETRO_PICODRIVE_DEF
+ echo -e '\t\t\t\tpicodrive' >> $(SYSTEM_XML_MEGADRIVE)
+
+endef
+RECALBOX_ROMFS_MEGADRIVE_CONFIGURE_CMDS += $(CONFIGURE_MEGADRIVE_LIBRETRO_PICODRIVE_DEF)
+endif
+
+define CONFIGURE_MEGADRIVE_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MEGADRIVE)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_MEGADRIVE)
+
+endef
+RECALBOX_ROMFS_MEGADRIVE_CONFIGURE_CMDS += $(CONFIGURE_MEGADRIVE_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_MEGADRIVE_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_MEGADRIVE)
+ cp -R $(SOURCE_ROMDIR_MEGADRIVE) $(@D)
+endef
+RECALBOX_ROMFS_MEGADRIVE_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MEGADRIVE_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/megadrive/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-megadrive/roms/megadrive/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/megadrive/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-megadrive/roms/megadrive/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/megadrive/_readme.txt b/package/recalbox-romfs/recalbox-romfs-megadrive/roms/megadrive/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/megadrive/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-megadrive/roms/megadrive/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-moonlight/Config.in b/package/recalbox-romfs/recalbox-romfs-moonlight/Config.in
new file mode 100644
index 00000000000..3eb8f203ac1
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-moonlight/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_MOONLIGHT
+ bool "recalbox-romfs-moonlight"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_MOONLIGHT_EMBEDDED
+ help
+ share_init/roms and xml for moonlight
diff --git a/package/recalbox-romfs/recalbox-romfs-moonlight/recalbox-romfs-moonlight.mk b/package/recalbox-romfs/recalbox-romfs-moonlight/recalbox-romfs-moonlight.mk
new file mode 100644
index 00000000000..ebbf0826c54
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-moonlight/recalbox-romfs-moonlight.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-moonlight
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system moonlight --extension '.moonlight .MOONLIGHT' --fullname 'Moonlight' --platform pc --theme moonlight BR2_PACKAGE_MOONLIGHT_EMBEDDED
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_MOONLIGHT_SOURCE =
+RECALBOX_ROMFS_MOONLIGHT_SITE =
+RECALBOX_ROMFS_MOONLIGHT_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_MOONLIGHT = moonlight
+SYSTEM_XML_MOONLIGHT = $(@D)/$(SYSTEM_NAME_MOONLIGHT).xml
+# System rom path
+SOURCE_ROMDIR_MOONLIGHT = $(RECALBOX_ROMFS_MOONLIGHT_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_MOONLIGHT_EMBEDDED),y)
+define CONFIGURE_MOONLIGHT
+ echo -e '\n' \
+ '\tMoonlight\n' \
+ "\t$(SYSTEM_NAME_MOONLIGHT)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_MOONLIGHT)\n' \
+ '\t.moonlight .MOONLIGHT\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tpc\n' \
+ '\tmoonlight\n' \
+ '' > $(SYSTEM_XML_MOONLIGHT)
+ cp -R $(SOURCE_ROMDIR_MOONLIGHT) $(@D)
+endef
+RECALBOX_ROMFS_MOONLIGHT_CONFIGURE_CMDS += $(CONFIGURE_MOONLIGHT)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/moonlight/.keep b/package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/.keep
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/moonlight/.keep
rename to package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/.keep
diff --git a/package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/_lisezmoi.txt
new file mode 100644
index 00000000000..22affbc300b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/_lisezmoi.txt
@@ -0,0 +1 @@
+Remplir ce fichier
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/_readme.txt b/package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/_readme.txt
new file mode 100644
index 00000000000..036cd7999a2
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-moonlight/roms/moonlight/_readme.txt
@@ -0,0 +1 @@
+Please fill the file
\ No newline at end of file
diff --git a/package/recalbox-romfs/recalbox-romfs-msx/Config.in b/package/recalbox-romfs/recalbox-romfs-msx/Config.in
new file mode 100644
index 00000000000..d14ff7e296a
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-msx/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_MSX
+ bool "recalbox-romfs-msx"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BLUEMSX
+ help
+ share_init/roms and xml for msx
diff --git a/package/recalbox-romfs/recalbox-romfs-msx/recalbox-romfs-msx.mk b/package/recalbox-romfs/recalbox-romfs-msx/recalbox-romfs-msx.mk
new file mode 100644
index 00000000000..6600c347e62
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-msx/recalbox-romfs-msx.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-msx
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system msx --extension '.mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP' --fullname 'MSX' --platform msx --theme msx libretro:bluemsx:BR2_PACKAGE_LIBRETRO_BLUEMSX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_MSX_SOURCE =
+RECALBOX_ROMFS_MSX_SITE =
+RECALBOX_ROMFS_MSX_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_MSX = msx
+SYSTEM_XML_MSX = $(@D)/$(SYSTEM_NAME_MSX).xml
+# System rom path
+SOURCE_ROMDIR_MSX = $(RECALBOX_ROMFS_MSX_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_MAIN_MSX_START
+ echo -e '\n' \
+ '\tMSX\n' \
+ "\t$(SYSTEM_NAME_MSX)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_MSX)\n' \
+ '\t.mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tmsx\n' \
+ '\tmsx\n' \
+ '\t' > $(SYSTEM_XML_MSX)
+
+endef
+RECALBOX_ROMFS_MSX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MSX_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_MSX_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_MSX)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MSX)
+
+endef
+RECALBOX_ROMFS_MSX_CONFIGURE_CMDS += $(CONFIGURE_MSX_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),y)
+define CONFIGURE_MSX_LIBRETRO_BLUEMSX_DEF
+ echo -e '\t\t\t\tbluemsx' >> $(SYSTEM_XML_MSX)
+
+endef
+RECALBOX_ROMFS_MSX_CONFIGURE_CMDS += $(CONFIGURE_MSX_LIBRETRO_BLUEMSX_DEF)
+endif
+
+define CONFIGURE_MSX_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MSX)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_MSX)
+
+endef
+RECALBOX_ROMFS_MSX_CONFIGURE_CMDS += $(CONFIGURE_MSX_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_MSX_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_MSX)
+ cp -R $(SOURCE_ROMDIR_MSX) $(@D)
+endef
+RECALBOX_ROMFS_MSX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MSX_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/msx/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-msx/roms/msx/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/msx/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-msx/roms/msx/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/msx/_readme.txt b/package/recalbox-romfs/recalbox-romfs-msx/roms/msx/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/msx/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-msx/roms/msx/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-msx1/Config.in b/package/recalbox-romfs/recalbox-romfs-msx1/Config.in
new file mode 100644
index 00000000000..c48935f2dd0
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-msx1/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_MSX1
+ bool "recalbox-romfs-msx1"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BLUEMSX
+ help
+ share_init/roms and xml for msx1
diff --git a/package/recalbox-romfs/recalbox-romfs-msx1/recalbox-romfs-msx1.mk b/package/recalbox-romfs/recalbox-romfs-msx1/recalbox-romfs-msx1.mk
new file mode 100644
index 00000000000..9239fe0663b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-msx1/recalbox-romfs-msx1.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-msx1
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system msx1 --extension '.mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP' --fullname 'MSX1' --platform msx --theme msx1 libretro:bluemsx:BR2_PACKAGE_LIBRETRO_BLUEMSX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_MSX1_SOURCE =
+RECALBOX_ROMFS_MSX1_SITE =
+RECALBOX_ROMFS_MSX1_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_MSX1 = msx1
+SYSTEM_XML_MSX1 = $(@D)/$(SYSTEM_NAME_MSX1).xml
+# System rom path
+SOURCE_ROMDIR_MSX1 = $(RECALBOX_ROMFS_MSX1_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_MAIN_MSX1_START
+ echo -e '\n' \
+ '\tMSX1\n' \
+ "\t$(SYSTEM_NAME_MSX1)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_MSX1)\n' \
+ '\t.mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tmsx\n' \
+ '\tmsx1\n' \
+ '\t' > $(SYSTEM_XML_MSX1)
+
+endef
+RECALBOX_ROMFS_MSX1_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MSX1_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_MSX1_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_MSX1)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MSX1)
+
+endef
+RECALBOX_ROMFS_MSX1_CONFIGURE_CMDS += $(CONFIGURE_MSX1_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),y)
+define CONFIGURE_MSX1_LIBRETRO_BLUEMSX_DEF
+ echo -e '\t\t\t\tbluemsx' >> $(SYSTEM_XML_MSX1)
+
+endef
+RECALBOX_ROMFS_MSX1_CONFIGURE_CMDS += $(CONFIGURE_MSX1_LIBRETRO_BLUEMSX_DEF)
+endif
+
+define CONFIGURE_MSX1_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MSX1)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_MSX1)
+
+endef
+RECALBOX_ROMFS_MSX1_CONFIGURE_CMDS += $(CONFIGURE_MSX1_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_MSX1_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_MSX1)
+ cp -R $(SOURCE_ROMDIR_MSX1) $(@D)
+endef
+RECALBOX_ROMFS_MSX1_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MSX1_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/msx1/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-msx1/roms/msx1/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/msx1/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-msx1/roms/msx1/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/msx1/_readme.txt b/package/recalbox-romfs/recalbox-romfs-msx1/roms/msx1/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/msx1/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-msx1/roms/msx1/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-msx2/Config.in b/package/recalbox-romfs/recalbox-romfs-msx2/Config.in
new file mode 100644
index 00000000000..adf9342d890
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-msx2/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_MSX2
+ bool "recalbox-romfs-msx2"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BLUEMSX
+ help
+ share_init/roms and xml for msx2
diff --git a/package/recalbox-romfs/recalbox-romfs-msx2/recalbox-romfs-msx2.mk b/package/recalbox-romfs/recalbox-romfs-msx2/recalbox-romfs-msx2.mk
new file mode 100644
index 00000000000..bd7b71ec0c6
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-msx2/recalbox-romfs-msx2.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-msx2
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system msx2 --extension '.mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP' --fullname 'MSX2' --platform msx --theme msx2 libretro:bluemsx:BR2_PACKAGE_LIBRETRO_BLUEMSX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_MSX2_SOURCE =
+RECALBOX_ROMFS_MSX2_SITE =
+RECALBOX_ROMFS_MSX2_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_MSX2 = msx2
+SYSTEM_XML_MSX2 = $(@D)/$(SYSTEM_NAME_MSX2).xml
+# System rom path
+SOURCE_ROMDIR_MSX2 = $(RECALBOX_ROMFS_MSX2_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_MAIN_MSX2_START
+ echo -e '\n' \
+ '\tMSX2\n' \
+ "\t$(SYSTEM_NAME_MSX2)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_MSX2)\n' \
+ '\t.mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tmsx\n' \
+ '\tmsx2\n' \
+ '\t' > $(SYSTEM_XML_MSX2)
+
+endef
+RECALBOX_ROMFS_MSX2_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MSX2_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+define CONFIGURE_MSX2_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_MSX2)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MSX2)
+
+endef
+RECALBOX_ROMFS_MSX2_CONFIGURE_CMDS += $(CONFIGURE_MSX2_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),y)
+define CONFIGURE_MSX2_LIBRETRO_BLUEMSX_DEF
+ echo -e '\t\t\t\tbluemsx' >> $(SYSTEM_XML_MSX2)
+
+endef
+RECALBOX_ROMFS_MSX2_CONFIGURE_CMDS += $(CONFIGURE_MSX2_LIBRETRO_BLUEMSX_DEF)
+endif
+
+define CONFIGURE_MSX2_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_MSX2)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_MSX2)
+
+endef
+RECALBOX_ROMFS_MSX2_CONFIGURE_CMDS += $(CONFIGURE_MSX2_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_MSX2_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_MSX2)
+ cp -R $(SOURCE_ROMDIR_MSX2) $(@D)
+endef
+RECALBOX_ROMFS_MSX2_CONFIGURE_CMDS += $(CONFIGURE_MAIN_MSX2_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/msx2/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-msx2/roms/msx2/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/msx2/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-msx2/roms/msx2/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/msx2/_readme.txt b/package/recalbox-romfs/recalbox-romfs-msx2/roms/msx2/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/msx2/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-msx2/roms/msx2/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-n64/Config.in b/package/recalbox-romfs/recalbox-romfs-n64/Config.in
new file mode 100644
index 00000000000..942a0277c06
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-n64/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_N64
+ bool "recalbox-romfs-n64"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_MUPEN64PLUS_GLIDEN64 \
+ || BR2_PACKAGE_MUPEN64PLUS_GLES2 \
+ || BR2_PACKAGE_MUPEN64PLUS_GLES2RICE \
+ || BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2 \
+ || BR2_PACKAGE_LIBRETRO_GLUPEN64
+ help
+ share_init/roms and xml for n64
diff --git a/package/recalbox-romfs/recalbox-romfs-n64/recalbox-romfs-n64.mk b/package/recalbox-romfs/recalbox-romfs-n64/recalbox-romfs-n64.mk
new file mode 100644
index 00000000000..92bd5272f76
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-n64/recalbox-romfs-n64.mk
@@ -0,0 +1,124 @@
+################################################################################
+#
+# recalbox-romfs-n64
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system n64 --extension '.n64 .N64 .z64 .Z64 .v64 .V64' --fullname 'Nintendo 64' --platform n64 --theme n64 mupen64plus:gliden64:BR2_PACKAGE_MUPEN64PLUS_GLIDEN64 mupen64plus:n64:BR2_PACKAGE_MUPEN64PLUS_GLES2 mupen64plus:rice:BR2_PACKAGE_MUPEN64PLUS_GLES2RICE mupen64plus:glide64mk2:BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2 libretro:glupen64:BR2_PACKAGE_LIBRETRO_GLUPEN64
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_N64_SOURCE =
+RECALBOX_ROMFS_N64_SITE =
+RECALBOX_ROMFS_N64_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_N64 = n64
+SYSTEM_XML_N64 = $(@D)/$(SYSTEM_NAME_N64).xml
+# System rom path
+SOURCE_ROMDIR_N64 = $(RECALBOX_ROMFS_N64_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_MUPEN64PLUS_GLIDEN64)$(BR2_PACKAGE_MUPEN64PLUS_GLES2)$(BR2_PACKAGE_MUPEN64PLUS_GLES2RICE)$(BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2)$(BR2_PACKAGE_LIBRETRO_GLUPEN64),)
+define CONFIGURE_MAIN_N64_START
+ echo -e '\n' \
+ '\tNintendo 64\n' \
+ "\t$(SYSTEM_NAME_N64)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_N64)\n' \
+ '\t.n64 .N64 .z64 .Z64 .v64 .V64\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tn64\n' \
+ '\tn64\n' \
+ '\t' > $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_MAIN_N64_START)
+
+
+ifneq ($(BR2_PACKAGE_MUPEN64PLUS_GLIDEN64)$(BR2_PACKAGE_MUPEN64PLUS_GLES2)$(BR2_PACKAGE_MUPEN64PLUS_GLES2RICE)$(BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2)$(BR2_PACKAGE_LIBRETRO_GLUPEN64),)
+define CONFIGURE_N64_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_N64)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GLUPEN64),y)
+define CONFIGURE_N64_LIBRETRO_GLUPEN64_DEF
+ echo -e '\t\t\t\tglupen64' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_LIBRETRO_GLUPEN64_DEF)
+endif
+
+define CONFIGURE_N64_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_N64)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_LIBRETRO_END)
+endif
+
+ifneq ($(BR2_PACKAGE_MUPEN64PLUS_GLIDEN64)$(BR2_PACKAGE_MUPEN64PLUS_GLES2)$(BR2_PACKAGE_MUPEN64PLUS_GLES2RICE)$(BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2)$(BR2_PACKAGE_LIBRETRO_GLUPEN64),)
+define CONFIGURE_N64_MUPEN64PLUS_START
+ echo -e '\t\t' >> $(SYSTEM_XML_N64)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_MUPEN64PLUS_START)
+
+ifeq ($(BR2_PACKAGE_MUPEN64PLUS_GLES2RICE),y)
+define CONFIGURE_N64_MUPEN64PLUS_RICE_DEF
+ echo -e '\t\t\t\trice' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_MUPEN64PLUS_RICE_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_MUPEN64PLUS_VIDEO_GLIDE64MK2),y)
+define CONFIGURE_N64_MUPEN64PLUS_GLIDE64MK2_DEF
+ echo -e '\t\t\t\tglide64mk2' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_MUPEN64PLUS_GLIDE64MK2_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_MUPEN64PLUS_GLES2),y)
+define CONFIGURE_N64_MUPEN64PLUS_N64_DEF
+ echo -e '\t\t\t\tn64' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_MUPEN64PLUS_N64_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_MUPEN64PLUS_GLIDEN64),y)
+define CONFIGURE_N64_MUPEN64PLUS_GLIDEN64_DEF
+ echo -e '\t\t\t\tgliden64' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_MUPEN64PLUS_GLIDEN64_DEF)
+endif
+
+define CONFIGURE_N64_MUPEN64PLUS_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_N64)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_N64)
+
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_N64_MUPEN64PLUS_END)
+endif
+
+
+
+define CONFIGURE_MAIN_N64_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_N64)
+ cp -R $(SOURCE_ROMDIR_N64) $(@D)
+endef
+RECALBOX_ROMFS_N64_CONFIGURE_CMDS += $(CONFIGURE_MAIN_N64_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/n64/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-n64/roms/n64/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/n64/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-n64/roms/n64/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/n64/_readme.txt b/package/recalbox-romfs/recalbox-romfs-n64/roms/n64/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/n64/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-n64/roms/n64/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-neogeo/Config.in b/package/recalbox-romfs/recalbox-romfs-neogeo/Config.in
new file mode 100644
index 00000000000..1240ba55710
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-neogeo/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_NEOGEO
+ bool "recalbox-romfs-neogeo"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_MAME2003 \
+ || BR2_PACKAGE_LIBRETRO_IMAME \
+ || BR2_PACKAGE_LIBRETRO_FBA \
+ || BR2_PACKAGE_PIFBA
+ help
+ share_init/roms and xml for neogeo
diff --git a/package/recalbox-romfs/recalbox-romfs-neogeo/recalbox-romfs-neogeo.mk b/package/recalbox-romfs/recalbox-romfs-neogeo/recalbox-romfs-neogeo.mk
new file mode 100644
index 00000000000..13ee9fe2652
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-neogeo/recalbox-romfs-neogeo.mk
@@ -0,0 +1,116 @@
+################################################################################
+#
+# recalbox-romfs-neogeo
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system neogeo --extension '.zip .ZIP' --fullname 'Neo-Geo' --platform neogeo --theme neogeo libretro:mame078:BR2_PACKAGE_LIBRETRO_MAME2003 libretro:imame4all:BR2_PACKAGE_LIBRETRO_IMAME libretro:fba:BR2_PACKAGE_LIBRETRO_FBA fba2x:fba2x:BR2_PACKAGE_PIFBA
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_NEOGEO_SOURCE =
+RECALBOX_ROMFS_NEOGEO_SITE =
+RECALBOX_ROMFS_NEOGEO_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_NEOGEO = neogeo
+SYSTEM_XML_NEOGEO = $(@D)/$(SYSTEM_NAME_NEOGEO).xml
+# System rom path
+SOURCE_ROMDIR_NEOGEO = $(RECALBOX_ROMFS_NEOGEO_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_PIFBA),)
+define CONFIGURE_MAIN_NEOGEO_START
+ echo -e '\n' \
+ '\tNeo-Geo\n' \
+ "\t$(SYSTEM_NAME_NEOGEO)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_NEOGEO)\n' \
+ '\t.zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tneogeo\n' \
+ '\tneogeo\n' \
+ '\t' > $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NEOGEO_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_PIFBA),)
+define CONFIGURE_NEOGEO_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_NEOGEO)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_MAME2003),y)
+define CONFIGURE_NEOGEO_LIBRETRO_MAME078_DEF
+ echo -e '\t\t\t\tmame078' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_LIBRETRO_MAME078_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_FBA),y)
+define CONFIGURE_NEOGEO_LIBRETRO_FBA_DEF
+ echo -e '\t\t\t\tfba' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_LIBRETRO_FBA_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_IMAME),y)
+define CONFIGURE_NEOGEO_LIBRETRO_IMAME4ALL_DEF
+ echo -e '\t\t\t\timame4all' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_LIBRETRO_IMAME4ALL_DEF)
+endif
+
+define CONFIGURE_NEOGEO_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NEOGEO)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_LIBRETRO_END)
+endif
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_PIFBA),)
+define CONFIGURE_NEOGEO_FBA2X_START
+ echo -e '\t\t' >> $(SYSTEM_XML_NEOGEO)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_FBA2X_START)
+
+ifeq ($(BR2_PACKAGE_PIFBA),y)
+define CONFIGURE_NEOGEO_FBA2X_FBA2X_DEF
+ echo -e '\t\t\t\tfba2x' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_FBA2X_FBA2X_DEF)
+endif
+
+define CONFIGURE_NEOGEO_FBA2X_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NEOGEO)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_NEOGEO)
+
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_NEOGEO_FBA2X_END)
+endif
+
+
+
+define CONFIGURE_MAIN_NEOGEO_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_NEOGEO)
+ cp -R $(SOURCE_ROMDIR_NEOGEO) $(@D)
+endef
+RECALBOX_ROMFS_NEOGEO_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NEOGEO_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/neogeo/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-neogeo/roms/neogeo/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/neogeo/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-neogeo/roms/neogeo/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/neogeo/_readme.txt b/package/recalbox-romfs/recalbox-romfs-neogeo/roms/neogeo/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/neogeo/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-neogeo/roms/neogeo/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-nes/Config.in b/package/recalbox-romfs/recalbox-romfs-nes/Config.in
new file mode 100644
index 00000000000..93cfd356ecb
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-nes/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_NES
+ bool "recalbox-romfs-nes"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_FCEUMM \
+ || BR2_PACKAGE_LIBRETRO_FCEUNEXT \
+ || BR2_PACKAGE_LIBRETRO_NESTOPIA \
+ || BR2_PACKAGE_LIBRETRO_QUICKNES
+ help
+ share_init/roms and xml for nes
diff --git a/package/recalbox-romfs/recalbox-romfs-nes/recalbox-romfs-nes.mk b/package/recalbox-romfs/recalbox-romfs-nes/recalbox-romfs-nes.mk
new file mode 100644
index 00000000000..a3036c1f764
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-nes/recalbox-romfs-nes.mk
@@ -0,0 +1,99 @@
+################################################################################
+#
+# recalbox-romfs-nes
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system nes --extension '.nes .NES .zip .ZIP' --fullname 'Nintendo Entertainment System' --platform nes --theme nes libretro:fceumm:BR2_PACKAGE_LIBRETRO_FCEUMM libretro:fceunext:BR2_PACKAGE_LIBRETRO_FCEUNEXT libretro:nestopia:BR2_PACKAGE_LIBRETRO_NESTOPIA libretro:quicknes:BR2_PACKAGE_LIBRETRO_QUICKNES
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_NES_SOURCE =
+RECALBOX_ROMFS_NES_SITE =
+RECALBOX_ROMFS_NES_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_NES = nes
+SYSTEM_XML_NES = $(@D)/$(SYSTEM_NAME_NES).xml
+# System rom path
+SOURCE_ROMDIR_NES = $(RECALBOX_ROMFS_NES_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FCEUMM)$(BR2_PACKAGE_LIBRETRO_FCEUNEXT)$(BR2_PACKAGE_LIBRETRO_NESTOPIA)$(BR2_PACKAGE_LIBRETRO_QUICKNES),)
+define CONFIGURE_MAIN_NES_START
+ echo -e '\n' \
+ '\tNintendo Entertainment System\n' \
+ "\t$(SYSTEM_NAME_NES)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_NES)\n' \
+ '\t.nes .NES .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tnes\n' \
+ '\tnes\n' \
+ '\t' > $(SYSTEM_XML_NES)
+
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NES_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FCEUMM)$(BR2_PACKAGE_LIBRETRO_FCEUNEXT)$(BR2_PACKAGE_LIBRETRO_NESTOPIA)$(BR2_PACKAGE_LIBRETRO_QUICKNES),)
+define CONFIGURE_NES_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_NES)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NES)
+
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_NES_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_FCEUNEXT),y)
+define CONFIGURE_NES_LIBRETRO_FCEUNEXT_DEF
+ echo -e '\t\t\t\tfceunext' >> $(SYSTEM_XML_NES)
+
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_NES_LIBRETRO_FCEUNEXT_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_QUICKNES),y)
+define CONFIGURE_NES_LIBRETRO_QUICKNES_DEF
+ echo -e '\t\t\t\tquicknes' >> $(SYSTEM_XML_NES)
+
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_NES_LIBRETRO_QUICKNES_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_FCEUMM),y)
+define CONFIGURE_NES_LIBRETRO_FCEUMM_DEF
+ echo -e '\t\t\t\tfceumm' >> $(SYSTEM_XML_NES)
+
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_NES_LIBRETRO_FCEUMM_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_NESTOPIA),y)
+define CONFIGURE_NES_LIBRETRO_NESTOPIA_DEF
+ echo -e '\t\t\t\tnestopia' >> $(SYSTEM_XML_NES)
+
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_NES_LIBRETRO_NESTOPIA_DEF)
+endif
+
+define CONFIGURE_NES_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NES)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_NES)
+
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_NES_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_NES_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_NES)
+ cp -R $(SOURCE_ROMDIR_NES) $(@D)
+endef
+RECALBOX_ROMFS_NES_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NES_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/2048 (tsone).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/2048 (tsone).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/2048 (tsone).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/2048 (tsone).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/BladeBuster (High Level Challenge).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/BladeBuster (High Level Challenge).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/BladeBuster (High Level Challenge).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/BladeBuster (High Level Challenge).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Chase (Shiru).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Chase (Shiru).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Chase (Shiru).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Chase (Shiru).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Chase (Shiru)/Chase (Shiru).README.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Chase (Shiru)/Chase (Shiru).README.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Chase (Shiru)/Chase (Shiru).README.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Chase (Shiru)/Chase (Shiru).README.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Driar (Stefan Adolfsson - David Eriksson).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Driar (Stefan Adolfsson - David Eriksson).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Driar (Stefan Adolfsson - David Eriksson).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Driar (Stefan Adolfsson - David Eriksson).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Driar (Stefan Adolfsson - David Eriksson)/Driar (Stefan Adolfsson - David Eriksson).README.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Driar (Stefan Adolfsson - David Eriksson)/Driar (Stefan Adolfsson - David Eriksson).README.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Driar (Stefan Adolfsson - David Eriksson)/Driar (Stefan Adolfsson - David Eriksson).README.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Driar (Stefan Adolfsson - David Eriksson)/Driar (Stefan Adolfsson - David Eriksson).README.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).label_nes.png b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).label_nes.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).label_nes.png
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).label_nes.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).manual.pdf b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).manual.pdf
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).manual.pdf
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/._Lan Master (Shiru).manual.pdf
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).label_nes.png b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).label_nes.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).label_nes.png
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).label_nes.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).manual.pdf b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).manual.pdf
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).manual.pdf
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).manual.pdf
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).notes.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).notes.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).notes.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lan Master (Shiru)/Lan Master (Shiru).notes.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/label_fami.png b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/label_fami.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/label_fami.png
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/label_fami.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/label_nes.png b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/label_nes.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/label_nes.png
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/label_nes.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/manual.pdf b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/manual.pdf
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/manual.pdf
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/manual.pdf
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/notes.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/notes.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Lawn Mower (Shiru)/notes.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Lawn Mower (Shiru)/notes.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Sir Ababol (2013)(The Mojon Twins)[!].nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Sir Ababol (2013)(The Mojon Twins)[!].nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Sir Ababol (2013)(The Mojon Twins)[!].nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Sir Ababol (2013)(The Mojon Twins)[!].nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Steemerz v02 (fauxgame) (FR).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Steemerz v02 (fauxgame) (FR).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Steemerz v02 (fauxgame) (FR).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Steemerz v02 (fauxgame) (FR).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Steemerz v02 (fauxgame).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Steemerz v02 (fauxgame).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Steemerz v02 (fauxgame).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Steemerz v02 (fauxgame).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Steemez v02 (fauxgame)/README.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Steemez v02 (fauxgame)/README.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Steemez v02 (fauxgame)/README.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Steemez v02 (fauxgame)/README.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Tiger Jenny (Ludosity).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Tiger Jenny (Ludosity).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Tiger Jenny (Ludosity).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Tiger Jenny (Ludosity).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru).nes b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru).nes
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru).nes
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru).nes
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/label_fami.png b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/label_fami.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/label_fami.png
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/label_fami.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/label_nes.png b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/label_nes.png
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/label_nes.png
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/label_nes.png
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/manual.pdf b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/manual.pdf
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/manual.pdf
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/manual.pdf
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/notes.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/notes.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/Zooming Secretary (Shiru)/notes.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/Zooming Secretary (Shiru)/notes.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/nes/_readme.txt b/package/recalbox-romfs/recalbox-romfs-nes/roms/nes/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/nes/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-nes/roms/nes/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-ngp/Config.in b/package/recalbox-romfs/recalbox-romfs-ngp/Config.in
new file mode 100644
index 00000000000..0fda729737c
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-ngp/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_NGP
+ bool "recalbox-romfs-ngp"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_NGP
+ help
+ share_init/roms and xml for ngp
diff --git a/package/recalbox-romfs/recalbox-romfs-ngp/recalbox-romfs-ngp.mk b/package/recalbox-romfs/recalbox-romfs-ngp/recalbox-romfs-ngp.mk
new file mode 100644
index 00000000000..df364ea0e7a
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-ngp/recalbox-romfs-ngp.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-ngp
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system ngp --extension '.zip .ZIP .ngc .NGC .ngp .NGP' --fullname 'Neo-Geo Pocket' --platform ngp --theme ngp libretro:mednafen_ngp:BR2_PACKAGE_LIBRETRO_BEETLE_NGP
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_NGP_SOURCE =
+RECALBOX_ROMFS_NGP_SITE =
+RECALBOX_ROMFS_NGP_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_NGP = ngp
+SYSTEM_XML_NGP = $(@D)/$(SYSTEM_NAME_NGP).xml
+# System rom path
+SOURCE_ROMDIR_NGP = $(RECALBOX_ROMFS_NGP_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),)
+define CONFIGURE_MAIN_NGP_START
+ echo -e '\n' \
+ '\tNeo-Geo Pocket\n' \
+ "\t$(SYSTEM_NAME_NGP)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_NGP)\n' \
+ '\t.zip .ZIP .ngc .NGC .ngp .NGP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tngp\n' \
+ '\tngp\n' \
+ '\t' > $(SYSTEM_XML_NGP)
+
+endef
+RECALBOX_ROMFS_NGP_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NGP_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),)
+define CONFIGURE_NGP_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_NGP)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NGP)
+
+endef
+RECALBOX_ROMFS_NGP_CONFIGURE_CMDS += $(CONFIGURE_NGP_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),y)
+define CONFIGURE_NGP_LIBRETRO_MEDNAFEN_NGP_DEF
+ echo -e '\t\t\t\tmednafen_ngp' >> $(SYSTEM_XML_NGP)
+
+endef
+RECALBOX_ROMFS_NGP_CONFIGURE_CMDS += $(CONFIGURE_NGP_LIBRETRO_MEDNAFEN_NGP_DEF)
+endif
+
+define CONFIGURE_NGP_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NGP)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_NGP)
+
+endef
+RECALBOX_ROMFS_NGP_CONFIGURE_CMDS += $(CONFIGURE_NGP_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_NGP_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_NGP)
+ cp -R $(SOURCE_ROMDIR_NGP) $(@D)
+endef
+RECALBOX_ROMFS_NGP_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NGP_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/ngp/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-ngp/roms/ngp/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/ngp/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-ngp/roms/ngp/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/ngp/_readme.txt b/package/recalbox-romfs/recalbox-romfs-ngp/roms/ngp/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/ngp/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-ngp/roms/ngp/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-ngpc/Config.in b/package/recalbox-romfs/recalbox-romfs-ngpc/Config.in
new file mode 100644
index 00000000000..476c867995c
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-ngpc/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_NGPC
+ bool "recalbox-romfs-ngpc"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_NGP
+ help
+ share_init/roms and xml for ngpc
diff --git a/package/recalbox-romfs/recalbox-romfs-ngpc/recalbox-romfs-ngpc.mk b/package/recalbox-romfs/recalbox-romfs-ngpc/recalbox-romfs-ngpc.mk
new file mode 100644
index 00000000000..c3defde5c06
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-ngpc/recalbox-romfs-ngpc.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-ngpc
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system ngpc --extension '.zip .ZIP .ngc .NGC .ngp .NGP' --fullname 'Neo-Geo Pocket Color' --platform ngpc --theme ngpc libretro:mednafen_ngp:BR2_PACKAGE_LIBRETRO_BEETLE_NGP
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_NGPC_SOURCE =
+RECALBOX_ROMFS_NGPC_SITE =
+RECALBOX_ROMFS_NGPC_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_NGPC = ngpc
+SYSTEM_XML_NGPC = $(@D)/$(SYSTEM_NAME_NGPC).xml
+# System rom path
+SOURCE_ROMDIR_NGPC = $(RECALBOX_ROMFS_NGPC_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),)
+define CONFIGURE_MAIN_NGPC_START
+ echo -e '\n' \
+ '\tNeo-Geo Pocket Color\n' \
+ "\t$(SYSTEM_NAME_NGPC)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_NGPC)\n' \
+ '\t.zip .ZIP .ngc .NGC .ngp .NGP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tngpc\n' \
+ '\tngpc\n' \
+ '\t' > $(SYSTEM_XML_NGPC)
+
+endef
+RECALBOX_ROMFS_NGPC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NGPC_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),)
+define CONFIGURE_NGPC_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_NGPC)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NGPC)
+
+endef
+RECALBOX_ROMFS_NGPC_CONFIGURE_CMDS += $(CONFIGURE_NGPC_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),y)
+define CONFIGURE_NGPC_LIBRETRO_MEDNAFEN_NGP_DEF
+ echo -e '\t\t\t\tmednafen_ngp' >> $(SYSTEM_XML_NGPC)
+
+endef
+RECALBOX_ROMFS_NGPC_CONFIGURE_CMDS += $(CONFIGURE_NGPC_LIBRETRO_MEDNAFEN_NGP_DEF)
+endif
+
+define CONFIGURE_NGPC_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_NGPC)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_NGPC)
+
+endef
+RECALBOX_ROMFS_NGPC_CONFIGURE_CMDS += $(CONFIGURE_NGPC_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_NGPC_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_NGPC)
+ cp -R $(SOURCE_ROMDIR_NGPC) $(@D)
+endef
+RECALBOX_ROMFS_NGPC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_NGPC_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/ngpc/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-ngpc/roms/ngpc/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/ngpc/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-ngpc/roms/ngpc/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/ngpc/_readme.txt b/package/recalbox-romfs/recalbox-romfs-ngpc/roms/ngpc/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/ngpc/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-ngpc/roms/ngpc/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-o2em/Config.in b/package/recalbox-romfs/recalbox-romfs-o2em/Config.in
new file mode 100644
index 00000000000..48ff95202a0
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-o2em/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_O2EM
+ bool "recalbox-romfs-o2em"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_O2EM
+ help
+ share_init/roms and xml for o2em
diff --git a/package/recalbox-romfs/recalbox-romfs-o2em/recalbox-romfs-o2em.mk b/package/recalbox-romfs/recalbox-romfs-o2em/recalbox-romfs-o2em.mk
new file mode 100644
index 00000000000..dc578dc9479
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-o2em/recalbox-romfs-o2em.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-o2em
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system o2em --extension '.bin .BIN .zip .ZIP' --fullname 'Odyssey2' --platform odyssey2 --theme odyssey2 libretro:o2em:BR2_PACKAGE_LIBRETRO_O2EM
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_O2EM_SOURCE =
+RECALBOX_ROMFS_O2EM_SITE =
+RECALBOX_ROMFS_O2EM_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_O2EM = o2em
+SYSTEM_XML_O2EM = $(@D)/$(SYSTEM_NAME_O2EM).xml
+# System rom path
+SOURCE_ROMDIR_O2EM = $(RECALBOX_ROMFS_O2EM_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_O2EM),)
+define CONFIGURE_MAIN_O2EM_START
+ echo -e '\n' \
+ '\tOdyssey2\n' \
+ "\t$(SYSTEM_NAME_O2EM)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_O2EM)\n' \
+ '\t.bin .BIN .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\todyssey2\n' \
+ '\todyssey2\n' \
+ '\t' > $(SYSTEM_XML_O2EM)
+
+endef
+RECALBOX_ROMFS_O2EM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_O2EM_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_O2EM),)
+define CONFIGURE_O2EM_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_O2EM)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_O2EM)
+
+endef
+RECALBOX_ROMFS_O2EM_CONFIGURE_CMDS += $(CONFIGURE_O2EM_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_O2EM),y)
+define CONFIGURE_O2EM_LIBRETRO_O2EM_DEF
+ echo -e '\t\t\t\to2em' >> $(SYSTEM_XML_O2EM)
+
+endef
+RECALBOX_ROMFS_O2EM_CONFIGURE_CMDS += $(CONFIGURE_O2EM_LIBRETRO_O2EM_DEF)
+endif
+
+define CONFIGURE_O2EM_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_O2EM)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_O2EM)
+
+endef
+RECALBOX_ROMFS_O2EM_CONFIGURE_CMDS += $(CONFIGURE_O2EM_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_O2EM_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_O2EM)
+ cp -R $(SOURCE_ROMDIR_O2EM) $(@D)
+endef
+RECALBOX_ROMFS_O2EM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_O2EM_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/o2em/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-o2em/roms/o2em/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/o2em/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-o2em/roms/o2em/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/o2em/_readme.txt b/package/recalbox-romfs/recalbox-romfs-o2em/roms/o2em/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/o2em/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-o2em/roms/o2em/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-pcengine/Config.in b/package/recalbox-romfs/recalbox-romfs-pcengine/Config.in
new file mode 100644
index 00000000000..78ad95cc4d8
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-pcengine/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_PCENGINE
+ bool "recalbox-romfs-pcengine"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX \
+ || BR2_PACKAGE_LIBRETRO_BEETLE_PCE
+ help
+ share_init/roms and xml for pcengine
diff --git a/package/recalbox-romfs/recalbox-romfs-pcengine/recalbox-romfs-pcengine.mk b/package/recalbox-romfs/recalbox-romfs-pcengine/recalbox-romfs-pcengine.mk
new file mode 100644
index 00000000000..562cc8cbd85
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-pcengine/recalbox-romfs-pcengine.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-pcengine
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system pcengine --extension '.pce .PCE .cue .CUE .sgx .SGX .zip .ZIP .ccd .CCD' --fullname 'PC Engine' --platform pcengine --theme pcengine libretro:mednafen_supergrafx:BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX libretro:pce:BR2_PACKAGE_LIBRETRO_BEETLE_PCE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_PCENGINE_SOURCE =
+RECALBOX_ROMFS_PCENGINE_SITE =
+RECALBOX_ROMFS_PCENGINE_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_PCENGINE = pcengine
+SYSTEM_XML_PCENGINE = $(@D)/$(SYSTEM_NAME_PCENGINE).xml
+# System rom path
+SOURCE_ROMDIR_PCENGINE = $(RECALBOX_ROMFS_PCENGINE_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+define CONFIGURE_MAIN_PCENGINE_START
+ echo -e '\n' \
+ '\tPC Engine\n' \
+ "\t$(SYSTEM_NAME_PCENGINE)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_PCENGINE)\n' \
+ '\t.pce .PCE .cue .CUE .sgx .SGX .zip .ZIP .ccd .CCD\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tpcengine\n' \
+ '\tpcengine\n' \
+ '\t' > $(SYSTEM_XML_PCENGINE)
+
+endef
+RECALBOX_ROMFS_PCENGINE_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PCENGINE_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+define CONFIGURE_PCENGINE_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_PCENGINE)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PCENGINE)
+
+endef
+RECALBOX_ROMFS_PCENGINE_CONFIGURE_CMDS += $(CONFIGURE_PCENGINE_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX),y)
+define CONFIGURE_PCENGINE_LIBRETRO_MEDNAFEN_SUPERGRAFX_DEF
+ echo -e '\t\t\t\tmednafen_supergrafx' >> $(SYSTEM_XML_PCENGINE)
+
+endef
+RECALBOX_ROMFS_PCENGINE_CONFIGURE_CMDS += $(CONFIGURE_PCENGINE_LIBRETRO_MEDNAFEN_SUPERGRAFX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),y)
+define CONFIGURE_PCENGINE_LIBRETRO_PCE_DEF
+ echo -e '\t\t\t\tpce' >> $(SYSTEM_XML_PCENGINE)
+
+endef
+RECALBOX_ROMFS_PCENGINE_CONFIGURE_CMDS += $(CONFIGURE_PCENGINE_LIBRETRO_PCE_DEF)
+endif
+
+define CONFIGURE_PCENGINE_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PCENGINE)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_PCENGINE)
+
+endef
+RECALBOX_ROMFS_PCENGINE_CONFIGURE_CMDS += $(CONFIGURE_PCENGINE_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_PCENGINE_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_PCENGINE)
+ cp -R $(SOURCE_ROMDIR_PCENGINE) $(@D)
+endef
+RECALBOX_ROMFS_PCENGINE_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PCENGINE_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Reflectron (aetherbyte).pce b/package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Reflectron (aetherbyte).pce
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Reflectron (aetherbyte).pce
rename to package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Reflectron (aetherbyte).pce
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Reflectron (aetherbyte).readme.txt b/package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Reflectron (aetherbyte).readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Reflectron (aetherbyte).readme.txt
rename to package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Reflectron (aetherbyte).readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Santatlantean (aetherbyte).pce b/package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Santatlantean (aetherbyte).pce
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Santatlantean (aetherbyte).pce
rename to package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Santatlantean (aetherbyte).pce
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Santatlantean (aetherbyte).readme.txt b/package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Santatlantean (aetherbyte).readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/Santatlantean (aetherbyte).readme.txt
rename to package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/Santatlantean (aetherbyte).readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/_readme.txt b/package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcengine/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-pcengine/roms/pcengine/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-pcenginecd/Config.in b/package/recalbox-romfs/recalbox-romfs-pcenginecd/Config.in
new file mode 100644
index 00000000000..8b4e7a96a02
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-pcenginecd/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_PCENGINECD
+ bool "recalbox-romfs-pcenginecd"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX \
+ || BR2_PACKAGE_LIBRETRO_BEETLE_PCE
+ help
+ share_init/roms and xml for pcenginecd
diff --git a/package/recalbox-romfs/recalbox-romfs-pcenginecd/recalbox-romfs-pcenginecd.mk b/package/recalbox-romfs/recalbox-romfs-pcenginecd/recalbox-romfs-pcenginecd.mk
new file mode 100644
index 00000000000..468c1142ece
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-pcenginecd/recalbox-romfs-pcenginecd.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-pcenginecd
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system pcenginecd --extension '.cue .CUE .ccd .CCD' --fullname 'PC Engine CD' --platform pcenginecd --theme pcenginecd libretro:mednafen_supergrafx:BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX libretro:pce:BR2_PACKAGE_LIBRETRO_BEETLE_PCE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_PCENGINECD_SOURCE =
+RECALBOX_ROMFS_PCENGINECD_SITE =
+RECALBOX_ROMFS_PCENGINECD_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_PCENGINECD = pcenginecd
+SYSTEM_XML_PCENGINECD = $(@D)/$(SYSTEM_NAME_PCENGINECD).xml
+# System rom path
+SOURCE_ROMDIR_PCENGINECD = $(RECALBOX_ROMFS_PCENGINECD_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+define CONFIGURE_MAIN_PCENGINECD_START
+ echo -e '\n' \
+ '\tPC Engine CD\n' \
+ "\t$(SYSTEM_NAME_PCENGINECD)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_PCENGINECD)\n' \
+ '\t.cue .CUE .ccd .CCD\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tpcenginecd\n' \
+ '\tpcenginecd\n' \
+ '\t' > $(SYSTEM_XML_PCENGINECD)
+
+endef
+RECALBOX_ROMFS_PCENGINECD_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PCENGINECD_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+define CONFIGURE_PCENGINECD_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_PCENGINECD)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PCENGINECD)
+
+endef
+RECALBOX_ROMFS_PCENGINECD_CONFIGURE_CMDS += $(CONFIGURE_PCENGINECD_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX),y)
+define CONFIGURE_PCENGINECD_LIBRETRO_MEDNAFEN_SUPERGRAFX_DEF
+ echo -e '\t\t\t\tmednafen_supergrafx' >> $(SYSTEM_XML_PCENGINECD)
+
+endef
+RECALBOX_ROMFS_PCENGINECD_CONFIGURE_CMDS += $(CONFIGURE_PCENGINECD_LIBRETRO_MEDNAFEN_SUPERGRAFX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),y)
+define CONFIGURE_PCENGINECD_LIBRETRO_PCE_DEF
+ echo -e '\t\t\t\tpce' >> $(SYSTEM_XML_PCENGINECD)
+
+endef
+RECALBOX_ROMFS_PCENGINECD_CONFIGURE_CMDS += $(CONFIGURE_PCENGINECD_LIBRETRO_PCE_DEF)
+endif
+
+define CONFIGURE_PCENGINECD_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PCENGINECD)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_PCENGINECD)
+
+endef
+RECALBOX_ROMFS_PCENGINECD_CONFIGURE_CMDS += $(CONFIGURE_PCENGINECD_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_PCENGINECD_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_PCENGINECD)
+ cp -R $(SOURCE_ROMDIR_PCENGINECD) $(@D)
+endef
+RECALBOX_ROMFS_PCENGINECD_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PCENGINECD_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcenginecd/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-pcenginecd/roms/pcenginecd/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcenginecd/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-pcenginecd/roms/pcenginecd/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/pcenginecd/_readme.txt b/package/recalbox-romfs/recalbox-romfs-pcenginecd/roms/pcenginecd/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/pcenginecd/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-pcenginecd/roms/pcenginecd/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-prboom/Config.in b/package/recalbox-romfs/recalbox-romfs-prboom/Config.in
new file mode 100644
index 00000000000..ae47aff20b8
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-prboom/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_PRBOOM
+ bool "recalbox-romfs-prboom"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_PRBOOM
+ help
+ share_init/roms and xml for prboom
diff --git a/package/recalbox-romfs/recalbox-romfs-prboom/recalbox-romfs-prboom.mk b/package/recalbox-romfs/recalbox-romfs-prboom/recalbox-romfs-prboom.mk
new file mode 100644
index 00000000000..d87f2166693
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-prboom/recalbox-romfs-prboom.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-prboom
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system prboom --extension '.wad .WAD' --fullname 'PrBoom' --platform prboom --theme prboom libretro:prboom:BR2_PACKAGE_LIBRETRO_PRBOOM
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_PRBOOM_SOURCE =
+RECALBOX_ROMFS_PRBOOM_SITE =
+RECALBOX_ROMFS_PRBOOM_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_PRBOOM = prboom
+SYSTEM_XML_PRBOOM = $(@D)/$(SYSTEM_NAME_PRBOOM).xml
+# System rom path
+SOURCE_ROMDIR_PRBOOM = $(RECALBOX_ROMFS_PRBOOM_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PRBOOM),)
+define CONFIGURE_MAIN_PRBOOM_START
+ echo -e '\n' \
+ '\tPrBoom\n' \
+ "\t$(SYSTEM_NAME_PRBOOM)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_PRBOOM)\n' \
+ '\t.wad .WAD\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tprboom\n' \
+ '\tprboom\n' \
+ '\t' > $(SYSTEM_XML_PRBOOM)
+
+endef
+RECALBOX_ROMFS_PRBOOM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PRBOOM_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PRBOOM),)
+define CONFIGURE_PRBOOM_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_PRBOOM)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PRBOOM)
+
+endef
+RECALBOX_ROMFS_PRBOOM_CONFIGURE_CMDS += $(CONFIGURE_PRBOOM_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PRBOOM),y)
+define CONFIGURE_PRBOOM_LIBRETRO_PRBOOM_DEF
+ echo -e '\t\t\t\tprboom' >> $(SYSTEM_XML_PRBOOM)
+
+endef
+RECALBOX_ROMFS_PRBOOM_CONFIGURE_CMDS += $(CONFIGURE_PRBOOM_LIBRETRO_PRBOOM_DEF)
+endif
+
+define CONFIGURE_PRBOOM_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PRBOOM)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_PRBOOM)
+
+endef
+RECALBOX_ROMFS_PRBOOM_CONFIGURE_CMDS += $(CONFIGURE_PRBOOM_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_PRBOOM_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_PRBOOM)
+ cp -R $(SOURCE_ROMDIR_PRBOOM) $(@D)
+endef
+RECALBOX_ROMFS_PRBOOM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PRBOOM_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/_readme.txt b/package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/_readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/doom1_shareware.wad b/package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/doom1_shareware.wad
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/doom1_shareware.wad
rename to package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/doom1_shareware.wad
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/doom1_shareware_license.txt b/package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/doom1_shareware_license.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/doom1_shareware_license.txt
rename to package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/doom1_shareware_license.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/game-musics/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/game-musics/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/game-musics/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/game-musics/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/game-musics/_readme.txt b/package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/game-musics/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/game-musics/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/game-musics/_readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/prboom.wad b/package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/prboom.wad
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/prboom/prboom.wad
rename to package/recalbox-romfs/recalbox-romfs-prboom/roms/prboom/prboom.wad
diff --git a/package/recalbox-romfs/recalbox-romfs-psp/Config.in b/package/recalbox-romfs/recalbox-romfs-psp/Config.in
new file mode 100644
index 00000000000..66e944584ab
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-psp/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_PSP
+ bool "recalbox-romfs-psp"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_PPSSPP
+ help
+ share_init/roms and xml for psp
diff --git a/package/recalbox-romfs/recalbox-romfs-psp/recalbox-romfs-psp.mk b/package/recalbox-romfs/recalbox-romfs-psp/recalbox-romfs-psp.mk
new file mode 100644
index 00000000000..6b25083549e
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-psp/recalbox-romfs-psp.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-psp
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system psp --extension '.iso .ISO .cso .CSO' --fullname 'Sony Playstation Portable' --platform psp --theme psp BR2_PACKAGE_PPSSPP
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_PSP_SOURCE =
+RECALBOX_ROMFS_PSP_SITE =
+RECALBOX_ROMFS_PSP_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_PSP = psp
+SYSTEM_XML_PSP = $(@D)/$(SYSTEM_NAME_PSP).xml
+# System rom path
+SOURCE_ROMDIR_PSP = $(RECALBOX_ROMFS_PSP_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_PPSSPP),y)
+define CONFIGURE_PSP
+ echo -e '\n' \
+ '\tSony Playstation Portable\n' \
+ "\t$(SYSTEM_NAME_PSP)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_PSP)\n' \
+ '\t.iso .ISO .cso .CSO\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tpsp\n' \
+ '\tpsp\n' \
+ '' > $(SYSTEM_XML_PSP)
+ cp -R $(SOURCE_ROMDIR_PSP) $(@D)
+endef
+RECALBOX_ROMFS_PSP_CONFIGURE_CMDS += $(CONFIGURE_PSP)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/psp/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-psp/roms/psp/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/psp/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-psp/roms/psp/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/psp/_readme.txt b/package/recalbox-romfs/recalbox-romfs-psp/roms/psp/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/psp/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-psp/roms/psp/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-psx/Config.in b/package/recalbox-romfs/recalbox-romfs-psx/Config.in
new file mode 100644
index 00000000000..c654ee34745
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-psx/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_PSX
+ bool "recalbox-romfs-psx"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_PCSX
+ help
+ share_init/roms and xml for psx
diff --git a/package/recalbox-romfs/recalbox-romfs-psx/recalbox-romfs-psx.mk b/package/recalbox-romfs/recalbox-romfs-psx/recalbox-romfs-psx.mk
new file mode 100644
index 00000000000..0783a9955ec
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-psx/recalbox-romfs-psx.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-psx
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system psx --extension '.img .IMG .pbp .PBP .cue .CUE .iso .ISO .ccd .CCD .cbn .CBN' --fullname 'Sony Playstation 1' --platform psx --theme psx libretro:pcsx_rearmed:BR2_PACKAGE_LIBRETRO_PCSX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_PSX_SOURCE =
+RECALBOX_ROMFS_PSX_SITE =
+RECALBOX_ROMFS_PSX_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_PSX = psx
+SYSTEM_XML_PSX = $(@D)/$(SYSTEM_NAME_PSX).xml
+# System rom path
+SOURCE_ROMDIR_PSX = $(RECALBOX_ROMFS_PSX_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PCSX),)
+define CONFIGURE_MAIN_PSX_START
+ echo -e '\n' \
+ '\tSony Playstation 1\n' \
+ "\t$(SYSTEM_NAME_PSX)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_PSX)\n' \
+ '\t.img .IMG .pbp .PBP .cue .CUE .iso .ISO .ccd .CCD .cbn .CBN\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tpsx\n' \
+ '\tpsx\n' \
+ '\t' > $(SYSTEM_XML_PSX)
+
+endef
+RECALBOX_ROMFS_PSX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PSX_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PCSX),)
+define CONFIGURE_PSX_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_PSX)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PSX)
+
+endef
+RECALBOX_ROMFS_PSX_CONFIGURE_CMDS += $(CONFIGURE_PSX_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PCSX),y)
+define CONFIGURE_PSX_LIBRETRO_PCSX_REARMED_DEF
+ echo -e '\t\t\t\tpcsx_rearmed' >> $(SYSTEM_XML_PSX)
+
+endef
+RECALBOX_ROMFS_PSX_CONFIGURE_CMDS += $(CONFIGURE_PSX_LIBRETRO_PCSX_REARMED_DEF)
+endif
+
+define CONFIGURE_PSX_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_PSX)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_PSX)
+
+endef
+RECALBOX_ROMFS_PSX_CONFIGURE_CMDS += $(CONFIGURE_PSX_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_PSX_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_PSX)
+ cp -R $(SOURCE_ROMDIR_PSX) $(@D)
+endef
+RECALBOX_ROMFS_PSX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_PSX_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/psx/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-psx/roms/psx/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/psx/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-psx/roms/psx/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/psx/_readme.txt b/package/recalbox-romfs/recalbox-romfs-psx/roms/psx/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/psx/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-psx/roms/psx/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-scummvm/Config.in b/package/recalbox-romfs/recalbox-romfs-scummvm/Config.in
new file mode 100644
index 00000000000..5ae0bccfba8
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-scummvm/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_SCUMMVM
+ bool "recalbox-romfs-scummvm"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_SCUMMVM
+ help
+ share_init/roms and xml for scummvm
diff --git a/package/recalbox-romfs/recalbox-romfs-scummvm/recalbox-romfs-scummvm.mk b/package/recalbox-romfs/recalbox-romfs-scummvm/recalbox-romfs-scummvm.mk
new file mode 100644
index 00000000000..4f508d68f96
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-scummvm/recalbox-romfs-scummvm.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-scummvm
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system scummvm --extension '.scummvm' --fullname 'ScummVM' --platform scummvm --theme scummvm BR2_PACKAGE_SCUMMVM
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_SCUMMVM_SOURCE =
+RECALBOX_ROMFS_SCUMMVM_SITE =
+RECALBOX_ROMFS_SCUMMVM_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_SCUMMVM = scummvm
+SYSTEM_XML_SCUMMVM = $(@D)/$(SYSTEM_NAME_SCUMMVM).xml
+# System rom path
+SOURCE_ROMDIR_SCUMMVM = $(RECALBOX_ROMFS_SCUMMVM_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_SCUMMVM),y)
+define CONFIGURE_SCUMMVM
+ echo -e '\n' \
+ '\tScummVM\n' \
+ "\t$(SYSTEM_NAME_SCUMMVM)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_SCUMMVM)\n' \
+ '\t.scummvm\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tscummvm\n' \
+ '\tscummvm\n' \
+ '' > $(SYSTEM_XML_SCUMMVM)
+ cp -R $(SOURCE_ROMDIR_SCUMMVM) $(@D)
+endef
+RECALBOX_ROMFS_SCUMMVM_CONFIGURE_CMDS += $(CONFIGURE_SCUMMVM)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/scummvm/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-scummvm/roms/scummvm/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/scummvm/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-scummvm/roms/scummvm/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/scummvm/_readme.txt b/package/recalbox-romfs/recalbox-romfs-scummvm/roms/scummvm/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/scummvm/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-scummvm/roms/scummvm/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-sega32x/Config.in b/package/recalbox-romfs/recalbox-romfs-sega32x/Config.in
new file mode 100644
index 00000000000..e76000b6857
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-sega32x/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_SEGA32X
+ bool "recalbox-romfs-sega32x"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_PICODRIVE
+ help
+ share_init/roms and xml for sega32x
diff --git a/package/recalbox-romfs/recalbox-romfs-sega32x/recalbox-romfs-sega32x.mk b/package/recalbox-romfs/recalbox-romfs-sega32x/recalbox-romfs-sega32x.mk
new file mode 100644
index 00000000000..0971936a8ac
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-sega32x/recalbox-romfs-sega32x.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-sega32x
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system sega32x --extension '.32x .32X .smd .SMD .bin .zip .ZIP' --fullname 'Sega 32X' --platform sega32x --theme sega32x libretro:picodrive:BR2_PACKAGE_LIBRETRO_PICODRIVE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_SEGA32X_SOURCE =
+RECALBOX_ROMFS_SEGA32X_SITE =
+RECALBOX_ROMFS_SEGA32X_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_SEGA32X = sega32x
+SYSTEM_XML_SEGA32X = $(@D)/$(SYSTEM_NAME_SEGA32X).xml
+# System rom path
+SOURCE_ROMDIR_SEGA32X = $(RECALBOX_ROMFS_SEGA32X_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MAIN_SEGA32X_START
+ echo -e '\n' \
+ '\tSega 32X\n' \
+ "\t$(SYSTEM_NAME_SEGA32X)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_SEGA32X)\n' \
+ '\t.32x .32X .smd .SMD .bin .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tsega32x\n' \
+ '\tsega32x\n' \
+ '\t' > $(SYSTEM_XML_SEGA32X)
+
+endef
+RECALBOX_ROMFS_SEGA32X_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SEGA32X_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_SEGA32X_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_SEGA32X)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SEGA32X)
+
+endef
+RECALBOX_ROMFS_SEGA32X_CONFIGURE_CMDS += $(CONFIGURE_SEGA32X_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),y)
+define CONFIGURE_SEGA32X_LIBRETRO_PICODRIVE_DEF
+ echo -e '\t\t\t\tpicodrive' >> $(SYSTEM_XML_SEGA32X)
+
+endef
+RECALBOX_ROMFS_SEGA32X_CONFIGURE_CMDS += $(CONFIGURE_SEGA32X_LIBRETRO_PICODRIVE_DEF)
+endif
+
+define CONFIGURE_SEGA32X_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SEGA32X)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_SEGA32X)
+
+endef
+RECALBOX_ROMFS_SEGA32X_CONFIGURE_CMDS += $(CONFIGURE_SEGA32X_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_SEGA32X_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_SEGA32X)
+ cp -R $(SOURCE_ROMDIR_SEGA32X) $(@D)
+endef
+RECALBOX_ROMFS_SEGA32X_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SEGA32X_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/sega32x/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-sega32x/roms/sega32x/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/sega32x/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-sega32x/roms/sega32x/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/sega32x/_readme.txt b/package/recalbox-romfs/recalbox-romfs-sega32x/roms/sega32x/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/sega32x/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-sega32x/roms/sega32x/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-segacd/Config.in b/package/recalbox-romfs/recalbox-romfs-segacd/Config.in
new file mode 100644
index 00000000000..a90d0caa0fa
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-segacd/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_SEGACD
+ bool "recalbox-romfs-segacd"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GENESISPLUSGX \
+ || BR2_PACKAGE_LIBRETRO_PICODRIVE
+ help
+ share_init/roms and xml for segacd
diff --git a/package/recalbox-romfs/recalbox-romfs-segacd/recalbox-romfs-segacd.mk b/package/recalbox-romfs/recalbox-romfs-segacd/recalbox-romfs-segacd.mk
new file mode 100644
index 00000000000..cf444b6a232
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-segacd/recalbox-romfs-segacd.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-segacd
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system segacd --extension '.cue .CUE .iso .ISO' --fullname 'Sega CD' --platform segacd --theme segacd libretro:genesisplusgx:BR2_PACKAGE_LIBRETRO_GENESISPLUSGX libretro:picodrive:BR2_PACKAGE_LIBRETRO_PICODRIVE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_SEGACD_SOURCE =
+RECALBOX_ROMFS_SEGACD_SITE =
+RECALBOX_ROMFS_SEGACD_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_SEGACD = segacd
+SYSTEM_XML_SEGACD = $(@D)/$(SYSTEM_NAME_SEGACD).xml
+# System rom path
+SOURCE_ROMDIR_SEGACD = $(RECALBOX_ROMFS_SEGACD_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MAIN_SEGACD_START
+ echo -e '\n' \
+ '\tSega CD\n' \
+ "\t$(SYSTEM_NAME_SEGACD)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_SEGACD)\n' \
+ '\t.cue .CUE .iso .ISO\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tsegacd\n' \
+ '\tsegacd\n' \
+ '\t' > $(SYSTEM_XML_SEGACD)
+
+endef
+RECALBOX_ROMFS_SEGACD_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SEGACD_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_SEGACD_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_SEGACD)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SEGACD)
+
+endef
+RECALBOX_ROMFS_SEGACD_CONFIGURE_CMDS += $(CONFIGURE_SEGACD_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX),y)
+define CONFIGURE_SEGACD_LIBRETRO_GENESISPLUSGX_DEF
+ echo -e '\t\t\t\tgenesisplusgx' >> $(SYSTEM_XML_SEGACD)
+
+endef
+RECALBOX_ROMFS_SEGACD_CONFIGURE_CMDS += $(CONFIGURE_SEGACD_LIBRETRO_GENESISPLUSGX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),y)
+define CONFIGURE_SEGACD_LIBRETRO_PICODRIVE_DEF
+ echo -e '\t\t\t\tpicodrive' >> $(SYSTEM_XML_SEGACD)
+
+endef
+RECALBOX_ROMFS_SEGACD_CONFIGURE_CMDS += $(CONFIGURE_SEGACD_LIBRETRO_PICODRIVE_DEF)
+endif
+
+define CONFIGURE_SEGACD_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SEGACD)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_SEGACD)
+
+endef
+RECALBOX_ROMFS_SEGACD_CONFIGURE_CMDS += $(CONFIGURE_SEGACD_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_SEGACD_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_SEGACD)
+ cp -R $(SOURCE_ROMDIR_SEGACD) $(@D)
+endef
+RECALBOX_ROMFS_SEGACD_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SEGACD_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/segacd/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-segacd/roms/segacd/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/segacd/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-segacd/roms/segacd/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/segacd/_readme.txt b/package/recalbox-romfs/recalbox-romfs-segacd/roms/segacd/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/segacd/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-segacd/roms/segacd/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-sg1000/Config.in b/package/recalbox-romfs/recalbox-romfs-sg1000/Config.in
new file mode 100644
index 00000000000..98a5ed043b9
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-sg1000/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_SG1000
+ bool "recalbox-romfs-sg1000"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_GENESISPLUSGX \
+ || BR2_PACKAGE_LIBRETRO_PICODRIVE
+ help
+ share_init/roms and xml for sg1000
diff --git a/package/recalbox-romfs/recalbox-romfs-sg1000/recalbox-romfs-sg1000.mk b/package/recalbox-romfs/recalbox-romfs-sg1000/recalbox-romfs-sg1000.mk
new file mode 100644
index 00000000000..ff68cff087e
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-sg1000/recalbox-romfs-sg1000.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-sg1000
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system sg1000 --extension '.sg .SG .zip .ZIP' --fullname 'Sega SG1000' --platform sg1000 --theme sg1000 libretro:genesisplusgx:BR2_PACKAGE_LIBRETRO_GENESISPLUSGX libretro:picodrive:BR2_PACKAGE_LIBRETRO_PICODRIVE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_SG1000_SOURCE =
+RECALBOX_ROMFS_SG1000_SITE =
+RECALBOX_ROMFS_SG1000_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_SG1000 = sg1000
+SYSTEM_XML_SG1000 = $(@D)/$(SYSTEM_NAME_SG1000).xml
+# System rom path
+SOURCE_ROMDIR_SG1000 = $(RECALBOX_ROMFS_SG1000_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_MAIN_SG1000_START
+ echo -e '\n' \
+ '\tSega SG1000\n' \
+ "\t$(SYSTEM_NAME_SG1000)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_SG1000)\n' \
+ '\t.sg .SG .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tsg1000\n' \
+ '\tsg1000\n' \
+ '\t' > $(SYSTEM_XML_SG1000)
+
+endef
+RECALBOX_ROMFS_SG1000_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SG1000_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+define CONFIGURE_SG1000_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_SG1000)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SG1000)
+
+endef
+RECALBOX_ROMFS_SG1000_CONFIGURE_CMDS += $(CONFIGURE_SG1000_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX),y)
+define CONFIGURE_SG1000_LIBRETRO_GENESISPLUSGX_DEF
+ echo -e '\t\t\t\tgenesisplusgx' >> $(SYSTEM_XML_SG1000)
+
+endef
+RECALBOX_ROMFS_SG1000_CONFIGURE_CMDS += $(CONFIGURE_SG1000_LIBRETRO_GENESISPLUSGX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),y)
+define CONFIGURE_SG1000_LIBRETRO_PICODRIVE_DEF
+ echo -e '\t\t\t\tpicodrive' >> $(SYSTEM_XML_SG1000)
+
+endef
+RECALBOX_ROMFS_SG1000_CONFIGURE_CMDS += $(CONFIGURE_SG1000_LIBRETRO_PICODRIVE_DEF)
+endif
+
+define CONFIGURE_SG1000_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SG1000)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_SG1000)
+
+endef
+RECALBOX_ROMFS_SG1000_CONFIGURE_CMDS += $(CONFIGURE_SG1000_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_SG1000_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_SG1000)
+ cp -R $(SOURCE_ROMDIR_SG1000) $(@D)
+endef
+RECALBOX_ROMFS_SG1000_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SG1000_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/sg1000/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-sg1000/roms/sg1000/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/sg1000/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-sg1000/roms/sg1000/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/sg1000/_readme.txt b/package/recalbox-romfs/recalbox-romfs-sg1000/roms/sg1000/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/sg1000/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-sg1000/roms/sg1000/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-snes/Config.in b/package/recalbox-romfs/recalbox-romfs-snes/Config.in
new file mode 100644
index 00000000000..31ddb4adce3
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-snes/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_SNES
+ bool "recalbox-romfs-snes"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_CATSFC \
+ || BR2_PACKAGE_LIBRETRO_POCKETSNES \
+ || BR2_PACKAGE_LIBRETRO_SNES9X_NEXT \
+ || BR2_PACKAGE_LIBRETRO_SNES9X
+ help
+ share_init/roms and xml for snes
diff --git a/package/recalbox-romfs/recalbox-romfs-snes/recalbox-romfs-snes.mk b/package/recalbox-romfs/recalbox-romfs-snes/recalbox-romfs-snes.mk
new file mode 100644
index 00000000000..89bc94435cc
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-snes/recalbox-romfs-snes.mk
@@ -0,0 +1,99 @@
+################################################################################
+#
+# recalbox-romfs-snes
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system snes --extension '.smc .sfc .SMC .SFC .zip .ZIP .mgd .MGD' --fullname 'Super Nintendo Entertainment System' --platform snes --theme snes libretro:catsfc:BR2_PACKAGE_LIBRETRO_CATSFC libretro:pocketsnes:BR2_PACKAGE_LIBRETRO_POCKETSNES libretro:snes9x_next:BR2_PACKAGE_LIBRETRO_SNES9X_NEXT libretro:snes9x:BR2_PACKAGE_LIBRETRO_SNES9X
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_SNES_SOURCE =
+RECALBOX_ROMFS_SNES_SITE =
+RECALBOX_ROMFS_SNES_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_SNES = snes
+SYSTEM_XML_SNES = $(@D)/$(SYSTEM_NAME_SNES).xml
+# System rom path
+SOURCE_ROMDIR_SNES = $(RECALBOX_ROMFS_SNES_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_CATSFC)$(BR2_PACKAGE_LIBRETRO_POCKETSNES)$(BR2_PACKAGE_LIBRETRO_SNES9X_NEXT)$(BR2_PACKAGE_LIBRETRO_SNES9X),)
+define CONFIGURE_MAIN_SNES_START
+ echo -e '\n' \
+ '\tSuper Nintendo Entertainment System\n' \
+ "\t$(SYSTEM_NAME_SNES)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_SNES)\n' \
+ '\t.smc .sfc .SMC .SFC .zip .ZIP .mgd .MGD\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tsnes\n' \
+ '\tsnes\n' \
+ '\t' > $(SYSTEM_XML_SNES)
+
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SNES_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_CATSFC)$(BR2_PACKAGE_LIBRETRO_POCKETSNES)$(BR2_PACKAGE_LIBRETRO_SNES9X_NEXT)$(BR2_PACKAGE_LIBRETRO_SNES9X),)
+define CONFIGURE_SNES_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_SNES)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SNES)
+
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_SNES_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_SNES9X_NEXT),y)
+define CONFIGURE_SNES_LIBRETRO_SNES9X_NEXT_DEF
+ echo -e '\t\t\t\tsnes9x_next' >> $(SYSTEM_XML_SNES)
+
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_SNES_LIBRETRO_SNES9X_NEXT_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_CATSFC),y)
+define CONFIGURE_SNES_LIBRETRO_CATSFC_DEF
+ echo -e '\t\t\t\tcatsfc' >> $(SYSTEM_XML_SNES)
+
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_SNES_LIBRETRO_CATSFC_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_SNES9X),y)
+define CONFIGURE_SNES_LIBRETRO_SNES9X_DEF
+ echo -e '\t\t\t\tsnes9x' >> $(SYSTEM_XML_SNES)
+
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_SNES_LIBRETRO_SNES9X_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_POCKETSNES),y)
+define CONFIGURE_SNES_LIBRETRO_POCKETSNES_DEF
+ echo -e '\t\t\t\tpocketsnes' >> $(SYSTEM_XML_SNES)
+
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_SNES_LIBRETRO_POCKETSNES_DEF)
+endif
+
+define CONFIGURE_SNES_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SNES)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_SNES)
+
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_SNES_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_SNES_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_SNES)
+ cp -R $(SOURCE_ROMDIR_SNES) $(@D)
+endef
+RECALBOX_ROMFS_SNES_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SNES_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/snes/DonkeyKongClassic (Shiru).smc b/package/recalbox-romfs/recalbox-romfs-snes/roms/snes/DonkeyKongClassic (Shiru).smc
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/snes/DonkeyKongClassic (Shiru).smc
rename to package/recalbox-romfs/recalbox-romfs-snes/roms/snes/DonkeyKongClassic (Shiru).smc
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/snes/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-snes/roms/snes/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/snes/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-snes/roms/snes/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/snes/_readme.txt b/package/recalbox-romfs/recalbox-romfs-snes/roms/snes/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/snes/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-snes/roms/snes/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-supergrafx/Config.in b/package/recalbox-romfs/recalbox-romfs-supergrafx/Config.in
new file mode 100644
index 00000000000..d1f23d71d8f
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-supergrafx/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_SUPERGRAFX
+ bool "recalbox-romfs-supergrafx"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX \
+ || BR2_PACKAGE_LIBRETRO_BEETLE_PCE
+ help
+ share_init/roms and xml for supergrafx
diff --git a/package/recalbox-romfs/recalbox-romfs-supergrafx/recalbox-romfs-supergrafx.mk b/package/recalbox-romfs/recalbox-romfs-supergrafx/recalbox-romfs-supergrafx.mk
new file mode 100644
index 00000000000..050943898ac
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-supergrafx/recalbox-romfs-supergrafx.mk
@@ -0,0 +1,83 @@
+################################################################################
+#
+# recalbox-romfs-supergrafx
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system supergrafx --extension '.pce .PCE .sgx .SGX .zip .ZIP' --fullname 'Supergrafx' --platform supergrafx --theme supergrafx libretro:mednafen_supergrafx:BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX libretro:pce:BR2_PACKAGE_LIBRETRO_BEETLE_PCE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_SUPERGRAFX_SOURCE =
+RECALBOX_ROMFS_SUPERGRAFX_SITE =
+RECALBOX_ROMFS_SUPERGRAFX_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_SUPERGRAFX = supergrafx
+SYSTEM_XML_SUPERGRAFX = $(@D)/$(SYSTEM_NAME_SUPERGRAFX).xml
+# System rom path
+SOURCE_ROMDIR_SUPERGRAFX = $(RECALBOX_ROMFS_SUPERGRAFX_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+define CONFIGURE_MAIN_SUPERGRAFX_START
+ echo -e '\n' \
+ '\tSupergrafx\n' \
+ "\t$(SYSTEM_NAME_SUPERGRAFX)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_SUPERGRAFX)\n' \
+ '\t.pce .PCE .sgx .SGX .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tsupergrafx\n' \
+ '\tsupergrafx\n' \
+ '\t' > $(SYSTEM_XML_SUPERGRAFX)
+
+endef
+RECALBOX_ROMFS_SUPERGRAFX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SUPERGRAFX_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+define CONFIGURE_SUPERGRAFX_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_SUPERGRAFX)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SUPERGRAFX)
+
+endef
+RECALBOX_ROMFS_SUPERGRAFX_CONFIGURE_CMDS += $(CONFIGURE_SUPERGRAFX_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX),y)
+define CONFIGURE_SUPERGRAFX_LIBRETRO_MEDNAFEN_SUPERGRAFX_DEF
+ echo -e '\t\t\t\tmednafen_supergrafx' >> $(SYSTEM_XML_SUPERGRAFX)
+
+endef
+RECALBOX_ROMFS_SUPERGRAFX_CONFIGURE_CMDS += $(CONFIGURE_SUPERGRAFX_LIBRETRO_MEDNAFEN_SUPERGRAFX_DEF)
+endif
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),y)
+define CONFIGURE_SUPERGRAFX_LIBRETRO_PCE_DEF
+ echo -e '\t\t\t\tpce' >> $(SYSTEM_XML_SUPERGRAFX)
+
+endef
+RECALBOX_ROMFS_SUPERGRAFX_CONFIGURE_CMDS += $(CONFIGURE_SUPERGRAFX_LIBRETRO_PCE_DEF)
+endif
+
+define CONFIGURE_SUPERGRAFX_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_SUPERGRAFX)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_SUPERGRAFX)
+
+endef
+RECALBOX_ROMFS_SUPERGRAFX_CONFIGURE_CMDS += $(CONFIGURE_SUPERGRAFX_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_SUPERGRAFX_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_SUPERGRAFX)
+ cp -R $(SOURCE_ROMDIR_SUPERGRAFX) $(@D)
+endef
+RECALBOX_ROMFS_SUPERGRAFX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_SUPERGRAFX_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/supergrafx/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-supergrafx/roms/supergrafx/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/supergrafx/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-supergrafx/roms/supergrafx/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/supergrafx/_readme.txt b/package/recalbox-romfs/recalbox-romfs-supergrafx/roms/supergrafx/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/supergrafx/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-supergrafx/roms/supergrafx/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-vectrex/Config.in b/package/recalbox-romfs/recalbox-romfs-vectrex/Config.in
new file mode 100644
index 00000000000..fc42b3e2e10
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-vectrex/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_VECTREX
+ bool "recalbox-romfs-vectrex"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_VECX
+ help
+ share_init/roms and xml for vectrex
diff --git a/package/recalbox-romfs/recalbox-romfs-vectrex/recalbox-romfs-vectrex.mk b/package/recalbox-romfs/recalbox-romfs-vectrex/recalbox-romfs-vectrex.mk
new file mode 100644
index 00000000000..66f7a0cfbc7
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-vectrex/recalbox-romfs-vectrex.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-vectrex
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system vectrex --extension '.zip .ZIP .vec .VEC' --fullname 'Vectrex' --platform vectrex --theme vectrex libretro:vecx:BR2_PACKAGE_LIBRETRO_VECX
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_VECTREX_SOURCE =
+RECALBOX_ROMFS_VECTREX_SITE =
+RECALBOX_ROMFS_VECTREX_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_VECTREX = vectrex
+SYSTEM_XML_VECTREX = $(@D)/$(SYSTEM_NAME_VECTREX).xml
+# System rom path
+SOURCE_ROMDIR_VECTREX = $(RECALBOX_ROMFS_VECTREX_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_VECX),)
+define CONFIGURE_MAIN_VECTREX_START
+ echo -e '\n' \
+ '\tVectrex\n' \
+ "\t$(SYSTEM_NAME_VECTREX)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_VECTREX)\n' \
+ '\t.zip .ZIP .vec .VEC\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tvectrex\n' \
+ '\tvectrex\n' \
+ '\t' > $(SYSTEM_XML_VECTREX)
+
+endef
+RECALBOX_ROMFS_VECTREX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_VECTREX_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_VECX),)
+define CONFIGURE_VECTREX_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_VECTREX)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_VECTREX)
+
+endef
+RECALBOX_ROMFS_VECTREX_CONFIGURE_CMDS += $(CONFIGURE_VECTREX_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_VECX),y)
+define CONFIGURE_VECTREX_LIBRETRO_VECX_DEF
+ echo -e '\t\t\t\tvecx' >> $(SYSTEM_XML_VECTREX)
+
+endef
+RECALBOX_ROMFS_VECTREX_CONFIGURE_CMDS += $(CONFIGURE_VECTREX_LIBRETRO_VECX_DEF)
+endif
+
+define CONFIGURE_VECTREX_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_VECTREX)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_VECTREX)
+
+endef
+RECALBOX_ROMFS_VECTREX_CONFIGURE_CMDS += $(CONFIGURE_VECTREX_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_VECTREX_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_VECTREX)
+ cp -R $(SOURCE_ROMDIR_VECTREX) $(@D)
+endef
+RECALBOX_ROMFS_VECTREX_CONFIGURE_CMDS += $(CONFIGURE_MAIN_VECTREX_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/vectrex/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-vectrex/roms/vectrex/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/vectrex/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-vectrex/roms/vectrex/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/vectrex/_readme.txt b/package/recalbox-romfs/recalbox-romfs-vectrex/roms/vectrex/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/vectrex/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-vectrex/roms/vectrex/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-virtualboy/Config.in b/package/recalbox-romfs/recalbox-romfs-virtualboy/Config.in
new file mode 100644
index 00000000000..ff50254ca72
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-virtualboy/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_VIRTUALBOY
+ bool "recalbox-romfs-virtualboy"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_VB
+ help
+ share_init/roms and xml for virtualboy
diff --git a/package/recalbox-romfs/recalbox-romfs-virtualboy/recalbox-romfs-virtualboy.mk b/package/recalbox-romfs/recalbox-romfs-virtualboy/recalbox-romfs-virtualboy.mk
new file mode 100644
index 00000000000..627adcc43dd
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-virtualboy/recalbox-romfs-virtualboy.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-virtualboy
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system virtualboy --extension '.vb .VB .zip .ZIP' --fullname 'Virtual Boy' --platform virtualboy --theme virtualboy libretro:mednafen_vb:BR2_PACKAGE_LIBRETRO_BEETLE_VB
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_VIRTUALBOY_SOURCE =
+RECALBOX_ROMFS_VIRTUALBOY_SITE =
+RECALBOX_ROMFS_VIRTUALBOY_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_VIRTUALBOY = virtualboy
+SYSTEM_XML_VIRTUALBOY = $(@D)/$(SYSTEM_NAME_VIRTUALBOY).xml
+# System rom path
+SOURCE_ROMDIR_VIRTUALBOY = $(RECALBOX_ROMFS_VIRTUALBOY_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_VB),)
+define CONFIGURE_MAIN_VIRTUALBOY_START
+ echo -e '\n' \
+ '\tVirtual Boy\n' \
+ "\t$(SYSTEM_NAME_VIRTUALBOY)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_VIRTUALBOY)\n' \
+ '\t.vb .VB .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tvirtualboy\n' \
+ '\tvirtualboy\n' \
+ '\t' > $(SYSTEM_XML_VIRTUALBOY)
+
+endef
+RECALBOX_ROMFS_VIRTUALBOY_CONFIGURE_CMDS += $(CONFIGURE_MAIN_VIRTUALBOY_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_VB),)
+define CONFIGURE_VIRTUALBOY_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_VIRTUALBOY)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_VIRTUALBOY)
+
+endef
+RECALBOX_ROMFS_VIRTUALBOY_CONFIGURE_CMDS += $(CONFIGURE_VIRTUALBOY_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_VB),y)
+define CONFIGURE_VIRTUALBOY_LIBRETRO_MEDNAFEN_VB_DEF
+ echo -e '\t\t\t\tmednafen_vb' >> $(SYSTEM_XML_VIRTUALBOY)
+
+endef
+RECALBOX_ROMFS_VIRTUALBOY_CONFIGURE_CMDS += $(CONFIGURE_VIRTUALBOY_LIBRETRO_MEDNAFEN_VB_DEF)
+endif
+
+define CONFIGURE_VIRTUALBOY_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_VIRTUALBOY)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_VIRTUALBOY)
+
+endef
+RECALBOX_ROMFS_VIRTUALBOY_CONFIGURE_CMDS += $(CONFIGURE_VIRTUALBOY_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_VIRTUALBOY_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_VIRTUALBOY)
+ cp -R $(SOURCE_ROMDIR_VIRTUALBOY) $(@D)
+endef
+RECALBOX_ROMFS_VIRTUALBOY_CONFIGURE_CMDS += $(CONFIGURE_MAIN_VIRTUALBOY_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/virtualboy/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-virtualboy/roms/virtualboy/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/virtualboy/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-virtualboy/roms/virtualboy/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/virtualboy/_readme.txt b/package/recalbox-romfs/recalbox-romfs-virtualboy/roms/virtualboy/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/virtualboy/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-virtualboy/roms/virtualboy/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-wii/Config.in b/package/recalbox-romfs/recalbox-romfs-wii/Config.in
new file mode 100644
index 00000000000..8d52deae56b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-wii/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_WII
+ bool "recalbox-romfs-wii"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_DOLPHIN_EMU
+ help
+ share_init/roms and xml for wii
diff --git a/package/recalbox-romfs/recalbox-romfs-wii/recalbox-romfs-wii.mk b/package/recalbox-romfs/recalbox-romfs-wii/recalbox-romfs-wii.mk
new file mode 100644
index 00000000000..19d9253974b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-wii/recalbox-romfs-wii.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-wii
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system wii --extension '.iso .ISO .wbfs .WBFS' --fullname 'Wii' --platform wii --theme wii BR2_PACKAGE_DOLPHIN_EMU
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_WII_SOURCE =
+RECALBOX_ROMFS_WII_SITE =
+RECALBOX_ROMFS_WII_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_WII = wii
+SYSTEM_XML_WII = $(@D)/$(SYSTEM_NAME_WII).xml
+# System rom path
+SOURCE_ROMDIR_WII = $(RECALBOX_ROMFS_WII_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(BR2_PACKAGE_DOLPHIN_EMU),y)
+define CONFIGURE_WII
+ echo -e '\n' \
+ '\tWii\n' \
+ "\t$(SYSTEM_NAME_WII)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_WII)\n' \
+ '\t.iso .ISO .wbfs .WBFS\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\twii\n' \
+ '\twii\n' \
+ '' > $(SYSTEM_XML_WII)
+ cp -R $(SOURCE_ROMDIR_WII) $(@D)
+endef
+RECALBOX_ROMFS_WII_CONFIGURE_CMDS += $(CONFIGURE_WII)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/wii/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-wii/roms/wii/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/wii/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-wii/roms/wii/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/wii/_readme.txt b/package/recalbox-romfs/recalbox-romfs-wii/roms/wii/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/wii/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-wii/roms/wii/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-wswan/Config.in b/package/recalbox-romfs/recalbox-romfs-wswan/Config.in
new file mode 100644
index 00000000000..e48fd978721
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-wswan/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_WSWAN
+ bool "recalbox-romfs-wswan"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN
+ help
+ share_init/roms and xml for wswan
diff --git a/package/recalbox-romfs/recalbox-romfs-wswan/recalbox-romfs-wswan.mk b/package/recalbox-romfs/recalbox-romfs-wswan/recalbox-romfs-wswan.mk
new file mode 100644
index 00000000000..2cf80a797ac
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-wswan/recalbox-romfs-wswan.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-wswan
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system wswan --extension '.ws .WS .wsc .WSC .zip .ZIP' --fullname 'WonderSwan' --platform wonderswan --theme wonderswan libretro:mednafen_wswan:BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_WSWAN_SOURCE =
+RECALBOX_ROMFS_WSWAN_SITE =
+RECALBOX_ROMFS_WSWAN_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_WSWAN = wswan
+SYSTEM_XML_WSWAN = $(@D)/$(SYSTEM_NAME_WSWAN).xml
+# System rom path
+SOURCE_ROMDIR_WSWAN = $(RECALBOX_ROMFS_WSWAN_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),)
+define CONFIGURE_MAIN_WSWAN_START
+ echo -e '\n' \
+ '\tWonderSwan\n' \
+ "\t$(SYSTEM_NAME_WSWAN)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_WSWAN)\n' \
+ '\t.ws .WS .wsc .WSC .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\twonderswan\n' \
+ '\twonderswan\n' \
+ '\t' > $(SYSTEM_XML_WSWAN)
+
+endef
+RECALBOX_ROMFS_WSWAN_CONFIGURE_CMDS += $(CONFIGURE_MAIN_WSWAN_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),)
+define CONFIGURE_WSWAN_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_WSWAN)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_WSWAN)
+
+endef
+RECALBOX_ROMFS_WSWAN_CONFIGURE_CMDS += $(CONFIGURE_WSWAN_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),y)
+define CONFIGURE_WSWAN_LIBRETRO_MEDNAFEN_WSWAN_DEF
+ echo -e '\t\t\t\tmednafen_wswan' >> $(SYSTEM_XML_WSWAN)
+
+endef
+RECALBOX_ROMFS_WSWAN_CONFIGURE_CMDS += $(CONFIGURE_WSWAN_LIBRETRO_MEDNAFEN_WSWAN_DEF)
+endif
+
+define CONFIGURE_WSWAN_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_WSWAN)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_WSWAN)
+
+endef
+RECALBOX_ROMFS_WSWAN_CONFIGURE_CMDS += $(CONFIGURE_WSWAN_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_WSWAN_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_WSWAN)
+ cp -R $(SOURCE_ROMDIR_WSWAN) $(@D)
+endef
+RECALBOX_ROMFS_WSWAN_CONFIGURE_CMDS += $(CONFIGURE_MAIN_WSWAN_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/wswan/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-wswan/roms/wswan/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/wswan/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-wswan/roms/wswan/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/wswan/_readme.txt b/package/recalbox-romfs/recalbox-romfs-wswan/roms/wswan/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/wswan/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-wswan/roms/wswan/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-wswanc/Config.in b/package/recalbox-romfs/recalbox-romfs-wswanc/Config.in
new file mode 100644
index 00000000000..3a6d369e6d7
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-wswanc/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_WSWANC
+ bool "recalbox-romfs-wswanc"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN
+ help
+ share_init/roms and xml for wswanc
diff --git a/package/recalbox-romfs/recalbox-romfs-wswanc/recalbox-romfs-wswanc.mk b/package/recalbox-romfs/recalbox-romfs-wswanc/recalbox-romfs-wswanc.mk
new file mode 100644
index 00000000000..439eb051c92
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-wswanc/recalbox-romfs-wswanc.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-wswanc
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system wswanc --extension '.ws .WS .wsc .WSC .zip .ZIP' --fullname 'WonderSwan Color' --platform wonderswancolor --theme wonderswancolor libretro:mednafen_wswan:BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_WSWANC_SOURCE =
+RECALBOX_ROMFS_WSWANC_SITE =
+RECALBOX_ROMFS_WSWANC_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_WSWANC = wswanc
+SYSTEM_XML_WSWANC = $(@D)/$(SYSTEM_NAME_WSWANC).xml
+# System rom path
+SOURCE_ROMDIR_WSWANC = $(RECALBOX_ROMFS_WSWANC_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),)
+define CONFIGURE_MAIN_WSWANC_START
+ echo -e '\n' \
+ '\tWonderSwan Color\n' \
+ "\t$(SYSTEM_NAME_WSWANC)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_WSWANC)\n' \
+ '\t.ws .WS .wsc .WSC .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\twonderswancolor\n' \
+ '\twonderswancolor\n' \
+ '\t' > $(SYSTEM_XML_WSWANC)
+
+endef
+RECALBOX_ROMFS_WSWANC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_WSWANC_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),)
+define CONFIGURE_WSWANC_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_WSWANC)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_WSWANC)
+
+endef
+RECALBOX_ROMFS_WSWANC_CONFIGURE_CMDS += $(CONFIGURE_WSWANC_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),y)
+define CONFIGURE_WSWANC_LIBRETRO_MEDNAFEN_WSWAN_DEF
+ echo -e '\t\t\t\tmednafen_wswan' >> $(SYSTEM_XML_WSWANC)
+
+endef
+RECALBOX_ROMFS_WSWANC_CONFIGURE_CMDS += $(CONFIGURE_WSWANC_LIBRETRO_MEDNAFEN_WSWAN_DEF)
+endif
+
+define CONFIGURE_WSWANC_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_WSWANC)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_WSWANC)
+
+endef
+RECALBOX_ROMFS_WSWANC_CONFIGURE_CMDS += $(CONFIGURE_WSWANC_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_WSWANC_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_WSWANC)
+ cp -R $(SOURCE_ROMDIR_WSWANC) $(@D)
+endef
+RECALBOX_ROMFS_WSWANC_CONFIGURE_CMDS += $(CONFIGURE_MAIN_WSWANC_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/wswanc/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-wswanc/roms/wswanc/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/wswanc/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-wswanc/roms/wswanc/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/wswanc/_readme.txt b/package/recalbox-romfs/recalbox-romfs-wswanc/roms/wswanc/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/wswanc/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-wswanc/roms/wswanc/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-zx81/Config.in b/package/recalbox-romfs/recalbox-romfs-zx81/Config.in
new file mode 100644
index 00000000000..dfcfa6d89e6
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-zx81/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_ZX81
+ bool "recalbox-romfs-zx81"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_81
+ help
+ share_init/roms and xml for zx81
diff --git a/package/recalbox-romfs/recalbox-romfs-zx81/recalbox-romfs-zx81.mk b/package/recalbox-romfs/recalbox-romfs-zx81/recalbox-romfs-zx81.mk
new file mode 100644
index 00000000000..bd71afa42dc
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-zx81/recalbox-romfs-zx81.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-zx81
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system zx81 --extension '.tzx .TZX .p .P .zip .ZIP' --fullname 'ZX81' --platform zx81 --theme zx81 libretro:81:BR2_PACKAGE_LIBRETRO_81
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_ZX81_SOURCE =
+RECALBOX_ROMFS_ZX81_SITE =
+RECALBOX_ROMFS_ZX81_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_ZX81 = zx81
+SYSTEM_XML_ZX81 = $(@D)/$(SYSTEM_NAME_ZX81).xml
+# System rom path
+SOURCE_ROMDIR_ZX81 = $(RECALBOX_ROMFS_ZX81_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_81),)
+define CONFIGURE_MAIN_ZX81_START
+ echo -e '\n' \
+ '\tZX81\n' \
+ "\t$(SYSTEM_NAME_ZX81)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_ZX81)\n' \
+ '\t.tzx .TZX .p .P .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tzx81\n' \
+ '\tzx81\n' \
+ '\t' > $(SYSTEM_XML_ZX81)
+
+endef
+RECALBOX_ROMFS_ZX81_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ZX81_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_81),)
+define CONFIGURE_ZX81_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_ZX81)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ZX81)
+
+endef
+RECALBOX_ROMFS_ZX81_CONFIGURE_CMDS += $(CONFIGURE_ZX81_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_81),y)
+define CONFIGURE_ZX81_LIBRETRO_81_DEF
+ echo -e '\t\t\t\t81' >> $(SYSTEM_XML_ZX81)
+
+endef
+RECALBOX_ROMFS_ZX81_CONFIGURE_CMDS += $(CONFIGURE_ZX81_LIBRETRO_81_DEF)
+endif
+
+define CONFIGURE_ZX81_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ZX81)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_ZX81)
+
+endef
+RECALBOX_ROMFS_ZX81_CONFIGURE_CMDS += $(CONFIGURE_ZX81_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_ZX81_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_ZX81)
+ cp -R $(SOURCE_ROMDIR_ZX81) $(@D)
+endef
+RECALBOX_ROMFS_ZX81_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ZX81_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/zx81/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-zx81/roms/zx81/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/zx81/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-zx81/roms/zx81/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/zx81/_readme.txt b/package/recalbox-romfs/recalbox-romfs-zx81/roms/zx81/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/zx81/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-zx81/roms/zx81/_readme.txt
diff --git a/package/recalbox-romfs/recalbox-romfs-zxspectrum/Config.in b/package/recalbox-romfs/recalbox-romfs-zxspectrum/Config.in
new file mode 100644
index 00000000000..56a6c401c54
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-zxspectrum/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RECALBOX_ROMFS_ZXSPECTRUM
+ bool "recalbox-romfs-zxspectrum"
+ select BR2_PACKAGE_RECALBOX_ROMS
+ depends on BR2_PACKAGE_LIBRETRO_FUSE
+ help
+ share_init/roms and xml for zxspectrum
diff --git a/package/recalbox-romfs/recalbox-romfs-zxspectrum/recalbox-romfs-zxspectrum.mk b/package/recalbox-romfs/recalbox-romfs-zxspectrum/recalbox-romfs-zxspectrum.mk
new file mode 100644
index 00000000000..ad7567e35d4
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs-zxspectrum/recalbox-romfs-zxspectrum.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# recalbox-romfs-zxspectrum
+#
+################################################################################
+
+# Package generated with :
+# ./scripts/linux/empack.py --system zxspectrum --extension '.tzx .TZX .tap .TAP .z80 .ZX80 .rzx .RZX .scl .SCL .trd .TRD .zip .ZIP' --fullname 'ZXSpectrum' --platform zxspectrum --theme zxspectrum libretro:fuse:BR2_PACKAGE_LIBRETRO_FUSE
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_ZXSPECTRUM_SOURCE =
+RECALBOX_ROMFS_ZXSPECTRUM_SITE =
+RECALBOX_ROMFS_ZXSPECTRUM_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_ZXSPECTRUM = zxspectrum
+SYSTEM_XML_ZXSPECTRUM = $(@D)/$(SYSTEM_NAME_ZXSPECTRUM).xml
+# System rom path
+SOURCE_ROMDIR_ZXSPECTRUM = $(RECALBOX_ROMFS_ZXSPECTRUM_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FUSE),)
+define CONFIGURE_MAIN_ZXSPECTRUM_START
+ echo -e '\n' \
+ '\tZXSpectrum\n' \
+ "\t$(SYSTEM_NAME_ZXSPECTRUM)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_ZXSPECTRUM)\n' \
+ '\t.tzx .TZX .tap .TAP .z80 .ZX80 .rzx .RZX .scl .SCL .trd .TRD .zip .ZIP\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\tzxspectrum\n' \
+ '\tzxspectrum\n' \
+ '\t' > $(SYSTEM_XML_ZXSPECTRUM)
+
+endef
+RECALBOX_ROMFS_ZXSPECTRUM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ZXSPECTRUM_START)
+
+
+ifneq ($(BR2_PACKAGE_LIBRETRO_FUSE),)
+define CONFIGURE_ZXSPECTRUM_LIBRETRO_START
+ echo -e '\t\t' >> $(SYSTEM_XML_ZXSPECTRUM)
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ZXSPECTRUM)
+
+endef
+RECALBOX_ROMFS_ZXSPECTRUM_CONFIGURE_CMDS += $(CONFIGURE_ZXSPECTRUM_LIBRETRO_START)
+
+ifeq ($(BR2_PACKAGE_LIBRETRO_FUSE),y)
+define CONFIGURE_ZXSPECTRUM_LIBRETRO_FUSE_DEF
+ echo -e '\t\t\t\tfuse' >> $(SYSTEM_XML_ZXSPECTRUM)
+
+endef
+RECALBOX_ROMFS_ZXSPECTRUM_CONFIGURE_CMDS += $(CONFIGURE_ZXSPECTRUM_LIBRETRO_FUSE_DEF)
+endif
+
+define CONFIGURE_ZXSPECTRUM_LIBRETRO_END
+ echo -e '\t\t\t' >> $(SYSTEM_XML_ZXSPECTRUM)
+
+ echo -e '\t\t' >> $(SYSTEM_XML_ZXSPECTRUM)
+
+endef
+RECALBOX_ROMFS_ZXSPECTRUM_CONFIGURE_CMDS += $(CONFIGURE_ZXSPECTRUM_LIBRETRO_END)
+endif
+
+
+
+define CONFIGURE_MAIN_ZXSPECTRUM_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_ZXSPECTRUM)
+ cp -R $(SOURCE_ROMDIR_ZXSPECTRUM) $(@D)
+endef
+RECALBOX_ROMFS_ZXSPECTRUM_CONFIGURE_CMDS += $(CONFIGURE_MAIN_ZXSPECTRUM_END)
+endif
+
+$(eval $(generic-package))
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/zxspectrum/_lisezmoi.txt b/package/recalbox-romfs/recalbox-romfs-zxspectrum/roms/zxspectrum/_lisezmoi.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/zxspectrum/_lisezmoi.txt
rename to package/recalbox-romfs/recalbox-romfs-zxspectrum/roms/zxspectrum/_lisezmoi.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/zxspectrum/_readme.txt b/package/recalbox-romfs/recalbox-romfs-zxspectrum/roms/zxspectrum/_readme.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/zxspectrum/_readme.txt
rename to package/recalbox-romfs/recalbox-romfs-zxspectrum/roms/zxspectrum/_readme.txt
diff --git a/board/recalbox/fsoverlay/recalbox/share_init/roms/zxspectrum/_readme_input.txt b/package/recalbox-romfs/recalbox-romfs-zxspectrum/roms/zxspectrum/_readme_input.txt
similarity index 100%
rename from board/recalbox/fsoverlay/recalbox/share_init/roms/zxspectrum/_readme_input.txt
rename to package/recalbox-romfs/recalbox-romfs-zxspectrum/roms/zxspectrum/_readme_input.txt
diff --git a/package/recalbox-romfs/recalbox-romfs.mk b/package/recalbox-romfs/recalbox-romfs.mk
new file mode 100644
index 00000000000..995e23e16cb
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs.mk
@@ -0,0 +1,2 @@
+#include package/recalbox-romfs/*/*.mk
+include $(sort $(wildcard package/recalbox-romfs/*/*.mk))
diff --git a/package/recalbox-romfs/recalbox-romfs/Config.in b/package/recalbox-romfs/recalbox-romfs/Config.in
new file mode 100644
index 00000000000..b3e8691dee7
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs/Config.in
@@ -0,0 +1,61 @@
+config BR2_PACKAGE_RECALBOX_ROMFS
+ bool "recalbox-romfs"
+ default y
+ depends on BR2_PACKAGE_RECALBOX_ROMFS_AMSTRADCPC \
+ || BR2_PACKAGE_RECALBOX_ROMFS_APPLE2 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_ATARI2600 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_ATARI7800 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_ATARIST \
+ || BR2_PACKAGE_RECALBOX_ROMFS_C64 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_CAVESTORY \
+ || BR2_PACKAGE_RECALBOX_ROMFS_COLECOVISION \
+ || BR2_PACKAGE_RECALBOX_ROMFS_DOS \
+ || BR2_PACKAGE_RECALBOX_ROMFS_DREAMCAST \
+ || BR2_PACKAGE_RECALBOX_ROMFS_FBA \
+ || BR2_PACKAGE_RECALBOX_ROMFS_FBA_LIBRETRO \
+ || BR2_PACKAGE_RECALBOX_ROMFS_FDS \
+ || BR2_PACKAGE_RECALBOX_ROMFS_GAMECUBE \
+ || BR2_PACKAGE_RECALBOX_ROMFS_GAMEGEAR \
+ || BR2_PACKAGE_RECALBOX_ROMFS_GB \
+ || BR2_PACKAGE_RECALBOX_ROMFS_GBA \
+ || BR2_PACKAGE_RECALBOX_ROMFS_GBC \
+ || BR2_PACKAGE_RECALBOX_ROMFS_GW \
+ || BR2_PACKAGE_RECALBOX_ROMFS_IMAGEVIEWER \
+ || BR2_PACKAGE_RECALBOX_ROMFS_LUTRO \
+ || BR2_PACKAGE_RECALBOX_ROMFS_LYNX \
+ || BR2_PACKAGE_RECALBOX_ROMFS_MAME \
+ || BR2_PACKAGE_RECALBOX_ROMFS_MASTERSYSTEM \
+ || BR2_PACKAGE_RECALBOX_ROMFS_MEGADRIVE \
+ || BR2_PACKAGE_RECALBOX_ROMFS_MOONLIGHT \
+ || BR2_PACKAGE_RECALBOX_ROMFS_MSX \
+ || BR2_PACKAGE_RECALBOX_ROMFS_MSX1 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_MSX2 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_N64 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_NEOGEO \
+ || BR2_PACKAGE_RECALBOX_ROMFS_NES \
+ || BR2_PACKAGE_RECALBOX_ROMFS_NGP \
+ || BR2_PACKAGE_RECALBOX_ROMFS_NGPC \
+ || BR2_PACKAGE_RECALBOX_ROMFS_O2EM \
+ || BR2_PACKAGE_RECALBOX_ROMFS_PCENGINE \
+ || BR2_PACKAGE_RECALBOX_ROMFS_PCENGINECD \
+ || BR2_PACKAGE_RECALBOX_ROMFS_PRBOOM \
+ || BR2_PACKAGE_RECALBOX_ROMFS_PSP \
+ || BR2_PACKAGE_RECALBOX_ROMFS_PSX \
+ || BR2_PACKAGE_RECALBOX_ROMFS_SCUMMVM \
+ || BR2_PACKAGE_RECALBOX_ROMFS_SEGA32X \
+ || BR2_PACKAGE_RECALBOX_ROMFS_SEGACD \
+ || BR2_PACKAGE_RECALBOX_ROMFS_SG1000 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_SNES \
+ || BR2_PACKAGE_RECALBOX_ROMFS_SUPERGRAFX \
+ || BR2_PACKAGE_RECALBOX_ROMFS_VECTREX \
+ || BR2_PACKAGE_RECALBOX_ROMFS_VIRTUALBOY \
+ || BR2_PACKAGE_RECALBOX_ROMFS_WII \
+ || BR2_PACKAGE_RECALBOX_ROMFS_WSWAN \
+ || BR2_PACKAGE_RECALBOX_ROMFS_WSWANC \
+ || BR2_PACKAGE_RECALBOX_ROMFS_ZX81 \
+ || BR2_PACKAGE_RECALBOX_ROMFS_ZXSPECTRUM
+
+ help
+ This super package will create the share_init/roms structure
+ as well as the es_systems.cfg depending on emulators
+
diff --git a/package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk b/package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk
new file mode 100644
index 00000000000..7fca8015e2b
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk
@@ -0,0 +1,314 @@
+################################################################################
+#
+# recalbox-romfs
+#
+################################################################################
+
+RECALBOX_ROMFS_SOURCE =
+RECALBOX_ROMFS_SITE =
+RECALBOX_ROMFS_INSTALL_STAGING = NO
+
+ES_SYSTEMS = $(@D)/es_systems.cfg
+ES_SYSTEMS_TMP = $(ES_SYSTEMS).tmp
+TARGET_ES_SYSTEMS_DIR = $(TARGET_DIR)/recalbox/share_init/system/.emulationstation
+TARGET_ROMDIR = $(TARGET_DIR)/recalbox/share_init/
+
+CONFIGGEN_STD_CMD = python /usr/lib/python2.7/site-packages/configgen/emulatorlauncher.pyc %CONTROLLERSCONFIG% -system %SYSTEM% -rom %ROM% -emulator %EMULATOR% -core %CORE% -ratio %RATIO%
+
+# Each emulator must define :
+# - its es_systems.cfg entry
+# - its source roms folder
+# You MUST add an empty line at the end of the define otherwise some commands
+# will overlap and fail
+
+# Init the es_systems.cfg
+# Keep the empty line as there are several commands to chain at configure
+define RECALBOX_ROMFS_ES_SYSTEMS
+ echo '' > $(ES_SYSTEMS_TMP)
+ echo '' >> $(ES_SYSTEMS_TMP)
+ cat $(@D)/../recalbox-romfs-*/*.xml >> $(ES_SYSTEMS_TMP)
+ echo -e '\n' \
+ "\tFavorites\n" \
+ '\tfavorites\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ "\tfavorites\n" \
+ "\n" \
+ '' >> $(ES_SYSTEMS_TMP)
+ xmllint --format $(ES_SYSTEMS_TMP) > $(ES_SYSTEMS)
+
+endef
+RECALBOX_ROMFS_CONFIGURE_CMDS += $(RECALBOX_ROMFS_ES_SYSTEMS)
+
+# Copy rom dirs
+define RECALBOX_ROMFS_ROM_DIRS
+ cp -R $(@D)/../recalbox-romfs-*/roms $(@D)
+
+endef
+RECALBOX_ROMFS_CONFIGURE_CMDS += $(RECALBOX_ROMFS_ROM_DIRS)
+
+# Copy from build to target
+define RECALBOX_ROMFS_INSTALL_TARGET_CMDS
+ mkdir -p $(TARGET_ROMDIR)/roms
+ mkdir -p $(TARGET_ES_SYSTEMS_DIR)
+ $(INSTALL) -D -m 0644 $(ES_SYSTEMS) $(TARGET_ES_SYSTEMS_DIR)
+ cp -r $(@D)/roms $(TARGET_ROMDIR)
+endef
+
+# Add necessary dependencies
+# System: amstradcpc
+ifneq ($(BR2_PACKAGE_LIBRETRO_CAP32),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-amstradcpc
+endif
+
+# System: apple2
+ifeq ($(BR2_PACKAGE_LINAPPLE_PIE),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-apple2
+endif
+
+# System: atari2600
+ifneq ($(BR2_PACKAGE_LIBRETRO_STELLA),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-atari2600
+endif
+
+# System: atari7800
+ifneq ($(BR2_PACKAGE_LIBRETRO_PROSYSTEM),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-atari7800
+endif
+
+# System: atarist
+ifneq ($(BR2_PACKAGE_LIBRETRO_HATARI),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-atarist
+endif
+
+# System: c64
+ifneq ($(BR2_PACKAGE_VICE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-c64
+endif
+
+# System: cavestory
+ifneq ($(BR2_PACKAGE_LIBRETRO_NXENGINE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-cavestory
+endif
+
+# System: colecovision
+ifneq ($(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-colecovision
+endif
+
+# System: dos
+ifeq ($(BR2_PACKAGE_DOSBOX),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-dos
+endif
+
+# Sytem: dreamcast
+ifeq ($(BR2_PACKAGE_REICAST),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-dreamcast
+endif
+
+# System: fba
+ifneq ($(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_PIFBA),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-fba
+endif
+
+# System: fba_libretro
+ifneq ($(BR2_PACKAGE_LIBRETRO_FBA),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-fba_libretro
+endif
+
+# System: fds
+ifneq ($(BR2_PACKAGE_LIBRETRO_FCEUMM)$(BR2_PACKAGE_LIBRETRO_NESTOPIA),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-fds
+endif
+
+# System: gamecube
+ifeq ($(BR2_PACKAGE_DOLPHIN_EMU),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-gamecube
+endif
+
+# System: gamegear
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-gamegear
+endif
+
+# System: gb
+ifneq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE)$(BR2_PACKAGE_LIBRETRO_TGBDUAL),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-gb
+endif
+
+# System: gba
+ifneq ($(BR2_PACKAGE_LIBRETRO_GPSP)$(BR2_PACKAGE_LIBRETRO_MGBA)$(BR2_PACKAGE_LIBRETRO_METEOR),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-gba
+endif
+
+# System: gbc
+ifneq ($(BR2_PACKAGE_LIBRETRO_GAMBATTE)$(BR2_PACKAGE_LIBRETRO_TGBDUAL),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-gbc
+endif
+
+# System: gw
+ifneq ($(BR2_PACKAGE_LIBRETRO_GW),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-gw
+endif
+
+# System: lutro
+ifneq ($(BR2_PACKAGE_LIBRETRO_LUTRO),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-lutro
+endif
+
+# System: lynx
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_LYNX),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-lynx
+endif
+
+# System: mame
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_ADVANCEMAME),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-mame
+endif
+
+# System: mastersystem
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-mastersystem
+endif
+
+# System: megadrive
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-megadrive
+endif
+
+# System: moonlight
+ifeq ($(BR2_PACKAGE_MOONLIGHT_EMBEDDED),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-moonlight
+endif
+
+# System: msx
+ifneq ($(BR2_PACKAGE_LIBRETRO_FMSX)$(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-msx
+endif
+
+# System: msx1
+ifneq ($(BR2_PACKAGE_LIBRETRO_FMSX)$(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-msx1
+endif
+
+# System: msx2
+ifneq ($(BR2_PACKAGE_LIBRETRO_FMSX)$(BR2_PACKAGE_LIBRETRO_BLUEMSX),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-msx2
+endif
+
+# System: neogeo
+ifneq ($(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_FBA)$(BR2_PACKAGE_LIBRETRO_IMAME)$(BR2_PACKAGE_PIFBA),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-neogeo
+endif
+
+# System: nes
+ifneq ($(BR2_PACKAGE_LIBRETRO_FCEUMM)$(BR2_PACKAGE_LIBRETRO_FCEUNEXT)$(BR2_PACKAGE_LIBRETRO_NESTOPIA)$(BR2_PACKAGE_LIBRETRO_QUICKNES),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-nes
+endif
+
+# System: ngp
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-ngp
+endif
+
+# System: ngpc
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_NGP),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-ngpc
+endif
+
+# System: o2em
+ifneq ($(BR2_PACKAGE_LIBRETRO_O2EM),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-o2em
+endif
+
+# System: pcengine
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-pcengine
+endif
+
+# System: pcenginecd
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-pcenginecd
+endif
+
+# System: supergrafx
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_SUPERGRAFX)$(BR2_PACKAGE_LIBRETRO_BEETLE_PCE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-supergrafx
+endif
+
+# System: psp
+ifeq ($(BR2_PACKAGE_PPSSPP),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-psp
+endif
+
+# System: psx
+ifneq ($(BR2_PACKAGE_LIBRETRO_PCSX),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-psx
+endif
+
+# System: prboom
+ifneq ($(BR2_PACKAGE_LIBRETRO_PRBOOM),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-prboom
+endif
+
+# System: scummvm
+ifeq ($(BR2_PACKAGE_SCUMMVM),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-scummvm
+endif
+
+# System: sega32x
+ifneq ($(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-sega32x
+endif
+
+# System: segacd
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-segacd
+endif
+
+# System: sg1000
+ifneq ($(BR2_PACKAGE_LIBRETRO_GENESISPLUSGX)$(BR2_PACKAGE_LIBRETRO_PICODRIVE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-sg1000
+endif
+
+# System: snes
+ifneq ($(BR2_PACKAGE_LIBRETRO_CATSFC)$(BR2_PACKAGE_LIBRETRO_POCKETSNES)$(BR2_PACKAGE_LIBRETRO_SNES9X_NEXT)$(BR2_PACKAGE_LIBRETRO_SNES9X),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-snes
+endif
+
+# System: vectrex
+ifneq ($(BR2_PACKAGE_LIBRETRO_VECX),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-vectrex
+endif
+
+# System: virtualboy
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_VB),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-virtualboy
+endif
+
+# System: wii
+ifeq ($(BR2_PACKAGE_DOLPHIN_EMU),y)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-wii
+endif
+
+# System: wswan
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-wswan
+endif
+
+# System: wswanc
+ifneq ($(BR2_PACKAGE_LIBRETRO_BEETLE_WSWAN),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-wswanc
+endif
+
+# System: zx81
+ifneq ($(BR2_PACKAGE_LIBRETRO_81),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-zx81
+endif
+
+# System: zxspectrum
+ifneq ($(BR2_PACKAGE_LIBRETRO_FUSE),)
+ RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-zxspectrum
+endif
+
+
+$(eval $(generic-package))
diff --git a/package/recalbox-romfs/recalbox-romfs_multicores.skeleton b/package/recalbox-romfs/recalbox-romfs_multicores.skeleton
new file mode 100644
index 00000000000..e378b70a271
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs_multicores.skeleton
@@ -0,0 +1,50 @@
+################################################################################
+#
+# recalbox-romfs-%SYSTEM_LOWER%
+#
+################################################################################
+
+# Package generated with :
+# %COMMAND_LINE%
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_%SYSTEM_UPPER%_SOURCE =
+RECALBOX_ROMFS_%SYSTEM_UPPER%_SITE =
+RECALBOX_ROMFS_%SYSTEM_UPPER%_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_%SYSTEM_UPPER% = %SYSTEM_LOWER%
+SYSTEM_XML_%SYSTEM_UPPER% = $(@D)/$(SYSTEM_NAME_%SYSTEM_UPPER%).xml
+# System rom path
+SOURCE_ROMDIR_%SYSTEM_UPPER% = $(RECALBOX_ROMFS_%SYSTEM_UPPER%_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifneq (%SUPER_PACKAGE%,)
+define CONFIGURE_MAIN_%SYSTEM_UPPER%_START
+ echo -e '\n' \
+ '\t%FULLNAME%\n' \
+ "\t$(SYSTEM_NAME_%SYSTEM_UPPER%)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_%SYSTEM_UPPER%)\n' \
+ '\t%SYSTEM_EXTENSIONS%\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\t%PLATFORM%\n' \
+ '\t%THEME%\n' \
+ '\t' > $(SYSTEM_XML_%SYSTEM_UPPER%)
+
+endef
+RECALBOX_ROMFS_%SYSTEM_UPPER%_CONFIGURE_CMDS += $(CONFIGURE_MAIN_%SYSTEM_UPPER%_START)
+
+
+%EMULATORS_AND_CORES%
+
+define CONFIGURE_MAIN_%SYSTEM_UPPER%_END
+ echo -e '\t\n' \
+ '' >> $(SYSTEM_XML_%SYSTEM_UPPER%)
+ cp -R $(SOURCE_ROMDIR_%SYSTEM_UPPER%) $(@D)
+endef
+RECALBOX_ROMFS_%SYSTEM_UPPER%_CONFIGURE_CMDS += $(CONFIGURE_MAIN_%SYSTEM_UPPER%_END)
+endif
+
+$(eval $(generic-package))
diff --git a/package/recalbox-romfs/recalbox-romfs_single_emulator.skeleton b/package/recalbox-romfs/recalbox-romfs_single_emulator.skeleton
new file mode 100644
index 00000000000..1a4d6e22247
--- /dev/null
+++ b/package/recalbox-romfs/recalbox-romfs_single_emulator.skeleton
@@ -0,0 +1,40 @@
+################################################################################
+#
+# recalbox-romfs-%SYSTEM_LOWER%
+#
+################################################################################
+
+# Package generated with :
+# %COMMAND_LINE%
+
+# Name the 3 vars as the package requires
+RECALBOX_ROMFS_%SYSTEM_UPPER%_SOURCE =
+RECALBOX_ROMFS_%SYSTEM_UPPER%_SITE =
+RECALBOX_ROMFS_%SYSTEM_UPPER%_INSTALL_STAGING = NO
+# Set the system name
+SYSTEM_NAME_%SYSTEM_UPPER% = %SYSTEM_LOWER%
+SYSTEM_XML_%SYSTEM_UPPER% = $(@D)/$(SYSTEM_NAME_%SYSTEM_UPPER%).xml
+# System rom path
+SOURCE_ROMDIR_%SYSTEM_UPPER% = $(RECALBOX_ROMFS_%SYSTEM_UPPER%_PKGDIR)/roms
+
+# CONFIGGEN_STD_CMD is defined in recalbox-romfs, so take good care that
+# variables are global across buildroot
+
+
+ifeq ($(%BR2_PACKAGE_NAME%),y)
+define CONFIGURE_%SYSTEM_UPPER%
+ echo -e '\n' \
+ '\t%FULLNAME%\n' \
+ "\t$(SYSTEM_NAME_%SYSTEM_UPPER%)\n" \
+ '\t/recalbox/share/roms/$(SYSTEM_NAME_%SYSTEM_UPPER%)\n' \
+ '\t%SYSTEM_EXTENSIONS%\n' \
+ "\t$(CONFIGGEN_STD_CMD)\n" \
+ '\t%PLATFORM%\n' \
+ '\t%THEME%\n' \
+ '' > $(SYSTEM_XML_%SYSTEM_UPPER%)
+ cp -R $(SOURCE_ROMDIR_%SYSTEM_UPPER%) $(@D)
+endef
+RECALBOX_ROMFS_%SYSTEM_UPPER%_CONFIGURE_CMDS += $(CONFIGURE_%SYSTEM_UPPER%)
+endif
+
+$(eval $(generic-package))
diff --git a/package/reicast/Config.in b/package/reicast/Config.in
index da9cd64f727..e14a9514b42 100644
--- a/package/reicast/Config.in
+++ b/package/reicast/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_REICAST
- bool "reicast"
- depends on BR2_PACKAGE_SDL2
- depends on BR2_PACKAGE_LIBPNG
- help
- A Dreamcast emulator
+ bool "reicast"
+ depends on BR2_PACKAGE_SDL2
+ depends on BR2_PACKAGE_LIBPNG
+ select BR2_PACKAGE_RECALBOX_ROMFS_DREAMCAST
+ help
+ A Dreamcast emulator
diff --git a/package/retroarch/Config.in b/package/retroarch/Config.in
index 7349cd2065d..5a0fb9dcc0a 100644
--- a/package/retroarch/Config.in
+++ b/package/retroarch/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_RETROARCH
depends on (BR2_PACKAGE_HAS_LIBGLES || BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL)
depends on BR2_PACKAGE_RECALBOX_SYSTEM
+ select BR2_PACKAGE_RECALBOX_ROMFS_IMAGEVIEWER
bool "Retroarch"
help
A multi emulator frontend.
diff --git a/package/scummvm/Config.in b/package/scummvm/Config.in
index 6e83cee50e2..dd2bafb1455 100644
--- a/package/scummvm/Config.in
+++ b/package/scummvm/Config.in
@@ -17,6 +17,8 @@ config BR2_PACKAGE_SCUMMVM
select BR2_PACKAGE_ZLIB
+ select BR2_PACKAGE_RECALBOX_ROMFS_SCUMMVM
+
help
ScummVM point and click
http://wiki.scummvm.org/
diff --git a/package/vice/Config.in b/package/vice/Config.in
index fd6117a72f7..c4432e6b36f 100644
--- a/package/vice/Config.in
+++ b/package/vice/Config.in
@@ -1,8 +1,9 @@
config BR2_PACKAGE_VICE
- bool "vice"
- depends on BR2_PACKAGE_SDL
- help
- VICE is an emulator collection which emulates the C64, the C64-DTV, the C128, the VIC20, practically all PET models, the PLUS4 and the CBM-II (aka C610). It runs on Unix, MS-DOS, Win32, OS/2, Acorn RISC OS, BeOS, QNX 6.x, Amiga, GP2X or Mac OS X machines.
+ bool "vice"
+ depends on BR2_PACKAGE_SDL
+ select BR2_PACKAGE_RECALBOX_ROMFS_C64
+ help
+ VICE is an emulator collection which emulates the C64, the C64-DTV, the C128, the VIC20, practically all PET models, the PLUS4 and the CBM-II (aka C610). It runs on Unix, MS-DOS, Win32, OS/2, Acorn RISC OS, BeOS, QNX 6.x, Amiga, GP2X or Mac OS X machines.
comment "Vice needs a toolchain w/ OpenGl, SDL"
depends on BR2_PACKAGE_SDL
diff --git a/scripts/linux/empack.py b/scripts/linux/empack.py
new file mode 100755
index 00000000000..dbfb4947547
--- /dev/null
+++ b/scripts/linux/empack.py
@@ -0,0 +1,374 @@
+#! /usr/bin/env python2
+import argparse
+import os
+import sys
+from distutils.dir_util import copy_tree
+
+
+class EmPack:
+ def __init__(self, system, extensions, emcoredef, fullname=None, platform=None, theme=None):
+ # Set member variablers
+ """
+
+ :type emcoredef: list
+ """
+ self._System = system.lower()
+ self._Extensions = extensions
+ self._EmulatoreCoreDefinitions = emcoredef
+ self._FullName = fullname if fullname is not None else self._System.title()
+ self._Platform = platform if platform is not None else self._System
+ self._Theme = theme if theme is not None else self._System
+
+ self._SingleMode = False
+ self._SingleEmulatorBRPackage = ""
+ self._MultiEmulatorBRPackage = dict()
+ self._BRVarsList = list()
+
+ if not isinstance(emcoredef, list):
+ raise
+
+ if len(emcoredef) == 1 and emcoredef[0].count(':') == 0:
+ self._SingleMode = True
+ self._SingleEmulatorBRPackage = emcoredef[0]
+ self._BRVarsList = [emcoredef[0]]
+ else:
+ self._SingleMode = False
+ self._BRVarsList = self.initmultiem(emcoredef)
+
+ self._CommandLine = self.setcmdline(system, extensions, emcoredef, fullname, platform, theme)
+ self._SystemUpper = self._System.upper()
+ self._PackageName = "recalbox-romfs-{}".format(self._System)
+ self._PackageDir = "package/recalbox-romfs/{}".format(self._PackageName)
+ self._RomsDir = "{}/{}/{}".format(self._PackageDir, 'roms', self._System)
+ self._Makefile = '{}/{}.mk'.format(self._PackageDir, self._PackageName)
+
+ def __str__(self):
+ return """
+ system: {}
+ extensions: {}
+ fullname: {}
+ platform: {}
+ theme: {}
+ singleMode: {}
+ single emulator package: {}
+ multi emulator packages: {}
+ ------
+ list of BR package variables: {}
+ """.format(self._System, self._Extensions, self._FullName, self._Platform, self._Theme, self._SingleMode, self._SingleEmulatorBRPackage, self._MultiEmulatorBRPackage, self._BRVarsList)
+
+ def setcmdline(self, system, extensions, emcoredef, fullname=None, platform=None, theme=None):
+ cmdline = "{} ".format(sys.argv[0])
+ cmdline += "--system {} ".format(system)
+ cmdline += "--extension '{}' ".format(extensions)
+ cmdline += "--fullname '{}' ".format(fullname) if fullname is not None else ""
+ cmdline += "--platform {} ".format(platform) if platform is not None else ""
+ cmdline += "--theme {} ".format(theme) if theme is not None else ""
+ cmdline += " ".join(emcoredef)
+ return cmdline
+
+ def initmultiem(self, emcorelist):
+ """
+ Returns the list of BR2_PACKAGE from the command line into a single list
+ :type emcorelist: list
+ :rtype: list
+ """
+ superpackage = list()
+ for item in emcorelist:
+ if item.count(':') != 2:
+ print >> sys.stderr, "{} must be follow the pattern emulator:core:BR2_PACKAGE_NAME".format(item)
+ exit(1)
+ try:
+ # split emulator:core:BR_VAR into dicts
+ emulator, core, brvar = item.split(':')
+ # print "{} splitted to {} {} {}".format(arg, emulator, core, brVar)
+ if emulator not in self._MultiEmulatorBRPackage:
+ self._MultiEmulatorBRPackage[emulator] = dict()
+
+ self._MultiEmulatorBRPackage[emulator][core] = brvar
+ if brvar not in superpackage:
+ superpackage.append(brvar)
+ except:
+ raise
+ return superpackage
+
+ def listpackages(self):
+ """ Appends buildroot package variables to be processed by a ifeq/ifneq command
+ :returns: a concatenation of $(VAR1)$(VAR2) etc ... ex: '$(BR2_PACKAGE_LIBRETRO_MAME2003)$(BR2_PACKAGE_LIBRETRO_IMAME)'
+ :rtype: string
+ """
+ cond = '$('
+ cond += ')$('.join(self._BRVarsList)
+ cond += ')'
+ return cond
+
+ def generatedefinename(self, typeCmd, emulator='', core=''):
+ """ Generate a define name for .mk files
+ The return string looks like CONFIGURE_system_emulator_core_typeCmd , depending on provided arguments
+ :param typeCmd: they type of command
+ :type typeCmd: string must be START, END or DEF
+ :param emulator: optionnal, the emulator name (ex: libretro)
+ :type emulator: string
+ :param core: optional, the core name (ex: mame078)
+ :type core: string
+ :returns: the define name
+ :rtype: string
+ """
+ if typeCmd not in ('START', 'END', 'DEF'):
+ sys.stderr.write("generateDefineName : typeCmd must be START END or DEF\n")
+ sys.exit(1)
+
+ if core and not emulator:
+ sys.stderr.write("generateDefineName : you must define emulator if you set core\n")
+ sys.exit(1)
+
+ defStr = "CONFIGURE_{}".format(self._SystemUpper)
+
+ if emulator:
+ emulatorUp = emulator.upper()
+ defStr += "_{}".format(emulatorUp)
+ if core:
+ coreUp = core.upper()
+ defStr += "_{}".format(coreUp)
+
+ defStr += "_{}".format(typeCmd)
+ return defStr
+
+ def addemulator(self, emulator):
+ """ Returns the starting makefile block of a new emulator section in the es_settings.cfg
+ the returned string looks like :
+
+ ifneq(brVars,)
+ define YYY
+ echo -e '\t\t\n' > $(SYSTEM_XML_{})
+
+ endef
+
+ :returns: a multiline and indented string
+ :rtype: string
+ """
+ emulatorUp = emulator.upper()
+ emulatorLo = emulator.lower()
+ defineName = self.generatedefinename('START', emulator)
+ returnStr = "define {}\n".format(defineName)
+ cond = self.listpackages()
+
+ returnStr = "ifneq ({},)\n".format(cond)
+ returnStr += "define {}\n".format(defineName)
+ returnStr += "\techo -e '\\t\\t' >> $(SYSTEM_XML_{})\n".format(emulatorLo, self._SystemUpper)
+ returnStr += "\techo -e '\\t\\t\\t' >> $(SYSTEM_XML_{})\n\n".format(self._SystemUpper)
+ returnStr += "endef\n"
+ returnStr += "RECALBOX_ROMFS_{}_CONFIGURE_CMDS += $({})\n\n".format(self._SystemUpper, defineName)
+
+ return returnStr
+
+ def addcore(self, emulator, core, brVar):
+ """ Returns the starting makefile block of a new emulator section in the es_settings.cfg
+ The returned string looks like:
+
+ ifeq(brVar,y)
+ define XXX
+ echo -e '\t\t\tcore' >> $(SYSTEM_XML_system)
+
+ endef
+ RECALBOX_ROMFS_system_CONFIGURE_CMDS += $(XXX)
+
+ :param emulator: optionnal, the emulator name (ex: libretro)
+ :type emulator: string
+ :param core: the core name
+ :type core: string
+ :param brVar: a BR2_PACKAGE_ like name
+ :type brVar: string
+ :returns: a multiline and indented string
+ :rtype: string
+ """
+ emulatorUp = emulator.upper()
+ emulatorLo = emulator.lower()
+ coreUp = core.upper()
+ coreLo = core.lower()
+ defineName = self.generatedefinename('DEF', emulator, core)
+
+ returnStr = "ifeq ($({}),y)\n".format(brVar)
+ returnStr += "define {}\n".format(defineName)
+ returnStr += "\techo -e '\\t\\t\\t\\t{}' >> $(SYSTEM_XML_{})\n\n".format(coreLo, self._SystemUpper)
+ returnStr += "endef\n"
+ returnStr += "RECALBOX_ROMFS_{}_CONFIGURE_CMDS += $({})\n".format(self._SystemUpper, defineName)
+ returnStr += "endif\n\n"
+
+ return returnStr
+
+ def endemulator(self, emulator):
+ """ Returns the ending makefile block of a new emulator section in the es_settings.cfg
+ the returned string looks like :
+
+ define XXX
+ echo -e '\t\t\n' >> $(SYSTEM_XML_MAME)
+
+ endef
+ RECALBOX_ROMFS_system_CONFIGURE_CMDS += $(XXX)
+
+ :param emulator: optionnal, the emulator name (ex: libretro)
+ :type emulator: string
+ :returns: a multiline and indented string
+ :rtype: string
+ """
+ emulatorUp = emulator.upper()
+ defineName = self.generatedefinename('END', emulator)
+
+ returnStr = "define {}\n".format(defineName)
+ returnStr += "\techo -e '\\t\\t\\t' >> $(SYSTEM_XML_{})\n\n".format(self._SystemUpper)
+ returnStr += "\techo -e '\\t\\t' >> $(SYSTEM_XML_{})\n\n".format(self._SystemUpper)
+ returnStr += "endef\n"
+ returnStr += "RECALBOX_ROMFS_{}_CONFIGURE_CMDS += $({})\n".format(self._SystemUpper, defineName)
+ returnStr += "endif\n\n"
+
+ return returnStr
+
+ def writemakefile(self):
+ print "== Creating new package dir structure:",
+ if not os.path.exists(self._RomsDir):
+ try:
+ os.makedirs(self._RomsDir)
+ print "OK !"
+ except:
+ print "Failed ... Could not make dir {}".format(self._RomsDir)
+ raise
+ else:
+ print "{} already exists ... Are you sure of what you're doing ? Exiting ...".format(self._RomsDir)
+ sys.exit(1)
+
+ if self._SingleMode:
+ skeletonFile = 'package/recalbox-romfs/recalbox-romfs_single_emulator.skeleton'
+ else:
+ skeletonFile = 'package/recalbox-romfs/recalbox-romfs_multicores.skeleton'
+
+ prtCmdLine = " ".join(sys.argv[:]) # Ugly, sadly ... Should be improved to reflect quotes
+
+ #
+ # Replace known patterns
+ #
+ mkFile = open(skeletonFile, 'r').read()
+ #mkFile = mkFile.replace('%COMMAND_LINE%', prtCmdLine)
+ mkFile = mkFile.replace('%COMMAND_LINE%', self._CommandLine)
+ mkFile = mkFile.replace('%SYSTEM_EXTENSIONS%', self._Extensions)
+ mkFile = mkFile.replace('%SYSTEM_UPPER%', self._SystemUpper)
+ mkFile = mkFile.replace('%SYSTEM_LOWER%', self._System)
+ mkFile = mkFile.replace('%FULLNAME%', self._FullName)
+ mkFile = mkFile.replace('%PLATFORM%', self._Platform)
+ mkFile = mkFile.replace('%THEME%', self._Theme)
+
+ #
+ # patterns : additionnal actions for multicore systems
+ #
+ if not self._SingleMode:
+ superString = ""
+ for emulator, cores in self._MultiEmulatorBRPackage.iteritems():
+ print "Adding emulator {} {}".format(self._System, emulator)
+ superString += self.addemulator(emulator)
+ for core, brVar in cores.iteritems():
+ superString += self.addcore(emulator, core, brVar)
+
+ superString += self.endemulator(emulator)
+
+ mkFile = mkFile.replace('%SUPER_PACKAGE%', self.listpackages())
+ mkFile = mkFile.replace('%EMULATORS_AND_CORES%', superString)
+ else:
+ mkFile = mkFile.replace('%BR2_PACKAGE_NAME%', self._SingleEmulatorBRPackage)
+
+ print "== Writing {} :".format(self._Makefile),
+ with open(self._Makefile, "w") as f:
+ try:
+ f.write(mkFile)
+ print "OK !"
+ except:
+ print "Failed ... Couldn't write to {}. Aborting ...".format(outputFile)
+ raise
+
+ def writeconfigin(self):
+ # Time to write the Config.in
+ dependsOn = " \\\n\t || ".join(self._BRVarsList)
+ print "== Writing the Config.in: ",
+ configIn = "config BR2_PACKAGE_RECALBOX_ROMFS_{}\n".format(self._SystemUpper)
+ configIn += "\tbool \"recalbox-romfs-{}\"\n".format(self._System)
+ #~ configIn += "\tdefault y\n"
+ configIn += "\tselect BR2_PACKAGE_RECALBOX_ROMS\n"
+ configIn += "\tdepends on {}\n".format(dependsOn)
+ configIn += "\thelp\n"
+ configIn += "\t share_init/roms and xml for {}\n".format(self._System)
+
+ fileConfigIn = "{}/Config.in".format(self._PackageDir)
+ try:
+ with open(fileConfigIn, "w") as f:
+ f.write(configIn)
+ print "OK!"
+ except:
+ print "KO!"
+ print "Couldn't write the {}".format(fileConfigIn)
+ raise
+
+ def copyoverlaydir(self):
+ # Copy the previous fsoverlay if it exists
+ overlaydir = "board/recalbox/fsoverlay/recalbox/share_init/roms/{}".format(self._System)
+ print "== Copy the previous fsoverlay of this system if it exists:",
+ if os.path.exists(overlaydir):
+ try:
+ copy_tree(overlaydir, self._RomsDir)
+ # Need to remove the .keep
+ print "OK !"
+ except:
+ print "Failed ... Couldn't copy {} to {}. Aborting ...".format(overlaydir, self._PackageDir)
+ raise
+ else:
+ print "No overlay, creating default files instead:",
+ LISEZ_MOI = "{}/_lisezmoi.txt".format(self._RomsDir)
+ READ_ME = "{}/_readme.txt".format(self._RomsDir)
+ try:
+ with open(LISEZ_MOI, "w") as f:
+ f.write("Remplir ce fichier")
+ with open(READ_ME, "w") as f:
+ f.write("Please fill the file")
+ print "OK !"
+ except:
+ print "Failed ... couldn't create {} or {}".format(LISEZ_MOI, READ_ME)
+ raise
+
+ def finalword(self):
+ # Ask the user to add himself to recalbox-rom.mk the following lines:
+ print "\nNow you will have to edit :\n"
+ # print " * package/recalbox-romfs/recalbox-romfs/Config.in and add :"
+ # print "\tdepends on BR2_PACKAGE_RECALBOX_ROMFS_{}\n\n".format(SYSTEM_UPPER)
+ print " * package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk :"
+ print " Mind the tabulation. The shell may have added spaces instead\n"
+ defLine = "# System: {}\n".format(self._System)
+ if not self._SingleMode:
+ defLine += "ifneq ({},)\n".format(self.listpackages())
+ else:
+ defLine += "ifeq ($({}),y)\n".format(self._SingleEmulatorBRPackage)
+ defLine += "\tRECALBOX_ROMFS_DEPENDENCIES += {}\n".format(self._PackageName)
+ defLine += "endif"
+ print defLine
+ print "\n * Add a source to package/recalbox-romfs/Config.in :"
+ print " source {}/Config.in".format(self._PackageDir)
+ print "\n * Add dependencies to package/recalbox-romfs/recalbox-romfs/Config.in :"
+ print "\n\t || BR2_PACKAGE_RECALBOX_ROMFS_{}".format(self._SystemUpper)
+ print "\n * Add to the emulators/cores Config.in:\n"
+ print "\tselect BR2_PACKAGE_RECALBOX_ROMFS_{}".format(self._SystemUpper)
+
+
+if __name__ == '__main__':
+ # Parse command line
+ parser = argparse.ArgumentParser(description='Emulator Packager helper')
+ parser.add_argument("-s", "--system", help="Sets the system name ex: snes", type=str, required=True)
+ parser.add_argument("-e", "--extensions", help="File extensions ES should display. Must be a single string between (double) quotes ex: '.bin .BIN .zip.ZIP'", type=str, required=True)
+ parser.add_argument("-f", "--fullname", help="Sets the nice full name of the system. Defaults to the system name with a first upper case. ex: 'SEGA Master System'", type=str, required=False)
+ parser.add_argument("-p", "--platform", help="Sets the system platform. Defaults to the system name. ex: pc", type=str, required=False)
+ parser.add_argument("-t", "--theme", help="Sets the theme name. Defaults to the system name. ex: nes", type=str, required=False)
+ parser.add_argument("packageDetails", nargs='+', help="Either specify a BR2_PACKAGE_XXXXX for a standalone emulator (like reicast, ppsspp etc ...)\nOr write it like libretro:mame078:BR2_PACKAGE_LIBRETRO_MAME2003 libretro:imame4all:BR2_PACKAGE_LIBRETRO_IMAME advancemame:advancemame:BR2_PACKAGE_ADVANCEMAME for a multiple emulators/cores system. The syntax in that case is emulator:core:BUILDROOT_CORE_PACKAGE", type=str)
+
+ args = parser.parse_args()
+
+ ConfigEm = EmPack(args.system, args.extensions, args.packageDetails, fullname = args.fullname, platform = args.platform, theme = args.theme)
+ print ConfigEm
+ ConfigEm.writemakefile()
+ ConfigEm.writeconfigin()
+ ConfigEm.copyoverlaydir()
+ ConfigEm.finalword()