This commit is contained in:
Ehmry - 2019-08-01 00:35:22 +02:00
parent 15423b19e1
commit 028d666d23
35 changed files with 130 additions and 307 deletions

1
.gitignore vendored
View File

@ -4,5 +4,4 @@
##### Do not edit.
.tup
/.gitignore
/out
/public

View File

@ -81,6 +81,10 @@ RAW_DIR = $(OUT_RAW_DIR)/$(RAW_NAME)/$(DEPOT_VERSION)
$(TOOL_CHAIN_PREFIX)strip -o %o %f \
|> $(OUT_BIN_DIR)/$(BIN_NAME)/%b $(OUTPUTS_OUT)/<bin>
!collect_raw = |> ^ COLLECT %b^ \
cp %f %o \
|> $(OUT_RAW_DIR)/$(RAW_NAME)/%b $(OUTPUTS_OUT)/<raw>
CC = $(TOOL_CHAIN_PREFIX)gcc
CXX = $(TOOL_CHAIN_PREFIX)g++
LD= $(TOOL_CHAIN_PREFIX)ld
@ -124,7 +128,7 @@ DHALL = dhall
!index_pkg = |> |>
!render_runtime = | $(VERSIONS_SED_FILE) |> ^o render %d runtime^ \
$(DHALL) text <<< '$(ERRATA_DIR)/renderRuntime.dhall (%f).runtime' \
$(DHALL) --explain text <<< '$(ERRATA_DIR)/renderRuntime.dhall (%f).runtime' \
> $(OUT_PKG_DIR)/$(PKG_NAME)/current/runtime; \
xmllint --noout -schema $(ERRATA_DIR)/runtime.xsd - \
< $(OUT_PKG_DIR)/$(PKG_NAME)/current/runtime; \

View File

