Commit Graph

1350 Commits

Author SHA1 Message Date
Gliniak
4f5c313fe3 [Kernel/XAM] Added Support For: XamContentDeleteInternal
Now some EA games should have working savefiles
2020-08-25 20:51:01 +03:00
gibbed
c99c430665 [Kernel] Reject IO for invalid characters.
[Kernel] Reject IO for paths with invalid characters.
2020-07-12 12:22:24 -05:00
Gliniak
ab2b9393c2 [Kernel] Implemented NtQueueApcThread 2020-07-12 08:56:15 -05:00
Triang3l
4bb0ca0e09 [GPU] Move all xenos.h to gpu::xenos, disambiguate Dimension/TextureDimension 2020-07-11 15:54:22 +03:00
Cancerous
596f1691c0 [XAM] - correct storage device ID fixes saving and storage detection in many games
most of the games this can be evidenced in are Unreal Engine titles or games that otherwise do not work in master yet but it can be shown in Saints Row 2 that does work in the master branch
this ID was found from debugging games where storage device detection wasn't working and reverse engineering of Unreal Engine 3
2020-07-07 01:57:40 -05:00
Triang3l
2cd69092ce [Kernel] Fix incorrect C-like structure declaration 2020-06-06 22:25:48 +03:00
Gliniak
e80115020e [Kernel/XAM] Implemented XamContentCreateInternal 2020-05-18 14:07:07 -05:00
gibbed
cf0251cd9f [Kernel/VFS] Cleanup info query/set+sector size.
[VFS] Device now exposes name, attributes, component name max length.
[VFS] Fix STFS device to return 0x200 sector size. XCTD compression
      userland code appears to always expect a sector size of 0x200.
[Kernel] Move X_FILE_*_INFORMATION structs to new files.
[Kernel] Move NtQueryInformationFile, NtSetInformationFile,
         NtQueryVolumeInformationFile to new file.
[Kernel] Cleanup implementation of NtQueryInformationFile,
         NetSetInformationFile, NtQueryVolumeInformationFile.
[Kernel] Properly validate arguments to NtQueryInformationFile,
         NetSetInformationFile, NtQueryVolumeInformationFile.
[Kernel] Properly implement query of XFileFsVolumeInformation.
[Kernel] Properly implement query of XFileFsSizeInformation.
[Kernel] Properly implement query of XFileFsAttributeInformation.
2020-04-20 16:08:02 -05:00
gibbed
087247184d [XAM] Dummy MAC address in *XNetGetTitleXnAddr.
[XAM] Dummy MAC address in NetDll_XNetGetTitleXnAddr.
2020-04-20 06:31:02 -05:00
gibbed
1c2d6753bb [Kernel/VFS] Specify root entry to open from + cleanup.
[VFS] Allow specifying root entry to open from with OpenFile.
[Kernel] NtCreateFile now opens from root entry when available instead
         of needlessly building a full path and resolving from that.
[VFS] Reduce code duplication by adding Entry::ResolvePath.
[VFS] Remove ResolveBasePath to avoid multiple calls to find_base_guest_path.
2020-04-20 01:14:07 -05:00
gibbed
f631b02bcf [XAM] Fix xeXamUserReadProfileSettingsEx.
[XAM] Fix xeXamUserReadProfileSettingsEx.

