Wednesday, November 27, 2019

Amiberry v3 on Pinebook Pro

Having spent a lot of time this year doing Classic Amiga projects, I decided to do something a little different for my next Amiga project!

I decided to try out the Amiberry v3 Amiga emulation distribution for cheap Arm based systems like the Raspberry Pi 4 ($59), and the recently released $199 Pinebook Pro laptop.


Seems logical on first glance that running Amiga emulation on cheap Arm-based processor systems like these provides a potential cheap platform for Amiga right? Let's find out...

Let's look at the Pinebook Pro laptop. This laptop is an attempt to create a truly affordable Arm 64bit processor based linux laptop in 2019 for Linux users and developers, costing $199. Pine are also creating a PinePhone (running Linux) costing $149 and upcoming Pinetime (smart watch running linux) as well! You can order the Pinebook Pro laptop and phone (Early adopters) from the Pine webstore here. There is a cheaper lower spec Pinebook laptop for $99 but I didn't look at that.

Element 14 sells a Raspberry Pi 4 based laptop as well, called a Pi-top and locally in AU it costs over $660! . It looks really cheap and plasticky, without being actually cheap to buy. My expectations for the Pinebook Pro were suitably low considering this, but it "looked" better built than the pi-top so I was hopeful...

I pre-ordered my Pinebook Pro back in August 2019, and I received it this month (November).  Opening the packaging reveals a smart looking and well built laptop:


The Pinebook Pro is meant to be an alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features:

  • IPS 1080p 14″ LCD panel 
  • Magnesium alloy shell
  • 64GB eMMC storage (Upgradable to 128GB eMMC)
  • 10,000 mAh capacity battery 
  • RK3399 SOC 
  • Privacy switches for the microphone, webcam
  • BT/WiFi module, and camera 
  • 4GB LPDDR4 system memory 
  • 128Mb SPI boot Flash. 
  • The I/O includes: 1x micro SD card reader (bootable), 1x USB 2.0, 1x USB 3.0, 1x USB type C Host with DP 1.2 and power-in (3A 5V), PCIe 4x for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch).


Keyboard and touchpad look nice. Simple design, but looks well built - to be honest I was surprised by that - reminds me a bit of the old Macbook black laptops Apple used to make, but this is much slimmer of course:


Pine Logo key in place of the usual Windows or Mac key - it can be used with the function keys to activate and deactivate wifi, microphone and built in web camera functionality as desired:


As mentioned, this system comes with a 64GB eMMC card inside, but this can be upgraded to 128GB, an optional internal NVMe SSD bridge can be installed to allow for larger data storage.

The right side of the laptop has a MicroSD card port also included for additional storage (and can boot images from it), along with USB3 port and headphone jack.


You also get USB-C ports, USB3 ports and a power jack on the other side. Power can be supply via the power jack or the USB-C port.


Flipping over the system, you can see actual normal screws! Coming from many years of sealed Apple laptops and non-upgradeable components, it is a breath of fresh air to have a system *designed* to allow users to get inside and upgrade it!


Opening up the back reveals the battery, main board, speakers, etc. The main board is really small.


As per the sticker you can connect the cables internally to bypass the battery and power the system without the battery installed.


There is an enable switch next to the 64GB eMMC card - here is the 64GB card removed from the eMMC system port - you can also see the reset button just above it, used when swapping eMMC cards, and a recovery button, which I have not had to use:



Never ceases to amaze me how small hard disks have become! After removing a 3.5 inch SCSI hard disk, (and 5/1/4 inch hard disks before that), these are so tiny!

I ordered an eMMC to USB converter from the Pine store, along with a 128GB eMMC card upgrade:


Out of the factory the eMMC didn't have a linux image installed on it (!), so I needed to use the USB to eMMC converter to load a downloaded Pinebook Pro compatible linux image (Bionic Debian) onto the eMMC card using my Windows 10 PC and Win32DiskImager:


With that done the system powers into life:


Satisfied that the system worked, I then imaged the 128GB eMMC card with Bionic Mate (based on Ubuntu Mate) and installed it into the laptop:


The system quickly boots up and presents the login page:


With the desktop now visible, I set to work patching and installing various linux software.




YouTube videos work well in Firefox on the Pinebook Pro - I am really enjoying the final season 6 of Silicon Valley at the moment:


MP3 Music playback well too (as expected), with OpenGL plugins working nicely:


But the focus here of course is Amiberry, the Amiga emulation. You can download it as an prebuilt image for Raspberry Pi systems, but for the Pinebook Pro things are not so straightforward.

Not.At.All straightforward in fact.

There is a Pine64 build available for Amiberry, but there is work to do to get it working. You have to compile SDL2 for Pine64, related components and compile Amiberry itself too. There are a lot of instructions to follow. I followed this tutorial to get things working.


With the tutorial steps followed, I could run Amiberry from the linux terminal, presenting the familiar WinUAE style GUI launch configuration screen:




