Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Anything related to gaming on Linux Mint including game discussion or questions concerning Steam or Wine.
Forum rules
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
Post Reply
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

Has anyone been able to play Project IGI on Linux? When trying to launch the .exe file, I get the following error:

Code: Select all

Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc
Repro:
1. Download zip archive from https://filehippo.com/download_project-igi/
2. Extract the files
3. Navigate to Project-IGI-Im-Going-In_Win_EN_RIP-Version/Project_IGI_RIP/PC and open IGI.exe with Wine.

OS: Linux Mint 21 x86_64
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

There is a Lutris install script but it is meant for the "cd version"
Inspecting the script shows that its author uses a 32bit prefix which makes absolutely sense for such an old video game and then downloads vgvoodoo2 which is used routinely on Windows for providing compatibility with old directx7/8 games.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

MiZoG wrote: Mon Apr 01, 2024 4:20 pm There is a Lutris install script but it is meant for the "cd version"
Inspecting the script shows that its author uses a 32bit prefix which makes absolutely sense for such an old video game and then downloads vgvoodoo2 which is used routinely on Windows for providing compatibility with old directx7/8 games.
Does that mean the only solution is a CD?
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

Since this involved very small downloads
1. I downloaded the demo, extracted the files.
2. created a 32bit prefix

Code: Select all

WINEARCH=win32 WINEPREFIX=~/ProjectIGIDemo winecfg
Choose your own pathname
3. Picked "Windows XP" in Windows version field on Wine configuration (winecfg) window
4. Downloaded dgvoodo2.
5. Extracted the zip file of dgvoodo2 and copied the .dlls from /MS/x86 (since the Wine Prefix is 32bit) in the folder with the game executable (IGI.exe)
6. Executed

Code: Select all

env WINEPREFIX=~/ProjectIGIDemo winecfg
went to "Libraries" tab --> "New overridde for Library" I entered the names of dgvoodo2 dlls "D3D8.dll" "D3D9.dll" "D3DImm.dll" one by one and pressed "Add". Wine warned me against doing the same with "DDraw.dll" so I did not.
7. Went back to the folder where the demo executable is (IGI.exe). Right-clicked inside --> Open in Terminal

Code: Select all

env WINEPREFIX=~/ProjectIGIDemo wine IGI.exe
et voila demo runs, dunno if everything is rendered OK though. It looks so primitive.

If command line scares you, try to find your way with Lutris, Bottles or other wine manager.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

Wow, thanks for the instructions! You wrote you downloaded the demo, where did you do that? Can I get the full game or am I limited to a demo?
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

I was under the impression that this is only a demo.
I didn't try to complete the introductory mission to see if I'm allowed to progress further.
But archive.org hosts a demo of this game, a much smaller zip file, which leads me to the conclusion that filehippo hosts the full game after all.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

Unfortunately it's not working for me. Maybe I'm doing something wrong :/

Here's the response I get when I run the last command:

Code: Select all

0024:err:module:process_init L"C:\\windows\\system32\\IGI.exe" not found
Regarding step 2, I don't know what creating a 32bit prefix means, but you wrote "choose your own pathname". Does that mean I have to specify the path where the ProjectIGI folder is located?
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

Does that mean I have to specify the path where the ProjectIGI folder
No. Just use whatever folder name you want. You could keep the same of my example.

Go to the folder where IGI.exe is. And make sure that you do what I originally posted: Right-click inside (the same folder where IGI.exe is located) --> Open in Terminal (from the right-click menu options). Run the last command in that terminal window.

32bit. This game belongs to the 32bit era of computers. Operating Systems of its time, Windows of its time were 32bit. You can run 32bit applications in 64bit OSes but Wine devs until recently recommended running 32bit games in 32bit wine prefixes (wine installations that "emulate" 32bit versions of Windows) for max compatibility. I just followed the leads from Lutris installation script.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

I feel like I've done everything correctly :(
Can you please take a look at this short video I recorded: https://go.screenpal.com/watch/cZfeY2VsIgi
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

I re-ran one by one the very same commands with... success

Further tests here show that it can be launched even in a 64bit prefix and without dgvoodoo2 :shock:
{However a few warnings not present previously are printed out in terminal}

Post the output of

Code: Select all

wine --version
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

wine-6.0.3 (Ubuntu 6.0.3~repack-1)
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

