Difference between revisions of "Nintendo Switch"

From ScummVM :: Wiki
Jump to navigation Jump to search
(27 intermediate revisions by 2 users not shown)
Line 17: Line 17:
pkgend=-switch.zip|
pkgend=-switch.zip|
icon=switch|
icon=switch|
forum=|
forum=24|
notes=only buildbot builds available|
notes=|


agi=yes|
agi=yes|
Line 44: Line 44:
}}
}}


ScummVM has been ported to the [[Nintendo]] Switch by Cpasjuste. Note: The first release version will be 2.1.0. But daily buildbot versions are already available (see below).
ScummVM has been ported to the [[Nintendo]] Switch by Cpasjuste. Note: The first release version will be 2.1.0. But daily buildbot versions are already available [https://buildbot.scummvm.org/snapshots/master/switch-master-latest.zip here] (see installation instructions below).


= Installation =
= Installation =


== Prerequisites ==
== Prerequisites ==
* A homebrew enabled Nintendo Switch console.
* A homebrew enabled Nintendo Switch console. Detailed jailbreaking instructions can be found online.
* At least one ScummVM supported game. The list of compatible games can be seen here: https://www.scummvm.org/compatibility/
* At least one ScummVM supported game. The list of compatible games can be seen here: https://www.scummvm.org/compatibility/
* The page [[Where to get the games]] references some places where those games can be bought. Demonstration versions for most of the supported games are downloadable on https://scummvm.org/demos/
* The page [[Where to get the games]] references some places where those games can be bought. Demonstration versions for most of the supported games are downloadable on https://scummvm.org/demos/
Line 77: Line 77:
* Install the development tools for Switch following the official instructions (https://devkitpro.org/wiki/Getting_Started)
* Install the development tools for Switch following the official instructions (https://devkitpro.org/wiki/Getting_Started)


* Install libraries (see [https://www.scummvm.org/downloads/#libs here] for an updated list)
* Update package database and install libraries (see [https://www.scummvm.org/downloads/#libs here] for an updated list)
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo dkp-pacman -S switch-sdl2
sudo dkp-pacman -Sy
sudo dkp-pacman -S switch-libmad
sudo dkp-pacman -S \
sudo dkp-pacman -S switch-libogg
switch-sdl2 \
sudo dkp-pacman -S switch-libvorbis
switch-libmad \
sudo dkp-pacman -S switch-flac
switch-libogg \
sudo dkp-pacman -S switch-libtheora
switch-libvorbis \
sudo dkp-pacman -S switch-mpg123
switch-flac \
sudo dkp-pacman -S switch-libpng
switch-libtheora \
sudo dkp-pacman -S switch-libjpeg-turbo
switch-libpng \
sudo dkp-pacman -S switch-zlib
switch-libjpeg-turbo \
sudo dkp-pacman -S switch-freetype
switch-zlib \
sudo dkp-pacman -S switch-sdl2_net
switch-freetype \
sudo dkp-pacman -S switch-curl
switch-sdl2_net \
switch-curl \
switch-libtimidity \
switch-pkg-config
</syntaxhighlight>
 
* Optional: To enable fluidsynth support, download and install the unofficial fluidsynth-lite switch port via
<syntaxhighlight lang="bash">
git clone https://github.com/rsn8887/fluidsynth-lite
cd fluidsynth-lite
make -f Makefile.nx
sudo -E make -f Makefile.nx install
</syntaxhighlight>
</syntaxhighlight>


Line 98: Line 109:
* Execute the command (once a curl-config script exists for devkitA64, the --disable-libcurl could be omitted)
* Execute the command (once a curl-config script exists for devkitA64, the --disable-libcurl could be omitted)
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
../scummvm/configure --host=switch --disable-libcurl
../scummvm/configure --host=switch
</syntaxhighlight>
</syntaxhighlight>



Revision as of 07:29, 7 March 2020

switch.png Nintendo Switch Port
Latest Released Version 2.8.0
Supported Audio Options MP3, OGG, FLAC, Uncompressed
Additional Webpage(s) None
Maintainer(s) cpasjuste, rsn8887
Packager(s) cpasjuste, rsn8887
Forum Port Forum
Status Maintained
First Official Version 2.1.0

ScummVM has been ported to the Nintendo Switch by Cpasjuste. Note: The first release version will be 2.1.0. But daily buildbot versions are already available here (see installation instructions below).

Installation

Prerequisites

Installing

  • The latest daily version of ScummVM for Switch is here (needs to be unzipped).
  • Copy the scummvm folder to your SD card into the folder /switch/ so that you have a folder /switch/scummvm with scummvm.nro and other folders inside.
  • Launch ScummVM using your favorite method to launch homebrew on the Switch

Configuring Games

The user manual describes how to add games to ScummVM and launch them: User Manual

Notes

Saves are written to the /switch/scummvm/saves folder.

Controls

 Game Controller Mapping:
Button Action
Left stick Mouse
R + Left stick Slow Mouse
B Left mouse button
A Right mouse button
DPad Keypad "Cursor" Keys (useful for character motion in Sierra games)
R + DPad Diagonal Keypad "Cursor" Keys
L Trigger Game menu (F5)
R Trigger Shift (used to enable Mass Add in menu)
Y Period '.' (used to skip dialog lines)
R + Y Space ' '
X Escape (used to skip cutscenes)
R + X Return
Plus ScummVM's global in-game menu
Minus Toggle virtual keyboard
R + Minus AGI predictive input dialog
 Touch Controls (Touchpad Mouse Mode Off, Default):
Touch Action
short single finger tap Move pointer to finger position and left mouse button click
short second finger tap while holding one finger Move pointer to first finger position and right mouse button click
single finger drag Move pointer directly with finger
dual finger drag (long second finger tap while holding one finger) Move pointer while left mouse button is held down (drag'n'drop). The pointer directly follows the first finger. The drag is ended when the last finger is removed.
triple finger drag (long second and third finger tap while holding one finger) Move pointer while right mouse button is held down (drag'n'drop). The pointer directly follows the first finger. The drag is ended when the last finger is removed.
 Touch Controls (Touchpad Mouse Mode On):
Touch Action
short single finger tap Left mouse button click
short second finger tap while holding one finger Right mouse button click
single finger drag Move pointer indirectly with finger, pointer speed can be adjusted in control settings
dual finger drag (long second finger tap while holding one finger) Move pointer while left mouse button is held down (drag'n'drop). The pointer motion is affected by the first finger. The drag is ended when the last finger is removed.
triple finger drag (long second and third finger tap while holding one finger) Move pointer while right mouse button is held down (drag'n'drop). The pointer motion is affected by the first finger. The drag is ended when the last finger is removed.

Notes:

  • Physical USB mice and keyboards work on the Switch and are supported by ScummVM. All keyboards work. Not all mice work. A mouse compatibility list is available here
  • For multi-touch gestures, the fingers have to be far enough apart from each other, so that the Switch will not erroneously recognize them as a single finger. Otherwise the pointer will jump around.
  • The touch control scheme can be switched in the main menu via "options->controls->touchpad mouse mode"
  • When touchpad mouse mode is off (default), the touch controls are direct. The pointer always jumps to the finger.
  • When touchpad mouse mode is on, the touch controls are indirect. The finger can be far away from the pointer and still move it, like on a laptop touchpad. The pointer speed setting in "options->controls" affects how far the pointer moves in response to a finger movement.
  • The two finger drag is useful for Full Throttle to bring up the action menu, and in the menu to use the scroll bar in the game list. It works in the following way: holding down two fingers for a while initiates a drag'n'drop where the left mouse button is being held down. The first finger affects mouse motion during the drag, the second finger can be removed without affecting the drag. When the last finger is removed, the left mouse button is released and the drag is over. Note the second finger can be anywhere, it doesn't have to be close to the first finger, and it doesn't have to be put down simultaneously with the first finger, either.
  • Typical usage of dual finger drag and drop in Full Throttle: Hold down one finger over an object. Then hold down a second finger somewhere on the screen for a little bit to initiate a dual finger drag. This brings up the action menu. Now let go of the second finger. The dual-finger drag continues since one finger is still down. Select an action with the first finger, and let go of the first finger to end the drag.
  • There is also a three finger drag that causes the right-mouse button to be held down, instead of the left one. It might be useful for some games.


Building From Source

This port of ScummVM to the Switch is based on SDL2. It uses the open source SDK provided by devkitPro.

To build ScummVM for Switch:

  • Update package database and install libraries (see here for an updated list)
sudo dkp-pacman -Sy
sudo dkp-pacman -S \
switch-sdl2 \
switch-libmad \
switch-libogg \
switch-libvorbis \
switch-flac \
switch-libtheora \
switch-libpng \
switch-libjpeg-turbo \
switch-zlib \
switch-freetype \
switch-sdl2_net \
switch-curl \
switch-libtimidity \
switch-pkg-config
  • Optional: To enable fluidsynth support, download and install the unofficial fluidsynth-lite switch port via
git clone https://github.com/rsn8887/fluidsynth-lite
cd fluidsynth-lite
make -f Makefile.nx
sudo -E make -f Makefile.nx install
  • Create a subdirectory somewhere outside the source folder for your ScummVM build and cd into it
  • Execute the command (once a curl-config script exists for devkitA64, the --disable-libcurl could be omitted)
../scummvm/configure --host=switch
  • Execute the command
make scummvm_switch.zip

Disclaimer

Unauthorized distribution of an installable package with non freeware games included is a violation of the copyright law and is as such forbidden.

Thanks