- Properly calculate initial buffer_offset.
- Don't set buffer_size_ptr when its initial value is non-zero.
2020-04-13 17:55:15 -05:00
gibbed
a8c3682b6f [XAM] Modify default user XUID.
[XAM] Modify default user XUID. Fixes behavior in NeoGeo Battle
Coliseum and possibly others. ("You do not have permissions to
perform this operation.")
2020-04-13 14:28:32 -05:00
gibbed
230015f9ca [XAM] Add default case.
[XAM] Add default case in xeXamUserReadProfileSettingsEx.
2020-04-13 14:27:46 -05:00
gibbed
bc92169fce [Kernel] Remove unnecessary newline. 2020-04-13 12:57:14 -05:00
gibbed
b338fb0caa [Kernel] Reformat locale cvar descriptions.
[Kernel] Reformat locale cvar descriptions to include newlines.
2020-04-13 12:57:14 -05:00
gibbed
6ab003dbf8 [Kernel] Reformat license mask description.
[Kernel] Reformat license mask description to include newlines.
2020-04-13 12:57:14 -05:00
gibbed
a7d4d6ee70 [Kernel] Use structures in XmpApp. 2020-04-13 12:57:14 -05:00
gibbed
ae7555e9ff [Kernel] Rename UnknownFEApp to XamApp. 2020-04-13 12:57:14 -05:00
gibbed
e03368c37e [XAM] Fix args of XamUser*ProfileSettings(Ex).
- Update arguments of XamUserReadProfileSettings/
  XamUserReadProfileSettingsEx.
- Fix arguments of XamUserWriteProfileSettings.
2020-04-13 12:57:14 -05:00
gibbed
3c8493dea2 [XAM] Clean up user index handling & stub.
- Clean up user index handling in XamUserGetXUID,
  XamUserGetSigninState, XamUserReadProfileSettings,
  XamUserWriteProfileSettings, XamUserCheckPrivilege,
  XamUserContentRestrictionGetFlags, XamUserAreUsersFriends.
  A user index of 0xFF does not mean anything special and is outright
  invalid.
- Move XamUserReadProfileSettings code to new
  xeXamUserReadProfileSettingsEx.
- Implement XamUserReadProfileSettings/XamUserReadProfileSettingsEx
  which now call xeXamUserReadProfileSettingsEx.
- Reorganized xeXamUserReadProfileSettingsEx so that the needed buffer
  size is checked before user index is validated, so that calls to
  determine necessary buffer size return correctly instead of an error
  about invalid user index.
- Stub XamUserIsOnlineEnabled.
2020-04-13 12:57:14 -05:00
gibbed
e99916b352 [Kernel] Clean up XAM registration function declarations. 2020-04-13 12:57:14 -05:00
Gliniak
a87c3785ee Template for 0xFE message: 0x21012
FYI: This message don't have length
2020-04-13 10:39:29 -05:00
Rados??aw Gli??ski
64dbd9936e "Template" for 0xFE message: 0x22005 2020-04-13 10:39:29 -05:00
Silent
9205a6b062 [Kernel] Fixup GetProcAddressByOrdinal
Now properly takes a global lock when populating guest_trampoline_map_
as opposed to taking and immediately releasing it
Also removes a redundant find() from guest_trampoline_map_
so map is not searched twice if the function has already been generated.
2020-04-12 21:53:46 -05:00
gibbed
e0f3458026 [Kernel] Maybe stub DmGetXbeInfo better. 2020-04-09 17:54:40 -05:00
gibbed
fe016cc60c [Kernel] Fix vswprintf debug log. 2020-04-09 17:54:22 -05:00
gibbed
15866274a8 [Kernel] Stub a few more XBDM functions. 2020-04-09 16:59:37 -05:00
gibbed
ed04d96e67 Avoid using '#' format spec for X hex numbers.
Avoid using '#' format spec for X (uppercase) hex numbers, as it
results in output like "0XABCDEF" instead of "0xABCDEF".
2020-04-09 11:25:08 -05:00
Sandy Carter
e605eef781 filesystem: remove unused includes of header 2020-04-09 09:44:48 -05:00
Sandy Carter
df65de231f filesystem: use std for DeleteFolder
Remove custom platform implementation of `DeleteFolder` and replace two
uses with `std::filesystem::remove_all` which removes a file or
directory with all its contents.
2020-04-09 09:44:48 -05:00
Sandy Carter
69bcf59c79 filesystem: use std for CreateFolder
Remove custom platform implementation of `CreateFolder` and replace uses
with `std::filesystem::create_directories` which creates paths
recursively.
2020-04-09 09:44:48 -05:00
Sandy Carter
c8e64da4eb filesystem: use std for PathExists
Remove custom platform implementation of `PathExists` and replace uses
with `std::filesystem::exists`.
2020-04-09 09:44:48 -05:00
gibbed
c51cba080b Fix some bad string formats. 2020-04-08 13:05:37 -05:00
gibbed
a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -05:00
gibbed
5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05:00
Triang3l
821a9897ef [Kernel/XAM] Even more detailed rationale for XNotifyGetNext param_ptr null check 2020-03-23 10:46:51 +03:00
Triang3l
61bcd467a6 [Kernel/XAM] Rationale for XNotifyGetNext param_ptr null check 2020-03-23 10:38:45 +03:00
Gliniak
4f8cdd9967 [Kernel/XAM] XNotifyGetNext: Check for nullptr for param_ptr 2020-03-22 15:38:31 -05:00
Gliniak
5558c8aafe [XAM/Network] Implemented NetDll___WSAFDIsSet 2020-03-03 17:07:49 -06:00
gibbed
8d5d70c77f [XAM] Don't allow an empty title.
[XAM] Don't allow an empty titles because ImGui explodes otherwise.
2020-02-29 15:47:19 -06:00
emoose
9185cdcc79 [Kernel] Fix wide-printf functions not processing %ws format correctly
This would break format strings like memory://%.*ws (that dashboard tries using), because the "ws" part would set FF_IsWide, but FF_IsWide actually seemed to be used as an "is opposite encoding" flag.
Since the format string is wide that'd make it treat the param as ASCII, but in dashboards case the param string provided is actually a wide string.
(in other words, it seems %ws is supposed to mean that the param is always a wide string, not that the param is just opposite encoding)

This changes the old FF_IsWide to FF_InvertWide, and adds a new FF_IsWide that means that the param is always wide.
2020-02-24 14:58:09 -06:00
emoose
ac5d548e90 [Kernel] *FormatData: make peek() match get() endian, fix skip() not advancing pointer 2020-02-24 14:58:09 -06:00
Triang3l
cf99696e79 [Kernel] Fix incorrect TranslatePhysical usage in XFile 2020-02-23 14:51:49 +03:00
gibbed
a6e6f0f7bf Lint cleanup. 2020-02-22 13:29:07 -06:00
Triang3l
1e9f999b37 [Kernel] Add xe:: in XFile::Read for consistency 2020-02-22 18:10:25 +03:00
Triang3l
f858631245 [Kernel] Trigger memory callbacks after file read 2020-02-22 18:06:56 +03:00
Triang3l
028c784c5c [Memory] Make heap_size actually mean size rather than high address 2020-02-22 14:55:28 +03:00
gibbed
722018d095 [Kernel] Use reserved form of sc for dynamic imports. 2020-02-20 01:01:31 -06:00
Triang3l
8ec813de82 [Memory, D3D12] Various refactoring from data provider development 2020-02-15 21:35:24 +03:00
Gliniak
d241a98189 [Kernel] Rewrote ObReferenceObjectByHandle 2020-02-10 20:52:23 -06:00