Living with ARM for a week

So after the crazed purchase I made a few weeks ago, I returned from Japan, and was able to unbox and use the machine I’d been wanting for a while, a non x86 Windows laptop!

The NovaGo has a Snapdragon 835, and my phone, the ASUS ROG phone has the 845. Yes for this week, my cellphone actually has the stronger processor than my computer. Honestly this is almost an unthinkable situation! Although I haven’t been using my phone as a desktop substitute this week. It’s amazing how MS screwed up 10 on the phones, and Continium.

By default it comes crippled with this ‘S’ mode Windows, which hearkens back to the Windows RT launch, with the difference that it’s a quick trip to the application store to unlock Windows 10 Professional. It’s a free download as it should be, and it doesn’t even require a reboot!

Build quality isn’t so bad, the screen folds all the way back to make the machine into a ‘tablet’ although I don’t like that mode so much, it just feels wrong to wrap a keyboard around a monitor. However if you have rambunctious young kids, it’s great as when someone went running by me flailing their arms around like a while animal, when they struck the laptop the screen could easily fold back 180 degrees. Yay.

My first thing to do after setting up Office and VMWare VDI was to install the Linux subsystem, and Ubuntu. it’s exactly the same as it is on x86_64, which is great. And this let’s me have the best of both worlds, just like x86_64. As much as I dislike stumbling around with that aborted child of Pascal & Fortran (Python) at least I can run it under (mostly) Linux to get something close to like the production environment.

The C/C++ compiler is actually all cross tools. I wanted CLI only stuff because I like torturing myself, and it required a few GB of downloads. The good news is that the latest Windows 10 SDK does support GDI/CLI apps, so no crazy SDK hacking required, unlike back in the Windows RT days. Oddly enough the Taskforce 87 interpreter runs fine, but nothing else does.

I did a horrible job at hacking up SDL 1.2 to at least run (kind of, the audio doesn’t work, and it’s all WinDB *EDIT I got it fixed!!!) I got a few things up and running, including DOSBox and FrontVM. One thing that greatly helps is that i386 binaries ‘just work’. Honestly you wouldn’t even know you are running them when you are. Which made hunting down the ARM64 version of Chromium Edge kind of difficult to find. There really needs to be a more apparent way to tell them apart, if anything for battery efficiency.

As pictured, SQL Server 4.21a runs just fine, again you wouldn’t even notice. Same for Visual C++ 1.0 & FORTRAN PowerStation 1.0.

Again the audio in my crap SDL build doesn’t work, so DOSBox is silent, and without Direct X, the text mode is tiny. Oh also, there is no OpenGL in this version of Windows dev kit for some reason. Running ssystem is ungodly slow. Also the default optimizations seems to be Os, optimize for space, and on this ASUS I have to say /Ox is way way faster. DooM is quite playable on DOSBox when build with /Ox, unlike /Os.

For me, I spend most of my day to day in Office, and VMWare VDI, connecting to secure networks. So I’m just one step above a terminal. Which I guess is kind of sad, but this machine more than fills that roll for me. The 120GB of storage is tight. This isn’t a development machine persay, nor is it something to download tonnes of data to, it’s a lightweight machine where it’s strength is the built in 4G modem, and when running ARM software the longer battery life. To me the biggest drawback is that the keyboard isn’t backlit. Even though I touch type, I didn’t realize how much I’d grown used to it for casual use.

I guess it’s a hard toss up from this and a PINEBOOK Pro, I think most readers here would prefer the Pinebook, for all it’s openness, although I still like the idea of being able to copy over the Win32s version of Lemmings, and it just running. For me I kind of like this thing, although once I switch back to an x86_64 with more memory, better GPU and disk options, maybe this just feels like some kids toy.

Neko98 ARM!

I don’t know how I didn’t think of this, but I also ported Neko98! Although the STL is having an issue with the ‘control panel’ so Neko is on autopilot.

This app can’t run on your PC

As for the emulation, it is 32bit only, so expect to see this stupid message quite a bit. The neckbeard is a nice touch though.

Also built into the thing is a cell modem. I guess it’s really not a surprise as the 835 really is a cellphone SOC. I have a ‘wifi egg’ as they are called here, a WiFi hotspot with unlimited internet from CLS, which is on the old 4G network. I popped the SIM in, and it picked up the APN settings on it’s own and I was connected in under a minute. I have to say that it’s about time that SIM cards have this stuff programmed into them for a plug & play experience. And thankfully the ASUS is unlocked, although from what I understand these were sold in the USA bundled with some cell service plans.

