Building SM64 for Nintendo Switch from sm64ex-alo Repository

Hi, I hope the next steps help to somebody, first forgive my bad English, is no my native language.

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 @AloXado320 have resumed the work with the repository AloUltraExt and add some features and converged the latest code with latest refresh from 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.





Now you can start the building process:


First install the 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.
a.png
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 --needed --noconfirm

Then execute the next commands:

Code:
pacman -Syuu --needed --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 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 --needed --noconfirm

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

Code:
cd ~/
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" format.

For each version (jp/us/eu/sh) for which you want to build an executable, put an existing ROM at ./baserom.<VERSION>.z64 for asset extraction.

By example, for US version:
./baserom.us.z64
that file should have this Checksums:
MD5: 20b854b239203baf6c961b850a4a51a2 *baserom.us.z64
SHA: 9bef1128717f958171a4afac3ed78ee2bb4e86ce *baserom.us.z64
SHA256: 17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91 *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.

Now the environment is ready to build Switch version using any combination of the options you like, by example:
Code:
cd ~/sm64ex-alo

For now due some changes on GCC the file tools/armips.cpp need to be changed and add #include &lt;cstdint&gt; for that the PR 93 is created, you can manually edit the file or apply the PR, to apply the PR you can execute the commands:
Code:
git fetch origin pull/93/head
git checkout -b PR93 FETCH_HEAD


Now you are ready to build the code, executing the code:
Code:
make TARGET_SWITCH=1 BETTERCAMERA=1 NODRAWINGDISTANCE=1 TEXTURE_FIX=1 HIGH_FPS_PC=1

Will activate a better camera handling, enable the drawing of far objects on the game, Fixes some texture related bugs (by example smoke), AND 60 FPS patch.
sadly the actual repo is not so compatible with multiple cores, so please do not use -j parameter.
After the process ends the NRO is on the build subfolder.
Code:
Build succeeded.
==== Build Details ====
File:           build/us_nx/sm64.us.f3dex2e.nro
Version:        us
Target:         Nintendo Switch


After a successful build you should have file ~\sm64ex-alo\build\us_nx\sm64.us.f3dex2e.nro

IF YOU USED THE EXTERNAL_DATA parameter, you also get the the folder ~\sm64ex-alo\build\us_nx\sm64ex_res, and inside the ~\sm64ex-alo\build\us_nx\sm64ex_res folder is the file base.zip archive, which one have inside the folders: gfx & sound:
1740673388181.png


Now you need to copy to a folder (By example SM64) on SDMC:/Switch the ~\sm64ex-alo\build\us_nx\sm64.us.f3dex2e.nro and the ~\sm64ex-alo\build\us_nx\sm64ex_res folder (if you used EXTERNAL_DATA parameter)

Alternatively you can extract the base.zip archive for a quicker loading. On my test I did it so I ended with the tree:

Bash:
SMDC:
    Switch
        SM64
            sm64.us.f3dex2e.nro
                sm64ex_res
                    gfx
                       .......lots of files and folders
                    sound
                       .......lots of files and folders

If you like to add texture packs to the build you put them on the SDMC:/Switch/switch/SM64/sm64ex_res path, thanks to @JAGSTAX for the tip.

By example, a set of HD resource files are on the post https://gbatemp.net/threads/buildin...om-sm64ex-alo-repository.652092/post-10576779

a copy was uploaded to https://gbatemp.net/download/hd-pack-resource-for-sm64ex.39135/



Additional Note: For Build Windows version you can run the command without the TARGET_SWITCH=1 parameter.


Trying on a Ubuntu Virtual Machine and worked just fine:
1739733344609.png

