RetroArch - Gadsby
Improvements to the Libretro port

Some features that were left over from standalone until now got implemented in the Libretro port:

  • LowPass Filter : It’s available from the core options, I know something similar is available from RetroArch’s DSP plugins but you might want to check out this one too. Technically it’s a 2x resonant lowpass filter which is set-up to mimic the amp section found on most PCB’s. For a good 95% of games, it makes the sound a bit more rich/bassy, and for the remaining 5% let us know so that we can fix them. You’ll probably never want to turn this option off after getting used to how nice it sounds.
  • Cheats : They have been supported through the Libretro API for some time, but now you can also directly use a cheat.dat from MAME, more information about this here.
  • Macros : First, some words about macros, the reason macros from standalone aren’t supported is because there can be dozens of them for a single player on a single game, however you currently can’t map that many actions with the Libretro API (and this is not only a problem for macros, handling service menu when it involves several buttons can be tricky too) because all inputs need to be assigned to a button from the get go. In the past, there was some workaround for this through core options, but it had its own share of issues so it was removed later. I recently decided to re-implement support for a select few macros, for now it only includes 3xPunchs and 3xKicks on SF-like games but implementing a few more could be done if I can get some help sorting out the ones that’ll be the most useful so that they’ll fit within the RetroPad model.

Read full update notes here.

Available cores updated to latest version

  • PCSX ReArmed
  • Genesis Plus GX
  • Genesis Plus GX Wide
  • mGBA Stealla
  • Kronos
  • Mupen64Plus Next
  • Mesen
  • Mesen S
  • Sameboy
RetroArch - Gadsby


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.

Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love with our users. This project exists because of your support and belief in us to keep going doing great things. If you’d like to show your support, consider donating to us. Check here in order to learn more. In addition to being able to support us on Patreon, there is now also the option to sponsor us on Github Sponsors! You can also help us out by buying some of our merch on our Teespring store!

http://retroarch.com/index.php?page=donate
https://www.patreon.com/libretro
https://github.com/sponsors/libretro
https://retroarch.creator-spring.com/
https://www.youtube.com/channel/UCjAimkVp-G_o6HK5MXujk9A/join



Release notes

PlayStation Vita users will be happy to learn that the issues with gpSP (Game Boy Advance emulator) are now resolved, and it should work as reliably as it did before 1.9.1 (and perhaps even better now thanks to increased performance). We hope you get a lot of mileage out of this core as a lot of work and effort went into it to really optimize the performance of this core over the past few months!

Text To Speech support is now enabled for the macOS Universal build. You can access this by going to Settings -> Accessibility and enabling ‘Accessibility Enable’.

Some nice changes under the hood that are more technical in nature: config file loading performance has been improved immeasurably which should help out with initial startup times of RetroArch, loading config files as well as loading shader presets. Core info file loading itself has also seen many performance improvements. We are aware that despite all this, loading all the assets in the more feature-rich menus like MaterialUI/XMB/Ozone can still take a long time on systems encumbered by slow disk I/O, but we have some special things in store for future versions that should increase asset loading performance significantly.

There is now multi soft-patching file support. We will explain this in more detail below.

Highlights

Multi soft-patching support
If an IPS/BPS/UPS patch is found, will replace the last character in the filename with a counter and loop until another patch is found (in any format).

Example matching filenames:

Contra (Japan).nes Contra (Japan).ips # Applied first Contra (Japan).ips1 # Applied second Contra (Japan).ups2 # Applied third …

Notice that if one filename breaks the loop, the following patches won’t be applied too. e.g.:

Contra (Japan).nes Contra (Japan).ips # applied Contra (Japan) (Translation).ips1 # Partial name match, not applied Contra (Japan).ups3 # Not applied either …

Enhanced ‘Load Content’ file browser search functionality

1.9.2 adds the same search filter functionality that currently exists for playlists to the file browser when selecting Load Content. This means:

  • When navigating the filesystem via the file browser, the user can press RetroPad X (or /, etc.), and enter a search term
  • This becomes a filter – all matching entries will be displayed
  • The user can then perform another search to further refine the results. Up to 8 filters may be stacked in this fashion
  • Pressing ‘cancel’ clears the last entered filter

For example:



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):



