Commit graph

149 commits

Author SHA1 Message Date
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 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 e07011be32 mitm: fix long-standing C descriptor issue. 2019-12-07 12:41:28 -08:00
Michael Scire bb223eb5ae libstrat: namespace hossynch.hpp 2019-12-07 12:41:28 -08:00
Michael Scire a750e55f75 tmp-hid-mitm: less aggressively enable controllers
This fixes a crash in SSBU and possibly other games.
2019-09-14 13:37:31 -07:00
Michael Scire 6613fda4b1 ams_mitm: add temporary hid mitm on 9.x for compat 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 600d68bd1a ams_mitm: fix bis key generation for newer hardware 2019-08-29 00:14:23 -07:00
Michael Scire 362ee3cdb0 autobackup: dump bis keys (closes #583). 2019-08-05 19:35:04 -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
Michael Scire c916a7db88 strat: remove sizeof() / sizeof([0]) 2019-07-11 22:24:59 -07:00
suppai bfc987abcd Fix for libnx commit 4f441a4/latest master at time of writing 2019-07-07 23:56:21 -04:00
Michael Scire 2225b86eea Adjust version string based on ReSwitched vote. 2019-07-02 11:49:24 -07:00
hexkyz 09ab3efddd Fix argument type for isspace 2019-07-01 20:29:43 +01: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 61fcf5e0f4 loader: completely rewrite. 2019-06-26 15:46:19 -07:00
Michael Scire 1671c04e24 stratosphere: prefer static waitable managers 2019-06-20 13:15:39 -07:00
Michael Scire d3d6c552b7 stratosphere: remove trailing whitespace 2019-06-20 13:00:32 -07:00
Michael Scire 60b831f369 ams_mitm: refactor for R_TRY 2019-06-20 04:04:33 -07:00
Michael Scire aad02cd751 ams_mitm: update write handle persist path 2019-06-15 07:57:50 -07:00
Michael Scire 0dcb496522 Fix emummc nintendo dir redirection 2019-06-14 21:20:53 -07:00
hexkyz 4c4f037361 Merge branch 'master' into emunand_dev 2019-06-09 19:23:51 +01:00
SciresM df3c8f4c94
Merge pull request #555 from lioncash/header
bpcmitm_main: Add missing header guard
2019-06-04 12:23:37 -07:00
Lioncash 89a83b0e5a bpcmitm_main: Remove unnecessary includes
Quite a few headers are unused in this header, so we can remove them to
make compilation a tiny bit faster.
2019-06-04 06:29:14 -04:00
Lioncash 7bdd4bb2d1 bpcmitm_main: Add missing header guard
Prevents potential inclusion issues.
2019-06-04 06:28:34 -04:00
Lioncash dd10547ac2 setsys_settings_items: Less resource churn with combined key/value construction
The previous string construction discards two temporary std::string
instances (operator+ returns by value, not by reference), and creates a
std::string that it doesn't need to (the one around key). Instead we can
just append to the end of the initial std::string itself, saving on two
unnecessary created strings.

append() has a const char* overload as well (as does operator+), so we
can just append the key string as is without creating an entire new
string.
2019-06-03 21:37:53 -04:00
Lioncash 452c61db7a setsys_settings_items: Simplify buffer management in LoadConfiguration()
We can use a std::string here instead of setting up a scope guard and
manual allocations. We also don't need to care about null-termination,
as c_str() will automatically ensure this is done when passing it into
ini_parse_string().
2019-06-03 21:37:12 -04:00
Michael Scire 837b30d075 Merge branch 'master' into emunand_dev 2019-06-03 12:22:01 -07:00
Michael Scire 50e307b4b7 Update for latest libnx 2019-06-03 12:19:05 -07:00
Michael Scire 4dac80df75 fs.mitm: add Nintendo directory redirection code 2019-05-27 11:48:17 -07:00
Michael Scire 6f25e92892 set.mitm: language emulation (closes #489) 2019-05-22 12:13:10 -07:00
SciresM 6cc29185d2
Merge pull request #545 from Kronos2308/simple-sd-save-flag
simple sd_save flag
2019-05-17 07:34:07 -07:00
Kronos2308 bbb658a7e5
orthography 2019-05-17 10:03:53 +01:00
Kronos2308 ad812c8125
use configuration of system_settings.ini
prioritize the configuration of system_settings.ini
2019-05-17 09:28:46 +01:00
Kronos2308 a64fdce505
flag is now "redirect_save" 2019-05-17 08:44:41 +01:00
Kronos2308 7e950c3bcc Revert "Add files via upload"
This reverts commit d0d7772f98.
2019-05-17 08:38:21 +01:00
Kronos2308 d0d7772f98
Add files via upload 2019-05-17 08:29:38 +01:00
Kronos2308 674175e1c6
simple sd_save flag
something that allows you to decide which title to redirect games saves and which does not
2019-05-17 03:28:24 +01:00
leo60228 56d7473451 Do same in ams_mitm 2019-05-12 09:04:58 -04:00
Michael Scire 03a425a579 stratosphere: TODO: panic -> std::abort() 2019-05-10 03:28:18 -07:00
Michael Scire 348345340d fs.mitm: Implement FileStorage 2019-04-29 12:55:02 -07:00
Michael Scire 7fef83885f ams: improve fatal error context 2019-04-26 07:25:38 -07:00
Michael Scire b09adb6a34 stratosphere: only hold sm sessions open when needed 2019-04-22 12:59:49 -07:00
Michael Scire 9f972831cc fs.mitm: fix data abort 2019-04-22 03:42:37 -07:00
Michael Scire 908de31a0e pm: on 7.0.0+, npns is launched in maintenance boot (closes #511) 2019-04-20 10:36:38 -07:00
Michael Scire ac07971211 stratosphere: custom exception handlers (reboot to fusee) 2019-04-12 15:28:46 -07:00
Michael Scire 03e176d7f1 atmosphere: current year is 2019 2019-04-07 19:00:49 -07:00
Michael Scire 05c4dfd8f8 Merge remote-tracking branch 'origin/master' 2019-04-05 13:42:17 -07:00
Michael Scire 938169cd3c fs.mitm: experimental support for save redirection to sd. 2019-04-05 13:42:09 -07:00
Mat M 753958de28 fs_mitm/fs_dir_utils: Amend logic error within IterateDirectoryRecursivelyInternal() (#498)
This likely intended to get the size of the string and then subtract the
null terminator byte. Instead, this would always result in a sizeof of
8.
2019-04-04 20:04:26 -07:00
Michael Scire fb5e02050b fs.mitm: fix logic error in CopyFile 2019-04-04 15:41:41 -07:00
Michael Scire a0f3183c79 strat: sha256 s/linux/libnx/g 2019-04-04 12:02:00 -07:00
Michael Scire 262d6af519 bis_protect: guard against autorcm on rcm-patched units 2019-04-01 17:24:15 -07:00
Michael Scire 81aa5c7ec7 set_mitm: result defs instead of magics 2019-03-28 23:04:13 -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 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 2678735f73 stratosphere: migrate result headers to libstrat 2019-03-28 14:23:34 -07:00
Michael Scire f2433824ba fs.mitm: fix missing include in fs_shim.c 2019-03-28 10:51:51 -07:00
Michael Scire d00b183f92 fs.mitm: Implement DirectorySaveDataFileSystem. 2019-03-28 10:43:33 -07:00
Michael Scire 325c71b1b4 ams_mitm: fix erroneous comment due to copy-paste. 2019-03-26 12:03:55 -07:00
Michael Scire f9c9c1048e fs.mitm: prefer official web content to hbl_html 2019-03-26 11:53:30 -07:00
Michael Scire 4ccb39a228 ams_mitm: add ns:web mitm for HBL web support 2019-03-26 11:35:50 -07:00
Michael Scire ad8acaefec fs.mitm: fix some filesystem issues 2019-03-26 09:05:19 -07:00
Michael Scire 20ba6432b9 set.mitm: fix 1.0.0 compat (closes #459) 2019-03-24 19:27:37 -07:00
Michael Scire 047f3b653e fs.mitm: also give choinx access to boot1 (closes #485) 2019-03-23 16:33:49 -07:00
Michael Scire 79244078a6 fs.mitm: make HBL web content work (verified on hw) 2019-03-22 16:54:37 -08:00
Michael Scire fce2099d7d fs.mitm: fix error in FsPathUtils::VerifyPath 2019-03-22 15:06:50 -07:00
Michael Scire 22d4de27f1 fs.mitm: fix null deref 2019-03-22 14:49:07 -07:00
Michael Scire 9d5ca47ac8 fs.mitm: Add Hbl Web override support, also support choinx" 2019-03-22 12:41:51 -07:00
Michael Scire c1588d0300 fs.mitm: Implement path normalization 2019-03-22 11:52:03 -07:00
Michael Scire b62014554c fs.mitm: Implement SubDirectoryFileSystem 2019-03-22 11:28:09 -07:00
Michael Scire afcaf20020 fs.mitm: ProxyFile, ProxyDirectory, ProxyFileSystem 2019-03-22 10:20:36 -07:00
Michael Scire bcf20b4441 fs.mitm: implement ifilesystem wrapper 2019-03-22 09:51:47 -07:00
Michael Scire c8a4a6dc58 fs.mitm: fix inverted ifile condition 2019-03-22 08:58:08 -07:00
Michael Scire 634ce933be fs.mitm: start implementation of IFileSystem api. 2019-03-22 08:49:10 -07:00
Michael Scire ca42a9daec hbl: change default to every_app=true, change default override key 2019-03-22 07:13:49 -07:00
Michael Scire 9e1e9ff8c0 loader: separate override_any_app (deprecate =app) 2019-03-22 06:59:28 -07:00
Michael Scire 51fa778fb2 loader/ams_mitm: Change Down -> Held in API 2019-03-15 21:28:38 -07:00
Michael Scire 83626923cf loader/ams_mitm: hidKeysHeld, not hidKeysDown (and remove workaround) 2019-03-15 18:34:55 -07:00
Léo Lam b6d3df3335 fs_mitm: Fix mismatched new[] / delete (#389)
* fs.mitm: Fix mismatched new[] / delete

Using delete instead of delete[] on a pointer given by new[] is
undefined behaviour.

For memory sources, malloc/free are used because cleaning up is tricky
when data can be either allocated with new (RomfsHeader) or new[]
(metadata).

* set.mitm: Fix mismatched new[] / delete
2019-03-08 07:25:33 -08:00
Michael Scire 66560d0a7b fs.mitm: fix two cases of inverted logic 2019-03-07 19:53:21 -08:00
Michael Scire b4b1208222 stratosphere: fix svcExitThread usage 2019-03-05 07:50:27 -08:00
Michael Scire 5ef3ca9364 fs.mitm: make prodinfo backups actually work 2019-03-04 19:05:52 -08:00
Michael Scire 37d3577028 dmnt: allow disabling cheats via title-specific button combo 2019-03-04 06:55:37 -08:00
Michael Scire a8d929a343 fs.mitm: fix inverted conditional 2019-02-23 22:11:57 -08:00
Michael Scire 6cc69fb3fc fs.mitm: Add title-specific override key support. 2019-02-23 07:39:40 -08:00
Michael Scire a0e06cf7b2 exo/bpc.mitm: Add support for proper shutdown. 2019-02-21 07:05:58 -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 67c7ef69f4 bpc.mitm: Make reboot type configurable 2019-02-05 01:51:05 -08:00
Michael Scire e2a7f23214 ams.mitm: simplify bpc ShouldMitm logic, fix enum problem 2019-02-04 21:47:55 -08:00
Michael Scire 784964d49d ams.mitm: add bpc handler, for reboot power button stuff 2019-02-04 21:17:05 -08:00
Michael Scire e715197290 Merge fs.mitm and set.mitm. 2019-02-04 20:15:16 -08:00