Bug Reports and Technical Issues

Niceties here, straight to the point bellow:

I just got back to the RoC after a long while! I run Linux now, but Steam has miraculously made this 15 years old windows game run flawlessly for me! Even with the dev branch of RoC I managed to get a Cultural win with France this past week. I'm just saying this because I have no words to thank y'all for this experience.

That said, I have since the last time I logged on (some 12 years ago) become a software developer (not Python but it's super easy to read Python anyway). I have also started working towards a second degree in Ancient History!

To the point:

1)

Running Steam/Proton/Linux, I am unsure how to get Python error logs. I looked everywhere and I found a C++ override by Leoreth that should get me log files (tried the config .lnk file described at the top of this thread but (unsurprisingly) does nothing in Linux just "unknown filetype" error). But I cannot find a PythonErr.log anywhere. Sometimes I see Python stack traces when there's some Congress error (something goes wrong with the isIsland check, but it's not a showstopper so besides looking up the code I didn't bother trying to understand or plan a change).

The big problem is, the game sometimes crashes to desktop in late game. Once in 1.17 with Japan in 1800s, most recently with France in dev branch from a few days ago. But I managed to reload a good save and got a win before the crash (this time late 1990s). I would love to investigate this as it may help other people who experience instability with weird set ups.

If anyone has some light to shed on how I can get the log file with my set up that'd be amazing!

2)

Dynamic civ names: some civilizations were using very unhistorical civics so there was no dynamic name for them. But the weird thing is, BUG scoreboard and negotiation table with them show (for example Sweden) "TXT_KEY_CIV_SWEDEN_REPUBLIC".

My reasoning was: somehere some code or markup has this key as a stub. I tried looking for that key string but it doesn't exist as is. So I'm guessig some bit of code is generating it. But when I tried to just add an Xml block for this key entry with the value 'Republic of s%1' to the DynamicNames_Sweden.xml file, this didn't work. I tried to find instructions on how to add dynamic names but I couldn't. Please help?


Also in general, I'd love to help with development. Anything I can do?
 
The big problem is, the game sometimes crashes to desktop in late game. Once in 1.17 with Japan in 1800s, most recently with France in dev branch from a few days ago. But I managed to reload a good save and got a win before the crash (this time late 1990s). I would love to investigate this as it may help other people who experience instability with weird set ups.

If anyone has some light to shed on how I can get the log file with my set up that'd be amazing!
I cannot give concrete advice because I have no experience running the mod with Proton or on Linux generally. I assume that this is a general problem at least for Civ4, or perhaps Proton in general, regarding how access to the filesystem is mapped from Windows to Linux. So it might be worth asking around with Linux Civ4 players generally, or looking for general information on how Proton handles this. Since these files go to My Documents, which is a commonly used Windows file location, I would assume that Proton takes care of that in some standardized way.

However, I also have to tamper your hopes that you will be able to investigate crashes using the Python logs. Crashes are likely to originate from the DLL, and you would need to debug it using a debug DLL. It's possible that your crash is related to running on Linux.
Dynamic civ names: some civilizations were using very unhistorical civics so there was no dynamic name for them. But the weird thing is, BUG scoreboard and negotiation table with them show (for example Sweden) "TXT_KEY_CIV_SWEDEN_REPUBLIC".
Yep, dynamic names are incomplete for now. The dynamic names code generates XML keys dynamically for some common civic combinations to reduce the amount of boilerplate code. For the new civilizations, these text keys have not been defined yet, and neither have any more custom dynamic names.
My reasoning was: somehere some code or markup has this key as a stub. I tried looking for that key string but it doesn't exist as is. So I'm guessig some bit of code is generating it. But when I tried to just add an Xml block for this key entry with the value 'Republic of s%1' to the DynamicNames_Sweden.xml file, this didn't work. I tried to find instructions on how to add dynamic names but I couldn't. Please help?
The approach you describe should work, so I have no idea what could have gone wrong. The correct value should be Republic of %s1 though. I don't think that would prevent the text key from working entirely though.
Also in general, I'd love to help with development. Anything I can do?
Play the game and report issues that you find :)
 
I cannot give concrete advice because I have no experience running the mod with Proton or on Linux generally. I assume that this is a general problem at least for Civ4, or perhaps Proton in general, regarding how access to the filesystem is mapped from Windows to Linux. So it might be worth asking around with Linux Civ4 players generally, or looking for general information on how Proton handles this. Since these files go to My Documents, which is a commonly used Windows file location, I would assume that Proton takes care of that in some standardized way.

