mirror of
https://github.com/RetroPie/RetroPie-Setup.git
synced 2025-04-02 10:51:41 -04:00
108 lines
3.7 KiB
Bash
108 lines
3.7 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="dgen"
|
|
rp_module_desc="Megadrive/Genesis emulator DGEN"
|
|
rp_module_help="ROM Extensions: .32x .iso .cue .smd .bin .gen .md .sg .zip\n\nCopy your Megadrive / Genesis roms to $romdir/megadrive\nSega 32X roms to $romdir/sega32x\nand SegaCD roms to $romdir/segacd\nThe Sega CD requires the BIOS files bios_CD_U.bin, bios_CD_E.bin, and bios_CD_J.bin copied to $biosdir"
|
|
rp_module_licence="GPL2 https://sourceforge.net/p/dgen/dgen/ci/master/tree/COPYING"
|
|
rp_module_repo="file $__archive_url/dgen-sdl-1.33.tar.gz"
|
|
rp_module_section="opt"
|
|
rp_module_flags="sdl1 !mali !kms"
|
|
|
|
function depends_dgen() {
|
|
getDepends libsdl1.2-dev libarchive-dev
|
|
}
|
|
|
|
function sources_dgen() {
|
|
downloadAndExtract "$md_repo_url" "$md_build" --strip-components 1
|
|
}
|
|
|
|
function build_dgen() {
|
|
local params=()
|
|
isPlatform "rpi" && params+=(--disable-opengl --disable-hqx)
|
|
# dgen contains obsoleted arm assembler that gcc/as will not like for armv8 cpu targets
|
|
if isPlatform "armv8"; then
|
|
CFLAGS="-O2 -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" ./configure --prefix="$md_inst"
|
|
else
|
|
./configure --prefix="$md_inst"
|
|
fi
|
|
make clean
|
|
make
|
|
md_ret_require="$md_build/dgen"
|
|
}
|
|
|
|
function install_dgen() {
|
|
make install
|
|
cp "sample.dgenrc" "$md_inst/"
|
|
md_ret_require="$md_inst/bin/dgen"
|
|
}
|
|
|
|
function configure_dgen() {
|
|
local system
|
|
for system in megadrive segacd sega32x; do
|
|
mkRomDir "$system"
|
|
addEmulator 0 "$md_id" "$system" "$md_inst/bin/dgen -r $md_conf_root/megadrive/dgenrc %ROM%"
|
|
addSystem "$system"
|
|
done
|
|
|
|
[[ "$md_mode" == "remove" ]] && return
|
|
|
|
mkUserDir "$md_conf_root/megadrive"
|
|
|
|
# move config from previous location
|
|
if [[ -f "$configdir/all/dgenrc" ]]; then
|
|
mv -v "$configdir/all/dgenrc" "$md_conf_root/megadrive/dgenrc"
|
|
fi
|
|
|
|
if [[ ! -f "$md_conf_root/megadrive/dgenrc" ]]; then
|
|
cp "sample.dgenrc" "$md_conf_root/megadrive/dgenrc"
|
|
chown "$__user":"$__group" "$md_conf_root/megadrive/dgenrc"
|
|
fi
|
|
|
|
iniConfig " = " "" "$md_conf_root/megadrive/dgenrc"
|
|
|
|
if isPlatform "rpi"; then
|
|
iniSet "int_width" "320"
|
|
iniSet "int_height" "240"
|
|
iniSet "bool_doublebuffer" "no"
|
|
iniSet "bool_screen_thread" "yes"
|
|
iniSet "scaling_startup" "none"
|
|
|
|
# we don't have opengl (or build dgen with it)
|
|
iniSet "bool_opengl" "no"
|
|
|
|
# lower sample rate
|
|
iniSet "int_soundrate" "22050"
|
|
|
|
iniSet "emu_z80_startup" "drz80"
|
|
iniSet "emu_m68k_startup" "cyclone"
|
|
fi
|
|
|
|
iniSet "joy_pad1_a" "joystick0-button0"
|
|
iniSet "joy_pad1_b" "joystick0-button1"
|
|
iniSet "joy_pad1_c" "joystick0-button2"
|
|
iniSet "joy_pad1_x" "joystick0-button3"
|
|
iniSet "joy_pad1_y" "joystick0-button4"
|
|
iniSet "joy_pad1_z" "joystick0-button5"
|
|
iniSet "joy_pad1_mode" "joystick0-button6"
|
|
iniSet "joy_pad1_start" "joystick0-button7"
|
|
|
|
iniSet "joy_pad2_a" "joystick1-button0"
|
|
iniSet "joy_pad2_b" "joystick1-button1"
|
|
iniSet "joy_pad2_c" "joystick1-button2"
|
|
iniSet "joy_pad2_x" "joystick1-button3"
|
|
iniSet "joy_pad2_y" "joystick1-button4"
|
|
iniSet "joy_pad2_z" "joystick1-button5"
|
|
iniSet "joy_pad2_mode" "joystick1-button6"
|
|
iniSet "joy_pad2_start" "joystick1-button7"
|
|
|
|
isPlatform "dispmanx" && setBackend "$md_id" "dispmanx"
|
|
}
|