Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
No maps are available in the "new game" dialogue
#1
I'm running Gear City testing, 1.23.2, but this bug also appears in the standard version of Gear City distributed on Steam.  I am running on Linux.

When I click the "new game" dialogue, no maps are listed.  It is not possible to start a game without a map selected, but there is nothing to select.

I have attached the log file to this post.

Here is a screenshot from 1.23.2:

[Image: 1vxNZ3t.jpg]


Attached Files
.log   Logfile.log (Size: 52.86 KB / Downloads: 515)
Reply
#2
(04-28-2018, 08:17 PM)toaster maven Wrote: I'm running Gear City testing, 1.23.2, but this bug also appears in the standard version of Gear City distributed on Steam.  I am running on Linux.

When I click the "new game" dialogue, no maps are listed.  It is not possible to start a game without a map selected, but there is nothing to select.

Hello Toaster,

Is this the first time you've ran the game? Did it work fine before? Did you make any modifications to the files?

If this is the first time playing the game, please do a file verification: https://support.steampowered.com/kb_arti...-QEUH-3335

If that fails to resolve the issue, you'll need to do a clean manual reinstall. Most likely Steam downloaded the files and the MD5 checksums are correct, but the files are malformed. This happens in about 1 in every 2000 Steam downloads. You will need to follow these steps exactly:
1) Open the main game folder folder: http://wiki.gearcity.info/lib/exe/detail.php?id=troubleshooting%3Asteam_installfolder&media=troubleshooting:steam_open_install_folder.gif
2) Return to Steam, while leaving the folder open.
3) Uninstall the game.
4) When the game is finished uninstalling, delete everything that remains in the main game folder.
5) Reboot the computer
6) Reinstall the game.


If that still fails to resolve the issue, then we'll look into folder permissions on your system.
Let me know if the above works or not and we'll go from there.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#3
Unfortunately, neither a file verification nor a clean install worked.

Validation always fails after running the game. Executing runGearCity seems to change at least one file that Steam validates.

A clean install, removing the game directory entirely, resets my video settings, but does nothing for the Maps problem.

Looking at strace output it looks like the game is correctly using fstat64() and friends instead of fstat(), which is good. I was afraid that having 64 bit inodes on the filesystem would be a problem, but it doesn't look like that's it Sad
Reply
#4
Check /home/ajones/.steam/steamapps/common/GearCity/GearCity/media/Maps and verify that there are folders with files in there.

If there are files there. Try a simple:
chmod -R 777 /home/ajones/.steam/steamapps/common/GearCity/GearCity/media/Maps

Generally 755 should be enough, but it sounds like you don't belong to the proper group or something.

If this still fails, please give me the output of of the media folder with:
ls -alh

The ls -alh of the /home/ajones/.steam/steamapps/common/GearCity/GearCity/media/Maps/Base City Map/ folder (particularly looking for 2 xml files).

And also the terminal output of the game when you run ./GearCityStart
(Don't use the runGearCity script unless you're using locale settings that use commas (,) for decimal points.)
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#5
I have the expected files in GearCity/media/Maps, but I do NOT have them in GearCity/GearCity/media/Maps -- there is no 'media' in the GearCity subdir.

Is that a problem?
Reply
#6
Sorry typo on my part, it should be common/GearCity/media/Maps.

The above stuff is still valid, just use the media/map folders you found.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#7
Unfortunately, no change in behavior.  No maps listed in "new game" dialog.  I have attached the console output from the game.


Attached Files
.log   gearcity_console.log (Size: 57.13 KB / Downloads: 447)
Reply
#8
Here are my directory listings. uid/gid look fine.
Code:
$ ls -nlah media/Maps/
total 24K
drwxrwxrwx  7 1001 1001  114 Apr 29 11:35 .
drwxrwxrwx 19 1001 1001 4.0K Apr 29 11:35 ..
drwxrwxrwx  8 1001 1001 4.0K Apr 29 11:35 Base City Map
drwxrwxrwx  8 1001 1001 4.0K Apr 29 11:35 Base Territories
drwxrwxrwx  8 1001 1001 4.0K Apr 29 11:35 Classic Map
drwxrwxrwx  8 1001 1001 4.0K Apr 29 11:35 Europe Test
drwxrwxrwx  8 1001 1001 4.0K Apr 29 11:35 Old School Territories

