Higan/bsnes in core list not being updated?

Dear community,

I’d like to install current higan and/or bsnes cores in RetroArch 1.8.5 (installed via brew) on macOS 10.14.6, but to me it seems the core info list is not being updated …

I have the feeling I only see some outdated cores. Shouldn’t there be cores that are called “higan” without any flavor like accuracy, balance, or performance, and the same for “bsnes” but also without timestamps like 2014?

Thank you for your help.

They require some specific compiler stuff that I’m not sure is available in OSX: https://github.com/libretro/libretro-super/blob/master/recipes/linux/cores-linux-x64-generic#L9 and https://github.com/libretro/libretro-super/blob/master/recipes/linux/cores-linux-x64-generic#L55

If you have a good dev setup and can verify whether these cores build, we can add them to the recipes.

Both are listed in the corresponding files for macOS: https://github.com/libretro/libretro-super/blob/master/recipes/apple/cores-osx-x64-generic#L6 and https://github.com/libretro/libretro-super/blob/master/recipes/apple/cores-osx-x64-generic#L47

In regards of compiling the cores on macOS …

bsnes:

$ ./libretro-build.sh bsnes
PLATFORM: osx
ARCHITECTURE: x86_64
TARGET: osx
uname: illegal option -- o
usage: uname [-amnprsv]
CC = cc
CXX = c++
CXX11 = clang++ -std=c++11 -stdlib=libc++
CXX17 = clang++ -std=c++17 -stdlib=libc++
STRIP =
Compiler: CC="cc" CXX="c++"
=== x86 CPU detected... ===
=== x86_64 CPU detected... ===
osx
osx
=== bsnes
Building bsnes...
cd "/Users/user/git/libretro-super/libretro-bsnes/bsnes"
make -f GNUmakefile platform="osx" -j4 compiler="clang++ -std=c++17 -stdlib=libc++" target="libretro" clean
Deleting obj/* ...
Deleting out/* ...
make -f GNUmakefile platform="osx" -j4 CC="cc" CXX="c++" compiler="clang++ -std=c++17 -stdlib=libc++" target="libretro"
Compiling target-libretro/libretro.cpp ...
Compiling ../libco/libco.c ...
Compiling emulator/emulator.cpp ...
Compiling filter/filter.cpp ...
Compiling lzma/lzma.cpp ...
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'

make: *** [obj/emulator.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [obj/libco.o] Error 1
make: *** [obj/libretro.o] Error 1
make: *** [obj/filter.o] Error 1
cp "out/bsnes_libretro.dylib" "/Users/user/git/libretro-super/dist/osx-x86_64/bsnes_libretro.dylib"
cp: out/bsnes_libretro.dylib: No such file or directory
1 core(s) failed:
   bsnes

higan:

$ ./libretro-build.sh higan
PLATFORM: osx
ARCHITECTURE: x86_64
TARGET: osx
uname: illegal option -- o
usage: uname [-amnprsv]
CC = cc
CXX = c++
CXX11 = clang++ -std=c++11 -stdlib=libc++
CXX17 = clang++ -std=c++17 -stdlib=libc++
STRIP =
Compiler: CC="cc" CXX="c++"
=== x86 CPU detected... ===
=== x86_64 CPU detected... ===
osx
osx
=== higan
Building higan...
higan not fetched, skipping ...
No build actions performed.

Same for higan_sfc as titled in the recipes file … strange.

bsnes is being built, I think, if the following lines in two Makefiles are commented out: https://github.com/libretro/bsnes/blob/master/bsnes/GNUmakefile#L15-L18 and https://github.com/libretro/bsnes/blob/master/nall/GNUmakefile#L97-L104

But in regards of cp: out/bsnes_libretro.dylib: No such file or directory … I don’t find this file nowhere, not even on GitHub.

This might be related to: uname: illegal option -- o

EDIT: Oh, never mind, the -o here is related to uname, not to the compiler …

That’s what it should be called when it builds successfully.

Hm, at least there’s no more errors besides that one …

$ ./libretro-build.sh bsnes
PLATFORM: osx
ARCHITECTURE: x86_64
TARGET: osx
CC = /usr/bin/gcc
CXX = c++
CXX11 = clang++ -std=c++11 -stdlib=libc++
CXX17 = clang++ -std=c++17 -stdlib=libc++
STRIP =
Compiler: CC="/usr/bin/gcc" CXX="c++"
=== x86 CPU detected... ===
=== x86_64 CPU detected... ===
osx
osx
=== bsnes
Building bsnes...
cd "/Users/user/git/libretro-super/libretro-bsnes/bsnes"
make -f GNUmakefile platform="osx" -j4 compiler="clang++ -std=c++17 -stdlib=libc++" target="libretro" clean
Deleting obj/* ...
Deleting out/* ...
make -f GNUmakefile platform="osx" -j4 CC="/usr/bin/gcc" CXX="c++" compiler="clang++ -std=c++17 -stdlib=libc++" target="libretro"
Compiling target-libretro/libretro.cpp ...
Compiling ../libco/libco.c ...
Compiling emulator/emulator.cpp ...
Compiling filter/filter.cpp ...
Compiling lzma/lzma.cpp ...
Compiling sfc/interface/interface.cpp ...
Compiling sfc/system/system.cpp ...
Compiling sfc/controller/controller.cpp ...
Compiling sfc/cartridge/cartridge.cpp ...
Compiling sfc/memory/memory.cpp ...
Compiling sfc/cpu/cpu.cpp ...
Compiling sfc/smp/smp.cpp ...
Compiling sfc/dsp/dsp.cpp ...
Compiling sfc/ppu/ppu.cpp ...
Compiling sfc/ppu-fast/ppu.cpp ...
Compiling sfc/expansion/expansion.cpp ...
Compiling sfc/coprocessor/coprocessor.cpp ...
Compiling sfc/slot/slot.cpp ...
Compiling gb/Core/apu.c ...
Compiling gb/Core/camera.c ...
Compiling gb/Core/display.c ...
Compiling gb/Core/gb.c ...
Compiling gb/Core/joypad.c ...
Compiling gb/Core/mbc.c ...
Compiling gb/Core/memory.c ...
Compiling gb/Core/printer.c ...
Compiling gb/Core/random.c ...
Compiling gb/Core/rewind.c ...
Compiling gb/Core/save_state.c ...
Compiling gb/Core/sgb.c ...
Compiling gb/Core/sm83_cpu.c ...
Compiling gb/Core/symbol_hash.c ...
Compiling gb/Core/timing.c ...
Compiling processor/arm7tdmi/arm7tdmi.cpp ...
Compiling processor/spc700/spc700.cpp ...
Compiling processor/wdc65816/wdc65816.cpp ...
cp "out/bsnes_libretro.dylib" "/Users/user/git/libretro-super/dist/osx-x86_64/bsnes_libretro.dylib"
cp: out/bsnes_libretro.dylib: No such file or directory
1 core(s) failed:
   bsnes

so, once it finishes building, what’s in the ‘out’ directory?

Nothing, the directory is empty (besides .gitignore) …

hmm, that means it’s not compiling successfully. Hard to debug when there’s no compiler error in the log, though :thinking:

1 Like