Printable Version of Topic

Click here to view this topic in its original format

SWR Productions Forum _ Support Forum _ ROTR Manual Install and Troubleshooting Guide

Posted by: AceMaster 28 Sep 2015, 7:55

Manual Install and Troubleshooting Guide

The Manual Install Guide aim to make ROTR works when default installation failed to under different configurations. The instructions do NOT install ROTR Launcher and SWR.NET !!!
The Troubleshooting Guide summarise major issues (i.e. crashes by type) and provide solutions from various source.

This guide will be updated as new information emerged.

Alright, before getting our hands dirty, let's get this straight:

C&C Generals and Zero Hour Expansion Facts

1. 32bit program which can only address up to 2GB of memory by default (related to Type 1 Crash below)
2. designed to run on Windows XP and assume user is an administrator (require elevated system privileges to INSTALL and RUN)
3. https://technet.microsoft.com/en-us/library/ee732424.aspx#BKMK_RunAsAdmin

4. freely http://answers.microsoft.com/en-us/windows/forum/windows_7-gaming/running-command-conquer-generals-on-windows-7/7503bd73-4cf1-42e4-ae8d-3aaef6f64ba0?page=4&auth=1 by adjusting InstallPath in EA registry entry
5. Standalone/Deluxe edition can be streamlined and run (setup.exe) locally from hard drive by combining disc contents
6. only Standalone and Deluxe Edition need official patch, the rest are up-to-date

7. use .BIG files to keep game assets and corresponding directory tree as an archive (similar to zip), it prioritise loading files from game directory tree over .BIG file
8. a proper installation must contain files in the attached Zero Hour file list (see attached for details)

9. designed to run on Standard 4:3 aspect ratio in Full Screen, Widescreen will cutoff top and bottom and reduce http://www.wsgf.org/forums/viewtopic.php?f=61&t=19396#p7085 = lower camera height / smaller viewable map / bigger units
10. max Anti-Aliasing (AA) support in Options ini: AntiAliasing = 6 (maximum for AMD/ATI) AntiAliasing = 4 (maximum for NVIDIA)
11. do NOT support Anisotropic Filtering (AF)

Generals & Zero Hour Install Tips:
- Always install at C:\Games\ or C:\Users\[username]\Games\ to avoid permission issue/administrator privileges regardless of Windows versions
- Always keep a backup copy of the game after install/patch + export EA registry entries
- Always test unsupported resolution with generals.exe -xres xxxx -yres xxxx before applying
- Always modify gamedata.ini in \Data\INI\ rather than directly to INIZH.big(ZeroHour) / !Rotr_INI.big(RotR)
- Always apply official patch http://www.cncnz.com/features/command-conquer-patch-centre/3/ before No-CD/4GB/Mods


!!! Ensure the game is patched up-to-date: Generals 1.08 + Zero Hour 1.04 and is in working condition !!!
Look for Zero Hour 1.04 at the bottom of in-game Option menu AND Test run a sandbox Network game before proceeding.



ROTR Manual Install

For PC

1. copy C:\Games\Zero Hour\ to C:\Games\ROTR\
2. run ROTRBeta_185.exe and install to an empty directory e.g. C:\tmp_rotr
3. copy C:\tmp_rotr\ .gib files to C:\Games\ROTR\ and rename all to .big
4. copy C:\tmp_rotr\0000000.016, 00000000.256, Install_Final.bmp and overwrite the ones in C:\Games\ROTR\
5. copy C:\tmp_rotr\Data\Movies\ROTR_Intro.bik to C:\Games\ROTR\Data\Movies\
6. copy C:\tmp_rotr\WorldBuilder_ROTR.exe to C:\Games\ROTR\
7. delete C:\Games\ROTR\Data\Scripts

Test run C:\Games\ROTR\generals.exe and see if it works. Make a backup of the directory and registry at this stage helps to avoid repeating the above steps.

