Bliss-Box now selling cables and more (plus details on future plans with regards to Libretro integration work)

Written by Sean Green, the author of the Bliss-Box
In a continued effort to bring the best gaming experience to the scene, Bliss-Box and RetroArch have some exciting new developments.

Firstly, the cables are finally here! Jump over to the new secure webpage at bliss-box.net and grab them 

These cables come in the way of dongles and adapter boards. The boards were created to support low demand cable types and thus in the form of a mini adapter.

 

Also if you have not yet taken advantage of the exclusive offer from RetroArch, there is still time to get the deal. That’s 2 free cables with the purchase of a new 4-play kit. Plus, part of the profit goes to help RetroArch.

Single-player Blissbox adapter

There is also a bit more exciting news coming down the pike. Here is a sneak peek at one of the new products Bliss-Box and RetroArch are bring to the scene. This will be the first ever single player Bliss-Box adapter. It comes in the form of a D.I.Y  kit and planned to be packaged with a D.I.Y product from Retro Arch. Yes you heard it right, RetroArch product, more to come on this soon.

And a final word in case you missed it, Bliss-Box and RetroArch were just featured on Linus Tech Tips, check it out here.

Future Libretro integration and Bliss-box plans

Written by Daniel De Matteis, RetroArch/Libretro Lead Developer
The above paragraphs were written by ulao, Bliss-Box author. Allow me to expand on our collaboration with Bliss-Box for a moment here and why we feel the need to feature this product on a regular basis. Bliss-Box has bigger aspirations beyond just being a controller adapter system. While people using original controllers of old videogame systems is obviously a big step forward in terms of bringing that authentic feeling of playing the real game, there still remains missing elements that serve to break the cognitive dissonance that you are playing on the real hardware. Things that come to mind would be for instance the Rumble Pak on the N64 not working, or the Controller Pak not being able to be read, or the VMU unit inside a Dreamcast controller not showing anything onscreen. Obviously, to make all this happen, not only do modifications need to be made to the firmware of the Bliss-Box adapter, but RetroArch will have to drive audio/input/video data back to the Bliss-Box so that the Bliss-Box can then interpret this data and do something with it. According to the Author, the Bliss-Box can even tunnel the native controller data via USB. This makes it possible to talk directly to and from the game itself. To this end, we are highly interested in implementing the necessary extensions to the libretro API in the near future so that Bliss-Box will be able to do such things, such as being able to read a real physical memory card instead of a virtual one directly from the joypad device, or being able to display graphics on the VMU and be able to read/write to the VMU as well. We see this as a perfect marriage of two projects that both strive to bring the experience of playing on a real console as close to the original as possible.

Of course, this will require further development, where both Libretro authors and Bliss-Box authors will need to collaborate in order to get this fully implemented, and we cannot give you an exact ETA when such functionality will be available. Nevertheless, I wanted to take the opportunity to explain just what the nature of our collaboration with Bliss-Box is, and why we are backing the project so firmly.

Thank you for your time, and hopefully you will be able to understand better exactly what the future holds with regards to this new-found Bliss-Box/RetroArch marriage.

Reicast Libretro Progress Report

Display VMU screens ingame!

NOTE: This feature currently works properly in Reicast Libretro non-OIT. Reicast Libretro OIT will require some more work before this feature will start rendering properly.

Thanks to RetroSven, here is another major new feature!

It is now possible to display the VMU screen ingame! You can also specify the exact positioning of each VMU, whether it should be positioned at the top left, top right, bottom left, or bottom right corner of the screen. You can also specify the opacity of each screen and the exact size of the screen. You can display all 4 attached VMU screens at the same time onscreen!

For those that don’t know, the VMU was the Dreamcast’s memory card which also could be used as a standalone device. It was powered by a ring battery, had a D-pad and some face buttons, and it was even possible to play some minigames on the VMU.Games could download VMU minigames onto the system and you could then play these minigames when used as a standalone device.

Samurai Shodown VI (NAOMI) renders properly now with Extra Depth Scaling option!

Reicast Libretro now has a new feature – Extra Depth Scaling. By enabling this, the graphics in Samurai Shodown VI (Naomi arcade game) will render properly.

Note that even with this enabled, Reicast OIT Libretro will currently have some display bugs that the non-OIT core won’t have. Hopefully the two can become just as good later on.

RetroArch 1.7.4 – Metal 2 macOS version available now!

RetroArch with Metal 2 support for macOS High Sierra users!

Up until now, we had three versions of RetroArch for macOS/OSX users:

  • RetroArch for OSX PowerPC (10.5) – For users with an old PowerMac or iBook/Powerbook. You should have at least Mac OS X version 10.5 (Leopard) installed in order for this version to work. Cores are packaged with this version because our buildbot does not serve fresh 32bit PowerPC cores for OSX.
  • RetroArch for OSX 32bit Intel (10.6) – For users with an old MacBook that has a 32bit Intel processor (for instance, 1st generation MacBook). In order to use this, you should have at least MacOS X version 10.6 (Snow Leopard) installed. Cores are packaged with this version because our buildbot does not serve fresh 32bit Intel cores for OSX.
  • RetroArch for macOS/OSX 64bit Intel (10.6) – This is what you are likely wanting to use on a modern Mac computer. You should have at least MacOS X/macOS version 10.7 (Lion) installed. Cores are distributed separately on our buildbot.

We are now adding a fourth one:

  • RetroArch for macOS 64bit Intel with Metal 2 support (10.13) – This version has all of the features of ‘RetroArch for macOS/OSX 64bit Intel’ plus a Metal 2 video driver. This version requires at least macOS 10.13 (High Sierra), a fairly modern version of macOS. For this version, we default to the Metal video driver by default.

If you have relatively modern Mac and you want to enjoy the latest in cutting edge technology, you should definitely try out this latest version. Get it by going to our Downloads page, and click on the download link below macOS High Sierra (or later).

Some important things you should know about Metal 2 – not all of the devices that can run macOS 10.13 necessarily support this. Here is a compatibility list of all supported hardware:

  • MacBook (Early 2015 or newer)
  • MacBook Pro (Mid 2012 or newer)
  • MacBook Air (Mid 2012 or newer)
  • Mac mini (Late 2012 or newer)
  • iMac (Late 2012 or newer)
  • Mac Pro (Late 2013)

What is Metal, and why is it relevant?

Up until the ’10s, Mac OS X has relied on the crossplatform OpenGL API to provide hardware accelerated rendering to developers writing Mac applications. However, since 2014, there has been an industry-wide push towards lower-level APIs, and Apple in specific decided to go with its own proprietary graphics API. This API is called Metal, and was first premiered with iOS 7 and Apple A7 devices. It has since some years ago made the switch to macOS as well, and this year the API has been bumped to version 2.

Apple has announced OpenGL will be deprecated in the future, its graphics driver stuck with the dated OpenGL 4.1 spec for years now. While we regret this industry wide push away from a standardized, cross-platform graphics API, we have been forced to move with the times and instead cater to all the major graphics APIs. There is no longer the potential for one single graphics API to cater to all platforms.

With the release of RetroArch 1.7.4, we have achieved an important milestone: we now have fully functioning graphics drivers for the three major next-generation graphics APIs. This includes Khronos’ Vulkan API (added to RetroArch since 2016), Microsoft’s Direct3D 11/12 (added to RetroArch since earlier this year), and now Apple’s Metal 2 for macOS. Thanks to Hans-Kristian Arntzen’s SPIRV-Cross middleware, we can reuse the same shaders across Direct3D/Vulkan/Metal. We therefore are very close to having a universal shader specification that will work on all the major platforms.

We are now ready for a future when Apple will outright kill OpenGL support, while at the same time we have ensured that we have one common set of shaders that can be used across all these video drivers. The developer who has added Metal 2 support to RetroArch has already indicated he intends to bring this over to iOS and tvOS as well. And who knows, maybe even backwards compatibility with Metal 1 could arrive.

How complete is the Metal video driver right now?

Fairly complete. You get:

  • Fully functioning menu drivers. XMB, MaterialUI and RGUI should work fine.
  • XMB shader pipeline effect should work as expected.
  • You can take screenshots.
  • You can go into fullscreen mode.
  • You can use slang shaders with the Metal video driver, the same shaders that can be used with Vulkan/D3D10/D3D11/D3D12.

Things that have still yet to be added which the author is considering adding:

  • Recording support independent of ffmpeg.
  • Support for the libretro API’s RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER.
  • Hardware renderer context support, so that libretro cores could make use of the Metal API.

General changelog

– COMMON: Support for “OEM-102” key (usually ‘\’ on Euro keyboards).
– MENU/QT/WIMP: Add option to filter extensions inside archives when adding to a playlist.
– METAL: Add screenshot support.

RetroArch 1.7.4 – Released!

RetroArch 1.7.4 has just been released! Grab it here.

This latest version has also been uploaded to the Google Play Store. This is the 32bit version. We also have a brand new 64bit version for users with 64bit capable devices. You can grab that one here. More on that version later!

If you’d like to show your support, consider donating to us. Check here in order to learn more.

Highlights

64bit version of RetroArch Android

We have just uploaded a 64bit version of RetroArch for Android on the Google Play Store. You should be able to get it either from Google Play, or you can get it from our Download page, available here.

This 64bit version is intended for users with 64bit capable Android devices. Shield ATV would be one of those examples but there are doubtless many others. You can install the 32bit version and 64bit version at the same time on your device. Let us run down the list of what you need to know:

  • Certain cores are going to be exclusive to 64bit. Dolphin is one of those examples, since it lacks a 32bit dynarec entirely and Team Dolphin has no intention of supporting these devices. So for certain cores, 64bit will be the only place to go.
  • Some cores are actually significantly faster with 64bit. Beetle PSX for instance is significantly faster with the 64bit version vs. the 32bit version.
  • Some cores that only have a 32bit dynarec and/or were specifically optimized might be significantly faster on 32bit instead. Dosbox SVN is one of those examples, as is PCSX ReARMed and Picodrive. To help avoid confusion, we are going to be documenting this on our Libretro Docs site. It’s not there yet but it will be in the upcoming days/weeks.

Discord integration

RetroArch 1.7.4 now has extended Discord RPC integration! Previously before 1.7.4, RetroArch would act as any other game in Discord: as a simple “Playing” status that said you had RetroArch open. It wasn’t very descriptive or helpful other than displaying the name “RetroArch”. With the 1.7.4 update, RetroArch will display more information beyond a simple “Playing” status!

Read the blog article below for a more detailed indepth article on this feature:

https://www.libretro.com/index.php/upcoming-retroarch-1-7-4-details-on-discord-integration/

Desktop UI massively improved

NOTE: The Desktop UI is currently only available for Linux and Windows. macOS support might arrive at a later date.

Where to even begin? Let’s just have the videos do the talking –

Grid view with Thumbnails

You can now choose between List and Grid View. Grid View will show thumbnails of all your games, provided you have them installed. You can always install thumbnail packs separately by going to Online Updater and selecting Thumbnail Updater.

Create new playlists easily by drag and drop!

RetroArch 1.7.4 will make creating new playlists from scratch easy as pie! No longer will you be forced to manually select a directory and scan for games; you can now create a new playlist, and then manually drag and drop the roms you want to have in that playlist over to them, and the WIMP UI will do the manual work for you!

(Windows only for now) In-app RetroArch update!

From version 1.7.4 on, it will now be possible to update RetroArch to the latest nightly versions!

Live shader editing with the desktop UI!

Starting as of RetroArch 1.7.4, it is now possible to use the desktop UI to setup your shaders! You are able to add a shader preset and stack additional passes to your shader stack! You are also able to remove any shader passes you please, change shader parameters on the fly, and even reset shader parameters to their default values by pressing the right mouse button on a shader parameter and selecting ‘Reset Parameter’.

Download all thumbnails for a playlist with Desktop UI!

Previously, it was only possible to download complete thumbnail packs per system/game category. The most obvious complaint about this for many people was that they only needed thumbnails for specific games they actually have in their collection.

Now with RetroArch 1.7.4, from inside the Desktop UI you can right click any content from any playlist, select ‘Download thumbnails’, and it will try to fetch the thumbnails for this content from the Github thumbnail repositories.

You can now rightclick on a playlist, select ‘Download All Thumbnails’ – This Playlist, and it will attempt fetching all the thumbnails for a given playlist! You can also cancel this operation at any time by either pressing the Cancel button on the dialog box, or pressing the ‘X’ icon.

Core options in desktop UI!

When you have a core loaded, you can now change the core options inside the Desktop UI!

NOTE: If you leave the core option dialog window open and you happen to unload a core then launch a new core with game, you will have to close the dialog and then reopen it again. It won’t reload itself automatically. This might get looked at in a later version.

Sync To Exact Content Frame Rate – Ideal for G-Sync/FreeSync users!


Blog post written by Tatsuya79

RetroArch 1.7.4 has a new feature that will be especially advantageous to users of variable sync display technologies, such as G-Sync/FreeSync. We call it “Sync to Exact Content Framerate”.

Read the blog article below for a more detailed indepth article on this feature:

https://www.libretro.com/index.php/upcoming-retroarch-1-7-4-sync-to-exact-content-frame-rate-ideal-for-g-syncfreesync-users/

Cheat code searching/creation interface with rumble features


Read the blog article below for a more detailed indepth article on this feature:

https://www.libretro.com/index.php/upcoming-retroarch-1-7-4-cheat-code-searchingcreation-interface-with-rumble-features/

General changelog

