Data interchange, editor suite, and runtime re-implementations for games by Retro Studios
Go to file
Lioncash 1b52070f4f CActorContraption: Unindent code in CreateFlameThrower() where applicable
We can invert a conditional to allow much of the code to be unindented.
2020-08-02 02:28:48 -04:00
DataSpec Use PNG_INCLUDE_DIR & update submodules 2020-06-13 17:24:09 -04:00
Editor Update hecl, fix mkwmicons 2020-06-13 20:46:59 -07:00
NESEmulator Update fmtlib 2020-04-11 12:51:39 -10:00
Runtime CActorContraption: Unindent code in CreateFlameThrower() where applicable 2020-08-02 02:28:48 -04:00
Shaders Shaders: Fix CFluidPlaneShaderMetal 2020-05-09 19:15:31 -04:00
amuse@f172427991 Use PNG_INCLUDE_DIR & update submodules 2020-06-13 17:24:09 -04:00
assetnameparser assetnameparser: Amend transposed fwrite arguments 2020-05-31 07:13:06 -04:00
assets Add screenshot to README.md 2020-04-14 16:14:09 -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@65f8d85b22 Update hecl (again) 2020-06-25 21:27:47 -04:00
hecl-gui@ce7ba8653e Update kabufuda, hecl-gui 2020-06-24 12:07:02 -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@2783337c36 Update fmtlib 2020-04-11 12:51:39 -10: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@f54b6e2650 MSVC & zeus fixes; update hecl-gui 2020-04-19 21:09:30 -04:00
visigen Update fmtlib 2020-04-11 12:51:39 -10:00
.appveyor.yml AppVeyor: Use clang-cl again (MSVC 16.6.2 is broken) 2020-06-25 20:17:25 -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 MSVC for AppVeyor; build static Windows binaries in GitLab CI 2020-06-13 20:23:22 -04:00
.gitmodules Update file download locations 2019-07-12 01:06:23 -07:00
CMakeLists.txt Use CMAKE_MSVC_RUNTIME_LIBRARY on Windows 2020-06-13 17:26:28 -04:00
CMakeSettings.json Create separate VS configurations for vcpkg 2020-06-13 20:12:51 -04: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.md 2020-06-25 20:57:21 -04:00
README.msan.md Typo fix 2019-04-06 19:49:21 -10:00
version.h.in Update splash screen 2015-12-13 11:01:32 -10:00

README.md

URDE

Status: Metroid Prime 1 In-Game (all retail GC 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)
    • Arch is known to function with glx vendor setup instructions (main development/testing OS)
    • Other distros with reasonably up-to-date packages will work (specific packages TBD)

Usage

  • 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

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 1.15+
  • [Linux] recent development packages of udev, x11, xcb, xinput, glx, asound

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