Skip to content

nn/atk: Define most headers#59

Open
Nitr4m12 wants to merge 183 commits intoopen-ead:masterfrom
Nitr4m12:atk
Open

nn/atk: Define most headers#59
Nitr4m12 wants to merge 183 commits intoopen-ead:masterfrom
Nitr4m12:atk

Conversation

@Nitr4m12
Copy link

@Nitr4m12 Nitr4m12 commented Mar 3, 2026

This is a collection of all headers, types, typedef, etc. I could find based on DWARF info. Filenames, member names and enums are taken straight from the DWARF, file structure comes from information derived from strings, class names and function names are a combination of DWARF and crossreferencing symbols of other executables, and most function parameter names come from the DWARF, with a few being guesswork based on surrounding names. Changes to util_IntrusiveList.h were made while I was working on this, so I included those changes as well as my own for some classes that needed it (namely nn::atk::detail::fnd::HeapBase needing util::IntrusiveListBaseNodeTraits). Aside from that, I also added files for nn::audio as nn::atk uses them in various places, as well as nn/os/os_MessageQueue.h purely for the definition of nn::os::MessageQueue.

I'd like to point out that I was working with a DWARF for version 5.3.0, and while I tried to account for changes between versions, there may still be some that I missed. I'm confident though that no major changes to structs at least happened to atk between 4.x.x and 5.3.0, but some structs are changed or missing for versions below that.


This change is Reviewable

Filenames are based on DWARF info from the `.nss` inside Bloons TD5's romFS
Only defined member variables and virtual functions, not general functions
`detail::SoundArchiveFileReader` required definitions from other files, which were added as needed
Some methods have been left as comments because of undeclared classes needed for them
An extra header for `nn::audio` was added as it was used in `atk_Adpcm.h`
Nitr4m12 added 30 commits March 1, 2026 14:45
Also include all `nn::audio` headers in audio.h
Defined more methods that were missing, static variables and fixed some signatures. Also added macro checks for the nnSdk version for files that might need it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant