Homebrew Unofficial 3DS ScummVM builds

MrHuu

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,588
Country
Netherlands
7287K3e.png

Github: https://github.com/MrHuu/scummvm

Here's a customized version of ScummVM for the 3DS. This will allow you to build your own stand-alone .cia games without to much effort.
I've included a simple bash script which takes care of most actions.

Currently, assets for 15 games are included. More will follow when i'm able to create more assets (banners/icons)
COMI DIG FT SAMNMAX MONKEY MONKEY2 TENTACLE DW DW2 BBVS MYST NEVERHOOD QUEEN RIVEN TOON

Save-games and scummvm.ini will be generated in 'sdmc:/3ds/data/scummvm/*GAMEID/'


Issues:
A few minor issues still remain as this is still very much a WIP.
-scummvm settings are not being saved on first launch.
A workaround for this is to manually add the game ID to the .ini file generated at first launch.
[scummvm]
versioninfo=2.1.0git5394-g5c8c1ca95c-dirty

[bbvs]
gameid=bbvs
With the gameid added, saving settings won't be an issue anymore.


Instructions:

-Copy gamefiles to the scummvm source folder in: 'scummvm/backends/platform/3ds/app/*GAMEID*/game'
-Run './build_custom_3ds.sh *GAMEID*'

*Replace *GAMEID* with the ID of the desired game, e.g. BBVS (uppercase!)

The script will copy all required files and build the custom .cia in the 'pkg' folder.


Screenshots:
L8C489j.png
qcRetIU.png
nWcrckM.png



Credits:

All of the Team ScummVM members ofcourse!
 

Jmbenetti

Member
Newcomer
Joined
May 14, 2019
Messages
16
Trophies
0
Age
41
XP
221
Country
Argentina
Beautiful! I've been waiting for this, great Jon! I believe I'll be trying it next week, as I'm on a travel now.
One question: on the regular version of Scummvm for 3ds I couldn't play Monkey Island 2, as it won't let me open the virtual keyboard for the copy protección. Does it work on your build? Thanks.
 

MrHuu

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,588
Country
Netherlands
Beautiful! I've been waiting for this, great Jon! I believe I'll be trying it next week, as I'm on a travel now.
One question: on the regular version of Scummvm for 3ds I couldn't play Monkey Island 2, as it won't let me open the virtual keyboard for the copy protección. Does it work on your build? Thanks.

Yes, virtual keyboard works fine. All required files will be included in the .cia's romfs.
On regular scummvm make sure you have this file available on your sd: 'sdmc:/3ds/scummvm/kb/vkeybd_small.zip'

Also, are you familiar with the Ultimate Talkie versions of Monkey Island 1 & 2? Those have the copy protection removed.
http://www.gratissaugen.de/ultimatetalkies/

I love you.

Love you more.
 

Rajo

Active Member
Newcomer
Joined
May 24, 2019
Messages
29
Trophies
0
Age
42
XP
165
Country
Czech Republic
I'm getting this on compilation

Code:
TFLibrary::TTFLibrary()':

/Users/stooovie/Downloads/scummvm-master/graphics/fonts/ttf.cpp:87: undefined reference to `FT_Init_FreeType'

/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/8.3.0/../../../../arm-none-eabi/bin/ld: /Users/stooovie/Downloads/scummvm-master/graphics/fonts/ttf.cpp:87: undefined reference to `FT_Init_FreeType'

/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/8.3.0/../../../../arm-none-eabi/bin/ld: graphics/libgraphics.a(ttf.o): in function `Graphics::TTFFont::getKerningOffset(unsigned int, unsigned int) const':

/Users/stooovie/Downloads/scummvm-master/graphics/fonts/ttf.cpp:447: undefined reference to `FT_Get_Kerning'

collect2: error: ld returned 1 exit status

Any tips? I'm on Mac, devkitPro is installed, Freetype (which is what the error should pertain to) too.

Thanks!
 

RedL

Well-Known Member
Member
Joined
Aug 5, 2018
Messages
110
Trophies
0
Age
36
XP
700
Country
France
  • Like
Reactions: TurdPooCharger

Rajo

Active Member
Newcomer
Joined
May 24, 2019
Messages
29
Trophies
0
Age
42
XP
165
Country
Czech Republic
It's an interpreter of the classic adventure games. The scripts and assets are from the original games but scummvm is the actual engine. This means the games can be run on almost any semi-modern system as it's interpreted, not emulated (emulation is more CPU-intensive).
 

MrHuu

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,588
Country
Netherlands
I'm getting this on compilation

Code:
TFLibrary::TTFLibrary()':

/Users/stooovie/Downloads/scummvm-master/graphics/fonts/ttf.cpp:87: undefined reference to `FT_Init_FreeType'

/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/8.3.0/../../../../arm-none-eabi/bin/ld: /Users/stooovie/Downloads/scummvm-master/graphics/fonts/ttf.cpp:87: undefined reference to `FT_Init_FreeType'

