Pablo Curiel
26714c7f3b
ldr_embedded_usb_patches: add support for HOS 13.0.0 and 13.1.0 + remove superfluous comments. ( #1718 )
2021-11-26 00:39:22 -07:00
Michael Scire
fcc7ce49d9
sm/tipc: ensure technical-correctness of sins (no page cost)
2021-11-06 20:05:32 -07:00
Michael Scire
f98c7cba98
sm: save 0x5000 of memory by sinning
2021-11-06 19:33:08 -07:00
Léo Lam
496adb0018
Minor header fixes to reduce parsing issues with Clang ( #1700 )
...
* Work around Clang's incomplete C++20 support for omitting typename
* vapours: fix Clang error about missing return in constexpr function
* stratosphere: fix call to non-constexpr strlen in constexpr function
strlen being constexpr is a non-compliant GCC extension; Clang
explicitly rejects it: https://reviews.llvm.org/D23692
* stratosphere: add a bunch of missing override specifiers
* stratosphere: work around Clang consteval bug
Minimal example: https://godbolt.org/z/MoM64v93M
The issue seems to be that Clang does not consider f(x) to be a
constant expression if x comes from a template argument that isn't
a non-type auto template argument (???)
We can work around this by relaxing GetMessageHeaderForCheck (by using
constexpr instead of consteval). This produces no functional changes
because the result of GetMessageHeaderForCheck() is assigned to a
constexpr variable, so the result is guaranteed to be computed
at compile-time.
* stratosphere: fix missing require clauses in definitions
GCC not requiring the require clauses to be repeated for member
definitions is actually a compiler bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96830
Clang rejects declarations with missing require clauses.
* Fix ALWAYS_INLINE_LAMBDA and parameter list relative order
While GCC doesn't seem to care about the position of the always_inline
attribute relative to the parameter list, Clang is very picky
and requires the attribute to appear after the parameter list
(and before a trailing return type)
* stratosphere: fix static constexpr member variable with incomplete type
GCC accepts this for some reason (because of the lambda?) but Clang
correctly rejects this.
2021-11-06 18:19:34 -07:00
Michael Scire
47218f0da8
ams: overhaul fs.mitm romfs ownership, bump to 1.2.4
2021-11-04 13:38:41 -07:00
Michael Scire
705dd95375
dmnt2: fix gdb register output
2021-11-03 23:56:25 -07:00
Michael Scire
2d5751356b
creport: fix errant )
2021-11-03 23:56:25 -07:00
Michael Scire
b140834b7e
dmnt2: try to avoid writing out of bounds when generating packets
2021-11-03 23:56:25 -07:00
Michael Scire
e3d2af6b3f
dmnt2: fix module name detection, add auto-break on hb nro launch
2021-11-03 23:56:25 -07:00
jam1garner
c17ad1e0e3
dmnt2: fix missing null-terminator for invalid command error
2021-11-03 23:56:25 -07:00
Michael Scire
6145b3b72c
dmnt2: detect thread name, add monitor get mapping(s), increase buffer sizes
2021-11-03 23:56:25 -07:00
Michael Scire
aba7e4ca7d
dmnt2: remove memory-map output which does nothing for us
2021-11-03 23:56:25 -07:00
Michael Scire
4cc5e9cdfd
kern/dmnt2: allow retrieval of process info via extension
...
This also fixes ctrl-c break in gdbstub, and fixes crash on unknown monitor cmd.
2021-11-03 23:56:25 -07:00
Michael Scire
ca0308c7ca
dmnt2: first pass at wait-for-application
2021-11-03 23:56:25 -07:00
Michael Scire
1d908295fe
dmnt2: add monitor get base, TODO responses for monitor wait *
2021-11-03 23:56:25 -07:00
Michael Scire
277bd101c5
dmnt2: add memory-map read, improve module shared-lib names
2021-11-03 23:56:25 -07:00
Michael Scire
3dce23773a
Adding setting usage to dmnt2 means dmnt2 needs settings access
2021-11-03 23:56:25 -07:00
Michael Scire
4489513f7c
dmnt: enable experimental standalone usage of gdbstub, while starlink is in dev
2021-11-03 23:56:25 -07:00
Michael Scire
5eabca7f04
ams.mitm: more romfs building space/time tradeoffs.
...
This is needed for Animal Crossing 2.0.0, which has >99000 fucking files.
We now do several passes over dir/file tables instead of one pass,
doing entire hash tables before we touch dir/file tables. Thus we
no longer need to simultaneously allocate hash table and dir/file table space.
In addition, we now do repeated passes building a segment of hash tables
at a time, when insufficient memory is available. Similar is also now the
case for file/dir tables, we try 0x40000 work buffer and divide by 2
until we successfully alloc. We don't allow a work buffer <0x4000, for
write/perf reasons. If a game triggers that, let me know I guess.
Hard to imagine a worse torture-test for this code than animal crossing.
2021-11-03 23:52:38 -07:00
Michael Scire
258a83684e
creport: print symbols if they're present
2021-10-30 14:18:00 -07:00
Michael Scire
6cf5205a28
spl: fix legacy physical keyslot compatibility
2021-10-30 11:21:25 -07:00
SciresM
36e4914be8
kern: avoid constexpr init for many objects (avoids unnecessary memory clear) ( #1668 )
2021-10-23 15:25:20 -07:00
Michael Scire
889d843718
ams: improve offsetof style consistency
2021-10-18 00:17:13 -07:00
Michael Scire
ff5f376c33
tipc: enable named-thread dispatch
2021-10-15 19:59:29 -07:00
Michael Scire
d1bc1a5c57
boot: update for 13.0.0/aula parameter changes ( closes #1477 )
2021-10-15 19:03:11 -07:00
Michael Scire
990daec3a2
powctl: integrate 13.0.0 changes (aula params not done yet)
2021-10-15 16:30:27 -07:00
Michael Scire
c04a262d49
boot: update display logic for 13.0.0 changes
2021-10-14 19:48:13 -07:00
Michael Scire
7e536f74ae
strat: fix some mitm server management logic
2021-10-14 00:40:43 -07:00
Michael Scire
891fa32bf1
tipc/sm: update more fully for 13.0.0 changes
2021-10-13 23:50:57 -07:00
Michael Scire
0189c5f1e6
sm/tipc: minor cleanup
2021-10-12 00:20:21 -07:00
Michael Scire
124a1a1ea0
sm: update for 13.0.0, optimize layout to reduce storage size.
2021-10-11 22:16:37 -07:00
Michael Scire
bd1bcdf52b
sf: prevent emitting mitm/defer code unless server in process supports it
2021-10-11 19:01:27 -07:00
Michael Scire
1c5edaf4fb
fatal: use align up for width calc
2021-10-11 12:41:43 -07:00
Michael Scire
3cd8ec509c
boot: probably should have done this a few months ago huh
2021-10-11 01:01:31 -07:00
Michael Scire
5708bb1557
ams: allow bootloader to merely approximate correct target firmware
2021-10-11 00:54:17 -07:00
Michael Scire
06f68a8159
loader: refactor to remove fake namespaces
2021-10-10 21:37:29 -07:00
Michael Scire
d9dc04318d
loader: refactor ro manager/improve accuracy
2021-10-10 18:22:32 -07:00
Michael Scire
d8a36e39f2
spl: refactor for accuracy/move into libstrat
2021-10-10 12:57:36 -07:00
Michael Scire
bc96ebb74c
os: add FlushDataCache
2021-10-10 00:33:52 -07:00
Michael Scire
a595c232b9
strat: use m_ for member variables
2021-10-10 00:14:06 -07:00
Michael Scire
1ab0bd1765
ams: replace most remaining operator & with std::addressof
2021-10-09 14:49:53 -07:00
Michael Scire
ec65c39d17
strat: refactor address taking of form &var[...]
2021-10-09 12:45:31 -07:00
Michael Scire
b0e520112b
strat: always use explicit result namespacing
2021-10-09 10:36:21 -07:00
Adubbz
303c6eb5f9
settings: implement KeyValueStore ( #1659 )
...
* settings: implement KeyValueStore and dependencies
* settings: update KeyValueStore for recent refactoring
* settings: address feedback
2021-10-09 09:16:40 -07:00
Michael Scire
14c8801259
sm: remove apm:p compatibility hack
...
Homebrew which would hang when doing this were compiled with libnx < 3.0.0.
Homebrew which is compiled with < 3.0.0 cannot send messages to sm, because
of the incorrect serialization problem (which required homebrew recompile when
12.0.0 released).
Thus, there is no case where this makes a difference.
2021-10-08 15:25:52 -07:00
Michael Scire
229651fe72
ams.mitm: avoid using std::unordered_map, it manifests exception code
2021-10-07 22:59:16 -07:00
Michael Scire
e7ca22abd7
jpegdec: save 128KB of memory
2021-10-07 18:03:11 -07:00
Michael Scire
ffc143860b
strat: use ams::Main() instead of main(argc, argv)
2021-10-07 17:44:54 -07:00
Michael Scire
6a53726833
strat: build sysmodules with -Wextra/-Werror
2021-10-06 23:22:54 -07:00
Michael Scire
4866e80769
svc: refactor/rename MemoryInfo fields
2021-10-05 15:16:54 -07:00
Michael Scire
d9159f81d2
ro: double whoops
2021-10-05 12:40:58 -07:00
Michael Scire
306f413874
ro/dmnt: fix process address space detection
2021-10-05 12:34:09 -07:00
Michael Scire
719ead824e
strat: remove map namespace, svc: add address space defs
2021-10-05 12:22:34 -07:00
Michael Scire
69777cf792
strat: use sf::NativeHandle for ipc templating
2021-10-05 00:11:36 -07:00
Michael Scire
d0041a33ac
strat: prefer os::NativeHandle to Handle/svc::Handle where sensible
2021-10-04 17:12:32 -07:00
Michael Scire
6f680fe63b
strat: use svc:: over ::svc
2021-10-04 14:54:13 -07:00
Michael Scire
77fe5cf6f5
ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals
2021-10-04 12:59:10 -07:00
Michael Scire
6f76066d24
os: remove ManagedHandle, refactor to use NativeHandle typename
2021-10-04 12:33:09 -07:00
Michael Scire
a774833790
ro: simplify program id logic
2021-10-01 19:10:19 -07:00
Michael Scire
65fd967550
pm/cfg: simplify initial process id range logic
2021-10-01 17:37:39 -07:00
Michael Scire
18825866ac
strat: automatic program id detection
2021-10-01 17:18:50 -07:00
Michael Scire
7444a68cd1
os: adopt multiwait naming over waitable
2021-09-30 19:00:47 -07:00
Michael Scire
427ab78bc6
pm: implement newer-N-pm's dynamic resource logic
2021-09-29 23:33:25 -07:00
Michael Scire
41ab4c2c68
stratosphere: use SdkMutex/SdkRecursiveMutex over Mutex
2021-09-29 22:52:50 -07:00
Michael Scire
9b04ff0f54
ams-libs: AMS_ASSERT no longer invokes expression
2021-09-29 21:32:40 -07:00
Michael Scire
c949779b3d
stratosphere: grant access to SynchronizePreemptionState
2021-09-29 14:18:03 -07:00
Michael Scire
ab81ed2795
fs.mitm: fix memory leak in romfs build ( closes #1031 )
2021-09-20 17:53:29 -07:00
Michael Scire
3dc51e164f
loader: fix enum cast
2021-09-19 10:42:28 -07:00
Michael Scire
790f7498c1
loader: update for 13.0.0 ncm changes
2021-09-19 10:34:31 -07:00
Michael Scire
05b54c4c2a
erpt: launch sprofile only on 13.0.0+
2021-09-19 10:34:31 -07:00
Michael Scire
bd240b23d8
erpt: skeleton sprofile apis
2021-09-19 10:34:31 -07:00
Michael Scire
568a3b62eb
set.mitm: pointer buffer size was increased to 0x200 in 13.0.0
2021-09-19 10:34:31 -07:00
Michael Scire
8acf0a4fa9
cs: fix allocator aborts
2021-09-11 19:41:47 -07:00
Michael Scire
05ea0c53d7
dmnt: use hardware single step extension if available
2021-09-11 19:41:47 -07:00
Michael Scire
904ab19823
dmnt: implement remaining basic gdbstub packets
2021-09-11 19:41:47 -07:00
Michael Scire
534c2c76f5
dmnt: reload modules on NRO load/unload
2021-09-11 19:41:47 -07:00
Michael Scire
d216a77187
dmnt: first pass at breakpoints/watchpoints
2021-09-11 19:41:47 -07:00
Michael Scire
1401f3520e
dmnt: refactor to use process accessor
2021-09-11 19:41:47 -07:00
Michael Scire
c6fad1b0ee
osdbg: implement thread info api
2021-09-11 19:41:47 -07:00
Michael Scire
9f1f0c7cbd
dmnt: add attach support to gdbstub
2021-09-11 19:41:47 -07:00
Michael Scire
649a0052d0
dmnt: refactor/add support for getting process list in gdb
2021-09-11 19:41:47 -07:00
Michael Scire
a7f9729f63
dmnt: begin working on packet parser
2021-09-11 19:41:47 -07:00
Michael Scire
f85df27875
dmnt: add basic gdb packet receive logic
2021-09-11 19:41:47 -07:00
Michael Scire
db7268de2e
dmnt2: add logging logic, for use with gdbstub development
2021-09-11 19:41:47 -07:00
Michael Scire
b61797224d
tma2: include sysmodules in stratosphere.romfs
2021-09-11 19:41:47 -07:00
Michael Scire
899efec302
cs: implement GetFirmwareVersion command
2021-09-11 19:41:47 -07:00
SciresM
e9849c74cf
LogManager: implement system module, client api, logging api ( #1617 )
...
Some notes:
* Unless `atmosphere!enable_log_manager` is true, Nintendo's log manager will be used instead.
* This prevents paying memory costs for LM when not enabling logging.
* To facilitate this, Atmosphere's log manager has a different program id from Nintendo's.
* `atmosphere!enable_htc` implies `atmosphere!enable_log_manager`.
* LogManager logs to tma, and the SD card (if `lm!enable_sd_card_logging` is true, which it is by default).
* Binary logs are saved to `lm!sd_card_log_output_directory`, which is `atmosphere/binlogs` by default.
2021-09-11 19:32:14 -07:00
Michael Scire
045f9b2f15
fusee: fix buildsystem, rename secondary -> package3
2021-09-06 16:26:50 -07:00
Michael Scire
b7521465ee
fusee: tactically don't trash PLLA1, fixes audio corruption on boot
2021-09-06 16:26:50 -07:00
Michael Scire
da208f8001
ams-1.0.0: meso no longer optional, remove conditional logic
2021-09-06 16:26:50 -07:00
SciresM
17ca463c3f
ams: replace sept with tsec firmware ( #1594 )
...
* ams: replace sept with tsec firmware
This replaces sept with a custom tsec key derivation firmware.
NOTE: This does not use any TSEC exploits whatsoever; it is a well-signed
TSEC binary assembled with envyas and signed with the real cauth key.
For more details, contact SciresM#0524.
* fusee: only set SBK if it's readable
2021-08-20 13:13:29 -07:00
Michael Scire
73afa042f1
dmnt: fix opcode decoding ( closes #1575 )
2021-07-22 06:06:48 -07:00
Michael Scire
4cb4707f34
dmnt: add theoretical 'else' support to cheat engine vm conditionals
2021-07-21 19:36:46 -07:00
Michael Scire
389c3b6baa
dmnt: various cheat changes/suggestions that have been cooking a while
2021-07-21 19:21:58 -07:00
Michael Scire
a7c14e03b9
ams: std::optional -> util::optional
2021-07-08 02:37:26 -07:00
Michael Scire
f863164648
ams: basic support for 12.1.0
2021-07-06 07:13:56 -07:00
Michael Scire
846cde52e0
fs.mitm: ns registers program index map info, not am
2021-06-28 22:43:56 -07:00
Michael Scire
a3dd445b32
fs.mitm: add OpenDataStorageWithProgramIndex support (theoretically, closes #1250 )
2021-06-28 22:24:26 -07:00
Michael Scire
8a6afe7909
dns.mitm: fix wildcardcmp failure case ( #1539 )
2021-06-15 16:35:26 -07:00
Michael Scire
8fea8d9b2e
sm: lighten abort restrictions on mitm handle acquisition ( closes #1528 )
2021-05-30 22:53:32 -07:00
Michael Scire
bb4c7a390b
ams: update for 12.0.2
2021-05-12 09:08:47 -07:00
Michael Scire
26fb201518
dns.mitm: handle nullptr hostname
2021-05-10 13:27:14 -07:00
Michael Scire
32f487abfb
sm: update to excise unnecessary library code
2021-05-02 10:33:15 -07:00
Michael Scire
dbcb1e1564
loader: avoid UB when doing count trailing zeros
2021-04-30 10:03:54 -07:00
Michael Scire
15381409dc
fs: fix missed operation rename
2021-04-30 09:02:58 -07:00
Michael Scire
243d7dc777
ams: write-protect stratosphere.romfs
2021-04-30 04:57:46 -07:00
Michael Scire
355010ad84
erpt: implement forced shutdown detection
2021-04-30 04:21:03 -07:00
Michael Scire
21f3d29df7
strat: compat with gcc 11
2021-04-26 20:06:28 -07:00
Michael Scire
9e563d590b
pm: account for 12.0.0 resource limit changes
2021-04-14 00:41:31 -07:00
Michael Scire
2e1a93f1d1
strat: no longer materially constrained by sm session limit
2021-04-13 23:58:10 -07:00
Michael Scire
0ca2f962de
usb: add usb3.0 patches for 12.0.0
2021-04-11 03:42:16 -07:00
Michael Scire
b2b0c50802
pgl: update to use tipc (untested)
2021-04-11 03:42:16 -07:00
Michael Scire
1118421fa6
strat: changes for sm tipc (boots 11.0.1, now)
2021-04-11 03:42:16 -07:00
Michael Scire
9be8b32311
tipc/sm: various fixes for issues
2021-04-11 03:42:16 -07:00
Michael Scire
57c8bc432d
sm: reimplement using tipc instead of cmif (probably broken, untested)
2021-04-11 03:42:16 -07:00
Easy World
e3e3679cfe
Update dmnt_cheat_vm.cpp
...
* fix case fallthrough in function "LogOpcode"
* use same attribute name in one opcode case
2021-04-07 18:46:23 -07:00
Michael Scire
d84dcb653d
ams: prefer construct_at/destroy_at over placement new/explicit destructor
2021-03-21 20:30:40 -07:00
Michael Scire
aff0da9427
ams: remove TYPED_STORAGE() macro in favor of template
2021-03-21 18:47:30 -07:00
SciresM
5362ee9450
[tma2] [Ongoing] Continue implementing modules for tma2. ( #1388 )
...
* cs: add stub sysmodule to host command shell server
* cs: implement logic for main (linker error paradise, for now)
* cs: implement more of the system module's skeleton
* htcs: update client type names for libnx pr merge
2021-03-16 17:13:30 -07:00
SciresM
a6729171d3
set.mitm: fake compatibility for usb!usb30_force_enabled on 9.0.0+ ( #1391 )
...
* set.mitm: fake compatibility for usb!usb30_force_enabled on 9.0.0+
* set.mitm: add value meaning comment for usb!usb30_force_enabled
* loader: pretend to be polite about patch ordering
2021-03-01 14:18:27 -08:00
Michael Scire
18031ae107
tio: fix wrong body size on optimized ListDirectory
2021-02-26 04:49:20 -08:00
Michael Scire
97875c7d2f
tio: fix bug in body receive
2021-02-26 04:49:20 -08:00
Michael Scire
0da3b2b273
tio: implement SdCardObserver (finishes sysmodule)
2021-02-26 04:49:20 -08:00
Michael Scire
3cbd99a709
tio: implement all command processor logic
2021-02-26 04:49:20 -08:00
Michael Scire
6ce2076d92
tio: implement server/dispatch logic.
2021-02-26 04:49:20 -08:00
Michael Scire
cee1ecd06f
tio: add stub sysmodule to host target io server
2021-02-26 04:49:20 -08:00
Michael Scire
953246a175
htc: disable socket driver, needs design thought before we can turn it on for real.
2021-02-24 04:06:54 -08:00
Michael Scire
1c974a387c
htc: implement socket driver (socket api not really impl'd yet)
2021-02-24 04:06:54 -08:00
Michael Scire
ce149f996c
htc: configure usage via system setting
2021-02-24 04:06:54 -08:00
Michael Scire
f28a410ba0
htc: fixes, can now enter ReadyState with wip starlink code
2021-02-24 04:06:54 -08:00
Michael Scire
1bd0094bee
htc: finish last code for Main()
2021-02-24 04:06:54 -08:00
Michael Scire
870b45f208
htc: add htcfs server/service object skeletons
2021-02-24 04:06:54 -08:00
Michael Scire
b898241112
htcs: add hipc server/service object skeletons
2021-02-24 04:06:54 -08:00
Michael Scire
4d86863f2c
htc: ObserverThread (mostly), system now boots + works with htc in bg
2021-02-24 04:06:54 -08:00
Michael Scire
79a3f442d6
htc: implement psc/pm loop
2021-02-24 04:06:54 -08:00
Michael Scire
889f144b27
htc: hook up creation of the htc manager service object
2021-02-24 04:06:54 -08:00
Michael Scire
4408ad6a47
htc: module id names, skeleton rest of main
2021-02-24 04:06:54 -08:00
Michael Scire
0977ee72ca
rapidjson: add customization point for allocation/asserts
2021-02-24 04:06:54 -08:00
Michael Scire
83c1c175ba
htc: skeleton some more of main
2021-02-24 04:06:54 -08:00
Michael Scire
fc060d3777
htc: skeleton main file/sysmodule dir
2021-02-24 04:06:54 -08:00
Michael Scire
eb50e99748
kern: alleviate a little KPort pressure.
2021-02-23 14:31:24 -08:00
Michael Scire
287f4e6fa1
sm: fix abort on RegisterService while at port limit
...
closes #1382
2021-02-23 14:21:46 -08:00
Michael Scire
95a6b0828f
dmnt: set the debug process handle slightly more carefully
2021-02-20 17:37:59 -08:00
Michael Scire
74e4e70053
fs.mitm: fix cache of non-current-process data storages ( closes #1371 )
2021-02-15 19:39:32 -08:00
Michael Scire
c0e3cee657
dns.mitm: allow nullptr for port string ( closes #1352 )
2021-02-03 12:41:23 -08:00
Michael Scire
8eb65ab401
dns.mitm: fix hosts file parsing bug
2021-02-02 17:11:53 -08:00
Michael Scire
bcda834980
dns.mitm: make line ordering explicit, rather than implicit.
...
This doesn't actually change functionality, because this is how std::unordered_map worked anyway...
...but it's better for us to be explicit, I think.
2021-02-02 13:48:40 -08:00
Michael Scire
e521ae805d
dns.mitm: add documentation
2021-02-02 11:41:49 -08:00
Michael Scire
6950989552
dns.mitm: support % in hosts file as stand-in for environment identifier
2021-02-02 11:41:49 -08:00
Michael Scire
ffbdf29c10
dns.mitm: fix ABORT_UNLESS -> ABORT
2021-02-02 11:41:49 -08:00