Back to the main site

Star Trek Starfleet Command III

I’ve recently moved to linux (kubuntu) and started using lutris, and need some help. I’ve only written a couple of scripts for a couple of games so far, so I’m probably missing something. If this isn’t the correct forum, please move this post as appropriate.

I’ve submitted the game and created a couple of install scripts. I’ve gotten it to work at 1024x768 using the DirectX9 fix patch, which is outdated. I really need to get the 534_b (~40.5MB) patch to work. Especially since pretty much all mods either require it or include it. Unfortunately, while it initially seems to work, as soon as I try to enter any mission, it hangs with a runtime error. This does NOT happen with the old DirectX9 fix patch.

Does anyone know how to get the game working with the 534_b patch?

Secondarily, does anyone know how to get it to run at higher resolutions such as 2560x1440?

In these cases I usually start looking for the lasted released (mod) packages. This worked well for Command & Conquer Tiberian Dawn. Reason for this strategy: when multiple patches are released over the years, you often see that the latest versions of these patches are combined in one patch to make things more user friendly.

For this game I came across this patch:

It includes all patches and full resolution mode. As it is the latest, maybe this is the one you need.

I tried that mod but it doesn’t work on my system. While the higher resolution would be nice, I’d be happy playing it at 1024x768 fullscreen, which the old DirectX9 fix patch allows.

The real problem I need fixed is that I get a runtime error when trying to enter a mission with the 534b patch installed.

The error box is truncated, but I think it’s a visual c runtime error. I assume there’s some lutris/wine setting I need to use?

Indeed, first things first. Start with just running the game. A higher resolution can be addressed later.

You can install a vcruntime via winetricks. There are multiple versions. Another possibility is that you have to install another directx winetrick component which isn’t available in the dx3d9 winetrick. The reason the directx9 version is obsolete is that nowadays all components need to be installed separately.

The reports on winehq are often old and still mention the use of the directx9 winetrick.

I’ve downloaded the game too and I will play with it too to see what happens on my machine.

I think my trouble with the mod is that my monitor doesn’t natively support (via display port) any of the resolutions the mod implements. VIA DP, my monitor steps down from 2560x1440 to 1024x768. It is connected via DP since it supports G SYNC and 144hz, vs HDMI. Pity, since the mod look interesting.

Thanks for the info, I didn’t realize that. If dx3d9 has replaced directx9, but doesn’t include all the directx9 components, how is a user to know which components need to be included when a game’s requirement states Directx9? Shouldn’t the Directx9 replacement include all the components to replicate the Directx9 functionality?

Thanks, I look forward to hearing your experience, and hopefully a solution!

I think my trouble is…

That’s weird. I’m using the display port on my AMD Vega 56 (amdgpu driver) and for now I’m on a rather old monitor. Still I have a wide range of display modes to choose from.

If your monitor registers as unknown monitor or something like that then look into your driver. If the driver is correct then it should pass through the monitor type and that is also a factor in the selection of available modes.

If that is all in order then I would look up which resolutions are supported by your video card and monitor. If there are more then those two then there are options to add resolutions manually. There are many pages covering this topic.

https://www.startpage.com/do/search?q=linux%20only%20two%20resolutions

…If dx3d9 has replaced directx9…

The reason they probably did this is that the requirements to run specific Windows games on Linux are diverse. It often happens that a winetrick works for one game and breaks another. Breaking directx9 up into separate packages gives a bit more freedom in selecting the right packages for a specific game. Its an assumption but I think its the most logical explanation.

The patch
The patch contains a directory called JanB Extras it has specific directories for various resolutions and also two directories called HD1610 and HD169 users who want to run the game at a 16:9 resolution but not a resolution in the list of resolutions can choose the files in the 16:9 directory.

The directory 1024768 is available too so it is possible to test with this one to see whether the game works. Its also possible to run the game in a windowed mode. Then you can choose every resolution and set the virtual machine virtual desktop to this resolution.

Just a few ideas.

@tfk Thanks for the suggestions.

I built my pc about 4 months ago, so hopefully it’s relatively up to date. The GPU is an Nvidia 2070 Super, the CPU a Ryzen 3700X, and the monitor a Dell S2716DG.

I’m running Kubuntu 19.10 with the recommended proprietary NVIDIA 435 driver from the software repo. The system settings recognize the primary display as “Dell S2716DG (DP-4)” and offers the following resolutions: 640x480 800x600 1024x768 and 2560x1440. Here’s a link to the monitor’s manual. I believe it talks about resolutions around page 12.

However, before going down the resolution rat hole, I’d like to address just running the game at 1024x768. As you said, first things first.

How’s your testing going? Any luck on identifying any required settings or directx, vcrun, or other winetricks to run the patched 534b game?

I’ve been poking around and got some log info. Unfortunately, I don’t know what it means. Hopefully someone here will. Here’s the log when I try to enter a mission with the 534b patch installed.

Log

