Homebrew [Release] ScummVM 3DS

N7Kopper

Lest we forget... what Nazi stood for.
Member
Joined
Aug 24, 2014
Messages
975
Trophies
0
Age
30
XP
1,295
Country
United Kingdom
f it was not listed on my release page, it's because I purposefully did not include it.
That build is 13MB, what I consider to be a risky upper limit for memory intensive games. A build including all engines would surpass 27MB, and almost nothing would be playable due to no heap left.
If anyone wants to improve on that, dynamic plugins are outstanding for this port.

That being said, I made another build with the inverse engine list (it is 18MB, stability is not guaranteed).
If anyone really starts updating this for 3DS, it will need N3DS support. Having more memory for the active game than the O3DS has total would be really helpful.

that said i would totally help test the quest for glory games on n3ds, put that mt-32 emulator through its paces
 
Last edited by N7Kopper,

Nitrus

Active Member
Newcomer
Joined
Sep 27, 2018
Messages
28
Trophies
0
Age
44
XP
329
Country
United States
If anyone really starts updating this for 3DS, it will need N3DS support.
The old releases (as well as these) should already have support for the N3DS, although the old ones might not have included support for SCI Engine (that would allow you to play the QFG games).

that said i would totally help test the quest for glory games on n3ds, put that mt-32 emulator through its paces
I just tested Quest for Glory 1 (the EGA version from GOG), it works fine on the first few scenes at least.
Make sure to use the first build I made if you want to play QFG (not the Alt one) as that's the one that has SCI support.
I don't know if all of them will work and not sure about how faithful the MT-32 is, I've never owned a Roland device myself :blush:
 

Mr.Wiizard

Member
Newcomer
Joined
Apr 3, 2014
Messages
17
Trophies
0
Age
40
XP
114
Country
United States
That build is 13MB, what I consider to be a risky upper limit for memory intensive games. A build including all engines would surpass 27MB, and almost nothing would be playable due to no heap left.
I tested BBVS and it played the cutscenes great and I'd also be able to play the game for a couple minutes before it crashed at random points. Probably due to the memory limitations you mentioned previously?

I have a couple questions about builds. Would it be possible to make an alternate build and install both versions to the 3DS at the same time? It's not the most optimal solution, but I wouldn't mind having two versions installed if it means I don't have to keep installing different versions to play different games, like I'm doing now. You're original build works very well, and the only engines from the alt build I'm very interested in are the sci's and bbvs.
Also, are there any tutorials to create my own scummvm 3ds cia? I'd love to learn how to mess around a bit. I have an idea how to customize scummvm itself, I just dont understand how to turn it into a cia and all that fun stuff.

Thanks
 

Nitrus

Active Member
Newcomer
Joined
Sep 27, 2018
Messages
28
Trophies
0
Age
44
XP
329
Country
United States
Yes, you will need devkitPro/devkitARM:
https://devkitpro.org/wiki/Getting_Started
...and you will need to follow the cross-compilation instructions from the README here:
https://github.com/scummvm/scummvm/tree/master/backends/platform/3ds
(the README is a combination of what the original author wrote, and what I added to it)

You can have two separate *.3dsx packages at any given time, and you could produce different *.cias if you alter the app/scummvm.rsf file.
I also re-instated argument support because I wanted to try out having shortcuts that could be loaded in a forwarder manner, but I didn't have time to play around with that (nor do I have the time now).

Fair warning, looking at the BBVS engine, it seems to preload all assets for a given scene. It might prove difficult if not impossible to run as-is with the 3DS' memory limitations.
I'll have to do some tests with an N3DS if I manage to get my hands on one.

Note: PORTLIBS are third-party libraries such as zlib, libpng etc. that need to be cross compiled for the 3DS. If you want to add support for something that is not included in pacman, you will need to cross-compile it yourself. I think only FLAC had issues, for which I added some notes in that README.

