VCMI on Haiku

#1

Hi! I downloaded the VCMI sources and succesful built it on Haiku, a BeOS clone (haiku-os.org)

img504.imageshack.us/img504/9558 … ot2jpd.png

The game starts… but when I choose the scenario and press play… the game changes to a fullscreen mode, and all turns to black an freezes.

I followed those steps at VCMI wiki to build

and I have the following files on my VCMI clean directory

[VCMI]
[AI]
[EMPTYAI]
EmptyAI.so & etc…
[GENIUSAI]
GeniusAI.so & etc…

[Data]
[config]
[Lib]
libvcmi.so & etc…
[Maps]
[MP3]
[Sprites]
vcmiclient
vcmiserver

What could I do to play?

#2

It shouldn’t be changing to fullscreen, but the with the config/settings.txt from the repository the resolution is set to 1024x768, which seems to be the same as yours. You could try changing it to 800x600 and see if that helps.

#3

Thanks… I’ll try…

here is a log message that appears sometimes (sometimes not)

pastebin.com/5J7syDRU

#4

As far as I see Haiku is not supported by neither SDL nor boost, so this problem should be reported to Haiku developers (since both libraries seem to support BeOS).

#5

Of course that Haiku supports all libSDLs, Libboost, and much more!

Please see the complete list here (some libs are missing in this list)

ports.haiku-files.org/wiki/Downloads

Only still misses a decent port of VCMI :mrgreen:

Thanks for your reply!


On the other side, I look closer:

~/Desktop> listimage | grep vcmi
TEAM 435 (./vcmiclient):
1325 /boot/apps/vcmi/vcmiclient 0x200000 0x90a000 0 0
1326 /boot/apps/vcmi/lib/libvcmi.so.0.0.0 0x916000 0xd45000 0 0
TEAM 457 (/bin/sh -c /boot/apps/vcmi/vcmiserver 3030 > server_log.txt):
TEAM 458 (/boot/apps/vcmi/vcmiserver 3030):
1362 /boot/apps/vcmi/vcmiserver 0x200000 0x428000 0 0
1363 /boot/apps/vcmi/lib/libvcmi.so.0.0.0 0x42c000 0x85b000 0 0
TEAM 485 (/bin/grep vcmi):

~/Desktop> netstat
Proto Recv-Q Send-Q Local Address Foreign Address State Program
tcp 0 0 *:ssh : listen 92/sshd
udp 0 0 *:631 - 120/print_server
tcp 0 0 *:3030 : listen 458/vcmiserver

Seems all starts fine. But tcpidump not showing any activity.

Our error message (from this class pastebin.com/1gRmMyXs):

Cannot establish connection! Retrying within 2 seconds
Establishing connection…
Problem with resolving:
system:-2147483643
Something went wrong… checking for error info
system:-2147483643

If I not mistake error code (from dev.haiku-os.org/browser/haiku/t … t/Errors.h):
#define B_BAD_VALUE (B_GENERAL_ERROR_BASE + 5)

And finally I can connect to server via telnet:

/> telnet 127.0.0.1 3030
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
Aiya!
VCMI 0.80 (server)

I think something wrong with client

#6

I still think that those libraries are not working properly. I’ve never seen VCMI printing

nor

.

Maybe SDL_Mixer has a bug on Haiku that spoils VCMI_client preventing it from connecting to VCMI_server? You could try to disable all sound handling code in VCMI and see if it fixes the problem with connecting.

#7

The ports of SDL mixer and image on ports.haiku-files.org/wiki/Downloads are for gcc2… That seems a little outdated to me.

#8

Yes… but all game ports like

openredalert
fheroes2 (the most download game in the history) :smiley:
linball
wormux
boswars

was done with a sdl package that I made with GCC4 here:

haikuware.com/directory/view-det … aries-gcc4

but thanks!

I will take a closer look in SDL_mixer

#9

I doubt that SDL_mixer is source of problems here (and if it’s not working, it should do nothing or crash VCMI but not mysteriously sabotage loopback connection).

If SDL / boost work well enough to allow scenario selection and connecting via telnet to the server, they should also allow playing game.

Error message is pretty clear:

Problem with resolving:
system:-2147483643

Server is running in background and it’s connection is working (as you confirmed by using telnet), the problem lies somewhere in the networking code of client.

Take a look at lib/Connection.cpp, line 70 and further. That’s where connection to the server is established.

tcp::resolver::iterator end, pom, endpoint_iterator = resolver.resolve(tcp::resolver::query(host,port),error);

That line for some reason fails.
If there is server application listening on port 3030 of localhost, I see two possibilities
a) host and port arguments are invalid (I don’t see any rational reason for that but who knows). try logging them before the feral line:

tlog0 << "Host: " << host << " Port: " << port << std::endl;

They should be “127.0.0.1” and “3030”.

b) boost::asio resolver doesn’t work properly with HaikuOS.
(You can try to reproduce the issue on the examples from asio documentation boost.org/doc/libs/1_42_0/do … mples.html )

You may also try to figure out what that error code means (-2147483643). Maybe Haiku has somewhere documented error codes. Maybe strerror will give something.

Thanks for the interest in our project and good luck! :slight_smile:

#10

WoW!!!

Thanks Tow!

I really appreciate much your reply!!

VCMI is something about the Haiku users asking me to port

and your reply give me a light

I acctually using libboost 1.38

I’ll switch to 1.42 now and try again…

#11

How is it going Michael? I’ve just read Haiku released Alpha 2 and I wanted to try it in virtual machine :slight_smile:

#12

Hi!

unfortunately I was aware a bit because some exams!

But I’m getting some errors in building libboost 1.42 …

So, I’ll investigate a bit more

Ah! And Haiku Alpha 2 is very stable! You can test and see by yourself

Only missing 3D stuff and some posix functions…

#13

Seems that VCMI uses

sys/shm.h

functions in some way

but Haiku don’t have it yet…

#14

How did you compile and linked VCMI if you didn’t have that file?

#15

probably part of boost?
if it is remember to extract not basic boost modules too :slight_smile:

#16

We link statically to boost libraries, so if they weren’t built, VCMI wouldn’t link. I think it could be a problem with runtime libraries.

#17

ahh probably

#18

Hi again!!

Thank you!!

It’s ported and working now!

haikuware.com/directory/view-det … -magic-iii

It’s all because the recent changes on the network kit by axeld

Thank you for all help and for this great game!