3DS port, and other things of that nature

Status
Not open for further replies.

frickermints

An Unusual Fellow
Now I'm gonna start off by declaring this: This is not a "plz mak dis gaem 4 me" thread.

Now for my actual point.
As I have researched, I have found many places here on the forums where people have said that SRB2DS won't work on DS, but it could on 3DS. I haven't seen anything on that since the 3DS came out, or even if anyone has tried making a port work for 3DS. I'm guessing that no one has taken the time for that, since not enough people care. I can understand that.
What I'm wanting to know, is how I can educate myself to port srb2 to 3ds myself. Looking at DS source code, it looks pretty well done already, and so I can come in and work on it myself.
And before you interject, yes I do understand that it takes a lot of work to be as good as someone like a dev. I already know quite a bit of programming, I just want to take the step into porting, so I can maybe contribute to this community.

Thanks in advance!
 
I'd suggest doing some research on 3DBrew, and there are a few guides from what I remember of how to make 3DS homebrew around on GBATemp. Those 2 sites are the ones I can most recommend for learning.
 
To elaborate a bit on what Yacker said:

For starters, you obviously need to be able to run homebrew on the 3DS to test a port. I'm going to assume you know what you're doing on this front and have either a CFW or some way to run the Homebrew Launcher on a 3DS. If not then, well, I can't really help you. You'll also need ctrulib set up for developing 3DS homebrew.

I don't know a whole ton about the porting process, but the best place to start would probably be compiling the game itself for desktop, so that you know about any little quirks you might need to work out to get SRB2 building at all. Here's our documentation on it. Note the "badly written" header on that page. You'll probably need to ask more questions to make it run. If you can't compile for desktop, though, that's probably not the end of the world, because everything will be different on 3DS anyway, so you can just skip this step if you feel confident doing so.

When you modify things, most of what you need to change will probably be in the I_ files, with a few special cases thrown in the main code for anything that you truly simply need to have there.

And if you need some place to get started, you might consider studying the prboom3ds source. It's the closest thing to SRB2's codebase (being we're just an out-of-control Doom mod) that has a working 3DS port, and it runs acceptably on my console.

Now, the biggest problem with trying to get the game running will be performance. I guarantee you're going to have out-of-memory errors and other junk that you'll have to diagnose yourself, and unfortunately the debugging options available on 3DS are terrible. You might have some luck running the port through Citra to diagnose a few things, but I've found it unreliable at best. If you have specifically memory-limit issues, try disabling things that aren't necessary for the game to run, like Lua support, GME, libpng+zlib, all those fun things. They can be added back in later if you feel the need.

Just know that you're probably going to be floundering around in the dark without a flashlight for a lot of the porting process. I'm available on our IRC channel (weekends & evenings CST) if you want more help, but my experience both in 3DS homebrew and in the system-interfacing SRB2 files is limited.

Also, use version control. Set up a fork of the game's repository on Git and use your commit history. You'll regret not doing so if you inadvertently break something and can't go back to see what might've caused it.
 
To elaborate a bit on what Yacker said:

For starters, you obviously need to be able to run homebrew on the 3DS to test a port. I'm going to assume you know what you're doing on this front and have either a CFW or some way to run the Homebrew Launcher on a 3DS. If not then, well, I can't really help you. You'll also need ctrulib set up for developing 3DS homebrew.

I don't know a whole ton about the porting process, but the best place to start would probably be compiling the game itself for desktop, so that you know about any little quirks you might need to work out to get SRB2 building at all. Here's our documentation on it. Note the "badly written" header on that page. You'll probably need to ask more questions to make it run. If you can't compile for desktop, though, that's probably not the end of the world, because everything will be different on 3DS anyway, so you can just skip this step if you feel confident doing so.

When you modify things, most of what you need to change will probably be in the I_ files, with a few special cases thrown in the main code for anything that you truly simply need to have there.

And if you need some place to get started, you might consider studying the prboom3ds source. It's the closest thing to SRB2's codebase (being we're just an out-of-control Doom mod) that has a working 3DS port, and it runs acceptably on my console.

Now, the biggest problem with trying to get the game running will be performance. I guarantee you're going to have out-of-memory errors and other junk that you'll have to diagnose yourself, and unfortunately the debugging options available on 3DS are terrible. You might have some luck running the port through Citra to diagnose a few things, but I've found it unreliable at best. If you have specifically memory-limit issues, try disabling things that aren't necessary for the game to run, like Lua support, GME, libpng+zlib, all those fun things. They can be added back in later if you feel the need.

Just know that you're probably going to be floundering around in the dark without a flashlight for a lot of the porting process. I'm available on our IRC channel (weekends & evenings CST) if you want more help, but my experience both in 3DS homebrew and in the system-interfacing SRB2 files is limited.

Also, use version control. Set up a fork of the game's repository on Git and use your commit history. You'll regret not doing so if you inadvertently break something and can't go back to see what might've caused it.

Thanks so much! I'll be sure to ask if I come across anything!
 
Status
Not open for further replies.

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Back
Top