Comparer les révisions

...

30 Révisions

Auteur SHA1 Message Date
Crimson Hawk 91db3e88e5
Merge branch 'f18-changes' into dev 2024-04-18 11:53:16 +08:00
Crimson Hawk beb4ef9ac7
Undo some changes to readme 2024-04-18 11:46:12 +08:00
chaphidoesstuff 01e4c367f8
Update README.md 2024-04-18 11:46:12 +08:00
chaphidoesstuff 5ebba7bdea
Added Ios release 2024-04-18 11:46:12 +08:00
chaphidoesstuff 2ac178617c
Update README.md 2024-04-18 11:46:11 +08:00
chaphidoesstuff e795daf66c
Update README.md 2024-04-18 11:46:11 +08:00
chaphidoesstuff 84bd6264ea
Added info 2024-04-18 11:46:11 +08:00
chaphidoesstuff 35afff5c31
Update README.md 2024-04-18 11:46:11 +08:00
administrator 91dd8ba6f0
Replace Discord with suyu chat in issue template 2024-04-18 11:46:10 +08:00
administrator 4b1c30ec49
Replace Discord with suyu chat in issue template
Fixes https://git.suyu.dev/suyu/suyu/issues/139
2024-04-18 11:46:10 +08:00
administrator 0246529124
Change Matrix to chat 2024-04-18 11:46:10 +08:00
zqpvr01 ba40a4516d
Remove discord (3) 2024-04-18 11:46:10 +08:00
zqpvr01 d2c09f531b
Remove discord (2) 2024-04-18 11:46:09 +08:00
zqpvr01 806b300969
Remove discord 2024-04-18 11:46:09 +08:00
BoomMicrophone 1f517bbe1e
remove comment
gotta coooooommit :D
2024-04-18 11:46:09 +08:00
BoomMicrophone dca166ca9c
remove comment
gpg timeout so i gotta coooooommit :D
2024-04-18 11:46:09 +08:00
BoomMicrophone 6f26709e42
fix epic fail
(I am relying on actions to do the compiling for me until i get nix)
2024-04-18 11:46:08 +08:00
BoomMicrophone f44fafdd88
Woah guys this is so compliant!
Signed-off-by: BoomMicrophone <boommicrophone@noreply.localhost>
2024-04-18 11:46:08 +08:00
BoomMicrophone e1b77dd898
nullglob globstar gobble up those nuts
shoutout to gpg for not working

Signed-off-by: BoomMicrophone <boommicrophone@noreply.localhost>
2024-04-18 11:46:08 +08:00
Hustler One 02fc046031
All relevant changes in commit 51862e862d have been 2024-04-18 11:46:08 +08:00
Exverge 138d67b307
Refactor android to dev.suyu.suyu_emu 2024-04-18 11:46:07 +08:00
flodavid 323ea0cdfd
WIP: fix macOS style when OS dark mode is active 2024-04-18 11:46:07 +08:00
flodavid b28acaf7c9
Fix qdarkstyle and midnight blue sliders being cropped
- Allow Threshold sliders in control configuration to be up to 40px tall, instead of 15
2024-04-18 11:46:07 +08:00
flodavid c00c425b48
Add dark mode configuration setting in UI tab
- Allows to choose "Auto", "Always On" or "Always Off"
  - Dark mode options are only shown if the style does not support theme
- If Auto is chosen, value is retrieved from OS
  - On Windows, the application needs a restart to apply the settings
- Use the default dark palette for Windows, like on Linux
2024-04-18 11:46:07 +08:00
flodavid 104e6c3ff7
Rework themes to easily use light/dark palette, using only different icons
- Renamed themes:
  - "colorful" to "default" and "colorful_dark" to "default_dark"
  - "default" to "monochrome" and "default_dark" to "monochrome_dark"
  - "colorful_midnight_blue" to "qdarkstyle_midnight_blue"
  - "qdarkstyle_midnight_blue" to "qdarkstyle_midnight_blue_monochrome"
  - qdarkstyle is renamed from "Dark" to "Mine Shaft" in the UI
- default and monochrome themes all use the same qss stylesheet
- Remove the ability to select "default_dark" directly
    - Default has better support for light and dark
    - Controller and Keyboard applets icons and style adapt to dark mode
- Add "qdarkstyle_monochrome" theme
- Remove duplicated icon files
2024-04-18 11:46:06 +08:00
flodavid f01d7305c0
Automatic dark theme switching for Windows and Linux
- Windows dark theme uses "fusion" style, which is better suited, but has minor differences
- Improve OS theme detection
  - Linux:
    - Listen for OS color schemes changes on D-Bus
    - Read OS scheme for D-Bus. Fallback with gsettings, reading org.gnome.desktop.interface.
      First "color-scheme" key, then "gtk-theme". Finally, fallback to checking window palette
  - Windows (dark mode detection was not implemented before):
    - Force dark palette when OS uses dark mode by setting QT_QPA_PLATFORM to "windows:darkmode=2"
    - This enables to detect dark mode by checking the window palette
