Compare commits

...

14 Commits

Author SHA1 Message Date
niansa e1e1cfa07c Merge branch 'niansa-qlauncher' into 'dev'
Draft: Implement some service functions for QLaunch

See merge request suyu-emu/suyu!104
2024-03-11 10:04:45 +00:00
JuanCStar de83c5e6a6 fix: clang format 2024-03-11 11:00:10 +01:00
MushrooomSooop 9afd74abde Added requirement for firmware upon game boot 2024-03-11 09:47:52 +00:00
ddutchie bd5bdbe6c7 Add -ql argument to launch QLaunch at startup 2024-03-10 23:20:48 +00:00
niansa ca9c2542b7 Fix tag of image used in CI 2024-03-10 21:20:42 +00:00
RadsammyT 8c44172be9 typo(???): 'yusu' -> 'suyu' in suyu_cmd/suyu.cpp and suyu/bootmanager.cpp 2024-03-10 18:56:08 +00:00
JuanCStar d29f3066c4 fix: updated console serial number 2024-03-10 11:34:17 +01:00
JuanCStar 8d402837fd fix: updated default web api url 2024-03-10 09:49:27 +00:00
niansa cb9654651a Added 32:9 aspect ratio 2024-03-10 05:46:30 +00:00
niansa 9858de7fce Run clang-format 2024-03-10 02:29:40 +01:00
niansa ad32b5371d Apply GetGroupInfo fix to ISfServiceMonitor too 2024-03-10 02:28:59 +01:00
niansa 8dae7d29d6 Implemented some stubs for Health & Safety and corrected GetGroupInfo behavior 2024-03-10 02:26:03 +01:00
niansa 72d4d7b1b8 Stub out StartSleepSequence 2024-03-09 19:19:35 +00:00
niansa a1db3cb668 Implemented some basic sleep functions 2024-03-09 19:19:35 +00:00
53 changed files with 369 additions and 23 deletions

View File

@ -4,7 +4,7 @@ stages:
clang-format:
stage: format
image: suyuemu/cibuild:latest
image: suyuemu/cibuild:linux-x64
variables:
RELEASE_NAME: mainline
script:
@ -13,7 +13,7 @@ clang-format:
build-linux:
stage: build
image: suyuemu/cibuild:latest
image: suyuemu/cibuild:linux-x64
resource_group: linux-ci
variables:
RELEASE_NAME: mainline

10
dist/languages/ar.ts vendored
View File

@ -6256,6 +6256,16 @@ Would you like to bypass this and exit anyway?</source>
هل ترغب في تجاوز هذا والخروج على أية حال؟</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/ca.ts vendored
View File

@ -6293,6 +6293,16 @@ Would you like to bypass this and exit anyway?</source>
Desitja tancar-lo de totes maneres?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/cs.ts vendored
View File

@ -6277,6 +6277,16 @@ Would you like to bypass this and exit anyway?</source>
Opravdu si přejete ukončit tuto aplikaci?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/da.ts vendored
View File

@ -6281,6 +6281,16 @@ Please, only use this feature to install updates and DLC.</source>
Would you like to bypass this and exit anyway?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/de.ts vendored
View File

@ -6303,6 +6303,16 @@ Would you like to bypass this and exit anyway?</source>
Möchtest du dies umgehen und sie trotzdem beenden?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/el.ts vendored
View File

@ -6277,6 +6277,16 @@ Please, only use this feature to install updates and DLC.</source>
Would you like to bypass this and exit anyway?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/es.ts vendored
View File

@ -6349,6 +6349,16 @@ Would you like to bypass this and exit anyway?</source>
¿Quieres salir de todas formas?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/fi.ts vendored
View File

@ -4778,6 +4778,16 @@ Would you like to bypass this and exit anyway?</source>
Haluatko silti ohittaa tämän ja sulkea?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
</context>
<context>
<name>GRenderWindow</name>

10
dist/languages/fr.ts vendored
View File

@ -6342,6 +6342,16 @@ Would you like to bypass this and exit anyway?</source>
Voulez-vous ignorer ceci and quitter quand même ?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/hu.ts vendored
View File

