Need help with writing install script
-
I'm trying to write an install script for lr-melonDS because it supports DSI emulation. This is my first time doing this . Here is the script:
#!/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="lr-melonDS" rp_module_desc="NDS/DSI emu requries bios and firmware from DS/DSI port for libretro" rp_module_help="ROM Extensions: .nds .zip\n\nCopy your Nintendo DS/DSI roms to $romdir/nds" rp_module_licence="GPL2 https://github.com/libretro/melonDS/blob/master/LICENSE" rp_module_section="exp" #rp_module_flags="!all 64bit" function _params_lr-melonDS() { local params=() isPlatform "arm" && params+=("platform=armvhardfloat") isPlatform "aarch64" && params+=("melonDS_JIT=0") echo "${params[@]}" } function depends_lr-melonDS() { getDepends cmake libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qtbase5-dev qtdeclarative5-dev libslirp-dev } function sources_lr-melonDS() { gitPullOrClone "$md_build" https://github.com/Arisotura/melonDS.git } function build_lr-melonDS() { cd melon-ds/src/frontend/libretro make clean make $(_params_lr-melonDS) md_ret_require="$md_build/melonDS/src/frontend/libretro/melonDS_libretro.so" } function install_lr-melonDS() { md_ret_files=( 'melonDS/src/frontend/libretro/melonDS_libretro.so' ) } function configure_lr-melonDS() { mkRomDir "nds" ensureSystemretroconfig "nds" addEmulator 0 "$md_id" "nds" "$md_inst/melonDS_libretro.so" addSystem "nds" }
So far it can't install needed dependencies, can anyone tell me what is wrong with this script?
-
What error do you get and where ? The
depends
functions looks ok, but the build part doesn't look correct - there's nomelon-ds
folder present in the source repository. -
@mitu
Here is the log file:Log started at: Wed Dec 23 13:31:26 EST 2020 RetroPie-Setup version: 4.7.2 (ac8d8775) System: rpi4 (aarch64) - Raspbian GNU/Linux 10 (buster) - Linux retropie 5.4.79-v8+ #1373 SMP PREEMPT Mon Nov 23 13:32:41 GMT 2020 aarch64 GNU/Linux = = = = = = = = = = = = = = = = = = = = = Installing dependencies for 'lr-melonDS' : NDS/DSI emu requries bios and firmware from DS/DSI port for libretro = = = = = = = = = = = = = = = = = = = = = Did not find needed dependencies: libcurl4-gnutls-dev qtdeclarative5-dev libslirp-dev. Trying to install them now. Hit:1 http://archive.raspberrypi.org/debian buster InRelease Get:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB] Fetched 15.0 kB in 1s (14.3 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... E: Unable to locate package libslirp-dev Could not install package(s): libcurl4-gnutls-dev qtdeclarative5-dev libslirp-dev. Log ended at: Wed Dec 23 13:31:31 EST 2020 Total running time: 0 hours, 0 mins, 5 secs
-
@unknown said in Need help with writing install script:
E: Unable to locate package
libslirp-dev
It looks like the package doesn't exist in the current Raspberry Pi OS release.
-
@mitu
Well, that's not good. Is there another way to get it? -
You could install it manually from source, and remove the dependency in the scriptmodule. During compilation, if needed, MelonDS will find it and use it.
-
This post is deleted! -
@mitu I t appeears that "libslirp-dev" is avaliable for ubuntu.
@mitu said in Need help with writing install script:
What error do you get and where ? The
depends
functions looks ok, but the build part doesn't look correct - there's nomelon-ds
folder present in the source repository.Forgive me for asking, but what would you sugguest I replace:
md_ret_require="$md_build/melonDS/src/frontend/libretro/melonDS_libretro.so"
with?
-
@unknown said in Need help with writing install script:
@mitu I t appeears that "libslirp-dev" is avaliable for ubuntu.
Yes, but only starting with Ubuntu 20.04 and it's not available for the platform you're trying to install it (Debian Buster).
Forgive me for asking, but what would you sugguest I replace:
md_ret_require="$md_build/melonDS/src/frontend/libretro/melonDS_libretro.so"
with?
Not sure what you're trying to do here - does MelonDS have a Libretro core that should appear at that location ? Because in the
src/frontend
folder, as present in the project's repository, there's no libretro folder.My advice would be to try to compile and use the emulator without resorting to RetroPie's scriptmodules, just following the project's installation instructions. This way you can test it's working, before resolving any issues that may appear in the scriptmodule.
-
@mitu I just relized that I wasn't cloning from the libretro core on github. Here is the current install script.
#!/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="lr-melonDS" rp_module_desc="NDS/DSI emu requries bios and firmware from DS/DSI port for libretro" rp_module_help="ROM Extensions: .nds .zip\n\nCopy your Nintendo DS/DSI roms to $romdir/nds" rp_module_licence="GPL2 https://github.com/libretro/melonDS/blob/master/LICENSE" rp_module_section="exp" #rp_module_flags="!all 64bit" function _params_lr-melonDS() { local params=() isPlatform "arm" && params+=("platform=armvhardfloat") isPlatform "aarch64" && params+=("melonDS_JIT=0") echo "${params[@]}" } function depends_lr-melonDS() { getDepends cmake libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qtbase5-dev qtdeclarative5-dev } function sources_lr-melonDS() { gitPullOrClone "$md_build" https://github.com/libretro/melonDS.git } function build_lr-melonDS() { cd melon-ds/src/frontend/libretro make clean make $(_params_lr-melonDS) #md_ret_require="$md_build/melonDS/src/frontend/libretro/melonDS_libretro.so" } function install_lr-melonDS() { md_ret_files=( 'melonDS/src/frontend/libretro/melonDS_libretro.so' ) } function configure_lr-melonDS() { mkRomDir "nds" ensureSystemretroconfig "nds" addEmulator 0 "$md_id" "nds" "$md_inst/melonDS_libretro.so" addSystem "nds" }
I still have to find the melonDS_libretro.so file, but this is progress!
-
Here is a link to my logfile:
https://github.com/Python-retropie-raspberry-pi-hobby/3/blob/main/README.md -
@unknown As I said, try to install the emulator first without the RetroPie script, including compilation, and see which steps are needed to compile and configure it.
-
@mitu I will look into that, in the meantime here is the latest version of the install script.
#!/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="lr-melonDS" rp_module_desc="NDS/DSI emu requries bios and firmware from DS/DSI melonDS port for libretro" rp_module_help="ROM Extensions: .nds .zip\n\nCopy your Nintendo DS/DSI roms to $romdir/nds" rp_module_licence="GPL2 https://github.com/libretro/melonDS/blob/master/LICENSE" rp_module_section="exp" rp_module_flags="!all 64bit" function _params_lr-melonDS() { local params=() isPlatform "arm" && params+=("platform=armvhardfloat") isPlatform "aarch64" && params+=("melonDS_JIT=0") echo "${params[@]}" } function depends_lr-melonDS() { getDepends cmake libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qtbase5-dev qtdeclarative5-dev git clone https://github.com/virtualsquare/libvdeslirp.git cd bin make -j8 sudo make install } function sources_lr-melonDS() { gitPullOrClone "$md_build" https://github.com/libretro/melonDS.git } function build_lr-melonDS() { cd melon-ds/src/frontend/libretro make clean make $(_params_lr-melonDS) #md_ret_require="$md_build/lr-melonDS/src/frontend/libretro/melonDS_libretro.so" } function install_lr-melonDS() { md_ret_files=( 'lr-melonDS/src/frontend/libretro/melonDS_libretro.so' ) } function configure_lr-melonDS() { mkRomDir "nds" ensureSystemretroconfig "nds" addEmulator 0 "$md_id" "nds" "$md_inst/melonDS_libretro.so" addSystem "nds" }
I'm getting the feeling that this emulator will not work for 32bit.
-
@mitu I've located a arm64bit version, but I haven't run it yet because apparently DSI bios isn't accepted. Also here are the compiling steps.
#Linux: Install dependencies: sudo apt install cmake libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev qt5-default libslirp-dev libarchive-dev libepoxy-dev Download the melonDS repository and prepare: git clone https://github.com/Arisotura/melonDS cd melonDS mkdir build && cd build # Compile: mkdir -p build cd build cmake .. make -j$(nproc --all)
Any suggestions?
-
ok melonDS now offers a arm64 linux build which means it should work when retropie has a 64bit version. unfortunately we will have to wait until then for DSi
-
@mitu Could you move this to “ideas and development “ please?
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.