Hi, I hope the next steps help to somebody.

After the project «n64decomp» finished lots of forks emerged. One of them is the SM 64 PC Port which have as aim to be a port of n64decomp for modern devices.

Some of these ports was for the Switch console and become real on the fork fgsfdsfgs that fork seems to be staled, Now AloUltraExt have resumed the work and add some features and converged the latest code with latest refresh of the decomp project.

Switch Building Process

If you read the guide:

https://github.com/fgsfdsfgs/sm64pc/wiki/Compiling-for-Nintendo-Switch

The steps are loosely explained, but they don't work well for me, so I decided read a lot of documentation and the official SM64 thread completely.

I choose to use for this set of instructions the MSYS environment, which for me is easy to setup and as it is an enclosed environment which is not affected by other software on your computer, I mainly use Windows, but as MINGW is a Cygwin environment I think the steps could be easy extrapolated to Linux environments.

First you need:
Download the latest version from: https://github.com/msys2/msys2-installer/releases

Install the version corresponding to your Operating System (64 or 32 bits).

Accept the defaults in installation program of MSYS2 once you finish the installation you will have shortcuts for MSYS2, MinGW32 and MinGW64. MSYS2 is used to compiling POSIX binaries for Linux from Windows.

MinGW32 & MinGW64 compile Native Windows binaries using a linux toolchain (gcc, bash, etc.)

Launch MSYS2 (MinGW64): shell:
a.png

b.png



And on it execute the command:
pacman -Syuu
several times until you get the message:
"there is nothing to do"
. Sometimes you will need to restart the environment.

After you have the MSYS environment working you need to

Firts you need to edit the
pacman.conf
on
c:\msys64\etc\


And add the next lines at end of it:

Code:
[dkp-libs]
Server = https://pkg.devkitpro.org/packages

[dkp-windows]
Server = https://pkg.devkitpro.org/packages/windows/$arch/
Then Import the cypher keys of DevKitPro

Code:
pacman-key --recv BC26F752D25B92CE272E0F44F7FD5492264BB9D0 --keyserver keyserver.ubuntu.com

In my case the command fail because the server didn't send the correct file:
Code:
gpg: keyserver receive failed: General error
==> ERROR: Remote key not fetched correctly from keyserver.
I did save the next content on a file called pubring.gpg: ()

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
gMNPLIXYoOlmRRK2jQy0uZw=

Then import it manually:

Code:
pacman-key --import "FULL_PATH_TO_FOLDER_CONTAINING_pubring_gpg"
By example:

Code:
pacman-key --import "C:\downloads\DevKitPro"
NOTE: the path to the file must be full and DO NOT end on the «\» character

If you don't get the error continue the process:

Next sign locally the key:

Code:
pacman-key --lsign BC26F752D25B92CE272E0F44F7FD5492264BB9D0
Then verify the key is working well:

Code:
pacman-key -l BC26F752D25B92CE272E0F44F7FD5492264BB9D0
pacman-key -l F7FD5492264BB9D0
You should get a response just like:

Code:
pub  rsa4096 2018-02-28 [SC]
      BC26F752D25B92CE272E0F44F7FD5492264BB9D0
uid          [  full  ] Dave Murphy (WinterMute) <[email protected]>
sub  rsa4096 2018-02-28 [E]
Install DevKitPro Keyring

Code:
pacman -U https://pkg.devkitpro.org/devkitpro-keyring.pkg.tar.xz
Now verify and update packages database:

Code:
pacman -Syuu --noconfirm

DevKit-Env
The DevKitPro's package
devkit-env
install a shell which setup the different environment variables needed by homebrew to be build.
you can install the package with the command:

Code:
pacman -Syu --needed --noconfirm devkit-env
Once you install that package the environment must be intialized, you can close and reopen the MINGW window or you can run the command:
Code:
source /etc/profile.d/devkit-env.sh


Install prerequisites

In a MinGW64 shell (or MinGW32 if you have a Windows 32 bit edition, why will you do today?). Be sure the prompt shows MINGW64 or MINGW32 if not you started the wrong shell, close it and open the right one.
b.png



Please execute the next command, several times until you get the message "there is nothing to do", you can be asked to restarts the MINGW64 environment few times:
pacman -Syuu


Then execute the next commands:

pacman -Sy --noconfirm base-devel git make mercurial python3 subversion unzip autoconf automake libtool pkg-config autoconf-wrapper mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-glew mingw-w64-x86_64-SDL2 mingw-w64-x86_64-toolchain mingw-w64-x86_64-SDL

pacman -S --noconfirm switch-dev devkitA64 dkp-toolchain-vars libnx switch-tools switch-mesa switch-libdrm_nouveau switch-sdl2


Once the installation end, verify the MSYS2 database again:

pacman -Syuu


Clone the repository, using the
--recursive
option in order to clone all the trees.

git clone --recursive https://github.com/AloUltraExt/sm64ex-alo


The repository is cloned to a subfolder of the "Home" directory of MinGWXX Shell, on the prompt "~" means your home directory.

You need copy a legal copy of the original ROM in the cloned directory, it must be in "Big Endian" formatted and called:

./baserom.us.z64


copy the file to the path
c:\msys64\home\<USERNAME>\sm64ex-alo


If your ROM isn't on Big Endian format, use https://hack64.net/tools/swapper.php to convert it.

You must be sure the
$PATH
variable include the mingwXX binaries.


Execute the command
Code:
echo $PATH
And check the
/mingw64/bin
and/or
/mingw32/bin
are on the path, if they are not you can add using the commands:

For Windows 64 bits use the command:
export PATH=/mingw64/bin:/mingw32/bin:$PATH


And for Windows 32 bits use:
export PATH=/mingw32/bin:/mingw64/bin:$PATH



Code:
source $DEVKITPRO/switchvars.sh

Now the environment is ready to build Switch version using any combination of the options you like, by example:
Code:
cd ~/sm64ex-alo
make TARGET_SWITCH=1 BETTERCAMERA=1 NODRAWINGDISTANCE=1 TEXTURE_FIX=1 -j4
Will activate a better camera handling, enable the drawing of far objects on the game, Fixes some texture related bugs (by example smoke) and by last uses 4 cores to run the build process.

After the process ends the NRO is on the build subfolder.

BUILD OPTIONS
Build optionDefaultPossible valuesDescription
VERSIONusus, eu, jp, shWhich ROM to use. The selected ROM has to be in the repo folder with the name baserom.$VERSION.z64. sh is currently broken.
TARGET_BITS32, 64,TARGET_BITS=n appends some compiler flags for an n-bit build. If the value is empty, the option does nothing, assuming your native toolchain will set everything up by itself. Use this only if you're having trouble otherwise.
TARGET_RPI00, 1If 1, select optimal settings for Raspberry PI hardware. See the main article (https://github.com/sm64pc/sm64pc/wiki/Helper-compiling-script-for-Raspberry-Pi) on that.
TARGET_WEB00, 1If 1, build Emscripten version. See the main article (https://github.com/sm64pc/sm64pc/wiki/Compiling-for-the-web) on that.
WINDOWS_BUILD0, 1If 1, build for Windows. Usually set automatically if building on Windows.
OSX_BUILD00, 1If 1, build for OSX.
WINDOWS_CONSOLE00, 1If 1, append -mconsole to Windows CFLAGS, making a console window appear while the game is running. Can be useful for debugging purposes.
DEBUG00, 1If 1, build with debug symbols and default optimization level. Otherwise build with -O2.
RENDER_APIGLGL, GL_LEGACY, D3D11, D3D12Select rendering backend to use.
GL corresponds to OpenGL 2.1 (gfx_opengl.c),
GL_LEGACY corresponds to OpenGL 1.3 (gfx_opengl_legacy.c).
Direct3D backends will also force WINDOW_API to DXGI.
WINDOW_APISDL2SDL2, DXGISelect windowing backend. GL renderers force SDL2 and D3D renderers force DXGI for now, so you don't need to specify this.
AUDIO_APISDL2SDL2Select audio backend. There's only one right now.
CONTROLLER_APISDL2SDL2Specify list of controller backends to use. There's only one right now.
BETTERCAMERA00, 1If 1, build with analog camera support (uses Puppycam).
NODRAWINGDISTANCE00, 1If 1, build with disabled draw distance (every object is active at all times). May affect gameplay.
TEXTURE_FIX00, 1If 1, enable various texture-related bugfixes (e.g. fixes the smoke texture).
EXT_OPTIONS_MENU10, 1If 1, enable Options menu. Accessed from the Pause menu by pressing R.
EXTERNAL_DATA00, 1If 1, load textures and soundbanks from external files. Allows you to use texture packs. The default data is copied to a res folder next to the produced executable. (On the console the folder goes on the root of SD Card)
DISCORDRPC00, 1If 1, enable Discord Rich Presence support. Only works on x86_64.
TEXTSAVES00, 1If 1, use INI-based save format instead of binary EEPROM dumps. Experimental.


NEW BUILD OPTIONS ADDED BY sm64ex-alo REPO
Build optionDefaultPossible valuesDescription
QOL_FIXES00, 1QOL improvements
QOL_FEATURES00, 1QOF improvements
MOUSE_ACTIONS00, 1On desktop versions, enable mouse support, Only works on SDL modes, DirectX is WIP.
EXT_DEBUG_MENU00, 1Enable Simple Debug Menu
PORT_MOP_OBJS00, 1Kazel's More Object Patch enable



After the NRO file is created, you can use SAK Switch Army Knife to make a NSP forwarder installable on the HOS.

Or better, use nsp-forwarder.n8.io to create a customized Forwarder.


Troubleshooting
  • If you get the error gcc: command not found or make: gcc: No such file or directory you do not install all needed packages or run the wrong Shell, be sure of running «MINGW32» or «MINGW64» and what that is pointed on the prompt in purple.
  • If the ROM is missing or wrong format/version you get the error Failed to open baserom.us.z64! Verify the correct ROM at the c:\msys64\home\<username>\sm64ex.folder.
  • If you get the error make: *** No targets specified and no makefile found. Stop. You are on the wrong folder the last make command should be run from c:\msys64\home\<username>\sm64ex folder.
  • Be sure of get the responses Target: i686-w64-mingw32 or Target: x86_64-w64-mingw32 when you run the command gcc -v if else other is shown on screen you install the wrong gcc package or run MSYS shell, remember the process should be run on «MINGW32» or «MINGW64» shells.