Linux/Unix build

A place to discuss current and future developments for STeem

Moderators: Mug UK, Steem Authors, Moderator Team

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Linux/Unix build

Postby Steven Seagal » Mon Jan 02, 2012 7:23 pm

Yo penguins,
I see there's been some talk of the Linux build of Steem.
For my part, I always intended to have one day an Unix version of my "works".
I recently got a 'refurbished' Thinkpad T61 laptop, better than my former one. It may be the last 4x3 laptop available until better days (I want nothing else). It's a 'duo' core with a bigger HD. I also finally found a Linux distro that doesn't suck a ton and isn't bloated: PCLinuxOS, so I finally got the opportunity to install Linux in dual boot (triple, actually, with only one booter, an interesting problem in itself), and I could compile "my" build in it.

Image
The left border is dead on Linux too now!

I won't lie, it's very preliminary, there's no sound (had to compile with 'RTAUDIO' disabled, and Portaudio (?) crashes), there are GUI problems etc. This is my first attempt today, but you see there's potential. Of course, if there are Linux specialists who can help with the sound issue, that would be great.

This laptop has another very interesting characteristic for emulation beside the 4x3 format: the screen can run at 50hz! That means that in fullscreen mode, you have smooth scrolling on LCD, which makes a difference for games like Goldrunner, for scrollers like ST-CNX, Lemmings, etc.

User avatar
npomarede
Atari God
Atari God
Posts: 1178
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Linux/Unix build

Postby npomarede » Mon Jan 02, 2012 8:58 pm

Steven Seagal wrote:I won't lie, it's very preliminary, there's no sound (had to compile with 'RTAUDIO' disabled, and Portaudio (?) crashes), there are GUI problems etc. This is my first attempt today, but you see there's potential. Of course, if there are Linux specialists who can help with the sound issue, that would be great.


Hello,

I built the linux version too some times ago, and unfortunately it uses some *really* old APIs for the sound ; both rtaudio and portaudio as required are really deprecated versions. Main problem is that they expect the OSS sound layer to be present to work, but most recent linux distributions ship alsa and/or pulseaudio and don't support old OSS API.
Honnestly, I think the only "clean" solution to get sound in the linux built would be to change the sound code to use latest api from rtaudio and portaudio (without having to include the whole source tree, but by using dlopen for shared libraries).
I don't think it would be too much work, even to someone not familar with linux, it's mostly replacing functions/parameters with a most recent version (unfortunately in my case, I don't have enough spare time to work on both Steem and Hatari, so I won't be able to help).

Nicolas

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Mon Jan 02, 2012 9:54 pm

npomarede wrote:(unfortunately in my case, I don't have enough spare time to work on both Steem and Hatari, so I won't be able to help).

Nicolas


Of course I didn't mean you. I mean if someone who really wants Steem in Unix fixes that in the Steem repository I'll fetch their code! If not, I'll take care of that myself, but who knows when or if.

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Wed Jan 04, 2012 11:29 am

ALSA support would be great. I dumped using Xsteem around 2004 in favour of Hatari due to the sound problems.
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Thu Jan 05, 2012 8:25 pm

The GUI troubles are fixed already!

Image

Image

Image

Image

I see two explanations for this:
- despite being a newbie, I kick ass in Unix.
- Steem's GUI was well coded and flexible in Unix as in Windows.

User avatar
christos
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2306
Joined: Tue Apr 13, 2004 8:24 pm
Location: Greece
Contact:

Re: Linux/Unix build

Postby christos » Thu Jan 05, 2012 10:26 pm

simonsunnyboy wrote:ALSA support would be great. I dumped using Xsteem around 2004 in favour of Hatari due to the sound problems.


Ubuntu uses pulseaudio.
Felix qui potuit rerum cognoscere causas.
My Atari blog

STOT Email address: stot(NoSPAM)atari(DOT)org

User avatar
npomarede
Atari God
Atari God
Posts: 1178
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Linux/Unix build

Postby npomarede » Thu Jan 05, 2012 10:34 pm

christos wrote:
simonsunnyboy wrote:ALSA support would be great. I dumped using Xsteem around 2004 in favour of Hatari due to the sound problems.


Ubuntu uses pulseaudio.


That's not a problem ; recent rtaudio or portaudio know various under layers, so they will use alsa or pulseaudio or oss or jack or any audio output layer on your system.
Given that rtaudio and portaudio are already in Steem, it would be less disruptive to update the API they use and link with a recent rtauto/portaudio library.
It's still possible to add direct pulseaudio or alsa support later, but it wouldn't be a real gain in perfomance or audio quality.

Nicolas

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Wed Mar 14, 2012 8:15 pm

