Sitelet https://github.com/Slushi-Github/Switch-Funkin
Skip to content

Repository files navigation

Switch Funkin' GitHub Logo

Real FNF' for Nintendo Switch, just, why not?

So yeah… this is Psych Engine 1.0.4 for Nintendo Switch. It’s not a recreation or an inspiration, this is the real HaxeFlixel running on Switch! So yes, we have Friday Night Funkin' on Nintendo Switch!

This is possible thanks to Lime-NX, which allows compiling Lime projects for the console using DevKitPro and DevKitA64, meaning homebrew stuff, so you need a modified Nintendo Switch running Atmosphère to play this game!

That’s it, there’s not much more to say. Enjoy the real Friday Night Funkin' experience on Nintendo Switch now!

Everything in Psych Engine are working on the Switch target, videos (Thanks now to HxSwitchVideo but its still a work in progress) HScript and Lua, shaders, and even mod folder support are functional on this platform.

If you think you can play with a keyboard or mouse... Well yes! You can play with a keyboard and mouse! Just connect a keyboard and mouse on the dock of the console and you will be able to play with them.

Considerations

The engine CANNOT cache ALL assets, so loading screens can be slow, and even loading the game over screen a second time can be slow. This seems to be a limitation of how the game is compiled for this platform. It might have a solution by not depending on OpenFL for that, but it’s not something I want to modify at the moment, Loading times will also depend on your microSD card.

Also keep something in mind: The Nintendo Switch is hardware from around 2016, and Psych Engine is apparently not the best FNF engine for this console. This may require optimizing the engine or the mod, but in the end we are dealing with a mid-2016 device with 4 GB of RAM, so you can’t expect miracles on this platform, okay? From what I saw, V-Slice should perform better than Psych, but it has a complexity that make it impossible for me mantain it for Nintendo Switch, there is a attempt to do it, but it is not finished. This is the reason I chose Psych Engine, besides it being the FNF engine I know the most and that I like.

Even though it may sound obvious, mods that use special mechanics requiring extra keys will need modifications to support controllers.

Don't expect this engine to compile to other platforms. Although I have tried to maintain compilation with at least Linux, this engine is modified to work well with the Nintendo Switch.

Installation

Download the latest version:

The Homebrew App Store option allows you to download the game directly to your console! It's the easiest way to get the game and future updates. To do this, search for the game in the HBAS client on your Switch and download it.

But if you prefer the other options...

Inside the downloaded ZIP, you will find a file that ends with .nro. Drag it into the switch folder on your console’s SD card.

Simply open the Homebrew Menu from an official game (usually by holding the R button while launching a game from the HOME menu), look for "FNF: Switch Funkin'", open it, and enjoy!

For now, I do not offer an NSP file to install it directly on the console and skip the Homebrew Menu step.

Mods and others

Installing mods in Switch Funkin' is easy. Once you open the game at least once, on your SD card, inside the switch folder, you will see a new folder called Switch-Funkin. Inside it, you will find the mods folder, which works exactly like normal Psych Engine. You will also find folders with crash logs or shader error logs, as well as the saves folder, which stores the game’s save data, the same standard HaxeFlixel save files.

Compiling the engine

First, follow the Psych Engine setup but using the setup files of this repository.

Then you need to follow the steps to compile with Lime-NX for Nintendo Switch.

You also need the following library:

haxelib git hx_libnx https://github.com/Slushi-Github/hx_libnx

And the DevKitPro Lua 5.1 library if you want to use Lua in this engine (otherwise, remove or comment the define LUA_ALLOWED from the Project.xml file):

(If you are on Linux/macOS, you will most likely need to use sudo dkp-pacman instead of pacman)

pacman -S switch-liblua51

And follow the steps to use HxSwitchVideo for video playback if you want to use it in this engine (otherwise, remove or comment the define VIDEOS_ALLOWED from the Project.xml file on the section SWITCH FUNKIN' CUSTOMIZATION).

Change the <config:switch ip="192.168.1.140"/> in the Project.xml file to the IP of your Switch.

And that’s it! If you did everything correctly, you should be able to compile the engine with lime test switch or lime build switch and you’re done!

Contributing

If you want to contribute to this project, you can do it by creating a pull request on this repository, test that your changes work on the real hardware, I would recommend attaching images if it is a change that can be shown.

Credits

  • Psych Engine: The base for Switch Funkin'.

  • P-Slice: Where I took the code used to implement the hitbox for playing with the Nintendo Switch touchscreen.

  • Roxy (On Discord): It helped me discover performance issues in the Weekend songs (it turned out that the original rain shader and Nene's speaker visualizer were too much for the Switch's CPU and GPU).

  • @doggywatty: For initially creating the entire integration between MPV and HaxeFlixel to enable video playback on Switch Funkin' as described in PR #21, which led to the creation of HxSwitchVideo, literally did everything I didn't dare to do, heh, also for optimizing the ABot Speaker and the rain shader used in Weekend 1 so that it would work well on the Switch as described in PR #22, And finally, for fixing the issue where the audio would crash in Lime-NX!

Other information

This engine uses code from Vupx Engine (My framework engine for the Nintendo Switch) and also from Slushi Engine (only the Slushi Freeplay).

... This is no longer a meme XDD.

FNF' V-Slice for the console here (Is incomplete, old and broken...).

Old FNF' vanilla for the console here.

Screenshots

Title State screenshot

Freeplay State screenshot

About

Real Psych Engine on Nintendo Switch?!

Resources

Stars

24 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Contributors

Languages