Pages: 1
Posted on 05-15-20, 12:47 pm (rev. 7 by  Overblade on 08-23-20, 11:27 pm)
Newcomer
SVC incoming

Karma: 220
Posts: 2/7
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 + Textbox
- Heap (Memory)
- Math
- Sound
- Vector / Util
- ARM7

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 guidelines.md 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.

Also, big thanks to  TheGameratorT and Ed_IT since without them this wouldn't have been possible in that amount of time.
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.
Link: https://github.com/Overblade/NSMB-ASMReference
Posted on 05-15-20, 10:28 pm
Paragoomba
DMA problems.

Karma: 733
Posts: 50/78
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
Newcomer
SVC incoming

Karma: 220
Posts: 5/7
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.
Posted on 08-10-20, 10:11 am


Karma: 2
Posts: 2/3
Since: 07-28-20
is there a link?
Posted on 08-11-20, 04:01 am
Fire Brother
here hey scott all

Karma: 2574
Posts: 1090/1136
Since: 02-12-16
I have no clue why this isn't in the first post https://github.com/Overblade/NSMB-ASMReference
_________________________
Nothing to say, so jadnjkfmnjamnfjkldnajfnjkanfjdksan jsdnvj m.

Posted on 08-11-20, 10:10 pm
Paragoomba
DMA problems.

Karma: 733
Posts: 77/78
Since: 07-19-18
Because it's not finished. And the patcher tool is still being developed.
Posted on 08-11-20, 10:17 pm
Newcomer
SVC incoming

Karma: 220
Posts: 6/7
Since: 04-18-20
I've been removing the repo link temporarily since it has been private for a short amount of time. In general, some issues need to be fixed and a license should be added (preferably GPL but idk yet).
I put the link back into the original post.

Also, the repo is by far not 100% complete because most actors are really annoying to document. I'm glad we have certain parts fully finished and actors are being developed on (experimental branch). And at the same time we discovered some new things never mentioned before including hidden camera states for both the world map and the stage itself.
Posted on 08-23-20, 11:24 pm
Newcomer
SVC incoming

Karma: 220
Posts: 7/7
Since: 04-18-20
Textboxes are almost out, you will be able to find them in Font.h.
May contain some useful functions but note that a lot of stuff is hardcoded.
Pages: 1