Data interchange, editor suite, and runtime re-implementations for games by Retro Studios
Go to file
Phillip Stephens fbf1e26eda Let's not blow up our memory usage plzkthxbai 2021-03-30 14:29:03 -07:00
.github/workflows CI: Fix msvc artifact name 2021-03-29 21:57:44 -04:00
DataSpec CTweakGame: Add CVar definitions in header 2021-02-27 23:45:23 -05:00
Editor Add fullscreen CVar 2021-03-30 16:51:18 -04:00
NESEmulator Update fmtlib 2020-04-11 12:51:39 -10:00
Runtime Let's not blow up our memory usage plzkthxbai 2021-03-30 14:29:03 -07:00
Shaders Add GitHub Actions configuration 2021-03-01 21:36:10 -05:00
amuse@d96be61e29 Update amuse 2021-03-18 22:51:21 -07:00
assetnameparser Make assetnameparser more intelligent about hashing MP1/2 assets 2020-11-01 15:05:05 -08:00
assets Add screenshot to README.md 2020-04-14 16:14:09 -04:00
ci New versioning scheme (currently v0.1.1-2) 2021-03-29 13:28:03 -04:00
discord-rpc@e6390c8c41 New code style refactor 2018-12-07 19:30:43 -10:00
gbalink gbalink: Amend code to compile with jbus changes 2019-09-04 01:56:04 -04:00
gmm Numerous uninitialized memory fixes 2019-04-06 19:14:48 -10:00
hecl@e01845d7a5 Add fullscreen CVar 2021-03-30 16:51:18 -04:00
hecl-gui@9be341ae73 Add fullscreen CVar 2021-03-30 16:51:18 -04:00
jbus@b8e1e4673e Set compiler flags for building with C++20 2020-04-10 19:05:55 -10:00
kabufuda@b63f7c6401 Update kabufuda, hecl-gui 2020-06-24 12:07:02 -04:00
lldb-extras CPuddleToadGamma and animation system fixes 2019-06-20 20:02:56 -10:00
mpcksum CActorContraption fixes, better CMake dependency handling 2019-06-11 16:05:17 -10:00
nod@02c188497a Fixes for Apple Silicon 2021-01-06 20:54:21 -05:00
rapidjson@66eb6067b1 New code style refactor 2018-12-07 19:30:43 -10:00
sanitizers-cmake@6947cff3a9 Bug fixes and ASan build submodule 2017-12-11 16:06:19 -10:00
specter@e061a0ef21 Don't differentiate export path between standalone and Trilogy extracts, minor fix in CMetroidPrimeEssence, update submodules 2021-02-26 01:35:54 -08:00
visigen New versioning scheme (currently v0.1.1-2) 2021-03-29 13:28:03 -04:00
.clang-format Update .clang-{format,tidy} 2020-07-07 04:34:35 -04:00
.clang-tidy Update .clang-{format,tidy} 2020-07-07 04:34:35 -04:00
.gitignore Update .gitignore 2020-06-13 17:24:17 -04:00
.gitlab-ci.yml Use lxd-build-appimage script in GitLab CI 2021-02-27 23:01:07 -05:00
.gitmodules Update file download locations 2019-07-12 01:06:23 -07:00
CMakeLists.txt New versioning scheme (currently v0.1.1-2) 2021-03-29 13:28:03 -04:00
CMakeSettings.json GitHub Actions: Use static Qt5 on Windows 2021-03-13 11:58:20 -05:00
Doxyfile Minor fixes and cleanup 2019-08-03 17:02:53 -07:00
GMM-LICENSE DCLN cooking and various bug fixes 2017-10-16 19:51:53 -10:00
LICENSE Update copyright date 2018-01-02 14:25:48 -10:00
README.md Update README & hecl-gui 2021-02-27 23:23:06 -05:00
README.msan.md Typo fix 2019-04-06 19:49:21 -10:00
lxd-build-appimage.sh Add appimage build script 2021-02-27 22:35:44 -05:00
version.h.in CI: Checkout with fetch-depth: 0 2021-03-29 21:19:49 -04:00

README.md

URDE

Status: Metroid Prime 1 In-Game (all retail GC & Wii versions)

Official Discord Channel: https://discord.gg/AMBVFuf

URDE screenshot

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 URDE: cd mp1; hecl package
  • Run URDE: urde mp1/out

Usage (Wii versions)

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 URDE: cd mpt; hecl package MP1
    • The MP1 parameter is important here.
  • Run URDE: urde mpt/out

URDE 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
  • Python 3+
    • Windows: Microsoft Store
      • Verify it's added to %PATH% by typing python in cmd.
    • macOS: brew install python@3
  • LLVM development package (headers and libs)
  • [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
  • [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
      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
      

Prep Directions

git clone --recursive https://github.com/AxioDL/urde.git
mkdir urde-build
cd urde-build

Update Directions

cd urde
git pull
git submodule update --recursive

Build Directions

For Windows, it's recommended to use Visual Studio. See below.

ninja (Windows/macOS/Linux)

cd urde-build
cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja ../urde
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): -DURDE_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 urde directory in Visual Studio (imports CMake configuration).

MSVC and clang-cl configurations should import automatically.

Xcode (macOS)

cmake -G Xcode ../urde

Then open urde.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 URDE.