RetroPie-Setup/scriptmodules/emulators/mame4all.sh

93 lines
2.9 KiB
Bash

#!/usr/bin/env bash
# This file is part of The RetroPie Project
#
# The RetroPie Project is the legal property of its developers, whose names are
# too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
#
# See the LICENSE.md file at the top-level directory of this distribution and
# at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
#
rp_module_id="mame4all"
rp_module_desc="MAME emulator MAME4All-Pi"
rp_module_help="ROM Extension: .zip\n\nCopy your MAME4all-Pi roms to either $romdir/mame-mame4all or\n$romdir/arcade"
rp_module_licence="NONCOM https://raw.githubusercontent.com/RetroPie/mame4all-pi/master/readme.txt"
rp_module_repo="git https://github.com/RetroPie/mame4all-pi.git master"
rp_module_section="opt armv6=main"
rp_module_flags="!all videocore"
function depends_mame4all() {
getDepends libasound2-dev libsdl1.2-dev libraspberrypi-dev
}
function sources_mame4all() {
gitPullOrClone
}
function build_mame4all() {
make clean
# drz80 contains obsoleted arm assembler that gcc/as will not like for arm8 cpu targets
if isPlatform "armv8"; then
CFLAGS="-O2 -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" make
else
make
fi
md_ret_require="$md_build/mame"
}
function install_mame4all() {
md_ret_files=(
'cheat.dat'
'clrmame.dat'
'folders'
'hiscore.dat'
'mame'
'mame.cfg.template'
'readme.txt'
'skins'
)
}
function configure_mame4all() {
local system="mame-mame4all"
mkRomDir "arcade"
mkRomDir "$system"
mkRomDir "$system/artwork"
mkRomDir "$system/samples"
if [[ "$md_mode" == "install" ]]; then
mkdir -p "$md_conf_root/$system/"{cfg,hi,inp,memcard,nvram,snap,sta}
# move old config
moveConfigFile "$md_inst/mame.cfg" "$md_conf_root/$system/mame.cfg"
local config="$(mktemp)"
cp "mame.cfg.template" "$config"
iniConfig "=" "" "$config"
iniSet "cfg" "$md_conf_root/$system/cfg"
iniSet "hi" "$md_conf_root/$system/hi"
iniSet "inp" "$md_conf_root/$system/inp"
iniSet "memcard" "$md_conf_root/$system/memcard"
iniSet "nvram" "$md_conf_root/$system/nvram"
iniSet "snap" "$md_conf_root/$system/snap"
iniSet "sta" "$md_conf_root/$system/sta"
iniSet "artwork" "$romdir/$system/artwork"
iniSet "samplepath" "$romdir/$system/samples;$romdir/arcade/samples"
iniSet "rompath" "$romdir/$system;$romdir/arcade"
iniSet "samplerate" "44100"
copyDefaultConfig "$config" "$md_conf_root/$system/mame.cfg"
rm "$config"
chown -R "$__user":"$__group" "$md_conf_root/$system"
fi
addEmulator 0 "$md_id" "arcade" "$md_inst/mame %BASENAME%"
addEmulator 1 "$md_id" "$system" "$md_inst/mame %BASENAME%"
addSystem "arcade"
addSystem "$system"
}