Homebrew [Release] ScummVM 3DS

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
563
Trophies
0
Age
37
XP
1,619
Country
Netherlands
While tinygl already runs, none of the games mentioned are actually functional on 3ds.

Due to memory limitations and slow speeds, tinygl could be adapted to have some functions taken over by hardware. This is more in line of what i meant.

Please, do correct me if i'm wrong.
The available gl implementation, picagl, is based on gl 1.1 core. A few functions are missing but are available as ARB extensions.
But i havn't been succesfull in utilizing them.
It' been a while, but if i remember correct missing functions were: glIslist and VBO's.
Nothing to complicated.

These functions are available in the already available citro3d library. Which is used by the current renderer. A wrapper to make to gl functions work with citro3d with tinygl backing the unsupported hardware features could be a solution.

To my understanding, TinyGL as-is wouln't be sufficient to get these games running at acceptable speeds without modification.

Our best bet would be, citro3d with tinygl modified.
Or a gl renderer using picagl with added functionality.

But i love to be proven wrong and always open to suggestions on how to do it properly.

Maybe @MasterFeizz is able to give his opinion on how viable a picagl solution would be?
 

ccawley2011

Member
Newcomer
Joined
May 12, 2021
Messages
18
Trophies
0
Age
24
XP
232
Country
United Kingdom
As I understand it, TinyGL isn't really designed for that kind of thing, so I suspect that using picaGL would be the best approach. Currently, all of the engines using OpenGL have separate renderers for OpenGL 1.x and OpenGL (ES) 2.x, so the former should be relatively easy to adapt for the 3DS, although I'm not so familiar with the changes that would be needed on the backend side of things.
 
  • Like
Reactions: AHB

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
563
Trophies
0
Age
37
XP
1,619
Country
Netherlands
Most platforms have have gl implemented using a SDL backend. I believe the AMIGA platform uses a gl 1.3 compatibility profile to provide a context.
But without looking further into it, I'm not sure if that equals the actual minimum used.
 

AHB

Active Member
Newcomer
Joined
Mar 9, 2016
Messages
40
Trophies
0
Age
34
XP
436
Country
United States
I just found a couple of potentially useful things on github: A project working to overhaul tinyGL and a 3DS implementation by one of said project's maintainers.
___________________________________________________________________________________

May 25, 2021:
@MrHuu @ccawley2011 @MasterFeizz Correct me if I'm wrong, but if some rendering-related functionality was to be relegated to the 3DS hardware, it seems like the underlying math should be part of that. If that is the case (don't bother reading the rest of this if it isn't), it might present a snag.

From looking at the code, it looks like both citro3D and picaGL use fixed 4x4 matrices (made up of 4 4x1 vector matrices) - which, according to the citro3d source code, matches the PICA200 GPU layout - while ScummVM uses variably-sized matrices. Off the top of my head, it seems like the simplest solution would be to convert the ScummVM vectors/matrices to and from PICA vectors/matrices as needed. Would this cause a noticeable hit to performance?
___________________________________________________________________________________

May 26, 2021:
Don't hesitate to call me out and/or correct me if it's clear I have no idea what I'm talking about. Frankly, it feels like the more I look into this, the less sure I am about things I thought I had at least a tenuous grasp on. :unsure:
 
Last edited by AHB,

AHB

Active Member
Newcomer
Joined
Mar 9, 2016
Messages
40
Trophies
0
Age
34
XP
436
Country
United States
Blade Runner runs pretty much perfectly on 3DS. This could possibly be related to the fact that does not rely on OpenGL nor on TinyGL. If so, perhaps whatever's allowing the BLADERUNNER engine's graphics library to function on the 3DS could be adapted to TinyGL?

Also yeah, pretty much rambling to myself at this point.

EDIT: Huh, so post-merging only happens within a specific window after the post, and I guess adding @'s in an edit doesn't ping the user. No wonder I've been talking to myself. Good to know nearly two weeks after the fact! :creep:
 
Last edited by AHB,
  • Like
Reactions: MarioKartFan

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
563
Trophies
0
Age
37
XP
1,619
Country
Netherlands
I have to start looking into the project again before i can be of any use.
I do like to checkout that TinyGL implementation for 3ds, that should be relatively easy to implement. Not sure about it's capabilities though.

Doesn't bladerunner use regular sprites? I was under the impression it doesn't have 3d rendered scenes.
Unfortunately i don't think we have much options next to using some sort of GL implementation.
 

AHB

Active Member
Newcomer
Joined
Mar 9, 2016
Messages
40
Trophies
0
Age
34
XP
436
Country
United States
Doesn't bladerunner use regular sprites? I was under the impression it doesn't have 3d rendered scenes.
The background is 2D, but the characters are 3D, which is similar to The Longest Journey, Syberia, Grim Fandango, etc. Looking into it, Blade Runner apparently used "slice animations" for optimization.
LouisCastle on May 28, 2018 [–]

Fun! Yeah, we stored our data as slices for space and restricted rotation to the Y axis. Both were optimization since each frame of an animation was a full model there was no need to rotate them. The renderer could render them from any angle though so I still consider them voxels. More like voxels lite then voxel plus. We also used a lot of sprite cards with zdepth and a quick normal hack for lighting. You had to cut corners where you could back then!!
 
  • Like
Reactions: MrHuu

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • light27 @ light27:
    hm
  • light27 @ light27:
    fun fact
  • light27 @ light27:
    the first time i ever played on a wii u EVER was when I was getting my ear tubes removed
  • light27 @ light27:
    i was playing wii party
  • light27 @ light27:
    u*
  • light27 @ light27:
    but i only got to play for like
  • light27 @ light27:
    3 seconds
  • light27 @ light27:
    younger me would've never thought that I would have a wii u now
  • Xdqwerty @ Xdqwerty:
    @light27, i wanted a Wii u as a kid when i watched a Mario kart 8 commercial on tv
  • Psionic Roshambo @ Psionic Roshambo:
    I had a Wii-U it sucked lol
  • Psionic Roshambo @ Psionic Roshambo:
    Even hacked it sucked lol
  • The Real Jdbye @ The Real Jdbye:
    nah the Wii U wasn't bad
    +1
  • The Real Jdbye @ The Real Jdbye:
    the hardware is good
  • Psionic Roshambo @ Psionic Roshambo:
    The controller sucked
  • The Real Jdbye @ The Real Jdbye:
    it has good games, just not enough of them
    +1
  • ColdBlitz @ ColdBlitz:
    the indie games on wii u were amazing though
  • ColdBlitz @ ColdBlitz:
    and also some of nintendo's first party games
  • ColdBlitz @ ColdBlitz:
    some of the best selling games on the switch are wii u ports (that are priced way too high
    like come on 60 for a game thats a decade old??)
    +1
  • Xdqwerty @ Xdqwerty:
    @ColdBlitz, i forgot breath of the wild released for the Wii u
  • The Real Jdbye @ The Real Jdbye:
    $60 for a game that's a decade old might be unheard of on PC but actually is not uncommon on consoles
    +1
  • The Real Jdbye @ The Real Jdbye:
    especially Nintendo because they only ever lower the price of games when they do a greatest hits/platinum hits/players choice re-release
  • Xdqwerty @ Xdqwerty:
    @The Real Jdbye, and the HD collections released for 7th gen consoles too
  • The Real Jdbye @ The Real Jdbye:
    but they don't seem to have done any of those for the switch yet and maybe never will
  • ColdBlitz @ ColdBlitz:
    I think we all forgot breath of the wild released for the wii u tbh
    +1
    ColdBlitz @ ColdBlitz: I think we all forgot breath of the wild released for the wii u tbh +1