Skip to content

capsterx/solarus

Repository files navigation

This is my port of solarus engine to the nintendo switch

You need devkitpro and quite a few libs installed. I did not keep track of which ones while building it, so here are the ones I currently have intalled:

deko3d 0.2.0-1 devkit-env 1.0.1-2 devkitA64 r16-1 devkitA64-gdb 9.2-1 devkita64-rules 1.0.1-2 devkitpro-keyring 20180316-1 general-tools 1.2.0-2 libnx 3.3.0-2 switch-bzip2 1.0.6-3 switch-examples 20200528-2 switch-flac 1.3.2-4 switch-freetype 2.10.1-1 switch-glad 0.1.27-1 switch-glm 0.9.9.7-1 switch-libconfig 1.7.2-3 switch-libdrm_nouveau 1.0.1-1 switch-libjpeg-turbo 1.5.3-2 switch-libmodplug 0.8.8.5-1 switch-libogg 1.3.4-1 switch-libopus 1.3-2 switch-libpng 1.6.37-1 switch-libvorbis 1.3.5-2 switch-libvorbisidec 1.2.1-2 switch-libwebp 1.0.2-1 switch-mesa 20.1.0-1 switch-mpg123 1.25.10-3 switch-opusfile 0.10-3 switch-physfs 3.0.2-1 switch-pkg-config 0.28-4 switch-sdl2 2.0.12-3 switch-sdl2_gfx 1.0.4-2 switch-sdl2_image 2.0.4-1 switch-sdl2_mixer 2.0.4-2 switch-sdl2_ttf 2.0.15-1 switch-tools 1.8.0-1 switch-zlib 1.2.11-2 uam 1.0.0-2

I did not find a prebuilt Plutonium or lua, so i included these in the source tree for convience.

I took some code from https://github.com/carstene1ns/solarus-engine but have since modified it quite a bit also upgrading it to 1.6.4.

I basically have the code for the switch ignoring the sdl axis movement and any of the joypad buttons that are directional and instead fake them as keyboard directions. Dont know if that's the best way to go about it, but it works.

The - key is mapped to 'escape' so you can actually exit the game

There are two ways to build:

make SWITCH_GUI=1

this builds a very primitive gui I made that will find all quests in sdmc:/switch/solarus/games and let you select one. You can have them in the zipped .solarus format or unpacked. If you leave them zipped the gui is a lot slower to load as it reads the titles from them.

The other is to build a standalone game where the game is put in romfs, to do this, for example Mystery of Solarus DX:

make EMBEDED_TARGET=MysteryOfSolarusDX EMBEDED_TITLE="Mystery Of Solarus DX" EMBEDED_VERSION="1.10" EMBEDED_ICON=MysteryOfSolarusDX.jpg ROMFS=romfs

the romfs dir should have a game renamed to data.solarus.zip or data.solarus unzipped or you can unpack the whole thing in the dir

this will create a standalone nro

Note: you will need to 'touch src/main/Main.cpp' when switching between the two

Solarus logo

Build status License


About Solarus

Solarus is an open-source adventure 2D game engine written in C++. It can run games scripted in Lua. This engine is used by our Zelda fangames. Solarus is licensed under GPL v3.

Games made with Solarus

You might be interested in our fangames created with Solarus:

Create your own games

If you want to create your own games with the Solarus engine, see Solarus Quest Editor, our Solarus game creation software.

See our website to get more information and documentation about using the Solarus engine.

Compile Solarus

To compile Solarus, instructions can be found in the compilation.md file.