How to use Freeland (big) tileset? How to enable sound?

You can get help here if Freeciv doesn't start on your computer, or if you keep getting fatal errors while playing etc.
cazfi
Elite
Posts: 1725
Joined: Tue Jan 29, 2013 6:54 pm

Re: How to use Freeland (big) tileset? How to enable sound?

Postby cazfi » Sat Jul 02, 2016 5:10 pm

Arbogast wrote:I downloaded and installed "Freeciv-2.6.0-alpha+r32928-gtk2". I then launched the Modpack and chose Freeland Big and Freeland normal. I was told that "3.0-beta2.1-04" was installed.
Yes, those should be compatible. Freeciv-2.6 r32928 is already a revision where datafile format for 2.6 has been frozen, and its modpack installer should list 2.6 compatible modpacks.
Is anyone able to reproduce this problem? I don't have Windows machine to run test like this just now.

I wonder if it makes a difference if you change tileset settings from the main menu or inside running game (started with another tileset) or even starting with commandline option to set tileset.

User avatar
dunnoob
Elite
Posts: 327
Joined: Mon Dec 23, 2013 3:13 am
Location: Hamburg
Contact:

Re: How to use Freeland (big) tileset? How to enable sound?

Postby dunnoob » Sun Jul 03, 2016 6:10 am

cazfi wrote:Is anyone able to reproduce this problem?
Trying: 32928 MP get freeland, okay. Get freeland big, okay. Quit MP, start 32928 client, enjoy Freecol intro music (I modified that), okay. Start new game, all (five) AIs hard, 2 of 5 normal as always, okay. Start with random nation gameloss cckcc, open nations, open research, open cities as always, okay. Try to open options.

Repeat from start, the "fixed" TMP alio is not good enough, renamed to TMP.tilespec.bad to hide it. Try to open options, pick freeland, some popup is shown for less than a second, options closed, hanging client (even the spinning circle for the focus unit is frozen.) Close also does not work, start taskmanager, kill freeciv, "program doesn't react", well, yes, that's why I want to kill it, pick kill now, freeciv killed.

Yes, that's apparently reproducible. :twisted:

3rd attempt with option -d 3, LoL there's an enemy leader two tiles (diagonal) away from my leader. Options, local client, freeland, crash, the "normal" termination in an unusual way popup, freeciv terminated itself. No logfile, no stderr.txt, no RPT. The error handling is completely broken in comparison with 2.5 and older.

4th attempt, open command line, civtest 2.6 (a script constructing a FREECIV_PATH and defining a logfile): Hard, 2 of 5, random, options, local, freeland, apply, crash, as expected. Looking for .freeciv/2.6/civtest.log, 38 lines, not too bad:

Code: Select all

1: in get_data_dirs() [../../../../utility/shared.c::1032]: FREECIV_PATH is deprecated, and won't work in future versions.
2: in load_rulesetdir() [../../../../server/ruleset.c::6937]: Loading rulesets.
1: in get_data_dirs() [../../../../utility/shared.c::1032]: FREECIV_PATH is deprecated, and won't work in future versions.
2: in aifill() [../../../../server/srv_main.c::2226]: AI*1 has been added as Easy level AI-controlled player (classic).
2: in aifill() [../../../../server/srv_main.c::2226]: AI*2 has been added as Easy level AI-controlled player (classic).
2: in aifill() [../../../../server/srv_main.c::2226]: AI*3 has been added as Easy level AI-controlled player (classic).
2: in aifill() [../../../../server/srv_main.c::2226]: AI*4 has been added as Easy level AI-controlled player (classic).
2: in aifill() [../../../../server/srv_main.c::2226]: AI*5 has been added as Easy level AI-controlled player (classic).
2: in srv_main() [../../../../server/srv_main.c::3195]: Now accepting new client connections on port 5557.
2: in handle_login_request() [../../../../server/connecthand.c::353]: Connection request from sysop from xyzzy.localhost
2: in handle_login_request() [../../../../server/connecthand.c::358]: c1 has client version 2.6.0-alpha
2: in establish_new_connection() [../../../../server/connecthand.c::177]: sysop has connected from xyzzy.localhost.
2: in aifill() [../../../../server/srv_main.c::2226]: AI*1 has been added as Easy level AI-controlled player (classic).
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Player 'AI*2' now has AI skill level 'Hard'.
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Player 'AI*3' now has AI skill level 'Hard'.
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Player 'AI*4' now has AI skill level 'Hard'.
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Player 'AI*5' now has AI skill level 'Hard'.
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Player 'AI*1' now has AI skill level 'Hard'.
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Default AI skill level set to 'Hard'.
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Player 'AI*3' now has AI skill level 'Normal'.
2: in cmd_reply_line() [../../../../server/stdinhand.c::357]: Player 'AI*5' now has AI skill level 'Normal'.
2: in announce_player() [../../../../server/srv_main.c::2516]: John Moss rules the Belizeans.
2: in announce_player() [../../../../server/srv_main.c::2516]: Alexandru cel Bun rules the Romanians.
2: in announce_player() [../../../../server/srv_main.c::2516]: Börte rules the Mongols.
2: in announce_player() [../../../../server/srv_main.c::2516]: Tekun Umam rules the Mayas.
2: in announce_player() [../../../../server/srv_main.c::2516]: Trưng Trắc rules the Vietnamese.
2: in announce_player() [../../../../server/srv_main.c::2516]: Miguel Primo de Rivera rules the Spanish.
2: in generator_init_topology() [../../../../../server/generator/mapgen_topology.c::305]: Creating a map of size 60 x 70 = 4200 tiles (map size: 4).
2: in tilespec_reread() [../../../../client/tilespec.c::1244]: Loading tileset "freeland".
2: in lost_connection_to_client() [../../../../server/connecthand.c::463]: Lost connection: sysop from xyzzy.localhost (read error) (player John Moss).
2: in server_sniff_all_input() [../../../../server/sernet.c::592]: Shutting down in 1 seconds for lack of players.
2: in server_sniff_all_input() [../../../../server/sernet.c::568]: Shutting down for lack of players.
2: in server_remove_player() [../../../../server/plrhand.c::1656]: Removing player John Moss.
2: in server_remove_player() [../../../../server/plrhand.c::1656]: Removing player Alexandru cel Bun.
2: in server_remove_player() [../../../../server/plrhand.c::1656]: Removing player Börte.
2: in server_remove_player() [../../../../server/plrhand.c::1656]: Removing player Tekun Umam.
2: in server_remove_player() [../../../../server/plrhand.c::1656]: Removing player Trưng Trắc.
2: in server_remove_player() [../../../../server/plrhand.c::1656]: Removing player Miguel Primo de Rivera.


5th attempt, civtest 2.6 -d 3, that's again a "kill hanging freeciv now" variant as in my 1st attempt. The relevant part of the logfile might be this:

Code: Select all

3: in fileinfoname() [../../../../utility/shared.c::1318]: Could not find readable file "freeland/normal/terrains/t.x-navi-animation" in data path.
3: in tileset_error() [../../../../client/tilespec.c::580]: Don't have graphics tags "t.blend.arctic" or "" for blend terrain "Inaccessible".
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING_INFO(116) len=8 to sysop
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING(88) len=3 to sysop
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING_INFO(116) len=4 to sysop
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING(88) len=3 to sysop
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING_INFO(116) len=4 to sysop
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING(88) len=3 to sysop
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING_INFO(116) len=4 to sysop
3: in server_sniff_all_input() [../../../../server/sernet.c::623]: connection (sysop from xyzzy.localhost (player Ramaraja)) [hack-level] ping timeout ignored
3: in send_packet_data() [../../../../common/packets.c::213]: sending packet type=PACKET_CONN_PING_INFO(116) len=4 to sysop
3: in server_sniff_all_input() [../../../../server/sernet.c::623]: connection (sysop from xyzzy.localhost (player Ramaraja)) [hack-level] ping timeout ignored
2: in lost_connection_to_client() [../../../../server/connecthand.c::463]: Lost connection: sysop from xyzzy.localhost (read error) (player Ramaraja).
2: in server_sniff_all_input() [../../../../server/sernet.c::592]: Shutting down in 1 seconds for lack of players.
3: in savegame2_save() [../../../../server/savegame2.c::523]: saving game in new format ...

