Author Topic: Incursion source release is here!  (Read 20320 times)

Zireael

  • Rogueliker
  • ***
  • Posts: 604
  • Karma: +0/-0
    • View Profile
Re: Incursion source release is here!
« Reply #30 on: March 24, 2014, 08:33:55 PM »
"Only a couple hundred meg" is A LOT for me and I don't have any other versions of VS.

If I got instructions on how to compile with mingw or something, I'd be very happy (note, the only game I compiled was Oolite and I got very clear instructions, otherwise I suck at it)

chooseusername

  • Rogueliker
  • ***
  • Posts: 329
  • Karma: +0/-0
    • View Profile
    • Email
Re: Incursion source release is here!
« Reply #31 on: March 24, 2014, 09:40:28 PM »
"Only a couple hundred meg" is A LOT for me and I don't have any other versions of VS.

If I got instructions on how to compile with mingw or something, I'd be very happy (note, the only game I compiled was Oolite and I got very clear instructions, otherwise I suck at it)
Well, you could go to a library and use the internet there for larger downloads.  It's what I do.

I can't help with compiling with mingw.  I suggest you look into writing a makefile, and just go from there.  Could be a nice learning experience for you.  It's pretty basic stuff.

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Incursion source release is here!
« Reply #32 on: March 25, 2014, 11:51:45 AM »
"Only a couple hundred meg" is A LOT for me and I don't have any other versions of VS.

Downloading is the problem or disk space? You must have an old PC. My VS2010 folder seems to take 379Mb, it's not that big in modern perspective. Code::Blocks is 250Mb so it's almost in the same scale.

Zireael

  • Rogueliker
  • ***
  • Posts: 604
  • Karma: +0/-0
    • View Profile
Re: Incursion source release is here!
« Reply #33 on: March 25, 2014, 03:27:21 PM »
Downloading, not disk space...

DaBeowulf

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: Incursion source release is here!
« Reply #34 on: March 30, 2014, 03:40:12 AM »
I had to try and compile this (on and for Linux).
I take it the current sources come with everything needed to later run it as well?

I used vcproj2cmake to get a make instructions for Linux going (I am kinda clueless when it comes to porting and writing Makefiles from scratch).

I had to comment out a program.i source (which seems to should get generated during the build process?) also the NOTES stuff.

I actually got to the point where it gave me the shiny Incursion executable but alas it segfaults right after opening the Options.Dat (which I had to copy from the latest official binary release).

FWIW: I am using libtcod 1.5.1


EDIT: Similar "success" with winelib.
also FWIW: added "#include <unistd.h>" to Wlibtcod.cpp
« Last Edit: March 30, 2014, 04:27:03 AM by DaBeowulf »

chooseusername

  • Rogueliker
  • ***
  • Posts: 329
  • Karma: +0/-0
    • View Profile
    • Email
Re: Incursion source release is here!
« Reply #35 on: March 30, 2014, 05:12:11 AM »
The instructions in README.md contain all the necessary instructions for building it on Windows.  Following those, nothing else is needed that is not detailed in that file.

options.dat did not come with the latest binaries.  It is generated by incursion to store your options data - the defaults are programmed into the source code, so there is no need to distribute this.

program.i is irrelevant.  I believe it is part of the module compilation, and you should be able to delete it's entry from the makefile.  Incursion when built can make it on demand, when the user compiles the module in a debug build from the main menu.  And it is not used in compiling incursion itself.

I cannot help you otherwise as I do not have the required information.  But thanks for trying to compile it -- you're the first to try as far as I know.
« Last Edit: March 30, 2014, 05:18:58 AM by chooseusername »

DaBeowulf

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: Incursion source release is here!
« Reply #36 on: March 30, 2014, 07:32:39 AM »
In the debugger it looked like the Segfault occured somewhere around "0xb7fbaf7c in TCOD_sys_get_current_resolution ()"

That led me to look into the way I dealt with that again and swap libtcod.so in the final linking for the (slightly edited) -llibtcod (just leaving out the lib part because another "lib" is getting prefixed) man-page: "The linker searches a standard list of directories for the library, which is actually a file named liblibrary.a"

The reason might be that I do not actually have libtcod properly installed I am only adding the path I built libtcod.so in with LD_LIBRARY_PATH.*

What is a bit weird is that with the libtcod.a instead of libtcod.so approach to the final linking it now does not produce the binary but complains about undefined references to the ACCENT things (yygrammar yyerror ...).



EDIT: * actually I do not think that is an issue, the gcc man-page further says on the topic of the -l library switch: "The linker handles an archive file by scanning through it for members which define symbols that have so far been referenced but not defined."
So, this seems to be the reason it is now more strict when linking everything into the final executable.