- Improve theming capabilites:
  - Linux uses custom palette when dark mode is detected.
    By using palette(xxx) in .qss files, there is no need to create a dark stylesheet
  - Allow themes to have stylesheet variants, dark.qss and light.qss
  - If current mode is dark, use dark icons for controller and keyboard applets
  - Add "dark" property to RendererStatusBarButton and GPUStatusBarButton, set to true when dark mode is used.
    Allows to have distinct colors for GPU API and accuracy buttons depending on dark mode or not
  - Enable all themes to have dark icon alternatives, not just "default" and "colorful"
    - If dark mode, icons are loaded from the directory "THEME-NAME_dark/icons"
  - If current mode is dark, use dark icons for controller and keyboard applets
  - Only qdarkstyle, qdarkstyle_midnight_blue, colorful_dark and
    colorful_midnight_blue used elements specific to dark themes
2024-04-18 11:46:06 +08:00
flodavid 97814d3e59
Load custom Qt themes from yuzu data directory
- Directory is qt_themes, each theme must be in one folder
    - It should contain a file "style.qss"
    - It may contain an "icons" sub-directory, to override included icons
      (with files like mytheme/icons/colorful/48x48/star.png for example)
    - Directories ending by "_dark" are reserved for dark variant icons.
      They are not listed as themes in the UI.
- If theme directory contains "dark" or "midnight", theme will be considered dark
2024-04-18 11:46:06 +08:00
Crimson Hawk 2083820fda
Undo some changes to readme 2024-04-18 11:41:41 +08:00
lol 70c52a1914 fix qlaunch on firmware 18 2024-04-09 18:05:24 +02:00
Exverge 641ef1b887
Map methods in firmware 18.0.0 2024-04-07 18:23:38 -04:00
7 fichiers modifiés avec 44 ajouts et 7 suppressions

Voir le fichier