For Ubuntu I had to install DevKitPro (https://devkitpro.org/wiki/devkitPro_pacman)

Then install the packages:

Bash:
sudo apt install git make python3 subversion unzip autoconf automake libtool pkg-config autoconf cmake

pacman -Syu --needed --noconfirm devkit-env switch-dev devkitA64 dkp-toolchain-vars libnx switch-tools switch-mesa switch-libdrm_nouveau switch-sdl2

Then
Bash:
cd ~
rm -rf sm64ex-alo
git clone --recursive https://github.com/AloUltraExt/sm64ex-alo
cd ~/sm64ex-alo

For now due some changes on GCC the file tools/armips.cpp need to be changed and add #include <cstdint> for that the PR 93 is created, you can manually edit the file or apply the PR, to apply the PR you can execute the commands:
Code:
git fetch origin pull/93/head
git checkout -b PR93 FETCH_HEAD



YOU MUST TO COPY YOUR LEGALLY ACQUIRED ROM WITH MD5: 20b854b239203baf6c961b850a4a51a2 TO: ~/sm64ex-alo/baserom.us.z64

Then you can build the NRO:

Bash:
make TARGET_SWITCH=1 BETTERCAMERA=1 NODRAWINGDISTANCE=1 TEXTURE_FIX=1 EXT_OPTIONS_MENU=1 QOL_FIXES=1 QOL_FEATURES=1 MOUSE_ACTIONS=1 EXT_DEBUG_MENU=1


BE SURE YOU COPY THE CORRECT ROM TO THE REPO ROOT AND HAVE THE CORRECT NAME.


BUILD OPTIONS
Build optionDefaultPossible valuesDescription
AUDIO_APISDL2SDL2Select audio backend. There's only one option right now.
BETTERCAMERA00, 1If 1, build with analog camera support (uses Puppycam).
CHEATS_ACTIONS10, 1Enable cheats
COMMAND_LINE_OPTIONS10, 1Enable Command Line Options *see them at end of post
CONTROLLER_APISDL2SDL2Specify the controller backend to use. There's only one right now.
DISCORDRPC00, 1If 1, enable Discord Rich Presence support. Only works on x86_64.
EXT_DEBUG_MENU00, 1Enable Simple menu for debug on R options menu, showing basic info on the screen
EXT_OPTIONS_MENU10, 1If 1, enable Options menu. Accessed from the Pause menu by pressing R.
EXTENDED_BOUNDS00, 1Enable extended bounds
In Super Mario 64, the level size, in which collision is checked, by default is limited from -8192 to 8191 in any direction.
Enabling this allows for extended bounds. This patch allows the bounds to be extended up to -32768 to 32767, at the cost of using more RAM.
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.
GODDARD_MFACE10, 1If 0 disable Goddard's Mario Face (Mario Face at start screen)
HIGH_FPS_PC00, 1Enable 60 fps patch
MOUSE_ACTIONS00, 1Enable mouse support on desktop versions, for now only works on SDL mode, DirectX support is WIP.
NODRAWINGDISTANCE00, 1If 1, build with disabled draw distance (every object is active at all times). May affect gameplay.
PORT_MOP_OBJS00, 1Enable Kaze's More Objects Patch, disabled by default
QOL_FEATURES00, 1Enables additional quality-of-life features.
QOL_FIXES00, 1Activates general quality-of-life fixes.
QOL_REDONE10, 1Applies a set of reworked quality-of-life improvements.
The QOL features are NOT mutually exclusive and for the full effect should be enabled all at once.
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.
RM2C00, 1Accept RM2C level folder output https://github.com/AloXado320/rom-manager-2-c
RUMBLE_FEEDBACK10, 1Enable rumble functions (Originally in Shindou)
OSX_BUILD00,1If 1, build for OSX.
TARGET_SWITCH00,1If 1, the source code is built for Nintendo Switch Console.
TARGET_N3DS00,1Build for Nintendo 3DS, needs the 3ds-dev DevKitPro group.
You can also add the CIA target to build 3DSX and CIA formats, for that you need MAKEROM on your system, you can get the most recent version from https://github.com/3DSGuy/Project_CTR/releases/
TARGET_WII_U00,1Build for Wii U, needs the wiiu-dev DevKitPro group and the wiiu-sdl2 package.
TARGET_N6400,1Needs MIPS N64 toolchain, so is more easy to build on Linux where you can install the apt package binutils-mips-linux-gnu .
On MSYS you can install using https://github.com/glankk/n64 which requires you build and install locally on MSYS
TARGET_BITS32, 64TARGET_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_BUILD00, 1If 1, build for Windows. Usually set automatically if building on Windows.
TEXTSAVES00, 1If 1, use INI-based save format instead of binary EEPROM dumps. Experimental.
TEXTURE_FIX00, 1If 1, enable various texture-related bugfixes (e.g. fixes the smoke texture).
VANILLA_CHECKS10, 1Enable some level checks to get behavior of vanilla ones
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.
WINDOW_APISDL2SDL2, DXGISelect windowing backend. GL renderers force SDL2 and D3D renderers force DXGI for now, so you don't need to specify this.
WINDOWS_CONSOLE
DEBUG
00, 1If 1, append -mconsole to Windows CFLAGS, making a console window appear while the game is running. Can be useful for debugging purposes. On SM64-Alo WINDOWS_CONSOLE was replaced by DEBUG
DEBUG00, 1, 2If 1, build with debug symbols and default optimization level. Otherwise build with -O2. 1 simple debug compile, 2 max debug compile

Use nsp-forwarder.n8.io to create a customized Forwarder. Now supporting Atmosphère > 1.8.0


Command Line Options
[TABLE=full]
[TR]
[th]Command[/th][th]Description[/th]
[/TR]
[TR]
[td]--help[/td][td]Shown the command line options[/td]
[/TR]
[TR]
[td]--configfile CONFIGNAME[/td][td]Saves the configuration file as CONFIGNAME.[/td]
[/TR]
[TR]
[td]--gamedir DIRNAME[/td][td]Sets additional data directory name (only 'res' is used by default).[/td]
[/TR]
[TR]
[td]--savepath SAVEPATH[/td][td]Overrides the default save/config path ('!' expands to executable path).[/td]
[/TR]
[TR]
[td]--level LEVELID[/td][td]Start the game from a level id (Use --listlevels for a list of each level id).[/td]
[/TR]
[TR]
[td]--act ACTNUM[/td][td]Start the game from a act number, requires a --level id to be set.[/td]
[/TR]
[TR]
[td]--cheats[/td][td]Enables the cheat menu.[/td]
[/TR]
[TR]
[td]--skip-intro[/td][td]Skips the Peach and Castle intro when starting a new game.[/td]
[/TR]
[TR]
[td]--fullscreen[/td][td]Starts the game in full screen mode.[/td]
[/TR]
[TR]
[td]--windowed[/td][td]Starts the game in windowed mode.[/td]
[/TR]
[TR]
[td]--levelselect[/td][td]Offers the user a level select menu.[/td]
[/TR]
[TR]
[td]--profiler[/td][td]Enables profiler bar on the screen bottom (Not functional).[/td]
[/TR]
[TR]
[td]--debug[/td][td]Enables simple debug display.[/td]
[/TR]
[TR]
[td]--poolsize POOLVALUE[/td][td]Increase memory pool on POOLVALUE[/td]
[/TR]
[/TABLE]




Troubleshooting
  • If you get the error gcc: command not found or make: gcc: No such file or directory you did 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-alo 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-alo 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 you are on the «MSYS» shell, remember the process should be run on «MINGW32» or «MINGW64» shells.
 
Last edited by impeeza,
Glad you guys are keeping the switch port alive! I'm here in need of help with this build tutorial. It seems that I'm getting same error as these guys even with the new commit. Made sure to follow everything thoroughly on a fresh window's install. (No worries needed to factory reset anyway...)

HASH256 matches the ROM needed. (Made a backup of my own cartridge of course)

Also getting this error - @impeeza - any ideas?

Good stuff for getting to the bottom of this!


This happened to me also and I couldn't figure out how to get it to work, there must be something wrong with the rom dumper.
However I got past this step by using a different dumper to extract the assets out of the rom somewhere else, once that completed successfully I then copied the assets over to the working folder to and followed Impeeza's steps again. because it seems to skip the rom dump process if the assets are already dumped
Sorry, I have no idea now what that error means, I just arrived from a long trip, once I got update I will try again and let yo guys to know.
Post automatically merged:

Sorry Guys, It's working fine for me:

1728957219071.png



1728957412640.png



Please use the latest set of instructions and the most recent repo, if still fail, delete your MSYS folder and start over with a clear setup. That's a advantage of using MSYS: everything is contained on the folder so if you start over you have no clonficts with other things on your PC.

do not forget to merge the PR 64


1728957450971.png
 
Last edited by impeeza,
Sorry, I have no idea now what that error means, I just arrived from a long trip, once I got update I will try again and let yo guys to know.
Post automatically merged:

Sorry Guys, It's working fine for me:

View attachment 464798


View attachment 464800


Please use the latest set of instructions and the most recent repo, if still fail, delete your MSYS folder and start over with a clear setup. That's a advantage of using MSYS: everything is contained on the folder so if you start over you have no clonficts with other things on your PC.

do not forget to merge the PR 64


View attachment 464801
I've been trying to compile this for days, I have no idea what the problem could be as these errors I keep encountering are weird. Merging PR 64 does nothing either as the compiler will always fail. I've tried other users fixes by building the sm64ex-alo master repo using sm64pcbuilder2.exe countless times, and merging the assets into the sm64-alo directory found in the home directory within the mysys64 folder, everything seems like it's about to compile... but it hangs on the error provided. I have followed this tutorial to a tee on multiple windows computers and it all ends the same. I don't know if it has to do with being on Windows 11 but I highly doubt it.
 

Attachments

  • merged pr 64.png
    merged pr 64.png
    19.5 KB · Views: 62
  • same error.png
    same error.png
    40.3 KB · Views: 75
  • merged with alo master.png
    merged with alo master.png
    52.1 KB · Views: 67
I've been trying to compile this for days, I have no idea what the problem could be as these errors I keep encountering are weird. Merging PR 64 does nothing either as the compiler will always fail. I've tried other users fixes by building the sm64ex-alo master repo using sm64pcbuilder2.exe countless times, and merging the assets into the sm64-alo directory found in the home directory within the mysys64 folder, everything seems like it's about to compile... but it hangs on the error provided. I have followed this tutorial to a tee on multiple windows computers and it all ends the same. I don't know if it has to do with being on Windows 11 but I highly doubt it.
My only successful compilation so far was on Windows 11 if that’s any consolation. I’m much in the same boat as you now, wondering if an active VPN also makes a difference 🤔
 
  • Like
Reactions: impeeza
Buddies, I installed a Windows 10 Virtual Machine, and follow the process step by step then was able to build the Switch NRO!!

1729017922097.png


The ROM I am using have this Checksum:
MD5: 20b854b239203baf6c961b850a4a51a2 *baserom.us.z64
SHA: 9bef1128717f958171a4afac3ed78ee2bb4e86ce *baserom.us.z64
SHA256: 17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91 *baserom.us.z64


I do recommend to delete the C:/MSYS64 folder and start over step by step, double check you are running every one command needed.
 
same here, can't extract assets

Python version maybe?

Fixed: this command breaks the extraction assets "export PATH=/mingw64/bin:/mingw32/bin:$PATH"

Now building tools
 
Last edited by josete2k,
same here, can't extract assets

Python version maybe?

Fixed: this command breaks the extraction assets "export PATH=/mingw64/bin:/mingw32/bin:$PATH"

Now building tools


Wait, the command breaks or solve the problem?

Thanks for the info! this fixed it! And thank you Impeeza for the build instructions still!
 

Attachments

  • Screenshot 2024-10-15 172935.png
    Screenshot 2024-10-15 172935.png
    41.4 KB · Views: 83
  • Like
Reactions: josete2k
Guys! 60FPS is built into the code already. So when you do your -MAKE Add this line on the end "HIGH_FPS_PC=1" Working 60fps
Post automatically merged:

"HIGH_FPS_PC=1" Enables 60fps with this repo
 
Last edited by JAGSTAX,
  • Love
Reactions: impeeza
Guys! 60FPS is built into the code already. So when you do your -MAKE Add this line on the end "HIGH_FPS_PC=1" Working 60fps
Post automatically merged:

"HIGH_FPS_PC=1" Enables 60fps with this repo
This is an updated list of the build switches:


[TABLE=full]
[TR]
[TD]Build option[/TD]
[TD]Default[/TD]
[TD]Possible values[/TD]
[TD]Description[/TD]
[/TR]
[TR]
[TD]AUDIO_API[/TD]
[TD]SDL2[/TD]
[TD]SDL2[/TD]
[TD]Select audio backend. There's only one right now.[/TD]
[/TR]
[TR]
[TD]BETTERCAMERA[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, build with analog camera support (uses Puppycam).[/TD]
[/TR]
[TR]
[TD]CHEATS_ACTIONS[/TD]
[TD]1[/TD]
[TD]0, 1[/TD]
[TD]Enable cheats[/TD]
[/TR]
[TR]
[TD]COMMAND_LINE_OPTIONS[/TD]
[TD]1[/TD]
[TD]0, 1[/TD]
[TD]Enable Command Line Options[/TD]
[/TR]
[TR]
[TD]CONTROLLER_API[/TD]
[TD]SDL2[/TD]
[TD]SDL2[/TD]
[TD]Specify list of controller backends to use. There's only one right now.[/TD]
[/TR]
[TR]
[TD]DEBUG[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, build with debug symbols and default optimization level. Otherwise build with -O2. 1 simple debug compile, 2 max debug compile[/TD]
[/TR]
[TR]
[TD]DISCORDRPC[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, enable Discord Rich Presence support. Only works on x86_64.[/TD]
[/TR]
[TR]
[TD]DISCORDRPC[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Enable Discord Rich Presence[/TD]
[/TR]
[TR]
[TD]EXT_DEBUG_MENU[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Menú para opciones de depuración simples[/TD]
[/TR]
[TR]
[TD]EXT_OPTIONS_MENU[/TD]
[TD]1[/TD]
[TD]0, 1[/TD]
[TD]If 1, enable Options menu. Accessed from the Pause menu by pressing R.[/TD]
[/TR]
[TR]
[TD]EXTENDED_BOUNDS[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Enable extended bounds[/TD]
[/TR]
[TR]
[TD]EXTERNAL_DATA[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 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. (En Switch va en la carpeta raíz), para PC no lo genera[/TD]
[/TR]
[TR]
[TD]GODDARD_MFACE[/TD]
[TD]1[/TD]
[TD]0, 1[/TD]
[TD]Enable Goddard (Mario Face)[/TD]
[/TR]
[TR]
[TD]HIGH_FPS_PC[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Enable 60 fps interpolation[/TD]
[/TR]
[TR]
[TD]MOUSE_ACTIONS[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Soporte para el ratón para versiones de escritorio, solo funciona en modos SDL, se está trabajando aún en el modo DirectX.[/TD]
[/TR]
[TR]
[TD]NODRAWINGDISTANCE[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, build with disabled draw distance (every object is active at all times). May affect gameplay.[/TD]
[/TR]
[TR]
[TD]OSX_BUILD[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, build for OSX.[/TD]
[/TR]
[TR]
[TD]PORT_MOP_OBJS[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Parche de más objetos creado por Kaze[/TD]
[/TR]
[TR]
[TD]PORT_MOP_OBJS[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Kaze MOP Objects Port, disabled by default[/TD]
[/TR]
[TR]
[TD]QOL_FEATURES[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Mejora de Características[/TD]
[/TR]
[TR]
[TD]QOL_FIXES[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Mejoras de Calidad de vida[/TD]
[/TR]
[TR]
[TD]QOL_REDONE[/TD]
[TD]1[/TD]
[TD]0, 1[/TD]
[TD]Quality of life redone files[/TD]
[/TR]
[TR]
[TD]RENDER_API[/TD]
[TD]GL[/TD]
[TD]GL, GL_LEGACY, D3D11, D3D12[/TD]
[TD]Select 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.[/TD]
[/TR]
[TR]
[TD]RM2C[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]Accept RM2C level folder output https://github.com/AloXado320/rom-manager-2-c[/TD]
[/TR]
[TR]
[TD]RUMBLE_FEEDBACK[/TD]
[TD]1[/TD]
[TD]0, 1[/TD]
[TD]Enable rumble functions (Originally in Shindou)[/TD]
[/TR]
[TR]
[TD]TARGET_BITS[/TD]
[TD][/TD]

[TD]32, 64,[/TD]
[TD]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.[/TD]
[/TR]
[TR]
[TD]TARGET_RPI[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 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.[/TD]
[/TR]
[TR]
[TD]TARGET_WEB[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, build Emscripten version. See the main article (https://github.com/sm64pc/sm64pc/wiki/Compiling-for-the-web) on that.[/TD]
[/TR]
[TR]
[TD]TEXTSAVES[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, use INI-based save format instead of binary EEPROM dumps. Experimental.[/TD]
[/TR]
[TR]
[TD]TEXTURE_FIX[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, enable various texture-related bugfixes (e.g. fixes the smoke texture).[/TD]
[/TR]
[TR]
[TD]VANILLA_CHECKS[/TD]
[TD]1[/TD]
[TD]0, 1[/TD]
[TD]Enable level vanilla checks[/TD]
[/TR]
[TR]
[TD]VERSION[/TD]
[TD]us[/TD]
[TD]us, eu, jp, sh[/TD]
[TD]Which ROM to use. The selected ROM has to be in the repo folder with the name baserom.$VERSION.z64. sh is currently broken.[/TD]
[/TR]
[TR]
[TD]WINDOW_API[/TD]
[TD]SDL2[/TD]
[TD]SDL2, DXGI[/TD]
[TD]Select windowing backend. GL renderers force SDL2 and D3D renderers force DXGI for now, so you don't need to specify this.[/TD]
[/TR]
[TR]
[TD]WINDOWS_BUILD[/TD]
[TD][/TD]

[TD]0, 1[/TD]
[TD]If 1, build for Windows. Usually set automatically if building on Windows.[/TD]
[/TR]
[TR]
[TD]WINDOWS_CONSOLE[/TD]
[TD]0[/TD]
[TD]0, 1[/TD]
[TD]If 1, append -mconsole to Windows CFLAGS, making a console window appear while the game is running. Can be useful for debugging purposes.[/TD]
[/TR]
[/TABLE]


Is there a list of what exactly QOL_FIXES/FEATURES does? I'd like to know if that's worth enabling, as they're disabled by default.
I wonder the same since the first time I saw the code.
 
  • Like
Reactions: alcab and aarstar

Site & Scene News

Popular threads in this forum