{"id":13505263,"url":"https://github.com/AxioDL/metaforce","last_synced_at":"2025-03-29T23:31:17.857Z","repository":{"id":30640540,"uuid":"34196081","full_name":"AxioDL/metaforce","owner":"AxioDL","description":"A native reimplementation of the Metroid Prime engine","archived":false,"fork":false,"pushed_at":"2024-04-24T22:20:38.000Z","size":51134,"stargazers_count":599,"open_issues_count":51,"forks_count":42,"subscribers_count":58,"default_branch":"main","last_synced_at":"2025-01-02T00:04:13.023Z","etag":null,"topics":["c-plus-plus","dawn","game","metroid","metroid-prime","nintendo","reimplementation","reverse-engineering","webgpu"],"latest_commit_sha":null,"homepage":"https://axiodl.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AxioDL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-19T06:29:23.000Z","updated_at":"2024-12-31T13:15:35.000Z","dependencies_parsed_at":"2023-02-12T18:45:40.980Z","dependency_job_id":"76847161-afea-4837-a99e-d362cc3249f2","html_url":"https://github.com/AxioDL/metaforce","commit_stats":null,"previous_names":["axiodl/urde"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxioDL%2Fmetaforce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxioDL%2Fmetaforce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxioDL%2Fmetaforce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxioDL%2Fmetaforce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AxioDL","download_url":"https://codeload.github.com/AxioDL/metaforce/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246258884,"owners_count":20748573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","dawn","game","metroid","metroid-prime","nintendo","reimplementation","reverse-engineering","webgpu"],"created_at":"2024-08-01T00:01:00.561Z","updated_at":"2025-03-29T23:31:12.841Z","avatar_url":"https://github.com/AxioDL.png","language":"C++","funding_links":[],"categories":["Legend"],"sub_categories":["Metroid Prime"],"readme":"## Metaforce [![Build Status]][actions] [![Discord Badge]][discord]\n\n[Build Status]: https://github.com/AxioDL/metaforce/actions/workflows/build.yml/badge.svg\n[actions]: https://github.com/AxioDL/metaforce/actions\n[Discord Badge]: https://dcbadge.vercel.app/api/server/AMBVFuf?style=flat\n[discord]: https://discord.gg/AMBVFuf\n\nA reverse-engineered, native reimplementation of Metroid Prime.\n\nThis project is currently in **alpha** state.  \nBuilds are currently unavailable while the project undergoes large changes.\n\nSeparately, a [matching decompilation](https://github.com/PrimeDecomp/prime) of Metroid Prime is currently underway. Contributions are welcome.  \nProgress on the decompilation benefits Metaforce with bug fixes and new implementations.\n\n![Metaforce screenshot](assets/metaforce-screen1.png)\n\n### Platform Support\n* Windows 10+ (64-bit, D3D12 / Vulkan / OpenGL)\n* macOS 10.15+ (Metal)\n* Linux (Vulkan / OpenGL)\n    * Follow [this guide](https://github.com/lutris/docs/blob/master/InstallingDrivers.md) to set up Vulkan \u0026 appropriate drivers for your distro.\n\n### Usage\n\nWindows:\n- Open `metaforce.exe`\n\nmacOS:\n- Open `Metaforce.app`\n\nLinux: \n- Ensure AppImage is marked as executable: `chmod +x Metaforce-*.AppImage`\n- Open `Metaforce-*.AppImage`\n\n#### CLI options (non-exhaustive)\n\n* `-l`: Enable console logging\n* `--warp [worldid] [areaid]`: Warp to a specific world/area. Example: `--warp 2 2`\n* `+developer=1`: Enable developer UI\n\n### Build Prerequisites:\n* [CMake 3.15+](https://cmake.org)\n    * Windows: Install `CMake Tools` in Visual Studio\n    * macOS: `brew install cmake`\n* [Python 3+](https://python.org)\n    * Windows: [Microsoft Store](https://go.microsoft.com/fwlink?linkID=2082640)\n        * Verify it's added to `%PATH%` by typing `python` in `cmd`.\n    * macOS: `brew install python@3`\n* **[Windows]** [Visual Studio 2019 Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx)\n    * Select `C++ Development` and verify the following packages are included:\n        * `Windows 10 SDK`\n        * `CMake Tools`\n        * `C++ Clang Compiler`\n        * `C++ Clang-cl`\n* **[macOS]** [Xcode 11.5+](https://developer.apple.com/xcode/download/)\n* **[Linux]** Actively tested on Ubuntu 20.04, Arch Linux \u0026 derivatives.\n    * Ubuntu 20.04+ packages\n      ```\n      build-essential curl git ninja-build clang lld zlib1g-dev libcurl4-openssl-dev \\\n      libglu1-mesa-dev libdbus-1-dev libvulkan-dev libxi-dev libxrandr-dev libasound2-dev libpulse-dev \\\n      libudev-dev libpng-dev libncurses5-dev cmake libx11-xcb-dev python3 python-is-python3 \\\n      libclang-dev libfreetype-dev libxinerama-dev libxcursor-dev python3-markupsafe libgtk-3-dev\n      ```\n     * Arch Linux packages\n       ```\n       base-devel cmake ninja llvm vulkan-headers python python-markupsafe clang lld alsa-lib libpulse libxrandr freetype2\n       ```\n     * Fedora packages\n       ```\n       cmake vulkan-headers ninja-build clang-devel llvm-devel libpng-devel\n       ```\n         * It's also important that you install the developer tools and libraries\n           ```\n           sudo dnf groupinstall \"Development Tools\" \"Development Libraries\"\n           ```\n### Prep Directions\n\n```sh\ngit clone --recursive https://github.com/AxioDL/metaforce.git\ncd metaforce\n```\n\n### Update Directions\n\n```sh\ncd metaforce\ngit pull\ngit submodule update --recursive\n```\n\n### Build Directions\n\nFor Windows, it's recommended to use Visual Studio. See below.\n\n#### ninja (Windows/macOS/Linux)\n\nBuilds using `RelWithDebInfo` by default.\n\n```sh\ncmake -B out -G Ninja # add extra options here\ncmake --build out --target metaforce hecl visigen\n```\n\n#### CMake configure options\n- Build in debug mode (slower runtime speed, better backtraces): `-DCMAKE_BUILD_TYPE=Debug`\n- Use clang+lld (faster linking): `-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++`\n- Optimize for current CPU (resulting binaries are not portable): `-DMETAFORCE_VECTOR_ISA=native`\n\n#### CLion (Windows/macOS/Linux)\n*(main development / debugging IDE)*\n\nOpen the repository's `CMakeLists.txt`.\n\nOptionally configure CMake options via `File` \u003e `Settings` \u003e `Build, Execution, Deployment` \u003e `CMake`.\n\n#### Qt Creator (Windows/macOS/Linux)\n\nOpen the repository's `CMakeLists.txt` via File \u003e Open File or Project.\n\nConfigure the desired CMake targets to build in the *Projects* area of the IDE.\n\n#### Visual Studio (Windows)\n\nVerify all required VS packages are installed from the above **Build Prerequisites** section.\n\nOpen the `metaforce` directory in Visual Studio (imports CMake configuration).\n\nMSVC and clang-cl configurations should import automatically.\n\n#### Xcode (macOS)\n\n```sh\ncmake -G Xcode ../metaforce\n```\n\nThen open `metaforce.xcodeproj`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAxioDL%2Fmetaforce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAxioDL%2Fmetaforce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAxioDL%2Fmetaforce/lists"}