$ ls -nlah media/Maps/Base\ City\ Map/
total 148K
drwxrwxrwx 8 1001 1001 4.0K Apr 29 11:35 .
drwxrwxrwx 7 1001 1001  114 Apr 29 11:35 ..
drwxrwxrwx 2 1001 1001   24 Apr 29 11:35 AILogos
drwxrwxrwx 2 1001 1001   24 Apr 29 11:35 CityArt
drwxrwxrwx 2 1001 1001   22 Apr 29 11:35 FlagArt
drwxrwxrwx 2 1001 1001   23 Apr 29 11:35 MapArt
-rwxrwxrwx 1 1001 1001 2.6K Apr 29 11:34 MapFileForGame.xml
-rwxrwxrwx 1 1001 1001 3.0K Apr 29 11:34 MapFileForModTools.xml
-rwxrwxrwx 1 1001 1001 129K Apr 29 11:34 mapPicture.dds
drwxrwxrwx 2 1001 1001   21 Apr 29 11:35 NewsArt
drwxrwxrwx 2 1001 1001 4.0K Apr 29 11:35 scripts
Reply
#9
Thanks for the information. It looks like your in game web browser is broken. Most likely you're missing libs or not linked against the correct ones. So that's probably 2 things more we'll have to fix or else the game will be unplayable.(You don't get a news page when you start the game do you?)

What distribution and version are you using? And do you have all the 32-bit files needed for your system? For example, I see that audio does not work because it looks like you only have the 64bit version of pulse audio libs installed. For example on Debian variants, the fix for this is:
sudo apt-get install lib32asound2
sudo apt-get install lib32asound2-dev
sudo apt-get install libasound2-plugins:i386
sudo adduser $(whoami) audio
And relogin/reboot


I've built a special version so spit out a little bit more debugging information. Please download this http://gearcity.info/Downloads/Beta/GearCityStart over the GearCityStart binary file. Run, and then upload the log file for me please.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#10
I am assuming you're using XFS or something similar? If so then most likely the 64bit Inode is the issue. And it will be for any 32bit game/program you use that uses dirent's readdir.

If so there ~might~ be a solution which involves compiling a specific version with 64bit inode offsets. Although this would be unmaintainable and untestable for me. Alternatively you can use an ld_preload to intercept all readdirs and convert them to 64bit https://www.tcm.phy.cam.ac.uk/sw/inodes64.html. Or the easiest solution is to make an etx4 partition somewhere on your system and run your 32bit programs on that.

I may be porting the game over to 64bit at the end of the year for continued OSX support. So the inode64 issues will probably be resolved then.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#11
I have went ahead and attempted some compiler flags to see if it will fix inode64 support with 32bit binaries. However if it breaks the 32bit support in any way (or is unable to compile the game) I will not ship the changes out and you'll be left with the proposed second partition solution.

It'll be a couple of hours, then I'll link you to the binary.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#12
(04-29-2018, 05:10 PM)Eric.B Wrote: I have went ahead and attempted some compiler flags to see if it will fix inode64 support with 32bit binaries. However if it breaks the 32bit support in any way (or is unable to compile the game) I will not ship the changes out and you'll be left with the proposed second partition solution.

It'll be a couple of hours, then I'll link you to the binary.

Eric, since you already use stat64() for the calls where you care about the return values, I have a feeling it will probably work.

Thanks for looking into this!
Reply
#13
(04-29-2018, 04:44 PM)Eric.B Wrote: I am assuming you're using XFS or something similar? If so then most likely the 64bit Inode is the issue. And it will be for any 32bit game/program you use that uses dirent's readdir.

Yes, this is a recurring problem.  It is not really practical to have 32 bit inodes on a modern system due to the size of filesystems Sad

To fix these kinds of problems, you can either set a compiler flag to make readdir() return 64 bit values, or call readdir64 from a 32 bit program.

Gear City would not be the first game on Steam against which I filed a bug on 64 bit inodes
Reply
#14
(04-29-2018, 07:46 PM)toaster maven Wrote: Yes, this is a recurring problem.  It is not really practical to have 32 bit inodes on a modern system due to the size of filesystems Sad
Well, for a single partition correct. Creating a specific partition using 32bit inodes for these 32bit programs would solve your issue though.


Quote:To fix these kinds of problems, you can either set a compiler flag to make readdir() return 64 bit values,
Which I already have done, I have not tested it yet however to make sure it works: http://gearcity.info/Downloads/Beta/GearCityStart2 Just overwrite the current GearCityStart file.

The main concern is that it doesn't break all the other stuff implemented in the game for everyone else. Hence why I will need to do some testing. I will get it some in the next couple of days. But at the very least you can let me know if that resolves the issues for you.


Quote:or call readdir64 from a 32 bit program.
This won't happen.

Quote:
Gear City would not be the first game on Steam against which I filed a bug on 64 bit inodes
Well, as I mentioned previously, I will be working on a 64bit version post release due to apple completely gutting 32bit support from their OS. I have to rewrite much of the engine anyway due to this because I will lose access to about half my libraries on that platform.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#15
Eric, I attempted both fixes.

Mounting a small loopback filesystem just for GearCity does indeed resolve my problem. So we have confirmation that 64 bit inodes are the issue.

Unfortunately, the updated GearCityStart2 binary did not improve the behavior on the normal filesystem. Still no maps appear.

I guess I will just have to muddle along with the loopback until you have a 64 bit version out. Thanks a lot for looking into this!
Reply
#16
Glad you got it working. Just makes the OSX revamp even more important since 64bit Inodes are slowly becoming more of a thing now.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)