Jump to content
IGNORED

Installing Atari800 v5.0.0 on the Raspberry Pi


Recommended Posts

The new Atari800 v5.0.0 package has been posted in the Github releases area and is available for download.  It is distributed as a single package containing two binaries, instead of the pair of packages produced for previous releases.

System Requirements

Atari800 v5.0.0 requires Pi OS Buster, and runs on the Pi Zero, 2, 3, 4 and 400.

Installation on PI OS Full

  • Download file atari800_v5.0.0_rpi.deb from the Github releases area.
  • <Double Left Click> on the file to install (this also removes any previously installed version).

You should find that the installation has created two menu items (one for each binary) as shown below:

 

1237296132_Atari800Menus.png.70914721e1b3417bd324aca066fbb99b.png

 

Running Atari800

To run the emulator select the menu item that is appropriate for your hardware.

Alternatively use the following commands in a terminal or bash script:

  • atari800rpi, for the Pi Zero, 2 and 3.
  • atari800stk, for the Pi 4 and 400.

If you accidentally run the wrong binary, this does no harm.  You will just find that the emulator runs slowly with choppy sound and video, or does not run at all.

There is also an atari800 command, as in previous releases, but instead of running the emulator it returns the following information:

 

2101777835_atari800bash.thumb.png.8c8a8abb08bd67980a71299e9a27ac74.png

 

Configuration

On the first run you will need to configure the system ROMs, video mode etc..  Do this manually using the emulator's menu system.  Do not copy the configuration file from a previous release or from a different platform, because these files are version and platform specific.

Note that if you swap the SD card between different models of Pi and run both binaries, you will have to do this manual setup twice.

Uninstall

Uninstall with the software manager:

  •  <Menu>, <Preferences>, <Add/Remove Software>, ...

or use the following command:

  • sudo dpkg --remove atari800

Installation on Pi OS Lite

This is a little more involved because some dependencies that are not a standard part of the Lite distribution have to be loaded by hand.  I'm still working through the procedure, and will post it in a few days.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

The aim was to produce a fully capable atari800 v5.0.0 package for potential distribution via the official Raspbian repository.  This required us to package two binaries to serve the full range of Pi models.  It was not possible to call them both atari800, so some renaming was inevitable.

19 hours ago, E474 said:

I think this breaks all my scripts.

Thank you for your feedback.  Is your problem that you have the command atari800 embedded in a lot of bash scripts and you now need to rename these atari800rpi or atari800stk to make them work, and you don't want to do this?  If I were to supply a script that can make this change en masse, would that help?  If not, don't worry, there are other solutions.

One alternative is to install from the v5.0.0 source code instead of the package.  I will post the procedure for doing this on this thread in a few days.  It's easy to do, and will create a single atari800 command that is tailored to your hardware.

 

Link to comment
Share on other sites

9 minutes ago, hatchcliff said:

The aim was to produce a fully capable atari800 v5.0.0 package for potential distribution via the official Raspbian repository.  This required us to package two binaries to serve the full range of Pi models.  It was not possible to call them both atari800, so some renaming was inevitable.

Is this how they handle everything?    I've downloaded a number of packages from the Raspian repo for my Pi 400, but have never encountered one that changes the name of the binaries to accommodate two different versions

Link to comment
Share on other sites

54 minutes ago, hatchcliff said:

The aim was to produce a fully capable atari800 v5.0.0 package for potential distribution via the official Raspbian repository.  This required us to package two binaries to serve the full range of Pi models.  It was not possible to call them both atari800, so some renaming was inevitable.

Excellent. Thanks for the hard work packaging and the dedication to getting the software in the repos. I have a Pi400 just itching to try this!

 

57 minutes ago, hatchcliff said:

I will post the procedure for doing this on this thread in a few days.  It's easy to do, and will create a single atari800 command that is tailored to your hardware.

If it is helpful, on my (non pi system) I can get a list of build depends using:

apt-cache showsrc atari800 | grep ^Build-Depends

Which leaves me with the list:

 

 libsdl1.2-dev
 zlib1g-dev
 libreadline-dev
 libgl1-mesa-dev
 libpng-dev
 autotools-dev
 dpkg-dev 

 

