Convert Figma logo to code with AI

xenia-project logoxenia

Xbox 360 Emulator Research Project

8,794
1,202
8,794
295

Top Related Projects

17,242

PlayStation 3 emulator and debugger

34,468

Experimental Nintendo Switch Emulator written in C#

13,959

Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.

13,304

PCSX2 - The Playstation 2 Emulator

Quick Overview

Xenia is an open-source research project and emulator for the Xbox 360 console. It aims to run Xbox 360 games on modern Windows PCs, providing a platform for preservation and study of Xbox 360 software. Xenia is still in development and not all games are playable yet.

Pros

  • Allows playing Xbox 360 games on PC without the need for original hardware
  • Open-source project, promoting transparency and community contributions
  • Supports a wide range of Xbox 360 titles, with ongoing improvements
  • Provides a platform for game preservation and research

Cons

  • Not all games are fully playable or compatible yet
  • Performance can vary depending on the user's hardware
  • Requires relatively powerful hardware for optimal performance
  • Legal concerns regarding game ROMs and copyright issues

Getting Started

To get started with Xenia:

  1. Visit the Xenia releases page on GitHub.
  2. Download the latest release for your system (Windows only).
  3. Extract the downloaded archive to a folder of your choice.
  4. Run xenia.exe to start the emulator.
  5. Load an Xbox 360 game ROM (ISO or XEX file) through the emulator's interface.

Note: Ensure you have the legal right to use any game ROMs you load into Xenia. The project does not provide or endorse the use of illegally obtained game files.

Competitor Comparisons

17,242

PlayStation 3 emulator and debugger

Pros of RPCS3

  • More mature project with a larger community and more frequent updates
  • Supports a wider range of PS3 games with better compatibility
  • More advanced graphics rendering and audio emulation

Cons of RPCS3

  • Higher system requirements for optimal performance
  • More complex setup process for users
  • Larger codebase, potentially making it harder for new contributors

Code Comparison

RPCS3 (C++):

void RSXThread::on_task()
{
    g_fxo->get<rsx::dma_manager>()->init();
    on_frame_begin();
    // ...
}

Xenia (C++):

void GraphicsSystem::Initialize() {
  graphics_driver_ = xe::gpu::CreateGraphicsDriver(provider_);
  if (!graphics_driver_) {
    return;
  }
  // ...
}

Both projects use C++ for their core emulation code, but RPCS3 tends to have more complex implementations due to the intricacies of PS3 hardware emulation. Xenia's codebase is generally more straightforward, reflecting the relatively simpler architecture of the Xbox 360.

34,468

Experimental Nintendo Switch Emulator written in C#

Pros of Ryujinx

  • Better compatibility with a wider range of Nintendo Switch games
  • More frequent updates and active development
  • Supports higher resolution rendering and graphics enhancements

Cons of Ryujinx

  • Generally slower performance compared to Xenia
  • Higher system requirements for optimal emulation
  • Less mature audio emulation

Code Comparison

Ryujinx (C#):

public void Initialize()
{
    _gpu = new GpuContext();
    _cpu = new CpuContext();
    _memory = new MemoryManager();
}

Xenia (C++):

void Initialize() {
  gpu_ = std::make_unique<gpu::GraphicsSystem>();
  cpu_ = std::make_unique<cpu::Processor>();
  memory_ = std::make_unique<Memory>();
}

Both projects use similar initialization patterns, but Ryujinx is written in C# while Xenia uses C++. This difference in programming languages affects performance and development approach. Xenia's use of C++ potentially allows for lower-level optimizations, which may contribute to its generally better performance. However, Ryujinx's C# codebase might be more accessible for contributors familiar with managed languages.

13,959

Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.

Pros of Dolphin

  • More mature project with longer development history and larger community
  • Supports a wider range of GameCube and Wii games
  • Better documentation and user guides

Cons of Dolphin

  • Higher system requirements for optimal performance
  • More complex configuration options may be overwhelming for some users

Code Comparison

Dolphin (C++):

void DSP::Step()
{
  const u64 cycles = m_dsp_core.DSPCore_RunCycles(100);
  m_cycles += cycles;
  UpdateInterrupts();
}

Xenia (C++):

void Processor::Execute(int cycles) {
  auto block = TranslateBlock(guest_pc_);
  if (!block) {
    return;
  }
  block->Execute(this, cycles);
}

Both projects use C++ for their core emulation logic. Dolphin's code appears to focus on cycle-accurate emulation of the GameCube/Wii DSP, while Xenia's code shows a more general approach to executing translated blocks of Xbox 360 code.

Xenia is specifically designed for Xbox 360 emulation, while Dolphin targets GameCube and Wii. This fundamental difference in target platforms leads to distinct architectures and optimization strategies in each project.

13,304

PCSX2 - The Playstation 2 Emulator

Pros of PCSX2

  • Longer development history and more mature codebase
  • Supports a wider range of PS2 games with better compatibility
  • More active community and frequent updates

Cons of PCSX2

  • Higher system requirements for optimal performance
  • More complex configuration process for some games
  • Limited support for upscaling and modern graphics enhancements

Code Comparison

PCSX2 (C++):

void GSState::Flush(u32 frame)
{
    // ... (omitted for brevity)
    m_dev->Flush(m_tr.x, m_tr.y);
    m_perfmon.Put(GSPerfMon::Flush, 1);
}

Xenia (C++):

void CommandProcessor::IssueSwap() {
  // ... (omitted for brevity)
  graphics_system_->FramePresent();
  worker_running_ = false;
}

Both projects use C++ for their core emulation code. PCSX2 focuses on PS2-specific hardware emulation, while Xenia targets Xbox 360 architecture. PCSX2's codebase is more extensive due to its longer development history, while Xenia's code is more modern and streamlined for newer hardware.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Xenia - Xbox 360 Emulator

Xenia is an experimental emulator for the Xbox 360. For more information, see the main Xenia wiki.

Interested in supporting the core contributors? Visit Xenia Project on Patreon.

Come chat with us about emulator-related topics on Discord. For developer chat join #dev but stay on topic. Lurking is not only fine, but encouraged! Please check the FAQ page before asking questions. We've got jobs/lives/etc, so don't expect instant answers.

Discussing illegal activities will get you banned.

Status

BuildbotStatusReleases
WindowsBuild statusLatest ◦ All
LinuxBuild status

Quite a few real games run. Quite a few don't. See the Game compatibility list for currently tracked games, and feel free to contribute your own updates, screenshots, and information there following the existing conventions.

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 and information made public on the internet (you'd be surprised what's indexed on Google...).

Quickstart

See the Quickstart page.

Building

See building.md for setup and information about the xb script. When writing code, check the style guide and be sure to run clang-format!

Contributors Wanted!

Have some spare time, know advanced C++, and want to write an emulator? Contribute! There's a ton of work that needs to be done, a lot of which is wide open greenfield fun.

For general rules and guidelines please see CONTRIBUTING.md.

Fixes and optimizations are always welcome (please!), but in addition to that there are some major work areas still untouched:

See more projects good for contributors. It's a good idea to ask on Discord and check the issues page before beginning work on something.

FAQ

See the frequently asked questions page.