mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-12 13:03:54 -06:00
xemu loads wpcap.dll with a plain LoadLibrary (winpcap-loader/loader.c), and it works only with the Npcap driver, whose installer puts it on the DLL search path. The schema has no marker for a file a separate system install provides, so the entry is unsourceable with that reason. The copy at the BIOS root of RetroBat, RetroDECK and eight other platform lists, which no search order reaches, leaves them.
314 lines
14 KiB
YAML
314 lines
14 KiB
YAML
emulator: xemu
|
|
type: standalone + libretro
|
|
core_classification: community_fork
|
|
source:
|
|
standalone: "https://github.com/xemu-project/xemu"
|
|
libretro: "https://git.libretro.com/libretro/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-11-09"
|
|
source_commit:
|
|
standalone: "25e1ee2fd59a451f2ab57e825b4f8a5414220c8b"
|
|
libretro: "50fc538657f44704e0d1d0906bdc9ef6e435dffe"
|
|
core_version:
|
|
standalone: "v0.8.139-2-g25e1ee2"
|
|
libretro: "0.8.136-53"
|
|
version_basis:
|
|
standalone:
|
|
kind: tag
|
|
match: "v*"
|
|
tag: "v0.8.139"
|
|
distance: 2
|
|
libretro:
|
|
kind: file
|
|
path: "upstream.version"
|
|
pattern: '^(\S+)'
|
|
display_name: "Microsoft - Xbox / Sega Chihiro (xemu)"
|
|
cores:
|
|
- xemu
|
|
- "xemu-sa"
|
|
systems:
|
|
- microsoft-xbox
|
|
- sega-chihiro
|
|
|
|
data_root:
|
|
windows:
|
|
path: "%APPDATA%/xemu/xemu"
|
|
source_ref: "ui/xemu-settings.cc:51-63, 73-92"
|
|
note: "xemu.toml beside xemu.exe makes its folder the root"
|
|
macos:
|
|
path: "~/Library/Application Support/xemu/xemu"
|
|
source_ref: "ui/xemu-settings.cc:51-63, 73-92"
|
|
note: "xemu.toml beside the executable makes its folder the root"
|
|
linux:
|
|
path: "$XDG_DATA_HOME/xemu/xemu, else ~/.local/share/xemu/xemu"
|
|
source_ref: "ui/xemu-settings.cc:51-63, 73-92"
|
|
note: "xemu.toml beside the executable makes its folder the root"
|
|
|
|
notes: |
|
|
Full-system Xbox emulator built on QEMU. The libretro core is built from
|
|
libretro's xemu-libretro tree on its libretro branch, which merges
|
|
Tovarichtch's xemu fork (xemu master with Chihiro support) and keeps the
|
|
core alone: the standalone UI and packaging are removed. upstream.version
|
|
names the upstream version merged. Content is an Xbox disc image (.iso,
|
|
.xiso) or a Chihiro netboot image (.bin), opened from its full path. An
|
|
Xbox disc boots an Xbox, any other image a Chihiro.
|
|
ref: ui/libretro.c:3117-3123, ui/libretro.c:3312-3320
|
|
|
|
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:1373-1393,
|
|
ui/xui/main-menu.cc:1553-1575
|
|
|
|
The core has no option for these paths. It looks for each file in
|
|
system/xemu/, then at the root of the system directory, and keeps the
|
|
first it opens. When none is there the path stays in system/xemu/. The
|
|
flash ROM is tried as Complex_4627v1.03.bin, then Complex_4627.bin. A
|
|
missing boot ROM or flash ROM fails the load. A missing hard disk image
|
|
is written there from the formatted image the core carries
|
|
(data/xbox_hdd.qcow2), and the EEPROM is left to the machine, which
|
|
generates one. Shader caches and patches live in system/xemu/ too.
|
|
ref: ui/libretro.c:3044-3049, ui/libretro.c:3370-3449,
|
|
ui/libretro.c:2088-2105, ui/libretro.c:3361-3367,
|
|
ui/libretro.c:2485
|
|
|
|
A Chihiro boots only its own BIOS, system/xemu/Chihiro/chihiro_xbox_bios.bin,
|
|
which has to be MAME's 512 KiB image (sha1 b700b004). The media board
|
|
flash and the three EEPROMs are read beside it by their MAME names, and a
|
|
missing one, or a BIOS that is not that image, leaves the machine paused
|
|
with a message naming it. The network firmware ver1305.bin is read from
|
|
the same folder when it is there, and only a linked cabinet needs it.
|
|
ref: ui/libretro.c:1782-1795, hw/xbox/chihiro/chihiro.c:2280-2292,
|
|
hw/xbox/chihiro/chihiro.c:2294-2334, hw/xbox/chihiro/chihiro.c:2376-2402,
|
|
hw/xbox/chihiro/chihiro.c:365-380, hw/xbox/chihiro/chihiro.c:490-505
|
|
|
|
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
|
|
mode: standalone
|
|
required: false
|
|
size: 512
|
|
validation: [size]
|
|
config_key: sys.files.bootrom_path
|
|
found_by: content
|
|
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. bootrom_path has no default, so the name is a
|
|
label. qemu_init drops a path that cannot be opened or is not 512 bytes
|
|
and queues an error, and the machine then runs the flash alone, as it
|
|
does when the path is empty.
|
|
source_ref: "system/vl.c:2983-3006, hw/xbox/xbox.c:143-171, hw/xbox/xbox.c:468-470, config_spec.yml:362-366"
|
|
|
|
- name: mcpx_1.0.bin
|
|
mode: libretro
|
|
path: "xemu/mcpx_1.0.bin"
|
|
required: true
|
|
size: 512
|
|
validation: [size]
|
|
description: "MCPX boot ROM"
|
|
note: >-
|
|
Read from system/xemu/mcpx_1.0.bin, else mcpx_1.0.bin at the root of
|
|
the system directory. The core refuses to load when neither is there.
|
|
source_ref:
|
|
libretro: "ui/libretro.c:3370-3415, ui/libretro.c:3418-3427"
|
|
|
|
- name: Complex_4627.bin
|
|
mode: standalone
|
|
required: true
|
|
size: [262144, 524288, 1048576]
|
|
validation: [size]
|
|
size_note: "Any size that is a positive multiple of 64 KiB is mapped, and the image is mirrored across the 16 MB flash window"
|
|
config_key: sys.files.flashrom_path
|
|
found_by: content
|
|
description: "Xbox flash ROM image"
|
|
note: >-
|
|
Passed as -bios and opened through qemu_find_file. flashrom_path has no
|
|
default, so the name is a label. A path that cannot be opened, an empty
|
|
one included, queues an error and clears autostart, so the machine does
|
|
not start. An image whose size is not a multiple of 65536 bytes counts
|
|
as a failed load in the machine: the 256 KB region is filled with 0xFF.
|
|
source_ref: "system/vl.c:2527-2535, system/vl.c:3041-3053, hw/xbox/xbox.c:63-123, config_spec.yml:362-366"
|
|
|
|
- name: Complex_4627.bin
|
|
mode: libretro
|
|
path: "xemu/Complex_4627.bin"
|
|
aliases: [Complex_4627v1.03.bin]
|
|
required: true
|
|
size: [262144, 524288, 1048576]
|
|
validation: [size]
|
|
size_note: "Any size that is a positive multiple of 64 KiB is mapped, and the image is mirrored across the 16 MB flash window"
|
|
description: "Xbox flash ROM image"
|
|
note: >-
|
|
The core tries Complex_4627v1.03.bin, then Complex_4627.bin, in
|
|
system/xemu/ and then at the root of the system directory, and refuses
|
|
to load when none is there.
|
|
source_ref:
|
|
libretro: "ui/libretro.c:3370-3415, ui/libretro.c:3429-3436, hw/xbox/xbox.c:63-123"
|
|
|
|
- name: xbox_eeprom.bin
|
|
path: "xemu/xbox_eeprom.bin"
|
|
standalone_path: eeprom.bin
|
|
aliases: [eeprom.bin]
|
|
required: false
|
|
installed_on: [retrobat]
|
|
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 reads system/xemu/xbox_eeprom.bin, else
|
|
xbox_eeprom.bin at the root of the system directory, and leaves the
|
|
machine to generate system/xemu/xbox_eeprom.bin when neither is there.
|
|
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/libretro.c:3370-3415, ui/libretro.c:1778-1780"
|
|
|
|
- name: xbox_hdd.qcow2
|
|
mode: standalone
|
|
required: false
|
|
installed_on: [batocera, emudeck, recalbox, retrobat, retrodeck, rocknix]
|
|
config_key: sys.files.hdd_path
|
|
found_by: content
|
|
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: the machine starts either way. Snapshots are stored inside the image.
|
|
hdd_path has no default, so the name is a label: it is the file of
|
|
the formatted image the project publishes apart from the xemu release
|
|
(xemu-hdd-image 1.0, xbox_hdd.qcow2.zip), which carries its own
|
|
unsigned dashboard and empty TDATA and UDATA folders. Batocera,
|
|
Recalbox, RetroDECK, EmuDeck and ROCKNIX install that image themselves
|
|
and point hdd_path at it. RetroBat's launcher writes the image it
|
|
carries when the save folder holds none.
|
|
source_ref: "system/vl.c:3060-3074, ui/xemu-snapshots.c:156, config_spec.yml:362-366"
|
|
|
|
- name: xbox_hdd.qcow2
|
|
mode: libretro
|
|
path: "xemu/xbox_hdd.qcow2"
|
|
required: false
|
|
has_builtin: true
|
|
description: "Xbox hard disk image, 8 GB with the retail partition layout"
|
|
note: >-
|
|
Read from system/xemu/, else from the root of the system directory.
|
|
When neither holds one, the core writes the formatted xemu-dashboard
|
|
image it carries to system/xemu/xbox_hdd.qcow2. Game saves live in
|
|
the image.
|
|
source_ref:
|
|
libretro: "ui/libretro.c:3370-3415, ui/libretro.c:3438-3448, ui/libretro.c:2088-2105"
|
|
|
|
# Sega Chihiro, libretro build: system/xemu/Chihiro/, MAME's names.
|
|
- name: "chihiro_xbox_bios.bin"
|
|
mode: libretro
|
|
system: sega-chihiro
|
|
path: "xemu/Chihiro/chihiro_xbox_bios.bin"
|
|
required: true
|
|
size: 524288
|
|
sha1: "b700b0041af8f84835e45d1d1250247bf7077188"
|
|
validation: [size, sha1]
|
|
description: "Chihiro BIOS"
|
|
note: "The only flash image a Chihiro boots. Any other file, or none, leaves the machine paused with a message."
|
|
source_ref:
|
|
libretro: "ui/libretro.c:1785-1789, hw/xbox/chihiro/chihiro.c:2280-2292, system/vl.c:3325-3398"
|
|
|
|
- name: "fpr21042_m29w160et.bin"
|
|
mode: libretro
|
|
system: sega-chihiro
|
|
path: "xemu/Chihiro/fpr21042_m29w160et.bin"
|
|
aliases: ["fpr-23887_29lv160te.ic4", "fpr-23887.bin"]
|
|
required: true
|
|
max_size: 4194304
|
|
validation: [size]
|
|
description: "Chihiro media board flash"
|
|
note: "Read beside the BIOS, then in its parent folder, as fpr21042_m29w160et.bin, fpr-23887_29lv160te.ic4 and fpr-23887.bin in turn (chihiro.c:2321-2323). Up to 4 MiB is accepted. Without it the machine stays paused."
|
|
source_ref:
|
|
libretro: "hw/xbox/chihiro/chihiro.c:2259-2278, hw/xbox/chihiro/chihiro.c:2294-2334, system/vl.c:3325-3398"
|
|
|
|
- name: "ic10_g24lc64.bin"
|
|
mode: libretro
|
|
system: sega-chihiro
|
|
path: "xemu/Chihiro/ic10_g24lc64.bin"
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Chihiro QC EEPROM"
|
|
note: "Read beside the BIOS and refused at any other size. Without it the machine stays paused."
|
|
source_ref:
|
|
libretro: "hw/xbox/chihiro/chihiro.c:2376-2402, system/vl.c:3325-3398"
|
|
|
|
- name: "ic11_24lc024.bin"
|
|
mode: libretro
|
|
system: sega-chihiro
|
|
path: "xemu/Chihiro/ic11_24lc024.bin"
|
|
required: true
|
|
size: 128
|
|
validation: [size]
|
|
description: "Chihiro baseboard EEPROM"
|
|
note: "Read beside the BIOS and refused at any other size. Without it the machine stays paused."
|
|
source_ref:
|
|
libretro: "hw/xbox/chihiro/chihiro.c:2376-2402, system/vl.c:3325-3398"
|
|
|
|
- name: "pc20_g24lc64.bin"
|
|
mode: libretro
|
|
system: sega-chihiro
|
|
path: "xemu/Chihiro/pc20_g24lc64.bin"
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
description: "Chihiro SC EEPROM"
|
|
note: "Read beside the BIOS and refused at any other size. Without it the machine stays paused."
|
|
source_ref:
|
|
libretro: "hw/xbox/chihiro/chihiro.c:2376-2402, system/vl.c:3325-3398"
|
|
|
|
- name: "ver1305.bin"
|
|
mode: libretro
|
|
system: sega-chihiro
|
|
path: "xemu/Chihiro/ver1305.bin"
|
|
required: false
|
|
description: "Chihiro network board firmware 13.05"
|
|
note: "Read when present. The media board reports its version from it, and a linked cabinet runs it on the network board, which cannot start without it."
|
|
source_ref:
|
|
libretro: "ui/libretro.c:1790-1794, hw/xbox/chihiro/chihiro.c:365-380, hw/xbox/chihiro/chihiro.c:490-505"
|
|
|
|
- name: wpcap.dll
|
|
required: false
|
|
unsourceable: "installed by the Npcap driver, which the user installs"
|
|
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, and 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"
|