How to install PCem v16 on Linux

Support and general discussion.
Post Reply
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

How to install PCem v16 on Linux

Post by j1forPandE »

I just installed PCem v16 successfully on Ubuntu 20.04. Just wanted to give you a short update, because the Instructions in Readme-Linux.txt did not work for me.

Specifically, I had to run configure like this:

./configure --enable-release-build

The additional libraries I could install with "apt install" like this (may help someone - install before running configure):
libwxgtk-media3.0-gtk3-dev
libopenal-dev
libsdl2-dev

Something else I noticed: I had 12 configurations for PCem on Windows which I tried to use on LInux. So I copied them in .pcem/configs

However, PCem reset every single one to "AMI XT" at first run. What did I do wrong, can this be helped? I would really like to continue using them.
JosepMa
Posts: 202
Joined: Tue 20 Jun, 2017 6:25 pm

Re: How to install PCem v16 on Linux

Post by JosepMa »

There was a name change for one of the bios for pentium. Possibly that's the reason.
Also remember that on linux, the filenames are case sensitive, so bios1 is not the same as BIOS1. Ensure that the correct name is on the .cfg file.
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

Progress! I found out why every config was reset to AMI XT. Seems that PCem Linux expects every bios name to be in lowercase. EDIT: Sorry, I was wrong but I think I got it now: The files must be named exactly as stated in readme.txt of PCem. So, the Atari PC 3 will need a file called "AWARD_ATARI_PC_BIOS_3.08.BIN" while the AMI XT will need "ami_8088_bios_31jan89.bin". The uppercase / lowercase makes the difference on Linux, do not use lowercase only.

When I put my filenames in lowercase, the bios was found and loaded. Had me confused because it worked flawlessly on PCem on Windows. Of course - you are quite right! PCem Win doesnt even notice if they are uppercase or lowercase.

This seems not be the case with disk images, but to be safe it would probably be prudent to use names in the good old Unix tradition: dos5_harddisk.img instead of DOS 6.0 Harddisk

Thanks for the help with uppercase / lowercase!

But now something else comes up. If I start PCem from the shell, I get strange error messages:

Menu item not found: 1403
Menu item not found: 1404

Am I still missing some packages in wxWidgets or why does this come up? I dont notice anything missing in the GUI, and PCem seems to work ok.
Last edited by j1forPandE on Fri 19 Jun, 2020 3:57 pm, edited 1 time in total.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: How to install PCem v16 on Linux

Post by SarahWalker »

I think that's just a bug in the wxrc file. Should be harmless.
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

Thank you Sarah! I had hoped that would be the case.
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

Something else I noticed - its related to LInux, so I thought Id just mention it here. If you run PCem with Wine instead of using the native Linux port, it works excellently, but the emulation thread is not closed in the end, but stays in the background. I dont mean the menu, but the "worker" thread which carries out the actual emulation (virtual machine).

You can close it, but if you run "top" afterwards, it will show you a list of one - or even several - PCem.exe threads still active (depending on how many emulated machines you started). This may be the case with Arculator on Wine, too, by the way. Im using Ubuntu 20.04 with Wine Version: 5.0-3ubuntu1I (thats the advanced branch on Ubuntu, I didnt test with the "stable" branch).

Im not complaining, but people who use PCem with Wine should know this, because you will feel things slowing down if a few PCems are running in the background :D

To stop them, use the following command in the shell (should not need root):

Code: Select all

killall PCem.exe
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

Sorry, I was wrong in my previous post. Do not use bios files with lowercase filenames only.

Instead, the files must be named exactly as stated in readme.txt of PCem. So, the Atari PC 3 will need a file called "AWARD_ATARI_PC_BIOS_3.08.BIN" while the AMI XT will need "ami_8088_bios_31jan89.bin". The uppercase / lowercase makes the difference on Linux, do not use lowercase only.
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: How to install PCem v16 on Linux

Post by omarsis81 »

A bit off-topic but does PCem under Linux perform faster than in Windows?
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

About the same, I would say. It is really difficult to answer because it is difficult to carry configurations over from Windows to Linux, or recreating the exact same circumstances. The best way would be to create an ideal benchmark situation. Maybe an old benchmarking tool on a floppy disk image, which can be booted into some typical virtual machines - XT class, 486, Pentium maybe. Then compare the results.