The good news is that I could build a version with sound, using the ALSA api instead of OSS (it's just a compile directive, I have no idea of what they are!). Bad news, sound goes then stops until we change volume, very strange... Anyway, the larger display also doesn't work (crashes Steem). So it's still very buggy but there's light at the end of the tunnel.

User avatar
MrMaddog
Captain Atari
Captain Atari
Posts: 170
Joined: Fri Oct 06, 2006 3:03 am
Contact:

Re: Linux/Unix build

Postby MrMaddog » Wed Mar 14, 2012 11:52 pm

First of all, thanks for rebuilding a better version of Steem for Linux...if fullscreen works then I'll really be happy! :D

As for the sound issue, yeah it's a real mess on Linux. OSS is not only too old but doesn't get along with ALSA & PulseAudio (I won't get into how bad PS really is...) Thankfully there's a wrapper that'll run OSS based stuff under ALSA. You type "aoss xsteem" in terminal to launch it...

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Thu Mar 15, 2012 7:27 pm

I looked again (becoming a Linux boy soon!), the sound is in fact OK (RtAudio debugged), it's the video rendering that stalls until "forced". Also fullscreen doesn't seem OK for now. To check...

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Tue Mar 20, 2012 8:06 pm

MrMaddog wrote:if fullscreen works then I'll really be happy! :D


I could fix fullscreen. I think it was a case of Linux/Xorg breaking working programs. Steem uses the XF86Vid library.
The remaining big issue is the window failing to update, in fullscreen mode too. I've found no clue on the 'net until now.

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Thu Sep 27, 2012 6:39 pm

Yo penguins
It was months I hadn't booted in Linux but it was worth it.
There certainly will be a Unix release (sound & fullscreen working) of SSE 3.4 soon, it's just that some options still don't work.

Image

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Sat Oct 06, 2012 8:52 am

As promised, a first Linux build is now available here:

http://ataristeven.host898.net/Steem_all_builds.htm

Experimental!

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Sat Oct 06, 2012 10:05 am

It basically seems to run. However as soon as I activate sound with RTaudio I get a continous buzzing sound, the ST output is audible with low volume behind that buzz.

I haven't tried much input yet (keyboard or joysticks), otherwise it seems to run like the old versions. I will gladly test more upcoming builds for Linux.
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Sat Oct 06, 2012 10:26 am

Glad it runs without dependencies.
I didn't expect sound problems, rather display trouble.
Maybe check if it's set to stereo and other sound settings?
It sounds ok with me, but I downloaded fresh RTaudio libraries for development (I think it's v4?).

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Sat Oct 06, 2012 11:19 am

Selecting mono or stereo makes no difference, neither does selecting 8 or 16bit. For fullscreen I didn't try it yet, only in windowed mode with borders active.
Are the RTAudio libs statically or dynamically linked?
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Sat Oct 06, 2012 11:20 am

I also noticed that the binary seems to be 32bit only. Would it be possible to build a version for AMD64?

Sources, Makefile and I would try to do so myself ;)
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Sat Oct 06, 2012 11:37 am

I think it's dynamic but not sure. That could explain the problem. Edit: you also need the current version of "ALSA".

Not sure I can target 64bit on a 32bit machine.

The source is on Sourceforge where you need to mess with subversion:

http://sourceforge.net/projects/steemsse/

I had all sort of trouble uploading but normally there's a tag for it

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Sat Oct 06, 2012 12:20 pm

Subversion certainly is not the issue, I deal with that daily during work hours.

What is more important, the build process is not documented. I tried running the Makefile under X-build but then I get compilation issues.

Could you write down a simple list of todos for compiling the linux build from a fresh Subversion checkout?
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Sun Oct 07, 2012 6:37 am

simonsunnyboy wrote:What is more important, the build process is not documented. I tried running the Makefile under X-build but then I get compilation issues.

Could you write down a simple list of todos for compiling the linux build from a fresh Subversion checkout?


It's actually in the linux_build.txt file (normally uploaded) and it hasn't changed since Steem authors released the source. You just need to type:

Code: Select all

make 3rdparty
make

You need nasm, libtool, etc.. I had to update my (small) distro.

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Sun Oct 07, 2012 7:48 am

Seems the build does not find some include files:

Code: Select all

[09:43:32] marndt@jll: ~/src/steemsse/X-build
$ make 3rdparty
gcc -c ../3rdparty/pasti/div68kCycleAccurate.c -I../include -I../steem/code -I../3rdparty -I../3rdparty/pasti -I../3rdparty/dsp -I../3rdparty/6301 -I../3rdparty/zlib/contrib/minizip -I../3rdparty/zlib -I../3rdparty/rtaudio -lasound -w -Wfatal-errors -o./obj/div68kCycleAccurate.o
gcc -c ../3rdparty/6301/6301.c -I../include -I../steem/code -I../3rdparty -I../3rdparty/pasti -I../3rdparty/dsp -I../3rdparty/6301 -I../3rdparty/zlib/contrib/minizip -I../3rdparty/zlib -I../3rdparty/rtaudio -lasound -w -Wfatal-errors -o./obj/6301.o
In file included from ../3rdparty/6301/6301.c:2:
../3rdparty/6301/6301.h:39:21: error: SSE\SSE.h: Datei oder Verzeichnis nicht gefunden
../3rdparty/6301/6301.h:40:31: error: SSE\SSEParameters.h: Datei oder Verzeichnis nicht gefunden
../3rdparty/6301/6301.c:4:27: error: SSE\SSEOption.h: Datei oder Verzeichnis nicht gefunden
make: *** [6301] Fehler 1


Should I call the Makefile from a different directory hierarchy?
SSE related files can be found there:

Code: Select all

[09:44:14] marndt@jll: ~/src/steemsse
$ find . -name "*SSE*"
./steem/code/SSE
./steem/code/SSE/SSEVideo.cpp
./steem/code/SSE/SSESTF.h
./steem/code/SSE/SSESTF.cpp
./steem/code/SSE/SSECpu.h
./steem/code/SSE/SSEShifterEvents.cpp
./steem/code/SSE/SSEOption.h
./steem/code/SSE/SSE.h
./steem/code/SSE/SSEDebug.cpp
./steem/code/SSE/SSEOption.cpp
./steem/code/SSE/SSEDecla.h
./steem/code/SSE/SSECpu.cpp
./steem/code/SSE/.svn/text-base/SSEVideo.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSEOption.h.svn-base
./steem/code/SSE/.svn/text-base/SSEDebug.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSE.h.svn-base
./steem/code/SSE/.svn/text-base/SSEParameters.h.svn-base
./steem/code/SSE/.svn/text-base/SSECpu.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSEInline.h.svn-base
./steem/code/SSE/.svn/text-base/SSE6301.h.svn-base
./steem/code/SSE/.svn/text-base/SSEInterrupt.h.svn-base
./steem/code/SSE/.svn/text-base/SSE.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSESTF.h.svn-base
./steem/code/SSE/.svn/text-base/SSE6301.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSEDecla.h.svn-base
./steem/code/SSE/.svn/text-base/SSESTF.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSEOption.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSEDebug.h.svn-base
./steem/code/SSE/.svn/text-base/SSECpu.h.svn-base
./steem/code/SSE/.svn/text-base/SSEShifterEvents.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSEInterrupt.cpp.svn-base
./steem/code/SSE/.svn/text-base/SSEShifterEvents.h.svn-base
./steem/code/SSE/.svn/text-base/SSEVideo.h.svn-base
./steem/code/SSE/SSE.cpp
./steem/code/SSE/SSEInterrupt.cpp
./steem/code/SSE/SSE6301.cpp
./steem/code/SSE/SSEDebug.h
./steem/code/SSE/SSEInline.h
./steem/code/SSE/SSEVideo.h
./steem/code/SSE/SSE6301.h
./steem/code/SSE/SSEParameters.h
./steem/code/SSE/SSEShifterEvents.h
./steem/code/SSE/SSEInterrupt.h
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Sun Oct 07, 2012 8:00 am

I had trouble with SVN, please try to checkout version tagged linux, it seems the version you got is the 3.4.0 before I made it linux-compatible. GCC complains because it wants / not \ it's absolutely silly.

What happened in SVN: I made the changes then "copied" with tag message 3.4.0 linux but on the same tag 3.4.0 as the windows release! Oops! Then I copied a new tag 3.4.0.0 with the older version, you probably got this one. Normally all necessary code is there though.

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Sun Oct 07, 2012 8:39 am

Of course it does not want \ on unioxoid systems. The directory delimiter is defined as / there, since 1970.
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
simonsunnyboy
Moderator
Moderator
Posts: 4858
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: Linux/Unix build

Postby simonsunnyboy » Sun Oct 07, 2012 9:00 am

I can't seem to get the right URL for the tagged version. I get URL not found errors.

As for tagging, it is really really simple.

a) Always have a working copy that contains the current stuffs below the trunk directory. That should NOT be included.
b) Tag only the contents of this directory without the trunk directory or you will endup with repeated directory structures below your tag.

Imagine your SVN contents as a directory of the following hierarchy:

branches/v1.0_something/myproject
tags/v0.9/myproject/
tags/v0.8/myproject

trunk/myproject
trunkt/myproject/includes/xy.h

etc

As soon as the directory trunk reappears below your tag directory, something fishy happened. If you add me to your project at Sourceforge, I can give you a hand at cleaning up. My SF username is (who guessed?) simonsunnyboy ;)

Normally you should only work under trunk. Check out once, make your changes and commit them, make more changes and commit, aways into trunk.
When finished and all is working for all compile targets, make a tag.
Simon Sunnyboy/Paradize - http://paradize.atari.org/ - STOT: http://www.npoi.de/stot/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Jabber: simonsunnyboy@atari-jabber.org

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1982
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Linux/Unix build

Postby Steven Seagal » Sun Oct 07, 2012 9:27 am

Well it's not so hard to handle both / and \, M$ can do it.
On SVN, the trunk is OK, I checked by browsing, R4 is the good one. R5 & 6 were my tag copies, with R6 being outdated...
I added you as a developer.


Social Media

     

Return to “Development”

Who is online

Users browsing this forum: No registered users and 1 guest