WinTown – Micropolis (SimCity) for NT RISC

(This is a guest post by Antoni Sawicki aka Tenox)

If you ever wanted to play SimCity on a NT RISC machine, your dreams finally came true!

WinTown aka Micropolis aka SimCity running on NT MIPS

The initial port happened some time last year but it was quite buggy and not fully playable. This release fixes all major bugs. Most importantly however it wraps around the original Unix SimCity C code from DUX instead of re-implementing it. Only the Win32 / GDI, dialogs, etc is custom Windows code.

Rlease 0.6 binaries: https://github.com/tenox7/wintown/releases/tag/0.6

Supports Alpha AXP, MIPS, PowerPC, Itanium (IA64) and ARM. Currently targets NT 4.0 and above, but work is being made to make it run on NT 3.1.

Github Repo: https://github.com/tenox7/wintown

Please report bugs and contribute, PRs welcome!

OpenVMS 7.3 VAX on SIMH via Docker – With VNC to DEC Windows

(This is a guest post by Antoni Sawicki aka Tenox)

I wanted to recompile the new smg$routines version of aclock for vax/vms and started messing with SIMH VAX emulator. Thought it would be cool to be able to run it as a Docker container. Here it is:

https://hub.docker.com/r/tenox7/openvms73

https://github.com/tenox7/docksimhvaxvms

To run, simply:

docker run -it --rm tenox7/openvms73:latest

If you want to telnet to it add -p 23:23.

For X11 XDMCP Query add -p 177:177

If you want to persist state of the OpenVMS image add -v .....:/data.

Login as system / systempassword

Have fun with virtualization!

UPDATE: Now it also includes a built-in VNC server that does XDMCP Query to the DEC Windows X-Server. Just VNC in to the container!

OpenVMS 9.2-3 x64 now has local console on OPA0

(This is a guest post by Antoni Sawicki aka Tenox)

I perviously covered x64 OpenVMS release on VMware. This was insanely cool achievement for the operating system. While it had no practical ramification there was one small annoyance. The OS console was on a serial port. In VMware it meant another VM connected via named pipe.

Now OpenVMS x64 supports (limited?) local console on OPA0. To enable it you have to type opa0 before boot in the bootmgr prompt:

Once the system boots your will be greeted with a login prompt on the local VGA console!

Does it support clear screen, cursor movement, etc? Yes! You can even run a text editor locally!

The default terminal size is 80×24. You can make it bigger by typing

$ set term /width=140 /page=70

This means we can have aclock on x64 OpenVMS local console!

Prior aclock binaries for VMS were compiled using Unix Curses library. To celebrate all this, I have created a new version using the native SMG$ screen management routines. So this is now a truly native VMS app. The binary is here. The source code here.

Have fun with virtualization!

Atari System V UNIX (ASV) virtualized under Hatari

(This is a guest post by Antoni Sawicki aka Tenox)

Some 12 years ago I ran a short series of articles about my efforts to run Atari Unix on an actual Atari TT 030 machine. Which by itself is not an easy task, as it requires specific late models of TT (or hardware fixes by Atari), copious amounts of TT RAM and a high resolution mono framebuffer graphics (which requires a very special monochrome monitor or an adapter which I had to build instead). I have later exhibited my ASV setup on VCF West:

Atari System V Unix (ASV) running on Atari TT on VCF West

Behold! This time I present ASV virtualized under Hatari!

Atari System V Unix (ASV) Running under Hatari by Plamen

This work is not mine, all credit goes to Plamen! This is absolutely amazing as now more people can experience this legendary OS. The works is still in progress. Will post updates and more screenshots regularly!

Update: X11, screenshot courtesy of Andrew W:

Atari System V Unix (ASV) Running under Hatari by Andrew W

Update: Complete setup available here!

Whitesmiths IDRIS OS for Atari ST Virtualized!

(This is a guest post from Antoni Sawicki aka Tenox)

This is now an old news, happened a few months ago, but since it hasn’t been mentioned here I think it would be nice addition to the collection!