For anyone with one of these rare machines that cares to play along you can find my built stuff on my ‘vpsland’ archive:

https://vpsland.superglobalmegacorp.com/install/Windows10-ARM/

And the f2c/dungeon build along with the C/C++ compiler is in the aptly named dungeon-2.5.6-ARM(32bit)-win32.zip file.

9 thoughts on “Living with ARM for a week

    • I’m going to try to rebuild SDL with Direct X later on. Maybe that’ll fix the issues at large. The error message itself is kind of interesting:

      Can’t use audio: waveOutOpen(): The specified format is not supported or cannot be translated. Use the Capabilities function to determine the s

      I guess the Qualcomm Aqstic does things… differently.

  1. I think (can you confirm?) that the current Visual Studio build tools ship ARM64 compilers that are really x86-to-ARM64, so they should run on the device and generate native binaries.

    As far as telling binaries apart, I built support into sdir to display PE architecture with -dar (see http://www.malsmith.net/sdir/display/) which should be a fairly efficient way to do this at scale. While messing around with a Windows ARM device in the store, the funny part was doing this on running processes – taskmgr unhelpfully indicated “32 bit” processes without architecture, but the telltale giveaway was the huge RAM consumption of x86 emulation. The system includes arm32 and x86 notepads for example – run them both and the x86 one takes about 4x the memory.

    Still, I’m curious how you find this over time. The 835 is a fairly early model. I’d like to try this too, but can’t really imagine giving up x86 due to the benefit of being able to run/virtualize any previous x86 OS, whereas arm64 is really limited to Windows 10…

    • Actually there is 4 notepads! One in \Windows, the others are SysArm32 ,System32 & SysWOW64.

      I’ll have to check back on the rest later. Also there is no Hyper-V, but there is a ‘Virtual Machine Platform’. Whatever that is.

      • Hyper-V is there for 850 and later. 835 firmware doesn’t support hardware virtualization…

        For the Hyper-V feature to create VMs properly, note that it’s currently in Insider Preview, and will ship in Windows 10 version 2004.

        Virtual Machine Platform is a reduced feature set that is enough for security features and the WSL2 virtual machine, and getting other things to run on it isn’t that fun.

        • I guess at least that means I’ll get WSL2, although man that sucks. I guess there is a reason why these things were so cheap.

          Although I own a Surface RT/RT2 and a Surface Pro 3, I really hate the formfactor. The one thing I love about the Asus is the laptop formfactor. I don’t care much for the ‘flip monitor/tablet’ thing but I’d be happy with even cheaper devices that didn’t try to be tablets.

          I love the convenience of the NovaGo, it basically is a large cellphone, and adding in the SIM & a 400GB SD card sure helped things a lot.

          The real limitation of the Asus NovaGo will be the 6GB of RAM.

          Where is the ARM based desktop motherboards that’ll run Windows 10? As much as I love cheap Chinese Xeon boards, you’d think that for those people terrified of a $20 jump in their power bill would be happy to pay upwards of $500 for an ARM motherboard that you could slap in 32+GB of RAM, big disks and an NVIDIA GPU…

          • Hello,

            Forget about WSL2 for SD835*, it will almost certainly never come. WSL2 relies on a lightweight virtual machine using Hyper-V under the hood.

            WSL2 on ARM64 shipped as a part of Windows 10 version 1903 already too.

            For ARM64 desktop platforms with Windows, stay tuned…

            * SD835 could technically support EL2/virtualization, but for that generation, Qualcomm chose to run their own firmware there. Qualcomm could rearchitect it, but it’ll break compatibility with existing drivers among other things…

            • That’s a bummer.

              I saw a surface X today in Akihabara. 127,800 yen. USED. Granted electronics are more expensive in Japan, but it’s just too much. And I hate that kickstand thing so much for a daily driver. The Asus is annoying lacking a backlit keyboard, I don’t know why I miss that, when I TouchType… I guess it’s instantly being able to find the home row?

              I guess it’s funny that I have both RT models, and a pro 4.. Or is it a 5? I forget, I never really use it once I got vdi and remote desk access.

              The kickstand just isn’t good for working on a bed, a car or train. Forget about a plane .

              I hope one day we get arm boards with DDR and pcie_16 slots. You know, like a real computer. So I can load it out with 256gb of ram, a few tb of storage and a real GPU.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.