/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/8.3.0/../../../../arm-none-eabi/bin/ld: graphics/libgraphics.a(ttf.o): in function `Graphics::TTFFont::getKerningOffset(unsigned int, unsigned int) const':

/Users/stooovie/Downloads/scummvm-master/graphics/fonts/ttf.cpp:447: undefined reference to `FT_Get_Kerning'

collect2: error: ld returned 1 exit status

Any tips? I'm on Mac, devkitPro is installed, Freetype (which is what the error should pertain to) too.

Thanks!

It seems it can't find the FreeType lib, it can be installed as a portlib from DevkitPro's pacman.
It looks for 'Freetype-config', and the default location for it would be './devkitpro/portlibs/3ds/bin' if you installed it using pacman.

Instead of running the script, just run:
Code:
./configure --host=3ds
You'll get a list of found library's scummvm will use. If it doesn't find the FreeType lib, try pointing to it manually:
Code:
./configure --host=3ds --with-freetype2-prefix=/opt/devkitpro/portlibs/3ds/bin
Adjust it to make it point to your config file.

Make sure the path to your configurations is added to your $PATH variable.

Or force it in the scummvm configure file: https://github.com/MrHuu/scummvm/blob/master/configure#L3003
Add the line:
Code:
_freetypepath="/opt/devkitpro/portlibs/3ds/bin"
Again, adjust it to make it point to your config file.

Also, the first few lines of the script (build_custom_3ds.sh) are used to set the environment, this may differ from your installation. Remove of change those if needed.
 
  • Like
Reactions: Rajo

Rajo

Active Member
Newcomer
Joined
May 24, 2019
Messages
29
Trophies
0
Age
42
XP
165
Country
Czech Republic
It's weird, "./configure --host=3ds" gives me "Looking C++ compiler... none found!" but "./build_custom_3ds.sh MONKEY" finds
arm-none-eabi-g++ and goes on to work, resulting in the above error.

I don't want to rob you of your time, it's probably over my head :)
 

MrHuu

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,588
Country
Netherlands
It's weird, "./configure --host=3ds" gives me "Looking C++ compiler... none found!" but "./build_custom_3ds.sh MONKEY" finds
arm-none-eabi-g++ and goes on to work, resulting in the above error.

I don't want to rob you of your time, it's probably over my head :)

The first lines in the script are used to setup your devkitpro environment, required for scummvm.
https://github.com/MrHuu/scummvm/blob/master/build_custom_3ds.sh#L3-L12

Code:
export DEVKITPRO=/opt/devkitpro
export DEVKITARM=$DEVKITPRO/devkitARM
export CTRULIB=$DEVKITPRO/libctru

export PATH=$DEVKITARM/bin:$PATH
export PATH=$DEVKITPRO/tools/bin:$PATH
export PORTLIBS=$DEVKITPRO/portlibs/3ds

Adjust to your setup and enter these lines manually in your terminal once, before running configure.

Info on how to compile scummvm can also be found at the end of the README.md.
 

Rajo

Active Member
Newcomer
Joined
May 24, 2019
Messages
29
Trophies
0
Age
42
XP
165
Country
Czech Republic
./configure --host=3ds DOES list Freetype as YES, but compile gives me the original error anyway. I give up, thanks for your time.
 

MrHuu

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,588
Country
Netherlands
Don't give up that easily! You still have some options.

First one, try to add the lib manually:

At https://github.com/MrHuu/scummvm/blob/master/configure#L2509
Replace:
Code:
append_var LIBS "-lcitro3d -lctru"
With:
Code:
append_var LIBS "-lcitro3d -lctru -lfreetype"
append_var CXXFLAGS "-I$DEVKITPRO/portlibs/3ds/include/freetype2/"

That should definitely include the lib.

Or, Second, try it with the lib disabled.

At https://github.com/MrHuu/scummvm/blob/master/configure#L3003
Add:
Code:
_freetype2=no

Some engines may need it tho..

Please feel free to ask any question, could also be useful for other users who may run into similar issues.
 
  • Like
Reactions: Rajo

Rajo

Active Member
Newcomer
Joined
May 24, 2019
Messages
29
Trophies
0
Age
42
XP
165
Country
Czech Republic
My /opt/devkitpro folder is missing the required "portlibs" folder. Pacman was installed without any errors.

EDIT: I'll rather go through the readme more thoroughly one more time
 
Last edited by Rajo,

Jmbenetti

Member
Newcomer
Joined
May 14, 2019
Messages
16
Trophies
0
Age
41
XP
221
Country
Argentina
Thanks for your work and your time. I've been trying tu use your script, but I can't get it. It gives me two g++ errors:

