VMware Communities
pschmutzler
Contributor
Contributor

Updated to 3.1.2, now games won't run

I've been running Win XP (all updated) for months and just recently updated Fusion 3.0 to 3.1.2.  After that update, Medal of Honor Allied Assault refuses to run.  It crashes on startup every time.  I've tried reinstalling and updating Fusion and reinstalling the game.  Any ideas on what the problem is, or what info I need to add to this post?  I'm running identical VMs on a Macbook Pro Core i7 and an iMac Core 2 Duo.

0 Kudos
14 Replies
aurelius7
Contributor
Contributor

Did you get this resolved? Overall, just wanted to say you are not alone and I haven't figure it out yet.

0 Kudos
pschmutzler
Contributor
Contributor

No, I haven't fixed it, and I haven't gotten any feedback on a possible solution.

Paul

0 Kudos
aurelius7
Contributor
Contributor

I am not sure where OpenGL or Video drivers problems are on the "fix" stack for VMWare. Overall, I am so glad you posted that it worked on a previous version and not 3.1.2. That tidbit has lead me to dig in into the games' config files just like we did when the game debuted for the PC. In the end, as you may know, it was a matter that video driver's broke the game. So far, I've tested with regular CD, NOCD, and adjusted the config files. Also, this was done with Allied Assault, Spearhead, and, BreakThrough. No luck yet, but I am looking at how to change out drivers. I read somewhere else in the VMware forum of using a WDDM driver vs the SVGA II driver. No luck with that. Heck, I am able to run Quake 3 Arena, but the brightness control (in game) produces a null effect. I am going to try to install an OpenGL driver update to see what happens. If Quake 3 can atleast run, I am not sure how far getting MOHAA to run is.

Have you looked at your startup log? MOHAA load up, but stops at a line that I can't reproduce right now. I'll post it later in case somebody else might be searching for clues.

Of course, I could be totally off on my approach method on this. If SVGA II driver is the key to have the game access the resources in the manner the game needs, there is nothign the end user can do. A driver that breaks a game that worked before is a broken driver.

I really would like to have this game running as it is purely a fun game for me and my friends...lots of fun memories. Quake 3, UT, and Halo work...so I am happy for now. MOHAA would be fun. I don't think I would like to push Battlefield on a VM.

I'll post back if my OpenGL update works.

0 Kudos
aurelius7
Contributor
Contributor

Just in case somone is looking:

qconsole's last log entry when MOHAA crashes to the desktop using the "SafeMode" option

====BOF

Current search path:
C:\GAME\MOHAA/main
C:\GAME\MOHAA\main\pak6.pk3 (104 files)
C:\GAME\MOHAA\main\Pak5.pk3 (259 files)
C:\GAME\MOHAA\main\Pak4.pk3 (593 files)
C:\GAME\MOHAA\main\Pak3.pk3 (669 files)
C:\GAME\MOHAA\main\Pak2.pk3 (4722 files)
C:\GAME\MOHAA\main\Pak1.pk3 (772 files)
C:\GAME\MOHAA\main\Pak0.pk3 (11175 files)

handle 1: qconsole.log
----------------------
18294 files in pk3 files
execing default.cfg
execing menu.cfg
execing newconfig.cfg
Config: unnamedsoldier.cfg
couldn't exec configs/unnamedsoldier.cfg
execing safemode.cfg
couldn't exec localized.cfg
execing autoexec.cfg
Unknown command "fov"
couldn't exec custom.cfg
...detecting CPU, found Intel Pentium III

