This means that we only assign a symbolic link for D:, on a real Xbox the kernel only handles this, the application takes care of the rest.
Added some comments to explain behavoir that is currently incorrect, eg: Drive D should point to the Xbe path, which is not always CDROM, however, as we set CDROM to the Xbe Path, it works anyway.
* Small renames
* Cleanup (renames, comments and indenting)
Read GetCurrentProcess() once (g_CurrentProcessHandle further on)
Forwarded KeWaitForSingleObject to KeWaitForMultipleObjects
* Refactored all OOVPA's
* Fixed a few small mistakes
* More oovpa cleanup
XRefOne applied to CDirectSoundStream_SetI3DL2Source_1_0_3936
CDirectSoundVoice_SetHeadroom_1_0_4627 and
IDirectSound_CreateSoundStream_1_0_5849
Removed overlooked folder copy
Indenting/newline fixes
* Renamed symbols, mainly Native to Host
VolumeLetter into DriveLetter (the official term)
XboxFullPath into XboxDevicePath
NativePath into HostPath / HostDevicePath
NativeRootHandle into HostRootHandle
Also, small improvements to _CxbxConvertFilePath
Added drive A, S and V
* More oovpa cleanup
* Log prefix has to be updated per call after all
VolumeLetter into DriveLetter (the official term)
XboxFullPath into XboxDevicePath
NativePath into HostPath / HostDevicePath
NativeRootHandle into HostRootHandle
Also, small improvements to _CxbxConvertFilePath
Added drive A, S and V
* Cleanup (renames, comments and indenting)
Read GetCurrentProcess() once (g_CurrentProcessHandle further on)
Forwarded KeWaitForSingleObject to KeWaitForMultipleObjects
* Refactored all OOVPA's
* Fixed a few small mistakes
* More oovpa cleanup
XRefOne applied to CDirectSoundStream_SetI3DL2Source_1_0_3936
CDirectSoundVoice_SetHeadroom_1_0_4627 and
IDirectSound_CreateSoundStream_1_0_5849
Removed overlooked folder copy
Indenting/newline fixes
* Selectively merging fs-experimental into master
In particular, I'm not merging the automatic parent folder creation stuff because I'm not convinced it's the right thing to do
* Implemented more FileInfo converters
This should take care of all types used by NtSet/QueryInformationFile. The remaining types are used by NtQueryDirectoryFile.
* FileName probably needs to be converted
* Fix compilation errors
* Restore string conversion
* Revert NtDeviceIoControlFile
Panzer Dragoon failed the initial XapiVerifyMediaInDrive check due to the changes made to this function. We need proper low level I/O device emulation for this to work.
* Fix XeImageFileName
Helps with Avalaunch initialization. It still crashes further down the
road.
* Comment on XBE location
* Implemented conversions for NtQueryInformationFile and NtQueryFullAttributesFile
* Cleanup (renames, comments and indenting)
Read GetCurrentProcess() once (g_CurrentProcessHandle further on)
Forwarded KeWaitForSingleObject to KeWaitForMultipleObjects
* Refactored all OOVPA's
* Fixed a few small mistakes
Very aggressive cull of old Exe support:
Removed GUI for importing/exporting Exe files
Removed GUI for storing Exe history
Removed GUI for Executable Generation
Removed unused EmuExe class
Removed unused Exe registry settings
Removed unused Exe file history
Removed unused standalone Cxbe console app which would no longer compile
* Use IRQL value in the emulated KPCR structure rather than overwriting the Windows TIB structure.
Note: The entire KPCR is currently per thread, this is not correct as the KPCR should be per-cpu.
The issue here is that the first part of the KPCR, NT_TIB should be per thread.
I haven't figured out a good way to keep that portion per-thread while keeping the rest of the structure global,
that said, it will function fine as long as the same thread calls the IRQL functions.
* Move KPCR fetch code into KeGetPcr();
This exists as a macro on the Xbox, but we implement it as a function because the xbox approach requires FS to point to the KPCR
This isn't possible on 64-bit Windows, even with 32-bit code, so this approach is required.
* Implment XcRC4 functions.
Using a (very slightly) modified version of Cryptlib (The Rc4Context structure has been re-ordered to match the order of elements in the Xbox RC4 context)
https://github.com/WaterJuice/CryptLib
* Use Rc4Xor rather than Rc4Output