(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 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
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
04-29-2018, 11:15 AM (This post was last modified: 04-29-2018, 11:24 AM by Eric.B.)
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
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.
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
04-29-2018, 04:02 PM (This post was last modified: 04-29-2018, 04:09 PM by Eric.B.)
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
04-29-2018, 04:44 PM (This post was last modified: 04-29-2018, 04:55 PM by Eric.B.)
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
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
(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.
(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
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
04-29-2018, 07:52 PM (This post was last modified: 04-29-2018, 07:53 PM by Eric.B.)
(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
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,
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
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