Skip to content

a9ix/ValleyCore

Repository files navigation

ValleyCore

Play Stardew Valley natively on 64-bit ARM systems running Linux, with support for SMAPI (modding).

image

Screenshot by NoaHimesaka1873

Installation

  1. Purchase and download Stardew Valley from GOG. The Steam version should also be supported.
  2. Make sure that both SDL2 and OpenAL are installed (on Debian-based distros: sudo apt install libsdl2-2.0-0 libopenal1)
  3. 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)
  4. Run the patch.sh script (e.g. ~/Stardew\ Valley/game/patch.sh)

Performance

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

FAQ

Does this work on Windows/macOS?

At this time, only Linux is supported.

Is this really native?

Yes! No x86 emulation is used.

How does it work?

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.

Why does the main dll have to be patched then?

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.

The GOG installer doesn't run, how do I extract the game files?

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

Thanks to NoaHimesaka1873 for contributing the SMAPI support.

Copyright

The published builds use binaries courtesy of:

About

Play Stardew Valley natively on ARM (w/ SMAPI modding support)

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages