News:

11 March 2016 - Forum Rules

Main Menu

How were nintendo DS games made...?

Started by DonTomas, June 17, 2022, 04:25:36 PM

Previous topic - Next topic

DonTomas

Hi!
Let me introduce myself. My name is Thomas, and I'm an apprentice in video game development. I mostly develop games on Unity, and I'm now close to my 3rd year in the CNAM Enjmin's new video game development degree.

I had this idea, just now, to try to ROM hack my childhood game, Megaman star force, and to create some kind of rogue-lite version, with the same battle system.
I was telling myself "Simple! i just need to extract the source code from the game, learn the language it's made with, and do my own thing!"
But I'm having a few questions to the feasibility of my "project"...
1- Is this even legal..?
2- Can i even extract the "source code"?
3- Is there even a "source code"? From my perspective, I'd guess DS games were made from scratch, depending on the language, idk.
So, from what I've understood, if the devs have done their own compiled game engine/tool in cpp or anything else: isn't it impossible to retrieve the source code?
(just to be clear, I'm not asking on how i could do that, just want to satisfy my curiosity)
Sorry if i did anything wrong by posting here, and thanks a lot for stopping by!

Jorpho

Quote from: DonTomas on June 17, 2022, 04:25:36 PMSo, from what I've understood, if the devs have done their own compiled game engine/tool in cpp or anything else: isn't it impossible to retrieve the source code?
This sort of question is kind of surprising coming from someone who advertises that he's close to the 3rd year of a degree program.

It's technically not impossible to start from a binary and wind up with the original source code, and it seems to be happening more and more often these days. (I was just reading that Jak and Daxter just got the treatment.) But it's an absolutely enormous amount of tedious, difficult work, really only made feasible by having the exact development tools available; I can't recall reading anyone accomplishing this with a DS game yet. I don't think anyone even knows exactly what was used to develop something like Megaman Star Force; I expect it was internal Capcom tools that have never been made available to the public one way or another.

Regardless of what was originally used to write it, it is always possible to "disassemble" binary code into assembly language, but the disassembled code is usually completely without convenient names or labels and trying to figure out exactly what everything does (to make an "annotated disassembly") is likewise tedious and difficult.

If you Google around I'm sure you can find lots of resources for homebrew tools for making DS games from scratch.
This signature is an illusion and is a trap devisut by Satan. Go ahead dauntlessly! Make rapid progres!

FAST6191

Jorpho has good stuff there.

"childhood game, Megaman star force"
...
I think you just won this weeks "wow I am old" contest.

The early SDK did leak quite early on, later ones then were around but more private. With the Nintendo gigaleak stuff a while back then we got the lot, and people can even compile some of the leaked games that went with it (some pokemon ones too which amused many).
That said having pulled apart more than a few DS games then many devs would have what would probably be called middleware these days layered on top of what Nintendo provided. Similarly plenty of games have been hacked without such things available with Capcom generally doing a lot of their own thing. I imagine they probably also had some code going back to at least the GBA (though I wonder if this was more of a gamecube megaman codebase rather than GBA battle network).
NitroSDK is the term, Metrowerks Codewarrior being the compiler provided with it.

Disassembly might theoretically be possible the same as it is for N64 and some other things we are seeing -- it was still a C based device (C++ was available but the overhead means most stuck with C). Nobody has particularly done anything here and any source we see is leaked, accidentally included (see Princess Maker) or otherwise released (not sure what there for the DS at this point). I imagine IDA will have something here for ARM chips to do it, and ghidra should have some stuff as well but will probably be more primitive (though free). Don't think Capcom's little leak last year was it had anything interesting on this front but I have not checked what goes for a while.

Legality. I would have thought it would be every kind of derived work there is but Nintendo, one of the most famously litigious companies in all of gaming, have allowed stuff here to flourish while Rockstar have gone after people so I have no idea what goes. More general ROM hacking however happens all the time and probably what most would suggest you do, twisting it into a roguelite might be a bit more tricky than most would be suggested for a first hack but you can probably do something nice operating within the game's own parameters.

I did have a bit more on decompilation and related challenges in
https://gbatemp.net/threads/can-i-aka-you-as-i-cant-wont-code-port-this-game-to-this-device.576997/
If you want DS ROM hacking then
https://www.romhacking.net/forum/index.php?topic=14708.0.