Unofficial 3DS ScummVM builds

Discussion in '3DS - Homebrew Development and Emulators' started by MrHuu, Jun 13, 2019.

  1. Jmbenetti

    Jmbenetti Member

    Newcomer
    1
    May 14, 2019
    Argentina
    Thanks again! It worked! I couldn't run bannertool because I couldn't update gclib to 2.29, but I made my own banner with the same tool on Windows and I modified the script to make it run. :)
     
  2. Nitrus

    Nitrus Member

    Newcomer
    2
    Sep 27, 2018
    United States
    I've had the same issue with bannertool before. The 1.1.0 release should work fine
     
    Jmbenetti likes this.
  3. Jmbenetti

    Jmbenetti Member

    Newcomer
    1
    May 14, 2019
    Argentina
    I'll check it, thanks!
     
  4. Mihailo

    Mihailo Newbie

    Newcomer
    1
    Aug 17, 2019
    Serbia, Republic of
    I'm a new 2ds user and I absolutely love this port! Just a quick question, can I build a cia for other games without banners and icons or do I need to make them first?
     
  5. MrHuu
    OP

    MrHuu GBAtemp Regular

    Member
    4
    Sep 19, 2015
    Netherlands
    No, not straight away. Images are required to build, you could use a placeholder however...
    But the artwork is basically the last part in adding a game.

    For other games to be compiled (and setup right) you have to add the gameID to the script and code.

    As any other game would require scummvm to be configured with an other core, and with an other argument to be able to start the game.

    If you can't or don't want to to do this, let me know, i'll add a few ID's.
     
  6. Mihailo

    Mihailo Newbie

    Newcomer
    1
    Aug 17, 2019
    Serbia, Republic of
    For starters I thought about adding Quest for Glory 4. If I understand correctly, I should add another elif line and set enable engine as SCI or SCI32 (ill check the scummvm wiki)? As for banners, I would have to look at documentation. I know a bit about bash scripting since I work as a sysadmin, but graphics are not my forte. :)
     
  7. MrHuu
    OP

    MrHuu GBAtemp Regular

    Member
    4
    Sep 19, 2015
    Netherlands
    I've pushed a few changes to the Github. This makes the processes of adding ID's a bit easier.

    An ID for Quest for Glory 4 is also added. No artwork for now.


    To add your own:

    - Add an ID with the correct config / engine like this:
    https://github.com/MrHuu/scummvm/blob/master/build_custom_3ds.sh#L101

    - Add a game description and Unique Application ID like this:
    https://github.com/MrHuu/scummvm/blob/master/backends/platform/3ds/app/game.info#L79

    -Add a folder with the game ID, with icon, banner, gamefiles (inside folder 'game') here:
    https://github.com/MrHuu/scummvm/tree/master/backends/platform/3ds/app

    Now you can run './build_custom_3ds.sh QFG4' to build the .cia
     
  8. lincruste

    lincruste GBAtemp Fan

    Member
    5
    Jan 13, 2008
    Antarctica
    france
    Wait a minute. So now we can run any game supported by ScummVM 2.x official releases ?
    Does it mean SCI games can be run on 3DS, like Gabriel Knight , Rama and Phantasmagoria ?
     
  9. MrHuu
    OP

    MrHuu GBAtemp Regular

    Member
    4
    Sep 19, 2015
    Netherlands
    Since @Nitrus updated 3DS builds on the official git, it's possible to compile the latest source.

    So, yes, those are supported.

    I've used the fork available here to create a .cia build with Phantasmagoria (2.17Gb), seems to be running near perfect!
     
    lincruste likes this.
  10. Mihailo

    Mihailo Newbie

    Newcomer
    1
    Aug 17, 2019
    Serbia, Republic of
    Thank you for adding the game! Everything works, I even managed to create a banner and icon.
     
    MrHuu likes this.
  11. MrHuu
    OP

    MrHuu GBAtemp Regular

    Member
    4
    Sep 19, 2015
    Netherlands
    @lincruste I've tested a few other games:

    -- Supported in the latest scummvm builds
    -Gabriel Knight
    -Gabriel Knight 2
    -Phantasmagoria 2

    They all seem to run fine so far. With some minor audio crackling and occasional frame drop upon loading a scene. Pretty sure similar SCI games will have similar results.

    -- Unsupported in the latest scummvm builds
    -Beavis and Butt-head Do U

    Does run, but crashes at certain events.
     
    lincruste likes this.
  12. lincruste

    lincruste GBAtemp Fan

    Member
    5
    Jan 13, 2008
    Antarctica
    france
    Thank you so much for your feedback ! I came back home yesterday and will give Sierra's Rama a try tonight.
     
    MrHuu likes this.
  13. lincruste

    lincruste GBAtemp Fan

    Member
    5
    Jan 13, 2008
    Antarctica
    france
    Oh fuck I didn't understand I had to compile this stuff by myself.
    Well I don't have a GNU/Linux VM nor any devkitpro toolchain ready so I'll pass on this one.
    Very good to know it's doable at last, thanks for making this possible !
     
  14. Nitrus

    Nitrus Member

    Newcomer
    2
    Sep 27, 2018
    United States
    @lincruste if you're only looking at playing RAMA, you can try with the build from this thread
    This does not have animated banners and is not at current ScummVM HEAD (9-10 months old at this point, where does time fly), but should be sufficient to run SCI games.
     
    lincruste likes this.
  15. lincruste

    lincruste GBAtemp Fan

    Member
    5
    Jan 13, 2008
    Antarctica
    france
    @Nitrus Thank you for the link, I'll try your pre-compiled binary tonight and will update this post.
    By the way I have a question (as a total noob in programming):
    Is ScummVM "core" codebase ready to compile on 3DS with porting only requiring a "frontend" work, or do you have to hack all of the code everytime there is an update ?
     
  16. Nitrus

    Nitrus Member

    Newcomer
    2
    Sep 27, 2018
    United States
    The official ScummVM codebase was updated with what was necessary to make builds for the 3DS. The port was broken/uncompile-able for a number of years, at least since DevkitPro's upgrade to pacman, but should be back on track since November 2018.

    ScummVM has one frontend as far as I'm aware, however it has backend ports for every platform it supports (3DS, Android, SDL, PSP, WII...).
    This usually means that the code must be cross-compiled (using a compiler and libraries for the system you want to compile for).
    As a quick and dirty explanation, ScummVM has certain core calls that need to be translated to the system-specific equivalents in order for all of it to come together, and that's roughly what the ports are.

    This means you can clone the master branch from the official Github, and you could follow the instructions in the backends/platform/3ds/README in order to make your own build.
    There aren't official ScummVM daily builds for the 3DS likely because they don't have an active maintainer for the system (a person who could look at port-specific bugs on a regular basis), or more importantly because it isn't possible (or wasn't when I last looked at it) to create a 3DS build that includes all the engines, because of space restrictions.
    If the port supported dynamic plugins this would have been possible, but as far as I know it never did.
    ---
    In any case, if you took the most recent ScummVM code and follow the instructions, you should be able to compile it as-is.
    No further "hacking" would be required unless an update to the core code or configure script has somehow broken the 3DS backend. I don't think that's the case today, albeit I haven't compiled it in a while.

    This thread (that we're talking in) is about making your own game forwarders for individual games. That's not exactly part of ScummVM as it stands today.
    So if you would want to run ScummVM through HBLauncher or as an app from the Home menu, you could just compile from the official ScummVM source.
    However if you would like to have a nice icon, banner and potentially music on the Home menu for every individual game you have, you should use @MrHuu's method supplied in this thread, in addition to being able to compile the source code.
    (from memory, I believe with MrHuu's fork here you might enjoy a slight performance boost for resource-intensive games)

    Even if you updated your tree with the most recent code from the official ScummVM master, you should still be able to continue this method to create game forwarders.
     
    Last edited by Nitrus, Aug 26, 2019
    lincruste, Mihailo and MrHuu like this.
  17. MrHuu
    OP

    MrHuu GBAtemp Regular

    Member
    4
    Sep 19, 2015
    Netherlands
    The main difference between regular builds from the latest source, and these builds, is the inclusion of the game inside the .cia container. (also works fine for .3dsx btw)
    This basically packages all scummvm and game files into one big file.
    So instead of having to open, read and close a lot of small files on a slow SD, you're opening it once and just read the data when needed.

    Speed difference is in loading times. On startup and in-game (only resource heavy games).
     
    Nitrus and Mihailo like this.
  18. MarioKartFan

    MarioKartFan Newbie

    Newcomer
    1
    Aug 27, 2019
    Algeria
    @MrHuu Thanks so much for your work. I attempted to modify your script (I had to modify an additional file because the script spit out an error) to include Gabriel Knight. Unfortunately, when I run your script, I get the following error at the very end. It appears to be a Makerom issue. Any thoughts?

    EDIT: NEVERMIND. I'M AN IDIOT. I FIGURED IT OUT.
     
    Last edited by MarioKartFan, Aug 29, 2019
    MrHuu likes this.
  19. MarioKartFan

    MarioKartFan Newbie

    Newcomer
    1
    Aug 27, 2019
    Algeria
    @MrHuu Can you please provide additional information on how you configured your script to build Gabriel Knight? I got it working with Quest for Glory IV, but Gabriel Knight crashes upon launch. I assume sci32 is the correct engine for that game, based upon what I have read.
     
  20. MrHuu
    OP

    MrHuu GBAtemp Regular

    Member
    4
    Sep 19, 2015
    Netherlands
    ouwch.. i know it already takes long enough to compile and install.

    Which game ID did you add? The ID's for Gabriel Knight are GK1 and GK2.
    For both games you can use sci32.
    Just enabling sci32 enables all sci engines. So unless you're sure it's a sci v1 game, just use sci32.

    I added it in the way explained a few posts back. link

    I only tested the Gabriel Knight 1 floppy version, and GK2.

    If you're unsure if you got the right gameID, just add the game to an other (PC) build of scummvm and check the settings or .ini file. Maybe the cd version requires GK1-cd or something.

    I don't have the cd version available now, but i'll make sure to check it out.
     
Loading...