About The Artemus Project

      The Artemus Project is a collection of tools and frameworks for analysis of C# code executing on the Microsoft ® Xbox 360™ platform through XNA Game Studio™. The project may eventually evolve into a generic XNA Game Studio™ code analysis tool compatible with the Windows™ platform, but at this time the focus is Xbox 360™ code analysis. The lack of profiling and code analysis tools currently available for XNA Game Studio™ developers on the Xbox 360™ platform justify this focus.

      There are currently several tools being created for the Artemus Project, all of which are packaged together into a single package. The components are outlined below:

  • Code Server. This component is implemented as an XNA Game Studio™ Xbox 360™ game. It uses the System.Reflection libaries to query the loaded assemblies, types, and methods on the Xbox 360™. Limited memory inspection code is also implemented in the code server, giving it the ability to extract the native PowerPC™ code generated for each non-abstract method. A System Link interface is available through the code server for communication with external analysis tools.
  • Code Analysis Client. This component is a front-end for the Artemus code analysis framework. It reads assembly/type/method data from the code server component and allows developers to analyze the native PowerPC™ code generated for their C# game code. Unlike the components implemented using XNA Game Studio™, this front-end component is written in portable C++ using wxWidgets and is currently running on both Linux and Windows™ platforms. A Mac OSX™ version may be created in the future.
  • Proxy Service. This component is the bridge between the code server component and the code analysis front-end client. It communicates with the code server using System Link networking, and with client front-ends using system sockets. Even though it is an XNA Game Studio™ "game," the proxy service does not require graphics hardware to run and can be executed in a virtualized environment as long as there is a Windows XP™ or Vista™ guest OS..
  • Artemus Runtime Library (libartemus). Though least mature of all current Artemus components, the libartemus library is the core of the Artemus project and is the back-end for the code analysis tools. The library will eventually be capable of analyzing PowerPC™ code dumps from the code server and the original C# game source code for performance and robustness issues. This component is still being designed.