AmpereComputing/Steam-on-Ampere

Games that run via Steam / Proton on Ampere using this guide?

geerlingguy opened this issue · 33 comments

Hello there!

With the caveat that I know the ADLINK Dev Platform is not intended to be a gaming rig—but knowing that I love bending things to my will if I think they can do it... I was running through this setup process, and could get Steam running easily on my system using the instructions (yay!). I've tried a number of games, and they download, Steam launches them, the Vulkan graphics optimization runs, then after a while, it seems like the game stops trying to launch and Steam's UI goes back to 'Play' for the game.

So far I've tried:

  • Halo: Master Chief Collection
  • Need for Speed: Hot Pursuit
  • Portal 2
  • Counter Strike: Global Offensive
  • Quake III Arena

All of them did that same routine, though CS:GO launched something full screen very briefly (just a black window), then went back to the Steam UI and the 'Play' button. Quake III Arena would launch but then the console would pop up saying it couldn't find OpenGL.

Are there any games from Steam that have been successfully tested, or does this repository's guide mostly focus on getting Steam running, and not any particular games?

I would also love to test out any other stuff using box64/box86, any suggestions?

All those games are 32bits. I don't think NVidia ARM driver have 32bits support. On Switch and other NVidia SBC, it's a problem and require the use of things like VirGL to channel 32bits apps graphics call to the 64bits driver.

You should try some Unity3D game with linux support. Those should be 64bits.
Games like "Mini Metro", "SUPERHOT", "Horizon Chase Turbo", to name a few. should work.
Games using Unreal Engine, like Obduction, might work, but they will use Proton.

@ptitSeb - Oh nice! I have tried some more games:

Game Works? Notes
Halo: Master Chief Collection No Launched to a black screen then showed tiny 'Fatal error!' popup
Need for Speed: Hot Pursuit No N/A
Portal 2 No N/A
Portal No N/A
Counter Strike: Global Offensive No N/A
Quake III Arena No Opened until console appeared with an OpenGL not found error
SUPERHOT Yes Worked great, can't see fps, but was solid on my 60fps monitor with no glitching throughout.
Obduction No Launched to a splash screen then silently crashed.
Horizon Chase Turbo Yes Played okay (a little choppy, maybe 15-30 fps), exited during the middle of the race on one run.
Doom (2016) No Almost launched but then "FATAL ERROR: wglChoosePixelFormatARB not available" appeared
Batman: Arkham Night No N/A
Kerbal Space Program Yes Ran great, took a minute or so to load up the first time.
Minecraft (Java) Yes Couldn't get RTX with the version I got installed via pi-apps. But version from Google Play store ran excellent.

And I can confirm audio works fine through the system. OBS is using NVENC hardware encoding, so I am able to game and record the play at 60fps without an issue.

There's also native open source games like SuperTuxKart, which plays with all settings maxed out at 120 fps all day (it is not really great at stressing a 4070 Ti lol).

I add some success before with Doom 2016 reboot (but that was on AMD graphic card). Using vulkan renderer.

I got also FEZ working, "Bridge Construction Portal", "Doom 64" also. I had Evoland Ledendary edition running, but I don't remember if it's 32bits or 64bits.Kerbal Space Program might run also (it used to work). The Talos Principle might work, but I don't remember if it's 64bits. Torchlight II should works fine. Train Valley 2 too. And the Turok remake too.

You can also have a look here https://github.com/ptitSeb/box86-compatibility-list/issues or https://box86.org/app/ (same data, different rendering) for a view of stuff tested be the community.

I know I still have to work on compatibility... it's a work in progress. Also, the tiny "Fatal Error!" popup; I think that's an issue with gstreamer, and I'm currently working on that, but I probably wont have a fix before a couple of week...

0xJoey commented

At ADLINK, we've also tested some games:

Game Works? Notes
Deep Rock Galactic Just a black screen after loading. No crash or anything
Enter the Gungeon Crashes after a short loading period
Portal 2 Boots into main menu, but crashes when loading a level
The Outer Wilds Works through proton, but is too slow to play
Overcooked Works through proton, but is too slow to play
Overcooked 2 Works through proton, but is too slow to play
Terraria Can be a bit choppy at times
Celeste A bit choppy sometimes, but very playable
Don't Starve Works well
Rocket League Works well
Factorio Works well
Slay the Spire Works well
Castle Crashers Uses proton, works well

Just tested Doom (2016) and Batman: Arkham Knight, and neither would launch—Doom got to the point of starting but ran into an OpenGL error, and Batman did the thing where it goes a while, then just drops back to Steam and the 'Play' button shows up.

