Homebrew [Release] ScummVM 3DS

TheCruel

Developer
OP
Banned
Joined
Dec 6, 2013
Messages
1,350
Trophies
2
XP
3,130
Country
United States
eCF75k9.png

http://scummvm.org/
https://github.com/Cruel/scummvm/tree/3ds

Downloads: 3DSX, CIA, and Free games

3DSX Users: Currently, the 3DSX build is quite large and needs to utilize a large app installed on your 3ds. If you have used any of the similarly large RetroArch emulators, you have nothing to worry about. The easiest target to use is the Youtube app, so if you have that installed, you're ready to go.

CIA Users: You will first need a DSP dump on your SD card.
This is a one-time process and is needed for all homebrew CIAs that use DSP audio.

Everyone: There are still bugs being fixed. But do NOT report a game as not working before trying it on your PC's ScummVM to make sure it work.

Working on now:
- Keymapper
- GPU optimization(s)

## Version 0.3
* Added:
- C-pad can control the cursor
- Options dialog when you press SELECT
- Option to turn off one of the screens
- Option to stretch game to fit screen(s)
- Snapping to edges for touchscreen

* Fixed:
- Sleeping/resuming is now smoother and won't open the main menu

## Version 0.2
* Added:
- CIA build now has all engines compiled.
- Support for sleeping/suspending app

* Changed/Fixed:
- Implemented timer module to fix most the audio problems
- Got CIA build working properly
- Removed focus area zooming in SCUMM games. Made top screen a fixed cropping.

## Version 0.1
Initial version

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
- libogg
- 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.
6bFt8oc.png
xo2P0fi.png
QVVbh2U.png
TlsjSRf.png
IG8qTIT.png
UtECfVX.png
ViRZHGI.png
 
Last edited by TheCruel,

hellionz

Well-Known Member
Member
Joined
Feb 24, 2007
Messages
630
Trophies
1
XP
791
Country
finally....i was waiting for an ScummVM on 3ds...i love it on NDS....well lets see how it works...now a CIA version could be so cool

Greetings!!
 

nop90

Well-Known Member
Member
Joined
Jan 11, 2014
Messages
1,556
Trophies
0
Location
Rome
XP
3,036
Country
Italy
I need help on how install and launch it.

I'm using the gridlauncher and both in the 3ds forlder and in other locathions the launcher show me an empy foleder instead of launcing le 3dsx
 

jpxdude

Well-Known Member
Member
Joined
May 5, 2006
Messages
788
Trophies
0
Age
43
Location
London UK
Website
www.geekpower.co.uk
XP
451
Country
I quickly tried my talkie version of Monkey Island 2, and it works brilliantly! That zoom effect thing on the top screen is pretty cool, but a little off putting, is there a way to turn it off? Can't wait to put this through it's paces on my lunch break! Thanks again!

-J
 
  • Like
Reactions: SLiV3R

shinyquagsire23

SALT/Sm4sh Leak Guy
Member
Joined
Nov 18, 2012
Messages
1,977
Trophies
2
Age
26
Location
Las Vegas
XP
3,765
Country
United States
yeah I tried it but though it says "cross compiling for 3ds" it still tells me to run ./configure when I try to run make
Oh yeah, it would complain about the 3DS not being supported or some deal with ./configure, I commented out the exit 1 after that message in configure and so far it's built fine, except it's expecting libmad which I don't have.
 

SLiV3R

3DS Friend Code: 0473-9069-2206
Member
Joined
Jan 9, 2006
Messages
2,319
Trophies
2
Website
soundcloud.com
XP
1,847
Country
I also hope someone manages to compile a CIA version! :)

It would also be great to be able to turn off the upper screen!

This is the best release in the last couple of months in the 3DS scene :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/@legolambs