Commit Graph

4710 Commits

Author SHA1 Message Date
Gliniak f282fbe21c [XAM/User] Resolved missing profile tab on 12xxx dashboard
It doesn't provide overlap pointer and requires instant response
2020-01-11 20:44:09 +11:00
Gliniak 80eb0b6c4c [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-11 20:44:09 +11:00
Gliniak a9210375a6 [XAM/Misc] Added stub for: XamIsXbox1TitleId 2020-01-11 20:44:09 +11:00
Gliniak 2e15185e8a [User] Removed hardcode from XPROFILE_GAMERCARD_TITLES_PLAYED
(Now dashboard 9199 shows more reliable amount of games played)
2020-01-11 20:44:09 +11:00
Cancerous 94c00674b8 stubs for 9199 (eventually) 2020-01-11 20:44:09 +11:00
Gliniak 9d637ae402 [User] Added method for calculating gamerscore 2020-01-11 20:44:09 +11:00
Gliniak d565d87d8d [XAM/Media] Added stub for: XamLoaderGetMediaInfo 2020-01-11 20:44:08 +11:00
Gliniak ba19fe83b8 [XAM/User] Added Stub for: XamUserIsOnlineEnabled 2020-01-11 20:44:08 +11:00
Gliniak edac054ebd [XAM/User] XamUserGetGamerTag - added exception for user_index -1 (0xFF)
(Fixes gamertag in 9199 dash)
2020-01-11 20:44:08 +11:00
Gliniak e386038a62 [Profile] Added dummy settings (This causes gamertag to appear) 2020-01-11 20:44:08 +11:00
Gliniak 091bb36393 [XAM] XamReadTile - Changed size of item_id 2020-01-11 20:44:08 +11:00
Gliniak 926afdb5d8 [XAM/User] Implemented XamUserGetGamerTag 2020-01-11 20:44:08 +11:00
Gliniak 30c5551220 [XAM] XNotifyGetNext - Fixed null check for !param_ptr (Thanks randprint) 2020-01-11 20:44:08 +11:00
Gliniak e47674668c [XAM/Avatar] Added stub for: XamAvatarLoadAnimation
This enable running AvatarEditor

Disclaimer: Games that uses Avatars might crash
2020-01-11 20:44:08 +11:00
Gliniak eaba53a1b8 [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-11 20:44:08 +11:00
Gliniak 42fbe828d7 [XAM/Nui] Added stubs for: XamNuiIsDeviceReady, XamIsNuiAutomationEnabled 2020-01-11 20:44:08 +11:00
Gliniak e3f3659f08 [XAM/Notify] XNotifyGetNext - Added check to assure if param_ptr is correct 2020-01-11 20:44:07 +11:00
Gliniak 5358aec284 [Memory] Preallocate encrypted memory region
(Fixes dashboards up to 12625)
2020-01-11 20:44:07 +11:00
Gliniak ca1a2692ab [XAM/Sketchy] Implemented XamReadTile 2020-01-11 20:44:07 +11:00
Gliniak caac1d6618 [Kernel] Rewrote ObReferenceObjectByHandle. Thanks Cookie for ideas 2020-01-11 20:44:07 +11:00
Gliniak ef1b049408 [KERNEL] Do not convert time if provided time_ptr is invalid (Fixes Dark Souls crash) 2020-01-11 20:44:07 +11:00
Gliniak 8f8c0a439a [GPD] Implemented XamUserCreateTitlesPlayedEnumerator 2020-01-11 20:44:07 +11:00
Cancerous 3c2d99876a [Kernel] Make XHttpStartup succeed and add stubs for XHttpOpen and XHttpConnect that fail 2020-01-11 20:35:07 +11:00
Cancerous a1db296a2c Revert "[Kernel] - Try to shut down XMP so games won't spam it's functions"
This reverts commit 2df353fdde.
2020-01-11 20:35:01 +11:00
emoose 7fa2567d20 [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-11 20:30:18 +11:00
Cancerous 56925afdc8 [Kernel] remove option to disable WSAStartup 2020-01-11 20:30:00 +11:00
Cancerous a9f587199a [Kernel] - Try to shut down XMP so games won't spam it's functions 2020-01-11 20:29:54 +11:00
Cancerous c63f4df9cc [Kernel] Add XHttpStartup Stub, try to gracefully fail and shutdown more of the networking so games won't spam the related functions 2020-01-11 20:29:49 +11:00
emoose faf4e410a0 [Kernel] Include XEX version in log 2020-01-11 20:29:41 +11:00
emoose 70c616fe27 [Kernel/CPU] Fix XEX version numbers not being output correctly
Couldn't find a way to get bitfields & byte-swapping to play well together, so this was the best I could come up with... at least the proper version numbers will show in the log file now :)
2020-01-11 20:29:35 +11:00
emoose 06f7617c57 [Kernel] Allow XEX to continue load after ApplyPatch fails
This should be safe to do hopefully, most errors happen before any part of the XEX is modified, and the errors that can happen after modification should be very rare/impossible thanks to the earlier checks.
It might be good to write up some way to revert any changes though...
2020-01-11 20:27:03 +11:00
emoose f6f32298e3 [CPU] Check patch MediaID if patch signature check failed
This should let us make sure patches are being applied to the right XEX, without needing to rely on the signature.
2020-01-11 20:26:51 +11:00
emoose f58fba9219 [CPU] Fix heap corruption by XEXP header patch not resizing headers correctly
This should hopefully fix GTA IV's TU (for media ID 6AC07221 at least)
2020-01-11 20:26:41 +11:00
emoose 3e74b85c20 [VFS/Kernel] Fixes to allow games to make use of cache partitions
Happy new year! Here's my first commit of the 2020s :)

With these fixes, Halo 3 Epsilon will now write cached map data & other things (autosaves/datamine...) to the cache0/cache1 partitions, (as long as mount_cache cvar is set)
(Halo 3 retail will also write some things to cache with this, but oddly doesn't cache map stuff... which is strange because Epsilon was built only a day or two after the retail build, so I'm not sure why it'd work differently...
Maybe retail needs a TU applied for it to work or something like that)
Other games should hopefully work with cache now too (AFAIK the problem was in SDK library code, that a lot of games probably share)
No idea if this will actually improve anything though, but at least things will work closer to what games expect :)

The way this works is by tricking the cache-partition code (staticly linked into the game exe) into thinking that the Partition0/Cache0/Cache1 devices are valid.
To do that I made another kind of VFS device, the NullDevice, which just takes in a list of paths to handle.
Whenever an IO request is made to one of these paths, the NullDevice can simply pretend to the game that everything was successful, which satisfies the requirements needed for caching.

It also makes use of another trick: setting TitleInsecureCacheDrive XEX permission, which seems to skip a huge chunk of cache-init code (STFC filesystem device registration & stuff like that)
I'm not sure if this would work with every single revision of the STFC/cache code though...
At least in Halo 3 the retail code will handle the TitleInsecureCacheDrive case for us fine, but maybe older/more recent versions don't include functionality for it, need to look into it some more.
(I did try an impl. without needing this permission months ago, got pretty far with it but got caught on one tiny issue that I couldn't figure out... too bad I didn't find out about this permission earlier!)
2020-01-02 12:15:06 +11:00
Cancerous f9f2b2f702 [Kernel] HDD and save detection changes 2019-12-28 23:22:47 -05:00
Cancerous d90cc3a7e9 [Kernel] added more checks to filter user_index out of range 2019-12-28 23:22:36 -05:00
Cancerous 600d750d95 [Kernel] - further adjustments to xam overlapped ui for storage selection and messages 2019-12-28 23:22:07 -05:00
Cancerous b49bbe30e4 [Kernel] - time fix for darksouls 2019-12-28 23:22:03 -05:00
Cancerous 6303a17010 [VFS] more logging for resolving files 2019-12-28 23:21:58 -05:00
Cancerous 7fefb79339 [Kernel] - swapdisc fixes for gtav 2019-12-28 23:21:54 -05:00
Cancerous 96a75cefe3 [Kernel] stubs for 9199 (eventually) 2019-12-28 23:21:46 -05:00
illusion98 a303baa897 Force 1080p output mode 2019-12-19 04:16:52 -05:00
illusion98 65eed6f061 Merge remote-tracking branch 'CookiePLMonster/xex-unload-image' into canary-old-update 2019-12-16 04:11:36 -05:00
Gliniak efde5068b0 [Achievements] XamUserCreateAchievementEnumerator - title_id 0 behaviour
Based on research 0 in title_id is interpreted as current game
2019-12-14 10:49:58 -05:00
Gliniak 7ed41824a5 [XAM] Removed code related to buffer clear
Some games have hardcoded buffer size which doesn't match real size
2019-12-14 10:49:46 -05:00
Joel Linn 9bb78d41e7 [HID/Linux] Implement cross platform controller input using SDL2 library. 2019-12-07 17:07:02 +01:00
Cancerous f0cc9562ae further ajustment to buffer size to fix regression 2019-12-06 12:23:09 -05:00
Cancerous cb246e7501 title update fixup - breaks xex1 temporarily 2019-12-06 12:01:20 -05:00
Cancerous 5627e3abb5 [Kernel] More adjustment to XNotification spam filter 2019-12-06 09:55:26 -05:00
Cancerous 027f691770 [Kernel] - adjusting XAMEnumerate buffer size to fix Angry Birds and Resonance of Fate - thanks Gliniak 2019-12-06 09:55:02 -05:00
Gliniak 1fb027daa7 [Kernel/Sketchy] Implemented NtQueueApcThread
Signed-off-by: Gliniak <Gliniak93@gmail.com>
2019-12-05 02:44:27 -05:00
illusion98 e469101678 Merge remote-tracking branch 'upstream/master' into canary-old-update 2019-12-05 02:44:05 -05:00
Triang3l c43ccc073d [D3D12] Submit command lists on primary buffer end 2019-12-04 21:42:26 +03:00
Cancerous e1ec74dcbe [Kernel, UI]
threaded UI notifications from emoose Issue 1296
added fixups for hdd detection in more games (wheelman for example)
changed filter that stops notification spam
2019-12-02 09:56:11 -05:00
illusion98 8d25068fef [Kernel] Title Update fixup
Co-Authored-By: aerosoul94 <aerosoul94@hotmail.com>
2019-12-02 09:50:21 -05:00
illusion98 17481ebdd1 Revert "[Memory] Trigger watches when making pages writable, not the other way around"
A Workaround for UE3 games causing exploding vertices.
This reverts commit 8ba6f3fc37.
2019-12-02 09:49:49 -05:00
illusion98 470df23c31 [Kernel] use TV Gamma as default instead of CRT 2019-12-02 09:49:38 -05:00
Radosław Gliński f98770190e [THREADING] Removed old walkaround for zombie threads 2019-12-02 09:48:53 -05:00
illusion98 bdd5947e85 small fixup for fps counter
this code is a meme
2019-12-02 09:43:14 -05:00
illusion98 c4c9f104d8 Merge remote-tracking branch 'upstream/master' into canary-old-1 2019-12-02 09:40:45 -05:00
Joel Linn 922f1f220a [CPU] Implement mftb instruction natively.
When the cvars clock_no_scaling and clock_source_raw are set, tick counts will be directly calculated in the emitted code.
2019-12-01 17:11:58 -06:00
Joel Linn 15d422d988 [Base] Optional raw Clock source.
New cvar clock_source_raw allows to use the cpu cycle counter itself as an alternative time source, if system timing resolution is to low and causes problems.
2019-12-01 17:11:58 -06:00
Joel Linn f88d46cead [Base] Optional Clock scaling bypass.
New cvar clock_no_scaling bypasses all time scaling code.
Clock state is non dynamic.
Timing is always derived from host.
2019-12-01 17:11:58 -06:00
Joel Linn 7e244e0488 [Base] Clock state now unaltered by threading.
- Removed tick and time values from ThreadSavedState.
- Removed affiliated get/set code from Save and Restore.
- Removed dangerous SetGuestTickCount method.
2019-12-01 17:11:58 -06:00
Joel Linn d6ce72ddc9 [Base] Clock reworked.
- Time progression is now equal and in sync on all threads.
- Floating point imprecisions do not interfere with timing.
2019-12-01 17:11:58 -06:00
Triang3l 6a3a56b3b9 [D3D12] Workaround for texture flickering on Nvidia - don't use sampler 2047 2019-12-01 21:39:48 +03:00
Silent c5db959154 [Kernel] Retain handles and not objects in XThread
This fixes cases introduced by 52e836d0f81e752ba368717e68773b591adfa9cf
where thread handles get closed before the thread finishes.
Handle was assumed to be alive there, which was not true as
threads self-referenced only their objects, not their handles.

Affected games: Payday 2 Demo
2019-11-30 20:08:30 -06:00
Silent 728531eff7 [Kernel] Operate on handle refcounts in Ob funcs
Although this seems counter-intuitive, operating on handle
reference counters in
- ObLookupThreadByThreadId
- ObReferenceObjectByHandle
- ObDereferenceObject
allows to cleanly clean up handles for resources created elsewhere
and destructed by ObDereferenceObject (for example, threads with 0x80
creation flag). Operating on pointer reference counters alone
would leave a stray handle in the slots list.
2019-11-30 20:08:30 -06:00
Silent 05ef022fd7 [Kernel] Do not retain handle in ExCreateThread
Closing the thread handle should delete the thread object
if it's finished. When this handle was retained, closing the handle
left a lingering handle reference and thus this XThread would leak
2019-11-30 20:08:30 -06:00
Silent 5bec69e983 [Kernel] Add some useful asserts 2019-11-30 20:08:30 -06:00
gibbed ae15c27a24 [x64] Take advantage of StashConstantXmm. 2019-11-30 20:08:10 -06:00
gibbed 04a54cc58f [x64] Fix constant src2 in VECTOR_ROTATE_LEFT_V128. 2019-11-30 20:08:10 -06:00
gibbed f7a8c5ce7a [x64] Fix corruption of src1 in calls to EmulateVectorRotateLeft.
To mitigate this mistake in the future, implemented new
StashConstantXmm functions.
2019-11-30 20:08:10 -06:00
gibbed 43cef29c6d [UI] Disable saving of imgui INI file.
By default imgui saves an INI file named 'imgui.ini' to the current directory,
which is undesired behavior. Until we can properly specify a full path to
a good location, disable saving of the INI file.
2019-11-30 18:54:15 -06:00
aerosoul bc8b629092 [Kernel] Enable XEX1 loading 2019-11-20 18:09:28 -06:00
Joel Linn 03d5455a2f [imgui] Fixes to work with new api.
- Font atlas is now owned by context.
- Switch from deprecated io.RenderDrawListsFn callback to dedicated call in window.cc.
- Replaced deprecated ImGuiCol_ModalWindowDarkening with ImGuiCol_ModalWindowDimBg.
- Replaced deprecated SetScrollHere() with SetScrollHereY().
- Replaced deprecated GetContentRegionAvailWidth() with GetContentRegionAvail().x.
- Replaced deprecated ShowTestWindow() with ShowDemoWindow().
- Replaced deprecated ImGuiCol_ChildWindowBg with ImGuiCol_ChildBg.
- Replaced deprecated SetNextTreeNodeOpen() with SetNextItemOpen().
2019-11-20 08:05:40 -06:00
Joel Linn 1985169924 [imgui] Make code compile with new imgui. 2019-11-20 08:05:40 -06:00
Triang3l 8ba6f3fc37 [Memory] Trigger watches when making pages writable, not the other way around 2019-11-10 14:21:36 +03:00
Triang3l 26e1a67036 [GPU] Separate dxbc and dxbctext shader compiler targets 2019-11-09 00:13:23 +03:00
Triang3l e5b8f0cb27
[Vulkan] Remove an obsolete comment about GLSL 2019-11-08 23:16:37 +03:00
Margen67 09e1028154 Remove (hopefully) last OpenGL leftovers & crunch
Crunch is unused.
2019-11-08 09:10:51 -08:00
Triang3l d4a5a57867 [D3D12] Remove command_list.h inclusion 2019-11-06 08:08:49 +03:00
Triang3l c8f3c93802 [D3D12] Don't create multiple command lists as they're just encoders 2019-11-06 08:06:12 +03:00
Triang3l 00116fad2d [D3D12] Don't assume there's a null D3D descriptor handle 2019-11-04 21:10:32 +03:00
Triang3l c499229455 [GPU] Store an EDRAM snapshot in traces 2019-11-04 17:30:20 +03:00
Triang3l 1bb3cd45ca [APU] Support XAudio 2.7 2019-11-02 22:27:38 +03:00
Triang3l 9deb710607 [D3D12] CP: Framework for multiple command lists per frame 2019-10-31 23:33:11 +03:00
Joel Linn 7fe4bbe7f3 [APU/Linux] Implement cross platform audio using SDL2 library. 2019-10-28 22:35:25 +01:00
Triang3l 6e5a0ebf7b [D3D12] CP: Separate guest frame and non-frame submissions 2019-10-28 22:00:59 +03:00
Triang3l d3b6f71ae1 [D3D12] Don't use D3D12Context for command processor fence 2019-10-28 10:49:32 +03:00
Triang3l b4af63fe31 [D3D12] Detach UploadBufferPool and DescriptorHeapPool from D3D12Context 2019-10-27 20:53:53 +03:00
Triang3l f23ba862f6 [D3D12] Trace viewer entry point 2019-10-27 00:37:33 +03:00
illusion98 770bba5b45 [Kernel] AVPack cvar
idk what teh hell im doing 😹
2019-10-26 02:25:34 -05:00
illusion98 dd8ba067a0 Merge remote-tracking branch 'upstream/master' into canary 2019-10-26 02:23:23 -05:00
Triang3l 36f4158f09 [GPU] Trace dump: Do PIX/RenderDoc capture if attached 2019-10-25 21:32:17 +03:00
illusion98 77d4b5a7d4 Merge remote-tracking branch 'upstream/master' into canary 2019-10-25 03:57:49 -05:00
Triang3l f75d927cc5 [D3D12] Resolve fetch memory read tracing 2019-10-25 09:17:08 +03:00
Triang3l c057b5a032 [D3D12] Make trace dump partially work 2019-10-25 08:38:06 +03:00
Triang3l b622e894d6 [D3D12] Replicate the last texture component into non-existent ones 2019-10-23 23:47:17 +03:00
Triang3l 4623b41023 [D3D12] Trace guest memory operations 2019-10-23 23:33:50 +03:00
Triang3l e07b0ed2ad [VFS] Fix some security issues in StfsContainerDevice code 2019-10-22 08:55:45 +03:00
Margen67 d0e3281741 Merge remote-tracking branch 'upstream/master' into canary 2019-10-21 22:23:17 -07:00
Triang3l 1005651855 [D3D12] Fix DXN swizzle and cleanup texture swizzles 2019-10-21 21:16:29 +03:00
Triang3l a9ed73bdd1 [GPU] Remove most hardcoded register/instruction layouts from common and D3D12 code 2019-10-20 19:40:37 +03:00
Triang3l f83269cf8c [GPU] Refactor: Register structs in D3D12CommandProcessor and some other places 2019-10-19 23:32:38 +03:00
illusion98 15627fb803 Revert "Thread order tweak to threading PR"
This reverts commit 0fc7ac4218.
2019-10-10 07:38:36 -05:00
illusion98 3ab478da75 Change default config file name 2019-10-10 07:38:30 -05:00
Radosław Gliński 779cfc6624 Implemented instructions: rldclx, rldcrx 2019-09-23 04:45:14 -05:00
illusion98 7a7c44b0b7 Merge remote-tracking branch 'upstream/master' into canary 2019-09-15 03:25:21 -05:00
Triang3l f748e5af49 [Emulator] Default XEX cvar 2019-09-14 20:30:04 +03:00
illusion98 cf6cc7a108 Merge remote-tracking branch 'upstream/master' into canary 2019-09-13 03:11:03 -05:00
Cancerous b6e1902579 return error in NetDll_WSARecvFrom so we don't wait on packets we won't be getting - fixes State of decay with other XBLA fixes already merged in canary 2019-09-13 03:10:11 -05:00
gibbed f6e2012e8c [Kernel] Workaround for crash seen on N3 demo boot.
Changes NtAllocateVirtualMemory so that it ignores specified page size when a
base address is specified. Requires verification if this is desired behavior.
2019-09-13 03:10:06 -05:00
Radosław Gliński 47f9142080 Added stub implementation of WSAFDIsSet. I hope that arguments correct 2019-09-13 03:09:48 -05:00
illusion98 4bd98ea3d8 Add command to show fps in titlebar 2019-09-13 03:09:09 -05:00
gibbed c19a052b96 [XAM] Don't use strncpy for XamUserGetName. 2019-09-12 03:41:02 -05:00
Prism Tutaj 4b89a060d4 Fix discord cvar 2019-09-09 08:13:03 -05:00
Cancerous 73b7bad11b Merge branch 'get-proc-address-by-ordinal' of https://github.com/CookiePLMonster/xenia into canary
[Kernel] Fixup GetProcAddressByOrdinal #1473
2019-09-08 23:10:12 -04:00
Silent 9021a7c922
[CPU] Fix off-by-one in max ordinals check 2019-09-08 22:34:31 +02:00
Silent 286a7a03f9
[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.
2019-09-08 21:32:34 +02:00
Prism Tutaj 7eb69ca255 miscellaneous linux fixes. Disables vulkan-trace-viewer and dumper 2019-09-07 20:30:25 -05:00
Prism Tutaj 313f38e538 Revert "Merge remote-tracking branch 'canary/systemlink'"
This reverts commit 7091177142, reversing
changes made to c9631fb73d.
2019-09-07 17:08:02 -05:00
Cancerous 25df5a6e94 Merge branch 'master' of https://github.com/xenia-project/xenia into canary
# Conflicts:
#	src/xenia/kernel/xboxkrnl/xboxkrnl_modules.cc - resolved in xboxkrnl_xconfig.cc?
2019-09-05 09:18:37 -04:00
Cancerous ba46b6a6f8 Merge cleanup and fixes 2019-09-05 08:23:43 -04:00
Cancerous 127b465ccc Merge branch 'profile-gpds-rebase' of https://github.com/emoose/xenia into canary
Merge Emoose profiles-gpds https://github.com/emoose/xenia/tree/profile-gpds-rebase
2019-09-05 05:24:42 -04:00
gibbed b422ed750b Oops. Didn't mean to add that yet. 2019-09-04 23:16:06 -05:00
gibbed 2780e7b1a6 Add user_country cvar, rename game_language cvar.
- [Kernel] Rename game_language cvar to user_language.
- [Kernel] Recategorize user_language to XConfig.
- [Kernel] Add user_country cvar, used instead of hardcoded value in XConfig.
- [XAM] Use user_country cvar for xeXamGetLocaleEx instead of
  xeExGetXConfigSetting.
2019-09-04 23:02:55 -05:00
gibbed 4f4b83b421 [Kernel] Move ExGetXConfigSetting to its own file.
- [Kernel] Clean up xboxkrnl registration function declarations.
- [Kernel] Move ExGetXConfigSetting to its own file.
2019-09-04 23:02:55 -05:00
gibbed d58544b406 [XAM] Fix incomplete locale tables. 2019-09-04 23:02:55 -05:00
Cancerous 8200b36af7 Merge branch 'master' of https://github.com/ObsidianNA/xenia into canary
Recent Files Menu Bar #1396
2019-09-04 23:20:02 -04:00
Cancerous 7d03c3a28c Merge branch 'master_XNotifyGetNext_Dequeue' of https://github.com/Gliniak/xenia into canary
[XAM] Dequeue remain notification when match_id is incorrect #1463
2019-09-04 22:09:06 -04:00
Cancerous 11f50b25fd Merge branch 'master_FE_msg_getNotify_fixes' of https://github.com/Gliniak/xenia into canary
"Template" for 0xFE message: 0x22005
2019-09-04 22:07:00 -04:00
Cancerous 07c9533c12 Merge branch 'swapdiscv2' of https://github.com/randprint/xenia into canary
[Kernel] XamSwapDisc and supporting functions

 swapdiscv2 (#1458)
2019-09-04 21:52:01 -04:00
Cancerous d5a44504a0 Merge branch 'xex-unload-image' of https://github.com/CookiePLMonster/xenia into canary
[Kernel] Make XexUnloadImage fully release the image

Previously XexUnloadImage did not cleanup the image fully,
and if XexLoadImage was to be called again on the same module,
it was not initialized fully, leading to a crash when using it.

[Kernel] (Partially) fix module refcounting

.xex module handles were retained twice in several places,
possibly causing them to leak.
More placed may have to be fixed too.
2019-09-04 21:40:27 -04:00
Cancerous b91b1eb356 Merge branch 'crypt-fixes' of https://github.com/CookiePLMonster/xenia into canary
[Kernel] Fix SHA1 and SHA256 state endianness

Fixes malfunctioning SHA256 hash,
corrupting its state between Update and Finish calls.
 crypt-fixes (#1461)
2019-09-04 21:36:22 -04:00
Cancerous f3a1500c20 Merge branch 'master' of https://github.com/xenia-project/xenia into canary
c22f76e [Base] Const-ize store and store_and_swap templ... - gibbed
ce78d71 [CPU] Add locale export category. - gibbed
8589238 [XAM] Implement a number of language/locale rel... - gibbed
2019-09-04 21:15:16 -04:00
gibbed 858923898f [XAM] Implement a number of language/locale related functions.
[XAM] Implement XamGetLocale, XamGetOnlineCountryFromLocale,
  XamGetOnlineCountryString, XamGetCountryString, XamGetLanguageString,
  XamGetLanguageLocaleString, XamGetOnlineLanguageAndCountryString,
  XamGetLocaleString, XamGetLocaleFromOnlineCountry,
  XamGetLanguageFromOnlineLanguage, XamGetOnlineLanguageString,
  XamGetCountryFromOnlineCountry, and XamGetLocaleEx.
2019-09-04 20:03:25 -05:00
gibbed ce78d7110e [CPU] Add locale export category. 2019-09-04 20:03:25 -05:00
gibbed c22f76e87f [Base] Const-ize store and store_and_swap templates.
[Base] Make value argument for store and store_and_swap templates
const&.
2019-09-04 19:58:17 -05:00
Cancerous 7825877040 FPS Counter at the end of the display chain #1362
from IceTDrinker
https://github.com/xenia-project/xenia/pull/1362
2019-09-04 07:54:55 -04:00
Cancerous 0fc7ac4218 Thread order tweak to threading PR 2019-09-04 07:40:43 -04:00
illusion98 6eabaa259a Merge remote-tracking branch 'randprint/ThreadDistribution' into canary 2019-09-04 06:20:02 -05:00
illusion98 7c52c211e1 Merge remote-tracking branch 'randprint/window-dimensions' into canary 2019-09-04 06:20:01 -05:00
illusion98 3d909462ac [Kernel] Add Gamertag config variable 2019-09-04 06:19:41 -05:00
illusion98 bcc571e574 Merge remote-tracking branch 'upstream/master' into canary 2019-09-04 05:50:18 -05:00
Silent 2ecf687983
[Kernel] Fix SHA1 and SHA256 state endianness
Fixes malfunctioning SHA256 hash,
corrupting its state between Update and Finish calls.
2019-09-03 22:55:43 +02:00
Rados??aw Gli??ski bea0cc4922 Fixed Mask incorrectness. Does mask_ == 0x01 means accept all?
Affected Games:
- Grid 2 (freezes)
- Skate. (Menu Soundtrack)
- Crackdown 2 Demo (ingame freeze)
2019-09-03 20:36:53 +02:00
Triang3l 84a8dc91e4 [D3D12] Filtering between array texture layers 2019-09-03 10:14:25 +03:00
Silent 19251993fc
[Kernel] Make XexUnloadImage fully release the image
Previously XexUnloadImage did not cleanup the image fully,
and if XexLoadImage was to be called again on the same module,
it was not initialized fully, leading to a crash when using it.
2019-09-02 21:48:51 +02:00
Silent 6630a494ac
[Kernel] (Partially) fix module refcounting
.xex module handles were retained twice in several places,
possibly causing them to leak.
More placed may have to be fixed too.
2019-09-02 21:44:43 +02:00
Rados??aw Gli??ski a8978db8f9 "Template" for 0xFE message: 0x22005 2019-09-01 23:21:31 +02:00
Cancerous 551eb749eb [Kernel] XamSwapDisc and supporting functions 2019-08-30 15:52:17 -04:00
illusion98 31f81662c4 [Discord] Change ID and new description 2019-08-29 06:42:53 -05:00
Cancerous c385981d04 [UI] Add window dimension cvars 2019-08-28 16:14:48 -04:00
Triang3l 803fa0cba9 [Kernel] Fix TranslateUnicodeString endian and size 2019-08-28 09:20:10 +03:00
Triang3l 0ad1bd9ab4 [Kernel] XMAInitializeContext physical buffer addresses 2019-08-28 08:11:43 +03:00
illusion98 0eb250ed69 Merge remote-tracking branch 'emoose/stfs-packages' into canary 2019-08-27 23:17:59 -05:00
illusion98 874513594e Merge remote-tracking branch 'emoose/devicetype-fix' into canary 2019-08-27 23:16:04 -05:00
illusion98 658c704470 Merge remote-tracking branch 'upstream/master' into canary 2019-08-27 23:07:16 -05:00
Triang3l 2f51949ece [Kernel] Cya l8r recently added wrong XMAInitializeContext comment 2019-08-27 23:53:06 +03:00
Triang3l 9df39e4883 [Kernel] Fix StoreXmaContextIndexedRegister, note about physical addresses in XMAInitializeContext 2019-08-27 23:50:30 +03:00
illusion98 b7bdfdd046 [Discord] Add Time Elasped and Description Text
Display Time Elapsed when idle or playing a game
Display description when hovering over the icon
2019-08-27 10:30:50 -05:00
illusion98 ad57cb5267 Hack for Source engine 2019-08-27 01:35:40 -05:00
illusion98 e453ace05b Add cvar for UE hack 2019-08-27 01:35:26 -05:00
illusion98 dfccdbc369 Merge remote-tracking branch 'upstream/master' into canary 2019-08-27 01:14:57 -05:00
Triang3l b01f6cd7ea [Vulkan v2] Add immediate shader SPIR-V code 2019-08-26 23:43:05 +03:00
Triang3l b3382f3de1 [Vulkan v2] Upload buffer chain, immediate drawer without textures 2019-08-26 22:57:14 +03:00
gibbed e9802a9f3b [x64] Further simplification / fix buffer overrun in code cache.
- [x64] Further simplify padding of code / unwind reservation in code cache.
- [x64] Fix accidental buffer overrun caused by previous simplification.
2019-08-26 13:42:44 -05:00
Cancerous 97383d9003 Revert "Merge remote-tracking branch 'emoose/import-fixes'"
This reverts commit 974123d9c3, reversing
changes made to e2456f662a.
2019-08-26 11:48:13 -04:00
Cancerous 95352c30a3 [Kernel} distribute worker threads not created with affinity specified more evenly 2019-08-26 04:38:09 -05:00
illusion98 d1877b260e Change window title
xenia -> xenia-canary
2019-08-26 04:32:41 -05:00
illusion98 b50feba296 Merge remote-tracking branch 'upstream/master' into canary 2019-08-25 23:58:43 -05:00
gibbed c4ff8d7c58 [x64] Fix prolog/epilog sizes for emitted functions. 2019-08-25 17:02:42 -05:00
gibbed c808b59834 [x64] Simplify growable function pointer definitions. 2019-08-25 17:02:42 -05:00
gibbed 015e91140a [x64] Don't have a zeroed unwind info as the first slot. 2019-08-25 17:02:42 -05:00
gibbed 920b5c5839 [x64] Simplify padding of code / unwind reservation in code cache. 2019-08-25 17:02:42 -05:00
Triang3l a422166123 [Kernel] Fix MmAllocatePhysicalMemoryEx range base 2019-08-24 19:23:31 +03:00
Triang3l 7e6bf8022f [Memory] Refactor GetPhysicalAddress and use it for XMA, resolve #1448 2019-08-24 17:42:06 +03:00
gibbed 3e6c2bb47c Fix up handling of positional options in cvar handling.
- Fix up handling of positional options in cvar handling so that executables
  other than app can handle them properly.
- Fix command-line arguments for xenia-vfs-dump.
2019-08-24 07:41:55 -05:00
gibbed 24321dbcd9 [x64] Fix up offset of stack alloc in prolog for unwind info.
- [x64] Track offset of stack alloc in prolog within emitted functions.
- [x64] Don't use hardcoded offset of stack alloc in prolog in generated
  unwind info.
2019-08-23 06:12:22 -05:00
gibbed 0dc4a13db3 [x64] Fix up unwind info for emitted functions.
- [x64] Track size of code within emitted functions (prolog, body, epilog).
- [x64] Don't use hardcoded prolog size in generated unwind info.
- [x64] Update URLs to MSDN documentation on UNWIND_INFO/UNWIND_CODE.
2019-08-23 06:12:22 -05:00
gibbed 918a7d4365 [x64] Reuse module handle when pulling in growable function table imports. 2019-08-23 06:12:22 -05:00
gibbed 92a85d6692 [x64] Remove outdated comment. 2019-08-23 06:12:22 -05:00
illusion98 ad6448cd29 Merge remote-tracking branch 'upstream/master' into canary 2019-08-21 07:00:47 -05:00
Radosław Gliński 765c1cc4e7 Disable debugging break on KeBugCheck 2019-08-21 06:59:36 -05:00
emoose f46e3c7e39 [Kernel/VFS] Ensure vfs::Entry is up-to-date before retrieving file information
Games like Forza use NtQueryInformationFile to get the size of the file, to make sure that there's enough room inside it to write data.

Previously, updating the file size (via SetInfoFile(EndOfFile) or WriteFile) wouldn't update the vfs::Entry size field, which NtQueryInfo uses to return the size of the file.

This resulted in the game thinking that the file was smaller than it actually is, and trying to correct that by using SetInfoFile(EndOfFile), which then truncated the file and deleted important data that was written to it.
2019-08-21 02:00:57 -05:00
emoose 06cacbb9af [Kernel] Implement XeKeysObscureKey & XeKeysAesCbcUsingKey 2019-08-21 02:00:57 -05:00
emoose b22d76f0f9 [Kernel] Add XLiveBase 0x58046 stub 2019-08-21 02:00:57 -05:00
0x8081 071e4dce37 Merge remote-tracking branch 'emoose/ntwritefile-apc' 2019-08-20 17:29:24 -06:00
0x8081 974123d9c3 Merge remote-tracking branch 'emoose/import-fixes' 2019-08-20 16:21:23 -06:00
0x8081 e2456f662a Merge remote-tracking branch 'randprint/XBLAfixes' 2019-08-20 15:44:23 -06:00
0x8081 e0ea242b35 Merge remote-tracking branch 'canary/canary' 2019-08-20 15:42:19 -06:00
0x8081 7091177142 Merge remote-tracking branch 'canary/systemlink' 2019-08-20 15:41:16 -06:00
0x8081 c9631fb73d Fix STFS stuff 2019-08-20 15:37:51 -06:00
0x8081 97325d286f Fix Emoose Dashboard merge 2019-08-20 14:12:59 -06:00
0x8081 134ea59e9a Merge remote-tracking branch 'emoose/dashboard' 2019-08-20 13:38:26 -06:00
0x8081 3edc563bac Merge remote-tracking branch 'emoose/title-updates' 2019-08-20 13:34:30 -06:00
illusion98 8c2f0377c4 Merge remote-tracking branch 'upstream/master' into canary 2019-08-20 01:34:45 -05:00
Triang3l 4731ae026b [D3D12] 3D/stacked texture layer addressing 2019-08-19 23:24:58 +03:00
Cancerous 807fceefc1 add missed part of PR #1150 2019-08-19 14:41:43 -04:00
Cancerous 61eb3a7c2d [kernel] Updated PR from Permanulled https://github.com/xenia-project/xenia/pull/1150/files#diff-358a33abb42660137d33300bbc8188c8R51
plus xgimessages to fix Jetpac XBLA
gets AegisWings, Jetpac, and MetalSlug 3 in game
2019-08-19 12:35:01 -04:00
0x8081 61a325ae09 Update to Master and merge inital syslink implementation 2019-08-19 10:13:25 -05:00
illusion98 4a39af2a8f Merge branch 'systemlink' 2019-08-19 09:43:00 -05:00
chss95cs@gmail.com 2655195ee6 Reuse flag results in OPCODE_BRANCH_TRUE codegen if the preceding instruction was a comparison that already set the cpu flags 2019-08-19 09:41:48 -05:00
chss95cs@gmail.com 030a879cf8 Add constant folding for OPCODE_ROTATE_LEFT 2019-08-19 09:41:36 -05:00
Triang3l bc4b68db45 [CPU] Data cache control instructions 2019-08-18 16:22:32 +03:00
Triang3l b25c50164f [APU] Physical address in XE_XMA_REG_CONTEXT_ARRAY_ADDRESS 2019-08-16 21:20:10 +03:00
Triang3l e35c609224 Revert "[APU] Temp XMA context allocation region workaround"
This reverts commit 968c337d22.
2019-08-16 21:11:55 +03:00
Triang3l 968c337d22 [APU] Temp XMA context allocation region workaround 2019-08-16 09:47:28 +03:00
Triang3l 126978d960 [Memory] Fix memory watch addresses 2019-08-16 08:49:48 +03:00
Triang3l 834ced0d63 [Memory] 0xE0000000: Fix a typo, re-enable and cleanup 2019-08-15 23:55:33 +03:00
Triang3l e862169156 [Memory] BaseHeap::TranslateRelative including host address offset 2019-08-15 00:31:21 +03:00
Triang3l 0451153760 [Memory] Temporarily disable allocation in 0xE0000000 2019-08-15 00:06:27 +03:00
gibbed 6ab7720951 [Kernel] Fix stray whitespace in license_mask definition. 2019-08-14 14:15:56 -05:00
Triang3l 003c02c640 [CPU, Memory] 0xE0000000 adjustment by @elad335 and mapping 2019-08-14 21:37:52 +03:00
illusion98 c021c7741d [Kernel] Add license mask as a config variable 2019-08-14 10:25:24 -05:00
Sandy Carter 3c3709dbe7 [CPU] Use c++ style cast 2019-08-14 06:42:30 -05:00
Triang3l 2507f1a819 [Memory] TranslateVirtual in shim and strings 2019-08-14 10:31:11 +03:00
Triang3l 0067f5561d [Kernel] More TranslateVirtual/HostToGuestVirtual usage 2019-08-14 08:28:30 +03:00
Triang3l 2152c79965 [Memory] 0xE… adjustment in TranslateVirtual 2019-08-14 00:07:27 +03:00
Triang3l 741b5ae2ec [Memory] Add HostToGuestVirtual and use it in a couple of places 2019-08-13 23:49:49 +03:00
Triang3l f1b9e1afce [CPU] Remove unused access violation handler variables 2019-08-13 00:06:29 +03:00
Triang3l 470f9946d6 [Vulkan v2] Present framebuffer clearing 2019-08-11 23:53:24 +03:00
Triang3l 490f3de853 [Vulkan v2] Swapchain ImageViews, error messages 2019-08-11 19:29:44 +03:00
Triang3l be6fa2b577 [Vulkan v2] Present loop 2019-08-11 17:49:01 +03:00
Triang3l 675034670e [Vulkan v2] Surface queries 2019-08-10 20:41:37 +03:00
Triang3l db2898e386 Merge branch 'master' of github.com:xenia-project/xenia 2019-08-10 14:52:54 +03:00
Triang3l fb656f3493 [Vulkan v2] GDK VkSurface 2019-08-10 14:52:33 +03:00
Jonathan Goyvaerts c621e01dd2 Add game_language as a config variable 2019-08-10 06:51:36 -05:00
Triang3l af93986c8f [Vulkan v2] VkSurface 2019-08-10 00:23:31 +03:00
Triang3l 30ba2619f3 [Vulkan v2] Properly include, clean up queue families 2019-08-09 22:40:55 +03:00
Triang3l 001120605b [Vulkan v2] Frames and fences 2019-08-08 23:58:02 +03:00
Triang3l 5744e6ba38 [Vulkan v2] Device and queue creation 2019-08-08 23:03:36 +03:00
Triang3l 940ef4ad7a [UI/GPU] Fix include order 2019-08-08 22:11:51 +03:00
gibbed 39c3f72c41 [Kernel] Implement RtlComputeCrc32. 2019-08-07 19:50:17 -05:00
Triang3l 2334e475de [Vulkan v2] Physical device, [D3D12] Small cleanup 2019-08-08 00:08:20 +03:00
Triang3l 40471dff32 [D3D12] Remove gflags from premake5.lua 2019-08-06 23:16:51 +03:00
emoose e68057affb
[Kernel] Update profile-gpds to work with latest master 2019-08-05 18:26:07 +01:00
emoose ad47cd7022
[Kernel] Allow loading info from "Account" file (gamertag etc)
This should let Xenia load in Account files from an actual 360, one step closer to fully supporting 360 profiles!

Only decrypts/reads atm, but the code is there for re-encrypting, maybe once new UI is ready we can make use of that for creating new 360-compatible profiles?
2019-08-05 18:26:06 +01:00
emoose 981eff5902
[Kernel] Move HmacSha function to seperate file, add RC4 2019-08-05 18:26:05 +01:00
emoose fa61106984
[Kernel] Remove redundant 'Xdbf' from names 2019-08-05 18:26:04 +01:00
emoose c1eaf6879a
[Kernel] Move XDBF code to its own namespace 2019-08-05 18:26:03 +01:00
emoose 8f5a82b444
[Kernel] Fix GpdFile missing default constructor & init dash with proper ID 2019-08-05 18:26:01 +01:00
emoose fa2cd63b1f
[Kernel] Add UserProfile::GetTitles, add title_id param to UpdateTitleGpd
Also changed GetTItleGpd to check for -1 to use current GPD (some games might be using 00... as title id, eg. protos)
2019-08-05 18:26:00 +01:00
emoose 00cffcacbb
[Kernel] Add GpdFile::GetTitleId() member 2019-08-05 18:25:59 +01:00
emoose 69eca79402
[Kernel] Format XdbfFile class members like rest of project
Oops, holdover from when this was XbdfWrapper :P
2019-08-05 18:25:58 +01:00
emoose 9b8ebcfe7b
[Kernel] Fix achievement iterator inside XGIUserWriteAchievements
Thanks to jgoyvaerts for noticing it!
2019-08-05 18:25:56 +01:00
emoose 40145b8dbb
[Kernel] Implement XamProfileEnumerate functions 2019-08-05 18:25:55 +01:00
emoose be8d85b168
[Kernel] Add --profile_directory flag, print achievements to log
Also added more error checking, and changed XELOG statements that use %ws to use %s & xe::to_string instead, seems to_string handles some non-latin strings better than %ws does.
2019-08-05 18:25:54 +01:00
emoose 66fca40b04
[Kernel] Update CreateAchEnum to actually use the title_id parameter 2019-08-05 18:25:53 +01:00