VOGONS

Common searches


MechWarrior 3 on Windows 7: Yet ANOTHER Solution

Topic actions

  • This topic is locked. You cannot reply or edit posts.

First post, by SpeedySPCFan

User metadata
Rank Member
Rank
Member

Greetings. I've been trying for a few months now to get MechWarrior 3 working on Windows 7 to no avail, but I finally found/sort of made a solution that works with my i7 and dual 770s. This fixes physics and most rubberbanding issues.

(NEW METHOD, MINOR APC BOUNCING, NO RUBBERBANDING, EVERYTHING ELSE WORKS)

!IMPORTANT! MAKE SURE YOUR SETTINGS MATCH THIS (resolution does not matter) OR THE GAME MAY BE UNPLAYABLE! http://puu.sh/gnsgm/00e0cd5291.jpg
(DirectDraw HAL MUST be select as it is the DirectDraw emulator for WineD3D)
1: Get WineD3D 1.1.14.
2: Let it finish downloading, but do NOT install it. Open it with 7zip and go into the directory "$SYSDIR" from inside the archive.
3: Copy every file ending in .DLL from that folder into your MechWarrior 3 install folder.
3.5 (Extra Nvidia Step): Go to your Nvidia Control Panel, Manage 3D settings, and go to Mech Warrior 3 (Mech3.exe), and change Threaded Optimization to Off.
4: Download ImageCFG.
5: Open a new explorer window, and in the directory bar, put this in: "%systemroot%\system32" without quotes
6: Place ImageCFG in there.
7: Open up a Command Prompt window (you may need to run as admin) and input this (WITH quotes): imagecfg -a 0x1"[MECHWARRIOR3DIRECTORY]\Mech3.exe" Replace "[MECHWARRIOR3DIRECTORY] with the installation path of the game.
8: You're done! You may optionally want to get a program to limit the games framerate, but I found it runs stunningly well at 60FPS. Can't believe it was this simple to fix the game, and I spent 3 months on this! :3

(ALTERNATE METHOD, USE THIS IF THE PREVIOUS ONE DOES NOT WORK)
(I'm not sure if this bit is required. Feel free to try the game without it, but I'm using it with no issues.)
1: Get dgVoodoo, the latest version. Most earlier versions are missing the D3D wrapper we need.
2: Put the dgVoodooSetup.exe, D3DImm.dll, and DDraw.dll files in your MechWarrior 3 directory.
3: Run dgVoodooSetup.exe and match your DirectX settings to this.
4: Open up MechWarrior 3 and set your Video Device to dgVoodoo, and your Video Memory to 2MB.
(Required bits now.)

1: Get some sort of FPS limiter (Most recording software has this, there are also dedicated programs. I recommend Bandicam)
2: Set it to 20 frames per second.
3: Start Mechwarrior 3. The game MIGHT work now. If it doesn't, proceed onward.
4: Close MechWarrior 3 and download CPU Grabber (set to run on one CPU).
5: Put it where you have MechWarrior 3 installed and run it.
5.5 (Extra Nvidia Step): Go to your Nvidia Control Panel, Manage 3D settings, and go to Mech Warrior 3 (Mech3.exe), and change Threaded Optimization to Off.
6: Download ImageCFG and put it in your MechWarrior 3 directory.
7: Open up a Command Prompt window and navigate to where you installed MechWarrior 3.
8: Type this into the window: imagecfg mech3.exe -a 0x1 - and press enter.
9: Set CPU Grabber to 85% for i5/i7s. You may need to toy around with lower values if you have a weaker CPU or want to record the game.
10: You should be good to go. I finished the first mission with no bouncing APCs or any of that crap.

Side notes for both methods:
The game seemingly freezes during loading screens when loading some maps. But WAIT! IT'S NOT ACTUALLY FROZEN! Press Crtl + Alt + Del and go to Switch User. Once your monitor is done finishing resolutions, click on your user again. The map will be fully loaded. Wait 5 seconds in the Switch User screen to prevent any issues like below.

Windows 8/8.1 users:

Mr.Blade wrote:

As mentioned in this topic: Universal fix for DirectX 7/6 games running slow Windows 8.1?

