Main Menu

Mono for MacOS X and Linux

Started by Threepwood, February 26, 2008, 12:42:27 PM

Previous topic - Next topic

Threepwood

Hi,

I read in the minimum system requirements that the application requires the dot net framework.

Would your developing team consider "compiling" your code for mono which is an opensource implementation of the .net framework by novell whch is available for Mac OS X and Linux?. If this is possible it would be cool, as this great game will then be cross platform!

http://www.mono-project.com/Main_Page
http://en.wikipedia.org/wiki/Mono_%28software%29#Managed_and_unmanaged_code

Yonkey

It actually turns out that the .NET Framework isn't a requirement after all, since the game compiles to a regular Win32 executable file.

I believe it's also possible to run the game on a Mac and Linux using Windows-emulation software.
"A wish changes nothing. A decision changes everything."

Beetle B.

I believe it's also possible to run the game on a Mac and Linux using Windows-emulation software.

Has this actually been tested? If so, any potential "features" that may not work? If a game works under Wine, it is quite common for certain aspects of the game to falter (sound in some scenes, cut sequences, etc).

I'm a Linux user. Not complaining about lack of support, but just so that you know there are probably lots of Linux users who really want to play this game.

I remember years ago you were using a development environment which would make it fairly easy to produce Linux and Mac versions. Has that changed? If not, it would be great if there's a "quick" way to take what you have and compile it for Linux and Mac as well.
Beetle B.

Yonkey

We're still using that same engine.  Feel free to try out the Beta build on Linux and let us know if you can get it to work.
"A wish changes nothing. A decision changes everything."

Beetle B.

#4
I downloaded it and tried it.

Wine can install it.

Then when I run it, I get the main screen. But clicking any option (Run, Restore, About, etc) causes it to crash.

Getting things to run on Wine is complex. Perhaps there's a setting somewhere that I need to tweak - I just don't know enough about Wine to do this...

According to the Crystal Space Web site you can easily make a Linux build. If you can tell me, what are you guys putting in that may make this difficult (i.e. something outside of Crystal Space)?
Beetle B.

Yonkey

Oh, the engine actually isn't Crystal Space.   It's Torque Game Engine.  The crashing could be because it's not able to detect your video card.  Could you attach the console.log file here?
"A wish changes nothing. A decision changes everything."

Beetle B.

Done.

My video card is an ATI Radeon 8500 LE - 128 MB.

glxinfo indicates that 3D rendering is enabled.
Beetle B.

Yonkey

What's the error message that shows up?
"A wish changes nothing. A decision changes everything."

Beetle B.


fixme:imm:ImmReleaseContext ((nil), 0x1190b0): stub
fixme:ntdll:find_reg_tz_info Can't find matching timezone information in the registry for bias 360, std (d/m/y): 2/11/2008, dlt (d/m/y): 9/03/2008
wine: Unhandled page fault on write access to 0x0000003d at address 0x434228 (thread 0009), starting debugger...
Unhandled exception: page fault on write access to 0x0000003d in 32-bit code (0x00434228).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
EIP:00434228 ESP:0033f874 EBP:0033f9a0 EFLAGS:00010202(   - 00      - -RI1)
EAX:0033f900 EBX:00f5f1a8 ECX:00000001 EDX:00f515c8
ESI:0000001c EDI:0127e0a8
Stack dump:
0x0033f874:  00000000 00434861 ffffffff 00f50e00
0x0033f884:  00f5f1a8 01092340 7c049d10 ffffffff
0x0033f894:  00000000 0033f87c 0000002e 00000003
0x0033f8a4:  00000000 3e000000 3d000000 00f51578
0x0033f8b4:  42180000 40400000 00000000 3e1c0000
0x0033f8c4:  00000007 00000008 00b3c348 42180000
Backtrace:
=>1 0x00434228 in tsl (+0x34228) (0x0033f9a0)
  2 0x0045e9ff in tsl (+0x5e9ff) (0x0033f9d0)
  3 0x00475dbc in tsl (+0x75dbc) (0x01092298)
  4 0x00f5a2f8 (0x006683c4)
  5 0x00475290 in tsl (+0x75290) (0x00475760)
