Commit graph

239 commits

Author SHA1 Message Date
Michael Scire b758e3fc55 strat: update for latest libnx. 2019-12-07 12:41:28 -08:00
Michael Scire ea3ebbaa7d strat: TitleId -> ProgramId, titles->contents 2019-12-07 12:41:28 -08:00
Michael Scire d7a06057eb strat: split out common functionality for future meso use 2019-12-07 12:41:28 -08:00
Michael Scire 8cb77ac136 namespace sts -> namespace ams
namespace sts::ams -> ams::exosphere, ams::.

This is to facilitate future use of ams:: namespace code in
mesosphere, as we'll want to include ams::util, ams::result, ams::svc...
2019-12-07 12:41:28 -08:00
Michael Scire 4059dc6187 Results: Implement namespaced, type-safe results.
Because I was working on multiple things at once, this commit also:
- Adds wrappers for/linker flags to wrap CXX exceptions to make them
  abort. This saves ~0x8000 of memory in every system module.
- Broadly replaces lines of the pattern if (cond) { return ResultX; }
  with R_UNLESS(!cond, ResultX());.
- Reworks the R_TRY_CATCH macros (and the result macros in general).
2019-12-07 12:41:28 -08:00
Michael Scire 0b22af1206 libstrat: namespace remaining non-namespaced code. more new-ipc updates 2019-12-07 12:41:28 -08:00
Michael Scire 535e49a38d strat: statically allocate additional threads 2019-12-07 12:41:28 -08:00
Michael Scire 8bd2a9a23b ldr: fix copy/paste, only 1 ldr:pm session needed 2019-12-07 12:41:28 -08:00
Michael Scire 2f959785e1 loader: update for new-ipc 2019-12-07 12:41:28 -08:00
Michael Scire add18d868f sts: add STS_UNREACHABLE_DEFAULT_CASE() 2019-12-07 12:41:28 -08:00
Michael Scire 609a302e16 os: implement waitable management.
This implements waitable management for Events (and
implements Events). It also refactors PM to use new
Event/Waitable semantics, and also adds STS_ASSERT
as a macro for asserting a boolean expression. The
rest of stratosphere has been refactored to use
STS_ASSERT whenever possible.
2019-12-07 12:41:28 -08:00
Michael Scire a6e405c988 ldr: fix hbl_html redirection invocation 2019-09-14 10:43:39 -07:00
Michael Scire 93d83c5bb9 ams: initial support for 9.0.0 2019-09-14 10:43:39 -07:00
Michael Scire 227a1d938d creport: refactor to use sts:: namespace. 2019-07-15 14:35:48 -07:00
Michael Scire 6777dd9b38 pm: inform sm of title ids. remove inconsistent mitm association. 2019-07-11 22:24:59 -07:00
Michael Scire 2d0c881ffe strat: go all in on ncm::TitleId 2019-07-11 22:24:59 -07:00
hexkyz e561919a52 Fix logic in ldr_ro_manager
Fix argument type for isdigit/isxdigit
2019-06-30 18:48:16 +01:00
Michael Scire 18ca8aaf5b stratosphere: all in on enum class CommandId 2019-06-27 23:34:53 -07:00
Michael Scire e5c5101e8a Add missing extension cleanup. 2019-06-27 20:51:57 -07:00
Michael Scire 934ff7bbde <int> -> <s32> 2019-06-27 20:16:56 -07:00
Michael Scire 014f08f6b4 ldr: fix mount check mistake 2019-06-27 18:01:44 -07:00
Michael Scire 6ba2090c01 ldr: address review commentary. 2019-06-27 17:37:33 -07:00
Michael Scire 61fcf5e0f4 loader: completely rewrite. 2019-06-26 15:46:19 -07:00
Michael Scire 9217e4c5f9 sm: add HasService/HasMitm, refactor into sts:: 2019-06-24 17:57:49 -07:00
Michael Scire cead8a36ea stratosphere: more result cleanup 2019-06-20 02:00:59 -07:00
Michael Scire 6699fda8c9 loader: implement 8.1.0 changes 2019-06-19 11:51:30 -07:00
Michael Scire f9bf8923b1 loader: refactor for R_TRY 2019-06-17 16:29:09 -07:00
leo60228 defee07625 Allow pressing buttons on all controllers in loader (closes #541) 2019-05-11 15:15:17 -04:00
Michael Scire 03a425a579 stratosphere: TODO: panic -> std::abort() 2019-05-10 03:28:18 -07:00
Michael Scire 41f5b39f6b stratosphere: stop using kernelAbove 2019-05-10 03:25:07 -07:00
Michael Scire 7945a921ca Merge branch 'ro_dev' 2019-04-22 13:07:11 -07:00
Michael Scire b09adb6a34 stratosphere: only hold sm sessions open when needed 2019-04-22 12:59:49 -07:00
Michael Scire bfd04cfe92 loader: remove more unused ro functionality 2019-04-22 00:40:19 -07:00
Michael Scire 253afc90a4 loader: remove ldr:ro (moved into ro sysmodule) 2019-04-21 09:08:08 -07:00
Michael Scire 4ba6d8b24c ro: implement rest of LoadNrr/LoadNrrEx 2019-04-21 05:28:57 -07:00
Michael Scire ed86c44a49 loader: refactor to use LoaderModuleInfo 2019-04-20 18:15:39 -07:00
Michael Scire 5c9d0f05b1 loader: use libstratosphere randomness 2019-04-20 16:53:56 -07:00
Michael Scire ac07971211 stratosphere: custom exception handlers (reboot to fusee) 2019-04-12 15:28:46 -07:00
Michael Scire 67891954ec loader: fix support for 7.0.0+ games with NPDM flag bit 4 set. 2019-04-11 16:39:59 -07:00
Michael Scire 03e176d7f1 atmosphere: current year is 2019 2019-04-07 19:00:49 -07:00
Mat M 7a4d1e786c ldr_map: Silence lingering initializer warning (#500)
One initializer warning case that I seem to have missed (my bad).
2019-04-04 23:13:46 -07:00
Mat M b237168ec7 loader: Silence Wmissing-field-initializers warnings (#499)
Specifying 0 as the initial entry of a structure is a C-ism. C++ permits
using an empty set of braces to signify the same behavior, silencing
missing initializer warnings.
2019-04-04 21:05:41 -07:00
Michael Scire a0f3183c79 strat: sha256 s/linux/libnx/g 2019-04-04 12:02:00 -07:00
Michael Scire c6d67eab6a strat: 0 -> ResultSuccess 2019-03-28 22:39:39 -07:00
Michael Scire 9427a5cf46 strat: use TitleId defs instead of magics. 2019-03-28 21:49:14 -07:00
Michael Scire c50cb83ec1 strat: use lr results instead of magics 2019-03-28 20:31:48 -07:00
Michael Scire 0001e93810 strat: use atmosphere results instead of magics 2019-03-28 20:19:38 -07:00
Michael Scire 29be429d2f strat: fix remaining FS result magic numbers 2019-03-28 19:45:41 -07:00
Michael Scire acffae6643 strat: replace kernel/dbg magic numbers with result defs 2019-03-28 16:57:18 -07:00
Michael Scire db19fa0f7f loader: Use result definitions instead of magic numbers 2019-03-28 15:06:50 -07:00
Michael Scire 994d7d5429 loader: same heap size change for gcc 8.3.0 compat 2019-03-26 20:56:04 -07:00
Michael Scire dc1db0dc72 loader: Ensure code:/ unmounts if mounted. 2019-03-23 18:27:53 -07:00
Michael Scire 9e1e9ff8c0 loader: separate override_any_app (deprecate =app) 2019-03-22 06:59:28 -07:00
Michael Scire 48e4688c13 loader: begin needed support for HBL to use web browser commands 2019-03-20 07:53:56 -07:00
TuxSH 7ddaad615b loader; suppress gcc warning 2019-03-19 21:29:31 +01:00
Michael Scire db3c5cf20f loader: fix ldr:ro unmap semantics for < 3.0.0 2019-03-16 19:16:19 -07:00
Michael Scire 51fa778fb2 loader/ams_mitm: Change Down -> Held in API 2019-03-15 21:28:38 -07:00
Michael Scire 35167da6dd loader: Actually use hidKeysHeld 2019-03-15 19:51:00 -07:00
Michael Scire 83626923cf loader/ams_mitm: hidKeysHeld, not hidKeysDown (and remove workaround) 2019-03-15 18:34:55 -07:00
Michael Scire 60776e8111 loader: fix ldr:ro mapping error on < 3.0.0 2019-03-15 00:25:09 -07:00
Michael Scire 37d3577028 dmnt: allow disabling cheats via title-specific button combo 2019-03-04 06:55:37 -08:00
Michael Scire eefee8c7a8 loader: add support for title-specific override keys 2019-02-23 07:18:24 -08:00
Michael Scire f00dd05f82 Make stratosphere use new libnx HosVersion API 2019-02-20 14:17:51 -08:00
Michael Scire 6027ff243d Enforce upper bound on application tid range 2019-02-12 02:53:31 -08:00
Michael Scire 5f836aca6d Loader: set 7.0.0+ process bit when relevant 2019-01-31 04:46:20 -08:00
Michael Scire bdfd7946e3 ldr:ro: Correct LoadNrrEx definition, unimpl'd for now 2019-01-30 21:55:04 -08:00
Michael Scire f78fd29e38 Add basic support to fusee for multiple tsec_root_keys. 2019-01-30 21:53:37 -08:00
natinusala da0d22f05a loader: add 'override any app' feature 2019-01-22 05:38:27 -08:00
misson20000 35cf3b65a3 loader/ECS: don't clear ECS on failure, add ClearExternalContentSource command 2019-01-22 05:38:27 -08:00
Michael Scire ac391d9c5e Loader: always redirect sysmodules. 2018-11-15 14:48:18 -08:00
Michael Scire ce1a6a68bf fs.mitm/loader: Fix crashes when launching too many processes. 2018-11-08 16:02:04 -08:00
Michael Scire 54a22797a7 Make libstratosphere a submodule 2018-11-08 01:24:40 -08:00
Michael Scire 6ef34d80a0 libstrat: automatically detect+format rawdata structs correctly. 2018-10-31 05:04:00 +09:00
Michael Scire c49cfbd6af loader: update for libstratosphere refactor 2018-10-31 05:04:00 +09:00
misson20000 5c147e5188 loader: add SetExternalContentSource extension 2018-10-29 07:11:16 +09:00
misson20000 18f51e9b2e loader: add NpdmUtils function for invalidating the cache for a specific title 2018-10-29 07:11:16 +09:00
misson20000 376feb63bd loader: make ShouldOverrideContents take a tid argument 2018-10-29 07:11:16 +09:00
Michael Scire db97dd8d75 Loader: clean up orphaned function prototype 2018-10-22 22:56:26 -07:00
Michael Scire f96e1d5074 loader/fs.mitm: Support override config changes at runtime 2018-10-22 22:53:40 -07:00
Michael Scire 55ad57a02d fs.mitm: Use same override button semantics as loader. 2018-10-16 19:01:41 -07:00
Michael Scire 6711cd93a8 atmosphere: extract API version management to common folder 2018-10-16 17:54:50 -07:00
Michael Scire 20faa7f00b Loader: fix automatic apptype patching. 2018-10-05 09:13:00 -07:00
Michael Scire 532b4f4de2 Loader: Fix HBL pool partition ID copy 2018-09-19 16:30:11 -07:00
Michael Scire 6afbcd12d9 Loader: Button override + first-class HBL support 2018-09-19 16:21:46 -07:00
hexkyz 28e4d4411d Add and fix copyright notices for better GPL compliance (thanks @naehrwert and @CTCaer). 2018-09-07 16:00:13 +01:00
SciresM bb0f3ac024
loader: Add support for 6.0.0. 2018-09-06 11:57:57 +09:00
Michael Scire cb4089e49c Stratosphere: use isxdigit to check if char is hex. 2018-07-29 17:27:30 -07:00
Michael Scire c547ed50aa Loader: Fix exefs nsp support. Works on hardware. 2018-07-29 16:45:29 -07:00
Michael Scire 3a2520a3b7 Loader: Add support for exefs redirection to code nsp on SD. 2018-07-29 16:35:43 -07:00
Michael Scire 44e2412ae6 Loader: Change ips patch location to ease patch distribution 2018-07-29 11:27:19 -07:00
Michael Scire 674a91db8c Loader/ips: Fix more bugs, now works with simple test on hw. 2018-07-28 21:06:50 -07:00
Michael Scire 08275240c6 Loader/ips: fix compile error 2018-07-28 20:41:13 -07:00
Michael Scire 75916001a2 Loader: Fix IPS edge condition, change ips location 2018-07-28 20:36:30 -07:00
Michael Scire 0f5f3c2ad0 Loader: Implement IPS/IPS32 patching. 2018-07-28 20:28:17 -07:00
Michael Scire c1fd2eda20 Loader: Skeleton IPS/IPS32 patching support. 2018-07-28 20:01:09 -07:00
Michael Scire b365065a2d Loader: Support loading FsStorageId_None content from SD. 2018-07-27 19:53:20 -07:00
Michael Scire 9d0d9d95e1 Stratosphere: Give more memory to SYSTEM, use less memory. 2018-07-27 01:44:34 -07:00
hexkyz 7836609839 Fix multiple issues reported by Coverity Scan 2018-07-26 18:45:18 +01:00
Michael Scire dd4993dfda Loader: Use HW-acceleration for SHA256 2018-07-24 01:26:37 -07:00
Léo Lam e088a2f414 stratosphere: In-class initialize members
Same thing, less code, less boilerplate.
2018-07-10 09:38:18 -07:00