Saturday, 11 July 2020

Microbee CGA to VGA upscaler on Amiga 1000

Today I wanted to take a look at the Microbee CGA to VGA upscaler, which is able to be used on the Amiga to scan double and de-interlace the Amiga native RGB output to a modern TFT screen.

I must first apologise for the lateness in blog posts. I have been very busy with my new job, which I started recently. I have also been distracted by other projects and training I am working on that are not Amiga related to keep learning new IT skills.

However, last week I received notification from Facebook that Microbee finally had stock of their upscaler devices, (HDMI or VGA output) which are compatible with Amiga's too.

Normally these units sell out VERY quickly and I have missed out multiple times in the past, so I quickly jumped on their website to grab a VGA version (AUD$129), and the optional Amiga RGB to CGA cable (AUD$22).

It arrived in the post the other day, and after the usual heavy cleaning due to COVID-19, I could use it.

I bought this device for use on my Amiga 1000. It is the only Amiga I own without a scan doubler installed. The indivision ECS doesn't fit in the A1000 due to the daughterboard on top.

Until now I have been using a 15khz compatible TFT screen with the Amiga 1000, connected to a AmiVGA connector to the RGB port.

Problem with this is mainly that interlace modes don't look good, and the fixed resolution on a 16:9 screen looks a bit funny, with some screen artefacts (lines) that make it less than optimal.

Enter the Microbee upscaler. Microbee is an interesting company, having made the local Australian built Microbee computers in the 1980's which were used in schools and homes too. I used one myself in computer classes in the 1980's in Perth.

I remember learning LOGO on the Microbee computers. I also remember that they were networked to a master "server", which would routinely crash when too many people were using the Microbee computers simultaneously...usually just before you finished typing a long amount of code to run.

I never owned a Microbee myself sadly. The company these days makes this Upscaler to enable the Microbee computer to be displayed on a TFT screen (CGA to VGA). To make it appeal to a broader market they made an Amiga RGB to CGA cable and tweaked the settings to make it work with the Amiga (and other systems like Commodore 128, etc).

Close up of the Amiga cable - it uses a real DB23 connector, not a shaved 25 pin one, which is great:

Pin outs for the RGB to CGA cable were included. Fortunately they build the cable for you nowadays rather than having to make it yourself (which you used to have to do).

On the front of the unit is the Analog/Digital switch and the CGA input port.

On the back is the VGA port and power input (power adapter is included) to power the unit.

I set to work connecting up the cables to the Amiga 1000.

The Amiga cable is very short, so the upscaler unit needs to be close the Amiga 1000 RGB port.

With it all hooked up, time to test it. On power on, I get the ACA500 boot screen (as I have an ACA500 attached to the Zorro port on the A1000). You can see some blue display garbage at the bottom of the screen, but otherwise looks nice:

I adjusted the screen settings on my Viewsonic TFT 19" screen to move the display down a bit to remove the blue bit from view and have a nice clear scan doubled Amiga display:

I booted up my Amiga Workbench 1.3 from CF hard disk:

The Standard Amiga lores screen works great, although I should mention that there is still some screen artifacting on closer inspection in demos and games. I used a demo "Interference" from Sanity to show this - the purple edging has some artifacting:

So, well, it is not perfect. But it is not too bad. Compared to some of my other very old scan doublers, this looks much better! Especially when using the Workbench and applications.

The artifacting is much less noticeable on black backgrounds:

Next I fired up Deluxe Paint IV to test Hi-Res and Interlace modes - Hi-Res first:

The output is crisp and looks quite nice actually:

I tested interlace next and it displays very nicely with no flicker visible:

When using the normal workbench 1.3 with mouse pointer, I noticed some strange "watery artifacts around the mouse when moving. Not really annoying, but noticeable.

I am not sure if there is much you can do to optimise this (I assume the serial cable allows connection to the board inside to customise it), but it is ok for normal use and I haven't played with the board setup at all. Strictly tested as it was delivered to me.

I fired up some more demos that I know use some weird screen tricks (like Wild Copper) and it works well:

I also tested a game - APB - and with this game you can really see the artifacting up close with a purple backdrop. This is a shame as it kinda ruins things a bit:

In short, the Microbee upscaler is good, but not perfect for the Amiga 1000. When I have some more time I will try to use it on some other Amigas as well to confirm if the issues I saw are Amiga 1000 specific or not. For now I will keep using it on the A1000 as it looks nicer than using a 16:9 screen and interlace works well.

