https://github.com/koute/polkadoom
Yet another DOOM port
https://github.com/koute/polkadoom
Last synced: about 1 year ago
JSON representation
Yet another DOOM port
- Host: GitHub
- URL: https://github.com/koute/polkadoom
- Owner: koute
- Created: 2023-09-29T15:52:06.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-02-06T08:07:37.000Z (over 1 year ago)
- Last Synced: 2025-03-25T04:27:48.995Z (about 1 year ago)
- Language: C++
- Size: 32.1 MB
- Stars: 9
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DOOM port for PolkaVM
This is a DOOM port for [PolkaVM](https://github.com/koute/polkavm).
It's based on [doomgeneric](https://github.com/ozkl/doomgeneric), but it's even more portable.
The source code is completely standalone and doesn't even require a libc. It also has out-of-box
support for audio due to built-in OPL emulation, which doomgeneric doesn't have.
## Building
1. Get a clang for RV{32,64}**E** (RISC-V **embedded**)
- Upstream LLVM from version 18.X and above support those
- Scripts to build a toolchain are [available here](https://github.com/paritytech/rustc-rv32e-toolchain) or [here](https://github.com/xermicus/revive/blob/main/build-llvm.sh)
2. Make sure that the compatible LLVM build is found via `$PATH`. Verify: `clang --target=riscv32 -print-supported-extensions 2>&1 | grep 'RV{32,64}E'`
3. Run `./build.sh 32` or `./build.sh 64` to get a 32bit or 64bit build respectively
4. Run `polkatool link -s output/doom.elf -o output/doom.polkavm`.
## License
GPLv2+
Many third-party libraries are used here with varying licenses; see the `libs` directory for details.