From a5ab6e98fc3d8c833a0e74ca8f382f3af392c1fc Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:24:15 +0200 Subject: [PATCH 01/15] PrBoom: say where music and prboom.wad are looked for The core searches the WAD's folder, then system/prboom/, then the system directory, for music as for prboom.wad and other WAD and DEH files. The page only mentioned the game folder, which was reported not to work on tvOS; system/prboom/ does. Fixes #1163. --- docs/library/prboom.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/library/prboom.md b/docs/library/prboom.md index 80128c280e..2e0a8c876a 100644 --- a/docs/library/prboom.md +++ b/docs/library/prboom.md @@ -91,7 +91,7 @@ The PrBoom core saves/loads to/from these directories. ## Loading DOOM -PrBoom can load wad, iwad, and pwad files. The PrBoom core requires data ROM ['prboom.wad'](https://github.com/libretro/libretro-prboom/blob/master/prboom.wad) inside the loaded content's or system directory. +PrBoom can load wad, iwad, and pwad files. The PrBoom core requires data ROM ['prboom.wad'](https://github.com/libretro/libretro-prboom/blob/master/prboom.wad) inside the loaded content's directory, `SYSTEM_DIRECTORY/prboom/` or the system directory itself (searched in that order). !!! TIP If you start the games by loading prboom.wad they will all share the same content name ("prboom" in this case), so the core will put the saves for every game in a single retroarch/saves/prboom/ folder and when playing Doom 2 for example you'll see Doom 1 saves, etc. which will cause confusion for the user. The games will also share the same game overrides/options files/remaps/etc. History tab will also lists each game as "prboom". @@ -162,7 +162,13 @@ An example folder structure would be like so: ## Music -If mp3 files are detected in the game folder, PrBoom will play these tracks instead of the internal MIDI musics, see below for the required filenames for each game. +If mp3 files with the names below are found, PrBoom plays them instead of the internal MIDI music. They are looked for, in this order, in: + +1. the folder of the loaded WAD +2. `SYSTEM_DIRECTORY/prboom/` +3. `SYSTEM_DIRECTORY/` + +The same search is used for `prboom.wad` and for any other WAD or DEH file a game loads. Where the frontend cannot give the core the WAD's own folder - RetroArch on tvOS is one such case - put the music in `SYSTEM_DIRECTORY/prboom/` next to `prboom.wad`. ### Doom From 8796f8316edfdd972864ff69633b5584ce93a732 Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:25:07 +0200 Subject: [PATCH 02/15] FBNeo: complete the BIOS search order The core also looks in system/fbneo/patched/ first when patched romsets are allowed. system/fbneo/ is searched on every platform, next to the samples and hiscore files, so recommend it rather than making it look Android-specific. Addresses #1130. --- docs/library/fbneo.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/library/fbneo.md b/docs/library/fbneo.md index a8006d5330..d8d4ebb269 100644 --- a/docs/library/fbneo.md +++ b/docs/library/fbneo.md @@ -171,12 +171,15 @@ You can also emulate consoles by prefixing the name of the roms with `XXX_` and ## BIOS -When loading a romset requiring a bios romset, it will be searched through 3 folders in that order : +When loading a romset requiring a bios romset, it will be searched through these folders in that order : +* the `SYSTEM_DIRECTORY/fbneo/patched/` folder, only when patched romsets are allowed in the core options (`fbneo-allow-patched-romsets`) * the folder of the current romset * the `SYSTEM_DIRECTORY/fbneo/` folder * the `SYSTEM_DIRECTORY/` folder +`SYSTEM_DIRECTORY/fbneo/` is the recommended place: it is where the core also keeps samples, hiscore.dat and its other support files, and it is searched on every platform. + The following bios romsets are required for some of the emulated arcade systems : | Romset name | Note | From b3e980a8ec100be6bef9f4842c598689dfbf3ebb Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:25:15 +0200 Subject: [PATCH 03/15] nav: point 3D Engine at library/3dengine.md The nav entry named library/3d_engine.md, which does not exist, so the 3D Engine page could not be reached from the menu. --- docs/development/licenses.md | 2 +- docs/library/3dengine.md | 2 +- mkdocs.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/development/licenses.md b/docs/development/licenses.md index d5df888001..06b28c5ef1 100644 --- a/docs/development/licenses.md +++ b/docs/development/licenses.md @@ -59,7 +59,7 @@ See below for a summary of the licenses behind RetroArch and its cores: | Core | License | Non-commercial | |----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|----------------| -| [3D Engine](../library/3d_engine.md) | [GPLv3](https://github.com/libretro/libretro-3dengine/blob/master/license) | | +| [3D Engine](../library/3dengine.md) | [GPLv3](https://github.com/libretro/libretro-3dengine/blob/master/license) | | | [2048](../library/2048.md) | [Public Domain](https://github.com/libretro/libretro-2048/blob/master/COPYING) | | | [Anarch](../library/anarch.md) | [CC0](https://codeberg.org/iyzsong/anarch-libretro/src/branch/master/LICENSE) | | | [Ardens](../library/ardens.md) | [MIT](https://github.com/tiberiusbrown/Ardens/blob/master/LICENSE.txt) | | diff --git a/docs/library/3dengine.md b/docs/library/3dengine.md index 123b3ae9ea..8b054e5e1a 100644 --- a/docs/library/3dengine.md +++ b/docs/library/3dengine.md @@ -2,7 +2,7 @@ ## Contribute to this documentation -In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/3d_engine.md). Changes are proposed using "Pull Requests." +In order to propose improvements to this document, [visit its corresponding source page on github](https://github.com/libretro/docs/tree/master/docs/library/3dengine.md). Changes are proposed using "Pull Requests." ## Background diff --git a/mkdocs.yml b/mkdocs.yml index 06005bda69..c3e7dfd54b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -303,7 +303,7 @@ nav: - 'Welback Holdings - Mega Duck (SameDuck)': 'library/sameduck.md' - 'Core Library: Game and Scripting Engines': - '2048': 'library/2048.md' - - '3D Engine': 'library/3d_engine.md' + - '3D Engine': 'library/3dengine.md' - 'Anarch': 'library/anarch.md' - 'Cave Story (doukutsu-rs)': 'library/doukutsu-rs.md' - 'Cave Story (NXEngine)': 'library/nxengine.md' From 0d120cfc0e1135779f73ab971726535127a44334 Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:26:56 +0200 Subject: [PATCH 04/15] Citra: say which user directory the core uses The page linked standalone Citra's user directory (AppData/Roaming/Citra and the like), so dumped system files were put where the core does not look. By default the core keeps sysdata, nand, sdmc and the shader cache in saves/Citra/; standalone's directory is only used with Savegame location set to Citra Default. Fixes #598. --- docs/library/citra.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/library/citra.md b/docs/library/citra.md index 20c1f64342..0983fc59d9 100644 --- a/docs/library/citra.md +++ b/docs/library/citra.md @@ -84,7 +84,9 @@ The Citra Shaders should be in ../saves/Citra/shaders/opengl/transferable **Frontend's Save directory** -- [Citra System and Save files](https://citra-emu.org/wiki/user-directory/) +- `Citra/` - Citra's user directory: the 3DS system files (`sysdata/`, `nand/`), save data (`sdmc/`) and the shader cache. System files dumped from a 3DS go here, not in standalone Citra's user directory. + +This is where the **Savegame location** core option (`citra_use_libretro_save_path`) puts them by default, "LibRetro Default". When the frontend has no save directory, `Citra/` is created in the system directory instead. With "Citra Default" the core uses standalone Citra's [user directory](https://citra-emu.org/wiki/user-directory/). ### Geometry and timing From 4bde51647094c776e496471f00c023790e2ef53c Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:27:40 +0200 Subject: [PATCH 05/15] PCSX ReARMed: current core options, netplay, multitap - The core options list the 59 options of the current core in its seven categories, SMC check included; 24 listed options no longer exist. - Netplay works (with the host's memory card). - Multitap is one Multitap Mode option now, not Multitap 1 and 2, and a tip says to disable it when a game's controls do not respond. - Rumble points at the option's current name, Rumble Effects. Fixes #612, fixes #1115, fixes #561. --- docs/library/pcsx_rearmed.md | 299 ++++++++++++++++++----------------- 1 file changed, 154 insertions(+), 145 deletions(-) diff --git a/docs/library/pcsx_rearmed.md b/docs/library/pcsx_rearmed.md index 41693e4a36..cee05801ee 100644 --- a/docs/library/pcsx_rearmed.md +++ b/docs/library/pcsx_rearmed.md @@ -76,7 +76,7 @@ Frontend-level settings or features that the PCSX ReARMed core respects. | Saves | ✔ | | States | ✔ | | Rewind | ✔ | -| Netplay | ✕ | +| Netplay | ✔ | | Core Options | ✔ | | [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✔ | | RetroArch Cheats | ✔ | @@ -257,265 +257,271 @@ or ## Core options -The PCSX ReARMed core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. +The PCSX ReARMed core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. Some options are only shown when an option they depend on is set. -Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. +#### System -- **Frameskip** [pcsx_rearmed_frameskip] (**0**|1|2|3) +Configure base hardware parameters: region, BIOS selection, memory cards, etc. - Choose how much frames should be skipped to improve performance at the expense of visual smoothness. +- **Region** [pcsx_rearmed_region] (**Auto**|NTSC|PAL) -- **Use BIOS** [pcsx_rearmed_bios] (**auto**|HLE) + Specify which region the system is from. 'NTSC' is 60 Hz while 'PAL' is 50 Hz. 'Auto' will detect the region of the currently loaded content. Games may run faster or slower than normal if the incorrect region is selected. - Allows you to use real bios file (if available) or emulated bios (HLE). +- **BIOS Selection** [pcsx_rearmed_bios] (**Auto**|HLE) - **HLE** - Forces core to use built-in bios emulation + Specify which BIOS to use. 'Auto' will attempt to load a real bios file from the frontend 'system' directory, falling back to high level emulation if unavailable. 'HLE' forces high level BIOS emulation. It is recommended to use an official bios file for better compatibility. - **auto** - Tries to search for compatible bios file, falls back to use HLE if none is found. +- **Show BIOS Name/Boot Logo** [pcsx_rearmed_show_bios_bootlogo] (**disabled**|enabled|ON, w/o PCSXtm) -- **Region** [pcsx_rearmed_region] (**auto**|NTSC|PAL) + When using a custom BIOS file, enables the display of its file name in the OSD. Also specifies whether to show the BIOS logo when starting or selecting Reset. Warning: Enabling the logo may reduce game compatibility. - Choose what region the system is from. +- **Memory Card 1 Type (Restart)** [pcsx_rearmed_memcard1] (**Libretro (Default)**|Game Code (Serial)|Shared Between All Games|No Memory Card) -- **Enable second memory card** [pcsx_rearmed_memcard2] (**disabled**|enabled) + How to emulate the memory card in slot 1. 'Libretro' passes the card data to the frontend (usually saved as .srm). 'Game Code' saves it to a file named based on the serial, such as SCUS-00001_1.mcd, for compatibility with some other emulators. - Enables or disabled second memory card (Memcard 2 slot). When enabled, - Memcard 2 slot's save data will be loaded and saved as - `pcsx-card2.mcd` file in the saves directory. - All games will share the same second memory card. +- **Memory Card 2 Type** [pcsx_rearmed_memcard2] (Game Code (Serial)|**Shared Between All Games**|No Memory Card) -- **Emulated Mouse Sensitivity** [pcsx_rearmed_input_sensitivity] (**1.00**|0.05 - 2.00) + Same as above, but card in slot 2. - Adjust movement responsiveness for the emulated mouse device. +- **CD read-ahead** [pcsx_rearmed_cd_readahead] (0|1|2|3|4|5|6|7|8|9|10|11|**12**|13|14|15|16|32|64|128|256|512|1024|333000) -- **Multitap Mode (Restart)** [pcsx_rearmed_multitap] (**disabled**|port 1 only|port 2 only|both) + Reads the specified amount of sectors ahead of time to try to avoid later stalls. Affects both physical CD-ROM and CD images. 333000 will try to read the complete disk (requires an additional 750MB of RAM). - Sets the multitap device in either port 1 or port 2 allowing support of upto 5 players, or on both for 8 players. +- **Dynamic Recompiler** [pcsx_rearmed_drc] (disabled|**enabled**) -!!! attention - Multitap option works depending on the game. Setting any mode on a game that does not use multitap will make inputs not working. Leave mode at **disabled** unless supported by game and you really to play in multiplayer modes. + Dynamically recompile PSX CPU instructions to native instructions. Much faster than using an interpreter, but may be less accurate on some platforms. -- **NegCon Twist Deadzone (percent)** [pcsx_rearmed_negcon_deadzone] (**0**|5|10|15|20|25|30) +- **DynaRec threading** [pcsx_rearmed_drc_thread] (**Auto**|disabled|enabled) - Sets the deadzone of the RetroPad left analog stick when simulating the 'twist' action of emulated [neGcon Controllers](https://en.wikipedia.org/wiki/NeGcon). Used to eliminate drift/unwanted input. + Run the dynarec on another thread. -!!! attention - Most (all?) negCon compatible titles provide in-game options for setting a 'twist' deadzone value. To avoid loss of precision, the in-game deadzone should *always* be set to zero. Any analog stick drift should instead be accounted for by configuring the 'NegCon Twist Deadzone' core option. This is particularly important when 'NegCon Twist Response' is set to 'quadratic' or 'cubic'. +- **PSX CPU Clock Speed (%)** [pcsx_rearmed_psxclock] (**Auto**|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100) - Xbox gamepads typically require a deadzone of 15-20%. Many Android-compatible bluetooth gamepads have an internal 'hardware' deadzone, allowing the deadzone value here to be set to 0%. + Overclock or under-clock the PSX CPU. Should be much less than 100 (something like 57) due to some real hardware slowdowns not being emulated. Usually should be left at 'Auto', else glitches or hangs are likely. - For convenience, it is recommended to make use of the 'Options → Analog Setting 1P' menu of [Gran Turismo](https://en.wikipedia.org/wiki/Gran_Turismo_(video_game)) when calibrating the 'NegCon Twist Deadzone'. This provides a clear and precise representation of 'real' controller input values. +#### Video -- **NegCon Twist Response** [pcsx_rearmed_negcon_response] (**linear**|quadratic|cubic) +Configure base display parameters. - Specifies the analog response when using a RetroPad left analog stick to simulate the 'twist' action of emulated [neGcon Controllers](https://en.wikipedia.org/wiki/NeGcon). +- **Dithering Pattern** [pcsx_rearmed_dithering] (disabled|**enabled**|Force) - 'linear': Analog stick displacement is mapped linearly to negCon rotation angle. - Recommended when using racing wheel peripherals. + Enable emulation of the dithering technique used by the PSX to smooth out color banding artifacts. "Force" enables it even if the game turns it off. Increases performance requirements. - 'quadratic': Analog stick displacement is mapped quadratically to negCon rotation angle. This allows for greater precision when making small movements with the analog stick. - Optimal setting for gamepads. +- **Threaded Rendering** [pcsx_rearmed_gpu_thread_rendering] (**Auto**|disabled|enabled) - 'cubic': Analog stick displacement is mapped cubically to negCon rotation angle. This allows for even greater precision when making small movements with the analog stick, but 'exaggerates' larger movements. - Enables precise control but difficult to use. + When enabled, runs GPU commands in a secondary thread. 'Auto' enables it if at least 2 CPU cores are detected. -!!! attention - A linear response is not recommended when using standard gamepad devices. The negCon 'twist' mechanism is substantially different from conventional analog sticks; linear mapping over-amplifies small displacements of the stick, impairing fine control. A linear response is only appropriate when using racing wheel peripherals. +- **Frameskip** [pcsx_rearmed_frameskip_type] (**disabled**|Auto|Auto (Threshold)|Fixed Interval) + + Skip frames to avoid audio buffer under-run (crackling). Improves performance at the expense of visual smoothness. 'Auto' skips frames when advised by the frontend. 'Auto (Threshold)' utilises the 'Frameskip Threshold (%)' setting. 'Fixed Interval' utilises the 'Frameskip Interval' setting. + +- **Frameskip Threshold (%)** [pcsx_rearmed_frameskip_threshold] (15|18|21|24|27|30|**33**|36|39|42|45|48|51|54|57|60|65|70|75|80) + + When 'Frameskip' is set to 'Auto (Threshold)', specifies the audio buffer occupancy threshold (percentage) below which frames will be skipped. Higher values reduce the risk of crackling by causing frames to be dropped more frequently. + +- **Frameskip Interval** [pcsx_rearmed_frameskip_interval] (1|2|**3**|4|5|6|7|8|9|10) + + Specify the maximum number of frames that can be skipped before a new frame is rendered. + +- **Display Internal FPS** [pcsx_rearmed_display_fps_v2] (**disabled**|enabled|extra) - In most cases, the 'quadratic' option should be selected. This provides effective compensation for the physical differences between real/emulated hardware, enabling smooth/precise analog input. + Show the internal frame rate at which the emulated system is rendering content. Note: Requires on-screen notifications to be enabled in the libretro frontend. -- **Analog axis bounds** [pcsx_rearmed_analog_axis_modifier] (**circle**|square) +- **Display Informational Notifications** [pcsx_rearmed_display_info] (disabled|**enabled**) - Range bounds for analog axis. Square bounds help controllers with highly circular ranges that are unable to fully saturate the x and y axis at 45degree deflections. + Shows things like unsafe hack options that are enabled and the BIOS name that is booting. -- **Guncon Adjust X** [pcsx_rearmed_gunconadjustx] (**0**|-25 - 25) -- **Guncon Adjust Y** [pcsx_rearmed_gunconadjustx] (**0**|-25 - 25) +- **Use fractional frame rate** [pcsx_rearmed_fractional_framerate] (**Auto**|disabled|enabled) - When using Guncon mode, you can override aim in emulator if shots misaligned, this applies an increment on the x or y axis. + Instead of the exact 50 or 60 (maximum) fps for PAL/NTSC the real console runs closer to something like 49.75 and 59.81fps (varies slightly between hw versions). PCSX-ReARMed uses the former "round" framerates to better match modern displays, however that may cause audio/video desync in games like DDR and Spyro 2 (intro). With this option you can try to use fractional framerates. -- **Guncon Adjust Ratio X** [pcsx_rearmed_gunconadjustratiox] (**1**|0.75 - 1.25) -- **Guncon Adjust Ratio Y** [pcsx_rearmed_gunconadjustratioy] (**1**|0.75 - 1.25) +- **Framebuffer readout** [pcsx_rearmed_alt_flip] (**Auto**|Early|Late) - When using Guncon mode, you can override aim in emulator if shots misaligned, this applies a ratio on the x or y axis. + Some games make changes to the framebuffer while it's being sent to the display, which is currently not emulated. However this option allows to choose if the emulator takes the video frame before the emulated PSX active display period ('Early') or after ('Late'). Normally this should be left at 'Auto'. -- **Enable Vibration** [pcsx_rearmed_vibration] (**enabled**|disabled) +- **RGB32 output** [pcsx_rearmed_rgb32_output] (**disabled**|enabled) - Enables Rumble. Look at the [Rumble section](#rumble-support) for more information. + Improves color depth for true color modes (most FMVs and occasional title screens). Causes higher CPU usage due to double memory bandwidth requirement, even in 15bpp modes. Takes effect on game reload only (libretro limitation). -- **Enable Dithering** [pcsx_rearmed_dithering] (**enabled**|disabled) +- **Hi-Res Downscaling** [pcsx_rearmed_scale_hires] (**disabled**|enabled) - If Off, disables the dithering pattern the PSX applies to combat color banding. + When enabled, games that run in high resolution video modes (480i, 512i) will be downscaled to 320x240 by skipping lines and/or columns. May be useful on some devices with native 240p display resolutions that lack efficient hardware scaling. -??? note "Enable Dithering - On" - ![](../image/core/pcsx_rearmed/dither_on.png) +- **(GPU) Slow linked list processing** [pcsx_rearmed_gpu_slow_llists] (**Auto**|disabled|enabled) -??? note "Enable Dithering - Off" - ![](../image/core/pcsx_rearmed/dither_off.png) + Slower but more accurate GPU linked list processing. Needed by only a few games like Vampire Hunter D. Should be autodetected in most cases. -- **Frame duping** [pcsx_rearmed_duping_enable] (**enabled**|disabled) +- **(GPU) Horizontal overscan** [pcsx_rearmed_show_overscan] (**disabled**|Auto|Hack) - A speedup, redraws/reuses the last frame if there was no new data. + The PSX can display graphics way into the horizontal borders, even if most screens would crop it. This option tries to display all such graphics. Note that this may result in unusual resolutions that your device might not handle well. The 'Hack' option is intended for the widescreen hacks. -- **Display Internal FPS** [pcsx_rearmed_display_internal_fps] (**disabled**|enabled) +- **(GPU) Screen centering** [pcsx_rearmed_screen_centering] (**Auto**|Game-controlled|Borderless|Manual) - Shows an on-screen frames per second counter. + The PSX has a feature allowing it to shift the image position on screen. Some (mostly PAL) games used this feature in a strange way making the image miscentered and causing uneven borders to appear. With 'Auto' the emulator tries to correct this miscentering automatically. 'Game-controlled' uses the settings supplied by the game. 'Manual' allows to override those values with the settings below. -- **Threaded Rendering** [pcsx_rearmed_gpu_thread_rendering] (**disabled**|sync|async) +- **(GPU) Manual position X** [pcsx_rearmed_screen_centering_x] (-16 to 16 in steps of 2, **0**) - When enabled, runs GPU commands in a thread. + X offset of the frame buffer. Only effective when 'Screen centering' is set to 'Manual'. - 'Sync' waits for drawing to finish before vsync. +- **(GPU) Manual position Y** [pcsx_rearmed_screen_centering_y] (-16 to 16 in steps of 1, **0**) - 'Async' will not wait unless there's another frame behind it. + Y offset of the frame buffer. Only effective when 'Screen centering' is set to 'Manual'. -- **Show Bios Bootlogo(Breaks some games)** [pcsx_rearmed_show_bios_bootlogo] (**disabled**|enabled) +- **(GPU) Manual height adjustment** [pcsx_rearmed_screen_centering_h_adj] (-64|-48|-40|-32|-24|-16|-8|-7|-6|-5|-4|-3|-2|-1|**0**) - Show the BIOS bootlogo. + Height adjustment. Only effective when 'Screen centering' is set to 'Manual'. -??? note "Skip BIOS - Off" - ![](../image/core/beetle_psx_hw/bios.png) +#### GPU Plugin -- **Sound: Reverb** [pcsx_rearmed_spu_reverb] (**enabled**|disabled) +Configure low-level settings of the NEON GPU plugin. - Enable sound reverb. +- **Show Interlaced Video** [pcsx_rearmed_neon_interlace_enable_v2] (**auto**|disabled|enabled) -- **Sound: Interpolation** [pcsx_rearmed_spu_interpolation] (**simple**|gaussian|cubic|off) + When enabled, games that run in high resolution video modes (480i, 512i) will produced interlaced video output. While this displays correctly on CRT televisions, it will produce artifacts on modern displays. When disabled, all video is output in progressive format. Note: there are games that will glitch is this is off. - Modify sound interpolation. +- **Enhanced Resolution** [pcsx_rearmed_neon_enhancement_enable] (**disabled**|enabled) -- **CD Access Method (Restart)** [pcsx_rearmed_async_cd] (**sync**|sync|async|precache) + Render games that do not already run in high resolution video modes (480i, 512i) at twice the native internal resolution. Improves the fidelity of 3D models at the expense of increased performance requirements. 2D elements are generally unaffected by this setting. - Select method used to read data from content disk images. +- **Enh. Res. Speed Hack** [pcsx_rearmed_neon_enhancement_no_main] (**disabled**|enabled) - 'Synchronous': Mimics original hardware. - - 'Asynchronous': Reduce stuttering on devices with slow storage. - - 'Precache': Loads disk image into memory for faster access (**Note: CHD only**). + ('Enhanced Resolution' Hack) Improves performance but reduces compatibility and may cause rendering errors. -- **Advanced System Options** +- **Enh. Res. Texture Fixup** [pcsx_rearmed_neon_enhancement_tex_adj_v2] (disabled|**enabled**) -- **XA Decoding** [pcsx_rearmed_noxadecoding] (**enabled**|disabled) + ('Enhanced Resolution' Hack) Solves some texturing issues in some games in Enhanced Resolution mode. May cause a small performance hit. - Disables XA sound, which can sometimes improve performance. +#### Audio -- **CD Audio** [pcsx_rearmed_nocdaudio] (**enabled**|disabled) +Configure sound emulation: reverb, interpolation, CD audio decoding. - Disables XA sound, which can sometimes improve performance. +- **Reverb Effects** [pcsx_rearmed_spu_reverb] (disabled|**enabled**) -- **SPU IRQ Always Enabled** [pcsx_rearmed_spuirq] (**disabled**|enabled) + Enable emulation of the reverb feature provided by the PSX SPU. Can be disabled to improve performance at the expense of reduced audio quality/authenticity. - Compatibility tweak, should be left to off in most cases. This can be momentarily turned on at any point to try and fix some bugs. - - Few examples includes: +- **Sound Interpolation** [pcsx_rearmed_spu_interpolation] (**Simple**|Gaussian|Cubic|disabled) - 'Alien Resurrection': bug where doors can remain closed until the option is turned on. + Enable emulation of the in-built audio interpolation provided by the PSX SPU. 'Gaussian' sounds closest to original hardware. 'Simple' improves performance but reduces quality. 'Cubic' has the highest performance requirements but produces increased clarity. Can be disabled entirely for maximum performance, at the expense of greatly reduced audio quality. - 'Legend of Mana': audio out-of-sync bug during FMV sequences can also be fixed by momentarily switching the option on, then off when sound is normal. - -- **Additional game fixes options** +- **CD Audio** [pcsx_rearmed_nocdaudio] (disabled|**enabled**) -- **Diablo Music Fix** [pcsx_rearmed_idiablofix] (**disabled**|enabled) + Enable playback of CD (CD-DA) audio tracks. Can be disabled to improve performance in games that include CD audio, at the expense of missing music. - Fix for music randomly cuts out when pressing start or interact with somebody. +- **XA Decoding** [pcsx_rearmed_noxadecoding] (disabled|**enabled**) -- **Parasite Eve 2/Vandal Hearts 1/2 Fix** [pcsx_rearmed_pe2_fix] (**disabled**|enabled) + Enable playback of XA (eXtended Architecture ADPCM) audio tracks. Can be disabled to improve performance in games that include XA audio, at the expense of missing music. - Enable this to fit Parasite Eve 2 and Vandal Hearts 1/2 +- **Threaded SPU** [pcsx_rearmed_spu_thread] (**disabled**|enabled) -- **InuYasha Sengoku Battle Fix** [pcsx_rearmed_inuyasha_fix] (**disabled**|enabled) + Emulates the PSX SPU on another CPU thread. May cause audio glitches in some games. - Enable this to fix InuYasha. +- **Show Input Settings** [pcsx_rearmed_show_input_settings] (**disabled**|enabled) -- **Additional core options for DynaRec (ari64) builds:** + Show configuration options for all input devices: analog response, Multitaps, light guns, etc. Quick Menu may need to be toggled for this setting to take effect. -- **Dynamic recompiler** [pcsx_rearmed_drc] (**enabled**|disabled) +#### Input - Enables core to use dynamic recompiler or interpreter (slower) cpu instructions. +Configure input devices: analog response, haptic feedback, Multitaps, light guns, etc. - When enabled, dynarec can use either one below: +- **Analog Axis Bounds** [pcsx_rearmed_analog_axis_modifier] (Circle|**Square**) - Dynarec can either be **ari64** for arm 32-bit devices while **lightrec** i used for 64-bit capable devices or platforms. + Specify range limits for the left and right analog sticks when input device is set to 'analog' or 'dualshock'. 'Square' bounds improve input response when using controllers with highly circular ranges that are unable to fully saturate the X and Y axes at 45 degree deflections. -- **PSX cpu clock** [pcsx_rearmed_psxclock] (30 - 100, **default 57**) +- **Rumble Effects** [pcsx_rearmed_vibration] (disabled|**enabled**) - Overclock or underclock the PSX, default is 57. + Enable haptic feedback when using a rumble-equipped gamepad with input device set to 'dualshock'. - Lower value = less work for the emu, may be faster in some cases. +- **DualShock Analog Mode Toggle Key Combo** [pcsx_rearmed_analog_combo] (disabled|**L1 + R1 + Select**|L1 + R1 + Start|L1 + R1 + L3|L1 + R1 + R3|L3 + R3) - Causes compatibility issues, so modify only for games that needs it, leave at default for most games. + When the input device type is DualShock, this option allows the emulated DualShock to be toggled between DIGITAL and ANALOG mode like original hardware. You can select the button combination for this. -- **Additional core options for devices using NEON-compatible CPU:** +- **Multitap Mode** [pcsx_rearmed_multitap] (**disabled**|Port 1|Port 2|Ports 1 and 2) -- **Enable interlacing mode(s)** [pcsx_rearmed_neon_interlace_enable] (**disabled**|enabled) + Connect a virtual PSX Multitap peripheral to either controller 'Port 1' or controller 'Port 2' for 5 player simultaneous input, or to both 'Ports 1 and 2' for 8 player input. Multitap usage requires compatible games. - Enables fake scanlines effect. +- **NegCon Twist Deadzone** [pcsx_rearmed_negcon_deadzone] (**0%**|3%|5%|7%|10%|13%|15%|17%|20%|23%|25%|27%|30%) -- **Enhanced resolution (slow)** [pcsx_rearmed_neon_enhancement_enable] (**disabled**|enabled) + Set the deadzone of the RetroPad left analog stick when simulating the 'twist' action of emulated neGcon Controllers. Used to eliminate drift/unwanted input. - Renders in double resolution at the cost of lower performance +- **NegCon Twist Response** [pcsx_rearmed_negcon_response] (**Linear**|Quadratic|Cubic) - Not available for high resolution games. + Specify the analog response when using a RetroPad left analog stick to simulate the 'twist' action of emulated neGcon Controllers. -- **Enhanced resolution speed hack** [pcsx_rearmed_neon_enhancement_no_main] (**disabled**|enabled) +- **Mouse Sensitivity** [pcsx_rearmed_input_sensitivity] (0.05 to 2.00 in steps of 0.05, **1.00**) - Speed hack for above option. + Adjust responsiveness of emulated 'mouse' input devices. - Causes game glitches. +- **Player 1 Lightgun Crosshair** [pcsx_rearmed_crosshair1] (**disabled**|blue|green|red|white) -- **Additional core options for devices using PEOPS GPU plugin** (some options may or may not have effect or need core restart) + Toggle player 1's crosshair for the Guncon or Konami Gun. Only works if RGB32 output is off (video options). -- **(GPU) Odd/Even Bit Hack** [pcsx_rearmed_gpu_peops_odd_even_bit] (**disabled**|enabled) +- **Player 2 Lightgun Crosshair** [pcsx_rearmed_crosshair2] (**disabled**|blue|green|red|white) - Needed for Chrono Chross. + Toggle player 2's crosshair for the Guncon or Konami Gun. Only works if RGB32 output is off (video options). -- **(GPU) Expand Screen Width** [pcsx_rearmed_gpu_peops_expand_screen_width] (**disabled**|enabled) +- **Konami Gun X Axis Offset** [pcsx_rearmed_konamigunadjustx] (-40 to 40 in steps of 1, **0**) - Capcom fighting games. + Apply an X axis offset to light gun input when emulating a Konami Gun (Hyper Blaster / Justifier) device. Can be used to correct aiming misalignments. -- **(GPU) Ignore Brightness Color** [pcsx_rearmed_gpu_peops_ignore_brightness] (**disabled**|enabled) +- **Konami Gun Y Axis Offset** [pcsx_rearmed_konamigunadjusty] (-40 to 40 in steps of 1, **0**) - Black screens in Lunar. + Apply a Y axis offset to light gun input when emulating a Konami Gun (Hyper Blaster / Justifier) device. Can be used to correct aiming misalignments. -- **(GPU) Disable Coordinate Check** [pcsx_rearmed_gpu_peops_disable_coord_check] (**disabled**|enabled) +- **Guncon X Axis Offset** [pcsx_rearmed_gunconadjustx] (-40 to 40 in steps of 1, **0**) - Enables compatibility mode. + Apply an X axis offset to light gun input when emulating a Guncon device. Can be used to correct aiming misalignments. -- **(GPU) Lazy Screen Update** [pcsx_rearmed_gpu_peops_lazy_screen_update] (**disabled**|enabled) +- **Guncon Y Axis Offset** [pcsx_rearmed_gunconadjusty] (-40 to 40 in steps of 1, **0**) - Pandemonium 2 + Apply a Y axis offset to light gun input when emulating a Guncon device. Can be used to correct aiming misalignments. -- **(GPU) Old Frame Skipping** [pcsx_rearmed_gpu_peops_old_frame_skip] (**enabled**|disabled) +- **Guncon X Axis Response** [pcsx_rearmed_gunconadjustratiox] (0.75 to 1.25 in steps of 0.01, **1.00**) - Skips every second frame. + Adjust relative magnitude of horizontal light gun motion when emulating a Guncon device. Can be used to correct aiming misalignments. -- **(GPU) Repeated Flat Tex Triangles** [pcsx_rearmed_gpu_peops_repeated_triangles] (**disabled**|enabled) +- **Guncon Y Axis Response** [pcsx_rearmed_gunconadjustratioy] (0.75 to 1.25 in steps of 0.01, **1.00**) - Needed by Dark Forces. + Adjust relative magnitude of vertical light gun motion when emulating a Guncon device. Can be used to correct aiming misalignments. -- **(GPU) Draw Quads with Triangles** [pcsx_rearmed_gpu_peops_quads_with_triangles] (**disabled**|enabled) +#### Compatibility Fixes - Better G-colors, worse textures. +Configure settings/workarounds required for correct operation of specific games. -- **(GPU) Fake 'Gpu Busy' States** [pcsx_rearmed_gpu_peops_fake_busy_state] (**disabled**|enabled) +- **Instruction Cache Emulation** [pcsx_rearmed_icache_emulation] (**enabled**|disabled) - Toggle busy flag after drawing. + Enable emulation of the PSX CPU instruction cache. Improves accuracy at the expense of increased performance overheads. Required for Formula One 2001, Formula One Arcade and Formula One 99. [Interpreter only; partial on lightrec and ARM dynarecs] -- **Additional core options for devices using UNAI GPU plugin** (some options may or may not have effect or need core restart) +- **Exception and Breakpoint Emulation** [pcsx_rearmed_exception_emulation] (**disabled**|enabled) -- **(GPU) Enable Blending** [pcsx_rearmed_gpu_unai_blending] (**enabled**|disabled) + Enable emulation of some almost never used PSX's debug features. This causes a performance hit, is not useful for games and is intended for PSX homebrew and romhack developers only. Only enable if you know what you are doing. [Interpreter only] -- **(GPU) Enable Lighting** [pcsx_rearmed_gpu_unai_lighting] (**enabled**|enabled) +- **Disable Automatic Compatibility Hacks** [pcsx_rearmed_nocompathacks] (**disabled**|enabled) -- **(GPU) Enable Fast Lighting** [pcsx_rearmed_gpu_unai_fast_lighting] (**disabled**|enabled) + By default, PCSX-ReARMed will apply auxiliary compatibility hacks automatically, based on the currently loaded content. This behaviour is required for correct operation, but may be disabled if desired. -- **(GPU) Enable Forced Interlace** [pcsx_rearmed_gpu_unai_ilace_force] (**disabled**|enabled) +#### Speed Hacks (Advanced) -- **(GPU) Enable Pixel Skip** [pcsx_rearmed_gpu_unai_pixel_skip] (**disabled**|enabled) +Configure hacks that may improve performance at the expense of decreased accuracy/stability. -- **(GPU) Enable Hi-Res Downscaling** [pcsx_rearmed_gpu_unai_scale_hires] (**disabled**|enabled) +- **Turbo CD** [pcsx_rearmed_cd_turbo] (**disabled**|enabled) - When enabled, will scale hi-res modes to 320x240, skipping unrendered pixels. + This makes the emulated CD-ROM extremely fast and can reduce loading times in some cases. Warning: many games were not programmed to handle such a speed. The game (or even the emulator) MAY CRASH at ANY TIME if this is enabled. + +- **Disable SMC Checks** [pcsx_rearmed_nosmccheck] (**disabled**|enabled) + + Will cause crashes when loading, and lead to memory card failure. + +- **Assume GTE Registers Unneeded** [pcsx_rearmed_gteregsunneeded] (**disabled**|enabled) + + May cause rendering errors. + +- **Disable GTE Flags** [pcsx_rearmed_nogteflags] (**disabled**|enabled) + + Will cause rendering errors. + +- **Disable CPU/GTE Stalls** [pcsx_rearmed_nostalls] (**disabled**|enabled) + + Will cause some games to run too quickly. Should be disabled in almost all cases. ## Rumble @@ -524,14 +530,17 @@ Rumble only works in the PCSX ReARMed core when - The content being ran has rumble support. - The frontend being used has rumble support. - The joypad device being used has rumble support. -- The ['Enable Vibration' core option](#core-options) is set to On +- The ['Rumble Effects' core option](#core-options) is enabled - The corresponding user's Pad Type is set to **analog** ## Multitap -Activating multitap support in compatible games can be configured by the ['Multitap 1' and 'Multitap 2' core options](#core-options). +Activating multitap support in compatible games can be configured by the ['Multitap Mode' core option](#core-options): a multitap on port 1 or port 2 gives 5 players, on both ports 8 players. + +- With the multitap disabled, only User 1 and 2 input works and are assigned as player 1 and player 2 respectively. -- When multitap1 and multitap2 are off, only User 1 and 2 input works and are assigned as player 1 and player 2 respectively. +!!! tip + If the controls do not work in a game, set **Multitap Mode** to disabled. A multitap the game does not expect can leave it reading no input at all. The device type of each port is set in Settings > Input > Port # Controls. ## Joypad From 2931b1379d7b8715eda74756e15823f78f535de9 Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:28:43 +0200 Subject: [PATCH 06/15] bsnes 2014: name the pages after the cores they describe The Accuracy, Balanced and Performance pages were bsnes_accuracy.md and so on, but the cores are bsnes2014_accuracy and the rest - the v094 bsnes kept next to the current one - so nothing linked the two and readers looked for cores that are not on the buildbot. The pages are renamed to bsnes2014_*.md, titled bsnes 2014, say which core file they are about and point at the current bsnes page; the nav, core list and every link to them follow, and the info file links point at libretro-core-info. Fixes #1195, addresses #958. --- docs/development/licenses.md | 6 +-- docs/guides/core-list.md | 6 +-- docs/guides/softpatching.md | 6 +-- docs/library/beetle_bsnes.md | 12 ++--- docs/library/bios.md | 6 +-- docs/library/bsnes-jg.md | 12 ++--- docs/library/bsnes.md | 6 +-- ...snes_accuracy.md => bsnes2014_accuracy.md} | 44 ++++++++++--------- ...snes_balanced.md => bsnes2014_balanced.md} | 42 +++++++++--------- ...erformance.md => bsnes2014_performance.md} | 42 +++++++++--------- docs/library/bsnes_cplusplus98.md | 12 ++--- docs/library/bsnes_mercury_accuracy.md | 12 ++--- docs/library/bsnes_mercury_balanced.md | 12 ++--- docs/library/bsnes_mercury_performance.md | 12 ++--- docs/library/compatibility/snes.md | 8 ++-- docs/library/higan_accuracy.md | 6 +-- docs/library/mesen-s.md | 6 +-- docs/library/nside_balanced.md | 6 +-- docs/library/snes9x.md | 6 +-- docs/library/snes9x_2002.md | 12 ++--- docs/library/snes9x_2005.md | 12 ++--- docs/library/snes9x_2005_plus.md | 12 ++--- docs/library/snes9x_2010.md | 12 ++--- docs/meta/see-also.md | 6 +-- mkdocs.yml | 6 +-- 25 files changed, 164 insertions(+), 158 deletions(-) rename docs/library/{bsnes_accuracy.md => bsnes2014_accuracy.md} (85%) rename docs/library/{bsnes_balanced.md => bsnes2014_balanced.md} (86%) rename docs/library/{bsnes_performance.md => bsnes2014_performance.md} (86%) diff --git a/docs/development/licenses.md b/docs/development/licenses.md index 06b28c5ef1..71e6cb3b25 100644 --- a/docs/development/licenses.md +++ b/docs/development/licenses.md @@ -83,10 +83,10 @@ See below for a summary of the licenses behind RetroArch and its cores: | [bsnes-mercury Accuracy](../library/bsnes_mercury_accuracy.md) | [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) | | | [bsnes-mercury Balanced](../library/bsnes_mercury_balanced.md) | [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) | | | [bsnes-mercury Performance](../library/bsnes_mercury_performance.md) | [GPLv3](https://github.com/libretro/bsnes-mercury/blob/master/LICENSE) | | -| [bsnes Accuracy](../library/bsnes_accuracy.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | -| [bsnes Balanced](../library/bsnes_balanced.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | +| [bsnes 2014 Accuracy](../library/bsnes2014_accuracy.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | +| [bsnes 2014 Balanced](../library/bsnes2014_balanced.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | | [bsnes C++98 (v085)](../library/bsnes_cplusplus98.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | -| [bsnes Performance](../library/bsnes_performance.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | +| [bsnes 2014 Performance](../library/bsnes2014_performance.md) | [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) | | | [Caprice32](../library/caprice32.md) | [GPLv2](https://github.com/ColinPitrat/caprice32/blob/master/COPYING.txt) | | | [ChaiLove](../library/chailove.md) | [MIT](https://github.com/libretro/libretro-chailove/blob/master/COPYING) | | | [Citra](../library/citra.md) | [GPLv2](https://github.com/citra-emu/citra/blob/master/license.txt) | | diff --git a/docs/guides/core-list.md b/docs/guides/core-list.md index c5cbcc48df..47ba7886ca 100644 --- a/docs/guides/core-list.md +++ b/docs/guides/core-list.md @@ -30,9 +30,9 @@ | boom 3 | Game engine | A port of the Doom 3 engine to libretro. There is a separate core for it's expansion pack 'Resurrection of Evil'. | | boom 3 xp | Game engine | (See boom 3 note) | | [bsnes](../library/bsnes.md) | Nintendo SNES/SFC | | -| [bsnes 2014 Accuracy](../library/bsnes_accuracy.md) | Nintendo SNES/SFC | | -| [bsnes 2014 Balanced](../library/bsnes_balanced.md) | Nintendo SNES/SFC | | -| [bsnes 2014 Performance](../library/bsnes_performance.md) | Nintendo SNES/SFC | | +| [bsnes 2014 Accuracy](../library/bsnes2014_accuracy.md) | Nintendo SNES/SFC | | +| [bsnes 2014 Balanced](../library/bsnes2014_balanced.md) | Nintendo SNES/SFC | | +| [bsnes 2014 Performance](../library/bsnes2014_performance.md) | Nintendo SNES/SFC | | | [bsnes C++98 (v085)](../library/bsnes_cplusplus98.md) | Nintendo SNES/SFC | | | bsnes-hd beta | Nintendo SNES/SFC | | | [bsnes-jg](../library/bsnes-jg.md) | Nintendo SNES/SFC | | diff --git a/docs/guides/softpatching.md b/docs/guides/softpatching.md index 6bc1e3dfc6..a7cd867540 100644 --- a/docs/guides/softpatching.md +++ b/docs/guides/softpatching.md @@ -87,10 +87,10 @@ Cartridge content only — Jaguar CD images are loaded by path and are not softp | [bsnes-mercury Accuracy](../library/bsnes_mercury_accuracy.md) | ✔ | | [bsnes-mercury Balanced](../library/bsnes_mercury_balanced.md) | ✔ | | [bsnes-mercury Performance](../library/bsnes_mercury_performance.md) | ✔ | -| [bsnes Accuracy](../library/bsnes_accuracy.md) | ✔ | -| [bsnes Balanced](../library/bsnes_balanced.md) | ✔ | +| [bsnes 2014 Accuracy](../library/bsnes2014_accuracy.md) | ✔ | +| [bsnes 2014 Balanced](../library/bsnes2014_balanced.md) | ✔ | | [bsnes C++98 (v085)](../library/bsnes_cplusplus98.md) | ✔ | -| [bsnes Performance](../library/bsnes_performance.md) | ✔ | +| [bsnes 2014 Performance](../library/bsnes2014_performance.md) | ✔ | | [higan Accuracy](../library/higan_accuracy.md) | ✔ | | [nSide Balanced](../library/nside_balanced.md) | ✔ | | [Mesen-S](../library/mesen-s.md) | ✔ | diff --git a/docs/library/beetle_bsnes.md b/docs/library/beetle_bsnes.md index 1eb21a7dad..ce7ef6e528 100644 --- a/docs/library/beetle_bsnes.md +++ b/docs/library/beetle_bsnes.md @@ -136,10 +136,10 @@ The Beetle bsnes core supports the following device type(s) in the controls menu - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -152,10 +152,10 @@ The Beetle bsnes core supports the following device type(s) in the controls menu - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/bios.md b/docs/library/bios.md index 4b02c40239..b2c48944be 100644 --- a/docs/library/bios.md +++ b/docs/library/bios.md @@ -98,9 +98,9 @@ Saturn | Kronos | [BIOS information](kronos.m Saturn | Yabause | [BIOS information](yabause.md#bios) Saturn | YabaSanshiro | [BIOS information](yabasanshiro.md#bios) Sharp - X68000 | PX68k | [BIOS information](px68k.md#bios) -SNES/Super Famicom | bsnes Accuracy | [BIOS information](bsnes_accuracy.md#bios) -SNES/Super Famicom | bsnes Balanced | [BIOS information](bsnes_balanced.md#bios) -SNES/Super Famicom | bsnes Performance | [BIOS information](bsnes_performance.md#bios) +SNES/Super Famicom | bsnes 2014 Accuracy | [BIOS information](bsnes2014_accuracy.md#bios) +SNES/Super Famicom | bsnes 2014 Balanced | [BIOS information](bsnes2014_balanced.md#bios) +SNES/Super Famicom | bsnes 2014 Performance | [BIOS information](bsnes2014_performance.md#bios) SNES/Super Famicom | bsnes | [BIOS information](bsnes.md#bios) SNES/Super Famicom | bsnes-mercury Acc | [BIOS information](bsnes_mercury_accuracy.md#bios) SNES/Super Famicom | bsnes-mercury Bal | [BIOS information](bsnes_mercury_balanced.md#bios) diff --git a/docs/library/bsnes-jg.md b/docs/library/bsnes-jg.md index 730f28d407..08cbb83d6c 100644 --- a/docs/library/bsnes-jg.md +++ b/docs/library/bsnes-jg.md @@ -307,10 +307,10 @@ The bsnes-jg core is compatible with all officially released SNES/SFC titles. - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -323,10 +323,10 @@ The bsnes-jg core is compatible with all officially released SNES/SFC titles. - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/bsnes.md b/docs/library/bsnes.md index 8e27a4ea96..a8e3941801 100644 --- a/docs/library/bsnes.md +++ b/docs/library/bsnes.md @@ -294,8 +294,8 @@ The bsnes core is based on the latest bsnes source and targets accurate, faithfu - [Nintendo - SNES / Famicom (Beetle bsnes)](beetle_bsnes.md) - [Nintendo - SNES / Famicom (bsnes-jg)](bsnes-jg.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / SFC / Game Boy / Color (Mesen-S)](mesen-s.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) diff --git a/docs/library/bsnes_accuracy.md b/docs/library/bsnes2014_accuracy.md similarity index 85% rename from docs/library/bsnes_accuracy.md rename to docs/library/bsnes2014_accuracy.md index 9e52ad3a6e..4f2fc72354 100644 --- a/docs/library/bsnes_accuracy.md +++ b/docs/library/bsnes2014_accuracy.md @@ -1,7 +1,9 @@ -# Nintendo - SNES / Famicom (bsnes Accuracy) +# Nintendo - SNES / Famicom (bsnes 2014 Accuracy) ## Background +This page is about bsnes 2014 Accuracy, the bsnes v094 core whose file is named `bsnes2014_accuracy_libretro`. The current bsnes is a separate core, documented on the [bsnes](bsnes.md) page. + bsnes is a Super Nintendo emulator that began development on 2004-10-14. It focuses on accuracy and clean code above all else. It never uses speed or compatibility hacks. As a result, the minimum system requirements are greater than with other emulators. bsnes comes in three different profiles (accuracy, balanced and performance) which contain minor differences in the PPU (graphics) emulation. This core has been compiled with the Accuracy profile. @@ -12,11 +14,11 @@ Please check the [compatibility section](#compatibility) for more information. ### Author/License -The bsnes Accuracy core has been authored by +The bsnes 2014 Accuracy core has been authored by - byuu -The bsnes Accuracy core is licensed under +The bsnes 2014 Accuracy core is licensed under - [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) @@ -24,7 +26,7 @@ A summary of the licenses behind RetroArch and its cores can be found [here](../ ## Extensions -Content that can be loaded by the bsnes Accuracy core have the following file extensions: +Content that can be loaded by the bsnes 2014 Accuracy core have the following file extensions: - .sfc - .smc @@ -32,7 +34,7 @@ Content that can be loaded by the bsnes Accuracy core have the following file ex ## Databases -RetroArch database(s) that are associated with the bsnes Accuracy core: +RetroArch database(s) that are associated with the bsnes 2014 Accuracy core: - [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) - [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) @@ -43,7 +45,7 @@ RetroArch database(s) that are associated with the bsnes Accuracy core: Required or optional firmware files go in the frontend's system directory. !!! attention - The bsnes Accuracy core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). + The bsnes 2014 Accuracy core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). Notable DSP1/DSP1B Games: @@ -90,7 +92,7 @@ Notable Cx4 Games: ## Features -Frontend-level settings or features that the bsnes Accuracy core respects. +Frontend-level settings or features that the bsnes 2014 Accuracy core respects. | Feature | Supported | |-------------------|:---------:| @@ -121,9 +123,9 @@ Frontend-level settings or features that the bsnes Accuracy core respects. ### Directories -The bsnes Accuracy core's internal core name is 'bsnes' +The bsnes 2014 Accuracy core's internal core name is 'bsnes' -The bsnes Accuracy core saves/loads to/from these directories. +The bsnes 2014 Accuracy core saves/loads to/from these directories. **Frontend's Save directory** @@ -135,9 +137,9 @@ The bsnes Accuracy core saves/loads to/from these directories. ### Geometry and timing -- The bsnes Accuracy core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. -- The bsnes Accuracy core's core provided sample rate is 32040.5 Hz -- The bsnes Accuracy core's core provided aspect ratio is 4/3 +- The bsnes 2014 Accuracy core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes 2014 Accuracy core's core provided sample rate is 32040.5 Hz +- The bsnes 2014 Accuracy core's core provided aspect ratio is 4/3 ## Super GameBoy @@ -187,7 +189,7 @@ There's documentation for loading MSU-1 games in standalone higan [here](https:/ ## Controllers -The bsnes Accuracy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): +The bsnes 2014 Accuracy core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): ### User 1 device types @@ -250,15 +252,15 @@ Activating multitap support in compatible games can be configured by switching t ## Compatibility -The bsnes Accuracy core fully emulates all SNES games that have ever been officially released. +The bsnes 2014 Accuracy core fully emulates all SNES games that have ever been officially released. ## External Links - [Official higan Website](https://byuu.org/) - [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) -- [Libretro bsnes Accuracy Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_accuracy_libretro.info) -- [Libretro bsnes Accuracy Github Repository](https://github.com/libretro/bsnes-libretro) -- [Report Libretro bsnes Accuracy Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) +- [Libretro bsnes 2014 Accuracy Core info file](https://github.com/libretro/libretro-core-info/blob/master/bsnes2014_accuracy_libretro.info) +- [Libretro bsnes 2014 Accuracy Github Repository](https://github.com/libretro/bsnes-libretro) +- [Report Libretro bsnes 2014 Accuracy Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) ### See also @@ -269,9 +271,9 @@ The bsnes Accuracy core fully emulates all SNES games that have ever been offici - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -285,9 +287,9 @@ The bsnes Accuracy core fully emulates all SNES games that have ever been offici - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/bsnes_balanced.md b/docs/library/bsnes2014_balanced.md similarity index 86% rename from docs/library/bsnes_balanced.md rename to docs/library/bsnes2014_balanced.md index f020983978..cc3554fcb3 100644 --- a/docs/library/bsnes_balanced.md +++ b/docs/library/bsnes2014_balanced.md @@ -1,7 +1,9 @@ -# Nintendo - SNES / Famicom (bsnes Balanced) +# Nintendo - SNES / Famicom (bsnes 2014 Balanced) ## Background +This page is about bsnes 2014 Balanced, the bsnes v094 core whose file is named `bsnes2014_balanced_libretro`. The current bsnes is a separate core, documented on the [bsnes](bsnes.md) page. + bsnes is a Super Nintendo emulator that began development on 2004-10-14. It focuses on accuracy and clean code above all else. It never uses speed or compatibility hacks. As a result, the minimum system requirements are greater than with other emulators. bsnes comes in three different profiles (accuracy, balanced and performance) which contain minor differences in the PPU (graphics) emulation. This core has been compiled with the Balanced profile. @@ -12,11 +14,11 @@ Please check the [compatibility section](#compatibility) for more information. ### Author/License -The bsnes Balanced core has been authored by +The bsnes 2014 Balanced core has been authored by - byuu -The bsnes Balanced core is licensed under +The bsnes 2014 Balanced core is licensed under - [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) @@ -24,7 +26,7 @@ A summary of the licenses behind RetroArch and its cores can be found [here](../ ## Extensions -Content that can be loaded by the bsnes Balanced core have the following file extensions: +Content that can be loaded by the bsnes 2014 Balanced core have the following file extensions: - .sfc - .smc @@ -32,7 +34,7 @@ Content that can be loaded by the bsnes Balanced core have the following file ex ## Databases -RetroArch database(s) that are associated with the bsnes Balanced core: +RetroArch database(s) that are associated with the bsnes 2014 Balanced core: - [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) - [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) @@ -43,7 +45,7 @@ RetroArch database(s) that are associated with the bsnes Balanced core: Required or optional firmware files go in the frontend's system directory. !!! attention - The bsnes Balanced core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). + The bsnes 2014 Balanced core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). Notable DSP1/DSP1B Games: @@ -90,7 +92,7 @@ Notable Cx4 Games: ## Features -Frontend-level settings or features that the bsnes Balanced core respects. +Frontend-level settings or features that the bsnes 2014 Balanced core respects. | Feature | Supported | |-------------------|:---------:| @@ -121,9 +123,9 @@ Frontend-level settings or features that the bsnes Balanced core respects. ### Directories -The bsnes Balanced core's internal core name is 'bsnes' +The bsnes 2014 Balanced core's internal core name is 'bsnes' -The bsnes Balanced core saves/loads to/from these directories. +The bsnes 2014 Balanced core saves/loads to/from these directories. **Frontend's Save directory** @@ -135,9 +137,9 @@ The bsnes Balanced core saves/loads to/from these directories. ### Geometry and timing -- The bsnes Balanced core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. -- The bsnes Balanced core's core provided sample rate is 32040.5 Hz -- The bsnes Balanced core's core provided aspect ratio is 4/3 +- The bsnes 2014 Balanced core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes 2014 Balanced core's core provided sample rate is 32040.5 Hz +- The bsnes 2014 Balanced core's core provided aspect ratio is 4/3 ## Super GameBoy @@ -187,7 +189,7 @@ There's documentation for loading MSU-1 games in standalone higan [here](https:/ ## Controllers -The bsnes Balanced core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): +The bsnes 2014 Balanced core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): ### User 1 device types @@ -258,9 +260,9 @@ Activating multitap support in compatible games can be configured by switching t - [Official higan Website](https://byuu.org/) - [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) -- [Libretro bsnes Balanced Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_balanced_libretro.info) -- [Libretro bsnes Balanced Github Repository](https://github.com/libretro/bsnes-libretro) -- [Report Libretro bsnes Balanced Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) +- [Libretro bsnes 2014 Balanced Core info file](https://github.com/libretro/libretro-core-info/blob/master/bsnes2014_balanced_libretro.info) +- [Libretro bsnes 2014 Balanced Github Repository](https://github.com/libretro/bsnes-libretro) +- [Report Libretro bsnes 2014 Balanced Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) ### See also @@ -271,9 +273,9 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -287,9 +289,9 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/bsnes_performance.md b/docs/library/bsnes2014_performance.md similarity index 86% rename from docs/library/bsnes_performance.md rename to docs/library/bsnes2014_performance.md index 19d5e8515d..1289a9f7ac 100644 --- a/docs/library/bsnes_performance.md +++ b/docs/library/bsnes2014_performance.md @@ -1,7 +1,9 @@ -# Nintendo - SNES / Famicom (bsnes Performance) +# Nintendo - SNES / Famicom (bsnes 2014 Performance) ## Background +This page is about bsnes 2014 Performance, the bsnes v094 core whose file is named `bsnes2014_performance_libretro`. The current bsnes is a separate core, documented on the [bsnes](bsnes.md) page. + bsnes is a Super Nintendo emulator that began development on 2004-10-14. It focuses on accuracy and clean code above all else. It never uses speed or compatibility hacks. As a result, the minimum system requirements are greater than with other emulators. bsnes comes in three different profiles (accuracy, balanced and performance) which contain minor differences in the PPU (graphics) emulation. This core has been compiled with the Performance profile. @@ -12,11 +14,11 @@ Please check the [compatibility section](#compatibility) for more information. ### Author/License -The bsnes Performance core has been authored by +The bsnes 2014 Performance core has been authored by - byuu -The bsnes Performance core is licensed under +The bsnes 2014 Performance core is licensed under - [GPLv3](https://github.com/libretro/bsnes-libretro/blob/libretro/COPYING) @@ -24,7 +26,7 @@ A summary of the licenses behind RetroArch and its cores can be found [here](../ ## Extensions -Content that can be loaded by the bsnes Performance core have the following file extensions: +Content that can be loaded by the bsnes 2014 Performance core have the following file extensions: - .sfc - .smc @@ -32,7 +34,7 @@ Content that can be loaded by the bsnes Performance core have the following file ## Databases -RetroArch database(s) that are associated with the bsnes Performance core: +RetroArch database(s) that are associated with the bsnes 2014 Performance core: - [Nintendo - Super Nintendo Entertainment System](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System.rdb) - [Nintendo - Super Nintendo Entertainment System Hacks](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Super%20Nintendo%20Entertainment%20System%20Hacks.rdb) @@ -43,7 +45,7 @@ RetroArch database(s) that are associated with the bsnes Performance core: Required or optional firmware files go in the frontend's system directory. !!! attention - The bsnes Performance core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). + The bsnes 2014 Performance core uses split ROMS for [special chip games](https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips#List_of_Super_NES_games_that_use_enhancement_chips). Notable DSP1/DSP1B Games: @@ -90,7 +92,7 @@ Notable Cx4 Games: ## Features -Frontend-level settings or features that the bsnes Performance core respects. +Frontend-level settings or features that the bsnes 2014 Performance core respects. | Feature | Supported | |-------------------|:---------:| @@ -121,9 +123,9 @@ Frontend-level settings or features that the bsnes Performance core respects. ### Directories -The bsnes Performance core's internal core name is 'bsnes' +The bsnes 2014 Performance core's internal core name is 'bsnes' -The bsnes Performance core saves/loads to/from these directories. +The bsnes 2014 Performance core saves/loads to/from these directories. **Frontend's Save directory** @@ -135,9 +137,9 @@ The bsnes Performance core saves/loads to/from these directories. ### Geometry and timing -- The bsnes Performance core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. -- The bsnes Performance core's core provided sample rate is 32040.5 Hz -- The bsnes Performance core's core provided aspect ratio is 4/3 +- The bsnes 2014 Performance core's core provided FPS is 60.0988118623 for NTSC games and 50.0069789082 for PAL games. +- The bsnes 2014 Performance core's core provided sample rate is 32040.5 Hz +- The bsnes 2014 Performance core's core provided aspect ratio is 4/3 ## Super GameBoy @@ -187,7 +189,7 @@ There's documentation for loading MSU-1 games in standalone higan [here](https:/ ## Controllers -The bsnes Performance core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): +The bsnes 2014 Performance core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): ### User 1 device types @@ -265,9 +267,9 @@ Activating multitap support in compatible games can be configured by switching t - [Official higan Website](https://byuu.org/) - [Official higan Upstream Downloads](https://byuu.org/emulation/higan/) -- [Libretro bsnes Performance Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/bsnes_performance_libretro.info) -- [Libretro bsnes Performance Github Repository](https://github.com/libretro/bsnes-libretro) -- [Report Libretro bsnes Performance Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) +- [Libretro bsnes 2014 Performance Core info file](https://github.com/libretro/libretro-core-info/blob/master/bsnes2014_performance_libretro.info) +- [Libretro bsnes 2014 Performance Github Repository](https://github.com/libretro/bsnes-libretro) +- [Report Libretro bsnes 2014 Performance Core Issues Here](https://github.com/libretro/bsnes-libretro/issues) ### See also @@ -278,8 +280,8 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) @@ -294,8 +296,8 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) diff --git a/docs/library/bsnes_cplusplus98.md b/docs/library/bsnes_cplusplus98.md index 6d768c8fda..321aa7d072 100644 --- a/docs/library/bsnes_cplusplus98.md +++ b/docs/library/bsnes_cplusplus98.md @@ -170,9 +170,9 @@ Awaiting description. - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -186,9 +186,9 @@ Awaiting description. - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/bsnes_mercury_accuracy.md b/docs/library/bsnes_mercury_accuracy.md index 50c8512ca9..e49ae25920 100644 --- a/docs/library/bsnes_mercury_accuracy.md +++ b/docs/library/bsnes_mercury_accuracy.md @@ -298,10 +298,10 @@ The bsnes-mercury Accuracy core fully emulates all SNES games that have ever bee - [Nintendo - SNES / Famicom (bsnes-jg)](bsnes-jg.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -314,10 +314,10 @@ The bsnes-mercury Accuracy core fully emulates all SNES games that have ever bee - [Nintendo - SNES / Famicom (bsnes-jg)](bsnes-jg.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/bsnes_mercury_balanced.md b/docs/library/bsnes_mercury_balanced.md index c0738a51aa..51c3d4e11e 100644 --- a/docs/library/bsnes_mercury_balanced.md +++ b/docs/library/bsnes_mercury_balanced.md @@ -300,10 +300,10 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-jg)](bsnes-jg.md) - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -316,10 +316,10 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-jg)](bsnes-jg.md) - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/bsnes_mercury_performance.md b/docs/library/bsnes_mercury_performance.md index 0b4b3452ad..4e8388ae0c 100644 --- a/docs/library/bsnes_mercury_performance.md +++ b/docs/library/bsnes_mercury_performance.md @@ -307,10 +307,10 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-jg)](bsnes-jg.md) - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -323,10 +323,10 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-jg)](bsnes-jg.md) - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/compatibility/snes.md b/docs/library/compatibility/snes.md index 6d6187aafa..f915d1a999 100644 --- a/docs/library/compatibility/snes.md +++ b/docs/library/compatibility/snes.md @@ -1,12 +1,12 @@ # Nintendo SNES Core Compatibility -## bsnes Accuracy +## bsnes 2014 Accuracy -The bsnes Accuracy core fully emulates all SNES games that have ever been officially released. +The bsnes 2014 Accuracy core fully emulates all SNES games that have ever been officially released. Same with bsnes-mercury Accuracy -## bsnes Balanced +## bsnes 2014 Balanced | Game | Issue | |--------------------------|--------------------------------------------------------------------------------| @@ -14,7 +14,7 @@ Same with bsnes-mercury Accuracy Same with bsnes-mercury Balanced -## bsnes Performance +## bsnes 2014 Performance | Game | Issue | |--------------------------------------------------|--------------------------------------------------------------------------------| diff --git a/docs/library/higan_accuracy.md b/docs/library/higan_accuracy.md index 4135c6012b..f22d07bd46 100644 --- a/docs/library/higan_accuracy.md +++ b/docs/library/higan_accuracy.md @@ -331,10 +331,10 @@ Incompatible with ROM hacks made to take advantage of emulator quirks, much like - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) diff --git a/docs/library/mesen-s.md b/docs/library/mesen-s.md index 7d5966dda7..9ce79e1d52 100644 --- a/docs/library/mesen-s.md +++ b/docs/library/mesen-s.md @@ -298,10 +298,10 @@ The Mesen-S core fully emulates all SNES, GB, and GBC games that have ever been - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) diff --git a/docs/library/nside_balanced.md b/docs/library/nside_balanced.md index eba9cc5bcc..fa4fe040cb 100644 --- a/docs/library/nside_balanced.md +++ b/docs/library/nside_balanced.md @@ -330,10 +330,10 @@ Incompatible with ROM hacks made to take advantage of emulator quirks, much like - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) diff --git a/docs/library/snes9x.md b/docs/library/snes9x.md index 7ffbabbb6b..d0b4ce6bd0 100644 --- a/docs/library/snes9x.md +++ b/docs/library/snes9x.md @@ -455,10 +455,10 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/snes9x_2002.md b/docs/library/snes9x_2002.md index 6e69cc992c..b7df4d5cae 100644 --- a/docs/library/snes9x_2002.md +++ b/docs/library/snes9x_2002.md @@ -165,10 +165,10 @@ Awaiting description. - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) - [Nintendo - SNES / Famicom (Snes9x 2005)](snes9x_2005.md) @@ -181,10 +181,10 @@ Awaiting description. - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/snes9x_2005.md b/docs/library/snes9x_2005.md index 8560838a5b..24ac16f802 100644 --- a/docs/library/snes9x_2005.md +++ b/docs/library/snes9x_2005.md @@ -184,10 +184,10 @@ The Snes9x 2005 core supports the following device type(s) in the controls menu, - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -200,10 +200,10 @@ The Snes9x 2005 core supports the following device type(s) in the controls menu, - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/snes9x_2005_plus.md b/docs/library/snes9x_2005_plus.md index 9560e55f96..479eabc079 100644 --- a/docs/library/snes9x_2005_plus.md +++ b/docs/library/snes9x_2005_plus.md @@ -186,10 +186,10 @@ The Snes9x 2005 Plus core supports the following device type(s) in the controls - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005)](snes9x_2005.md) @@ -202,10 +202,10 @@ The Snes9x 2005 Plus core supports the following device type(s) in the controls - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/library/snes9x_2010.md b/docs/library/snes9x_2010.md index 7fb6a363cc..3852bf39f6 100644 --- a/docs/library/snes9x_2010.md +++ b/docs/library/snes9x_2010.md @@ -221,10 +221,10 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (Snes9x)](snes9x.md) - [Nintendo - SNES / Famicom (Snes9x 2002)](snes9x_2002.md) - [Nintendo - SNES / Famicom (Snes9x 2005 Plus)](snes9x_2005_plus.md) @@ -237,10 +237,10 @@ Activating multitap support in compatible games can be configured by switching t - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](mesen-s.md) diff --git a/docs/meta/see-also.md b/docs/meta/see-also.md index bbe9bc4bcb..62f98ac70a 100644 --- a/docs/meta/see-also.md +++ b/docs/meta/see-also.md @@ -147,10 +147,10 @@ This is a list of cores that are related to each other in some way. - [Nintendo - SNES / Famicom (bsnes-mercury Accuracy)](../library/bsnes_mercury_accuracy.md) - [Nintendo - SNES / Famicom (bsnes-mercury Balanced)](../library/bsnes_mercury_balanced.md) - [Nintendo - SNES / Famicom (bsnes-mercury Performance)](../library/bsnes_mercury_performance.md) -- [Nintendo - SNES / Famicom (bsnes Accuracy)](../library/bsnes_accuracy.md) -- [Nintendo - SNES / Famicom (bsnes Balanced)](../library/bsnes_balanced.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Accuracy)](../library/bsnes2014_accuracy.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Balanced)](../library/bsnes2014_balanced.md) - [Nintendo - SNES / Famicom (bsnes C++98 (v085))](../library/bsnes_cplusplus98.md) -- [Nintendo - SNES / Famicom (bsnes Performance)](../library/bsnes_performance.md) +- [Nintendo - SNES / Famicom (bsnes 2014 Performance)](../library/bsnes2014_performance.md) - [Nintendo - SNES / Famicom (higan Accuracy)](../library/higan_accuracy.md) - [Nintendo - SNES / Famicom (nSide Balanced)](../library/nside_balanced.md) - [Nintendo - SNES / Famicom (Mesen-S)](../library/mesen-s.md) diff --git a/mkdocs.yml b/mkdocs.yml index c3e7dfd54b..2e9629a7d6 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -218,10 +218,10 @@ nav: - 'Nintendo - SNES / Famicom (Beetle bsnes)': 'library/beetle_bsnes.md' - 'Nintendo - SNES / SFC (bsnes)': 'library/bsnes.md' - 'Nintendo - SNES / Famicom (bsnes-jg)': 'library/bsnes-jg.md' - - 'Nintendo - SNES / Famicom (bsnes Accuracy)': 'library/bsnes_accuracy.md' - - 'Nintendo - SNES / Famicom (bsnes Balanced)': 'library/bsnes_balanced.md' + - 'Nintendo - SNES / Famicom (bsnes 2014 Accuracy)': 'library/bsnes2014_accuracy.md' + - 'Nintendo - SNES / Famicom (bsnes 2014 Balanced)': 'library/bsnes2014_balanced.md' - 'Nintendo - SNES / Famicom (bsnes C++98 (v085))': 'library/bsnes_cplusplus98.md' - - 'Nintendo - SNES / Famicom (bsnes Performance)': 'library/bsnes_performance.md' + - 'Nintendo - SNES / Famicom (bsnes 2014 Performance)': 'library/bsnes2014_performance.md' - 'Nintendo - SNES / Famicom (bsnes-mercury Accuracy)': 'library/bsnes_mercury_accuracy.md' - 'Nintendo - SNES / Famicom (bsnes-mercury Balanced)': 'library/bsnes_mercury_balanced.md' - 'Nintendo - SNES / Famicom (bsnes-mercury Performance)': 'library/bsnes_mercury_performance.md' From 310413f628bb18b939c2df9d32e524e37b962c9d Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:29:03 +0200 Subject: [PATCH 07/15] Facebook Portal: keep only the steps The page repeated three times that a Portal is not a gaming device and still carried a chatbot's "Sure! Here's a step-by-step guide". It now says why RetroArch runs in the browser there and lists the four steps. Fixes #893. --- docs/guides/install-facebookportal.md | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/docs/guides/install-facebookportal.md b/docs/guides/install-facebookportal.md index 1e3221688e..747db7eb10 100644 --- a/docs/guides/install-facebookportal.md +++ b/docs/guides/install-facebookportal.md @@ -1,25 +1,10 @@ -Facebook Portal is a device that allows you to have video calls with friends and family using Facebook Messenger. It has a built-in camera and microphone, and it's designed to make video chatting easier and more convenient. - -Now, if you want to use Facebook Portal for running RetroArch, we need to do a little tweaking. RetroArch is an emulator that allows you to play old video games on various platforms. While Facebook Portal is not specifically designed for gaming, it does have some capabilities that might make it possible. - -To run RetroArch on Facebook Portal, you would need to use browser. Remember that running RetroArch on Facebook Portal might not provide the best gaming experience. The device is primarily designed for video calling and might not have the same performance or compatibility as dedicated gaming devices or computers. So, while it's possible to run RetroArch on Facebook Portal, it might not be the ideal setup for gaming purposes. +Facebook Portal is a video calling device. It runs Android, but without the Google Play Store, so RetroArch cannot be installed on it. It can run the web version of RetroArch in the Portal's browser instead. Expect lower performance than on a dedicated gaming device. # Running RetroArch on Facebook Portal -Portal is built on an open-source Android platform but we can't access the Google Play Store. - -Sure! Here's a step-by-step guide to running RetroArch on Facebook Portal: - -1. Connect your controller: Start by connecting your controller to the Facebook Portal. You can do this by using via Bluetooth. Go to the settings, then Bluetooth settings. Put your controller into the Pairing mode. You will see your controller in the list. - -2. Open the web browser: On the Facebook Portal, locate the web browser app. It's usually represented by an icon that looks like a globe or compass. Tap on the icon to open the web browser. - -3. Visit web.libretro.com: In the web browser, enter the URL "web.libretro.com" in the address bar. This website is the official RetroArch website. - -4. Select a core: On the RetroArch website, you'll find a list of cores. Choose the core that corresponds to the console you want to emulate. - -5. Run the homebrews: After selecting the core, go to the "Downloads" section under the main menu. Look for the homebrews available for the console you selected. Homebrews are unofficial games or software created by independent developers. Select the file and it will load. - -Remember, running RetroArch on Facebook Portal might not offer the best gaming experience, as the device is primarily designed for video calling. So, manage your expectations accordingly, and have fun exploring the world of retro gaming! \ No newline at end of file +1. Pair a controller: open the Portal's Bluetooth settings, put the controller in pairing mode and select it in the list. +2. Open the web browser and go to [web.libretro.com](https://web.libretro.com). +3. Choose the core for the system you want to play. +4. Load content. The web version offers homebrew games for each core under **Downloads** in its main menu. From c3260d1babf7d72955f631c565666991030ca4f6 Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:33:13 +0200 Subject: [PATCH 08/15] Add a page for the Azahar core Azahar, the Citra-based 3DS core, is on the buildbot but had no page. It takes background, authors, extensions and feature support from the core's info file, and the 32 core options in their seven categories from the core's source. Like Citra it keeps system files and saves in its own user directory, saves/Azahar/, which the page says. It is added to the nav next to Citra and to the core list. Fixes #1157. --- docs/guides/core-list.md | 1 + docs/library/azahar.md | 224 +++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 226 insertions(+) create mode 100644 docs/library/azahar.md diff --git a/docs/guides/core-list.md b/docs/guides/core-list.md index 47ba7886ca..2b55438537 100644 --- a/docs/guides/core-list.md +++ b/docs/guides/core-list.md @@ -8,6 +8,7 @@ | [Ardens](../library/ardens.md) | Arduboy | A simulator for the Arduboy FX | | Arduous | Arduboy | A emulator for Arduboy, a handheld game console with open source software, based on the Arduino hardware platform | | [Atari800](https://docs.libretro.com/library/atari800/) | Atari 5200 | | +| [Azahar](../library/azahar.md) | Nintendo 3DS | A port of the Azahar 3DS emulator to libretro, based on Citra | | [b2](../library/b2.md) | Acorn BBC Micro | | | [Beetle bsnes](../library/beetle_bsnes.md) | Nintendo SNES/SFC | | | [Beetle Cygne](https://docs.libretro.com/library/beetle_cygne/) | Bandai WonderSwan/Color | | diff --git a/docs/library/azahar.md b/docs/library/azahar.md new file mode 100644 index 0000000000..be286996a7 --- /dev/null +++ b/docs/library/azahar.md @@ -0,0 +1,224 @@ +# Nintendo - 3DS (Azahar) + +## Background + +A port of the Azahar 3DS emulator to libretro. Azahar is based on Citra, started by merging several prominent Citra forks after Citra was taken down. The core requires decrypted ROMs to function, and some games require Mii data to be dumped from your own 3DS console. + +The Azahar core has been authored by + +- Azahar Emulator + +The Azahar core is licensed under + +- GPLv2+ + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Extensions + +Content that can be loaded by the Azahar core have the following file extensions: + +- .3ds +- .3dsx +- .z3dsx +- .elf +- .axf +- .cci +- .zcci +- .cxi +- .zcxi +- .app + +RetroArch database(s) that are associated with the Azahar core: + +- [Nintendo - Nintendo 3DS](https://github.com/libretro/libretro-database/blob/master/rdb/Nintendo%20-%20Nintendo%203DS.rdb) + +## Features + +Frontend-level settings or features that the Azahar core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Saves | ✔ | +| States | ✔ | +| Rewind | ✕ | +| Core Options | ✔ | +| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✕ | +| RetroArch Cheats | ✕ | +| Controls | ✔ | +| Subsystem | ✕ | +| Disk Control | ✕ | + +### Directories + +The Azahar core keeps its user directory in the frontend's save directory: + +- `Azahar/` - the 3DS system files (`sysdata/`, `nand/`), save data (`sdmc/`) and the shader cache. System files dumped from a 3DS, and the Mii data some games need, go here. + +This is the "LibRetro Default" setting of the **Save Location** core option (`citra_use_libretro_save_path`). When the frontend has no save directory, `Azahar/` is created in the system directory instead. With "Azahar Default" the core uses standalone Azahar's user directory. + +## Core options + +The Azahar core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. The Vulkan and OpenGL entries of **Graphics API** are only offered by builds that include that renderer. + +#### CPU + +Settings related to CPU emulation performance and accuracy. + +- **CPU JIT** [citra_use_cpu_jit] (**Enabled**|Disabled) + + Enable Just-In-Time compilation for ARM CPU emulation. Significantly improves performance but may reduce accuracy. Restart required. + +- **CPU Clock Speed** [citra_cpu_clock_percentage] (25%|50%|75%|**100% (Default)**|125%|150%|175%|200%|225%|250%|275%|300%|325%|350%|375%|400%) + + Adjust the emulated 3DS CPU clock speed as a percentage of normal speed. Higher values may improve performance in some games but can cause issues. Lower values can help with games that run too fast. + +#### System + +Nintendo 3DS system configuration and region settings. + +- **System Model** [citra_is_new_3ds] (**New 3DS**|Original 3DS) + + Select whether to emulate the original 3DS or New 3DS. New 3DS has additional CPU power and memory, required for some games. Restart required. + +- **System Region** [citra_region_value] (**Auto**|Japan|USA|Europe|Australia|China|Korea|Taiwan) + + Set the 3DS system region. Auto-select will choose based on the game. Some games are region-locked and require matching regions. + +- **System Language** [citra_language_value] (**English**|Japanese|French|Spanish|German|Italian|Dutch|Portuguese|Russian|Korean|Traditional Chinese|Simplified Chinese) + + Set the system language for the emulated 3DS. This affects in-game text language when supported. + +#### Audio + +Audio emulation and microphone settings. + +- **Audio Emulation** [citra_audio_emulation] (**HLE (Fast)**|LLE (Accurate)|LLE Multithreaded) + + Select audio emulation method. HLE is faster, LLE is more accurate. + +- **Microphone Input** [citra_input_type] (**Auto**|None|Static Noise|Frontend) + + Select how microphone input is handled for games that support it. + +#### Graphics + +Graphics API, rendering, and visual enhancement settings. + +- **Graphics API** [citra_graphics_api] (**Auto**|Vulkan|OpenGL|Software) + + Select the graphics rendering API. Auto will choose the best available option. Restart required. + +- **Hardware Shaders** [citra_use_hw_shader] (**Enabled**|Disabled) + + Use GPU hardware to accelerate shader processing. Significantly improves performance but may reduce accuracy. + +- **Shader JIT** [citra_use_shader_jit] (**Enabled**|Disabled) + + Use Just-In-Time compilation for shaders. Improves performance but may cause graphical issues in some games. + +- **Accurate Multiplication** [citra_shaders_accurate_mul] (**Enabled**|Disabled) + + Use accurate multiplication in shaders. More accurate but can reduce performance. Only works with hardware shaders. + +- **Shader Cache** [citra_use_disk_shader_cache] (**Enabled**|Disabled) + + Save compiled shaders to disk to reduce loading times on subsequent runs. + +- **Internal Resolution** [citra_resolution_factor] (**1x (Native 400x240)**|2x (800x480)|3x (1200x720)|4x (1600x960)|5x (2000x1200)|6x (2400x1440)|7x (2800x1680)|8x (3200x1920)|9x (3600x2160)|10x (4000x2400)|11x (4400x2640)|12x (4800x2880)|13x (5200x3120)|14x (5600x3360)|15x (6000x3600)|16x (6400x3840)|17x (6800x4080)|18x (7200x4320)) + + Render the 3DS screens at a higher resolution. Higher values improve visual quality but significantly impact performance. + +- **Texture Filter** [citra_texture_filter] (**None**|Anime4K Ultrafast|Bicubic|ScaleForce|xBRZ|MMPX) + + Apply texture filtering to enhance visual quality. Some filters may significantly impact performance. + +- **Texture Sampling** [citra_texture_sampling] (**Game Controlled**|Nearest Neighbor|Linear) + + Control how textures are sampled and filtered. + +- **Custom Textures** [citra_custom_textures] (Enabled|**Disabled**) + + Enable loading of custom texture packs to replace original game textures. + +- **Dump Textures** [citra_dump_textures] (Enabled|**Disabled**) + + Save original game textures to disk for creating custom texture packs. May impact performance. + +#### Layout + +Screen layout and display positioning options. + +- **Screen Layout** [citra_layout_option] (**Default Top-Bottom**|Single Screen Only|Large Screen, Small Screen|Side by Side) + + Choose how the 3DS screens are arranged in the display. + +- **Prominent Screen** [citra_swap_screen] (**Top Screen**|Bottom Screen) + + Choose which screen is displayed prominently in single screen or large screen layouts. + +- **Swap Mode** [citra_swap_screen_mode] (**Toggle**|Hold) + + How screen swapping behaves when using the screen swap hotkey. + +- **Large Screen Proportion** [citra_large_screen_proportion] (1.00x (Equal Size)|1.25x|1.50x|1.75x|2.00x|2.25x|2.50x|2.75x|3.00x|3.25x|3.50x|3.75x|**4.00x (Default)**|4.25x|4.50x|4.75x|5.00x|5.25x|5.50x|5.75x|6.00x) + + How many times larger the main screen is compared to the small screen in the Large Screen layout. + +- **Stereo 3D Mode** [citra_render_3d] (**Off (2D)**|Side by Side|Side by Side (Full)|Anaglyph (Red/Cyan)|Interlaced|Reverse Interlaced|Cardboard VR) + + Stereoscopic 3D output, used when a game is rendering in 3D. 'Off' shows a single 2D image. 'Side by Side' places the left and right eye images beside each other in one frame, each at half width. 'Side by Side (Full)' does the same but keeps each eye at full width. 'Anaglyph' merges both eyes into a single red/cyan image for use with red/cyan glasses. 'Interlaced' alternates the eyes on odd and even scanlines for interlaced 3D displays, and 'Reverse Interlaced' swaps which eye is on which line. 'Cardboard VR' outputs side by side with lens-distortion correction for Cardboard-style viewers. + +- **Stereo 3D Depth** [citra_factor_3d] (**0%**|10%|20%|30%|40%|50%|60%|70%|80%|90%|100%) + + Depth intensity of the stereoscopic 3D effect, as a percentage. Only used when a 3D mode is active. + +#### Storage + +Save data and virtual SD card settings. + +- **Virtual SD Card** [citra_use_virtual_sd] (**Enabled**|Disabled) + + Enable virtual SD card support for homebrew and some commercial games. + +- **Save Location** [citra_use_libretro_save_path] (**LibRetro Default**|Azahar Default) + + Choose where save data and system files are stored. + +#### Input + +Controller and touchscreen input configuration. + +- **Right Analog Function** [citra_analog_function] (**C-Stick and Touchscreen Pointer**|Touchscreen Pointer|C-Stick) + + Configure what the right analog stick controls. + +- **Analog Deadzone** [citra_analog_deadzone] (0%|5%|10%|**15%**|20%|25%|30%|35%) + + Set the deadzone percentage for analog input to reduce drift. + +- **Mouse Touchscreen** [citra_enable_mouse_touchscreen] (**Enabled**|Disabled) + + Enable mouse input for touchscreen interactions. + +- **Touch Support** [citra_enable_touch_touchscreen] (**Enabled**|Disabled) + + Enable touch device input for touchscreen interactions. + +- **Touch Pointer Timeout** [citra_enable_touch_pointer_timeout] (**Enabled**|Disabled) + + Whether or not the touchscreen pointer should disappear during inactivity. + +- **Motion Support** [citra_enable_motion] (**Enabled**|Disabled) + + Enable gyroscope and accelerometer input for games that support motion controls. + +- **Motion Sensitivity** [citra_motion_sensitivity] (10%|25%|50%|75%|**100%**|125%|150%|200%) + + Adjust sensitivity of motion controls (gyroscope/accelerometer). + +## External Links + +- [Azahar Repository](https://github.com/azahar-emu/azahar) +- [Report Azahar Core Issues Here](https://github.com/azahar-emu/azahar/issues) + diff --git a/mkdocs.yml b/mkdocs.yml index 2e9629a7d6..138343e4be 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -207,6 +207,7 @@ nav: - 'Nintendo - NES / Famicom (Nestopia)': 'library/nestopia.md' - 'Nintendo - NES / Famicom (QuickNES)': 'library/quicknes.md' - 'Nintendo - NES / Famicom (RustyNES)': 'library/rustynes.md' + - 'Nintendo - 3DS (Azahar)': 'library/azahar.md' - 'Nintendo - 3DS (Citra)': 'library/citra.md' - 'Nintendo - 3DS (Citra Canary/Experimental)': 'library/citra_canary.md' - 'Nintendo - Nintendo 64 (Mupen64Plus)': 'library/mupen64plus.md' From e49b99c42c0f97d66047e3a249ea076c83857f65 Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:36:25 +0200 Subject: [PATCH 09/15] Developing cores: document core file names and optional OS suffixes Cores are named _libretro and match _libretro.info. The _android/_ios/_tvos suffix some builds carry is optional: RetroArch drops the last underscore-separated part unless it is _libretro, so a core without one matches its info file just the same. Say so, so that a missing suffix stops being reported as a bug. Fixes #1176. --- docs/development/cores/developing-cores.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/development/cores/developing-cores.md b/docs/development/cores/developing-cores.md index 02ee6c3c84..6e24a7d8c6 100644 --- a/docs/development/cores/developing-cores.md +++ b/docs/development/cores/developing-cores.md @@ -180,3 +180,11 @@ There are several steps before your core can be available to user via the Online - Add at least icons playlist and content for your core in [RetroArch assets repository](https://github.com/libretro/retroarch-assets/tree/master/src/xmb/monochrome) - Add your games to [Libretro database](https://github.com/libretro/libretro-database). 4. Add documentation of your core following the instructions in [libretro-docs](https://github.com/libretro/docs#adding-a-new-core). + +### Core file names + +A core's file is named `_libretro` followed by the platform's library extension, for example `snes9x_libretro.so`, `snes9x_libretro.dll` or `snes9x_libretro.dylib`. Its info file is `_libretro.info`, and the name must match it for RetroArch to show the core's information and to offer it in the Online Updater. + +On some platforms the buildbot adds an OS suffix after `_libretro`, such as `snes9x_libretro_android.so`. The suffix is optional: many cores are built without one on Android, iOS and tvOS, and they work the same. RetroArch drops everything after the last underscore unless that part is `_libretro` itself, so `snes9x_libretro.so` and `snes9x_libretro_android.so` both match `snes9x_libretro.info`. Only one suffix is removed, so a file name must not carry more than one after `_libretro`. + +A core without an OS suffix is therefore not a mistake, and does not need an issue or a pull request to add one. From b2c04350e0a72dc27a97aa538162db6f22bc1cf3 Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:38:01 +0200 Subject: [PATCH 10/15] FBNeo: explain why the bios belongs in system/fbneo/ The core also finds a bios in the system directory itself, but its info file lists every bios as fbneo/.zip, so RetroArch's core information and firmware check call one there missing. That is what made the fbneo subfolder look mandatory; say so and recommend it on every platform. Fixes #1130. --- docs/library/fbneo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/library/fbneo.md b/docs/library/fbneo.md index d8d4ebb269..ea70b1b7dd 100644 --- a/docs/library/fbneo.md +++ b/docs/library/fbneo.md @@ -178,7 +178,7 @@ When loading a romset requiring a bios romset, it will be searched through these * the `SYSTEM_DIRECTORY/fbneo/` folder * the `SYSTEM_DIRECTORY/` folder -`SYSTEM_DIRECTORY/fbneo/` is the recommended place: it is where the core also keeps samples, hiscore.dat and its other support files, and it is searched on every platform. +`SYSTEM_DIRECTORY/fbneo/` is the recommended place, on every platform: it is where the core also keeps samples, hiscore.dat and its other support files, and it is where RetroArch looks for them. The core's info file lists each bios romset as `fbneo/.zip`, so RetroArch's core information and firmware check report a bios in `SYSTEM_DIRECTORY/` itself as missing, although the core finds and uses it. The following bios romsets are required for some of the emulated arcade systems : From 46d2e6af8f27b65bda1ce50b39a63110d2b3e8ae Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:41:29 +0200 Subject: [PATCH 11/15] PUAE: show how to change the emulated model The page listed the Model core option and the path tags but not how to use either, so it was unclear how to run one game as an A1200. It now gives the three ways - the option for every game, the option saved as a game override, and a tag in the file or folder name - notes that the model changes when the core restarts and needs that model's Kickstart ROM, and says what passing a .uae file means: loading it as content. Fixes #1096. --- docs/library/puae.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/library/puae.md b/docs/library/puae.md index a6010a5a55..ea84d7e735 100644 --- a/docs/library/puae.md +++ b/docs/library/puae.md @@ -342,6 +342,14 @@ Some games use mouse instead of joystick. D-Pad can be switched between joystick You can force a specific model if a game needs one (AGA games for instance) either by the "Model" core option or by file path tags. +To run a game as an Amiga 1200 instead of the default A500, for example, use one of these: + +- **For every game**: in `Quick Menu -> Core Options -> System`, set **Model** to `A1200`, then close and reload the content. The model only changes when the core starts. +- **For one game**: do the same, then save the setting for that game only with `Quick Menu -> Core Options -> Manage Core Options -> Save Game Options`. Other games keep the default. +- **With a file path tag**: leave **Model** at `Automatic` and put a tag from the table below in the file or folder name, for example rename `Alien Breed 2.adf` to `Alien Breed 2 (A1200).adf`, or move it into a folder named `AGA`. The core picks the model each time the game is loaded, without any settings to save. + +Each model needs its own Kickstart ROM in the system directory (see [BIOS](#bios)), for example `kick34005.A500` for the A500 and `kick40068.A1200` for the A1200, unless the built-in AROS replacement is selected in the **Kickstart ROM** core option. Without it the core shows "Kickstart ROM '...' not found!" when the content starts. + The "Model" core option at "**Automatic**" will default to A500 when booting floppy disks, A1200 when booting hard drives, and CD32 when booting CD images. The whole path (filename and directory) will be searched for the following tags if the model is "**Automatic**": @@ -400,7 +408,7 @@ For more detailed history of WHDLoad support visit the [Github repository](https ### Using configuration files -You can pass `.uae` configuration files and they will be appended to the core option configuration. +A `.uae` configuration file can be loaded as content, like a disk image, from `Load Content`. Its settings are appended to the configuration the core options produce, so anything it sets overrides them. It uses the same syntax as WinUAE configuration files. If `puae_libretro_[model].uae` exists in RetroArch `saves` it will be appended to the model preset section. From b51ac85ae20f84806ac0d235b5d1948a66d82a63 Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:45:55 +0200 Subject: [PATCH 12/15] Genesis Plus GX: document the touchscreen light gun With Light Gun Input set to Touchscreen the gun aims at the touch and every touch pulls the trigger; two, three and four fingers add B, Start and C. The page did not say so, nor that the touchscreen feeds the light gun's port while the on-screen gamepad feeds User 1. Point at RetroArch's overlay light gun and its Lightgun Port for games that need a gun and a pad. Addresses #1057. --- docs/library/genesis_plus_gx.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/library/genesis_plus_gx.md b/docs/library/genesis_plus_gx.md index cce07676d2..3c2ce88ea8 100644 --- a/docs/library/genesis_plus_gx.md +++ b/docs/library/genesis_plus_gx.md @@ -521,6 +521,17 @@ Use a mouse-controlled 'Light Gun' or 'Touchscreen' input. * **Light Gun [lightgun]** - Selects mouse-controlled 'Light Gun' input (devices will use [RetroLightgun](#lightgun) inputs). * Touchscreen [touchscreen] - Allows the [MS Light Phaser, MD Menancer and MD Justifiers](#lightgun) device types to be controlled via touchscreen input (devices will use [RetroPointer](#pointer) inputs instead). +With **Touchscreen**, the gun aims where the screen is touched, and every touch pulls the trigger (A). More fingers on the screen add a button to the trigger: + +| Fingers on screen | Input | +|:-----------------:|---------------------| +| 1 | Trigger (A) | +| 2 | Trigger (A) + B | +| 3 | Trigger (A) + Start | +| 4 | Trigger (A) + C | + +The touchscreen is read as the gun of the port the light gun device is set on, while RetroArch's on-screen gamepad overlay sends its buttons to User 1. For games that need a light gun on one port and a pad on the other, RetroArch's own overlay light gun (`Settings > On-Screen Display > On-Screen Overlay > Overlay Lightgun`, with its **Lightgun Port** setting) can send the gun to a different port than the overlay's buttons; use it with **Light Gun** selected here. + **Show Light Gun Crosshair** [genesis_plus_gx_gun_cursor] Display light gun crosshairs when using the [MD Menacer, MD Justifiers and MS Light Phaser](#lightgun) input device types. From 78cd65547535289027f966a7adf5305a9f331b1f Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:51:29 +0200 Subject: [PATCH 13/15] DeSmuME 2015: the sample and physical microphone modes give silence The page said you could supply your own microphone sample and that this "may not work". The core has no way to load a sample file, and its physical mode returns silence (still a TODO in mic.cpp), so both settings leave the microphone silent. Say so and point at internal and random. Fixes #605. --- docs/library/desmume_2015.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/library/desmume_2015.md b/docs/library/desmume_2015.md index a1289ee71f..3fa273df78 100644 --- a/docs/library/desmume_2015.md +++ b/docs/library/desmume_2015.md @@ -285,11 +285,11 @@ Settings with (Restart) means that core has to be closed for the new setting to With the internal setting, DeSmuME will use its internal noise sample for microphone input which works for many games that want you to blow on the mic. - With the sample setting, you can supply your own microphone sample for microphone input. **This may not work currently in the DeSmuME core**. + With the sample setting, standalone DeSmuME plays a sample file of your choice as microphone input. **The DeSmuME 2015 core cannot load a sample file, so this setting gives silence.** Use internal or random instead. With the random setting, DeSmuME will use random whitenoise for microphone input which will work for games that require blowing but which don't work with the internal noise sample. - With the physical setting, you can use your default recording device for microphone input. **This may not work currently in the DeSmuME core**. + With the physical setting, standalone DeSmuME uses your default recording device for microphone input. **The DeSmuME 2015 core does not read a recording device, so this setting also gives silence.** ## Controllers From e5913fe3037f1e8e4f1d68352e5bbedfc026659a Mon Sep 17 00:00:00 2001 From: WizzardSK <42868978+WizzardSK@users.noreply.github.com> Date: Fri, 25 Sep 2026 20:54:35 +0200 Subject: [PATCH 14/15] Saturn and Dreamcast cores: match the current default mappings - The saturn.png and dc.png pictures showed an old mapping (Saturn A, B, C on RetroPad Y, B, A; Dreamcast triggers on the shoulders). The cores map A, B, C to B, A, R1 and put the Dreamcast triggers on L2/R2, and the tables under the pictures already say so, so the pictures are removed rather than contradicting them. - Yabause and Kronos: C is R1 and Z is L1, as in Beetle Saturn; the tables had them swapped. - Flycast: the Dreamcast pad's L and R triggers are L2 and R2; the table listed fierce/weak L and R on L1/R1 and L2/R2. - Redream: Y is RetroPad X, not A (A was listed twice). Fixes #1029. --- docs/image/controller/dc.png | Bin 179063 -> 0 bytes docs/image/controller/saturn.png | Bin 163600 -> 0 bytes docs/library/beetle_saturn.md | 2 -- docs/library/flycast.md | 8 ++------ docs/library/kronos.md | 6 ++---- docs/library/redream.md | 4 +--- docs/library/yabause.md | 6 ++---- 7 files changed, 7 insertions(+), 19 deletions(-) delete mode 100644 docs/image/controller/dc.png delete mode 100644 docs/image/controller/saturn.png diff --git a/docs/image/controller/dc.png b/docs/image/controller/dc.png deleted file mode 100644 index 6f22e66b2ed1cd4fb47afe3b53d38a7dacdeda07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179063 zcmZ5|cRbba`@hOeWTdh;Wu6=(gp$2dR`$s_HgSxQqohQ(aI9o+;uzU!n8%TwUCFVX zka>*Xef0i(fA7!d;SY}ouW{ekecjjnyq?$ddWGxjsneWgIZHx9LZhjna*u?B3`Ih6 zrkRo){N+5`=|J#{+(uhnh2)s{^R~Glf#h_fh^ERd!$;#Q85HjghsSDpxwur@PM>an zQAu%^*Cu9v9!eg?B2}6E4Z^~}D#Y$IK!5eLR-D+&Cx)jMn|F{`gluGx&LZFU=S`7; zlMa~*&3%(QJ_^ZH4%qY*g}`mIR6rq9Ju7jfM5JoQZ~@Ox2UT>AJ=zq({Z?AGJ0 zVH4lP#JZV*YA1t0j-BPvJ}ewOT=}Ew>T@{6<#}?Q?&5Gs^4_1pJMH*84aTaQ~(WD)t6981-wM9pg@(_}pIJwr?L3JW`vK0L&l zPF?BOO|b7t8oS5*xDJ@&bLt(%z0ai<^#ghh&I7rcmB{`VG^}*Q*ZkPsp72=J;Vd{6 zv^SUByEfIhXh)~4@sy@``tfG3jZfe$Mg zCpGpx7fGQcBu_YtujXxB()%R)c=ur==}SE_?$8VHiz4^w(ra=|d##as{89XNG-jS# zAF0Jj38D>Gvx8?FwJEvz#`X?2`+A3p44%z>PL=U+SKR%6=H!XVQZ6H;6i&sqom^3L z%AJwS&=9vz3;j7xBHS*QB^~vDPa2APwp0L<++){-?-Zvzqd3ol0_(~~%XS?m=ey#_ z+HG8BmJ&qR?tjV^N@p`GLOoo{KI}x^DOpUtHtnqm?b$77P^Q#WpOm?tEN&eQ1Mc|n zTdkY;DpQ&YBov5pmBAk+VF3mSWt}VxD?LWuVk_m=9@Fwea7`dP$nY8ko z2;zGwzm}QTeP_QfcMkmb<1m|H6!M8qrPE;k_xkH#Z~Su;SX8o!><>t$o)afIWmfCz z#M%KI@aqFG!+Sj1Ng`CVxe*Z&j@P+uMXZ{xKN55Q_UBee*jQ>I*p&$dUk)!Ixo_(;Bqy_SC`bImFVvy%XpdwjD?Fq3qr z;PUl{-^GZFbKyp@{ld8+0o_!Uu&3aHaM$T3*>A?BW;GG*j1n*Qg|PLVE%aa}5=`ol z9sEr2`4DCj5;_be9GH|6eiH&V3-}EjkQB-tN=FLiLIFPozrkNZQovxqb7s(8X?pHjgYHA?W`UvFW?tSufhEg{RT z#3fppY0Y%utPr>!3r8#5<)xri#O`(I$fqqcu zp(|+b#e19U9h`&Qyu>@J^dZ^;;%3#I=QtH7y_ZLNC7lLx-x46i-6!69P{l0co^IM4 zP($3l^&G&bh|}fr2{DCQwMVnNQ1Cv#aru?n^_a`oKDtiSMny9dXBJBq;tx!Y+Zwf& z0l_M-f30aT60*r3-@Nl)j6s=bF<^jSRJiksyC1Mv(Lbh&m1-SN6G|4u|lZDjVy4 z9`E?PQR^kVB)_PY1T z$ry*I;Jpp(5ZKMm?e|6{#_(_N9>9NmeD3=KkyYC}{_9TOZ8!$?V1H}bK~<}e$nCYI{UA2N;=ZTrvS5@Z2ixI zDD@bQRrA}A#;WYSC4P1`_$)tmfSzZ&9((GqarxRr{3lCH#AjGOn%B9{$#bYnPMCX5 z2kHpkd4pO1$2aLPSriP@w^Wu#%9v67sHsN3G+K5!$juW6yvK(+bdU909hX|uJ>4ZP z)7{Ju{ZkJ@di?BdqSq7mgtnG`uc7aGF0*RKrxtqIcJ33kZsAc3{NC|t&N(8((mo7$pW7XS{?Rhik8(cuy#m3id1r5PzT?oe z*tmfp707#SxZn>Qu?tQr@gJ!9KD-( z{q783>aaENc41%kr~;9c@@A+5wwnLe(8c!?fo?AgrJb?qvi#-!MUHht0*#rs=NpeK zXAiN3qm+HUdD$@>?V5QVyD{jdv{2_a0q5*A63Dc;I}O2&EAie_8DX@e-39{oo919rX&VOx*Qm-Wa<}k zT4$Y!?PTfH{vP%I;D@I zSDXAdbpS}pK9Xm6`s$LnSY^s<@;R*SPj*cGG4^ZL?VNpfns-tzR(PeHyLBp3S#&cNM&%aWhxu=qI-+(CTXk1w2&`R12^wS|VlTR0F7z>`_N@p-iX zPb~Yk`NfM?NG_j6M-^Sf9K!5%7qUEQ%zVyoqIgp=ewVjW)n=%I1HsdGb?oA@)Lj|c zi=t*1w*C1jr&<}y4(=dy^RyGNAiG{1Q25H6jyB8^~A!)-c4jbKZg6QB}{M{Re zyv=@oGXfUgIm$sQRQeT#Mx3%1oLu+#DyD+96Ha9_4KjRRYvmMk4jaaY=Li34NxItT zyBeVl0c%_$b>Oc2o)Zmg3whs~oTC;Mu{YUYIhY#`LaWN5U$%mS@|Ou|M;k+tR!%pi zODDE}1{-lz!@s@7E=q3L6(jd!+BTz8M28fyM241o6CbgDAWD#u4DSdlbzG=(7A4%z z+dw|G3z~8fqgTD*a(r}na*Wtf!bO?A&R^zJ$xc~K!WQOa(l?@#)HWD^} zaWmtgD8(>h39*Hx-A-s-yoh0WspTEUqO;`VB3lyedBwj-uhCs)4hWbEAB6l!kn) zMjvV#Zjq(Clv)+cICHh83>RI%jLY*|1gq!Wm~1VOIQ4@AZ;~oxkvT{>&}+=K&6PGf z#Dmf0xKsG~RETK;@4>#hne5Vz<)|MU(NkgpDCsS?K<&*=HL0_=TCl$@;$13Z zDr)c^6G1U52sW|LX!Mxdmi<^juGwK*k`1@88nksH_t2hyria3ZzYluAP2|YXSSgQr zYY8>zkur@}b?Icq>le<|VW~w4=R@|Icc!W3wY4)#$PKXP;PX3tN*|}Vyr|)a$n5!C zbI3C8W?_eB;ll3qGgs$ZS@d~P+}5P%a)s$;nyMnn7v-$eipK9XVz197#v3UL4+~d% zD-0;+h!$tEx%(vSOUIiybJp~|u%6*c z43WLp6dbt!XHiq3t~rQQvsYi{nh!#m$NJ~pn5`1kbiKBfA-A1wn~a&PCBBmLxra1O zG7tGPZ*OsL+=7Iem*w>t9iG)qTHlU&ah{W-2A0%$=TEvfH5{*{h4+`R?|#j2n4@od zjR+HOz78?Xpxn863$0S+sh@BsWNd7q_YnEfCzKA8!ibq3xLi3&NhyWkwFK88@sW1D z@1uMT1lUc~3mY7g_h=+HEFq1pw)+Ydk(4`f68xwP5zB_^&(5U4+g`y&q`Ib(oRgfS zYql!S!tt2z_oWwgOonQU*b%KGk7SslRUz`8+Hh4FomnPK1J2(8s`b00!9Qz!LVwk& ziM|VBxOYClRt#KV+C9mOB$dJduYkbJqA&bD?F9dSP$}Sj^iF*z{u$Z zC>8`?@URwO3^9%IOji3!^Yi}r@k4v*18IK|$+pst;#Riay;P^RmC_K;ef5SnyUivi z6S@#$dWL1^`-ckKP?(-&_3P2YH#TDyWNqmjZKbIZ*qeMqm=~@WFw^5NE8SfeqEzw& z)w)5xebx*@$QT?ycg36x{W%eOTm6{ENSvwdTsK8h`h}AjH9^i$(ux^_?a6u{JoKa!ffLuOwU@< zrR(sG_a*kWbg)y{haR~=9PUBRGfU)tdm@-L{<7Z{H(Ta!`ZC0{Uu+Kh;daNk$F{jN zCEP(ejvOD*j68GYBs`DMe6aIKN^@!}&GhHYEX(ULgnu}c+d3Wup*X{5^wCxt8@(oE z8Q)-nD-1O(jy3?Bq(*7Y7Uie}cIa6B4;C%T4wi~{+e!4oDs82sB}eIqNGa_bz*d9m z2{7X;aUgr6D}arZ#<+5(gR>+FG!M4S{Fm~f%Io*F6i-l z-KwfZ0skATrZ+WP+iV*NlOk?pnI+Aa)bKc2&c+ryZAuOD>%xgB)!l%thG5z=yF5mXAphu491h z3V&+HQ*#lVxl#r?HbUbd@E8|Nn<~ynC(S#zw=U_!)4)Fe?)_qGM#Z5$P=1YtBp~_I z#bOw8KEsb^`lTl|oW1dWi#n23sGSGpBj#x0z2h=OP=nkqr-oZnH`PQm*Ze@-g}7WS z+*x0*hAwudO1VTdV*#QruzjwwiQ&k$^&d&>`OwDNz z>Aeu@xu6GGPEB_NU;@SOmr$?te5TY9PqVAc1aAGUoh(K(!5J;J>76RKY*-Y-Nk|sqQ%rQ*jwY68z-h#NqUS5T958x7tE@H4c6uq7OByvN6 zBOf$6ZVZt-cP;1>z6hhXcBYg}n8WPY&QK{kd@aD%2G+u|!0~s_O^G{QtF08F*N0b; z%GyHgxC-sq@<;I|u7;~YmhUe%IfI+SQX7cq*iZ=4Pc zzt@l(>sGt4>x{Z*oR;x#P}k{uGZk@Y)sxh_vMJ^K2j%}Oj-q#JXVS^Neoh>h>T(1V zYyByKz{>iZuG-6e@?CK}!g*&|)F3}HaV&laa1J#L2e}D)5?jloGIdkFX^E8aVKa|6 zX)+?uQNpKgde&uFHv0B5w~54M;fv+>kpY~7MVE^dy6pHaO;wCeh<)Zo8I=qN>LR57 zY^o_y`%Fdip_+SkK2hm!Sx;76wKy<-=s!_r$7fE8M%*?)8%=qAW1Z3&RU7#M#|M%j zBz`hs)}+M@{S#H(KP+zr_PAdthK=NB#)Uo<0?1AlU&A*vGickKX2MHksu%zO_`ro4 zWbNYGA>5mnVFjGUU8j8Y>hPiUD1JFL0PWZ25<%K}uG_fPk^Gg_?Lxdk`B^v>TOG`| zwH5eEu{r1B)_XGaFHMmdUd`%kZIwxsJ~0QNAwn>&5F z-nc9km)_uW`r~#mM&Xn{;d4UN>5bB;#nFm7W~gs&%GR1U`tcVYw9f=N+IAk7-nqY3 zg88V5z`QPE?EOuDTPG&DA@!nYT59moCMRxt;uwxRCiL{CIJ|j~SIt)){Us}mg9W8v z*@cZ&{1M8C$xF6ki5-u^{OU?rja<(}?uSQfL;yoAr4{f9rOmFos4|vCcHxZdBg#|O zK%!?b;+NX3O*d@b9`e`k!*V7!VjLd`{1~19@h>uT)>&XpUq({$igN7 zMR^p;OEKW%o;3Yz6ITx<`H6Nfpp zN=&&WT_(&p?WenZbI$<65+W=#8yn@5m*F@QZI|5n@g9s}cLLw_lvA{5Xui?nGWcqx+~1HWE2_KPF+Hrt)>CJ|~zJ z;M5x8z5|0X85R-erGtWS7w^0vvVkwTP>0fcJtI+e8%7Xq#U*IC?`Gy>226ZKswt~( zb*Th!SOQ|`-py9iUaP&dHQl4^F-ozK=*Ah6V&W-6QuBCkqxvjdv}bs4ExN9@kbJ`` zZY63HG5o{_&ZCzm&HOYy)OE7DT_@O~%HIvv`r+I*4p-iYhsfw%^%LiF-T-roHgKB>20D zP`AhS!v>i>?RJ_+HCbz;y#m2UtWNuhZ#D8@#!AD1qF|#~SB~bUarNI2|HqY#hjtq% zDB_k7Jg9`$^;ZN1u!DKfiC&tJ`2m68%5x-=j||j@L>~bbY(NM#)gvXf(C?q3llB)AA0*O9 z5rwQ>`&L?2?>U!E24&2%SxeSNg=EtsbdMwr%w(je@?P)+jl_|ncW`fKmJ%Fi-_S(C zXq#ic02b<*Oi{*hfKmtGDDbYckK7|va(T2uod`rhI-t!^PeG9?`Q-hlpYQl^MF_RYWTIv zXcjw?zof*i(DyM4v^dH6tig_sb_kfUR)wC|!X{X(?}*wnBA0cDTzH`d4!KrcFZ8-V z{ft2H4`ZQ4v*nU<8(z+?sVjn|oeN_Z=C2NHVS7Hoyz*P}Lfpa>$Xa)3&1FRsq{iODw&WK-hAMeFej=V%}^< zFHX*>BK%;tzo4;lgRf<)BQq8s?=Kdlb#Me?x>>_tD$`>aDA%Ni@TqayP}FU=52apQ zW8cF1w=jot%{HPSm+DZp*Pl#Vd?D-tu)Ow@qA1_bai0yF2(etKoET%7dV=~iE7>9) zMo6Au%6!*z) zQEMw5Q(S9%D(9Oe{j3}K4!?UmJT6;)cx)HRcJ~+ZPPj=1YDZ3*-IDt=kA2 z+4(kRq0Vj_Wc{-YUuGJ=7SAbEHk+6d;J#z~llgLh!z}{MTeK=jBTJ$mNj__TM20AA z=!(;_yWTHybspMZf4R5HixlB*KZvWr^?K&Gxy>(Ec)*<5O?pOr%B`9k>gV4CuGDaw z$S_2zL0o(^Buq}(e>w+mJ-jwjYMS7K@1g&+HoC~<(scoYv={wIRiptDrJYZQm+{WL zq==22qtM3SUu93zXhFuBxw$i}R;;7eBy*|S>BpuDPjiqlfO*zl- za?i!Km8t5EI}HFxHY<;L_rFh!#wq-loS+f9gE2{ob0ngN121c!2T7N9lSPAn4H+O+_UlT{NuO6 z$tTxlwkE!dvy!5tr$VV1BYH9Y$J@yE{xug2t_}*wnmU2*pIj;b+d$xAMU?wQc2fou`uGbV^N;#nZgy zRDx7AtBhDy%GZ7kj@Cr6tfd}xUQ{B;Aez6;4#C^adK&4-5P-%`#IK(<^{6lNrh+F* zAdLNG`(@cybr~}5tfl?LuFUBl3OhWzU3U;!E1s{YF1ghKD4wm$^E>H^@kh&tk-*^_ zWzG*T5AD%8+mN1YF0Hl|(S)pB(Pm|cp!m{IA^ImWquAsH3@g@F%F@Vk4%8oeSEifg zi^oH-uGR(6Vl2AO_KjHE%H!6l7$3fZBZZ;wYG>4GtmM5H^jCI<=+D>5Mj`t|m6+Ji zi*nP*TsFMQTK8_41p1n^_cd(9p%8y_XKhNGtxx~VH~o+?^9`POeLWQjfyVU{%}+Ya zUS?uRQmV=R*4fuz-$S`l??{5xmIfz#i$aCBWv3KzwA`Ap3(jwK`e56juuxTHno1bX z&`pFHH_e3~EcL5_bOmp9B0cn7nm@qSvd&7@kh_S0esxqTtW=Q%lYh1b?8Fh8uGMFR2qjF_R*K$ z&Twv9!O;3rTL>0+l`wY)D5cgzUB5vl+IFx@p1-^#GgJ5)1D`CY*cd~prM`V7mydt5 zbU-*Pd&sKlPtg<5T$w(*rkm9Sa&-nnv}ONW)A>p(^snfdK(Cfdad7T>GPGjgp(Xz~ zKHl#)M+xBJ-vfm7#r<(;YE~FbtVzVQ;e+?1%Ch>U;+eEhwDK6Xz?Dkek1)>KnSPI! zJ%MF1bZC4z@0zsH0GIiAU@zUMtEL~1C6rI0xivu)uRh9%U$L)w6+Yqxc+rv!&pIdM z)?5w~M$Z!Fu}CA>Fuf#KAw4jKTx2s~#W6)a=R-~Pl`veDJ1<$;=H%gn;R`>EE>mm; ziCOZaX>V{Av%XuaHDffamd$u``%nZh_{GQ*cuh+JP6P}%5+Ix^NvyUmAn41i8OKbr#HFB@J%xafLyIx7JAwCJC zY@_OIlh1=Zst_vYw>J5beaV{=t}1UA#zLwRL5{C9c*krV2~YI2RLNl;`G235Mdo&6k#`2%7^vj0r4a| zVp|PV3p4Y&bui=V3YEgN&baLD>q!k$sYYyftaU2H4KpPSmE=d>n^XjlAxbNx#*I?e zjvn4vucZOjP_>2NMSLqRpCGf(T&UsL0GFepXLPF@HyJD?Z;t9H?|6=|6YMZnY7jwd zNJ;fG-=yfR<`M);xrmAYDLPw%ljSv`7fvfhIaHc@UpmLLj}ibq>!D!n4iOg3I6w_9 zXTw)_d#`wF&-E!Ci(J1+B?T4B00^&$!3nKK3iWi@mrpn|{}GzMRzLsk9?K<*hff#B zYf1oihO>&kp=O2h8CUC?3>_L&pK=P{Xv-*5mroe{wFHY~EmunmcPe`wE5ti&nye0X{$2gzwBl{MbkpKgL&Ev-W$-WO(G z?tLUO2$EwH8G_9iL>8O{?J#HYk5P9|FxoXrc)_O}+6KQT7q!)&hFWhF$1_cv8fW?5 zjFDMN??}69kbhyhP+-GisW4E!Wi3!LE6~*lG-#-$WI->h1_#~ej2M<1OSlkU_tE8{x0+Bif0eSf z{jphh@uk#Gmu=eism3mKVHA_7x-WHb5bgBNGnhbDmCaoI2dV6+BEKJG`8p{Qxa?PA zRr8sldii8%XwHB<+L%G`O>d`0S7A%(4taf2lAu`&uT|TM$@EPbsf^4;H8eqvQ8?L@|?+i>{3UjGDa9>k3u;Ml}zo?y-f*B5X-r-B# zN?E*Kbo_mlvuMhMP|?>Nh?ac)(A%oS{Uv}SQ+SyXDhj#GnV_Ai@AKuzCxd;1TYCIo z_;#Az9B%Yu95R%aY!|LC;uj9(J6tz@b=B%dZ|@D6=;l`ZXzAkAgOmj4_L<7C8s+O` zmSOuI&OFuc57hl76*xg&_b%EPBHWWKE`E38%ard)wZ-NFCIX2AMY;99d>Vw8kywfC zl0xm6pBW3!u6s z#Ea4tbLju+pRd}JpO2Mot%0T;?{+ASOGp3%SdNpSN$cDr2sL$+S7OA?9%P$7owj9J z?q*j0tNgeS3-g6fIGdvUAXyvCl~omx-KAW1+B~d3b`w88l-@Gvy%o*KJtm%Xd)P<~!pNXFD;OzNH@Sbw zAWNAH(au~jQF}+`oq;GSqXCVKH@)j-FswLdcB!Gf-1+zN=7v17xW0Qy`2W;CTjWA4 zl>3Q25Bok2=flkuO&6Zg^#1C{xsS)*PD_3+2am^MECfQwx+&rJu9(&#^A^7qH5Zxh zumOtE6tUSWlLjO_1%?p$G@rf10;nz`1qLDJ>Y^8;|VaZEJ;JlruU(oa;y z7>Vj3Ai%?+{1%ez;v~1sc^0EttXAKboJxb&UC{c2l);F?GAz3HB|XsH(p*V4C1i|!H3jnEBk5p{ddy4y z4`=yB&8i`wLI}k-ZPK#R|K}YFAQ$ndPQd~(6{gC*2lMmGD{6s&*73{gA1yZ`^e%J1 z1U}8Z?r^woMBFyGhGiBMVA{<0Qo4IReS*H#BMM9#ealQ6yq#`sJuoi4|A635Y5$Ki z+gT75h&Ie^IvNsC?**7}GJgvH%{|}?{}EGBag$a8^Y9g)V?7G^ZSfcg@^;<-{ck=W z?a8=1l<@f0kg=jBU?YHC0bqCl;ABC6{oA@1;p zZ?}OAchHn8lq*Ry+;zPA>NjJ+d!5ZruoK}`r=@=LYW$b@xXYOtport{vJjo8!~wCN zkIczp+)f=RI_YMp3HxqMe<74GUbe$a_dVvhCA(%%#0T>Kq8m%l!(VD z-+?*~?2N3(^bI*0zPzpOrXTO=K70Aj1F-{IhAX%n`i-+oQ{oL!Est+jg55;F3^A|@ z`*n}dE~}}r?ErKyxaXIw-mS(OpQgARMSLVg$>YyxgOAIEhA$A6Ki=pP^yZ)pNwLej zk4x7KPB#+ko~%dHrSr|E+_1O#oz5m z(eNmsW;c09^A+YiX>J>v!WX!F?arIa>0PDO&coe0sghmW4nOHJFX6-yUm5>(za(G+ zDC0}5{{;IapS&PWe|{TO2!y1CHRNl~Uxs`DkR~P%xGM}gBD+WNJ5NvmSsQct~ zsM~loEMG6fdG@GIzke2>9~;KrS*mdUwap&Q>UjZfzP)}O`>pWFJl+gqV*#=8z+?AB zPD}X(bRIYYal5|qb-H*B78!R79=7C5;^ zrh%dZZyJdGe5-6P9Y}zMEmNi481B~(e2U~e&Npp_%YKai_0Dmcj_#B}uge(bt>2cpXF3e21$}j-TUGgR1b|r!Z-r1Pzdxf%X;M&>1Tx; zmZnL0z_**~1lO9Rj>I;g-|vaSEjql>TL_SZuUtk9^{c1c%hO5$ENA2^ zh0k9y{H9H_J#rgQK8JnDIq1 zD@W(iayMGpUvvn-z7zWs2Iy`Yg12s*Chm5Un+-Q1^GcbIH^PgoTU!oY#hd@!L%Vg< z=2EeNqm2(}9~g&yi1j&Q=^7)CZ@QgBLQj;qlbuNCpLjooVLib42=9J<)s|S$enHEb z>g{6dslVqgp7(&s;@5g-+v+wl;%whk9D+VZ>4p4vB1rktQ zpp)qR9rwvV$b}9Q8f(FT=}z@=!K653Fqih8`%VUg?w9`0(z3z3_~2s~kmH&Wm`7R* zTgF-tf!(SnFLenS>l%#8lm<0=3DEl?3C@8$`llea{?}`tN|zTK7R6`O9}M(}=jnbW zE)yW#66-hTQ(2^(@Appv89xi-yZV%-d~(Q@fN%}1S0lZ8h@_Q3* z!RXPu!{wlJsL$#CSz!B{R!@kB1&PKbO5CJ95ZV)k1ZXJ!P2gI6qy{r_aexR=!gun1 zBSWr5y%(;mZaO>eD(t@<1Can~Zz({whAK8HNo9sQ*y(fWx$9aB>jyTOE-S<~zA7Cd4#FDi9=vOXIJ>;<-3eLwcXHeP9Q=1pd zK;LU1TIe|!Dsc?qFcD?clO*ag9k49QQgnm-za2@Q*e8*AIi4AT!*-edAf6)^B4Ea~ z_(}IA%lmz7UY*>yaKSfkE4vN;XS6X6Z~WW4UxAj9nUyQ!al=)_(Ov~AnB4wWma%1T zfJNQp&+d`^w~4lY&&DXF3YWkCsP*baj5LO->*ST$Fyj|dm*FOytE2t9N~K@<&{`VXSt&P(cZk%&<5zF`M29*28s*>h54~Xfzf02 zE)LjmCg8QXU&+u3K#DfLyk}%$sXCi9``^37A-WOYGSU5V0{>pY;rUtMav`uI{)(oJ zh^xdX1hU26OV*EX-A>N=pZjpA%;2LvV=8>a>y3rO^f(FItI*+MBPhVEQoQOh82>op3_&vk{IGosH`;nsGj-tcF_cOYDNFv} zhS|Sg?HG5}q&)qk7+l5Fv!R?#bRJ6h@ya;5$3h=}y3q`PFEPmw+5cIQfJd`YGOm`` zK|T3i*O__+57NIwrp*K`5>vHhF$&w4qaH+qAn@;K8PMRn>g@3Da4lqJF5@~ee9&Ry z26LSlCuoVHBgqI^lK&o|v(r#voI-x^;e_?(z0{Mj;TATuj!jmyk^t;OodjixSN|Q+ z_1I;myc04iw|^Pj!IeS&zNX({<$WdYYgHIA#G(2W36U=(wEyQmMT+wrlEmYS7(Xo= zeR^F?|C-XaXL1jr3;v1$ThQHiZBjEQ9E7)%BM6Kb`2#FE6!d6F1A*-|UbX1Xz`Ot4 z*w;X_tW)DWjCl~o4j-wozBBvp8zc9YN-A{9%xZMNDbV}tY67(~kdT1|!0lEAb@(EF zh6|3f#v^c;EP7%Q>*T;BX|w2j3~Keb!klOcCLu!z*u7UT-}?K$**;>l0ocM`<~U8# zi6M%pX!?6vQR0+Uq$G{*Y!b6w7yPR;PO=!BiGKqcIFiEwL-CCz zwK%W-!QhLK3%ta>vk=*J3;*FnT#(oIt*3`djRrxEQU=Qd zX#sG5Jw5mL>*T^Ipb1Ea_tpP5n{1|OrOk5%J;C&cAyb7#vCsdx+{*oMxy)F?Z{=HD z`$ceAo}APqqzJ_-yDo;nNFpHcT^l$3EkVpEZb1ZPcBXXsf+9Qj(Q@`EqQc-mrg;oo|M|sOEHhxKsFRo!leVRA07?R&me$>$ zuOvVI%QA=*AcPv5_3~Oxi0k=lm7w^&EQ)Wt=l?ZWF*Ml6CuGV%m*8ClNRz=(3l#ij z5Os+dz)9rXC8D!`7BpQO^u``J)IVnM`g@^+SltvdEfE9Sd~-ejeIYfmjg@F*w%~(x zxOzV=DaDD6v5o+>>4MQ7?Jr9X{A;wJpiS6G(@GQ~`@C2QpNMvQN%MDlO!c7otjvx> z33(&qGH~R-_yUMQJCm)EPQ}J$&Hy9WNV|?d`AX~>q{Emd?q3>~A?^$`yf>SdNcaEa z|FRR&>O>zVqL}VsVS47jRuKl25&MKy1?XtRp8J=rUB3g^gOh39iz0@el-7rer_Y?2 z$HC2abmua(5Eum3E8J4eu;yNFKi zFqC2tflC-1-gKl0to>fZT>im>xn6J%I`$|KA?tr!Msoe;U!I zH*92>-{=u9K>XW4qRrU;oK?)6{M!37vQJN)#PSf$0eVv0hY>SxvF*{z6V~E&Bu={ojF$Besqk$6pH> zb(eoT1y=R1QRpz5KmS1WWafI3WrR&CRBrwaO-!sf8CPcI@K~v0R4QOws@IY|nvwUDgwWV=d))+5Zl`&F<*qUae*8 z?~l}rfBrS}=rGV8ZeIWRcm}U7{dX84JzpQ(c9VYu*q{FOe+`3;8Zc;Rd;#)sUxWO_ zdKT}T21>)-W(hm^JM*CI{TG>nh$8uzuv(W7pi_Rp))D}T^dYBCJnND-5nVT4YK!OB zULfKA{}zl^$&mBW+1r>q@pI}E8fgjRPzd-oW(*u#{oIL@!Q+8k-rSa0Qxt1G*a%s^#D4wZhe*(aJPGiR z?-CwdO|p(|;F?@7kzka7J@@Nm~7$9_U$L4UDR> z2IUGV(3^K!F8Oazee&@KXhM?)b?hi@G5LCM&Y`o#W{D&N#WU)QqBlwZF+s>s;oVQf z{kxs--ZB81?nC!gi6H@W%4a2jwozi5cjX+A5GRF_-__%I^!;gM%lTpTq2))QiI^U| z3jl|d+$)C^XuXf4m(Srek8u-XT z{vcKCYRDd#n$+zuT2XFBP)m0O%&#qAoNXN{G;acyy$dg5-7=Zfjei9kYKR1`GCv4<;fMtHP#eF@FhS2vHm<`XC`2!EVfZrMow{HZUs$)SDdS@5j`rT)p*;A5Mu6wuVI ziatx$2eRz2*XMHGTlR3(O~@(8fDW%4yFD02;pkmmA&SYRHYWHj^s`I5k!5uzeD>4wCkQS zLFW1h;Nvapw?@o+iHVCrbHLVzoqdmd>sBPOVMMlH9BdOSt$kI{?~x0<(e0#{Bp*!(co1zH0`|lvpBrK>YMZdBc*B`RIBm zqaH+N#tXgp+lFE=&-{`>y_Y@OZj6Ea4;TjypyTd{*|ulaG>*c3_oc>lG% zdDkEus4klRC}q-Pz>YO=b_1ezRo7K|@5~jF6N&YA4EmaFyPb|cv5ZoSoCgOX29OIF zpsQY$prgVA{7+0(&&A!Q*&U3Zw%b;oIAX zfFAZ6`4c79^!sD(PLx@lyDkU|U^lUPG||644L;tZ_v)oSRWvx2Ch~>=*`fvWHwh%{ zWP-yqwtr;_n<1a}^bAF6kwL-uDYgOdb(AXJ2F-7v_c~A%KafY=D||t6JXSE}Sz(WO z>kW98MayG<1CY_Y)qiu%MeW;MU9y#L(O9#e%o%@Bq=BT>l|nu41oU_>PmkRg_|1*@ z!jw$**^?$PM*|&m=lYLP-;qlAWq?b|a76_iG?e4{xVhws3Gh7|#n2n><~#}kyLnM} zv=p)UJ>_u6`I@U4@^#e=`%fv>BxNRltIG?U-8(?pM%SV*)I=U*&{&Af^sa+>bdGiF zG<>9S@MbO?fAARvNB2}2FtND7RIgoL2P&?N%W zT>^u&45if2U6LXoBJi%+&pGco=gWNBzm4~OuXU~K`qy#};q$m!1EK)vgOg>^QE;09z=Yg$08x~}H#DMiT8C2FQc9qnUbZGvY?9}W4@reaILWi%Wi`++)B!M z)^^OrBy)85(2S>qS2N?v!LG>j+7TF=LXX1HAIn#NcMdfHMp;r0vXrvZ*PrR>S@CV> z2@u%ecoMnqV6@=bDS+Jvz2Nq;8l*=B1UaDILqQoadZPCFn-h!$e%0V_4*1UrM2$Wz z-@&eJd7k0GWVL$Gy{a_H1J+>>b+pkBBFPcp0EO+XU6jdp6udR zSzeExrK{cJcUa22OEwaHKFa^txF&|v;06mVZaK*j-#8oP|MT*XFKP_(2*Yk;@dowi zO)u5vROi1RPR3igDqlpNh1mNPa%l0NMl5IMm2ZkBJu0#o{z<{OYZ;`qzjnYdDwcG!>nvx2YQRtVa3p zBKNF`pkLs_)Yu6sXXhsWBTN(~?uL@_Py6%^lWI8h`%G#Sr0m$q`pzJ|PVf7qlYWGiSiBq%dFvkG!ZBOew zC;+W8{`~W|M|NiX3BN|Tbc&vp4MY^&Ezp0>cj|kX_BLZK;=rZ%AN$VQJ1GGwsi5lcHj)_ynNtZ37l89@vP9NYjhq7HE3o z?vuR57j8V^xf$=1wnizOb(ZJxU|~x%m4U8*r`qnoG0S9#bM_n2Myq7J{uIHNauw;oKW2KeNn0B6k{jczWzzw!ff?u-A7#Z7~%_fP#N zs~-#Ec~Z;*4xb)ugQUC-lAcR##jJ9T2l;Em%rAk;?`X~zlF1R&MbHILdjk%aUWm$W@};>c#t~j#n5Iy8bg8eb4CK+ zkus+ZNtFw4i{kK+PEFf$xn;-3Wf$IaRAorj+<_W>->mJETn<2GwmQ0O5-U?vp%OZV zgv|2?et~vsu?1O3_TE@Te)xU3Po{3)^PA0wTzr}-Atcuc2!!(F$4auw$%?Zm#6Wq~ zPW6W-6m^}`_*h~yM$x7gU+JVVNjC9Qsu*#P^F{o|g?*5faImaPmD6b#){V_ldb!Ad zNA{>GzyFU&>z9_3(>WJuPB{t9`>t{p_*<_R(o0M#|EXDJb41@yB!3rA&H0cwW$x!h zh2h=(twit+JY?``{|x(g)^{cCf5)CIahFj}7t0d{<8Nv1-+EWiTj$tW%&4>~Cjd@pl5y*XdQ{c{MQl;9VIO^?=Y|DOxfI1eaL_Kc z@E3fF$u!ZQtZ_&h^3d?BbD5jHJzk)b`)e_V=fCe=Nws}R%x&@R)Z7qRfYSJ7#nEZE zHO^Nne*(5dc9OZQ<~(*4K?^OSI&vLzAfk~dLLQ|d2Z+kk4<%E^0KUf_?{RpXZU<4s z8~BLax{ffa*h(+l5>1#RnZqZUz85PWsbIgFa~QReM{UjxJ+i}ch* z$ZbX~##pR?;L7v;PnD88@%D2!-OWEJ5E8rY19A8g_O6JGUo!!q8kDr^p_RJ0 z@!$7W`7cIN)f^lH_%jN=G}!;l)pjR#WDxftl1V$+*rj@P92u-tzf z_Mz{s=@J+k=>N+5%`~pBpHy2hUc38WVw~;C-=AfX6xPD+UQ{ci4$o{3uQmZ#l+Y!< z{ip_CbG%9X^zY*EJ#Oj|gwimF-+DGs^B}f`R;=Qi!}Tm1J{nLf8sl9)Rc7jm+=@TD z>F)Mmy0+xQ8hwxG;1XYU`vV&#LJ_+$XfGm?@|7cEKvv>CrmDuCKqTG?036YtWp zg8H%0NsZe7-r0b_1~%9r3;&3rmR6(h8xipQU-7`E8cLJA`Re#NL0Q{I3XZdH?~@AY z-MWmA^<8*lM!(~>vv%-dFgwJfx)NWA-%20l zFp|gzk`c4t(%k-AfgZg)%qaj6AlvjDCwJuf6P_%$?L^{{VRbsN?RE64*s$tXBTYu( zWH+8SO)|S2fKI6495qi1s5=N3SS?#FmRi>MeVx}($c`i0#OoK3GxEI@n*!mgSvN+z zq@;jO@D2ZkYYWb^mJ`2hwG-^48Ux z?<5ud5AO~EHyZE3YAbuJnRbe9pzc&4Gfx7y?=qJlsje^=XT`rNlcS;vj)y`?X(b$5 zg!9Ta+2jdZ>z>Mzh24zYU!Nf9>Zqf)YmdJ+d~`f=re}$^6=`8bZuX&ka$7I<+PzbO z5};=Wi@_pai&D(qq`NJR&lSEEe6a#Q1ZrT4^4*O&#N+)X|jE|N{Nb=G|(kzeE(D(&Y4 zfaoIG?P}d(#}+Uw^ryPSsKeKgOhSJftWSzst8r(7Ys z%=RD8pBr=gn~C??i%-@?iKy@K4}AH|lZ1>dG$_9)o;WQF1+rJ3V7hu5cKrpN|lc=d90doWapf(qE`g%okX)xKepH-L-*U|vn;sTQG9_2G% zO(i`5S$HK;Pldm}Y`hOJ_r8`gz!6*v2jR63f(=tE13_|bh?Ru>TFu|j00vzRWp{=H zOt`+#pdyD57=mNazHP4lj@1ba87_d6r1b{k4eP`Czg?-$5Q}^kyyw z>BxAhK)};5%qqu%j8{W%;UB}FV+lD29NyDztIt~hGG6oLez57tX`r1f*E!H={KZPl z0-Q`wS*2dOW;yol5>@@AK>$=TkMTotY-nIrqH01re~YhKwMB!^N#x#>hWh!#4_*DK zVOmuv?YnV%gE~*-lvV`O&cNxL+&^pBpRINvDwz_Q)K4y*D$B4I=`mpY`a#4hn`F%8 zFJ)4wzOh3_)10?OAygmhCAa2WjVHhj{_ zRrjJ1)0Bgth3IgENY{X6$3y<4`0jI} z20LB8ix{zN9#5H#E$MdIYR4E;iHk~BWS>Qj?6f1wX4RK>Fq3c`CE#itG9A@p*g}ya z$hI$_QqF%{x9WD21oAj*CXXvR5mEmgup3j|gyv@zRM)y9EAa3AGXM79#rbh-fifE8 z1NNJaG3#ht{&jf08X)HWNjj1lx{{HG>}+7RKw$3f2n=K@wGv`Mh4F4mbHSuki+)_f zVdK6ZdK~uEYYN{#oijdcOaQWqj^9m2le_;)?JYY`edPzUJ0^Pw6u_UR&%KO&yCCsJ z!AAkCs?_gI9gVrAMiz2mdK!;3+J4U}0p=opRP@JM18}LG9;f}a_8T;cj>YYkIm^gq zzRFOV?Y}#-_G)gm;Pa)Qfl=~*VTb3x1D~GWp7sqv@{+V|X*&xsx zgmZVAepogw4hjOAr_PKU`uisY?KK#Gn=DSA2iT;~IRPZ%`=IrV;<%U-IDsbypB#4G z9sj_AeU^%3#LXU4ZETw z?}`4mO(j!hn;wGKe5$nZaj731a@L8$X5mN?fF;`w=U|Vse2tbXF6B@8rz>_NubduOgRsy zfktEMqAaKkAV6I?<8f5MhOa+;(30zYiwXfJ-3NdYCf^D&IKghM7>kQQ&onH)%nL*; zC^{ANOGKAZ}GT0=>Jjx$I=Fxl`Cy&`N4*Q0{5cX61*z5V!G;#G&wXi zEl50;Wxk#?{wzb>55=NP80EXF7vki4XPr&YaOmMHjeF~e`Nu+}*v5m7o8D9O)I21+5_s z)uP4Ch>D*R)nKL(l>j89ha`c2wpb^_-6Cdhd{2pew%C}V= z&p&Co!-q*Q*xcj2jydc2EG5trk4)tE?9=B<*%ozcMfI~8U(^GA{TPQnCn|k6P+BF2 zt|diyw!*TTzO{&LWAcGvbmMvAChJec=#sR{tfRvRf;8$5od{jgc!EZ-;kfZGjyOP6 zFY)f-r<#ZdCXt-yj7}5y1&n>ZMxb}*P|=h zW&%nt4i4i&LgUH7SpYr95_?;vn;Z#7EW}%eOE{b)xwD+-!LLVH2NiBHeKQ5{PaJoZ z?`m?#l0s7J%cF-jK?_^Lxpa*$yF_#FW$IORgeqEvO1LMG9CtbO;+9{3V}p3$R|66c zE(%oinuJy#Q^VHXrJ~354YW35d;*we0`AJInS8|{?#FjZo03|2AT=RArH~+}Tq6WQ zQQuaUX%mvoq8bC7kP)2u28AvKNHoInw56>(cu=icDP+p0ocv_M6`sR*mQ+SJMp2#- zBHrNz2=4#G<7sl}XYp#5j;|(;5Isr`dUuTaiTo=BU2Mxv*IB&3N z2-|Qv^iCLn@iG^A^z)|ufl|I_v`Vy?Iwxth_^}Y5CXSVdB|C3z-#`z~q`~ zp|8a&KArCS$=`VLDxdND=j{O~UT|9JUFd`LxziJ0)yTE?Ur(6vg#K;cuzwN@ABkEu zyX(ML+>%y~ z|BP)~?AF?&1mw}wngu~PNMzd3^{hf_PJWQ+FC?~0%Z+&kz0(oK$Wowshmf3$Rn;u5Fj{(Z?91324msF zk?Jv=cWd{gB8+9z^p2Rn zofDlD=BwnH&#RlRudgX}UmQ2nPYS2!e&}DYkvxq+adtnpMtrGBZcoDf$rJIYy}$bR zFvupur;;vMRvQ?)&G7K`yu+6-et(&DE9717JWZqTo&6rk#=V2D;^QN!GPA4H z$-RfaJwbPm!@PSCXh7Z}$DVjRFR(DQ;M#_@d#W>!7@&@2UtCQRdHxnTAl6nqIH@?L zk8nEuy`fv|D~VAxmeYR-NRw9$^qY~JncniO$X6sTq{o5bRn z*D+=vIU`lAL7;zUOjt*enN9oizjuN>z?i|>O0A{4K4Mq=#bGm2b+w>gk$_@F-;0WAqBdA=!g)nOjb2S-IcaNVL9Z{tW4w+>ea-k4!ZJD z5BW&e%pX;*uxD07_km)&zgqa_O|>GmP)5y6v2-9#<1OZBaI?e~|AT|Xd=3l=OmdVC zdb5YfSL>g0+?z`iLy^H7*!5!z5opxD5A0*V7;TffB6LwS;0S0GVWkfHe%jV}MBww;@*X}tN(2p1=9_}=4hs^rs3pbxh{pNkKNm7#?!~XUsd-W2dLccdgwIL}_BAGs? z3^|n9jbcm#Bvt!Ur74R*r|*@uHx+a^s=m?vdg%ujV&KM~FDY+5I%SupS6*OWJkUM( z?GXAi>C^c4GT~B0sdTCTDj=j2;1yl3r_0+kG! z-!*y#7-M~~_GGwyDon*^)(Y?HcI#U=`8V9i@(pqPe@bhzNdz0ccQb?y$|wbUW`0Ku zJjBA1XoyllG+I4W2@> z+R>}=Y%GN>`JcJXef@8fjl(-$1og(npML$?{QKX*AyIO;8Zl|}FDh3jNrn`tha+Sa zh`~Pz^erYppOa{M>rJT~=+r6pB@S_e8HX@VQ28 zGPLRfdH`$&j)s==;0}@gzMBb7>l9)QM~HB{k{xcQFux+Fbd=aq6;jctC++=vi>9&I z45yqqD54rUOjHp}bId92>_&qzmqZUxXp9|JM(=y0Y4H)}z9h&fPAqKwX5DM+1A%JQ zqg%xSR^8M<3Ln}IMR`uxcguTi8JLGg(@vL5D1@XBpV>0P9d>CXjSZUOZ2|O^L5xB_evwJVB;@*!6B<=C6*Aal zq^B3K4fNnJjOu*{K8r5qG$^9(zSO^#xaKG!YBF40uc^A4M`#)NFqD{uxm3YtB9qNF z(yul3M>fW`jrA(69++Nz+5*M4!GQ7li# z&~Zc>i|4Dj4zwC6sPj5WP=+g%pM-d zBfG9r{G_U>&tzJ^K4q#H^Z1BL9c?(cdZ%Ba7VLWyavHml#lXo3$d2(SvE0bfGz2#p zWg#uZ0)GWJdXm>K-um)HoOqRX&rFysV(GVqdlx!6btcpwszJOKq@=V;G-^wN%RD|e zxuRpW_YI97L^o)q8!eimFuiZ}ON?8!tZwG`TqRzexP;r|@Om;qv%j8s@o()>1+CC^ z03z57aLlkth0|?saf@Y{ep#1@WCe%_6H@!f4hM3E%hS6DQqD=WS4;x<912dodhz>GbD<(6UKGsOxnHLkB@~Mz|%r zdnynoQBytLzwJXO3&lM_uWiZ}s+}P(pcS^0a7G=@!9c-$;*S3A^{^ zD4&7{S2Mhf8}5}%Y+6YoyIu?vxhv4NtBOiG7*Za`JVy_JMZ|o$bYN5Q*i0 z9&!(vU0JqR|8EWXPS>|B*8QHlIGBTp8|st*r1CrW#UE%FR~U-mK85MP}(rObvypdLlDOETei`m<7c8HgD4{8R2uyK}p~|7G9JA ze(~3ay-0v0YTl=@1kDR)g9tgxmH+?DKxA8E3Jjf5ulSo@JMF!XBg4a zcFxwYcA;yuj-%`Q$d~2%Eyg0l4)rOD+zO-2pYG8AM6*t|cr@`N`zq+_>Pd0xTsX)# zgN%|jbI0-5th?Q75bhf7KOZ3>GkeIfgIM)TAK%89n!<)6{VDjQNpm=>$zc! zC`i?q0P*WQ`zi}2xI@XcV)D~HO1NcC?he({pyuDm(2@w9I8`!S+t+|gu|Fja&`^YQ z9eZLhaFXcx42U6*Oo1yc>)TU-AI+DJSsKNWC@juG4E%1-uJUos+ zc%1fBHmo`uKq}#>i zia(>D;ek**_fr-(=vwSgflQ_l$lxS=zb#{^^>Rt!b1nX<4-*9*c(kVXVH2PTViZ#( z;g=bT*kYa`!Oc@o`jABU_rS--5GpV!5Gyx+#Q80BBw7gNBz%ok`dZi6q~CRC?;pV< z+UOHp141uL8A>PUw#4L(W;K;v*y4u-*PP!W6ig{kl}&LvE86x*a#yvprZ}BuR%~(7 z3nxzn$UFVP8~Ttc_NmA#$g#g9Q^SDpbRlvdZ=O;V-P2_xN!yEv@ic-R>SWs27f&$kd}D$kCTtG3D|TClHF*$ zKVcZi0A7bik6miwXJj}S#!!gx`cQ)|9!`$ zLl|4^=T$^XkC{nonHi?iLYY?deAR>WwIa-i^b`rL=30uq5=eL_oM7*=?d z0pYia9MdK}Vx;LzF*V{R?C{2*&(2(_g!X4>aJ#d?&P+>yJb%oO52n}JeTZ?=&NEqj z89pios_sin&(N&F6$;8}$y%4LdV>U_9EPb%>&Weac_2Yslz}9bOOR-{>{agq$h)@o zk}atN%ya$EwJ@SLn_}|{(*pLOFK5R_`KxgD6dSP2KPdhC96~-tilgNUEZDubs>t;v zWHR(a)N_Rn9i>RdOQsN%K~KS{Vav;gT#KkboDai4UplH$yBa0r2wJhxr8cpticiX| z1u7oR$8hB8>T&4pGUw(-Hz?uBMU7jc2m>GyZ7VNFjbv;_^$ z-}EVarF3$XiqJ3W+_dhLM}`8{V;993Q!xO2*NC40#45xXJ&E)m?}?1N6h*Kcc3gVC_7ergIVaE}B3 zQy|Jze?!Im>1ok3F=R}vY2b-9+ujOP>*Bw1FW{SUfmUe)=@rRPa5;|_$av4xJdJDn`CO4& zVFHQ836HULqL_8U5i0a7gB}R`x=`01pE`yz@L(?J_$0=i9kUScy^!N8#%3O%k}J z(j?9^jTtMurQ+J`3X@3$X@(IiPUxY@<6N2C;oF3D?x1?{eLj!Ojr6FJ9&T3e`3lJP zRQ&@d+GGE(Wk3T#EIuqN7NF(ZXtTa$nA_cdcD;6Jr+fY1whHp47cc`|i~N_3q9a~~ zMRQ6g0@?*`m4~Id zoU%1dca9{uNG9;oEzFRE$5S?70leD=qJf8frlzflP>+z(HtZeZ!ob&mVFrf(`}|QP z!rkZECxX8wwY?*{sIon0#VJ%r;*2DN%lBI7uU)8rb-Vl7G>IF6sKfx@*{%0w^=^@% zfNDV?eV^|YbH90{W^zdxC0e^n0?$=NVbeYVWgHoxUY5F@T&UETMx4x*y(uwZ45yA5 zY}>rkbot-Fh?ChDpW&l@;Gr;Po|l8-_y=ge{USQ9Fh#lZLqk$4Muz+`nt^Z2sE9L6mZmQcLq-*Rl2M(eWI?>6U7FZk_e*+6M zKg>yuWu9t39}Per@>p1Q$ZyWInbH1is&Ogyk|M@zqr_fk+m?vM-u$@M9rafNhCxX9 z^dNQWliBO)p*Z^RY>&#tSDW{sX$uPJ5REbj0#e>s0jPvP3+ePNoS=q+{mk2`u#I&`}m$WDddZa}XRzXYxi%S9L9 z{Tm>`^u^!0ktn-(Xwmsr2V8*CF}FWQ&-3u{jNgmG8RP8&z?Mna{kl2X7*GTm*NiCG<< zm64tG4=BFcwylH0i_S0KHqm;=J(u37`A62WAz{W}RhY^4sP6Rv)(XnH@ckV=y4YN? zjfSh0=cP-1=H3)mY{@0g$cwbiOEp6}MwP4G?EDwAaVy=)*@mVvE8HWpHZ;r?l5a4( zmVfnN=d7uER~gF}@Re}=D#O!4qc@c{gCe}g07v=+ZbyAQ*Ak$n91>>qM|1HwB9Qvk zt&cWwuP!(h^et!t#Qj*M$^r z9N|w_XA2dlcUwMLR5-NXl&KMoV#LA%{&dr9fct^g=7Wv@K~N3Lw-c)XPH)6BK+|TW z;GD3^?3O3t)MHj$zs=QUosr)G2d!Xea3&QN4-0onx5;UsWmSuVVU8sP^))id}gP`f9GG! zN+>SiQAjSM7ty!Usq&b{7rW}f7tGX686c|ktwZ{X#msdNB;kHMV1K7`od-!-P98@CTLZ93=G2x z24bsL7d=d4Usqhwct@tH+EUsO-^8PU@=Oi{>d_}TS?A*AXi_Xp(qZFf9Xk>*9PbbFaOLWTu?64K4mZow+|T=Gus-8<97l z<9UjyYWA46?(ClJ1&pDnZ=76~blKu+2l8$qVidvD0gEZ; zKrK!6?yr@;$f!BsLe@4g?G>`-gR|l_ z{Js<8*rlB%UbeS;wS9?>Ah(%P_=Z>)4Li9&xTFP z`PCSGGy~TieewOlgrt7DMRVQ@3R6v591Q8gyClm6JpfaC0XR*9yTMQizJizQx^g)V z3jM%NI$!J+51z(5Z|T)VwnU2ek_p%xgzZ#}8;>M5s z$gAJT1*V|AeqUAH6tPi{EWhwtTc_%y5d$=V!v*9teXu{`(msVyVbe+j5^$Y7S%-v+rkBH-YvzdNzNpFe<@hp*G@#s#HT}a23>0 z+RZmvv=RV%CdFK{qV3b_+o&Xa$<=qu>Rvd{RfF%J8RfW7xI8Ph#WKk=;8 z#2nsXQ2~auhBtPDipLz97@2E*mGZzHCV;lznQqv4O>>)&4#+lXX7Hw0;3_o_0xg?X zOk{Io;^oe?ESrpLR*$U+U~B(4J5M*ZK@$JZTpxyJl>>nYf}Q7;D)*PGs4&rv;#QT} zlo8O@i(g5t1~CjDAMXu4(rGiegku(Yo|V?%{vFu3W#{La0GE<}Ik0-Y9=O9d>s2B1 zYWLo3M{_C4eRvjU)F~NX_s-DVwXKrcad&T_9rosbK1CgT8^~P1ohc%XznAia_CFPY z-N)|-l(9;5^D?i#p{~Lm+kS^c*(qWje+S-@AHu^NyI$0Lti|*!mI4K2y}DV@f#hq{ z|BUN{5D$McoEs75;5UcUYxxI~=P`uY?UHz|ZNi3Dhe4N=FQW$lv-$^*u2 zscDpWAovRU`L80u`T+o$7aR!s=s8&uA7Hi%qC%`0D^*QE(n9PmA`5XI!_A(tF7u{u zoyD@m;2PN6Vql`QCZ5 z0noN;bOY#`M!>!DlTF@bd%O}={jT$P0q{(|d-JczKSNS7g-$;9*scbn0jv+f0PwU2 zv_EJtK#o9Bc10U}^-+wIz^mW|hB?5Cu@sQDgGkW2bdv&S8*uA+ZEL0h5ze46?CU`5 z*%A9CE<#_cO78Qqnbc7TlD_Rl^hfARLWM8~m3ZEs_m!V<={%IbWNSKO&(%N@uno)q zT35-o7k|fFNtT~id1>C|ow!8Jl?C*dRIZU%m%%0K$yj%p0!K!EV%Sd#4e3mu#fV3b z4YeUwpb#^7u;gyPAs+HVR%K`-{#6nh6w0fm_f6U!|IaGxZts?QN^BS*)#hMpF3=%C8b?KM5XY!wSF0j?7T>H<`bE_7;lhvqAfE5Ujd*jrwj#OaX=xA{M2qP0HHt} zFI^+Gu|ievn1zjQ%1J8p65(p5Sb>50x~*>*&bGEm(=!Y5tq1+}=rL{hHQN7KfvA?| z{Vw)bR~s_(88#c{1{e*$_n0Jhp5lV75sziBJQ~v_2yxr23yDZ6hd|qZxsIDsF7;J^ zc4bOU7Hh^R|J(4za0rECY8zN*h)8Q~QBueOkTf%vzXjl~Hkwt1X_s(eH zYggc^KzP_o5}emv#Q^1XsH0kslGRoqURAwEtpgOFq?Suv!XnVBtuI3-J$VcUN635+ zaU5fQa96dLw<+7fU7o&hx}4E?{p4AteU5(GJ8eA;sF-M=Hrx+9y1`g#SA zuj$pO4=vF=W0mF#Q2A^U@Ej2vgTTjr?l--xZFvZ1}SzkB1Iuu;BYUIT|pAey?g z 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�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

IsKa1rFo|=dc=Ha^Buwq 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

RU$`cM+`ts@a1j&xFL~+}Nk1-b{ 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