Commit graph

913 commits

Author SHA1 Message Date
Zephyron
84e5fbc089 feat: Make firmware mandatory for title launching
This commit implements a requirement for firmware to be installed before titles
can be launched, similar to how keys are required.

Changes include:
- Add IsFirmwareAvailable method to KeyManager to check for essential keys
- Add CheckFirmwarePresence method to verify actual firmware files (NCAs)
- Add firmware checks in game loading process for both desktop and Android
- Add error messages when firmware is missing
- Add strings for firmware-related error messages

The implementation checks for both essential keys and the presence of system
applets like Mii Edit and Home Menu to ensure proper firmware is installed.
Games will not launch if firmware is missing, and users will be shown an
appropriate error message.
2025-02-28 16:15:10 +10:00
Zephyron
7730d14b4a build: upgrade fmt and SDL2
Update fmt library to version 11.0.2 and make necessary adjustments:
- Replace fmt/format.h includes with fmt/ranges.h
- Add const qualifiers to formatter::format functions
- Update CMake to require fmt version 11

Additional dependency updates:
- Update SDL2 bundled version from 2.28.2 to 2.32.0
- Update catch2 to version 3.8.0
- Update vcpkg baseline to c82f74667287d3dc386bce81e44964370c91a289
2025-02-16 13:38:05 +10:00
Zephyron
6ab82e8eeb
service: Implement rebootless system update stubs and types
Adds initial support for rebootless system update related functionality:

- Add system archive title IDs for ApplicationBlackList, RebootlessSystemUpdateVersion,
  and ContentActionTable
- Add NS service result codes for system update operations
- Implement stubs for ISystemUpdateControl::SetupToReceiveSystemUpdate and
  RequestCheckLatestUpdateIncludesRebootlessUpdate
- Add RebootlessSystemUpdateVersion settings type and implement
  GetRebootlessSystemUpdateVersion in SET service
- Fix GetSettingsItemValueImpl template implementation

This provides basic infrastructure for handling system updates, particularly
the rebootless update feature, though actual update functionality remains
stubbed.
2025-01-30 22:10:08 +10:00
Zephyron
9ae0eeeb87 Revert incorrect copyright attribution for non-contributed files
- In commit b3facaa6bb, the copyright header was
  updated to include "Citron Homebrew Project" across multiple files, regardless
  of whether any contributions were made.

- This commit removes the incorrect attribution and reverts the copyright header
  to its previous state.

- Copyright attribution should only be added when meaningful contributions have
  been made to the file.

- This commit ensures proper compliance with copyright standards and maintains
  correct attribution to the respective contributors.

- Special thanks to Tachi for pointing out the need for these corrections and
  ensuring that proper attribution practices are followed.
