xbox_kernel_test_suite icon indicating copy to clipboard operation
xbox_kernel_test_suite copied to clipboard

Xbox kernel APIs tester written using nxdk

xbox kernel test suite

License: GPL v2 GitHub CI

Xbox kernel APIs tester written using the open-source nxdk.

This is a tool for testing the xbox kernel APIs on the hardware to verify their workings. In addition, we have a dedicated wiki page for homebrew kernels that have used this tool to test their kernel implementation.

HOW TO BUILD:

All you need is nxdk. You can get it here: https://github.com/XboxDev/nxdk

Here is a setup guide: https://github.com/XboxDev/nxdk/wiki/Getting-Started

CONFIGURATION FILE:

[!NOTE] The configuration file should be called "config.txt" and should be placed in the same directory of the xbe.

The following list of options can be used inside the config.txt file:

  • seed = <hexadecimal (support up to FFFFFFFF)>
  • tests = <hexadecimal (support up to 17A) or case insensitive API name>[,...]
  • tests-exclude = <hexadecimal (support up to 17A) or case insensitive API name>[,...]
  • disable-video = <boolean>[^1]

[^1]: boolean value can be 1 or 0

[!TIP] This is an example of config.txt:

seed=5

tests=1,25,3,F,NtReadFile

NAME FILE:

[!NOTE] The name file should be called "name.txt" and should be placed in the same directory of the xbe.

Having a name file can help generate individual log files for different hardware and emulators to collect results in the same folder without the need to rename log files every time.

[!TIP] This is an example of name.txt:

retail 1.6

BINARIES:

You can download pre-built bins from here: https://github.com/Cxbx-Reloaded/xbox_kernel_test_suite/releases

USEFUL LINKS:

  • https://xboxdevwiki.net
  • https://github.com/wine-mirror/wine/tree/master/dlls/ntdll/tests
  • https://github.com/wine-mirror/wine/tree/master/dlls/kernel32/tests
  • https://github.com/mirror/reactos/tree/master/rostests/apitests/kernel32
  • https://github.com/mborgerson/xbtests?files=1
  • https://github.com/wine-mirror/wine/blob/master/include/wine/test.h

TODO:

  • Complete the test suite with all xbox kernel APIs (fill in the FIXME stubs).
  • Check the opened issues for any issues or tasks.

ANY HELP IS REALLY WELCOME!