> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/emoose/xenia/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction to Xenia

> Learn about Xenia, an experimental Xbox 360 emulator for Windows and Linux

## What is Xenia?

Xenia is an experimental emulator for the Xbox 360 console. It is a research and education project focused on understanding and recreating the Xbox 360's hardware and software architecture on modern systems.

<Note>
  This documentation covers the original Xenia fork. For more actively maintained versions, see [xenia-canary](https://github.com/xenia-canary/xenia-canary) or the [mousehook fork](https://github.com/marinesciencedude/xenia-canary-mousehook).
</Note>

## Key Features

Xenia brings several advanced emulation technologies together to enable Xbox 360 game execution:

<CardGroup cols={2}>
  <Card title="PowerPC JIT Compiler" icon="microchip">
    Translates Xbox 360's PowerPC instructions to native x64 code through a sophisticated intermediate representation (HIR)
  </Card>

  <Card title="Xenos GPU Emulation" icon="display">
    Emulates the custom AMD Xenos graphics chip using modern Vulkan or D3D12 backends
  </Card>

  <Card title="Kernel Emulation" icon="gear">
    Full implementation of Xbox 360 kernel functions and system calls for authentic execution
  </Card>

  <Card title="Memory System" icon="memory">
    Accurate virtual and physical memory mapping that mirrors the Xbox 360's memory architecture
  </Card>

  <Card title="VFS Support" icon="folder-open">
    Virtual file system with support for STFS containers, ISO images, and host path mounting
  </Card>

  <Card title="Developer Tools" icon="wrench">
    GPU trace viewer, shader playground, and comprehensive debugging tools
  </Card>
</CardGroup>

## Architecture Overview

Xenia's architecture consists of several key components:

### CPU Emulation

The Xbox 360 uses a 64-bit PowerPC processor running in 32-bit mode. Xenia translates PowerPC instructions through a three-phase process:

1. **Translation to HIR** - PowerPC instructions are converted to Xenia's intermediate representation
2. **HIR Optimization** - Compiler passes optimize and prepare the IR for code generation
3. **x64 Code Generation** - The backend emits native x64 instructions for execution

This JIT (Just-In-Time) compilation approach provides efficient execution while maintaining accuracy.

### GPU Emulation

The Xenos graphics chip is based on AMD's R5xx architecture with custom features for the Xbox 360. Xenia emulates:

* Command buffer processing from DirectX driver ringbuffers
* Shader translation from AMD microcode to SPIR-V (Vulkan) or DXIL (D3D12)
* EDRAM (embedded DRAM) for high-speed framebuffer operations
* Render target and texture management

### Memory Management

Xenia maps Xbox 360 memory ranges to host system memory:

```
0x00000000 - 0x3FFFFFFF (1024mb) - virtual 4k pages
0x40000000 - 0x7FFFFFFF (1024mb) - virtual 64k pages
0x80000000 - 0x9FFFFFFF ( 448mb) - xex executable pages
0xA0000000 - 0xFFFFFFFF (1536mb) - physical memory (overlapped)
```

### Virtual File System

The VFS layer provides access to game data through multiple device types:

* **Disc Image Device** - ISO and XEX file support
* **STFS Container Device** - Xbox 360 Secure Transient File System packages
* **Host Path Device** - Direct file system mounting
* **Null Device** - Special system devices

## Platform Support

### Windows

Windows is the primary development platform with full support:

* Windows 10 or Windows 11
* Visual Studio 2022 with C++ development tools
* Direct3D 12 and Vulkan graphics backends
* Full debugging and profiling support

### Linux

<Warning>
  Linux support is **extremely experimental** and presently incomplete. Many features may not work correctly.
</Warning>

Linux builds require:

* Recent Ubuntu/Debian-based distribution
* Clang 19 or newer
* Vulkan graphics backend only
* GTK3 for windowing

## System Requirements

To run Xenia, you need:

* **64-bit processor** - Required for both building and running
* **Modern GPU** - Vulkan 1.1+ or Direct3D 12 support
* **Updated drivers** - Always use the latest GPU drivers
* **Memory** - At least 4GB RAM, 8GB+ recommended
* **Storage** - Varies by game, typically 5-15GB per game

## Legal & Ethical Considerations

<Warning>
  **Important Disclaimer**

  The goal of this project is to experiment, research, and educate on the topic of emulation of modern devices and operating systems. **It is not for enabling illegal activity**.

  All information is obtained via:

  * Reverse engineering of legally purchased devices and games
  * Public information from Microsoft (XNA Game Studio, presentations, etc.)
  * Information from 3rd party companies (Valve SDKs, etc.)

  **Never** use or reference information from Xbox Development Kits (XDKs).
</Warning>

### Using Xenia Legally

To use Xenia legally:

1. **Own your games** - Only use games you have legally purchased
2. **Dump your own discs** - Create ISO files from your own Xbox 360 discs
3. **No piracy** - Never download or distribute copyrighted game files
4. **No XDK content** - Do not use files from development kits

## Game Compatibility

Xenia's compatibility varies widely by game. Some games run perfectly, while others may have issues or not work at all.

<Note>
  Check the [game compatibility list](https://github.com/xenia-canary/game-compatibility/issues) to see which games are playable and what issues they may have.
</Note>

Common compatibility issues:

* **Graphics artifacts** - Shader translation or render target issues
* **Audio problems** - Sound effects or music may be missing or distorted
* **Performance** - Some games may run slower than native hardware
* **Crashes** - Unimplemented kernel functions or CPU instructions

## Community & Support

### Discord Community

Join the Xenia community on [Discord](https://discord.gg/Q9mxZf9) for:

* Emulator-related discussions
* Help with setup and configuration
* Game compatibility reports
* Development chat in `#dev` channel

<Note>
  Please check the [FAQ](https://github.com/xenia-canary/xenia-canary/wiki/FAQ) before asking questions. Discussing illegal activities will result in a ban.
</Note>

### Contributing

Xenia is open source and welcomes contributions! Areas where help is needed:

* Fixing compatibility issues in games
* Optimizing performance
* Linux platform improvements
* Documentation and testing

See the [Contributing guide](/development/contributing) for more information on how to get involved.

## Next Steps

Ready to get started with Xenia?

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Get Xenia running in minutes
  </Card>

  <Card title="Installation" icon="download" href="/installation">
    Detailed installation instructions
  </Card>

  <Card title="Building from Source" icon="hammer" href="/building/setup">
    Build Xenia yourself
  </Card>

  <Card title="Architecture Deep Dive" icon="sitemap" href="/architecture/overview">
    Learn how Xenia works internally
  </Card>
</CardGroup>