First thing I quickly found out is that the touch pad mouse doesn't work within the Amiberry emulation at all. I needed to connect a USB mouse to use the mouse within the emulation...

I copied across my kickstart rom files from my purchased Amiga Forever distribution to use on Amiberry - I could then set up a base A500 and see the Insert disk screen of v1.3 kickstart:


Next, I set up my Amiga 2000 hard disk contents under the Amiberry folder on the Pinebook Pro, and then configured an Amiga 2000 configuration on AmiBerry, using the harddisk folder as a DH0 hard disk:



I forgot to change the volume label to System in these screenshots. I recreated the hard disk directory to change the volume name to System before moving on. (not pictured sorry!)

Checked the display settings to make sure using fullscreen and selected Frameskip:


Next I connect my USB Amiga joystick (that I use on my X5000) to the Pinebook Pro, and selected it in the Joystick configuration in AmiBerry, so I can use the joystick to play Classic Amiga games! By default it uses the keyboard to control it.


That done, I could then boot my Amiga 2000 hard disk under AmiBerry emulation on the Pinebook Pro:


I ran Hired Guns from hard disk and it worked well:


The game ran well, no slowdown or audio issues:


The important bit for me though, is demos...I started testing a few demos:


Unfortunately the performance from running complex ECS demos like Sanity's Interference demo is not perfect, and doesn't run 100% smooth.


It has choppy audio and video from time to time (not all the time, but for complex scenes). The system is clearly not able to keep up with the demands of the emulation.



I tested the Jesus on E's demo as well. For the most part it works ok and audio is fine, but for parts of it the video chops around and is not perfect:


But for ECS games, the Pinebook Pro works great. Here I am playing Magic pockets from ADF file under Amiberry:


Given the slowness of ECS demos on the Pinebook Pro, I didn't see much point in exploring AGA demos and 060 emulation that require even faster systems to work well under emulation.

Being thorough though, I decided to try it anyway to confirm this.

I setup a new configuration under Amiberry to emulate my Amiga 4000/060 system - two hard drive folder locations to mount for AmigaOS 3.9 and demos:


Setup CPU to 68040, enabled JIT and change speed to fastest:


Enabled AGA chipset, set Extra to A4000:


I then maxed out the Chip memory to 4MB, 256MB Zorro 3 Fast, and maxed out the onboard memory (16MB) and CPU board memory (128MB):


I then saved the configuration, and launched the emulation, which bombed out and dumped me back at the terminal screen with an exception!

I figure this is probably related to JIT, so I turned JIT off in the configuration, removed unnecessary extra memory as well (normal chip memory, etc) and then booted the emulation, and it worked as expected:


Without JIT the demos run too slow, so I pressed F12 to turn on JIT within the emulation, which didn't crash it to my surprise - well, for a little while anyway. I tested Focus Design's Storm Rider demo, which ran well enough:


Audio and video in sync, all good:


I then tried a little more ambitious with TBL's Rift demo, which got as far as the screenshot below and then crashed Amiberry, presumably because of the JIT being enabled breaking something:


The emulated A4000 system won't boot with JIT enabled, and AGA demos run too slowly without it being enabled within the emulation. With JIT enabled within the emulation after boot, demos crash quickly. I tried several more demos which all crashed out.

I also tried using an 020 AGA configuration (A1200), without the extra memory, etc, and it still crashed out when booting with JIT enabled. If disabled it boots, but JIT is needed to run demos at normal speed on this system. With it turned on within emulation, demos crash within 30 seconds...the same thing happened when testing 030 CPU and 68882 FPU.

At this point I feel I have covered the Amiberry emulation on Pinebook Pro as much as is useful to do!

Perhaps Raspberry Pi 4 runs AmiBerry better as the Pi is the target platform, but at the moment their pre-built image only supports Raspberry Pi 3. I bought a Raspberry Pi 4 a while back but haven't really used it:


I tried their suggestion of installing DietPi latest build on the Pi 4 and then adding Amiberry as per their instructions.


Made in the UK! Not often you see that nowadays, nice to see new hardware is not all coming from China:


But after initial boot of Diet Pi on the Pi 4 to login prompt, the keyboard doesn't work at all for some reason. The keyboard works fine when running Debian on it (as below)..Linux is so frustrating at times, especially on cheap hardware. Sometimes cheap is cheap for a reason...


I suppose buried somewhere deep on the internet in a wiki or forum post will be some right brain solution to fix it, but my patience for these sorts of Linux problems is very short at the moment. So I gave up on trying to test on the Pi4 for now.


Returning to the Pinebook Pro...

Basically, my recommendation is don't buy a Pinebook Pro for Amiga emulation unless you only want to play OCS/ECS games on it. At least until AmiBerry fix the JIT issues running Amiga emulation on this platform.

That said, the Pinebook Pro certainly fulfills it's intended purpose as competition to Chromebooks that people load Linux onto though! It is also surprisingly well built.