Fetch, build and install a number of libretro projects.
See the Compilation notes for prerequisites.
make
make install
Super repo for other libretro projects. Fetches, builds and installs.
License: MIT License
Fetch, build and install a number of libretro projects.
See the Compilation notes for prerequisites.
make
make install
Some of the core names are spelled inaccurately. This is what I've found, probably have missed some nightly-only cores:
bNES -> bnes, DeSmuME svn -> DeSmuME (SVN), dosbox -> DOSBox, gambatte -> Gambatte, handy -> Handy, Mednafen Neopop -> Mednafen NeoPop, Mupen64plus -> Mupen64Plus, prboom -> PrBoom
EDIT: Most of these seem to only be misspelled only in the names that are shown before version on the bottom of the screen, the ones in the Info section are often fine.
This is a skeleton issue which I will use to consolidate all the other pull requests I will make over the next while to begin the process of using good practices and standards that will vastly improve performance, readability and code reusage.
https://github.com/libretro/mupen64plus-libretro/blob/master/libretro/libretro.c#L363 says n64|v64|z64.
https://github.com/libretro/libretro-super/blob/master/dist/info/mupen64plus_libretro.info says n64|v64|z64|bin|u1.
I do believe these lists are supposed to match each other. I could change this myself, but I'd rather poll for consensus on which version is correct first. (I prefer the system_info version because I've never seen a u1, and bin can belong to dozens of different systems.)
What arguments can I specify to dump the retroarch binary to launch Retroarch, short of symlinking it?
Thanks
Is there any reason why scummvm is not built with all engines/features ? In particular, I enabled the dreamweb engine and libvorbis which seemed to work fine. In the makefile:
ENABLED_DREAMWEB=$(ENABLED)
more hacky:
LDD += -lvorbisfile -lvorbis -logg
DEFINES += -DVORBIS
How do I write a core? I can't find any documentation.
So, it should be very simple to move the faux readlink
function into libretro-config.sh
(or another separate script) and then reuse it through the rest of the scripts that source it. That would (like the other issues/pull requests I've opened) save a lot of code reusage. The same would be true of the die()
function.
There are a lot of git repositories in this project. Repo is a nice tool for managing projects spanning large numbers of git repositories. Let's use it.
https://code.google.com/p/git-repo/
https://source.android.com/source/developing.html
To get all the code into a new development machine:
Previously
git clone git://github.com/libretro/libretro-super.git
cd libretro-super
./libretro-fetch.sh
With Repo this becomes
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir ra-src
cd ra-src
repo init -u https://github.com/libretro/libretro-manifest.git
repo sync
To update one's code:
Previously
./libretro-fetch.sh
and git pull
in libretro-super every so often
With Repo this becomes
repo sync
Down the road, if we wanted, we could setup things like repo sync android
, repo sync windows
and repo sync ios
to only fetch code for those specific projects.
If anyone builds in Windows there could be an issue using repo, but apparently there are workarounds to get repo working in windows.
Repo has a few advantages I can think of.
As git repositories/cores are added/removed from the libretro umbrella, default.xml is edited to reflect these changes (it's stored in https://github.com/libretro/libretro-manifest.git)
repo sync
automatically picks up on these changes as they occur and developers' code bases are updated with the new repositories. Currently, I have to remember to do a pull on libretro-super every once in a while before running ./libretro-fetch.sh
to avoid getting out of sync.
Repo is faster. A fresh pull using ./libretro-fetch.sh
takes me 8 min 52 sec seconds vs 3 min 38 sec for a fresh pull with repo sync
Under an Arch Linux installation (x86_64), I'm getting a build failure for the Dinothawr core. Output is as follows:
=== Building Dinothawr ===
rm -f surface_cluster.o render_target.o tilemap.o surface_cache.o bg_manager.o game_manager.o libretro.o rpng.o game.o sfx_manager.o surface.o font.o pugixml/pugixml.o audio/utils.o audio/mixer.o ogg/framing.o ogg/bitwise.o vorbis/floor1.o vorbis/mdct.o vorbis/mapping0.o vorbis/vorbisfile.o vorbis/res0.o vorbis/registry.o vorbis/analysis.o vorbis/codebook.o vorbis/vorbisenc.o vorbis/info.o vorbis/psy.o vorbis/sharedbook.o vorbis/lpc.o vorbis/barkmel.o vorbis/window.o vorbis/lookup.o vorbis/bitrate.o vorbis/lsp.o vorbis/synthesis.o vorbis/block.o vorbis/smallft.o vorbis/envelope.o vorbis/floor0.o dinothawr_libretro.dll
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o surface_cluster.o surface_cluster.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o render_target.o render_target.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o tilemap.o tilemap.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o surface_cache.o surface_cache.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o bg_manager.o bg_manager.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o game_manager.o game_manager.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o libretro.o libretro.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o rpng.o rpng.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o game.o game.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o sfx_manager.o sfx_manager.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o surface.o surface.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o font.o font.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o pugixml/pugixml.o pugixml/pugixml.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o audio/utils.o audio/utils.cpp
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu++0x -ffast-math -Wall -pedantic -I. -DOV_EXCLUDE_STATIC_CALLBACKS -c -o audio/mixer.o audio/mixer.cpp
"gcc" CXX="g++" -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O3 -std=gnu99 -ffast-math -I. -Ivorbis -c -o ogg/framing.o ogg/framing.c
gcc: error: CXX=g++: No such file or directory
Makefile:77: recipe for target 'ogg/framing.o' failed
make: *** [ogg/framing.o] Error 1
make: *** Waiting for unfinished jobs....
Failed to build Dinothawr
cp: cannot stat ‘dinothawr_libretro.so’: No such file or directory
Thoughts?
I bumped into this project yesterday, and before I could start compiling I had to do a lot of googling since there was no README around here.
It would be a nice thing 😄
Hi,
There is a cp issue after compiling picodrive core (libretro-build-common.sh):
cp "picodrive_libretro${FORMAT}.${FORMAT_EXT}" "${RARCH_DIST_DIR}"
name has changed to picodrive_retro.dll
Thanks
When compiling, the script fails with the following error message:
relocation R_X86_64_32S against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
libretro.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
gmake: *** [o2em_libretro.dll] Error 1
Failed to build o2em
cp: cannot stat «o2em_libretro.so»: No such file or directory
This happens on Fedora 20 KDE Spin. GCC version: 4.8.3
Any idea why this fails?
# if directory exist remove it
if [[ -d "/home/desktop/retroarch-src" ]]; then
rm -rf "/home/desktop/retroarch-src"
fi
# clone and fetch super build (evaluating currently)
mkdir -p /home/desktop/retroarch-src
mkdir -p /home/desktop/retroarch-src-git
cd /home/desktop/retroarch-src-git
git clone https://github.com/libretro/libretro-super
cd libretro-super/
# fetch information
sh libretro-fetch.sh
if [ $? == '0' ]; then
echo -e "\nFetch operation successful...\n"
sleep 1s
else
echo -e "\nFetch operation unsuccessful, aborting..."
exit
fi
I spent some time checking the built dylibs and compared them to cores I have built by myself and found a few discrepancies, here's what I found:
bsnes: doesn't build with clang or the Apple shipped version of GCC (4.2) because it's too old. GCC 4.2 throws out this error:
cc1plus: error: unrecognized command line option "-std=gnu++0x"cc1plus: error: unrecognized command line option "-std=gnu++0x"
However it does build with a newer version of GCC if it is installed on the system.
Mednafen SNES: does not build with clang, throws out the following error:
make: *** [mednafen/snes/interface.o] Error 1
Failed to build mednafen/snes
However it does build with a newer version of GCC if it is installed on the system.
Snes9x: calls gcc and g++, the "default" Apple shipped GCC (with Xcode) won't compile this... clang will though. I passed the following arguments to make to override these "make CXX=clang++ CC=clang" and it compiled fine.
Stella: builds fine, however it builds the target "stella_libretro.dylib" rather than the referenced "libretro.dylib" that the build script is looking for to copy to the "dist" directory
Other notes:
The build script attempts to build QuickNES for Mac OS X, it doesn't compile yet for OS X. Squarepusher knows about this. More of an FYI than anything.
PCSX ReARMed is built on the PC platform and it looks like everything else as well, you might build logic into the function to eliminate building this for anything but for ARM CPUs.
MAME 0.78 is built on Mac OS X as a 32-bit dylib but won't run, it mentions within the MAME 0.78 readme that the core won't run on 64-bit machines. Most OS X machines are 64-bit these days.
Hope this helps!
When running libretro-build-ios.sh, I get the following error:
clang++ -o out/bsnes_libretro_ios.dylib -dynamiclib obj/libco.o obj/processor-arm.o obj/processor-gsu.o obj/processor-hg51b.o obj/processor-lr35902.o obj/processor-r65816.o obj/processor-spc700.o obj/processor-upd96050.o obj/sfc-interface.o obj/sfc-system.o obj/sfc-controller.o obj/sfc-cartridge.o obj/sfc-cheat.o obj/sfc-memory.o obj/sfc-cpu.o obj/sfc-smp.o obj/sfc-dsp.o obj/sfc-ppu.o obj/sfc-satellaviewbase.o obj/sfc-icd2.o obj/sfc-bsx.o obj/sfc-nss.o obj/sfc-event.o obj/sfc-sa1.o obj/sfc-superfx.o obj/sfc-armdsp.o obj/sfc-hitachidsp.o obj/sfc-necdsp.o obj/sfc-epsonrtc.o obj/sfc-sharprtc.o obj/sfc-spc7110.o obj/sfc-sdd1.o obj/sfc-obc1.o obj/sfc-hsu1.o obj/sfc-msu1.o obj/sfc-satellaviewcart.o obj/sfc-sufamiturbo.o obj/gb-interface.o obj/gb-system.o obj/gb-scheduler.o obj/gb-memory.o obj/gb-cartridge.o obj/gb-cpu.o obj/gb-ppu.o obj/gb-apu.o obj/gb-cheat.o obj/gb-video.o obj/libretro.o -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk -arch armv7
ld: illegal text-relocation to '_posix_memalign' in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/usr/lib/libSystem.dylib from '_co_create' in obj/libco.o for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [build] Error 1
Failed to build bsnes performance core
cp: out/bsnes_libretro_ios.dylib: No such file or directory
Has anyone been able to build using the latest Xcode?
Should be libretro/Genesis-Plus-GX
Hello,
how I could compile this module with this option: --enable-all-engines to enable all others experimental games supported?
Thanks.
I removed the first couple of retroarch options as I had already cloned and built it separately. This left the submodule "assets" line as the first pull. This then causes every other core after it to not fetch.
fetch_subprojects "$REPO_BASE/libretro/retroarch-assets.git" "retroarch" "media" "assets" "libretro/retroarch-assets"
fetch_subprojects "$REPO_BASE/libretro/retroarch-joypad-autoconfig.git" "retroarch" "media" "autoconfig" "libretro/joypad-autoconfig"
fetch_project_bsnes "$REPO_BASE/libretro/bsnes-libretro.git" "libretro-bsnes" "libretro/bSNES"
fetch_project "$REPO_BASE/libretro/snes9x.git" "libretro-snes9x" "libretro/SNES9x"
fetch_project "$REPO_BASE/libretro/snes9x-next.git" "libretro-snes9x_next" "libretro/SNES9x-Next"
fetch_project "$REPO_BASE/libretro/Genesis-Plus-GX.git" "libretro-genesis_plus_gx" "libretro/Genplus GX"
...
,,,
I don't know if there is some reason or maybe it is grown historically, but there are some issues with the naming of repos and files among the mednafen/beetle cores.
reponame: mednafen
core rule name: mednafen_psx
readme: beetle
files: both
- https://github.com/libretro/mednafen-psx-libretro/blob/master/beetle_psx_griffin.cpp
- https://github.com/libretro/mednafen-psx-libretro/tree/master/mednafen
reponame: beetle
core rule name: mednafen_snes
readme: madnafen
I know it is difficult to change this things, but I think it would improve the structure of the whole libretro project if the cores and the repos have reliable names.
The BSD version of readlink does not accept the "-f" argument, here's a link describing other methods of getting the same info on BSD based systems.
I'm trying to build the cores for iOS7, following instructions here: https://github.com/libretro/RetroArch/blob/master/apple/README.md
./libretro-fetch.sh runs nicely
./libretro-build-ios.sh fails immediatly with the following message:
zwambp:libretro-super ziad$ ./libretro-build-ios.sh
Compiler:
ios
Directory /Users/ziad/Dropbox/code/libretro-super/dist/ios already exists, skipping creation...
=== Building PCSX ReARMed ===
make: *** empty string invalid as file name. Stop.
Failed to clean PCSX ReARMed
make: *** empty string invalid as file name. Stop.
Failed to build PCSX ReARMed
cp: pcsx_rearmed_libretro_ios.dylib: No such file or directory
FWIW, clang -v gives the following:
Apple LLVM version 5.0 (clang-500.2.75) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix
Any help is appreciated - I know how to build, but I'm not 100% sure of what I'm doing, so it might be a stupid issue.
how to build mame in android ?
I know for building cores, I can easily use sed -i -e '/build_libretro_core bsnes/d' libretro-build.sh
to remove a core, and build globally with ./libretro-build.sh
. With fetch, it does not seem so straigthforward. I did take a look at the core rules, which seems to be something of value, but I wanted to know if there was a way to go about this easily, rather than specify multiple lines of ./libretro-fetch.sh $target
I was unsure if this was as simple as commenting out a line such as
register_core "meteor" -ngc -ps3 -psp1 -qnx -wii
Great work (despite what the naysayers might argue).
Can we have a Y/n list before we start compiling so we can decide which of the cores we want? This is quicker than doing everything and, I expect, even a shade faster than manually grabbing a couple of cores (which is how I found this).
I know this is a bit ... meh ... but it would be really useful to people like me who want (maybe) five or six cores and maybe a few others but dont want to go looking for each.
Apologies for the poor typing, I smushed my keyboard settings on this USB-boot.
There is no entry for the dolphin-core in the rules.d/core-rules.sh
Since I have updated to the Xcode 5.1 unable to compile the iOS cores. I did update script the libretro-build-io.sh build to iPhoneOS7.1.sdk. Stupid as this may be but if I bring in the SDK 7.0 in the new Xcode it should build? Not sure? I will try in a few, need to restore my Virtual machine snapshot prior xcode update to grab the SDK7.0.
NEWEST Error after changing the SDKs/iPhoneOS7.1
clang++ -std=c++11 -stdlib=libc++ -miphoneos-version-min=6.0 -std=gnu++0x -I. -O3 -fomit-frame-pointer -DPROFILE_PERFORMANCE -arch armv7 -marm -fPIC -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/ -DHAVE_POSIX_MEMALIGN=1 -w -D__LIBRETRO__ -c target-libretro/libretro.cpp -o obj/libretro.o
target-libretro/libretro.cpp:588:18: error: assigning to 'char ' from incompatible type 'char'
win_slash = '\0';
^ ~~~~
target-libretro/libretro.cpp:622:18: error: assigning to 'char *' from incompatible type 'char'
win_slash = '\0';
^ ~~~~
2 errors generated.
make: ** [obj/libretro.o] Error 1
make: *** Waiting for unfinished jobs....
Failed to build bSNES performance core
bash libretro-build.sh bsnes_mercury
=> only build the accuracy profile.
I must manually launch : make ui='target-libretro' profile='balanced' -j4
to build other build
In libretro-buildbot-recipe.sh on line 1203 It says content_database_directory = ":\database\rdb"
. However the configuration option should be named content_database_path
.
Using libretro-build.sh
, the build fails with the following error:
cp: cannot stat ‘pcsx_rearmed_libretro.so’: No such file or directory
This appears to be coming from the build_libretro_pcsx_rearmed()
function in libretro-build-common.sh
. It would appear that this function is building a .dll file (for Windows) despite my being on a Linux distro. I do not, however, know why this is happening as all the other cores are correctly building .so files.
I removed the cores I didn't want from fetch.
Compiled all the cores with libretro-build.sh
Then when I run sudo ./libretro-install.sh (or to a directory I own) it only copies the .info files.
At the top of the output I get
Library /home/parker/build/libretro-super/dist//info not found, skipping...
Library /home/parker/build/libretro-super/dist//unix not found, skipping...
Both of these folders exist.
How to use these scripts? For sample, which arguments it can get? Can you give some samples of usage :) (for compiling to different platforms).
Hey, when i try to compile the cores, it just hangs and stops as soon it wants to create the mame core:
/mame/cpu/m68000 -Isrc/cpu/m68000 -DRETRO_PROFILE=0 -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wbad-function-cast -Wcast-align -Waggregate-return -Wshadow -Wstrict-prototypes -Wundef -Wformat-security -Wwrite-strings -Wdisabled-optimization -DNDEBUG -O3 -fomit-frame-pointer -fstrict-aliasing -fPIC -miphoneos-version-min=5.0 -Dstricmp=strcasecmp -D__LIBRETRO__ -DPI=3.1415927 -DLSB_FIRST -pedantic -DDOS -o obj/mame/cpu/m68000/m68kmake src/drawgfx.c
Failed to build MAME 0.78
Any suggestions?
yabause repo is fetch but there is no build command in the scripts.
Any ideas why ?
cp: snes9x_next_libretro.dylib: No such file or directory
This is the lib that was built: snes9x_next_libretro_ios.dylib
Almost all of the cores are doing this now. What changed? And what should be adjusted to fix it? I hope it's not ALL of the cores' build scripts 😱
I'm not sure where to start with this but if you could add a build of PCSX-ReARMed core with the interpreter instead of the arm dynarec that would be great.
I only ask because the iPhone 5S is able to run all the games I tested at full speed with the interpreter, but can't run the dynarec at all due to security measures.
On the PCSX side all that would be needed would be to pass USE_DYNAREC=0 to make.
The real mednafen can load toc files for PC-FX games. I also don't think that ccd is valid for PC-FX, but I am not completely sure.
dist/info/*.info files only contain a subset of the retro_system_info
properties (library name and supported extensions). I was thinking of going through and adding:
to all the info files. would you guys care for this pull request?
Edit: I'm not sure where this should be posted but as this repo could benefit
from these changes, it seemed the most appropriate.
In order to make build systems and management more straight forward I would
like to depend on the internal consistency of repo names and makefiles.
For example, each repo could be named after the object it builds without the
_libretro.{so,dll}
prefix.
This allows us to assume what what the core's name will be based purely on the
repo name itself.
Another change would be to make the builds consistent. For example it would be
nice if we could assume that make -f Makefile.libretro
would always work
regardless.
Some repos seem to contain libretro specific builds in the libretro/
directory. This is also fine, but it would be nicer if this was consistent across
all of them.
Overall these two properties would allow for a nice way to manage cores without
needing to maintain whitelists or blacklists.
Here's a simple usecase as a result of these changes:
core_directory="${XDG_DATA_HOME:-$HOME/.local/share}"/retroarch/cores
# Note: genesis_plus_gx won't work as the repo name differs. :-(
cores=(pcsx_libretro mgba nestopia genesis_plus_gx)
confirm() {
local -l reply
read -p "Rebuild? [Y/n] " reply
[[ -z "$reply" || "$reply" = y?(es) ]]
}
# XXX This assumes it is run in the build directory, a proper script would
# account for this.
for core in "${cores[@]}"; do
if [[ ! -d "$core" ]]; then
git clone --depth 1 git://github.com/libretro/"$core"
fi
pushd "$core"
git fetch
if [[ "$(git rev-parse HEAD)" != "$(git rev-parse @{upstream})" ]]; then
git log --oneline --stat ..@{upstream}
if confirm; then
make -f Makefile.libretro
mv -f -- "$core"_libretro.so "$core_directory"
fi
fi
popd
done
The lastest commit is failing to build the cores for iOS.
**Dec 10th, 2013 - did download the lastest, commit?
./nall/string/split.hpp:30:85: note: in instantiation of function template specialization 'nall::lstring::usplit<0, false, false>' requested here
template lstring& lstring::split(rstring key, rstring src) { return usplit<Limit, false, false>(key, src); }
^
./nall/string/wrapper.hpp:5:92: note: in instantiation of function template specialization 'nall::lstring::split<0>' requested here
template lstring string::split(rstring key) const { lstring result; result.split(key, data()); return result; }
^
./nall/string/markup/node.hpp:37:52: note: in instantiation of function template specialization 'nall::string::split<0>' requested here
lstring rules = string{query}.replace(" ", "").split(",");
^
13 warnings and 3 errors generated.
14 warnings and 3 errors generated.
make: *** [obj/processor-spc700.o] Error 1
make: *** [obj/processor-lr35902.o] Error 1
14 warnings and 3 errors generated.
make: *** [obj/processor-arm.o] Error 1
Hello,
the libretro-super download the Reicast source core, but does not compile it.
Is it normal?
For the moment I compile and install it manually.
Regards.
I have Ubuntu 14.04.3 here and did a "libretro-fetch". Then I tried to "libretro-config" and "libretro-build" and 15 cores failed (I had last successfully compiled ~a year ago). I tried to build libretro-mame159 by itself using "make", but it failed due to a lot of zlib *.o files missing. I went to the 3rdparty/zlib subdirectory and did a "./configure --static", built zlib using "make" and copied the .o files to libretro-mame159/obj/sdl64/lib/zlib. I had to do more or less the same for expat.
Then I gave up on softfloat, as it does not have a MakeFile, CMakeLists.txt or different. "gcc softfloat.c" reports a missing "emu.h". Any hints?
It would be sweet if the libraries would check and report missing dependencies before compiling and failing. I had to install libsdl2-dev and libsdl2-ttf-dev while compiling mame159. Switching to CMake would make that easier, I guess...
When following the compilation guide for Linux, the step "sh libretro-build.sh" fails to complete, displaying this message.
mednafen/trio/trio.c: In function ‘TrioOutStreamFileDescriptor’:
mednafen/trio/trio.c:3106:3: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration]
mednafen/trio/trio.c: In function ‘TrioInStreamFileDescriptor’:
mednafen/trio/trio.c:5348:3: warning: implicit declaration of function ‘read’ [-Wimplicit-function-declaration]
"g++" -o mednafen_wswan_libretro.so libretro.o stubs.o mednafen/wswan/gfx.o mednafen/wswan/main.o mednafen/wswan/wswan-memory.o mednafen/wswan/v30mz.o mednafen/wswan/sound.o mednafen/wswan/tcache.o mednafen/wswan/interrupt.o mednafen/wswan/eeprom.o mednafen/wswan/rtc.o mednafen/mednafen.o mednafen/error.o mednafen/math_ops.o mednafen/settings.o mednafen/general.o mednafen/FileWrapper.o mednafen/FileStream.o mednafen/MemoryStream.o mednafen/Stream.o mednafen/state.o mednafen/endian.o mednafen/mempatcher.o mednafen/video/Deinterlacer.o mednafen/video/surface.o mednafen/sound/Blip_Buffer.o mednafen/sound/Stereo_Buffer.o mednafen/file.o mednafen/md5.o mednafen/trio/trio.o mednafen/trio/triostr.o -fPIC -shared -Wl,--no-undefined -Wl,--version-script=link.T
libretro-build.sh: 99: libretro-build.sh: Bad substitution
Wrong "platform" parameter passed to "make"
Hello,
I am using libretro-super on a Linux ARM box (odroid) to compile various cores.
I have the impression that the shell script does not pass the right parameters to "make" for building cores.
When I try to build libretro_mame for instance, the shell script issues the following command:
make -f Makefile.libretro TARGET=mame platform=unix-neon-cortexa9-hardfloat ...
But the makefile seems to expect something like:
make -f Makefile.libretro TARGET=mame platform=armv-unix-neon-cortexa9-hardfloat ...
In other words, "armv" does not appear in the "platform" string passed as an argument to "make". It is a problem because the compilation starts with standard UNIX settings, not with the ARM-specific ones.
I have the impression that the issue is due to the way the variable $FORMAT_COMPILER_TARGET is constructed in libretro-config.sh. But I don't know how to fix it properly.
Can someone propose a fix or tell me what I am doin wrong with libretro-super?
Thanks a lot.
Olivier
I see the #build_libretro_meteor is commented out, so why this error? I reviewed the script but not seeing where this- clang: error: unsupported option '-static-libgcc'
make: *** [meteor_libretro.dll] Error 1
Failed to build meteor
I don't see where this is getting called.
Xcode 5.1.1 OS X 10.9
-OUTPUT
CXX interpreter.cpp
CXX interpreter_thumb.cpp
CXX interpreter_arm.cpp
CXX io.cpp
CXX lcd.cpp
CXX keypad.cpp
CXX sound.cpp
CXX memory.cpp
CXX sram.cpp
CXX video.cpp
CXX timer.cpp
CXX audio.cpp
CXX input.cpp
CXX libretro.cpp
clang: error: unsupported option '-static-libgcc'
make: *** [meteor_libretro.dll] Error 1
Failed to build meteor
cp: meteor_libretro_ios.dylib: No such file or directory
Hello,
Some cores fail to compile with g++ "Argument list too long" errors when I try to compile with libretro-build-android.sh (on Windows, using Cygwin). One example is nestopia. I have no idea why that would be, especially since most other cores (snes9x-next, mednafen, pcsx_rearmed, ...) build fine.
My sources are in a directory several levels deep:
/home/guayj/work/libretro-super/libretro-nestopia/source/core
but I wouldn't think this is uncommon, or even overly long, considering more than half comes from the project's paths themselves...
Any clues as to why I'm getting this problem would be appreciated. Thanks in advance.
Hi!
I am having build problems with the above core. All others work!
Is it only me?
mupen64plus-core/src/r4300/r4300.c:1017:20: error: use of undeclared identifier
'dynarec_setup_code'
dyna_start(dynarec_setup_code);
^
1 error generated.
make: *** [mupen64plus-core/src/r4300/r4300.o] Error 1
make: *** Waiting for unfinished jobs....
29 warnings generated.
Failed to build Mupen 64 (x86_64 dynamic)
What about libretro_mame ? Is this port not working for ios?
Using Latest Xcode, latest libretro-super
Thanks
The script throws a couple of errors, see output log.
Looks like the whole build system isn't portable. Probable issues:
gmake
on FreeBSD)Just one example, line 50:
if [ "$(expr substr $(uname -s) 1 7)" = "MINGW32" ]; then
substr
on FreeBSD.expr
doesn't do anything different like echo
would do.More portable would be:
if uname -a | grep -i Mingw32 > /dev/null 2>&1; then
If you need someone for testing, I'd be happy to help.
For distributions to build and distribute. https://github.com/libretro/libretro-super/releases
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.