@ -6315,6 +6315,16 @@ Would you like to bypass this and exit anyway?</source>
<translation>Az éppen futó alkalmazás azt kérte a suyu-tól, hogy ne lépjen ki.
Mégis ki szeretnél lépni?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>

10
dist/languages/id.ts vendored
View File

@ -6334,6 +6334,16 @@ Please, only use this feature to install updates and DLC.</source>
Would you like to bypass this and exit anyway?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/it.ts vendored
View File

@ -6312,6 +6312,16 @@ Would you like to bypass this and exit anyway?</source>
Vuoi forzare l&apos;arresto?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6298,6 +6298,16 @@ Would you like to bypass this and exit anyway?</source>
?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6297,6 +6297,16 @@ Would you like to bypass this and exit anyway?</source>
?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/nb.ts vendored
View File

@ -6302,6 +6302,16 @@ Would you like to bypass this and exit anyway?</source>
Vil du overstyre dette og lukke likevel?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/nl.ts vendored
View File

@ -6290,6 +6290,16 @@ Would you like to bypass this and exit anyway?</source>
Wil je toch afsluiten?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/pl.ts vendored
View File

@ -6293,6 +6293,16 @@ Would you like to bypass this and exit anyway?</source>
Czy chcesz to ominąć i mimo to wyjść?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6351,6 +6351,16 @@ Would you like to bypass this and exit anyway?</source>
Deseja ignorar isso e sair mesmo assim?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6334,6 +6334,16 @@ Would you like to bypass this and exit anyway?</source>
Deseja ignorar isso e sair mesmo assim?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6347,6 +6347,16 @@ Would you like to bypass this and exit anyway?</source>
Хотите ли вы обойти это и выйти в любом случае?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/sv.ts vendored
View File

@ -6272,6 +6272,16 @@ Would you like to bypass this and exit anyway?</source>
Vill du strunta i detta och avsluta ändå?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6294,6 +6294,16 @@ Would you like to bypass this and exit anyway?</source>
Görmezden gelip kapatmak ister misiniz?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/uk.ts vendored
View File

@ -6306,6 +6306,16 @@ Would you like to bypass this and exit anyway?</source>
Чи хочете ви обійти це і вийти в будь-якому випадку?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

10
dist/languages/vi.ts vendored
View File

@ -6299,6 +6299,16 @@ Would you like to bypass this and exit anyway?</source>
Bạn muốn bỏ qua yêu cầu đó thoát luôn không?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6299,6 +6299,16 @@ Would you like to bypass this and exit anyway?</source>
Bạn muốn bỏ qua yêu cầu đó thoát luôn không?</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6347,6 +6347,16 @@ Would you like to bypass this and exit anyway?</source>
退</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -6343,6 +6343,16 @@ Would you like to bypass this and exit anyway?</source>
退</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1763"/>
<source>Component Missing</source>
<translation>Component Missing</translation>
</message>
<message>
<location filename="../../src/suyu/main.cpp" line="1764"/>
<source>Missing Firmware.</source>
<translation>Missing Firmware.</translation>
</message>
<message>
<location filename="../../src/suyu/configuration/shared_translation.h" line="27"/>
<source>None</source>

View File

@ -612,7 +612,7 @@ struct Values {
// WebService
Setting<bool> enable_telemetry{linkage, false, "enable_telemetry", Category::WebService};
Setting<std::string> web_api_url{linkage, "https://api.suyu.dev", "web_api_url",
Setting<std::string> web_api_url{linkage, "https://suyu.dev", "web_api_url",
Category::WebService};
Setting<std::string> suyu_username{linkage, std::string(), "suyu_username",
Category::WebService};

View File

@ -149,7 +149,7 @@ ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Gaussian, ScaleForce, Fs
ENUM(AntiAliasing, None, Fxaa, Smaa, MaxEnum);
ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, Stretch);
ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, R32_9, Stretch);
ENUM(ConsoleMode, Handheld, Docked);

View File

