mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
163 lines
8.0 KiB
YAML
163 lines
8.0 KiB
YAML
emulator: xemu
|
|
type: standalone + libretro
|
|
core_classification: community_fork
|
|
source:
|
|
standalone: "https://github.com/xemu-project/xemu"
|
|
libretro: "https://github.com/LibretroAdmin/xemu-libretro"
|
|
upstream: "https://github.com/xemu-project/xemu"
|
|
logo: "https://raw.githubusercontent.com/xemu-project/xemu/master/data/xemu_64x64.png"
|
|
profiled_date: "2026-09-17"
|
|
source_commit:
|
|
standalone: "f9b14039e5bb56ae2d8f028e31e7cc19f13f7e12"
|
|
libretro: "d9804db79f87f6a6a5548b14ca4a8d5164390338"
|
|
core_version:
|
|
standalone: "0.8.136-49-gf9b14039e5"
|
|
libretro: "libretro-experimental"
|
|
display_name: "Microsoft - Xbox (xemu)"
|
|
cores:
|
|
- xemu
|
|
systems:
|
|
- microsoft-xbox
|
|
|
|
notes: |
|
|
Full-system Xbox emulator built on QEMU. One tree builds the standalone
|
|
application and, with the libretro build option, a core in which a shim
|
|
replaces ui/xemu.c: the QEMU machine runs on its own thread, retro_run pumps
|
|
the RetroPads into the Duke controllers and blits the NV2A surface into the
|
|
frontend's framebuffer through an OpenGL 4.0 core context, and content is a
|
|
.iso or .xiso image that QEMU opens from its full path. Save states are not
|
|
implemented; game saves live inside the hard disk image.
|
|
ref: meson_options.txt:52-53, ui/xemu-libretro.c:1-27,
|
|
ui/xemu-libretro.c:609-617, ui/xemu-libretro.c:680-697,
|
|
ui/xemu-libretro.c:874-876
|
|
|
|
Four files feed the machine through the sys.files block of the
|
|
configuration: the MCPX boot ROM, the flash ROM, the EEPROM and the hard disk
|
|
image. qemu_init turns them into machine arguments: bootrom= on the xbox
|
|
machine, -bios, a smbus-storage device and an IDE drive at index 0 with
|
|
locked=on. The standalone keeps them in xemu.toml, read from the SDL
|
|
preference directory or from the directory of the executable when a
|
|
xemu.toml already sits there, and the file pickers of the settings menu fill
|
|
the four paths; nothing is searched by name and only the EEPROM has a
|
|
default location.
|
|
ref: config_spec.yml:353-367, system/vl.c:2983-3006, system/vl.c:3030-3074,
|
|
ui/xemu-settings.cc:70-133, ui/xemu.c:1382-1402,
|
|
ui/xui/main-menu.cc:1553-1575
|
|
|
|
The core reads the same four files from the frontend system directory, each
|
|
under a name picked by a core option that offers a default and a few
|
|
alternatives, and keeps its configuration as xemu-libretro.toml in that
|
|
directory. The boot ROM, the flash ROM and the disk image are opened before
|
|
the machine starts, and a missing one fails the load with a message naming
|
|
the file. The EEPROM is left to the machine, which generates one.
|
|
ref: ui/xemu-libretro.c:112-127, ui/xemu-libretro.c:139-145,
|
|
ui/xemu-libretro.c:178-236
|
|
|
|
The standalone boots whatever it can. An unreadable flash file or a
|
|
rejected EEPROM clears autostart and queues an error for the HUD, an
|
|
unreadable disk image only queues the error, and an empty boot ROM path
|
|
starts the flash without the overlay.
|
|
ref: system/vl.c:2983-3006, system/vl.c:3030-3039, system/vl.c:3041-3053,
|
|
system/vl.c:3060-3074, hw/xbox/xbox.c:143-165
|
|
|
|
files:
|
|
- name: mcpx_1.0.bin
|
|
path: mcpx_1.0.bin
|
|
required: true
|
|
size: 512
|
|
validation: [size]
|
|
config_key: sys.files.bootrom_path
|
|
description: "MCPX boot ROM"
|
|
note: >-
|
|
Passed as the bootrom machine property and read over the last 512 bytes
|
|
of the flash image, which the machine maps as a writable overlay at the
|
|
top of the address space. qemu_init drops the path with an error when
|
|
the file cannot be opened or is not 512 bytes, and the machine then runs
|
|
the flash alone. The core option xemu_bootrom names the file, default
|
|
mcpx_1.0.bin, with mcpx.bin, MCPX_1.0.bin and boot_rom.bin offered as
|
|
alternatives; the core refuses to load when the chosen file is absent.
|
|
source_ref:
|
|
standalone: "system/vl.c:2983-3006, hw/xbox/xbox.c:143-171, hw/xbox/xbox.c:468-470"
|
|
libretro: "ui/xemu-libretro.c:113-114, ui/xemu-libretro.c:192-193, ui/xemu-libretro.c:210-236"
|
|
|
|
- name: Complex_4627.bin
|
|
path: Complex_4627.bin
|
|
required: true
|
|
size: [262144, 524288, 1048576]
|
|
validation: [size]
|
|
size_note: "Any size that is a positive multiple of 64 KiB is mapped; the image is mirrored across the 16 MB flash window"
|
|
config_key: sys.files.flashrom_path
|
|
description: "Xbox flash ROM image"
|
|
note: >-
|
|
Passed as -bios and opened through qemu_find_file. An image whose size
|
|
is not a multiple of 65536 bytes counts as a failed load, like a missing
|
|
file: the 256 KB region is filled with 0xFF and the machine starts
|
|
anyway. An unreadable path clears autostart in the standalone. The core
|
|
option xemu_flashrom names the file, default Complex_4627.bin, with
|
|
Complex_4627_v1.03.bin, complex_4627.bin, cerbios.bin, Cerbios.bin,
|
|
bios.bin, xbox_bios.bin and Complex.bin offered as alternatives; the
|
|
core refuses to load when the chosen file is absent.
|
|
source_ref:
|
|
standalone: "system/vl.c:3041-3053, hw/xbox/xbox.c:63-123"
|
|
libretro: "ui/xemu-libretro.c:115-118, ui/xemu-libretro.c:195-196, ui/xemu-libretro.c:210-236"
|
|
|
|
- name: xbox_eeprom.bin
|
|
path: xbox_eeprom.bin
|
|
standalone_path: eeprom.bin
|
|
aliases: [eeprom.bin]
|
|
required: false
|
|
has_builtin: true
|
|
size: 256
|
|
validation: [size]
|
|
config_key: sys.files.eeprom_path
|
|
description: "Xbox EEPROM image"
|
|
note: >-
|
|
Attached as the smbus-storage device at address 0x54, which reads the
|
|
whole file at realize and writes it back on every guest write. A missing
|
|
file is generated as a retail 1.0 image with a random serial, MAC, hard
|
|
disk key and online key, the North American region and the NTSC-M video
|
|
standard; a file of any size other than 256 bytes is rejected and
|
|
autostart is cleared. The standalone defaults to eeprom.bin next to
|
|
xemu.toml. The core option xemu_eeprom names the file, default
|
|
xbox_eeprom.bin, with eeprom.bin and EEPROM.bin offered as alternatives,
|
|
and does not check for it before the machine starts.
|
|
source_ref:
|
|
standalone: "system/vl.c:2909-2949, system/vl.c:3030-3039, ui/xemu-settings.cc:135-146, hw/xbox/smbus_storage.c:56-87, hw/xbox/smbus_storage.c:90-128, hw/xbox/smbus_storage.c:155-160, hw/xbox/eeprom_generation.c:93-140"
|
|
libretro: "ui/xemu-libretro.c:119-120, ui/xemu-libretro.c:198-199, ui/xemu-libretro.c:204-209"
|
|
|
|
- name: xbox_hdd.qcow2
|
|
path: xbox_hdd.qcow2
|
|
required: true
|
|
config_key: sys.files.hdd_path
|
|
description: "Xbox hard disk image, 8 GB with the retail partition layout"
|
|
note: >-
|
|
Attached as the IDE drive at index 0 with locked=on when the path is set
|
|
and the file opens; an unreadable file only queues an error and an empty
|
|
path attaches no drive. Snapshots are stored inside the image. The
|
|
project publishes a formatted image carrying its own unsigned dashboard
|
|
and empty TDATA and UDATA folders. The core option xemu_hdd names the
|
|
file, default xbox_hdd.qcow2, with xbox_hdd_8gb.qcow2, hdd.qcow2 and
|
|
xbox_hdd.img offered as alternatives; the core refuses to load when the
|
|
chosen file is absent.
|
|
source_ref:
|
|
standalone: "system/vl.c:3060-3074, ui/xemu-snapshots.c:156"
|
|
libretro: "ui/xemu-libretro.c:121-123, ui/xemu-libretro.c:200-202, ui/xemu-libretro.c:210-236"
|
|
|
|
- name: wpcap.dll
|
|
required: false
|
|
description: "Npcap packet capture library"
|
|
note: >-
|
|
Loaded by name on Windows, with every entry point resolved individually,
|
|
when networking is enabled with the pcap backend; the netdev is not
|
|
created when the library or one of its symbols is missing. Networking is
|
|
off by default and the backend defaults to NAT.
|
|
source_ref: "winpcap-loader/loader.c:79-113, ui/xemu-net.c:68-78, system/vl.c:2870-2875, config_spec.yml:327-335"
|
|
|
|
machine_properties:
|
|
bootrom: "MCPX boot ROM path"
|
|
avpack: "Video connector: scart, hdtv, vga, rfu, svideo, composite, none"
|
|
short-animation: "Skip the boot animation"
|
|
smc-version: "SMC version string, default P01"
|
|
video-encoder: "Encoder presented to the OS: conexant, focus, xcalibur"
|
|
source_ref: "hw/xbox/xbox.c:446-497"
|