Sin Linux status as of 2017-06-18 -- by sezero :

These are the notes after my limited testing on Linux so far.


* cpu support:

  - tested to run as 32 bit (x86) and 64 bit (x86_64) apps, Ok.

  - saves are not interoperable between 32 and 64 bit versions.

  - big endian platforms, e.g. ppc, won't work yet.

  - TODO: add support for big endian platforms: especially the game
    code needs adjusting.  if I adjust the Read?? and Write?? funcs
    in archive.cpp the engine starts and the demos run, but the rest
    is broken (assuming my changes were not in error...)  there are
    other places when endianism is a concern: EventInfo bitfield is
    a problem.  also CM_ReadPortalState() and CM_WritePortalState()
    would need adjusting if saves are to be made in LSB mode only,
    which is another thing to decide itself: if saves will be in LSB
    mode, certain ReadRaw() results and WriteRaw() inputs will need
    adjusting too.  in short, it's a mess not to be taken lightly..


* ref_soft, asm-independent:

  - The 'CJ' Endian changes will need fixing portably.  PACKEDCOLOR,
    etc. in r_local.h may be problematic.


* ref_soft, asm-independent:

  - builds against SDL-1.2, runs Ok. only 8bpp at the moment.

  - TODO: implement 16 bpp mode.

  - TODO: maybe implement a ref_svga for nostalgic purposes.


* ref_gl:

  - builds against SDL-1.2, runs Ok.


* ref_gl, ref_soft, and SDL special key combinations:

  - Ctrl-g grabs/ungrabs mouse (sets _windowed_mouse accordingly.)

  - Shift-Esc brings down console.

  - Alt-Enter switches between fullscreen and windowed mode.


* sound:

  - SDL client runs Ok.

  - the non-SDL client uses OSS in mmap mode and runs just Ok. (you
    may need to set s_khz to 44 or 48 depending on your hardware.)


* dynamic modules (game and refresh):

  - loading and unloading refresh and game *.so modules seem stable.


* cinematics:

  - not implemented yet: the windows code is inherently unportable.
    need to support cinematics using a third party decoder library,
    e.g. ffmpeg or libav.

  - the windows code doesn't seem to work in win64 builds: all the
    more reason to support cinematics using a third party library.


* Mac OS X:

  - using SDL backends, the game runs Ok: tested only on an i386 so
    far, with Mac OS X 10.6.8 version.

  - TODO: how to package the refresh and game dylibs?  inside the app
    bundle or as we do with PC versions?  the latter can be a problem
    on newer  macOS versions.