Finally, 1.9.2 makes the following changes to existing search functionality:

  • Entering a search term consisting of a single Latin alphabet character will now always jump to the first entry whose first character matches – i.e. we no longer apply search filters in this case, since a single alphabet character filter is not useful. This means single character searches can be used for fast alphabet navigation
  • When searching file browser lists, the ‘utility’ entries (e.g. Parent Directory) are ignored, since they have no bearing on the actual list content (i.e. searching for p will now jump to the first p file – previously, it would always jump to Parent Directory…)
  • When performing non-filter searches, the entry labels used in each comparison now exactly match what is printed on screen by the menu driver. Previously, raw file_list values were used, which are often the same, but not always (e.g. in a number of cases, this is the difference between searching against full file paths vs. path basenames, which can produce erroneous results)

In addition to all this, 1.9.2 also enables search filter support when using the file browser to select cheats and overlays.

Optional menu screensaver animations



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:


Starfield:


Vortex:


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).

OpenDingux beta: Add 50Hz support

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.

OpenDingux beta: Fix IPU scaling when running GB/GBC/GG/NGP-resolution content

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:

  • Gameboy (+ Color)/Game Gear at native, x2 and x3 resolutions
  • Neo Geo Pocket (+ Color) at x2 resolution

Changelog
1.9.2

  • 3DS: Enable graphics widgets / overlays
  • 3DS: Load texture images as BGR colors
  • 3DS: Change default asset directory
  • CHEEVOS: Allow rcheevos_patch_address to be called on game without achievements
  • CHEEVOS: Update achievement memory maps (add Supervision)
  • CONFIG/FILE: Use hash map to optimise key/value lookups
  • CORE INFO: Performance optimisations + code clean-ups/refactors
  • CRT/SWITCHRES: Fixed CRTSwitchRes framebuffer bug
  • DISCORD/RPC: Fix regression
  • DRM: set the correct video mode
  • FASTFORWARD: Enforce minimum fastforward_ratio of 1.0
  • FONTS/FREETYPE/STB_UNICODE/BITMAPFONT: Prevent texture bleed when rendering text at non-integer scales
  • INPUT: Ensure that ‘retro_set_controller_port_device’ is called when updating ‘Max Users’
  • INPUT/XEGL/MOUSE: Fix xegl_ctx.c mouse activation
  • INPUT/SDL: Fix crash in SDL input driver when analogs are bound
  • INPUT/POINTER: Add scaling to pointer input
  • INPUT REMAPPING: Fix regression on loading file
  • INPUT REMAPPING: Fix regression where disabling input remapping would disable input
  • IOS: Disable system button gestures on iOS 14
  • IOS: Prevent potential crash on controller connect – randomly would get a crash when connecting a game controller while RA was running
  • LAKKA: Add menu for time zone setting
  • LOGGING: RARCH_LOG_V checking for verbosity level is not necessary and can cause issues; removed said check.
  • LOGGING: Silence inappropriate cheatfile logging
  • IOS/MAC: Add CPU VFP unit detection for Darwin
  • MAC: Swallow ‘escape’ key being pressed – would previously make the game toggle between fullscreen and windowed
  • MAC: Intel and ARM64 timer change proposal.
  • MAC/ARM64: run_fast_mode disabled for 64 bits invalid instructions.
  • MAC/OPENGL: Fix codesigning issue
  • MAC/UNIVERSAL: Add TTS translation service support.
  • MENU: Add optional menu screensaver
  • MENU: Add search filter support to cheats and overlays file browser menus
  • MENU/FILEBROWSER: Enhanced ‘Load Content’ file browser search functionality
  • MENU/INPUT: Block accidental diagonals in menu navigation
  • MENU/RGUI: Add option to disable menu transparency
  • MENU/RGUI: Fix display of ‘Video > Scaling’ menu when ‘Lock Menu Aspect Ratio’ is enabled
  • MENU/MATERIALUI: Add icon to ‘Turbo Fire’ menu entry
  • MENU/OZONE: Ozone Dracula theme
  • OPENDINGUX/BETA: Fix IPU scaling when running GBA-resolution content
  • OPENDINGUX/BETA: Add 50Hz support
  • OPENDINGUX: Enable ‘SaveRAM Autosave Interval’ by default
  • PATCHES: Added multi-softpatching support + OSD messages for patches
  • RHMAP: Track the complete string in rhmap
  • VITA: Align VM block size to 1MB – should fix one of the issues with gpSP
  • WINDOWS/GDI: Fix non-ASCII text rendering
  • XEGL: Fix mouse not working when using OpenGLES with X11
RetroArch - Gadsby


Reah here as well: https://www.libretro.com/index.php/libretro-cores-updates-pcsx2-alpha-release-for-windows-and-more/
Following updates may not cover Steam version. You can still use standalone version over Steam.
PCSX2 DLC not planned at this moment.