@ -16,8 +16,8 @@ in { indexInfo =
"Threes! clone"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 4
⫽ { resources =
{ caps = 128, ram = Genode.units.MiB 4 }
, requires =
List/map Text Service service [ "file_system", "nitpicker" ]
, config =

View File

@ -21,4 +21,7 @@ DEFINES += $(FLAGS)
: {core} |> !collect_bin |>
: |> !bin |>
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>
: $(TUP_CWD)/pkg.dhall |> !index_pkg |>

View File

@ -1,43 +0,0 @@
<runtime ram="16M" caps="128" binary="retro_frontend">
<requires>
<audio_out/>
<file_system/>
<nitpicker/>
<rm/>
</requires>
<content>
<rom label="libc.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libretro.so"/>
<rom label="retro_frontend"/>
<rom label="vfs.lib.so"/>
</content>
<config>
<libc stdout="/dev/log" stderr="/dev/log"/>
<game/>
<vfs>
<fs/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
<default-controller port="0" device="1">
<map from="KEY_LEFT" to="LEFT"/>
<map from="KEY_RIGHT" to="RIGHT"/>
<map from="KEY_UP" to="UP"/>
<map from="KEY_DOWN" to="DOWN"/>
<map from="KEY_X" to="A"/>
<map from="KEY_Z" to="B"/>
<map from="KEY_S" to="X"/>
<map from="KEY_A" to="Y"/>
<map from="KEY_Q" to="L"/>
<map from="KEY_W" to="R"/>
<map from="KEY_ENTER" to="START"/>
<map from="KEY_RIGHTSHIFT" to="SELECT"/>
</default-controller>
</config>
</runtime>

View File

@ -5,31 +5,28 @@ PKG_DEPENDS += \
_/src/$(BIN_NAME) \
_/src/retro_frontend \
!libretro_cc = |> ^ CC %f^ \
!libretro_cc = | $(GENODE_DIR)/<pkg-config> |> ^ CC %f^ \
$(CC) \
$(DEFINES) \
`$(PKG_CONFIG) --cflags $(CORE_PKGS)` \
$(CFLAGS) $(INCFLAGS) \
`$(PKG_CONFIG) --cflags genode-lib` \
-c %f -o %o \
|> %f.$(TARGET_NAME).o
!libretro_cxx = |> ^ CXX %f^ \
!libretro_cxx = | $(GENODE_DIR)/<pkg-config> |> ^ CXX %f^ \
$(CXX) \
$(DEFINES) \
`$(PKG_CONFIG) --cflags $(CORE_PKGS)` \
$(CXXFLAGS) $(INCFLAGS) \
`$(PKG_CONFIG) --cflags genode-lib` \
-c %f -o %o \
|> %f.$(TARGET_NAME).o
!libretro_core_link = | $(GENODE_DIR)/<stub> |> ^o LD %d^ \
!libretro_core_link = | $(GENODE_DIR)/<pkg-config> $(GENODE_DIR)/<stub> |> ^o LD %d^ \
$(LD) %f -o %o \
-shared --version-script=$(LINK_T) $(NO_UNDEFINED) \
$(LDFLAGS) \
`$(PKG_CONFIG) --libs $(CORE_PKGS)` \
`$(PKG_CONFIG) --libs genode-lib` \
-L$(STUB_DIR) \
|> libretro.so
LINK_T = $(TUP_CWD)/link.T

View File

@ -47,5 +47,5 @@ PKG_DEPENDS += \
@(PUBLIC_SRC_STDCXX) \
_/raw/bluemsx \
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>

View File

@ -27,5 +27,5 @@ DEFINES += -DHAVE_MMAP
PKG_DEPENDS += \
@(PUBLIC_SRC_STDCXX) \
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>

View File

@ -41,5 +41,5 @@ SOURCES_CXX += $(LIBRETRO_COMM_DIR)/libco/genode.cpp
PKG_DEPENDS += \
@(PUBLIC_SRC_STDCXX) \
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>

View File

@ -2,8 +2,9 @@ let Genode = env:DHALL_GENODE
let defaults = ./../../pkgJoypadDefaults.dhall
in { indexInfo =
in defaults // { indexInfo =
"NES emulator"
, runtime =
defaults.runtime ⫽ { ram = Genode.units.MiB 16 }
defaults.runtime
⫽ { resources = { caps = 128, ram = Genode.units.MiB 16 } }
}

View File

@ -4,8 +4,7 @@ NO_UNDEFINED =
LIBRETRO_COMM_DIR =
DEFINES += -O2 -DNDEBUG
DEFINES += -DHAVE_STDINT_H
DEFINES += -D__LIBRETRO__ -DHAVE_STDINT_H -DHAVE_INTTYPES_H
DEFINES += -DHAVE_STDINT_H -DHAVE_INTTYPES_H
DEFINES += -DINLINE=inline -DVIDEO_RGB565
include upstream/Makefile.common

View File

@ -6,8 +6,8 @@ in { indexInfo =
"Game Boy Emulator"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 8
⫽ { resources =
{ caps = 128, ram = Genode.units.MiB 8 }
, roms =
defaults.runtime.roms # [ "stdcxx.lib.so" ]
}

View File

@ -10,8 +10,8 @@ in { indexInfo =
"Game Boy Advance Emulator"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 64
⫽ { resources =
{ caps = 128, ram = Genode.units.MiB 64 }
, roms =
defaults.runtime.roms # [ "stdcxx.lib.so" ]
, config =

View File

@ -24,5 +24,5 @@ include upstream/Makefile.common
PKG_DEPENDS += \
@(PUBLIC_SRC_STDCXX) \
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>

View File

@ -20,7 +20,7 @@ CFLAGS += -fomit-frame-pointer
: {libretro_objs} |> !libretro_core_link |> {core}
: {core} |> !collect_bin |>
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !bin |>
: |> !pkg |>

View File

@ -16,5 +16,5 @@ include upstream/Libretro/Makefile.common
PKG_DEPENDS += \
_/raw/oberon \
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>

View File

@ -3,13 +3,13 @@ NO_UNDEFINED =
include upstream/libretro/Makefile.common
CODE_DEFINES = -fomit-frame-pointer -fno-exceptions -fno-rtti -pedantic
CODE_DEFINES = -fomit-frame-pointer -fno-exceptions -fno-rtti -pedantic
WARNINGS_DEFINES = -Wall -W -Wno-unused-parameter
CFLAGS += -O2 -DNDEBUG
CFLAGS += -DHAVE_STDINT_H -DHAVE_STRINGS_H
CXXFLAGS += $(CODE_DEFINES) $(WARNINGS_DEFINES)
CXXFLAGS += -DRIGHTSHIFT_IS_SAR -D__LIBRETRO__ -DALLOW_CPU_OVERCLOCK
CXXFLAGS += -DRIGHTSHIFT_IS_SAR -DALLOW_CPU_OVERCLOCK
: foreach $(SOURCES_C) |> !libretro_cc |> {libretro_objs}
: foreach $(SOURCES_CXX) |> !libretro_cxx |> {libretro_objs}

View File

@ -2,45 +2,16 @@ let Genode = env:DHALL_GENODE
let XML = Genode.Prelude.XML
let defaults = ./../../pkgDefaults.dhall
let defaults = ./../../pkgJoypadDefaults.dhall
in { indexInfo =
"SNES emulator"
, runtime =
defaults.runtime
⫽ { roms =
defaults.runtime.roms # [ "stdcxx.lib.so" ]
, ram =
Genode.units.MiB 24
, caps =
192
, config =
XML.text
''
<config>
<libc stdout="/dev/log" stderr="/dev/log"/>
<game/>
<vfs>
<fs/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
<default-controller port="0" device="1">
<map from="KEY_LEFT" to="LEFT"/>
<map from="KEY_RIGHT" to="RIGHT"/>
<map from="KEY_UP" to="UP"/>
<map from="KEY_DOWN" to="DOWN"/>
<map from="KEY_X" to="A"/>
<map from="KEY_Z" to="B"/>
<map from="KEY_S" to="X"/>
<map from="KEY_A" to="Y"/>
<map from="KEY_Q" to="L"/>
<map from="KEY_W" to="R"/>
<map from="KEY_ENTER" to="START"/>
<map from="KEY_RIGHTSHIFT" to="SELECT"/>
</default-controller>
</config>
''
}
}
in defaults
⫽ { indexInfo =
"SNES emulator"
, runtime =
defaults.runtime
⫽ { resources =
{ caps = 192, ram = Genode.units.MiB 24 }
, roms =
defaults.runtime.roms # [ "stdcxx.lib.so" ]
}
}

View File

@ -4,14 +4,14 @@ let Prelude = Genode.Prelude
let XML = Prelude.XML
let frontend = ./../../retro_frontend/package.dhall
let Frontend = ./../../retro_frontend/package.dhall
let defaults = ./../../pkgDefaults.dhall
let keyboardDefaults = ./../../pkgKeyboardDefaults.dhall
let frontendConfig =
keyboardDefaults.frontendConfig
let frontend =
keyboardDefaults.frontend
⫽ { vfs =
XML.text
''
@ -31,13 +31,13 @@ in { indexInfo =
"QUAKE engine"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 64
, caps =
256
⫽ { config =
Frontend.Config.toXML frontend
, resources =
{ caps = 256, ram = Genode.units.MiB 64 }
, roms =
defaults.runtime.roms # [ "quake_shareware.tar" ]
, config =
frontend.Config.toXML frontendConfig
}
, frontend =
frontend
}

View File

@ -26,5 +26,5 @@ CFLAGS += -O3 -DNDEBUG
: {core} |> !collect_bin |>
: |> !bin |>
: $(TUP_CWD)/runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>

View File

@ -1,4 +1,4 @@
ifndef OFFLINE
ifndef CONFIG_OFFLINE
TARGET_NAME = quake_dopa
RAW_VERSION = 2016-06-22
@ -22,7 +22,7 @@ PKG_DEPENDS += \
ehmry/raw/quake_shareware/1.06 \
_/raw/$(RAW_NAME) \
: runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
include &(PKG_RULES)
endif

View File

@ -1,35 +0,0 @@
<runtime ram="64M" caps="256" binary="retro_frontend">
<requires>
<audio_out/>
<file_system/>
<nitpicker/>
<rm/>
</requires>
<content>
<rom label="libc.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libretro.so"/>
<rom label="quake_shareware.tar"/>
<rom label="quake_dopa.tar"/>
<rom label="retro_frontend"/>
<rom label="vfs.lib.so"/>
</content>
<config>
<libc stdout="/dev/log" stderr="/dev/log"/>
<vfs>
<tar name="quake_shareware.tar"/>
<dir name="dopa"> <tar name="quake_dopa.tar"/> </dir>
<fs/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
<game path="dopa/pak0.pak"/>
<default-controller port="0" device="3"/>
<variables>
<variable key="tyrquake_resolution" value="960x600"/>
</variables>
</config>
</runtime>

View File

@ -1,4 +1,4 @@
ifndef OFFLINE
ifndef CONFIG_OFFLINE
TARGET_NAME = streemerz
RAW_VERSION = 02
@ -18,7 +18,7 @@ PKG_DEPENDS += \
_/src/retro_frontend \
_/raw/$(TARGET_NAME) \
: runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
include &(RAW_RULES)

View File

@ -0,0 +1,31 @@
let Genode = env:DHALL_GENODE
let XML = Genode.Prelude.XML
let Frontend = ./../../retro_frontend/package.dhall
let fceumm = ./../../cores/fceumm/pkg.dhall
let frontend =
fceumm.frontend
⫽ { vfs =
XML.text
''
<vfs>
<rom name="streemerz-v02.nes"/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
''
}
in { indexInfo =
"Streemerz remake"
, runtime =
fceumm.runtime
⫽ { config =
Frontend.Config.toXML frontend
, roms =
fceumm.runtime.roms # [ "streemerz-v02.nes" ]
}
, frontend = frontend
}

View File

@ -1,39 +0,0 @@
<runtime ram="16M" caps="128" binary="retro_frontend">
<requires>
<audio_out/>
<nitpicker/>
<rm/>
</requires>
<content>
<rom label="streemerz-v02.nes"/>
<rom label="libc.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libretro.so"/>
<rom label="retro_frontend"/>
<rom label="vfs.lib.so"/>
</content>
<config>
<libc stdout="/dev/log" stderr="/dev/log"/>
<game/>
<vfs>
<rom name="streemerz-v02.nes"/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
<default-controller port="0" device="1">
<map from="KEY_LEFT" to="LEFT"/>
<map from="KEY_RIGHT" to="RIGHT"/>
<map from="KEY_UP" to="UP"/>
<map from="KEY_DOWN" to="DOWN"/>
<map from="KEY_X" to="A"/>
<map from="KEY_Z" to="B"/>
<map from="KEY_ENTER" to="START"/>
<map from="KEY_RIGHTSHIFT" to="SELECT"/>
</default-controller>
</config>
</runtime>

View File

@ -10,11 +10,7 @@ let Runtime/Require = types.Runtime/Require
in { runtime =
Genode.Runtime.defaults
⫽ { ram =
Genode.units.MiB 32
, caps =
128
, binary =
⫽ { binary =
"retro_frontend"
, requires =
List/map
@ -22,6 +18,7 @@ in { runtime =
Runtime/Require
Genode.Runtime.Require.require
[ "audio_out", "file_system", "nitpicker", "rm" ]
, resources = { caps = 128, ram = Genode.units.MiB 32 }
, roms =
[ "retro_frontend"
, "libc.lib.so"

View File

@ -1,6 +1,6 @@
let Genode = env:DHALL_GENODE
let frontend = ./retro_frontend/package.dhall
let Frontend = ./retro_frontend/package.dhall
let Prelude = Genode.Prelude
@ -8,7 +8,7 @@ let XML = Prelude.XML
let defaults = ./pkgDefaults.dhall
let frontendConfig =
let frontend =
{ vfs =
XML.text
''
@ -27,7 +27,7 @@ let frontendConfig =
}
in { runtime =
defaults.runtime ⫽ { config = frontend.Config.toXML frontendConfig }
, frontendConfig =
frontendConfig
defaults.runtime ⫽ { config = Frontend.Config.toXML frontend }
, frontend =
frontend
}

View File

@ -1,6 +1,6 @@
let Genode = env:DHALL_GENODE
let frontend = ./retro_frontend/package.dhall
let Frontend = ./retro_frontend/package.dhall
let Prelude = Genode.Prelude
@ -8,7 +8,7 @@ let XML = Prelude.XML
let defaults = ./pkgDefaults.dhall
let frontendConfig =
let frontend =
{ vfs =
XML.text
''
@ -34,7 +34,7 @@ let frontendConfig =
}
in { runtime =
defaults.runtime ⫽ { config = frontend.Config.toXML frontendConfig }
, frontendConfig =
frontendConfig
defaults.runtime ⫽ { config = Frontend.Config.toXML frontend }
, frontend =
frontend
}

View File

@ -2,6 +2,8 @@ let defaults = ./../../pkgDefaults.dhall
let XML = (env:DHALL_GENODE).Prelude.XML
let fceumm = ./../../cores/snes9x/pkg.dhall
in { indexInfo =
"SNES tests"
, runtime =
@ -23,14 +25,14 @@ in { indexInfo =
<map from="KEY_RIGHT" to="RIGHT"/>
<map from="KEY_UP" to="UP"/>
<map from="KEY_DOWN" to="DOWN"/>
<map from="KEY_X" to="A"/>
<map from="KEY_Z" to="B"/>
<map from="KEY_S" to="X"/>
<map from="KEY_A" to="Y"/>
<map from="KEY_Q" to="L"/>
<map from="KEY_W" to="R"/>
<map from="KEY_ENTER" to="START"/>
<map from="KEY_RIGHTSHIFT" to="SELECT"/>
</default-controller>

View File

@ -2,37 +2,30 @@ let Genode = env:DHALL_GENODE
let XML = Genode.Prelude.XML
let Frontend = ./../../retro_frontend/package.dhall
let fceumm = ./../../cores/fceumm/pkg.dhall
let frontend =
fceumm.frontend
⫽ { vfs =
XML.text
''
<vfs>
<rom name="240pee.nes"/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
''
}
in { indexInfo =
"SNES tests"
"NES tests"
, runtime =
fceumm.runtime
⫽ { roms =
fceumm.runtime.roms # [ "240pSuite.sfc" ]
, config =
XML.text
''
<config>
<libc stdout="/dev/log" stderr="/dev/log"/>
<game/>
<vfs>
<rom name="240pee.nes"/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
<default-controller port="0" device="1">
<map from="KEY_LEFT" to="LEFT"/>
<map from="KEY_RIGHT" to="RIGHT"/>
<map from="KEY_UP" to="UP"/>
<map from="KEY_DOWN" to="DOWN"/>
<map from="KEY_X" to="A"/>
<map from="KEY_Z" to="B"/>
<map from="KEY_ENTER" to="START"/>
<map from="KEY_RIGHTSHIFT" to="SELECT"/>
</default-controller>
</config>
''
⫽ { config =
Frontend.Config.toXML frontend
, roms =
fceumm.runtime.roms # [ "240pee.nes" ]
}
, frontend = frontend
}

View File

@ -1,39 +0,0 @@
<runtime ram="16M" caps="128" binary="retro_frontend">
<requires>
<audio_out/>
<nitpicker/>
<rm/>
</requires>
<content>
<rom label="240pee.nes"/>
<rom label="libc.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libretro.so"/>
<rom label="retro_frontend"/>
<rom label="vfs.lib.so"/>
</content>
<config>
<libc stdout="/dev/log" stderr="/dev/log"/>
<game/>
<vfs>
<rom name="240pee.nes"/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
<default-controller port="0" device="1">
<map from="KEY_LEFT" to="LEFT"/>
<map from="KEY_RIGHT" to="RIGHT"/>
<map from="KEY_UP" to="UP"/>
<map from="KEY_DOWN" to="DOWN"/>
<map from="KEY_X" to="A"/>
<map from="KEY_Z" to="B"/>
<map from="KEY_ENTER" to="START"/>
<map from="KEY_RIGHTSHIFT" to="SELECT"/>
</default-controller>
</config>
</runtime>

View File

@ -1,16 +0,0 @@
ifndef OFFLINE
TARGET_NAME = topbench
include_rules
: |> wget --quiet https://github.com/MobyGamer/TOPBENCH/releases/download/0.38.h/%o |> TOPBV38H.ZIP {zip}
: {zip} \
|> unzip -L %f -d tmp ; tar cf %o -C tmp . ; rm -r tmp \
|> $(DEPOT_RAW_DIR)/%d/@(DEPOT_VERSION)/TOPBV38H.tar {tar}
RAW_VERSION = 0.38.h
: {tar} |> !collect_raw |>
include &(RAW_RULES)
endif

View File

@ -10,10 +10,8 @@ in { indexInfo =
"The Oldskool PC Benchmark - DOSBox"
, runtime =
defaults.runtime
⫽ { caps =
192
, ram =
Genode.units.MiB 96
⫽ { resources =
{ caps = 192, ram = Genode.units.MiB 96 }
, requires =
defaults.runtime.requires # [ require "report", require "rtc" ]
, roms =

View File

@ -19,7 +19,7 @@ include_rules
|> soyuz.tar {tar}
: {tar} |> !collect_raw |>
: runtime |> !collect_pkg_runtime |>
: $(TUP_CWD)/pkg.dhall |> !render_runtime |>
: |> !pkg |>
include &(RAW_RULES)

View File

@ -2,9 +2,9 @@
pkgs.shell.mkShell
{ buildInputs = with pkgs;
[ ports.libc
ports.stdcxx
ports.egl_api
ports.mesa
[ ports.libc.dev
ports.stdcxx.dev
ports.egl_api.dev
ports.mesa.dev
];
}