mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-11-26 13:52:21 +00:00
ams: prepare for 0.10.3
This commit is contained in:
parent
4f33afe0ee
commit
392c9c3a0b
4 changed files with 14 additions and 34 deletions
|
@ -1,4 +1,18 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
## 0.10.3
|
||||||
|
+ Support was added for 9.2.0.
|
||||||
|
+ Support was added for redirecting manual html content for games.
|
||||||
|
+ This works like normal layeredfs, replacing content placed in `/atmosphere/contents/<program id>/manual_html/`.
|
||||||
|
+ This allows for game mods/translations to provide custom manual content, if they so choose.
|
||||||
|
+ A number of improvements were made to Atmosphere's memory usage, including:
|
||||||
|
+ `fatal` now uses STB instead of freetype for rendering.
|
||||||
|
+ This saves around 1 MB of memory, and makes our fatal substantially leaner than Nintendo's.
|
||||||
|
+ `sm` no longer wastes 2 MiB unnecessarily.
|
||||||
|
+ fusee/sept's sdmmc access now better matches official behavior.
|
||||||
|
+ This improves compatibility with some SD cards.
|
||||||
|
+ `ro` has been updated to reflect changes made in 9.1.0.
|
||||||
|
+ The temporary auto-migration added in 0.10.0 has been removed, since the transitionary period is well over.
|
||||||
|
+ General system stability improvements to enhance the user's experience.
|
||||||
## 0.10.2
|
## 0.10.2
|
||||||
+ hbl configuration was made more flexible.
|
+ hbl configuration was made more flexible.
|
||||||
+ Up to eight specific program ids can now be specified to have their own override keys.
|
+ Up to eight specific program ids can now be specified to have their own override keys.
|
||||||
|
|
|
@ -154,16 +154,6 @@ namespace ams::mitm::fs {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: Remove this in Atmosphere 0.10.2. */
|
|
||||||
Result RenameProgramDirectoryForCompatibility(const char *dir_name) {
|
|
||||||
R_TRY(EnsureSdInitialized());
|
|
||||||
char titles_fixed_path[ams::fs::EntryNameLengthMax + 1];
|
|
||||||
char contents_fixed_path[ams::fs::EntryNameLengthMax + 1];
|
|
||||||
FormatAtmosphereSdPath(titles_fixed_path, sizeof(titles_fixed_path), "titles", dir_name);
|
|
||||||
FormatAtmosphereSdPath(contents_fixed_path, sizeof(contents_fixed_path), "contents", dir_name);
|
|
||||||
return fsFsRenameDirectory(&g_sd_filesystem, titles_fixed_path, contents_fixed_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool HasSdRomfsContent(ncm::ProgramId program_id) {
|
bool HasSdRomfsContent(ncm::ProgramId program_id) {
|
||||||
/* Check if romfs.bin is present. */
|
/* Check if romfs.bin is present. */
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,9 +43,6 @@ namespace ams::mitm::fs {
|
||||||
void FormatAtmosphereSdPath(char *dst_path, size_t dst_path_size, ncm::ProgramId program_id, const char *src_path);
|
void FormatAtmosphereSdPath(char *dst_path, size_t dst_path_size, ncm::ProgramId program_id, const char *src_path);
|
||||||
void FormatAtmosphereSdPath(char *dst_path, size_t dst_path_size, ncm::ProgramId program_id, const char *subdir, const char *src_path);
|
void FormatAtmosphereSdPath(char *dst_path, size_t dst_path_size, ncm::ProgramId program_id, const char *subdir, const char *src_path);
|
||||||
|
|
||||||
/* TODO: Remove this in Atmosphere 0.10.2. */
|
|
||||||
Result RenameProgramDirectoryForCompatibility(const char *dir_name);
|
|
||||||
|
|
||||||
bool HasSdRomfsContent(ncm::ProgramId program_id);
|
bool HasSdRomfsContent(ncm::ProgramId program_id);
|
||||||
|
|
||||||
Result SaveAtmosphereSdFile(FsFile *out, ncm::ProgramId program_id, const char *path, void *data, size_t size);
|
Result SaveAtmosphereSdFile(FsFile *out, ncm::ProgramId program_id, const char *path, void *data, size_t size);
|
||||||
|
|
|
@ -179,23 +179,6 @@ namespace ams::mitm {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenameTitlesDirectoryProgramFoldersForCompatibility() {
|
|
||||||
FsDir titles_dir;
|
|
||||||
if (R_FAILED(mitm::fs::OpenAtmosphereSdDirectory(&titles_dir, "/titles", ams::fs::OpenDirectoryMode_Directory))) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ON_SCOPE_EXIT { fsDirClose(&titles_dir); };
|
|
||||||
|
|
||||||
ams::fs::DirectoryEntry dir_entry;
|
|
||||||
s64 read_entries;
|
|
||||||
while (R_SUCCEEDED(fsDirRead(&titles_dir, &read_entries, 1, &dir_entry)) && read_entries == 1) {
|
|
||||||
if (strlen(dir_entry.name) == 2 * sizeof(ncm::ProgramId) && IsHexadecimal(dir_entry.name)) {
|
|
||||||
/* We found a program directory, try to rename it. Failure is allowed. */
|
|
||||||
mitm::fs::RenameProgramDirectoryForCompatibility(dir_entry.name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialization implementation */
|
/* Initialization implementation */
|
||||||
void InitializeThreadFunc(void *arg) {
|
void InitializeThreadFunc(void *arg) {
|
||||||
/* Wait for the SD card to be ready. */
|
/* Wait for the SD card to be ready. */
|
||||||
|
@ -211,10 +194,6 @@ namespace ams::mitm {
|
||||||
/* Backup Calibration Binary and BIS keys. */
|
/* Backup Calibration Binary and BIS keys. */
|
||||||
CreateAutomaticBackups();
|
CreateAutomaticBackups();
|
||||||
|
|
||||||
/* Rename program folders in the titles directory. */
|
|
||||||
/* TODO: Remove this in Atmosphere 0.10.2. */
|
|
||||||
RenameTitlesDirectoryProgramFoldersForCompatibility();
|
|
||||||
|
|
||||||
/* If we're emummc, persist a write-handle to prevent other processes from touching the image. */
|
/* If we're emummc, persist a write-handle to prevent other processes from touching the image. */
|
||||||
if (emummc::IsActive()) {
|
if (emummc::IsActive()) {
|
||||||
if (const char *emummc_file_path = emummc::GetFilePath(); emummc_file_path != nullptr) {
|
if (const char *emummc_file_path = emummc::GetFilePath(); emummc_file_path != nullptr) {
|
||||||
|
|
Loading…
Reference in a new issue