You can now choose to install two optional components before cleanup with Uinst_ROTR_Beta185.exe
C:\tmp_rotr\ROTRMapPack_V2.exe
For SWR.NET to work, not only you need C:\tmp_rotr\SWRNetSetup.exe (required .NET4.0 and SWRNet2.x update), but also the launcher from the installer. Meaning if you want to use SWR.NET, you shouldn't be using this Manual Install in the first place.


For Mac with CrossOver(Wine)
Assuming game installed in a CNC bottle:
Generals: /Users/USERNAME/Library/Application Support/CrossOver/Bottles/CNC/drive_c/Games/Generals/
Zero Hour: /Users/USERNAME/Library/Application Support/CrossOver/Bottles/CNC/drive_c/Games/ZeroHour/

1. Duplicate ../Games/ZeroHour/ to ../Games/ROTR/
2. Run command... ROTRBeta_185.exe and install to ../tmp_rotr/
3. copy ../tmp_rotr/ .gib files to ../Games/ROTR/ and rename all to .big
4. replace ../tmp_rotr/0000000.016, 00000000.256, Install_Final.bmp under ../Games/ROTR/
5. copy ../tmp_rotr/Data/Movies/ROTR_Intro.bik to ../Games/ROTR/Data/Movies/
6. remove ../Games/ROTR/Data/Scripts

Create launcher with "/Users/USERNAME/Library/Application Support/CrossOver/Bottles/CNC/drive_c/Games/ROTR/generals.exe" -xres 1024 -yres 768

You can now choose to install MapPack before cleanup with Uinst_ROTR_Beta185.exe
Run command... ../tmp_rotr/ROTRMapPack_V2.exe
SWR.net does not work due to Windows virtual LAN driver cannot be implemented in CrossOver(Wine).

Note:
ROTR Patch 1.86 follows the same process, read \tmp_rotr\ROTR185_Lnchr.dat in text editor for details on file placement.



Troubleshooting
Tips & tricks in this section are gathered from different sources, may provide source link when appropriate. All credits goes to the respective authors.
Depends on the type of crash, the log ReleaseCrashInfo.txt can be found at \My Documents\ or \My Documents\Command and Conquer Generals Zero Hour Data\

TYPE 1 Crash - "You've encountered a Fatal error/Serious error has occurred"
Symptom: When playing Skirmish with 3+ brutal AI/players in large map, 100+ units, 5-15 mins into the game, it goes slow then crash.

Reason: https://msdn.microsoft.com/en-us/library/windows/desktop/aa366912(v=vs.85).aspx, therefore by design, the game must rely heavily on virtual memory in order to function. To make matter worse, Zero Hour has serious memory leak which exacerbate the issue. The longer you play, the more data pileup in physical memory then chew up virtual memory which unable to release any of it, ending in crash. Restart the game won't help, only a reboot can.

Solution(s):
This solution may or may not alleviate your problem, please read the next comment by Graion Dilach. Use at your own risk.
a. http://www.wikihow.com/Fix-Virtual-Memory
b. http://ntcore.com/4gb_patch.php (Also works on world builder and any 32bit apps too!)

!!!!! Note that only TFD use generals.exe as an executable, other versions use game.dat with generals.exe as a loader. In this case, patch game.dat instead !!!!!

If the 4GB patch failed to work, use CFF Explorer to patch it manually (see screenshot).

Source: Gavin Arnette Jul 17, 2014, 11:41pm EDT
http://www.hardwareanalysis.com/content/topic/15623/?o=620


TYPE 2 Crash - "Technical Difficulties"
Symptom: crash right after launcher screen with message

Reason(s):
a. applied NoCD patch without patching to 1.04
b. malfunction NoCD patch
c. corrupted registry key
d. left over files from other mod(s), being renamed, corrupted by .big editor or missing major game files
e. malfunction Game.ini, Option.ini
f. ReleaseCrashInfo report "Uncaught Exception during initialization"
g. missing MS Visual C++ components
h. shellmap (menu background animation) in some case caused by patches or conflict from other mods

