Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

Mass Effect 1: destined to become unplayable?

General chat about Mass Effect or otherwise.

Mass Effect 1: destined to become unplayable?

Postby dosse91 » 13 Aug 2014, 12:01

A friend and I have been discussing a lot about 2 problems in Mass Effect 1 that could make it impossibile to play in the near future:
-The AMD FX bug: the game detects AMD CPU, tries to use optimized 3dnow code, but AMD removed those instructions from the latest processors, making some levels unplayable on AMD CPUs. This can be easly fixed by using an Intel processor, however, I'm pretty sure there's a way to make the game "think" it's running on an Intel processor by modifying the CPU detection code (I think I found it around offset D01EC0 in MassEffect.exe). My reverse engineering skills, however, are very limited and I have no idea how to do it.
-The low performance bug: this is the main problem, and threads about it have been popping up since around 2010. With a lot of time and spare hardware on our hands, we've analyzed it on 4 different CPUs and 13 different GPUs. Let's discuss about it.

Testing procedure:
-Fresh install of Windows 7 or 8.1
-Installed latest drivers for all devices
-Installed ME1 from disc, with 1.02 patch, reloaded crack and nothing else
-Set the graphics settings to maximum, 1080p resolution
-Went right in front of the galaxy map, which is one of the spots where this problem is very evident

Hardware:
CPUs: i7 2600k (@3.4GHz, then OC'd @4.6GHz), i5 3570, Pentium G3220, AMD Phenom x6 1100t
GPUs: AMD x1650, HD3870, HD6670, HD5870, HD6970, HD7850, 290x; NVIDIA 8800GTS, 9800GX2, GTX770, GTX Titan; Intel HD3000, HD4000
Memory: 8GB DDR3 @1.6GHz

The results:
We run the game with absolutely nothing else running in the background.
It is well known that ME1 is a CPU-bound game, yet the G3220 did pretty well despite being a very cheap CPU. In other words, the different processors didn't seem to influence the performance of the game.
Switching GPUs, however, revealed a quite shocking trend:
Performance while looking at galaxy map (I've ordered the cards by "raw power"):
-HD3000: 5-10 fps
-HD4000: ~ 10 fps
-x1650: ~ 10fps
-8800 GTS: 25-30 fps
-HD3870: 25-30 fps
-HD6670: 40-50 fps
-9800GX2: 50-60 fps (then it overheated and started glitching)
-HD5870: 60 fps, rare drops to 30 fps while driving the mako
-HD6970: 50-60 fps, rare drops to 30 fps while driving the mako
-HD7850: 35-50 fps
-GTX770: 20-30 fps
-GTX Titan: 15-20 fps
-290x: unplayable 9-12 fps
In other words: the faster the GPU, the lower the framerate.
I doubt it's a driver issue since both AMD and NVIDIA cards are affected, and think it's some sort of synchronization issue because when this happens, 2 CPU cores work at 100% (game uses 2 threads), and overclocking the CPU !WHILE RUNNING THE GAME! improves the situation.

What we tried:
-every single solution we could find on the internet by searching Mass Effect stuttering, Mass Effect low fps, Mass Effect lag and so on.
-manually editing INI files to see if there was some setting that could be causing it (for instance, we disabled FPS smoothing)
-disabling sound (ME1 is known to have buggy sound system)
-UNDERCLOCKING modern GPUs, which seemed to improve the performance a little (for instance on the GTX770 with a -60% on both core and vram we went from 19 to 34 fps)
-Switching resolution or switching between window and fullscreen greatly increases the performance. For instance on the GTX770 we go from 19 fps to 56, and on the 290x from 9 to 30.


So here we ask you, almighty WV, what do you think of these issues? Could there be some way to fix them? Should we build a "time capsule" to play Mass Effect 1 in the future?
dosse91
User
 
Posts: 11
Joined: 13 Aug 2014, 11:23
Has thanked: 0 time
Have thanks: 0 time

Re: Mass Effect 1: destined to become unplayable?

Postby WarrantyVoider » 13 Aug 2014, 12:56

thats alot of effort you put into this, but I have no idea either. I know anyone can start reversing the code in mass effect 1 executable, but I have no idea how to optimize bad coding if I only have compiled binarys. One could try to rewrite critical functions and replace them, but thats very very hard (see me3 on the hook f.e.). in principle, you ask me to debug and fix a game I have no code for and that isnt even made by me, so just sorry, but wouldnt know. im surprised I came that far already :P

greetz WV

PS:about amd bug, heres how reversing would work: firsk ask how code "usually" looks like to finds that even out, or if thats done on directx/driver side. in any case, find code in the game that does use this (usually by special commands, so search for where they are used). finally find out if you can use that call to modefy it to always return "Intel" card
PPS:im a graphic card noob btw, I wouldnt even know which one I have until I look it up, I only know abit about how they are used over directx
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: Mass Effect 1: destined to become unplayable?

Postby mirh » 14 Aug 2014, 11:58

So, I did some researches here and here.

This seems to be the dirtiest and quickest solution out there, even though tricking all programs on the computer isn't the better solution.
Vendor ID reported by CPUID are listed on wikipedia

Then here (in the workarounds section) we have some more elegant ideas

If you want to continue on the reverse engineering route, check this and this tips

This tool deserves a look too.
EDIT: all the effort in the world didn't help


Speaking of the performance issues... are they like.. stuttering or just random decreases of FPS?
I would try first do defragment your disk, with a program which is not the standard Windows built-in defragmenter

And then... I don't really believe this could change something.. but why you don't try to install legacy PhysX? (deleting PhysX dlls inside Binaries folder could be required)

btw what do you mean with bugged sound system? Afaik ISACT had only some problems with detecting hardware accelerated audio, which meant you couldn't have surround sound without an .ini edit...

And did you checked whether the lag is caused by CPU or GPU bottleneck? (MSI afterburner is a very good program to test this)
Last edited by mirh on 15 Aug 2016, 23:15, edited 3 times in total.
mirh
User
 
Posts: 46
Joined: 04 Nov 2013, 14:16
Has thanked: 66 time
Have thanks: 1 time

Re: Mass Effect 1: destined to become unplayable?

Postby dosse91 » 14 Aug 2014, 17:08

Thanks for replying.

About the AMD bug, the code is around offset D01EBE. I took a look at it and here's how it works:
-call CPUID with EAX=0: this gets the CPU VendorID (GenuineIntel for intel, AuthenticAMD for amd)
-store the string
-call CPUID with EAX=1: get CPU features
-store EDX after the VendorID string
-here it does some strange check: test dword ptr[ebp-4],4000000h (dword ptr[ebp-4] is the copy of EDX, but I don't get the point of this instruction); jz somewhere
That's not checking 3dnow. I don't get it.

As you can see, the game gets the VendorID from the CPU itself so changing the name string in the bios or the OS is pointless.

Basically you'd think that if you replace that, and put garbage into that string, then the game wouldn't recognize the AMD processor and work, right? Well, I've been pretty damn brutal and put the output I got from my 2600k and it didn't change a thing. In other words, the game is doing the check somewhere else, but there are no other CPUID instructions anywhere else in the code, so the check must be buried in some script.

Lastly, I decided to try and edit the process memory, and replace every single fucking instance of AuthenticAMD, AMD, and their unicode versions, anagrams, ANYTHING that could resemble AMD, with something else.
I start the game with the debugger attached to it, suspend it immediately at the splash screen, replace the AMD stuff, resume it, go to Ilos (one of the problematic locations), replace the AMD stuff again just to be paranoid, and guess what? NOTHING, it still glitches. So I guess the check is made when the game is started, then the output is stored somewhere as a boolean. I don't know what to do frankly, I just suck at this stuff.
dosse91
User
 
Posts: 11
Joined: 13 Aug 2014, 11:23
Has thanked: 0 time
Have thanks: 0 time

Re: Mass Effect 1: destined to become unplayable?

Postby dosse91 » 14 Aug 2014, 17:16

And about the performance issue:
Uninstalling PhysX from my system increased the FPS by about 15%, but the problem is still there.
The CPU appears do more stuff if the GPU is faster, and when the GPU is fast enough, the CPU becomes a bottleneck, and the situation gets worse with faster GPUs. It doesn't make any sense.

I've read some time ago of a similar issue in Batman Arkham Asylum (another (badly optimized) UE3 game that abused physx), and it was a texture streaming issue. Disabling texture streaming in ME1 however does nothing but make most textures black, the framerate is still low.
dosse91
User
 
Posts: 11
Joined: 13 Aug 2014, 11:23
Has thanked: 0 time
Have thanks: 0 time

Re: Mass Effect 1: destined to become unplayable?

Postby mirh » 15 Aug 2014, 00:00

Hacking game memory after it loaded the bugged runtime isn't really useful indeed.
Anyhow, wikipedia mentions 3dnow extension is specified in EAX=80000001h

But you said you have a Phenom x6 1100t and that's still running old K10 architecture which should still support 3Dnow! extensions..
This does not have much sense..

And speaking of nonsense.. You uninstalled PhysX.. I believe you wasn't using the legacy version, but instead the current one.. correct?
If this is right.. well, the fact is that Mass Effect just wants PhysX 2.7.2.. and that's only available in its main folder and in the legacy PhysX installer I previously posted the link..
So this really doesn't explain how/where you could have this big improvement

Also, take note there's a crappy as hell registry setting which may interfer
mirh
User
 
Posts: 46
Joined: 04 Nov 2013, 14:16
Has thanked: 66 time
Have thanks: 1 time

Re: Mass Effect 1: destined to become unplayable?

Postby dosse91 » 15 Aug 2014, 08:00

My laptop has an AMD APU in it, I'm using that one for the 3dnow bug.
Legacy physx didn't change anything. When I uninstalled physx (the regular one), the game simply used the DLLs in its directory and for some reason (I don't know why), it gave it a small performance boost.
dosse91
User
 
Posts: 11
Joined: 13 Aug 2014, 11:23
Has thanked: 0 time
Have thanks: 0 time

Re: Mass Effect 1: destined to become unplayable?

Postby Ottemis » 15 Aug 2014, 11:30

On the GPU test did you do those with an AMD processor? I was talking this over with some friends yesterday and one of them mentioned he was getting 60 fps stable on the 290x with an intel core so I'm assuming this is the case as you logged 9-12 fps on the same card.

We were theorizing this is why some people hate the Mako, the particle effects planet side have a tendency to cause an fps nosedive and the lower the fps, the harder it becomes to drive it.
I've personally experienced this performance issue on my former PC and a friend of mine was still experiencing it on her last two builds but has now said she'd try it again as she updated to an i5 recently.
User avatar
Ottemis
Harbinger
 
Posts: 824
Joined: 11 Mar 2013, 12:14
Has thanked: 225 time
Have thanks: 247 time

Re: Mass Effect 1: destined to become unplayable?

Postby dosse91 » 15 Aug 2014, 12:38

Ottemis wrote:On the GPU test did you do those with an AMD processor? I was talking this over with some friends yesterday and one of them mentioned he was getting 60 fps stable on the 290x with an intel core so I'm assuming this is the case as you logged 9-12 fps on the same card.

We were theorizing this is why some people hate the Mako, the particle effects planet side have a tendency to cause an fps nosedive and the lower the fps, the harder it becomes to drive it.
I've personally experienced this performance issue on my former PC and a friend of mine was still experiencing it on her last two builds but has now said she'd try it again as she updated to an i5 recently.


Interesting... can you post the full specs of your PC, including installed software?
I did the tests on all processors, and there are minimum differences between them.
dosse91
User
 
Posts: 11
Joined: 13 Aug 2014, 11:23
Has thanked: 0 time
Have thanks: 0 time

Re: Mass Effect 1: destined to become unplayable?

Postby Ottemis » 15 Aug 2014, 14:51

As I don't have this issue anymore on current build I reckon you're looking for the information from both my friends? The one with the 290x and the one that used to have an AMD core now intel? I'm afraid the latter didn't run fraps regularly and doesn't know her exact fps number on the old setup, she could possibly provide new numbers with her i5 if she re-installs the game.
If you can be a bit more specific as to what installed software you're interested in I could possibly get that info. Is that whatever is standardly running on the system or literally everything they have installed? I doubt I could coax them to provide such a list, its no doubt quite extensive.
User avatar
Ottemis
Harbinger
 
Posts: 824
Joined: 11 Mar 2013, 12:14
Has thanked: 225 time
Have thanks: 247 time

Next

Return to Off Topic

Who is online

Users browsing this forum: No registered users and 1 guest

suspicion-preferred