Commit Graph

5782 Commits

Author SHA1 Message Date
emoose e1b10fbed7 [XAM] Allow loading profile from STFS (extracts package automatically!)
Profiles can now be placed as either an extracted folder with GPDs, or an STFS package, inside the Documents\Xenia\content\FFFE07D1\00010000\ directory
eg. Documents\Xenia\content\FFFE07D1\00010000\E0000E07FA53D7F1
(this roughly matches the same location as X360 stores it)

If loading an STFS package the package will first get extracted to <path>.dir/, and then the profile is loaded/saved into that directory.
(originally was going to mount the package and read everything in-memory, but then realized how hard adding new files/modifying/etc would be.. VFS doesn't allow mixing two devices into the same mount_path afaik)

Code for extraction is taken from xenia-vfs-dump (as StfsContainerDevice::ExtractToFolder)

A [XAM]profile_xuid config option is added too, which should let you pick which profile to load from the FFFE07D1\00010000\ folder if you have multiple there.
(at least I hope it should - something like "profile_xuid = 0xE0000E07FA53D7F1" will work I hope... cpptoml might have issues with hex digits though, not sure, will investigate later...)
If profile_xuid isn't set (left at -1), Xenia will just load whatever the first file/folder inside there is.
2020-04-08 03:20:46 +11:00
emoose f3fc85786c [Base] Change DEFINE_uint64 -> DEFINE_int64, cpptoml seems to have issues with uint64..
Tried setting a uint64 setting to -1 (FFFF FFFF FFFF FFFF), which made it throw a out of range exception when loading the toml...
Internally it uses int64 to parse numbers, so I guess it doesn't work well with converting to uint64?
Changing everything from uint64->int64 seems to solve it though, now -1 works fine.
2020-04-08 03:20:46 +11:00
emoose 361bb350f0 [VFS] Fix STFS file table info being read in wrong endian 2020-04-08 03:20:46 +11:00
emoose 6bfe482b80 [XAM/User] Fix AchievementPlatform definitions...
big oof
2020-04-08 03:20:46 +11:00
emoose e1716fc53c [XAM/User] Store profile inside content root instead of next to EXE
eg. Documents/Xenia/content/profile/
2020-04-08 03:20:46 +11:00
emoose a562354f8f [XAM/Misc] Impl. IsSystem/IsXbox1/IsSystemExperience & FirstRunExperienceShouldRun exports 2020-04-08 03:20:45 +11:00
emoose 98aa3e3409 [XAM/User] Only add arcade games to profile if license_mask is set 2020-04-08 03:20:45 +11:00
emoose b48c03ab32 [XAM/User] GetTitleId -> GetTitleData, check flags/titletype before adding to profile 2020-04-08 03:20:45 +11:00
emoose e6172cdc28 [XAM/User] ...CreateTitlesPlayedEnumerator: sort titles by date played (thanks Gliniak!) 2020-04-08 03:20:45 +11:00
emoose 984c8a5222 [XAM/User] Stub GetIndexFromXUID, add param to IsOnlineEnabled
Maybe can help with user_index issues? Not sure, dash still seems to use some wacky indexes sometimes..
2020-04-08 03:20:45 +11:00
emoose a74fd46e13 [XAM/User] XamReadTile: support reading gamerpic from profile tile_64.png file 2020-04-08 03:20:44 +11:00
emoose 3c6fc95d45 [XAM/User] Add extra checks to XamReadTile, remove GetTitleSpa
GetTitleGpd should work fine for what we're using it for here... it could be a good idea to keep an instance of the current SpaFile of the running title and have a GetTitleSpa that returns that though, since I think some stuff like XamReadString might eventually need access to SPA data, not really sure yet though.
2020-04-08 03:20:44 +11:00
emoose 50059f6742 [XAM] Allow reading binary & unicode settings, but block AVATAR_INFO_1 2020-04-08 03:20:44 +11:00
emoose 3091f938ae [XAM] Small XamUserCreateTitlesPlayedEnumerator tweaks + other fixups 2020-04-08 03:20:44 +11:00
emoose 59f13edb47 [XAM] UserProfile: Update ach/gamerscore info inside UpdateGpd, add dash checks to SetTitleSpaData 2020-04-08 03:20:44 +11:00
emoose 5cd664c361 [XAM] UserProfile::LoadProfile: setup default settings 2020-04-08 03:20:43 +11:00
emoose febc9a86c0 [XAM] Update profile setting code to use new xdbf::Setting struct 2020-04-08 03:20:43 +11:00
emoose b6da2f6c68 [XAM] xdbf.h: const-ify some parameters 2020-04-08 03:20:43 +11:00
emoose 2b70cf4795 [XAM] xdbf.h: add more achievement details (flags, comments..) 2020-04-08 03:20:43 +11:00
emoose df903afe9f [XAM] xdbf_xbox.h: add X360 GPD settings structs + minor fixups 2020-04-08 03:20:43 +11:00
Gliniak 8fc611c6a0 [XAM/User] XamUserCreateTitlesPlayedEnumerator - Skip titles without achievements
It mimics behaviour of real 360 dashboard that
skips info about demos and system apps

also smaller code style changes
2020-04-08 03:20:43 +11:00
Gliniak 836d21fca2 [XAM/User] Implemented sketchy XamReadTileEx
Also changes to XamReadTile
2020-04-08 03:20:42 +11:00
Gliniak f5b59bacf3 [XAM/User] Resolved missing profile tab on 12xxx dashboard
It doesn't provide overlap pointer and requires instant response
2020-04-08 03:20:42 +11:00
Gliniak 997d2eb7bd [XAM/User] Added descriptions and labels for achievements
Disclaimer: On old dash it causes memleak (slight),
newer dashboards allocates them only once which is solution for that.

Ps. If anyone have easy solution please implement it. Cheers
2020-04-08 03:20:42 +11:00
Gliniak 13a019f637 [XAM/Misc] Added stub for: XamIsXbox1TitleId 2020-04-08 03:20:42 +11:00
Gliniak 604b863988 [User] Removed hardcode from XPROFILE_GAMERCARD_TITLES_PLAYED
(Now dashboard 9199 shows more reliable amount of games played)
2020-04-08 03:20:42 +11:00
Cancerous 8227ede4fb stubs for 9199 (eventually) 2020-04-08 03:20:42 +11:00
Gliniak a0fc9e386a [User] Added method for calculating gamerscore 2020-04-08 03:20:42 +11:00
Gliniak be83bfd145 [XAM/Media] Added stub for: XamLoaderGetMediaInfo 2020-04-08 03:20:41 +11:00
Gliniak 23f9ce4126 [XAM/User] Added Stub for: XamUserIsOnlineEnabled 2020-04-08 03:20:41 +11:00
Gliniak b590d948c5 [XAM/User] XamUserGetGamerTag - added exception for user_index -1 (0xFF)
(Fixes gamertag in 9199 dash)
2020-04-08 03:20:41 +11:00
Gliniak 0baa6a2b06 [Profile] Added dummy settings (This causes gamertag to appear) 2020-04-08 03:20:41 +11:00
Gliniak 4f075db83d [XAM] XamReadTile - Changed size of item_id 2020-04-08 03:20:41 +11:00
Gliniak e3e8d2c6fc [XAM/User] Implemented XamUserGetGamerTag 2020-04-08 03:20:41 +11:00
Gliniak 9977da046c [XAM] XNotifyGetNext - Fixed null check for !param_ptr (Thanks randprint) 2020-04-08 03:20:40 +11:00
Gliniak 546bb39844 [XAM/Avatar] Added stub for: XamAvatarLoadAnimation
This enable running AvatarEditor

Disclaimer: Games that uses Avatars might crash
2020-04-08 03:20:40 +11:00
Gliniak 237a58ced5 [Kernel] Added few elemenmts to xeExGetXConfigSetting
This will allow to go inside "Console Settings" in NXE Dashboard
and fixes stability on older dashboards
2020-04-08 03:20:40 +11:00
Gliniak fe67599031 [XAM/Nui] Added stubs for: XamNuiIsDeviceReady, XamIsNuiAutomationEnabled 2020-04-08 03:20:40 +11:00
Gliniak 1742959b58 [XAM/Notify] XNotifyGetNext - Added check to assure if param_ptr is correct 2020-04-08 03:20:40 +11:00
Gliniak 4822912c9d [Memory] Preallocate encrypted memory region
(Fixes dashboards up to 12625)
2020-04-08 03:20:40 +11:00
Gliniak 351f07652a [XAM/Sketchy] Implemented XamReadTile 2020-04-08 03:20:39 +11:00
Gliniak d5bc250d95 [KERNEL] Do not convert time if provided time_ptr is invalid (Fixes Dark Souls crash) 2020-04-08 03:20:39 +11:00
Gliniak ad3210cb72 [GPD] Implemented XamUserCreateTitlesPlayedEnumerator 2020-04-08 03:20:39 +11:00
Cancerous 4248246387 [Kernel] Make XHttpStartup succeed and add stubs for XHttpOpen and XHttpConnect that fail 2020-04-08 03:20:39 +11:00
Cancerous 848e370854 Revert "[Kernel] - Try to shut down XMP so games won't spam it's functions"
This reverts commit 2df353fdde.
2020-04-08 03:20:39 +11:00
emoose 7d51e4125d [XBDM] Add impl. for DmGetXboxName, stub 5 functions
Stubs: DmGetXbeInfo, DmIsDebuggerPresent, DmRegisterCommandProcessor, DmRegisterCommandProcessorEx
This helps progress some debug builds of games, DmGetXboxName error codes are based on what some games seem to expect from it.
Will probably be a good idea to move most of this to xbdm_info.cc soon.
2020-04-08 03:20:39 +11:00
Cancerous 738ab81f7f [Kernel] remove option to disable WSAStartup 2020-04-08 03:20:39 +11:00
Cancerous 7ccb852598 [Kernel] - Try to shut down XMP so games won't spam it's functions 2020-04-08 03:20:38 +11:00
Cancerous bc90b7d1dd [Kernel] Add XHttpStartup Stub, try to gracefully fail and shutdown more of the networking so games won't spam the related functions 2020-04-08 03:20:38 +11:00
emoose bc61aef043 [Kernel] Include XEX version in log 2020-04-08 03:20:38 +11:00