diff --git a/Config.in b/Config.in index 76b15027c6ef64b530409b20450122fd77002c33..20f5d626c1830938254513f7d16b9f5c527750b3 100644 --- a/Config.in +++ b/Config.in @@ -106,6 +106,7 @@ menu "Libretro Cores" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-crocods/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-desmume/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dinothawr/Config.in" + source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-dosbox-core/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-ecwolf/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-fbneo/Config.in" source "$BR2_EXTERNAL_RECALBOX_PATH/package/libretro-fceumm/Config.in" diff --git a/Dockerfile b/Dockerfile index 35da55e0baece655e305b77a73bcc78bcbe06045..c3e63c0b9e7b123a643d9ae31977a4819962e024 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ apt-get -y install build-essential git libncurses5-dev qt5-default qttools5-dev- mercurial libdbus-glib-1-dev texinfo zip openssh-client libxml2-utils libpng-dev \ software-properties-common wget cpio bc locales rsync imagemagick bison flex bsdmainutils \ nano vim automake autopoint mtools dosfstools subversion openjdk-8-jdk libssl-dev libelf-dev \ -graphviz python-matplotlib python-numpy python-six re2c libc6-dev-i386 libtool && \ +graphviz python-matplotlib python-numpy python-six re2c libc6-dev-i386 libtool cmake meson && \ rm -rf /var/lib/apt/lists/* # Set the locale needed by toolchain diff --git a/configs/recalbox-odroidxu4_defconfig b/configs/recalbox-odroidxu4_defconfig index 0f00671a95a96c9839c82af06effeb7947adbc1a..e3db84d813073b4d6b32aae4339f8c7cdd5ead5b 100644 --- a/configs/recalbox-odroidxu4_defconfig +++ b/configs/recalbox-odroidxu4_defconfig @@ -239,6 +239,7 @@ BR2_PACKAGE_LIBRETRO_CAP32=y BR2_PACKAGE_LIBRETRO_CRAWL=y BR2_PACKAGE_LIBRETRO_CROCODS=y BR2_PACKAGE_LIBRETRO_DINOTHAWR=y +BR2_PACKAGE_LIBRETRO_DOSBOX_CORE=y BR2_PACKAGE_LIBRETRO_ECWOLF=y BR2_PACKAGE_LIBRETRO_FBNEO=y BR2_PACKAGE_LIBRETRO_FCEUMM=y diff --git a/configs/recalbox-rpi1_defconfig b/configs/recalbox-rpi1_defconfig index e5a5e5d158d98f66059e53491377f27be5d1ecc1..5f592829ae77e64b0324b0221ebb34ec5ad714b3 100644 --- a/configs/recalbox-rpi1_defconfig +++ b/configs/recalbox-rpi1_defconfig @@ -231,6 +231,7 @@ BR2_PACKAGE_LIBRETRO_CAP32=y BR2_PACKAGE_LIBRETRO_CRAWL=y BR2_PACKAGE_LIBRETRO_CROCODS=y BR2_PACKAGE_LIBRETRO_DINOTHAWR=y +BR2_PACKAGE_LIBRETRO_DOSBOX_CORE=y BR2_PACKAGE_LIBRETRO_ECWOLF=y BR2_PACKAGE_LIBRETRO_FBNEO=y BR2_PACKAGE_LIBRETRO_FCEUMM=y diff --git a/configs/recalbox-rpi2_defconfig b/configs/recalbox-rpi2_defconfig index de714c7356cceec764c06e7678e2a4d467fe1ea3..a4b6c1c85e09ca2d79abba26ff83c959187faa3b 100644 --- a/configs/recalbox-rpi2_defconfig +++ b/configs/recalbox-rpi2_defconfig @@ -244,6 +244,7 @@ BR2_PACKAGE_LIBRETRO_CAP32=y BR2_PACKAGE_LIBRETRO_CRAWL=y BR2_PACKAGE_LIBRETRO_CROCODS=y BR2_PACKAGE_LIBRETRO_DINOTHAWR=y +BR2_PACKAGE_LIBRETRO_DOSBOX_CORE=y BR2_PACKAGE_LIBRETRO_ECWOLF=y BR2_PACKAGE_LIBRETRO_FBNEO=y BR2_PACKAGE_LIBRETRO_FCEUMM=y diff --git a/configs/recalbox-rpi3_defconfig b/configs/recalbox-rpi3_defconfig index 0e9a9cc6fcd34723974809f86668dffb5037c81e..4975aca701b30cfce24c071a59576fb89fd1b76c 100644 --- a/configs/recalbox-rpi3_defconfig +++ b/configs/recalbox-rpi3_defconfig @@ -246,6 +246,7 @@ BR2_PACKAGE_LIBRETRO_CAP32=y BR2_PACKAGE_LIBRETRO_CRAWL=y BR2_PACKAGE_LIBRETRO_CROCODS=y BR2_PACKAGE_LIBRETRO_DINOTHAWR=y +BR2_PACKAGE_LIBRETRO_DOSBOX_CORE=y BR2_PACKAGE_LIBRETRO_ECWOLF=y BR2_PACKAGE_LIBRETRO_FBNEO=y BR2_PACKAGE_LIBRETRO_FCEUMM=y diff --git a/configs/recalbox-x86_64_defconfig b/configs/recalbox-x86_64_defconfig index e31ef89c7b20e1194e20d0dcef1906b9a40d13f5..fe199e8ca6e34219a987e68f6ea07e14932b3c0b 100644 --- a/configs/recalbox-x86_64_defconfig +++ b/configs/recalbox-x86_64_defconfig @@ -376,6 +376,7 @@ BR2_PACKAGE_LIBRETRO_CRAWL=y BR2_PACKAGE_LIBRETRO_CROCODS=y BR2_PACKAGE_LIBRETRO_DESMUME=y BR2_PACKAGE_LIBRETRO_DINOTHAWR=y +BR2_PACKAGE_LIBRETRO_DOSBOX_CORE=y BR2_PACKAGE_LIBRETRO_ECWOLF=y BR2_PACKAGE_LIBRETRO_FBNEO=y BR2_PACKAGE_LIBRETRO_FCEUMM=y diff --git a/configs/recalbox-x86_defconfig b/configs/recalbox-x86_defconfig index c9d7cd5cd16df461e4d66e8f22a175ef8bd409a8..1d9870bf4a5855c696eb42549bd290e272475a61 100644 --- a/configs/recalbox-x86_defconfig +++ b/configs/recalbox-x86_defconfig @@ -358,6 +358,7 @@ BR2_PACKAGE_LIBRETRO_CRAWL=y BR2_PACKAGE_LIBRETRO_CROCODS=y BR2_PACKAGE_LIBRETRO_DESMUME=y BR2_PACKAGE_LIBRETRO_DINOTHAWR=y +BR2_PACKAGE_LIBRETRO_DOSBOX_CORE=y BR2_PACKAGE_LIBRETRO_ECWOLF=y BR2_PACKAGE_LIBRETRO_FBNEO=y BR2_PACKAGE_LIBRETRO_FCEUMM=y diff --git a/package/libretro-dosbox-core/Config.in b/package/libretro-dosbox-core/Config.in new file mode 100644 index 0000000000000000000000000000000000000000..54ec896eabc6f339b178a847f6e68a6959ec3b94 --- /dev/null +++ b/package/libretro-dosbox-core/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBRETRO_DOSBOX_CORE + bool "libretro-dosbox-core" + depends on BR2_PACKAGE_RETROARCH + depends on BR2_INSTALL_LIBSTDCPP + select BR2_PACKAGE_RECALBOX_ROMFS_DOS + help + A libretro dosbox-core emulator. + + http://www.libretro.com + +comment "LIBRETRO_DOSBOX_CORE needs a toolchain w/ C++" + depends on !BR2_INSTALL_LIBSTDCPP diff --git a/package/libretro-dosbox-core/libretro-dosbox-core.mk b/package/libretro-dosbox-core/libretro-dosbox-core.mk new file mode 100644 index 0000000000000000000000000000000000000000..9715b0904a3a322d6f879af9228b808f09780649 --- /dev/null +++ b/package/libretro-dosbox-core/libretro-dosbox-core.mk @@ -0,0 +1,42 @@ +################################################################################ +# +# DOSBOX_CORE +# +################################################################################ + +LIBRETRO_DOSBOX_CORE_VERSION = 1d6c84533d0541d22f5485f4dc45f0ba9b2eed14 +LIBRETRO_DOSBOX_CORE_SITE = git://github.com/libretro/dosbox-core.git +LIBRETRO_DOSBOX_CORE_DEPENDENCIES = sdl sdl_net +LIBRETRO_DOSBOX_CORE_SITE_METHOD = git +LIBRETRO_DOSBOX_CORE_GIT_SUBMODULES = YES + +#LIBRETRO_DOSBOX_CORE_OPTIONS += BUNDLED_SDL=1 + +ifeq ($(BR2_arm),y) +LIBRETRO_DOSBOX_CORE_DYNAREC=arm +endif + +ifeq ($(BR2_i386),y) +LIBRETRO_DOSBOX_CORE_DYNAREC=x86 +endif + +ifeq ($(BR2_x86_64),y) +LIBRETRO_DOSBOX_CORE_DYNAREC=x86_64 +endif + +define LIBRETRO_DOSBOX_CORE_BUILD_CMDS + $(SED) "s|-O2|-O3|g" $(@D)/libretro/Makefile.libretro + CFLAGS="$(TARGET_CFLAGS) $(COMPILER_COMMONS_CFLAGS_SO)" \ + CXXFLAGS="$(TARGET_CXXFLAGS) $(COMPILER_COMMONS_CXXFLAGS_SO)" \ + LDFLAGS="$(TARGET_LDFLAGS) $(COMPILER_COMMONS_LDFLAGS_SO)" \ + PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig/" \ + $(MAKE) CXX="$(TARGET_CXX)" CC="$(TARGET_CC)" -C $(@D)/libretro -f Makefile.libretro platform="$(RETROARCH_LIBRETRO_BOARD)" $(LIBRETRO_DOSBOX_CORE_OPTIONS) \ + WITH_DYNAREC=$(LIBRETRO_DOSBOX_CORE_DYNAREC) +endef + +define LIBRETRO_DOSBOX_CORE_INSTALL_TARGET_CMDS + $(INSTALL) -D $(@D)/libretro/dosbox_core_libretro.so \ + $(TARGET_DIR)/usr/bin/dosbox_core_libretro.so +endef + +$(eval $(generic-package)) diff --git a/package/recalbox-romfs/recalbox-romfs-dos/Config.in b/package/recalbox-romfs/recalbox-romfs-dos/Config.in index 384856af17a518a0ad339f9f38ce9ab743931df4..7116424dd98f53a4db343ce3319521cb8a9017ec 100644 --- a/package/recalbox-romfs/recalbox-romfs-dos/Config.in +++ b/package/recalbox-romfs/recalbox-romfs-dos/Config.in @@ -1,6 +1,7 @@ config BR2_PACKAGE_RECALBOX_ROMFS_DOS bool "recalbox-romfs-dos" select BR2_PACKAGE_RECALBOX_ROMS - depends on BR2_PACKAGE_DOSBOX + depends on BR2_PACKAGE_DOSBOX \ + || BR2_PACKAGE_LIBRETRO_DOSBOX_CORE help share_init/roms and xml for dos diff --git a/package/recalbox-romfs/recalbox-romfs-dos/recalbox-romfs-dos.mk b/package/recalbox-romfs/recalbox-romfs-dos/recalbox-romfs-dos.mk index cb52e7df1f21b658d507f22cd4a9e2faf56d2c0e..7a8444f2d54a91ee8e7ac88eb2bbd839ae182296 100644 --- a/package/recalbox-romfs/recalbox-romfs-dos/recalbox-romfs-dos.mk +++ b/package/recalbox-romfs/recalbox-romfs-dos/recalbox-romfs-dos.mk @@ -5,7 +5,7 @@ ################################################################################ # Package generated with : -# ./scripts/linux/empack.py --force --system dos --extension '.pc .PC .dos .DOS' --fullname 'Dos (x86)' --platform pc --theme pc 1:dosbox:dosbox:BR2_PACKAGE_DOSBOX +# ./scripts/linux/empack.py --force --system dos --extension '.pc .dos .cue .conf' --fullname 'Dos (x86)' --platform pc --theme pc 1:dosbox:dosbox:BR2_PACKAGE_DOSBOX 2:libretro:dosbox_core:BR2_PACKAGE_LIBRETRO_DOSBOX_CORE # Name the 3 vars as the package requires RECALBOX_ROMFS_DOS_SOURCE = @@ -21,12 +21,27 @@ SOURCE_ROMDIR_DOS = $(RECALBOX_ROMFS_DOS_PKGDIR)/roms # variables are global across buildroot -ifneq ($(BR2_PACKAGE_DOSBOX),) +ifneq ($(BR2_PACKAGE_DOSBOX)$(BR2_PACKAGE_LIBRETRO_DOSBOX_CORE),) define CONFIGURE_MAIN_DOS_START - $(call RECALBOX_ROMFS_CALL_ADD_SYSTEM,$(SYSTEM_XML_DOS),Dos (x86),$(SYSTEM_NAME_DOS),.pc .PC .dos .DOS,pc,pc) + $(call RECALBOX_ROMFS_CALL_ADD_SYSTEM,$(SYSTEM_XML_DOS),Dos (x86),$(SYSTEM_NAME_DOS),.pc .dos .cue .conf,pc,pc) endef -ifneq ($(BR2_PACKAGE_DOSBOX),) +ifneq ($(BR2_PACKAGE_DOSBOX)$(BR2_PACKAGE_LIBRETRO_DOSBOX_CORE),) +define CONFIGURE_DOS_LIBRETRO_START + $(call RECALBOX_ROMFS_CALL_START_EMULATOR,$(SYSTEM_XML_DOS),libretro) +endef +ifeq ($(BR2_PACKAGE_LIBRETRO_DOSBOX_CORE),y) +define CONFIGURE_DOS_LIBRETRO_DOSBOX_CORE_DEF + $(call RECALBOX_ROMFS_CALL_ADD_CORE,$(SYSTEM_XML_DOS),dosbox_core,2) +endef +endif + +define CONFIGURE_DOS_LIBRETRO_END + $(call RECALBOX_ROMFS_CALL_END_EMULATOR,$(SYSTEM_XML_DOS)) +endef +endif + +ifneq ($(BR2_PACKAGE_DOSBOX)$(BR2_PACKAGE_LIBRETRO_DOSBOX_CORE),) define CONFIGURE_DOS_DOSBOX_START $(call RECALBOX_ROMFS_CALL_START_EMULATOR,$(SYSTEM_XML_DOS),dosbox) endef @@ -50,6 +65,9 @@ endif define RECALBOX_ROMFS_DOS_CONFIGURE_CMDS $(CONFIGURE_MAIN_DOS_START) + $(CONFIGURE_DOS_LIBRETRO_START) + $(CONFIGURE_DOS_LIBRETRO_DOSBOX_CORE_DEF) + $(CONFIGURE_DOS_LIBRETRO_END) $(CONFIGURE_DOS_DOSBOX_START) $(CONFIGURE_DOS_DOSBOX_DOSBOX_DEF) $(CONFIGURE_DOS_DOSBOX_END) diff --git a/package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk b/package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk index ae589491ac1641ac1444abfd8b31d50cce10b971..f1b6f94c36313ae6c3f960cdbd0414b7feb06a65 100644 --- a/package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk +++ b/package/recalbox-romfs/recalbox-romfs/recalbox-romfs.mk @@ -295,8 +295,8 @@ ifneq ($(BR2_PACKAGE_LIBRETRO_BOOM3),) endif # System: dos -ifeq ($(BR2_PACKAGE_DOSBOX),y) - RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-dos +ifneq ($(BR2_PACKAGE_DOSBOX)$(BR2_PACKAGE_LIBRETRO_DOSBOX_CORE),) + RECALBOX_ROMFS_DEPENDENCIES += recalbox-romfs-dos endif # System: dreamcast diff --git a/scripts/linux/checkPackages.sh b/scripts/linux/checkPackages.sh index caa66a87c0c75c333666d7ed607760d964d342d8..f61c16ffb80a5159d402c5fe03e76141e0cdffd6 100755 --- a/scripts/linux/checkPackages.sh +++ b/scripts/linux/checkPackages.sh @@ -5,7 +5,133 @@ [[ -z $RECALBOX_DIR ]] && RECALBOX_DIR=. # EMULATORS is compared to each package's repo -EMULATORS="advancemame amiberry citra dolphin-emu dosbox gsplus hypseus libretro-81 libretro-2048 libretro-atari800 libretro-beetle-lynx libretro-beetle-ngp libretro-beetle-pce-fast libretro-beetle-pcfx libretro-beetle-psx libretro-beetle-psx-hw libretro-beetle-saturn libretro-beetle-supergrafx libretro-beetle-vb libretro-beetle-wswan libretro-bluemsx libretro-boom3 libretro-cap32 libretro-crawl libretro-cheats libretro-citra libretro-crocods libretro-desmume libretro-dinothawr libretro-ecwolf libretro-fbneo libretro-fceumm libretro-fceunext libretro-flycast libretro-fmsx libretro-freechaf libretro-freeintv libretro-fuse libretro-gambatte libretro-gearsystem libretro-genesisplusgx libretro-gpsp libretro-gw libretro-handy libretro-hatari libretro-imageviewer libretro-kronos libretro-lutro libretro-mame2000 libretro-mame2003 libretro-mame2003-plus libretro-mame2010 libretro-mame2015 libretro-mame2016 libretro-melonds libretro-meteor libretro-mgba libretro-minivmac libretro-mrboom libretro-mu libretro-mupen64plus libretro-mupen64plus-nx libretro-nestopia libretro-np2kai libretro-nxengine libretro-o2em libretro-opera libretro-parallel-n64 libretro-pcsx_rearmed libretro-picodrive libretro-pokemini libretro-prboom libretro-prosystem libretro-px68k libretro-quasi88 libretro-quicknes libretro-race libretro-reminiscence libretro-sameboy libretro-scummvm libretro-snes9x libretro-snes9x2002 libretro-snes9x2005 libretro-snes9x2010 libretro-stella libretro-stella2014 libretro-tgbdual libretro-theodore libretro-tic80 libretro-tyrquake libretro-uae libretro-uzem libretro-vecx libretro-vice libretro-virtualjaguar libretro-vitaquake2 libretro-vitaquake3 libretro-vitavoyager libretro-xmil libretro-xrick libretro-yabasanshiro libretro-yabause linapple-pie moonlight-embedded mupen64plus-audio-sdl mupen64plus-core mupen64plus-gles2n64 mupen64plus-gles2rice mupen64plus-gliden64 mupen64plus-input-sdl mupen64plus-omx mupen64plus-rsphle mupen64plus-uiconsole mupen64plus-video-glide64mk2 mupen64plus-video-rice openbor oricutron pifba ppsspp reicast residualvm retroarch scummvm simcoupe solarus-recalbox vice" +EMULATORS="advancemame +amiberry +citra +dolphin-emu +dosbox +gsplus +hypseus +libretro-81 +libretro-2048 +libretro-atari800 +libretro-beetle-lynx +libretro-beetle-ngp +libretro-beetle-pce-fast +libretro-beetle-pcfx +libretro-beetle-psx +libretro-beetle-psx-hw +libretro-beetle-saturn +libretro-beetle-supergrafx +libretro-beetle-vb +libretro-beetle-wswan +libretro-bluemsx +libretro-boom3 +libretro-cap32 +libretro-cheats +libretro-citra +libretro-crawl +libretro-crocods +libretro-desmume +libretro-dinothawr +libretro-dosbox-core +libretro-ecwolf +libretro-fbneo +libretro-fceumm +libretro-fceunext +libretro-flycast +libretro-fmsx +libretro-freechaf +libretro-freeintv +libretro-fuse +libretro-gambatte +libretro-gearsystem +libretro-genesisplusgx +libretro-gpsp +libretro-gw +libretro-handy +libretro-hatari +libretro-imageviewer +libretro-kronos +libretro-lutro +libretro-mame2000 +libretro-mame2003 +libretro-mame2003-plus +libretro-mame2010 +libretro-mame2015 +libretro-mame2016 +libretro-melonds +libretro-meteor +libretro-mgba +libretro-minivmac +libretro-mrboom +libretro-mu +libretro-mupen64plus +libretro-mupen64plus-nx +libretro-nestopia +libretro-np2kai +libretro-nxengine +libretro-o2em +libretro-opera +libretro-parallel-n64 +libretro-pcsx_rearmed +libretro-picodrive +libretro-pokemini +libretro-prboom +libretro-prosystem +libretro-px68k +libretro-quasi88 +libretro-quicknes +libretro-race +libretro-reminiscence +libretro-sameboy +libretro-scummvm +libretro-snes9x +libretro-snes9x2002 +libretro-snes9x2005 +libretro-snes9x2010 +libretro-stella +libretro-stella2014 +libretro-tgbdual +libretro-theodore +libretro-tic80 +libretro-tyrquake +libretro-uae +libretro-uzem +libretro-vecx +libretro-vice +libretro-virtualjaguar +libretro-vitaquake2 +libretro-vitaquake3 +libretro-vitavoyager +libretro-xmil +libretro-xrick +libretro-yabasanshiro +libretro-yabause +linapple-pie +moonlight-embedded +mupen64plus-audio-sdl +mupen64plus-core +mupen64plus-gles2n64 +mupen64plus-gles2rice +mupen64plus-gliden64 +mupen64plus-input-sdl +mupen64plus-omx +mupen64plus-rsphle +mupen64plus-uiconsole +mupen64plus-video-glide64mk2 +mupen64plus-video-rice +openbor +oricutron +pifba +ppsspp +reicast +residualvm +retroarch +scummvm +simcoupe +solarus-recalbox +vice" # PACKAGES is compared to each package's repo PACKAGES="rpi-firmware rpi-userland odroid-scripts odroid-mali"