Page MenuHomeFreeBSD

[NEW PORTS]: games/libretro-* libretro cores for compatible emulators
ClosedPublic

Authored by lbartoletti on Apr 20 2020, 7:47 PM.

Details

Summary

Libretro cores to be used with compatible emulators.

This is a collection of 48 ports that I manage to build and test of libretro cores. I've started based on the old gmes/libretro-cores pack, but I think having individual ports better because you can choose to compile only what you really need.
All cores was tested with at least 1 to 3 games each (depending on the support, etc). It needs a compatible libretro emulator to work (such as retroarch)
Here's a list:

libretro-2048 - 2048 puzzle
libretro-beetle_bsnes - Nintendo SNES emulator from Mednafen
libretro-beetle_gba - Nintendo Gameboy Advance emulator from Mednafen
libretro-beetle_lynx - Atari Lynx emulator from Mednafen
libretro-beetle_ngp - Neogeo Pocket emulator from Mednafen
libretro-beetle_pce_fast - NEC PC Engine emulator from Mednafen
libretro-beetle_pcfx - NEC PCFX emulator from Mednafen
libretro-beetle_psx - Sony Playstation emulator from Mednafen
libretro-beetle_supergrafx - NEC Supergrafx emulator from Mednafen
libretro-beetle_vb - Nintendo Virtual Boy emulator from Mednafen
libretro-beetle_wswan - Bandai Wonderswan emulator from Mednafen
libretro-bluemsx - MSX emulator
libretro-desmume2015 - Nintendo DS emulator
libretro-dosbox - MS-DOS emulator
libretro-emux - Emulator project support a couple of 8bit platforms
libretro-fbalpha - Final Burn Alpha, arcade emulator
libretro-fceumm - Nintendo NES emulator
libretro-fuse - ZX Spectrum emulator
libretro-gambatte - Nintendo Gameboy Color Emulator
libretro-genesis_plus_gx - Sega 8 and 16 bit multi-emulator
libretro-gpsp - Nintendo Gameboy emulator
libretro-gw - Nintendo Game & Watch emulator
libretro-handy - Atari Lynx emulator
libretro-hatari - Atari ST/STE/TT/Falcon emulator
libretro-mame2000 - Multiple Arcade Machine Emulator (0.37b5)
libretro-mame2003 - Multiple Arcade Machine Emulator (0.78)
libretro-mame2003_plus - Multiple Arcade Machine Emulator (0.78 with extra games)
libretro-mgba - Nintendo Gameboy Advance emulator
libretro-nestopia - Nintendo NES emulator
libretro-nxengine - Cave Story engine
libretro-o2em - Magnavox Odyssey 2 / Phillips Videopac emulator
libretro-opera - Panasonic 3DO emulator
libretro-pcsx_rearmed - Sony Playstion 1 emulator
libretro-picodrive - Sega 8 and 16 bit multi-emulator
libretro-prboom - Doom engine
libretro-prosystem - Atari 7800 / Prosystem emulator
libretro-quicknes - Nintendo NES emulator
libretro-scummvm - SCUMMVM backend
libretro-snes9x - Nintendo SNES emulator (Trunk)
libretro-snes9x2005 - Nintendo SNES emulator (1.43)
libretro-snes9x2010 - Nintendo SNES emulator (1.52)
libretro-stella2014 - Atari 2600 emulator
libretro-tgbdual - Nintendo Game Boy / Game Boy Color emulator
libretro-tyrquake - Quake engine
libretro-uae - Commodore Amiga emulator
libretro-vbanext - Nintendo Game Boy Advance emulator
libretro-vecx - GCE Vectrex emulator
libretro-virtualjaguar - Atari Jaguar emulator

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244897

Test Plan

portlint (looks fine, warning about LEGAL on *snes* ports)
poudriere (11[1]/12/HEAD i386/amd64)

[1] Except libretro-snes9x. I added a BROKEN flag

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

I wonder if it worth a meta port?

games/libretro-2048/Makefile
19 ↗(On Diff #70816)

^ this is redundant, as it's the same as the port name -- this goes for all the ports here

I wonder if it worth a meta port?

Yeah sure, a meta-port with options for each of them (say all default/the ones without copying-issues) might be useful

games/libretro-2048/Makefile
12 ↗(On Diff #70816)

I'll remove this line since (most) ports can be built also on aarch64, and it could be useful to have a FreeBSD retro station ;)

Well, some ports complains about missing memalign function (and include malloc.h). I have a patch (aka replace malloc.h with a memalign function), but I wonder if it's useful since a commit in base is in progress: https://reviews.freebsd.org/D24307

19 ↗(On Diff #70816)

Indeed, there is no naming convention on libretro ports (libretro-2048 or beetle-bsnes-libretro for examples). I think the maintainer has made life easier.

games/libretro-2048/Makefile
12 ↗(On Diff #70816)

you could patch depending on the value of the FreeBSD version, or mark them BROKEN for those that are older than the required version (that is, once the linked diff lands).

  • Remove GH_PROJECT when is redundant with PORTNAME
  • Remove ONLY_FOR_ARCH
  • Add BROKEN_aarch64 per games/libretro-desmume2015, games/libretro-picodrive and games/libretro-bluemsx
  • Fix build on aarch64 per games/libretro-gpsp, games/libretro-dosbox, games/libretro-scummvm, games/libretro-beetle_bsnes, games/libretro-hatari, games/libretro-uae, games/libretro-mame2000 and games/libretro-opera (needs memalign from "malloc.h")
This revision is now accepted and ready to land.Apr 28 2020, 6:31 PM
head/games/libretro-2048/Makefile
25

This seems to be in almost every port, and it feels to be a very convoluted to install only one file each time.