However, I also have to tamper your hopes that you will be able to investigate crashes using the Python logs. Crashes are likely to originate from the DLL, and you would need to debug it using a debug DLL. It's possible that your crash is related to running on Linux.

Yep, dynamic names are incomplete for now. The dynamic names code generates XML keys dynamically for some common civic combinations to reduce the amount of boilerplate code. For the new civilizations, these text keys have not been defined yet, and neither have any more custom dynamic names.

The approach you describe should work, so I have no idea what could have gone wrong. The correct value should be Republic of %s1 though. I don't think that would prevent the text key from working entirely though.

Play the game and report issues that you find :)

Hey thanks for the quick reply!

I will look up Proton docs and ask around see if I can figure out how to get some insight there.

As for the dynamic names I will try to shake it harder see if things fall into place. 's%' error was just my dyslexia, the xml was correct but thanks for pointing that out.

Besides playing and reporting issues (gladly!), I'd be happy to contribute with research time for historical data and also dev time as well.

Cheers!
 
I will look up Proton docs and ask around see if I can figure out how to get some insight there.
I am running it via wine. Since that is the base of proton maybe I can help. For me the saves are located in Docs/My Games/BtS/Saves (I am using abbreviations). The logs are saved in Docs/My Games/BtS/Logs. I guess the relative location could have changed, especially since I am still running on an old DVD version.

In the Docs/My Games/BtS folder I also have the CivilizationIV.ini file, which IIRC is being linked by config.lnk, where you would have to set loggingenabled = 1, etc.

Btw. at least in wine it is possible to run the windows explorer by: wine explorer, which allows you to go to the location directed by the link. I think Proton should have such a functionality as well. Maybe try proton explorer ?

regarding the late-game crash, it might well be an out-of-memory crash, since Civ4 is still 32bit and thus limited to 4GB RAM. Starting form 3000BC I usually get the first such crash around 1800-1900, if playing in one session.

Regarding this, I recommend setting autosaveinterval = 1 in CivilizationIV.ini, as well as maxautosaves to a sufficiently high value.

Sometimes I see Python stack traces when there's some Congress error (something goes wrong with the isIsland check, but it's not a showstopper so besides looking up the code I didn't bother trying to understand or plan a change).
I saw this a few times as well. However I never was able to reproduce it from an autosave, it always happened when at least a few turns into a session. It actually prevents the congress being correctly resolved, i.e. cities being reassigned, so I tend to reload the autosave, and the error does not appear (until maybe the next congress).
 
I am running it via wine. Since that is the base of proton maybe I can help. For me the saves are located in Docs/My Games/BtS/Saves (I am using abbreviations). The logs are saved in Docs/My Games/BtS/Logs. I guess the relative location could have changed, especially since I am still running on an old DVD version.

In the Docs/My Games/BtS folder I also have the CivilizationIV.ini file, which IIRC is being linked by config.lnk, where you would have to set loggingenabled = 1, etc.

Btw. at least in wine it is possible to run the windows explorer by: wine explorer, which allows you to go to the location directed by the link. I think Proton should have such a functionality as well. Maybe try proton explorer ?

regarding the late-game crash, it might well be an out-of-memory crash, since Civ4 is still 32bit and thus limited to 4GB RAM. Starting form 3000BC I usually get the first such crash around 1800-1900, if playing in one session.

Regarding this, I recommend setting autosaveinterval = 1 in CivilizationIV.ini, as well as maxautosaves to a sufficiently high value.


I saw this a few times as well. However I never was able to reproduce it from an autosave, it always happened when at least a few turns into a session. It actually prevents the congress being correctly resolved, i.e. cities being reassigned, so I tend to reload the autosave, and the error does not appear (until maybe the next congress).
Found the CivilizationIV.ini file!

For future reference if anyone is searching about Steam Proton compatibility issues, files, configuration, etc, at least on Ubuntu:

~/.local/share/Steam/steamapps/compatdata/[gameID#]/

Steam assigns a number to each game, this is gameID#. Inside you can find the file tree that has the My Documents/My Games path. I could find also the PythonErr.log file.

Thank you for the info on Congress errors and as for the hard crash yeah oom sounds very plausible. I was wondering if long sessions were the problem... I haven't had the time (or the sheer spite to run through dozens of turns I'd already played through) to see if re-starting the game (and maybe Steam and maybe the whole system) might fix. I did have a hard crash that happened again the next day when I tried to load the autosave and as soon as I passed the turn it crashed so that made me doubt the long-session/oom hypothesis. I'll investigate, because I'd really like to finish the tech tree and just see what happens. I love to get to the years since I was born and imagine my life in the alternative timeline I'd been cooking =]

Anyways lot's of progress today. I am super happy anyway and just want to overshare: I had been playing Civ4 on my old macbook after I ditched windows but when it died I thought I'd never play Civ4 again. Than about 2 years ago I just decided to try after hearing how much Steam had been doing for Linux compat and it ran! But RFC crashed on startup. Several months and a couple of Proton versions later, out of nowhere I tried again and it worked! And then I found out RoC was still in development! And it ran! Boy I was elated! Late game crash was a bummer but I could at least play out ancient history, which I love, and achieve wins.

The whole journey has been awesome and if I manage to get to the end of time (2020)/tech tree without a hard crash that'd be quite cool!
 
Current git-version:

Got these python messages. Problem is probably the blockading Privateer near India.:)
 

Attachments

  • Screenshot (27).png
    Screenshot (27).png
    2.7 MB · Views: 32
  • Afonso Henriques II.CivBeyondSwordSave
    Afonso Henriques II.CivBeyondSwordSave
    1.4 MB · Views: 3
Current git-version:

Finished Trading Company in Lisboa and chose paying gold 600 for a moroccan sahara city, Anaratupura (Ceylon) and Ambon (javanese one-tile spice island). Worked as it should.

I reloaded (because not getting units seemed bad for UHV2) and chose to draft an army. I declared war to Morocco, Dravidians and Javanese. I got units in Morocco and near Anaratupura, but neither land units nor a ship near Ambon. Maybe it did not work because Ambon has no spot to land units?
 

Attachments

Current git-version:

Finished Trading Company in Lisboa and chose paying gold 600 for a moroccan sahara city, Anaratupura (Ceylon) and Ambon (javanese one-tile spice island). Worked as it should.

I reloaded (because not getting units seemed bad for UHV2) and chose to draft an army. I declared war to Morocco, Dravidians and Javanese. I got units in Morocco and near Anaratupura, but neither land units nor a ship near Ambon. Maybe it did not work because Ambon has no spot to land units?

Can you first check to make certain the third army didn't spawn in some goofball rando location like Sibera? This is a known behavior when a valid tile isn't available adjacent to target so I'd like to rule that out first.

EDIT: Disregard, I loaded the save and checked myself.

Ok so here's what I got: It is a known behavior that if a valid tile isn't available adjacent to target, an army will end up spawning in a random spot as mentioned. However, I've only observed this occurring to AI France and England in which none of the targets are a single-tile island so this sticks out as an unaccounted variable.
 
Last edited:
I don't think that's necessary.
 
Is it impossible to build the Dome of the Rock for a later civilization like the Netherlands? I made sure all the conditions were met in Jerusalem, but there was no option to build it at all
 
Is it obsolete?
 
The encyclopedia doesn't seem to show any obsoleted conditions for this wonder.I'm not sure about the actual situation
 
I noticed in my last games that the AI has been building plenty of closely spaced cities, only two tiles apart from each other. I recall this was fixed at some point but the issue seems to be back. Two saves are attached, for the Italy game take a look at Turkey while for the USA game take a look at Indonesia, Spain and Phillippines. The latter is rather odd, in a game I played with Japan using a slightly older version there were 2 cities in total, now in the USA game there are 5.
 

Attachments

Also Japan did so in my moors game. (2 cities in hokkaido)

Now, 3 things about corsairs:

First, they can not attack ships in ones own borders, maybe this could be changed?

Second, pathfinding does not work well. From far away it thinks a corsair can pass through a foreign city if I have open borders with the owner. Closer it does see this is not possible and moves away again, only to move sufficiently far away to think it is possible again, ending up in an endless loop. See the attached save, and move the corsair somewhere in the adriatic, while making sure the initially shown path leads through the holy roman city.

Lastly, (too much?) blockading with corsairs leads to the following exception, sometimes multiple times per turn. End the turn with the attached save to run into it:
Traceback (most recent call last):
File "BugEventManager", line 382, in _handleDefaultEvent
File "CvEventManager", line 615, in onBlockade
ValueError: too many values to unpack
 

Attachments

Also Japan did so in my moors game. (2 cities in hokkaido)
This has been happening as long as 1.18 has been out in my experience. Poland does it too, they constantly build Vilnius even if Konigsberg, Minsk, and Riga are all two tiles away.
 
I've got the issue I've seen a couple people mention before with Bumin missing the top part of his head. High graphics settings for everything. AMD Radeon RX 6700 XT for my GPU, if it matters.
 
Back
Top Bottom