So... I would suggest:

apt-get update

apt-get install libsdl1.2-dev zlib1g-dev libreadline-dev libgl1-mesa-dev libpng-dev autotools-dev dpkg-dev

./configure --prefix=/usr

make

make install

 

Which for me results in the creation of the following files:

 

/usr
/usr/share
/usr/share/doc
/usr/share/doc/atari800
/usr/share/doc/atari800/INSTALL
/usr/share/doc/atari800/USAGE
/usr/share/doc/atari800/COPYING
/usr/share/doc/atari800/README.TXT
/usr/share/doc/atari800/NEWS
/usr/share/doc/atari800/README
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/atari800.1
/usr/bin
/usr/bin/cart
/usr/bin/atari800

 

 

Link to comment
Share on other sites

41 minutes ago, zzip said:

I've downloaded a number of packages from the Raspian repo for my Pi 400, but have never encountered one that changes the name of the binaries to accommodate two different versions

Nor have I.  I think this is an unusual situation.  We are stuck with the need for two binaries because of the hardware split, so we can either distribute two entirely separate packages, or put two binaries into a single package - I don't think there are any other choices.

A further complication is that the Pi Zero, 2 and 3 version makes use of hardware specific libraries, so does not conform to the Debian standard and cannot be distributed through the normal channels.  A neat solution would be to abandon support for the Zero, 2 and 3 and continue with just the Pi 4 and 400 - but I think that would be a shame because those older machines make great platforms for the emulator. 

Link to comment
Share on other sites

OK, I think I understand your situation.  Could you post one of your scripts for final confirmation please?

I'm confident that installing from source is going to put this right for you, but whether it is an interim fix or a long term solution is an open question.

The changes in v5.0.0 were based on the premise that it is easier in many ways to manage one package than two.  It also makes it easier for new Pi users to acquire the emulator, because they don't need to know in advance about the special hardware requirements.  However, if a lot of people are experiencing the same inconvenience as you, we would want to take that into account on the next release.  I hope everyone with a view on this will let us know via this thread.

 

 

Link to comment
Share on other sites

Hi @hatchcliff,

 

    Typical script located below. I think by installing 2 binaries you are just moving the "Which atari800" from once during installation to every time the user launches it. 

 

   sudo apt-get install atari800rpi

or

   sudo apt-get install atari800stk

 

both give an atari800 install (with the obvious caveat that neither rpi or stk give much info).

 

Script:

#!/bin/bash

# build atr file with autorun.sys
#
#
#
SSHRFLAGS="--delete -crzhtve ssh "
echo $1 > /tmp/dol_1
echo `pwd` >> /tmp/dol_1

#exit


if [ ! -d /tmp/atr ];
then
        mkdir /tmp/atr
