Commit Graph

5686 Commits

Author SHA1 Message Date
emoose 12674aa529 [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-01-10 15:15:32 +01:00
emoose 41b94145e2 [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-01-10 15:15:31 +01:00
emoose bc129c2c4d [VFS] Fix STFS file table info being read in wrong endian 2020-01-10 15:15:31 +01:00
emoose f472b859f6 [XAM/User] Fix AchievementPlatform definitions...
big oof
2020-01-10 15:15:31 +01:00
emoose 2e6306a270 [XAM/User] Store profile inside content root instead of next to EXE
eg. Documents/Xenia/content/profile/
2020-01-10 15:15:31 +01:00
emoose 8d68e77630 [XAM/Misc] Impl. IsSystem/IsXbox1/IsSystemExperience & FirstRunExperienceShouldRun exports 2020-01-10 15:15:30 +01:00
emoose 7d2e07fe38 [XAM/User] Only add arcade games to profile if license_mask is set 2020-01-10 15:15:30 +01:00
emoose 2bf72f5a35 [XAM/User] GetTitleId -> GetTitleData, check flags/titletype before adding to profile 2020-01-10 15:15:30 +01:00
emoose 75d52e7a43 [XAM/User] ...CreateTitlesPlayedEnumerator: sort titles by date played (thanks Gliniak!) 2020-01-10 15:15:30 +01:00
emoose 74ca77a5a3 [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-01-10 15:15:29 +01:00
emoose 016f89f4da [XAM/User] XamReadTile: support reading gamerpic from profile tile_64.png file 2020-01-10 15:15:29 +01:00
emoose 5f70be7fbe [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-01-10 15:15:29 +01:00
emoose fe250d98d9 [XAM] Allow reading binary & unicode settings, but block AVATAR_INFO_1 2020-01-10 15:15:29 +01:00
emoose 946b2126be [XAM] Small XamUserCreateTitlesPlayedEnumerator tweaks + other fixups 2020-01-10 15:15:28 +01:00
emoose c2e4e7b911 [XAM] UserProfile: Update ach/gamerscore info inside UpdateGpd, add dash checks to SetTitleSpaData 2020-01-10 15:15:28 +01:00
emoose 5957ff5b12 [XAM] UserProfile::LoadProfile: setup default settings 2020-01-10 15:15:28 +01:00
emoose 4d36f46edc [XAM] Update profile setting code to use new xdbf::Setting struct 2020-01-10 15:15:28 +01:00
emoose 574ea8f334 [XAM] xdbf.h: const-ify some parameters 2020-01-10 15:15:27 +01:00
emoose a53e841cd7 [XAM] xdbf.h: add more achievement details (flags, comments..) 2020-01-10 15:15:27 +01:00
emoose 1c405b4804 [XAM] xdbf_xbox.h: add X360 GPD settings structs + minor fixups 2020-01-10 15:15:27 +01:00
Gliniak 7df62cfc68 [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-01-10 15:15:27 +01:00
Gliniak 0a4d1e8073 [XAM/User] Implemented sketchy XamReadTileEx
Also changes to XamReadTile
2020-01-10 15:15:26 +01:00
Gliniak 7f1882ea6c [XAM/User] Resolved missing profile tab on 12xxx dashboard
It doesn't provide overlap pointer and requires instant response
2020-01-10 15:15:26 +01:00
Gliniak 4f78f839fb [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-01-10 15:15:26 +01:00
Gliniak 12bdaca517 [XAM/Misc] Added stub for: XamIsXbox1TitleId 2020-01-10 15:15:26 +01:00
Gliniak 52904ce2f4 [User] Removed hardcode from XPROFILE_GAMERCARD_TITLES_PLAYED
(Now dashboard 9199 shows more reliable amount of games played)
2020-01-10 15:15:25 +01:00
Cancerous 65781c9329 stubs for 9199 (eventually) 2020-01-10 15:13:46 +01:00
Gliniak 06e9f7bab6 [User] Added method for calculating gamerscore 2020-01-10 15:13:46 +01:00
Gliniak ef9f28b966 [XAM/Media] Added stub for: XamLoaderGetMediaInfo 2020-01-10 15:13:46 +01:00
Gliniak 2e5c5ac0b1 [XAM/User] Added Stub for: XamUserIsOnlineEnabled 2020-01-10 15:13:46 +01:00
Gliniak 82e739d570 [XAM/User] XamUserGetGamerTag - added exception for user_index -1 (0xFF)
(Fixes gamertag in 9199 dash)
2020-01-10 15:13:46 +01:00
Gliniak 1cbff63830 [Profile] Added dummy settings (This causes gamertag to appear) 2020-01-10 15:13:46 +01:00
Gliniak 1b28acdf0e [XAM] XamReadTile - Changed size of item_id 2020-01-10 15:13:46 +01:00
Gliniak da13606662 [XAM/User] Implemented XamUserGetGamerTag 2020-01-10 15:13:45 +01:00
Gliniak 9d1cefd852 [XAM] XNotifyGetNext - Fixed null check for !param_ptr (Thanks randprint) 2020-01-10 15:13:45 +01:00
Gliniak 212c99eee2 [XAM/Avatar] Added stub for: XamAvatarLoadAnimation
This enable running AvatarEditor

Disclaimer: Games that uses Avatars might crash
2020-01-10 15:13:45 +01:00
Gliniak 4644ee496c [Kernel] Added few elemenmts to xeExGetXConfigSetting
This will allow to go inside "Console Settings" in NXE Dashboard
and fixes stability on older dashboards
2020-01-10 15:13:45 +01:00
Gliniak 64e1db5818 [XAM/Nui] Added stubs for: XamNuiIsDeviceReady, XamIsNuiAutomationEnabled 2020-01-10 15:13:45 +01:00
Gliniak 6179ca791b [XAM/Notify] XNotifyGetNext - Added check to assure if param_ptr is correct 2020-01-10 15:13:45 +01:00
Gliniak 2b74498ca5 [Memory] Preallocate encrypted memory region
(Fixes dashboards up to 12625)
2020-01-10 15:13:45 +01:00
Gliniak c242a94ac3 [XAM/Sketchy] Implemented XamReadTile 2020-01-10 15:13:45 +01:00
Gliniak 0da8f9b627 [Kernel] Rewrote ObReferenceObjectByHandle. Thanks Cookie for ideas 2020-01-10 15:13:45 +01:00
Gliniak 4ecc4221df [KERNEL] Do not convert time if provided time_ptr is invalid (Fixes Dark Souls crash) 2020-01-10 15:13:45 +01:00
Gliniak f4f4010814 [GPD] Implemented XamUserCreateTitlesPlayedEnumerator 2020-01-10 15:12:57 +01:00
Cancerous bc069b86f9 [Kernel] Make XHttpStartup succeed and add stubs for XHttpOpen and XHttpConnect that fail 2020-01-09 22:07:31 -05:00
Cancerous cfc76f9f13 Revert "[Kernel] - Try to shut down XMP so games won't spam it's functions"
This reverts commit 2df353fdde.
2020-01-09 21:11:56 -05:00
emoose d8cc5b7887 [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-01-09 17:25:50 +00:00
Cancerous 8a58fc2480 [Kernel] remove option to disable WSAStartup 2020-01-09 06:42:47 -05:00
Cancerous 2df353fdde [Kernel] - Try to shut down XMP so games won't spam it's functions 2020-01-09 03:25:15 -05:00
Cancerous 5fff0f5937 [Kernel] Add XHttpStartup Stub, try to gracefully fail and shutdown more of the networking so games won't spam the related functions 2020-01-09 03:18:52 -05:00