0x00434228: incl        0x3c(%ecx)
Modules:
Module  Address                 Debug info      Name (85 modules)
PE        400000-  78d000       Export          tsl
PE       13e0000- 15ae000       Deferred        wrap_oal
PE      10000000-10016000       Deferred        openal32
ELF     7b800000-7b928000       Deferred        kernel32<elf>
  \-PE  7b820000-7b928000       \               kernel32
ELF     7bc00000-7bca2000       Deferred        ntdll<elf>
  \-PE  7bc10000-7bca2000       \               ntdll
ELF     7bf00000-7bf04000       Deferred        <wine-loader>
ELF     7d354000-7d3a0000       Deferred        dsound<elf>
  \-PE  7d360000-7d3a0000       \               dsound
ELF     7d66d000-7d676000       Deferred        libgcc_s.so.1
ELF     7d740000-7d7c1000       Deferred        libglu.so.1
ELF     7d7d4000-7d7eb000       Deferred        glu32<elf>
  \-PE  7d7e0000-7d7eb000       \               glu32
ELF     7d7eb000-7d86d000       Deferred        opengl32<elf>
  \-PE  7d800000-7d86d000       \               opengl32
ELF     7d97e000-7d9d7000       Deferred        rpcrt4<elf>
  \-PE  7d990000-7d9d7000       \               rpcrt4
ELF     7d9d7000-7da77000       Deferred        ole32<elf>
  \-PE  7d9f0000-7da77000       \               ole32
ELF     7da77000-7daad000       Deferred        dinput<elf>
  \-PE  7da80000-7daad000       \               dinput
ELF     7daad000-7dac7000       Deferred        dinput8<elf>
  \-PE  7dab0000-7dac7000       \               dinput8
ELF     7dad7000-7daed000       Deferred        midimap<elf>
  \-PE  7dae0000-7daed000       \               midimap
ELF     7daed000-7db15000       Deferred        msacm32<elf>
  \-PE  7db00000-7db15000       \               msacm32
ELF     7db15000-7db52000       Deferred        wineoss<elf>
  \-PE  7db20000-7db52000       \               wineoss
ELF     7db52000-7db5d000       Deferred        libxcursor.so.1
ELF     7db5d000-7db66000       Deferred        libxrender.so.1
ELF     7db77000-7db90000       Deferred        msacm32<elf>
  \-PE  7db80000-7db90000       \               msacm32
ELF     7e270000-7e29c000       Deferred        libexpat.so.1
ELF     7e29c000-7e529000       Deferred        r200_dri.so
ELF     7e529000-7e532000       Deferred        libdrm.so.2
ELF     7e532000-7e537000       Deferred        libxfixes.so.3
ELF     7e537000-7e53a000       Deferred        libxdamage.so.1
ELF     7e53a000-7e5b0000       Deferred        libgl.so.1
ELF     7e5b0000-7e5b5000       Deferred        libxdmcp.so.6
ELF     7e5b5000-7e5ce000       Deferred        libxcb.so.1
ELF     7e5ce000-7e6cc000       Deferred        libx11.so.6
ELF     7e6cc000-7e6dd000       Deferred        libxext.so.6
ELF     7e6dd000-7e6e3000       Deferred        libxxf86vm.so.1
ELF     7e6e3000-7e6fc000       Deferred        libice.so.6
ELF     7e705000-7e709000       Deferred        libxcomposite.so.1
ELF     7e709000-7e710000       Deferred        libxrandr.so.2
ELF     7e710000-7e713000       Deferred        libxinerama.so.1
ELF     7e726000-7e7b8000       Deferred        winex11<elf>
  \-PE  7e740000-7e7b8000       \               winex11