My guess is given a bit more time I may be able to get at least a few of these games running, as they are reportedly working on RK3588 according to the links @ptitSeb posted above.

note, I never tried Doom opengl, I alwayed ran the vulkan binary.

Also got Kerbal Space Program and Minecraft (installed Java version via Google Play via pi-apps) running well, KSP was a little sluggish here and there. Couldn't see a quick way to get RTX working in Minecraft, something I can look at in the future...

I have fixed a few stuffs on box64 today and yesterday. You might want to update box64 and retry the 64bits games that were not working. Some might start now.

Also, note that with proton, gstreamer might be used for windows medias, so make sure you have gstreamer and base+good plugins are installed for aarch64, box64 will use them when needed.

@ptitSeb - Oh nice, thanks! I will take a look.

@ptitSeb - I made sure I was on the latest version (see also: #12), and re-tested everything. Obduction now gets past the 'Fatal error' popup (it doesn't show), and then it even shows an Obduction splash screen... but then goes back to Steam and the running button changes back to 'Play'. Other games are the same.

I received a machine, and I equiped it with a GTX 1050 (only NVidia thing I have available right now). I started testing with "Hue" but it does crash. I'll check on my other machine if it crashes too there and will work on looking at wy so many games crashes while they should.

So, I haven't found the issue with Hue on Steam. Seems to be related to the amount of memory (some 16GB+ message appeard on my logs while debugging it).

I tried factorio, RimWorld and Formula Retro Racing (not on steam) and they all launched (altho FRR is not stable).

I added a ADLINK profile on both box64 and box86, but they need to be build from source for now (it's just an optimized build for the CPU, the generic Arm64 build works fine).

I added some more wrapped libs and a few fixes (never used Ubuntu 20.04 with box64/box86 before) and now I had Stardew Valley to run (still not on steam, I need to test on steam).

also, note that I had to install libxpresent1 (also on armhf) to run a standalone version of wine, so it might be good to install it also for steam.

I just tried FEZ on Steam, but it crashes. It crashes because the 32bits version is launched, and it doesn't run with box86. I have to debug that, but because there is no 3d driver for 32bits (only llvmpipe/lavapipe in 32bits with NVidia hardware), the 64bits version is always prefered. It runs fine when launched from command line (binary is FEZ.bin.x86_64).

I have fixed FEZ 32bits issue.

I noticed running Terraria from Steam that the system SDL2 is very old (because of Ubuntu 20.x). It makes Terraria not running (because box64 prefer Native libs to Emlated libs, the recent copy from Steam runtime is not used).
To easily fix the issue, I created a ~/.box64rc file with this content;

[Terraria.bin.x86_64]
BOX64_EMULATED_LIBS=libSDL2-2.0.so.0

Forcing Terraria to prefer the emulated version, and it ran after that. It might be the solution for some other game.

@ptitSeb - I've been doing all my testing on 22.04 (FYI).

Oh ok. Maybe I'll sudo apt dist-upgrade then, because 20.04 is really old

Some, some info:

  • I have fixed and enhanced gstreamer wrapping in box64, so more stuff should work
  • I have fixed a few opcodes in box64 too, and also the way box64 report processor/core count.
  • I have found that writing to device mapped memory needs to be aligned on ARM64. I had some strange bus error that puzzled me: they are due to unaligned writing to nvidia card memory. I have added a workaround o trap the bus error and redo the write byte by byte when this happens. It's not ideal as it slows down what is supposed to be a fest write to graphic card memory. But at least it fixed the crash. I'll think of something better later.

All in all, it should have fixed a few things and improved compatibility. But there are still some generic issue with Unity3D game that is present, preventing many games to still run.

Doom 2016 should work now. At least I got the vulkan version to work fine with latest version of box64 (at 60fps on 720p on a modest 1050Ti).

I'm continuing testing and improving things (I saw your video btw with the Adlink and Steam, nice one :) ).

I could play: Darkest Dungeon, Vampire Survivors (played several hours already!), Hades and Subnautica (all from Steam).

@ptitSeb - Thanks, and indeed, I am extremely grateful for your work! I have had to put away my workstation for the rest of this month as I'm prepping for an office move. But I'm eager to get it back up in my new space and test again!

Ah moving, for more space, and more wall plugs...

In the mean time, I got some more games runnig: The Witness, The Talos Principal and Doom Eternal on Steam.
I also got The Witcher 3 complete edition to works, but the GoG version (I don't have this game on Steam), so this one needs a local installation of Wine (and with NVidia card, I suggest Wine with Wow64 only, so 64bits only version, like the one that can be found on pi-apps)

So, I have finally update my graphic card on the ADLink Ampere, from an old (and dying) 1050TI to a brand new RTX 4060.
So first thing I noticed is that I was missing a vulkan extension. I have just added it.

image
Works fine now: The Witcher 3 (GoG version), dx12 version, running with RT preset (notice the grass reflection on the sword blade), and pretty smooth at 1440p. No DLSS was availble, not sure if it's a wine limitation or some missing vk extension / symbol of box64.

@ptitSeb - And I've just about finished moving into my new space. Once I get settled in, I'll get the workstation booted back up and re-test as many games as I can :)

A quick update: with latest box64, I could run Halo Master Chief Collection (but could not attach my steam account to Xbox account, I did that on a Windows machine and the Steam Clound did the rest) and No Man Sky (a bit long loading time, but gorgeous after that).
I also did a small YT video for the release of box64 v0.2.6 and box86 v0.3.4 with Doom Eternal, Batman Arkham Knight and a few other games...

Not sure if you still following this. But with latest box64/box86, I have many new games running on steam. Now XBox account linking work for microsoft games, so no more issue on Halo Masterchief Collection or Forza Horizon 4, wich works fine.
Crysis Remastered works, and so is Rage (need to use +r_swapInterval 1 +jobs_numThreads 2 +vt_maxPPF 64 +g_fov 90 this setting to avoid stutering). Dave the Diver also works fine, and GRID Autosport too. God of War works the 1st time you launch but then crash on 2nd launch,n that's very strange and need some investigation.
Not sure I mentionned that before but Quake2 RTX also run, with full RTX effect (but Portal RTX doesn't, because it's a 32bits app).

I've tested Skyrim on my Ampere Asrock board. It's about the only Steam game I can get running at the moment. It has some graphical flickering, but I have not had it crash on me yet. I'm running Ubuntu 24.04 and installed quite a few armhf 32bit libs to remove some of the errors in the console. I'm still having a libsteam.so error on most of them that it cannot find it, but I'm not here to threadjack. The Box32/64 work is simply AMAZING ptitSeb. I wish I knew more programming to help out. I'm running minecraft through Prism Launcher, works pretty good.
Fallout 3, Fallout 76, and The old battlefront 2 don't seem to work if there is a list of games somewhere. I have more to test still.

I've tested Skyrim on my Ampere Asrock board. It's about the only Steam game I can get running at the moment. It has some graphical flickering, but I have not had it crash on me yet. I'm running Ubuntu 24.04 and installed quite a few armhf 32bit libs to remove some of the errors in the console. I'm still having a libsteam.so error on most of them that it cannot find it, but I'm not here to threadjack. The Box32/64 work is simply AMAZING ptitSeb. I wish I knew more programming to help out. I'm running minecraft through Prism Launcher, works pretty good. Fallout 3, Fallout 76, and The old battlefront 2 don't seem to work if there is a list of games somewhere. I have more to test still.

Ah good! What graphic card do you have? On my side, I run a lot of stuff already, but be sure to use latest box86 &nd box64 release. There is a list of running app here: https://box86.org/app/ (each app is an issue ticket here: https://github.com/ptitSeb/box86-compatibility-list ). Also, my last yt video shows a few games running on my ampere there: https://www.youtube.com/watch?v=kkDAYEyeBF8
In case of issue, you can still open ticket (or check existing) on box86 or box64 repos.

I have an Nvidia T600 with an ampere Q64-22 cpu. The gpu is pretty weak, I'm hoping to get a bigger one here soon, but it does more than I thought. I'm using the Box debs from ryan fortner's repo.

@ptitSeb - I'm taking another crack at a few games today — but one thing I noticed while waiting (forever, seemingly) for some of the games to download through Steam: if I let the computer shut off the display (running Ubuntu 22.04), then move the mouse to wake it up, and log back into my session (entering my password), after a few seconds Steam quits out and I have to relaunch it.

@ptitSeb - I'm taking another crack at a few games today — but one thing I noticed while waiting (forever, seemingly) for some of the games to download through Steam: if I let the computer shut off the display (running Ubuntu 22.04), then move the mouse to wake it up, and log back into my session (entering my password), after a few seconds Steam quits out and I have to relaunch it.

I don't have that on my side. I let Steam download stuff overnight, and my screen turned off durring the night. When I get it back on, it was still working.
Note that I have removed the need to login again, as I use this machine at home only and the lock is just anoying.

I'll try to debug this later, it should not crash there I guess.

Also, I made a new release of box64, and a new video on the Ampere: https://www.youtube.com/watch?v=eVWkcusaGAg