#!/usr/bin/env bash rom_dir=$(echo "$1" | sed -e 's/\/$//') sys_type="$(basename "$rom_dir")" ROM_PREFIX=${ROM_PREFIX:-"/storage/roms"} CORE_PREFIX=${CORE_PREFIX:-"/tmp/cores"} case "$sys_type" in 'nes') rom_ext="nes" core_path="$CORE_PREFIX/fceumm_libretro.so" core_name="Nintendo - NES / Famicom (FCEUmm)" db_name="Nintendo - Nintendo Entertainment System.lpl" ;; 'atari2600') rom_ext="a26" core_path="$CORE_PREFIX/stella_libretro.so" core_name="Atari - 2600 (Stella)" db_name="Atari - 2600.lpl" ;; 'lynx') rom_ext="lnx" core_path="$CORE_PREFIX/handy_libretro.so" core_name="Atari - Lynx (Handy)" db_name="Atari - Lynx.lpl" ;; 'mame') rom_ext="zip" core_path="$CORE_PREFIX/mame2003_plus_libretro.so" core_name="Arcade (MAME 2003-Plus)" db_name="MAME 2003-Plus.lpl" ;; 'pcengine') rom_ext="pce" core_path="$CORE_PREFIX/mednafen_supergrafx_libretro.so" core_name="NEC - PC Engine SuperGrafx (Beetle SuperGrafx)" db_name="NEC - PC Engine - TurboGrafx 16.lpl" ;; 'gba') rom_ext="gba" core_path="$CORE_PREFIX/mgba_libretro.so" core_name="Nintendo - Game Boy Advance (mGBA)" db_name="Nintendo - Game Boy Advance.lpl" ;; 'gbc') rom_ext="gbc" core_path="$CORE_PREFIX/gambatte_libretro.so" core_name="Nintendo - Game Boy / Color (Gambatte)" db_name="Nintendo - Game Boy Color.lpl" ;; 'gb') rom_ext="gb" core_path="$CORE_PREFIX/gambatte_libretro.so" core_name="Nintendo - Game Boy / Color (Gambatte)" db_name="Nintendo - Game Boy.lpl" ;; 'n64') rom_ext="z64" core_path="$CORE_PREFIX/mupen64plus_next_libretro.so" core_name="Nintendo - Nintendo 64 (Mupen64Plus-Next)" db_name="Nintendo - Nintendo 64.lpl" ;; 'snes') rom_ext="sfc" core_path="$CORE_PREFIX/snes9x_libretro.so" core_name="Nintendo - SNES / SFC (Snes9x - Current)" db_name="Nintendo - Super Nintendo Entertainment System.lpl" ;; 'ngpc') rom_ext="ngc" core_path="$CORE_PREFIX/mednafen_ngp_libretro.so" core_name="SNK - Neo Geo Pocket / Color (Beetle NeoPop)" db_name="SNK - Neo Geo Pocket Color.lpl" ;; 'gamegear') rom_ext="gg" core_path="$CORE_PREFIX/genesis_plus_gx_libretro.so" core_name="Sega - MS/GG/MD/CD (Genesis Plus GX)" db_name="Sega - Game Gear.lpl" ;; 'mastersystem') rom_ext="sms" core_path="$CORE_PREFIX/genesis_plus_gx_libretro.so" core_name="Sega - MS/GG/MD/CD (Genesis Plus GX)" db_name="Sega - Master System - Mark III.lpl" ;; 'megadrive') rom_ext="md" core_path="$CORE_PREFIX/genesis_plus_gx_libretro.so" core_name="Sega - MS/GG/MD/CD (Genesis Plus GX)" db_name="Sega - Mega Drive - Genesis.lpl" ;; 'psx') rom_ext="cue" core_path="$CORE_PREFIX/pcsx_rearmed_libretro.so" core_name="Sony - PlayStation (PCSX ReARMed)" db_name="Sony - PlayStation.lpl" ;; 'psp') rom_ext="iso" core_path="$CORE_PREFIX/ppsspp_libretro.so" core_name="Sony - PlayStation Portable (PPSSPP)" db_name="Sony - PlayStation Portable.lpl" ;; 'wswan') rom_ext="ws" core_path="$CORE_PREFIX/mednafen_wswan_libretro.so" core_name="Bandai - WonderSwan (Beetle Cygne)" db_name="Bandai - WonderSwan.lpl" ;; 'wswanc') rom_ext="wsc" core_path="$CORE_PREFIX/mednafen_wswan_libretro.so" core_name="Bandai - WonderSwan Color (Beetle Cygne)" db_name="Bandai - WonderSwan Color.lpl" ;; 'nds') rom_ext="nds" core_path="$CORE_PREFIX/desmume_libretro.so" core_name="Nintendo - DS (DeSmuME)" db_name="Nintendo - Nintendo DS.lpl" ;; 'prboom') # special case, use template echo 'Generating DOOM.lpl from template...' sed "s|\\\$CORE_PREFIX|$CORE_PREFIX|g" DOOM.lpl | sed "s|\\\$ROM_PREFIX|$ROM_PREFIX|g" > out/DOOM.lpl exit 0 ;; *) echo "Don't recognize system for roms in $sys_type directory..." exit 1 ;; esac cat > out/temp.json <> out/temp.json <> out/temp.json < "out/$db_name"; then rm out/temp.json fi