diff --git a/docs/guides/core-list.md b/docs/guides/core-list.md index 0ef2f12b69..8dff177208 100644 --- a/docs/guides/core-list.md +++ b/docs/guides/core-list.md @@ -267,7 +267,7 @@ | [Vircon32](../library/vircon32.md) | Game engine | A port of Vircon32 game console to libretro | | [Virtual Jaguar](../library/virtual_jaguar.md) | Atari Jaguar | | | [VirtualXT](../library/virtualxt.md) | DOS | Runs PC/XT class software. Mainly intended for PC booters from the 80's. | -| Vita3K | Sony PlayStation Vita | A port of the Vita3K PlayStation Vita emulator to libretro | +| [Vita3K](../library/vita3k.md) | Sony PlayStation Vita | A port of the Vita3K PlayStation Vita emulator to libretro | | [vitaQuake 2](../library/vitaquake2.md) | Game engine | A port of the VitaQuake 2 source port of iD's Quake 2 engine to libretro. There is a separate core for each of the Quake 2 mission packs, 'Rogue', 'Zaero' and 'Xatrix'. | | vitaQuake 2 (Rogue) | Game engine | (See vitaQuake 2 note) | | vitaQuake 2 (Xatrix) | Game engine | (See vitaQuake 2 note) | @@ -277,8 +277,8 @@ | [WQXEmu](../library/wqxemu.md) | Wenquxing Electronic Dictionary | Emulates NC1020, PC1000, CC800, NC2000, and NC3000 models via low-level firmware execution | | [WASM-4](../library/wasm-4.md) | Game engine | WASM-4 is a open source low-level fantasy game console for building small games with WebAssembly | | [X Millennium](../library/x1.md) | Sharp X1 | | -| xemu | Microsoft Xbox | A port of xemu, the original Xbox emulator, to libretro | -| Xenia Edge | Microsoft Xbox 360 | A port of the Xenia Edge Xbox 360 emulator to libretro | +| [xemu](../library/xemu.md) | Microsoft Xbox | A port of xemu, the original Xbox emulator, to libretro | +| [Xenia Edge](../library/xenia_edge.md) | Microsoft Xbox 360 | A port of the Xenia Edge Xbox 360 emulator to libretro | | [XRick](../library/xrick.md) | Game engine | A port of the XRick, an open-source clone of the Rick Dangerous engine | | [YabaSanshiro](../library/yabasanshiro.md) | Sega Saturn | A port of the YabaSanshiro, which is itself a fork of Yabause emulator | | [Yabause](../library/yabause.md) | Sega Saturn | | diff --git a/docs/library/vita3k.md b/docs/library/vita3k.md new file mode 100644 index 0000000000..c681063d1a --- /dev/null +++ b/docs/library/vita3k.md @@ -0,0 +1,218 @@ +# Sony - PlayStation Vita (Vita3K) + +## Background + +A port of [Vita3K](https://vita3k.org/), the experimental PlayStation Vita emulator, to libretro. It is built on current upstream Vita3K and on [danprice142's libretro port](https://github.com/danprice142/Vita3K-libretro), and reports upstream's version. Which games work is the same as in standalone Vita3K; see its [compatibility list](https://vita3k.org/compatibility.html). + +The core is built for Linux (x86_64, arm64), Windows (x64) and Android (arm64-v8a, x86_64). + +The Vita3K core has been authored by + +- Vita3K Team +- danprice142 +- WizzardSK + +The Vita3K core is licensed under + +- [GPLv2](https://github.com/WizzardSK/vita3k-libretro/blob/libretro/COPYING.txt) + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Requirements + +A 64-bit CPU and a GPU with Vulkan 1.1 support. The core renders on RetroArch's own Vulkan device, so set RetroArch's video driver to `vulkan`. The **Backend Renderer** core option also offers OpenGL, which needs the `glcore` video driver. + +## BIOS + +The core needs the PS Vita system software (firmware), which is not included with it. Download the packages from PlayStation's website and put them in a `vita3k` folder in RetroArch's system directory. The core installs them the first time it starts. + +| Filename | Description | md5sum | +|:---------------------:|:-------------------------------------------------:|:------:| +| PSP2UPDAT.PUP | PS Vita system firmware - Required | - | +| PSP2UPDAT_PREINST.PUP | PS Vita firmware preinstalled package - Required | - | +| PSP2UPDAT_FONT.PUP | PS Vita firmware fonts - Optional | - | + +The preinstalled and font packages are also accepted under the names they are downloaded with, `preinst_fresh.pup` and `font_fresh.pup`. + +The core also needs its own data files: the `data` and `shaders-builtin` folders that come with the core's release go in `system/vita3k/` too. + +## Extensions + +Content that can be loaded by the Vita3K core have the following file extensions: + +- .vpk +- .zip +- .pkg +- .bin + +A game is loaded as a `.vpk` or `.zip` archive, or from a game folder through its `eboot.bin`. It is installed into `system/vita3k/` the first time it is started, and started from there afterwards. + +A `.pkg` (a game, its update or its DLC) needs its license next to it: `.zrif`, `.rif`, `work.bin` or `.rif`. The **Game PKG** core option chooses whether a game's PKG is run straight from the file or installed first. + +## Features + +Frontend-level settings or features that the Vita3K core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✔ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](../guides/softpatching.md) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +Games save to the emulated console's memory card under `system/vita3k/ux0/`, not to RetroArch save files. Save states are not supported. + +## Directories + +The Vita3K core's library name is 'Vita3K'. + +**Frontend's System directory** + +- `vita3k/PSP2UPDAT.PUP`, `vita3k/PSP2UPDAT_PREINST.PUP`, `vita3k/PSP2UPDAT_FONT.PUP` (firmware packages) +- `vita3k/data/`, `vita3k/shaders-builtin/` (the core's data files) +- `vita3k/ux0/` (the emulated memory card: installed games, updates, DLC and saves) + +## Core options + +The Vita3K core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +#### GPU + +- **Backend Renderer** [vita3k_backend_renderer] (**Vulkan**|OpenGL) + + Select the graphics backend. Vulkan is recommended. + +- **Internal Resolution Multiplier** [vita3k_resolution_multiplier] (**1x (960x544)**|2x (1920x1088)|3x (2880x1632)|4x (3840x2176)) + + Multiplier for the internal rendering resolution (960x544 base). + +- **Screen Filter** [vita3k_screen_filter] (**Bilinear**|Nearest|Bicubic|FXAA|FSR) + + Post-processing filter applied to the rendered frame. + +- **Anisotropic Filtering** [vita3k_anisotropic_filtering] (**1x (Off)**|2x|4x|8x|16x) + + Level of anisotropic texture filtering. + +- **V-Sync** [vita3k_v_sync] (**ON**|OFF) + + Enable or disable vertical sync. + +- **Async Pipeline Compilation** [vita3k_async_pipeline] (**ON**|OFF) + + Compile shader pipelines asynchronously to reduce stuttering. + +- **Memory Mapping** [vita3k_memory_mapping] (OFF|**Double Buffer**|External Host|Page Table|Native Buffer) + + GPU memory mapping method. Higher methods improve performance but require GPU support. + +- **High Accuracy Rendering** [vita3k_high_accuracy] (**OFF**|ON) + + Enable more accurate but slower rendering techniques. + +- **Surface Sync** [vita3k_surface_sync] (**Enabled (more accurate)**|Disabled (faster)) + + GPU memory optimization. May improve performance by 20-40%. + +#### CPU + +- **CPU Optimizations (Dynarmic JIT)** [vita3k_cpu_opt] (**ON**|OFF) + + Enable Dynarmic JIT for faster CPU emulation. + +#### System + +- **Game PKG** [vita3k_pkg_mode] (**Run Without Installing**|Install) + + How a game's PKG is run. Run Without Installing: the game starts in seconds, and a file is decrypted from the PKG the first time the game reads it, into the system folder; it is all removed when the game is closed. Install: the whole game is decrypted and installed into ux0/app the first time, as Vita3K does, which takes as long as the game is big and uses its size on disk. A game installed already runs from its installation either way. Updates and DLC are always installed. + +- **PS TV Mode** [vita3k_pstv_mode] (**OFF**|ON) + + Emulate a PlayStation TV instead of a PS Vita. + +- **Modules Mode** [vita3k_modules_mode] (**Automatic**|Auto & Manual|Manual) + + How system modules are loaded. Automatic is recommended. + +- **FPS Hack (30 to 60)** [vita3k_fps_hack] (**OFF**|ON) + + Attempt to run 30fps-locked games at 60fps. May cause issues. + +- **Confirm Button** [vita3k_sys_button] (Circle|**Cross**) + + Which button is used for confirm actions. + +- **File Loading Delay** [vita3k_file_loading_delay] (**0 ms**|5 ms|10 ms|15 ms|20 ms|25 ms|30 ms) + + Delay in milliseconds for file loading. Helps with timing-sensitive games. + +#### Audio + +- **Audio Volume** [vita3k_audio_volume] (0%|10%|20%|30%|40%|50%|60%|70%|80%|90%|**100%**) + + Master audio volume level. + +- **NGS Audio Engine** [vita3k_ngs_enable] (**ON**|OFF) + + Enable the NGS audio engine for enhanced audio. + +#### Network + +- **PSN Signed In** [vita3k_psn_signed_in] (**OFF**|ON) + + Pretend to be signed in to PSN. Required by some games. + +## Controllers + +The PS Vita's own controls are on RetroArch's first port; ports two to four are the extra controllers of PS TV Mode. The touchscreen follows the frontend's pointer (mouse or touchscreen): it touches the front screen, or the rear touch pad while L2 is held. The motion sensors use the frontend's accelerometer and gyroscope where the device has them. + +## Joypad + +| RetroPad Inputs | PS Vita | +|------------------------------------------------|--------------------| +| ![](../image/retropad/retro_b.png) | Cross | +| ![](../image/retropad/retro_a.png) | Circle | +| ![](../image/retropad/retro_y.png) | Square | +| ![](../image/retropad/retro_x.png) | Triangle | +| ![](../image/retropad/retro_select.png) | Select | +| ![](../image/retropad/retro_start.png) | Start | +| ![](../image/retropad/retro_dpad_up.png) | D-Pad Up | +| ![](../image/retropad/retro_dpad_down.png) | D-Pad Down | +| ![](../image/retropad/retro_dpad_left.png) | D-Pad Left | +| ![](../image/retropad/retro_dpad_right.png) | D-Pad Right | +| ![](../image/retropad/retro_l1.png) | L | +| ![](../image/retropad/retro_r1.png) | R | +| ![](../image/retropad/retro_l2.png) | L2 (PS TV mode) | +| ![](../image/retropad/retro_r2.png) | R2 (PS TV mode) | +| ![](../image/retropad/retro_l3.png) | L3 (PS TV mode) | +| ![](../image/retropad/retro_r3.png) | R3 (PS TV mode) | +| ![](../image/retropad/retro_left_stick.png) | Left stick | +| ![](../image/retropad/retro_right_stick.png) | Right stick | + +## External Links + +- [Vita3K Core info file](https://github.com/WizzardSK/vita3k-libretro/blob/libretro/vita3k_libretro.info) +- [Vita3K libretro GitHub Repository](https://github.com/WizzardSK/vita3k-libretro) +- [Report Vita3K Core Issues Here](https://github.com/WizzardSK/vita3k-libretro/issues) +- [Upstream Vita3K](https://github.com/Vita3K/Vita3K) +- [Vita3K Website](https://vita3k.org/) diff --git a/docs/library/xemu.md b/docs/library/xemu.md new file mode 100644 index 0000000000..3a871d5de1 --- /dev/null +++ b/docs/library/xemu.md @@ -0,0 +1,188 @@ +# Microsoft - Xbox (xemu) + +## Background + +A port of [xemu](https://xemu.app), the original Xbox emulator, to libretro. The emulator is upstream's: the core follows [xemu-project/xemu](https://github.com/xemu-project/xemu) and reports upstream's version. It is experimental. + +The core is built for Linux (x86_64, arm64), Windows (x64), macOS (Apple Silicon, Intel) and Android (arm64-v8a, x86_64). + +The xemu core has been authored by + +- xemu-project team +- Matt Borgerson +- WizzardSK + +The xemu core is licensed under + +- [GPLv2](https://github.com/WizzardSK/xemu-libretro/blob/libretro/LICENSE) + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Requirements + +A 64-bit CPU and a GPU with OpenGL 4.0 (core profile) or Vulkan 1.1 support. The **Graphics API** core option picks the renderer, Vulkan by default; a change takes effect after RetroArch is restarted. + +* On Android the core renders with Vulkan only. +* On macOS it renders with OpenGL only: MoltenVK has no geometry shaders, which xemu's Vulkan renderer needs. Use RetroArch's `glcore` video driver there. + +## BIOS + +The core needs the console's boot ROM and BIOS and a hard disk image, none of which are included with it. Put them in an `xemu` folder in RetroArch's system directory. + +| Filename | Description | md5sum | +|:---------------------:|:---------------------------------------------:|:--------------------------------:| +| mcpx_1.0.bin | MCPX boot ROM, 512 bytes - Required | d49c52a4102f6df7bcf8d0617ac475ed | +| Complex_4627v1.03.bin | Flash ROM (BIOS), 1 MB or 256 KB - Required | - | +| xbox_hdd.qcow2 | Hard disk image - Required | - | +| xbox_eeprom.bin | EEPROM - Optional, created when it is missing | - | + +The boot ROM and the BIOS are Microsoft's and have to be dumped from your own console; see xemu's [required files](https://xemu.app/docs/required-files/). A ready-made hard disk image is published by the xemu project as [xemu-hdd-image](https://github.com/xemu-project/xemu-hdd-image/releases). + +## Extensions + +Content that can be loaded by the xemu core have the following file extensions: + +- .iso +- .xiso + +Games are loaded as XISO images, the format made by tools such as extract-xiso. A plain redump `.iso` of an Xbox disc has to be converted to XISO first. + +## Features + +Frontend-level settings or features that the xemu core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](../guides/softpatching.md) | ✕ | +| Disk Control | ✕ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +Games save to the emulated console's hard disk, inside `xbox_hdd.qcow2`, not to RetroArch save files. Save states are not supported. + +## Directories + +The xemu core's library name is 'xemu'. + +**Frontend's System directory** + +- `xemu/mcpx_1.0.bin`, `xemu/Complex_4627v1.03.bin` (boot ROM and BIOS) +- `xemu/xbox_hdd.qcow2` (hard disk image, which holds the game saves) +- `xemu/xbox_eeprom.bin` (EEPROM) + +## Core options + +The xemu core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +#### System + +- **System Memory (MB)** [xemu_memory] (**64 MB**|128 MB) + + Amount of system RAM. 64 MB is standard; 128 MB is used by debug kits. + +- **Network Backend** [xemu_network_backend] (**Disabled**|NAT) + + Enable network support for Xbox games with LAN/System Link features. NAT backend provides basic connectivity. + +- **Skip Boot Animation** [xemu_skip_boot_anim] (**Disabled**|Enabled) + + Skip the Xbox boot animation. + +- **Hardware FPU Emulation** [xemu_hard_fpu] (**Enabled**|Disabled) + + Use host FPU for x87 emulation. Faster but may have minor inaccuracies. + +#### Video + +- **Graphics API (Restart)** [xemu_renderer] (**Vulkan**|OpenGL) + + The renderer the emulated GPU is drawn with. Vulkan is the default; OpenGL is the fallback for drivers where Vulkan misbehaves. Takes effect after RetroArch is restarted. Android always uses Vulkan, macOS always OpenGL. + +- **Aspect Ratio** [xemu_aspect_ratio] (**Auto**|4:3|16:9) + + The shape the picture is shown in. Auto follows the game: 16:9 when it switches the console to widescreen (Widescreen has to be on in the dashboard's video settings), 4:3 otherwise. Choose 16:9 for a game that renders widescreen but is shown squashed. + +- **Internal Resolution Scale** [xemu_surface_scale] (**1x (640x480)**|2x (1280x960)|3x (1920x1440)|4x (2560x1920)|5x (3200x2400)|6x (3840x2880)|7x (4480x3360)|8x (5120x3840)|9x (5760x4320)|10x (6400x4800)) + + Scales the internal rendering resolution. Higher values improve quality but reduce performance. + +- **AV Pack** [xemu_avpack] (**HDTV**|Composite|S-Video|SCART|VGA) + + Select the AV pack type. Affects available video modes. + +- **Shader Cache** [xemu_cache_shaders] (**Enabled**|Disabled) + + Cache compiled GPU shaders to disk. Reduces stutter on subsequent runs. + +- **Reduced Vulkan Buffers (Restart)** [xemu_vk_reduced_buffers] (**Enabled**|Disabled) + + The Vulkan renderer reserves its work buffers when it starts, whatever the game needs. Enabled keeps the buffer for inline vertex data at a tenth of xemu's size, which takes about 1.2 GB less video memory and as much less system memory. Disabled reserves xemu's full size on graphics cards with 4 GB or more; try it if a game is slower with this enabled. + +- **Display Filtering** [xemu_display_filtering] (**Bilinear**|Nearest Neighbor) + + Texture filtering mode for the display output. + +#### Audio + +- **APU DSP Emulation** [xemu_use_dsp] (**Disabled**|Enabled) + + Enable DSP emulation for improved audio accuracy. May impact performance. + +- **Audio Volume Limit (%)** [xemu_audio_volume] (**100%**|80%|60%|40%|20%|Muted) + + Limit Xbox audio output volume independently from RetroArch master volume. + +## Controllers + +Up to four Xbox controllers, one per RetroArch port. Rumble goes through the frontend's rumble interface. + +## Joypad + +| RetroPad Inputs | Xbox controller | +|------------------------------------------------|--------------------| +| ![](../image/retropad/retro_b.png) | A | +| ![](../image/retropad/retro_a.png) | B | +| ![](../image/retropad/retro_y.png) | X | +| ![](../image/retropad/retro_x.png) | Y | +| ![](../image/retropad/retro_select.png) | Back | +| ![](../image/retropad/retro_start.png) | Start | +| ![](../image/retropad/retro_dpad_up.png) | D-Pad Up | +| ![](../image/retropad/retro_dpad_down.png) | D-Pad Down | +| ![](../image/retropad/retro_dpad_left.png) | D-Pad Left | +| ![](../image/retropad/retro_dpad_right.png) | D-Pad Right | +| ![](../image/retropad/retro_l1.png) | White | +| ![](../image/retropad/retro_r1.png) | Black | +| ![](../image/retropad/retro_l2.png) | Left Trigger | +| ![](../image/retropad/retro_r2.png) | Right Trigger | +| ![](../image/retropad/retro_l3.png) | Left Stick click | +| ![](../image/retropad/retro_r3.png) | Right Stick click | +| ![](../image/retropad/retro_left_stick.png) | Left stick | +| ![](../image/retropad/retro_right_stick.png) | Right stick | + +## External Links + +- [xemu Core info file](https://github.com/WizzardSK/xemu-libretro/blob/libretro/ui/xemu_libretro.info) +- [xemu libretro GitHub Repository](https://github.com/WizzardSK/xemu-libretro) +- [Report xemu Core Issues Here](https://github.com/WizzardSK/xemu-libretro/issues) +- [Upstream xemu](https://github.com/xemu-project/xemu) +- [xemu Website](https://xemu.app) diff --git a/docs/library/xenia_edge.md b/docs/library/xenia_edge.md new file mode 100644 index 0000000000..ce31f0da30 --- /dev/null +++ b/docs/library/xenia_edge.md @@ -0,0 +1,351 @@ +# Microsoft - Xbox 360 (Xenia Edge) + +## Background + +A port of [Xenia Edge](https://github.com/has207/xenia-edge), an Xbox 360 emulator, to libretro. The emulator is upstream's: the core follows xenia-edge and reports upstream's version. It is experimental. + +The core is built for Linux (x86_64, arm64), Windows (x64), macOS (Apple Silicon) and Android (arm64-v8a, x86_64). There is no build for Intel Macs: the x64 CPU backend needs the address space below 4 GB, which a core loaded into a frontend cannot free. + +The Xenia Edge core has been authored by + +- Xenia team +- has207 (Xenia Edge) +- WizzardSK + +The Xenia Edge core is licensed under + +- [BSD](https://github.com/WizzardSK/xenia-libretro/blob/libretro/LICENSE) + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Requirements + +A 64-bit CPU and a GPU with Vulkan 1.1 support, or Direct3D 12 on Windows. The **Graphics API** core option picks Xenia's GPU backend. The core asks the frontend for that kind of context, and RetroArch switches its video driver to match when it is allowed to (`Settings > Video > Output`); otherwise set the video driver to `vulkan` (or `d3d12`) yourself. + +* On Windows the core needs the Visual C++ 2015-2022 runtime. Direct3D 12 runs on the system's Direct3D 12 runtime. +* On Linux the core needs glibc 2.35 or newer. + +## BIOS + +The Xenia Edge core does not need any BIOS or firmware. + +## Extensions + +Content that can be loaded by the Xenia Edge core have the following file extensions: + +- .iso +- .xex +- .zar +- .xcp +- .m3u + +A game is loaded as a disc image (`.iso`), as its executable (`.xex`) from an extracted game, or as a `.zar` or `.xcp` package. For a game on several discs, an `.m3u` playlist lists its disc images, one per line and relative to the playlist's folder, and the discs are changed with the frontend's disc control. + +## Setup + +Everything the core keeps is in a `Xenia-Edge` folder in RetroArch's system directory: + +``` +retroarch/ +└── system/ + └── Xenia-Edge/ + ├── content/ (saves, title updates and DLC, laid out as in standalone Xenia) + ├── cache/ (shader and other caches) + ├── xbl_profilename.txt (name of the profile the core creates) + └── xenia.log (Xenia's own log) +``` + +* Title updates and DLC are used from `content/`, where standalone Xenia keeps them. The **Apply Title Updates** core option turns updates off. +* Games that need a signed-in profile get one: the core signs in the first profile under `content/`, or creates one when there is none. The new profile is named after the first line of `xbl_profilename.txt` ("Player" when the file is missing, and the core then writes it). +* Errors and warnings from `xenia.log` also appear in RetroArch's log. + +## Features + +Frontend-level settings or features that the Xenia Edge core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✔ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](../guides/softpatching.md) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +Games save to the emulated console's storage (`content/`), not to RetroArch save files. Save states are not supported. + +## Directories + +The Xenia Edge core's library name is 'Xenia Edge'. + +**Frontend's System directory** + +- `Xenia-Edge/` (saves, title updates, DLC, caches, `xenia.log`) + +## Core options + +The Xenia Edge core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. Direct3D 12 is offered by **Graphics API** on Windows only. + +#### Graphics Settings + +- **Graphics API (Restart)** [xenia_graphics_api] (**Vulkan**|Direct3D 12) + + The GPU backend Xenia emulates the Xbox 360 GPU with, and the context the core asks RetroArch for: RetroArch changes its video driver to match when it is allowed to (Settings > Video > Output). Applies when the content is loaded again. + +- **Render Target Path** [xenia_render_target_path] (**Performance**|Accuracy) + + Select render target emulation mode. Performance: host render targets with fixed-function blending. Accuracy: pixel shader interlock / rasterizer-ordered views. + +- **Draw Resolution Scale (Restart)** [xenia_draw_resolution_scale] (**1x (Native 720p)**|2x (1440p)|3x (2160p/4K)|4x|5x|6x|7x|8x) + + Scale the internal rendering resolution. Higher values improve image quality but require more GPU power. Requires restart. + +- **Anisotropic Filtering** [xenia_anisotropic_filtering] (**Default (Game)**|Off|2x|4x|8x|16x) + + Override anisotropic filtering level for all textures. 'Default' uses the game's own settings. + +- **Async Shader Compilation** [xenia_async_shader_compilation] (**ON**|OFF) + + Compile shaders in background threads. Reduces stutter but may cause brief rendering artifacts. + +- **Readback Resolve** [xenia_readback_resolve] (**ON**|OFF) + + Copy render-to-texture output back into guest RAM when the CPU accesses it. Off breaks games that read it back. + +- **Store Shaders** [xenia_store_shaders] (**ON**|OFF) + + Store compiled shaders persistently to avoid recompilation stutter on subsequent runs. + +- **Half-Pixel Offset** [xenia_half_pixel_offset] (**ON**|OFF) + + Enable D3D9-style half-pixel offset. Correct for most games. Disable if you see shifted/blurry rendering. + +- **Allow Invalid Fetch Constants** [xenia_gpu_allow_invalid_fetch_constants] (**ON**|OFF) + + Allow texture/vertex fetch constants with invalid type. May fix crashes in some games but is generally unsafe. + +- **Fuzzy Alpha Epsilon (NVIDIA Fix)** [xenia_use_fuzzy_alpha_epsilon] (**OFF**|ON) + + Use approximate alpha comparison to prevent flickering on NVIDIA GPUs. + +- **Emulated Display Refresh Rate** [xenia_display_refresh] (**NTSC (60Hz)**|PAL (50Hz)) + + The refresh rate of the TV the game thinks it is on, as standalone's option. NTSC (60 Hz) is the console's. PAL (50 Hz) is a PAL TV: games run at 50 frames a second. Unlock Framerate overrides this. + +- **Wait for the Game's Frame** [xenia_wait_for_frame] (**OFF**|ON) + + Removes 1 frame of input lag at the possible cost of the game slowing down. + +- **Unlock Framerate** [xenia_unlock_framerate] (**OFF**|Listed games|30 fps games at 60|60 fps games at 120|Uncapped) + + Only for games whose logic is not tied to their frame rate, else they run too fast. 30 fps games at 60: two vblanks for each frame RetroArch shows. 60 fps games at 120: the core at 120 frames a second (set RetroArch and the display up for it). Uncapped: vblanks as fast as possible. Listed games: the rate system/Xenia-Edge/xenia_framerate_unlock.txt gives the running game, if it lists it. Can be changed while a game runs. + +#### Video Settings + +- **Internal Display Resolution (Restart)** [xenia_internal_display_resolution] (640x480|640x576|720x480|720x576|800x600|848x480|1024x768|1152x864|**1280x720 (Default)**|1280x768|1280x1024|1360x768|1440x900|1680x1050|1920x540|1920x1080) + + Allow games that support multiple resolutions to render at a specific resolution. Not all games support this. + +- **Widescreen (16:9)** [xenia_widescreen] (**16:9 Widescreen**|4:3 Standard) + + Toggle between 16:9 widescreen and 4:3 standard aspect ratio. + +- **Video Standard** [xenia_video_standard] (**NTSC**|NTSC-J (Japan)|PAL) + + Select the video signal standard. Affects region detection. + +- **Display Gamma** [xenia_display_gamma] (Linear|sRGB (CRT)|**BT.709 (HDTV)**) + + Select display gamma curve. BT.709 (HDTV) is closest to Xbox 360 on a modern display. + +#### Audio Settings + +- **Audio Output** [xenia_audio_enabled] (**ON**|OFF) + + Enable or disable audio processing and output. + +- **Mute Audio** [xenia_mute] (**OFF**|Enabled (Muted)) + + Mute all audio output while keeping audio processing active. + +- **Audio Channels (Restart)** [xenia_audio_channels] (**Stereo**|Surround 5.1) + + Stereo: the console's 5.1 folded down to two channels. Surround 5.1: all six channels to RetroArch, whose audio output layout then decides between speakers and a fold-down. Needs a RetroArch with multi-channel audio output, else stays stereo. + +- **XMA Decoder (Restart)** [xenia_xma_decoder] (**New (Default)**|Old|Master|Fake (Silence)) + + Select the XMA audio decoder implementation. Try a different option if audio is broken in a specific game. + +- **Dedicated XMA Thread** [xenia_dedicated_xma_thread] (**OFF**|ON) + + Use a dedicated thread for XMA audio decoding. May improve audio performance. + +- **Music Player (XMP)** [xenia_enable_xmp] (**ON**|OFF) + + Enable the Xbox Music Player for background music playback. + +- **Music Player Volume** [xenia_xmp_default_volume] (0%|10%|20%|30%|40%|50%|60%|70%|80%|90%|**100% (Default)**) + + Default music volume if the game doesn't set it. + +#### Emulation Settings + +- **Emulation Speed** [xenia_time_scalar] (0.25x|0.5x|**1.0x (Normal)**|2.0x|4.0x) + + Control emulation speed. 1.0x is normal speed. + +- **Apply Title Updates** [xenia_title_updates] (**ON**|OFF) + + Apply title update patches if available in the content directory. + +- **Apply Game Patches** [xenia_apply_patches] (**ON**|OFF) + + Enable custom game patching functionality. + +- **Dialog Notifications** [xenia_dialog_notifications] (**ON**|OFF) + + A system dialog a game opens (a message box with buttons) has no window in the core, so the core answers it and shows the dialog's title and the answer given as a notification. Disabled hides those notifications; the dialogs are answered the same, and Xenia's log still records them. + +- **License Mask** [xenia_license_mask] (**None**|Full|All) + + Set license mask for activated content (DLC, full version). None: no licenses. Full: first license. All: all licenses. + +- **User Language** [xenia_user_language] (**English**|Japanese|German|French|Spanish|Italian|Korean|Traditional Chinese|Portuguese|Simplified Chinese|Polish|Russian) + + Set the emulated console language. + +- **User Country** [xenia_user_country] (**United States**|Great Britain|Japan|Germany|France|Spain|Italy|Australia|Canada|Brazil|Korea|China|Mexico|Netherlands|Russia|Sweden|Poland|Portugal|Taiwan|Hong Kong) + + Set the emulated console country/region. + +#### Compatibility Settings + +- **Protect Zero Page** [xenia_protect_zero] (**ON**|OFF) + + Protect the zero page from reads and writes. Disable if a game crashes on startup. + +- **Clear GPU Memory Page State** [xenia_clear_memory_page_state] (**OFF**|ON) + + Refresh state of memory pages for GPU written data. Off by default, as on standalone; some games need it on to render right (Ridge Racer 6, and the others xenia-manager's optimized settings list). + +- **Disable Context Promotion** [xenia_disable_context_promotion] (**Disabled (Normal)**|Enabled (Sports Fix)) + + Disable context promotion CPU optimization. May be needed for some sports games, but reduces performance. + +- **Mount Cache Partition** [xenia_mount_cache] (**ON**|OFF) + + Enable cache partition mount. Required by some games. + +- **Mount Scratch Partition** [xenia_mount_scratch] (**OFF**|ON) + + Enable scratch partition mount. Required by some games. + +- **Occlusion Query** [xenia_occlusion_query] (**Fast**|Fake|Fast-alt|Strict) + + How occlusion queries (lens flares, culling, auto-exposure) are answered. Fast (default) asks the GPU without waiting; Fake writes a made-up result; Fast-alt keeps cached zero results; Strict waits for the GPU, most accurate. + +- **Occlusion Query Full Counters** [xenia_occlusion_query_full_counters] (**OFF**|ON) + + Emulate the ZFail, StencilFail and Total occlusion counters in shaders. Some games need them; costs performance. + +- **Fake Occlusion Lower Threshold** [xenia_occlusion_query_fake_lower_threshold] (**80**|-1|0|1) + + Lower end of the fake sample count written when occlusion queries are faked. -1 writes nothing (some games then wait forever). + +- **Fake Occlusion Upper Threshold** [xenia_occlusion_query_fake_upper_threshold] (**100**|0) + + Upper end of the fake sample count written when occlusion queries are faked. + +- **Depth Bias Through Shader** [xenia_depth_bias_shader_offset] (**OFF**|ON) + + Route decal draws with polygon offset through the shader instead of host depth bias. Fixes z-fighting decals in some games. + +- **Resolution Scale Threshold** [xenia_draw_resolution_scale_threshold] (**0 (scale all)**|256|360|512) + + Render targets at or below this pitch in pixels are not upscaled by the resolution scale. Fixes some effects that break when scaled. + +- **Allow Invalid Upload Range** [xenia_gpu_allow_invalid_upload_range] (**ON**|OFF) + + Allow games to read data from pages marked as no access. + +- **Gamma Render Target as UNORM16** [xenia_gamma_render_target_as_unorm16] (**ON**|OFF) + + Emulate gamma render targets with 16 bits per component where the host cannot do 8-bit piecewise gamma. Turn off if colors look wrong in a game. + +- **Force Depth Clamp** [xenia_force_depth_clamp] (**OFF**|ON) + + Use host depth clamping instead of near and far plane clipping. + +- **Ignore Offset for Ranged Allocations** [xenia_ignore_offset_for_ranged_allocations] (**OFF**|ON) + + Ignore the 4 KB offset for physical allocations with a provided range. Needed by a few games. + +- **Break on Unimplemented Instructions** [xenia_break_on_unimplemented_instructions] (**ON**|OFF) + + Stop when a game runs a CPU instruction Xenia does not implement. In a core that ends RetroArch; turn off to let such games go on. + +- **Scribble Heap** [xenia_scribble_heap] (**OFF**|ON) + + Fill newly allocated heap memory with a value, for games that rely on what is left there. + +- **Scribble Heap Value** [xenia_scribble_heap_value] (**0 (random)**|255) + + The value Scribble Heap fills memory with. 0 is random. + +#### Debug Settings + +- **Log Level** [xenia_log_level] (Error Only|Warning|**Info**|Debug) + + Set the verbosity of logging output. + +## Controllers + +Up to four Xbox 360 controllers, one per RetroArch port. Rumble goes through the frontend's rumble interface. + +## Joypad + +| RetroPad Inputs | Xbox 360 controller | +|------------------------------------------------|--------------------| +| ![](../image/retropad/retro_b.png) | A | +| ![](../image/retropad/retro_a.png) | B | +| ![](../image/retropad/retro_y.png) | X | +| ![](../image/retropad/retro_x.png) | Y | +| ![](../image/retropad/retro_select.png) | Back | +| ![](../image/retropad/retro_start.png) | Start | +| ![](../image/retropad/retro_dpad_up.png) | D-Pad Up | +| ![](../image/retropad/retro_dpad_down.png) | D-Pad Down | +| ![](../image/retropad/retro_dpad_left.png) | D-Pad Left | +| ![](../image/retropad/retro_dpad_right.png) | D-Pad Right | +| ![](../image/retropad/retro_l1.png) | LB | +| ![](../image/retropad/retro_r1.png) | RB | +| ![](../image/retropad/retro_l2.png) | LT | +| ![](../image/retropad/retro_r2.png) | RT | +| ![](../image/retropad/retro_l3.png) | Left Stick click | +| ![](../image/retropad/retro_r3.png) | Right Stick click | +| ![](../image/retropad/retro_left_stick.png) | Left stick | +| ![](../image/retropad/retro_right_stick.png) | Right stick | + +## External Links + +- [Xenia Edge Core info file](https://github.com/WizzardSK/xenia-libretro/blob/libretro/libretro/xenia_edge_libretro.info) +- [Xenia Edge libretro GitHub Repository](https://github.com/WizzardSK/xenia-libretro) +- [Report Xenia Edge Core Issues Here](https://github.com/WizzardSK/xenia-libretro/issues) +- [Upstream Xenia Edge](https://github.com/has207/xenia-edge) diff --git a/mkdocs.yml b/mkdocs.yml index 446335cf31..18d479320d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -207,6 +207,8 @@ nav: - 'Mattel - Intellivision (FreeIntv)': 'library/freeintv.md' - 'Microsoft Emulation': - 'Microsoft - MSX (fMSX)': 'library/fmsx.md' + - 'Microsoft - Xbox (xemu)': 'library/xemu.md' + - 'Microsoft - Xbox 360 (Xenia Edge)': 'library/xenia_edge.md' - 'MSX/SVI/ColecoVision/SG-1000 (blueMSX)': 'library/bluemsx.md' - 'Mobile Emulation': - 'Mobile - J2ME (FreeJ2ME)': 'library/freej2me.md' @@ -341,6 +343,7 @@ nav: - 'Sony - PlayStation 3 (RPCS3)': 'library/rpcs3.md' - 'Sony - PlayStation 2 (Play!)': 'library/play.md' - 'Sony - PlayStation Portable (PPSSPP)': 'library/ppsspp.md' + - 'Sony - PlayStation Vita (Vita3K)': 'library/vita3k.md' - 'Sony - PocketStation (pokketstation)': 'library/pokketstation.md' - 'SpectraVision Emulation': - 'MSX/SVI/ColecoVision/SG-1000 (blueMSX)': 'library/bluemsx.md'