You have 2 options

1. Uninstall your current version of Wine

Code: Select all

sudo apt-get purge *wine* && sudo apt autoremove
Follow the instructions carefully to install Wine from Wine developers

2. If you do not want to mess with your system-wide package of Wine, install Lutris.
Lutris will download and use its own Wine build without interfering with one already installed in your system. It actually can manage multiple wine versions at the very same time. Everything you tried in the command line is possible in the graphical environment of this application. It takes a learning curve, interface might not be the easiest to navigate.
Alternative to Lutris: Bottles. I haven't used it in a while and I never actually used it a lot. But some people prefer it to Lutris or consider it easier to use. It comes only as flatpak though. It will install a ton of flatpak runtimes and flatpak micromanagement could be a burden on you.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

I already have Lutris installed but I never understood how to use it. In my experience it's been an unresponsive useless program. What do I need to do inside Lutris?
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

a. Click + (the plus symbol) on the top left side --> Add locally installed game

b. Tab "Game Info"
- Fill "Name" with whatever name you want but just naming it "Project IGI" will prove useful if/when you want to get game's artwork later.
- Runner: Wine (Runs Windows games)
Leave everything else blank

c. Tab "Game options"
- In the "Executable" field, browse your folders and find IGI.exe
- In "Wine Prefix", add the folder of Wine Prefix you have already created.
- In "Prefix Architecture": 32-bit
Leave everything else blank

d. Runner options: Keep the defaults. You may have to disable "Fsync" if not disabled by default. It says it needs kernel 5.16 or higher.

Press the big green button "Save" on the top right.

Press "Play". Wait for prefix to update, install Mono runtime and so on.

Game didn't detect my screen resolution. Go to "Configuration". I maxed out mouse sensitivity and toggled off "inverse mouse" as well. You might want to change controls as well. It defaults to arrow keys for movement. I'm used to WASD controls etc.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

Nothing happens when I press Play (except the button text changes to "Launching"). I tried to access the logs for Project IGI in Lutris, but there's nothing there. The more I use this program, the more I despise it.

Then I tried running Lutris through the terminal. I don't know if this helps or makes any sense to you, but here's the output...
Upon running Lutris:

Code: Select all

2024-04-05 20:06:41,996: Starting Lutris 0.5.9.1
2024-04-05 20:06:42,021: No cores found
2024-04-05 20:06:42,219: Failed to get runtimes: HTTP Error 426: Upgrade Required
2024-04-05 20:06:42,799: Startup complete
2024-04-05 20:06:42,801: Running Intel Mesa driver 23.2.1 on Mesa Intel(R) Xe Graphics (TGL GT2) (0x9a49)
2024-04-05 20:06:42,802: GPU: 8086:9A49 17AA:22C9 (i915 drivers)
Upon pressing Play:

Code: Select all

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/lutris/exceptions.py", line 57, in wrapper
    return function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/lutris/game.py", line 420, in configure_game
    gameplay_info = self.get_gameplay_info()
  File "/usr/lib/python3/dist-packages/lutris/game.py", line 398, in get_gameplay_info
    gameplay_info = self.runner.play()
  File "/usr/lib/python3/dist-packages/lutris/runners/wine.py", line 825, in play
    launch_info = {"env": self.get_env(os_env=False)}
  File "/usr/lib/python3/dist-packages/lutris/runners/wine.py", line 749, in get_env
    env = super(wine, self).get_env(False)
  File "/usr/lib/python3/dist-packages/lutris/runners/runner.py", line 186, in get_env
    runtime_env = self.get_runtime_env()
  File "/usr/lib/python3/dist-packages/lutris/runners/wine.py", line 789, in get_runtime_env
    for proton_path in get_proton_paths():
  File "/usr/lib/python3/dist-packages/lutris/util/wine/wine.py", line 49, in get_proton_paths
    for path in _iter_proton_locations():
  File "/usr/lib/python3/dist-packages/lutris/util/wine/wine.py", line 38, in _iter_proton_locations
    for path in [os.path.join(p, "common") for p in steam().get_steamapps_dirs()]:
  File "/usr/lib/python3/dist-packages/lutris/runners/steam.py", line 243, in get_steamapps_dirs
    library_config = self.get_library_config()
  File "/usr/lib/python3/dist-packages/lutris/runners/steam.py", line 149, in get_library_config
    return read_library_folders(self.steam_data_dir)
  File "/usr/lib/python3/dist-packages/lutris/util/steam/config.py", line 161, in read_library_folders
    library["libraryfolders"].pop("contentstatsid")