Thursday, 14 May 2020

Live Streaming AmigaOne X1000

Sorry for the long wait for another blog post. Today I wanted to look at the setup I have done recently which allows me to live stream the output of the AmigaOne X1000 with AmigaOS 4.1 Final Edition Update 1 to the internet via Twitch!

The last month has been very difficult for me to say the least. 

Work was very busy with the company being taken over, and then finding out that all the IT operations would be moved to Queensland. I was made redundant in the middle of the Coronavirus pandemic last week with many of my colleagues. This is like many others globally too I know. 

Unlike many others affected in Australia by this, I am unable to get government financial assistance as the company I worked for was not impacted much by COVID-19, making me ineligible for government help...great.

Fortunately I saved money for a rainy day, and now it is here. I will be ok for a bit, while looking for a new job. With the market right now being very tough job-wise, I don't expect to find anything for a while.

This of course means I have some significant free time on my hands, for the first time in many many years.

I decided first to up skill in various IT I am weak in currently, and one of those areas was streaming technologies. I decided to learn more about how it works, what is needed to set it up, and try to weave my love of all things Amiga into it too by streaming some Amiga generated content out to the world live!

I was inspired watching some of my favourite F1 drivers live streaming their esports sim gaming (while motorsports are all stopped) to keep their skills sharp. It was a great way to get to know their real personalities better too outside the cockpit.

To say there was a lot of work to do to get this working was an understatement. But getting it working and live streaming the X1000 on the internet was very satisfying.

I enjoy gaming too, and in addition to the AmigaOne X1000 I was keen to connect my PC, Nintendo Switch and PS4 to stream as well.

To do this I needed a lot of things. Fortunately I had most of them already, and for things I didn't have (like a dedicated webcam) I found an innovative solution from Newtek (remember them?) to use my iPad as a dedicated webcam.

For the capture of the HDMI output from the X1000, I needed a game capture card. Because I plan to use my Mac as the streaming machine (to keep the load off the PC and other devices), I needed to get an external game capture device.

Previously I had purchased a Game Capture HD device for this purpose, but didn't get far with it, as it is limited to using it's own software on the Mac for streaming, which didn't allow me much freedom with how I wanted to stream content. Also, it couldn't stream 1080p, only 720p due to limits of USB2. (it will though pass through 1080p to your screen)

The newer devices are sold out worldwide, and so I found one (Elgato HD60S) second hand, and still boxed, on Ebay. After a thorough cleaning after arrival, I could get to work setting it up.

These Elgato capture devices work by taking an input HDMI source (like PS4, PC, Switch, etc), and passing through the signal to HDMI out port to your normal screen.

They have a USB cable connection to your streaming PC running the software to grab that HDMI data and give it to the PC to process, either to record to the local disk, or stream live to YouTube, Twitch, Facebook live and more.

I then use a HDMI switch box to take multiple HDMI inputs (PC, Switch, X1000), and output to this HD60S.

Something to keep in mind is that this capture device is limited to 1080p60 pass through, so no 4K HDMI connections are possible. The newer HD60s+ model supports this I believe, but I was unable to find one. In any case, most of the systems I am currently using (apart from my PC) are outputting 1080p anyway, so it is not such a big hassle. I changed the PC to output 1080p for now.

One obvious hassle I knew I would hit early on is the audio from the X1000. Unlike the PS4, Switch, PC, etc, the AmigaOne X1000 does not output audio via its HDMI output. Instead it uses a standard line out phono plug via the onboard HDAudio.

So I needed to think outside the box on how to fix this and merge the audio into the HDMI output somehow, before it reaches the capture card.

There is an audio in phono port on the HD60S (unlike the Game Capture HD I was using before), but it is intended to be used for the chatlink function of the PS4, so that audio from the PS4 controller audio input is spliced into the HDMI output. I don't want to use that, since I intended to use it for that purpose later on, and also it is annoying and expensive to buy another set of RCA audio switch box setups and more cables to accomodate different inbound streams in a convenient manner.

The Radeon Southern Island card installed in the X1000 has DVI, HDMI and DisplayPort outputs, as below.

I purchased a VGA to HDMI converter from Jaycar Electronics, which has VGA and RCA audio input, with HDMI blended video + audio output. It uses a USB power source.

