Code Monkey home page Code Monkey logo

yr-patches's Introduction

Red Alert 2 - Yuri's Revenge

Random enhancements and bug fixes for Command and Conquer: Red Alert 2 - Yuri's Revenge

Instructions

Building

Prerequisites

  • GNU Make
  • MinGW-W64
  • NASM
  • PETool (itself requiring GCC, make, etc)

On Unix, everything but PETool is installable via your package manager.

On Windows, please install MSYS 2 (a separate project from the original MSYS). MSYS 2 provides a minimal *nix environment, including a port of pacman, the Arch Linux package manager. Once MSYS 2 is installed, installing everything but PETool will be just as easy as on Linux, just do pacman -S <package>.

PETool is a utility made by us to do the patching itself and tie some loose ends. Please git clone its repo too, and run make. PETool is written in C and should be compiled with the native toolchain (Mingw-w64 on windows). Then copy the resulting petool or petool.exe to the directory where you git cloned yr-patches. Finally edit config.mk so it contains the definition:

PETOOL = ./petool

The makefile is designed to accommodate windows users who are not familiar with the command line. Therefore the names of various executables are defined by default to be their makefile names. Unix uses should edit config.mk with linux.config.mk as a guide. This applies only to Engine 2 proper, not PETool.

Instructions

Once everything is installed, just copy your YR executable to this repo under the name ra2/bin.dat, run make, and copy the patched executables back to your game installations. (Make sure to backup your original executables!)

Or if you rather just copy and paste some commands, do:

$ cd /path/to/yuris-revenge/installation
$ cp gamemd.exe gamemd-backup.exe
$ cd /path/to/yr-patches
$ cp /path/to/yr/installation/gamemd.exe ./ra2/bin.dat
$ make
$ cp ra2.exe /path/to/yr/installation/

From the shell (MinGW shell on Windows).

Credits

  • Belonit
  • Burg
  • CCHyper
  • dkeeton
  • hifi
  • Iran
  • Rampastring
  • Sonarpulse
  • secsome
  • Starkku
  • tomsons26

yr-patches's People

Contributors

alexp8 avatar belonit avatar cchyper avatar dkeetonx avatar e1elite avatar grantbartlett avatar rampastring avatar secsome avatar shmocz avatar starkku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yr-patches's Issues

Add optional "no in game chat" feature - $50

About
Some players are often trolled within in-game chat, mostly commoly in ranked matches. (Quickmatch)

As a player, I want to:

  • Have the ability to disable the chat entirely so no chat is received from any player.
  • To be notified in game when attempting to chat with it disabled, e.g. "You currently have in-game chat disabled".

Task detail:
Disabling in-game chat should be handled by the client. Spawner should read from RA2MD.ini

Crash at Eip:007B353E Caused by Japanese characters in hostname

When Japanese characters are in the hostname, the game crashes. Switching to a hostname with only ascii characters the game no longer crashes.

See discord discussion in the cncnet server here: https://discord.com/channels/188156159620939776/1112100895493193749

Instruction at 7B353E is executed after getting null from gethostbyname. The error is detected at 7B34D5 but the code doesn't bail out and continues executing until it attempts to reference the null result.

Actions per minute (APM)

As a player:
I want to see my APM count in each ladder matches. It would record clicks and keyboard input whilst in game.

For dev purposes, if its saved to stats.dmp we can grab that value.

Gap generator bug when going from player to observer

There's a current bug where if you are a player, but then lose and turn into an observer, gap generators still work, instead of revealing the shroud around it.

When a player turns into an observer gap generators should not be working and we should be able to see the entire map, as how a normal observer would be able to see the whole map upon load in.

Observer overlay

As an observer I want to see see both of the opponents build queues.

Example below
image

Observer features

Feature request

As an observer, I want the ability to see:

  • Underwater units of all players
  • What other players are building when clicking on production buildings. (MO has this with Ares)

Dogs & Flak Troopers don't get a speed boost as they do in Vanilla RA2

In Vanilla RA2:

  • When dogs & Flak troppers are stationary, attacked, then commanded to move, they start running (crawling for Flak Tropper) and get a speed boost as shown in these videos for dogs and flak troopers
  • Note: in the dog video, pay attention to the 2nd dog, not the first dog.

In CnCNet RA2:

  • When dogs & flak troopers are stationary, attacked, then commanded to move, they start running and do not get a speed boost

Request:

  • To make the dogs in CnCNet RA2 closer to vanilla RA2

Reason:

  • the speed boost gives tank battles with fodder more randomness and less predictability
  • currently, dog behaviour is very predictable due to the absence of the speed boost
  • with the speed boost, dogs will be able to run past tanks, causing the tanks to turn their turret (main use of fodder) or reach other dogs quicker
  • this speed boost also allows dogs to eat infantry a lot quicker (which helps allies as sovs are overpowered)

Add a "Random Allied/Soviet" Side

We would like to see a "Random Allied/Soviet" Side in addition to the "Random" option under Side (Factions). This would allow players to get a random Soviet/Allied faction, as some times we'd like to play soviet & don't want to play Allied (& vice versa). This will also give a lot of variety to showmatches.

Examples have been attached (made by Polye). I believe he has been able to add a new house under GameOptions.ini to replicate this feature too.
RandomAlliedSov

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.