Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AxioDL/metaforce
A native reimplementation of the Metroid Prime engine
https://github.com/AxioDL/metaforce
c-plus-plus dawn game metroid metroid-prime nintendo reimplementation reverse-engineering webgpu
Last synced: 15 days ago
JSON representation
A native reimplementation of the Metroid Prime engine
- Host: GitHub
- URL: https://github.com/AxioDL/metaforce
- Owner: AxioDL
- License: other
- Created: 2015-04-19T06:29:23.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-04-24T22:20:38.000Z (7 months ago)
- Last Synced: 2024-10-16T10:04:20.033Z (about 1 month ago)
- Topics: c-plus-plus, dawn, game, metroid, metroid-prime, nintendo, reimplementation, reverse-engineering, webgpu
- Language: C++
- Homepage: https://axiodl.com
- Size: 48.8 MB
- Stars: 591
- Watchers: 59
- Forks: 41
- Open Issues: 51
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Metaforce [![Build Status]][actions] [![Discord Badge]][discord]
[Build Status]: https://github.com/AxioDL/metaforce/actions/workflows/build.yml/badge.svg
[actions]: https://github.com/AxioDL/metaforce/actions
[Discord Badge]: https://dcbadge.vercel.app/api/server/AMBVFuf?style=flat
[discord]: https://discord.gg/AMBVFufA reverse-engineered, native reimplementation of Metroid Prime.
This project is currently in **alpha** state.
Builds are currently unavailable while the project undergoes large changes.Separately, a [matching decompilation](https://github.com/PrimeDecomp/prime) of Metroid Prime is currently underway. Contributions are welcome.
Progress on the decompilation benefits Metaforce with bug fixes and new implementations.![Metaforce screenshot](assets/metaforce-screen1.png)
### Platform Support
* Windows 10+ (64-bit, D3D12 / Vulkan / OpenGL)
* macOS 10.15+ (Metal)
* Linux (Vulkan / OpenGL)
* Follow [this guide](https://github.com/lutris/docs/blob/master/InstallingDrivers.md) to set up Vulkan & appropriate drivers for your distro.### Usage
Windows:
- Open `metaforce.exe`macOS:
- Open `Metaforce.app`Linux:
- Ensure AppImage is marked as executable: `chmod +x Metaforce-*.AppImage`
- Open `Metaforce-*.AppImage`#### CLI options (non-exhaustive)
* `-l`: Enable console logging
* `--warp [worldid] [areaid]`: Warp to a specific world/area. Example: `--warp 2 2`
* `+developer=1`: Enable developer UI### Build Prerequisites:
* [CMake 3.15+](https://cmake.org)
* Windows: Install `CMake Tools` in Visual Studio
* macOS: `brew install cmake`
* [Python 3+](https://python.org)
* Windows: [Microsoft Store](https://go.microsoft.com/fwlink?linkID=2082640)
* Verify it's added to `%PATH%` by typing `python` in `cmd`.
* macOS: `brew install python@3`
* **[Windows]** [Visual Studio 2019 Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx)
* Select `C++ Development` and verify the following packages are included:
* `Windows 10 SDK`
* `CMake Tools`
* `C++ Clang Compiler`
* `C++ Clang-cl`
* **[macOS]** [Xcode 11.5+](https://developer.apple.com/xcode/download/)
* **[Linux]** Actively tested on Ubuntu 20.04, Arch Linux & derivatives.
* Ubuntu 20.04+ packages
```
build-essential curl git ninja-build clang lld zlib1g-dev libcurl4-openssl-dev \
libglu1-mesa-dev libdbus-1-dev libvulkan-dev libxi-dev libxrandr-dev libasound2-dev libpulse-dev \
libudev-dev libpng-dev libncurses5-dev cmake libx11-xcb-dev python3 python-is-python3 \
libclang-dev libfreetype-dev libxinerama-dev libxcursor-dev python3-markupsafe libgtk-3-dev
```
* Arch Linux packages
```
base-devel cmake ninja llvm vulkan-headers python python-markupsafe clang lld alsa-lib libpulse libxrandr freetype2
```
* Fedora packages
```
cmake vulkan-headers ninja-build clang-devel llvm-devel libpng-devel
```
* It's also important that you install the developer tools and libraries
```
sudo dnf groupinstall "Development Tools" "Development Libraries"
```
### Prep Directions```sh
git clone --recursive https://github.com/AxioDL/metaforce.git
cd metaforce
```### Update Directions
```sh
cd metaforce
git pull
git submodule update --recursive
```### Build Directions
For Windows, it's recommended to use Visual Studio. See below.
#### ninja (Windows/macOS/Linux)
Builds using `RelWithDebInfo` by default.
```sh
cmake -B out -G Ninja # add extra options here
cmake --build out --target metaforce hecl visigen
```#### CMake configure options
- Build in debug mode (slower runtime speed, better backtraces): `-DCMAKE_BUILD_TYPE=Debug`
- Use clang+lld (faster linking): `-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++`
- Optimize for current CPU (resulting binaries are not portable): `-DMETAFORCE_VECTOR_ISA=native`#### CLion (Windows/macOS/Linux)
*(main development / debugging IDE)*Open the repository's `CMakeLists.txt`.
Optionally configure CMake options via `File` > `Settings` > `Build, Execution, Deployment` > `CMake`.
#### Qt Creator (Windows/macOS/Linux)
Open the repository's `CMakeLists.txt` via File > Open File or Project.
Configure the desired CMake targets to build in the *Projects* area of the IDE.
#### Visual Studio (Windows)
Verify all required VS packages are installed from the above **Build Prerequisites** section.
Open the `metaforce` directory in Visual Studio (imports CMake configuration).
MSVC and clang-cl configurations should import automatically.
#### Xcode (macOS)
```sh
cmake -G Xcode ../metaforce
```Then open `metaforce.xcodeproj`