Homebrew [Release] ScummVM 3DS

MrHuu

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
562
Trophies
0
Age
37
XP
1,617
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
226
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
562
Trophies
0
Age
37
XP
1,617
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
562
Trophies
0
Age
37
XP
1,617
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
  • No one is chatting at the moment.
  • Materia_tofu @ Materia_tofu:
    im not a very bright individual, but we live and we learn
  • SylverReZ @ SylverReZ:
    @Materia_tofu, We do learn a lot from plenty of talented individuals.
  • Materia_tofu @ Materia_tofu:
    this is true! i learned how to make soundfont remixes from a friend back in 2021
    +1
  • BakerMan @ BakerMan:
    Update on my brother: He's home now, tired and hungry, obviously, but other than that, seems to be doing fine.
    +2
  • Veho @ Veho:
    That's a relief to hear. Do you know what happened?
  • SylverReZ @ SylverReZ:
    @BakerMan, Any idea what happened? I hope that your brother's doing good.
  • BakerMan @ BakerMan:
    Well, from what I've heard from my parents, he had a seizure last night, perhaps an epileptic episode, fucking died, had a near death experience, my dad called the paramedics, they showed up, took him to the hospital, and he woke up covered in tubes, and started complaining.
  • BakerMan @ BakerMan:
    He couldn't eat until after his MRI, when he had a bomb pop.
  • BakerMan @ BakerMan:
    What matters now is that he's doing alright.
  • Veho @ Veho:
    But you still don't know what it was?
  • Veho @ Veho:
    Has he had seizures before?
  • The Real Jdbye @ The Real Jdbye:
    apparently stress can cause seizures, my brother had one during a test once
  • The Real Jdbye @ The Real Jdbye:
    never had one before that, and never had one since
  • Redleviboy123 @ Redleviboy123:
    Question about game texture chanching Do i need an own game id?
  • The Real Jdbye @ The Real Jdbye:
    @Veho for those that want to
    experience being sonic the hedgehog
  • Veho @ Veho:
    Ah, you mean
    furries.
  • The Real Jdbye @ The Real Jdbye:
    well, sonic fans are a whole separate thing from furries
  • The Real Jdbye @ The Real Jdbye:
    like bronys
  • The Real Jdbye @ The Real Jdbye:
    sonic porn is too weird even for me
  • Dumpflam @ Dumpflam:
    bruh
  • Dumpflam @ Dumpflam:
    guys how do i delete a post
  • The Real Jdbye @ The Real Jdbye:
    you don't
  • The Real Jdbye @ The Real Jdbye:
    you can report it and request deletion
    The Real Jdbye @ The Real Jdbye: you can report it and request deletion