diff --git a/docs/development/cores/core-options-translation.md b/docs/development/cores/core-options-translation.md index a8980fed56..87ee265bd3 100644 --- a/docs/development/cores/core-options-translation.md +++ b/docs/development/cores/core-options-translation.md @@ -59,6 +59,7 @@ Uploads happen, whenever `libretro_core_options.h` of that branch is changed. - the name of the core (or repo) And for crowdin_translate.yml: + - <0-59> <0-23> - Minute and hour at which the sync will happen. The script will generate a random time for this, to avoid @@ -87,13 +88,13 @@ To create an access token, navigate to the account settings via your profile pic Name the token after the core/repository, which will receive it. The following permissions should be set: - Projects - - read + - read - Source files & strings - - read & write + - read & write - Translations - - read & write + - read & write - (optional) Translation status - - read + - read > Please provide these access tokens to the core developers in a private message and delete those after successful setup. Do not share tokens publicly or store them in plain text long term! @@ -110,4 +111,4 @@ Adding a language to RetroArch does not automatically enable it for the core opt ### Example - mgba: - - [Enable Indonesian, Swedish and Ukrainian localisations](https://github.com/libretro/mgba/commit/b0cdccc9ad2e5a8cd40ad4b9a3db1587d6f1560b) + - [Enable Indonesian, Swedish and Ukrainian localisations](https://github.com/libretro/mgba/commit/b0cdccc9ad2e5a8cd40ad4b9a3db1587d6f1560b) diff --git a/docs/development/cores/core-specific/mame-2003-plus.md b/docs/development/cores/core-specific/mame-2003-plus.md index 367032355e..96cd374316 100644 --- a/docs/development/cores/core-specific/mame-2003-plus.md +++ b/docs/development/cores/core-specific/mame-2003-plus.md @@ -12,6 +12,7 @@ _Note: This first half of this section is written for users who cannot submit co [As part of mame2003 we have an 'automated port' of the MAME 0.141 controls.dat project information](https://github.com/libretro/mame2003-plus-libretro/blob/master/src/controls.c). It address many, but not all games supported by mame2003-plus. Therefore in many cases adding new control labels can be as simple as adding the existing controls.dat metadata to a driver declaration. However as part of that process the controls.dat metadata needs to be checked in two ways before it can be added: + 1. From the user perspective: are the control names actually correct 2. From the coder perspective: does the switch logic in the controls.dat naming function work as intended @@ -149,6 +150,7 @@ GAMEC( 1994, stoneba2, stonebal, stonebal, stonebal, stonebal, ROT0, "Art and Ma The purpose of the NVRAM bootstrap functionality is to create a good user experience the first time a game is booted. When the behavior of a game on its first boot is impossible for a new user to tell from a crash, then a bootstrap is in order. More specifically, the conditions for adding a bootstrap are: + * It is not clear what the user needs to do to get into the game **or** * It is not reasonably possible for the user to get into the game using a SNES controller or arcade control panel diff --git a/docs/development/retroarch/netplay.md b/docs/development/retroarch/netplay.md index ba2c1c52a7..6bb051521b 100644 --- a/docs/development/retroarch/netplay.md +++ b/docs/development/retroarch/netplay.md @@ -172,18 +172,21 @@ are running the same software and brings the client to synchronization, and then an exchange of input packets. The handshake procedure (this part is done by both server and client): + 1. Send connection header 2. Receive and verify connection header 3. Send nickname 4. Receive nickname For the client: + 5. Send PASSWORD if applicable 4. Receive INFO 5. Send INFO 6. Receive SYNC For the server: + 5. Receive PASSWORD if applicable 6. Send INFO 7. Receive INFO diff --git a/docs/development/retroarch/network-control-interface.md b/docs/development/retroarch/network-control-interface.md index ba7daf3946..abc9435991 100644 --- a/docs/development/retroarch/network-control-interface.md +++ b/docs/development/retroarch/network-control-interface.md @@ -71,15 +71,15 @@ Queries a configuration parameter value. - **Arguments:** `` - **Response:** `GET_CONFIG_PARAM ` - **Supported parameters:** - - `video_fullscreen` - Whether fullscreen is active (`true`/`false`) - - `savefile_directory` - Save file directory path - - `savestate_directory` - Save state directory path - - `runtime_log_directory` - Runtime log directory path - - `log_dir` - Log directory path - - `cache_directory` - Cache directory path - - `system_directory` - System/BIOS directory path - - `netplay_nickname` - Current netplay username - - `active_replay` - Active replay info as `identifier flags frame_counter` (requires BSV movie support) + - `video_fullscreen` - Whether fullscreen is active (`true`/`false`) + - `savefile_directory` - Save file directory path + - `savestate_directory` - Save state directory path + - `runtime_log_directory` - Runtime log directory path + - `log_dir` - Log directory path + - `cache_directory` - Cache directory path + - `system_directory` - System/BIOS directory path + - `netplay_nickname` - Current netplay username + - `active_replay` - Active replay info as `identifier flags frame_counter` (requires BSV movie support) ```bash retroarch --command "GET_CONFIG_PARAM savefile_directory" diff --git a/docs/development/retroarch/new-translations.md b/docs/development/retroarch/new-translations.md index e1c8579e97..0fe3bc60de 100644 --- a/docs/development/retroarch/new-translations.md +++ b/docs/development/retroarch/new-translations.md @@ -25,6 +25,7 @@ To add a language with the English name `XXXXX` and two-letter code `xx` (be sur 1. Open `libretro-common/include/libretro.h`. 1. Add a `RETRO_LANGUAGE_XXXXX` item to the `retro_language` enum just above `RETRO_LANGUAGE_LAST`, using the next available integer value. > Do not rearrange the elements of this list! This would break the language association for the cores! + 2. Open `msg_hash.h`. 1. Check if a `MENU_ENUM_LABEL_VALUE_LANG_XXXXX` item for your language is present in the `msg_hash_enums` enum; if not, add it. 3. Open `msg_hash.c`. @@ -53,6 +54,7 @@ static const char *msg_hash_to_str_xx(enum msg_hash_enums msg) return "null"; } ``` + 4. Decide if `intl/msg_hash_xx.h` should use UTF-8 + BOM encoding. See the section below. 5. Open `intl/msg_hash_us.h`. 1. Check if the following block is present, where `Yyyyy` is the native name of the language and if not, add it: @@ -62,6 +64,7 @@ MSG_HASH( "Xxxxx - Yyyyy" ) ``` + 6. Open `menu/menu_setting.c`. 1. Add the following assignment to the `setting_get_string_representation_uint_user_language()` function, before `if (*msg_hash_get_uint(MSG_HASH_USER_LANGUAGE) == RETRO_LANGUAGE_ENGLISH)` statement: ```c @@ -73,17 +76,20 @@ case TRANSLATION_LANG_XX: enum_idx = MENU_ENUM_LABEL_VALUE_LANG_XXXXX; break; ``` + 7. Open `retroarch.c`. 1. Add your language to `enum retro_language retroarch_get_language_from_iso(const char *iso639)`: ```c {"xx", RETRO_LANGUAGE_XXXXX}, ``` + 8. Open `tasks/task_translation.c`. 1. Add the following block inside the `ai_service_get_str(enum translation_lang id)` function: ```c case TRANSLATION_LANG_XX: return "xx"; ``` + 9. Open `translation_defines.h`. 1. Add your language to the `translation_lang` enum between `TRANSLATION_LANG_DONT_CARE` and `TRANSLATION_LANG_LAST`items: ```c @@ -183,6 +189,7 @@ To make the new language usable with the RGUI menu driver: else if (string_is_equal(language,"xx")) return "Yyyyy"; ``` + 2. For Linux. (compatible with **[espeak](https://github.com/espeak-ng/espeak-ng)**) 1. Open `frontend/drivers/platform_unix.c`. 2. Go to `accessibility_unix_language_code(const char* language)` function. Check if the following block is present, where `yyy` is the [Identifier](https://github.com/espeak-ng/espeak-ng/blob/master/docs/languages.md) for the language and if not, add it before `/* default voice as fallback */`: @@ -190,6 +197,7 @@ else if (string_is_equal(language,"xx")) else if (string_is_equal(language, "xx")) return "yyy"; ``` + 3. For Windows. (OS compatible) 1. Open `frontend/drivers/platform_win32.c`. 2. Go to `accessibility_win_language_code(const char* language)` function. Check if the following block is present, where `Yyyyy` is the [voice name](https://support.microsoft.com/en-us/windows/appendix-a-supported-languages-and-voices-4486e345-7730-53da-fcfe-55cc64300f01#WindowsVersion=Windows_10) for the language and if not, add it before `return ""`: @@ -236,6 +244,7 @@ Instructions and recommended reading for that can be found [here](https://docs.l > Please **do not change** the `intl/msg_hash_xx.h` files directly! Starting from early 2023, the help texts that were located in `intl/msg_hash_xx.c` files are also included on Crowdin. If you have translation efforts in `msg_hash_xx.c` file from an earlier date, you can copy them to Crowdin, with following caveats: + * Individual line breaks (\n) at the end of each line are not required, current menu drivers will break lines automatically. Line break may be used as a paragraph separator, if text is long. * Make sure translations still matches the current source text, as several of those were updated during the refactor. * Do not exceed maximum line length (500 characters). diff --git a/docs/development/shader/slang-shaders.md b/docs/development/shader/slang-shaders.md index 4a3234ecc1..6024764f06 100644 --- a/docs/development/shader/slang-shaders.md +++ b/docs/development/shader/slang-shaders.md @@ -146,15 +146,18 @@ To enable maximum flexibility, frontends take a hands-off approach to resizing t There are three high-level stages for size management in the filter chain: **Input Stage:** + - The base texture is provided by the core and is represented by the `OriginalSize` uniform. - The input size can change from frame to frame, depending on the core's output. **Intermediate Stages:** + - Each shader pass outputs to a framebuffer whose size is controlled by the preset. - The size can be specified as an absolute value, as a size relative to the output of the previous shader stage (or `OriginalSize` for the first stage), or as a size relative to the viewport (the area requested by the frontend, represented by `FinalViewportSize`). - The size of the input to a pass is represented by the `SourceSize` uniform, and the size of the output is represented by the `OutputSize` uniform. **Output Stage:** + - The final output may be the last shader in the chain, provided the swapchain format matches the requested format in that shader pass (e.g., 8-bit when frontend HDR is off, 10-bit when HDR is on, *and* `scale_typeN` is not used for that shader). - In all cases, the final output size is represented by the `FinalViewportSize` uniform. @@ -416,9 +419,11 @@ The very first line of a `.slang` file must contain a `#version` statement. The first process which takes place is dealing with `#include` statements. A slang file is preprocessed by scanning through the slang and resolving all `#include` statements. **Include Path Restrictions:** + - Only files in the same directory as the including file, or in a child directory, may be included. Absolute paths and parent-relative paths (e.g., `../`) are not supported and have undefined behavior. **Cyclic Includes:** + - Cyclic includes are not handled at all. If a file is included more than once in a dependency cycle, only the first occurrence is processed; subsequent `#include` lines for that file lead to undefined behavior. As a result, slang requires a flat, acyclic dependency structure for includes. The include process does not consider any preprocessor defines or conditional expressions. Nested includes are allowed as long as they do not form a cycle. @@ -680,8 +685,8 @@ Location indices are consumed per slot, not per declaration line. Composite type - Scalar and vector types (`float`, `vec2`, `vec3`, `vec4`, etc.) consume 1 location. - Matrix types consume multiple locations. A matrix consumes one location per column (for example, `mat4` consumes 4 locations). - Structs consume the sum of their members' location usage. - - Non-matrix struct members consume 1 location each. - - Matrix struct members consume one location per matrix column. + - Non-matrix struct members consume 1 location each. + - Matrix struct members consume one location per matrix column. Example (`mat4` consumes locations 0, 1, 2, and 3): @@ -919,6 +924,7 @@ See also [Advanced Techniques: Vertex Precomputation](#vertex-precomputation). The preset format is essentially unchanged from the old .cgp and .glslp, except the new preset format is called .slangp. Below is a comprehensive example of a `.slangp` preset file. This example demonstrates: + - Multiple shader passes - Per-pass options (filter_linear, wrap_mode, scale_type, scale_x/y, mipmap_input, float_framebuffer, etc.) - External lookup textures with options @@ -984,6 +990,7 @@ Sharpness = 0.8 ``` This example shows how to: + - Chain multiple shader passes, each with its own options - Bind external textures and control their sampling/wrapping - Override user parameters at the preset level @@ -1121,19 +1128,19 @@ There is a completely different SLANG format that was developed after RetroArch' While there are no slang-specific external tools, any graphics debugging or profiling tool that works with Vulkan, OpenGL, or Direct3D can be used to profile and debug slang shaders running in RetroArch. These tools allow you to inspect shader code, view intermediate render targets, analyze performance, and debug rendering issues. Some popular tools include: - **RenderDoc** (https://renderdoc.org/): - - A powerful, open-source graphics debugger for Vulkan, OpenGL, and Direct3D. Capture a frame in RetroArch, inspect all draw calls, view shader code, and analyze textures and framebuffers. - - **Getting started:** Launch RetroArch, start your content, and attach RenderDoc to the RetroArch process. Capture a frame and explore the pipeline and resources. + - A powerful, open-source graphics debugger for Vulkan, OpenGL, and Direct3D. Capture a frame in RetroArch, inspect all draw calls, view shader code, and analyze textures and framebuffers. + - **Getting started:** Launch RetroArch, start your content, and attach RenderDoc to the RetroArch process. Capture a frame and explore the pipeline and resources. - **NVIDIA Nsight Graphics** (https://developer.nvidia.com/nsight-graphics): - - A comprehensive tool for debugging, profiling, and analyzing graphics applications on NVIDIA GPUs. Supports Vulkan, OpenGL, and Direct3D. - - **Getting started:** Install Nsight Graphics, launch RetroArch through the tool, and use its frame debugging and profiling features. + - A comprehensive tool for debugging, profiling, and analyzing graphics applications on NVIDIA GPUs. Supports Vulkan, OpenGL, and Direct3D. + - **Getting started:** Install Nsight Graphics, launch RetroArch through the tool, and use its frame debugging and profiling features. - **Microsoft PIX** (https://devblogs.microsoft.com/pix/): - - A performance tuning and debugging tool for Direct3D applications on Windows. Useful for analyzing shaders and GPU workloads on D3D11/D3D12 backends. - - **Getting started:** Run RetroArch under PIX, capture a frame, and inspect shader stages and GPU timings. + - A performance tuning and debugging tool for Direct3D applications on Windows. Useful for analyzing shaders and GPU workloads on D3D11/D3D12 backends. + - **Getting started:** Run RetroArch under PIX, capture a frame, and inspect shader stages and GPU timings. - **GPUView** (https://docs.microsoft.com/en-us/windows-hardware/test/gpuview/): - - A system-level GPU profiler for Windows, useful for analyzing overall GPU usage and identifying bottlenecks. + - A system-level GPU profiler for Windows, useful for analyzing overall GPU usage and identifying bottlenecks. These tools are invaluable for diagnosing rendering issues, optimizing performance, and understanding how your shaders interact with the graphics pipeline. @@ -1195,17 +1202,17 @@ This approach lets you toggle debug colors from the frontend UI, making it easy There are no strict requirements for naming or formatting uniforms and samplers in slang shaders—developers are free to choose conventions that best suit their project and style. However, here are some best practices and common patterns observed in the community: - **Samplers:** - - Treat samplers just like any other variable. - - External textures (such as lookup tables or fixed images) are often referenced with ALL_CAPS (e.g., `LUT`, `NOISE_TEXTURE`) to indicate that they are fixed, unchanging blobs. - - Source textures, which change from frame to frame (such as `Source` or `Original`), are typically referenced with CamelCase to reflect their dynamic nature. + - Treat samplers just like any other variable. + - External textures (such as lookup tables or fixed images) are often referenced with ALL_CAPS (e.g., `LUT`, `NOISE_TEXTURE`) to indicate that they are fixed, unchanging blobs. + - Source textures, which change from frame to frame (such as `Source` or `Original`), are typically referenced with CamelCase to reflect their dynamic nature. - **Uniforms:** - - Uniforms are fixed across a single frame but may change between frames. The uniforms presented by the frontend (such as `SourceSize`, `OutputSize`, `FrameCount`) use CamelCase for this reason. - - Parameter uniforms (those controlled by the user or preset) are often considered 'fixed' and may be written in ALL_CAPS (e.g., `BRIGHTNESS`, `SATURATION`). + - Uniforms are fixed across a single frame but may change between frames. The uniforms presented by the frontend (such as `SourceSize`, `OutputSize`, `FrameCount`) use CamelCase for this reason. + - Parameter uniforms (those controlled by the user or preset) are often considered 'fixed' and may be written in ALL_CAPS (e.g., `BRIGHTNESS`, `SATURATION`). - **#define Usage:** - - It's common to use `#define` for uniforms that are referenced multiple times in a shader. This can improve readability and make it easier to update variable names in one place. - - However, uniforms provided by the frontend (such as `SourceSize`, `OutputSize`, etc.) do not need to be `#define`d, as their names are stable and consistent for backwards compatibility. + - It's common to use `#define` for uniforms that are referenced multiple times in a shader. This can improve readability and make it easier to update variable names in one place. + - However, uniforms provided by the frontend (such as `SourceSize`, `OutputSize`, etc.) do not need to be `#define`d, as their names are stable and consistent for backwards compatibility. Ultimately, choose naming conventions that make your shader code clear and maintainable for yourself and others. Consistency within a project is more important than following any particular global style. If you are adding or modifying someone else's shader, it's best to follow the original style rather than refactoring the entire shader or mixing styles. @@ -1234,24 +1241,24 @@ By following these guidelines, you'll maximize the portability and reliability o When designing shaders that are meant to be used together as a multi-pass (multi-stage) effect, following best practices for organization and clarity will help both you and other users maintain, extend, and reuse your work. It is common for users to group unrelated shaders into a custom preset, but for tightly coupled multi-pass effects, consider the following guidelines: 1. **Descriptive Naming:** - - Give every shader a descriptive name using `#pragma name`. Avoid using numbers or generic names; prefer qualitative, meaningful names (e.g., `#pragma name GaussianBlurH` and `#pragma name GaussianBlurV`). - - When shaders are meant to always be used together (tightly coupled), give them a matching prefix for clarity. + - Give every shader a descriptive name using `#pragma name`. Avoid using numbers or generic names; prefer qualitative, meaningful names (e.g., `#pragma name GaussianBlurH` and `#pragma name GaussianBlurV`). + - When shaders are meant to always be used together (tightly coupled), give them a matching prefix for clarity. 2. **Shared Functions:** - - Place shared functions, macros, or utility code in a separate file with the `.inc` extension (not `.h`). Use `#include` to bring these into each shader file that needs them. + - Place shared functions, macros, or utility code in a separate file with the `.inc` extension (not `.h`). Use `#include` to bring these into each shader file that needs them. 3. **One Stage per File:** - - Do not try to put multiple fragment or vertex shaders in one file. Each `.slang` file can only have one vertex stage and one fragment stage. If for some reason a frontend ever supports this, ignore it. It's a bad idea. + - Do not try to put multiple fragment or vertex shaders in one file. Each `.slang` file can only have one vertex stage and one fragment stage. If for some reason a frontend ever supports this, ignore it. It's a bad idea. 4. **Shared Parameters:** - - Use includes for parameters when they are shared among shaders. This ensures consistency and reduces duplication. Consider using the menu technique below to show users what shader stages or high-level aspects of the effect the parameters relate to. + - Use includes for parameters when they are shared among shaders. This ensures consistency and reduces duplication. Consider using the menu technique below to show users what shader stages or high-level aspects of the effect the parameters relate to. 5. **Document Pass Order:** - - If the shader stages need to be used in a specific order, add a comment near the top of each file or in the preset to make this explicit. + - If the shader stages need to be used in a specific order, add a comment near the top of each file or in the preset to make this explicit. 6. **Example Preset File:** - - Always include an example `.slangp` preset file showing how your multi-pass shader is intended to be used. - - Assume that the input is gamma-corrected and the output is 8-bit SDR. If your shader operates on linear data, add a linearizing shader stage before and a gamma correction shader stage at the end. This makes it clear to users what sort of data your shader expects and produces. + - Always include an example `.slangp` preset file showing how your multi-pass shader is intended to be used. + - Assume that the input is gamma-corrected and the output is 8-bit SDR. If your shader operates on linear data, add a linearizing shader stage before and a gamma correction shader stage at the end. This makes it clear to users what sort of data your shader expects and produces. Following these practices will make your multi-pass shaders easier to understand, maintain, and integrate into larger filter chains or custom presets. @@ -1267,6 +1274,7 @@ Each shader pass can declare a uniform sampler2D with the alias `NAMEFeedback`, #### Why Use Feedback? Feedback enables effects that depend on previous frame data. Common uses include: + - Motion blur - Temporal anti-aliasing - Persistence/afterglow @@ -1425,10 +1433,10 @@ Practical guidance for Stage 3: - **Tone mapping policy**: If linear-light values remain near the target range, simple clamping may be acceptable. If values significantly exceed target range, use a deliberate tone mapping operator to reduce hard clipping, highlight banding, and hue distortion. - **Gamut compression policy**: When targeting constrained or different primaries, use gamut compression to reduce clipping artifacts. Choose rendering intent based on artistic goal (for example, preserving relationships vs preserving in-gamut accuracy). - **Gamut compression intents**: The four classic ICC rendering intents are a useful frame of reference: - - **Perceptual**: Compresses the full gamut to preserve visual relationships. - - **Relative colorimetric**: Preserves in-gamut values and clips out-of-gamut values relative to target white. - - **Saturation**: Prioritizes vividness over strict color accuracy. - - **Absolute colorimetric**: Preserves absolute colorimetry including white-point differences, clipping out-of-gamut values. + - **Perceptual**: Compresses the full gamut to preserve visual relationships. + - **Relative colorimetric**: Preserves in-gamut values and clips out-of-gamut values relative to target white. + - **Saturation**: Prioritizes vividness over strict color accuracy. + - **Absolute colorimetric**: Preserves absolute colorimetry including white-point differences, clipping out-of-gamut values. - **Output contract check**: Validate the final stage against the per-format output contract before shipping. The normative mapping for expected transfer function by final-pass format is [Output transfer-function mapping](#output-transfer-function-mapping) under [`#pragma format`](#pragma-format). - **Default operation order**: A stable baseline is tone mapping first, gamut compression second, then output encoding (inverse EOTF for SDR or PQ encoding for HDR). - **Validation checklist**: Verify neutral gradients stay neutral, highlight rolloff is smooth, saturated edges do not collapse abruptly, and behavior remains coherent when switching between SDR, scRGB, and HDR10 outputs. diff --git a/docs/guides/ai-service.md b/docs/guides/ai-service.md index a1092df59d..a3e0438fcb 100644 --- a/docs/guides/ai-service.md +++ b/docs/guides/ai-service.md @@ -59,11 +59,13 @@ If you wish to implement your own AI service, here is what you need. RetroArch s - `output`: comma-separated list of formats that must be provided by the service. Also lists sub-formats supported by the current RetroArchBuild. The currently supported formats are: + - `sound`: raw audio to play back. (`wav`) - `text`: text to be read through internal text-to-speech capabilities. `subs` can be specified on top of that to explain that we are looking for short text response in the manner of subtitles. - `image`: image to display on top of the video feed. (`bmp`, `png`, `png-a`) All in 24-bits BGR formats. In addition, the request contains a JSON payload, formatted as such: + - `image`: captured frame from the currently running content (in base64). - `format`: format of the captured frame (`png`, or `bmp`). - `coords`: array describing the coordinates of the image within the viewport space (x, y, width, height). @@ -74,6 +76,7 @@ In addition, the request contains a JSON payload, formatted as such: - ``: the name of a retropad input, valued 1 if pressed. Values can be: a, b, x, y, l, r, l2, r2, l3, r3, up, down, left, right, start, select. The translation component then expects a response from the AI service in the form of a JSON payload, formatted as such: + - `image`: base64 representation of an image in a supported format. - `sound`: base64 representation of a sound byte in a supported format. - `text`: results from the service as a string. diff --git a/docs/guides/change-directories.md b/docs/guides/change-directories.md index 8199fe9814..7a33f2b104 100644 --- a/docs/guides/change-directories.md +++ b/docs/guides/change-directories.md @@ -5,6 +5,7 @@ Next step you might want to consider is setting directories for RetroArch, this Although the defaults will suit most users, if you want to configure custom BIOS's or change the save location, you will have to change directories. Some directory variable values are set to "default" by default in retroarch.cfg. However, to modify directory values to "default", a text editor is required. "default" represents different values to different entries in `Settings` -> `Directories`: + - `` -- The directory where the game was loaded from via `Main Menu -> Load Content`. For example, if /home/gamer/Downloads/SNES/game.sfc was loaded, and retroarch.cfg contains `screenshot_directory = "default"`, then the screenshots will be saved in /home/gamer/Downloads/SNES/. - For multiple directory variables in retoarch.cfg, the "default" value sets their value in `Settings` -> `Directories` to:`` -- The RetroArch configuration directory. diff --git a/docs/guides/controller-autoconfiguration.md b/docs/guides/controller-autoconfiguration.md index f5d36bc58e..9ace03532b 100644 --- a/docs/guides/controller-autoconfiguration.md +++ b/docs/guides/controller-autoconfiguration.md @@ -93,11 +93,11 @@ It is also worth to change `display_name`, to immediately see if the match went Managing Controllers with Identical Configurations. Up to nine alternative variables can be used for the following purposes: - **`linuxraw`: Managing Controllers with Identical Configurations**: - - **Device Index (input_device)**: You can use `input_device_alt1`, `input_device_alt2`, `input_device_alt3`, up to `input_device_alt9`. For names available on both USB and Bluetooth, input_vendor_id should be utilized; for USB-specific names, use input_vendor_id_alt1, and for Bluetooth-specific names, use input_vendor_id_alt2. + - **Device Index (input_device)**: You can use `input_device_alt1`, `input_device_alt2`, `input_device_alt3`, up to `input_device_alt9`. For names available on both USB and Bluetooth, input_vendor_id should be utilized; for USB-specific names, use input_vendor_id_alt1, and for Bluetooth-specific names, use input_vendor_id_alt2. - **`android`, `sdl2`, and `udev`: Managing Controllers with Identical Configurations that has different input_vendor_id/input_product_id**: - - This applies to controllers like the Sony DualShock v1 and v2 for the `android`, `sdl2`, and `udev` controller drivers. Always use `input_vendor_id` and `input_product_id` for the most recent controller models, as they are more likely still available on the market. RetroArch version 1.19.1 and earlier cannot utilize _alt autoconfig variables, so using `input_vendor_id` for the latest controller ensures connectivity in RetroArch. Use `..._alt*` variables for older controllers. - - **Vendor ID (input_vendor_id)**: Options include `input_vendor_id_alt1`, `input_vendor_id_alt2`, `input_vendor_id_alt3`, up to `input_vendor_id_alt9`. - - **Product ID (input_product_id)**: Options include `input_product_id_alt1`, `input_product_id_alt2`, `input_product_id_alt3`, up to `input_product_id_alt9`. + - This applies to controllers like the Sony DualShock v1 and v2 for the `android`, `sdl2`, and `udev` controller drivers. Always use `input_vendor_id` and `input_product_id` for the most recent controller models, as they are more likely still available on the market. RetroArch version 1.19.1 and earlier cannot utilize _alt autoconfig variables, so using `input_vendor_id` for the latest controller ensures connectivity in RetroArch. Use `..._alt*` variables for older controllers. + - **Vendor ID (input_vendor_id)**: Options include `input_vendor_id_alt1`, `input_vendor_id_alt2`, `input_vendor_id_alt3`, up to `input_vendor_id_alt9`. + - **Product ID (input_product_id)**: Options include `input_product_id_alt1`, `input_product_id_alt2`, `input_product_id_alt3`, up to `input_product_id_alt9`. ### Similarities in input variable generation between linuxraw and udev. @@ -193,6 +193,7 @@ Make sure that you run the latest version of RetroArch, to generate a file name Both the Flatpak and Android versions of RetroArch need adjustments to the Controller Profiles Directory to ensure essential functionality and smooth operation. **Challenges for Android and Flatpak:** + - Users are unable to save custom profiles through the path: `Settings -> Input -> RetroPad Binds -> Port 1 Controls -> Save Controller Profile`. - Modification Restrictions: You are not allowed to change existing autoconfig files. Files that are initially disabled have "(default-off)" in their names. Without root access, you cannot modify these files to toggle the input_vendor_id and input_product_id settings. This restriction applies to both the "(default-off)" files and the "original" autoconfig files, which are more widely used and have been set to be enabled by default. These original files must also be commented to make changes. This limitation affects both HID and non-HID files, as well as controllers with multiple autoconfig files, such as the Sony DualSense controller, which includes several Android autoconfig files. @@ -200,10 +201,12 @@ Both the Flatpak and Android versions of RetroArch need adjustments to the Contr **Challenge:** Most Android devices are not rooted, and RetroArch's default autoconfig directory requires root access, leading to the following issues: + - Restricted File Access: Users can update controller profiles via `Main Menu -> Online Updater -> Update Controller Profiles`, but cannot access these files in `/data/user/0/com.retroarch/autoconfig`. Android's security model prevents non-root users from reading certain files, making it difficult to compare updated profiles with custom-generated ones, thus hindering effective profile management and customization. - Modification Restrictions: Existing autoconfig files cannot be modified when necessary (refer to the base section for more details). **Resolution:** + - Create the directory `/storage/emulated/0/RetroArch/autoconfig/android`. - In RetroArch, change the directory path under `Settings` -> `Directory` -> `Controller Profiles` from `/data/user/0/com.retroarch/autoconfig` (root) to `/storage/emulated/0/RetroArch/autoconfig`. - This adjustment allows the autoconfig files to be saved in `/storage/emulated/0/RetroArch/autoconfig/android` when using `Settings` -> `Input` -> `RetroPad Binds` -> `Port 1 Controls` -> `Save Controller Profile`. @@ -214,9 +217,9 @@ Your controller will use the Controller Profile directory `/data/user/0/com.retr * **DPAD**: Essential for navigating menus. * **OK**: Necessary for applying settings, such as navigating to `Settings -> Input -> RetroPad Binds -> Port 1 Controls`, and selecting `Set All Controls` and `Save Controller Profile`. * **Back**: Needed to return to `Main Menu -> Quit` after configuring `Settings -> Directory -> Controller Profiles`, ensuring the settings are saved to retroarch.cfg. Workaround if you have access to another controller: Temporarily connect another controller with a functioning autoconfig "Back" button and adjust the Controller Profiles directory: - - `Settings -> Directory -> Controller Profiles`. - - `Main Menu -> Quit` -- ensuring the settings are saved to retroarch.cfg. - - Disconnect the controller from BlueTooth. + - `Settings -> Directory -> Controller Profiles`. + - `Main Menu -> Quit` -- ensuring the settings are saved to retroarch.cfg. + - Disconnect the controller from BlueTooth. While these issues are not problematic for typical Android devices like smartphones and tablets, which offer touchscreen navigation, they become significant on Google TV (an Android-based OS used by Chromecast) where a touchscreen is unavailable. Additionally, Chromecast's voice remote control lacks autoconfiguration and is incompatible with RetroArch navigation. Even controllers with touchpads are ineffective, as the touchpad button does not function (as observed with PS4/PS5 controllers), and the cursor remains invisible due to a known [bug](https://github.com/libretro/RetroArch/issues/16853). @@ -225,14 +228,14 @@ While these issues are not problematic for typical Android devices like smartpho To resolve this issue, follow these steps: - **Create a Custom Configuration File:** - - Create the file `retroarch.cfg` in the directory `/storage/emulated/0/Android/com.retroarch/files/retroarch.cfg` with the following line: + - Create the file `retroarch.cfg` in the directory `/storage/emulated/0/Android/com.retroarch/files/retroarch.cfg` with the following line: ``` joypad_autoconfig_dir = /storage/emulated/0/RetroArch/autoconfig/ ``` - **Set Up a Fallback Configuration:** - - Identify the Product ID and Vendor ID of your controller: Ensure that the directory /storage/emulated/0/RetroArch/autoconfig/ remains empty, then restart RetroArch. This action will compel RetroArch to enter fallback mode, displaying a message like "[Controller name] ([Vendor ID]/[Product ID]) not configured, using fallback". Record the four-digit numbers for both IDs. - - Create a file named `fallback.cfg` in the directory `/storage/emulated/0/RetroArch/autoconfig/android/` with the following configuration settings (don't forget to replace `input_vendor_id = "[Vendor ID]"` and `input_product_id = "[Product ID]"` with the values of your controller: + - Identify the Product ID and Vendor ID of your controller: Ensure that the directory /storage/emulated/0/RetroArch/autoconfig/ remains empty, then restart RetroArch. This action will compel RetroArch to enter fallback mode, displaying a message like "[Controller name] ([Vendor ID]/[Product ID]) not configured, using fallback". Record the four-digit numbers for both IDs. + - Create a file named `fallback.cfg` in the directory `/storage/emulated/0/RetroArch/autoconfig/android/` with the following configuration settings (don't forget to replace `input_vendor_id = "[Vendor ID]"` and `input_product_id = "[Product ID]"` with the values of your controller: ``` input_driver = "android" input_device = "Fallback device" @@ -265,10 +268,10 @@ input_r_y_minus_axis = "-3" ``` - **Launch RetroArch:** - - Start the RetroArch application. + - Start the RetroArch application. - **Button Testing:** - - Test the controller buttons to identify which ones correspond to the "OK" and "Back" functions. This will allow you to navigate and temporarily reconfigure RetroArch. + - Test the controller buttons to identify which ones correspond to the "OK" and "Back" functions. This will allow you to navigate and temporarily reconfigure RetroArch. By applying this solution, you allow your controller to configure RetroArch, enabling navigation to Settings -> Input -> RetroPad Binds -> Port 1 Controls and the selection of Set All Controls and Save Controller Profile. This setup also permits the saving of autoconfig files in the directory /storage/emulated/0/RetroArch/autoconfig/android. @@ -276,6 +279,7 @@ By applying this solution, you allow your controller to configure RetroArch, ena **Challenge:** The default autoconfig directory in Flatpak RetroArch also requires root access, which prevents users from: + - Downloading and extracting profiles through `Main Menu` -> `Online Updater` -> `Update Controller Profiles`. - Saving custom profiles via `Settings -> Input -> RetroPad Binds -> Port 1 Controls -> Save Controller Profile`. - Modification Restrictions: Facing similar issues as Android users if the GNU/Linux user lacks root access, as existing autoconfig files cannot be modified when necessary (refer to the base section for more details). @@ -301,40 +305,40 @@ By implementing these changes, you'll be able to create and save custom controll When using RetroArch, not all controller buttons are automatically mapped through the "Set All Controls" option. Some buttons—such as menu toggles, screenshot triggers, or other special functions—must be configured separately. Here’s a step-by-step guide to ensure all your controller buttons work as desired. 1. Identify special buttons on your controller - - Look for buttons on your physical controller not automatically mapped by Retroarch. - - Examples include - - *Menu Toggle* (virtually all controllers have them) - - Additional special buttons may be found on some controllers. For example, the *Capture* (screenshot) and the "Home" button on Nintendo Switch Pro Controller. + - Look for buttons on your physical controller not automatically mapped by Retroarch. + - Examples include + - *Menu Toggle* (virtually all controllers have them) + - Additional special buttons may be found on some controllers. For example, the *Capture* (screenshot) and the "Home" button on Nintendo Switch Pro Controller. 3. Assign hotkeys in Retroarch - - Launch Retroarch. - - Navigate to: `Settings` → `Input` → `Hotkeys`. - - Select the special function you want to assign (e.g., *Menu Toggle*, *Screenshot*). - - Press the desired button on your controller to bind it. - - Exit Retroarch properly to save the settings: - - On most platforms, just closing Retroarch saves the config. - - On Android, explicitly quit via `Main Menu` → `Quit` to ensure settings are saved. + - Launch Retroarch. + - Navigate to: `Settings` → `Input` → `Hotkeys`. + - Select the special function you want to assign (e.g., *Menu Toggle*, *Screenshot*). + - Press the desired button on your controller to bind it. + - Exit Retroarch properly to save the settings: + - On most platforms, just closing Retroarch saves the config. + - On Android, explicitly quit via `Main Menu` → `Quit` to ensure settings are saved. 4. Transfer hotkey assignments to your controller autoconfig file - - Open your main `retroarch.cfg` file. - - Find and copy the hotkey assignment lines, for example: + - Open your main `retroarch.cfg` file. + - Find and copy the hotkey assignment lines, for example: ``` input_menu_toggle_btn = "[w]" input_screenshot_btn = "[x]" ``` - *(Replace `[w]` and `[x]` with your actual button values.)* - - Open your controller’s autoconfig file, typically found at: + *(Replace `[w]` and `[x]` with your actual button values.)* + - Open your controller’s autoconfig file, typically found at: ``` retroarch/autoconfig/[platform]/[controller-name].cfg ``` - - Append the copied hotkey lines to the bottom of the autoconfig file. + - Append the copied hotkey lines to the bottom of the autoconfig file. 5. Add labels. They will be visible in `Settings` → `Input` → `Hotkeys`. - - Add variable names. Complement the variables that you just added to the autoconfig file with the corresponding label variables ([variable name]+"_label") at the absolute bottom of the file, for example: + - Add variable names. Complement the variables that you just added to the autoconfig file with the corresponding label variables ([variable name]+"_label") at the absolute bottom of the file, for example: ``` input_menu_toggle_btn_label = "[y]" input_screenshot_btn_label = "[z]" ``` - *(Replace `[y]` and `[z]` with the appropriate label values described below.)* - - Add the corresponding variable label values. Refer to the manufacturer’s official labeling for each button, but avoid using all capital letters unless the name is an abbreviation. Use standard capitalization with an initial capital letter to improve readability. Also, do not add the word “button” if it is already part of the official name. For instance, Nintendo refers to the “HOME button” on the Switch Pro Controller, but you should label it simply as “Home.” Similarly, the menu toggle label for Sony PlayStation controllers is “PS.” This approach balances clarity and respect for official naming. + *(Replace `[y]` and `[z]` with the appropriate label values described below.)* + - Add the corresponding variable label values. Refer to the manufacturer’s official labeling for each button, but avoid using all capital letters unless the name is an abbreviation. Use standard capitalization with an initial capital letter to improve readability. Also, do not add the word “button” if it is already part of the official name. For instance, Nintendo refers to the “HOME button” on the Switch Pro Controller, but you should label it simply as “Home.” Similarly, the menu toggle label for Sony PlayStation controllers is “PS.” This approach balances clarity and respect for official naming. 6. Save the autoconfig file. 7. Restart RetroArch and navigate to `Settings` → `Input` → `Hotkeys` to confirm that they look as intended. @@ -354,8 +358,8 @@ input_r2_axis_label = "ZR" To address this bug in RetroArch on other controllers or drivers, you need to manually edit the RetroArch config file to set the correct analog axis mappings for L2 and R2. Here's how to find the proper axis values: * Install and run jstest available for GNU/Linux (`sudo apt-get install joystick` for Debian-like distros), and Windows. - - In GNU/Linux: `jstest /dev/input/js0` - - In GNU/Linux virtual machines using QEMU, js0 is designated for the mouse, so you need to use js1 by running the command: `jstest /dev/input/js1` + - In GNU/Linux: `jstest /dev/input/js0` + - In GNU/Linux virtual machines using QEMU, js0 is designated for the mouse, so you need to use js1 by running the command: `jstest /dev/input/js1` * Slowly press L2 and R2 to identify which axis numbers change * Note the axis numbers that correspond to L2 and R2 * In the autoconfig file, set: @@ -399,6 +403,7 @@ By carefully updating both the variable names and values, you can ensure that yo ### Inspect the file Without modifying anything in the original file, open it in the file in a text editor and + 1. Make sure that you have mapped all buttons, and that none of them have duplicated values. 2. Each button should have a variable that ends with `_btn`, or `_axis`, not both. So for example, if you find both `input_a_axis`, and `input_a_btn`, it's incorrect. This may happen if your OS does not support the controller. @@ -417,7 +422,7 @@ If you are happy with your profile, you can submit it to RetroArch so that other 1. Edit the autoconfig file for your joypad manually to include the input descriptors (please see the [Input descriptors](#input-descriptors) section below) 2. [Submit your profile to our joypad profile repository](https://github.com/libretro/retroarch-joypad-autoconfig) by filing a pull request (PR). - - To help us track potential bugs if the autconfig does not work as expected in all RetroArch releases (Flatpak package via Flathub, AppImage via retroarch.com, etc) and their gamepad driver (sdl2, udev, etc), please include a bullet point at the beginning of your PR Comment when submitting a PR. This bullet should specify the RetroArch version you used to generate the autoconfig. Additionally, please add further bullet points to outline what has been added. For example: `* Generated the autoconfig file[s] with RetroArch Flathub's release version x.xx.x` + - To help us track potential bugs if the autconfig does not work as expected in all RetroArch releases (Flatpak package via Flathub, AppImage via retroarch.com, etc) and their gamepad driver (sdl2, udev, etc), please include a bullet point at the beginning of your PR Comment when submitting a PR. This bullet should specify the RetroArch version you used to generate the autoconfig. Additionally, please add further bullet points to outline what has been added. For example: `* Generated the autoconfig file[s] with RetroArch Flathub's release version x.xx.x` ### Default-off configs When developing controller configurations, it's essential to anticipate and mitigate potential conflicts. These issues often arise in the following situations: @@ -779,8 +784,9 @@ Note: These variable values are examples and should not be directly copied to yo ###### Shoulder buttons with analog variables Give each button the same label as described by the manufacturer. Additionally: + - For analog shoulder buttons, use the manufacturer’s label **and** append the word **" Trigger"** at the end. - - For example: `input_l2_axis_label = "L2 Trigger"` + - For example: `input_l2_axis_label = "L2 Trigger"` ###### Analog sticks The term "Analog" is included in the variable values for the analog inputs to clearly indicate that these inputs are analog in nature. diff --git a/docs/guides/crtswitchres.md b/docs/guides/crtswitchres.md index 38112322ad..cd90b45764 100644 --- a/docs/guides/crtswitchres.md +++ b/docs/guides/crtswitchres.md @@ -17,6 +17,7 @@ Other options are available. It's a simple case of getting the resolutions insta ### Linux Switchres can work in the following environments: + - X11 - KMS mode - Raspberry Pi with legacy graphics drivers @@ -33,6 +34,7 @@ Switchres can work in the following environments: CRTSwitchRes now using Switchres by Calamity. This is available on both Windows and Linux. To enable CRTSwitchRes or change settings + - Navigate to **Settings** - Navigate to **Video** - Navigate to **CRT SwitchRes** diff --git a/docs/guides/databases.md b/docs/guides/databases.md index 394fd4f62b..ce6938fbb2 100644 --- a/docs/guides/databases.md +++ b/docs/guides/databases.md @@ -68,8 +68,8 @@ The most common user problems and solutions related to the database are: - Solution B: Use the __Loose__ option, which will accept all files according to the chosen settings. - __Game Name error or incorrect information__. E.g. A game file receives a wrong title inside the RetroArch playlist/interface. - Solution: - - Follow the [investigation steps](#investigating-database-issues) below to find the `.dat` file that has the erroneous information, and [contribute a correction](#how-to-contribute-to-databases). - - Depending on the source of the data, an upstream change within a database group's system may be required, but it is also possible to create ad hoc database coverage on the libretro github. + - Follow the [investigation steps](#investigating-database-issues) below to find the `.dat` file that has the erroneous information, and [contribute a correction](#how-to-contribute-to-databases). + - Depending on the source of the data, an upstream change within a database group's system may be required, but it is also possible to create ad hoc database coverage on the libretro github. - __Outdated Local Files__. I.e. an error(s) has been fixed in the libretro database but the fix has not yet been downloaded in the user's app install. - Solution: Update your RetroArch databases (Main Menu > Online Updater > Update databases). That will apply recent fixes/corrections to your RetroArch install. @@ -95,10 +95,10 @@ After you've investigated the issue (see above), some possible actions are: - __Use the [Issue Tracker](https://github.com/libretro/libretro-database/issues)__. - __Search__ for existing issues on github that may hold useful advice or solutions for your problem. Adding your new examples or insights to the discussion for the problem may help Members/Contributors create a fix. - __Open__ an Issue if a relevant one isn't already open. - - Open a [Database Issue](https://github.com/libretro/libretro-database/issues) __if__ you observe either of the following: - - You see a large-scale issue affecting many data entries or entire dats. - - You found that Upstream Data is _correct_ but libretro or RetroArch doesn't reflect it, and at least 4 weeks have passed since the Upstream update occurred. - - Open a [RetroArch Issue](https://github.com/libretro/RetroArch/issues) __if__: you see a problem with RetroArch's scanning behavior or validation, while the databases appear correct and match your file's properties (crc and serial within the game's binary data viewable with a hex editor). + - Open a [Database Issue](https://github.com/libretro/libretro-database/issues) __if__ you observe either of the following: + - You see a large-scale issue affecting many data entries or entire dats. + - You found that Upstream Data is _correct_ but libretro or RetroArch doesn't reflect it, and at least 4 weeks have passed since the Upstream update occurred. + - Open a [RetroArch Issue](https://github.com/libretro/RetroArch/issues) __if__: you see a problem with RetroArch's scanning behavior or validation, while the databases appear correct and match your file's properties (crc and serial within the game's binary data viewable with a hex editor). - __Submit Upstream Changes.__ Make changes upstream (No-Intro, Redump, GameTDB, etc) by going through the channels of the upstream group responsible for the data at issue __if__: you found that Upstream Data is _Incorrect_ and has been imported to the libretro database repository. The upstream group must make the correction to "fix it at the source", though it may be possible to create alternative data coverage instead (see below). ## How to Contribute to Databases diff --git a/docs/guides/disc-swapping.md b/docs/guides/disc-swapping.md index fda1ff721d..953788c2b0 100644 --- a/docs/guides/disc-swapping.md +++ b/docs/guides/disc-swapping.md @@ -29,11 +29,12 @@ You can start a game by loading its M3U file, through `Load Content` or Playlist ### Making an M3U playlist file You can make an M3U playlist file using a simple text editor. + * Put all of your content's disc files into a single folder. * Create a new text file in the same folder as your content. Name it the same as your content. * Add the full names of each disc into the text file (including the file extension), 1 filename per row. - * If your discs are BIN/CUE files, only list the '.cue' files in the document. - * If your discs are CHD files, list the '.chd' files in the document. + * If your discs are BIN/CUE files, only list the '.cue' files in the document. + * If your discs are CHD files, list the '.chd' files in the document. * Save and close the text file. * Rename the file extension from '.txt' to '.m3u'. diff --git a/docs/guides/generating-retroarch-logs.md b/docs/guides/generating-retroarch-logs.md index 1b5392d5a6..7e79800fbd 100644 --- a/docs/guides/generating-retroarch-logs.md +++ b/docs/guides/generating-retroarch-logs.md @@ -69,6 +69,7 @@ There is a range of variation in the logging systems available to Android device #### Generating Logs via USB Tether **Prerequisites**: + * Linux, Windows or Mac PC * USB cable for your device diff --git a/docs/guides/input-controller-drivers.md b/docs/guides/input-controller-drivers.md index 0c232769fa..a932737d19 100644 --- a/docs/guides/input-controller-drivers.md +++ b/docs/guides/input-controller-drivers.md @@ -122,6 +122,7 @@ The libretro API provides a possibility to pass extra sensor inputs to cores: 3 --- ## Footnotes [^1]: MFi controllers are primarily supported on Apple devices, which means that the operating systems supporting this configuration would include: + - iOS: Used on iPhones and iPads. - macOS: Used on Mac computers. - tvOS: Used on Apple TV devices. diff --git a/docs/guides/install-android.md b/docs/guides/install-android.md index d218668c38..19ac27f2b9 100644 --- a/docs/guides/install-android.md +++ b/docs/guides/install-android.md @@ -8,6 +8,7 @@ You must follow the [installation notes](#installation-notes) for this process. #### From RetroArch.com Downloads ___ + 1. Visit the retroarch.com [Downloads page](https://www.retroarch.com/?page=platforms) and select **Download Stable** or **Download Nightly**. 2. Open the downloaded APK (via a file manager if your browser does not prompt you when the download is completed). 3. Select Install. @@ -56,6 +57,7 @@ To install RetroArch from non-Google Play sources (F-Droid, retroarch.com, etc), If Google Play Protect still blocks the app installation even after you entered the correct password in Method 1 (a common issue on older Android versions), you'll need to temporarily disable Play Protect to proceed. Disable Google Play Protect: + * Open the Play Store app first * Tap your profile icon * Select Play Protect diff --git a/docs/guides/install-ios.md b/docs/guides/install-ios.md index dc9d1c674d..07f74c77ca 100644 --- a/docs/guides/install-ios.md +++ b/docs/guides/install-ios.md @@ -76,11 +76,11 @@ When you first start RetroArch, you'll notice that you're missing images. You'll - From the main menu, choose "Online Updater" - Choose: - - Update Core Info Files - - Update Assets - - Update Databases - - Update Overlays - - Update GLSL Shaders + - Update Core Info Files + - Update Assets + - Update Databases + - Update Overlays + - Update GLSL Shaders ### Adding Content diff --git a/docs/guides/install-lakka.md b/docs/guides/install-lakka.md index 2a4032be62..7496c1f7f4 100644 --- a/docs/guides/install-lakka.md +++ b/docs/guides/install-lakka.md @@ -77,6 +77,7 @@ Installing Lakka on your device is as simple as installing any other operating s 4. Select **Install Lakka**. 5. Use the **up/down** arrows to select the drive to install. *Observe the warnings on the screen. If you continue the targeted drive will be wiped out.* + 6. Select Yes in confirmation alerts. 7. After the installation, you will return to the Main menu. **Remove the USB** and **select Reboot**. diff --git a/docs/guides/install-windows.md b/docs/guides/install-windows.md index fdea45133e..aa2d12ee24 100644 --- a/docs/guides/install-windows.md +++ b/docs/guides/install-windows.md @@ -5,6 +5,7 @@ ## Downloading First decide if you want a stable release or a nightly. Both options provide you with the latest RetroArch, the only difference is that one is a self extracting installer, and the other one an archive you have to extract manually. Both are portable installation which means the RetroArch setup is: + - It's self-contained - It doesn't need users to guess random locations for configurations files - It's easy to update by just replacing files diff --git a/docs/guides/libretro-overlays.md b/docs/guides/libretro-overlays.md index 7d1fe62cac..426e1db5dc 100644 --- a/docs/guides/libretro-overlays.md +++ b/docs/guides/libretro-overlays.md @@ -33,6 +33,7 @@ An example of a touchscreen overlay, demonstrated with the Dinothawr core: Overlays require at least one image (`.png`) and a configuration file (`.cfg`) in order to activate them. **Notes:** + - The configuration file should have the exact same name as the first image file (the only image file if your overlay only has one image). - Do not use spaces in the filename. - These files should be placed together in the libretro `overlay` folder. @@ -65,6 +66,7 @@ To be written ## Per-Game Overlays via RetroArch CFG Files The first time you set up a per-game overlay: + 1. Ensure that these two options are set in retroarch.cfg: `game_specific_options = "true"` and `auto_overrides_enable = "true"` 2. The first time you load content with these settings, RetroArch will create a settings override directory structure and a `.opts` configuration file which you can use as a template to correctly name and locate your overlay configuration files. 3. If the automatically-generated file is named `Dinothawr.opts`, you would name your per-game override `Dinothawr.cfg`. diff --git a/docs/guides/netplay-multiple-controllers.md b/docs/guides/netplay-multiple-controllers.md index 866924df28..d10d533d84 100644 --- a/docs/guides/netplay-multiple-controllers.md +++ b/docs/guides/netplay-multiple-controllers.md @@ -28,17 +28,17 @@ Set up **Input Devices** while the game is loaded: - Connect two controllers - Start SNES Super Bomberman 2 game - Set **Inputs** for each controller 1 and 2: - - Navigate to **Settings** - - Navigate to **Inputs** - - Navigate to **Port 1 Binds** - - Ensure **Device Index** is set to *_Controller Name 1_ - - Return to **Inputs** configuration menu - - Navigate to **Port 2 Binds** - - Ensure **Device Index** is set to *_Controller Name 2_ - - Set **Device Type** to _MultiTap_ - - _MultiTap_ is only available when SNES core is loaded. This plugs in a virtual SNES MultiTap into the SNES so more than two controllers can connect to the SNES. - - \* Controller Name 1 and 2 are unique to the computer and to the controllers connected to it (_e.g._, PS4 controller shows as "Wireless Controller \#1") + - Navigate to **Settings** + - Navigate to **Inputs** + - Navigate to **Port 1 Binds** + - Ensure **Device Index** is set to *_Controller Name 1_ + - Return to **Inputs** configuration menu + - Navigate to **Port 2 Binds** + - Ensure **Device Index** is set to *_Controller Name 2_ + - Set **Device Type** to _MultiTap_ + - _MultiTap_ is only available when SNES core is loaded. This plugs in a virtual SNES MultiTap into the SNES so more than two controllers can connect to the SNES. + + \* Controller Name 1 and 2 are unique to the computer and to the controllers connected to it (_e.g._, PS4 controller shows as "Wireless Controller \#1") #### Configure Host's Requested Devices @@ -63,15 +63,15 @@ Set up **Input Devices** while the game is loaded: - Connect two controllers - Start SNES Super Bomberman 2 game - Set **Inputs** for each controller 1 and 2: - - Navigate to **Settings** - - Navigate to **Inputs** - - Navigate to **Port 1 Binds** - - Ensure **Device Index** is set to *_Controller Name 1_ - - Return to **Inputs** configuration menu - - Navigate to **Port 2 Binds** - - Ensure **Device Index** is set to *_Controller Name 2_ - - \* Controller Name 1 and 2 are unique to the computer and to the controllers connected to it (_e.g._, PS4 controller shows as "Wireless Controller \#1") + - Navigate to **Settings** + - Navigate to **Inputs** + - Navigate to **Port 1 Binds** + - Ensure **Device Index** is set to *_Controller Name 1_ + - Return to **Inputs** configuration menu + - Navigate to **Port 2 Binds** + - Ensure **Device Index** is set to *_Controller Name 2_ + + \* Controller Name 1 and 2 are unique to the computer and to the controllers connected to it (_e.g._, PS4 controller shows as "Wireless Controller \#1") #### Configure Client's Requested Devices diff --git a/docs/guides/overrides.md b/docs/guides/overrides.md index 4e6c096ce6..1dbdcad8f4 100644 --- a/docs/guides/overrides.md +++ b/docs/guides/overrides.md @@ -94,6 +94,7 @@ These settings files are created as above with the `Quick Menu -> Save Game Over ### Input Remaps Input remaps use the same logic as core/directory/game overrides and use the `.rmp` extension. They can be adjusted and saved from: + - `Quick Menu -> Controls -> Save Core Remap File` - `Quick Menu -> Controls -> Save Content Directory Remap File` - `Quick Menu -> Controls -> Save Game Remap File` diff --git a/docs/guides/retroarch-accessibility-guide.md b/docs/guides/retroarch-accessibility-guide.md index 2522639d7e..7b75d0204d 100644 --- a/docs/guides/retroarch-accessibility-guide.md +++ b/docs/guides/retroarch-accessibility-guide.md @@ -28,6 +28,7 @@ After installing Retroarch, launch the program in the usual way according to you To turn on the accessibility feature, do the following: - Open Retroarch. + - Press **Left Arrow**, **Down Arrow**, then **Enter**. - Press **up arrow** seven times. - Press **Enter** twice, or **Enter** then **Right arrow**. diff --git a/docs/guides/roms-playlists-thumbnails.md b/docs/guides/roms-playlists-thumbnails.md index b5cd7e0d87..04436c601b 100644 --- a/docs/guides/roms-playlists-thumbnails.md +++ b/docs/guides/roms-playlists-thumbnails.md @@ -150,8 +150,8 @@ Maybe you want to create custom playlists not limited within game-platforms or R - Name your playlist in the scheme `My Sorting Prefix - My Playlist Name.lpl` or just `My Playlist Name.lpl`. - To tweak how playlists are displayed (with or without prefix) and how they are sorted (by prefix or by main name): - - Go to: Settings > Playlists - - Set options **Truncate Playlist Names** and **Sort Playlists After Name Truncation** to your liking. + - Go to: Settings > Playlists + - Set options **Truncate Playlist Names** and **Sort Playlists After Name Truncation** to your liking. ### How to set up custom playlists (Screenshots) @@ -195,9 +195,9 @@ Thumbnail image files must be stored in subfolders according to this structure: - `thumbnails` directory within Retroarch folder (or in different location configured by user via Settings > Directory > Thumbnails) - `Playlist Name` folder with the exact same name as the playlist, except without `.lpl` at the end. For example, `Atari - 2600` - - `Named_Boxarts` subfolder for boxart/cover art - - `Named_Snaps` subfolder for in-game snapshots - - `Named_Titles` subfolder for in-game introductory title screens + - `Named_Boxarts` subfolder for boxart/cover art + - `Named_Snaps` subfolder for in-game snapshots + - `Named_Titles` subfolder for in-game introductory title screens **Example** of a Windows path to a correctly set boxart folder: `RetroArch-Win64\thumbnails\Atari - 2600\Named_Boxarts` @@ -242,13 +242,13 @@ follow the steps below. - +Create new File - Upload File. - __Choose "Upload File"__. Select your new chosen image file. In this stage you are uploading to your fork/branch of the project. - - __Follow all guidelines for a proper contribution.__ - - Your choice of image file should meet the libretro thumbnail [rules in the ReadMe](https://github.com/libretro-thumbnails/libretro-thumbnails/blob/master/README.md), e.g. width scaled down to 512px. - - For snaps (in-game screenshots), choose a good clear artful image that shows the art, spirit, or action of the game in normal or ideal gameplay. For examples of well-chosen well-composed in-game screenshots, see the back-of-box images printed on officially published games. - - Name your image file correctly. - - If replacing an existing image, name your new image file exactly as the previous one to guarantee that it will be matched to the relevant game name in RetroArch. (Unless your contribution is to correct an erroneous filename that doesn't match the game name database.) - - If uploading a new thumbnail that has no prior existing version, research the naming conventions of libretro and how the game is named in databases. Name the image file according to the game name that RetroArch assigns in the playlist. - - Use the correct path. Choose the correct console system folder and thumbnail type folder in the repository. + - __Follow all guidelines for a proper contribution.__ + - Your choice of image file should meet the libretro thumbnail [rules in the ReadMe](https://github.com/libretro-thumbnails/libretro-thumbnails/blob/master/README.md), e.g. width scaled down to 512px. + - For snaps (in-game screenshots), choose a good clear artful image that shows the art, spirit, or action of the game in normal or ideal gameplay. For examples of well-chosen well-composed in-game screenshots, see the back-of-box images printed on officially published games. + - Name your image file correctly. + - If replacing an existing image, name your new image file exactly as the previous one to guarantee that it will be matched to the relevant game name in RetroArch. (Unless your contribution is to correct an erroneous filename that doesn't match the game name database.) + - If uploading a new thumbnail that has no prior existing version, research the naming conventions of libretro and how the game is named in databases. Name the image file according to the game name that RetroArch assigns in the playlist. + - Use the correct path. Choose the correct console system folder and thumbnail type folder in the repository. - __Commit.__ The "Commit" button will save your change to your copy of the repository. You should generally commit to your own _master_. - __Pull Request (PR)__. Look for the button or option for a Pull Request when you Commit, though you may wait until you have finalized multiple changes (commits) and then include them all in a single PR. A Pull Request means sending a request to the official members to take your contribution (i.e. merge your fork) into the RetroArch repository. Admins will review your proposed changes and decide whether to accept it. You will eventually see a confirmation that it was approved or a discussion message if changes are needed. It may take time (even weeks or months) before an admin is able to examine the request, so please be patient. - __Verify that your Pull Request is active and correct.__ For example, if you made a Pull Request to contribute a Gameboy thumbnail then you can [view the request publicly listed at the official repository](https://github.com/libretro-thumbnails/Nintendo_-_Game_Boy/pulls). diff --git a/docs/guides/shaders.md b/docs/guides/shaders.md index 1d592ab868..4e13051be2 100644 --- a/docs/guides/shaders.md +++ b/docs/guides/shaders.md @@ -27,6 +27,7 @@ There are plenty of user created presets that come bundled with the RetroArch in ## Editing Shader Parameters You can edit shader presets or build your own using these tools: + - **Shader Parameters**: Shows the list of all tweakable shader parameters, which are previewed live. If you save a **Simple Preset** all these changes can be saved without changing the shader chain ## Editing the Shader Chain @@ -34,23 +35,23 @@ The Shader Chain which is a stack of shader passes each one pointing to a specif All Changes to the shader chain will force a **Full Preset** to be saved even if you have chosen to save a **Simple Preset** - **Prepend** - - Prepend Preset adds a preset you choose before the currently loaded shader chain + - Prepend Preset adds a preset you choose before the currently loaded shader chain - **Append** - - Append Preset adds a preset you choose after the currently loaded shader chain + - Append Preset adds a preset you choose after the currently loaded shader chain - **Shader Passes**: The number of shader passes to use. - For every **Shader Pass** you can configure: - - **Shader #N**: Path to a shader. - - All shaders must be of the same type (i.e. .glsl, .slang, or .cg). - - **Shader #N Filter**: Hardware filter used for scaling. - - **Don't Care** uses `Settings -> Video -> Bilinear Scale`. - - **Shader #N Scale**: Scale for this pass. - - The scale factor accumulates, i.e. 2x for first pass and 2x for second pass will give you a 4x total scale. - - The last pass in the chain then is stretched to fullscreen using the `Settings -> Video -> Bilinear Scale` filter setting. - - "Don't Care" uses **source** scale mode at 1x which means this pass will have the same resolution as the previous pass. - - If the pass uses scaling methods which are not simple, (i.e. source scaling, different scaling factor for X/Y), the scaling factors can’t be displayed in the UI so the value shown may not be correct. + - **Shader #N**: Path to a shader. + - All shaders must be of the same type (i.e. .glsl, .slang, or .cg). + - **Shader #N Filter**: Hardware filter used for scaling. + - **Don't Care** uses `Settings -> Video -> Bilinear Scale`. + - **Shader #N Scale**: Scale for this pass. + - The scale factor accumulates, i.e. 2x for first pass and 2x for second pass will give you a 4x total scale. + - The last pass in the chain then is stretched to fullscreen using the `Settings -> Video -> Bilinear Scale` filter setting. + - "Don't Care" uses **source** scale mode at 1x which means this pass will have the same resolution as the previous pass. + - If the pass uses scaling methods which are not simple, (i.e. source scaling, different scaling factor for X/Y), the scaling factors can’t be displayed in the UI so the value shown may not be correct. - **Apply Changes**: You must use this to rebuild the shader chain to see your changes after adjusting any settings in the shader passes or the number of passes with **Shader Passes**. --- @@ -78,11 +79,11 @@ Note that if a **Simple Preset** has been automatically loaded (Global, Core, Co **Simple Preset Special Cases when Saving** - **Saving Over the loaded Preset:** - - E.G. there are presets Preset_A, Preset_B, Preset_B references Preset_A. Preset_B is loaded then the user chooses to save over top of Preset_B. The reference to Preset_A is used instead of creating a a new reference to Preset_B which would be a cyclical reference. All current parameter values which differ from Preset_A will all be saved. + - E.G. there are presets Preset_A, Preset_B, Preset_B references Preset_A. Preset_B is loaded then the user chooses to save over top of Preset_B. The reference to Preset_A is used instead of creating a a new reference to Preset_B which would be a cyclical reference. All current parameter values which differ from Preset_A will all be saved. - **Saving Over the preset referenced by the loaded preset:** - - E.G. there are presets Preset_A, Preset_B and Preset_C, Preset_C references Preset_B which references Preset_A. The user loads Preset_C then saves over of Preset_B. The reference path to Preset A will be used to avoid a cyclical reference chain. All current parameter values which differ from Preset_A will all be saved. + - E.G. there are presets Preset_A, Preset_B and Preset_C, Preset_C references Preset_B which references Preset_A. The user loads Preset_C then saves over of Preset_B. The reference path to Preset A will be used to avoid a cyclical reference chain. All current parameter values which differ from Preset_A will all be saved. - **Saving Over a preset further up the chain:** - - E.G. there are presets Preset_A, Preset_B, Preset_C and Preset_D. Preset_D references Preset_C which references Preset_B which references Preset_A. The user loads Preset_C then saves over of Preset_A. A full preset will be saved with all the passes and parameter values to avoid a cyclical reference chain. + - E.G. there are presets Preset_A, Preset_B, Preset_C and Preset_D. Preset_D references Preset_C which references Preset_B which references Preset_A. The user loads Preset_C then saves over of Preset_A. A full preset will be saved with all the passes and parameter values to avoid a cyclical reference chain. --- ## Advanced Referencing and .params files @@ -98,10 +99,12 @@ Note that if a **Simple Preset** has been automatically loaded (Global, Core, Co Paths can be specified as relative paths or abbreviated root paths **Abbreviated Root Path Format** E.G. + - `:/shaders/shaders_slang/stock.slang` - `:/` stands for the root of the Retroarch folder **Relative Format** E.G. + - `shaders_slang/stock.slang` - This path corresponds to the path to stock.slang relative to a preset which is saved in the shaders folder diff --git a/docs/guides/tv.md b/docs/guides/tv.md index 9b3b92ac2b..88a6302738 100644 --- a/docs/guides/tv.md +++ b/docs/guides/tv.md @@ -47,7 +47,7 @@ Enabling this feature allows you to use your TV remote to control your Digital M * **Basic Navigation:** The physical **Arrows, OK, Back, and Exit** buttons. * **The Menu/Options Button:** Often labeled as **`...`** or **`123`**, this button brings up the TV's on-screen overlay. It adds a virtual **"HOME"** shortcut specifically for your digital media player. - - **Note:** This virtual shortcut is necessary because the physical **HOME** button on your remote is hardwired directly to the TV's own operating system and cannot communicate with your streaming device. + - **Note:** This virtual shortcut is necessary because the physical **HOME** button on your remote is hardwired directly to the TV's own operating system and cannot communicate with your streaming device. ### The Problem: RetroArch Lockout diff --git a/docs/guides/web-player.md b/docs/guides/web-player.md index 43a619a49d..7b75217a38 100644 --- a/docs/guides/web-player.md +++ b/docs/guides/web-player.md @@ -14,6 +14,7 @@ You can access it from this [link](https://web.libretro.com/) using a modern int 1. Select the **Core** to run from the **first tab**(Clicking on the Core name will start running). *Core loading time may vary depending on the selected Core. During this time, your system's performance and actively used processes can cause your browser to crash. In this case, the option Wait or End will be displayed on your screen. In this case, click Wait, it may come out several times.* ![Main Screen](../image/guides/web-player-2.jpg) + 1. Choose your content to load by clicking **Add Content** from the **second tab**. *This will add your content to your browser's cache. We will be able to delete it later.* 1. To access the file you uploaded `Load Content> Start Directory >` @@ -25,11 +26,11 @@ You can access it from this [link](https://web.libretro.com/) using a modern int We can use the basic features of RetroArch. - How can I toggle Quick Menu? - - You can either press F1 or click the Menu Toggle button which is ![Menu Toggle](../image/guides/web-player-quick-menu.jpg) + - You can either press F1 or click the Menu Toggle button which is ![Menu Toggle](../image/guides/web-player-quick-menu.jpg) - How can I go full screen? - - You do not want to press F11 when the screen is selected, this key usually takes you to full screen, but in our scenario you need to use the Full Screen key which is ![Fullscreen button](../image/guides/web-player-fullscreen-btn.jpg). + - You do not want to press F11 when the screen is selected, this key usually takes you to full screen, but in our scenario you need to use the Full Screen key which is ![Fullscreen button](../image/guides/web-player-fullscreen-btn.jpg). - How can I delete the cache? - - There are many methods for this, you can do CTRL + F5, right click the cursor and go to the inspect and right click on the refresh button on the top left and clear the cache, press the clear cache key ![Cleanup](../image/guides/web-player-cleanup.jpg). + - There are many methods for this, you can do CTRL + F5, right click the cursor and go to the inspect and right click on the refresh button on the top left and clear the cache, press the clear cache key ![Cleanup](../image/guides/web-player-cleanup.jpg). You can also click the `Help` button and read this information there. diff --git a/docs/guides/xmb-menu-map.md b/docs/guides/xmb-menu-map.md index 00c18a0155..3fd4372faa 100644 --- a/docs/guides/xmb-menu-map.md +++ b/docs/guides/xmb-menu-map.md @@ -11,7 +11,7 @@ - Show Desktop Menu - **Online Updater** - **Core Downloader** - - (Availability of cores varies by platform/device) + - (Availability of cores varies by platform/device) - Update Installed Cores - Playlist Thumbnails Updater - **Content Downloader** @@ -24,14 +24,14 @@ - Update (Slang/GLSL/Cg; varies by active video driver) Shaders - On-Demand Thumbnail Downloads - **Information** - - **Network Information** - - (Varies by device) - - **System Information** - - (Varies by device) - - **Database Manager** - - (Varies by available databases) - - **Cursor Manager** - - (Varies by available cursors) + - **Network Information** + - (Varies by device) + - **System Information** + - (Varies by device) + - **Database Manager** + - (Varies by available databases) + - **Cursor Manager** + - (Varies by available cursors) - **Configuration File** - Load Configuration ... - Reset to Defaults @@ -56,42 +56,42 @@ - MIDI - **Video** - **CRT SwitchRes** - - CRT SwitchRes - - CRT Super Resolution - - X-Axis Centering - - Porch Adjust - - Use Custom Refresh Rate + - CRT SwitchRes + - CRT Super Resolution + - X-Axis Centering + - Porch Adjust + - Use Custom Refresh Rate - **Output** - - Video (Duplicate/Shortcut to Settings > Driver > video) - - Monitor Index - - Video Rotation - - GPU Index - - Vertical Refresh Rate - - Estimated Screen Refresh Rate - - Set Display-Reported Refresh Rate + - Video (Duplicate/Shortcut to Settings > Driver > video) + - Monitor Index + - Video Rotation + - GPU Index + - Vertical Refresh Rate + - Estimated Screen Refresh Rate + - Set Display-Reported Refresh Rate - **Fullscreen Mode** - - Start in Fullscreen Mode - - Windowed Fullscreen Mode - - Fullscreen Width - - Fullscreen Height + - Start in Fullscreen Mode + - Windowed Fullscreen Mode + - Fullscreen Width + - Fullscreen Height - **Windowed Mode** - - Windowed Scale - - Window Opacity - - Show Window Decorations - - Remember Window Position and Size - - Window Width - - Window Height + - Windowed Scale + - Window Opacity + - Show Window Decorations + - Remember Window Position and Size + - Window Width + - Window Height - **Scaling** - - Integer Scale - - Aspect Ratio - - Custom Aspect Ratio - - Crop Overscan + - Integer Scale + - Aspect Ratio + - Custom Aspect Ratio + - Crop Overscan - **Synchronization** - - Vertical Sync (VSync) - - Vsync Swap Interval - - Frame Delay - - Max swapchain images - - Sync to Exact Content Framerate + - Vertical Sync (VSync) + - Vsync Swap Interval + - Frame Delay + - Max swapchain images + - Sync to Exact Content Framerate - Suspend Screensaver - Threaded Video - Black Frame Insertion @@ -101,45 +101,45 @@ - Video Filter ... - **Audio** - **Output** - - Audio - - Audio (Duplicate/Shortcut to Settings > Driver > Audio) - - Device - - Audio Latency (ms) + - Audio + - Audio (Duplicate/Shortcut to Settings > Driver > Audio) + - Device + - Audio Latency (ms) - **Resampler** - - Audio Resampler - - Resampler Quality - - Output Rate (Hz) + - Audio Resampler + - Resampler Quality + - Output Rate (Hz) - **Synchronization** - - Synchronization - - Maximum Timing Skew - - Dynamic Audio Rate Control + - Synchronization + - Maximum Timing Skew + - Dynamic Audio Rate Control - **MIDI** - - Input - - Output - - Volume + - Input + - Output + - Volume - **Mixer** - - Mixer Stream #1 - - Mixer Stream #2 - - Mixer Stream #3 - - Mixer Stream #4 - - Mixer Stream #5 - - Mixer Stream #6 - - Mixer Stream #7 - - Mixer Stream #8 - - Mixer Stream #9 - - Mixer Stream #10 - - Mixer Stream #11 - - Mixer Stream #12 - - Mixer Stream #13 - - Mixer Stream #14 - - Mixer Stream #15 - - Mixer Stream #16 + - Mixer Stream #1 + - Mixer Stream #2 + - Mixer Stream #3 + - Mixer Stream #4 + - Mixer Stream #5 + - Mixer Stream #6 + - Mixer Stream #7 + - Mixer Stream #8 + - Mixer Stream #9 + - Mixer Stream #10 + - Mixer Stream #11 + - Mixer Stream #12 + - Mixer Stream #13 + - Mixer Stream #14 + - Mixer Stream #15 + - Mixer Stream #16 - **Menu Sounds** - - Mixer - - Enable 'OK' Sound - - Enable 'Cancel' Sound - - Enable 'Notice' Sound - - Enable 'BGM' Sound + - Mixer + - Enable 'OK' Sound + - Enable 'Cancel' Sound + - Enable 'Notice' Sound + - Enable 'BGM' Sound - Mute - Mixer Mute - Mute When Fast-Forwarding @@ -161,81 +161,81 @@ - Auxiliary Sensor Input - Auto Enable 'Game Focus' Mode - **Menu Controls** - - Unified Menu Controls - - Menu Swap OK and Cancel Buttons - - Menu Scroll Acceleration - - Menu Scroll Delay + - Unified Menu Controls + - Menu Swap OK and Cancel Buttons + - Menu Scroll Acceleration + - Menu Scroll Delay - **Hotkeys** - - Confirm Quit - - Menu Toggle Controller Combo - - Hotkey Enable - - Hotkey Enable Delay (Frames) - - Fast-Forward (Toggle) - - Fast-Forward (Hold) - - Slow-Motion (Toggle) - - Slow-Motion (Hold) - - Load State - - Save State - - Fullscreen (Toggle) - - Close Content - - Quit RetroArch - - Save State Slot + - - Save State Slot - - - Rewind - - Record Input Replay (Toggle) - - Pause (Toggle) - - Frameadvance - - Reset Game - - Next Shader - - Previous Shader - - Next Cheat Index - - Previous Cheat Index - - Cheats (Toggle) - - Take Screenshot - - Audio Mute (Toggle) - - On-Screen Keyboard (Toggle) - - Show FPS (Toggle) - - Send Debug Info - - Netplay Hosting (Toggle) - - Netplay Play/Spectate Mode (Toggle) - - Volume Up - - Volume Down - - Next overlay - - Disc Eject Toggle - - Next Disc - - Previous Disc - - Grab Mouse (Toggle) - - Game Focus (Toggle) - - Desktop Menu (Toggle) - - Menu (Toggle) - - Recording (Toggle) - - Streaming (Toggle) - - Run-Ahead (Toggle) - - AI Service + - Confirm Quit + - Menu Toggle Controller Combo + - Hotkey Enable + - Hotkey Enable Delay (Frames) + - Fast-Forward (Toggle) + - Fast-Forward (Hold) + - Slow-Motion (Toggle) + - Slow-Motion (Hold) + - Load State + - Save State + - Fullscreen (Toggle) + - Close Content + - Quit RetroArch + - Save State Slot + + - Save State Slot - + - Rewind + - Record Input Replay (Toggle) + - Pause (Toggle) + - Frameadvance + - Reset Game + - Next Shader + - Previous Shader + - Next Cheat Index + - Previous Cheat Index + - Cheats (Toggle) + - Take Screenshot + - Audio Mute (Toggle) + - On-Screen Keyboard (Toggle) + - Show FPS (Toggle) + - Send Debug Info + - Netplay Hosting (Toggle) + - Netplay Play/Spectate Mode (Toggle) + - Volume Up + - Volume Down + - Next overlay + - Disc Eject Toggle + - Next Disc + - Previous Disc + - Grab Mouse (Toggle) + - Game Focus (Toggle) + - Desktop Menu (Toggle) + - Menu (Toggle) + - Recording (Toggle) + - Streaming (Toggle) + - Run-Ahead (Toggle) + - AI Service - **Turbo Fire** - - Turbo Period - - Turbo Duty Cycle - - Turbo Mode - - Turbo Default Button + - Turbo Period + - Turbo Duty Cycle + - Turbo Mode + - Turbo Default Button - **Port 1 Controls** - - Device Type - - Analog to Digital Type - - Device Index - - Mouse Index - - Set All Controls - - Reset to Default Controls - - Save Controller Profile - - (RetroPad Mapping) - - (Gun Mapping) - - Turbo + - Device Type + - Analog to Digital Type + - Device Index + - Mouse Index + - Set All Controls + - Reset to Default Controls + - Save Controller Profile + - (RetroPad Mapping) + - (Gun Mapping) + - Turbo - **Port 2 Controls** - - (Same as Port 1) + - (Same as Port 1) - **Port 3 Controls** - - (Same as Port 1) + - (Same as Port 1) - **Port 4 Controls** - - (Same as Port 1) + - (Same as Port 1) - **Port 5 Controls** - - (Same as Port 1) + - (Same as Port 1) - (possibly more/less based on 'Maximum Users' setting) - **Latency** - Max swapchain images (Duplicate/Shortcut to Settings > Video > Synchronization > Max swapchain images) @@ -243,9 +243,9 @@ - Audio Latency (ms) - Polling Behavior - **Run-Ahead to Reduce Latency** - - Number of Frames to Run-Ahead - - Use Second Instance for Run-Ahead - - Hide Run-Ahead Warnings + - Number of Frames to Run-Ahead + - Use Second Instance for Run-Ahead + - Hide Run-Ahead Warnings - **Core** - Hardware Shared Context - Allow Cores to Switch the Video Driver @@ -294,15 +294,15 @@ - Remember Last Used Start Directory - **Frame Throttle** - **Rewind** - - Rewind Support - - Rewind Frames - - Rewind Buffer Size (MB) - - Rewind Buffer Size Step (MB) + - Rewind Support + - Rewind Frames + - Rewind Buffer Size (MB) + - Rewind Buffer Size Step (MB) - **Frame Time Counter** - - Estimated Screen Refresh Rate - - Reset after Fast-Forward - - Reset after Load State - - Reset after Save State + - Estimated Screen Refresh Rate + - Reset after Fast-Forward + - Reset after Load State + - Reset after Save State - Fast-Forward Rate - Slow-Motion Rate - Sync to Exact Content Framerate (Duplicate/Shortcut to Settings > Video > Synchronization > Sync to Exact Content Framerate) @@ -321,159 +321,159 @@ - UDP Stream Port - **On-Screen Display** - **On-Screen Overlay** - - Display Overlay - - Hide Overlay in Menu - - Hide Overlay When Controller is Connected - - Show Inputs on Overlay - - Show Mouse Cursor With Overlay - - Auto-Rotate Overlay - - Auto-Scale Overlay - - Overlay Preset ... - - Overlay Opacity - - (Landscape) Overlay Scale - - (Landscape) Overlay Aspect Adjustment - - (Landscape) Overlay Horizontal Separation - - (Landscape) Overlay Vertical Separation - - (Landscape) Overlay X Offset - - (Landscape) Overlay Y Offset - - (Portrait) Overlay Scale - - (Portrait) Overlay Aspect Adjustment - - (Portrait) Overlay Horizontal Separation - - (Portrait) Overlay Vertical Separation - - (Portrait) Overlay X Offset - - (Portrait) Overlay Y Offset + - Display Overlay + - Hide Overlay in Menu + - Hide Overlay When Controller is Connected + - Show Inputs on Overlay + - Show Mouse Cursor With Overlay + - Auto-Rotate Overlay + - Auto-Scale Overlay + - Overlay Preset ... + - Overlay Opacity + - (Landscape) Overlay Scale + - (Landscape) Overlay Aspect Adjustment + - (Landscape) Overlay Horizontal Separation + - (Landscape) Overlay Vertical Separation + - (Landscape) Overlay X Offset + - (Landscape) Overlay Y Offset + - (Portrait) Overlay Scale + - (Portrait) Overlay Aspect Adjustment + - (Portrait) Overlay Horizontal Separation + - (Portrait) Overlay Vertical Separation + - (Portrait) Overlay X Offset + - (Portrait) Overlay Y Offset - **Video Layout** - - Enable Video Layout - - Video Layout Path ... - - Selected View + - Enable Video Layout + - Video Layout Path ... + - Selected View - **On-Screen Notification** - - **Notification Visibility** - - Display Framerate - - Display Frame Count - - Display Statistics - - Display Memory Usage - - "Load Content" Startup Notification - - Input (Autoconfig) Connection Notification - - Cheat Code Notifications - - Input Remap Loaded Notifications - - Config Override Loaded Notifications - - Initial Disc Restored Notifications - - Fast-Forward Notifications - - Screenshot Notifications - - Screenshot Notification Persistence - - Screenshot Flash Effect - - Refresh Rate Notifications - - On-Screen Notifications - - Graphics Widgets - - Scale Graphics Widgets Automatically - - Notification Font ... - - Notification Size + - **Notification Visibility** + - Display Framerate + - Display Frame Count + - Display Statistics + - Display Memory Usage + - "Load Content" Startup Notification + - Input (Autoconfig) Connection Notification + - Cheat Code Notifications + - Input Remap Loaded Notifications + - Config Override Loaded Notifications + - Initial Disc Restored Notifications + - Fast-Forward Notifications + - Screenshot Notifications + - Screenshot Notification Persistence + - Screenshot Flash Effect + - Refresh Rate Notifications + - On-Screen Notifications + - Graphics Widgets + - Scale Graphics Widgets Automatically + - Notification Font ... + - Notification Size - **User Interface** - **Menu Item Visibility** - - **Quick Menu** - - Show 'Resume' - - Show 'Restart' - - Show 'Close Content' - - Show 'Take Screenshot' - - Show 'Save/Load State' - - Show 'Undo Save/Load State' - - Show 'Add to Favorites' - - Show 'Start Recording' - - Show 'Start Streaming' - - Show 'Set Core Association' - - Show 'Reset Core Association' - - Show 'Options' - - Show 'Controls' - - Show 'Cheats' - - Show 'Shaders' - - Show 'Rewind' - - Show 'Latency' - - Show 'On-Screen Overlay - - Show 'Video Layout - - Show 'Save Core Overrides' - - Show 'Save Game Overrides' + - **Quick Menu** + - Show 'Resume' + - Show 'Restart' + - Show 'Close Content' + - Show 'Take Screenshot' + - Show 'Save/Load State' + - Show 'Undo Save/Load State' + - Show 'Add to Favorites' + - Show 'Start Recording' + - Show 'Start Streaming' + - Show 'Set Core Association' + - Show 'Reset Core Association' + - Show 'Options' + - Show 'Controls' + - Show 'Cheats' + - Show 'Shaders' + - Show 'Rewind' + - Show 'Latency' + - Show 'On-Screen Overlay + - Show 'Video Layout + - Show 'Save Core Overrides' + - Show 'Save Game Overrides' + - Show 'Information' + - Show 'Download Thumbnails' + - **Settings** + - Show 'Drivers' + - Show 'Video' + - Show 'Audio' + - Show 'Input' + - Show 'Latency' + - Show 'Core' + - Show 'Configuration' + - Show 'Saving' + - Show 'Logging' + - Show 'File Browser' + - Show 'Recording' + - Show 'On-Screen Display' + - Show 'User Interface' + - Show 'AI Service' + - Show 'Accessibility' + - Show 'Power Management' + - Show 'Achievements' + - Show 'Network' + - Show 'Playlists' + - Show 'User' + - Show 'Directory' + - Show 'Load Core' + - Show 'Load Content' + - Show 'Load Disc' + - Show 'Dump Disc' + - Show 'Online Updater' + - Show 'Core Downloader' + - Show Legacy 'Thumbnails Updater' - Show 'Information' - - Show 'Download Thumbnails' - - **Settings** - - Show 'Drivers' - - Show 'Video' - - Show 'Audio' - - Show 'Input' - - Show 'Latency' - - Show 'Core' - - Show 'Configuration' - - Show 'Saving' - - Show 'Logging' - - Show 'File Browser' - - Show 'Recording' - - Show 'On-Screen Display' - - Show 'User Interface' - - Show 'AI Service' - - Show 'Accessibility' - - Show 'Power Management' - - Show 'Achievements' - - Show 'Network' + - Show 'Configuration File' + - Show 'Help' + - Show 'Quit RetroArch' + - Show 'Restart RetroArch' + - Show 'Settings' + - Set Password for Enabling 'Settings' + - Show 'Explore' + - Show 'Favorites' + - Show 'Images' + - Show 'Music' + - Show 'Videos' + - Show 'Netplay' + - Show 'History' + - Show 'Import Content' - Show 'Playlists' - - Show 'User' - - Show 'Directory' - - Show 'Load Core' - - Show 'Load Content' - - Show 'Load Disc' - - Show 'Dump Disc' - - Show 'Online Updater' - - Show 'Core Downloader' - - Show Legacy 'Thumbnails Updater' - - Show 'Information' - - Show 'Configuration File' - - Show 'Help' - - Show 'Quit RetroArch' - - Show 'Restart RetroArch' - - Show 'Settings' - - Set Password for Enabling 'Settings' - - Show 'Explore' - - Show 'Favorites' - - Show 'Images' - - Show 'Music' - - Show 'Videos' - - Show 'Netplay' - - Show 'History' - - Show 'Import Content' - - Show 'Playlists' - - Show Date and Time - - Style of Date and Time - - Date Separator - - Show Battery Level - - Show Core Name - - Show Menu Sub-Labels - - Display Start Screens + - Show Date and Time + - Style of Date and Time + - Date Separator + - Show Battery Level + - Show Core Name + - Show Menu Sub-Labels + - Display Start Screens - **Appearance** - - Menu Scale Factor - - Background Image ... - - Dynamic Background - - Background Opacity - - Framebuffer Opacity - - Horizontal Animation - - Animation Horizontal Icon Highlight - - Animation Move Up/Down - - Animation Main Menu Opens/Closes - - Menu Alpha Factor - - Menu Font ... - - Menu Font Color (Red) - - Menu Font Color (Green) - - Menu Font Color (Blue) - - Menu Layout - - Menu Icon Theme - - Icon Shadows - - Menu Shader Pipeline - - Menu Color Theme - - Thumbnails - - Left Thumbnail - - Thumbnails Vertical Disposition - - Thumbnail Scale Factor - - Thumbnail Upscaling Threshold - - Ticker Text Animation - - Ticker Text Speed - - Smooth Ticker Text + - Menu Scale Factor + - Background Image ... + - Dynamic Background + - Background Opacity + - Framebuffer Opacity + - Horizontal Animation + - Animation Horizontal Icon Highlight + - Animation Move Up/Down + - Animation Main Menu Opens/Closes + - Menu Alpha Factor + - Menu Font ... + - Menu Font Color (Red) + - Menu Font Color (Green) + - Menu Font Color (Blue) + - Menu Layout + - Menu Icon Theme + - Icon Shadows + - Menu Shader Pipeline + - Menu Color Theme + - Thumbnails + - Left Thumbnail + - Thumbnails Vertical Disposition + - Thumbnail Scale Factor + - Thumbnail Upscaling Threshold + - Ticker Text Animation + - Ticker Text Speed + - Smooth Ticker Text - Menu (Duplication/Shortcut to Settings > Driver > Menu) - Show Advanced Settings - Kiosk Mode @@ -562,12 +562,12 @@ - stdin Commands - On-Demand Thumbnail Downloads - **Updater** - - Buildbot Cores URL - - Buildbot Assets URL - - Automatically Extract Downloaded Archive - - Show Experimental Cores - - Backup Cores When Updating - - Core Backup History Size + - Buildbot Cores URL + - Buildbot Assets URL + - Automatically Extract Downloaded Archive + - Show Experimental Cores + - Backup Cores When Updating + - Core Backup History Size - **Playlists** - History - History Size @@ -587,22 +587,22 @@ - Save Runtime Log (Aggregate) - Portable Playlists - **Manage Playlists** - - (Varies by user's playlists) + - (Varies by user's playlists) - **User** - **Privacy** - - (Varies by device) + - (Varies by device) - **Accounts** - - **RetroAchievements** + - **RetroAchievements** + - Username + - Password + - **YouTube** + - YouTube Stream Key + - **Twitch** + - Twitch Stream Key + - **Facebook Gaming** + - Facebook Gaming Stream Key - Username - - Password - - **YouTube** - - YouTube Stream Key - - **Twitch** - - Twitch Stream Key - - **Facebook Gaming** - - Facebook Gaming Stream Key - - Username - - Language + - Language - **Directory** - System/BIOS - Downloads @@ -701,17 +701,17 @@ - Save Game Remap File - **Turbo Fire** (Duplicate/Shortcut to Settings > Input > Turbo Fire) - **Port 1 Controls** - - Device Type - - Analog to Digital Type - - (RetroPad to Core functions; varies by core) + - Device Type + - Analog to Digital Type + - (RetroPad to Core functions; varies by core) - **Port 2 Controls** - - (Same as Port 1 Controls) + - (Same as Port 1 Controls) - **Port 3 Controls** - - (Same as Port 1 Controls) + - (Same as Port 1 Controls) - **Port 4 Controls** - - (Same as Port 1 Controls) + - (Same as Port 1 Controls) - **Port 5 Controls** - - (Same as Port 1 Controls) + - (Same as Port 1 Controls) - (More or Fewer Ports based on Settings > Input > Maximum Users) - **Cheats** - Start or Continue Cheat Search @@ -731,18 +731,18 @@ - Remember Last Used Shader Directory - Load ... - **Save** - - Simple Presets - - Save Shader Preset As ... - - Save Global Preset - - Save Core Preset - - Save Content Directory Preset - - Save Game Preset + - Simple Presets + - Save Shader Preset As ... + - Save Global Preset + - Save Core Preset + - Save Content Directory Preset + - Save Game Preset - **Remove** - Apply Changes - **Shader Parameters** - - (Varies by active shader preset) + - (Varies by active shader preset) - **Shader Passes** - - (Varies by active shader preset) + - (Varies by active shader preset) - **Overrides** - Save Core Overrides - Save Content Directory Overrides diff --git a/docs/library/dolphin.md b/docs/library/dolphin.md index e87c61decf..ea734d7451 100644 --- a/docs/library/dolphin.md +++ b/docs/library/dolphin.md @@ -47,8 +47,10 @@ current source code. We provide two methods: one using *Git* and one without. 2. After downloading/extracting the code, navigate into the resulting source tree folder. The `Sys` folder you need is located in *Data/Sys*. This is the folder we will need to move/copy. + 3. *Find RetroArch's system folder path* If you didn't change its default location, the `system` folder is located at the top level of your RetroArch installation folder. Whether you moved it or not, you can find the location of your `system` folder (along with any other folders RetroArch uses) by going to Settings > Directory or by locating the *system_directory* line in the RetroArch configuration file (usually `retroarch.cfg`). + 4. In the `RETROARCH_SYSTEM_FOLDER`, create a new folder named *dolphin-emu* and move/copy the `Sys` folder into it. When everything is set up properly, the `Sys` folder path should look something like this: diff --git a/docs/library/dosbox_pure.md b/docs/library/dosbox_pure.md index ff9509f3b6..2b7777fb00 100644 --- a/docs/library/dosbox_pure.md +++ b/docs/library/dosbox_pure.md @@ -166,6 +166,7 @@ The core automatically executes `DOSBOX.BAT` instead of showing the start menu i If a .conf file gets selected in the frontend, DOSBox Pure will load it directly and run its autoexec commands. Alternatively, a .conf file can get loaded automatically depending on the 'Emulation > Loading of dosbox.conf' [core option](#emulation-options). There are two modes that can be enabled: + - "Try 'dosbox.conf' in the loaded content (ZIP or folder)" - Will load C:\DOSBOX.CONF automatically if it exists in the mounted ZIP or path - "Try '.conf' with same name as loaded content (next to ZIP or folder)" - Will automatically load GAME.conf next to GAME.zip if it exists. @@ -743,5 +744,6 @@ Boppin' uses some form of joystick calibration which depends on the speed of the - [Official/Original DOSBox SourceForge Repository](https://sourceforge.net/projects/dosbox/) - [Libretro DOSBox Pure info file](https://github.com/libretro/libretro-super/blob/master/dist/info/dosbox_pure_libretro.info) ![#f03c15] + - [Libretro DOSBox Pure GitHub Repository](https://github.com/schellingb/dosbox-pure) - [Report Libretro DOSBox Pure core Issues Here](https://github.com/schellingb/dosbox-pure/issues) diff --git a/docs/library/ep128emu.md b/docs/library/ep128emu.md index 188b3f9d22..ffb7939222 100644 --- a/docs/library/ep128emu.md +++ b/docs/library/ep128emu.md @@ -7,6 +7,7 @@ Leverage the convenience of libretro/retroarch to emulate the Z80 based home computers that the original ep128emu supports - that is, Enterprise 64/128, Videoton TVC, Amstrad CPC and ZX Spectrum. Focus is on Enterprise and TVC. The ep128emu core has been authored by: + - Istvan Varga (ep128emu) - Zoltan Balogh (libretro core specific modifications) diff --git a/docs/library/fbneo.md b/docs/library/fbneo.md index a8006d5330..a9274d5fcc 100644 --- a/docs/library/fbneo.md +++ b/docs/library/fbneo.md @@ -429,6 +429,7 @@ That driver was disabled, it didn't meet our quality criteria. There are no plan It was streamlined into a global `Video Settings > Resolution` core option affecting all vector games at once, with new resolutions available. For best visual results, it's recommended to match your screen's height, some examples using a 1080p screen : + * for horizontal games, you'll want to use 1440x1080 * for vertical games (tempest, tacscan), if you are running them on a vertical screen with the settings to rotate them, you'll also want to use 1440x1080 * for those same vertical games, if you are running them at default settings on a horizontal screen, you'll want to use 1080x810 diff --git a/docs/library/flycast.md b/docs/library/flycast.md index 1c18355189..5baa7ce5d1 100644 --- a/docs/library/flycast.md +++ b/docs/library/flycast.md @@ -21,6 +21,7 @@ A summary of the licenses behind RetroArch and its cores can be found [here](../ {== Example (MAME ID=ikaruga) + - [ROM FOLDER]/ikaruga.zip - [ROM FOLDER]/ikaruga/gdl-0010.chd ==} diff --git a/docs/library/gambatte.md b/docs/library/gambatte.md index 8720fcd5db..e1c08d13bb 100644 --- a/docs/library/gambatte.md +++ b/docs/library/gambatte.md @@ -111,11 +111,11 @@ The Gambatte core saves/loads to/from these directories. - The [core option](#core-options) `GB Colorization` enables colorization of Game Boy games, using pre-defined or user-selected color palettes. - When satisfied you can save the currently chosen palette per the whole core, per content-directory or per game with the usual RetroArch [override](../guides/overrides.md) mechanism. - During gameplay you can instantly swap color palettes. - - You can cycle through the available color palettes with the [L/R shoulder buttons](#joypad). + - You can cycle through the available color palettes with the [L/R shoulder buttons](#joypad). - (Source: Feature request in issue [182](https://github.com/libretro/gambatte-libretro/issues/182) was implemented in pull request [204](https://github.com/libretro/gambatte-libretro/pull/204) in October 2021) - - This is ideal for your initial browsing / exploration of the color palettes. - - But also if you spontanously want to change the palette in your currently running game. + (Source: Feature request in issue [182](https://github.com/libretro/gambatte-libretro/issues/182) was implemented in pull request [204](https://github.com/libretro/gambatte-libretro/pull/204) in October 2021) + - This is ideal for your initial browsing / exploration of the color palettes. + - But also if you spontanously want to change the palette in your currently running game. ### Custom palettes for Game Boy games diff --git a/docs/library/hatarib.md b/docs/library/hatarib.md index c99f5248ab..3c668bc7fa 100644 --- a/docs/library/hatarib.md +++ b/docs/library/hatarib.md @@ -49,6 +49,7 @@ If using a hard disk, TOS 1.04 is recommended instead, because the operating sys Content that can be loaded by the hatariB core have the following file extensions: Disk images: + - st - msa - dim @@ -57,15 +58,18 @@ Disk images: - ctr^*^ Multi-disk playlists: + - m3u - m3u8 Multi-disk archives: + - zip - zst - gz Hard Drive images: + - acsi - ahd - vhd diff --git a/docs/library/lrps2.md b/docs/library/lrps2.md index b08a4196ea..70f3c5a288 100644 --- a/docs/library/lrps2.md +++ b/docs/library/lrps2.md @@ -64,6 +64,7 @@ If you don't have access to the `Core System Files Downloader` for whatever reas First, you will need to download the `GameIndex.yaml` file from the core's source code repository on [Github](https://github.com/libretro/ps2). [This](https://raw.githubusercontent.com/libretro/ps2/refs/heads/libretroization/bin/resources/GameIndex.yaml) is a direct link to the file, but if that link breaks in the future, the database file is typically housed in the `bin/resources` directory. Once you have the `GameIndex.yaml` database: + 1. Navigate to your 'system'/BIOS directory (the location of which you can find/confirm by going to settings > directory in the RetroArch menu), then create a directory named `pcsx2` (must be in all lower-case). 2. Inside your new `pcsx2` directory, you'll make another directory named `resources` (again, all lower-case) 3. Place the `GameIndex.yaml` inside of it. The final structure should be `system/pcsx2/resources/GameIndex.yaml`. diff --git a/docs/library/mame_2003.md b/docs/library/mame_2003.md index 824f1a1e24..004e47170f 100644 --- a/docs/library/mame_2003.md +++ b/docs/library/mame_2003.md @@ -66,15 +66,18 @@ BIOS romsets are not needed when using "Full Non-Merged" arcade romsets. For "Sp ``` /libretro content dir/blitz/blitz.chd ``` + * Some games require an additional zip file with recorded sounds or music in order for audio to work correctly. Audio 'sample' files should be placed in subdirectories within `/libretro system dir/mame2003/` e.g.: ``` /libretro system dir/mame2003/samples/ ``` + * Cheat and history metadata files should be moved from github's [`/libretro/mame2003-libretro/tree/master/metadata`](https://github.com/libretro/mame2003-libretro/tree/master/metadata) and placed within `/libretro system dir/mame2003/` e.g.: ``` /libretro system dir/mame2003/cheat.dat /libretro system dir/mame2003/history.dat ``` + * User-generated content is placed in sub-directories within `/libretro savefile dir/mame2003/` e.g.: ``` /libretro savefile dir/mame2003/diff/ diff --git a/docs/library/numero.md b/docs/library/numero.md index 0a8db74f30..26b0843f00 100644 --- a/docs/library/numero.md +++ b/docs/library/numero.md @@ -91,46 +91,46 @@ The Numero core saves/loads to/from the default frontend's save directory. ## Usage - The Emulator will save your progress every 10 seconds - - this is done in the background since the calculator doesn't really have any "long term storage" - - everything was always just saved in RAM - - or if you just select "Close Content" in RetroArch that will also immediately save your progress + - this is done in the background since the calculator doesn't really have any "long term storage" + - everything was always just saved in RAM + - or if you just select "Close Content" in RetroArch that will also immediately save your progress - You can run the core without any content by just selecting "Start Core" - There are two control schemes - - Joypad which is the default - - And "Gaming Buttons" which is more suited towards gaming - - You can move the virtual mouse with the left stick - - and by Pressing R2 to click - - You can also use the D-Pad and A Button if using the Joypad scheme - - Change the virtual mouse speed in the core Options + - Joypad which is the default + - And "Gaming Buttons" which is more suited towards gaming + - You can move the virtual mouse with the left stick + - and by Pressing R2 to click + - You can also use the D-Pad and A Button if using the Joypad scheme + - Change the virtual mouse speed in the core Options - You can toggle between the calculator view and "Big Mode" with L2 - Hitting "Restart" in the RetroArch menu will clear the entire memory - - So be careful when doing this because you will lose all your data - - This is useful however sometimes when the emulator hangs for one reason or another + - So be careful when doing this because you will lose all your data + - This is useful however sometimes when the emulator hangs for one reason or another - Installing Apps - - You will probably need to install some "loaders" for most of the demanding apps - - Such as "Ion" or "Mirage" - - You can install "Ion.8xg" by going to Retroarch => Load Content - - After starting you will see a message in the bottom left corner if it imported successfully - - Then go to "Close Content" - - Then go again to "Load Content" and install the game you want to run inside of Ion such as "Ztetris.8xp" - - Then keep repeating the process to load all the apps you want (careful not to fill up the entire space) - - Essentially you have to load each piece one on top of another since there is a single common "hard drive" for the calculator + - You will probably need to install some "loaders" for most of the demanding apps + - Such as "Ion" or "Mirage" + - You can install "Ion.8xg" by going to Retroarch => Load Content + - After starting you will see a message in the bottom left corner if it imported successfully + - Then go to "Close Content" + - Then go again to "Load Content" and install the game you want to run inside of Ion such as "Ztetris.8xp" + - Then keep repeating the process to load all the apps you want (careful not to fill up the entire space) + - Essentially you have to load each piece one on top of another since there is a single common "hard drive" for the calculator - Every time you load the emulator you will start from the last place you left off - - For the same reason mentioned above where it saves in the background - - Also keep this in mind for save states + - For the same reason mentioned above where it saves in the background + - Also keep this in mind for save states - Save States - - You can create as many save states as you want using the different slots - - However they will be named internally based on how you started the emulator - - From a rom or just the core itself - - There will will be a common "In Progress" storage mechanism when loading different states - - Save States will restore whatever the state was of the entire calculator - - Including all installed apps at the time of saving - - Take lots of save states since you may run into problems where you will need to wipe the memory and try again + - You can create as many save states as you want using the different slots + - However they will be named internally based on how you started the emulator + - From a rom or just the core itself + - There will will be a common "In Progress" storage mechanism when loading different states + - Save States will restore whatever the state was of the entire calculator + - Including all installed apps at the time of saving + - Take lots of save states since you may run into problems where you will need to wipe the memory and try again - If you have trouble installing one game or another - - Try moving things around between Memory and Archive - - Sometimes different launchers require things not be in Archive - - You can watch this awesome video by LGR where he talks about the phenomenon - - https://www.youtube.com/watch?v=nduMTX86Zl0 + - Try moving things around between Memory and Archive + - Sometimes different launchers require things not be in Archive + - You can watch this awesome video by LGR where he talks about the phenomenon + - https://www.youtube.com/watch?v=nduMTX86Zl0 ## Core options diff --git a/docs/library/scummvm.md b/docs/library/scummvm.md index 445bc75819..ac0ad824a6 100644 --- a/docs/library/scummvm.md +++ b/docs/library/scummvm.md @@ -90,21 +90,21 @@ Playlist generation using the RetroArch Scanner is **NOT recommended** for Scumm These files can be used as the playlist target instead of a random game file. A `.scummvm` file is a plain text file which contains a single string corresponding to one of the following identifiers: - - **target** - This is the game identifier of each entry in the internal ScummVM Launcher list, corresponding to entries in the ScummVM configuration file (e.g., `scummvm.ini`). - In this case: - - The game must be added from the ScummVM GUI first. - - Hook files can be placed anywhere, since the game path is already stored in `scummvm.ini`. - - The game will launch with the options set in `scummvm.ini`. - - - **game ID** - This is a unique identifier for any game supported by ScummVM. - It is hardcoded in each engine source and may change over time, so it is **not recommended**. - A list of current game IDs is available [here](https://scummvm.org/compatibility). - In this case: - - The game will launch even if not added in the ScummVM Launcher. - - The hook file must be placed in the game folder. - - The game will launch with **default ScummVM options**, as not included in `scummvm.ini`. + - **target** + This is the game identifier of each entry in the internal ScummVM Launcher list, corresponding to entries in the ScummVM configuration file (e.g., `scummvm.ini`). + In this case: + - The game must be added from the ScummVM GUI first. + - Hook files can be placed anywhere, since the game path is already stored in `scummvm.ini`. + - The game will launch with the options set in `scummvm.ini`. + + - **game ID** + This is a unique identifier for any game supported by ScummVM. + It is hardcoded in each engine source and may change over time, so it is **not recommended**. + A list of current game IDs is available [here](https://scummvm.org/compatibility). + In this case: + - The game will launch even if not added in the ScummVM Launcher. + - The hook file must be placed in the game folder. + - The game will launch with **default ScummVM options**, as not included in `scummvm.ini`. - The ScummVM core can also accept as content **any file inside a valid game folder**. The internal detection system will attempt to autodetect the game from the parent folder and run it with **default ScummVM options**. diff --git a/mkdocs.yml b/mkdocs.yml index dc3aa3fd67..186ff750e1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -593,7 +593,8 @@ markdown_extensions: plugins: - git-revision-date-localized - macros - - search + - search: + separator: '[\s\-()\[\],/]+' theme: custom_dir: docs/overrides/