------- Input Initialization -------
Initializing DirectInput...
Couldn't set DI coop level
Falling back to Win32 mouse support...
------- Input Initialization Complete ------- 43
You are now setup for easy mode.
----- Client Initialization -----
Called FadeSound with: 0.000000
----- Initializing Renderer ----
----- R_Init -----
Initializing OpenGL subsystem
...initializing QGL
...calling LoadLibrary( 'C:\WINDOWS\system32\opengl32.dll' 😞 succeeded
...setting mode 3: 640 480 FS
...using colorsbits of 16
...calling CDS: ok
...registered window class
...created window@0,0 (640x480)
Initializing OpenGL driver
...getting DC: succeeded
...GLW_ChoosePFD( 16, 16, 0 )
...71 PFDs found
...hardware acceleration found
...PIXELFORMAT 21 selected
...creating GL context: succeeded
...making context current: succeeded
Initializing OpenGL extensions
...ignoring GL_EXT_texture_compression_s3tc
...ignoring GL_ARB_texture_compression
...using GL_EXT_texture_env_add
...using WGL_EXT_swap_control
...using GL_ARB_multitexture
...ignoring GL_EXT_texture_env_combine
...using GL_EXT_compiled_vertex_array
...WGL_3DFX_gamma_control not found

===EOF

0 Kudos
aurelius7
Contributor
Contributor

Just in case somebody wants to cross check ideas against Quake 3 Arena (it works, but Gamma doesn't produce a noticeable change) console log:

===BOF

logfile opened on Fri Mar 04 09:07:35 2011

...detecting CPU, found Intel Pentium III

------- Input Initialization -------
No window for DirectInput mouse init, delaying
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
Initializing OpenGL subsystem
...initializing QGL
...calling LoadLibrary( 'C:\WINDOWS\system32\opengl32.dll' 😞 succeeded
...setting mode 3: 640 480 FS
...using desktop display depth of 32
...calling CDS: ok
...registered window class
...created window@0,0 (640x480)
Initializing OpenGL driver
...getting DC: succeeded
...GLW_ChoosePFD( 32, 24, 0 )
...71 PFDs found
...hardware acceleration found
...PIXELFORMAT 31 selected
...creating GL context: succeeded
...making context current: succeeded
*** IGNORING OPENGL EXTENSIONS ***

GL_VENDOR: VMware, Inc.
GL_RENDERER: Gallium 0.3 on SVGA3D; build: RELEASE;
GL_VERSION: 2.1 Mesa 7.7.1-DEVEL
GL_EXTENSIONS: GL_EXT_compiled_vertex_array GL_EXT_texture_compression_s3tc GL_EXT_texture_env_add GL_ARB_copy_buffer GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shading_language_120 GL_ARB_shadow GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_logic_op GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_draw_range_elements GL_EXT_framebuffer_blit GL_EXT_framebuffer_object GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ATI_blend_equation_separate GL_ATI_separate_stencil GL_IBM_multimode_draw_arrays GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate GL_MESA_window_pos GL_NV_blend_square GL_NV_light_max_exponent GL_NV_packed_depth_stencil GL_NV_texture_env_combine4 GL_NV_texture_rectangle GL_NV_texgen_reflection GL_OES_read_format GL_SGI_color_matrix GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_S3_s3tc
GL_MAX_TEXTURE_SIZE: 4096
GL_MAX_ACTIVE_TEXTURES_ARB: 0

PIXELFORMAT: color(32-bits) Z(24-bit) stencil(0-bits)
MODE: 3, 640 x 480 fullscreen hz:60
GAMMA: hardware w/ 0 overbright bits
CPU: Intel Pentium III
rendering primitives: multiple glArrayElement
texturemode: GL_LINEAR_MIPMAP_NEAREST
picmip: 2
texture bits: 16
multitexture: disabled
compiled vertex arrays: disabled
texenv add: disabled
compressed textures: disabled
SetDeviceGammaRamp failed.
Initializing Shaders
...loading 'scripts/lightningnew.shader'
...loading 'scripts/explode1.shader'
...loading 'scripts/gfx.shader'
...loading 'scripts/tim.shader'
...loading 'scripts/base.shader'
...loading 'scripts/base_button.shader'
...loading 'scripts/base_floor.shader'
...loading 'scripts/base_light.shader'
...loading 'scripts/base_object.shader'
...loading 'scripts/base_support.shader'
...loading 'scripts/base_trim.shader'
...loading 'scripts/base_wall.shader'
...loading 'scripts/common.shader'
...loading 'scripts/ctf.shader'
...loading 'scripts/eerie.shader'
...loading 'scripts/gothic_block.shader'
...loading 'scripts/gothic_floor.shader'
...loading 'scripts/gothic_light.shader'
...loading 'scripts/gothic_trim.shader'
...loading 'scripts/gothic_wall.shader'
...loading 'scripts/hell.shader'
...loading 'scripts/liquid.shader'
...loading 'scripts/menu.shader'
...loading 'scripts/models.shader'
...loading 'scripts/organics.shader'
...loading 'scripts/sfx.shader'
...loading 'scripts/shrine.shader'
...loading 'scripts/skin.shader'
...loading 'scripts/sky.shader'
...loading 'scripts/test.shader'
----- finished R_Init -----

------- sound initialization -------
Initializing DirectSound
------------------------------------
----- Sound Info -----
sound system is muted
    1 stereo
32768 samples
   16 samplebits
    1 submission_chunk
22050 speed
0x89e0050 dma buffer
No background file.
----------------------
Sound memory manager started
Loading vm file vm/ui.qvm.
VM file ui compiled to 594408 bytes of code
ui loaded in 1963008 bytes on the hunk
35 arenas parsed
32 bots parsed
--- Common Initialization Complete ---
Winsock Initialized
Opening IP socket: localhost:27960
Hostname: OLDSCHOOL
IP: 192.168.73.131
Working directory: c:\game\Q3A
^5PunkBuster Client: PunkBuster Client (v0.993 | A0) **DISABLED**
^3PunkBuster Server: PunkBuster Server (v0.993 | A0 C0.0) **DISABLED**
Proceeding with delayed mouse init
Initializing DirectInput...
DirectInput initialized.
SetDeviceGammaRamp failed.
----- CL_Shutdown -----
RE_Shutdown( 1 )
Shutting down OpenGL subsystem
...wglMakeCurrent( NULL, NULL 😞 success
...deleting GL context: success
...releasing DC: success
...destroying window
...resetting display
...shutting down QGL
...unloading OpenGL DLL
-----------------------

===EOF

0 Kudos
pschmutzler
Contributor
Contributor

Well, the error I get is a basic crash screen in XP with a "send report?" screen. It doesn't even get as far as the console screen on startup. I see the splash screen, and then it crashes.

Paul

0 Kudos
TheLoneVM
VMware Employee
VMware Employee

Thanks for the report on this game, it has been entered in our internal bug tracking database. I grabbed the Multiplayer Demo of MoH AA, and was able to repro the crash problem.  Had problems getting it to run on a generic Windows 7 box as well (didn't crash but complains of wrong PIXELFORMAT or something.  I remember one issue we had a long time ago with the Quake 3 engine being picky about the order or number of OpenGL extensions so this might be hitting a similar type problem.  I don't have an immediate fix, but I do have an interesting workaround...

There is an old tool called GLDirect, it intercepts OpenGL calls and translates them to Direct3D calls (yea, exactly the opposite of what we do on Fusion, so meta!).  The actual tool is no longer maintained, but they did release source code, and someone submitted it here:

http://sourceforge.net/projects/gldirect/

Download the zip file, and extract the file "opengl32.dll" from gldirect5\bin\release to the MoH application directory.  Typically C:\Program Files\EA GAMES\MOHAA\ or Program Files (x86) if you are on 64 bit OS.  You should now have MOHAA.exe and this new opengl32.dll file in the same directory. Now try running the game, everything loaded up and looked OK with the demo version of the game for me.

Be sure not to copy this opengl32.dll file to the windows system directory or anywhere else on your system, bad things will happen.

0 Kudos
pschmutzler
Contributor
Contributor

Hurrah for a workaround. I'll try to implement this this week and let you know what results. Thanks for the help.

Paul

0 Kudos
pschmutzler
Contributor
Contributor

Hmmm, seems to fail for me still, but for a different reason. The MoH console now runs but stops with an error of: GLW_StartOpenGL() - could not load OpenGL subsystem

Same results with Safe Mode.

Paul

0 Kudos
TheLoneVM
VMware Employee
VMware Employee

Not sure what else to suggest at this point, don't know why the glwrapper workaround is good for my demo version, but not your full game, I don't have a copy of the full game but I'll dig around and see if I can find it for sale locally.  In the meantime, a coworker figured out the root cause, turns out that Medal of Honor sets a fixed sized buffer for reading in the opengl extensions, and once this exceeds the size, it crashes.  So this is an application issue, it's just that we trigger it after we added some new features/extensions with 3.1.2. Nvidia was hitting the same issue, and they implimented an application detect workaround.

http://www.theoldergamers.com/forum/shooter-games-range/102445-mohaa-spearhead-breakthrough-nvidia-c...

We are looking into some options on our end...

0 Kudos
pschmutzler
Contributor
Contributor

Well, thanks for trying.  I'll keep an eye out for forthcoming updates and post back when/if it gets fixed.

0 Kudos
TheLoneVM
VMware Employee
VMware Employee

Yes, a long time in the works, but we did add a workaround for this game in this release.  Basically this env variable caps the number of OpenGL extensions to approximately match the specs for a given year, I think 2003 and 2007 are valid values, not sure about others:  https://www.vmware.com/support/fusion4/doc/releasenotes_fusion_401.html.

Some older OpenGL games, such as Medal of Honor: Allied Assault, might crash in a Fusion 4.0 virtual machine. The game is not able to handle the number of OpenGL extensions available since the game was released. This behavior is also seen on host systems.


Workaround: Add a new environment variable named MESA_EXTENSION_MAX_YEAR and set the value to 2003. This is a global setting, so it will need to be removed if you run any newer OpenGL applications.

0 Kudos
pschmutzler
Contributor
Contributor

Thanks for not forgetting about this.  Now as to the solution, could you possible put in layman's terms what exactly I need to do to enable this workaround.  Currently, I'm at Fusion 3.1.3, which I think is the latest build.

0 Kudos
sven321
Contributor
Contributor

I know it's on older thread, but I still looking for a solution, and I'm also curious how to do this "Add a new environment variable named MESA_EXTENSION_MAX_YEAR and set the value to 2003"

Thanks in advance!

EDIT: turned out to be quiet simple. For Windows XP --> How To Manage Environment Variables in Windows XP

Important is to check your VMWare Compatibility settings. It's should be at: "Compatible with VMWare Fusion 4 or higher (Recommended)".

0 Kudos