else
        rm -rf /tmp/atr/*
fi

cp ~/ds/DOS.SYS /tmp/atr/
cp ~/ds/DUP.SYS /tmp/atr/
cp $1 /tmp/atr/AUTORUN.SYS

dir2atr -b Dos25 720 /tmp/rispy.atr /tmp/atr/
#exit

if grep -q "deploy=pi" $HOME/Documents/Development/atari8/config;
then 
        rsync $SSHRFLAGS /tmp/rispy.atr retropiekodi-atrhost:/home/atari1050/atr/
        echo rsync to remote pi >> /tmp/dol_1
else
        echo no rsync to remote pi >> /tmp/dol_1

fi

xterm -e atari800 /tmp/rispy.atr

 

 

 

 

Link to comment
Share on other sites

What about just creating a link to the appropriate binary for yourself:

cd "$HOME/.local/bin"
ln -s /usr/bin/atari800stk_bin ./atari800

As long as the "$HOME/.local/bin" path is referenced first in your PATH variable that ought to work. (echo $PATH)

 

 

Or since the atari800 is just a bash file what if you appended:

binary='/usr/bin/atari800stk_bin'
if [ $1 ]
then
    binary $@
fi

This would check that atari800 was being called with command line options (scripted)  and if so pass those off to the correct binary.

 

I like the first option the best. This way if you get updates you don't risk having your changes over-written (unless the devs consider it a more perm. change.)

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

15 hours ago, E474 said:

Hi @hatchcliff,

 

   Thanks for your reply. I meant all my shell scripts that run fine on other architectures/distros, but will fail if I install atari800 via apt-get on the latest PiOS, but not if I install from source.

There are simple workarounds you can do.   like create a symbolic link named atari800 in /usr/local/bin which points at the version of the binary you need to run.  Then your script will run as-is.

 

Or you could set an alias in your profile:

alias atari800=atari800stk

 

  • Like 2
Link to comment
Share on other sites

5 hours ago, zzip said:

There are simple workarounds you can do.   like create a symbolic link named atari800 in /usr/local/bin which points at the version of the binary you need to run.  Then your script will run as-is.

 

Or you could set an alias in your profile:

alias atari800=atari800stk

 

Great idea!  It works fine for me.  Atari800stk is a bash script that sets up the default configuration file, which is not needed in this context, so it would be even better to alias the binary atari800stk_bin:

  • alias atari800=atari800stk_bin

@E474 let us know if this works for you.

Link to comment
Share on other sites

Is it possible to have the atari800 binary detect which hardware you are running on and then call one of the other 2 binaries?
In that way, everybody (including scripts) just calls the common atarai800 binary.

Link to comment
Share on other sites

25 minutes ago, stepho said:

Is it possible to have the atari800 binary detect which hardware you are running on and then call one of the other 2 binaries?
In that way, everybody (including scripts) just calls the common atarai800 binary.

not a bad idea,  I do something similar with my emulator scripts.   It checks the architecture via uname, and runs the appropriate binary for PC or Pi depending on the result.   Guess it depends if uname provides enough info to distinguish beween Pi4 and older Pi's 

Link to comment
Share on other sites

Just my 2c: IMO it would be best to provide a separate package for RPi0/1 with the legacy proprietary graphics stack (eg atari800-legacy) and a standard package using mesa/gl for RPi2-4.

 

Full KMS with mesa gl drivers are now the default on RPiOS Bullseye, firmware KMS and the proprietary gl drivers are currently still available but no longer maintained (RPi0/1 users might want to use them though as the proprietary gl driver has better performance on the low-end single-core RPis).

 

Coexistence of standard and legacy atari800 packages could easily be managed with Debian's alternative system (update-alternatives --config atari800).

 

so long,

 

Hias

  • Like 1
Link to comment
Share on other sites

HI @hatchcliff,

 

   My only Pi running PiOS (Bullseye) is in headless mode at the minute (it's in another room from the TV, and I don't want to get into $DISPLAY or VNC, and it's also halfway through a long cronjob, so a few more days before I can move it). 

 

   I would second @HiassofT's update-alternatives, I'm not sure if dpkg --reconfigure is at all useful too?

 

   Also, small point, there is no mention of the (original) Raspberry Pi 1.

 

 

Link to comment
Share on other sites

4 hours ago, zzip said:

not a bad idea,  I do something similar with my emulator scripts.   It checks the architecture via uname, and runs the appropriate binary for PC or Pi depending on the result.   Guess it depends if uname provides enough info to distinguish beween Pi4 and older Pi's 

In this packaging atari800 is a bash script. It should be pretty trivial to have it choose.

 

3 hours ago, HiassofT said:

Coexistence of standard and legacy atari800 packages could easily be managed with Debian's alternative system (update-alternatives --config atari800).

Possible... but I always found it a bit clunky. In the end it only creates symlinks anyways and I can't imagine it is less instructions than creating your own symlinks to begin with. If you want symlinks I like dropping them in ~/.local/bin/

 

Alias' work but a person needs to know what files to edit to make it perm. I suppose you could prepend each of your scripts with an alias statement.

 

3 hours ago, HiassofT said:

Just my 2c: IMO it would be best to provide a separate package for RPi0/1 with the legacy proprietary graphics stack (eg atari800-legacy) and a standard package using mesa/gl for RPi2-4.

Really like this idea.

 

  • Like 1
Link to comment
Share on other sites

On 6/1/2022 at 5:49 PM, hatchcliff said:

Nor have I.  I think this is an unusual situation.  We are stuck with the need for two binaries because of the hardware split, so we can either distribute two entirely separate packages, or put two binaries into a single package - I don't think there are any other choices.

 

Do want to be able to install both packages at the same time? Does that make sense?

 

If not, both packages could just provide "atari800". And let each package conflict with the other one so that they cannot be installed together by mistake (and break the packaging because they provide the same file).

  • Like 1
Link to comment
Share on other sites

10 hours ago, E474 said:

   Also, small point, there is no mention of the (original) Raspberry Pi 1.

 

The last time I tried atari800 on my Pi 1A with the current release of Pi OS Lite, I found it overloaded the processor - not by much, but enough to produce audible glitches.  I think this is a consequence of increasing demands imposed by the operating system over the years - even in the Lite version.

I'm sure it would be possible to get it running properly by stripping down the operating system, turning off services etc., but I think it is best to drop machines from the support list in this circumstance.

Link to comment
Share on other sites

Installation on Pi OS Lite

Starting with Pi OS Lite installed and fully updated.

  • Download the package atari800_5.0.0_rpi.deb from the Github releases area and copy it to the Pi.
  • sudo apt-get install libsdl1.2debian
  • sudo dpkg -i atari800_5.0.0_rpi.deb

Running Atari800

To run the emulator, use the following commands in a terminal or bash script:

  • atari800rpi, for the Pi Zero, 2 and 3.
  • atari800stk, for the Pi 4 and 400.

Configuration

On the first run you will need to configure the system ROMs, video mode etc..  Do this manually using the emulator's menu system.  Do not copy the configuration file from a previous release or from a different platform, because these files are version and platform specific.

Note that if you swap the SD card between different models of Pi and run both binaries, you will have to do this manual setup twice.

 

Uninstall

  • sudo dpkg --remove atari800

Hardware Graphics Acceleration

The Pi 4 and 400 usually need hardware graphics acceleration to run atari800, but Pi OS Lite imposes a relatively low load and leaves enough power available for atari800 without acceleration.  This is fortunate, because the OpenGL driver (which supports acceleration) does not work properly in the current release of Lite.

The situation with Pi OS Full is different.  It has a working driver.

Maybe Lite's driver will be fixed in future releases, then it will become possible to enable acceleration in the normal way:

  • sudo raspi-config
  • <Advanced Options>, <GL Driver>, <GL (Fake KMS)>

At present this procedure screws things up permanently, even if you later revert to the legacy non-GL driver. So if you try it, be sure to back up your SD card first.

 

 

Edited by hatchcliff
  • Like 1
Link to comment
Share on other sites

Installation from Source Code

This is for @E474 and anyone else who wants to install v5.0.0 in the same manner as previous releases, with a single atari800 command tailored to your Pi hardware.

The starting point is with Pi OS Full or Lite installed and fully updated.

 

Uninstall Previous Version of atari800

If you already have atari800 installed, uninstall it using the software manager:

  •  <Menu>, <Preferences>, <Add/Remove Software>, ...

or the following command:

  • sudo dpkg --remove atari800

Install SDL Development Files

  •     sudo apt-get install libsdl1.2-dev

Prepare the Source Code

Download the source file atari800-5.0.0-src.tgz from the Github releases area.

  • Move the file to a convenient location.
  • <Right Click> on it and <Extract Here>
  • cd atari800-5.0.0

Configure
If you are compiling for the Pi Zero, 2 or 3, use the command:

  • ./configure --target=rpi

or if you are compiling for the Pi 4 or 400:

  • ./configure --enable-opengl-by-default

Compile

  • make

This takes several minutes to run.  It reports progress and will highlight some compiler warnings but no fatal errors.  It creates the binary src/atari800.

Install

  • sudo make install

Running Atari800

Run the emulator with the following command in a terminal or bash script:

  • atari800

Configuring atari800

On the first run you will need to configure the system ROMs, video mode etc..  Do this manually using the emulator's menu system.  Do not copy the configuration file from a previous release or from a different platform, because these files are version and platform specific.

 

Uninstall

The package manager knows nothing about this installation, so it can't be uninstalled in the usual manner.  Use the following commands instead:

  • cd atari800-5.0.0
  • sudo make uninstall

 

Edited by hatchcliff
  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...