Solution(s):
a. reinstall > apply official patch > apply unofficial patch if applicable > apply NoCD patch > apply 4GB patch
b. replace generals.exe with one from TFD unofficial patch 1.03
c. compare registry key with the http://answers.microsoft.com/en-us/windows/forum/windows_7-gaming/running-command-conquer-generals-on-windows-7/7503bd73-4cf1-42e4-ae8d-3aaef6f64ba0?page=4&auth=1
d. replace the corrupted files by comparing against the attached file list for diagnostic OR do a clean install
e. restore files from clean backup
f. run generals.exe with http://forums.swr-productions.com/index.php?showtopic=10103&view=findpost&p=121032
g. install Microsoft Visual C++ 2008 Redistributable Package (x86) http://www.microsoft.com/en-us/download/details.aspx?id=29
h. skip shellmap by running generals.exe -quickstart

Source: http://www.gamereplays.org/cnczerohour/portals.php?show=index&name=gentool&tab=8280900


TYPE 3 Crash without error
Symptom: the game/launcher close to desktop without error

Reason(s):
a. Windows update blocked SecureROM CD-Check function
b. ReleaseCrashInfo report "Error parsing INI file 'Data\INI\GameData.ini", being modified directly with FinalBig or replaced with an incompatible one from elsewhere.
c. ReleaseCrashInfo report "Uncaught Exception in GameEngine::updateLast"
d. Unsupported screen resolution was used in Option.ini

Solution(s):
a. use a http://forums.swr-productions.com/index.php?showtopic=10103&view=findpost&p=121032
b. restore !Rotr_INI.big if it's been modified OR replace GameData.ini with the one in !Rotr_INI.big before attempt to adjust settings
c. use http://www.howtogeek.com/howto/10436/using-program-compatibility-mode-in-windows-7/ on generals.exe
d. use Standard 4:3/Widescreen 16:9 screen resolutions with generals.exe -xres xxxx -yres xxxx to run tests before applying permanently (avoid Widescreen 16:10 and Ultra-Widescreen as it has serious vert - problem)


Launcher Error - "access to path is denied"
Reason: ROTR installed with non-administrator permission (failed to write run-time application data to %ProgramFiles%)

Solution(s):
a. change permission for game directory, sub-directories and files to your user account
b. run compatibility mode with administrator privileges on generals.exe
c. reinstall ROTR as administrator


Launcher Freeze with SWR.net Turned ON
Reason: .NET version & visual C++ version may not be compatible with ROTR Launcher and SWR.net on Windows 8

Solution(s):
a. update .NET & C++
b. read the manual install guide and skip ROTR Launcher and SWR.net


Install error
Reason: This Mod has been installed in the frong(wrong) folder

Solution: read the manual install guide and install everything to Games


Lag
Symptom: the game lag in skirmish with 4+ AI and loads of units, frame rate dropped to 5fps and render it unplayable

Reason(s):
a. game's memory leak
b. path finding issue by the game engine SAGE and poor AI script from certain maps

Solution(s):
a. See TYPE 1 Crash above
b. For Windows 7 or above, NTFS formatted drive. Turn off windows indexing on the game directory and all sub-directories

Source: http://forums.swr-productions.com/index.php?showtopic=5964&view=findpost&p=99977

 

 Zero_Hour_File_List.txt ( 491bytes ) : 13
 

Posted by: Graion Dilach 25 Oct 2015, 9:52

Do not increase your virtual memory to 10-20 GB without backing up with at least 4-8 GB physical RAM.

Windows memory management will then try to cache everything and the performance you would gain by that will be wasted into paging back and forth between - copying virtual memory segments from HDD to RAM and back all the time. The suggested VM sizes are between 1.5-2* of your physical RAM size.

Also this is wrong:

QUOTE (AceMaster @ 28 Sep 2015, 8:55) *
A 32bit program can address up to 4GB of physical address space (in RAM), however, by default, any 32bit process can only utilise 2GB, therefore by design, the game must rely heavily on virtual memory in order to function.

