Overview
This guide is an attempt to gather all potential solutions to the game’s crashes and bugs into a single place, as well as any other pertinent information. Unfortunately, this great game is marked by many game ending bugs that seem to have been brought on by the DLC update. This guide will include information on how to roll back that update as a last ditch effort to make the game playable again.
Introduction
This guide is an attempt to pull together everything we know about potential solutions to the various issues within GG2. Ever since experiencing some of the crashes myself, I’ve been researching and troubleshooting the issues to try to find out what’s going wrong, and what we can do to resolve them. I’ll be working on this guide as I have time to do so. It is currently unfinished; there are remaining possible resolutions to add when I have the opportunity.
Unfortunately, we have heard next to nothing from PCube and Inti, so we’re left to fend for ourselves at the moment. Any comments/suggestions will be greatly appreciated. Thank you.
Note: I am currently running Windows 10, and most of the issues seem to be prevalent to that version of Windows, so the screenshots provided will only be from a Win 10 machine.
Up to date info on Mods, Fixes, and other Gal*Gun topics
We have a Discord server set up that you can join for the latest discussions on everything Gal*Gun.
[link]It’s where many of us come together to talk about issues, possible resolutions, as well as mods to enhance your Gal*Gun experience. Stop on by!
The most reliable solution for all crashes
After much troubleshooting and investigation, it appears that most of the crashes occur due to the combination of multithreading and high FPS, which causes instabiltiy in Scaleform, which the game uses to draw HUDs/render models. One of the most relevant sections of code that causes the crash does not run when singlethreading is enabled. Therefore, my top recommendation at this time is to start by adding the -onethread launch option to the game, which will enforce singlethreading and is most likely to resolve issues. Below is a video provided by RPDevJesco on both limiting FPS max to 30(which also mitigates the issue) as well as how to set the -onethread launch option in Steam. There are separate instructions that you can follow below this link as well.
[link]Thanks to RPDevJesco for the video and their initial investigation proving that 30 FPS limit mitigates the issues.
Disabling multithreading can resolve the memory access errors that occur during level load. To do this, right-click Gal Gun in your Steam library and select properties. Click “Set launch options.” In the window that appears type the following-
-onethread
This will disable multithreading, which may effect performance, but in my case resolved many of my issues.
Installing the Japanese language pack/changing region settings
One error I’ve found recurring in the logs refers to the unavailability of an IME(Input Method Editor). We’re going to install Microsoft’s IME for Japanese, which the game will detect and use after the initial error.
In your Control Panel within Windows, click “Language”.
Click “Add a language”.
In the next window, find Japanese, select it, and click the “Add” button at the bottom of the screen.
You should see Japanese added to the main window now. Click “options” next to the entry.
You want to make certain that under Input Method, it shows Microsoft IME.
Note: I uninstalled this and reinstalled it to try to recreate first time settings. This showed up automatically, so I’m hoping it does the same. Otherwise, you many have to click “Add an input method” to install it.
Also, I did not actually have the language pack installed, but you may wish to do so as an additional step.
Some have recommended changing the in-game language to Japanese, playing through the selection portion of the stage, saving, then changing the language back. The game language is set up in the opening screen-
In Control Panel, click on “Region.”
In the following window, choose Japanese from the drop down menu.
Note: This will mess with some system settings. Notably, your time/date format will change, and certain appllcations are now going to assume Japanese for the language of the system, so certain menus will now be displayed in Japanese. However, changing the region back to the original will change it all back.
Ekoro Battle Crash Pt. 1
This crash occurs when attempting to load Ekoro’s boss battle, be it in the standard game, or Score Attack. Appears to be some kind of error that occurs during rendering that causes the game to crash. This bug has been difficult to nail down, so the possible fixes are numerous.
Preface: Many of these will involve editing the configuration files for the game. There are three locations for these files, and some of them will have config files with the exact same name.
DocumentsMy GamesUnrealEngine3GG2GameConfig
Program Files (x86)SteamsteamappscommonGalGun Double PeaceGG2GameConfig
Program Files (x86)SteamsteamappscommonGalGun Double PeaceEngineConfig
Certain files will be specified in each step, however it may be useful to make the changes to all of the files of the same name, as the priority the game uses for each seems to change depending on which .ini file it’s accessing. For example, there are two GG2Engine.ini files, one in the Documents path, the other in the Steam GG2Game config folder.
Disabling multithreading can resolve the memory access errors that occur during level load. To do this, right-click Gal Gun in your Steam library and select properties. Click “Set launch options.” In the window that appears type the following-
-onethread
This will disable multithreading, which may effect performance, but in my case resolved many of my issues.
The following tweaks will enable a setting to stop movies when a level finishes loading, and disable the Now Loading movies if that does not resolve the issue. Open the following config file-
DocumentsMy GamesUnrealEngine3GG2GameConfigGG2Engine.ini
Look for this section-
First, change the values so that it reads like this-
This setting forces a movie to end once a level finished loading. If this does not resolve the issue, the next step is to disable the movies entirely. Make the following change-
This should disable the now loading movies entirely.
Ekoro Battle Crash Pt. 2
The following fixes work for some, and not for others, but are definitely worth a shot if nothing previous has helped.
Navigate to the game’s directory. Easiest way to do this is to right-click the game title in Steam, click properties. Click on the “Local Files” tab, and click the “Browse local files” button.
From there, navigate to-
GG2GameCookedPCObjectGG2Girlzakomodelhair
Select the file zk_hair_70_SF. Press the Ctrl + C keys together to copy the file, then press the Ctrl + V keys to paste that copy into the folder. Do the same for zk_hair_71_SF.
You should now see two extra files entitled zk_hair_70_SF – Copy and zk_hair_71_SF – Copy.
Right-click on zk_hair_70_SF – Copy, select Rename and rename it to zk_hair_80_SF.
Right-click on zk_hair_71_SF – Copy, select Rename and rename it to zk_hair_81_SF.
Use the steps above to navigate to the game’s directory, then to-
GG2GameCookedPCMapsBossBattle
Delete the following files-
Next, verify the game files to re-download them. Right-click the game title in Steam, click properties. Click on the “Local Files” tab, and click the “Verify Integrity of Game Files” button.
Note:This is also a good thing to try in general, but may write over any configuration files you may have altered.
Navigate to the /GG2Game/Config/ folder. Delete the following file-
GG2GGBsAngels.ini
Use the steps above to verify the integrity of the game files.
Ekoro Battle Crash Pt. 3
A trick that originally worked for me before I found a more permanent resolution was to alt-tab out of the game right before the loading screen for Ekoro’s battle, waiting a few seconds, then alt-tabbing back in. Note: This only works in full screen mode.
The theory is that by alt-tabbing out of the game(and minimizing it) the computer no longer has to draw the “Now Loading” movie, somehow allowing the battle to load. If this works for you, there’s a good chance disabling the “Now Loading” movie per the steps above will work as well.
Downgrading the game
Many have stated that the game worked properly before the DLC update. The link below is to the discussion thread on how to downgrade the game.
[link]Version history
12/13/2017
Archived several sections. Added an inital section for the fixes that solve most issues. Added section regarding Discord server.
10/30/2017
Divided Ekoro Crash sections into parts for easier navigation, added Pt. 2 and Pt. 3, other edits made for better readability. Added Info Dump Pt. 1 and Pt. 2, as well as the Special Fun Stuff Section.
10/29/2017
Started guide, added section 1-2 Stage Crash, began Ekoro Boss Battle Crash section, currently still a work in progress.
(Archived)Info Dump Pt. 1(on Localization)
Future resting place of all the information I’ve gathered on the various issues and what the heck happened from before the DLC patch to afterwards.
The Stage 1-2 Crash appears to correlate with issues regardling localization and language. There are many issues of text not appearing correctly within the game regardless. Example:
The log files indicate that the files used for the fonts in-game are missing certain characters/symbols.
There also appears to be an issue with the game looking for an IME(Input Method Editor) but being unable to locate one.
As far as I’m aware, an IME should only be needed if we were using Japanese as a language in the first place, but this could simply be a case of an attempt to load it just in case(for example, if we switch to Japanese in the starting menu, it will already have it before we switch). Installing the Japanese language via Control Panel > Languages allows the game to locate and use Microsoft’s IME, as seen here.
The Stage 1-2 crash is one I’ve never seen, but my system not only has Japanese installed under Languages, but it’s been set to Japanese under Region for quite some time now to resolve issues with other games in the past.
(Archived)Info Dump Pt. 2(DLC changes, resource loading)
After more testing, it appears that the Ekoro crash is caused by two main factors –
Race conditions caused by multithreading during resource load. Two or more threads are sharing duties during resource load in which the order of events must be done in the proper sequence. If one lags/gets ahead of another, the whole thing falls apart.
Resource loading being affected by framerate. Higher framerates increase the likelihood of threads falling out of sync.
This appears to be confirmed by changing the values of SmoothFrameRate variables in the config files-
Setting MaxSmoothedFrameRate excessively high(300+ FPS) causes the crash to occur consistently every time, and quite quickly.
Setting MaxSmoothFrameRate to 30FPS, on the other hand, prevents the crash from occuring at all.
Around the 60 – 90 FPS area, I see intermittent crashes.
At this time, the most effective workaround/fix for this is setting -onethread in the launch options, as described above. Even with MaxSmoothFrameRate at 300+FPS, the crash does not occur.
Future resting place of all the information I’ve gathered on the various issues and what the heck happened from before the DLC patch to afterwards.
I’ve been performing my work on this project on two different computers, and don’t have all my files with me at this time to show full details, but I wanted to at least write down what I recall from memory.
Basically, the way some of the assets are loaded by GG2 changed in, from what I can tell, is a major change in implementation. Firstly, most of the assets in the old version appeared to have been stored in Startup.upk(which was ~175 MB in size, IIRC.) These assets were accessed using standard/fixed(I can’t verify it right now, my apologies) arrays within the code in GG2Game.u.
After the update- Most of the resources within Startup.upk were extracted and put within the CookedPC directory under the Object/Sounds/UI directories(leaving Startup.upk ~1 MB in size). They are now loaded using the DynamicLoadObject function declared in Core.u.
What the heck does that mean, you ask? I’m still figuring it out myself. But basically(theorycrafting ahead), I think it comes down to the difference between loading all assets(including DLC) at the start regardless of whether or not you have access to use that DLC, and only loading assets you actually have full access to use.
You know that weird fix with copying the zk_hair files and renaming them? See, that doesn’t make sense as to why that would work. I don’t believe there’s any reference to zk_hair_80_SF.upk nor zk_hair_81_SF.upk. But if we assume that the new code creates arrays dynamically of sizes based on what files it detects within certain folders, by adding the extra files it could be a buffer that makes certain that the previous two files(zk_hair_70_SF.upk nor zk_hair_71_SF.upk) are fully loaded into memory properly.
But take that with a huge grain of salt. I’m working with limited access to game files/source code, and limited knowledge of how the Unreal Engine actually functions. But I at least want to get my thoughts out there, for whatever they are worth.
(Archived)A fix that could use some testing
If there are those out there willing to do a bit of testing, there’s only one crash I’ve been able to somewhat reliably reproduce. In the Cafeteria level, shortly after entering the Cafeteria proper, if I try to restart the level, the game can crash. After some length research/testing, I found a possible culprit-
XAudio2_7.dll.
Apparently, Windows 10 and XAudio2_7.dll don’t get along well. Emphasis added is my own-
[link]The XAudio2 library in the legacy DirectX SDK makes use of COM creation and reference counting for lifetime management, and a recent investigation has found a problem in this implementation. In short: in some situations the XAudio DLL itself is unloaded before the XAudio2 objects are completely destroyed, thus leading to an access violation.
I found that renaming the file within /Windows/System32/ to XAudio2_7.old indeed seemed to resolve the issue as I was unable to get the crash to reoccur. So in that particular case, it would appear that the above issue is a most likely cause.
That being said, if anyone can try this out and see if it helps out with any of the other issues, it would be greatly appreciated. Note: This will disable the audio for the game. You will need to rename the file back in order to get the sound working again. This fix is meant to applied *only* to test my theory.
If this does indeed resolve the 1-2 Crash, or Ekoro Crash, I’d call it a fairly significant finding.(Update 11/21/2017- After finding a way to reliable recreate the Ekoro crash, I can confirm it has nothing to do with the audio drivers/dlls) It would provide evidence that this audio issue(which has a resolution that software developers can utilize in the article) is one of the main underlying causes of these issues. Anything we can do to help narrow this down could be useful should PCube/Inti decide to look into this.
Thanks in advance to anyone willing to test this and share their findings. I do believe that we’re looking at several separate issues, but sometimes it’s the stuff that seems so unrelated it couldn’t possible be causing problems is the very real cause.