Commit Graph

231 Commits

Author SHA1 Message Date
PatrickvL f79b82a4b3 Kernel : Added ObOpenObjectByPointer stub 2017-02-06 13:51:32 +01:00
PatrickvL d37f06d25b Kernel : Added ObMakeTemporaryObject stub 2017-02-06 13:48:30 +01:00
PatrickvL c0c55ca461 Kernel : Added ObInsertObject stub 2017-02-06 13:46:27 +01:00
PatrickvL 1b71c925f6 Kernel : Added ObCreateObject stub 2017-02-06 13:42:44 +01:00
PatrickvL 258ee34ff5 xboxkrnl : Added KMUTANT struct and comment headers 2017-02-06 13:22:34 +01:00
PatrickvL 92d83306be xboxkrnl: Expanded OBJECT_TYPE struct, updated all occurrences 2017-02-06 13:09:30 +01:00
PatrickvL 156fa48f6d xboxkrnl : Added OBJECT_TYPE struct 2017-02-06 12:10:00 +01:00
PatrickvL 6b9ab6a635 Renamed an argument and comment update 2017-02-06 11:26:51 +01:00
PatrickvL 174c397233 Implemented KeIsExecutingDpc, KeCancelTimer and KeDisconnectInterrupt
Also commented a few functions, and replaced a few magic numbers by
constants.
2017-02-02 18:32:18 +01:00
PatrickvL d441c9ce0e Extended KOBJECTS enum 2017-02-02 17:48:35 +01:00
PatrickvL 57e4f3570a At last introduced KeInterruptTime, used it in KeQueryInterruptTime (which is now protected against overflow)
Also fixed EmuThreadDpcHandler by applying CONTAINING_RECORD to DpcQueue
(DPC's do seem to get called now)
2017-02-01 20:59:32 +01:00
PatrickvL c540b3580c Kernel : Added KeRemoveQueueDpc and KeResetEvent
Fixed and completed KeInitializeEvent, KeInsertQueueDpc and KeSetTimerEx
Also ported LIST_ENTRY methods over from Dxbx and applied where possible
2017-02-01 11:49:38 +01:00
PatrickvL 979bcaaf76 Added incomplete version of KeInitializeEvent
Requires InitializeListHead
2017-01-31 17:14:09 +01:00
PatrickvL 5acc167a07 distorm starts to work 2017-01-09 18:27:32 +01:00
PatrickvL a6ec272604 merge 2017-01-09 15:23:25 +01:00
x1nixmzeng 996f71a6df Added stb_image for image decoding 2017-01-07 20:12:38 +00:00
x1nixmzeng ca965c9ea6 Removed libjpeg library 2017-01-07 19:43:04 +00:00
Luke Usher 3a59895402 Merge pull request #86 from x1nixmzeng/kernel-thunks
Io Kernel API stubs for logging
2017-01-07 18:36:12 +00:00
x1nixmzeng 1b96e452bc IofCompleteRequest stub 2017-01-07 13:57:25 +00:00
x1nixmzeng a962f33878 IofCallDriver stub 2017-01-07 13:53:49 +00:00
x1nixmzeng 9ab7947b10 IoMarkIrpMustComplete stub 2017-01-07 13:47:46 +00:00
x1nixmzeng 673b1d9e9a Fixed issues raised by @PatrickvL 2017-01-07 13:32:16 +00:00
x1nixmzeng b27a466b5f IoSynchronousFsdRequest stub 2017-01-07 02:26:04 +00:00
x1nixmzeng 2107c54fb8 IoSynchronousDeviceIoControlRequest stub 2017-01-07 02:20:10 +00:00
x1nixmzeng 3a3430381a Stubs for IoStartNextPacket, IoStartNextPacketByKey, IoStartPacket 2017-01-07 02:13:36 +00:00
x1nixmzeng 7d606c774d IoSetShareAccess stub 2017-01-07 01:57:34 +00:00
x1nixmzeng 3db796f461 IoSetIoCompletion stub 2017-01-07 01:51:14 +00:00
x1nixmzeng 5183b6e1df IoRemoveShareAccess stub 2017-01-07 01:44:03 +00:00
x1nixmzeng e25754ae17 IoQueueThreadIrp stub 2017-01-07 01:39:59 +00:00
x1nixmzeng d551304b9c IoQueryVolumeInformation stub 2017-01-07 01:35:48 +00:00
x1nixmzeng 74afee069e IoQueryFileInformation stub 2017-01-07 01:14:51 +00:00
x1nixmzeng e032edeee2 IoInvalidDeviceRequest stub 2017-01-07 01:10:30 +00:00
x1nixmzeng df3aac9731 IoInitializeIrp stub 2017-01-07 01:06:03 +00:00
x1nixmzeng 50c945ed3b IoFreeIrp stub 2017-01-07 00:56:24 +00:00
x1nixmzeng d79ff8e7cb IoDeleteDevice stub 2017-01-07 00:27:29 +00:00
x1nixmzeng 6bf0d128a5 Fixed existing Io thunk comments 2017-01-07 00:21:16 +00:00
x1nixmzeng b9d12c5182 IoCheckShareAccess stub 2017-01-07 00:14:56 +00:00
x1nixmzeng 2feda48514 IoBuildSynchronousFsdRequest stub 2017-01-06 23:34:23 +00:00
x1nixmzeng 2dd8488607 IoBuildDeviceIoControlRequest stub 2017-01-06 23:29:26 +00:00
x1nixmzeng f01c92afdb IoBuildAsynchronousFsdRequest stub 2017-01-06 23:24:00 +00:00
x1nixmzeng 7acd574f15 IoAllocateIrp stub 2017-01-06 23:18:12 +00:00
Luke Usher dc6ca7661a Implemented HalReadWritePciSpace
On the Xbox this function calls the X86 in/out opcodes, so this implementation calls IORead/IOWrite functions in EmuX86.
Once In/Out opcodes are implemented, they will also be implemented by calling these new IO functions.
2017-01-06 22:16:00 +00:00
Luke Usher f184baade9 Add glew binaries & add a custom build step to copy them to the output directory.
Prevents glew32.dll errors on compiling
2017-01-05 20:52:18 +00:00
PatrickvL e9267222ad Implemented KeConnectInterrupt
Also prevented unimplemented log message in MmClaimGpuInstanceMemory and
added comment headers to all function declarations in kernel.h
2017-01-05 11:21:15 +01:00
PatrickvL 409ef63176 Merge remote-tracking branch 'refs/remotes/origin/master' into LLE_OpenGL 2017-01-04 15:41:13 +01:00
PatrickvL 095fbd1010 Fixed logging of nullptr (plus better logging in RtlAssert) 2017-01-04 15:34:18 +01:00
PatrickvL c9e8176c6c Merge remote-tracking branch 'refs/remotes/Cxbx-Reloaded/master' into LLE_OpenGL 2017-01-04 14:38:06 +01:00
PatrickvL eff09f89ea Review results on Xc* kernel functions 2017-01-04 14:35:20 +01:00
Luke Usher 2fa170a96c Merge pull request #77 from LukeUsher/PVS-Studio
Enable the use of PVS-Studio (Static Code Analysis Tool)
2017-01-04 05:59:51 +00:00
x1nixmzeng 47e04465a1 Added unimplemented stubs for remaining Xc functions 2017-01-03 23:14:52 +00:00
Luke Usher a7bc9adc86 Enable the use of PVS-Studio (Static Code Analysis Tool) for Cxbx-Reloaded.
These comments activate the free for Open Source license for PVS Studio
See http://www.viva64.com/en/b/0457/ for more details.
2017-01-03 20:29:44 +00:00
PatrickvL d3e805260f Imported glew
Downloaded from
https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0-win32.zip/download
(see http://glew.sourceforge.net/index.html)

GitHub mirror on https://github.com/nigels-com/glew
2017-01-03 16:23:05 +01:00
PatrickvL 9ad4449ef9 Emulated EEPROM read/write
Implemented ExQueryNonVolatileSetting and ExSaveNonVolatileSetting using
emulated EEPROM values.
2017-01-03 12:17:20 +01:00
PatrickvL 9459a2d04f Implemented KeLeaveCriticalRegion 2016-12-31 17:31:17 +01:00
PatrickvL c4a61bcf02 Implemented KeEnterCriticalRegion 2016-12-31 17:28:43 +01:00
PatrickvL 29a76be994 Implemented NtQueryMutant 2016-12-31 17:18:21 +01:00
PatrickvL 3516ce8e75 Replaced Zydis with distorm 2016-12-30 18:40:44 +01:00
PatrickvL 6ac5b06bbc Renamed EEPROM_INDEX to XC_VALUE_INDEX
Started porting over all Dxbx Io* kernel signatures
2016-12-30 14:28:52 +01:00
PatrickvL 1e639d98af Implemented RtlUshortByteSwap 2016-12-26 19:51:22 +01:00
PatrickvL 9383e9f6a9 Implemented RtlUpperString 2016-12-26 19:47:35 +01:00
PatrickvL 0c31aeddb4 Implemented RtlUpperChar 2016-12-26 19:41:55 +01:00
PatrickvL cdd8b4dc93 Implemented RtlUpcaseUnicodeToMultiByteN 2016-12-26 19:39:57 +01:00
PatrickvL e01102d8d3 Implemented RtlUpcaseUnicodeString 2016-12-26 18:51:08 +01:00
PatrickvL 6f8a8a728a Implemented RtlUpcaseUnicodeChar 2016-12-26 18:10:20 +01:00
PatrickvL 5e243062d5 Implemented RtlUnicodeToMultiByteSize 2016-12-26 18:02:24 +01:00
PatrickvL a847c1d45c Implemented RtlUnicodeToMultiByteN 2016-12-26 17:45:33 +01:00
PatrickvL c009ff8eb4 Implemented RtlUnicodeStringToInteger 2016-12-26 17:38:49 +01:00
PatrickvL 75eab7a83d Implemented RtlUlongByteSwap 2016-12-26 17:32:08 +01:00
PatrickvL 6a1ae1e42f Implement RtlMultiByteToUnicodeSize 2016-12-26 17:26:30 +01:00
PatrickvL 6b2fa8f984 Implement RtlMultiByteToUnicodeN 2016-12-26 17:21:28 +01:00
PatrickvL d804711bab Implemented RtlMapGenericMask 2016-12-26 16:59:46 +01:00
PatrickvL 023261faf3 Implemented RtlIntegerToUnicodeString 2016-12-26 16:36:27 +01:00
PatrickvL ab33052f5c Implemented RtlIntegerToChar 2016-12-26 16:29:38 +01:00
PatrickvL b1cbc31c1b Implemented RtlFreeUnicodeString 2016-12-26 16:19:50 +01:00
PatrickvL 39a5c64786 Implemented RtlFillMemoryUlong 2016-12-26 16:14:58 +01:00
PatrickvL eb841563de Implemented RtlFillMemory 2016-12-26 13:44:44 +01:00
PatrickvL 7ced0be9e1 Implemented RtlExtendedMagicDivide 2016-12-26 13:33:51 +01:00
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
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 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 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
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 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 570a8743f7 Merge 2016-12-20 13:47:06 +01:00
PatrickvL 2a4158d441 Implemented all kernel Timer functions using NtDLll
Forwarded NtCreateTimer, NtSetTimer, NtQueryTimer, NtCancelTimer to
their respective Nt counterpart.
Declared all required types for this.
Also implemented KeSetEvent minimally.
2016-12-20 13:39:08 +01:00
PatrickvL 923d820227 Kernel improvements
New implementations : IoCreateDevice, KeGetCurrentIrql, NtFsControlFile,
RtlMoveMemory, RtlRip

Updated implementations : HalGetInterruptVector, HalReadSMBusValue,
KeInitializeInterrupt, KeRaiseIrqlToDpcLevel, KeSetBasePriorityThread,
MmAllocateContiguousMemory, NtDeviceIoControlFile, NtDuplicateObject
2016-12-19 17:12:54 +01:00
PatrickvL 58d74eea90 Dug up some more xbox kernel signatures and types 2016-12-19 14:56:52 +01:00
StrikerX3 953e53f42c Added KWAIT_REASON enum 2016-12-15 19:21:39 -02:00
Luke Usher 90ca700df2 Implement one execution path (AV_QUERY_AV_CAPABILITIES) of AvSendTvEncoderOption 2016-12-14 21:38:26 +00:00