Reminder: Internet Explorer 6 or below are NOT supported.
 Speciality Modding - Removing ammo after death Speciality Modding - Is it possible to remove the client side server timeout kick? Conventional Modding - Freelancer hud and buttons out of screen/not aligned properly after using War-Torn Single Player mod Freelancer Support - Game engine limit (String Cache overflow) Freelancer Mods - Freelancer: Nomad Legacy Ingame Tips and Tutorials - quick walkthru smuggler walkthroughs Freelancer Discussion - Freelancer Supply/Demand Front News - [The Starport News]Hotmail / Outlook E-Mail Users

Random Image

Remember me

Register now!
Chat
Who's Online
53 user(s) are online (34 user(s) are browsing Forum)

Members: 0
Guests: 53

more...
Donations
Monthly costs: -30€
Donations (last month): +165€

Current balance: 105€
(last updated 02/2021)

Please make a donation if you want to help keeping The-Starport online:

Thanks!
 There are currently 34 users playing Freelancer on 42 servers. March. 3, 2021

Browsing this Thread:   1 Anonymous Users

(1) 2 »

Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Greetings! I learned that the game has the limit on the number of the lines in .ini type files. And when the limit had reached the backgrounds in systems are turned off first. But if I continue adding weapons, equipment, ships, the game will crash and close. It all happens during start from station into space.

E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)
E:\FL\Scratch\Source\Common\StringCache.cpp(169) : *** ERROR: StringCache overflow! (1536 KB)

And errors like these a lot of.
Probably, anybody knows solutions of this problem?

Posted on: 2/20 8:06
Re: Game engine limit (String Cache overflow)
Quite a regular
Joined:
2010/6/13 13:38
From Russia, Penza
Group:
Registered Users
Posts: 170
What is ini file? You can split ini-files by freelancer.ini - for example, multiple effects ini, equipment equip and good ini, etc

Restrictions: universe.ini and ini-files from MISSIONS is hardcoded and can't be splitted

Posted on: 2/20 14:29
Re: Game engine limit (String Cache overflow)

Joined:
2016/3/29 21:54
From England
Group:
Registered Users
Trusted Speciality Developers
Posts: 39
As I recall, the limit for the INI_Reader class internally is 1024 characters per ini value. I am not aware of any file size limits, and the only one I would imagine is if you had a file larger than a gigabyte, which I highly doubt.

The error could be tied elsewhere, perhaps a save file? What is the line limit you have observed?

Posted on: 2/20 16:16
Way too ambitious for his own good.
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
Trusted Speciality Developers
Senior Members
Posts: 1979
It's not lines, but objects (nicknames and the like). You've just got too much stuff. StringCache is hardcoded, not sure I can change it and it might be a while before I try (if I do).

Posted on: 2/21 0:28
Re: Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Quote:

Laz wrote:
As I recall, the limit for the INI_Reader class internally is 1024 characters per ini value. I am not aware of any file size limits, and the only one I would imagine is if you had a file larger than a gigabyte, which I highly doubt.

The error could be tied elsewhere, perhaps a save file? What is the line limit you have observed?

Our mod is very full by different ships, equipments and others. I have known about this limit not so long ago and it's difficult to say the exect numbers. I was trying to cause the limit on a version of the game 1.0 and it was caused. Also I was trying to do this in the Discovery mod, but they have some free space for new lines, but the problem of the limit is also close in future.

Posted on: 2/21 9:55
Re: Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Quote:

Jeider wrote:
What is ini file? You can split ini-files by freelancer.ini - for example, multiple effects ini, equipment equip and good ini, etc

Restrictions: universe.ini and ini-files from MISSIONS is hardcoded and can't be splitted

Diffirent .ini files in which are written different objects. At the moment when the limit reached and I am trying to delite, for example, some ships, equipments or effects of guns, the limit disappears. But until i not write something new. Deleting old objects or reducing the names od them gives onle temporary growth for new.
I tried to separate them, but it didn't help.

Posted on: 2/21 9:56
Re: Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Quote:

It's not lines, but objects (nicknames and the like). You've just got too much stuff. StringCache is hardcoded, not sure I can change it and it might be a while before I try (if I do).

Yes, our mod is very big now, so now I have to reduce the names in this files to save some space for new objects of the mod. But I can't find the solution of this problem, because I don't understand in programming. If you can help with this problem, I will be very very grateful as well as other projects, because the entering of new in game becomes problematic.

Posted on: 2/21 9:57
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
Trusted Speciality Developers
Senior Members
Posts: 1979
Code:
# Double the size of Freelancer's string cache. # Jason Hood, 22 February, 2021. File: Common.dll 00011E: 06              [ 05 ] 000139: B0 50           [ 80 07 ] 00016A: 64              [ 34 ] 000170: 41 6A 1B        [ 06 10 1C ] 0002D8: ".cache"        [ 00 00 00 00 00 00 ] 0002E2: 30 00 00 40 34  [ 00 00 00 00 00 ] 0002FC: 40 00 00 C0     [ 00 00 00 00 ] 0D3CE5: 0C              [ 06 ] 0D3D18: FF 3F 5A        [ 0F A8 40 ] 0D3DAD: 0C              [ 06 ] 0D3DD9: 00 40 5A        [ 10 A8 40 ] 18DB72: 30              [ 18 ] 

It seems to work. The format is offset: new_bytes [ old_bytes ]; it's for my BwPatch utility.

Posted on: 2/22 12:27
Re: Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Quote:

Code:
# Double the size of Freelancer's string cache. # Jason Hood, 22 February, 2021. File: Common.dll 00011E: 06              [ 05 ] 000139: B0 50           [ 80 07 ] 00016A: 64              [ 34 ] 000170: 41 6A 1B        [ 06 10 1C ] 0002D8: ".cache"        [ 00 00 00 00 00 00 ] 0002E2: 30 00 00 40 34  [ 00 00 00 00 00 ] 0002FC: 40 00 00 C0     [ 00 00 00 00 ] 0D3CE5: 0C              [ 06 ] 0D3D18: FF 3F 5A        [ 0F A8 40 ] 0D3DAD: 0C              [ 06 ] 0D3DD9: 00 40 5A        [ 10 A8 40 ] 18DB72: 30              [ 18 ] 

It seems to work. The format is offset: new_bytes [ old_bytes ]; it's for my BwPatch utility.

Can you tell me how to use BwPatch? As i understand it works on 32-bit systems, but i have installed win10 x64. Will it work on my system?

I tried to do the patch through ICY Hexplorer, but my "Common" isn't like your. My looks like this:

Code:
 File: Common.dll 00011E: [ 05 ] 000139:  [ 80 07 ] 00016A: [ 34 ] 000170: [ BF A0 1B ] ------- there are other values 0002D8: [ 00 00 00 00 00 00 ] 0002E2: [ 00 00 00 00 00 ] 0002FC: [ 00 00 00 00 ] 0D3CE5: [ 06 ] 0D3D18: [ 0F A8 40 ] 0D3DAD: [ 06 ] 0D3DD9: [ 10 A8 40 ] 18DB72: [ 18 ] 

Also I didn't understand how to do through ICY Hexplorer the patch for this offset?
Code:
0002D8: ".cache"        [ 00 00 00 00 00 00 ]

Please, can you look at on my Common.dll? Probably, it differs from your.

Attach file:

common.zip Size: 555.08 KB; Hits: 4

Posted on: 2/22 17:25
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
Trusted Speciality Developers
Senior Members
Posts: 1979
Quote:
Can you tell me how to use BwPatch? As i understand it works on 32-bit systems, but i have installed win10 x64. Will it work on my system?

Yes, 64-bit Windows has no problems running 32-bit programs. Save the patch to your Freelancer's EXE directory as crack. Then run \path\to\bwpatch in the EXE directory. Use Command Prompt (or PowerShell), not Explorer.

Quote:
Code:
 000170: [ BF A0 1B ] ------- there are other values 