ELF     7e88a000-7ea2e000       Deferred        libxml2.so.2
ELF     7ea2e000-7ea61000       Deferred        libfontconfig.so.1
ELF     7ea61000-7ea74000       Deferred        libz.so.1
ELF     7ea74000-7eb07000       Deferred        libfreetype.so.6
ELF     7eb31000-7eb44000       Deferred        libresolv.so.2
ELF     7eb45000-7eb47000       Deferred        libxcb-xlib.so.0
ELF     7eb47000-7eb50000       Deferred        libsm.so.6
ELF     7eb50000-7eb6e000       Deferred        imm32<elf>
  \-PE  7eb60000-7eb6e000       \               imm32
ELF     7eb6e000-7eb8d000       Deferred        iphlpapi<elf>
  \-PE  7eb80000-7eb8d000       \               iphlpapi
ELF     7eb8d000-7ebba000       Deferred        ws2_32<elf>
  \-PE  7eba0000-7ebba000       \               ws2_32
ELF     7ebba000-7ec05000       Deferred        advapi32<elf>
  \-PE  7ebd0000-7ec05000       \               advapi32
ELF     7ec05000-7ec9d000       Deferred        gdi32<elf>
  \-PE  7ec20000-7ec9d000       \               gdi32
ELF     7ec9d000-7edd7000       Deferred        user32<elf>
  \-PE  7ecc0000-7edd7000       \               user32
ELF     7edd7000-7ee65000       Deferred        winmm<elf>
  \-PE  7ede0000-7ee65000       \               winmm
ELF     7ef84000-7ef8f000       Deferred        libnss_files.so.2
ELF     7ef8f000-7ef99000       Deferred        libnss_nis.so.2
ELF     7ef99000-7efb0000       Deferred        libnsl.so.1
ELF     7efb0000-7efd6000       Deferred        libm.so.6
ELF     7efd6000-7efd9000       Deferred        libxau.so.6
ELF     7efde000-7eff9000       Deferred        wsock32<elf>
  \-PE  7efe0000-7eff9000       \               wsock32
ELF     b7d20000-b7d29000       Deferred        libnss_compat.so.2
ELF     b7d2a000-b7d2e000       Deferred        libdl.so.2
ELF     b7d2e000-b7e60000       Deferred        libc.so.6
ELF     b7e60000-b7e78000       Deferred        libpthread.so.0
ELF     b7ea2000-b7fb6000       Deferred        libwine.so.1
ELF     b7fb7000-b7fd3000       Deferred        ld-linux.so.2
Threads:
process  tid      prio (all id:s are in hex)
0000000a
        0000000c    0
        0000000b    0
00000008 (D) C:\Program Files\The Silver Lining - Beta Tester Build\tsl.exe
        00000014    0
        00000013   15
        0000000f   15
        0000000d    0
        00000009    0 <==
fixme:winmm:MMDRV_Exit Closing while ll-driver open
fixme:winmm:MMDRV_Exit Closing while ll-driver open



Beetle B.

Kino

As far as I'm aware the game ought to work under Linux and OSX natively with binaries compiled specifically for those systems.  I know, at least for a while, that one of our programmers was actively compiling and using the game on OSX.  The Torque website also appears to claim that the engine should natively work under Linux, I just don't think anyone on the team has actively tried to get it working.

So you can probably assume that they'll be Linux/OSX support, but for now we're far more concerned with fixing game bugs than ensuring compatibility with other OSs.

Beetle B.

That's fine and understandable. If it's a simple matter of compiling to Mac and Linux binaries, they could just do that at the end.

I just got concerned when Yonkey suggested:

QuoteI believe it's also possible to run the game on a Mac and Linux using Windows-emulation software.
Beetle B.

Yonkey

Well, I know it's possible because someone was able to successfully run the TSL Public Demo using Wine here.

I guess it's just a matter of tweaking Wine more.

"A wish changes nothing. A decision changes everything."