PCSX2 Alpha core available for Windows now!

https://www.youtube.com/watch?v=-EnWeztB8wI

Today we’re releasing an alpha version of the PCSX2 libretro core on the buildbot. It’s available for Windows only right now, but the same core has been tested to work on Xbox One/Series systems as well.

Important things to know

  • Create the following directory in your system directory – “pcsx2”. You can put all the asset files there from your regular PCSX2 install. See pic below for an example.

You need a working BIOS inside /pcsx2/bios. PCSX2, unlike Play!, will not work without a real BIOS.

  • It’s still an alpha version. Things are rough around the edges. Expect bugs and things to be incomplete.
  • There’s a working OpenGL renderer and a Direct3D11 renderer option. Direct3D 11 renderer can be faster than OpenGL but also has less features. Pick whichever works best for you. On Xbox you will only be able to use Direct3D11 anyways.
  • This core uses the x86_64 dynarec which was added to PCSX2 a year ago. It is still less compatible than the 32bit x86 dynarec in PCSX2, so keep that in mind. It’s for similar reasons that the software renderer right now won’t work (it’s not compatible yet with x86_64, not in upstream either).
  • There’s a bug that can happen right now upon closing content or exiting RetroArch with the PCSX2 core on Windows – the RetroArch process might not completely cleanly shut itself off and you might still be able to see a 0% CPU process remaining in the Task Manager. We have not been able to figure out how to fix that yet as the PCSX2 codebase is a definite case of ‘here be dragons’, but for now when this happens, you can just bring up the Task Manager and close it manually. It shouldn’t have a real detriment on performance but it is of course far from ideal and hopefully something we can fix soon with the help of some contributors. We have found this happens the most with the Direct3D 11 renderers.
  • Switching resolution at runtime right now can be a bit unstable, so does switching fullscreen resolution. We might just make resolution switching require a restart since this tends to be too unstable for now.

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. It’s for that reason that we don’t 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 it’s 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 you’re 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.

  • Support for generic MIPS (including Dingux)
  • Built-in BIOS that ships internally and requires no external files/dependencies
  • Removal of libco (5-6% perf or so) and some performance fixes for x86/arm/mips (for perf)
  • Fixed the x86 dynarec and the ARM dynarec, that were pretty much broken. Good speedups (or power savings on portable devices)

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:

  • implement additional outer bank bit to support multicarts twice as large as WS-1001 (“Super 40-in-1”)
  • implement CNROM-128/-256 mode using two or four inner banks switched via CNROM-like latch at CPU $8000-$FFFF
  • implement solder pad/DIP switch change via soft-reset, resulting in different multicart menus
  • soft-resetting resets to menu as on real hardware, not just the currently-selected game.
  • Tested with the HH-xxx series of multicarts, some of which available on LIBG, as well as the previously-supported WS-1001.

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 that’s 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 III”‘s 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 Tyson’s 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 DerKoun’s 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
RetroArch - Gadsby
Written by jdgleaver

This is a followup article to our main release blog post, which can be read here.

Official support for OpenDingux devices such as the RG350M, RG280V and GCW-Zero was added last December; a full round-up of features and highlights can be found in the original announcement here. Version 1.9.1 represents the first stable release for this platform.

As an integrated member of the RetroArch family, the OpenDingux port benefits from all frontend development work – but a major addition for this release is a separate, optimised build for OpenDingux Beta (link here). This is an updated, modern firmware (compatible with many devices) which offers significantly improved performance. RetroArch is one of the first applications on OpenDingux Beta to enable configuration of the hardware IPU (Image Processing Unit), with menu-based control of aspect ratio/integer scaling and image filtering method (available on Beta releases after 16/03/2021). Users who prefer to remain on stable operating systems need not fear, however: RetroArch will always be optimised for both beta and stock firmwares.

Aside from RetroArch itself, expanding the library of available cores has been a major focus of this release. Launching initially with 20 hand-picked cores, a further seven have been added to the list:

  • Mr.Boom
  • O2EM (Magnavox Odyssey2 / Phillips Videopac+)
  • Potator (Watara Supervision)
  • ProSystem (Atari 7800)
  • ScummVM (Note: High resolution games unsupported)
  • Stella 2014 (Atari 2600)
  • TIC-80



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 don’t 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
  • The model and region of the emulated console (Odyssey 2, Videopac+ G7400) can now be specified via core options
  • A volume control and optional low pass audio filter have been added, along with audio fixes/performance improvements
  • An ‘Interframe Blending’ option has been added, used to simulate CRT ghosting effects
  • A ‘Crop Overscan’ option has been added
  • Gamepad inputs can now be swapped (required for a number of games), and numeric keys have been mapped to gamepad buttons
  • The rendering of the virtual keyboard has been optimised, reducing performance overheads by 44%-63%
  • Save states have been fixed

