====== xemu ======
Emulador de la consola Xbox original para Windows, macOS y and Linux.
* [[https://xemu.app/|Sitio web]]
* [[https://github.com/xemu-project/xemu|Repositorio de código]]
* [[https://xemu.app/docs/download/|Documentación oficial]]
* [[https://xemu.app/#compatibility|Lista de compatibilidad]]
===== Ficheros necesarios =====
* Imagen ROM de arranque MCPX. Suele ser un fichero llamado ''mcpx_1.0.bin'' y debe tener el hash MD5 ''196a5f59a13382c185636e691d6c323d''.
* Flash ROM Image (BIOS). Hay que buscar una llamada "COMPLEX 4627".
* Imagen de disco duro. Podemos descargar una desde [[https://github.com/xemu-project/xemu-dashboard/releases/latest/download/xbox_hdd.qcow2|aquí]]
===== Juegos =====
xemu solo admite imagenes de disco en formato ''.xiso''.
Las ISOs de "Redump" son copias del disco de juego. Los discos de juegos de Xbox tiene 2 particiones: la primera es accesible desde un ordenador o reproductor de DVD. Esta partición normalmente contiene un vídeo indicando cómo meter el disco en la Xbox. La segunda partición contiene el juego.
Estas imágenes suelen tener un tamaño de ~7 GB.
xemu no es compatible con este formato, pero es posible extraer la segunda partición del disco y así poder usarla con xemu. Se puede hacer con ''xdvdfs'', ''dd'' o ''fallocate''. Ejemplo con ''dd'':
dd if=game-redump.iso of=game.iso skip=387 bs=1M
Aplicaciones para crear imágenes ''.xiso'':
* [[https://github.com/antangelo/xdvdfs|xdvdfs]]
* [[https://avalaunch.net/qwix/|Qwix]]
===== Controles =====
==== Teclado ====
Si usamos el teclado como mando, está configurado por defecto de la siguiente manera:
^ Teclado ^ Mando Xbox ^
| a | a |
| BACKSPACE | BACK |
| B | B |
| Enter | START |
| X | X |
| 1 | WHITE (sobre la Y) |
| Y | Y |
| 2 | BLACK (sobre la B) |
| ← | DPAD_LEFT |
| 3 | LSTICK |
| ↑ | DPAD_UP |
| 4 | RSTICK |
| → | DPAD_RIGHT |
| 5 | GUIDE (xemu Nav) |
| ↓ | DPAD_DOWN |
Left Right
W = LTrig O = RTrig
E I
S F J L
D K
Si queremos personalizar estos controles, debemos editar el fichero ''xemu.toml''. En Linux, está en ''.local/share/xemu/xemu/xemu.toml''. Tenemos que hacer la configuración en la sección ''[input.keyboard_controller_scancode_map]'':
[input.keyboard_controller_scancode_map]
a = 4
b = 5
x = 27
y = 28
dpad_left = 80
dpad_up = 82
dpad_right = 79
dpad_down = 81
back = 42
start = 40
white = 30
black = 31
lstick_btn = 32
rstick_btn = 33
guide = 34
lstick_up = 8
lstick_left = 22
lstick_right = 9
lstick_down = 7
ltrigger = 26
rstick_up = 12
rstick_left = 13
rstick_right = 15
rstick_down = 14
rtrigger = 18
Para saber a qué tecla corresponde cada número, podemos mirar en [[https://github.com/libsdl-org/SDL/blob/2ef79441701c87c801fe0e1456321a791f4b2faf/include/SDL3/SDL_scancode.h#L52|este fichero]] de la biblioteca SDL.
* https://github.com/xemu-project/xemu/blob/e02e41ccaaceffcad816cfb554dd1195767e952d/config_spec.yml#L61
* https://github.com/libsdl-org/SDL/blob/2ef79441701c87c801fe0e1456321a791f4b2faf/include/SDL3/SDL_scancode.h#L52
==== Mando ====
Probado el [[..:hardware:perifericos:sf30_pro|SF30 Pro]].
===== Jugar =====
Una vez hayamos cargado la imagen de disco del juego al que queramos jugar, tenemos que salir y volver a entrar en el emulador. Es como si físicamente tuviéramos la consola apagada, le metiéramos el juego y luego la encendiésemos para poder jugar.
===== Recursos =====
* [[https://github.com/K3V1991/Xbox-Emulator-Files|Xbox Emulator Files]]
* [[https://myrient.erista.me/files/Redump/Microsoft%20-%20Xbox/|Microsoft Xbox - Redump]]
* [[https://archive.org/details/metal-gear-solid-2-substance-usa|Microsoft Xbox - XEMU Ready Software Collection Part #1]]
* [[https://archive.org/details/microsoft-xbox-xemu.xisoready-software-collection-part-2|Microsoft Xbox - XEMU Ready Software Collection Part #2]]
* [[https://archive.org/details/microsoft-xbox-xemu-ready-software-collection-part-3|Microsoft Xbox - XEMU Ready Software Collection Part #3]]