diff options
-rw-r--r-- | src/core/file_sys/errors.h | 3 | ||||
-rw-r--r-- | src/core/file_sys/system_archive/system_version.cpp | 20 | ||||
-rw-r--r-- | src/core/file_sys/system_archive/system_version.h | 3 | ||||
-rw-r--r-- | src/core/hle/service/set/set_sys.cpp | 18 |
4 files changed, 25 insertions, 19 deletions
diff --git a/src/core/file_sys/errors.h b/src/core/file_sys/errors.h index e4a4ee4ab..bb4654366 100644 --- a/src/core/file_sys/errors.h +++ b/src/core/file_sys/errors.h @@ -11,6 +11,9 @@ namespace FileSys { constexpr ResultCode ERROR_PATH_NOT_FOUND{ErrorModule::FS, 1}; constexpr ResultCode ERROR_ENTITY_NOT_FOUND{ErrorModule::FS, 1002}; constexpr ResultCode ERROR_SD_CARD_NOT_FOUND{ErrorModule::FS, 2001}; +constexpr ResultCode ERROR_OUT_OF_BOUNDS{ErrorModule::FS, 3005}; +constexpr ResultCode ERROR_FAILED_MOUNT_ARCHIVE{ErrorModule::FS, 3223}; +constexpr ResultCode ERROR_INVALID_ARGUMENT{ErrorModule::FS, 6001}; constexpr ResultCode ERROR_INVALID_OFFSET{ErrorModule::FS, 6061}; constexpr ResultCode ERROR_INVALID_SIZE{ErrorModule::FS, 6062}; diff --git a/src/core/file_sys/system_archive/system_version.cpp b/src/core/file_sys/system_archive/system_version.cpp index 52df10f55..6e22f97b0 100644 --- a/src/core/file_sys/system_archive/system_version.cpp +++ b/src/core/file_sys/system_archive/system_version.cpp @@ -16,16 +16,20 @@ constexpr u8 VERSION_MAJOR = 5; constexpr u8 VERSION_MINOR = 1; constexpr u8 VERSION_MICRO = 0; -constexpr u8 REVISION_MAJOR = 0; +constexpr u8 REVISION_MAJOR = 3; constexpr u8 REVISION_MINOR = 0; -constexpr char PLATFORM_STRING[] = "YUZU"; -constexpr char VERSION_HASH[] = ""; +constexpr char PLATFORM_STRING[] = "NX"; +constexpr char VERSION_HASH[] = "23f9df53e25709d756e0c76effcb2473bd3447dd"; constexpr char DISPLAY_VERSION[] = "5.1.0"; -constexpr char DISPLAY_TITLE[] = "YuzuEmulated Firmware for NX 5.1.0-0.0"; +constexpr char DISPLAY_TITLE[] = "NintendoSDK Firmware for NX 5.1.0-3.0"; } // namespace SystemVersionData +std::string GetLongDisplayVersion() { + return SystemVersionData::DISPLAY_TITLE; +} + VirtualDir SystemVersion() { VirtualFile file = std::make_shared<VectorVfsFile>(std::vector<u8>(0x100), "file"); file->WriteObject(SystemVersionData::VERSION_MAJOR, 0); @@ -34,13 +38,13 @@ VirtualDir SystemVersion() { file->WriteObject(SystemVersionData::REVISION_MAJOR, 4); file->WriteObject(SystemVersionData::REVISION_MINOR, 5); file->WriteArray(SystemVersionData::PLATFORM_STRING, - std::min<u64>(sizeof(SystemVersionData::PLATFORM_STRING), 0x20ull), 0x8); + std::min<u64>(sizeof(SystemVersionData::PLATFORM_STRING), 0x20ULL), 0x8); file->WriteArray(SystemVersionData::VERSION_HASH, - std::min<u64>(sizeof(SystemVersionData::VERSION_HASH), 0x40ull), 0x28); + std::min<u64>(sizeof(SystemVersionData::VERSION_HASH), 0x40ULL), 0x28); file->WriteArray(SystemVersionData::DISPLAY_VERSION, - std::min<u64>(sizeof(SystemVersionData::DISPLAY_VERSION), 0x18ull), 0x68); + std::min<u64>(sizeof(SystemVersionData::DISPLAY_VERSION), 0x18ULL), 0x68); file->WriteArray(SystemVersionData::DISPLAY_TITLE, - std::min<u64>(sizeof(SystemVersionData::DISPLAY_TITLE), 0x80ull), 0x80); + std::min<u64>(sizeof(SystemVersionData::DISPLAY_TITLE), 0x80ULL), 0x80); return std::make_shared<VectorVfsDirectory>(std::vector<VirtualFile>{file}, std::vector<VirtualDir>{}, "data"); } diff --git a/src/core/file_sys/system_archive/system_version.h b/src/core/file_sys/system_archive/system_version.h index 9fb794b36..deed79b26 100644 --- a/src/core/file_sys/system_archive/system_version.h +++ b/src/core/file_sys/system_archive/system_version.h @@ -4,10 +4,13 @@ #pragma once +#include <string> #include "core/file_sys/vfs_types.h" namespace FileSys::SystemArchive { +std::string GetLongDisplayVersion(); + VirtualDir SystemVersion(); } // namespace FileSys::SystemArchive diff --git a/src/core/hle/service/set/set_sys.cpp b/src/core/hle/service/set/set_sys.cpp index 225062c0f..917b4e3a5 100644 --- a/src/core/hle/service/set/set_sys.cpp +++ b/src/core/hle/service/set/set_sys.cpp @@ -4,6 +4,7 @@ #include "common/assert.h" #include "common/logging/log.h" +#include "core/file_sys/errors.h" #include "core/file_sys/system_archive/system_version.h" #include "core/hle/ipc_helpers.h" #include "core/hle/kernel/client_port.h" @@ -14,10 +15,6 @@ namespace Service::Set { constexpr u64 SYSTEM_VERSION_FILE_MINOR_REVISION_OFFSET = 0x05; -constexpr ResultCode ERROR_FAILED_MOUNT_ARCHIVE(ErrorModule::FS, 3223); -constexpr ResultCode ERROR_READ_TOO_LARGE(ErrorModule::FS, 3005); -constexpr ResultCode ERROR_INVALID_NAME(ErrorModule::FS, 6001); - enum class GetFirmwareVersionType { Version1, Version2, @@ -25,9 +22,8 @@ enum class GetFirmwareVersionType { namespace { void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionType type) { - LOG_WARNING( - Service_SET, - "called - Using hardcoded firmware version 'YuzuEmulated Firmware for NX 5.1.0-0.0'"); + LOG_WARNING(Service_SET, "called - Using hardcoded firmware version '{}'", + FileSys::SystemArchive::GetLongDisplayVersion()); ASSERT_MSG(ctx.GetWriteBufferSize() == 0x100, "FirmwareVersion output buffer must be 0x100 bytes in size!"); @@ -47,21 +43,21 @@ void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionTy if (archive == nullptr) { early_exit_failure("The system version archive couldn't be synthesized.", - ERROR_FAILED_MOUNT_ARCHIVE); + FileSys::ERROR_FAILED_MOUNT_ARCHIVE); return; } const auto ver_file = archive->GetFile("file"); if (ver_file == nullptr) { early_exit_failure("The system version archive didn't contain the file 'file'.", - ERROR_INVALID_NAME); + FileSys::ERROR_INVALID_ARGUMENT); return; } auto data = ver_file->ReadAllBytes(); if (data.size() != 0x100) { early_exit_failure("The system version file 'file' was not the correct size.", - ERROR_READ_TOO_LARGE); + FileSys::ERROR_OUT_OF_BOUNDS); return; } @@ -76,7 +72,7 @@ void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionTy IPC::ResponseBuilder rb{ctx, 2}; rb.Push(RESULT_SUCCESS); } -} // namespace +} // Anonymous namespace void SET_SYS::GetFirmwareVersion(Kernel::HLERequestContext& ctx) { LOG_DEBUG(Service_SET, "called"); |