Potator
  • This newly-added core was ported specifically for use on OpenDingux devices!

ProSystem
  • 16 bit colour depth support has been added for improved rendering performance
  • An optional low pass audio filter has been added, along with general audio quality improvements
  • A dual stick controller mode has been added for games such as Robotron: 2084

Stella 2014
  • 16 bit colour depth support has been added for improved rendering performance
  • An ‘Interframe Blending’ option has been added, used to simulate CRT ghosting effects and remove screen flicker
  • An optional low pass audio filter has been added
  • Full analog paddle support is now available

TIC-80
  • Comprehensive support for mouse input via gamepad has been added

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.
RetroArch - Gadsby


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. The RetroArch Playtest version will be updated at a later time today.

Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love with our users. This project exists because of your support and belief in us to keep going doing great things. If you’d like to show your support, consider donating to us. Check here in order to learn more. In addition to being able to support us on Patreon, there is now also the option to sponsor us on Github Sponsors! You can also help us out by buying some of our merch on our Teespring store!

http://retroarch.com/index.php?page=donate
https://www.patreon.com/libretro
https://github.com/sponsors/libretro
https://retroarch.creator-spring.com/
https://www.youtube.com/channel/UCjAimkVp-G_o6HK5MXujk9A/join



RetroArch back in action!
Today marks an important day for our project. We consider the migration to the new infrastructure to be almost 95% done. We have left the old infrastructure behind, it is done and dusted and a thing of the past.

From now on, you can expect periodic stable releases again for all platforms. Expect our project to be hitting on all cylinders from this point on!

One blog post is not enough to go through all the milestones that have been reached, so expect many followup blog posts in addition to this. In this blog post instead we will try our best to summarize most of the highlights.

What remains to be done:

  • Some cores will still need to be added (mainly cores that require compilation with CMake for iOS)
  • Windows binaries right now are still unsigned and not codesigned. We have ordered an Extended Validation code signing certificate which will allow our Windows binaries in the future to pass through SmartScreen with no issue. This will cost us a pretty penny each year but we consider the additional cost worth it for our users. We hope that by the time the next stable rolls out of the door, these binaries will all be signed, as will the nightlies.
  • Because of this, be aware that while installing RetroArch on Windows with the Installer, you might be greeted by a SmartScreen filter that the application is unsafe. You can safely ignore this.

Here’s 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.

Release notes

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.

Some highlights

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 sonninnos’s 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

Changelog

