Session
FOSDEM 2021 Schedule
Emulator Development

libretro: One API to Bring Them All

An overview of RetroArch, libretro, and the modularization it brings to the table
D.emulator
Rob Loach
RetroArch is a free, open-source and cross-platform frontend for emulators, game engines, video games, media players and other applications. The libretro API is designed to be fast, lightweight, portable, and without dependencies. Due to the number of systems and games it can play under a single user interface, RetroArch has grown immensely over the years, and has been well adopted by the emulation scene.
Since its inception as SSNES and libsnes, libretro has grown much beyond its humble upbringings. libretro and RetroArch provide a way to connect different applications, emulators and game engines together in a single application. libretro has a unique mission design in turning the way applications are built on its head, by enabling the modularization of software. Instead of merely thinking in terms of a standalone application, software is redesigned and re-engineered to become a pluggable module that interfaces through a common API. Standalone applications implement this API to gain access to this module. Our belief is that by following this model, applications can be more easily updated and extended, since there is a clear separation between application and core domain. In this session, we will cover: What libretro is all about and its software model Interesting frontends and hardware you can use libretro cores and how to implement your own The ecosystem surrounding RetroArch What's next for the project Join Rob Loach, libretro maintainer, as he discusses how you can fully leverage the libretro API to bring modularized applications and systems together.

Additional information

Type devroom

More sessions

2/6/21
Emulator Development
Vasantha Crabb
D.emulator
The open source emulation landscape is littered with abandoned projects. MAME has survived stock market crashes, a pandemic, major internal refactoring, half a dozen leadership changes, and persistent rumours of the project’s imminent death. Why is MAME still here? How does MAME continue to attract contributors? What are some of the issues a project this size faces?
2/6/21
Emulator Development
Gauvain Roussel-Tarbouriech
D.emulator
The PlayStation 2, being the best-selling game console of all time, is a surprisingly complex beast. So, isn't it only fitting that its emulation in software is equally complicated? With PCSX2 developer GovanifY, we carefully peel back the layers of the world's most popular game console, and its most popular emulator. See why, twenty years later, it's now easier than ever to PL△︎Y IN Y◯︎UR W╳︎RL□.
2/6/21
Emulator Development
Steven Goodwin
D.emulator
Ever wanted to write an emulator? Or understand how they work? In this talk you learn how to start writing your own emulator from the ground up. You'll see the basic methods used to emulate CPUs, memory, and graphics cards. For the keen, we'll also cover advanced emulation techniques, licensing issues, and history.
2/6/21
Emulator Development
Panayiotis Talianos
D.emulator
Even to this day, there's something utterly captivating about bringing to life a piece of software effectively frozen in time, designed to run on what was originally a black box, by means of a device that one uses to check up on cat facts. Adding to this, it can even be enhanced and possibly perform better than its developers ever hoped for. If you also got to play around with your first computer in the early 2000s, chances are that console emulators were amongst the first pieces of software ...
2/6/21
Emulator Development
Thomas Harte
D.emulator
Many emulators offer a CRT filter, an artist's rendition of classic video. This presentation describes emulation of the an entire NTSC or PAL video device, to produce an engineer's rendition — starting from sync discrimination and separation, through PLLs into scan placement and via QAM to extracting colour.
2/6/21
Emulator Development
Will Hawkins
D.emulator
I will demonstrate how to write a vectorized (parallel) Caesar cipher in RISC-V (in assembler) using the project's emulator. Using the emulator is necessary at this point for such an application because the vectorized extension to the RISC-V ISA is not standardized. I will further demonstrate how the emulator itself is able to emulate the execution of a single user-space application when it is actually designed to emulate an entire system. This will involve a demonstration and explanation of ...
2/6/21
Emulator Development
Thomas Harte
D.emulator
Emulator authors often like to measure themselves by invoking the concept of cycle perfection. In practice that under- or over-samples many real machines. This talk instead floats a bus-centric model of emulation.