2025-01-14 15:33:24 +10:00
Zephyron
468ace6b0b
core: Update copyright headers
- Update copyright headers to include Citron Homebrew Project
- Add 2025 to copyright years
2024-12-31 17:36:08 +10:00
Zephyron
b3facaa6bb
chore: update project references and add Citron copyright
- Replaced all references to the old project name with Citron.
- Added Citron copyright information alongside existing notices in all files.
2024-12-31 17:07:49 +10:00
Liam
c7174d5f61 general: fix asan errors 2024-02-26 19:28:49 -05:00
Liam
22b91afa69 fs: add ISaveDataTransferProhibiter, stub FindSaveDataWithFilter 2024-02-23 12:17:24 -05:00
liamwhite
0da6704fc2
Merge pull request #13073 from FearlessTobi/fsp-srv-ipc
fsp: Migrate remaining interfaces to cmif serialization
2024-02-23 11:34:06 -05:00
liamwhite
d12d9dad40
Merge pull request #12982 from FearlessTobi/fs-rewrite-part0
fs: Add FileSystemAccessor and use cmif serialization
2024-02-22 12:34:47 -05:00
liamwhite
9e1a67b950
fs: add missing mutex header for member (#13106) 2024-02-21 16:43:05 +01:00
FearlessTobi
ef50277124 Address review comments pt. 2 2024-02-19 19:22:51 +01:00
FearlessTobi
ba70dc4c13 Address review comments 2024-02-19 19:20:46 +01:00
FearlessTobi
934e420e36 fs: Refactor to use cmif serialization 2024-02-19 19:20:46 +01:00
FearlessTobi
d5e4617ab5 fs: Add FileSystemAccessor classes 2024-02-19 19:20:40 +01:00
FearlessTobi
b5a17b501b Address review comments 2024-02-19 19:11:07 +01:00
FearlessTobi
2b18957365 fs: Add and use fs_save_data_types.h 2024-02-19 19:06:31 +01:00
FearlessTobi
310c1f50be scope_exit: Make constexpr
Allows the use of the macro in constexpr-contexts.
Also avoids some potential problems when nesting braces inside it.
2024-02-19 16:00:46 +01:00
Liam
270d07be2f ns: rewrite IPlatformServiceManager 2024-02-18 10:32:21 -05:00
Leystryku
4f387b0b74 file_sys: Fix nacp field cache_storage_max_index datatype 2024-02-18 06:00:42 +01:00
Narr the Reg
2ff45cd0da
Merge pull request #12756 from liamwhite/applet-multiprocess-hwc
general: applet multiprocess
2024-02-11 20:58:28 -06:00
Liam
4677fd3f64 am: use applet program loading for tested versions 2024-02-10 12:38:19 -05:00
Narr the Reg
816d03f7d9 service: bcat: Address review issues 2024-02-10 00:23:23 -06:00
t895
f2fb761bac vfs: Fix getting URI filename 2024-01-26 09:57:22 -05:00
FearlessTobi
975deb7528 Address review comments and fix compilation problems 2024-01-25 16:43:53 -05:00
FearlessTobi
2c049ae06d fs: Add path class 2024-01-25 16:42:06 -05:00
FearlessTobi
c60ab6bbf6 fs/errors: Unify naming of result codes 2024-01-25 16:42:06 -05:00
FearlessTobi
cc09c265e1 fs: Replace Mode enum by OpenMode enum 2024-01-25 16:42:05 -05:00
FearlessTobi
0f9288e38d vfs: Move vfs files to their own directory 2024-01-25 16:40:42 -05:00
liamwhite
d45561ace0
Merge pull request #12499 from Kelebek1/time
Rework time services
2024-01-25 14:19:01 -05:00
Kelebek1
e4915fb7d2 Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
t895
03fa91ba3c android: Add addon delete button
Required some refactoring of retrieving patches in order for the frontend to pass the right information to ContentManager for deletion.
2024-01-19 20:54:50 -05:00
Liam
aae9eea532 fsp-srv: use program registry for SetCurrentProcess 2024-01-11 11:28:52 -05:00
liamwhite
ab513c378a
Merge pull request #12599 from german77/settings
service: set: Use official names
2024-01-07 20:40:56 -05:00
german77
8e27a485d8 service: set: Rename files 2024-01-06 23:16:03 -06:00
t895
53d4dbacf0 android: Re-add global save manager
Reworked to correctly collect and import/export saves that could exist in either /nand/user/save/000...000/<user id> or /nand/user/save/account/<user id raw string>
2024-01-04 00:56:40 -05:00
Liam
d1c99c5d52 ips_layer: prevent out of bounds access with offset exceeding module size 2023-12-28 01:16:51 -05:00
Liam
31bf57a310 general: properly support multiple memory instances 2023-12-22 21:52:49 -05:00
liamwhite
360418f1a1
Merge pull request #12290 from liamwhite/deferred-path-split
Improve path splitting speed
2023-12-16 11:47:29 -05:00
Liam
d597383ab2 fs: don't enumerate hidden savedata size file 2023-12-09 14:05:16 -05:00
BreadFish64
d5de9402ee Improve path splitting speed 2023-12-05 23:17:19 -05:00
Liam
0751488727 fsmitm_romfsbuild: optimize for data locality 2023-12-03 16:29:57 -05:00
Liam
4bc932261b romfs: cache file and directory metadata tables 2023-12-03 16:29:57 -05:00
Liam
45b6161582 file_sys: handle null romfs 2023-12-01 23:39:48 -05:00
Liam
b0c6bf497a romfs: fix extraction of single-directory root 2023-10-31 23:26:51 -04:00
Liam
8c59543ee3 kernel: update KProcess 2023-10-21 20:03:41 -04:00
Liam
12ebc8d9d1 set: return version info from system archive 2023-10-20 13:29:52 -04:00
Liam
053a16799e fsmitm_romfsbuild: avoid unnecessary copies of vfs pointers 2023-10-13 14:22:52 -04:00
liamwhite
bf15aa093c
Merge pull request #11639 from liamwhite/no-program-id-change
loader: don't reassign program ID on npdm reparse
2023-10-07 12:49:32 -04:00
Liam
0448eb6f0f ci: fix new codespell errors 2023-10-02 18:03:05 -04:00