* origin/master: (98 commits)
rosalina: fix for latest libctru changes
pm: fix critical bugs where 1.0(?) titles not in the list have scheduling mode misconfigured
loader: revert to use the NS patch due to a Nintendo bug: https://www.3dbrew.org/wiki/NCCH/Extended_Header#Flag1
loader: replace NS N3DS CPU patch with exheader override, fix overriding exheader with homebrew
rosalina: ntp: use PTMSYSM_SetRtcTime
revert the memory map to the old one (mostly)
fix module loading
kext: fix outer memory cacheability on newer versions
so bascially rosalina's image...
rosalina: add hidden debug info menu
rosalina: refactor menu handling
rosalina: rephrase brightness warning
rosalina: add brightness control menu
rosalina/pm: remove fs patch, use pm instead
rosalina: cleanup variable names
rosalina: reorder menus
Fix latest commit
rosalina menu: add scrolling, cpad and inputredir support (note: no ZL/ZR due to technical reasons)
stuff
newlib...
...
# Conflicts:
# k11_extension/source/main.c
# k11_extension/source/svc/UnmapProcessMemoryEx.c
# sysmodules/rosalina/Makefile
# sysmodules/rosalina/include/menu.h
# sysmodules/rosalina/include/utils.h
# sysmodules/rosalina/source/errdisp.c
# sysmodules/rosalina/source/main.c
# sysmodules/rosalina/source/menu.c
# sysmodules/rosalina/source/menus.c
The BPS format allows distributing patches that are smaller and that do
not contain copyrighted content if data is relocated
(unlike non-trivial IPS patches).
This is essential for games such as Majora's Mask 3D that have three
barely different code revisions. Supporting all three versions would
demand an unreasonable amount of work; with BPS patches only one
version has to be supported.
The patcher is written in C++ in order to make it possible to share the
implementation with Citra and because a C version would be a lot more
ugly and tedious to write. The patcher is non-intrusive for the rest of
the codebase and self-contained so hopefully that isn't an issue.
This adds roughly ~0x500 bytes of code to the loader sysmodule.
Code looks reasonably optimised (in IDA). Tested and works on an o3DS.
Virtually full support for 5.x except that svcUnmapProcessMemoryEx will be forwarded to svcUnmapProcessMemory (both are equivalent for up to 64MB chunks)