Phobos logo

Docs status license Workflow Github All Releases

Phobos is a WIP community project providing a set of new features and fixes for Yuri’s Revenge based on modified YRpp and Syringe to allow injecting code. It’s meant to accompany Ares rather than replace it, thus it won’t introduce incompatibilities.

For now you can discuss the project at a dedicated channel on C&C Mod Haven (which is my C&C modding server).

Building and Usage (Windows)

  1. Install Visual Studio with “Desktop development with C++” workload and “C++ Windows XP Support for VS 2017 (v141) tools” individual component and clone this repo recursively (that will also clone YRpp).

  2. Open the solution file in VS and build it (DevBuild build config is recommended).

  3. Upon build completion place the resulting Phobos.dll from folder named identical to the used build config in your YR directory and launch Syringe targeting your YR executable (usually gamemd.exe).

You can also get test a nightly version for a specific commit which is built automatically with a GitHub Actions workflow, just press on a green tick, open the workflow, find and download the build artifact (a ZIP containing the extension’s DLL). Those versions have build information (commit and branch/tag) in them which is displayed ingame and can’t be turned off. Those versions are bleeding edge, do not redistribute them outside of testing!

Documentation

The documentation can be found at here @ Read the Docs and is split by a few major categories (similiar to Ares docs), each represented with a page on the sidebar. Each page has it’s contents grouped into multiple subcategories, be it buildings, technotypes, infantry, superweapons or something else.

You can switch between versions in the bottom left corner, as well as download a PDF version.

How to read code snippets

; which section the params should be in
; can be a freeform name - in this case the comment would explain what it is
; if no comment to be found - then it's a precise name
[SOMENAME] ; BuildingType
; KeyName=DefaultValue ; accepted type with optional explanation
; if there's nothing to the right of equals sign - the default value is empty/absent
UIDescription=<none> ; CSF entry key

Credits

  • Belonit aka Gluk-v48, Metadorius aka Kerbiter - project authors

  • misha135n2 - YRpp edits

  • tomsons26, CCHyper - all-around help, assistance and guidance in reverse-engineering, YR binary mappings

  • Ares developers - YRpp and Syringe which are used, save/load code from Ares;

  • DCoder - unused deployer fixes that are now included in Phobos

  • CCHyper - current project logo

  • ZΞPHYɌUS - win/lose themes code

  • ayylmao, SMxReaver, 4SG, FS-21 - help with docs

  • wiktorderelf, Metadorius aka Kerbiter - overhauled Unicode font

Thanks to everyone who uses Phobos, tests changes and reports bugs! You can show your appreciation and help project by displaying the logo (monochrome version can be found here) in your client/launcher, contributing or donating to us via links on the right and the Sponsor button on top of the repo.