I also noticed that the FPS limiter, for example in MechWarrior 3, can be deactivated by pressing Alt + Tab and (instantly) switching back into the game. Unfortunately, the HUD and mouse positioning is messed up then. Weird.

The game sometimes runs in a small window after switching users. No fix for that as far as I'm aware, I guess just get really close to your monitor? If you're recording for a review or something, you can crop the video later I presume.

Running the game in 1024x768 seems to cause a small delay with the game when it loads. This may require alt-tabbing out in some way and then going back in. The framerate also turns in to a "silky smooth" 37 FPS. :P

For some reason, some missions seem to have rubberbanding. It's not like it was before, but it's a bit noticable. Buuuuut, the physics are working fine. You can probably just limit the game to 30FPS and it'll be almost totally gone.

Last edited by SpeedySPCFan on 2015-03-05, 20:07. Edited 13 times in total.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 1 of 17, by beatcracker

User metadata
Rank Newbie
Rank
Newbie
SpeedySPCFan wrote:

7: Go into Task Manager and right click on Mech3.exe. Set the Affinity to CPU 0 and CPU 0 ONLY

It would be easier to patch Mech3.exe with imagecfg to force single-cpu mode, than manually assign affinity at every launch:

This command is probably optional. It sets the exe to use only one CPU:

  • imagecfg -u Mech3.exe

This is the important one. It sets the exe to use CPU0:

  • imagecfg -a 0x1 Mech3.exe

Reply 2 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
beatcracker wrote:
It would be easier to patch Mech3.exe with imagecfg to force single-cpu mode, than manually assign affinity at every launch: […]
Show full quote
SpeedySPCFan wrote:

7: Go into Task Manager and right click on Mech3.exe. Set the Affinity to CPU 0 and CPU 0 ONLY

It would be easier to patch Mech3.exe with imagecfg to force single-cpu mode, than manually assign affinity at every launch:

This command is probably optional. It sets the exe to use only one CPU:

  • imagecfg -u Mech3.exe

This is the important one. It sets the exe to use CPU0:

  • imagecfg -a 0x1 Mech3.exe

Alright, thanks! I'll try that out and if it works, I'll add it to the guide.

EDIT: It works for MW3! Couldn't get it to work with CPUGrabber, so that'll have to be manually assigned.

EDIT 2: Screw that noise! Found a setting in the Application Compatibility Toolkit, so I was able to force CPUGrabber to CPU0. Whoo!

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 4 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
idspispopd wrote:

Wouldn't something like Battle Encoder Shirase be better suited than CPUGrabber?

Just googled it now, I'm gonna have to try that in a bit. Looks interesting, thanks for the heads up!

EDIT: Nope. Stuttering is introduced with BES no matter the setting, the rubberbanding isn't fixed, and the game runs worse overall. Values of around 40 or above in BES cause the sound to cut in and out constantly.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 5 of 17, by idspispopd

User metadata
Rank Oldbie
Rank
Oldbie

OK, sorry for the false hope!
I previously used it to reduce CPU consumption for Caesar 3 which only needs Pentium-1 level performance but will happily keep one CPU core busy without any advantages like smoother graphics. IIRC it worked fine.
I haven't used it to actually slow down a game.

Reply 6 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
idspispopd wrote:

OK, sorry for the false hope!
I previously used it to reduce CPU consumption for Caesar 3 which only needs Pentium-1 level performance but will happily keep one CPU core busy without any advantages like smoother graphics. IIRC it worked fine.
I haven't used it to actually slow down a game.

It's fine, it was an interesting idea. I just appreciate that you even suggested it. 😎

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 7 of 17, by Mr.Blade

User metadata
Rank Newbie
Rank
Newbie

As mentioned in this topic: Universal fix for DirectX 7/6 games running slow Windows 8.1?

I also noticed that the FPS limiter, for example in MechWarrior 3, can be deactivated by pressing Alt + Tab and (instantly) switching back into the game. Unfortunately, the HUD and mouse positioning is messed up then. Weird.

I guess the problem is not related to the DirectX Emulator Windows 8 might use, it's probably rather linked to the Desktop Window Manager (dwm.exe) or to the Modern UI.

