Commit Graph

166 Commits

Author SHA1 Message Date
Margen67
25d6f8269a [premake] Cleanup 2025-07-27 02:46:43 -07:00
Gliniak
4182852a4b [Base] Split of xbox.h file
- Splitted into: kernel.h and xam.h
- Removed UpdateSpaData from KernelState into ContentManager
2025-07-26 21:25:32 +02:00
Margen67
3eef564ff8 [format] Require EOF newline 2025-07-19 14:42:21 -07:00
Margen67
4cb783bf22 Header cleanup 2025-07-19 14:42:21 -07:00
Gliniak
fe739208b6 [VFS] Rewrote STFS to use memory mapping
- Replaced old-style buffer, buffer_length with std::span
- Added STFS and SVOD specific Entry and File classes
- Other smaller improvements
2025-05-14 21:38:02 +02:00
Gliniak
dd112ed462 [XAM] Multiple Profile/Dashboard related changes.
- Replaced multiple unknown parameters with proper named ones
- Added code to support creation of profile from dashboard initial run
- Added flag to remove ODD from being enumerated in devices (probably valid but not sure)
2025-05-06 23:10:18 +02:00
Gliniak
9434cc89c9 [XAM] Fixed specific edge-case when DLCs or Installed Data wouldn't be visible
This was caused by including flag "exclude common" for enumerations without xuid

- Added enum XContentFlag
2025-05-05 19:53:36 +02:00
Gliniak
2a4ca1a1b7 [VFS] Added fallback if conversion of 1252->UTF8 fails 2025-05-03 20:58:14 +02:00
Gliniak
5ba6c2b840 [VFS] Improved initial loading time during "Install Content" 2025-04-19 16:54:25 +02:00
Gliniak
56703e52e2 [UI] Redesigned "Install Content" window
- Added ID for each ImGui window
- Added filesystem::CreateFolder function
2025-04-18 21:55:58 +02:00
Gliniak
31d715d100 [Premake] Removed unused/unnecessary subprojects.
- Testing currently doesn't work
- VFS Dump is unused. You can use internal function for it
- Demos are only for fun
- Trace Dump & Trace Viewer (unsure, but ok)

You can re-enable them by changing values: enableTests and enableMiscSubprojects in main premake file.

In the future there should be xb command support to overwrite them
2025-04-15 09:04:16 +02:00
Xphalnos
7479ccc292 [Misc] Fix Some Warnings on Clang Build with Windows + Adding constexpr 2025-03-27 17:52:18 +01:00
Xphalnos
5f918ef28d [Misc] Replaced const with constexpr where possible 2025-03-25 19:50:37 +01:00
Gliniak
b7066c7a15 [VFS] Fixed "Install Content" option on Linux 2025-03-18 22:37:34 +01:00
Gliniak
1110cdd372 [Kernel] Added support for writing/reading GPD files
This breaks settings in games that are using them and savefiles in games that use settings to store progress
2025-03-07 11:59:48 +01:00
Gliniak
09be7e874a [All] Fixed multiple issues during build on Linux
- Added some fixes introduced by RodoMa92 in PR198

- Lack of AVX2 extension (should be done differently in the future)
- Disable deprecated-volatile warning
- Added missing override in posix EventInfo, ImGui notification class and XContent class
- Removed not used XAudio2.h include in XMP
- Fixed missing switch-case in XObject
- Added fugly template in native_list.h
- Fixed multiple smaller issues
2025-01-10 21:41:45 +01:00
Gliniak
d660a82997 [XContent] Aggregate license mask from all licenses while installing package
This should fix issues with some DLCs
2025-01-05 17:59:15 +01:00
Margen67
3acf3fdcd1 Never specify /O1
Leaving it as /O2 might improve performance.
Stops this from being spammed:
cl : command line  warning D9025: overriding '/O2' with '/O1' [D:\a\xenia-canary\xenia-canary\build\glslang-spirv.vcxproj]

/Os is implied by /O1;
https://learn.microsoft.com/en-us/cpp/build/reference/o1-o2-minimize-size-maximize-speed?view=msvc-170
2024-12-13 13:01:06 -08:00
Gliniak
a295ec1bbd [Base] Removed useless path_to_utf8 conversion while using fmt
Default filesystem::path formatter was added to fmt around 2022
2024-12-13 19:04:31 +01:00
Gliniak
3318ab5d4c [3PP] Uplifted FMT version and adjusted messages 2024-12-12 20:28:11 +01:00
Gliniak
d393725353 Revert "[VFS] Fixed crash on filename extraction from path."
This reverts commit 02f5316562.

It's not needed anymore thanks to 6cba5ba7e6
2024-11-02 19:54:16 +01:00
Gliniak
3ac98ebfba [Static Analysis] Resolved some issues mentioned in Alexandr-u report 2024-11-02 19:08:34 +01:00
Gliniak
9e4b2e343f [XAM] Allow content to read license from header 2024-10-06 21:15:50 +02:00
Gliniak
9bdd07590c [XAM] Implementation of: Profile Manager & Profiles Support
Thanks Emoose for Account Encrypt/Decrypt code!
2024-10-05 10:03:35 +02:00
NicknineTheEagle
6cba5ba7e6 Convert STFS filenames from Win-1252 to UTF-8 2024-09-22 21:38:55 +02:00
Gliniak
02f5316562 [VFS] Fixed crash on filename extraction from path.
Names are in CP1252 which fails conversion to utf8.
2024-08-31 18:15:13 +02:00
Gliniak
651fdc0344 [Kernel] Added support for XFileDispositionInformation
This is set and used in 415607DD to overwrite savefile
2024-08-16 20:40:53 +02:00
Gliniak
49584ff664 [VFS] Change file attributes or timestamps.
Changing these options is only viable for r/w mounted host devices (Cache)
Changing attributes works only on windows
Changing timestamps is mocked and logged to see if there is any title that uses it
2024-08-15 17:17:44 +02:00
Gliniak
ec267c348a [LINT] Fixed lint issues after clang-format update 2024-06-13 20:56:56 +02:00
Adrian
a688f87f55 [VFS] Clear registered devices if launch failed 2024-05-25 20:33:19 +02:00
Adrian
5efcc6a71b [Emulator] Launch file based on signature instead of file extension 2024-03-21 15:22:32 +01:00
Gliniak
b9061e6292 [LINT] Linted files + Added lint job to CI 2024-03-12 19:19:30 +01:00
Gliniak
6f287a9597 [Emulator] Improvements to launch_data
Added support for autoload titles on boot with:
- Specific launch data
- Specific xex
- Restarting into packages: XamContentLaunchImageFromFileInternal
2024-02-11 13:11:39 +01:00
Gliniak
74b52711a3 [Kernel] Added Support For: XFileRenameInformation 2024-01-29 22:03:58 +01:00
disjtqz
ee424ae14a [Kernel] nonintrusive guest to host object mapping 2023-10-14 15:01:12 +02:00
Gliniak
e613134793 Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2023-10-02 10:07:05 +02:00
Gliniak
f6b5424a9f [VFS] Fixed invalid month decoding in decode_fat_timestamp 2023-09-14 12:32:51 +03:00
Gliniak
0f331b5313 [Testing] Added test project for vfs
- Added test case for: decode_fat_timestamp
- Changed location of: decode_fat_timestamp
2023-09-14 12:32:51 +03:00
Gliniak
9554f82c10 [VFS] More cleanup in Zarchive loader 2023-09-04 21:09:40 +02:00
Gliniak
9496c04ac5 [VFS] Zarchive cleanup & style changes 2023-09-03 21:31:17 +02:00
Romain Tisserand
2cd2d1d620 [VFS] Add support for loading ZArchive files 2023-09-03 21:16:34 +02:00
Gliniak
e191f2d8d0 Separation of STFS, SVOD into different entities 2023-09-03 19:37:22 +02:00
Gliniak
c1bd30eb7f Fixed invalid month decoding in decode_fat_timestamp 2023-09-02 10:49:58 +02:00
Gliniak
d9e1c5024f Added test project for vfs
- Added test case for: decode_fat_timestamp
- Changed location of: decode_fat_timestamp
2023-09-02 10:49:58 +02:00
chris
afef35c1c0 Implement RtlRandom (which despite its name is located in Xam, not xboxkrnl, which is why its not in xboxkrnl_rtl)
Stub XamVoiceSubmitPacket
Stubs for __CAP_Start_Profiling/End_Profiling/Enter_Function/Exit_Function
add a note about io_status_block in NtDeviceIoControlFile, change the param's type
move the X_IOCTL_ constants from NtDeviceIoControlFile's body into xbox.h
add X_STATUS_INVALID_IMAGE_FORMAT to xbox.h
Implement XexLoadImageHeaders
Much more correct version of IoCreateDevice, properly initializes/allocates device extension data
Stub version of IoDeleteDevice
Open the quickstart guide in the browser the first time a user opens the emulator
Add some persistent flags that are stored in the registry on windows, not in the config. These are just used to indicate whether one-time tasks have run, like showing the quickstart guide. On non-windows platforms a default value is returned that skips any of these tasks so they don't run every single time.

If the user opens a .iso file, show a warning telling them that we do not condone or support piracy. If the user closes the messagebox within two seconds set a sticky flag that will show them the warning every time instead. Otherwise the warning is never shown again. The Beep function is used to spook them a bit, to hopefully make them less likely to skip the message
If a user opens an archive file, which we do not support, explain to them that they're dumb.

Removed messages intended to "catch" pirates.  If they're out there, we don't want to know about them. A huge chunk of the discourse on our discord is now about piracy. Hopefully these changes will deter them from coming to us for now, but some of these messages may backfire
2023-07-23 14:26:10 -04:00
Margen67
71b8c2357e Fix broken errors, log ISO path 2023-06-28 00:25:44 -07:00
chss95cs@gmail.com
c86233cc80 Detect corrupted xiso images that have file entries that are out of range and show a fatal error. 2023-04-23 12:52:03 -04:00
Adrian
321dd75e05 [VFS] Fixed allow_game_relative_writes to write invalid cached entries
This PR fixes https://github.com/xenia-canary/xenia-canary/issues/123 a bug where files would not write to the host if they were deleted from the host filesystem during runtime.
2023-02-08 22:38:16 +01:00
chss95cs@gmail.com
c1d922eebf Minor decoder optimizations, kernel fixes, cpu backend fixes 2022-11-05 10:50:33 -07:00
chrisps
8186792113 Revert "Minor decoder optimizations, kernel fixes, cpu backend fixes" 2022-11-01 14:45:36 -07:00