### Install a Package Source: https://amberelec.org/contributing/contributing-to-amberelec Use the 'install' command to add a built package to the image root. This is a prerequisite before submitting a contribution. ```bash AmberELEC$ ./scripts/install packages/games/libretro/dosbox-pure ``` -------------------------------- ### Bezel File Structure Example Source: https://amberelec.org/guides/getting-to-know-amberelec Illustrates the directory structure for system and game-specific bezels and overlays. ```text .png #System bezel /games/.cfg #Exact rom match - game specific bezel /games/..cfg #Exact rom match - random game specific bazel /overlays/.png #System overlay (shadow/grid) ``` -------------------------------- ### Doom Configuration File Example Source: https://amberelec.org/systems/doom This is an example of a .doom file used to configure Doom mods. It specifies the main IWAD, optional mods (WAD, PK3), DEH files, INI configuration, and save game directory. ```text IWAD=iwads/doom.wad MOD=mods/batman/batman.wad MOD=mods/batman/batman.pk3 DEH=mods/batman/batman.deh DEH=mods/batman/weapons.deh CONF=mods/batman/batman.ini SAVE=mods/batman -- end -- ``` -------------------------------- ### Shadow Warrior .build file example Source: https://amberelec.org/systems/build-engine This .build file specifies the path and the main GRP file for Shadow Warrior. ```build PATH=sw GRP=SW.GRP -- end of file -- ``` -------------------------------- ### Example Game Folder Structure Source: https://amberelec.org/systems/scummvm Illustrates the required folder structure for a ScummVM game, using 'Beneath a Steel Sky' as an example. ```text /roms/scummvm/games/Beneath A Steel Sky ``` -------------------------------- ### Duke Nukem 3D .build file example Source: https://amberelec.org/systems/build-engine This .build file specifies the path to the Duke Nukem 3D game files. ```build PATH=duke3d -- end of file -- ``` -------------------------------- ### Create .ecwolf Configuration File Source: https://amberelec.org/systems/wolfenstein-3d This is an example of a .ecwolf configuration file. It specifies the game data and the paths to PK3 files required by the ecwolf emulator. ```config DATA=WL6 PK3_1=/storage/roms/ecwolf/37_1_2_Encounter.pk3 PK3_2=/storage/roms/ecwolf/macmus.pk3 -- end -- ``` -------------------------------- ### Twin Dragon .build file example Source: https://amberelec.org/systems/build-engine This .build file specifies the path and the GRP file for the Twin Dragon expansion. ```build PATH=sw GRP=TD.GRP -- end of file -- ``` -------------------------------- ### Run EmulationStation in Windowed Mode Source: https://amberelec.org/contributing/contributing-to-amberelec Run EmulationStation with specific command-line arguments. This example launches EmulationStation in windowed mode, sets a resolution of 1920x1152, and enables debug logging. ```bash export HOME=/storage ./emulationstation --windowed --resolution 1920 1152 -debug ``` -------------------------------- ### Example m3u Playlist for Multidisk Game Source: https://amberelec.org/guides/disk-roms.md This is an example of how to structure an .m3u playlist file for a multidisk game. The entries should match the filenames of the disk images. ```plaintext Final Fantasy VII [US] (Disk 1).cue Final Fantasy VII [US] (Disk 2).cue Final Fantasy VII [US] (Disk 3).cue ``` -------------------------------- ### Example Community Package Submission Source: https://amberelec.org/contributing/contributing-to-amberelec Illustrates the format for submitting a community package, including the package name, URL to the release zip, and its SHA256 checksum. ```text my_application|https://github.com/myaccount/myrepo/releases/download/1/my_application.zip|d06489dcf04c602ddacc6f80b2809e6d25fd6298c461966e666e19d3188e04be ``` -------------------------------- ### Build AmberELEC using Docker Source: https://amberelec.org/contributing/contributing-to-amberelec Example commands to clone the AmberELEC repository and build the project using Docker. It includes pulling the latest Docker image and performing a clean build. ```bash git clone https://github.com/AmberELEC/AmberELEC.git AmberELEC cd AmberELEC make docker-image-pull # not required - but will ensure the latest image is pulled in make docker-clean make docker-world ``` -------------------------------- ### EmulationStation Keyboard Input Configuration Source: https://amberelec.org/contributing/contributing-to-amberelec Configure keyboard input mappings for EmulationStation by creating an es_input.cfg file. This XML defines key bindings for actions like A, B, Start, Select, X, and Y. These can also be configured within EmulationStation itself. ```xml ``` -------------------------------- ### Configure EmulationStation Build with CMake Source: https://amberelec.org/contributing/contributing-to-amberelec Configure the EmulationStation build using CMake. Options like ENABLE_EMUELEC, GLES2, DISABLE_KODI, ENABLE_FILEMANAGER, CEC, and RG552 can be set to customize the build for specific devices and features. The RG552 option is used as an example. ```bash cmake -DENABLE_EMUELEC=1 -DGLES2=1 -DDISABLE_KODI=1 -DENABLE_FILEMANAGER=0 -DCEC=0 -DRG552=1 . ``` -------------------------------- ### Prepare AmberELEC Directory Structure Source: https://amberelec.org/contributing/contributing-to-amberelec Create necessary directories and copy configuration files to mimic the AmberELEC environment. This includes setting the OS architecture, distribution configuration, and EmulationStation configuration. ```bash sudo mkdir -p /storage/.config sudo chown -R $(whoami) /storage/ echo RG552 > /storage/.config/.OS_ARCH mkdir -p /storage/.config/distribution/configs/ cp ../AmberELEC/packages/AmberELEC/config/distribution/configs/distribution.conf.552 /storage/.config/distribution/configs/distribution.conf mkdir -p ~/.emulationstation cp -r ../AmberELEC/packages/ui/AmberELEC-emulationstation/config/* ~/.emulationstation ``` -------------------------------- ### Example Game Files Source: https://amberelec.org/systems/scummvm Shows the typical game files needed for 'Beneath a Steel Sky' within its game folder. ```text SKY.CPT, sky.dnr, sky.sk ``` -------------------------------- ### Create Dummy ROM Files Source: https://amberelec.org/contributing/contributing-to-amberelec Create dummy ROM files and directories for testing purposes. This includes creating 'snes' and 'tools' subdirectories within /storage/roms and adding placeholder files for SNES and shell scripts. ```bash mkdir -p /storage/roms/snes /storage/roms/tools touch /storage/roms/snes/test.smc /storage/roms/tools/test.sh ``` -------------------------------- ### Add Application to es_systems.cfg using xmlstarlet Source: https://amberelec.org/contributing/contributing-to-amberelec Use this snippet to add a new system entry to the es_systems.cfg file. It defines various properties for the new system, such as name, path, and command. ```bash CFG="/storage/.emulationstation/es_systems.cfg" xmlstarlet ed --omit-decl --inplace \ -s '//systemList' -t elem -n 'system' \ -s '//systemList/system[last()]' -t elem -n 'name' -v 'myapplication'\ -s '//systemList/system[last()]' -t elem -n 'fullname' -v 'My Application'\ -s '//systemList/system[last()]' -t elem -n 'path' -v '/storage/roms/myapplication'\ -s '//systemList/system[last()]' -t elem -n 'manufacturer' -v 'Me'\ -s '//systemList/system[last()]' -t elem -n 'release' -v '2020'\ -s '//systemList/system[last()]' -t elem -n 'hardware' -v 'portable'\ -s '//systemList/system[last()]' -t elem -n 'extension' -v '.zip .ZIP .pak .PAK'\ -s '//systemList/system[last()]' -t elem -n 'command' -v "/emuelec/scripts/$START_SCRIPT %ROM%"\ -s '//systemList/system[last()]' -t elem -n 'platform' -v 'myplatform'\ -s '//systemList/system[last()]' -t elem -n 'theme' -v 'myapplication'\ $CFG ``` -------------------------------- ### Adding Custom Capcom ES Systems Configuration Source: https://amberelec.org/faq To support separate CPS folders, you can add a custom es_systems configuration file. Refer to the AmberELEC guides for more information on working with es_systems.cfg. ```cfg /storage/.config/emulationstation/es_systems_capcom.cfg ```