Play Stardew Valley natively on 64-bit ARM systems running Linux, with support for SMAPI (modding).
Screenshot by NoaHimesaka1873
- Purchase and download Stardew Valley from GOG. The Steam version should also be supported.
- Make sure that both SDL2 and OpenAL are installed (on Debian-based distros:
sudo apt install libsdl2-2.0-0 libopenal1) - Download the latest version of ValleyCore from releases, and extract the files to the game directory (if the game is directly in your home directory:
cd ~/Stardew\ Valley/game && tar -xzf ~/Downloads/ValleyCore.tar.gz) - Run the patch.sh script (e.g.
~/Stardew\ Valley/game/patch.sh)
Tested on a Raspberry Pi 4 (running at 1.5GHz, box64-rpi4 0.3.4 from Debian repos)
- Startup
- Native: ~40 s
- Box64: ~2 min 30 s
- Time to load a save
- Native: ~30 s
- Box64: ~1 min 30 s
- Performance in game
- Native: ~60 fps, infrequent stutters
- Box64: ~40 fps, frequent stutters
At this time, only Linux is supported.
Yes! No x86 emulation is used.
Since Stardew Valley is written in C# (but doesn't use Unity), it's compiled to portable CIL bytecode instead of a native binary. While the runtime bundled with the vanilla game only supports x86-64, it can be easily swapped out with an ARM64 version.
The architecture is marked in the header as x86-64, resulting in a BadImageFormatException. By patching a single byte, it can be "converted" so that the ARM-native runtime accepts it.
cd into an empty directory and run unzip [installer name here.sh] (replace the square brackets with the filename and path). All of the important game files are located in data/noarch/.
Thanks to NoaHimesaka1873 for contributing the SMAPI support.
The published builds use binaries courtesy of:
- .NET Foundation (under the MIT license)
- Mono Project (under the MIT license)
- LWJGL (under the BSD 3-clause license)
- SMAPI (under the LGPLv3 license)