Changes

Jump to navigation Jump to search
create page
←[[Modding:Index|Index]]

<div style="border: 1px solid gray; border-left: 1em solid gray; padding: 0.5em 1em; border-radius: 5px;">
'''The following describes a future version of SMAPI, and may change before release.'''
</div>

This page explains how to update your mods for 64-bit Stardew Valley. This is mainly for mod authors, though the introductory sections are relevant to players too.

==FAQs==
===What does 64-bit mean?===
The game's ''bitness'' (i.e. 32-bit or 64-bit) affects how much memory it can use. Stardew Valley is 32-bit on Windows, so it's limited to ≈3GB of the computer's memory. That's fine for most players, but those with a large number of mods (or large mods) can experience <tt>OutOfMemoryException</tt> crashes. Changing the game to 64-bit unlocks access to all available memory, which avoids <tt>OutOfMemoryException</tt> errors (if the computer itself has enough memory available).

===Do I need 64-bit?===
You only need this if you play on Windows and experience <tt>OutOfMemoryException</tt> crashes. Otherwise you can just the default versions, which is simpler and will work fine.

===Will SMAPI be 64-bit by default?===
Nope. SMAPI alongside the game by design, it doesn't change any game files. That means it'll stay 32-bit by default until the game supports 64-bit officially (if ever).

===How do I make the game 64-bit?===
The 64-bit version of Stardew Valley is '''experimental and unofficial'''. Essentially the process is:

# download the Linux version of the game;
# run a patch tool which makes changes for 64-bit support;
# install the separate 64-bit version of SMAPI.

A few caveats:

* This is '''still in development''', so you need to compile the code yourself to try it. You can watch [https://github.com/Pathoschild/SMAPI/issues/767 this SMAPI ticket] for updates.
* This is '''experimental'''. The setup is more complicated, and some mods may not work in 64-bit mode yet.
* This is '''unofficial'''. You shouldn't report bugs to the game developers unless you can reproduce them with the normal game version, and the default version of SMAPI will still be 32-bit.

===Is this the modapocalypse?===
Nope. The vast majority of players will use the normal 32-bit version. This will only affect players which explicitly go through the process to make the game 64-bit, and most mods are already compatible with 64-bit mode.

==Breaking changes for mod authors==
===Review <tt>TargetPlatform</tt> constants===
[[Modding:Modder Guide/APIs/Utilities#Constants|<tt>Constants.TargetPlatform</tt>]] indicates whether the mod is running on Android, Linux, MacOS, or Windows. If you use this to distinguish between XNA Framework (on Windows) and MonoGame (on other platforms), you should use the new <tt>Constants.GameFramework</tt> instead.

===Don't target x86===
New mod projects target <tt>Any CPU</tt> by default. If you explicitly changed it to <tt>x86</tt>, you'll need to change it back to <tt>Any CPU</tt> to avoid errors for 64-bit players.

To fix affected mods:
<ol>
<li>In each mod's <tt>.csproj</tt> project file, remove these lines if present:
<syntaxhighlight lang="xml">
<Platforms>x86</Platforms>
<PlatformTarget>x86</PlatformTarget>
</syntaxhighlight>

If the mod uses the old project format (i.e. there's no <code><nowiki><Project Sdk="Microsoft.NET.Sdk"></nowiki></code> at the top), see [https://docs.microsoft.com/en-ca/visualstudio/ide/how-to-configure-projects-to-target-platforms ''How to: Configure projects to target platforms''] to set the platform to <tt>Any CPU</tt>.
</li>
<li>In the <tt>.sln</tt> solution file, replace all instances of <tt>x86</tt> with <tt>Any CPU</tt>.</li>
</ol>

[[Category:Modding]]
translators
8,437

edits

Navigation menu