diff --git a/lib/mk/meteor_libretro.mk b/lib/mk/meteor_libretro.mk new file mode 100644 index 0000000..6fa7709 --- /dev/null +++ b/lib/mk/meteor_libretro.mk @@ -0,0 +1,18 @@ +LIBS = libretro libc stdcxx + +SHARED_LIB = yes + +PORT_DIR := $(call select_from_ports,meteor-libretro)/src/lib/meteor-libretro + +CORE_DIR := $(PORT_DIR) +-include $(PORT_DIR)/libretro/Makefile.common + +CXX_DEF += -D__LIBRETRO__ -DNDEBUG -DFRONTEND_SUPPORTS_RGB565 + +CC_WARN += -Wno-parentheses + +INC_DIR += $(PORT_DIR)/libretro $(PORT_DIR)/ameteor/include + +SRC_CC := $(notdir $(SOURCES_CXX)) + +vpath %.cpp $(sort $(dir $(SOURCES_CXX))) diff --git a/ports/meteor-libretro.hash b/ports/meteor-libretro.hash new file mode 100644 index 0000000..c55094b --- /dev/null +++ b/ports/meteor-libretro.hash @@ -0,0 +1 @@ +cf72badc0be2c5e20ec45453c5c75dc79bb366fd diff --git a/ports/meteor-libretro.port b/ports/meteor-libretro.port new file mode 100644 index 0000000..884e6ed --- /dev/null +++ b/ports/meteor-libretro.port @@ -0,0 +1,11 @@ +LICENSE := GPL3 +VERSION := dev +DOWNLOADS := meteor-libretro.archive + +OWNER := libretro +REPO := meteor-libretro +REV := 21412cf2d3d727ed513cd4c382e4f52c02ccc947 +URL(meteor-libretro) := https://github.com/$(OWNER)/$(REPO)/archive/$(REV).tar.gz +SHA(meteor-libretro) := dd0812344e399a80273a8e8402d5e2982a8d7d70 + +DIR(meteor-libretro) := src/libretro/meteor diff --git a/run/meteor.run b/run/meteor.run new file mode 100644 index 0000000..d4de3d6 --- /dev/null +++ b/run/meteor.run @@ -0,0 +1,195 @@ +# setting environment variable FORCE_QEMU permits running netperf in qemu +set force_qemu [info exists ::env(FORCE_QEMU)] + +if {[expr [have_include "power_on/qemu"] && !$force_qemu]} { + puts "\Game emulation on Qemu is not recommended.\n" + exit +} + +# +# Check used commands +# +set wget [check_installed wget] +set unzip [check_installed unzip] + +set build_components { + app/retro_frontend + drivers/audio + libretro/meteor + server/fb_upscale + server/input_remap +} + +source ${genode_dir}/repos/base/run/platform_drv.inc +# override default platform driver policy +proc platform_drv_policy {} { + return { + + + + } +} + +build $build_components + +create_boot_directory + +import_from_depot \ + genodelabs/src/[base_src] \ + genodelabs/pkg/[drivers_interactive_pkg] \ + genodelabs/src/init \ + genodelabs/src/report_rom \ + +# +# Generate config +# + +append config { + + + + + + + + + + + + + + + } + +append_if [have_spec sdl] config { + + + + + + + + + + } + +append_platform_drv_config + +append_if [have_spec vesa] config { + + + + + + } + +append_if [have_spec pl11x] config { + + + + } + +append_if [have_spec ps2] config { + + + + + } + +append config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + +install_config $config + +if {![file exists bin/game.gba]} { + puts "" + puts "A Game Boy Advance cartridge image must be provided at 'bin/game.gba'" + puts "" + exit 1 +} + +# generic modules +append boot_modules { + fb_upscale + input_remap + libc.lib.so + libm.lib.so + meteor_libretro.lib.so + retro_frontend + stdcxx.lib.so +} [audio_drv_binary] { + game.gba +} + +append_platform_drv_boot_modules + +build_boot_image $boot_modules + +append qemu_args " -soundhw es1370 " + +run_genode_until forever diff --git a/src/libretro/meteor/target.mk b/src/libretro/meteor/target.mk new file mode 100644 index 0000000..a8f8c50 --- /dev/null +++ b/src/libretro/meteor/target.mk @@ -0,0 +1,5 @@ +TARGET = meteor_libretro-dummy +LIBS = meteor_libretro +SRC_CC = main.cc + +vpath %.cc $(call select_from_repositories,src/test/libports)