Tag Archives: Retro Computing

Retro Computing: Epic Fail!

Continuing from the last post, we continue with my attempts to host Retro Computing VMs. However, there has been a change around how I host my VMs.

As I mentioned before, the performance running VMs on UTM SE sucks balls. No fault of the app itself, the problem is around the artificial limitations imposed by Apple on iPadOS. So I decided to find another way to run them.

Microsoft Azure Dv3-Series

I recently found out that service like Google Compute Engine and Microsoft Azure support nested virtualization. Basically you can run VMs inside the VMs they provide you. Due to my aversion to Google, I chose Azure.

Signing up for Azure’s free tier was pretty painless (If you don’t count opening each link within their portal in a new tab). Although, a few terms are a bit technical and require doing a bit more research.

I chose the below starting specs for my parent VM:

Zone: Asia Pacific (Central India)
OS: Windows Server 2022 Datacenter Edition
CPU: 2 vCores
RAM: 8Gb
Disk
: HDD 32Gb, 500 IOPS, 60Mbps

*I chose Central India as the Datacenter, because I also wanted to use this VM to access Indian websites, geolocked outside India.

It was a bit technical getting Nested Virtualization enabled.

I used the Windows app to remote-in to the parent VM and installed Oracle Virtual Box to host my child VMs. Luckily, the Windows app supports transfer of files from the iPad to the VM, but it is painfully slow (400-700 KBps).

Slow file copy via the Windows iPad app
Slow file copy via the Windows iPad app

Eventually, I ditched this approach, because

  1. The on-going costs were more than I was willing to spend on this project (Especially because there is no way to accurately predict how much you will be charged)
  2. There was no sound emulation

Synology Virtual Machine Manager

Synology Virtual Machine Manager (VMM) is Synology’s (mostly) free Hypervisor that can be installed on its DSM platform. Since my newest NAS now supports this, the next step was to run my Retro VMs on it.

The software is quite powerful and except clustering, almost all the features are free.

However, the Hypervisor doesn’t seem to be optimised to run such old OSes. I could get the Windows 98 installation to complete, but I couldn’t get the OS to boot however much I tried.

It was safe to assume even older OSes like Windows 95 and Windows 3.1 would never work. So I gave up.

My Retro Computing plans are on hold for the time being.

Retro Computing: Windows 98 SE/Setup

Continuing my adventures with UTM SE, the first thing I did was run Windows 98 SE Setup.

Windows 98 SE was the first OS on my first computer, so this was a huge trip in nostalgia. I made an ISO from my old and scratched Windows 98 SE disk, mounted it in UTM SE and let it boot.

Windows 98 SE, Start Computer with CD ROM Support
Windows 98 SE, Start Computer with CD ROM Support

The boot screen sent me into throes of nostalgia. So did the next steps.

I could feel myself going crazy when the setup GUI came up.

Windows 98 Setup, To begin Setup, click Continue
Windows 98 Setup, To begin Setup, click Continue

I got stuck for a while here because I couldn’t make my keyboard and mouse work. Eventually, I figured out that I needed to disable support for USB peripherals and I could continue.

After the first reboot, I was presented with the famous “first time” Windows 98 boot splash screen. Another huge dose of nostalgia.

Microsoft Windows 98, Getting Ready to run Windows for the first time
Microsoft Windows 98, Getting Ready to run Windows for the first time

The second phase of the setup is (was) my favourite. I especially like the part with the beating drums animation.

Eventually, after an hour and 50% of my iPad’s battery, setup was complete and it booted into Windows.

More to come, soon.

Retro Computing: UTM SE

Last week, something unthinkable happened. Apple finally allowed emulation of any and all OS on iOS and iPadOS. The intended purpose is to emulate retro Windows based games, which matches their recent trend of approval of gaming-system emulation apps. However, for me, it restarts a long-time hobby of running retro OSes purely for nostalgia and hobby purposes. This was not possible before because I don’t have a real computer, just an iPad. The first app to take advantage of this change of heart from Apple is UTM SE.

Now, UTM SE has been available on macOS and jailbroken iOS and iPadOS for quite some time, but this is the first time the app is officially available through the App Store.

Overview

The process to configure a new VM is much like most virtualisation apps out there. You use either an existing image or create a new one, select various parameters like RAM, HDD, CPU architecture, cores etc.

Your Bluetooth mice/keyboards can be mapped to the guest OS via USB or PS/2 emulation. For older OS (Pre Windows ME) which don’t have out of-box support for USB peripherals, you need to disable USB support for Mouse/Keyboard so that they are emulated as PS/2. Even touch gestures can be used in lieu of a mouse, although the experience is clunky.

UTM SE: Switch between USB or PS/2 for mouse and keyboard
UTM SE: Switch between USB or PS/2 for mouse and keyboard

Another useful feature is that you can map a folder on your iOS/iPadOS filesystem to the guest machine allowing you to transfer files easily.

UTM SE: Select Shared Directory
Select Shared Directory

Also, you can choose to include your VMs in your iCloud backups.

The Bad

Instead of proper virtualisation that is possible on other computing platforms, UTM on iOS and iPadOS uses software emulation, making it very-very slow. Apparently iOS and iPadOS had virtualisation support (only with jailbreak) previously, but they removed it a few years ago.

The other limitation is, iOS and iPadOS don’t allow JIT compilation for apps from the App Store which negatively affects performance further.

For me, the performance is roughly similar to my first Celeron 400Mhz computer. Which, when compared to the 4×3.49Ghz high-performance cores on the Apple M2 means there is an approx 35x performance penalty for emulation. No wonder the “SE’ in UTM stands for “Slow Edition”.

Also, switching to another app causes UTM to suspend the VM after a few minutes. None of this is UTM’s fault, but needless restrictions from Apple to stop iPads from cannibalising Mac sales.

Also, the iPad screen locks after inactivity, which I think is on UTM, because apps (especially games) have been able to keep the screen unlocked through inactivity.

But the good thing is, you can resume from where you left off. Also, you can run multiple windows of UTM itself, even with multiple windows mapping to multiple monitors on the guest.

Battery usage is also extremely high because of the inefficiencies.

Look forward to many (many) posts on this topic.