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:
Start RetroArch.
Go to Online Updater.
Select “Update Core Info Files”.
Afterwards, to enable the Discord integration, following the remaining instructions.
Start RetroArch.
Go to Settings -> Privacy.
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.
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.
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:
Discussion forums (in the form of Notes, in fact Lotus Notes descends directly from PLATO NOTES) (first on-line in 1973)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!
(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
BeetleDC 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 BeetleDC 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 –
Cookie Consent
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Websites store cookies to enhance functionality and personalise your experience. You can manage your preferences, but blocking some cookies may impact site performance and services.
Essential cookies enable basic functions and are necessary for the proper function of the website.
Name
Description
Duration
Cookie Preferences
This cookie is used to store the user's cookie consent preferences.
30 days
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Contains information related to marketing campaigns of the user. These are shared with Google AdWords / Google Ads when the Google Ads and Google Analytics accounts are linked together.
90 days
__utma
ID used to identify users and sessions
2 years after last activity
__utmt
Used to monitor number of Google Analytics server requests
10 minutes
__utmb
Used to distinguish new sessions and visits. This cookie is set when the GA.js javascript library is loaded and there is no existing __utmb cookie. The cookie is updated every time data is sent to the Google Analytics server.
30 minutes after last activity
__utmc
Used only with old Urchin versions of Google Analytics and not with GA.js. Was used to distinguish between new sessions and visits at the end of a session.
End of session (browser)
__utmz
Contains information about the traffic source or campaign that directed user to the website. The cookie is set when the GA.js javascript is loaded and updated when data is sent to the Google Anaytics server
6 months after last activity
__utmv
Contains custom information set by the web developer via the _setCustomVar method in Google Analytics. This cookie is updated every time new data is sent to the Google Analytics server.
2 years after last activity
__utmx
Used to determine whether a user is included in an A / B or Multivariate test.
18 months
_ga
ID used to identify users
2 years
_gali
Used by Google Analytics to determine which links on a page are being clicked
30 seconds
_ga_
ID used to identify users
2 years
_gid
ID used to identify users for 24 hours after last activity
24 hours
_gat
Used to monitor number of Google Analytics server requests when using Google Tag Manager
1 minute
Marketing cookies are used to follow visitors to websites. The intention is to show ads that are relevant and engaging to the individual user.
A video-sharing platform for users to upload, view, and share videos across various genres and topics.
Registers a unique ID on mobile devices to enable tracking based on geographical GPS location.
1 day
VISITOR_INFO1_LIVE
Tries to estimate the users' bandwidth on pages with integrated YouTube videos. Also used for marketing
179 days
PREF
This cookie stores your preferences and other information, in particular preferred language, how many search results you wish to be shown on your page, and whether or not you wish to have Google’s SafeSearch filter turned on.
10 years from set/ update
YSC
Registers a unique ID to keep statistics of what videos from YouTube the user has seen.
Session
DEVICE_INFO
Used to detect if the visitor has accepted the marketing category in the cookie banner. This cookie is necessary for GDPR-compliance of the website.
179 days
LOGIN_INFO
This cookie is used to play YouTube videos embedded on the website.
2 years
VISITOR_PRIVACY_METADATA
Youtube visitor privacy metadata cookie
180 days
You can find more information in our Cookie Policy and .