Files
libretro/emulators/xemu.yml
T
Abdessamad Derraz 11da070128 chore: recale the profile refs onto their pins
Upstream moved under 145 profiles: 679 refs shifted and 452 followed a
renamed file, against 6,483 that still anchor where they were written.
The recale rewrites the located ranges only, keeping the annotations and
the sentences that carry them, and 106 pins advance in the same commit
because refs and source_commit name one revision or the profile
describes two at once.

Nothing here was guessed. The 183 refs that are CHANGED, GONE or
AMBIGUOUS are untouched, and the 57 profiles holding them keep their old
pin until someone reads the diff: profile_sync refuses to recale a
profile while any of its refs needs a re-read. trident kept its pin too,
its annotated ref being one the writer will not rewrite.
2026-09-04 14:41:44 +02:00

84 lines
3.2 KiB
YAML

emulator: Xemu
type: standalone
source: "https://github.com/xemu-project/xemu"
logo: "https://raw.githubusercontent.com/xemu-project/xemu/master/data/xemu_64x64.png"
profiled_date: "2026-03-18"
source_commit: "d73326b62199c6dd952ef512947710e1333a49d3"
core_version: "0.8.x"
display_name: "xemu (Xbox)"
cores:
- xemu
systems: [microsoft-xbox]
notes: |
Xemu is a free, open-source Xbox emulator based on QEMU.
Three firmware files are required for operation: MCPX boot ROM,
flash ROM (BIOS), and EEPROM image. A pre-built HDD image is
also needed. The EEPROM can be auto-generated by xemu if not
provided. Config stored in xemu.toml under sys.files section.
files:
- name: "mcpx_1.0.bin"
description: "MCPX HLE boot ROM (v1.0)"
required: true
size: 512
source_ref: "hw/xbox/xbox.c:151 (bootrom_size != 512 -> error)"
config_key: "sys.files.bootrom_path"
note: |
Overlaid on the last 512 bytes of the flash ROM region at boot.
Mapped to 0xFFFFFE00-0xFFFFFFFF. Disabled after early init
via LPC config register write (hw/xbox/xbox_pci.c:362).
Machine property: -machine xbox,bootrom=<path>
- name: "Complex_4627.bin"
description: "Xbox flash ROM / BIOS (256 KB, kernel 4627)"
required: true
size_options: [262144, 524288, 1048576]
size_note: "Must be a multiple of 64 KB. Default 256 KB."
source_ref: "hw/xbox/xbox.c:70-81 (bios_name, bios_size validation)"
config_key: "sys.files.flashrom_path"
note: |
Loaded as -bios argument (system/vl.c:3052-3053).
Mapped to 0xFF000000-0xFFFFFFFF with mirroring.
Common variants: Complex_4627 (1.0), Complex_4034 (debug),
Complex_4817 (1.1). Any valid Xbox BIOS dump works.
- name: "eeprom.bin"
description: "Xbox EEPROM dump (256 bytes)"
required: false
hle_fallback: true
size: 256
source_ref: "system/vl.c:2939 (size != 256 -> error)"
config_key: "sys.files.eeprom_path"
note: |
Loaded via smbus-storage device (hw/xbox/smbus_storage.c:157).
Auto-generated as XBOX_EEPROM_VERSION_R1 if missing
(system/vl.c:2918-2919). Default path: <config_dir>/eeprom.bin.
Contains serial, MAC, HDD key, region, video standard.
Structure defined in hw/xbox/eeprom_generation.h.
- name: "xbox_hdd.qcow2"
description: "Xbox HDD image (8 GB, qcow2 format)"
required: true
source_ref: "system/vl.c:3060-3073 (hdd_path loading)"
config_key: "sys.files.hdd_path"
note: |
Attached as IDE drive index=0 with locked=on.
Must contain Xbox partitions (C, E, X, Y, Z).
Pre-built images available from xemu project.
Not a BIOS file - excluded from retrobios packs.
machine_properties:
bootrom: "MCPX boot ROM path (string)"
avpack: "Video connector type: composite, scart, svideo, vga, rfu, hdtv, none"
short-animation: "Skip Xbox boot animation (bool)"
smc-version: "SMC version string, 3 chars, default P01"
video-encoder: "Video encoder chip: conexant (default), focus, xcalibur"
source_ref: "hw/xbox/xbox.c:446-497"
memory_layout:
ram: "64 MB or 128 MB (configurable via sys.mem_limit)"
flash_rom: "0xFF000000-0xFFFFFFFF (mirrored per bios_size)"
mcpx_overlay: "Last bios_size bytes, overlays flash ROM at reset"
source_ref: "hw/xbox/xbox.c:64-173"