diff --git a/emulators/Makefile b/emulators/Makefile index b44c4738624a..574973a982a1 100644 --- a/emulators/Makefile +++ b/emulators/Makefile @@ -1,190 +1,191 @@ COMMENT = Emulators for other operating systems SUBDIR += adamem SUBDIR += almostti SUBDIR += anese SUBDIR += aqemu SUBDIR += aranym SUBDIR += atari800 SUBDIR += bfe SUBDIR += bochs SUBDIR += bsvc SUBDIR += cannonball SUBDIR += catapult SUBDIR += cemu SUBDIR += cingb SUBDIR += citra SUBDIR += citra-qt5 SUBDIR += cpmemu SUBDIR += cpmtools SUBDIR += cpmtools2 SUBDIR += darcnes SUBDIR += dgen-sdl SUBDIR += dolphin-emu SUBDIR += dosbox SUBDIR += dosbox-staging SUBDIR += dosbox-x SUBDIR += dps8m SUBDIR += dynamips-community SUBDIR += edumips64 SUBDIR += elliott-803 SUBDIR += emu64 SUBDIR += emulationstation SUBDIR += fceux SUBDIR += fmsx SUBDIR += frodo SUBDIR += fs-uae SUBDIR += fs-uae-launcher SUBDIR += fuse SUBDIR += fuse-roms SUBDIR += fuse-utils SUBDIR += gbe SUBDIR += gens SUBDIR += gngb SUBDIR += gngeo SUBDIR += gxemul SUBDIR += hatari SUBDIR += hercules SUBDIR += higan SUBDIR += hugo SUBDIR += hv_kvp_cmd SUBDIR += ines SUBDIR += javatari SUBDIR += joytran SUBDIR += jzintv SUBDIR += kcemu SUBDIR += klh10 SUBDIR += lib765 SUBDIR += libc6-shim SUBDIR += libdsk + SUBDIR += libretro-flycast SUBDIR += libretro-mame SUBDIR += libretro-ppsspp SUBDIR += libretro-reicast SUBDIR += libretro-vice SUBDIR += libspectrum SUBDIR += linux-c7 SUBDIR += linux-power10-functional-sim SUBDIR += linux-power9-functional-sim SUBDIR += linux_base-c7 SUBDIR += lisaem SUBDIR += magia SUBDIR += mame SUBDIR += mastergear SUBDIR += mednafen SUBDIR += mesen SUBDIR += mess SUBDIR += mgba SUBDIR += mtools SUBDIR += mupen64plus SUBDIR += mupen64plus-audio-sdl SUBDIR += mupen64plus-core SUBDIR += mupen64plus-input-sdl SUBDIR += mupen64plus-plugins SUBDIR += mupen64plus-qt SUBDIR += mupen64plus-rsp-cxd4 SUBDIR += mupen64plus-rsp-hle SUBDIR += mupen64plus-rsp-z64 SUBDIR += mupen64plus-ui-console SUBDIR += mupen64plus-video-arachnoid SUBDIR += mupen64plus-video-glide64 SUBDIR += mupen64plus-video-glide64mk2 SUBDIR += mupen64plus-video-rice SUBDIR += mupen64plus-video-z64 SUBDIR += nemu SUBDIR += nestopia SUBDIR += o2em SUBDIR += ods2reader SUBDIR += open-vm-tools SUBDIR += openmsx SUBDIR += p5-Acme-6502 SUBDIR += parallels-tools SUBDIR += pcem SUBDIR += pcemu SUBDIR += pcsxr SUBDIR += ppsspp SUBDIR += ppsspp-qt5 SUBDIR += py-gns3-converter SUBDIR += py-unicorn SUBDIR += qemu SUBDIR += qemu-cheri SUBDIR += qemu-devel SUBDIR += qemu-guest-agent SUBDIR += qemu-powernv SUBDIR += qemu-user-static SUBDIR += qemu-user-static-devel SUBDIR += qemu5 SUBDIR += qemu6 SUBDIR += qmc2 SUBDIR += quasi88 SUBDIR += reicast SUBDIR += ripes SUBDIR += riscv-isa-sim SUBDIR += rpcs3 SUBDIR += rtc SUBDIR += rubygem-fission SUBDIR += sameboy SUBDIR += simh SUBDIR += simh-hp2100 SUBDIR += simh-hp3000 SUBDIR += simh-hpdoc SUBDIR += skyeye SUBDIR += snes9x-gtk SUBDIR += spim SUBDIR += stella SUBDIR += stonx SUBDIR += teo SUBDIR += tiemu3 SUBDIR += tilem SUBDIR += tme SUBDIR += tnylpo SUBDIR += tpm-emulator SUBDIR += tuxnes SUBDIR += uae SUBDIR += ucon64 SUBDIR += ukncbtl SUBDIR += unicorn SUBDIR += vba SUBDIR += vboxtool SUBDIR += vgb-bin SUBDIR += vgba-bin SUBDIR += vice SUBDIR += virtualbox-ose SUBDIR += virtualbox-ose-additions SUBDIR += virtualbox-ose-additions-legacy SUBDIR += virtualbox-ose-additions-nox11 SUBDIR += virtualbox-ose-additions-nox11-legacy SUBDIR += virtualbox-ose-kmod SUBDIR += virtualbox-ose-kmod-legacy SUBDIR += virtualbox-ose-legacy SUBDIR += virtualbox-ose-nox11 SUBDIR += virtualbox-ose-nox11-legacy SUBDIR += visualboyadvance-m SUBDIR += vmips SUBDIR += vmsbackup SUBDIR += vmw SUBDIR += vt100 SUBDIR += vxtools SUBDIR += wine SUBDIR += wine-devel SUBDIR += wine-gecko SUBDIR += wine-gecko-devel SUBDIR += wine-mono SUBDIR += wine-mono-devel SUBDIR += wine-proton SUBDIR += winetricks SUBDIR += x16-emulator SUBDIR += x16-rom SUBDIR += x48 SUBDIR += x49gp SUBDIR += xbraitenberg SUBDIR += xcpc SUBDIR += xen-kernel SUBDIR += xhomer SUBDIR += xsystem35 SUBDIR += xzx SUBDIR += yaze-ag SUBDIR += yuzu SUBDIR += z80pack SUBDIR += zsnes .include diff --git a/emulators/libretro-flycast/Makefile b/emulators/libretro-flycast/Makefile new file mode 100644 index 000000000000..fe5e75d0f23f --- /dev/null +++ b/emulators/libretro-flycast/Makefile @@ -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 + +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 diff --git a/emulators/libretro-flycast/distinfo b/emulators/libretro-flycast/distinfo new file mode 100644 index 000000000000..eab0e7f1dc9c --- /dev/null +++ b/emulators/libretro-flycast/distinfo @@ -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 diff --git a/emulators/libretro-flycast/files/patch-Makefile b/emulators/libretro-flycast/files/patch-Makefile new file mode 100644 index 000000000000..a0ba13f9b085 --- /dev/null +++ b/emulators/libretro-flycast/files/patch-Makefile @@ -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 diff --git a/emulators/libretro-flycast/files/patch-core_hw_aica_dsp__x64.cpp b/emulators/libretro-flycast/files/patch-core_hw_aica_dsp__x64.cpp new file mode 100644 index 000000000000..e49c4888bf1d --- /dev/null +++ b/emulators/libretro-flycast/files/patch-core_hw_aica_dsp__x64.cpp @@ -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 diff --git a/emulators/libretro-flycast/files/patch-core_hw_bba_rtl8139c.h b/emulators/libretro-flycast/files/patch-core_hw_bba_rtl8139c.h new file mode 100644 index 000000000000..9f929eddba9b --- /dev/null +++ b/emulators/libretro-flycast/files/patch-core_hw_bba_rtl8139c.h @@ -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 + diff --git a/emulators/libretro-flycast/files/patch-core_libretro-common_rthreads_rthreads.c b/emulators/libretro-flycast/files/patch-core_libretro-common_rthreads_rthreads.c new file mode 100644 index 000000000000..82c1108625e7 --- /dev/null +++ b/emulators/libretro-flycast/files/patch-core_libretro-common_rthreads_rthreads.c @@ -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 + #else + #include +-#include + #endif + +-#if defined(VITA) || defined(BSD) || defined(ORBIS) ++#if defined(VITA) || defined(__FreeBSD__) || defined(ORBIS) + #include + #endif + diff --git a/emulators/libretro-flycast/pkg-descr b/emulators/libretro-flycast/pkg-descr new file mode 100644 index 000000000000..af0f3cff8768 --- /dev/null +++ b/emulators/libretro-flycast/pkg-descr @@ -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 diff --git a/emulators/libretro-flycast/pkg-message b/emulators/libretro-flycast/pkg-message new file mode 100644 index 000000000000..4faa5801ca78 --- /dev/null +++ b/emulators/libretro-flycast/pkg-message @@ -0,0 +1,14 @@ +[ +{ type: install + message: <