We can’t 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 32×224 like 256×224 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 don’t 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 doesn’t 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 doesn’t 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 won’t 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, there’s an issue with the autoincrement save slot feature: slot index will increase and very old saves won’t 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 there’s 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-320×240’ 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 (that’s 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. It’s 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: Don’t 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
RetroArch - Gadsby


  1. Genesis Plus GX Wide has been updated with new extra options for widescreen mode courtesy of
    @heyjoeway! See our updated blog post here for more details.
  2. Missing Audio Plugins added for both Windows & Linux
  3. Missing Video Plugins added for both Windows & Linux
RetroArch - Gadsby
RetroArch and LibRetro do not share any copyrighted content.



heyjoeway has made a custom fork of Genesis Plus GX with experimental widescreen (16:9) options, called ‘Genesis Plus GX Wide’.

Notes

This is an experimental feature right now. Some games might already output nicely with widescreen, while others will likely require patches to display properly.

It works only on Sega Genesis/Mega Drive games, and not Sega CD/Mega CD games.




RetroArch - Gadsby
RetroArch and LibRetro do not share any copyrighted content.



So ProjectFuture finally materialises! From the beginning, we have been unsatisfied with the general state of the retrogaming scene when it comes to being able to dump and play your own legally bought game cartridges. Solutions exist like the Retrode. There are some big issues with them though that limits their viability as something an average consumer can just buy readily off the shelf:

  1. Super expensive.
  2. No longer in production/out of stock
  3. Rights to the product changing hands between sellers/store owners
  4. Because of 3, usually one or two stores can only sell them.
  5. The specs are closed so only a select few can assemble and sell them, limiting the ability of DIY homebrewers to make their own device.

While as a general rule of thumb, developers will always tell people to dump their own game cartridges, in reality there is nobody stepping up to the plate to make this either affordable, to integrate it well with existing software, or to make it possible for your homebrew hardware maker to easily build his own.

RetroArch Open Hardware is our attempt to shake up this sector of the retro games market, and our effort to revitalize the DIY market and shift it away from proprietary solutions. Our first Proof of Concept hardware device is an N64 cartridge adapter that you connect to any device with a USB Type-C cable. It will be relatively cheap to assemble and much faster than any existing competing device out there that does the same task.

RetroArch Integration



We have some high-level goals we aim to achieve with this project. We want seamless integration with RetroArch. When you attach this to RetroArch, it should be hopefully as simple to play the game as it is on a real game console when you plugged in the cartridge. That’s the level of integration we are aiming to achieve with this project, and none of the existing solutions out there really fit the bill.

When we mentioned before that we want RetroArch to be its own game console, we pretty much meant it. And being able to take your own game copies with you and run them with RetroArch seems like an obvious next step to take.

We have come up with a completely custom and lean design so that the person aiming to build this for themselves in DIY fashion will be able to build these relatively cheaply. We are convinced the transfer speeds are far in excess of any other similar product out on the market right now, which is just as well considering the biggest N64 game out there is 64MB in size.

The current transfer speed that we are achieving is ~4MB per second on a prototype device. Our target is a transfer speed of approximately ~ 4.5MB per second give or take.

In addition, Switch dock support will be there from Day One, working out of the box.

How does it work?


Attach it to any device and it will mount itself as a Mass Volume Storage device, mapping the cartridge as a bunch of files on the filesystem.

You insert the N64 cartridge into the cartridge reader and you connect it to a PC (or some other device) with a USB Type C-cable. The device will then map the contents of the cartridge itself as a Mass Storage device volume. EEPROM, Flash, ROM, and SRAM are mapped as separate files on this volume. (*)
Playing the game should be as easy as just loading the ROM from this device. So already even without the aforementioned RetroArch integration, it already works. But our hope is that with the RetroArch integration, we finally get the promise of a true cross-platform game console where you can take your games library with you, whether it’s digital or physical, and just use it across the devices that you already have RetroArch on. This is the dream and promise we have been slowly building towards – the power lies in the user’s hands, not that of any corporation or organization.

* – This might be subject to change. We are still considering whether to change this to a dedicated protocol to allow using cartridge hardware in an emulator core without just reading all of the cart as one big contiguous ROM file.

Prototype



This project has been ongoing now for the better part of a year. We have some internal prototypes and so far we can definitely confirm high success rates with our own cartridge collection. SRAM support already works in the firmware, but no EEPROM/FlashROM support yet. Your SRAM should work as long as your SRAM battery is not dead yet anyway. Some of these cartridges are over 20+ years old by now after all so an SRAM battery being dead is not an unlikely prospect at this point.

Some cartridges will need their cartridge connectors cleaned in order to work properly with this device. It’s a common problem among N64 game preservationists that I’m sure should not be news to anyone at this point.



Q&A



I’m sure there will be many questions in response to this article. We will remain tight lipped for now until we feel the time is right to release more details. We hope that RetroArch Open Hardware will be a contagious project that will see many contributors and participants working towards one common goal – being able to interface with the games media they’ve bought for all these decades and just being able to make it work with the software they’re already using without having to buy new closed-spec proprietary devices that lock you out of the software you’re already using. Free software is one thing, but it’s only as good as the hardware you’re running it on. Consider this our valiant effort of trying to get both sides in order.

For now, here is a gallery of screenshots to a few of our prototypes, brought to you by Sasa and m4xw.











Make sure join our Discord channel, follow us on Twitter and check our other channels: YouTube, Facebook and Facebook Group.
RetroArch - Gadsby
Hi Everyone,

This is small patch to fix;

Linux

Windows
  • RetroArch build updated to Commits on Nov 25, 2020

Make sure join our Discord channel, follow us on Twitter and check our other channels: YouTube, Facebook and Facebook Group.
RetroArch - Gadsby


You know how badly we want to bring RetroArch to Steam. For now, we are evaluating what we have. Steam recently announced a new feature, PlayTest, an alternative version of this Beta access. We have published our PlayTest version to an access request. To obtain this version, you can go to our store page and click "Request Access" located there. This version will have the same features as the main version. DLCs will come as download. It is newest build with these cores included;

  • Kronos
  • PCSX Rearmed
  • Stella
  • Sameboy
  • mgba
  • Mesen
  • Mesen S
  • Mupen64Plus-Next
...