Missing Files?

2012-03-28
2012-12-05
1 2 > >> (Page 1 of 2)
  • I just downloaded and compiled v1.0 (Gentoo Linux, Intel Core2 64-bit processor), and I started the game.  While it played the intro quite beautifully, after Carter Walcrite's newscast, when I clicked continue, the program terminated with the following error:

    raceintospace: gx.c:46: gxGetImage: Assertion `0 <= x1 && x1 < 320' failed.
    Aborted

    Does anyone have any suggestions?

     
  • I tried it again while starting a game as a Soviet instead of as an American, and I got the following error:

    raceintospace: gx.c:47: gxGetImage: Assertion `0 <= y0 && y0 < 200' failed.
    Aborted

    Finally, I tried to view the credits but I only got a blank screen.  If I'm missing files, from where can I get them?  I don't see any files packages anywhere…

     
  • Leon Baradat
    Leon Baradat
    2012-03-28

    Uh oh!  Unfortunately I'm not a programmer, so that error doesn't tell me much.  gx.c is in the race folder, which goes to the root of your RIS folder, and can be found in the repository (http://raceintospace.cvs.sourceforge.net/viewvc/raceintospace/race/).  Not surprisingly, it looks to be part of a routine where an image is selected or something.  I'm not sure what's going on in that page, but-since you're a Gentoo user-you may have better programming chops than I do.  If you know anything about C you might be able to make something of it.  The code section (with line numbers) is below.

    39  gxGetImage (GXHEADER *hp, int x0, int y0, int x1, int y1, int op)
    40  {
    41  int w, h, from_idx, to_idx, row;
    42  
    43  assert(op == 0);
    44  assert(hp);
    45  assert(0 <= x0 && x0 < MAX_X);
    46  assert(0 <= x1 && x1 < MAX_X);
    47  assert(0 <= y0 && y0 < MAX_Y);
    48  assert(0 <= y1 && y1 < MAX_Y);
    49  assert(x0 <= x1);
    50  assert(y0 <= y0);
    
     
  • I'm not specifically a programmer, but I know some code.  The assertion that a certain variable falls between 0 and a maximum value fails, which results in a catastrophic failure of the software.  However, I don't understand what those variables mean…

     
  • Leon Baradat
    Leon Baradat
    2012-04-11

    Hm, me either.  It looks like it's going to that routine to choose the image to display (the one it shows as part of the newscast, an image related to the newscast).  But what those variables mean I'm at a loss to say.  The code in that page is pretty obscure.

     
  • And if it didn't find the image, then the program would crash.  I can believe that's a problem - I've read that those who compile from scratch need to install images separately.  However, I'm not sure which images I'd need to download (because they're not all packaged together), and I'm not sure how to install them…

    Any thoughts/ideas?

     
  • Leon Baradat
    Leon Baradat
    2012-04-11

    Oh wait!  Is the game data folder in your RIS directory named gamedat or gamedata?  It's named gamedat in the repository, but I think the game expects a folder named "gamedata".

     
  • The directory is called gamedata, and there are a bunch of files inside.  However, aside from a few .img files, there aren't any graphics files…

     
  • Leon Baradat
    Leon Baradat
    2012-04-11

    Well, so much for my simple solution.  I've uploaded an archive of the data files for the game to the 1.0 folder in the Files section.  Try downloading that, deleting your old RIS folder and unzipping the file there; you'll find the files in a folder called RIS_Unzipped, which you can rename.  Then copy/unzip the files you used earlier, overwriting the existing ones (copy the contents of gamedat into gamedata, of course).  Then compile the source, see if that does it.

     
  • Thank you very much - I'm downloading the file right now.  Where should the data files be placed relative to the source tree?

     
  • OK - so I followed your instructions and I recompiled, and now I get a different error:

    CRITICAL ERROR utils.c:75:xmalloc     allocation failure: Cannot allocate memory

    Given that I have over 400 MB of RAM free (and there's no way this game could take anywhere near that much), I think something else is wrong…

     
  • Leon Baradat
    Leon Baradat
    2012-04-11

    Um…not sure.  Hm, … when you copied/unzipped the files over the ones I uploaded-did you copy/unzip the contents of the race folder to the root of your new RIS folder?

     
  • Yes, I did: I untarred the file you uploaded, renamed the directory to be the packaging directory of the game tarball, and then untarred the game tarball over it.

     
  • Leon Baradat
    Leon Baradat
    2012-04-11

    Ok, tell you what.  When I get home tonight I'll prepare a new tarball (I didn't put together the original, so don't know the details of what he did).  This one will also include the changes I've made recently, including improvements to Technology Transfer.  With this new tarball, you should be able to just unzip and compile.

     
  • Thanks for your help!

    Now, however, I'm getting the following error again, same place, similar to the original error:

    gx.c:46: gxGetImage: Assertion `0 <= x1 && x1 < 320' failed.
    

    Interestingly, there were a number of errors.  I received the following warning during configuration:

    config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting
    

    Then, I received the following errors/warnings during compilation:

    admin.c: In function FileAccess:
    admin.c:397: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:423: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:460: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:471: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:497: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:507: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:580: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:600: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:607: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:613: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:681: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:688: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:694: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:701: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c: In function save_game:
    admin.c:900: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:901: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:906: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c:919: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    admin.c: In function EndOfTurnSave:
    admin.c:1441: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    mc.c: In function MissionPast:
    mc.c:399: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    news.c: In function News:
    news.c:633: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    news.c:635: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    place.c: In function Draw_Mis_Stats:
    place.c:834: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    place.c:835: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    prefs.c: In function Prefs:
    prefs.c:324: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    prefs.c:333: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    prefs.c: In function EditAst:
    prefs.c:672: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    prefs.c:673: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    rdplex.c: In function HPurc:
    rdplex.c:793: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    rdplex.c:964: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    records.c: In function MakeRecords:
    records.c:62: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    records.c: In function ClearRecord:
    records.c:163: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    records.c: In function SafetyRecords:
    records.c:430: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    records.c: In function UpdateRecords:
    records.c:1121: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    start.c: In function SetEvents:
    start.c:93: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    start.c:99: warning: ignoring return value of fwrite, declared with attribute warn_unused_result
    pace.c: In function RLED:
    pace.c:103: warning: format %d expects type int, but argument 2 has type long int
    options.c:60:16: warning: missing terminating ' character
    
     
  • Leon Baradat
    Leon Baradat
    2012-04-12

    Whoa…hm.  How are you opening the game?  It sounds like maybe it's all ok except it's looking in the wrong directory for gamedata.  AFAIK, as long as it's pointed to your RIS folder, it automatically looks under there for the gamedata folder.  But you have to give it a specific pointer for where data is.  So my launcher uses this syntax (emphasis added):

    /home/leon/RIS/raceintospace BARIS_DATA=/home/leon/RIS BARIS_SAVE=/home/leon/RIS/saves

     
  • Interesting - before, I'd been running make install, and then just running raceintospace without any arguments.  Using the two parameters, in the same place, I get the following:

    raceintospace: gx.c:46: gxGetImage: Assertion `0 <= x1 && x1 < 320' failed.
    

    So, still, it's not finding something…

     
  • Leon Baradat
    Leon Baradat
    2012-04-12

    Are you following the README file instructions?  I don't know if it will help, but you might check what's mentioned in the "README" file on that tarball.

     
  • I followed the README instructions again, and I got the same result as before.  There seems to be a missing file somehow…

     
  • Leon Baradat
    Leon Baradat
    2012-04-17

    Shoot!  Well, I don't know.  It compiled successfully on my system.  Is there maybe a piece of development software you have to install first in order to compile this under Gentoo?

    This isn't ideal, but maybe you could try compiling this in a Virtualbox install of Lubuntu, just to see if it works.

     
  • Just a shot in the dark - did you compile for 64 bit or 32 bit? I'm pretty sure the code will show problems if 64 bit compiler is used…

    Did you try to increase logging verbosity? That should tell you when the game crashes. I'm pretty sure missing file could not have caused the error you're seeing.

    In the last resort you'll have to run the game under gdb (gnu debugger) to find out the backtrace and why the assertion in the code fails.

     
  • My system is 64-bit, so I presume that I compiled it for 64-bit.  I ran gdb, and this is what I got:

    0x00007ffff6f5a755 in raise () from /lib64/libc.so.6
    
     
1 2 > >> (Page 1 of 2)