Whitesmiths IDRIS for Atari ST has been dumped on bitsavers for a few years now, however we only had the root disk and C compiler. The boot “disk” was a ST ROM cartridge which has not been previously found.

Apparently someone posted a complete set of Idris Atari ST floppy disks on github. Thank you!

Not only that but it has been virtualized now works on Hatari. This post reads that patches have been merged to Hatari so it should work out of the box!

Atari ST IDRIS on Hatari

Atari ST IDRIS on Steem SSE

Some time I also acquired and scanned programmers manual. Happy Whitesmlthlng! Since we have working system, compiler and utilities we should be able to port some cool apps to this platform!

MacOS RAR via Finder Quick Actions Extension

(This is a guest post from Antoni Sawicki)

I have been using the MacOS CLI version of RAR for a very long time. I have a bunch of aliases and shell wrappers but every so often I just want to right right click on a file or folder in the Finder and create a RAR archive from there without dealing with the terminal.

There are a bunch of apps like Keka, BetterZip, Unarchiver that can extract .rar files. The app store is littered with a bunch of shady “rar extractors”. But nothing can create a rar archive. I think Keka did have support but it was removed.

As a stop gap I have been using an Automator Quick Action RAR script. This sort of works for basic stuff but falls apart pretty quick. Firstly you can’t specify any options, secondly there is no progress bar or any output from rar binary so you dont know if this thing worked, failed or even still running. I experimented with various options but nothing worked to my satisfaction.

Claude Code to the rescue I vibe coded a more complete extension in Swift UI:

It allows to specify options and parameters, but most importantly the rar command output is printed in a window so you can see it running.

I admit this overall is pretty lame but it works better than any alternative I tried so far.

You can download from https://github.com/tenox7/rarext

Feedback, issues and PRs welcome!

Web Rendering Proxy 4.9 – Featuring Ultra Fast GIF Render

(This is a guest post from Antoni Sawicki aka Tenox)

For those not familiar, WRP is a “proxy” that allows vintage web browsers to surf modern web. Some details in old post and another one.

It works pretty well for casual use, however it always been a little slow, and not only on the old computer side. Screenshot capture and encoding to GIF image has always been little time challenged. As of version 4.6, Hill Ma added a fast gif encoder with optimized palette. This has been a game changer. However the image encoding was still single threaded bottleneck.

In v4.9 I have added a parallel, multithreaded GIF encoder that uses Hill’s fast palette optimization. The improvement is about 100x faster encoding on my 20 core Mac Studio. In addition the file size is also about 30-40% smaller than the original. It’s actually faster and smaller than PNG image! This encoder works both in ISMAP and Simple HTML mode. It finally allows for fast and snappy browsing experience!

In addition I have added support for Brave Browser, DuckDuckGo search, as Google had Captcha nightmare. Finally the default, automatic “headless” User Agent has been replaced with jnrsbsn allowing some rudimentary anti-headless browser detection.

Happy browsing!

VNCFOX – Better way of browsing modern web on vintage machines

(this is a guest post by Antoni Sawicki aka tenox)

TL;DR
Firefox with TightVNC server in a Docker container.
https://github.com/tenox7/vncfox

I often work on vintage Unix Workstations and other obsolete systems. I have a need to browse modern web on old computers somehow. In the past I developed Web Rendering Proxy to help with this. While WRP is awesome as a showcase, and some light browsing, unfortunately it falls little short of being practical for a daily driver.

Like many others I have been cheating and using a VM with a web browser and remotely connecting to it via VNC or RDP. This is rather obvious and mostly works, but a VM is hard to run and upkeep. Takes time to boot and eats resources. You need to customize it, install updates and other nonsense. I wanted something much simpler, leaner and not requiring any maintenance. I also need to run it on ARM based hosts like a Mac or Raspberry PI.