I then used a DVI to VGA converter to connect the X1000 to the converter. I then ran a phono to RCA audio cable from the X1000 HDAudio out to the converter.

I then hooked it up and connected to my HDMI switchbox, which then allowed me to see the output on my screen to confirm the normal output was working

I checked the audio output was working using the VGA converter to HDMI and pleased to say it worked perfectly:

Naturally I soon got distracted and tested the audio in a game or two...

With that done, I turned my attention to the streaming part of this setup, which is connected to my "Trashcan" 2013 Mac Pro.

I bought this system second hand from Ebay a few years ago (for a fraction of the price of it new) to replace my similarly ageing 2013 MacBook Pro, which was necessary as the battery had ballooned and made the system unusable. The quote to replace the battery was ridiculous so I replaced with a second hand system instead.

This system is still running Mojave, rather than the newer Catalina. The reason for this is because Catalina dropped 32bit application support, and I still have a number of applications and games that are 32 bit and will not run on Catalina. Including AmiKit XE...I am looking forward to the upgrade for that soon please...

The software provided by Elgato is functional for basic streaming, but I really wanted to use all the cool features that the freeware OBS Studio makes available for streaming.

There is an open source variant of this called Streamlabs, which is the software I wanted to use for streaming, and is based on OBS with some other features added to make streaming easier. It allows to use of themes and programming different inputs and screen layouts to make the stream more professional.

This needed the HD60S device in order to work on MacOS, due to the need to use OBS Link software to connect the game capture device to OBS running under Streamlabs. The older Game Capture HD device doesn't work with OBS Link.

With that working now with Streamlabs (as above), I turned my attention to the webcam so people can see me when streaming.

As you may know quality webcams are in high demand due to the working from home happening globally due to the Coronavirus pandemic. In Australia, it is basically impossible to buy one that support 720p or 1080p streaming right now.

In addition, many countries are simply not shipping to Australia now due to the removal of most flights to/from Australia. This further limits my options!

I do have an Apple Thunderbolt display, and yes, I could use the 720p webcam on that, but I can't easily re-position the screen in the right place while I am streaming, and since it contains the streaming software too, it would be distracting to look at it while streaming live. I don't want to have to move it every time.

I know that I could buy an Elgato Camlink to take a camera input, but that would mean spending more money, which in my current position I don't want to do for obvious reasons.

So, I did some research and found out you can connect iPads and iPhones as webcams over WiFi in Streamlabs using NDI software from Newtek (yep, the Amiga guys) on the iPad! This month Newtek is offering the NDI app on the App store for free so I took full advantage of it.

This meant I could get an easily movable webcam solution without spending any money! Awesome.

Here is the setup, showing the X1000, iPad, PC, Xbox One, with the Mac out of shot on the left.

For those eagle-eyed people, I also tried using the MIST (Pictured) on this setup too, but the resolution outputted is a problem it seems for the capture card to feed correctly. I'll try it again soon.

In the meantime I have working output from the X1000 with audio, ready to stream to the world.

I did this stream on the 13th May 2020 via Twitch. My Twitch profile is here:

If you follow me on Twitch you can be advised when I go live with new streams to view, listen and chat live, or just view the older broadcasts if you miss the live streams. There are some C64 Max and PC gaming streams you can still view too.

You can see the broadcast for another 14 days from when I wrote this blog post - from this link:

In case you missed that, I also recorded this particular stream locally, and uploaded it to YouTube. You can view it below but recommend you click the link instead:

Despite my best efforts, I will soon have to mute sections of the YouTube video audio since YouTube are annoying when it comes to copyright claims. The audio they claim copyright is from Supertuxkart and Prototype games when I was playing them. Seriously? freeware games?

This is why people use Twitch and not Youtube for live streaming. Anyway..

It was fun doing this, and I have a new high respect for the excellent work of Bill Borsari doing the live streams from AMIWest every year. It is a lot more difficult and involved to setup a professional stream than people think - thanks Bill for your hard work to make that happen.

I learnt a lot more now about the technologies involved in live internet streaming, and finally getting my AmigaOne X1000 live streaming to the world. I am sure there will be more to follow.

I hope you enjoy the stream and future ones too!

Sunday, 5 April 2020

PiMiga v1.2b for Raspberry Pi 4B

