mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-08 03:47:32 +00:00
3DS: Added improved README.md
This commit is contained in:
parent
f615b3392b
commit
c80bbc4ee5
@ -1,185 +0,0 @@
|
||||
ScummVM 3DS README
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Table of Contents:
|
||||
------------------
|
||||
1.0) Installation
|
||||
* 1.1 3DSX installation
|
||||
* 1.2 CIA installation
|
||||
2.0) Controls
|
||||
* 2.1 Default key mappings
|
||||
* 2.2 Hover mode
|
||||
* 2.3 Drag mode
|
||||
3.0) Supported Games
|
||||
4.0) Compiling
|
||||
* 4.1 Prerequisites
|
||||
* * 4.1.1 Compiling third-party libraries
|
||||
* 4.2 Compiling ScummVM
|
||||
* 4.3 Warning for 3DSX build
|
||||
|
||||
|
||||
|
||||
1.0) Installation
|
||||
-----------------
|
||||
There are two possible formats to be used: 3DSX and CIA (recommended).
|
||||
The 3DSX format is exclusively used by the Homebrew Launcher and its derivatives.
|
||||
The CIA format can be installed directly to the 3DS home menu and can be launched
|
||||
using any CFW (Custom Firmware) of your choice.
|
||||
|
||||
Installing the Homebrew Launcher or any CFW is beyond the scope of this README.
|
||||
Look elsewhere to see how to install those if you do not already have them set up.
|
||||
|
||||
|
||||
1.1) 3DSX installation
|
||||
----------------
|
||||
The CIA format is recommended for stability and maximum game support. If that is
|
||||
not an option, you will need one of a collection of 3DS titles installed on your
|
||||
system in order to properly launch ScummVM as a 3DSX. This is because the
|
||||
Homebrew Launcher hijacks other processes to run 3DSX homebrew, and ScummVM is a
|
||||
particularly large homebrew that can't be launched with the resources provided
|
||||
by standard system applications.
|
||||
|
||||
You will need one of the following (installed or physically in cart slot):
|
||||
|
||||
- Youtube
|
||||
- Monster Hunter 4 Ultimate Special Demo
|
||||
- Monster Hunter 4 Ultimate
|
||||
- Monster Hunter 4G
|
||||
- Super Smash Bros. for Nintendo 3DS Demo
|
||||
- Super Smash Bros. for Nintendo 3DS Special Demo
|
||||
- Super Smash Bros. for Nintendo 3DS
|
||||
|
||||
Once you have one of the above, you need to merely extract all ScummVM 3DS files
|
||||
to the root of your SD card so that all files reside in the /3ds/scummvm/ directory.
|
||||
|
||||
|
||||
1.2) CIA installation
|
||||
---------------------
|
||||
The CIA format requires a DSP binary dump saved on your SD card as /3ds/dspfirm.cdc
|
||||
for proper audio support. You can search online to find software to dump this.
|
||||
Not having this file will cause many problems with games that need audio, sometimes
|
||||
even crashing, so this is NOT considered optional.
|
||||
|
||||
Using any CIA installation software (search elsewhere for that), you need to install
|
||||
the scummvm.cia file. Then, just like what is done with the 3DSX installation, you
|
||||
need to extract all ScummVM 3DS files (scummvm.cia excluded) to the root of your SD
|
||||
card so that all files reside in the /3ds/scummvm/ directory.
|
||||
|
||||
|
||||
|
||||
2.0) Controls
|
||||
-------------
|
||||
|
||||
2.1) Default key mappings
|
||||
-------------------------
|
||||
The D-Pad and A/B/X/Y buttons have mirrored usage. So they do the same things
|
||||
depending on if you're right or left-handed.
|
||||
|
||||
| Buttons | Function |
|
||||
|------------|--------------------------------|
|
||||
| A / D-left | Left-click |
|
||||
| X / D-up | Right-click |
|
||||
| B / D-down | ESC (skips cutscenes and such) |
|
||||
| L | Use virtual keyboard |
|
||||
| R | Toggle hover/drag modes |
|
||||
| Start | Open game menu |
|
||||
| Select | Open 3DS config menu |
|
||||
| Circle Pad | Move the cursor |
|
||||
|
||||
|
||||
2.2) Hover mode
|
||||
---------------
|
||||
When you use the touchscreen, you are simulating the mere moving of the mouse. You
|
||||
can click only with taps, meaning it is impossible to drag stuff or hold down a
|
||||
mouse button without using buttons mapped to right/left-click.
|
||||
|
||||
|
||||
2.3) Drag mode
|
||||
--------------
|
||||
Every time you touch and release the touchscreen, you are simulating the click and
|
||||
release of the mouse buttons. At the moment, this is only a left-click.
|
||||
|
||||
|
||||
|
||||
3.0) Supported Games
|
||||
--------------------
|
||||
The full game engine compatibility list can be found here:
|
||||
http://scummvm.org/compatibility/
|
||||
|
||||
While all the above games should run on the 3DS (report if they do not), there are
|
||||
many games which are unplayable due to the lack of CPU speed on the 3DS. So if
|
||||
you play any games that run really slow, this is not considered a bug, but rather
|
||||
a hardware limitation. Though possible GPU optimizations are always in the works.
|
||||
The New 3DS console has much better performance, but there are still many newer and
|
||||
high-resolution games that cannot be played. A list of these unplayable games and
|
||||
game engines will eventually be listed here.
|
||||
|
||||
|
||||
|
||||
4.0) Compiling
|
||||
--------------
|
||||
|
||||
4.1) Prerequisites
|
||||
------------------
|
||||
- devkitARM (presumably with libctru, picasso and such)
|
||||
- citro3d
|
||||
- Optional: You should compile third-party libraries for the 3ds (commonly referred
|
||||
to as portlibs in the devkitPRO community). Some games requires these to operate
|
||||
properly.
|
||||
|
||||
|
||||
4.1.1) Compiling third-party libraries
|
||||
--------------------------------------
|
||||
Most libraries used can be compiled with same commands and configuration flags.
|
||||
|
||||
It is assumed that you have these environment variables defined:
|
||||
- DEVKITPRO Your root devkitPro directory
|
||||
- DEVKITARM Your root devkitARM directory (probably same as $DEVKITPRO/devkitARM)
|
||||
- CTRULIB Your root libctru directory (probably same as $DEVKITPRO/libctru)
|
||||
|
||||
In the source directory of the library:
|
||||
- $ export PORTLIBS=$DEVKITPRO/portlibs/armv6k
|
||||
- $ export PATH=$DEVKITARM/bin:$PATH
|
||||
- $ export PKG_CONFIG_PATH=$PORTLIBS/lib/pkgconfig
|
||||
- $ export CFLAGS="-g -march=armv6k -mtune=mpcore -mfloat-abi=hard -O2
|
||||
-mword-relocations -ffunction-sections -fdata-sections"
|
||||
- $ export CPPFLAGS="-I$PORTLIBS/include -I$CTRULIB/include"
|
||||
- $ export LDFLAGS="-L$PORTLIBS/lib"
|
||||
- $ mkdir -p $PORTLIBS
|
||||
- $ ./configure --prefix=$PORTLIBS --host=arm-none-eabi --disable-shared
|
||||
--enable-static
|
||||
- $ make
|
||||
- $ make install
|
||||
|
||||
Useful libraries (and special config flags needed):
|
||||
- zlib
|
||||
- libpng
|
||||
- libjpeg
|
||||
- freetype2 --without-bzip2 --without-harfbuzz
|
||||
- libmad
|
||||
- tremor
|
||||
- flac --disable-cpplibs --without-flac
|
||||
- faad
|
||||
|
||||
|
||||
4.2) Compiling ScummVM
|
||||
----------------------
|
||||
- $ ./configure --host=3ds
|
||||
- $ make
|
||||
|
||||
Additionally compile to specific formats to be used on the 3ds:
|
||||
- $ make scummvm.3dsx
|
||||
- $ make scummvm.cia
|
||||
|
||||
|
||||
4.3) Warning for 3DSX build
|
||||
---------------------------
|
||||
The above configuration command will include all game engines by default and will
|
||||
likely be too massive to run using the 3DSX format. Until dynamic modules are figured
|
||||
out, you should configure engines like this for 3DSX builds:
|
||||
|
||||
- $ ./configure --host=3ds --disable-all-engines--enable-engine=scumm-7-8,myst,riven,
|
||||
sword1,sword2,sword25,sci,lure,sky,agi,agos
|
||||
|
||||
Choose whatever engines you want, but if the ELF's .text section exceeds ~10MB, it
|
||||
won't be playable unless it's a CIA.
|
230
backends/platform/3ds/README.md
Normal file
230
backends/platform/3ds/README.md
Normal file
@ -0,0 +1,230 @@
|
||||
ScummVM 3DS README
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Table of Contents:
|
||||
------------------
|
||||
1.0) Installation
|
||||
* 1.1 3DSX installation
|
||||
* 1.2 CIA installation
|
||||
* 1.3 Additional files
|
||||
|
||||
2.0) Controls
|
||||
* 2.1 Default key mappings
|
||||
* 2.2 Hover mode
|
||||
* 2.3 Drag mode
|
||||
|
||||
3.0) Supported Games
|
||||
|
||||
4.0) Compiling
|
||||
* 4.1 Prerequisites
|
||||
* * 4.1.1 Compiling third-party libraries
|
||||
* * 4.1.2 Manually setting up the environment
|
||||
* * 4.1.3 Note on FLAC
|
||||
* 4.2 Compiling ScummVM
|
||||
* 4.3 Warning for build sizes
|
||||
|
||||
1.0) Installation
|
||||
-----------------
|
||||
There are two possible formats to be used: 3DSX and CIA.
|
||||
The 3DSX format is considered more ethical because it does not make use of
|
||||
invalid title IDs, which get logged. It is also compatible with homebrew loading
|
||||
methods that do not involve CFW.
|
||||
The 3DSX format is exclusively used by the Homebrew Launcher and its derivatives.
|
||||
The CIA format can be installed directly to the 3DS home menu and can be launched
|
||||
using any CFW (Custom Firmware) of your choice.
|
||||
|
||||
Installing the Homebrew Launcher or any CFW is beyond the scope of this README.
|
||||
|
||||
1.1) 3DSX installation
|
||||
----------------
|
||||
You need to merely extract the ScummVM 3DSX files to your SD card so that all
|
||||
files reside in the `/3ds/scummvm/` directory. It can then be launched by Homebrew Launcher
|
||||
or a similar implementation.
|
||||
|
||||
1.2) CIA installation
|
||||
---------------------
|
||||
The CIA format requires a DSP binary dump saved on your SD card as `/3ds/dspfirm.cdc`
|
||||
for proper audio support. You can search online to find software to dump this.
|
||||
Not having this file will cause many problems with games that need audio, sometimes
|
||||
even crashing, so this is NOT considered optional.
|
||||
|
||||
Using any CIA installation software (search elsewhere for that), you need to install
|
||||
the `scummvm.cia` file. Then, just like what is done with the 3DSX installation, you
|
||||
need to extract all ScummVM 3DS files (`scummvm.cia` excluded) to the root of your SD
|
||||
card so that all files reside in the `/3ds/scummvm/` directory.
|
||||
|
||||
1.3) Additional files
|
||||
---------------------
|
||||
In order to use the Virtual Keyboard, you need to get the:
|
||||
`backends/vkeybd/packs/vkeybd_zmall.zip` file from ScummVM's repository, and
|
||||
place it on your SD card, in the `/3ds/scummvm/kb` folder.
|
||||
|
||||
In case you want a translated GUI, you need to get the:
|
||||
`scummvm/gui/themes/translations.dat` file from ScummVM's repository, and place
|
||||
it on your SD card, in the `/3ds/scummvm/themes` folder.
|
||||
|
||||
2.0) Controls
|
||||
-------------
|
||||
|
||||
2.1) Default key mappings
|
||||
-------------------------
|
||||
The D-Pad and A/B/X/Y buttons have mirrored usage. So they do the same things
|
||||
depending on if you're right or left-handed.
|
||||
|
||||
| Buttons | Function |
|
||||
|------------|--------------------------------|
|
||||
| A / D-left | Left-click |
|
||||
| X / D-up | Right-click |
|
||||
| B / D-down | ESC (skips cutscenes and such) |
|
||||
| L | Use virtual keyboard |
|
||||
| R | Toggle hover/drag modes |
|
||||
| Start | Open game menu |
|
||||
| Select | Open 3DS config menu |
|
||||
| Circle Pad | Move the cursor |
|
||||
|
||||
2.2) Hover mode
|
||||
---------------
|
||||
When you use the touchscreen, you are simulating the mere moving of the mouse. You
|
||||
can click only with taps, meaning it is impossible to drag stuff or hold down a
|
||||
mouse button without using buttons mapped to right/left-click.
|
||||
|
||||
2.3) Drag mode
|
||||
--------------
|
||||
Every time you touch and release the touchscreen, you are simulating the click and
|
||||
release of the mouse buttons. At the moment, this is only a left-click.
|
||||
|
||||
3.0) Supported Games
|
||||
--------------------
|
||||
The full game engine compatibility list can be found here:
|
||||
http://scummvm.org/compatibility/
|
||||
|
||||
While all the above games should run on the 3DS (report if they do not), there are
|
||||
many games which are unplayable due to the lack of CPU speed on the 3DS. So if
|
||||
you play any games that run really slow, this is not considered a bug, but rather
|
||||
a hardware limitation. Though possible GPU optimizations are always in the works.
|
||||
The New 3DS console has much better performance, but there are still many newer and
|
||||
high-resolution games that cannot be played. A list of these unplayable games and
|
||||
game engines will eventually be listed here.
|
||||
|
||||
4.0) Compiling
|
||||
--------------
|
||||
4.1) Prerequisites
|
||||
------------------
|
||||
- Latest version of devkitPro, which comes with devkitARM and `libctru`
|
||||
- `citro3d` thorugh devkitPro's pacman
|
||||
- Optional: You should compile third-party libraries for the 3ds (commonly referred
|
||||
to as portlibs in the devkitPRO community). Some games requires these to operate
|
||||
properly.
|
||||
|
||||
|
||||
4.1.1) Compiling third-party libraries
|
||||
--------------------------------------
|
||||
It is strongly recommended that you use devkitPro's pacman in order to get the most recent
|
||||
portlibs for your build.
|
||||
|
||||
The following libraries can be downloaded with pacman:
|
||||
|
||||
| Library | Package |
|
||||
----------------|------------------------
|
||||
| zlib | 3ds-zlib |
|
||||
| libpng | 3ds-zlib |
|
||||
| libjpeg | 3ds-libjpeg-turbo |
|
||||
| freetype2 | 3ds-freetype |
|
||||
| libmad | 3ds-libmad |
|
||||
| libogg | 3ds-libogg |
|
||||
| tremor | 3ds-libvorbisidec |
|
||||
|
||||
At the moment of writing, `faad` and `flac` are not in the devkitPro 3DS pacman
|
||||
repository. They can be compiled by following the instructions in the section below,
|
||||
in case they cannot be found through pacman.
|
||||
|
||||
The following pacman packages are also recommended:
|
||||
- `3ds-dev`
|
||||
- `devkitpro-pkgbuild-helpers`
|
||||
|
||||
Once you have the `devkitpro-pkgbuild-helpers` package, you should be able to find
|
||||
the following scripts in your `/opt/devkitpro` folder:
|
||||
- `devkitarm.sh`
|
||||
- `3dsvars.sh`
|
||||
|
||||
Execute them one after the other (`devkitarm.sh` should be executed first), in order
|
||||
to setup your environment variables for cross-compiling.
|
||||
|
||||
After that, you can download the libraries you want to cross compile, run any autoconf
|
||||
scripts that they may have, and then they can usually be built with the following steps
|
||||
from their source directory:
|
||||
```
|
||||
$ mkdir -p $PORTLIBS
|
||||
$ ./configure --prefix=$PORTLIBS --host=arm-none-eabi --disable-shared \
|
||||
--enable-static
|
||||
$ make
|
||||
$ make install
|
||||
```
|
||||
Most libraries used can be compiled with same commands and configuration flags.
|
||||
|
||||
4.1.2) Manually setting up the environment
|
||||
------------------------------------------
|
||||
In case you don't have the helpers package downloaded, you can use the following to set-up
|
||||
your environment variables.
|
||||
|
||||
It is assumed that you have these variables already set up. If not, then do so:
|
||||
- DEVKITPRO Your root devkitPro directory
|
||||
- DEVKITARM Your root devkitARM directory (probably same as $DEVKITPRO/devkitARM)
|
||||
- CTRULIB Your root libctru directory (probably same as $DEVKITPRO/libctru)
|
||||
|
||||
In the source directory of the library:
|
||||
```
|
||||
$ export PORTLIBS=$DEVKITPRO/portlibs/3ds
|
||||
$ export PATH=$DEVKITARM/bin:$PATH
|
||||
$ export PKG_CONFIG_PATH=$PORTLIBS/lib/pkgconfig
|
||||
$ export PKG_CONFIG_LIBDIR=$PORTLIBS/lib/pkgconfig
|
||||
$ export CFLAGS="-g -march=armv6k -mtune=mpcore -mfloat-abi=hard -O2
|
||||
-mword-relocations -ffunction-sections -fdata-sections"
|
||||
$ export CPPFLAGS="-I$PORTLIBS/include -I$CTRULIB/include"
|
||||
$ export LDFLAGS="-L$PORTLIBS/lib"
|
||||
```
|
||||
|
||||
4.1.3) Note on FLAC:
|
||||
--------------------
|
||||
At the moment of writing, the `libflac` library cannot be compiled for the 3DS out of the box.
|
||||
However, the following patch (for the Nintendo Switch) can be adapted and applied to it:
|
||||
https://github.com/devkitPro/pacman-packages/tree/master/switch/flac
|
||||
|
||||
Afterwards, the library can be built with:
|
||||
```
|
||||
$ CFLAGS="${CFLAGS} -D__3DS__ " \
|
||||
./configure --prefix="${PORTLIBS_PREFIX}" --host=arm-none-eabi \
|
||||
--disable-shared --enable-static \
|
||||
--disable-xmms-plugin --disable-cpplibs \
|
||||
--disable-sse --without-ogg
|
||||
```
|
||||
|
||||
4.2) Compiling ScummVM
|
||||
----------------------
|
||||
From the root of the scummvm repository:
|
||||
```
|
||||
$ ./configure --host=3ds
|
||||
$ make
|
||||
```
|
||||
Additionally compile to specific formats to be used on the 3DS:
|
||||
```
|
||||
$ make scummvm.3dsx
|
||||
$ make scummvm.cia
|
||||
```
|
||||
Assuming everything was successful, you'll be able to find the binary
|
||||
files in the root of your scummvm folder.
|
||||
|
||||
Note: for the CIA format, you will need the 'makerom' and 'bannertool' tools which are
|
||||
not supplied with devkitPro.
|
||||
|
||||
4.3) Warning for build sizes
|
||||
---------------------------
|
||||
The above configuration command will include all game engines by default and will
|
||||
likely be too massive to run with stability using either the 3DSX or the CIA format.
|
||||
Until dynamic modules are figured out, you should configure engines like this:
|
||||
```
|
||||
$ ./configure --host=3ds --disable-all-engines--enable-engine=scumm-7-8,myst,riven, \
|
||||
sword1,sword2,sword25,sci,lure,sky,agi,agos
|
||||
```
|
||||
Choose whatever engines you want, but if the ELF's .text section exceeds ~10MB-12MB,
|
||||
you may experience crashes in memory-intensive games such as COMI, Broken Sword and Discworld 2.
|
Loading…
x
Reference in New Issue
Block a user