@ -70,6 +70,8 @@ float EmulationAspectRatio(AspectRatio aspect, float window_aspect_ratio) {
return 9.0f / 21.0f;
case AspectRatio::R16_10:
return 10.0f / 16.0f;
case AspectRatio::R32_9:
return 9.0f / 32.0f;
case AspectRatio::StretchToWindow:
return window_aspect_ratio;
default:

View File

@ -28,6 +28,7 @@ enum class AspectRatio {
R4_3,
R21_9,
R16_10,
R32_9,
StretchToWindow,
};

View File

@ -38,7 +38,7 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, std::shared_ptr<Ap
{30, nullptr, "GetHomeButtonReaderLockAccessor"},
{31, D<&ICommonStateGetter::GetReaderLockAccessorEx>, "GetReaderLockAccessorEx"},
{32, D<&ICommonStateGetter::GetWriterLockAccessorEx>, "GetWriterLockAccessorEx"},
{40, nullptr, "GetCradleFwVersion"},
{40, D<&ICommonStateGetter::GetCradleFwVersion>, "GetCradleFwVersion"},
{50, D<&ICommonStateGetter::IsVrModeEnabled>, "IsVrModeEnabled"},
{51, D<&ICommonStateGetter::SetVrModeEnabled>, "SetVrModeEnabled"},
{52, D<&ICommonStateGetter::SetLcdBacklighOffEnabled>, "SetLcdBacklighOffEnabled"},
@ -159,6 +159,17 @@ Result ICommonStateGetter::GetBootMode(Out<PM::SystemBootMode> out_boot_mode) {
R_SUCCEED();
}
Result ICommonStateGetter::GetCradleFwVersion(OutArray<uint32_t, 4> out_version) {
LOG_DEBUG(Service_AM, "(STUBBED) called");
out_version[0] = 0;
out_version[1] = 0;
out_version[2] = 0;
out_version[3] = 0;
R_SUCCEED();
}
Result ICommonStateGetter::IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled) {
LOG_DEBUG(Service_AM, "called");

View File

@ -38,6 +38,7 @@ private:
Result GetOperationMode(Out<OperationMode> out_operation_mode);
Result GetPerformanceMode(Out<APM::PerformanceMode> out_performance_mode);
Result GetBootMode(Out<PM::SystemBootMode> out_boot_mode);
Result GetCradleFwVersion(OutArray<uint32_t, 4> out_version);
Result IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled);
Result SetVrModeEnabled(bool is_vr_mode_enabled);
Result SetLcdBacklighOffEnabled(bool is_lcd_backlight_off_enabled);

View File

