1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-20 08:27:15 +00:00

emulators/libretro-flycast: New port: Standalone port of flycast to libretro

PR:	257170
This commit is contained in:
Timothy Beyer 2022-05-16 20:53:46 -07:00 committed by Neel Chauhan
parent 5f4caf1945
commit 316d2de4b5
9 changed files with 163 additions and 0 deletions

View File

@ -57,6 +57,7 @@
SUBDIR += lib765
SUBDIR += libc6-shim
SUBDIR += libdsk
SUBDIR += libretro-flycast
SUBDIR += libretro-mame
SUBDIR += libretro-ppsspp
SUBDIR += libretro-reicast

View File

@ -0,0 +1,63 @@
# $FreeBSD$
PORTNAME= libretro-flycast
PORTVERSION= 0.20210608
CATEGORIES= emulators games
MAINTAINER= beyert@cs.ucr.edu
COMMENT= Standalone port of flycast to libretro
LICENSE= GPLv2
#LICENSE_COMB= multi
LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= amd64 i386
LIB_DEPENDS+= libao.so:audio/libao \
libasound.so:audio/alsa-lib \
libcurl.so:ftp/curl \
libevdev.so:devel/libevdev \
libpulse.so:audio/pulseaudio \
libudev.so:devel/libudev-devd \
libvulkan.so:graphics/vulkan-loader
USES= compiler:c++11-lib dos2unix gl gmake xorg
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= libretro
GH_PROJECT= flycast
GH_TAGNAME= 8e4fa54e
USE_GL+= gl glew glu
CFLAGS+= -I${LOCALBASE}/include
CXXFLAGS+= -I${LOCALBASE}/include
.include <bsd.port.pre.mk>
DOS2UNIX_FILES= core/hw/bba/rtl8139c.h
.if ${ARCH} == amd64
CFLAGS+= -DLOW_END
CXXFLAGS+= -DLOW_END
.endif
LDFLAGS+= -L${LOCALBASE}/lib
MAKE_ARGS= HAVE_GENERIC_JIT=0 \
HAVE_VULKAN=0
.if ${ARCH} == amd64
MAKE_ARGS+= WITH_DYNAREC=x86_64
.elif ${ARCH} == i386
MAKE_ARGS+= WITH_DYNAREC=x86
.endif
PLIST_FILES= lib/libretro/flycast_libretro.so
do-install:
${MKDIR} ${STAGEDIR}/${PREFIX}/lib/libretro;
${INSTALL_LIB} ${WRKSRC}/flycast_libretro.so \
${STAGEDIR}/${PREFIX}/lib/libretro/flycast_libretro.so;
.include <bsd.port.post.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1623193824
SHA256 (libretro-flycast-0.20210608-8e4fa54e_GH0.tar.gz) = c11f19e25cf605ca3a2df74d1595c1b21ef8fff52b7fa42fc9bfc7fde611059e
SIZE (libretro-flycast-0.20210608-8e4fa54e_GH0.tar.gz) = 6576666

View File

@ -0,0 +1,33 @@
--- Makefile.orig 2021-05-17 21:23:19 UTC
+++ Makefile
@@ -45,12 +45,8 @@ CC_AS ?= ${CC_PREFIX}as
MFLAGS :=
ASFLAGS :=
-LDFLAGS :=
LDFLAGS_END :=
INCFLAGS :=
-LIBS :=
-CFLAGS :=
-CXXFLAGS :=
GIT_VERSION := " $(shell git rev-parse --short HEAD || echo unknown)"
ifneq ($(GIT_VERSION)," unknown")
@@ -70,7 +66,7 @@ endif
# Target Dynarec
WITH_DYNAREC = $(ARCH)
-ifeq ($(ARCH), $(filter $(ARCH), i386 i686))
+ifeq ($(ARCH), $(filter $(ARCH), i386 i486 i686))
WITH_DYNAREC = x86
endif
@@ -145,7 +141,7 @@ ifneq (,$(findstring unix,$(platform)))
HAVE_CDROM = 1
fpic = -fPIC
- ifeq ($(WITH_DYNAREC), $(filter $(WITH_DYNAREC), x86_64 x64))
+ ifeq ($(WITH_DYNAREC), $(filter $(WITH_DYNAREC), x86_64 x64 amd64))
CFLAGS += -DTARGET_LINUX_x64
SINGLE_PREC_FLAGS=1
HAVE_GENERIC_JIT = 0

View File

@ -0,0 +1,11 @@
--- core/hw/aica/dsp_x64.cpp.orig 2021-05-17 21:23:19 UTC
+++ core/hw/aica/dsp_x64.cpp
@@ -37,6 +37,8 @@ DECL_ALIGN(4096) static u8 CodeBuffer[32 * 1024]
__attribute__((section(".text")));
#elif defined(__MACH__)
__attribute__((section("__TEXT,.text")));
+#elif defined(__FreeBSD__)
+ __attribute__((section(".text")));
#else
#error CodeBuffer code section unknown
#endif

View File

@ -0,0 +1,18 @@
--- core/hw/bba/rtl8139c.h.orig 2021-06-18 06:17:55 UTC
+++ core/hw/bba/rtl8139c.h
@@ -58,6 +58,7 @@ struct MemoryRegion {
/*
* Byte swapping utilities
*/
+/*
static inline uint16_t bswap16(uint16_t x)
{
return (((x & 0x00ff) << 8) |
@@ -71,6 +72,7 @@ static inline uint32_t bswap32(uint32_t x)
((x & 0x00ff0000U) >> 8) |
((x & 0xff000000U) >> 24));
}
+*/
#define glue(a, b) _glue(a, b)
#define _glue(a, b) a ## b

View File

@ -0,0 +1,14 @@
--- core/libretro-common/rthreads/rthreads.c.orig 2021-05-17 21:23:19 UTC
+++ core/libretro-common/rthreads/rthreads.c
@@ -55,10 +55,9 @@
#include <sys/sys_time.h>
#else
#include <pthread.h>
-#include <time.h>
#endif
-#if defined(VITA) || defined(BSD) || defined(ORBIS)
+#if defined(VITA) || defined(__FreeBSD__) || defined(ORBIS)
#include <sys/time.h>
#endif

View File

@ -0,0 +1,6 @@
Standalone port of Flycast to libretro.
Flycast is a multi-platform Sega Dreamcast, Naomi and Atomiswave emulator
derived from Reicast.
WWW: https://git.libretro.com/libretro/flycast

View File

@ -0,0 +1,14 @@
[
{ type: install
message: <<EOM
The libretro core of flycast will not run if run ahead support is enabled.
Please set all lines in ~/.config/retroarch/retroarch.cfg that correspond to
the setting "run_ahead_enabled" to "false", as shown in the example below:
run_ahead_enabled = "false"
To troubleshoot issues, running retroarch with the -v argument may help to
acquire more diagnostic information.
EOM
}
]