Commit Graph

1368 Commits

Author SHA1 Message Date
PatrickvL bcd6b98764 Implemented RtlExtendedLargeIntegerDivide 2016-12-26 13:28:51 +01:00
PatrickvL fbd7bfdba5 Implemented RtlExtendedIntegerMultiply 2016-12-26 13:23:00 +01:00
PatrickvL dc3d4beaa0 Implemented RtlEqualUnicodeString 2016-12-26 13:05:56 +01:00
Luke Usher bac1a157b3 Fix NV2A address mapping 2016-12-24 15:53:47 +00:00
PatrickvL 8509e97ed9 Implemented NtQueryEvent 2016-12-24 01:20:26 +01:00
PatrickvL 50d449d378 Implemented NtQuerySemaphore 2016-12-24 01:04:54 +01:00
PatrickvL 5f700e83c3 Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' 2016-12-24 00:30:10 +01:00
Luke Usher 3189cd5b73 Merge pull request #59 from LukeUsher/Symbolic_Link_Fixes
Update symbolic code to be closer to how real hardware does things.
2016-12-23 23:25:23 +00:00
PatrickvL b1639dee36 Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' 2016-12-23 23:58:31 +01:00
Luke Usher 2f902abad9 Update symbolic code to be closer to how real hardware does things.
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.
2016-12-23 21:55:55 +00:00
Luke Usher 5cb13ba3ac Merge pull request #57 from PatrickvL/master
Implemented a bunch of kernel API's
2016-12-23 17:55:22 +00:00
PatrickvL 440fa2aa48 Implemented RtlDowncaseUnicodeString 2016-12-23 18:37:32 +01:00
PatrickvL 41d393bfe0 Implemented RtlDowncaseUnicodeChar 2016-12-23 18:31:57 +01:00
PatrickvL 183161f4db Implemented RtlCreateUnicodeString 2016-12-23 18:25:49 +01:00
PatrickvL 370a4262f1 Renames and cleanup (#56)
* 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
2016-12-23 17:23:53 +00:00
PatrickvL 91cdf3e046 Implemented RtlCopyUnicodeString) 2016-12-23 18:20:54 +01:00
PatrickvL 2d9c0016ca Implemented RtlCopyString 2016-12-23 18:15:27 +01:00
PatrickvL 90363fcf75 Implemented RtlCompareUnicodeString 2016-12-23 18:03:31 +01:00
PatrickvL 5a64d38256 Implemented RtlCompareString 2016-12-23 17:57:58 +01:00
PatrickvL ee4573bd44 Implemented RtlCompareMemoryUlong 2016-12-23 17:48:08 +01:00
PatrickvL bc4d26f089 Implemented RtlCompareMemory 2016-12-23 17:42:25 +01:00
PatrickvL ceb69874f0 Implemented NtDeleteFile
However scary, this is still required
2016-12-23 17:29:05 +01:00
PatrickvL 70cf10327e Merge pull request #2 from PatrickvL/ExtraLogging
Extralogging
2016-12-23 17:08:32 +01:00
PatrickvL 0fdda33b4d Merge pull request #3 from PatrickvL/OOVPA_Refactoring
Oovpa refactoring
2016-12-23 17:08:24 +01:00
PatrickvL 67cf33b928 Log prefix has to be updated per call after all 2016-12-23 17:06:17 +01:00
PatrickvL 16f7356103 More oovpa cleanup 2016-12-23 16:59:08 +01:00
PatrickvL 8af250f042 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
2016-12-23 16:21:43 +01:00
PatrickvL 5e61efa03e Oovpa refactoring (#54)
* 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
2016-12-23 11:07:24 +00:00
PatrickvL bbb34cd3b6 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
2016-12-23 11:54:52 +01:00
PatrickvL 591fe83b40 Merge remote-tracking branch 'refs/remotes/origin/master' into ExtraLogging 2016-12-23 11:36:38 +01:00
PatrickvL e58b49b022 Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' into PatrickvL/master 2016-12-23 11:34:37 +01:00
PatrickvL 4971b951a6 Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' into OOVPA_Refactoring 2016-12-23 11:34:13 +01:00
Ivan Roberto de Oliveira 4eba2e31e3 File information struct conversions (#53)
* 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
2016-12-22 22:25:22 +00:00
Luke Usher ea78ca05d8 Oovpa refactoring (#51)
* 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
2016-12-22 20:35:17 +00:00
PatrickvL bd009cdeae Fixed a few small mistakes 2016-12-22 12:01:34 +01:00
Luke Usher ece663f6fe Merge pull request #50 from x1nixmzeng/remove-exe-support
Removed all EXE support
2016-12-22 05:10:25 +00:00
PatrickvL 9675d5ec7b Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' 2016-12-22 01:20:20 +01:00
PatrickvL 9dacd95cc4 Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' into OOVPA_Refactoring 2016-12-22 01:15:04 +01:00
PatrickvL 7292e95945 Refactored all OOVPA's 2016-12-22 01:14:35 +01:00
x1nixmzeng 5bbc31029f Removed all EXE support
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
2016-12-21 23:58:11 +00:00
Luke Usher af663c8f44 Use IRQL value in the emulated KPCR structure rather than overwriting the Windows TIB structure (#42)
* 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.
2016-12-20 21:46:07 +00:00
Luke Usher 73c0b0ca68 Implement XcRC4 functions. (#43)
* 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
2016-12-20 21:45:56 +00:00
PatrickvL 040bdaf904 Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' into PatrickvL/master 2016-12-20 17:48:19 +01:00
PatrickvL 4e06ac6992 Cleanup (renames, comments and indenting) (#41)
Read GetCurrentProcess() once (g_CurrentProcessHandle further on)
Forwarded KeWaitForSingleObject to KeWaitForMultipleObjects
2016-12-20 16:20:04 +00:00
PatrickvL c1e3b570be Cleanup (renames, comments and indenting)
Read GetCurrentProcess() once (g_CurrentProcessHandle further on)
Forwarded KeWaitForSingleObject to KeWaitForMultipleObjects
2016-12-20 16:51:16 +01:00
PatrickvL 3d88d6f230 Small renames 2016-12-20 15:18:51 +01:00
PatrickvL 0243f44a85 Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' into PatrickvL/master 2016-12-20 14:26:08 +01:00
PatrickvL b096ca5b08 Forwarded NtPulseEvent to NtDll
Deduplicated declarations.
2016-12-20 14:08:46 +01:00
PatrickvL 3b47ce363b Merge pull request #40 from PatrickvL/ExtraLogging
Extra logging
2016-12-20 13:57:20 +01:00
PatrickvL 7485f2f906 Merge 2016-12-20 13:52:03 +01:00