Phillip Stephens 89378700f7 | ||
---|---|---|
.github/workflows | ||
DataSpec | ||
NESEmulator | ||
Runtime | ||
Shaders | ||
assetnameparser | ||
assets | ||
ci | ||
extern | ||
gbalink | ||
gmm | ||
hecl | ||
imgui | ||
lldb-extras | ||
metaforce-gui | ||
mpcksum | ||
visigen | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
CMakeSettings.json | ||
LICENSE | ||
README.md | ||
README.msan.md | ||
lxd-build-appimage.sh | ||
version.h.in |
README.md
Metaforce
Formerly known as URDE
Status: Metroid Prime 1 In-Game (all retail GC & Wii versions)
Official Discord Channel: https://discord.gg/AMBVFuf
Download
Precompiled builds of the command-line extraction utility (hecl
) with embedded dataspec libraries are available at https://releases.axiodl.com. This will give you intermediate dumps of original formats as blender and yaml representations.
Everything else is much too experimental to make portable/stable release builds (for now)
Platform Support
- Windows 10 (64-bit, D3D11 / Vulkan)
- macOS 10.15+ (Metal)
- Linux (Vulkan)
- Follow this guide to set up Vulkan & appropriate drivers for your distro.
Usage (GC versions)
- Extract ISO:
hecl extract [path].iso -o mp1
mp1
can be substituted with the directory name of your choice
- Repackage game for Metaforce:
cd mp1; hecl package
- Run Metaforce:
metaforce mp1/out
Usage (Wii versions)
IMPORTANT: Trilogy main menu currently doesn't work, and requires the --warp 1 0
command line arguments to get in-game.
NFS files dumped from Metroid Prime Trilogy on Wii U VC can be used directly without converting to ISO.
- Extract ISO or NFS:
hecl extract [path].[iso/nfs] -o mpt
mpt
can be substituted with the directory name of your choice
- Repackage game for Metaforce:
cd mpt; hecl package MP1
- The
MP1
parameter is important here.
- The
- Run Metaforce:
metaforce mpt/out --warp 1 0
Metaforce options (non-exhaustive)
-l
: Enable console logging--warp [worldid] [areaid]
: Warp to a specific world/area. Example:--warp 2 2
+developer=1
: Enable developer console
Build Prerequisites:
- CMake 3.13+
- Windows: Install
CMake Tools
in Visual Studio - macOS:
brew install cmake
- Windows: Install
- Python 3+
- Windows: Microsoft Store
- Verify it's added to
%PATH%
by typingpython
incmd
.
- Verify it's added to
- macOS:
brew install python@3
- Windows: Microsoft Store
- LLVM development package (headers and libs)
- Specialized Windows Package
- macOS:
brew install --force-bottle llvm
- [Windows] Visual Studio 2019 Community
- Select
C++ Development
and verify the following packages are included:Windows 10 SDK
CMake Tools
C++ Clang Compiler
C++ Clang-cl
- Select
- [macOS] Xcode 11.5+
- [Linux] recent development packages of
udev
,x11
,xcb
,xinput
,glx
,asound
- Ubuntu 20.04+ packages
build-essential curl git ninja-build llvm-dev libclang-dev 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 qt5-default
- Arch packages
base-devel cmake ninja llvm vulkan-headers python3 qt6 clang lld alsa-lib libpulse libxrandr
- Ubuntu 20.04+ packages
Prep Directions
git clone --recursive https://github.com/AxioDL/metaforce.git
mkdir metaforce-build
cd metaforce-build
Update Directions
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)
cd metaforce-build
cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja ../metaforce
ninja
CMake options
- Build release optimized (better runtime performance):
-DCMAKE_BUILD_TYPE=Release
- 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)
cmake -G Xcode ../metaforce
Then open metaforce.xcodeproj
Optional Debug Models
We provide custom debug models for use to visualize certain aspects of the game such as lighting, in order to use
these models you may download them from https://axiodl.com/files/debug_models.zip and extract to MP1/URDE
in an
existing HECL project (assuming paths are relative), then run the the following command:
hecl package MP1/URDE
This will cook and package the debug models and will automatically enable rendering of lights in a debug build of Metaforce.