Jump to content
Eternal Lands Official Forums
0ctane

Macintosh OS X port interest?

Recommended Posts

I have been working on a port of the latest EL to Mac OSX. The previous person working on this, Corun I think, is incommunicado. While I have been encountering many difficulties, I am making slow progress.

 

My question is, how much interest is there in a Mac OS X client? Would anyone else use it? Am I wasting my time? Is there anyone intersted in helping me?

 

Sorry to the forum managers (as this sorta repeats two other threads) but this board is not too active. Maybe this should be in a non-programming section.

Share this post


Link to post
Share on other sites

programming should be the right place for it (especially if you will be submitting patches to get the client to work on mac OS)

I don't know how much help it might be to talk to the BSD devs, but that's probably the closest OS that's working with ELC

there have been a few people who asked about a macOS version, and going by the general guide that for everyone who asks, there's a heap who don't... it's worthwhile

I submit patches that get ELC to work using visual studios. i doubt many people use that to compile ELC, so the userbase for those changes is small, but it's worth doing. on an upside, you can have resulting changes to the client that are good not just for your porting work

 

(as an aside, if you haven't contacted any of the admin to let them know you're working on this, it's probably a good idea, since only devs or people otherwise with permission are allowed to use anything besides current CVS or releases. I strongly doubt there would be any objections to changes for porting, but better if you tell them in advance. if you have, please ignore :( )

Share this post


Link to post
Share on other sites
(as an aside, if you haven't contacted any of the admin to let them know you're working on this, it's probably a good idea, since only devs or people otherwise with permission are allowed to use anything besides current CVS or releases. I strongly doubt there would be any objections to changes for porting, but better if you tell them in advance. if you have, please ignore :D )

204273[/snapback]

Anyone in particular I should talk to?

Share this post


Link to post
Share on other sites
Anyone in particular I should talk to?

204324[/snapback]

entropy, mihaim(rogue ingame), wytter, grum, and learner are the ranking coders. Roja is head of development. any of them is likely to be fine. if not, they'll send you or your message to the right person

Share this post


Link to post
Share on other sites

Yes, there IS need for the OSX client. If you get it to work, I am willing to give you a small monetary gift (maybe 100 USD or so).

Share this post


Link to post
Share on other sites

Octane, If you have a suitable build environment, any chance i can get a copy of the pre-compiled libs, noteing the cctools version you are using, I might be able to set up a cross-compile for mac, on bsd.

Share this post


Link to post
Share on other sites
Yes, there IS need for the OSX client. If you get it to work, I am willing to give you a small monetary gift (maybe 100 USD or so).

204383[/snapback]

That is a very nice offer ... we will have to see if I actually get it working. But seeing as how this is a free game to start with, it just does not seem right to get paid. Maybe a nice sword or one of those special characters.

Octane, If you have a suitable build environment, any chance i can get a copy of the pre-compiled libs, noteing the cctools version you are using, I might be able to set up a cross-compile for mac, on bsd.

I have two Mac G5s with OS 10.3.9 at my disposal. (truthfully, they belong to my boss, but he is pretty cool about my distractions). I am attempting to compile with both Xcode and gnu compilers from fink. Looks like I have cctools-499-1 from fink. I am quite rusty, and my practical experience (outside of classes in college) was writing small fortran and c/c++ progs to convert data formats. I have Cal3d compiled myself. libxml, libvorbis, and some others are compiled by fink. I think I will have to compile OpenAL myself. I cannot seem to get the Creative OpenAL framework to work properly with my makefile. I hope only the OpenAL 1.0 is necessary.

 

I had been trying to get things compiled with the Linux makefile, but the BSD version is probably a better option seeing as how OSX is built on it. Also, I am not sure in XCode if there is a place to set options like -DOSX. I wish I had more time to learn it. Is there a option flag I can throw to completely remove all sound/music? Is there a list of all the flags/options? Or is there a stripped down version of the client that I can build up from?

Edited by 0ctane

Share this post


Link to post
Share on other sites
The Linux and BSD makefiles are pretty similar, aren't they? Just some paths are different, I think.

205055[/snapback]

 

nope, unless you mean the bsdg makefile? i set that up for using gnu make on FreeBSD.

Can prolly also use it on mac, as long as you are using the gnu tools i guess, Not sure how well that goes with cctools and associated environment.

Share this post


Link to post
Share on other sites
nope, unless you mean the bsdg makefile? i set that up for using gnu make on FreeBSD.

Can prolly also use it on mac, as long as you are using the gnu tools i guess, Not sure how well that goes with cctools and associated environment.

205059[/snapback]

Well, the bsdg makefile was throwing a bunch of "ISO C needs a space in macros" or something like that.

<command line>:11:3: warning: ISO C requires whitespace after the macro name

I went back to the Makefile.linux. I am so close to getting it compiled. The frameworks seem to be behaving right now, but I am stuck with a "undefined" error, I think due to libraries being compiled with different compiler versions. That error was an undefined reference to ___gxx_personality_v0. Of course, I do not get it now. Now I have:

... books/symbols.o         cal3d_wrapper.o
ld: asc.o illegal reference to symbol: _libiconv defined in indirectly referenced dynamic library /usr/lib/libiconv.2.dylib

Sigh...more hunting.

Edited by 0ctane

Share this post


Link to post
Share on other sites

In relation to an OSX client.... I'm more than willing to help test it when it's ready.

 

My programming experience is minimal, but I've been doing Internet stuff (running an ISP, web scripting, system admin etc) for 10 years, so I'm kinda used to beta (and a bit of alpha) testing.

 

If you want some help with the testing side of things please let me know (and admins, when this client is ready for testing please allow my to test it on my normal login)

 

Hope this is of some help (I just wish I had a bit of a clue about C, then I would offer to help code stuff too)

Share this post


Link to post
Share on other sites
Well, the bsdg makefile was throwing a bunch of "ISO C needs a space in macros" or something like that.
<command line>:11:3: warning: ISO C requires whitespace after the macro name

  I went back to the Makefile.linux.  I am so close to getting it compiled.  The frameworks seem to be behaving right now, but I am stuck with a "undefined" error, I think due to libraries being compiled with different compiler versions.  That error was an undefined reference to ___gxx_personality_v0.  Of course, I do not get it now.  Now I have:

... books/symbols.o         cal3d_wrapper.o
ld: asc.o illegal reference to symbol: _libiconv defined in indirectly referenced dynamic library /usr/lib/libiconv.2.dylib

Sigh...more hunting.

205131[/snapback]

 

Try adding iconv on your linker line? maybe directly referanced it wont be an issue

Edited by Zep

Share this post


Link to post
Share on other sites
In relation to an OSX client.... I'm more than willing to help test it when it's ready.

 

Count me in too, I'd love to be able to play EL on my iBook. I'm sure my wife would too.

Share this post


Link to post
Share on other sites

There absolutly are requests for such a client. I have a G3 ibook and would love to play EL on that. Count me in for testing the client.

 

:P

Share this post


Link to post
Share on other sites
Try adding iconv on your linker line? maybe directly referanced it wont be an issue

205543[/snapback]

So I was gone for a week doing research (RL work), and I cannot reproduce this error. :huh:

On the plus side, I have been able to compile the program! :D However, it does not run. :)

Compiling give a bunch of "warning: passing arg 2 of `glDeleteTextures' from incompatible pointer type" messages, but I do not think that is a big deal. Other errors:

asc.c: In function `my_UTF8Toisolat1':
asc.c:394: warning: passing arg 2 of `libiconv' from incompatible pointer type
.
gamewin.c: In function `keypress_root_common':
gamewin.c:863: warning: implicit declaration of function `startpaste'
.
gl_init.c: In function `init_gl_extensions':
gl_init.c:539: warning: passing arg 2 of `glGetIntegerv' from incompatible pointer type
.
lights.c:77: warning: passing arg 6 of `gluProject' from incompatible pointer type
.
particles.c: In function `load_particle_def':
particles.c:138: warning: unsigned int format, GLenum arg (arg 3)
particles.c:138: warning: unsigned int format, GLenum arg (arg 4)
.
sound.c: In function `get_loaded_buffer':
sound.c:210: warning: unused variable `loop'
sound.c: In function `kill_local_sounds':
sound.c:609: warning: unused variable `queued'
sound.c:609: warning: unused variable `processed'
.
ld: warning multiple definitions of symbol CAGuard::Wait()
/Library/Frameworks/OpenAL.framework/OpenAL(single module) definition of CAGuard::Wait()
...
ld: warning multiple definitions of symbol _ZN7CAGuardD0Ev.eh
/Library/Frameworks/OpenAL.framework/OpenAL(single module) definition of _ZN7CAGuardD0Ev.eh
...
symbol CAGuard::~CAGuard [not-in-charge]() used from dynamic library /Library/Frameworks/OpenAL.framework/OpenAL(single module) not from earlier dynamic library /sw/lib/libSDL-1.2.0.dylib(CAGuard.o)
symbol _ZN7CAGuardD0Ev.eh used from dynamic library /Library/Frameworks/OpenAL.framework/OpenAL(single module) not from earlier dynamic library /sw/lib/libSDL-1.2.0.dylib(CAGuard.o)
...

But it still compiled. When trying to run what was compiled, I get a "Bus error (core dumped)". The crash report says

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_PROTECTION_FAILURE (0x0002) at 0x00000a40

From an apple website, this is, "the exception was caused by a memory access instruction (in terms of C, this means that you're dereferencing an invalid pointer)." Looks like libGL.dylib is the culprit right now. :P elconfig.c uses change_projection_float to call resize_root_window in gl_init.c, which in turn causes a fault with glMatrixMode. So, maybe those gl errors point to something more serious?

Thread 0 Crashed:
0   libGL.dylib              	0x909156b4 glMatrixMode + 0x2c

Share this post


Link to post
Share on other sites

So I am tracing the problem right now. My thread trace was:

Thread 0 Crashed:
0   libGL.dylib              	0x909156b4 glMatrixMode + 0x2c
1   el_osx                    0x0002e26c resize_root_window + 0x3c (gl_init.c:748)
2   el_osx                    0x0001d9a8 change_projection_float + 0x14 (elconfig.c:438)
3   el_osx                    0x0001dfdc check_var + 0x370 (elconfig.c:681)
4   el_osx                    0x0001fc08 read_el_ini + 0x50 (elconfig.c:1078)
5   el_osx                    0x0003458c read_config + 0xa8 (init.c:193)
...

...so i looked into read_el_ini. By throwing in a printf call, the el.ini file is read up to line 302 which is #near_plane = 40.0 for me. I don't think the problem is here, but I cannot really tell. Looked into resize_root_window. The variables seem to be okay: window_height = 480, window_width = 640, hud_x = 64, hud_y = 48. But the run dies at the glMatrixMode(GL_PROJECTION) call. I might need to write a small OpenGL program to test out my OpenGL. ugg.... I uncommented the glViewport call in gl_init.c (in the resize_root_window function), and the program crashes there. I am thinking that the OpenGL context is not being setup properly before we get into this function.... Thoughts anyone?

Share this post


Link to post
Share on other sites
Guest skaar
There absolutly are requests for such a client. I have a G3 ibook and would love to play EL on that. Count me in for testing the client.

 

:D

206201[/snapback]

 

also here, if you need someone to test your client only post where we can download them. I can test it on an ibook G4 (i love my mac, would be great if i can play EL on it too) :)

 

I've tried out to port it too, but was on previous version and now I'm out of time :( (darn RL :D )

Hope you will get it, good luck.

Edited by skaar

Share this post


Link to post
Share on other sites

My Windows is just plain spastic sometimes. *sigh* But I have an excellent Mac. I would love to play Eternal Lands on here! Especially since I can't currently get on my PC (:P).

 

Edit:

The Linux and BSD makefiles are pretty similar, aren't they? Just some paths are different, I think.

205055[/snapback]

 

 

Well, I know that .exe's don't work on Macs, so not too long ago I tried altering the Linux version of EL to run on my Mac, but had no luck. :(

Edited by Mhailyn

Share this post


Link to post
Share on other sites
i would be very interested in using this, as i have a mac now...heh.

 

i would be able to do some testing if needs be...not much though, uni life!

 

I might get a Mac laptop for christmas, and if I do it would be awesome if this works, because then I can play at school. I'll test whenever it is ready. I'm also willing to give you a nice in game reward if you get it working by New Years.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×