EDIT: If you don't have a native UNIX environment, I wouldn't really advise going the msys2 route for Windows. Cross-compilation proved to be quite slow for me when I tried it.
Personally, I had no native UNIX OS at the time when I tried this, so I installed Ubuntu (yes, yes I know) in VirtualBox, and used that. It was significantly faster than msys2, at least in my experience.
 
Last edited by Nitrus,

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,591
Country
Netherlands
The screen tearing issues are finally solved with this.
Thanks for updating this @Nitrus

Like you already mentioned, argument support is awesome. Already made some forwarders for the Neverhood and COMI (with the old release, single engine) and especially the Neverhood seems a lot more stable this way. Havn't tried other engines.. yet

Now let's play with that BBVS engine! Thanks again!
 
  • Like
Reactions: Nitrus

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,591
Country
Netherlands
Just in case anyone is wondering.. you can already use the commandline on the current .3dsx version.

Here's a basic example for a basic .xml shortcut:
Code:
<name>Curse of Monkey Island</name>
<executable>/3ds/ScummVM/scummvm.3dsx</executable>
<arg>comi</arg>

The argument 'comi' is the Game ID of the game. In this case it's 'Curse of Monkey island'.
To use it like this the game needs to be set-up in scummvm first.
 
  • Like
Reactions: Nitrus

Turbinetester

Well-Known Member
Newcomer
Joined
Aug 31, 2016
Messages
47
Trophies
0
XP
209
Country
United States
I played through Beneath a Steel Sky with no issues. I tried Simon the Sorcerer 1 last night and it got really laggy in the tavern scene with the barkeep and the fireplace. I noticed that my versions have either OGG or WAV. Will compressing them to mp3 and reinstalling help with lag on the Simon and other games? Is there an updated compatibility table? Thanks and i apologize if these questions have been asked previously, i'm still trying to read through the 20 pages of past stuff.
 

Nitrus

Active Member
Newcomer
Joined
Sep 27, 2018
Messages
28
Trophies
0
Age
44
XP
329
Country
United States
I played through Beneath a Steel Sky with no issues. I tried Simon the Sorcerer 1 last night and it got really laggy in the tavern scene with the barkeep and the fireplace. I noticed that my versions have either OGG or WAV. Will compressing them to mp3 and reinstalling help with lag on the Simon and other games? Is there an updated compatibility table? Thanks and i apologize if these questions have been asked previously, i'm still trying to read through the 20 pages of past stuff.
Not sure if converting to MP3 will help, but I can say that I had the same experience with StS2 as well (both use the AGOS engine).
No, I've not done any improvements to thread handling, and I especially disliked the audio thread when I last looked at it. It could always be just how some engines work generally.
There could be timing issues in the code I guess, which would have been there in the initial versions as well, as I didn't make any changes there.
There are some bits in the code that I couldn't fully understand why they were done as they were (seemingly arbitrary delays here and there), and that is either because of my lack of 3DS homebrew experience, or it could be just unpolished code.

I put only relatively minor changes regarding drawing and framebuffer clearing into these releases, and various fixes to resolve deprecation, with catching up to recent ScummVM version as the main goal in mind and updating this to use the latest devkit libraries.

There is no updated compatibility chart to my knowledge.

EDIT: If someone is so inclined and willing to contribute, I wasn't really sure about the idea behind lines 38 and 58 here:
https://git.io/fphjH
EDIT2:
Also, what is the purpose to this delay here: https://git.io/fpjeX (line 240 if it doesn't scroll)
EDIT3:
I also wonder if "32 * 1048" here is a remnant/mistake of a previous experiment with 2048 for a stack size of 64.
https://git.io/fpjvk

I've not really gotten around to playing with this that much, other than making the port actually working again.
 
Last edited by Nitrus,

Turbinetester

Well-Known Member
Newcomer
Joined
Aug 31, 2016
Messages
47
Trophies
0
XP
209
Country
United States
Thanks for the quick reply. Are there any settings i should change in ScummVM settings to improve the performance? Currently i'm just using default for everything.
 

Turbinetester