Enter VNCFOX – a Firefox browser with TightVNC server packaged as a Docker container. It’s small, lean, easy to run and there is no boot time and lengthy updates. You can mount Firefox .mozilla profile in a Docker volume to preserve your settings, plugins like uBlock, history, cookies and cache, across container restarts! I also typically bind mount a folder exported over NFS in to /home/vncfox/Downloads.

VNCFOX on HP-UX 9

TightVNC version of VNC is rather crucial, especially for older computers. Without the “Tight” protocol, VNC screen refresh consumes a lot of CPU on the client side and the session is laggy. TightVNC works incredibly smooth. For ease of use I have compiled clients for some older operating systems.

Overall this approach works really well, including stuff like Perplexity/ChatGPT/Claude, Google Docs, Email, even Discord and other web based chat clients. I regularly now post and edit this very blog from a HP-UX workstation!

VNCFOX on IRIX 5.3

The container is dual platform for both AMD64 and ARM64. It can be run even on Mac host with Apple Silicon. Raspberry PI maybe?

Is it future proof? Maybe. Apparently Wayland supports VNC, including Tight protocol. Some day I will migrate the server. But for now x11 vncserver works pretty well.

Useful keyboard shortcuts:

  • F8 – TightVNC Menu – Including clipboard transfer etc
  • F11 – Firefox Full Screen Mode

More info and customization, including dealing with retarded scrollbars:
https://github.com/tenox7/vncfox

DUX SimCity UNIX aka Micropolis on IRIX 6.5, AIX 4.3, 5.1, HP-UX 11.31

(This is a guest post by Antoni Sawicki aka Tenox)

Previously I managed to crack and unlock the demo version of DUX SimCity for UNIX. It worked just fine on the original pre-built platforms, DEC Unix, HPUX, SunOS and IRIX. Unfortunately the IRIX binary is for 5.3 in COFF format and doesn’t work on more modern ELF based IRIX like 6.2 and above. More importantly however, there never has been a release for IBM AIX! Inability to play SimCity on RS/6000 is excruciating. Not to mention several other Unix systems of that time.

SimCity for UNIX Exhibit on VCF West 2024

A few days ago I ran a VCF West 2024 exhibit showcasing this important piece of software history. I got to chat with many people about these shortcomings and decided to see if something can be done about it.

On the right of the picture above, you can see a OLPC XO. This laptop plays an important role of SimCity history. During conception of OLPC, the game has been open sourced under a new name “Micropolis”. This was insanely fantastic endeavor, kudos for everyone involved. Unfortunately the software has been “enhanced” to run on XO Sugar GUI thing, ported to C++ Python and otherwise defaced in several different ways.

Fortunately there survives a very early source code of Micropolis, aka old gen. While GPL and under a new name, has only minor, cosmetic changes compared to the original source code. With some minor tweaking and working around funnies with xlC and MIPSpro compilers, I was able to build old-gen Micropolis for AIX 4.3, 5.1, IRIX 6.5 and HP-UX 11.31 on IA64.

Most importantly however, in the process, I discovered that the original DUX SimCity assets, including TCL/TK GUI cruft was directly usable with just a few small changes in sim.c. Effectively undoing all the changes mentioned in DONE and making it almost the original, except for name. A hybrid GPL Micropolis – DUX SimCity Demo Asset build has been born!

SimCity on AIX 4.3
SimCity on IRIX 6.5

You can download it from here: https://github.com/tenox7/micropolis

Quick thought on the CrowdStrike outage

first off I was surprised when I got up about the reach of this through South Africa, Australia and New Zealand.

its shocking how nobody stages anything just roll directly to production. I know this is CI/Agile so expect more of this, not less.

next is the file everyone is crying to reboot into safe mode to delete. It’s all zeros. Not a valid device driver. Not a valid anything.

how is it getting loaded??

Credit to Sean Nicoara

looking at the stack trace I found on twitter the driver csagent is faulting. Is it actually binary loading a blob into kernel space and executing it, bypassing all checks for valid/signed code by the kernel?

i hope I’m wrong or this is like I can’t even.

time will tell.