@ -21,9 +21,9 @@ Support the original suyu developer team [here](https://discord.gg/ajz5hdrZ)
<br>
</h1>
<h4 align="center"><b>suyu</b> was the continuation of the world's most popular, open-source, Nintendo Switch emulator, yuzu, but is now something greater.
<h4 align="center"><b>suyu</b> is the continuation of the world's most popular, open-source, Nintendo Switch emulator.
<br>
It is written in C++ (C# possibly required soon) with portability in mind, and we're actively working on builds for Windows, Linux and Android along with a custom OS called suyuos (https://git.suyu.dev/suyu/suyu-os) .
It is written in C++ (C# possibly required soon) with portability in mind, we actively work on builds for Windows, Linux and Android, along with a WIP custom OS called suyuOS (https://git.suyu.dev/suyu/suyu-os) .
</h4>
@ -62,7 +62,6 @@ You can also contact any of the developers on Discord to learn more about the cu
* __Linux__: [Releases](https://git.suyu.dev/suyu/suyu/releases)
* __macOS__: [Releases](https://git.suyu.dev/suyu/suyu/releases)
* __Android__: [Releases](https://git.suyu.dev/suyu/suyu/releases)
* __IOS (Sudachi redirect)__: [Releases](https://github.com/emuPlace/Sudachi/releases)
If you want daily builds then [Click here](https://git.suyu.dev/suyu/suyu/actions)
If you don't know how to download the daily builds then [Click here](https://git.suyu.dev/suyu/suyu/raw/branch/dev/img/daily-builds.png)

Voir le fichier

@ -172,6 +172,7 @@ Result KPageTableBase::InitializeForKernel(bool is_64_bit, KVirtualAddress start
m_mapped_unsafe_physical_memory = 0;
m_mapped_insecure_memory = 0;
m_mapped_ipc_server_memory = 0;
m_alias_region_extra_size = 0;
m_memory_block_slab_manager =
m_kernel.GetSystemSystemResource().GetMemoryBlockSlabManagerPointer();
@ -269,6 +270,12 @@ Result KPageTableBase::InitializeForProcess(Svc::CreateProcessFlag as_type, bool
process_code_end = m_code_region_end;
}
m_alias_region_extra_size = 0;
if (as_type == Svc::CreateProcessFlag::EnableReservedRegionExtraSize) {
m_alias_region_extra_size = GetAddressSpaceSize() / 8;
alias_region_size += m_alias_region_extra_size;
}
// Set other basic fields.
m_enable_aslr = enable_aslr;
m_enable_device_address_space_merge = enable_das_merge;

Voir le fichier

@ -208,6 +208,7 @@ private:
size_t m_mapped_unsafe_physical_memory{};
size_t m_mapped_insecure_memory{};
size_t m_mapped_ipc_server_memory{};
size_t m_alias_region_extra_size{};
mutable KLightLock m_general_lock;
mutable KLightLock m_map_physical_memory_lock;
KLightLock m_device_map_lock;
@ -682,6 +683,9 @@ public:
size_t GetAliasRegionSize() const {
return m_alias_region_end - m_alias_region_start;
}
size_t GetReservedRegionExtraSize() const {
return m_alias_region_extra_size;
}
size_t GetStackRegionSize() const {
return m_stack_region_end - m_stack_region_start;
}

Voir le fichier

@ -410,6 +410,9 @@ public:
size_t GetAliasRegionSize() const {
return m_page_table.GetAliasRegionSize();
}
size_t GetReservedRegionExtraSize() const {
return m_page_table.GetReservedRegionExtraSize();
}
size_t GetStackRegionSize() const {
return m_page_table.GetStackRegionSize();
}

Voir le fichier

@ -37,7 +37,8 @@ Result GetInfo(Core::System& system, u64* result, InfoType info_id_type, Handle
case InfoType::TotalNonSystemMemorySize:
case InfoType::UsedNonSystemMemorySize:
case InfoType::IsApplication:
case InfoType::FreeThreadCount: {
case InfoType::FreeThreadCount:
case InfoType::ReservedRegionExtraSize: {
R_UNLESS(info_sub_id == 0, ResultInvalidEnumValue);
const auto& handle_table = GetCurrentProcess(system.Kernel()).GetHandleTable();
@ -134,6 +135,10 @@ Result GetInfo(Core::System& system, u64* result, InfoType info_id_type, Handle
}
R_SUCCEED();
case InfoType::ReservedRegionExtraSize:
*result = process->GetPageTable().GetReservedRegionExtraSize();
R_SUCCEED();
default:
break;
}

Voir le fichier

@ -153,6 +153,7 @@ enum class InfoType : u32 {
ThreadTickCount = 25,
IsSvcPermitted = 26,
IoRegionHint = 27,
ReservedRegionExtraSize = 28,
MesosphereMeta = 65000,
MesosphereCurrentProcess = 65001,
@ -642,9 +643,12 @@ enum class CreateProcessFlag : u32 {
// 11.x+ DisableDeviceAddressSpaceMerge.
DisableDeviceAddressSpaceMerge = (1 << 12),
EnableReservedRegionExtraSize = (1 << 13),
// Mask of all flags.
All = Is64Bit | AddressSpaceMask | EnableDebug | EnableAslr | IsApplication |
PoolPartitionMask | OptimizeMemoryAllocation | DisableDeviceAddressSpaceMerge,
PoolPartitionMask | OptimizeMemoryAllocation | DisableDeviceAddressSpaceMerge |
EnableReservedRegionExtraSize,
};
DECLARE_ENUM_FLAG_OPERATORS(CreateProcessFlag);

Voir le fichier

@ -323,7 +323,7 @@ public:
{11, &IProfileCommon::LoadImage, "LoadImage"},
{20, &IProfileCommon::GetImageSize, "GetLargeImageSize"}, // 18.0.0+
{21, &IProfileCommon::LoadImage, "LoadLargeImage"}, // 18.0.0+
{30, nullptr, "GetImageId"}, // 18.0.0+
{30, &IProfileCommon::Unknown, "GetImageId"}, // 18.0.0+
};
RegisterHandlers(functions);
@ -494,6 +494,13 @@ protected:
rb.Push(ResultSuccess);
}
void Unknown(HLERequestContext& ctx) {
LOG_WARNING(Service_ACC, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
rb.Push(0);
}
ProfileManager& profile_manager;
Common::UUID user_id{}; ///< The user id this profile refers to.
};
@ -509,7 +516,15 @@ class IProfileEditor final : public IProfileCommon {
public:
explicit IProfileEditor(Core::System& system_, Common::UUID user_id_,
ProfileManager& profile_manager_)
: IProfileCommon{system_, "IProfileEditor", true, user_id_, profile_manager_} {}
: IProfileCommon{system_, "IProfileEditor", true, user_id_, profile_manager_} {
// clang-format off
static const FunctionInfo functions[] = {
{30, &IProfileEditor::Unknown, "Unknown"},
};
// clang-format on
RegisterHandlers(functions);
}
};
class ISessionObject final : public ServiceFramework<ISessionObject> {