This weekend I decided to take a look at the recently released PiMiga V1.2B Lockdown Edition pre-setup Amiga emulation Amiga 1200/4000 build for Raspberry Pi 4.

Sorry for the delay in blog posts, but with the Coronavirus situation, my employers company being taken over by another one this past two weeks, it has meant I have had a lot of other things to do recently that have stopped me playing around with the Amiga's much. 

But I made sure to make time this weekend. I really needed a break from work and virus news to play with something new and fun!

To use PiMiga, I of course needed a Raspberry Pi 4.

I picked mine up locally in AU for $177 from Core Electronics. As a side note they also sell the very cool Gameboy inspired Retroflag GPi case!

I bought the official Pi case, keyboard and mouse too - the base Pi 4B 4GB board was $102:

I already have experience with Pi systems, most recently with a Raspberry Pi 3, which I was using for IOT projects running Windows 10 IOT, and also Ubuntu Mate for playing around with various stuff.

I hoped the Raspberry Pi 4 would bring the badly needed speed increase the platform needs, and hopefully runs Amiga emulation at full speed! Let's find out!

Here is some close up photos of the Raspberry Pi 4 - this is the model B version with 4GB memory:

It has dual mini-hdmi out, and USB-C power source, alongside the usual USB, ethernet, audio and GPIO port.

Flipping the board over, you can see the MicroSD slot to put OS images into:

The official case is a perfect fit for the Pi 4 and easy to assemble, with no screws needed:

External views of the Pi 4 case with the Pi 4 installed:

The keyboard deserves a mention - the new keyboard has a USB hub built in, which the (extremely short) USB mouse cable is obviously designed to fit into:

I loaded up Debian onto a 64GB MicroSD using my Windows 10 PC and booted up the new Raspberry Pi 4 for the first time.

Having established the system works, I next wrote out the latest v1.2B Raspberry Pi 4 build of PiMiga to a MicroSD card. I did this using my Windows 10 PC as it is less hassle with the 7zip files and large file formats I need to work with.

PiMiga includes the latest AmiBerry Amiga emulation, but setup on an almost ready to run bootable image for the Raspberry Pi 4.

You can get the latest version of PiMiga from the recently setup dedicate Facebook page - just search for PiMiga. The Facebook page includes the link to get the multi-part 7zip archive files (around 16GB worth), and also includes the password needed to extract the files from the archive:

After downloading and extracting the archive, I reviewed the installation instructions included in the PDF in the archive.  

I then got to work writing out the 30GB image file to a 64GB MicroSD card using my Windows 10 PC and Win32 Disk Imager:

Once the image file is written out, the only thing we need to do before putting it in the Raspberry Pi 4 is drop the kickstart roms files into the required partition location, as these can't be included in the distribution for copyright reasons. These steps are included in the PDF in the PiMiga archive. 

As per the instructions, the Image once written out to the MicroSD card results in two partitions, one unreadable under Windows 10, and one readable called KICK, which is where we need to copy our legally obtained kickstart roms.

You can buy them from Cloanto. I got them as part of the Amiga Forever package, so I copied the 3.1 A1200 and A4000 kickstart roms (and the rom.key needed to decrypt) across to the MicroSD card KICK drive:

Once there, I needed to rename the two kickstart files to the convention required by the instructions in the PDF, as below:

Excellent. Now we are ready to try it out on the Raspberry Pi 4! I put the MicroSD card in the Pi4 and powered on. After some quick setup stuff that was invisible it rebooted into the PiMiga environment with a nice splash boot screen and boot sound:

Here is the booted Amiga 1200 Hard disk emulated Workbench 3.1 desktop - looks pretty awesome:

Something I found out though is that I needed to use the Micro HDMI port closest to the USB-C power adapter port on the Pi 4B to hear any audio output.

With that done the mod sounds came through loud and clear and I was very happy indeed!

Under the hood, This is a Debian linux distribution, running the latest AmiBerry 3.1.3 Amiga emulation distribution. If you press the Function + F12 on the Raspberry Pi keyboard (F12 on a normal full sized keyboard) you get the Amiberry GUI, which allows you to view and change the Amiga emulation configuration, to reset the Amiga emulation, or shutdown the Pi 4 system:

Clicking through the various emulation options, you can see the A1200 configuration used by default is running 68020 AGA system, with 8MB chip and 128MB fast memory:

Being an A1200 emulation, it is using the AGA chipset:

Interesting part next is the hard disk folder setup. This shows that the various folders under linux are mapped to DHx devices under the emulation:

If you hit Quit or if AmiBerry crashes during the emulation for any reason, you can return to the command line login prompt for linux. You will need the username 'pi' and password 'pima' to login. then type 'sudo reboot' to reboot the system back into the PiMiga system environment.

There are two configurations in AmiBerry, one for A1200 and one for A4000. The main differences are the memory (256MB versus 128MB), CPU (020 versus 040) - the drives map to the same folders under linux under either system.

You could create additional configurations for 1.3 based emulations, etc. I might do this later on.

One other thing you do need to do here is configure your USB joystick (if you have one). I have one attached, so I go into the Input settings - by default the emulation is using the keyboard as a joystick:

We can click the down arrow to select the USB joystick:

I then went to the configurations section to save the configuration, so it would remember it every time it boots.

With that done, let's now take a look at the PiMiga pre-staged Workbench 3.1 hard disk environment as provided:

The author of the PiMiga package has gone to a lot of effort to do nice icons, and a logical structure to the program locations:

The prefs icons are unusual - I haven't seen icons like this before!

The backdrops of the windows for each drawer are colourful:

There are icons on the desktop for UAE Control parameters you can change, and also shortcuts to drawers - it is clear this appears to be using ClassicWB distribution which is modified a lot:

There are a number of emulators preinstalled, but I haven't tried these yet:

There is a large number of WHDLoad games preloaded on the PiMiga image, ready to run:

There are a bunch of demos too. Note that some need the A4000 configuration to run, some need the A1200 configuration to run, depending on their CPU requirements.

A close up of the drive icons, modelled on Mac Mini systems of old - but looks pretty cool:

There are a few example movies you can play out of the box on the PiMiga system:

Being a huge fan of modules, I am pleased to see there are a number of modules out of the box to enjoy, although I plan to add my own large collection to this in due course.

iGame is setup on the PiMiga system, and indexed with all the thousands of WHDLoad games ready to run on the system:

I have to admit, I am impressed with the work done on this setup, and grateful it saves me the time to do it myself!

I ran the SysInfo tool, which surprise surprise resulted in a  very fast Amiga, way faster than any real Amiga can run!

Final Writer 68k is also included, and it was nice to use under PiMiga:

The shell is VincEd Shell, which I am glad to see has been setup for tab completion for paths, etc.

There are a number of applications included, like AHX for chip tune composing:

Perfect Paint is installed for your graphic file manipulation needs:

Octamed Sound Studio is also installed:

I shutdown the system and mounted the MicroSD on my separate Linux Mint system, so I could copy my mods, demos, ADF files and more to the card - you can see the Kick drive and rootfs are mounted on:

I copied a number of ADF's into to currently empty /home/pi/pimiga/adf folder on the MicroSD card:

I realise with the WHDLoad games on the HD you probably don't need ADF files, but I prefer to have them handy just in case.

I also put my Amiga 2000 HDF (taken from my real Amiga 2000 hard disk) into the empty HDF folder - I don't plan to set this up right now, but will do so at a later time.

Under the /home/pi/pimiga folder on the MicroSD you can see the various folders mounted as drives under PiMiga (AmiBerry):

I quickly added my favourite modules and demos to these folders:

I unmounted the MicroSD, removed from the Linux PC and inserted back into the Raspberry Pi 4B and booted again.  The backdrop changes on each boot:

I tested some WHDLoad games, such as Agony, which ran well:

Shadow of the Beast also ran well:

The USB Joystick also works perfectly:

I also ran a few demos, as included on the distribution. There seems a small issue with iconx as provided in this image for icon launching of some demos, but apart from that, the demos run fine from the Amiga shell (which is how I normally run them anyway).

TBL's Starstruck demo runs flawlessly on the Pi4 using the A4000 configuration in Amiberry, which is great news!

Other demos, such as this one from Focus Design also ran well in A1200 020 configuration:

For me, the big thing was that AGA 060 demos run perfectly at full speed on the Pi4. I am very happy to see this, and makes the Raspberry Pi 4B a cheap and full speed Amiga emulation platform.

PiMiga is a free distribution to download and use, and is definitely worth trying out on your Raspberry Pi 4 today! (there is also a Raspberry Pi 3 version but I haven't tested that)

Please all keep safe out there!