Initial process has started with pid 5248
Game is considered started.
000b:fixme:winediag:start_process Wine TkG 5.5 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please don’t report bugs about it on winehq.org and use https://github.com/Tk-Glitch/PKGBUILDS/issues instead.
0009:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0009:err:winediag:load_dxvk_config Couldn’t load dxvk_config.dll, won’t apply default DXVK config options
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36314c20 (as fourcc: L16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314c20) in the format lookup table.
0009:fixme:d3d:debug_d3dformat Unrecognized 0x36315241 (as fourcc: AR16) WINED3DFORMAT!
0009:fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36315241) in the format lookup table.
0009:fixme:d3dxof:IDirectXFileImpl_CreateSaveObject (080E0020/080E0020)->(c:\program files\activision\sfc3\assets\models\space\space00.x,2,0032E814) partial stub!
0009:fixme:d3dxof:IDirectXFileSaveObjectImpl_SaveTemplates (068E2230/068E2230)->(2,510C0500) stub!
0009:fixme:d3dxof:IDirectXFileSaveObjectImpl_CreateDataObject (068E2230/068E2230)->(510AD038,(null),00000000,10404,05638210,0032E7C8) stub!
Game is considered exited.
Initial process has exited.
All monitored processes have exited.
Exit with returncode 768

I get a windows error messagebox: unable to save model cache

It’s after Picard’s lecture when you click Ready.

image

Things I’ve done so far:

  • Added new game via menu;
  • pointed it to the installer on the mounted iso;
  • selected the default Wine version 5.5.2-x86_64;
  • ran the installer;
  • changed the exe to the SFC3.exe;
  • set the virtual desktop to 1024x768;
  • installed the Patch v534b Installer.exe patch;
  • installed the SFC3 Upgrade Mod 3.2 Setup.exe Upgrade Mod;
  • edited the sfc.ini file and set windowed to 0 and made sure that makeitso was set to 1 (the last one is for the no-cd check)

I saw here a mention about deleting cache files but its not clear to me where this game stores those:

It looks like the game tries to find a path which isn’t there. Just a guess…

To simplify debugging, I uninstalled that mod and have been testing with just the base game from the CD and the downloaded 534_b patch. That’s been giving me the runtime error. The log from my previous post has a lot of entries concerning what appears to me to be a wine/dxvk problem. But I’ve only switched over to linux recently, so not sure what’s wrong.

I believe you need both. We are entering the same problems Windows 10 users have with this game. The route I am following now is recreating this scenario. Thus a 64 bit Windows 10 system.

The problem with this game is that its old. When you install the base game on Windows 10 you will also get an exception.

I also ran the game in a 1600x900 resolution and that worked, save the message about not being able to save the model cache.

Edit
Got past the error message Unable to save model cache.

The problem was explained here:
https://appdb.winehq.org/objectManager.php?sClass=version&iId=23153

Only the fix didn’t work for me. So this is the new procedure:

  • Open the file manager from Lutris and navigate to the C:\Windows\System32 directory;
  • Look up d3dxof.dll and rename it to d3dxof.dll_;
  • Mount the original CD and open the DirectX/DirectX.cab archive;
  • Extract d3dxof.dll to the game main directory;
  • Go into the Wine Configuration and set d3dxof.dll to native, builtin.

The game still crashes when I quit the game. So I’m running it in a Wine Virtual Desktop.

A little background on video
When the patches are installed you will notice that the intro videos are not showing anymore. This is because the SFC3 Upgrade Mod 3.2 Setup patch replaces these video with one of zero length.

Replacing these with the originals will crash the game. I think that is because the game wants to switch to 640x480. It works when I enable the windowed mode in sfc3.ini but as this is the cause of the black screen (also under Windows) this option is unusable. So I think the creators of the patch choose just to disable these videos.

Edit
I up scaled the videos and repacked them back to bik. When they are the exact same size as the resolution game is running under, everything works.

1 Like

@tfk Thanks! Using the info you provided, I was able to get the base game with the 534b patch installed running fullscreen at 1024x768 without encountering the runtime crash. The key was the d3dxof.dll. I found that using the d3dxof winetrick fixed the problem without having to extract the original from the CD.

I updated the install scripts I wrote (they’re awaiting moderation) to incorporate that fix as well as renaming the Cinema directory to avoid the screen resolution switching problem with the videos. There may be a fix to make them play correctly, but I haven’t found it yet.

I haven’t tried the SFC3 Upgrade Mod 3.2 or other HD mods again yet, but I will. However, first I have to get some sleep.

Good show! Good to know that the d3dxof.dll winetrick is working too. That means that this step can be automated.

I see you are using a 32 wine prefix. I got the game running in the 64bit Windows 10 scenario. I think I will add this version too. This way the users can choose the scenario which fits their purpose best.

Wow, it never occurred to me that it would run in a 64 wine prefix. I assumed it would require a 32 since it was so old. I’ll have to try that. I really just started with linux and lutris, so I’m learning by trial and error.

That’s the beauty of Linux/Wine you can run multiple variants side by side.

I got onto the path of the x64 Windows 10 scenario because of all the mods which are out there. Those people all run Windows 10 so I knew the only way I would run into the issues they where having is to mimic their situation as close as possible.

The d3dxof winetrick works on the x64 variant. Thanks for mentioning it. I was so into the technical details that I forgot to think about the obvious solution.

I’ve submitted the x64 Windows 10 installer version.

I really just started with linux and lutris, so I’m learning by trial and error.

Well, that’s the best way to go about it and you are doing a good job. For me, the learning curve is one the biggest attractions of Linux.