hatchcliff Posted May 31, 2022 Share Posted May 31, 2022 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: 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: 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. 2 1 Quote Link to comment Share on other sites More sharing options...
E474 Posted May 31, 2022 Share Posted May 31, 2022 I think this breaks all my scripts. 1 Quote Link to comment Share on other sites More sharing options...
MrFSL Posted May 31, 2022 Share Posted May 31, 2022 Compiles just fine on Ubuntu 18.04 Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 1, 2022 Author Share Posted June 1, 2022 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. Quote Link to comment Share on other sites More sharing options...
zzip Posted June 1, 2022 Share Posted June 1, 2022 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 Quote Link to comment Share on other sites More sharing options...
MrFSL Posted June 1, 2022 Share Posted June 1, 2022 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 Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 1, 2022 Author Share Posted June 1, 2022 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. Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 1, 2022 Author Share Posted June 1, 2022 @MrFSL, thanks for the information. I'm checking dependencies for the Pi OS Lite installation at the moment. The list is similar to the one produced by your non-Pi system. So far I've found only one missing, libsdl1.2debian. Quote Link to comment Share on other sites More sharing options...
E474 Posted June 1, 2022 Share Posted June 1, 2022 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. Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 2, 2022 Author Share Posted June 2, 2022 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. Quote Link to comment Share on other sites More sharing options...
E474 Posted June 2, 2022 Share Posted June 2, 2022 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 Quote Link to comment Share on other sites More sharing options...
MrFSL Posted June 2, 2022 Share Posted June 2, 2022 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.) 1 1 Quote Link to comment Share on other sites More sharing options...
zzip Posted June 2, 2022 Share Posted June 2, 2022 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 2 Quote Link to comment Share on other sites More sharing options...
MrFSL Posted June 2, 2022 Share Posted June 2, 2022 2 minutes ago, zzip said: Or you could set an alias in your profile: alias atari800=atari800stk I always forget about aliases Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 2, 2022 Author Share Posted June 2, 2022 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. Quote Link to comment Share on other sites More sharing options...
stepho Posted June 2, 2022 Share Posted June 2, 2022 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. Quote Link to comment Share on other sites More sharing options...
zzip Posted June 2, 2022 Share Posted June 2, 2022 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 Quote Link to comment Share on other sites More sharing options...
HiassofT Posted June 2, 2022 Share Posted June 2, 2022 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 1 Quote Link to comment Share on other sites More sharing options...
E474 Posted June 2, 2022 Share Posted June 2, 2022 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. Quote Link to comment Share on other sites More sharing options...
MrFSL Posted June 3, 2022 Share Posted June 3, 2022 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. 1 Quote Link to comment Share on other sites More sharing options...
E474 Posted June 3, 2022 Share Posted June 3, 2022 You can check /proc/cpuinfo for pi4, etc. Quote Link to comment Share on other sites More sharing options...
sanny Posted June 3, 2022 Share Posted June 3, 2022 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). 1 Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 3, 2022 Author Share Posted June 3, 2022 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. Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 3, 2022 Author Share Posted June 3, 2022 (edited) 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 June 3, 2022 by hatchcliff 1 Quote Link to comment Share on other sites More sharing options...
hatchcliff Posted June 4, 2022 Author Share Posted June 4, 2022 (edited) 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 June 4, 2022 by hatchcliff 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.