Pages: 1
Posted on 05-15-20, 12:47 pm (rev. 3 by  Overblade on 08-05-20, 10:43 pm)
SVC incoming

Karma: 209
Posts: 2/5
Since: 04-18-20
Hello everyone!

Today I want to announce the Public NSMB C++ reference on Github. I've created it to aid anybody making code hacks in C++/ASM. The repository contains C++ header files with many functions and variables you can include in your project.

Every part of the game gets its own header file, and each header file is associated with one or multiple memory regions. This is because original files were compiled together, although rare exceptions exist. Every header-assigned memory region is fully decoded and documented so that no unknown fields/variables/functions/classes are left. Also, everything is documented as precise and short as possible to give the user the necessary understanding of what a particular object/function/variable does.

As of now, some parts of the game are fully documented and defined in their respective header file. This includes:

- Fonts
- Heap (Memory)
- Sound -> thanks to  TheGameratorT
- Vector / Util -> thanks to Ed_IT
- ARM7 -> thanks to Ed_IT

Additionally, the following parts are in progress:

- Models (needs just reorganization)
- Actors (ActorBase/Actor/Base2?)
- Camera

In conjunction with headers, symbols for every function/variable in these headers are defined in symbols.x.
In case you find an error in the repo, please feel free to post it so we'll fix it as soon as possible.

If you want to contribute to the project, make a post and select a memory section from sections.txt you want to document. Note that the regions aren't fixed so it may be the case a certain engine is split in half (such as sounds) or using a smaller section (in which case we split the current known sections).
Please make sure to follow the guidelines from to keep everything consistent. You can also look at existing header files to see a documentation in practice. For general classes look especially at Font.h, for namespaces at Sounds.h and utility stuff with helper functions at Vector.h/Util.h.
We're thankful for every contributor, every creator is credited in sections.txt (and here too).

If you have any questions, feel free to ask them.
Posted on 05-15-20, 10:28 pm
DMA problems.

Karma: 707
Posts: 50/76
Since: 07-19-18
Nice work.

And yeah, I really hope more people in the future will be able to ASM hack this game by using a better template with a more universal support like this one when it's finished.

With universal support I mean being able to just import an ASM patch and compile without any problems or requiring any adaptation.
Posted on 07-17-20, 11:13 am
SVC incoming

Karma: 209
Posts: 5/5
Since: 04-18-20
Small update: Together with Ed_IT we were able to get all ARM7 symbols. This has never been done before on any official NDS game.

That's why from now on symbols.x is split into symbols9.x and symbols7.x to prevent compilation issues between the ARM7 and ARM9. The workspace will be migrated soon to accomodate the requirements of the new patcher.
Pages: 1