Freelancer Community Network
Reminder: Internet Explorer 6 or below are NOT supported.
HomeHome
ForumForum
WikiWiki
DownloadsDownloads
ForgeForge
Multiplayer Connection Tutorial
Collapse/Expand Login
Username:

Password:

Remember me



Lost Password?

Register now!
Collapse/Expand Chat
Collapse/Expand Who's Online
66 user(s) are online (40 user(s) are browsing Forum)

Members: 0
Guests: 66

more...
Collapse/Expand Donations
Monthly costs: -30€
Income (ads): +5€
Donations (last month): +0€

Current balance: 55€
(last updated 04/2021)

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

Thanks!
Collapse/Expand Links
Collapse/Expand Advertisement
There are currently 35 users playing Freelancer on 36 servers.
May. 6, 2021

Browsing this Thread:   1 Anonymous Users



 Bottom   Previous Topic   Next Topic  Register To Post

(1) 2 »


Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
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
Top
Re: Game engine limit (String Cache overflow)
Quite a regular
Joined:
2010/6/13 13:38
From Russia, Penza
Group:
Registered Users
Posts: 172
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2016/3/29 21:54
From England
Group:
Registered Users
Trusted Speciality Developers
Posts: 40
Offline
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.
Top
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1986
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
Quote:

adoxa wrote:
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
Top
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1986
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
Quote:

adoxa wrote:
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 ]



Open in new window

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

Attach file:


zip common.zip Size: 555.08 KB; Hits: 21

Posted on: 2/22 17:25
Top
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1986
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
Quote:

adoxa wrote:
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?



Open in new window



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
Top
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1986
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
Quote:

adoxa wrote:
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
Top
Re: Game engine limit (String Cache overflow)
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1986
Offline
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
Top
Re: Game engine limit (String Cache overflow)

Joined:
2011/2/27 21:00
Group:
Registered Users
Posts: 21
Offline
Quote:

adoxa wrote:
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.

Open in new window

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
But it doesn't read settings.


And want to add that rarely the server can't create the universe and continue to show the next error:
Code:
1: E:\FL\Scratch\Source\Common\Systems.cpp(3117) : *** ERROR: could not create universe ''

Is it also connected with offset? Because I didn't see it before.

Posted on: 2/25 11:36
Top
(1) 2 »