# kyokiluna/xenia-edge-afterdark architecture

> Architecture diagram of the GitHub repository kyokiluna/xenia-edge-afterdark, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kyokiluna/xenia-edge-afterdark
- Repository: https://github.com/kyokiluna/xenia-edge-afterdark

## Overview

Xenia Edge Afterdark is an experimental Xbox 360 system emulator, extending inherited CPU, GPU, kernel, UI, and networking foundations toward persistent console services. The principal workflow is launching a title, emulating its execution and device interfaces, and maintaining console-like content and profile state. The README documents major goals and status; sampled source is concentrated in GPU pipeline caching and content storage, so many runtime connections are intentionally shown as unverified rather than asserted as inspected calls.

Main entry points: [`src/xenia/emulator.cc`](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/emulator.cc) (Emulator Lifecycle), [`src/xenia/kernel`](https://github.com/kyokiluna/xenia-edge-afterdark/tree/research/17559-baseline/src/xenia/kernel) (Xbox Kernel), [`src/xenia/kernel/xam/content_manager.cc`](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/xam/content_manager.cc) (Content Manager), [`src/xenia/app/xenia_main.cc`](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/app/xenia_main.cc) (Emulator Entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application and Library"]
  node_entry["Emulator Entry<br/>[xenia_main.cc]"]
  node_library["Game Library<br/>[game_library.cc]"]
  node_metadata[("Title Metadata")]
  node_emulator["Emulator Lifecycle<br/>[emulator.cc]"]
end

subgraph group_execution["Emulation Execution"]
  node_cpu["Xbox CPU<br/>[processor.cc]"]
  node_translation["PPC Translation<br/>[ppc_translator.cc]"]
  node_gpu["Xbox GPU"]
  node_gpu_backends["GPU Backends"]
  node_shader_cache[("Shader Pipelines")]
end

subgraph group_console["Console Services"]
  node_kernel["Xbox Kernel"]
  node_system_ui["Dashboard and Guide"]
  node_audio["Audio Emulation<br/>[audio_system.cc]"]
end

subgraph group_persistence["Persistent State"]
  node_content["Content Manager<br/>[content_manager.cc]"]
  node_storage_driver["Native Storage Driver"]
  node_storage_protocol["Storage Protocol"]
  node_host_storage[("Host Storage<br/>[host_storage.cc]")]
  node_profiles[("Local Profiles<br/>[profile_manager.cc]")]
end

node_user(("Player"))

node_user -.->|"launches"| node_entry
node_entry -.->|"starts"| node_emulator
node_user -.->|"browses"| node_library
node_library -.->|"uses title data"| node_metadata
node_emulator -.->|"runs guest code"| node_cpu
node_cpu -.->|"translates PPC"| node_translation
node_emulator -.->|"emulates graphics"| node_gpu
node_gpu -.->|"dispatches rendering"| node_gpu_backends
node_gpu_backends -->|"creates pipelines"| node_shader_cache
node_emulator -.->|"provides system interfaces"| node_kernel
node_kernel -.->|"supports system UI"| node_system_ui
node_emulator -.->|"emulates audio"| node_audio
node_kernel -->|"manages content"| node_content
node_content -->|"uses host storage"| node_host_storage
node_kernel -.->|"supports storage contracts"| node_storage_driver
node_storage_driver -->|"publishes protocol state"| node_storage_protocol
node_content -.->|"supports profiles"| node_profiles

click node_entry "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/app/xenia_main.cc"
click node_library "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/app/game_library.cc"
click node_metadata "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/app/title_metadata_cache.cc"
click node_emulator "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/emulator.cc"
click node_cpu "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/cpu/processor.cc"
click node_translation "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/cpu/ppc/ppc_translator.cc"
click node_gpu "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/gpu/command_processor.cc"
click node_gpu_backends "https://github.com/kyokiluna/xenia-edge-afterdark/tree/research/17559-baseline/src/xenia/gpu"
click node_shader_cache "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/gpu/vulkan/vulkan_pipeline_cache.cc"
click node_kernel "https://github.com/kyokiluna/xenia-edge-afterdark/tree/research/17559-baseline/src/xenia/kernel"
click node_system_ui "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/base/native_ui_backend_route.cc"
click node_audio "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/apu/audio_system.cc"
click node_content "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/xam/content_manager.cc"
click node_storage_driver "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/native_content_storage_driver.cc"
click node_storage_protocol "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/native_content_storage_protocol.cc"
click node_host_storage "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/base/host_storage.cc"
click node_profiles "https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/xam/profile_manager.cc"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_library,node_metadata,node_emulator toneBlue
class node_cpu,node_translation,node_gpu,node_gpu_backends,node_shader_cache toneAmber
class node_kernel,node_system_ui,node_audio toneMint
class node_content,node_storage_driver,node_storage_protocol,node_host_storage,node_profiles toneRose
class node_user toneIndigo
```

## Components

### Application and Library

- [Emulator Entry](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/app/xenia_main.cc): `src/xenia/app/xenia_main.cc`
- [Game Library](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/app/game_library.cc): `src/xenia/app/game_library.cc`
- [Title Metadata](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/app/title_metadata_cache.cc): `src/xenia/app/title_metadata_cache.cc`
- [Emulator Lifecycle](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/emulator.cc): `src/xenia/emulator.cc`

### Emulation Execution

- [Xbox CPU](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/cpu/processor.cc): `src/xenia/cpu/processor.cc`
- [PPC Translation](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/cpu/ppc/ppc_translator.cc): `src/xenia/cpu/ppc/ppc_translator.cc`
- [Xbox GPU](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/gpu/command_processor.cc): `src/xenia/gpu/command_processor.cc`
- [GPU Backends](https://github.com/kyokiluna/xenia-edge-afterdark/tree/research/17559-baseline/src/xenia/gpu): `src/xenia/gpu`
- [Shader Pipelines](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/gpu/vulkan/vulkan_pipeline_cache.cc): `src/xenia/gpu/vulkan/vulkan_pipeline_cache.cc`

### Console Services

- [Xbox Kernel](https://github.com/kyokiluna/xenia-edge-afterdark/tree/research/17559-baseline/src/xenia/kernel): `src/xenia/kernel`
- [Dashboard and Guide](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/base/native_ui_backend_route.cc): `src/xenia/base/native_ui_backend_route.cc`
- [Audio Emulation](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/apu/audio_system.cc): `src/xenia/apu/audio_system.cc`

### Persistent State

- [Content Manager](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/xam/content_manager.cc): `src/xenia/kernel/xam/content_manager.cc`
- [Native Storage Driver](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/native_content_storage_driver.cc): `src/xenia/kernel/native_content_storage_driver.cc`
- [Storage Protocol](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/native_content_storage_protocol.cc): `src/xenia/kernel/native_content_storage_protocol.cc`
- [Host Storage](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/base/host_storage.cc): `src/xenia/base/host_storage.cc`
- [Local Profiles](https://github.com/kyokiluna/xenia-edge-afterdark/blob/research/17559-baseline/src/xenia/kernel/xam/profile_manager.cc): `src/xenia/kernel/xam/profile_manager.cc`

### Other components

- **Player**

## Connections

- Player → Emulator Entry: launches
- Emulator Entry → Emulator Lifecycle: starts
- Player → Game Library: browses
- Game Library → Title Metadata: uses title data
- Emulator Lifecycle → Xbox CPU: runs guest code
- Xbox CPU → PPC Translation: translates PPC
- Emulator Lifecycle → Xbox GPU: emulates graphics
- Xbox GPU → GPU Backends: dispatches rendering
- GPU Backends → Shader Pipelines: creates pipelines (evidence: `src/xenia/gpu/vulkan/vulkan_pipeline_cache.cc`)
- Emulator Lifecycle → Xbox Kernel: provides system interfaces
- Xbox Kernel → Dashboard and Guide: supports system UI
- Emulator Lifecycle → Audio Emulation: emulates audio
- Xbox Kernel → Content Manager: manages content (evidence: `src/xenia/kernel/xam/content_manager.cc`)
- Content Manager → Host Storage: uses host storage (evidence: `src/xenia/kernel/xam/content_manager.cc`)
- Xbox Kernel → Native Storage Driver: supports storage contracts (evidence: `src/xenia/kernel/native_content_storage_driver.cc`)
- Native Storage Driver → Storage Protocol: publishes protocol state (evidence: `src/xenia/kernel/native_content_storage_driver.cc`)
- Content Manager → Local Profiles: supports profiles