cazfi
Elite
Posts: 1725
Joined: Tue Jan 29, 2013 6:54 pm

Re: How to use Freeland (big) tileset? How to enable sound?

Postby cazfi » Sun Jul 03, 2016 10:22 am

dunnoob wrote:

Code: Select all

3: in tileset_error() [../../../../client/tilespec.c::580]: Don't have graphics tags "t.blend.arctic" or "" for blend terrain "Inaccessible".
That's it; freeland (and presumably many other older custom tilesets) are not compatible with most of the supplied rulesets that have "Inaccessible" terrain type added to them in freeciv-2.5.

User avatar
Arbogast
Elite
Posts: 412
Joined: Tue Jul 16, 2013 9:09 am
Location: France

Re: How to use Freeland (big) tileset? How to enable sound?

Postby Arbogast » Sun Jul 03, 2016 1:28 pm

Dunnoob, thanks for your input. I feel vindicated. Did you those tests on a Windows machine ?
But now, this glitch is now in your expert hands, as those kind of manipulations are beyond me.

I'm reinstalling 2.5.x to see what's what.
I'm afraid that trying both Freeland tilesets gave the same runtime error and it kicks out Freeciv and back to Windows...

cazfi
Elite
Posts: 1725
Joined: Tue Jan 29, 2013 6:54 pm

Re: How to use Freeland (big) tileset? How to enable sound?

Postby cazfi » Sun Jul 03, 2016 3:16 pm

dunnoob wrote:

Code: Select all

3: in fileinfoname() [../../../../utility/shared.c::1318]: Could not find readable file "freeland/normal/terrains/t.x-navi-animation" in data path.

Actually this is something that seems like you've got corrupted installation of Freeland, though given the reproducibility over installations it seems likely it gets corrupted in memory, after loading, rather than on your harddisk. Still, could you check if text "x-navi-animation" is present in any freeland file (freeland.tilespec or any .spec file inside its directory)

cazfi
Elite
Posts: 1725
Joined: Tue Jan 29, 2013 6:54 pm

Re: How to use Freeland (big) tileset? How to enable sound?

Postby cazfi » Sun Jul 03, 2016 3:26 pm

It makes sense if this turns out to be filepath issue with modpack installer. Windows filepath handlings have been changed recently in S2_6 in general, and specifically modpack installer Windows dir separator handling was changed in r32872 (just before the problematic r32928 build): bug #24677.

cazfi
Elite
Posts: 1725
Joined: Tue Jan 29, 2013 6:54 pm

Re: How to use Freeland (big) tileset? How to enable sound?

Postby cazfi » Sun Jul 03, 2016 4:14 pm

Patch #7376 is not going to fix the problem, but hopefully it makes it easier to find out where the bug is. It adds debug logging about all the filenames and download URLs. You should see those logs when you run future modpack installer revisions containing the change with commandline option '-d 3'. It'll take couple of days before I can make such a build.

User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: How to use Freeland (big) tileset? How to enable sound?

Postby GriffonSpade » Sun Jul 03, 2016 4:35 pm

Arbogast wrote:Let's see if I can make things clearer :
I downloaded and installed "Freeciv-2.6.0-alpha+r32928-gtk2". I then launched the Modpack and chose Freeland Big and Freeland normal. I was told that "3.0-beta2.1-04" was installed.
I then launched Freeciv went to the client settings and chose a Freeland tileset from the list and WHAM! A Windows window told me "Runtime Error".

I just took it for granted that this version of freeland was compatible with the 2.6 version.

thanx for your attention.


That version of freeland IS compatible with 2.6.
Actually, I just loaded up that alpha version (r32928) with GTK2 and it crashed for me too. r33044 also crashed with GTK2.
It's looking like it's something GTK2 specific, as Qt r33044 loaded freeland up just fine.

User avatar
Arbogast
Elite
Posts: 412
Joined: Tue Jul 16, 2013 9:09 am
Location: France

Re: How to use Freeland (big) tileset? How to enable sound?

Postby Arbogast » Sun Jul 03, 2016 7:27 pm

