PretendoNetwork / nimbus

GNU General Public License v3.0
117 stars 10 forks source link

Nimbus 1.5.0 #23

Closed TraceEntertains closed 9 months ago

TraceEntertains commented 9 months ago

To be frank, it's easier to say what this PR doesn't change than what it does, but what it does change is:

Updates the makefile to create a version header at compile time containing the version and app name defined earlier in the makefile (used for version string and error messages mainly)

Renames images to have a standard naming format to avoid confusion: `(nintendo/pretendo)_(loaded/unloaded)_(selected/deselected).png

Switches to C++

Adds a state system for having error screens and such on top of the existing UI

Adds common functions for helping with luma system calls (such as unpacking the config version, unpacking the luma version, getting a config value from the option bits, and string drawing helpers from Universal-Core, which is thankfully also GPLv3 licensed and I got permission)

Adds checks for luma3ds options like if external firms and modules and game patching is enabled, and checks if your luma version is atleast 13

Lets you check your luma3ds info (version, config version, config bits) by holding A on an otherwise errorless nimbus boot

Switches to enum classes from enums

Switches to using some of the enum classes for ACTA and FRDA things (sadly, one uses reinterpret_cast, but it should be safe as it casts from a pointer to an enum class that has an underlying type of u8 and casts to a u8 pointer, which is generally safe)

Takes assembly code from the rverse patches I didn't know were open source (:skull:), but did technically have source code to (I just didn't know why there were extra bytes) to make them compile without weird stuff like data_one and magic_bytes xD (note: it was because I didn't use =addressHere, I used ldr or something)

TraceEntertains commented 9 months ago

I feel fine with the state of the code in the PR, I just feel like you all might have different opinions (also, 1.5.0 has been tested by me, Imora, and another person who was in the #testing-discussion channel, and it seems all the checks work and the patches/switching does too)

DaniElectra commented 9 months ago

Reposting since the issue was closed. My idea with https://github.com/PretendoNetwork/nimbus/pull/23#discussion_r1347497286 was to revert all account index usage on ACT and FRD from Account to u8, or at least on the ACT functions.

TraceEntertains commented 9 months ago

That would be a major pain as all the code is adapted for that

DaniElectra commented 9 months ago

Sounds fair. Feel free to revert the ACTA_ResetAccount back to using Account for consistency and I'll approve the PR

TraceEntertains commented 9 months ago

I'm pretty sure i already did, just checked :P

DaniElectra commented 9 months ago

It's not? I want you to set it back to Account and not u8 (for consistency with the other functions) imagen

TraceEntertains commented 9 months ago

oh, sorry about that, misread the request xD

TraceEntertains commented 9 months ago

everything else that says account index instead of friend_account_id is a u8 tho

TraceEntertains commented 9 months ago

for acta i want to keep anything that doesnt explicitly mention friend/local account id to stay as a u8, but if you want me to change that for resetaccount still, its no big deal and i can do that rq

DaniElectra commented 9 months ago

everything else that says account index instead of friend_account_id is a u8 tho

ah you are right, I didn't notice