Commit Graph

35 Commits

Author SHA1 Message Date
Triang3l
91d5ba444a [Base/Kernel] Add and use truncating null-terminating string copying 2020-11-15 11:27:59 -06:00
gibbed
a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -05:00
gibbed
5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05: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
919882dd68 [Kernel] Fix use of wrong macro in XamEnumerate for extended error. 2018-11-29 12:34:56 -06:00
gibbed
248b661d14 [Kernel] Maybe fix XamEnumerate, again?
Some titles, when using XamEnumerate synchronously, expect X_ERROR_NO_MORE_FILES as the return value.
Some titles, when using XamEnumerate asynchronously, expect X_ERROR_FUNCTION_FAILED as the overlapped result.
2018-11-26 19:53:03 -06:00
gibbed
03d6de997c [Kernel] Some titles seem to explicitly expect X_ERROR_FUNCTION_FAILED to mean no more files when enumerating content. 2018-11-26 07:33:21 -06:00
gibbed
216bec15f6 [Kernel] Stub XamQueryLiveHiveW. 2018-11-25 09:56:22 -06:00
gibbed
20315850db [Kernel] Stub XamFeatureEnabled. 2018-11-24 20:53:45 -06:00
gibbed
c98f6af1d8 [Kernel] Better stub XAM online schema. 2018-11-24 17:47:24 -06:00
gibbed
213e688173 [Kernel] Fix some stuff from PR merge. 2018-11-23 17:27:35 -06:00
emoose
933588717e [Kernel] Add XamGetOnlineSchema export, returns dummy data 2018-11-23 16:38:34 -06:00
emoose
8c6e0b86f9 [Kernel] swprintf_s -> swprintf, change how Format*String/Build*ResourceLocator exports copy text
New way of copying the text should make it less likely for any buffer overflows to occur.
2018-11-23 16:38:34 -06:00
emoose
8efbe32867 [Kernel] Add XamBuild*ResourceLocator & XamFormat*String exports
Resource locators are just strings that say where to find a resource, they can either point to a file path or to an XEX resource.
Normally the Gamercard/SharedSystem exports use XamBuildResourceLocator to make a locator for the resources inside xam.xex.
But since our xam won't have those resources I've made it point them to a local file instead (by passing 0 as the module param for XamBuildResourceLocator).
The resources will have to be extracted to the XEX's local path for it to find them though (and XEX will need to have media:\ symlinked too)

The XamFormat*String exports are really windows-only right now, but they'll at least empty the buffer for other platforms.
They'll also always output MM/DD/YYYY no matter what locale the system is, on 360 this is localized properly of course.

I've renamed XamBuildSharedResourceLocator_ to XamBuildLegacySystemResourceLocator too since that seems to be the proper name for it.
In earlier Xams this just pointed to ...SharedSystemResourceLocator (as does this code), but later versions seem to have their own function.
2018-11-23 16:38:34 -06:00
gibbed
69463033b1 [Kernel] Don't trust buffer length in XamEnumerate when it matches items per enumerate. 2018-11-22 16:49:01 -06:00
gibbed
db234309bf [Kernel] Fix logging of broken XamEnumerate usage. 2018-11-22 16:36:19 -06:00
gibbed
463f21e484 [Kernel] Cleanup XamLoaderSetLaunchData, XamLoaderGetLaunchData. 2018-11-22 04:29:35 -06:00
gibbed
473b9d3c3a [Kernel] Don't trust buffer_length in XamEnumerate. 2018-11-22 04:28:46 -06:00
gibbed
394105d359 [CPU/Kernel] Cleanup and rework of how kernel exports are declared. 2018-11-20 13:03:17 -06:00
emoose
0b7f7e1657 [CPU] Move XEX2 code into XexModule class, autodetect XEX key
Code is mainly just copy/pasted from kernel/util/xex2.cc, I've tried fixing it up to work better in a class, but there's probably some things I missed.

Also includes some minor improvements to the XEX loader, like being able to try both XEX keys (retail/devkit) automatically, and some fixes to how the base address is determined.

(Previously there was code that would get base address from optional header, code that'd get it from xex_security_info, code that'd use a stored base address value...
Now everything reads it from a single stored value instead, which is set either from the xex_security_info, or if it exists from the optional header instead.
Maybe this can help improve compatibility with any weird XEX's that don't have a base address optional header?)

Compressed XEX loader also has some extra checks to make sure the compressed data hash matches what's expected.
Might increase loading times by a fraction, but could save reports from people unknowingly using corrupt XEXs.
(still no checks for non-compressed data though, maybe need to compare data with xex_security_info->ImageHash?)
2018-10-20 04:18:18 +01:00
gibbed
bc7306b352 [Kernel] Fix XamLoaderGetLaunchDataSize to set size to 0 for games that don't check its return value. 2018-05-24 03:26:29 -05:00
gibbed
1e92a4e06c XAM: Write as many items possible when enumerating. Fixes Nier not detecting system save data (and possibly other games). 2017-08-08 04:53:01 -05:00
Dr. Chat
4f0c0f2724 Shims: No implicit dereferencing of pointers 2017-05-17 04:45:31 -05:00
gibbed
1e9786eae3 Added two xam stubs. 2017-05-14 09:52:25 -05:00
Dr. Chat
7f4ee2a070 Fix typo in XamAlloc
Few other inconsistencies in xboxkrnl_memory
2017-04-17 22:57:29 -05:00
Megamouse
c38accbb76 format shim conversion on some files
xam_info.cc, xam_msg.cc, xam_notify.cc, xboxkrnl_memory.cc,
xboxkrnl_misc.cc
2017-03-28 00:39:37 +02:00
Dr. Chat
4fe6eba972 X_HRESULT_FROM_WIN32 macro 2016-11-04 19:06:43 -05:00
Dr. Chat
9abfc52b77 Don't store xam launch data in guest memory. 2016-06-27 13:46:08 -05:00
Dr. Chat
d0f547020a XamLoaderLaunchData: Fix incorrect return values when launch data is not present. 2015-12-29 13:09:52 -08:00
Dr. Chat
f5237d486a KernelState::TerminateTitle - Release the global lock in smaller regions / No need for an argument specifying if called from guest 2015-12-29 13:09:51 -08:00
Ben Vanik
e5fbf840d2 Shuffling kernel/. 2015-09-06 18:07:52 -07:00
Ben Vanik
4d92720109 Moving all kernel files around just to fuck with whoever's keeping track ;) 2014-01-04 17:12:46 -08:00
Ben Vanik
2a1d1d55d7 XamGetSystemVersion = 0 to stop dynamic kernel function loading (for now). 2014-01-04 14:12:23 -08:00
Ben Vanik
fdb6a5cfa3 Initial Alloy implementation.
This is a regression in functionality and performance, but a much better
foundation for the future of the project (I think). It can run basic
apps under an SSA interpreter but doesn't support some of the features
required to do real 360 apps yet.
2013-12-06 22:57:16 -08:00
Ben Vanik
b7ffd46319 Massive refactoring of all code + audio skeleton.
This should make it easier to find files and (in the future) split things
up into separate libraries.
It also changes around emulator initialization to make it a little more
difficult to do things out of order and a little more sensible as to when
real init work happens.
Also adding a skeleton audio system/driver and reworking CPU register
access to be more extensible.
2013-10-23 20:42:24 -07:00