KeyError: 'contentstatsid'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 153, in apport_excepthook
    with os.fdopen(os.open(pr_filename,
FileNotFoundError: [Errno 2] No such file or directory: '/var/crash/_usr_games_lutris.1000.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/lutris/exceptions.py", line 57, in wrapper
    return function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/lutris/game.py", line 420, in configure_game
    gameplay_info = self.get_gameplay_info()
  File "/usr/lib/python3/dist-packages/lutris/game.py", line 398, in get_gameplay_info
    gameplay_info = self.runner.play()
  File "/usr/lib/python3/dist-packages/lutris/runners/wine.py", line 825, in play
    launch_info = {"env": self.get_env(os_env=False)}
  File "/usr/lib/python3/dist-packages/lutris/runners/wine.py", line 749, in get_env
    env = super(wine, self).get_env(False)
  File "/usr/lib/python3/dist-packages/lutris/runners/runner.py", line 186, in get_env
    runtime_env = self.get_runtime_env()
  File "/usr/lib/python3/dist-packages/lutris/runners/wine.py", line 789, in get_runtime_env
    for proton_path in get_proton_paths():
  File "/usr/lib/python3/dist-packages/lutris/util/wine/wine.py", line 49, in get_proton_paths
    for path in _iter_proton_locations():
  File "/usr/lib/python3/dist-packages/lutris/util/wine/wine.py", line 38, in _iter_proton_locations
    for path in [os.path.join(p, "common") for p in steam().get_steamapps_dirs()]:
  File "/usr/lib/python3/dist-packages/lutris/runners/steam.py", line 243, in get_steamapps_dirs
    library_config = self.get_library_config()
  File "/usr/lib/python3/dist-packages/lutris/runners/steam.py", line 149, in get_library_config
    return read_library_folders(self.steam_data_dir)
  File "/usr/lib/python3/dist-packages/lutris/util/steam/config.py", line 161, in read_library_folders
    library["libraryfolders"].pop("contentstatsid")
KeyError: 'contentstatsid'
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

Uninstall Lutris you have the obsolete version from Ubuntu repos.
It is generally good to stick with system packages but not always when it comes to gaming on Linux
I've already linked the latest release
Download the .deb package. Thanks to gdebi it is easily installable with double-click on it - at least this is what should happen by default.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

I followed your instructions and attempted the same thing using the latest release (version 0.5.16), to no avail.

Terminal output when I run Lutris:

Code: Select all

2024-04-06 13:01:05,509: The Battle.net source is unavailable because Google protobuf could not be loaded: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

(lutris:123253): Gtk-WARNING **: 13:01:05.576: Failed to register client: GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register client
2024-04-06 13:01:05,578: Starting Lutris 0.5.16
2024-04-06 13:01:05,579: Running Intel Mesa driver 23.2.1 on Mesa Intel(R) Xe Graphics (TGL GT2) (0x9a49)
2024-04-06 13:01:05,579: GPU: 8086:9A49 17AA:22C9 (i915 drivers)
Project IGI logs:

Code: Select all

Started initial process 123015 from gamemoderun /home/fadi/.local/share/lutris/runners/wine/wine-ge-8-26-x86_64/bin/wine /home/fadi/games/Project-IGI/Project_IGI_RIP/PC/IGI.exe
Start monitoring process.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
esync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Monitored process exited.
Initial process has exited (return code: 0)
Exit with return code 0
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

I'm honestly at my wit's end.
fadiyousif
Level 1
Level 1
Posts: 20
Joined: Wed Aug 10, 2022 4:33 pm

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by fadiyousif »

Understandable, thanks for the help. Gaming on Linux is a joke, I'm going back to Windows :lol:
User avatar
MiZoG
Level 9
Level 9
Posts: 2696
Joined: Fri Jan 26, 2018 8:30 pm
Location: Athens, Greece

Re: Fatal error: AmmoType_Open(): Couldn't load script: ammo.qsc

Post by MiZoG »

Just for the record :mrgreen:

Image

Image

Image
Post Reply

Return to “Gaming”