Commit Graph

4262 Commits

Author SHA1 Message Date
Michael Scire
f3754cb50b loader: fix sd-cmpt 2025-12-04 03:13:19 +01:00
Michael Scire
80edcb3f69 loader: update for 20.0.0/21.0.0 2025-12-04 03:13:19 +01:00
Michael Scire
0b2a14ae99 pgl/pm: add GetProcessId command 2025-12-04 03:13:08 +01:00
Michael Scire
9be23a366e kern: fix debug build for [[nodiscard]] changes 2025-12-04 03:13:08 +01:00
Michael Scire
c72534def6 kern: fix whoops introduced by nodiscard refactor 2025-12-04 03:13:08 +01:00
Michael Scire
a878a6bbb2 erpt: implement new 21.0.0 commands 2025-12-04 03:13:08 +01:00
Michael Scire
9cdc2c22f6 erpt: fix ids, failed to copy the new categories 2025-12-04 03:13:08 +01:00
Michael Scire
f123104774 fatal: add new HashedTraceContext command 2025-12-04 03:13:08 +01:00
Michael Scire
5eef055d74 erpt: add new IDs for 21.0.0 2025-12-04 03:13:07 +01:00
Michael Scire
cea188c31f kern: RESERVED_2F now set by HandleFpuException 2025-12-04 03:12:52 +01:00
Michael Scire
d457f05204 kern: exception flags are now atomic.
This is a really weird one, because they didn't actually update the
code which updates these flags in asm, these still use ldrb/orr/strb.
But every access to these via c++ is now an atomic ldxrb/stxrb loop.
Maybe they just forgot to update the asm?
2025-12-04 03:12:52 +01:00
Michael Scire
84454fa095 kern: pass u32 directly to CopyMemoryToUserSize32Bit 2025-12-04 03:12:52 +01:00
Michael Scire
59f3fc70a5 ams: mark ams::Result [[nodiscard]] (partially complete).
NOTE: This work is not yet fully complete; kernel is done, but
it was taking an exceedingly long time to get through libstratosphere.
Thus, I've temporarily added -Wno-error=unused-result for libstratosphere/stratosphere.

All warnings should be fixed to do the same thing Nintendo does as relevant, but this
is taking a phenomenally long time and is not actually the most important work to do,
so it can be put off for some time to prioritize other tasks for 21.0.0 support.
2025-12-04 03:12:52 +01:00
Michael Scire
b7fe85a34c kern: Nintendo now also devirtualizes KAutoObject::DynamicCast 2025-12-04 03:09:41 +01:00
Michael Scire
1978309b3e kern: write cpu tick differential to tls +0x108 on thread switch 2025-12-04 03:09:41 +01:00
Michael Scire
689e25ccb0 fusee/exo/ams: update with new keydata/version enums 2025-12-04 03:09:41 +01:00
Michael Scire
af0a8bddf9 fs.mitm: add another game which needs stolen heap for layeredfs 2025-12-04 03:08:35 +01:00
Michael Scire
86fd8d66e1 fssystem: fix support for parsing newer-format BKTR NCAs
Apparently, at some point they started allowing maxlayers=3, which caused this code to not work.

Looking at latest FS, they always reference DataStorage instead of level+2 for the final level.

