Commit Graph

5871 Commits

Author SHA1 Message Date
illusion98 cfb417c2a5 Add Time Elasped and Description Text
Display Time Elapsed when idle or playing a game
Display description when hovering over the icon
2020-07-15 04:35:42 +11:00
chss95cs@gmail.com 17930b1810 Add constant folding for OPCODE_ROTATE_LEFT 2020-07-15 04:35:42 +11:00
chss95cs@gmail.com 063444254c Reuse flag results in OPCODE_BRANCH_TRUE codegen if the preceding instruction was a comparison that already set the cpu flags 2020-07-15 04:35:42 +11:00
Gliniak b65d8b2963 [Kernel/Xam] XamEnumerate: Disable zeroing memory 2020-07-15 04:35:42 +11:00
Gliniak c43fedebce [Kernel] Do not load module explicitly
Application should be responsible for loading xex modules
2020-07-15 04:35:42 +11:00
Gliniak 6353577c6d [Kernel/Xam] Fixed non-empty directories removal 2020-07-15 04:35:42 +11:00
Gliniak 2c3e1def64 [Kernel/Xam] Fixed wrong path creation related to saved content 2020-07-15 04:35:42 +11:00
Gliniak 3fd16eed90 RtlTimeToTimeFields Check for highest defined time_t value. 2020-07-15 04:35:42 +11:00
emoose 64144ffdca Add more mount paths for the local directory
This adds more mount paths for the XEX's local directory to Emulator::LaunchXexFile, so any XEXs that try to use these mountpoints can load files from the XEX directory.

Mount points added:
- \Device\Harddisk0\Partition0 -  original mountpoint used by Xenia
- \Device\Harddisk0\Partition1 - some games/apps seem to use this to refer to HDD1:
- \Device\Harddisk0\Partition1\DEVKIT
  Used by xshell.xex, gets linked as E: (aka "development drive")
  Even if a DEVKIT folder exists inside the local folder, it seems we still have to add this mount point explicitly.

- \Device\LauncherData
  Also used by xshell.xex for various UI resources
  The xlaunch.fdf file is normally mounted via DmMountFdfxVolume to this path (xlaunch.fdf is a FATX formatted container)
  By mounting this xshell can retrieve extracted resources from the local dir.

- \SystemRoot
  Normally refers to the NAND, used by dash.xex to retrieve XZP resources when they aren't inside xam.xex.
  Other apps also use this to refer to other system XEXs/resources
  By mounting it we can just place any needed resources in the local dir.
2020-07-15 04:35:42 +11:00
emoose d3c3dc5cf6 Add PVR register to mfspr
PVR stores the processor/motherboard revision, the latest I could find seems to be 0x710800 which is probably a Corona.
XShell tries to retrieve this during launch to print it on the console (search "XSHELL: CPUPVR" on pastebin for some examples)
Xenia crashes because it's unimplemented, so I just made it return 0x710800. It could be worth moving this to be a constant somewhere though.

IIRC hypervisor/kernel uses this for some things too, but since we don't emulate those it's not much of a problem, but there could still be other XEXs which use it for something.
2020-07-15 04:35:42 +11:00
emoose ee1b7b4e64 Add more XConfig settings & --xconfig_initial_setup flag
This just adds some extra XConfig settings that the dashboard tries to retrieve.

The XCONFIG_USER_RETAIL_FLAGS setting gets used to decide whether to show the initial setup/OOBE wizard or not.
Since the OOBE currently isn't usable in Xenia (mostly due to missing XamProfile* exports, afaik), this setting is by default set to skip it.
But if that isn't desired the --xconfig_initial_setup flag can be used to un-set it.
2020-07-15 04:35:42 +11:00
emoose b7857d77c6 ContentManager: add more checks for folder-packages
Fixes problems with folder packages not being created
2020-07-15 04:35:42 +11:00
emoose ab41204a61 UserModule: try searching for & mounting TU packages to load XEXP patches from.
This uses ContentManager to look for title updates, updates should be inside Content\[TitleID]\000B0000\
The updates can either be made up of an STFS package, or a folder containing extracted update files.

The update will then be mounted under update:\, so games that rely on loading updated assets from the TU should also work with it.
2020-07-15 04:35:42 +11:00
emoose d89a4883bb ContentManager: add support for STFS packages, title_id override
Normally ContentManager resolves package paths by using kernel_state_->title_id() as the title ID, but if we want to use ContentManager for TU's that won't work, since the XEX won't be fully loaded into kernel_state_->executable_module_ yet.

We can get around this by allowing the title ID used by ContentManager to be overridden, this should also help us support games that load packages from other title IDs.
2020-07-15 04:35:42 +11:00
emoose d55960fce5 Fix running import library entrypoints via new XThread param
This is fixed by adding a new startup_type parameter to XThread, which
lets us create an XThread that can run DllMain with correct arguments.
LaunchModule is then modified to use that param when launching a DLL
module that has an entrypoint. UserModule::LoadXexContinue also has code
added to call SetExecutableModule prior to loading any import libraries
2020-07-15 04:35:42 +11:00
emoose 675d8d88d4 Fix loading import library modules 2020-07-15 04:35:42 +11:00
IceTDrinker d360c80094 FPS Counter at the end of the display chain
1) Gives actual refresh rate of the window

