dashdan / freerct

Automatically exported from code.google.com/p/freerct
0 stars 0 forks source link

Loading language failed: 'Could not read header' #4

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Compile FreeRCT
2. Run FreeRCT from the terminal

What is the expected output? 
FreeRCT should run
What do you see instead?

Loading language failed: 'Could not read header'

What version of the product are you using? On what operating system?
Using trunk SVN

Please provide any additional information below.

Ubuntu 11.10
64-bit

Original issue reported on code.google.com by christie...@gmail.com on 13 May 2012 at 3:47

GoogleCodeExporter commented 9 years ago
I'm getting the same problem on Fedora 16 (i686). Compiles fine after 
installing SDL dev dependencies. But then 'Could not read header'.

Also; There is an error when checking out, saying that 'freerct-read-only' 
isn't a valid path (giving me an empty freerct-read-only folder). So only the 
trunk gets checked out. I suppose the freerct-read-only tag would be more 
likely to build?

"svn: 'freerct-read-only' does not appear to be a URL"

Original comment by per.fred...@gmail.com on 14 May 2012 at 5:19

GoogleCodeExporter commented 9 years ago
Might help a little bit:

$ grep -n "Loading language failed:" src/*.cpp
src/language.cpp:129:       fprintf(stderr, "Loading language failed: '%s'\n", msg);
$ grep -n "Could not read header" src/*.cpp
src/language.cpp:46:    if (!rcd_file.CheckFileHeader("RCDS", 1)) return "Could 
not read header";
src/sprite_store.cpp:1047:  if (!rcd_file.CheckFileHeader("RCDF", 1)) return 
"Could not read header";

Original comment by per.fred...@gmail.com on 14 May 2012 at 5:31

GoogleCodeExporter commented 9 years ago
I looked into it for a bit:
The file "../rcd/english.lang" is missing. I tried to build rcd but it needs a 
few dependencies. So:

First, python imaging library. I got it here 
http://www.pythonware.com/products/pil/. Second, to build it, python dev 
package (complains about Python.h) is needed, python-devel on Fedora/yum. 

When PIL is built. I compiled rcd (I don't think I did anything more). Worked. 
But freerct still gives the same error.

I can guess that I need to run rcd in order to generate language files? Which 
file to run? With what argument?

Original comment by per.fred...@gmail.com on 14 May 2012 at 6:16

GoogleCodeExporter commented 9 years ago
I guess the build procedure needs to be easier to find.
I'll do this quickly now, and make a more useful description later.

@1: "freerct-read-only" is invented by Google. It's not part of the http path, 
but a new argument, namely the target directory (there is a space between the 
last / and freerct-read-only). So yeah, checkout trunk to whatever directory 
you like :p

@2: Most build details are in the Makefile. Running "make lang" should do the 
trick (in the 'src' directory). I agree error detection is less than optimal, 
but that holds for pretty much anything at the moment.

@3: Similarly, "make rcd" should work. You can download PIL also from yum (the 
python-imaging package). rcd files and languages files are independent from 
each other. Unfortunately, you'll need Python 2.7 due to an unfortunate choice 
I made in an option processing module (Python 2.7 is also available at fedora 
16, don't know about ubuntu).

You'll also need to create a freerct.cfg file, an INI file containing a path to 
a .ttf file (which is used for text). If you run the program it will print a 
suggestion (after loading the various files), which works for me at my fedora 
16 system.

I hope you can get it running, although there is not much to do other than some 
terraforming with the mouse wheel, and laying paths (which I am quite sure 
contains several flaws, but I aim for a more complete program rather than a 
perfect path-builder at this time.

Original comment by Alberth2...@gmail.com on 15 May 2012 at 3:19

GoogleCodeExporter commented 9 years ago
I managed to get it to run after running 'make lang' and setting up a cfg file.

Original comment by christie...@gmail.com on 15 May 2012 at 8:09

GoogleCodeExporter commented 9 years ago
I can't find any directory where 'make lang' works as a command. What kind of 
cfg file did you create?

Original comment by per.fred...@gmail.com on 15 May 2012 at 2:06

GoogleCodeExporter commented 9 years ago
Run 'make lang' in the /src directory. The config file is to do with fonts and 
contains something like this:

[font]
medium-size = 12
medium-path = /usr/share/fonts/truetype/freefont/FreeSans.ttf

make sure it is a font that exists on your system though.

Original comment by christie...@gmail.com on 15 May 2012 at 3:25

GoogleCodeExporter commented 9 years ago
But I don't understand the cfg file. How did you figure out that you needed it? 
Where should it be? Name? Is there some standard for cfg files?

Original comment by per.fred...@gmail.com on 15 May 2012 at 8:09

GoogleCodeExporter commented 9 years ago
Uhm, some of my message seems to have disappeared. Well, anyway, sorry. I'm not 
accustomed to cfg files and how to set it up. Is there a standard? There 
doesn't seem to be any cfg file in the repo by default.

Original comment by per.fred...@gmail.com on 15 May 2012 at 8:26

GoogleCodeExporter commented 9 years ago
I only found out about it after I had done 'make lang'. When I ran freerct 
after that it told me I needed a cfg file and what should go in it.

Original comment by christie...@gmail.com on 15 May 2012 at 9:34

GoogleCodeExporter commented 9 years ago
The file should be called freerct.cfg and you should put it in the src directory

Original comment by christie...@gmail.com on 15 May 2012 at 9:35

GoogleCodeExporter commented 9 years ago
Oh, I see. Thanks!

Now I get a segmentation fault. :)

Anyone interested in a core dump? Not sure what to do with it myself. Perhaps 
about time I learn that stuff though.. I may or may not look into it later.

Original comment by per.fred...@gmail.com on 15 May 2012 at 11:03

GoogleCodeExporter commented 9 years ago
The path in the cfg file exists (that is, it points to an existing ttf file, 
with ASCII characters in the font-size you set?)

I added a BuildProgram wiki page (it's in the left bar at the home page too) 
that explains the build process at a Linux system.

as for core dumps:
$ gdb ./freerct
core <name of core-file>
bt

should give you a stack dump of what the program was doing at the time of the 
crash.

Original comment by Alberth2...@gmail.com on 16 May 2012 at 4:55

GoogleCodeExporter commented 9 years ago
Closing this issue now; problems seems to have been resolved mostly.

Until binary builds are made and released, I guess this will stay a bumpy ride, 
since development will inevitably cause changes in the build process.

To make it less bumpy, in r364 I modified the Makefile to build and check for 
all files (including language files, RCD files, and the freerct.cfg. That 
should help somewhat in early detection of problems.

Original comment by Alberth2...@gmail.com on 2 Jun 2012 at 9:35

GoogleCodeExporter commented 9 years ago

Original comment by CharlesP...@googlemail.com on 6 Aug 2013 at 3:09