Banner01_Small.jpg

Reply 8 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
Mr.Blade wrote:

As mentioned in this topic: Universal fix for DirectX 7/6 games running slow Windows 8.1?

I also noticed that the FPS limiter, for example in MechWarrior 3, can be deactivated by pressing Alt + Tab and (instantly) switching back into the game. Unfortunately, the HUD and mouse positioning is messed up then. Weird.

I guess the problem is not related to the DirectX Emulator Windows 8 might use, it's probably rather linked to the Desktop Window Manager (dwm.exe) or to the Modern UI.

Ah, I didn't experience that mainly because I didn't alt-tab super fast. It usually took me at least 5 seconds to get back into the game. Thanks for the heads up, appended to the OP.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 9 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member

Bumping, because I found a new method that needs NO limiting of any sort, except binding the game to CPU 0, AND runs at 60FPS with pretty much no issues.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 11 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
Stiletto wrote:

Why would you use such an OLD version of WineD3D? 😳

Newer ones are missing the DDraw.dll that is needed for Mech3. I'm going to play around a bit with later versions though because using one that old irritates me, but I don't know if version after that have it.

EDIT: 1.1.38 has the DLL. Going to test soon.

EDIT 2: Tested it, the game locks up at any resolution exceeding 640x480, and the rubberbanding is present. 😒

Last edited by SpeedySPCFan on 2015-03-05, 19:39. Edited 1 time in total.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 13 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
AidanExamineer wrote:

If only you'd figured this out a few weeks ago, you could have saved me DAYS of capturing footage on my 98 box!

Not that I wouldn't have anyway...

Heh, at least there's a way to play the game with stability on Windows 7 now. The 98 box footage could be nice though to demonstrate the game with no compatibility problems.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 14 of 17, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
SpeedySPCFan wrote:
Newer ones are missing the DDraw.dll that is needed for Mech3. I'm going to play around a bit with later versions though because […]
Show full quote
Stiletto wrote:

Why would you use such an OLD version of WineD3D? 😳

Newer ones are missing the DDraw.dll that is needed for Mech3. I'm going to play around a bit with later versions though because using one that old irritates me, but I don't know if version after that have it.

EDIT: 1.1.38 has the DLL. Going to test soon.

EDIT 2: Tested it, the game locks up at any resolution exceeding 640x480, and the rubberbanding is present. 😒

Bleeding edge cross-compiles, includes ddraw.dll.
http://sourceforge.net/projects/wined3d4win/

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 15 of 17, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
Stiletto wrote:
SpeedySPCFan wrote:
Newer ones are missing the DDraw.dll that is needed for Mech3. I'm going to play around a bit with later versions though because […]
Show full quote
Stiletto wrote:

Why would you use such an OLD version of WineD3D? 😳

Newer ones are missing the DDraw.dll that is needed for Mech3. I'm going to play around a bit with later versions though because using one that old irritates me, but I don't know if version after that have it.

EDIT: 1.1.38 has the DLL. Going to test soon.

EDIT 2: Tested it, the game locks up at any resolution exceeding 640x480, and the rubberbanding is present. 😒

Bleeding edge cross-compiles, includes ddraw.dll.
http://sourceforge.net/projects/wined3d4win/

Fancy. Gonna try it out in a bit.

EDIT: Boo, it needs hex editing 🙁 That's outta my league

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 17 of 17, by sclark1000

User metadata
Rank Newbie
Rank
Newbie

MechWarrior3 Lovers: Good news, at least I hope so, and that the solution I found for my platform will work as well for you. Quite simple, actually.

Click on this hyperlink:

http://www.play-old-pc-games.com/compatibilit … oodoo-tutorial/ [www.play-old-pc-games.com/compatibility ... o-tutorial]

Read and follow the instructions. Download the zip file and extract its contents to the sub-directory on your drive that contains the MechWarrior executable. You may encounter some minor issues as regards your joystick and sounds but these are not relevant to the Voodoo wrapper.

After days and sleepless nights trying any and everything else I could think of or read about online, I reckoned I was going to have to give up. Then, I stumbled on this and, in only a few minutes, was up and running. Good luck everybody.