If you have suggestions I am willing to try. But that would still not account for differences in 3D graphics, which are probably the most interesting. Many different aspects would come into play here, the graphics drivers, the sound system etc (and both on host and guest!). Maybe Sarah or leilei would know how to do this.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: How to install PCem v16 on Linux

Post by SarahWalker »

I would expect no real difference.
User avatar
spiderman82
Posts: 16
Joined: Wed 31 Aug, 2016 9:15 am

Re: How to install PCem v16 on Linux

Post by spiderman82 »

Code: Select all

checking for glGetError in -lGL... no
You need to install the OpenGL library.
When configuring the source this error appears, what is missing from me?

Xubuntu 18.04 LTS, 4.15.0-109-generic
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

spiderman82, could you check if opengl/mesa is installed? Run this in a terminal:

Code: Select all

sudo apt list mesa*
User avatar
spiderman82
Posts: 16
Joined: Wed 31 Aug, 2016 9:15 am

Re: How to install PCem v16 on Linux

Post by spiderman82 »

Code: Select all

mesa-common-dev / bionic-updates, now 19.2.8-0ubuntu0 ~ 18.04.3 amd64 [installed, automatic]
mesa-opencl-icd / bionic-updates, now 19.2.8-0ubuntu0 ~ 18.04.3 amd64 [installed]
mesa-utils / bionic, now 8.4.0-1 amd64 [installed]
mesa-utils-extra / bionic, now 8.4.0-1 amd64 [installed]
mesa-va-drivers / bionic-updates, now 19.2.8-0ubuntu0 ~ 18.04.3 amd64 [installed]
mesa-vdpau-drivers / bionic-updates, now 19.2.8-0ubuntu0 ~ 18.04.3 amd64 [installed]
mesa-vulkan-drivers / bionic-updates, now 19.2.8-0ubuntu0 ~ 18.04.3 amd64 [installed]
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

i have the same packages (except that I also have the 386 variants, but they are not needed for PCem, I guess). Do you have Nvidia or AMD or Intel grapics? And if it is Nvidia, do you have open drivers (Noveau) or Nvidia closed source?
senileblue
Posts: 6
Joined: Tue 07 Jul, 2020 12:09 am

Re: How to install PCem v16 on Linux

Post by senileblue »

I don't know if it helps, but the dependancy list on gentoo is alsa-lib libsdl2 openal and wxgtk...
Zup
Posts: 83
Joined: Mon 30 Nov, 2015 10:47 am

Re: How to install PCem v16 on Linux

Post by Zup »

It's complaining about some opengl development package, so you'll need something like libgl-dev. In Debian, it's a virtual package (provided by libgl1-mesa-dev).
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

Yep, I got those too (Ubuntu 20.04). No Idea when and why I installed it. Long before PCem, in any case. Ah, the wonders of Linux packages. Well, I guess the command goes like this:

Code: Select all

sudo apt install libgl1-mesa-dev
User avatar
spiderman82
Posts: 16
Joined: Wed 31 Aug, 2016 9:15 am

Re: How to install PCem v16 on Linux

Post by spiderman82 »

libgl1-mesa-dev - installed, NVIDIA -proprietary drivers (closed source)
j1forPandE
Posts: 23
Joined: Wed 26 Oct, 2016 6:06 pm

Re: How to install PCem v16 on Linux

Post by j1forPandE »

Its the same with me: Nvidias own.

This is really beyond my Linux knowledge. My best guess is that one of the needed virtual / meta packages that got installed on your system was partly removed or something like that. Maybe lost some needed configuration file or something like that. Had it happen already on Ubuntu.

I hope there is a (X)ubuntu graphics pro among us who can help here...
Neelix
Posts: 12
Joined: Tue 02 Jul, 2019 12:49 pm

Re: How to install PCem v16 on Linux

Post by Neelix »

Same problem here. Someone gave a solution in that topic :

https://pcem-emulator.co.uk/phpBB3/viewtopic.php?t=785

But, compiling with:

Code: Select all

make -f Makefile.mingw-wx-sdl2
give me this error :

Code: Select all