unrecognized command line option '-mworld-relocations'
and
unrecognized command line option '-mfloat-abi=hard'

I can't get through this and Google has no results for that errors. I thought it was a problem with the g++ version, but I updated it, and no luck.

Thanks again.
 

Nitrus

Active Member
Newcomer
Joined
Sep 27, 2018
Messages
28
Trophies
0
Age
44
XP
329
Country
United States
@Jmbenetti when you first run the script, it should print out the ./configure output.
Your first two lines should say:
Running ScummVM configure...
Looking for C++ compiler... arm-none-eabi-g++

Is that the case? If not, there might be a problem with your devkitPro installation.
EDIT: Also, it might be worth saying what your OS is.
EDIT2: In case devkitPro is installed in a different location for your OS, or you purposefully installed it elsewhere, take a look at the build script with a text editor, and correct the export paths at its very top.
 
Last edited by Nitrus,
  • Like
Reactions: Jmbenetti

Jmbenetti

Member
Newcomer
Joined
May 14, 2019
Messages
16
Trophies
0
Age
41
XP
221
Country
Argentina
Thanks! I'm on Linux Mint. It couldn't find the compiler even after installing Devkitpro, so I forced $CXX yo my g++ path. I'll check what you say :)
 

Nitrus

Active Member
Newcomer
Joined
Sep 27, 2018
Messages
28
Trophies
0
Age
44
XP
329
Country
United States
Allright, Mint is Debian, not sure how you installed devkitPro though it should be enough to download the .deb package from here:
https://github.com/devkitPro/pacman/releases/tag/devkitpro-pacman-1.0.1
... and then run:
Code:
sudo dpkg -i devkitpro-pacman.deb
I guess it would be useful to see if the '/opt/devkitpro' path exists at all, and if it has all the files inside.
The script that MrHuu has written should handle the exports on its own.

And if you haven't done so already, install the following packages:
Code:
dkp-pacman -S 3ds-dev
dkp-pacman -S devkitpro-pkgbuild-helpers
dkp-pacman -S 3ds-zlib
dkp-pacman -S 3ds-libpng
dkp-pacman -S 3ds-libjpeg-turbo
dkp-pacman -S 3ds-freetype
dkp-pacman -S 3ds-libmad
dkp-pacman -S 3ds-libogg
dkp-pacman -S 3ds-libvorbisidec
dkp-pacman -S 3ds-flac
 
Last edited by Nitrus,

Jmbenetti

Member
Newcomer
Joined
May 14, 2019
Messages
16
Trophies
0
Age
41
XP
221
Country
Argentina
Thanks for your help! I had to set the environment variables on the bash profile. Your script is running now. I hope it works :)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Veho @ Veho:
    Mkay.
  • Veho @ Veho:
    I just ordered another package from China just to spite you.
  • SylverReZ @ SylverReZ:
    Communism lol
  • SylverReZ @ SylverReZ:
    OUR products
  • The Real Jdbye @ The Real Jdbye:
    @LeoTCK actually good quality products are dying out because they can't compete with dropshipped chinese crap
    +2
  • BakerMan @ BakerMan:
    @LeoTCK is your partner the sascrotch or smth?
  • Xdqwerty @ Xdqwerty:
    Good morning
  • Xdqwerty @ Xdqwerty:
    Out of nowhere I got several scars on my forearm and part of my arm and it really itches.
  • AdRoz78 @ AdRoz78:
    Hey, I bought a modchip today and it says "New 2040plus" in the top left corner. Is this a legit chip or was I scammed?
  • Veho @ Veho:
    @AdRoz78 start a thread and post a photo of the chip.
    +2
  • Xdqwerty @ Xdqwerty:
    Yawn
  • S @ salazarcosplay:
    and good morning everyone
    +1
  • K3Nv2 @ K3Nv2:
    @BakerMan, his partner is Luke
  • Sicklyboy @ Sicklyboy:
    Sup nerds
    +1
  • Flame @ Flame:
    oh hi, Sickly
  • K3Nv2 @ K3Nv2:
    Oh hi flame
  • S @ salazarcosplay:
    @K3Nv2 what was your ps4 situation
  • S @ salazarcosplay:
    did you always have a ps4 you never updated
  • S @ salazarcosplay:
    or were you able to get new ps4 tracking it \
    as soon as the hack was announced
  • S @ salazarcosplay:
    or did you have to find a used one with the lower firm ware that was not updated
  • K3Nv2 @ K3Nv2:
    I got this ps4 at launch and never updated since 9.0
  • K3Nv2 @ K3Nv2:
    You got a good chance of buying a used one and asking the seller how often they used or even ask for a picteof not updating just tell them don't update
    K3Nv2 @ K3Nv2: You got a good chance of buying a used one and asking the seller how often they used or even ask...