You wrote: "Remove the step that regenerates yygram.cpp/yygram.h, as this requires the modified accent tool which is not yet provided by Julian.  Ensure you still have the pregenerated src/yygram.cpp and inc/yygram.h that came with the rar." So I take it ACCENT is optional and would only be needed if say own custom mods should work?
And an ACCENT that does not have some edits Julian made to it would be of no use to me?

There is my segfault happening, Wlibtcod.cpp :360
"    theGame = new Game();
    {
        AT1 = new libtcodTerm;
        AT1->SetIncursionDirectory(executablePath);
        T1 = AT1;
        // ww: otherwise we segfault checking options
        T1->SetPlayer(NULL);
        T1->Initialize();
        //T1->Title();
    }
"

Hmm, or more like line 677  "TCOD_sys_get_current_resolution(&res_w,&res_h);"  debugger turned that up with what seems to have been a more proper go at it


"Added support for libtcod backend as an alternative to Allegro4.2. Currently some colour loss, but otherwise appears to work. Requires slightly modified libtcod & SDL2 to work."
I had built libtcod 1.5.1 against libSDL not libSDL2, tried libSDL2 but something did not work out, well I would be missing any modifications to SDL2 whatsoever. The libtcod patch you provided was applied either way. Is there one for SDL2, too?


Oh, okay there is a libSDL.so in the libtcod archive. But it also wants other libs (directfb and fusion and quite old versions of those).

Meh, using that supplied libSDL.so and giving it the newer dependency libs instead of the old ones it is expecting still segfaults at that TCOD function call at 677 in Wlibtcod

enough for now
« Last Edit: March 30, 2014, 09:58:57 AM by DaBeowulf »

chooseusername

  • Rogueliker
  • ***
  • Posts: 329
  • Karma: +0/-0
    • View Profile
    • Email
Re: Incursion source release is here!
« Reply #37 on: March 30, 2014, 08:17:48 PM »
In the debugger it looked like the Segfault occured somewhere around "0xb7fbaf7c in TCOD_sys_get_current_resolution ()"
Yes, this is a problem with how you've built libtcod, or something.  I can't really help with that.

Note that libtcod uses a specific SDL2 version, and comes with makefiles to build against it.

Accent is not needed at all, and we do not have the modified version anyway.

DaBeowulf

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: Incursion source release is here!
« Reply #38 on: March 30, 2014, 08:32:12 PM »
Hi, which version of the lib do you mean, 1.5.1 as well?

Yes, my current problem lies somewhere with or beyond libtcod.
Lots of things to try left and if all fails going back to allegro is another option.

Really hope on getting a natively compiled-on-my-box version of the sources running.

Now the overdue:
Thanks for your work on them.

« Last Edit: March 30, 2014, 09:39:50 PM by DaBeowulf »

chooseusername

  • Rogueliker
  • ***
  • Posts: 329
  • Karma: +0/-0
    • View Profile
    • Email
Re: Incursion source release is here!
« Reply #39 on: March 30, 2014, 10:31:43 PM »
Hi, which version of the lib do you mean, 1.5.1 as well?
I use a messy modified version.  But any version should work.

DaBeowulf

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: Incursion source release is here!
« Reply #40 on: April 01, 2014, 05:36:49 PM »
It's running.  ;D

Built the debug libtcod and then was fortunately led to the good advice on the net to add
SDL_Init(SDL_INIT_VIDEO);
before
const SDL_VideoInfo* vInfo = SDL_GetVideoInfo();
and calls to ->current_w;

in src/sys_sdl_c.c of libtcod.


But the Incursion.mod I took from 0.6.9H4L apparently does not work with this version (which gets displayed as Y1 in the menu although I cloned when Y2 was already commited. *shrugs* (I'm on 85bff5d420f2839c8e11bc004a522b9c6f51a8a1, I dealt with case-sensitiveness in quite a haphazard way so it is a bit more work pulling in your latest additions).

It is not able to built the file either. Maybe because I did not put the irh files anywhere?
"Incursion when built can make it on demand, when the user compiles the module in a debug build from the main menu."
Darn I cannot, I guess other module files from other versions may not help either.


Thanks again.


EDIT: Seems that module issue has to do with the setting of the IncursionDirectory apparently not being portable? (The culprit may actually be in the Registry.cpp, dunno)
I got it halfway working with slotting that in the IncursionDirectory part in Wlibtcod
char *str2 = strrchr(argv[0], '\\');
        if (str == NULL) {
            IncursionDirectory = getcwd(str2, 256);
            IncursionDirectory += "/";

Which of course is not portable either, also I think I am producing the segfault which happens in the 'Compile Resources' menu entry with that maybe somehow.
« Last Edit: April 01, 2014, 06:54:00 PM by DaBeowulf »