gcc -O3 -march=x86-64 -fomit-frame-pointer -msse2 -mstackrealign -Werror -fno-strict-aliasing -DUSE_NETWORKING -c 386.c
gcc -O3 -march=x86-64 -fomit-frame-pointer -msse2 -mstackrealign -Werror -fno-strict-aliasing -DUSE_NETWORKING -c 386_common.c
gcc -O3 -march=x86-64 -fomit-frame-pointer -msse2 -mstackrealign -Werror -fno-strict-aliasing -DUSE_NETWORKING -c 386_dynarec.c
gcc -O3 -march=x86-64 -fomit-frame-pointer -msse2 -mstackrealign -Werror -fno-strict-aliasing -DUSE_NETWORKING -c 386_dynarec_ops.c
gcc -O3 -march=x86-64 -fomit-frame-pointer -msse2 -mstackrealign -Werror -fno-strict-aliasing -DUSE_NETWORKING -c 808x.c
808x.c: In function ‘dumpregs’:
808x.c:491:9: error: ignoring return value of ‘chdir’, declared with attribute warn_unused_result [-Werror=unused-result]
         chdir(logs_path);
         ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Makefile.mingw-wx-sdl2-network:71: recipe for target '808x.o' failed
make: *** [808x.o] Error 1
Hopefully could someone help.
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: How to install PCem v16 on Linux

Post by leilei »

You don't use the Windows-intended MinGW makefiles to build for linux. Please read README-LINUX.txt
Neelix
Posts: 12
Joined: Tue 02 Jul, 2019 12:49 pm

Re: How to install PCem v16 on Linux

Post by Neelix »

The readme is not very explicit. I tried the procedure described in it and ended with the error:

Code: Select all

You need to install the OpenGL library
Trying

Code: Select all

--with-wx-config
give me

Code: Select all

checking for wxWidgets version >= 3.0.0... ./configure: line 4981: test: too many arguments
./configure: line 4984: test: too many arguments
no (version yes (GNU coreutils) 8.28
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie. is not new enough)
configure: error: 
    The requested wxWidgets build couldn't be found.
    

    If you still get this error, then check that 'wx-config' is
    in path, the directory where wxWidgets libraries are installed
    (returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH
    or equivalent variable and wxWidgets version is 3.0.0 or above.
Neelix
Posts: 12
Joined: Tue 02 Jul, 2019 12:49 pm

Re: How to install PCem v16 on Linux

Post by Neelix »

I found the solution. I tried to compile pcem under Xubuntu Xenial on vietual machine, it worked fine.

I work on Xubuntu Bionic.

I installed some libraries that were installed with the SDL2 libraries under Xenial, but not under bionic. (I don't know why)

Then ran the following commands:

Code: Select all

sudo rm /usr/lib/x86_64-linux-gnu/libGL.so
sudo ln -s /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so 
And it compile fine.
DX2-66
Posts: 6
Joined: Tue 14 Jul, 2020 1:40 am

Re: How to install PCem v16 on Linux

Post by DX2-66 »

omarsis81 wrote: Fri 19 Jun, 2020 11:56 pm A bit off-topic but does PCem under Linux perform faster than in Windows?
Good day. I just posted a new post for help getting external MIDI option in PCem compiled in Linux.

Comparing to Windows 7 that I am using in my X240 core i7 laptop, Linux version (compiled by myself from github) works much much better with much less noticeable stuttering, for instance when Windows 95 booting up with the startup.wav file( using the same Socket 7 machine with the same CPU - P90), and in-game which use CDs. For eg., I tried running Chaos Overlords, which has almost no stutters in the intro, when compared to the Windows version. Maybe it's just my machine, but I don't think I would go back to Windows running PCem when compared to Linux. (I'm running openSUSE).
User avatar
spiderman82
Posts: 16
Joined: Wed 31 Aug, 2016 9:15 am

Re: How to install PCem v16 on Linux

Post by spiderman82 »

Code: Select all

~/pcem16$ ./configure --enable-release-build --enable-networking --enable-alsa
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether to build for release... yes
checking whether to enable debugging... no
checking whether to enable networking... yes
checking whether to use ALSA for MIDI output... yes
checking for cpu... x86_64
checking for off64_t x86_64... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for SDL... yes
checking for wx-config... /usr/bin/wx-config
checking for wxWidgets version >= 3.0.0... yes (version 3.1.2)
checking for wxWidgets static library... no
checking for snd_pcm_open in -lasound... yes
checking for pthread_create in -lpthread... yes
checking for glGetError in -lGL... no
You need to install the OpenGL library.
Compilation doesn't want to work anyway!

Xubuntu 18.04, kernel 4.15.0-112-generic
Post Reply