– ANDROID: Add sustained performance mode, can be turned on/off in Power Management settings menu.
– ANDROID: Powerstate/battery level support.
– CHEEVOS: Fix crash when scrolling Achievement List while Unofficial Achievements enabled (#6732).
– CHEEVOS: Added hitcounts support for PauseIf/ResetIf (#6817).
– COMMON: Automatically hide “Configuration Override options” in Quick Menu.
– COMMON: Small Bugfix to not trigger savestate code when pressing Reset.
– COMMON: Added libsixel video driver.
– EMSCRIPTEN: Fix Game Focus Toggle.
– HID/OSX: Fix to set hid device registration deterministic (#6497), to address issue #6640 re-adding dynamic device registration.
– LOCALIZATION: Update Italian translation.
– LOCALIZATION: Update Japanese translation.
– LOCALIZATION: Update Polish translation.
– LOCALIZATION: Update Portuguese / Brazilian translation.
– LOCALIZATION: Update Russian translation.
– LOCALIZATION: Update Spanish translation.
– MIDI: Add MIDI support to the libretro API. Dosbox is the first proof of concept core implementing libretro MIDI.
– MIDI: Add a Windows driver for MIDI, based on winmm.
– MENU/QT/WIMP: Qt QSlider styling for Dark Theme.
– MENU/QT/WIMP: Remove button ghostly inside highlighting.
– MENU/QT/WIMP: Initial grid view.
– MENU/QT/WIMP: Drag&drop to add new playlist items, add option to add/edit/delete playlists.
– MENU/QT/WIMP: Add menu option to update RetroArch (Windows only for now).
– MENU/QT/WIMP: Add menu option to manage shaders.
– MENU/QT/WIMP: Add menu option to manage core options.
– MENU/XMB: Add new icons for the settings
– MENU/XMB: Add an option to show the desktop ui
– METAL: Initial work-in-progress video driver for Metal. macOS-only right now, and currently requires macOS 10.13.
– METAL: Supports XMB/MaterialUI, has a menu display driver. Has a font rendering driver.
– METAL/SLANG: Slang shaders should be compatible with Metal video driver.
– NETWORK: Enable SSL/TLS support by default for desktop platforms.
– QNX: Fix Game Focus Toggle.
– PS3: Add audio mixer support for FLAC and MP3.
– PSP: Use proper button labels, fix inverted R-Stick Y axis.
– REMAPS: Fix the way offsets are calculated for keyboard remapping.
– RUNAHEAD: Fix full-screen mode change breaking Secondary Core’s environment variables.
– RUNAHEAD: Deterministic input for RunAhead, guaranteed to match the last polled.
– VITA: Use proper button labels, fix inverted R-Stick Y axis.
– VITA: Add imc0: mount.
– VITA: Use sceCtrlIsMultiControllerSupported to detect.
– VULKAN: Fix two validation errors.
– VULKAN: Try to avoid creating swapchains redundantly. Should fix black screen and having to alt tab out of window again to get display working on Nvidia GPUs (Windows).
– VULKAN/OSX: Initial MoltenVK support. Not enabled yet, several MoltenVK bugs should be fixed first before we can have it fully working.
– WINDOWS/DINPUT: Add rumble support.
– WINDOWS/DINPUT: Fix Game Focus Toggle.
– WINDOWS/RAWINPUT: Fix Game Focus Toggle.
– X11: Fix Game Focus Toggle.
– WII: Change deflicker setting to work in 480p or higher, and always enables vfilter so that the user can easily change brightness.
– WIIU: Fix out-of-bounds rendering bug
– WIIU: Implement UDP broadcast network logging on Wii U.
– WIIU: Audio should no longer clip.

RetroArch 1.7.4 – Cheat code searching/creation interface with rumble features


Post written by RetroSven
RetroArch 1.7.4 has built-in cheat code searching/creating. Additional cheat system updates:

  • “Load Cheats” has been broken into two separate options. One will replace the list of cheats with what is being loaded whereas the other will append to the list of cheats with what is being loaded.
  • Cheat list is now automatically saved and loaded for each game
  • When using left/right to change the values of numbers, there is now a feature that gradually increases the step-size the longer you hold the button
  • Full cheat list management – Edit, Delete, Copy, Add, (to top of list, to bottom of list, above entry, below entry)
  • There are now two different cheat types – Emulator (handled by the emulator, the original type) and the new type – RetroArch – that is handled by RetroArch itself
  • Option to reload cheat file (if you manually edit file while RA is running)
  • Option to auto-apply cheats when loading game
  • Option to auto-apply cheats when toggling them on/off
  • Robust cheat searching interface (see instructions below) which works for just about every RA core
  • Rumble activation based on memory changing. For example, after finding the memory location for the number of lives in a game (via the cheat searching interface) you can set it up such that every time the value decreases (lose a life) the controller rumbles. Rumble tested with X360 controller, input driver dinput, joypad driver xinput. Available rumble controls:
    Rumble when memory value changes
    Rumble when memory value does not change
    Rumble when memory value decreases
    Rumble when memory value increases
    Rumble when memory value = value
    Rumble when memory value != value
    Rumble when memory value < value Rumble when memory value > value

General Guideline for Finding New Cheats:

  • Start game.
  • Go to Quick Menu -> Cheats -> Start or Continue Cheat Search.
  • Use left/right on “Start or Restart Cheat Search” to select a bit-size appropriate to the console you are using and the value your are searching.
  • For example, if you are playing Castlevania:SOTN on the PS1 and you want to search for the health value, then that’s a value that can be greater than 255 (0xFF), but it’s unlikely that the game developers anticipated a value larger than 65535 (0xFFFF) so set the search to 16-bit.
  • An alternate example – if you are playing Space Invaders on Atari 2600 and you want to search for the number of lives, then that’s a value that could possibly be stored in just 2-bits of data (max number of lives = 3) and since the Atari 2600 only has a very small memory space, it’s entirely possible that the memory location for the number of lives is only partially stored in a single byte while the rest of that same byte may store other important data that should not be touched. Set the size to 2-bit.
  • Select “Start or Restart Cheat Search” once you have selected the bit size
  • Go back to the game and lose a life
  • Go back to the quick menu and select “Search Memory For Values … Less Than Before” because when you started the search you had one more life than you do now. You could also try “Search Memory For Values … Equals To Before-1”. The number of matches should go down.
  • If the number of matches is still too great to peruse, then perform actions 5 and 6 repeatedly until the number of matches is something you feel comfortable trying (e.g. 10). If you run out of lives, just reset the game or restore a save state. Then your lives will likely be greater than the last time you checked, so select “Search Memory For Values … Greater Than Before”
  • Once you have a manageable list, select “Add the ## Matches to Your List”
  • Go back one menu to see the codes that have been added. Try turning just one on at a time to see if it has the desired effect. If not, turn it off and try the next one. One of them should be the location in memory that stores your number of lives and enabling the cheat in its default state will result in that memory location being overwritten by the cheat value continuously and voila infinite lives.
  • Alternately, you can “Search Memory For Values … Equal to ###” if you know the exact number (e.g. the number of hit points you have in an RPG).

Over 1000 new cheat and rumble codes added to the database across the following systems:

  • Atari 5200
  • Atari 7800
  • Atari 400/800/1200XL
  • ColecoVision
  • MSX/MSX2
  • NES
  • SNES
  • Sega Master System
  • Sega Genesis
  • TurboGrafx-16/PC-Engine

Incidentally, as a result of all this work, RetroSven also implemented savestate/serialization support for the mainline MAME core, and Reicast!

Many thanks to madmab, Bombbloke, Gilou9999, Bigby, Megaman_? for providing cheat and rumble codes for several different systems!

RetroArch 1.7.4 – Sync To Exact Content Frame Rate – Ideal for G-Sync/FreeSync users!


Blog post written by Tatsuya79

RetroArch 1.7.4 has a new feature that will be especially advantageous to users of variable sync display technologies, such as G-Sync/FreeSync. We call it “Sync to Exact Content Framerate”.

This option is the equivalent of forcing x1 speed while still allowing fast forward.
There will be no deviation from the core requested refresh rate alongside sound Dynamic Rate Control (the default RetroArch behaviour outside of this setting).
It should adapt to any refresh supported by your screen and provide smooth scrolling.

Steps to take for it to be effective:

  • Have G-Sync/FreeSync active in your video driver control panel and monitor menu
  • In RetroArch, set “Video” -> “Vertical Refresh Rate” to your monitor frequency
    (you can use “set display reported refresh rate” as it should give you your desktop refresh rate)
  • Activate “Frame Throttle”-> “Sync to Exact Content Framerate (G-Sync, FreeSync)”

Keep V-Sync active in Settings -> “Video”, it won’t work with it disabled.

Core-specific hints

  • MAME needs “Enable Throttle” in its core options to give the exact game timing.
  • Genesis Plus GX needs “System Region” set to “PAL” in its core options to switch to 50Hz. It doesn’t seem to be able to do it automatically.
  • This setting is not a silver bullet though, and it relies on the core to have proper frame timing. As a result, currently this setting can’t fix the frame pacing issues some cores suffer from (mGBA and Reicast have some at the moment).

    RetroArch 1.7.4 – Details on Discord integration


    Blog post written by Winneon

    RetroArch 1.7.4 now has extended Discord RPC integration! Previously before 1.7.4, RetroArch would act as any other game in Discord: as a simple “Playing” status that said you had RetroArch open. It wasn’t very descriptive or helpful other than displaying the name “RetroArch”. With the 1.7.4 update, RetroArch will display more information beyond a simple “Playing” status! Below is the full list of new features this new extended integration brings.

    • A new “In-Menu” and “In-Game” status that displays whether you’re in the standard RetroArch menu, or playing a game in a libretro core.
    • Playing & paused indicators displaying whether or not the currently running core is paused or not.
    • Sleek icons based on the Monochrome XMB theme that display what platform your game is running as. This is dependent on the core, not the individual game/content, so there will be case scenarios where it may be wrong (i.e. showing a GameCube icon when you’re playing Super Mario Galaxy in Dolphin).
    • A text indicator that displays what platform & core you’re playing under when hovering over the platform icon.
    • A text indicator that display what game/content you’re playing. If you chose your game/content from a playlist, it will use the playlist entry’s name instead of the content filename.
    • A counter/stopwatch that shows your current session’s playtime when you’re playing a game/content in a libretro core. The counter will pause when the game/content also pauses along with the new playing/paused indicators.

    How to use it?

    The extended Discord RPC integration requires updated core information files for most cores currently available. You can update your core info files by following the instructions below:

    1. Start RetroArch.
    2. Go to Online Updater.
    3. Select “Update Core Info Files”.

    Afterwards, to enable the Discord integration, following the remaining instructions.

    1. Start RetroArch.
    2. Go to Settings -> Privacy.
    3. Change “Enable Discord” from “OFF” to “ON”.

    Other than that, make sure you are running Discord on the same PC as your RetroArch client, and you have “Display currently running game as a status message” enabled in your Discord settings. Sadly, the Discord RPC API does not support remote connections.


    Beetle PSX HW PSA for Windows/AMD GPU users – update your drivers!

    Written by rz5

    From at least February to mid August there was a bug on beetle-psx’s GL renderer that only affected users with AMD GPUs.

    This bug was exposed when user ‘orbea’ corrected a mistake in glsm (an OpenGL state manager, made by libretro, used in beetle-psx), where it would it would hint that beetle-psx wanted a version 3.1 core profile OpenGL rendering context but, by specification, the ‘core profile’ is only from version 3.2 onward.

    It is still unknown why, but after orbea’s patch, AMD GPUs would render black frames on every situation except for FMVs.
    Intel and Nvidia GPUs were unaffected.
    Trying to find out what was wrong was very frustrating. CodeXL and RenderDoc were briefly used in the expectation that they would point out obvious API mistakes or perform API call order analysis and give a warning e.g. “are you sure you want to change this complex colored frame for a single-colored frame and present it?”

    It is unfortunate that sometimes bugs like this pop up and due to the blackbox nature of closed-source proprietary drivers, using a debugger like gdb becomes unfruitful for hobby developers when you arive at the point where your opensource the code starts calling into driver code.
    Then one begins to wonder: was it one of my commits in the past? Is our code going against the OpenGL spec in some way that triggers this behavior on the typically strict spec-following AMD drivers? Is it our fault at all?

    And while this bug was active, users affected by it surely grew frustrated at the lack of progress and some even got dissuaded from using beetle-psx altogether.

    Eventually, in mid August, update 18.8.1 came out for AMD’s Radeon Software graphics software and that seemingly fixed the bug. Which seems to indicate towards the problem being on the AMD driver side, not in beetle-psx.

    Guest project – IRATA.ONLINE – A Community For Retro-Computing Enthusiasts!

    We here at Libretro/RetroArch encourage the promotion of innovative grass-roots retro gaming efforts, and we thought it would be remiss of us not to bring to your attention this particular project, IRATA.ONLINE, ran by Thom Cherryhomes (System Operator). He has made many contributions and submissions to Libretro cores and RetroArch in general, and now he has embarked on an innovative new project that should prove interesting to people interested in the early days of home computing.

    If you’d like to read the full article, check out the PDF article here. Also check out the Youtube video linked above. If you’d like to meet with the author on Twitter, you can reach him here.

    What is IRATA.ONLINE?
    IRATA.ONLINE is an on-line service aimed at all of the various retro-computing communities. It takes the recently released implementation of PLATO that the CYBER1.ORG community provided to the public, and attempts to build a complete community infrastructure around it so that vintage computer users can have something truly unique, and compelling, to connect to.

    It all began with PLATO.
    IRATA.ONLINE’s roots, are in the legendary PLATO system. PLATO, which stood for Programmed Logic And Teaching Operations, provided a time sharing system originally chartered to investigate the potential for computers within the context of education, but the system and the community which grew up around it, proved to be so innovative, and resourceful, that it not only encompassed the cutting edge of education, but grew to create many firsts in social networking and on-line gaming, as well as providing a blue-print for collaborative software development through its built-in development environment.
    PLATO started, at the University of Illinois in Urbana-Champaign, in 1962, initially hosting two terminals on the ILLIAC-I computer system, before scaling upward to more terminals, better display technologies, and ever faster computers from Control Data Corporation. It reached its peak in the late 1970s, with many thousands of custom made plasma flat-screen, touch screen terminals connected to Control Data CYBER super-computer hardware, providing graphically intensive multi-user full screen interactive content, very rare for the time, when most time-sharing systems were still operated by teleprinters, and video terminals (and dedicated video displays) were extremely rare.

    Necessity and the Mother of Invention.

    I mentioned the flat plasma panel display, in passing, but it is a fantastic example of the cutting edge ingenuity possessed by the PLATO team. One must understand, that to create a graphical bit-mapped display requires memory, and in the mid 1960s, memory averaged a cost of $4 a bit, not gigabyte, megabyte, kilobyte, or even byte, bit. This meant that the traditional mechanism for providing the needed memory for a graphical display would have made the video terminal itself prohibitively expensive. The solution was to create an entirely new display technology, which would not need to constantly be refreshed; once a gas plasma display has a pixel enabled, it stays enabled without further assistance, effectively merging the display and its memory into one cost effective package, and making full screen interactive graphics possible on a per -dot basis, and without the drawbacks of a vector display. While most displays today now use liquid crystals, the modern plasma television and monitor displays descend directly from this technology.
    Through PLATO’s history, you can trace the beginnings of many of the things we take for granted today all in full use by the mid 1970s:

    1. Discussion forums (in the form of Notes, in fact Lotus Notes descends directly from PLATO NOTES) (first on-line in 1973)
    2. Multi-user dungeons (games like Wizardry, and Ultima owe their direct existence to Avatar, Moria, and other such dungeons on PLATO, which pioneered a first person display, multi-player interaction, character storage and development, and more.
    3. The first multi-user chat system, in the form of Talk-O-Matic, providing the ability for multiple people to talk, over multiple rooms, simultaneously.
    4. The first 3D dog-fighting flight simulator, Airfight, allowing multiple players to fly jet aircraft, shooting each other down, with realistic flight physics, thanks to the floating point capabilities of the 60-bit supercomputer it ran upon.
    5. The first space conquest game, Empire, grand-daddy to such games as Elite, and Conquest, provided a Star-Trek™ (trademark of Paramount) themed Space conquest game where you are pitted against other players to conquer planets and resources.
    6. The system sported screen-sharing, allowing users to send their screen, to other users, while talking back and forth, providing an early form of instruction and collaboration for instructors, authors, and students alike. This works from anywhere in the system, regardless where you are, in a menu, playing a game, developing some code in the system, it is ubiquitous.
    7. PLATO not only provided a programming language to write new programs, TUTOR, but it also provided a complete programming environment, even with dedicated visual full screen editors for code, for drawing new graphics, character sets, and even proportional fonts (in the form of line-sets). This was bolstered with excellent on-system documentation, replete with tutorials and examples so that anyone who wanted or needed to could write new software for PLATO.
    8. PLATO terminals were very extensible devices, which could connect to all sorts of external devices, such as the Gooch Synthetic Woodwind (GSW), which provided a multi-channel “sound card” for musical output.
    9. And so much more.

      Many of these innovations, as well as the detailed history of PLATO and its community are detailed in an excellent book: The Friendly Orange Glow: The Untold Story of the PLATO System and the Dawn of Cyberculture by Brian Dear, who spent over a decade authoring the book; the result of which is an unbelievably engaging and inspiring historical tome. This book is the very reason that I became an active contributor to the PLATO community, and why I ultimately started IRATA.ONLINE, to bring this system to retro-computing users who otherwise would never have known about it.

      All of which I have previously mentioned is present on IRATA.ONLINE, it is not a re-implementation of PLATO, but an actual PLATO system that is running inside an emulation of a Control Data CYBER-170/865 60-bit supercomputer, emulated by the excellent DTCyber emulator written by Tom Hunter. Various members of the CYBER1.ORG community acquired the requisite permissions to be able to allow others to use the content for non-commercial purposes, and to this end, I am providing this service, for no charge or am otherwise asking for any form of donation or making profit from the hard work that CYBER1.ORG pulled off to make this available for anyone who wanted to run their own PLATO system.

      Where do I sign up?
      You can sign up by going directly to the IRATA.ONLINE website. The website contains not only an overview of the IRATA.ONLINE service, it also provides everything needed to be able to access the service, and even includes a media library of demonstration videos showing various aspects of the service, as well as a detailed technical section which provides not only a complete description of the protocol used by terminal programs to access the service, but multiple source code examples of working terminals to be able to get a new terminal written for a new system, very quickly.

      Who would be interested?

      IRATA is potentially interesting for a number of different groups of people:
      – Vintage computer users. Virtually every 8 and 16-bit vintage computer has some way to connect itself to the Internet, but you can’t put a Commodore 64 onto Facebook, nor can an Apple II log onto Instagram. IRATA.ONLINE provides a place where every vintage computer user with a Wi-Fi MODEM, or ethernet adapter and terminal software to connect and play together.
      – Computer Archaeologists. PLATO systems have over three decades of software code, not only in user facing lesson content, but in system level tools, much of which lacks even a description of what is available and its functional descriptions, much less implementation details. These artifacts need to be discovered and documented. Lots of treasures are hidden within.
      – Coders and Artists. IRATA.ONLINE, being a PLATO system, provides a complete development environment, to create new programs (such as new games) that can be utilized by all users on IRATA.ONLINE. The various editors allow not only coders to get in on the action, but also artists.
      – Retro Game Players. – IRATA.ONLINE brings iconic and historic games to a wider game playing audience to play.

      Part of a Bigger Community.

      IRATA.ONLINE stands alongside CYBER1.ORG as a long-term PLATO installation. I consider CYBER1.ORG and IRATA.ONLINE to be two different towns on the same map, with different, mostly non-overlapping communities. While CYBER1.ORG is mostly comprised of PLATO system expatriates, and they cater to an authentic PLATO author experience for all of its users, IRATA.ONLINE intends to bring PLATO to a new group of retro-computing users, who, while they may have heard of PLATO in a historical context, may never have actually seen or used it. Having both IRATA.ONLINE and CYBER1.ORG enriches the overall PLATO community, strengthening it, and since both systems have their own software bases, each with different lessons, there are compelling reasons to visit both systems. And since CYBER1.ORG released the CYBIS distribution and its required emulation to the public, it is possible that other systems can also appear, each with their own unique characteristics.

      Facilitating a Community
      Providing the software and doing the requisite engineering work to build the system is only one part of the whole equation. It is my own intention to also function as a community facilitator for everyone else on IRATA.ONLINE. Do you have an idea of something you want to make, with the system? I will help make it happen, and provide what you need to be able to take ownership of your idea, within the community.

      There is also a conscious effort to provide workshops, and community gatherings to use the system, and to show how to make new things with the system. For the former, I intend to offer various workshops on how to create games and other types of programs, with the system, utilizing Google Hangouts. For the latter, regular community gatherings will bring people together to play games of Avatar, Airfight, etc… where we all learn together. Both of these types of things are coordinated via the IRATA.ONLINE Facebook page, as well as providing postings on the primary website.
      What will come of this? Let’s find out.

    Libretro Status Updates

    So, what have we been up to?

    Dolphin and Ishiiruka cores

    The Dolphin libretro bounty has led to this rebasing of the Dolphin libretro core. It is now up-to-date with the latest sourcecode, and it now supports OpenGL, Direct3D11 and Vulkan! It is even available for RetroArch on Android right now, provided you use the AArch64 version (since Dolphin itself requires a 64bit CPU on Android anyway).

    In addition to this, I have also taken a look at porting Ishiiruka (a Dolphin fork) to Libretro. This one is not as far along yet as the mainline Dolphin core, but we are already making steady progress with the OpenGL renderer!

    RetroArch 1.7.4 – WIMP updates

    There will continue to be improvements to the WIMP UI in RetroArch 1.7.4. One of the big new features will be a fancy grid view. Previously, the WIMP UI only had a list view.

    Beetle PSX HW

    Some important bugs have been fixed. Finally, mask bit emulation has been (hackishly) implemented by flyinghead for the OpenGL renderer, so Silent Hill’s fog finally displays properly. iCatButler has made PGXP much more robust over the past few weeks, which has led to many rendering bugs being fixed when PGXP is enabled.

    Reicast

    You can read about all of our improvements to the Reicast core in this separate blog post here.

    Beam racing bounty – up to $1132!

    The beam racing bounty has fetched $1132 so far!

    RetroArch is already at the tip of the spear when it comes to latency mitigation strategies with features like runahead, configurable max swapchains, frame delay, custom video context drivers, etc. Beam racing is a new lagless VSYNC technique has been developed that is already implemented in some emulators like WinUAE. The aim of this bounty is to finally implement it in RetroArch as well, and the users/devs that want it have put their money where their mouth is for this particular feature!

    Reicast Libretro – Updates 26-7-2018

    Reicast Libretro and Reicast OIT Libretro have recently been updated.

    Here is a listing of all the changes/fixes/improvements:

    • (Dreamcast/Compatibility) Eldorado Gate – Broken opening FMV fixed (link)
    • (Dreamcast/Compatibility) Demolition Racer now works (link)
    • (Dreamcast/Compatibility) Redline Racer – Graphics bugs fixed (link)
    • (Dreamcast/Compatibility) Fixed rendering issues with Tokyo Xtreme Racer games (link)
    • (Dreamcast/Compatibility) Conflict Zone – Modern War Strategy now works
    • (NAOMI/Compatibility) Metal Slug 6 now works without graphics bugs

    Reicast OIT – Increased compatibility with AMD/Intel GPU drivers

    AMD GPU owners on Windows/Linux and Intel HD users on Linux/Mesa should probably be able to use the Reicast OIT core now, as several GLSL compliance bugs have been fixed by now.

    Note that Reicast OIT can still be very buggy for Intel HD users on Windows, and slow to boot. The renderer really lends itself better to discrete GPUs from AMD/NVidia.

    Render to texture upscaling!

    Previously, games which rendered to texture (such as Dead or Alive 2 or Crazy Taxi) would always output at 1 x native resolution. Now, you can set the upscaling factor. Games which render the screen to a texture should look much better as a result, provided your GPU is up to the task.

    An example – here is a comparison of the Crazy Taxi pause screen – left is 1x native resolution, right is 4x upscaled –

    xBRZ Texture upscaling

    This new setting allows you to upscale all the textures in a game up to 6 x their original resolution using the xBRZ texture filtering algorithm! See it in action with Shenmue in this video below –

    Reicast Libretro – Updates!

    Reicast Libretro and Reicast OIT Libretro have recently been updated.

    Here is a listing of all the changes/fixes/improvements:

    • (Reicast Libretro) – now requires OpenGL 3.0 core profile (and GLSL 1.30).
    • (Reicast Libretro OIT/OpenGL) – Increased compatibility with other GL 4.3 driver implementations.
    • (Reicast Libretro OIT) – Several performance improvements.
    • (Reicast Libretro OIT) – Fixed graphics issues in Resident Evil 3: Nemesis (link).
    • (Reicast Libretro OIT) – Fixed graphics issues in Dino Crisis (link).
    • (Dreamcast/PVR2) Bump mapping implemented (used in Rayman 2/Shenmue 2) (link).
    • (Dreamcast/PVR2) Trilinear filtering implemented (needed by NFL 2K2 in particular to display some ground textures correctly).
    • (Dreamcast) Bomberman Online – Fixed glitching title screen (link).
    • (Dreamcast/Compatibility) Shenmue 1 crashes fixed (thanks to x64 Dynarec CheckBlocks implementation)
    • (Dreamcast/Compatibility) Shenmue 2 crashes fixed (thanks to x64 Dynarec CheckBlocks implementation)
    • (Dreamcast/Compatibility) Alone In The Dark: New Nightmare – improvements to YUV / palette textures – no more downgraded colors in backgrounds (link).
    • (Dreamcast/Compatibility) Dead or Alive 2 LE (Japan) crashes fixed.
    • (Dreamcast/Compatibility) Draconus – Cult Of The Wyrm/Dragon’s Blood – fogging graphics glitch fixed (link).
    • (Dreamcast/Compatibility) Evolution: The World of Sacred Device (UK) now renders flat shaded polygons correctly (link).
    • (Dreamcast/Compatibility) Shadow Man works now. Set Cable Type to VGA or otherwise it will crash after the Dreamcast boot screen.
    • (Dreamcast/Compatibility) NBA 2K/2K1/2K2 now work.
    • (Dreamcast/Compatibility) Napple Tale crash no longer happens after leaving the circus.
    • (Dreamcast/Compatibility) Ooga Booga now goes ingame, some issues still remain though.
    • (Dreamcast/Compatibility) Soldier Of Fortune AI bugs fixed (link).
    • (Dreamcast/Compatibility) Test Drive Le Mans/Le Mans 24 Hours now works, still some audio glitches though.
    • (Dreamcast/Compatibility) Looney Tunes Space Race now works.
    • (Dreamcast/Compatibility) Wacky Races now works, still has some graphics glitches though.
    • (Dreamcast/Compatibility) San Francisco Rush 2049 – screen display issues fixed – Screen cropped at the top (link).
    • (Dreamcast/Compatibility) Fur Fighters now goes ingame, some issues still remain though.
    • (Dreamcast/Compatibility) Twinkle Star Sprites no longer unplayably slow due to excessive logging.
    • (Naomi) Analog input implemented for games like Monkey Ball/Virtua Tennis 2.
    • (Naomi) EEPROM saving/loading implemented.
    • (Naomi/Compatibility) Hokuto No Ken / Fist Of The North Star now works.
    • (Naomi/Compatibility) King of Fighters New Wave – no longer crashes during fights, there are still display glitches though.

    Also be sure to check our Youtube channel, where you can view a lot of videos on recent Reicast Libretro developments and more!

    RetroArch – Metal video driver for modern macOS!

    RetroArch has now gained a Metal renderer! Targeting modern macOS at first. XMB/MaterialUI works, menu shader pipelines work, Slang shaders work thanks to SPIRV-Cross, fonts work, etc!

    Previously, RetroArch for OSX/macOS only had an OpenGL video driver. Since Apple will be deprecating OpenGL support in the near future, this Metal video driver essentially future proofs RetroArch for mac!

    Reicast libretro updates – Shenmue 1/2 now runs! Plus Reicast Hackathon event July 6-8 (Switzerland)

    UPDATE (1/7/2017): Dynarec crashes/bugs should now be fixed on OSX/macOS and Linux as well!

    It has only been a day since we released our blog post detailing all of the improvements the Reicast core has received, but in less than a day a lot has happened that requires an updated blog post –

    64-bit dynarec – Self-modifying code

    Shenmue 1/2, Marvel vs. Capcom 2, and Heavy Metal Geomatrix are all problematic games that are known to be hard to emulate due to them being prone to relying on self modifying code. The 64-bit dynarec did not have any kind of block checking yet to compensate for this.

    skmp has finally added this functionality to the 64-bit dynarec, and as a result, Shenmue 1/2 should now be fully playable, as well as games like Heavy Metal Geomatrix and Marvel Vs. Capcom 2.

    Shenmue 1

    Shenmue 2

    Marvel Vs. Capcom 2

    Other improvements

  • Naomi/Atomiswave bootup screens no longer flicker.
  • Bomberman Online title screen FMV sequence renders correctly now. (thanks to flyinghead)
  • (Non-OIT) Fix some RTT (Render To Texture) regressions. (thanks to flyinghead)
  • Reicast summer Hackathon – July 6/7 2018 (06~08.07.2018)

    skmp, the lead developer of Reicast/nullDC, will be holding a summer Hackathon event for Reicast this summer! It will be held in Switzerland (Google maps info here).

    If you are interested in joining, please fill in the form and put “reicast” as the project, and “reicast users” as to who will be benefiting. You can of course apply with your own projects, or work on multiple things during the weekend.

    There’s free food at the hackathon and very pretty mountains.

    Some details below

    Hack4Glarus is back! This time it is the Hack4Glarus Summer Edition. Because you shouldn’t miss how pretty Glarnerland is in the summer.

    For whom is it?
    Anyone who is into hacking a weekend long. You do not necessariliy need deep technical knowledge, but you should be interested in technology.

    Where does Hack4Glarus take place?
    The same place as the last time. It will happen at Spinnerei Linthal, a very cool old factory hall at Linthal. It’s also where our Data Center Light is residing.

    What are the topics?
    Glarus, mountains
    IoT (we provide a LoRaWAN stack)
    Open Source
    Linux / Unix / BSD (especially: Devuan)
    IPv6 / Networking
    Virtualisation / Containers / Kubernetes
    Emulation

    What will be provided at Hack4Glarus?
    – food and drinks
    – place to sleep
    – very cool environment

    What do I need to bring to Hack4Glarus?
    – great ideas
    – a sleeping bag
    – your awesome self

    How can I apply?
    Visit the following link and fill out the simple form, and we’ll contact you. We have only limited seats available as always, so if you’re interested, we recommend you apply as soon as possible. 🙂

    You can checkout our first Hack4Glarus from last December here! https://www.youtube.com/watch?v=OXTaR-P5iA0

    Reicast libretro now supports NAOMI + other additions!

    Reicast libretro now supports Sega Naomi arcade games! Both Reicast and Reicast OIT have been updated.

    Limited to Sega Naomi 1 for now. Atomiswave to GD-ROM conversion games can also work, some of them might have some issues though.

    Sega Naomi

    Naomi was an arcade videogame system based on the Sega Dreamcast hardware. While being nearly identical in terms of architecture, it did have double the RAM and fillrate of the home console version.

    Naomi became one of the longest lasting arcade systems to be used second only to the Neo Geo AES. Various licensees (such as Capcom, Arc Sys, and even Nintendo) licensed the hardware during its lifespan to produce arcade games with.

    How to use it

    You will need a NAOMI BIOS file inside your system directory. The BIOS with the best compatibility so far is epr-21576g.ic27. This is a file that is contained inside the MAME NAOMI bios zip. Rename this file to naomi_boot.bin and move it to your ‘system directory/dc directory.

    What content to use

    You will need roms that worked on nullDC Naomi. These will typically be .dat/.lst or .bin/.lst pairs.

    The last value of the .lst file specifies the size of the .dat/.bin file in hexademical value.

    Here is an example of the .lst file used for Toy Fighter –

    Toy Fighter
    “Toy Fighter.dat”, 0x0000000, 0x05800000

    You can find the existing .lst files here.

    NOTE: MAME ROMS won’t work (yet). Proper Atomiswave roms won’t work, however, most Atomiswave to Naomi GD-ROM conversions should at least work or boot.

    Currently existing issues

    There are some issues that remain with Naomi support:

    • By default, two arcade sticks are hooked up.
    • There are some video and syncing glitches right now. One of the most immediately apparent is the flickering Naomi boot screen.
    • There is no analog and/or shoulder button support yet for Naomi games.

    Videos

    Toy Fighter

    Dolphin Blue

    King of Fighters XI

    Dead or Alive 2 Millennium

    Street Fighter Zero 3 Upper

    Other enhancements

    Fast GD-ROM Loading

    A new core option called ‘GD-ROM Fast Loading Mode’ has been added. It can severely cut down on loading times, sometimes even removing them almost entirely as can be seen in the game ‘Daytona USA 2001’ here.

    Various sound fadeout bugfixes

    Through some judiciously applied hacks, the following games no longer suffer from sound fadeout issues:

    • Border Down
    • Bomberman Online
    • Chaos Field
    • Death Crimson OX
    • Fatal Fury/Garou: Mark Of The Wolves
    • Jet Set Radio/Jet Grind Radio
    • Napple Tale
    • Phantasy Star Online
    • Phantasy Star Online Ver. 1
    • Radirgy
    • Segagaga
    • Sonic Shuffle
    • Trigger Heat Exelica
    • WWF Royal Rumble

    Graphics fixes

    Thanks to the awesome efforts of flyinghead, several graphics glitches have been fixed –

    Workaround for Virtua Tennis ball color problem.

    Fix – Psyvariar 2, Explosions don’t render correctly

    Other changes

    Reicast OIT

  • Added an accumulation Pixel Buffer Size core option. You can set this to 512MB, 1GB or 2GB, depending on how much VRAM your video card has. For higher resolutions to output correctly, you might need to increase this to the highest value possible.
  • House Of The Dead 2 failed a verify assert – should boot and be playable now.
  • Rebase ADPCM decoding.
  • Reicast (non-OIT)

  • Multipass rendering is now enabled by default. Plenty of games need this for accurate rendering and the performance tradeoff should be minimal.
  • House Of The Dead 2 failed a verify assert – should boot and be playable now.
  • Rebase ADPCM decoding.
  • What’s next?

    We intend to have the next version of RetroArch available soon. On top of that, despite numerous delays, Supermodel will finally be coming soon! We felt it was right to get Sega Naomi up and running first before we unveil that!

    Introducing Reicast OIT libretro core + updated Reicast regular core

    The Reicast libretro core has seen several big improvements as of late, and we thought it would be remiss of us if we did not take this opportunity to talk about it.

    There are two cores now

    There are now two Reicast cores:

    • Reicast regular
    • Reicast OIT

    Reicast regular: Contains an OpenGL renderer that requires OpenGL 2.x on the desktop and GLES 2.x on mobile.

    Reicast OIT: Contains an OpenGL renderer that requires OpenGL 4.3, and as a result is only available for Windows and Linux. Reicast OIT might have significantly increased system requirements, but in return you get much more accurate graphics which tend to fix nearly all the issues that plague Dreamcast graphics with the regular version.

    How to get it

    In RetroArch, go to Online Updater -> Update Cores. From there, Reicast and Reicast OIT should be available for the following platforms:

    • Linux
    • Windows
    • Mac (Reicast OIT is not available for Mac due to no GL 4.3 support)

    What is new/improved in both Reicast versions?

    Reicast regular

    Reicast regular’s OpenGL renderer has received many improvements that greatly increases the graphics accuracy and squashes many graphics bugs that plagued games in the past.

    Here are some of the Dreamcast’s GPU features that are now implemented:

    • Tile clipping support.
    • Fogging support.
    • Volume modifier shadow support.
    • Multipass rendering.
    • Render to texture buffer.
    • Log 2 depth buffer.

    Some additional enhancements include a log 2 depth buffer, fixing much of the polygon glitching that could happen in the distant background in many games.

    All of these additions to the existing GL2 renderer in Reicast regular come courtesy of flyinghead.

    Reicast OIT

    Reicast OIT uses an entirely new graphics renderer written by flyinghead targeting OpenGL 4.3. In addition to boasting all the features that Reicast regular also enjoys as of this date, it also has the additional advantage of incorporating Order Independent Transparency, so that we don’t have to do hacky and error prone alpha sorting hacks, which is our main resort in Reicast regular.

    • Tile clipping support.
    • Fogging support.
    • Volume modifier shadow support.
    • Multipass rendering.
    • Render to texture buffer.
    • Log 2 depth buffer.
    • Order independent transparency.
    • Two-volume mode support.

    NOTE: This requires a compatibility context for OpenGL 4.3. You might encounter issues with Intel/AMD GPUs right now on Linux using Mesa drivers since they require core context. Core context cannot currently be used becasue there are still graphic bugs to be solved when using this.

    Showcase of new emulated features

    Flyinghead has a terrific fork of Reicast that dramatically increased the rendering accuracy of Reicast’s OpenGL renderer. We backported these features with the gracious help of flyinghead. All kudos goes to him.

    Tile clipping support


    The Dreamcast’s PVR2 had a tile clipping GPU feature that was used to obscure portions of the screen. It was cheaper to keep rendering portions of the screen that were not meant to be seen by the user and just clip them away instead of deciding not to render them at all. This was previously unimplemented, which led to all sorts of graphics glitches. This has now been finally implemented in both cores.

    Fogging support


    The Dreamcast had a 128-bit fogging table that games could take advantage of. Plenty did, such as Cannon Spike, Blue Stinger, Resident Evil: Code Veronica, Virtua Fighter 3tb, and more games. This is now finally implemented for both cores.

    Volume modifier shadow support


    The Dreamcast made use of volume modifiers in order to simulate shadows in many games. This was previously either completely unimplemented or very buggily rendered. Volume modifiers are now correctly implemented in both cores (Reicast and Reicast OIT). Performance costs should be minimal and you definitely notice the shadows being cast now by characters and other objects.

    Multipass rendering


    The game V-Rally 2 relies on multipass rendering for rendering the UI elements on top of the game screen. This has finally been emulated on both cores (Reicast and Reicast OIT).

    Render to texture buffer


    Not only has render to texture being reimplemented (leading to much faster performance), but certain games such as Tony Hawk’s Pro Skater 1/2 would render to VRAM for rendering shadows. The upshot of this is that the shadow looks much more convincing vs. merely using volume modifiers in order to simulate shadows. This feature has been finally implemented in both cores.

    Log 2 depth buffer


    Thanks to the logarithmic depth buffer, many rendering bugs have been fixed. Some games have been completely fixed as a result, such as Cannon Spike, while others such as Soul Calibur no longer have the scenery in the background glitch out.

    Note that this relies on gl_FragDepth being available. This might become an issue when we bring the Reicast libretro core to mobile, since it’s not a part of the GLES2 spec and might require either extensions or GLES3 support.

    Order Independent Transparency

    NOTE: This feature is exclusive to Reicast OIT, and is not available in the regular Reicast core.


    Other improvements

    Date/time saving is finally fixed


    Finally you don’t have to keep inputting date/time again whenever starting a game with the Reicast cores.

    Be sure to set a correct date/time, as entering a wrong date might lead to it not being able to save.

    Analog triggers

    The core finally supports analog triggers. The Dreamcast had analog L/R triggers, previously we only had digital trigger simulation, where the L1/R1 would simulate 50% press of the trigger and L2/R2 would be a 100% press of the trigger. While this mode is still available if you enable the option ‘Digital Triggers’, you can also now just take advantage of the new digital trigger capabilities.

    In addition to this ,deadzone issues should be fixed now, so there should hopefully be no more analog input disparities between Xbox pads and PS4 pads.

    Videos

    RetroArch + Bliss-Box Partnership


    RetroArch is partnering with Bliss-Box to bring their unique, modular solution for using original gamepad hardware to RetroArch/libretro’s numerous retro-gaming cores. The partnership creates a single solution for retro-gaming with original controllers without the need for configuration workarounds or external launchers.

    This functionality has been quietly added to RetroArch for a few versions, but we think most of the kinks have been worked out, so in honor of that, we’re offering a special discount on Bliss-Box bundles for RetroArch users. By clicking on the referral link on this page, you’ll get two cables for free and a small portion of the proceeds will go toward continuing development of RetroArch and libretro:

    RetroArch 1.7.3 – Released!

    RetroArch 1.7.3 has just been released! Grab it here.

    This latest version has also been uploaded to the Google Play Store.

    If you’d like to show your support, consider donating to us. Check here in order to learn more.

    Highlights

    New WIMP GUI for PCs!

    RetroArch now has a WIMP GUI, powered by the powerful multimedia framework Qt! This feature is available currently for Windows and Linux. macOS users will have to wait a while longer for this feature to arrive to their platform.

    The WIMP GUI works as a companion to the main RetroArch window. You bring it into view by pressing the F5 key on your keyboard. From there, you can do many tasks:

    – Select a game from any playlist
    – Browse the file system or any attached media storage device and load a game.
    – Scan directories for content and generate system playlists.
    – Associate cores to an entire playlist or associate only one entry of a playlist to a specific core

    How to easily scan content

    Totally customizable appearance

    Switching between color themes

    Multiple language support (English/Japanese)

    Some things we’d like to note:
    * This has been the combined work of bparker and Tatsuya79 that have worked tirelessly on this for a month. We are aware of several features that we’d like to implement, such as playlist editing, grid view layouts, etc.
    * We are open to feedback on the GUI.
    * You will likely not see this WIMP GUI on Android or iOS (or any game console for that fact) anytime soon. WIMP interfaces don’t lend themselves well to devices that rely on touchscreen or gamepad-based controls.
    * (For Linux users) The Qt GUI should definitely work on X11. If you’d like to run it on Wayland, make sure you have the appropriate packages installed for Qt5 in your package manager. Be aware that Qt 5 cannot gracefully fail right now in case a platform module/plugin is missing from your system. This means that if you invoke the companion UI by pressing F5 on Wayland, and for whatever reason the platform module that Qt relies on in order to work on Wayland is not there, there is no way for RetroArch to gracefully fail there and just not show the companion UI. There will be a crash instead. Unfortunately we have talked to some Qt developers and they see no other way around this for now. The same situation applies for DRM/KMS right now. If we can find a better solution to this, we will certainly return to it.
    * (For mac Users) You will have to wait a bit longer for this to arrive to the Mac port unfortunately. Hopefully that wait is not too long.
    * We would like to still improve initial bootup times for the companion UI. Right now, on first initial startup, it can take anywhere from 5 to 10 seconds (depending on your harddrive and its performance), but on subsequent boots should only take 2 seconds or less for first startup. Hopefully by resorting to Link Time Code Generation and other avenues we can shave off some more seconds off this boot time.

    Starting up the UI on startup


    If you would like to start up the companion UI at first startup instead of having to manually press F5 first, you can do so. Make sure that Advanced Settings are enabled first (Settings -> User Interface -> Show Advanced Settings). After that, make sure the option ‘Show desktop menu on startup’ is enabled.

    Real-time audio mixer controls – menu music, mixing of audio channels, separate volume controls, etc

    In RetroArch 1.7.3 we have given RetroArch’s built-in audio mixer a huge overhaul.

    Improved file format support – Now supports MP3 and FLAC thanks to mudlord. The audio mixer now supports MP3, FLAC, Ogg Vorbis, and WAV files in total.

    Live manipulation/control of the audio mixer in the menu – you can now access the audio mixer inside the menu. You can set audio tracks to each of the 16 available streams, and you can issue commands to them such as Play (normal/Looping/Sequential), Stop or Remove.

    Individual volume setting per audio stream – You can now also individually set the volume for each separate audio stream inside the mixer. If you wish to override all audio stream’s volume with one global override, you can go to Audio Settings and set Audio Mixer Volume Level. Reset this back to 0 dB if you want individual volume per stream to work again.

    Increased the amount of max streams – Previously, the audio mixer was limited to 8 streams in total. This figure has been doubled to 16.

    New album mode-like features – If you have a couple of tracks queued up in the audio mixer and if you’d like to play them back like a regular audio music player (played sequentially, one song after the other) – select ‘Play (Sequential)’. When the song is finished playing, it will look at the other streams directly down below it. If one of these streams is in ‘stopped’ state and if there is audio loaded there, it will start playing it. It will also in turn set this audio stream’s play state to ‘Sequential’ and it will keep going down the list until the end of the audio stream mixer’s ‘list’ has been reached.

    Music can play inside the menu now – Previously, you could only listen to audio streams with the audio mixer once you were inside a game and a core had been loaded. Once you went back to the menu, the sound mixing would stop there. You can now set ‘Enable menu audio’ to ON in order to be able to have music inside the menu as well! You can seamlessly jump back and forth between menu and game and have the music continue running.

    Other additional niceties –
    * The music is mixed in with the rest of the core’s sound data, so the music also is affected by fastforwarding and is thus sped up when you fastforward it, just like regular game audio would.

    NOTE: Not all platforms have received MP3 and FLAC support yet. So far, we have enabled it already for Windows, macOS, Linux, Android and iOS. More platforms might follow.

    Runahead – improved performance with Genesis Plus GX

    Dwedit sent some patches to improve Genesis Plus GX’s performance with runahead. We put this briefly to the test on the Xbox OG. Previously with 1.7.2, Sonic 2 on version 1.7.2 did not reach fullspeed with runahead set to 1 frame. With version 1.7.3, we can finally play at fullspeed with runahead set to 1 frame. Setting it any higher than 1 proves too taxing for the old system.

    Game Core Description FPS – 1.7.2 FPS – 1.7.3 Format
    Sonic 2 Genesis Plus GX No runahead Fullspeed Fullspeed Xbox OG
    Sonic 2 Genesis Plus GX Runahead – 1 frame Not fullspeed Fullspeed Xbox OG

    CRT Switch Res on Linux – GroovyMAME-like features for 15KHz capable CRT monitors!

    Starting as of version 1.7.2, RetroArch now has the ability to query cores for their exact video timing data, which can be used to switch to native-resolution, 15 kHz modelines for use with standard-definition CRT TVs.

    This is a big step for retro purists, as RetroArch can now output “pixel-perfect” video with accurate timing to compatible displays, even quickly switching between interlaced and non-interlaced modes on the fly.

    This capability was previously Windows-only and requires modelines to be created in advance by CRT_EmuDriver or Custom Resolution Utility with a compatible GPU.

    Starting as of version 1.7.3, Linux support has been implemented too!

    In case you’d like to learn more, follow these links:

    Input remapping system fixes for overlays

    Radius fixed several bugs which would prevent the new input remapping system from working with onscreen overlays.

    General changelog

    AUDIO: Audio mixer supports FLAC/MP3 file types now!
    COMMON: Fixed bug ‘crashing in cores that don’t range check retro_set_controller_type’. Some people were having crashes when device is set to RETRO_DEVICE_NONE and the cores don’t check the number of ports, in VBAM’s case it was overflowing and crashing. QuickNES was crashing too.
    COMMON: Fixed buffer overflow in url encoding (affecting MSVC2010/2013).
    COMMON: (QuickMenu) Added Configuration Override submenu.
    HID: Merge new HID subsystem.
    HID: Fix WaveBird support for the Wii U GCA.
    HID/OSX: Fix regression with IODHIDManager – gamepads which are connected later would not be autoconfigured.
    LOCALIZATION: Update Italian translation.
    LOCALIZATION: Update Japanese translation.
    LOCALIZATION: Update Portuguese translation.
    MENU: New WIMP Qt GUI!
    MENU: Audio mixer now works in the menu without any cores loaded. You have to enable the setting ‘Enable menu audio’ for this to work.
    REMAPPING/OVERLAYS: Fix regression – overlays could no longer be remapped.
    SCANNER: Add Wii Backup File WBFS support.
    X11: CRT SwitchRes support for X11/Linux.

    What is coming next?

    We can already give you a sneak peek of some of the new features the new WIMP GUI will be having in the upcoming version. Right now, playlist entries are only displayed as a list. The new version will also allow you to display playlists in a grid view (both small and big). See the images below for an indication of how that will look like.

    RetroArch 1.7.2 – Released!

    RetroArch 1.7.2 has just been released! Grab it here.

    This latest version has also been uploaded to the Google Play Store.

    If you’d like to show your support, consider donating to us. Check here in order to learn more.

    Highlights

    Runahead latency reduction – better latency than the real hardware

    A visual representation by Durante of how the runahead system works in practice.
    A visual representation by Durante of how the runahead system works in practice.

    This might just be our biggest release yet, thanks in no small part to the new runahead latency reduction system. This feature has already been all the rage over the Internet. Well known people like Durante of DSfix fame praised it and the popular site Ars Technica has dedicated an entire article to this game-changing feature.

    We ran an article on this new feature before, and since then, several facts have changed on the ground which bears pointing out. First of all, several performance improvements have been made since. Secondly, the feature has now been enabled for the vast majority of the RetroArch platform ports.

    The versions that have this feature enabled and exposed now includes:

    • PlayStation3
    • Xbox OG
    • Wii
    • WiiU
    • Nintendo Switch
    • Android
    • PC (Windows)
    • PC (Linux)
    • macOS
    • iOS

    Here are some basic things you should know:

    • Every game has a certain built-in amount of lag frames. In order for the runahead system to perform as expected, you should set it to the same amount of frames to read ahead that the game you’re running is working by. So, for example, if a game like Super Mario World for the SNES has a guaranteed 2 frame input lag, for the best results, set Runahead frames to 2.
      You can count the amount of lag frames a game has by using the frame advance feature in RetroArch.
    • For playable performance, your system should be at least capable of running the core at twice its regular speed. These performance demands go up commensurate to the amount of frames you want to run ahead. The higher performance you get with a core, the more frames you can run ahead at fullspeed.
    • While the runahead system is core agnostic and therefore technically we don’t need to patch up cores in order to work with the runahead system, there are several things that can be done in order to improve performance considerably. To this end, Dwedit has submitted several patches to some of the cores in order to make them perform much better. Some of these cores include (but are not limited to) the Snes9x cores, QuickNES, FCEUmm, Nestopia, Gambatte, and even Mednafen/Beetle PSX.
    • There are currently some things you should know about Mednafen/Beetle PSX when it comes to runahead. First of all, in order for this core to work correctly with runahead, you should use the software renderer. The OpenGL and Vulkan renderers are currently buggy with runahead. Second, even after several savestate performance improvements, it is unlikely you will be able to set runahead to higher than 1 frame while still being able to run at fullspeed. This might likely change once our bounty for the Beetle PSX dynarec is finally fulfilled (and on that note, it has already reached $720, and a coder is working on a potential solution)
    • An often heard question that has been asked is – will this work on a Raspberry Pi? There is no straight answer to this since it heavily depends on the core’s performance. Based on our performance tests on the PS3 and Xbox OG, QuickNES and Gambatte should be at least two cores that should run at fullspeed with runahead set to 6 frames or less. Your mileage may vary on any of the other cores. The quick rule of thumb is that the faster the core, the higher chance there is to get it to run at fullspeed with more runahead frames.

    How to check the amount of lag frames a game has

    RetroArch has the ability to pause a core and advance it frame by frame. Perform the following steps to determine the amount of lag frames of a game:

    • Pause emulation (press ‘p’ button on keyboard).
    • Press and hold the jump button on the controller.
    • Advance emulation frame by frame (press ‘k’ button on keyboard) until the character jumps.

    The number of k presses before you get a reaction should be the number of lag frames you can safely remove with run ahead.

    Performance, scalability

    So, how well does all this scale? Of course, the more expensive hardware you throw at a latency reduction approach like this the better, but how low can we actually go in terms of specs and still obtain good results? To figure out a basic answer to this question, I decided to test the runahead system on two old game consoles that are not exactly powerhouses at this point. The first of the lot is the Xbox OG, powered by a fairly mundane Pentium 3/Celeron 733MHz CPU. The second is the PlayStation3. Its PPU is roughly equivalent to a Pentium 4 2.4GHz CPU in terms of real-world performance, and even that comparison is probably pushing it. So this is not exactly powerful hardware.

    Street Fighter Alpha 3 FBAlpha 2012 No runahead 104fps PS3
    Street Fighter Alpha 3 FBAlpha 2012 Runahead – 1 frame 57fps PS3
    Mega Man 2 QuickNES No runahead 124fps PS3
    Mega Man 2 QuickNES runahead – 1 to 6 frames 124fps PS3
    Mega Man 2 Nestopia No runahead 124fps PS3
    Mega Man 2 Nestopia Runahead – 1 frame 76fps PS3
    Mega Man 2 Nestopia Runahead – 2 frames 54fps PS3
    Super Mario World Snes9x 2010 No runahead 113fps PS3
    Super Mario World Snes9x 2010 Runahead – 1 frame 78fps PS3
    Super Mario World Snes9x 2010 Runahead – 2 frames 65fps PS3
    Super Mario World Snes9x 2010 Runahead – 3 frames 56fps PS3
    Sonic 1 Genesis Plus GX No runahead 116fps PS3
    Sonic 1 Genesis Plus GX Runahead – 1 frame 51fps PS3
    Bomberman 94 Mednafen PCE Fast No runahead 124fps PS3
    Bomberman 94 Mednafen PCE Fast Runahead – 1 frame 83fps PS3
    Bomberman 94 Mednafen PCE Fast Runahead – 2 frames 66fps PS3
    Sonic 1 SMS Gearsystem No runahead 120fps PS3
    Sonic 1 SMS Gearsystem Runahead – 1 frame 63fps PS3
    Sonic 1 SMS Genesis Plus GX Runahead – 1 to 6 frames 124fps PS3
    Mega Man 2 QuickNES Runahead – 1 to 6 frames Fullspeed Xbox OG
    Mega Man 2 FCEUMM Runahead – 1 frame Fullspeed Xbox OG
    Mega Man 2 FCEUMM Runahead – 2 frames Not fullspeed Xbox OG
    Sonic 2 Genesis Plus GX No runahead Fullspeed Xbox OG
    Sonic 2 Genesis Plus GX Runahead – 1 frame Not fullspeed Xbox OG

    We consider any PC from the year 2005/2006 (whether desktop or laptop) to be significantly more powerful than either of those consoles, so these test results bode quite well for the scalability and feasibility of the runahead method.

    Features like the runahead system will also naturally increase the demand for ever faster cores so that people on lower specced hardware can use runahead with more frames in advance.

    CRT Switch Res – GroovyMAME-like features for 15KHz capable CRT monitors!

    Thanks to forum-user Alphanu, RetroArch now has the ability to query cores for their exact video timing data, which can be used to switch to native-resolution, 15 kHz modelines for use with standard-definition CRT TVs.

    This is a big step for retro purists, as RetroArch can now output “pixel-perfect” video with accurate timing to compatible displays, even quickly switching between interlaced and non-interlaced modes on the fly.

    This capability is currently Windows-only and requires modelines to be created in advance by CRT_EmuDriver or Custom Resolution Utility with a compatible GPU. Linux support is coming soon.

    In case you’d like to learn more, follow these links:

    Direct3D improvements, additions, and a new Direct3D10 driver

    With RetroArch 1.7.1, we really stepped our game up to finally start treating Windows as a first-class citizen platform. You have seen this in the form of dedicated Direct 3D 11/12 video drivers that had the ability to run the same shaders as Vulkan, our new slang shader spec that is made possible by the impressive Khronos/ARM-backed project SPIRV-Cross.

    Increased backwards compatibility

    Previously, the Direct3D 11 driver required that your graphics card driver supported at least Shader Model 5.0. We have since downgraded this requirement to Shader Model 4.0. As a result, I am now able to use the Direct3D 11 video driver on an old 2010 laptop GPU that only supports Shader Model 4.0 (it’s an ATI Mobility Radeon HD 4300). We also try to support more D3D11 feature levels instead of just defaulting to 11.0.

    New Direct3D 10 video driver

    On some systems, though, you won’t be able to make use of the Direct3D 11 driver no matter what. One of those systems happened to be another old laptop I had lying around here. This one has a Geforce 9200M GS, and the specs state that it supports up to Direct X 10 and Shader Model 4.0. Direct3D 11 is a no go on this GPU even with the increased backwards compatibility.

    It’s for this purpose that me and aliaspider spent some time to finally make the Direct3D 10 driver feature-complete. Direct3D 10 should be available from Windows Vista and up, whereas Direct3D 11 is available from Windows 7 and up. The Direct 3D 10 driver should be feature complete and identical to the Direct3D 11 driver, with the sole exception of hardware rendering contexts not being available right now with Direct3D 10.

    Which brings us to the last Direct3D-related subject…

    Direct3D-powered libretro cores are now possible!

    This feature is easily worth its own article, but since we already covered this before and because 1.7.2 has so many huge features, we will relegate this to a side note. Nevertheless, it is none the less important.

    Up until now, if you wanted to use hardware-accelerated 3D rendering in a libretro core, your options were OpenGL and/or Vulkan. There is now a third option – Direct3D 11, and the first libretro core that supports this is the PPSSPP core!

    With all these features, we now have everything in place to really do an UWP version of RetroArch justice.

    Input remapping system improvements

    The input remapping system (available from Quick Menu -> Controls) had many obvious limitations previously. Some of these included:

    • It was not possible to map keyboard from more than one gamepad (for instance with Dosbox)
    • It was not possible to map more than one button to the same action
    • It was not possible to unmap buttons or analogs
    • It was not possible to map a button to trigger an analog response (for instance, in an N64 emulator, running in Super Mario 64 with the D-pad)
    • It was not possible to map an analog to another analog
    • It was not possible to map an analog to produce a button response

    Most of these restrictions have now been lifted at long last thanks to radius, and the visual representation is also much improved now.

    To read more about this, also visit the related forum thread here.

    Do note that all your existing remap files are now obsolete, and you should start from scratch. This was a necessary evil unfortunately in order to progress.

    Various Quality-Of-Life improvements

    We have tried to do various consequential Quality-of-Life improvements for this release:

    • XMB and MaterialUI menus should scale much better now depending on the output resolution. Previously, the XMB and MaterialUI menu elements were too small if you were running at a resolution of 1440p or 4K.
    • Boxart / thumbnails now react better to other elements on the screen and can resize or adjust themselves accordingly. There are also new ways of showing a thumbnail on the left and right side of the screen in XMB. It is also possible to determine what ‘type’ of thumbnails get shown on the left and right, respectively.
    • There are two layout modes now for XMB – you can choose between Desktop and Handheld. Desktop is the default look of the XMB as it was now, mirroring the PS3 layout, while Handheld goes for an XMB look that is more in line with how it looked like on PSP. Previously, the default layout was ‘automatic’, where it would default to the PSP layout if you were running at a resolution of 320×240.
    • Shaders should work again with the Vulkan video driver on the Android version.
    • When you select a shader preset now, it should only show you the supported shader presets based on the video driver that is currently selected. In other words, it will no longer show you GLSL shaders and/or presets when you have selected the Vulkan video driver, just as an example.
    • Certain video features were never implemented for some platforms. We now hide features like Black Frame Insertion, GPU Hard Sync and Swapchain images if the video driver in question doesn’t implement them. It is conceivable that for some of these drivers, these features might be implemented later, but overall we feel it declutters the menu considerably by simply not showing settings that have no effect at all when toggled due to them being unimplemented.
    • We now expose certain convenience features on the Quick Menu, such as Latency, Rewind and Overlay settings. You can also hide these settings respectively by going to User Interface -> Views -> Quick Menu and disabling these categories.
    • The shader next/previous hotkeys are more intelligent now and deliberately skip over shaders that are not supported by the current video driver.
    • (For Linux users) Wayland should now have proper scaling with XMB menu driver.
    • (For Linux users) Allow compositor disabling on X11 fullscreen through _NET_WM_BYPASS_COMPOSITOR.
    • On platforms where this is supported, ‘Set Display-Reported Refresh Rate’ is a convenient way of setting the exact refresh rate that the OS/video driver has reported to the application. This might be more accurate than measuring the refresh rate yourself by waiting for 2048 samples or more before hitting the Action button on ‘Estimated Screen Framerate’.
    • Display Framerate is now moved to ‘Onscreen Display – Notifications’. A handy feature showing all sorts of statistics is now exposed in this submenu as well.
    • RetroAchievements updates

      The future is now. Arcade achievements using the FB Alpha core are fully supported in this version. This brings support for Neo Geo and Capcom arcade boards (Metal Slug, Marvel Super Heroes).

      – Capture your greatest moments with the automatic screenshot feature! Look back fondly on the time you grinded your RPG character to level 99 for internet points.

      – RetroAchievements on a retro computer?! Windows XP builds of RetroArch now support achievements!

      General changelog

      ANDROID/OPENSL: Prevent crashes when setting audio latency too low (buffer count can never be lower than 2 now).
      CRT: Added CRT SwitchRes.
      COMMON: Hide the ‘Core delete’ option if the ‘Core updater’ is also hidden.
      COMMON: Add way to reset core association for playlist entry.
      COMMON: Fix invalid long command line options causing infinite loop on Windows
      COMMON: Add OSD statistics for video/audio/core.
      COMMON: Added runahead system; allows you to drive down latency even further.
      COMMON: Fix buggy behavior that could happen with ZIP file reading on some platforms as a result of not initializing struct.
      CHEEVOS: Support Atari 2600, Virtual Boy, and Arcade (only Neo Geo, CPS-1, CPS-2 and CPS-3 and only with fbalpha core).
      CHEEVOS: Add option to automatically take a screenshot when an achievement is triggered.
      CHEEVOS: Fixed incompatibilities with Neo Geo Pocket achievement sets.
      CHEEVOS: Store only login token, not password.
      D3D10: Added D3D10 driver to release build. Has working shaders (Slang), overlay, and menu display driver support. Should be on par capabilities wise with D3D11 driver except for there being no hardware rendering right now.
      D3D11: Experimental hardware renderer. Allows for libretro cores to use D3D11 for hardware rendering. First core to use this is PPSSPP.
      D3D11: Increase backwards compatibility, shaders compile with Shader Model 4.0 now, added support for more feature levels.
      D3D10/D3D11/D3D12: Fix crashes with completely black or white thumbnail textures in XMB.
      GUI: Support disabling window decorations on Windows and Linux.
      LIBRETRO: Addition – Functions to enable and disable audio and video, and an environment function to query status of audio and video enables.
      LOCALIZATION: Update Italian translation.
      LOCALIZATION: Update Polish translation.
      MENU: Add Rewind/Latency/Overlay settings to Quick Menu, add options to show/hide them (User Interface -> Views -> Quick Menu)
      MENU/RGUI: Only show Menu Linear Filter for RGUI and only show it for video drivers that implement it (D3D8/9/10/11/12/GL)
      MENU/RGUI: Add User Interface -> Appearance options.
      MENU/RGUI: D3D8/D3D9: Hookup Menu Linear Filter
      MENU/XMB: Disable XMB shadow icons by default for PowerPC and ARM for performance reasons.
      MENU/XMB: Left/right thumbnails are now automatically scaled according to layout.
      MENU/XMB: Add Left Thumbnails (additional to the right).
      MENU/XMB: Fixed left/right tab regression.
      MENU/XMB: Fix scaling of tall images that were cut on bottom previously.
      MENU/XMB: Menu scale factor setting now changes texts length, image scaling and margins.
      MENU/XMB: Mouse cursor scales correctly now.
      MENU/XMB: Add toggle to show/hide Playlist tabs.
      MENU/XMB: Add menu layout – can switch between Desktop, Handheld and Auto.
      MENU/XMB: Don’t load menu pipeline shaders unless XMB is selected (D3D10/D3D11/D3D12/GL/Vulkan)
      MENU/VIDEO: Only show black frame insertion for the video drivers/context drivers that support it (so far this includes – D3D8/D3D9, OpenGL, Vulkan)
      MENU/VIDEO: Only show max swapchain images if supported by video driver and/or context driver (so far this includes – DRM EGL context driver, VideoCore EGL context driver, Vulkan)
      MENU/MaterialUI: Automatic DPI Scaling should be much improved now, now scales as expected at 1440p and 4K resolutions.
      MENU/MaterialUI: Fix wrong calculation of an entry height causing long playlists to end up outside of screen range. This also could cause crashes on low DPI screens.
      IOS: Fixed crash when opening downloaded roms from Safari or using the “Open in..” functionality. Added the compiler flag to support keyboard remapping to controls.
      IOS: Fixed buffer overlap that caused a crash while trying to download GLSL shaders from the buildbot.
      PS3: fix URLS
      REMAPS: Mapping keyboard keys from more than one gamepad (works with dosbox)
      REMAPS: Mapping more than one button to the same action
      REMAPS: Unmapping buttons
      REMAPS: Unmapping analogs
      REMAPS: Mapping a button to trigger an analog response (tested with mupen, can run on SM64 with the d-pad now, triggers a full analog tilt)
      REMAPS: Mapping an analog to another analog (having more than one analog mapped to the same output causes issues)
      REMAPS: Mapping an analog to produce a button response
      SCANNER: Should be able to scan dual-layer Wii disc images now, filestream code now supports files larger than 4GB.
      SHADERS/SLANG: Slang shaders should work again on Android version and MSVC versions (basically all the Griffin-based versions).
      SHADERS: If GL context is GLES2/3/Core context, Cg shaders are unavailable. Applies to shader list too.
      SHADERS: Hide cg/glsl shaders from being able to be selected if D3D8/9/10/11/Vulkan video drivers are selected.
      SHADERS: Hide slang shaders from being able to be selected if D3D8/9/OpenGL video drivers are selected.
      SHADERS: Prevent crashes from occurring if we have the GL video driver in use and we try to skip to a slang shader through next/previous hotkeys
      SHADERS: Fix shader parameter increase / decrease functions
      SUBSYSTEM: handle savestates properly (cart1 + cart2.state0)
      VULKAN/X11: Fix X11 Vulkan bug from Wayland driver.
      VULKAN: Fix multi-line text spacing in menus with Vulkan driver.
      WINDOWS XP: Add Cheevos support.
      WINDOWS/MSVC 2003/2005/2010/2013/2015/2017: Add Cheevos support.
      VITA: Bugfix for ‘PS Vita takes many time to start to accept input’ issue.
      X11: Allow compositor disabling on X11 fullscreen through _NET_WM_BYPASS_COMPOSITOR
      X11: Prioritize NET_WM_STATE_FULLSCREEN in true fullscreen mode
      WIIU: Fix OOB read/write in keyboard driver.

      What’s coming next for RetroArch

      So, RetroArch 1.7.2 had some pretty major new features, right? By all indications, it looks like RetroArch 1.7.3 will be no different. So let us give you some sneak peek at what might be arriving down the road for the next version…

      A Qt-powered WIMP desktop UI!

      Ever since RetroArch’s inception in 2012 (and even way before that when it was just known as SSNES), we have stuck to our guns and insisted on a uniform menu experience that obviously took its design cues from mainstream gaming consoles like the PlayStation.

      While this lends itself very well to game consoles and the like, there is also a very vocal minority (or majority, depending on how you look at it) that has definitely made it well known that they would really prefer a native WIMP UI at times to be able to do mundane tasks like select/load a ROM, or browse through a playlist easily with the mouse, etc. And certainly, an argument can be made that on a traditional desktop PC, it might not be ideal at all times to be confined to the same kind of input limitations as say a traditional gamepad.

      For 1.7.3, the way we will try to reach for a concession with these users will be through the way of this companion UI. What you see in these screenshots will be a WIMP (Windows, Icons, Menus, Pointers) GUI powered by Qt. It will be available for RetroArch versions that run on PC Operating Systems like Linux, Windows and macOS.

      The way we envision this UI to work is a bit like how it is possible in Steam to switch between Big Picture mode and the traditional desktop UI. We still want the console-style menus to be RetroArch’s main user interface and we believe this scales fairly well onto game consoles, mobile devices and handhelds. But there is no denying, as Windows 8 all taught us, that there is no such thing as one true universal UI that can scale well across every potential device, so the user should definitely have his/her options.

      The two screenshots you see here are not just mockups, they are already operational in bparker’s branch. What you see here is the result of about one solid month of work, and it’s already reaching quite satisfactory levels.

      We have kept a tight lid on it until now, but felt the time was right to reveal more details about it. We are doing this primarily for the users, and we hope that they will like it, and through designing this we are also trying to be more receptive to user feedback than we might have been in the past.

      Despite all this, as with anything in our codebase, we do insist that from a programming point of view, that this will not impose any huge dependencies, and that all of these individual coding parts are modular in nature and can be easily compiled in or out of any build. With RetroArch we always have to walk a fine line between staying lightweight and not becoming perceived of being too bloated yet also trying to meet increasing user expectations, and it’s not necessarily always possible to be in the middle of these two opposing camps. So we try to do our best to satisfy both groups this way, and stay true to our design goals while also making sure that we keep the users happy who don’t care about the underlying codebase but just care about the results from an enduser perspective of what they can do with the program. It’s a big challenge and definitely a balancing act but we feel we have become better over the years in terms of finding the right balance.

      2018 The Year Of The Libretro Frontend

      Libretro, the underlying platform and ecosystem that powers most of what you see in RetroArch, will see an explosive growth throughout the rest of this year, both by our efforts and outside forces also only tangentially related to our project. You will see the Libretro logo not only in more places, but you will also see popular programs like Kodi finally adopting the API wholesale.

      While it was never our direct intent to have our API be synonomous with retro gaming and emulators, we do not mind this being the biggest driver of growth in this emerging ecosystem and are grateful for the developments there.