The address space defined in that article is for both physical and virtual memory. If you want to go technical: your available memory address space will be the sum of your physical and virtual memory size and your RAM always have some portions of it("pages"). The OS will detect if a process requires the use of a page not available in the RAM at the moment and will change - copy the least used page back to HDD, and rewrite that page address space with the affected page in the RAM - before letting the process to continue. The memory addresses gets remapped via specialized hardware between this available memory space and your physical RAM addresses afterall.

Increasing the virtual memory to ludicrous sizes increase both the VM file on your HDD, the amount of pages and will encourage Windows to separate every process to their own pages and that'll cause expensive throttling because even if you don't think about it, an average PC always run at least 40-80 processes.

This also means that the 2 GB memory limit per 32bit process is applied to this available memory space which includes virtual memory within itself already.

Just because one guy can solve the memory leaking of Generals with ludicrous VM size and back the paging up with ludicrous hardware, that is still not a solution.

Posted by: AceMaster 25 Oct 2015, 10:35

QUOTE
Do not increase your virtual memory to 10-20 GB without backing up with at least 4-8 GB physical RAM.
Windows memory management will then try to cache everything and the performance you would gain by that will be wasted into paging back and forth between - copying virtual memory segments from HDD to RAM and back all the time. The suggested VM sizes are between 1.5-2* of your physical RAM size.

... your available memory address space will be the sum of your physical and virtual memory size and your RAM always have some portions of it("pages"). The OS will detect if a process requires the use of a page not available in the RAM at the moment and will change - copy the least used page back to HDD, and rewrite that page address space with the affected page in the RAM - before letting the process to continue. The memory addresses gets remapped via specialized hardware between this available memory space and your physical RAM addresses afterall.


So you are saying: If we want to avoid the problem with https://en.wikipedia.org/wiki/Virtual_memory#Paging_supervisor, be sure to have an SSD for VM and at least 8GB of RAM before attempting to increase virtual memory?

Any suggestions regarding the optimal RAM size for different version of Windows that run Zero Hour?


QUOTE
Also this is wrong:
QUOTE
A 32bit program can address up to 4GB of physical address space (in RAM), however, by default, any 32bit process can only utilise 2GB, therefore by design, the game must rely heavily on virtual memory in order to function.

It is now adjusted to reflect your input and reference.


QUOTE
This also means that the 2 GB memory limit per 32bit process is applied to this available memory space which includes virtual memory within itself already.


Does that mean the 4GB patch that help the 32bit process to address larger memory space is useless in our case?


Technical Reference:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa366914(v=vs.85).aspx
http://superuser.com/questions/367490/can-a-32-bit-os-machine-use-up-all-8gb-ram-20gb-page-file
http://www.tomshardware.com/forum/266892-30-memory-apps

Utilising More Than 4GB of Memory in a 32-bit Windows Process
http://www.chrisoldwood.com/articles/utilising-more-than-4gb.html

Posted by: Graion Dilach 25 Oct 2015, 10:54

The 4GB patch isn't useless because it does break the barrier of that 2GB memspace limit (assuming you're running an x64 system). On x86 systems - since Windows disabled PAE in XP SP1 due to drivers going mad - the 4GB patch does not make a difference.

You can increase your VM, but don't go beyond twice of your RAM, really - in these cases the OS is kinda forced to share pages between processes leading to better overall memory consumption. Maintaining the VM on the SSD does help but it's not necessary. Virtual memory itself got the hardware support within the 80386 era afterall and even your first Win95/98 had this feature.

There is no memory suggestion, I don't know if that memory leak that guy blames do exist or not, but - let's assume it does - the generic "the more the merrier" always applies to this case, that and the memleak will not disappear just by expanding memory. I'm not certain about what measurements the Windows releases gained to catch memleaks - Win8 did introduced one catching mechanism, which is the cause of YR crashing when you start your second game.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)