summaryrefslogtreecommitdiff
path: root/payloads/external/coreDOOM
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/external/coreDOOM')
-rw-r--r--payloads/external/coreDOOM/Kconfig.secondary25
-rw-r--r--payloads/external/coreDOOM/Makefile34
-rw-r--r--payloads/external/coreDOOM/libpayload-config13
3 files changed, 72 insertions, 0 deletions
diff --git a/payloads/external/coreDOOM/Kconfig.secondary b/payloads/external/coreDOOM/Kconfig.secondary
new file mode 100644
index 0000000000..9f13cfe98c
--- /dev/null
+++ b/payloads/external/coreDOOM/Kconfig.secondary
@@ -0,0 +1,25 @@
+if COREDOOM_SECONDARY_PAYLOAD
+
+config COREDOOM_WAD_FILE
+ string "DOOM WAD file"
+ depends on COREDOOM_SECONDARY_PAYLOAD
+ default "doom.wad"
+ help
+ Add a WAD file to be loaded by coreDOOM.
+
+ A WAD file contains all the game data for the Doom-engine, and
+ is required to play the game.
+
+ A list of the WAD files included in the official games can be
+ found here: https://doomwiki.org/wiki/IWAD
+ These WADs can be extracted from copies of the game that you
+ own, and the shareware WADs may be freely downloaded from the
+ internet.
+
+ For a completely free (as in freedom) experience, the Freedoom
+ project (https://freedoom.github.io) provides original game
+ content under the BSD license. Other WADs not mentioned here are
+ also available and may be found from various sources such as
+ the internet and copies of other games using the Doom engine.
+
+endif
diff --git a/payloads/external/coreDOOM/Makefile b/payloads/external/coreDOOM/Makefile
new file mode 100644
index 0000000000..7c801b413e
--- /dev/null
+++ b/payloads/external/coreDOOM/Makefile
@@ -0,0 +1,34 @@
+## SPDX-License-Identifier: GPL-2.0-only
+project_git_repo=https://github.com/nic3-14159/coreDOOM.git
+project_dir=coredoom
+
+unexport KCONFIG_AUTOHEADER
+unexport KCONFIG_AUTOCONFIG
+unexport KCONFIG_DEPENDENCIES
+unexport KCONFIG_SPLITCONFIG
+unexport KCONFIG_TRISTATE
+unexport KCONFIG_NEGATIVES
+
+all: coredoom
+
+checkout:
+ test -d coredoom || \
+ git clone $(project_git_repo) $(project_dir)
+ cd $(project_dir) && \
+ git checkout libpayload_port
+
+coredoom: libpayload
+ $(MAKE) -C $(project_dir)/doomgeneric
+
+libpayload: checkout
+ cp libpayload-config ../../libpayload/.config && \
+ cd ../../libpayload && $(MAKE) olddefconfig && $(MAKE) && \
+ $(MAKE) DESTDIR=../external/coreDOOM/coredoom/doomgeneric install
+
+clean:
+ test -d coredoom && $(MAKE) -C coredoom/doomgeneric clean || exit 0
+
+distclean:
+ rm -rf coredoom
+
+.PHONY: checkout coredoom clean distclean
diff --git a/payloads/external/coreDOOM/libpayload-config b/payloads/external/coreDOOM/libpayload-config
new file mode 100644
index 0000000000..54dffea515
--- /dev/null
+++ b/payloads/external/coreDOOM/libpayload-config
@@ -0,0 +1,13 @@
+# CONFIG_LP_MULTIBOOT is not set
+CONFIG_LP_HEAP_SIZE=67108864
+CONFIG_LP_STACK_SIZE=16384
+CONFIG_LP_BASE_ADDRESS=0x00100000
+# CONFIG_LP_CURSES is not set
+CONFIG_LP_SERIAL_IOBASE=0x3f8
+CONFIG_LP_COREBOOT_VIDEO_CONSOLE=y
+# CONFIG_LP_PCI is not set
+# CONFIG_LP_NVRAM is not set
+CONFIG_LP_TIMER_GENERIC_REG=0x0
+CONFIG_LP_TIMER_GENERIC_HIGH_REG=0x0
+# CONFIG_LP_STORAGE is not set
+# CONFIG_LP_USB_MSC is not set