2) FPS display based on profiler data, toggleable by pressing the the h key
on the keyboard, use Shift + h to modify FPS text scale (x1, x2 or x4)

3) Fix linux build by updating the gtk window

4) Fix linux build again, include microprofiler header directly and correct
parameters sent to ImGui::Text

5) Fix linux build by using a define to hide undefined functions on linux
2020-07-15 04:35:42 +11:00
ObsidianNA 4d709dccd2 Recent Files List
Overview:
Added a Pop-up menu named 'Open Recent' under the 'File' menu bar item that lists 10 recently opened files.

- It stores the paths of opened games inside a file named 'recent.txt' in the same folder where the xenia.exe is located.

- If the file doesn't exits, the program creates it, then paths are stored when a new file is opened.

- Each time a file is opened, the program compares stored paths with the new one, if it exists then the path is moved to the top of the list to indicate that it is the most recent file opened.

- 'Open Recent' entries are refreshed once xenia is re-started.
2020-07-15 04:35:42 +11:00
emoose 251b35ff14 Fix bug with deleting StfsContentPackage & ensure instance gets deleted 2020-07-15 04:35:42 +11:00
emoose 9ecdf5eba8 Add virtual dtor to ContentPackage, hopefully fix travis... 2020-07-15 04:35:42 +11:00
emoose 52e5885a47 Allow reading FolderContentPackage thumb from headers.bin file 2020-07-15 04:35:41 +11:00
emoose cf85ee1b24 Split code into StfsContentPackage / FolderContentPackage classes 2020-07-15 04:35:41 +11:00
emoose aca251d382 Read STFS headers for unpackaged files from [path].headers 2020-07-15 04:35:41 +11:00
emoose 3423198de3 Allow reading XCONTENT_DATA info from STFS headers 2020-07-15 04:35:41 +11:00
emoose 6e06c164c7 ContentManager: add support for STFS packages 2020-07-15 04:35:41 +11:00
emoose a45813fad6 Add APC support to NtWriteFile 2020-07-15 04:35:41 +11:00
Cancerous ce5845b1aa XGI messages to fix Jetpac XBLA. addition changes to get AegisWings, Jetpac, MetalSlug 3, and State of Decay in game.
+ Updated PR from Permanulled PR#1150
2020-07-15 04:35:41 +11:00
Cancerous 7a2efec4fe Add window dimension cvars 2020-07-15 04:35:41 +11:00
Gliniak ce1e7f1ce6 [Kernel/Xam] Implemented XamSwapDisc 2020-07-15 04:35:41 +11:00
Triang3l 9418f3f2c5 [D3D12] Fix a storing typo in the DXT3 decompression shader 2020-07-14 17:45:41 +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
Joel Linn 41cf7c7a63 [Input] Fix doubling with any enabled.
Keystrokes from multiple backends where mixed.
Effectively doubling all keystroke inputs.
2020-07-12 08:57:21 -05:00
Joel Linn 993393a939 [ImGui] Fix context initialization.
Every context after the first wasn't initialized properly.
2020-07-12 08:56:45 -05:00
Gliniak ab2b9393c2 [Kernel] Implemented NtQueueApcThread 2020-07-12 08:56:15 -05:00
Triang3l b84239d507 [GPU] xenos.h: max texture size, interpolators 2020-07-11 18:56:56 +03:00
Triang3l 79413345af [C++17] static constexpr variables are implicitly inline now 2020-07-11 16:44:57 +03:00
Triang3l f8320d53d7 [D3D12] Fix bitfield lint errors 2020-07-11 16:31:16 +03:00
Triang3l 4bb0ca0e09 [GPU] Move all xenos.h to gpu::xenos, disambiguate Dimension/TextureDimension 2020-07-11 15:54:22 +03:00
Triang3l 39490f3c3a [GPU] Centroid interpolation usage comment 2020-07-09 12:22:45 +03:00
Triang3l 1547b9df41 [D3D12] Interpolation at centroid 2020-07-08 23:20:36 +03:00
Triang3l 829c6ee2b0 [D3D12] Dithered alpha to coverage 2020-07-07 23:09:53 +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 0fbf0eec9d [DXBC] ROV: Inline 24-bit depth conversion 2020-07-05 22:50:24 +03:00
Triang3l 713f26b5c8 [D3D12] Use typed buffers for texture untiling, calculate guest address once per thread 2020-07-03 20:03:53 +03:00
Triang3l 1d35ba9ee7 [D3D12] Fix bindless sampler offset 2020-06-23 23:51:59 +03:00
Triang3l d26f84b36b [D3D12] Untile whole mip tail to make alignment assumptions later, other mip fixes 2020-06-23 23:49:42 +03:00
Triang3l bd1a1e2de3 [D3D12] Lint root_parameters_bindless 2020-06-20 12:30:07 +03:00
Triang3l dbc7794399
[D3D12] Enable bindless resources by default 2020-06-20 01:27:31 +03:00
Triang3l 40e335e2a9 [D3D12] Bindless textures/samplers 2020-06-19 23:52:33 +03:00
Triang3l 9f789e01b6 [DXBC] Fix and cleanup depth-only PS register usage 2020-06-07 15:21:31 +03:00