This fixes parsing update romfs for newer games, e.g. Super Mario Galaxy 2.
2025-12-04 03:07:59 +01:00
Michael Scire
a1a88e5c42 ams: bump version, add enum support for 20.5.0 2025-10-07 21:21:17 +02:00
Michael Scire
5bc02311c6 exo: improve offset-table fix (save 8 bytes) 2025-09-12 19:13:38 +02:00
Michael Scire
2703bfc712 docs: add note about deadlock fix 2025-09-12 19:13:23 +02:00
Michael Scire
8ab0ac2706 ams.mitm: fix deadlock when building multiple romfs simultaneously (closes #1972) 2025-09-12 19:13:15 +02:00
Michael Scire
93e73a3c36 ams: bump version, add enum support for 20.4.0 2025-09-12 19:13:09 +02:00
Michael Scire
75003401ba exo: fix register access tables to page start 2025-09-12 19:10:57 +02:00
comex
7c54aff4d4 build: portability fixes
- Invoke Python scripts with `python3` if `python` is not available.

  Despite SciresM preferring Python 2, the scripts used in the build all
  worked in Python 3 already, so this is just a Makefile change.

- Export `MAKE` to work around a GNU bug.

  See the comment for details.

- `rmdir --ignore-fail-on-non-empty` -> `rmdir 2>/dev/null`

  macOS `rmdir` doesn't support `--ignore-fail-on-non-empty`.

  This is a slight downgrade in functionality, because now we ignore all
  errors from `rmdir` rather than just 'Directory not empty'.  I could
  have avoided this with a more complicated fix, but the benefit strikes
  me as not worth the complexity.  Let me know if you disagree.

- Append `$(DEVKITPRO)/tools/bin/` to `$PATH` when invoking
  `build_romfs`.

  This avoids the need to add devkitPro directories to `$PATH` when
  building Atmosphere.

  If you already have `build_romfs` in your PATH, then that will still
  take precedence.  (This seemed like the nicer option, though I don't
  have strong opinions.)
2025-09-12 19:10:47 +02:00
comex
e42f7c1ee2 nanovg: disable some compiler warnings
Disable all warnings seen on devkitA64 GCC 15.1.0:

- Several false-positive `-Wmisleading-indentation` warnings (the
  indentation is not actually misleading)

- One `-Wuse-after-free` warning, which looks alarming and represents
  very dubious design, but is ultimately harmless (a freed pointer is
  passed to a function that doesn't use it).

- Some `-Wunused-function` warnings in `simd/neon.h`
2025-09-12 19:10:47 +02:00
comex
25c423203d daybreak: fix strncpy compiler warning
GCC warned that the output string would not be nul-terminated if the
input string was too long.  Fix this by subtracting 1 from the size
argument, as is done for other `strncpy` calls in the file.  (It would
probably be better to avoid `strncpy` entirely, but this is just a
simple fix.)
2025-09-12 19:10:47 +02:00
comex
e9147d8e1d haze: fix duplicate-macro warnings
haze was including both `<switch.h>` and `vapours/types.hpp` which both
define `R_SUCCEEDED` and `R_FAILED`, producing compiler warnings.

The intent is that `vapours/types.hpp` only gets included when targeting
not-Switch and/or not-EL0.  But the check didn't account for
Troposphère.  Fix that.
2025-09-12 19:10:47 +02:00
Michael Scire
412b11451d ams: bump version, support 20.3.0 2025-09-12 19:09:13 +02:00
Michael Scire
dba25b2c85 fs.mitm: steal some heap when building romfs for kotor2 (closes #2564) 2025-09-12 19:09:12 +02:00
Michael Scire
2bbef1e64f ams: bump version, add 1.9.2 changelog 2025-09-12 19:09:12 +02:00
Michael Scire
9cde2f57fa ams: add enum version support for 20.1.x/20.2.0 2025-09-12 19:09:12 +02:00
lulle2007200
e2ef4cf207 git subrepo push emummc
subrepo:
  subdir:   "emummc"
  merged:   "2d7e66d20"
upstream:
  origin:   "git@github.com:lulle2007200/emuMMC.git"
  branch:   "internal-emummc"
  commit:   "2d7e66d20"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "30db3b8"
2025-06-14 22:41:56 +02:00
lsp199308
4a83cd0403 loader: add usb 3.0 enable patches for 20.1.0 (#2556)
* loader: add usb 3.0 enable patches for 20.1.0
2025-06-14 21:07:38 +02:00
Michael Scire
8d4a7d21a9 git subrepo push libraries
subrepo:
  subdir:   "libraries"
  merged:   "0f72b2ceb"
upstream:
  origin:   "https://github.com/Atmosphere-NX/Atmosphere-libs"
  branch:   "master"
  commit:   "0f72b2ceb"
git-subrepo:
  version:  "0.4.1"
  origin:   "???"
  commit:   "???"
2025-06-14 21:07:38 +02:00
Michael Scire
3efd3ff98c docs: add basic changelog for 1.9.1 2025-06-14 21:07:23 +02:00
Marcus Carter
e343e6b93c Clarify that code type 0xC4 uses a 64-bit value in cheats.md by formatting the key values as such
Changes the formatting of the key values at `Code Type 0xC4: Begin Extended Keypress Conditional Block` in cheats.md so that it is perfectly clear that those values are 64-bit values rather than 32-bit or 28-bit like `Code Type 0x8: Begin Keypress Conditional Block`, and also for the fact that the formatting matches the rest of the document and is thus cleaner.
2025-06-14 21:07:23 +02:00
Michael Scire
f1fe491bcf emummc: note 20.1.0 support in README 2025-06-14 21:07:06 +02:00
Michael Scire
8adaf8dc79 kern: move spendsgir static assert 2025-06-14 21:07:06 +02:00
Michael Scire
cb0ad3aaf3 fusee/emummc: add support for FS 20.1.0 2025-06-14 21:07:06 +02:00
Michael Scire
ad92c908c4 erpt: update IDs for 20.1.0 2025-06-14 21:06:09 +02:00
Michael Scire
b3dcb7d590 kern: save/restore spendsgir in KInterruptController::Save/RestoreCoreLocal 2025-06-14 21:06:09 +02:00
Michael Scire
8665036092 kern: wait 100us after synchronizing cores before saving interrupt state on sleep 2025-06-14 21:06:09 +02:00
Michael Scire
50956fce6f kern: use KLightLock for KCoreBarrierInterruptHandler 2025-06-14 21:06:09 +02:00
Michael Scire
99136146dd Add version enums for 20.1.0 2025-06-14 21:06:09 +02:00
Michael Scire
b9024a89e2 docs: add banner to readme 2025-06-14 21:06:08 +02:00
lulle2007200
52d0e89f01 git subrepo push emummc
subrepo:
  subdir:   "emummc"
  merged:   "93cea0388"
upstream:
  origin:   "git@github.com:lulle2007200/emuMMC.git"
  branch:   "internal-emummc"
  commit:   "93cea0388"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "30db3b8"
2025-05-22 23:07:03 +02:00
Christoph Baumann
8c11b287ff fix strcat 2025-05-22 22:50:17 +02:00
Christoph Baumann
63a12453f3 fix memory mode 2025-05-22 22:50:11 +02:00
Christoph Baumann
2d20e9af5a add partition checks 2025-05-22 14:42:55 +02:00