Name | RetroArch | ||
Developer | Libretro | ||
Publisher | Libretro | ||
Tags | |||
Release | TBD | ||
Steam | € £ $ / % | ||
News | |||
Controls | Keyboard Mouse Full Controller Support | ||
Players online |  n/a  | ||
Steam Rating | Need more reviews to generate a review score | ||
Steam store | |||
Public Linux depots | RetroArch Linux [466.28 M] Mesen (1205330) Depot [4.85 M] Mesen S (1222634) Depot [3.98 M] mGBA (1227448) Depot [1.09 M] PCSX ReArmed Linux [1.29 M] Mesen Linux Depot [4.4 M] Sameboy Linux [264.61 K] FinalBurn Neo Linux [55.73 M] Mesen S Linux [2.98 M] Mupen64Plus Next Linux Depot [6.93 M] Kronos Linux Depot [9.48 M] Stella Linux Depot [5.79 M] mGBA Linux 1656170 [1.31 M] Genesis Plus GX Linux [12.06 M] |
We added a new core, Geolith. This brings the total number of available cores on Steam to 62 now. |
RetroArch 1.17 expands Netplay to support playing multiplayer games that were originally played on two or more separate consoles or computers connected together. This is currently supported by two cores: DOSBox Pure (not available on Steam) and gpSP (available on Steam). |
RetroArch 1.17.0 has just been released.
|
RetroArch 1.16.0 has just been released.
|
We added a new core, DirkSimple. This brings the total number of available cores on Steam to 60 now. |
Link to our full blog article here, snippet below - |
RetroArch 1.15.0 has just been released.
Were very proud that RetroArch is now available on Steam on all three major OS platforms: Windows, Mac and Linux. Not only that, all but one of the cores (58 as of this writing) are fully compatible. We went the extra mile and made sure to support both the old and new generation of Macs. Therefore, we support both CPU architectures: Intel x64 based systems and the newer Apple Silicon/ARM architecture. So on newer Apple Silicon Macs youre getting a native version of RetroArch and any core DLC. No Rosetta2 translation layer overhead in this case. New cores added On top of that, we added two new cores, bringing the total number of available cores on Steam to 59 now. https://store.steampowered.com/app/1227442/RetroArch__Theodore/ https://store.steampowered.com/app/1227465/RetroArch__XRick/ Changelog
|
New cores added for RetroArch Steam. |
New core added for RetroArch Steam brought to you by icculus |
Changelog since 1.14.0: |
RetroArch 1.14.0 has just been released.
|
New core added for RetroArch Steam |
RetroArch 1.13.0 has just been released.
There are also new lite overlays that take advantage of all the new features described below. In particular, the lite overlays rely heavily on exclusive hitboxes. Lets go into what has been added so far to this release: [h2]Add eightway area types[/h2]
E.g. This would create a d-pad area, then redefine it to use analog directions: overlay0_desc0 = dpad_area,0.85,0.57,rect,0.166228,0.295516 overlay0_desc0_up = r_y_minus overlay0_desc0_down = r_y_plus overlay0_desc0_left = r_x_minus overlay0_desc0_right = r_x_plus Note: If Hide Overlay in Menu is enabled and the menu is up, the overlay preset will be read (loaded & unloaded without being shown) to know which overlay types are in the preset, i.e. whether to show eightway settings or not. [h2]Add reach and exclusive for hitboxes[/h2] These allow stretching (or shrinking) hitboxes and handling their overlap. Does not affect image, analog range, or analog/eightway center. [h3]Hitbox Reach[/h3] reach_up, reach_down, reach_left, reach_right:
reach_x, reach_y
E.g. In the overlay cfg, this creates a D-Pad area and extends its hitbox left & right 50%, up 15%, and down 30%: overlay0_desc0 = dpad_area,0.15,0.57,rect,0.166228,0.295516 overlay0_desc0_reach_x = 1.5 overlay0_desc0_reach_up = 1.15 overlay0_desc0_reach_down = 1.3 [h3]Exclusive Hitboxes[/h3] exclusive: If true, blocks input from overlapped hitboxes range_mod_exclusive: Similar, but only applies when this hitbox is extended by range_mod After range_mod takes effect, has priority over exclusive E.g. overlay0_desc0_exclusive = true overlay0_desc1_range_mod_exclusive = true Expected use cases:
I.e. Set reach_x or reach_y to zero to ensure no hitbox math is done. This simplifies designating animation-only descriptors (e.g. for eightway areas) or obsolete descriptors. Content scanning PS1 and PS2 content scanning has been improved significantly in RetroArch. All PS2 discs should now be able to be scanned. Previously, only CD-based PS2 games could be scanned and not DVD-based ones. PS1 content scanning has also been improved. More content should be able to be recognized now that the system is also able to scan PSX.EXE files on a disc. For instance, it was not possible to scan Street Fighter: Real Battle on Film before because of this. Also, all LSP- titles were previously ignored, which has also been fixed. Menu QoL improvements Various improvements made to the menu system in terms of usability and UX thanks to sonninos.
For a more exhaustive list of all changes made to the menu, consult the Changelog. Vulkan fix for HDR mode After RetroArch 1.11.1, an unexpected side effect caused many shaders (e.g. crt-easymode-halation or newpixie.crt) to render an oversaturated and dark image when using Vulkan and HDR on Windows 10/11. To fix this now with the Vulkan driver, we only skip the tonemapper if HDR10 is explicitly enabled by the last shader pass. Otherwise, we are simply just inheriting the bit-depth of the swapchain. Changelog
|
RetroArch 1.12.0 has just been released.
These are just some examples of what is possible with this new system. Its a pretty powerful system, and we hope this gives you a lot of flexibility to better organize your content. Changelog 1.12.0
|
Changelog: |
Point fix update. |
RetroArch 1.11.0 has just been released! Months of work has gone into significantly improving RetroArch across the board. Particular points of focus have been networking/netplay and user interface improvements. |
RetroArch 1.11.0 has been released! |
A new core has been added for RetroArch Steam. |
A new core has been added for RetroArch Steam. |
new cores have been added for RetroArch Steam. |
new cores have been added for RetroArch Steam. |
Three new cores have been added for RetroArch Steam. |
A new core has been added for RetroArch Steam - FreeChaF. |
Two new cores have been added for RetroArch Steam - Beetle Saturn and FUSE. |
A new core has been added for RetroArch Steam! |
Two new cores have been added! |
Flycast updated with Naomi2 arcade game support |
RetroArch 1.10.3 has just been released.
[h2]PCSX ReARMed[/h2] This core has a new auto frameskip mode (based on free audio buffer space). The Lightrec dynamic recompiler has been updated, and it should fix several crashes and bugs that occurred before. This would only affect users on x86/x86_64 and MIPS architecture processors, as ARM architecture-based systems continue to use the Ari64 dynarec instead. There has been a GunCon overhaul, the following input descriptors have been added:
[h2]gpSP[/h2] The gpSP Libretro core now uses a small translation cache for the Miyoo platform. [h2]Beetle Virtual Boy[/h2] Fixed a couple inaccuracies in the VSU modulation emulation, fixing a few sound effects in Virtual Boy Wario Land. [h2]Mesen[/h2] The Nintendo Entertainment System emulator core has seen a couple of improvements. Before, the core would upload audio by using the audio batch callback multiple times per frame, unduly stressing the frontend audio buffer and leading to poor AV synchronisation. We now ensure that the audio batch callback is only used once per frame (unless the frontend does not support batches of sufficient size, in which case the samples will be split appropriately). We also did the following:
[h2]Snes9x 2005[/h2] This Super NIntendo Entertainment System emulator core has seen several improvements. Before, the core had bad audio sample pacing:
We fixed several issues:
We added a simple optional low pass filter at the output stage of the non-plus core. When enabled, audio is more mellow/bassy, and the generated sound is closer to that produced by the plus version with only a negligible increase in performance requirements. [h2]Snes9x 2010[/h2] This Super NIntendo Entertainment System emulator core has seen several improvements. Use audio batch callback only once per frame Before, the core would upload samples in batches of ~64, which means the audio batch callback is used many (~9) times per frame. This overstresses the frontend audio buffer and leads to bad AV synchronisation. We have fixed the issue by ensuring that the audio batch callback is used to send all available samples only once per frame. Improve save state efficiency + fix save state size At present, every time that retro_serialize_size() is called (i.e whenever save states are used), the core determines the save state size by allocating a temporary 5 MB buffer and writing into this an actual save state. Moreover, it then fails to report the actual size correctly due to a bug in the memory stream wrapper code which means save states are always 5 MB in size. This represents a terrible inefficiency. Now, the save state size is now calculated independently of regular save state creation. No temporary buffer is required, and there is no need to actually write a save state to memory and save states now have the correct size (~830 kb) 60Hz modes for > 60Hz emulated platforms [h2]Beetle Cygne/WonderSwan[/h2] At present the core runs at ~75Hz, matching the native refresh rate of the WonderSwan hardware. This is fine if the core is run on a VRR display (or one that natively supports 75Hz), but on regular 60Hz panels it can cause issues. In particular, screen tearing is very likely to occur. You can experience this on Linux (when not using a compositor and without vsync forced at the driver level) and on 3DS. The tearing is so bad on 3DS that we would previously consider the core to be unusable on that platform We now added a new 60Hz Mode core option, which can be used to force the core to run at 60Hz (actually 60.38Hz, but RetroArch handles this nicely via dynamic rate control). Note that the core still runs at the correct speed when this option is enabled internally, the core is running the nominal ~75 frames per second, but every 5th frame is dropped. This reduces video smoothness, but then 75Hz on a 60Hz display is not smooth either. More importantly, enabling this option eliminates screen tearing. In addition, we have also made the following minor changes:
Thanks to this 60Hz mode, Beetle WonderSwan is now perfectly playable on RetroArch 3DS. We have enabled this option by default. If you are using a VRR display or if you are running at a native 75Hz resolution and would like to change it back to the native refresh rate, you can just turn this option off in Quick Menu -> Options. We have also added the core for RetroArch PS2, although it cant reach fullspeed. Its debatable whether its worth including, but for now we keep it in. There is also a new optional audio feature. The WonderSwan has a tendency to produce rather harsh/abrasive chiptunes. The low pass audio filter softens and mellows out the generated sound. Changelog
|
AI/SERVICE: Disable AI Service setting by default |
RetroArch 1.10.2 has just been released. You can read the full article on our website here. The condensed version here has been stripped of everything not relevant to the Steam version in specific.
As a result of these changes, the Steam port is starting to become its own thing rather than just a straightforward no-frills port of the Windows/Linux versions. [h2]Improved audio sample pacing / latency in many cores[/h2] Big improvements have been made to several cores concerning improved audio latency and audio sample pacing. Not only should performance be better, but you should also be able to lower audio latency buffers now while still getting perfect sound. Here are some of the cores that have received work recently on this front:
For example, frame time deviations in a core like Snes9x 2010 are now extremely low with a default 64ms audio buffer. We measured 0.4 to 0.3% deviation, and this figure could likely be optimized even further by fiddling some more with audio buffer latency, or changing the audio driver. Other measures have also been taken to further improve audio latency. Some cores have been updated now so that audio gets pushed to the frontend (i.e. RetroArch) AFTER the video frame has been uploaded. This is just in case the audio upload blocks for too long due to audio processing and syncing performed by the frontend. Uploading the video frame as soon as possible after the emulation loop is generally a good idea since it potentially avoids unnecessary input latency. Steps have also been taken in cores to minimise use of the audio batch callback (for example, Tyrquake and Snes9x 2010), leading to better audio sample pacing, less overhead and better overall performance. [h2]UI/UX improvements[/h2] RGUI, MaterialUI and Ozone menu drivers now have new color themes. Gray Dark / Gray Light themes have been added. For XMB users, vertical fade adjustments have been made so that it functions a bit better like the original. Title margin can now also be adjusted, so that the title wont cut off anymore on display devices with overscan (i.e. CRT TVs). For RGUI users, 610 extended ASCII and Latin Extended A and B fonts have been added. These will enable most Latin alphabets to be displayed in RGUI. For Ozone users, a thumbnail scaling option has been added (Settings->User interface->Appearance). This option scales the size of the thumbnail sidebar, which in turns means the thumbnails are scaled along with it. It should scale the thumbnails so that they should fill up more screen real estate now in the right sidebar. See the picture below for an example. [h2]Manage Input Remapping Files[/h2] 1.10.2 adds a new Manage Remap Files submenu to Quick Menu > Controls: This updates correctly in real-time (the previous save/remove remap menu entries do not), and only shows relevant options. When removing a remap, existing files are re-scanned and the one with the next highest priority (if found) will be loaded. In addition, the currently active remap file will be saved automatically when closing content i.e. it is no longer necessary (or indeed possible!) to save the file manually after each change. We have also added a new Reset Input Mapping entry under Quick Menu > Controls > Manage Remap Files: We have also fixed a nasty bug that could cause remap file corruption (incorrect or unwanted entries) when saving a remap after resetting one or more binds. [h2]Prevent global configuration of input libretro device type[/h2] Before, RetroArch allowed the input libretro device type to be set globally per-user. This was nonsensical for a couple of reasons:
1.10.2 fixes the issue by:
Note that device type is no longer stored in the main RetroArch config file, only in input remap files. [h2]Changelog[/h2]
|
RetroArch 1.10.1 has just been released. Read our full article here on our website.
Lots of cores fall into the contentless/standalone cores territory NXEngine (Cave Story), Mr. Boom, Rick Dangerous, Dinothawr, The Powder Toy, Cannonball, 2048, etc. Its important to realize that standalone here does not mean what you would think it means when used outside of RetroArch parlance. To make it even easier to work with these contentless cores, it has now also been made easier to obtain required/necessary content files that some of these cores need. If you go to Online Updater and then go to Core System Files Downloader, it will show all the content files that are available for download from our server. Some of this content is required for certain cores to work as best they can, and some are even required for the core to start up at all. For instance, if you download Dinothawr.zip, it will download and install all the required asset files you need to play Dinothawr. After downloading this, you can then go to Standalone cores, select Dinothawr and play the game. There is now a more energy-efficient way to fastforward. Instead of relying on the CPU to be as fast as it can be to fastforward frames (the default and only way up until now), now its also possible to fastforward based on frame skipping. To be more precise, this method of frame skipping is done by measuring the frame time and skipping based on frame time. Some advantages to this new way of fastforwarding:
It also means that with this option, fastforwarding is now possible for more cores on lower-end hardware. For instance, in the past, if you wanted to fastforward by x 2 in a specific game, the CPU of your machine had to actually be able to run the game with the core twice as fsat as the normal default. In other news, tons of fixes for Wayland users on Linux machines. Tons of Cheevos/RetroAchievements improvements as usual (mastery placard, better description messages for missing RetroAchievements credentials, support for identifying Dreamcast CHD files, etc). For netplay users, savestates have been disabled in stateless modes for stability reasons. For RGUI menu fans, there is now dynamic theme support. This adds support for dynamically loading themes with RGUI based on the menu title from a playlist. When Dynamic is chosen as a theme, a default theme will be loaded. It will look for default.cfg. When a playlist is selected, it will load the theme *playlist_title.cfg. With *playlist_title replaced as the actual title of-course. Themes will be looked for in the dynamic wallpapers directory. Changelog CHEEVOS: add mastery placard CHEEVOS: more description message for missing RetroAchievements credentials CHEEVOS: prevent occasional infinite wait loading multi-disc game from secondary disc CHEEVOS: stop load process if unable to retrieve achievement data CHEEVOS: support for identifying Dreamcast CHDs CHEEVOS: Updated to 10.3.2 CONTENTLESS CORES: Disable per-game and per-content-directory remaps when running contentless cores CONTENTLESS CORES: Disable per-game and per-content-directory shader presets CONTENTLESS CORES: Enable config overrides CONTENTLESS CORES: Enable runtime logging CORE INFORMATION: Show core version CORE UPDATER: Add Core System Files Downloader CORES/SETTINGS: Add Standalone Cores menu D3D10/D3D11: Add Vsync swap interval EMSCRIPTEN: Enable 7zip GBA: New GBA filter Upscale_240x160-320240 GONG: Removed now that its a standalone core HISTORY/FAVORITES: Fix default core on Add to Favorites INPUT/WAYLAND: Allow toggling mouse grabs INPUT/WAYLAND: Release keys and mouse buttons on lost focus LIBRETRO: Fix crash when cores using RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK return false from retro_load_game() LIBRETRO: Add optional frame skipping when fast-forwarding LOCALIZATION: Fetch translations from Crowdin LOCALIZATION: OSD fonts for Chinese, Korean, Arabic and Persian LOCALIZATION: Translation fixes for various languages MENU/RGUI: Add dynamic theme NETPLAY: Disable savestates on stateless mode OZONE/XMB: Improve efficiency/accuracy of History/Favorites icon rendering RECORDING/FFMPEG: Fix building against FFmpeg 5.0 RETROARCH INFORMATION: No longer report on enabled Python support, which was removed in RetroArch 1.7.8 SAVESTATES: Disable save states based on save state support level defined in core info files UNIX/WINDOWS: Allow setting the default libretro_directory via environment variable WAYLAND/VULKAN: Fix Wayland Vulkan not reacting to initial resize WINDOWS/WINRAW: Enable mouse overlay control |
RetroArch 1.10.0 has just been released. Read our full article here on our website. |
New RetroArch version 1.9.10 just released. Changelog down below: |
A busy year passed by and there was a lot of silence on the Open-Hardware Project. |
We're happy to announce that Potator has been added to RetroArch Steam as core DLC! |
We're happy to announce that Beetle VB has been added to RetroArch Steam as core DLC! |
We're happy to announce that Beetle Cygne has been added to RetroArch Steam as core DLC! |
We're happy to announce that EasyRPG has been added to RetroArch Steam as core DLC!
EasyRPG Player is part of the EasyRPG Project. Link to the new DLC is here - https://store.steampowered.com/app/1222638/RetroArch__EasyRPG/ The user guides can be found here - https://docs.libretro.com/library/easyrpg/ |
We're happy to announce that Beetle PCE has been added to RetroArch Steam as core DLC!
Beetle PCE is a slower, accuracy-oriented version. Beetle PCE Fast is a faster but less accurate version. Beetle Supergrafx is based on Beetle PCE Fast but emulates the Supergrafx. Link to the new DLC is here - https://store.steampowered.com/app/1843610/RetroArch__Beetle_PCE/ The user guides can be found here - https://docs.libretro.com/library/beetle_pce_fast/ https://docs.libretro.com/library/beetle_sgx/ |
RetroArch 1.9.14 has just been released.
RetroArch Steam now has 26 cores in total, and the 27th is about to be added soon, EasyRPG! Please look forward to future announcements of more cores coming to Steam soon. [h2]Netplay improvements[/h2] Netplay has received plenty of improvements thanks to the efforts of Cthulhu. We have a lot more prepared for the next version, so consider this a prelude to the main event.
For the next version, we will finally address the relay MITM server issues. [h2]WiiU improvements[/h2] * Keyboard support has been fixed. The problem was caused by changing the driver lookup point. The deferred lookup resulted in the WIIU trying to treat the keyboard as a gamepad which didnt work. This change short-circuits at the connection event by ignoring mouse & keyboard connection events. [h2]Core improvements[/h2] As mentioned before, as part of Project IO, we are going over every core and performing some basic quality control checks. This already resulted in numerous Quality of Life enhancements to cores. Not all of the improvements listed below can be attributed to Project IO, but its fair to estimate over 90% of them are. [h3]VICE[/h3]
[h3]FCEUmm[/h3] Add automatic Crowdin synchronization Mapper 196: Support IRQ for The Ancient & Modern Heroes Mapper 319: Use hp898f.c only for the old incorrect UNIF bank order, and 319.c for all NES 2.0 ROMs. Add CNROM mode and solder pad switch to the latter. Mapper 57: Change default DIP for YH-xxx Olympic multicarts, always reset to menu Mapper 178: Always reset to menu. CNROM/UNROM: Only emulate bus conflicts when explicitly specified by NES 2.0 header Added support for mapper 383 Add UNROM modes and two-chip variant to mapper 242 Add Realtec 8099 PCB support to mapper 236 [h3]Nestopia[/h3]
[h3]QuickNES[/h3]
[h3]Beetle PSX[/h3]
[h3]Prosystem[/h3]
[h3]gpSP[/h3] [h3]Improved audio frame pacing[/h3] Previously, the core was susceptible to crackling audio, particularly when using low frontend audio latency settings. This is because the core was handling audio output suboptimally. At the set audio sample rate, the frontend expected between 1097 and 1098 audio samples per frame but the core was sending samples in multiples of 256. This means that the audio output becomes desynchronised with retro_run() sometimes 1024 samples will get sent to the frontend for the current frame, sometimes 1280 as the core either falls behind or overcompensates. As a result, when the frontend tries to synchronise on audio, jitter can occur and if the frontend audio buffer is small (when using low latency values), it can sometimes run dry or reach capacity, causing crackling. 1.9.14 modifies audio handling such that the correct expected number of samples is sent to the frontend in proper synchronisation with retro_run(). This greatly improves audio quality, even on the notoriously crackly Mother 3. To demonstrate the effect of this, here are a couple of figures measured from the core on a Linux desktop with an audio latency setting of 64 ms, averaged over 5k frames: Time spent close to audio buffer underrun: * Current master: 8.68 % * With this PR: 2.37 % In addition, a Miyoo port has also been added. [h3]PPSSPP[/h3]
[h3]Miscellaneous core improvements[/h3] Caprice32: [event] changed mouse pointer to absolute position Caprice32: [event] better first the default mouse mode code. Caprice32: [KoS] little fix to avoid render problem on WiiU Caprice32: Should work now on WiiU Caprice32: [KoS] changed to RETRO_DEVICE_ID_POINTER_PRESSED Caprice32: [dsk] clean base Caprice32: [fdc,slots] new loader endian compatible WIP Caprice32: [loader] compatible wiiu basic loader. FBNeo: (libretro) xybots remapping FBNeo: (libretro) llander remapping FBNeo: megadrive update from gab75 FBNeo: nes update from gab75 FBNeo: gijoe: all clones have a 4 players mode FBNeo: gaelco: modernize driver, fix thoop stg. 4 crash FBNeo: atarivad, fix runahead w/some games using this FBNeo: tempest: add some hacks FBNeo: msx update from gab75 FBNeo: d_taitof2.cpp: add Majestic Twelve The Space Invaders Part IV (US) FBNeo: batman, more drums volume, vad offset, ssriders oops FBNeo: xmen6p, note about resetting FBNeo: In Your Face (inyourfa), fix priority FBNeo: ssriders, fix # of players FBNeo: speccy update c/o gab75 FBNeo: galaxian, update pisces date FBNeo: 7z: fix cpp ODR (second attempt) FBNeo: spectrum fix 48ks ay FBNeo: vector, underp mode change FBNeo: video, less derpy mode changes for megadrive, etc FBNeo: grdnstrm: also fix cloness dips FBNeo: grdnstrm: fix dips FBNeo: sms: update Voyage A Sorceress Vacation to 1.05 FBNeo: ssv, buffer spriteram for every game in driver FBNeo: d_namcos2.cpp: added Mirai Ninja (Japan, set 2) [Corrado Tomaselli] FBNeo: d_cps1: marked forgottnj as a prototype, its an unfinished version of the game FBNeo: d_hyperpac.cpp: added New HyperMan (3-in-1 with Cookie & Bibi & Hyper Man) (set 2) [jordigahan] FBNeo: d_cps1.cpp: Fixed 2 players mode DIP switch for sf2cejx and sf2hfj. FBNeo: spectrum update from gab75 FBNeo: williams, add Playball!, fix lottofun FBNeo: lua: fix window not opening after closing a game w/lua console opened FBNeo: cbombers, undrfire: impl. contrast/luma settings as recommended by Tatsuya79 FBNeo: ssv, experimental lag fix plus fix pastelis 2p split screen mode FBNeo: d_m107.cpp: hiscore support FBNeo: ssv, add spritebuffering to stmblade to fix lines in stage 6, cleanup a little FBNeo: experimental cheat fix for midway (mk/umk3/etc) games FBNeo: md, updates from gab75 FBNeo: megadrive palette fix (0 bit ignored) FBNeo: sys16b doesnt have highlights, only shadows. i think? revert if breaks something FBNeo: add ktiger2p [DsNo] Genesis Plus GX: Fetch translations & Recreate libretro_core_options_intl.h mGBA: Add automatic Crowdin synchronization PPSSPP: Reimplement audio Picodrive: Fix loading of SMS/GG ROMs Picodrive: sound, fix ym2612 ladder effect, add option Picodrive: 32x, fix DMA mem-2-mem copying for big endian Picodrive: sound, add ym2612 channel clipping, ladder effect Picodrive: sms, set non-TMR images to region Japan SameBoy: Update the SameBoy core with latest changes SameBoy: Add GB_is_cgb_in_cgb_mode SameBoy: Add memory write callback, optimize memory access with likely/unlikely SameBoy: Add a safe memory read API SameBoy: Initial MBC7 support SameBoy: Mouse controls for MBC7 Yabause/Kronos: Add automatic Crowdin synchronization [h3]Changelog 1.9.14[/h3]
|
.9.14 |
We're happy to announce that Beetle PSX has been added to RetroArch Steam as core DLC! Link to the new DLC is here - https://store.steampowered.com/app/1222630/RetroArch__Beetle_PSX/ The user guide can be found here - https://docs.libretro.com/library/beetle_psx/ |
We're happy to announce that Prosystem has been added to RetroArch Steam as core DLC! |
We're happy to announce that gpSP has been added to RetroArch Steam as core DLC! |
We're happy to announce that Caprice32 has been added to RetroArch Steam as core DLC! |
We're happy to announce that RACE has been added to RetroArch Steam as core DLC! |
We're happy to announce that UAE has been added to RetroArch Steam as core DLC! |
We're happy to announce that VICE has been added to RetroArch Steam as core DLC! |
We're happy to announce that bsnes has been added to RetroArch Steam as core DLC! |
A ninjafix release was just pushed for RetroArch 1.9.13. This overwrites the current 1.9.13 build. Download it here. |
The submission process is taking a while, but we are happy to report that the following core DLCs have now been added for use with RetroArch Steam: Enjoy! |
Should fix several RetroAchievements-related isssues that were plaguing 1.9.13. |
Changelog 1.9.13
|
|
The Neo CD libretro core is now available for download! Get it here - |
NOTE: We are not affiliated or have any association with the companies behind these devices. [h2]HID subsystem unification - improvements/bugfixes[/h2] 1.9.11 added a new unified HID subsystem that works on both Mac and WiiU. Version 1.9.12 features several crucial bugfixes and additions that were plaguing the initial implementation in 1.9.11. See the CHANGELOG at the end of this blog post for more details. [h2]Increased backwards compatibility for macOS cores[/h2] Since the migration to our new infrastructure, the minimum OS requirements for macOS cores unintentionally went up. We have since taken steps to address this. Here are the current minimum OS requirements:
We intend to drive down the requirements even lower in the coming months. For C++-based cores, the lowest we can go is 10.9. Going lower would require installing an older SDK version. For C-based cores, the lowest we can go is 10.4 for Intel-based architectures. [h2]Project IO - Continued[/h2] You've read in our previous blog post that we were working on a long-term project to wrap/abstract all file system I/O in cores, and also correct and improve cores along the way. This work has continued for version 1.9.12, and we are happy to report that various cores have been improved substantially as a result. Below are all the cores we managed to cover so far. The ones listed in bold are the new cores we have covered since 1.9.11.
[h3]Project IO - FCEUmm improvements[/h3] We replaced all direct file access in the core with VFS routines (libretro/RetroArch#12949) In addition, it turned out that this core had been violating the libretro API for some time by setting need_fullpath = false but then requiring the content fullpath to detect the region of iNES v1.0 ROMs. This PR fixes the issue by setting need_fullpath = true by default, but then lifting this restriction for frontends that support the RETRO_ENVIRONMENT_SET_CONTENT_INFO_OVERRIDE environment callback (which allows a valid content name to be extracted even when using a frontend-provided data buffer) Built-in Game Genie support FCEUmm has long supported emulation of the Game Genie cartridge add-on, but this is currently unavailable in the libretro core. 1.9.12 wires up said functionality: A new core option Game Genie Add-On (Restart) has been added (disabled by default) In order for the option to apply, the Game Genie ROM file named gamegenie.nes must be present in the frontend system directory Game Genie support is disabled for FDS and arcade content Save states do not function (and are disabled) while the Game Genie boot screen is open After enabling Game Genie Add-On (Restart), launching a game will cause the Game Genie boot screen to appear. Codes can be entered with the gamepad (as on real hardware): D-Pad to move, A to select, B to delete. For example: Super Mario Bros. Why would we want this functionality, when the regular cheat interface is already available? Because: * It provides an authentic experience * It enables cheats when using frontends that don't support the regular cheat interface * All the code was already in place, and it was easy to enable :) In addition, during the process of implementing this, the core's OSD messaging code was overhauled and cleaned up. OSD warnings will be displayed when appropriate if the Game Genie ROM file is missing, and also if the FDS bios is missing. OSD message durations have been shortened a little, and the core makes use of the extended messaging interface when available. Color palette switching At present it is difficult to compare the core's Color Palette options, because these can only be set via the quick menu. 1.9.12 adds the ability to switch to the next/previous colour palette by holding RetroPad L2 and pressing D-Pad Left/Right while content is running. Memory leaks fixed Numerous memory leaks have been fixed while going over this core. This should benefit in particular all the statically linked platforms, such as game consoles. [h3]Project IO - SameBoy improvements[/h3] 1.9.12 makes the following changes to the core: Direct file access has been replaced with VFS routines (libretro build only) (Cores with straight stdio file I/O RetroArch#12949) The core now sets need_fullpath = false, such that content is loaded from the frontend-supplied memory buffer. (Cores that should be turned into need_fullpath = false) Since the core no longer receives a content path, automatic ROM type detection cannot be based on file extension (.gb, .gbc). We now therefore inspect the ROM header, which means we can also distinguish SGB-enhanced content. As a result, the System - Emulated Model core option has been modified such that the Auto settings are: Auto Detect DMG/CGB (default): Emulated hardware will be set to either Game Boy or Game Boy Color depending upon the ROM. Auto Detect DMG/SGB/CGB: Emulated hardware will be set to either Game Boy, Super Game Boy or Game Boy Color depending upon the ROM. A new Auto Detected SGB Model has also been added, to enable selection of which type of SGB hardware to emulate when content is detected as being SGB-enhanced. Since it was necessary to edit the core options anyway, these have been updated to v2 and option categories have been added. Note that all changes here (apart from two .gitignore additions) are limited to the libretro directory - no 'emulator' code has been modified. Fixes issue #58 - 'Better Auto System Model Support #58' Fixes issue #52 (since the core no longer loads ROMs directly) - 'Can't load ROM files with special characters in filename' [h2]PCSX ReARMed - Improvements[/h2] Lots of improvements have been made to PCSX ReARMEd courtesy of gameblablabla -
[h2]Ozone - new color themes[/h2] Solarized Light theme for Ozone menu driver Solarized Light theme for Ozone menu driver Solarized Dark theme - Ozone Two new color themes got added - Solarized Light and Solarized Dark. [h2]Libretro additions - Enable SRAM for contentless cores[/h2] Before, the saving/loading of SRAM data is disabled for contentless cores - which means that cores such as 2048 have to handle save data internally instead of utilising frontend-provided functionality. 1.9.12 simply disables this artificial and unnecessary restriction. Changelog 1.9.12
|
|
Read very important linux changes!
Lastly, we hope that new users can be understanding of the fact that RetroArchs UI might have a bit of an initial learning curve. We are a small team, and we definitely intend to simplify the UI at least for beginners in the coming months, but we are simply not ready yet. So we hope people are understanding of this and appreciate the swiss knife flexibility and power of RetroArch in the meantime instead of focusing on the overall complexities or whatnot of the UI/UX. The Steam version should be updated to 1.9.10 soon. [h2]High Dynamic Range fixes for D3D11/D3D12![/h2]
[h2]Filters[/h2] 1.9.10 adds a new Picoscale_256x-320x240 video filter. This uses a number of high quality, high performance algorithms developed by irixxxx for Picodrive standalone to upscale 256x224, 256x239 and 256x240 content to 320x240 (content of any other resolution is passed through unchanged). Much like the existing Upscale_256x-320x240 filter, this is intended for use on platforms/devices with native 320x240 resolution support, where it greatly reduces aliasing while producing a significantly sharper image than conventional (hardware) bilinear filtering. Three filter variants are provided: Picoscale_snn_256x-320x240: 'Smoothed' nearest neighbour Picoscale_bl2_256x-320x240: 2-level-bilinear with 2 quantized weights Picoscale_bl4_256x-320x240: 4-level-bilinear with 4 quantized weights Essentially, both image 'smoothness' and performance requirements increase in order of snn -> bl2 -> bl4. Go here to see several screenshots demonstrating the output of each filter type: (click for full-size images) These filters are highly efficient. Tested with the Snes9x 2005 Plus core (a lightweight core which is nonetheless at the upper limit of many low powered handheld devices), we see the following increase in total performance overheads when each filter is applied (note that the existing Upscale_256x-320x240 filter is included for comparison): [table] [tr] [td]Filter[/td] [td]Performance[/td] [/tr] [tr] [td]overheadbl2[/td] [td]+13%[/td] [/tr] [tr] [td]No filter[/td] [td]+0%[/td] [/tr] [tr] [td]snn[/td] [td]+8%[/td] [/tr] [tr] [td]bl4[/td] [td]+30%[/td] [/tr] [tr] [td]upscale_256x_320x240[/td] [td]+27%[/td] [/tr] [/table] The performance overheads relative to the existing Upscale_256x-320x240 filter are: [table] [tr] [td]Filter[/td] [td]Performance overhead[/td] [/tr] [tr] [td]snn[/td] [td]-69%[/td] [/tr] [tr] [td]bl2[/td] [td]-45%[/td] [/tr] [tr] [td]bl4[/td] [td]+14%[/td] [/tr] [/table] [table] Thus SNN and BL2 in particular have very little performance impact. All credit goes to irixxxx - many thanks for giving us permission to use your work in RetroArch! In other video filter news, the Switch/libnx port now also has video filters support! [h2]Playlist Manager - New 'Refresh Playlist' option[/h2] The manual content scanner provides a quick and easy method for generating playlists - but there exists no convenient way to update playlists that already exist. If a user adds content to a ROM directory then they must go to the trouble of reconfiguring and re-running the manual scan (including selecting the ROM directory, system name, default core, etc.); if they have simultaneously removed some files, then they are also obliged to go to the relevant 'playlist manager' menu and 'clean' the playlist. This is time consuming and tedious. 1.9.10 adds a new Refresh Playlist option to the 'playlist manager' menus. When selected, the current playlist will be re-scanned with the manual scan configuration that was last used to generate/edit the playlist. 'Refreshing' a playlist also populates all entries of the Manual Scan menu - so it is easy to tweak values should the user wish to update the allowed file extension list, etc.. In addition: a new Validate Existing Entries option has been added to the manual scan interface. When enabled, any existing playlist is checked before commencing the content scan; entries referring to missing files, or files with invalid extensions, are then removed. Validate Existing Entries is disabled by default, but automatically enabled whenever a playlist is refreshed. Thus selecting Refresh Playlist will both add new content and remove missing/invalid entries. Note:
[h2]3DS - Add bottom screen idle state[/h2] Some nice QoL improvement for RetroArch 3DS users! 1.9.10 allows the bottom screen on the 3DS to be disabled when idle. On compatible devices, the bottom screen backlight is toggled. If no core is running, the bottom screen is always idle with the backlight turned off. If a core is running with the bottom screen in it's 'default state', the bottom screen will idle in ~6 seconds. The displayed text "Tap the bottom screen to go to the Retroarch menu" fades out and the LCD backlight is disabled. When interacted with the screen, the backlight turns on and toggles the menu as usual. When in the menu / paused, the bottom screen remains active. [previewyoutube=S6GXltlr0F8;full][/previewyoutube] [h2]RetroAchievements/Cheevos improvements[/h2] Don't write achievement credentials to override Ignores changes to cheevos_token, cheevos_password, and cheevos_username when generating config override files. While this is particularly important for not remembering a stale authentication token, not entering any credentials until after loading content, and then saving the override could lead to the actual password being stored in the override even after the authentication token is generated and put in the master settings file. Since neither the authentication token nor the password should be stored in the override file, I believe it also makes sense to exclude the username, as having a per-override username would also require a per-override authentication token or password. If a players wants to have a separate retroachievements user for a specific core, they can still manually add the entries to the override file, but those will be cleared out any time they update the override file from within the application. A better solution would be to use separate master configs and launch using the --config option. Disable slowmotion when enabling hardcore mode There's already code preventing the user from toggling (or otherwise using) slowmotion when achievement hardcore mode is enabled. Slowmotion provides an advantage for the user's reflexes, so we don't allow it in hardcore mode. This addresses an issue where the user could enable hardcore mode with slowmotion already toggled on, and it would remain on. The user would be locked in slowmotion as the toggle would be disabled, but with enough patience, it could be worth it. With this change, slowmotion is disabled when enabling hardcore mode. Changelog 1.9.10
|
|
Instead, you can download and install cores in either one of two ways:
[h2]10 Cores Available At Launch[/h2] We have decided to launch with 10 cores at launch. These cores are available both for Linux/SteamOS and Windows users. A 'core' is a program that RetroArch loads. It can be an emulator, game, or any other program. RetroArch loads this 'core', and from there RetroArch becomes the program. The cores currently available as DLC on Steam are as follows:
First, you install RetroArch on Steam. After that, you can install the cores either on Steam's browser page by clicking 'Manage DLC' and easily installing them all at once, or you can go to each respective page and install it from there. More cores will be coming as DLC soon. We have no ETA on when these will arrive, but it will likely be a dripfeed of new cores on a periodic basis as it takes a lot of time preparing the pages, descriptions, logos, previews and whatnot that a Steam page requires. [h2]Things to know[/h2]
Lastly, we hope that new users can be understanding of the fact that RetroArch's UI might have a bit of an initial learning curve. We are a small team, and we definitely intend to simplify the UI at least for beginners in the coming months, but we are simply not ready yet. So we hope people are understanding of this and appreciate the swiss knife flexibility and power of RetroArch in the meantime instead of focusing on the overall complexities or whatnot of the UI/UX. |
If you'd like to learn more about upcoming releases, please consult our roadmap here. The next version of Lakka (with an updated RetroArch 1.9.9 version) is scheduled to be released very soon! Thoughts on future RetroArch HDR support* We still need HDR implementations for other modern graphics APIs, like Vulkan (and Metal and/or OpenGL core if possible). We have no ETA on when this will be done. Ideally a generous contributor submits it to us, just like what happened with D3D11/12. * Slang [the shader format] will need HDR support as well in order to take full advantage of the expanded gamut. Right now the author that made the D3D11/12 implementation made a reference shader that he says can already take advantage of HDR - check out his new shader 'integer-scaling-scanlines.slangp'. You can find this preset inside the folder 'scanlines/shaders'. It is an integer scaling mode pixel perfect scanline shader for use with low resolution monitors, underpowered machines, the new HDR mode in RetroArch and for people who want pixel sharp scanlines with absolutely no moire patterns (but with the downside that integer scaling must be on and so not fill up the screen or over fill the screen). * It needs to be pointed out that HDR support on Linux in general is very premature right now compared to Windows. Windows happens to be a bit further along at this point in this department. Hopefully this inequality will be addressed shortly. But just know that this might tie our hands a bit. [h2]3DS Bottom touchscreen menu[/h2] https://twitter.com/i/status/1434063889122140160 A fully interactive touchscreen menu for the bottom screen of the 3DS has been added by the very generous contributor bulzipke! The following functions are currently available on this screen: Resume Game Toggles RetroArch menu, closes it and goes back to the game. Create Restore Point If you touch this, save it to SD card. If the Save State Thumbnails option is enabled, you can see Screenshots at the Load Restore Point Load Restore Point Shows the date when you saved it. (And show Screenshot if exists). If you change the State Slot, bottom menu will refresh Screenshot / date / state. [previewyoutube=LB6zeIVly_U;full][/previewyoutube] Some important convenience features came as a result of this too. Savestate loading / saving to RAM instead of to disk was added, so it's possible to have temporary suspend points without writing to disk. The state is only saved to disk when either: * Closing the lid of the 3DS * Pressing the HOME button * Exiting RetroArch This gives things a very seamless feel. Not only that, the saving of state to RAM is orders of magnitude faster vs. saving to disk, so now while doing these operations, things no longer slow to a crawl. There's also the option to disable the bottom screen - Settings->User Interface->3DS Bottom Screen Although this option will not affect performance, it is estimated that "Tap the Touch Screen to go to the Retroarch menu" text may add additional battery consumption to draw the screen. So it's always nice to have the option to toggle it off if need be. [h2]AMD FidelityFX Super Resolution (FSR) has been ported to Libretro/RetroArch![/h2] https://twitter.com/libretro/status/1433511745641922572 A very generous contributor submitted a fully working implementation of AMD FSR as an slang shader for use in RetroArch! This shader should be fully compatible with the following video drivers in RetroArch: * Metal * OpenGL Core (or at least 4.0 with regular OpenGL driver) * Vulkan * Direct3D 11 (if your card supports Direct3D 11 Feature Level 11.0 or higher) * Direct3D 12 We have had to update our Direct3D 11 driver to allow for the use of Shader Model 5.0 when your GPU supports it, since this shader requires SM 5.0 features and wouldn't work on D3D11 without it. The contributor mentions in his pull request that implementing AMD FSR as a pixel shader seemed to work out just fine despite AMD insisting it is supposed to be implemented as a compute shader. On top of this straight port of FSR, he also took the time to remake the SMAA shader. It is now supposed to be less of a port and just uses the original library unmodified, while adding a few features and higher quality search textures. The contributor wasn't too happywith the quality of this AA and wanted to check if it could be improved, mainly because FSR requires good looking AA (Anti-Aliasing) otherwise it wouldn't make much sense. In the end, quality gains were marginal, pretty much imperceptible. Despite that, there is also an AMD FSR+SMAA preset that you can use. You can see some comparison images down below - to the far left is the image without any shaders, in the middle is AMD FSR, and to the right is AMD FSR + SMAA applied. Ys Seven undub with the PCSX2 core in RetroArch. The image is zoomed in here by 2x. Left: no shaders, middle: AMD FSR shader, right: AMD FSR + SMAA. 1st image: Gradius V with the PSCX2 core in RetroArch, zoomed in to showcase how FSR can combat aliasing. Left: no shaders, middle: AMD FSR, right: AMD FSR + SMAA. Note how the jaggies become less pronounced by applying FSR, and how they become even less with SMAA added to the mix. 2nd image: Gradius V with the PCSX2 core in RetroArch, zoomed in. Top: no shaders, middle: AMD FSR, right: AMD FSR + SMAA. 3rd image: Panzer Dragoon running on Kronos with AMD FSR shader (click on the image to see it without shader applied). [h2]Add enhanced search functionality to the 'Cheats' menu[/h2] 1.9.9 adds enhanced search functionality to the Quick Menu > Cheats menu, similar to that in the core downloader and core manager menus: In addition, the search feature may be used to filter cheats that are currently on or off: this is done by searching for the 'key' string .on or .off * The key string is case insensitive * The actual on/off text is localised - it matches whatever is currently shown as the cheat value (i.e. if the user language is set to French, the on key is .Activ * The leading period was chosen because (a) it should be available on most keyboard layouts, (b) it is available on the first 'page' of RetroArch's OSK and (c) it is easier to type than enclosing the string with brackets, as it is displayed in the cheat value text [h2]Faster sinc resampler and audio conversion for ARM NEON platforms[/h2] Previously, the audio sinc resampler and the audio conversion functions only had optimized SIMD codepaths written in ASM for ARM NEON. There are more and more platforms/toolchains now that prohibit or make it difficult to use assembly routines, or strongly recommend you resort to SIMD intrinsics instead. So we have done exactly that now. All the audio conversion routines (float to signed 16bit integer, signed 16bit integer to float) and the sinc audio resampler now have ARM NEON intrinsic optimized codepaths available instead of just defaulting to C codepaths. This should contribute to performance on platforms like the Mac M1, Android devices, the PS Vita, iPhone devices, and ARM Linux hardware in general (both AArch64/ARMv7). We have still left in these legacy ASM codepaths behind an ifdef in case someone still has a use for it, but from now on we will try to make sure to offer both intrinsic and ASM codepaths whenever possible, or intrinsic only if both can't be provided. Important fixes Fix cheat when using second instance runahead Before, using cheats when second instance runahead was enabled caused undefined behaviour because the cheats are only applied to the primary core (and not the secondary one). 1.9.9 fixes the issue. It also ensures that cheats are correctly reapplied when second instance runahead is toggled on while content is running. Fix menu sounds (audio mixing) when using the 'sinc' resampler with quality lower than 'normal' Before, if the sinc resampler was used with a quality of lower or lowest, then enabling any 'menu sounds' (including cheevos notifications) would completely break in-game audio. 1.9.9 fixes the issue by ensuring that all audio mixer resamplers use the same quality setting as the main one. In addition, we ensure that the same backend driver is used. 1.9.9 also fixes a memory leak when loading system sounds without a driver reinit (i.e. when toggling menu sounds via the menu) Fixed several crashes that could occur during fullscreen toggle Fullscreen toggle should now be more robust in cores like PCSX2, Flycast and other 3D-based emulator cores. Add option to (force-)write current core options to disk RetroArch saves core options automatically when closing content - but if a badly behaved core causes a crash on close content, then the current core option settings will be lost. 1.9.9 adds a new Flush Options to Disk entry to the Quick Menu > Options > Manage Core Options menu. When selected, this will force the current core options to be written immediately to the active options file. Since 99% of users will not need this functionality (it was requested for users testing the PCSX2 core) the entry is hidden by default, with visibility controlled via a new Settings > User Interface > Menu Item Visibility > Quick Menu > Show 'Flush Options to Disk' option. This PR also fixes a rather nasty bug related to saving core options: At present, if a user has Use Global Core Options File enabled, and they create then delete a per-game or per-content directory options file via the Manage Core Options interface, when the current options are re-saved to the global file then any settings not related to the current core will be removed (!). This has been fixed by ensuring that all locally stored config file data is properly updated whenever per-game or per-content directory options files are deleted. Highlight currently selected value in Shader Parameter drop-down lists Before, when opening a shader parameter drop-down list via Quick Menu > Shaders > Shader Parameters, the selection cursor would always 'reset' itself to the top of said list. 1.9.9 ensures that the current parameter value will be auto-selected and marked. Note that we may replace these shader parameter drop-down lists with keyboard input at some point, but we might as well fix this selection bug in the meantime (since it is so easy to do!). Allow 'Vertical Refresh Rate' to be entered manually via keyboard/onscreen keyboard Making significant changes to Settings > Video > Output > Vertical Refresh Rate (e.g. 60 Hz -> 50 Hz) is quite tedious, since holding left/right only modifies the value in 0.001 Hz steps. 1.9.9 adds the ability to set this parameter 'manually'. When Vertical Refresh Rate is selected, a new value can be entered via the OSK or physical keyboard. For current settings where very long dropdown lists are spawned, we might consider switching over to this style of input instead. Linux - udev - Look for "ID_INPUT_KEY", not "ID_INPUT_KEYBOARD" Very important contribution by icculus (of SDL fame) - This fixes programs using /dev/uinput to create a virtual keyboard failing to be detected on startup. Usual symptom is some sort of GPIO-based controller on a Raspberry Pi that looks like a keyboard to the OS and can control EmulationStation, but fails to work in-game unless you restart the controller's program while the game is running (in which case udev_input.c's hotplug code, which was using the correct string, would pick it up). Core info cache files are now portable Core info cache files should now be portable. The core info cache stores absolute core paths, which breaks portability (i.e. if the cache is enabled and the core directory is moved, cores can no longer be loaded). In truth, it is a mistake to cache the core path in the first place, since this is already retrieved from the filesystem regardless of whether the cache is enabled. 1.9.9 therefore removes core paths from the info cache, so the correct (dynamically determined) path is always used. As a result, iOS now has core info cache files re-enabled again, which should lead to an increase in overall core info performance. Changelog 1.9.9
|
A full listing can be found here.
We have been told these cores all run well on the hardware. All of these low powered handheld devices help us tremendously in optimizing our cores for the low end spectrum of hardware devices. gpSP, PCSX ReARMed and Picodrive are already starting to reap the benefits of it. Core option categories We are going to be making a persistent effort now to enhance RetroArch's UX and lower the acessibility curve. To that end, we now have also implemented core option categories support. Up to this point, every core option in a core (Quick Menu -> Options) has all been shown in a a flat alphabetical list. Users can quickly get confused if they have to scroll down a massive list of options. So, 1.9.8 finally adds core option categories. Options assigned to a category will be displayed in a submenu of the main core options menu on supported frontends. For example - here we assign Gambatte's mulitplayer options to a Game Boy Link category: If you do not like this new behavior, there are always options to turn it off. Go to Settings > Core > Core Option Categories setting (enabled by default). When disabled, core option categories are ignored, and core options will effectively be displayed using the old v1 format. [h2]Cores that already support core option categories[/h2] Core option categories have to be specifically added per core. Some of the cores that already support core option categories are as follows:
Have you ever noticed RetroArch starting a game in windowed mode and then blowing up the window to ridiculous sizes that exceeds the boundaries of your desktop? Well, we now have a solution for that! At present, when RetroArch is in windowed mode with Remember Window Position and size disabled, the window size will be equal to the core provided base_width/base_height multiplied by the Windowed Scale. This is potentially 'catastrophic': if a core has a very large base_width/base_height (e.g. PPSSPP with a x7 internal scale factor) and Windowed Scale is set to the default x3, then the window size can be enormous - potentially exceeding the capacity of the host GPU and causing RetroArch to crash. 1.9.8 adds two new options: The PR also cleans up the Settings > Video > Windowed Mode menu, auto-hiding options where required, and re-initing drivers when toggling Remember Window Position and size. Also, since the 'remember' part of Remember Window Position and size is only enabled for Windows, an alternate Use Custom Window Size is provided on other platforms. Auto-updating core option menu visibility updates without toggling Quick Menu Cores are able to show or hide their options via the RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY callback on supported fontends. A significant shortcoming here is that if a change to one core option (via the frontend) affects the visibility of another option, the frontend cannot update the menu state until the core has run for at least one frame. So with the core options menu open, visibility updates cannot happen in real-time - instead, the user must toggle the quick menu off then on before the menu will change. This is ugly and confusing. 1.9.8 adds a new RETRO_ENVIRONMENT_SET_CORE_OPTIONS_UPDATE_DISPLAY_CALLBACK environment callback which allows the core to register a function that enables the frontend to (a) force a core-side option visibility update and (b) allows the frontend to check whether option visibility has changed. This means all show/hide operations can now generate real-time menu updates. [h2]Windows[/h2] Plenty of important fixes for Windows users. If you experienced lockups in the past when disconnecting an audio device while using the WASAPI audio driver, well, rejoice, this will no longer happen. Simultaneous shift sticky fixes were made to the DirectInput input driver. Dinput would not send WM_KEYUP for both Shifts if they were pressed together and released, resulting in sticky Shifts = Pinball games ruined in DOSBox. The following fix was made to the Windows RawInput driver - the Left Alt key could get stuck when Alt-Tabbing. No more. The keyboard can now also be mapped to analog input axes, meaning you can bind the left and right analog stick on the RetroPad to your keyboard keys. [h2]PlayStation2 version[/h2] 1.9.8 solves the flickering issues that appear in the cores that use the FRAME_SKIP as Snes9x2002 does. Also, 1.9.8 basically mounts HDD partition if RetroArch actually started from the HDD unit. In this way, we skip the mount partition if the user just wants to use USB. [h2]macOS/OSX version[/h2] Plenty of important fixes for macOS users this time! There were several serious memory leaks with the Metal video driver. These have now been fixed. Serious bugs related to the input autodetection subsystem have finally been fixed. Now when you connect a gamepad, it will no longer try to attach the same pad to two controller ports simultaneously. This has been a longstanding bug that we're glad has finally been consigned to the dustbin of history thanks to the help of a generous contributor who did quite some work to delve deep into this issue. We also made sure everything still works across a wide variety of macOS machines (from a PowerPC Mac running OSX 10.5 to an Intel and ARM Mac running more recent macOS versions). [h2]WiiU version[/h2] Lots of improvements have been made once again to the WiiU port. All the libretro RPX cores are now compressed. Not only do they load faster (leading to faster startup times), but it means you have a lot more space left on your SD card. L3 and R3 buttons have been fixed on several gamepads, they were previously completely nonfunctional. Furthermore, promising work is underway for a PlayStation1 emulator core running on RetroArch WiiU. More on that later once more news is forthcoming. [h2]UWP/Xbox versions[/h2] We have been fixing several bugs with the UWP port, many of these affecting in particular RetroArch users on Xbox One/Series. Microsoft recently released a new Dashboard update that caused some breakage for existing RetroArch installs. We have managed to fix the startup problem that occurred on the latest dashboard. We also fixed the onscreen keyboard display which was previously completely glitched out. Note that on the latest Dashboard, some compatibility problems still persist. For instance, it has been reported that several games on PCSX2 no longer work as of the recent update. This will require investigation and it is our guess if anything can be done about this, we will have to determine this after more investigation has occurred. For now, you might experience scaling issues with some of the ANGLE/GL powered cores like Mupen64Plus Next and Flycast because of the Dashboard update. We hope that we will be able to transition from ANGLE to something like GLon12 soon. What this would buy us is full desktop OpenGL support instead of just OpenGLES. This would mean a more complete superset of OpenGL (up to 3.3 from what we can hear), more cores that would work out of the box instead of custom cores made to work with ANGLE, etc. We will see if we succeed in this, but that's something for a later version. In the meantime, we have also enabled Translation features. Note that we haven't been able to implement the Text-to-Speech accessibility feature yet, but all other features should be there now for experimentation. We have also re-enabled the "Explore" tab on the Main Menu. We haven't found any issues with this anymore after the recent bugfixes/improvements we made to the underlying database code, but let us know if there are any more issues on that front. Several cores that used the libretro VFS subsystem and/or CHD loading previously no longer worked. Examples include the Beetle cores. This has been fixed. [h2]Screen resolution settings improvements[/h2] Currently the "Screen Resolution" list wrongly alters also video_refresh_rate to the rounded value, as in 59.940 Hz becomes 59.000. This change makes sure all the 59.94 multiples (59/119 etc) result in the proper float value instead of integer. Also, previously notifications when setting the refresh rate would repeat itself twice. This has been fixed. Changelog 1.9.8 What's next It has been often requested during our project's history, but yes, we finally want to do something on the UI/UX front. We have been considering introducing an 'Easy Mode' that should aim at making things much less of a maze to navigate for non savvy users. Stay tuned for more info! |
You can download the latest release from Lakka download page. If you want to follow the development of Lakka more closely, you can download latest Lakka nightly builds. If you want to show your support for further development of the Libretro projects and ecosystem, you can learn more here. Happy retro-gaming! read here as well. |
Given the limited specifications of the hardware, a modest section of cores are available. The following generally run at full speed:
...while these offer varying degrees of playable content with frameskipping enabled via core options:
For the best results, we recommend applying a per-application CPU overclock for the RetroArch application: highlight RetroArch on the device's home screen, press the select button > Edit RetroArch, and set Clock Frequency to 420 MHz (depending on the chip, a lower value may be required, or even higher may work correctly). [h2]PlayStation2 - playable Game Boy Advance emulator added[/h2] https://twitter.com/fjtrujy/status/1413833994983071744 https://twitter.com/fjtrujy/status/1417898776510013440 gpSP should now be available for RetroArch PS2 starting as of version 1.9.7. This is a Game Boy Advance emulator core. Davidgf has been working hard on this core for the past few months and the results speak for themselves - this should be the first time that a PlayStation2 is able to run Game Boy Advance games at fullspeed. [h2]WiiU improvements[/h2] In addition to the improvements listed for WiiU previously, there's also the following to mention: Fix inputs breaking when connecting/disconnecting remotes When a KPAD controller (Wiimote, Pro Controller, etc.) gets disconnected or has its accessory changed, the Wii U's API gives nonsensical results for a little while, even while claiming these results have no errors whatsoever. This was wreaking havoc in the input system and ended up leaving the controllers useless. 1.9.7 attempts to work around the console's API by filtering out some of the unknown results. Download progress indicator fixed for large transfers An important bug was fixed that was causing issues while downloading the Assets from within the program. When downloading a large file on a 32-bit platform, the progress indicator will get pinned to 100% after downloading roughly 40MiB. This causes a lot of stress for assets.zip, where the 40MiB mark is about halfway. This bug has been fixed. Note that this improvement is not only beneficial for WiiU but should benefit other 32-bit platforms in general. [h2]Linux / xdg-screensaver improvements[/h2] 1.9.7 provides a workaround for the long-standing issue of "protocol error" messages being written to stderr whenever the "Suspend Screensaver" option is enabled and the X11 context driver is used. These messages don't actually come from RetroArch - they're xdg-screensaver's, which is a script for cross-DE screensaver suspending that RetroArch calls to do its job. It turns out, the script has a problem with title-less windows. See the related bsnes issue for analysis - kudos to Screwtapello for figuring this out. The proposed solution is to check if there's already a title, and if there isn't, to set it to a single "space" character, which is surprisingly enough for xdg-screensaver to work. The space character is picked so that there's no visible difference between the bogus title and no title at all. The alternative is to make sure that RA's window has a title at all times - too much of a hassle for something this trivial. Changelog 1.9.7
|
[previewyoutube=eY3diF6G-M8;full][/previewyoutube] |
Add support for mapping multiple controllers to a single input device 1.9.6 adds support for the remapping of individual controllers to arbitrary core input devices. This allows multiple controllers to be assigned to one input. To configure this, a new Mapped Port option has been added to the Quick Menu > Controls > Port N Controls menu: Here, the Port 2 Controls refers to the physical controller; Mapped Port refers to the core port that will receive input from this controller. For example, to map physical controllers 1 and 2 to the player 1 input of a core, set the following:
There are various use cases for this remapping:
Note that these configuration settings are independent from the main RetroArch config file. To make any changes persistent, a Core, Content Directory or Game remap file must be saved. 1.9.6 also cleans up a long standing issue when configuring remaps: before, changes to Device Type and Analog to Digital Type via the Quick Menu while a core is running will bleed through to the main config file. This is harmful and unintuitive behaviour. With 1.9.6, the global settings for these values are cached when initialising a core, and restored when the core is unloaded. (This essentially became a necessity for using the port remapping functionality, since it is rather easy to create complex configs that should in no way touch the main config file) Analog to Digital Type usability improvements RetroArch is able to map the left or right analog stick of a gamepad to D-Pad input via the per-port Analog to Digital Type menu setting. Unfortunately, this is a trap for new users: mapping a stick in this fashion disables its analog input, which creates confusion when using cores that have native analog support. Many users enable Analog to Digital Type by default, then complain on reddit/discord that analog controls do not work for PSX/N64/etc. games. 1.9.6 modifies the Analog to Digital Type functionality such that it can be disabled automatically for cores that have native analog support. The setting now has the following values:
In addition, a sublabel has been added to the Analog to Digital Type menu entries, which should help to explain what they actually do. Finally, this PR required some modification of input overlay-related code, during which the following bugs were fixed:
AI Service (Windows) Security Improvements Several security-related improvements have been made to the AI Service functionality for Windows in an attempt to address concerns that this could be abused. Speech input is no longer sent as a commandline argument to PowerShell, and both the language and speed parameters are properly sanitized and only allow for a few hardcoded safe values to be passed now. This should mitigate most of the attacks that could be thought of with regards to injection. Windows Installer improvements Several safeguards have been put in place to prevent people from making a severe mistake during the installation process on Windows. With the installer program, it is no longer possible to install RetroArch to a directory that has existing files or subdirectories. Instead, it has to be written in a new directory. We have to insist on this because the uninstallation process involves wiping RetroArchs entire directory and everything in it. In the past, people could have made the mistake of pointing it to C:\Program Files without putting it in a separate subdir, with disastrous results on deinstallation. While the installer program did warn about this and asked you with a dialog prompt if you were sure, nevertheless we cannot take this risk to begin with. This has been resolved by simply deallowing this to happen by forcing you to install RetroArch to a new empty dir. Changelog [h2]1.9.6[/h2]
|
|
In light of today's events and out of respect for what has transpired, we've decided to delay the release of RetroArch 1.9.6 that was scheduled today. We thank you for your understanding. |
Lakka 3.2 has just been released! To learn more, check out this article here - |
Changelog [h3]1.9.5[/h3]
|
Lakka 3.1 has just been released! To learn more, check out this article on our sister site Lakka.tv here. |
1.9.4 fixes the issue. Now if compressed content is loaded into a core that sets need_fullpath = false, the file will be loaded directly into memory no disk writes will occur. Additional notes: Previously, it was in fact impossible to load content inside zip files directly into RAM. This has now also been resolved. The end result? Less read/write on disk storage, which will make a big difference in terms of game content loading time on systems with slow file I/O (typically game consoles). [h2]Option to select between touched elements and physical controller inputs when showing inputs on overlays[/h2] The Show Inputs on Overlay option was previously broken when using remaps: the mapped button is highlighted rather than the pressed button, which is confusing for users and at odds with every other application (in existence) that has on-screen touch controls. 1.9.4 remedies the situation by changing the Show Inputs on Overlay option from a bool to an enum, with the following settings:
When Show Inputs on Overlay is set to Physical (Controller), the index of the physical device to be monitored can be set via a new Show Inputs From Port option (this option did in fact exist already, but was hidden/disabled by a long standing bug) [h3]Changelog[/h3] 1.9.4
|
The Steam version may differ from the Normal version. The following changes are written for general use. The RetroArch Playtest version will be updated at a later time today.
[h2](Static Platforms) Add option to not restart RetroArch when launching content with the currently loaded core[/h2] Before, whenever content was loaded using a static build of RetroArch (i.e. most of the console ports), a new process is forked. This basically means that RetroArch in its entirety is reloaded, which can be quite slow. This kind of reload is required when changing cores (since each is a stand-alone application) but if the core we want to launch is already loaded, then its wasted effort. 1.9.3 adds a new Always Reload Core on Run Content option under Settings > Cores on statically built platforms. When enabled (by default on consoles), the current existing behaviour is maintained. When disabled, launching content with a core that is already loaded will skip the process fork/reinitialisation and just load the content directly. On an o3DS testing setup, this reduces content load times by 60%-70%, depending upon the core. Important caveats:
Changelog 1.9.3
|
Watch this great presentation by Microsoft Azure covering (among other things) RetroArch's AI Translation capabilities |
Improvements to the Libretro port
Read full update notes here. Available cores updated to latest version
|
The Steam version may differ from the Normal version. The following changes are written for general use.
For example: [previewyoutube=kecQEjWgHVw;full][/previewyoutube] In order to support file browser navigation, the search filter implementation had to be rewritten. Instead of having a single menu-driver-level search filter, independent search terms are now stored for each menu list. This is a far more robust solution, and means that filters can be enabled for other menus far more easily (and without any hacks). To demonstrate this, 1.9.2 also enables search filters when selecting shader presets/passes via the file browser (I will try to add this in more places as time permits): [previewyoutube=WYmtcUfCUMU;full][/previewyoutube] Finally, 1.9.2 makes the following changes to existing search functionality:
In addition to all this, 1.9.2 also enables search filter support when using the file browser to select cheats and overlays. [h2]Optional menu screensaver animations[/h2] [previewyoutube=uua1M0d2b18;full][/previewyoutube] At present, when using XMB/GLUI/Ozone, enabling the menu screensaver will cause the screen to be blanked when the screensaver timeout has elapsed. 1.9.2 adds three optional animations that may be displayed instead these can be selected via the new Settings > User Interface > Menu Screensaver Animation entry; animation speed may be adjusted via Settings > User Interface > Menu Screensaver Animation Speed. The options are as follows: OFF: Screen will be blanked Snow: [previewyoutube=stqh6Cqp5gc;full][/previewyoutube] Starfield: [previewyoutube=g695Tgxvr3g;full][/previewyoutube] Vortex: [previewyoutube=upd3I8uzGfU;full][/previewyoutube] These effects are rendered using font glyphs; the performance overheads of all the animations are therefore low. This should also give you some indication as to how we are planning to reduce file I/O overhead across the board when it comes to asset loading, but that is something that we will be unveiling for a future release! When using GLUI/Ozone, the screensaver will be tinted (somewhat) according to the current menu colour theme (XMB uses a fixed screensaver colour, since it does not have a proper colour theme implementation). [h2]OpenDingux beta: Add 50Hz support[/h2] All devices running OpenDingux Beta have native support for both 60 Hz and 50 Hz display modes. 1.9.2 enables 50 Hz functionality in RetroArch. The refresh rate can be toggled between 60 Hz and 50 Hz via the Settings > Video > Output > Vertical Refresh Rate menu entry; the value can be saved on a per-core/content directory/game basis via regular config overrides. This makes OpenDingux devices (running the Beta OS) pretty much the only affordable/easily available handhelds that can run both NTSC and PAL content smoothly. The VICE core in particular benefits enormously from this addition. [h2]OpenDingux beta: Fix IPU scaling when running GB/GBC/GG/NGP-resolution content[/h2] Further testing of the OpenDingux Beta port has revealed several more resolutions which are mishandled by the IPU hardware scaler. 1.9.2 updates the resolution blacklists accordingly, fixing scaling for the following content:
[h3]Changelog[/h3] 1.9.2
|
Reah here as well: https://www.libretro.com/index.php/libretro-cores-updates-pcsx2-alpha-release-for-windows-and-more/
You need a working BIOS inside /pcsx2/bios. PCSX2, unlike Play!, will not work without a real BIOS.
Update policy for this core Hard-forked core for now. Govanify is going through many (necessary) refactors in PCSX2 upstream to make the code more portable, and he has also expressed his interest in an upstreamable libretro core somewhere down the line when the final refactoring of the GUI is complete. So either of two things can happen when that happens, if this is more closely aligned to upstream core is better in every way including performance, this will be replaced. If not, we will likely have two cores, one being the upstream-friendly core and this being the hard-forked one. As of this moment a lot of work remains to be done on PCSX2 to sort out all the internals that are chockful of nonportable code. Therefore, for now, the experimental PCSX2 core kinda is doing its own thing. PCSX2 still has a lot of inherently nonportable code in it, from QtWidgets to libglib. Its for that reason that we dont have a Linux core yet on our buildbot. We hope that we will be able to figure out a proper portable core for Linux users soon. Expect a lot of Quality of Life enhancements to this core soon. We wanted to share this with you now rather than sit on it for even longer, now that its on the buildbot we can at least push regular updates to it, people can report issues and developers can contribute. Everyone wins. Play! (experimental PlayStation2 emulator) is back on the buildbot! The Play! libretro core is back on our buildbot! It took some time for this to be readded to our modern new buildbot but here it is! Available right now for: Android (AArch64/ARMv7/x86), macOS (Intel), Linux (32bit/64bit), and Windows (32bit/64bit). Update policy for this core Upstream. Updates are pulled straight from the upstream repository. DuckStation/SwanStation core updated The DuckStation/SwanStation core has been updated to a build from a week ago. Update policy for this core This will remain a shallow fork and attempts are being made to make the surface area for patches small so that we can easily pull in updates. Some new contributors have jumped onboard and they want to ensure this core remains updated. Mainline MAME available for iOS11 and up/tvOS ! The mainline MAME core is now available for iOS and tvOS users! It is also available for Mac Intel x64 users, and we hope that we can make it available for ARM Mac users soon as well. Also important to note we will be updating to version 0.330 soon. Update policy for this core This is pretty much a shallow fork. It just attempts to pull in the latest changes from upstream without making many changes. gpSP (Game Boy Advance emulator) Many changes have been made under the hood to significantly increase performance of gpSP. One of the big changes that led to at least a 5-6% performance improvement was the removal of libco (a library used for cooperative threading). 3DS users especially should be in for a treat with gpSP, but realistically everyone benefits across the board, whether youre on an ARM or x86 system. We can quite comfortably state you will be hard pressed to find a better and more well performing version of this emulator anywhere else right now.
Immediate roadmap for gpSP: PS2 support (coming soon (TM)), rumble and tilt sensor support, AARch64 dynarec (mid-term goal) One caveat right now is that these changes have unfortunately caused it to no longer work on PS Vita. However, the plan is to fix this soon, and for this to be only a temporary thing. Update policy for this core Hard fork, self-maintained. Picodrive (Sega Mega Drive/Master System/Sega CD/32X emulator) This has received many speed improvements and enhancements courtesy of irixx, 32X support has seen plenty of improvements, and the results speak for themselves. Works wonderfully on OpenDingux-based devices and PS Vita, some of the lower end systems out there. A separate blog article might be written about all the changes soon. Update policy for this core Hard fork, self-maintained FCEUmm (Nintendo Entertainment System emulator) Some important new updates from New Rising Sun that adds more mapper support (PR notes are his): Add features to mapper 332/BMC-WS:
I wanted to add a couple of multicart mappers that use the J.Y. Company ASIC and fix a few bugs while doing so. I ended up rewriting the whole thing by porting the code from NintendulatorNRS. This improves the modularity of the code by wrapping the PRG and CHR sync functions with mapper-specific ANDs and ORs, which is necessary for multicart use, and hopefully improves the readability (though I understand thats a matter of taste). Previous save states had to be invalidated in any case since the previous code only saved four of the eight CHR LSB registers. Source organization changes: Combine duplicate code from 90.c, bmc13in1jy110.c and sc-127.c into one new file jyasic.c. Features/corrections: Window text not shown at the beginning of Tiny Toon Adventures 6 (Baabs is dreaming about becoming an actress). Bad cursor sprite on Mighty Morphin Power Rangers IIIs title screen. Some mapper 295 multicarts not working, such as SC-126. Added Adder to ALU (not used by any game). Add IRQ mode 3 (writes to CPU address space). Save all eight CHR LSB registers (previous code only saved the first four). Ignore writes to x800-xFFF except 5800 and C800, needed for Final Fight 3 on SC-128. Allow DIP setting to be read from all possible locations: 5000, 5400, 5C00, necessary for a few multicarts. Adds the following mappers: 282, 358, 386, 387, 388, 397, 421. Remaining issues: IRQ timing is not as perfect as the NintendulatorNRS code from which it was taken, which had been verified against real hardware. This is due to there not being a true PPU Read Handler in the mapper interface (as far as I can see), and PA12 timing in the core PPU emulation being not accurate enough to replace the clock IRQ eight times per horizontal blanking solution that I kept from the previous code. There remains one J.Y. ASIC-using mapper: 394, which mounts both the J.Y. ASIC and an MMC3 clone and uses extra register bits to switch between the two. That is a bit difficult to code and will be for another day. Successfully tested with: Mapper 35: Warioland II (JY039) Mapper 281: ( JY-052) 1996 Super HiK 4-in-1 ( JY-052) 1997 Super HiK 4-in-1 ( JY-053) 1996 Super HiK 4-in-1 ( JY-054) 1996 Super HiK 4-in-1 ( JY-054) 1997 Super HiK 4-in-1 4 ( JY-055) 1996 Super HiK 4-in-1 . ( JY-066) 1996 Power Rangers HiK 4-in-1 ( JY-066) 1997 Power Rangers HiK 4-in-1 ( JY-068) 1996 Super HiK 3-in-1 . ( JY-080) 1996 Super HiK 3-in-1 ( JY-088) 1996 Super HiK 5-in-1 Mapper 282: ( JY-062) 1996 Super Mortal Kombat Series 18-in-1 ( JY-064) 1996 18-in-1 Super Aladdin Series Card ( JY-069) 1996 Super HiK 4-in-1 . ( JY-070) 1996 Super HiK 3-in-1 . ( JY-071) 1996 Super HiK 3-in-1 .2. ( JY-079) 1996 Super HiK 3-in-1 .4. ( JY-084) 1996 Photo Gun 9-in-1 ( JY-098) 1997 Super HiK 6-in-1 ( JY-101) 1997 Super HiK 18-in-1 ( JY-105) 1997 Super HiK 21-in-1 ( JY-114) 1998 Super HiK 5-in-1 ( SC-128) Super 25-in-1 Final Fight ( SC-130) Super Photo-Gun 13-in-1 Mapper 295: ( JY-010) Super Ball Series 18-in-1 ( JY-014B) 1996 Soccer 7-in-1 (rev0) ( JY-014B) 1996 Soccer 7-in-1 (rev1) ( JY-050) 1997 Super HiK 8-in-1 (rev1) ( JY-095) 1997 Super HiK 4-in-1 ( JY-096) 1997 Super HiK 7-in-1 ( JY-097) 1997 Super HiK 8-in-1 ( JY-099) 1997 Super HiK 4-in-1 ( JY-100) 1997 Super HiK 5-in-1 ( JY-109) 1997 Super 9-in-1 ( JY-110) 1997 Super 13-in-1 ( SC-126) HiK Block 14-in-1 Mappers 90/209/211: ( CK-124) Super HiK 8-in-1 ( JY-118) 1998 Super 3-in-1 ( JY-120A) 1998 Super 45-in-1 ( JY-122) 115 Aladdin Aladdin III, Popeye II Travels in Persia Contra Spirits (1995) Donkey Kong Country 4 Final Fight 3 Mickey Mania 7 Mighty Morphin Power Rangers III Mighty Morphin Power Rangers IV The Movie Mike Tysons Punch-Out!! (JY021) MK3 Special 56 Peoples Mortal Kombat 2-in-1 Mortal Kombat II Special Super Aladdin The Return of Jafar Super Mario & Sonik 2 (rev1) Super Mario World Super Mortal Kombat 2-in-1 Tiny Toon Adventures 6 Rabbit Samurai Spirits 2 Tekken 2 mappers 358/386/387/388/397/421: ( JY-016) 1997 Super Game 7-in-1 ( JY-056) 1996 Super HiK 4-in-1 (rev0) ( JY-056) 1996 Super HiK 5-in-1 56 (rev1) ( JY-082) 1996 Soccer 6-in-1 ( JY-087) 1996 Super HiK 4-in-1 ( JY-089) 1996 Super HiK 4-in-1 ( JY-090) 1996 Super HiK 5-in-1 ( JY-093) 1996 Super HiK 4-in-1 ( JY-094) 1996 Super HiK 4-in-1 ( JY-113) 1998 Super HiK 5-in-1 ( JY-117) 1998 Super HiK 6-in-1 ( SC-129) 98 15-in-1 bSNES HD Beta/bsnes mainline available for iOS/tvOS/ARM64 Mac Widescreen SNES emulation on your iDevice and ARM Mac is now available! Update policy for this core Upstream, gets built straight from DerKouns upstream repository. Genesis Plus GX Wide available for iOS/tvoS/ARM64 Mac Another welcome addition to the Apple fold the widescreen-enhanced version of Genesis Plus GX! For more on that, read this article here. Update policy for this core Hard fork, as it makes many sweeping changes to Genesis Plus GX to achieve widescreen support, which would make resyncing with upstream very hard to do. Other cores which have received updates Here is a list of other cores that have received updates, but for which we cannot post any changelogs due to lack of time. We might go into some more of the changes here later on. Beetle PSX FB Neo MAME 2003 Plus VICE P-UAE (Amiga emulator |
Written by jdgleaver
All of these cores have excellent performance on OpenDingux devices (with the mild exception of TIC-80, which can be a demanding system on many platforms yet a number of popular carts run full speed). It should also be noted that when building cores for OpenDingux, we dont just hit compile and call it a day. This is a curated port, and care is taken to clean up code and add features wherever possible and these additions improve the user experience on *all* platforms. For example: O2EM
Potator
ProSystem
Stella 2014
TIC-80
And one more gift for OpenDingux users: the gpSP core now has a fully functional dynarec, courtesy of davidgf. This means full speed GBA emulation, with plenty of headroom for video filters, colour correction and inter-frame blending! (gpSP has also seen many other fundamental improvements, too many to list here further updates will be covered in a separate post) You can find blog post here. |
The Steam version may differ from the Normal version. The following changes are written for general use. Since PCSX2 Core is WIP, it does not exist in Buildbot for now. The Steam DLC version is not on the agenda now. You can use Play! Core from Buildbot or build and use PCSX2 from source code. Those who have problems build from the source can write to me from Steam(id/Gadsby_/) or Discord(gadsby#6752), I can only share the x64 version. Because its core is WIP, it may not be ready for end user use.
Heres some additional new platform releases since this new stable: For the first time ever, we have rolling nightlies and stables for iOS (ARM64/Aarch64), tvOS, and macOS. For the first time ever, we have an Apple Silicon/Mac M1-compatible build of RetroArch. Download the Universal Metal build if you intend to use RetroArch on one of these new Macs. For the first time ever, we also have a new backwards compatible version of RetroArch for iOS 9 users. iOS users can choose between an iOS 9 version (which is 32bit ARM only) and an iOS 11 version (which is 64bit ARM only). We intend to follow this up in the near future with an iOS 6 version. We here at RetroArch believe in the promise of backwards compatibility and we always intend RetroArch to be an omnipresent platform that can be run on any device you want. We love the ability of users being able to turn their obsolete iDevices into capable little RetroArch handheld machines. For the first time, macOS stables and nightlies are codesigned and notarized. So you no longer need to resort to workarounds in order to install them on your Mac. We have nightly and stable releases for OpenDingux now, including a special release for a beta firmware. This version should have significantly better performance. Supported devices for this platform include (but are not limited to): GCW Zero, RG350M, RG280V, and possibly more. There are now nightly and stable releases for Linux available for both 64bit and 32bit x86 PCs in the form of AppImage bundles. These bundles come with a portable home directory with assets included, or you can use them with your existing settings and assets from the typical ~/.config/retroarch location. There are two available packages: one that includes the Qt desktop menu and one without, in case your system-installed Qt libs conflict with the ones it comes bundled with. The AppImage builds should work with most distros that were released in the last three years or so. [h2]Release notes[/h2] There is no PCSX ReARMed core available for the Switch port as of yet. This will be added later. The Direct3D 11 video driver now defaults to the flip model. There will be a setting added later that will make it possible to switch between flip model and blit model. Flip model is supposed to be more performant and allow for better performance in windowed/borderless fullscreen modes. As mentioned earlier, Windows installers/executablers are currently not codesigned, so expect SmartScreen to warn you about them. We hope to be able to fix this as soon as our Extended Validation codesigning certificate is fully operational. There is currently no Windows 95/98 version of RetroArch available, or any of the MSVC2003 cores in fact. Expect these to be added back later. [h2]Some highlights[/h2] Overlay improvements: Full position/scaling configuration, automatic scaling, automatic hiding when a controller is connected A new high quality default gamepad overlay: neo-retropad(-clear) File browser improvements: most menu entries now (optionally) remember last selected directory/file (load content, shaders, etc.) Support for saving per-directory core options and deleting core option overrides Improvements to input configuration: new drop-down lists, proper menu ordering of input binds, cosmetic clean-ups (basically all of sonninnoss stuff) Option to automatically enable game focus mode when running/resuming content Many new video filters for platforms without shader support RGUI: CJK and Russian language support [h2]Changelog[/h2] We cant possibly list everything since it has been such a long time since the last stable. Nevertheless, here is the changelog broken down as best as we could. 1.9.1 3DS: Graphics widgets support 3DS: On error, only init gfx on salamander build. This prevents graphical issues if the gfx is already initialized. Which should always be the case if called from a running core 3DS: Update error applet 3DS: Enable online Core Updater 3DS: Guard threading 3DS: Allow sideways screen rotation 3DS: Enable threading and add a threaded audio driver ANDROID: Implementation of fullscreen over notch function (for Android 9.0 and up) ANDROID: Add Play Store module support. ANDROID: Add option to switch all installed cores to Play Store versions AUDIO: Memalign audio buffers to 64 bytes. This is the most common cache line size, helps with performance. Also fixes issues with platforms like PSP that wrongly assume that malloc returns aligned buffers (to 16bytes). This recently broke the PSP builds AUDIO/ALSA: Fix float format detection AUDIO/JACK: Deinterleave in the process callback. This allows us to avoid the extra copy to the deinterleave buffer and lets us use only a single jack ringbuffer AUDIO/JACK: (Audio/JACK) Fix non-blocking write. Previously we would wait on the condition variable even in the non-blocking case. This improves fast-forward performance massively and brings JACK in line with other backends in that regard AUDIO/XAUDIO2: Fix threaded audio bugs with cores like Dinothawr CONFIG: Add support for saving per-directory core options and deleting core option overrides CONFIG: Enable saving of changed parameters when #include directives are used CONFIG/DIRS: Enable configuration of the directories used for Favorites, History, Images, Music and Video playlists CONFIG/REMAPS: Allow loading core remaps without content CONFIG/OVERRIDES: Fix empty override paths when launching without content CHEATS: Maximum search value corrections CHEEVOS: Generic memory mapping using rcheevos CHEEVOS: Ensure badge textures are released before video driver is deinitialized. Should fix crashes with slang shaders. CHEEVOS: Include achievement runtime state in save states CHEEVOS: Prevent hardcore toggle when emu-handled cheats are active CHEEVOS: Add confirmation submenu to achievements hardcore toggle CHEEVOS: Calculate leaderboard widget spacing based on video resolution CHEEVOS: Show unsupported core message when viewing achievement list for unsupported core CHEEVOS: Allow disabling leaderboard notifications and trackers separately CHEEVOS: Add display widget for active leaderboards CHEEVOS/CORE OPTIONS: Core options blacklist. Disables hardcore mode when certain core options are set CLI: Add option for quitting on close content CONTEXT/DRIVER SWITCHING: Allow context switching from gl to glcore CORE OPTIONS: Add option to reset all core options for current core/content CORE OPTIONS: Add per-folder core options CRT/SWITCHRES: Improvements CRT/SWITCHRES: Low resolution switch bug fix This allows resolutions lower that 32224 like 256224 to work CORE DOWNLOADER: Enhanced core downloader search functionality D3D10: Should now be able to use shaders with hardware-accelerated libretro cores D3D11: Should now be able to use shaders with hardware-accelerated libretro cores D3D11: Skip shader/stock blend when we dont have a texture. This happens if the core calls video_cb with the frame set to null on the first frame, and was causing black screens/driver resets. The ffmpeg core seems to do this. D3D11: Fix shaders with scaled framebuffers D3D11: Add flip model support fallback to blit model for OSes where flip model is not supported (windows 7 and earlier). Will add a menu option later allowing the user to switch inbetween the two D3D12: Should now be able to use shaders with hardware-accelerated libretro cores D3D10/11/12: Increase sprite capacity, we need this so that the hardware rendered menu drivers doesnt glitch out DRM: Fix race condition in drm_surface_set_aspect DRM/KMS: add support for custom HDMI timings / modes DATABASE: Fix crash that could happen when selecting cursor DATABASE/EXPLORE: Fix Prevent segfault when accessing Explore menu EMSCRIPTEN: Only report back one screen pointer for rwebinput, fixes lockup when clicking on an overlay FILEIO/PERFORMANCE: Only attempt to call dir_check_defaults once per runtime session FILEIO/PERFORMANCE/3DS: Increase file buffer size and savestate chunk size. This seems to help with saving large savestates FONTS: Improve handling of Arabic and Persian text FONTS/FREETYPE: Use fontconfig to select fonts if available INPUT: Add hold mode for turbo fire Single Button INPUT MAPPING: Refresh bind list on device type change INPUT MAPPING/REMAPPING: Minor bugfix Remap file browsing starts navigation at input_remapping_directory even if the core-subdir (where saved files go) exists Having remaps for many different cores makes finding the active core files cumbersome, especially because remaps are not compatible between different cores (but maybe for cores emulating the same hardware) IOS: Take out Core Downloader from iOS 9/iOS 11 builds IOS: IOSApp doesnt crash anymore when a file is shared to it INPUT: Keyboard device mapper rework INPUT: New input bind order scan/clear fix INPUT: Duplicate key event blocking additions INPUT: Prevent duplicate key events with hotkeys + keyboard device type INPUT: Keyboard LED driver INPUT/AUTOCONFIG: Allow controllers with no/empty names to work. INPUT/GAME FOCUS: Add option to automatically enable game focus mode when running/resuming content INPUT/HOTKEYS: Hotkey for Close Content / Unload Core INPUT/LIBCEC: Map libcec-daemon keys to RETROK INPUT/X11: Enable keyboard input when mouse cursor is not inside the RetroArch window but window still has focus INPUT/X11: Fix mouse input when mouse is grabbed INPUT/UDEV/RUMBLE: Fix rumble. INPUT/WINDOWS/DINPUT: Simultaneous shift sticky fix INPUT/WINDOWS/DINPUT: Prevent Win-key from opening Start Menu INPUT/WINDOWS/DINPUT: Option for disabling Windows hotkeys INPUT/WINDOWS/DINPUT: Mouse grabbing/clipping with Alt-Tab INPUT/WINDOWS/DINPUT: Mouse grab fixes INPUT/WINDOWS/RAWINPUT: Key position fixes INPUT/WINDOWS/RAWINPUT: Mouse grab fixes INPUT/WINDOWS/RAWINPUT: Prevent outside window mouse clicks when grabbed INPUT/WINDOWS/RAWINPUT: Option for disabling Windows hotkeys INPUT MAPPING/REMAPPING: Major bugfix Remap file having a different device type requires manual intervention after loading for the core to register the type properly JSON: New faster json parser/writer library rjson JSON/RJSON: Replace rapidjson parser/writer in discord-rpc with rjson LIBRETRO: Add API extension for cores to query the number of active inputs provided by the frontend LIBRETRO: Ensure RARCH_CTL_CORE_OPTIONS_LIST_GET returns false if no core options are available LIBRETRO: Add API extension for overriding frontend audio latency LIBRETRO: Add API extension for cores to monitor frontend audio buffer occupancy LINUX: Also show /run/media or /run/media/$USER in drives list LINUX: Adjust brightness according to the limit. Seems like some platforms feature non-standard maximums, but the variable is correclty exported for us to use LOCALIZATION: Add Finnish language LOGS/SHADER: Shader log spam reduction LOGS/CONFIG: Config logging cleanup LOGS/SAVESTATE: Config logging cleanup MAC: Apple Silicon/Mac M1 support MAC: Code signing/notarization MAC: Fix a leak with NSTemporaryDirectory() on ARC (Automatic Reference Counting) code MAC: Support bundle assets extraction on macOS MAC: Universal Metal build for both ARM and Intel Macs MAC/UNIVERSAL: Add CoreAudio3 audio driver for Metal Universal build MAC/IOS: Only extract assets once on first install MENU: Add L2 + R2 menu toggle gamepad combo MENU: Menu text improvements; clarifications, consistency, text mistakes, MENU: Tweak menu scroll initial hold delays MENU: Restrict menu acceleration to navigation buttons MENU: Add Menu Driver setting to User Interface MENU: Relocate Menu Scroll settings. MENU: Separate Turbo Fire menu. MENU: Dropdown menu for Custom Aspect Ratio setting. MENU: Reorder Mouse Index next to Device Index MENU: Submenu for Device Index/Mouse Index MENU: Reorganize User Interface menu MENU: Add Remove DSP Plugin menu entry MENU: Hide Auto-Shader Delay menu setting when shaders are unavailable MENU/ANIMATIONS: Fix non-smooth text ticker + reduce line ticker code duplication MENU/ANIMATIONS/OZONE: Add cursor wiggle animation MENU/ANIMATIONS/OZONE: Implement wiggling for main menu when wrap-around is disabled MENU/NOTIFICATIONS: On-Screen Notifications menu clean-ups MENU/NOTIFICATIONS: Add option to show/hide Refresh Rate notification MENU/FILEBROWSER: Start auto-selecting last used path for more file browser menu entries MENU/INPUT: Input port label adjustments MENU/INPUT/XMB: Proper control port icons MENU/INPUT/OZONE: Proper control port icons MENU/QUICK MENU: Add remap clearing ability under Quick Menu controls MENU/QUICK MENU: Cap State Slot drop-down list to a maximum of 1000 (+Auto) entries MENU: Customizable menu scroll hold delay. MENU/DESKTOP: Fix mouse cursor limited by window range on F5 press MENU/DESKTOP: Add simple shader option MENU/DESKTOP/WINDOWS: Remove broken Update RetroArch functionality for Windows. We want this to not only be system agnostic if we bring it back, but also work outside of the Qt desktop interface MENU/OZONE: New Theme Twilight Zone MENU/RGUI: Add 3:2, 5:3 and 3:2/5:3 (centered) aspects MENU/RGUI/TEXT RENDERING: Add Russian language text support MENU/RGUI/TEXT RENDERING: Add support for CJK punctuation glyphs MIDI/WINMM: Recover from MIDI messages not handled by the device MIDI/WINMM: Fix winmm midi driver hanging on content closing NETWORK: Add READ/WRITE_CORE_MEMORY network commands NETWORK: Fix backwards condition in socket blocking behavior NETWORK/NETPLAY: Attempt IPv4 when IPv6 fails OGA/VIDEO: support for OGS OGA: This keeps the tradition DRM driver along with the OGA one. The probe function skips the driver if the screen is non rotated to fall back to the regular DRM driver. OGA: Fix messages from not disappearing OGA: Implement RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER. This is a faster rendering codepath for software rendered libretro cores that some libretro cores use right now. Video drivers in RetroArch have to explicitly implement this for this codepath to work at runtime. OPENDINGUX: Add/Optimise rumble interface OPENDINGUX: Fix frozen video when enabling fast forward OPENDINGUX/SDL: OSD font clean-up OPENDINGUX/SDL: Enable selection of image interpolation method when using sdl_dingux gfx driver OPENDINGUX/SDL: Enable integer scaling when using the sdl_dingux gfx driver OVERLAYS: Add option to scale overlays automatically (with aspect ratio correction) OVERLAYS: Hide Overlay When Gamepad is Connected. Overlays will be hidden automatically when a gamepad is connected in port 1, and shown again when the gamepad is disconnected. OVERLAYS: New default overlays for mobile (neo-retropad) OVERLAYS: In addition to overlay scale, the user can now set an Overlay Aspect Adjustment factor. Most overlays are designed for 16:9 displays, which means they become stretched/ugly on modern wide aspect phones and suchlike. By changing the Overlay Aspect Adjustment factor, a user can scale the overlay width/height to achieve a uniform appearance regardless of display resolution. OVERLAYS: Since scaling a gamepad overlay can result in buttons being squished too close together (or being pulled too far apart), the user can now adjust the effective spacing of the different halves of an overlay via Overlay Horizontal Separation and Overlay Vertical Separation factors. Overlay Horizontal Separation divides the overlay in two vertically (left/right, at the centre point), and applies a spacing offset (positive or negative) between the UI elements on each side; Overlay Vertical Separation does the same, but the split is horizontal (top/bottom) OVERLAYS/FIX: The Overlay X Offset and Overlay Y Offset options have been fixed, and now work correctly OVERLAYS/FIX: All of the above options (and Overlay Scale) are configured and saved independently for landscape and portrait display orientations so adjusting everything for a nice landscape layout wont break the portrait display OVERLAYS/FIX: When using the Vulkan gfx driver, memory is leaked every time an overlay is freed OVERLAYS/FIX: When threaded video is enabled, loading overlays with no images (i.e. utility-type overlays, where everything is hidden until the screen is touched) can generate segfaults due to improper usage of realloc() OVERLAYS/FIX: When Show Inputs on Overlay is enabled, ASAN reports bit shift errors due to an incorrect range check when handling turbo inputs essentially, there is no upper limit to the considered input id range, which means overlay hotkeys (menu toggle, etc.) are incorrectly treated as having turbo support, causing bit shifts using wildly inappropriate id indices PLAYLISTS/PORTABLE: Fixed first load initialization PS2: Added Multitap support (up to 8 players) PS2: Fix for not recognized digital and other non-standard controllers PS2: Fix Quitting from RA PS2: Add Audio mixer REWIND: Prevent Rewind Frames from being set to 1 incorrectly on load content RUNAHEAD: Add Run-Ahead Toggle hotkey with notifications RBUF/ANIMATIONS: Simplify gfx_animation by switching from dynarray to rbuf RBUF/CORE UPDATER: Replace static entries array with dynamic array via RBUF library RBUF/M3U: Replace static entries array with dynamic array via RBUF library SENSORS: Android (crash-)fixes/improvements + add option to disable sensor input SDL2/VIDEO: Get the SDL2 video driver to work in Wayland/KMS SAVESTATES: Adding savestate garbage collector for autoincrement stavestates. As some issues indicate, theres an issue with the autoincrement save slot feature: slot index will increase and very old saves wont be deleted. This adds support to delete old save states with a user defined save state limit (global). Instead of wrapping around the slot counter it will simply delete the oldest save, since it is simpler. For now theres a limit of one deletion per save, which ensures a user cannot delete many saves by accident if they set the limit too low. SAVESTATES/SAVEFILES: Ensure save file and playlist compression is disabled by default SHADERS: Add option to remember last selected shader preset/shader pass directories SHADERS: Use last selected shader preset directory when changing shaders via previous/next hotkeys SHADERS: Remove Parameters line SHADERS: Shaders fix for duplicate parameters loading bug SHADERS: Fix Crash change num shader passes in UI SHADERS/SLANG: Fix slang shaders with rotation STREAMING/FFMPEG: Add Facebook Game Stream option (for embedded ffmpeg core-enabled RetroArch builds) SWITCH: Fix input bind icons being off by one line SWITCH: Fix audio issues TLS/SSL: Add BearSSL support, as alternative to mbedTLS VIDEO: AddVariable BFI (Black Frame Insertion) VIDEO/DRM GO2: Dynamic resolution support VIDEO FILTERS: Video filter optimisations VIDEO FILTERS: Add several LCD-effect video filters VIDEO FILTERS: Gameboy/Dot_Matrix video filters: Add XRGB8888 support VIDEO FILTERS: Add Normal4x video filter VIDEO FILTERS: Add Upscale_256x-320240 video filter VIDEO FILTERS: Add Upscale1.5x video filter VITA: Disable temporarily VitaGL VITA: Fix bubble name VITA: proper handling of boot params VITA: Default menu scale 1.5x to improve readability WIFI/LAKKA: Add a proper WiFi menu, with Enable/Disable & Disconnect options. This also allows WiFi passwords to be remembered. The underlying tool (connman) allows to store passswords (thats why it auto connects whenever you boot a Lakka device), so we expose this so that the user does not have to re-input the pass when connecting to a saved wifi. WII/HID: Added HID support for HORI mini wired ps4 gamepad WINDOWS: Add support for accelerators to main win32 message loop WINDOWS: Add accelerators for Open (Ctrl+O) and Fullscreen (Alt+Enter) WINDOWS: Fixes some file I/O failures on Windows when paths are longer than 260 characters. WINDOWS: Fix crashing on startup on Windows when using Chinese Simplified language. WINDOWS/XP: The OpenGL 1 video driver is now the default for maximum backwards compatibility upon first startup. Its of course always possible for the user to change this. WINDOWS/MENUBAR: Load accelerators, Localize Win32 menu items to current language, and display shortcut keys WINDOWS/MENUBAR: Add Reinit to Menubar WINDOWS/MSVC: Fix rewind crash on MSVC build when using SSE2 UWP: Dont default to XMB menu by default, default to Ozone instead UWP/VFS: Use Win32 file APIs when possible better file I/O performance WIIU/FILEIO/PERFORMANCE: Faster startup times remove the path_is_valid() call when loading textures WIIU: Fix touchscreen mouse emulation |
@heyjoeway! See our updated blog post here for more details. |