Well-Known Member
Newcomer
Joined
Aug 31, 2016
Messages
47
Trophies
0
XP
209
Country
United States
playing through “the dig” and I’m getting a freeze when going up the stairs near the water. Not sure how to report a bug or what to try and grab from a screen. Is there anything I can do to try and help with getting it to be playable? I'm using 1.9.0 if it helps.
 

Nitrus

Active Member
Newcomer
Joined
Sep 27, 2018
Messages
28
Trophies
0
Age
44
XP
329
Country
United States
As ScummVM does not have an active 3DS maintainer, I don't think you'd find much support on their forums or iRC.
The thing is, I've had this same issue on the PSP with The Dig (and up the stairs near the water seems very familiar), and it was not resolved.
I'm not entirely certain if it's a matter of the 3DS port, but rather a deadlock in the scumm engine.

The only thing that I can suggest right now is for you to try it with the new builds (you can use the *.3dsx in order not to overwrite your previous installation if you don't want to, and with some luck the savegame _might_ work).
 

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,591
Country
Netherlands
Made some stand-alone .cia forwarders with the latest scummvm and a game included in the ROMFS.

Utilizing ROMFS has a great performance increase, so it seems.

COMI, completely softlocked at the song in chapter 3 before, now it runs perfect for the whole scene and song.

Got bbvs running stable, including the mini-games, while having it's resources included in the .cia's ROMFS.
Tried it with just scummvm compiled with a single bbvs engine without ROMFS, but it still crashed at random and wouln't play the mini-games.

It seems some of the more demanding games run fine this way. If someone is interested, i'll be happy to share some of the changes and assets made. You'll still have to build your own packages tho. copy-write and stuff. So make sure you know how to compile scummvm for 3ds.
 

TheUltimaXtreme

Member
Newcomer
Joined
Mar 16, 2016
Messages
11
Trophies
0
Age
27
XP
103
Country
United States
So just to ask, are there specific settings to make Neverhood run, or is it just a case of a forwarder CIA?
I can't run the 3dsx file because I'm working with the Rosalina and Luma stuff on 11.10.

Sent from my H3123 using Tapatalk
 

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,591
Country
Netherlands
So just to ask, are there specific settings to make Neverhood run, or is it just a case of a forwarder CIA?
I can't run the 3dsx file because I'm working with the Rosalina and Luma stuff on 11.10.

Sent from my H3123 using Tapatalk

The engine required to run the Neverhood isn't enabled in the .cia build Nitrus provided.

If you're able to compile scummvm yourself just enable it by running:
Code:
./configure --host=3ds --disable-all-engines --enable-engine=neverhood
make scummvm.cia
This will build a .cia only capable of running the neverhood.

Code:
./configure --host=3ds --disable-all-engines --enable-engine=scumm-7-8,myst,riven,sword1,sword2,sword25,sci,lure,sky,agi,agos,neverhood
make scummvm.cia
This will build a .cia capable of running most common games including the Neverhood.

If you're unable to compile scummvm, let me know..
 

kavakava

New Member
Newbie
Joined
Jun 1, 2019
Messages
3
Trophies
0
Age
28
XP
86
Country
Canada
^ Unfortunately, The Neverhood crashes on launch for me, using either of the 0.3.5-alt builds. i get an "An exception occurred" message - i can provide more info if it matters. I too am using 11.10 Luma / Rosalina, on the N3DS.

Looking through this thread though, it seems to have worked well at some point? though none of the previous builds seem to be compatible. unless im doing it wrong, though everything else i have tried seems to work well enough.

I too would love to see this project developed further
 

Lexar

Active Member
Newcomer
Joined
Jan 30, 2016
Messages
44
Trophies
0
Age
29
XP
138
Country
France
Ty for your amazing work.
Does its possible to repleace my save .sg0 & .sg1 to your save without type ?
Is it possible to put Zoom system in R & L Button ? exemple : R for Zoom to mouse & L for go back to initial size
 
Last edited by Lexar,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Nut on the hill