@ -14,7 +14,7 @@ IGlobalStateController::IGlobalStateController(Core::System& system_)
static const FunctionInfo functions[] = {
{0, nullptr, "RequestToEnterSleep"},
{1, nullptr, "EnterSleep"},
{2, nullptr, "StartSleepSequence"},
{2, D<&IGlobalStateController::StartSleepSequence>, "StartSleepSequence"},
{3, D<&IGlobalStateController::StartShutdownSequence>, "StartShutdownSequence"},
{4, D<&IGlobalStateController::StartRebootSequence>, "StartRebootSequence"},
{9, nullptr, "IsAutoPowerDownRequested"},
@ -31,6 +31,13 @@ IGlobalStateController::IGlobalStateController(Core::System& system_)
RegisterHandlers(functions);
}
IGlobalStateController::~IGlobalStateController() = default;
Result IGlobalStateController::StartSleepSequence(u8 a) {
LOG_WARNING(Service_AM, "(STUBBED) called, a={}", a);
R_SUCCEED();
}
Result IGlobalStateController::StartShutdownSequence() {
LOG_INFO(Service_AM, "called");
system.Exit();
@ -43,8 +50,6 @@ Result IGlobalStateController::StartRebootSequence() {
R_SUCCEED();
}
IGlobalStateController::~IGlobalStateController() = default;
Result IGlobalStateController::LoadAndApplyIdlePolicySettings() {
LOG_WARNING(Service_AM, "(STUBBED) called");
R_SUCCEED();

View File

@ -18,6 +18,7 @@ public:
~IGlobalStateController() override;
private:
Result StartSleepSequence(u8 a);
Result StartShutdownSequence();
Result StartRebootSequence();
Result LoadAndApplyIdlePolicySettings();

View File

@ -23,7 +23,7 @@ IHomeMenuFunctions::IHomeMenuFunctions(Core::System& system_, std::shared_ptr<Ap
{21, D<&IHomeMenuFunctions::GetPopFromGeneralChannelEvent>, "GetPopFromGeneralChannelEvent"},
{30, nullptr, "GetHomeButtonWriterLockAccessor"},
{31, nullptr, "GetWriterLockAccessorEx"},
{40, nullptr, "IsSleepEnabled"},
{40, D<&IHomeMenuFunctions::IsSleepEnabled>, "IsSleepEnabled"},
{41, D<&IHomeMenuFunctions::IsRebootEnabled>, "IsRebootEnabled"},
{50, nullptr, "LaunchSystemApplet"},
{51, nullptr, "LaunchStarter"},
@ -64,6 +64,12 @@ Result IHomeMenuFunctions::GetPopFromGeneralChannelEvent(
R_SUCCEED();
}
Result IHomeMenuFunctions::IsSleepEnabled(Out<bool> out_is_sleep_enbaled) {
LOG_INFO(Service_AM, "called");
*out_is_sleep_enbaled = true;
R_SUCCEED();
}
Result IHomeMenuFunctions::IsRebootEnabled(Out<bool> out_is_reboot_enbaled) {
LOG_INFO(Service_AM, "called");
*out_is_reboot_enbaled = true;

View File

@ -24,6 +24,7 @@ private:
Result LockForeground();
Result UnlockForeground();
Result GetPopFromGeneralChannelEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
Result IsSleepEnabled(Out<bool> out_is_sleep_enbaled);
Result IsRebootEnabled(Out<bool> out_is_reboot_enbaled);
Result IsForceTerminateApplicationDisabledForDebug(
Out<bool> out_is_force_terminate_application_disabled_for_debug);

View File

@ -67,7 +67,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)
{24, nullptr, "RegisterSaveDataFileSystemAtomicDeletion"},
{25, nullptr, "DeleteSaveDataFileSystemBySaveDataSpaceId"},
{26, nullptr, "FormatSdCardDryRun"},
{27, nullptr, "IsExFatSupported"},
{27, D<&FSP_SRV::IsExFatSupported>, "IsExFatSupported"},
{28, nullptr, "DeleteSaveDataFileSystemBySaveDataAttribute"},
{30, nullptr, "OpenGameCardStorage"},
{31, nullptr, "OpenGameCardFileSystem"},
@ -235,6 +235,14 @@ Result FSP_SRV::CreateSaveDataFileSystem(FileSys::SaveDataCreationInfo save_crea
save_struct));
}
Result FSP_SRV::IsExFatSupported(Out<bool> out_is_supported) {
LOG_WARNING(Service_FS, "(STUBBED) called");
*out_is_supported = true;
R_SUCCEED();
}
Result FSP_SRV::CreateSaveDataFileSystemBySystemSaveDataId(
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct) {
LOG_DEBUG(Service_FS, "called save_struct = {}", save_struct.DebugInfo());

View File

@ -53,6 +53,7 @@ private:
Result OpenSdCardFileSystem(OutInterface<IFileSystem> out_interface);
Result CreateSaveDataFileSystem(FileSys::SaveDataCreationInfo save_create_struct,
FileSys::SaveDataAttribute save_struct, u128 uid);
Result IsExFatSupported(Out<bool> out_is_supported);
Result CreateSaveDataFileSystemBySystemSaveDataId(
FileSys::SaveDataAttribute save_struct, FileSys::SaveDataCreationInfo save_create_struct);
Result OpenSaveDataFileSystem(OutInterface<IFileSystem> out_interface,

View File

@ -30,10 +30,10 @@ Result ISfMonitorService::Initialize(Out<u32> out_value) {
}
Result ISfMonitorService::GetGroupInfo(
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
GroupInfo in_group_info, OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
LOG_WARNING(Service_LDN, "(STUBBED) called");
*out_group_info = GroupInfo{};
memcpy(out_group_info, &in_group_info, sizeof(GroupInfo));
R_SUCCEED();
}

View File

@ -20,7 +20,8 @@ public:
private:
Result Initialize(Out<u32> out_value);
Result GetGroupInfo(OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
Result GetGroupInfo(GroupInfo in_group_info,
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
};
} // namespace Service::LDN

View File

@ -40,10 +40,10 @@ Result ISfServiceMonitor::Initialize(Out<u32> out_value) {
}
Result ISfServiceMonitor::GetGroupInfo(
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
GroupInfo in_group_info, OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info) {
LOG_WARNING(Service_LDN, "(STUBBED) called");
*out_group_info = GroupInfo{};
memcpy(out_group_info, &in_group_info, sizeof(GroupInfo));
R_SUCCEED();
}

View File

@ -20,7 +20,8 @@ public:
private:
Result Initialize(Out<u32> out_value);
Result GetGroupInfo(OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
Result GetGroupInfo(GroupInfo in_group_info,
OutLargeData<GroupInfo, BufferAttr_HipcAutoSelect> out_group_info);
};
} // namespace Service::LDN

View File

@ -507,7 +507,7 @@ void IGeneralService::GetCurrentIpConfigInfo(HLERequestContext& ctx) {
}
void IGeneralService::IsWirelessCommunicationEnabled(HLERequestContext& ctx) {
LOG_WARNING(Service_NIFM, "(STUBBED) called");
LOG_WARNING(Service_NIFM, "called");
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);

View File

@ -509,4 +509,13 @@ struct TvSettings {
};
static_assert(sizeof(TvSettings) == 0x20, "TvSettings is an invalid size");
/// This is nn::settings::system::RebootlessSystemUpdateVersion
struct RebootlessSystemUpdateVersion {
u32 version;
u8 reserved[0x1c];
char display_version[0x20];
};
static_assert(sizeof(RebootlessSystemUpdateVersion) == 0x40,
"RebootlessSystemUpdateVersion is an invalid size");
} // namespace Service::Set

View File

@ -238,7 +238,7 @@ ISystemSettingsServer::ISystemSettingsServer(Core::System& system_)
{146, nullptr, "SetConsoleSixAxisSensorAngularVelocityTimeBias"},
{147, nullptr, "GetConsoleSixAxisSensorAngularAcceleration"},
{148, nullptr, "SetConsoleSixAxisSensorAngularAcceleration"},
{149, nullptr, "GetRebootlessSystemUpdateVersion"},
{149, C<&ISystemSettingsServer::GetRebootlessSystemUpdateVersion>, "GetRebootlessSystemUpdateVersion"},
{150, C<&ISystemSettingsServer::GetDeviceTimeZoneLocationUpdatedTime>, "GetDeviceTimeZoneLocationUpdatedTime"},
{151, C<&ISystemSettingsServer::SetDeviceTimeZoneLocationUpdatedTime>, "SetDeviceTimeZoneLocationUpdatedTime"},
{152, C<&ISystemSettingsServer::GetUserSystemClockAutomaticCorrectionUpdatedTime>, "GetUserSystemClockAutomaticCorrectionUpdatedTime"},
@ -939,7 +939,7 @@ Result ISystemSettingsServer::GetBatteryLot(Out<BatteryLot> out_battery_lot) {
Result ISystemSettingsServer::GetSerialNumber(Out<SerialNumber> out_console_serial) {
LOG_INFO(Service_SET, "called");
*out_console_serial = SerialNumber("YUZ10000000001");
*out_console_serial = SerialNumber("SUY10000000001");
R_SUCCEED();
}
@ -1194,6 +1194,16 @@ Result ISystemSettingsServer::SetKeyboardLayout(KeyboardLayout keyboard_layout)
R_SUCCEED();
}
Result ISystemSettingsServer::GetRebootlessSystemUpdateVersion(
Out<RebootlessSystemUpdateVersion> out_rebootless_system_update) {
LOG_INFO(Service_SET, "(STUBBED) called");
out_rebootless_system_update->version = 0;
strcpy(out_rebootless_system_update->display_version, "0.0.0");
R_SUCCEED();
}
Result ISystemSettingsServer::GetDeviceTimeZoneLocationUpdatedTime(
Out<Service::PSC::Time::SteadyClockTimePoint> out_time_point) {
LOG_INFO(Service_SET, "called");

View File

@ -136,6 +136,8 @@ public:
Result SetAppletLaunchFlags(u32 applet_launch_flag);
Result GetKeyboardLayout(Out<KeyboardLayout> out_keyboard_layout);
Result SetKeyboardLayout(KeyboardLayout keyboard_layout);
Result GetRebootlessSystemUpdateVersion(
Out<RebootlessSystemUpdateVersion> out_rebootless_system_update);
Result GetDeviceTimeZoneLocationUpdatedTime(
Out<Service::PSC::Time::SteadyClockTimePoint> out_time_point);
Result SetDeviceTimeZoneLocationUpdatedTime(

View File

@ -1034,7 +1034,7 @@ bool GRenderWindow::InitializeOpenGL() {
return true;
#else
QMessageBox::warning(this, tr("OpenGL not available!"),
tr("yusu has not been compiled with OpenGL support."));
tr("suyu has not been compiled with OpenGL support."));
return false;
#endif
}

View File

@ -406,6 +406,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
PAIR(AspectRatio, R4_3, tr("Force 4:3")),
PAIR(AspectRatio, R21_9, tr("Force 21:9")),
PAIR(AspectRatio, R16_10, tr("Force 16:10")),
PAIR(AspectRatio, R32_9, tr("Force 32:9")),
PAIR(AspectRatio, Stretch, tr("Stretch to Window")),
}});
translations->insert({Settings::EnumMetadata<Settings::AnisotropyMode>::Index(),

View File

@ -480,6 +480,7 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
QString game_path;
bool has_gamepath = false;
bool is_fullscreen = false;
bool is_qlaunch = false;
for (int i = 1; i < args.size(); ++i) {
// Preserves drag/drop functionality
@ -494,7 +495,11 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
is_fullscreen = true;
continue;
}
// Use QLaunch at startup
if (args[i] == QStringLiteral("-ql")) {
is_qlaunch = true;
continue;
}
// Launch game with a specific user
if (args[i] == QStringLiteral("-u")) {
if (i >= args.size() - 1) {
@ -552,7 +557,10 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
if (has_gamepath || is_fullscreen) {
ui->action_Fullscreen->setChecked(is_fullscreen);
}
// Open HomeMenu
if (!has_gamepath && is_qlaunch) {
OnHomeMenu();
}
if (!game_path.isEmpty()) {
BootGame(game_path, ApplicationAppletParameters());
}
@ -1758,6 +1766,11 @@ void GMainWindow::AllowOSSleep() {
}
bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletParameters params) {
if (!CheckFirmwarePresence()) {
QMessageBox::critical(this, tr("Component Missing"), tr("Missing Firmware."));
return false;
}
// Shutdown previous session if the emu thread is still active...
if (emu_thread != nullptr) {
ShutdownGame();

View File

@ -47,6 +47,8 @@ u32 CalculateWidth(u32 height, Settings::AspectRatio ratio) {
return height * 21 / 9;
case Settings::AspectRatio::R16_10:
return height * 16 / 10;
case Settings::AspectRatio::R32_9:
return height * 32 / 9;
case Settings::AspectRatio::R16_9:
case Settings::AspectRatio::Stretch:
// TODO: Move this function wherever appropriate to implement Stretched aspect

View File

@ -83,7 +83,7 @@ static void PrintHelp(const char* argv0) {
}
static void PrintVersion() {
std::cout << "yusu " << Common::g_scm_branch << " " << Common::g_scm_desc << std::endl;
std::cout << "suyu" << Common::g_scm_branch << " " << Common::g_scm_desc << std::endl;
}
static void OnStateChanged(const Network::RoomMember::State& state) {