Does that mean that QT is more reliable than the GTKs ?
In fact, does Qt works in Windows ? And then, what does QT means ? You know, I'm just a lonesome player...

User avatar
dunnoob
Elite
Posts: 327
Joined: Mon Dec 23, 2013 3:13 am
Location: Hamburg
Contact:

Re: How to use Freeland (big) tileset? How to enable sound?

Postby dunnoob » Sun Jul 03, 2016 10:05 pm

Arbogast wrote: Did you those tests on a Windows machine ?
Yes, I haven't really used Linux or any other *NIX for decades (still planning to test a legacy Bodhi Linux vintage 2015 te replace a vintage 2006 Knoppix or actually Debian after installation.) It's a script to get the log-file in a known place with a known name for the given options -d 3 or not. The new --warning option did not yet work when I tried it in a 2.5.99, and Freeciv hates unknown options.

Code: Select all

@echo off & @rem based on XNT.kex script template version 2016-03-05
setlocal enableextensions & prompt @
for %%x in (2.4 2.5 2.6) do if "%~1" == "%%x" goto USER
goto HELP
:USER --------------------------------------------------------------
::: Find [home]/.freeciv/2.x or fail :::::::::::::::::::::::::::::::
set USER=%APPDATA%\.freeciv\%~1
set NEED=%USER%
if not exist "%USER%\*" goto NEED
::: Find [prog]/freeciv-2.x.* or fail ::::::::::::::::::::::::::::::
set PROG=%ProgramFiles(x86)%
set NEED=%%ProgramFiles%%
if     "%PROG%" == ""    set PROG=%ProgramFiles%
if     "%PROG%" == ""   goto NEED
set INST=
set FCIV=gtk3
set NEED=%PROG%\Freeciv-%~1.*-%FCIV%
for /D %%x in ("%NEED%") do set INST=%%x
if not "%INST%" == ""   goto OPTS
set FCIV=gtk2
set NEED=%PROG%\Freeciv-%~1.*-%FCIV%
for /D %%x in ("%NEED%") do set INST=%%x
if     "%INST%" == ""   goto NEED
:OPTS --------------------------------------------------------------
::: Find [home]/.freeciv/2.x/civtest.log for --log :::::::::::::::::
set OPTS=%USER%\%~n0.log
if     exist "%OPTS%"    del /P "%OPTS%"
if     exist "%OPTS%"    set OPTS=
if not "%OPTS%" == ""    set OPTS=--log "%OPTS%"
::: Skip 1st argument 2.x for the options ::::::::::::::::::::::::::
for /F "usebackq tokens=1*" %%x in ('%*') do set OPTS=%OPTS% %%y
set FREECIV_PATH=.;%INST%\data;%USER%
set FCIV=%INST%\freeciv-%FCIV%.exe
set NEED=%FCIV%
if not exist "%FCIV%"   goto NEED
::: Show constructed FREECIV_PATH and run ::::::::::::::::::::::::::
echo FREECIV_PATH=%FREECIV_PATH%
echo LANG=%LANG%
echo start "%FCIV%" %OPTS%
start "%~n0" /D . "%FCIV%" %OPTS%
goto WAIT
:NEED --------------------------------------------------------------
echo/
echo Error: %0 found no "%NEED%"
:HELP --------------------------------------------------------------
echo Usage: %0 2.4^|2.5^|2.6 [opts]
echo/
echo For quick command line experiments with different
echo Windows Freeciv gtk? clients.  Starts an installed
echo Freeciv-gtk?.exe 2.x.y with a FREECIV_PATH for the
echo corresponding ~\.freeciv\2.x below %%APPDATA%%:
set APPDATA
echo/
echo CAVEATS: The freshest 2.x.y[*] wins; gtk3 beats 2.
echo This script uses --log ~\.freeciv\2.x\%~n0.log.
echo The default stderr.txt for option --help would end
echo up in the legacy %%LOCALAPPDATA%%\VirtualStore:
set LOCALAPPDATA
:WAIT --------------------------------------------------------------
set NEED=usebackq tokens=2 delims=/
for /F "%NEED% " %%c in ('%CMDCMDLINE%') do if /I "%%c" == "c" pause
:DONE -------------- (name not copied, 2016) -----------------------