Make them all 00 (it's a checksum, safe to ignore).

Quote:
Also I didn't understand how to do through ICY Hexplorer the patch for this offset?
Code:
0002D8: ".cache"        [ 00 00 00 00 00 00 ]

I believe you can press Tab to switch to the ASCII pane (or click there), then just type it in.

Posted on: 2/22 23:37
Re: Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Quote:

Quote:
Can you tell me how to use BwPatch? As i understand it works on 32-bit systems, but i have installed win10 x64. Will it work on my system?

Yes, 64-bit Windows has no problems running 32-bit programs. Save the patch to your Freelancer's EXE directory as crack. Then run \path\to\bwpatch in the EXE directory. Use Command Prompt (or PowerShell), not Explorer.

Quote:
Code:
 000170: [ BF A0 1B ] ------- there are other values 

Make them all 00 (it's a checksum, safe to ignore).

Quote:
Also I didn't understand how to do through ICY Hexplorer the patch for this offset?
Code:
0002D8: ".cache"        [ 00 00 00 00 00 00 ]

I believe you can press Tab to switch to the ASCII pane (or click there), then just type it in.

It works! But i have the problem: every time i try to start the flserver it falls. It happens due to some dlls which are installed on our server. This dlls:

Code:
     1: C:\work\builds\dalibs\dalibs-build\build\Src\DACOM\Dacom.cpp(612) : ERROR:General:DACOM: AddLibrary: unable to load dll 'chklootvol.dll', ignoring...      2: C:\work\builds\dalibs\dalibs-build\build\Src\DACOM\Dacom.cpp(612) : ERROR:General:DACOM: AddLibrary: unable to load dll 'moors.dll', ignoring...      3: C:\work\builds\dalibs\dalibs-build\build\Src\DACOM\Dacom.cpp(612) : ERROR:General:DACOM: AddLibrary: unable to load dll 'healing.dll', ignoring...      4: C:\work\builds\dalibs\dalibs-build\build\Src\DACOM\Dacom.cpp(612) : ERROR:General:DACOM: AddLibrary: unable to load dll 'EquipDrag.dll', ignoring...      5: C:\work\builds\dalibs\dalibs-build\build\Src\DACOM\Dacom.cpp(612) : ERROR:General:DACOM: AddLibrary: unable to load dll 'DamagePerFire.dll', ignoring...      6: C:\work\builds\dalibs\dalibs-build\build\Src\DACOM\Dacom.cpp(612) : ERROR:General:DACOM: AddLibrary: unable to load dll 'criticalhit.dll', ignoring...

I tried to remove them from dacomsrv.ini: in this case the server starts and i can enter the game, but in logs appear a lot of errors (ArchDB::Get like on the screenshot), but all of this objects are take place in my mod. I tried to return the previous "common" and in that case the errors disappear. Do you have suggestions what can cause this problems?

I made all patches in common.dll through program hexplorer with the help of your instructions because i didn't understand the BwPatch.

Posted on: 2/23 19:51
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
Trusted Speciality Developers
Senior Members
Posts: 1979
Quote:
It works! But i have the problem: every time i try to start the flserver it falls. It happens due to some dlls which are installed on our server.

That's my lazy programming, where my plugins assume common.dll will be loaded at the same address, which no longer applies with the patched version. Since it's easier to change the server than all my plugins here's another patch.

Code:
# Load common.dll before dalib.dll & dacom.dll, to keep common.dll at the # same base address (my plugins assume it). File: FLServer.exe 01FCEC: 3C                              [ E0 ] 01FCF8: DE 11 02 00 10 B0 01 00 E0      [ 8C 0C 02 00 B4 B0 01 00 D4 ] 01FD0C: 8C 0C 02 00 B4 B0 01 00 D4      [ B4 0C 02 00 A8 B0 01 00 3C ] 01FD20: B4 0C 02 00 A8                  [ DE 11 02 00 10 ] 

Posted on: 2/24 1:36
Re: Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Quote:

Quote:
It works! But i have the problem: every time i try to start the flserver it falls. It happens due to some dlls which are installed on our server.

That's my lazy programming, where my plugins assume common.dll will be loaded at the same address, which no longer applies with the patched version. Since it's easier to change the server than all my plugins here's another patch.

Code:
# Load common.dll before dalib.dll & dacom.dll, to keep common.dll at the # same base address (my plugins assume it). File: FLServer.exe 01FCEC: 3C                              [ E0 ] 01FCF8: DE 11 02 00 10 B0 01 00 E0      [ 8C 0C 02 00 B4 B0 01 00 D4 ] 01FD0C: 8C 0C 02 00 B4 B0 01 00 D4      [ B4 0C 02 00 A8 B0 01 00 3C ] 01FD20: B4 0C 02 00 A8                  [ DE 11 02 00 10 ] 

Thank you, Adoxa. It partially helped to solve the problem! I was tasting the mod a bit with this patches and determined the critical error ...
Sometimes during the starting server crashes and writes the next:

Code:
1: E:\FL\Scratch\Source\Common\Systems.cpp(3117) : *** ERROR: could not create universe ''

And also the server keep hanging with the same errors, about what I was speaking early (chklootvol, moors, healing, EquipDrag, DamagePerFire, criticalhit, GetRoot ), out of about 10 attempts of the starting.

Also I realised that your plugin TurretZoom stopped working as needed. It doesn't read the options "max=" and "switch=" and I can distance a camera very fast and on the all system. The game even crashed when I am had tried to look through the camera in clouds which is very far from my ship.

I recorded the video for demonstration. Please, watch this video.
https://youtu.be/FWtZSPS8kcw

Posted on: 2/24 15:23
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
Trusted Speciality Developers
Senior Members
Posts: 1979
Quote:
And also the server keep hanging with the same errors, about what I was speaking early (chklootvol, moors, healing, EquipDrag, DamagePerFire, criticalhit, GetRoot ), out of about 10 attempts of the starting.

Here's another patch to prevent common.dll relocating. This will prevent Flserver.exe from loading at all if it still needs to relocate, but that only happened for me the first time, it's worked every time since.

Code:
File: Common.dll 00012E: 0F              [ 0E ] 0001BA: 00 00 00 00     [ 33 00 6C FD ] 

Quote:
Also I realised that your plugin TurretZoom stopped working as needed.

Argh, that assumes the base address of dacom.dll. Here's another patch to work around that.

Code:
File: TurretZoom.dll 001734: 66 39 D7 8D 48 01 90    [ 3B FA B9 01 00 00 00 ] 

I really should rewrite them all, but there's so many...

Posted on: 2/25 3:20
Re: Game engine limit (String Cache overflow)
Just popping in
Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 16
Quote:

Quote:
And also the server keep hanging with the same errors, about what I was speaking early (chklootvol, moors, healing, EquipDrag, DamagePerFire, criticalhit, GetRoot ), out of about 10 attempts of the starting.

Here's another patch to prevent common.dll relocating. This will prevent Flserver.exe from loading at all if it still needs to relocate, but that only happened for me the first time, it's worked every time since.

Code:
File: Common.dll 00012E: 0F              [ 0E ] 0001BA: 00 00 00 00     [ 33 00 6C FD ] 

Quote:
Also I realised that your plugin TurretZoom stopped working as needed.

Argh, that assumes the base address of dacom.dll. Here's another patch to work around that.

Code:
File: TurretZoom.dll 001734: 66 39 D7 8D 48 01 90    [ 3B FA B9 01 00 00 00 ] 

I really should rewrite them all, but there's so many...

Greetings, Adoxa. I made the patch in "Common', but now instead of hanging the flserver began to interrupt the starting with giving an error during the loading at 0xc0000018 adress. I removed all your plugins from dacomsrv for testing, but the error doesn't disappear and appears very often during the starting of the server.

Also for whatever reason your patch to TurretZoom did't work. I can still move camera every far from my ship, but in dacom all settings are written right: TurretZoom.dll max=2500 switch=0
1: E:\FL\Scratch\Source\Common\Systems.cpp(3117) : *** ERROR: could not create universe ''