Difference between revisions of "Libretro"

From Emulation General Wiki
Jump to navigation Jump to search
(Game Engine)
(Tags: Mobile edit, Mobile web edit)
m (Emulation)
(17 intermediate revisions by 14 users not shown)
Line 1: Line 1:
[[File:Libretro.png|thumb|250px]]{{lowercase title}}
+
{{Infobox software
'''libretro''' (formerly '''libsnes''') is an API designed mainly for games and emulators. It allows games and emulators to be compiled as dynamically linked libraries known as "libretro cores", which can be used in a frontend that implements libretro, such as [[RetroArch]].
+
|logo = Libretro.png
 +
|logowidth = 120
 +
|version =
 +
|active = Yes
 +
|type = API
 +
|platform = Multi-platform
 +
|developer
 +
|support = [https://github.com/sponsors/libretro GitHub Sponsor]<br/>[https://patreon.com/libretro Patreon]
 +
|source = [https://github.com/libretro/ GitHub]
 +
|website = [http://www.libretro.com/ libretro.com]<br/>[https://twitter.com/Libretro Twitter]
 +
}}
  
 +
'''libretro''' (formerly '''libsnes''') is an API designed mainly for games and emulators. It allows games and emulators to be compiled as dynamically linked libraries known as "libretro cores", which can be used in a frontend that implements libretro, such as [[RetroArch]]. The frontend is responsible for providing all the implementation specific details, such as video/audio/input drivers. This means that a developer does not have to worry about writing different video drivers for Direct3D or OpenGL, or supporting all known joypads or input/sound APIs. All of these details are handled by the front-end.
 
==libretro Frontends==
 
==libretro Frontends==
 
[[RetroArch]] is the flagship project for libretro, however there are plenty of other available frontends.
 
[[RetroArch]] is the flagship project for libretro, however there are plenty of other available frontends.
Line 13: Line 24:
 
! scope="col"|Core
 
! scope="col"|Core
 
! scope="col"|Version
 
! scope="col"|Version
 +
! scope="col"|[https://store.steampowered.com/dlc/1118310/ Steam]
 
! scope="col"|Notes
 
! scope="col"|Notes
 
|-
 
|-
 
|[[Super Nintendo emulators|SNES]]
 
|[[Super Nintendo emulators|SNES]]
|[[higan]]
+
|[[higan]] (火眼)
 
|{{higanVer}}
 
|{{higanVer}}
 +
|{{?}}
 
|Separate cores for each profile.  
 
|Separate cores for each profile.  
 
C++98 version is bsnes v085 Performance profile.
 
C++98 version is bsnes v085 Performance profile.
Line 24: Line 37:
 
|[[higan|bsnes-mercury]]
 
|[[higan|bsnes-mercury]]
 
|v094
 
|v094
 +
|{{x}}
 
|Fork of [[higan|bsnes]] with modifications for speed. Separate cores for each profile
 
|Fork of [[higan|bsnes]] with modifications for speed. Separate cores for each profile
 
|-
 
|-
Line 29: Line 43:
 
|[[Mednafen]] bsnes
 
|[[Mednafen]] bsnes
 
|0.9.26
 
|0.9.26
 +
|{{?}}
 
|Fork of [[higan|bsnes]] v059 with a few modifications.
 
|Fork of [[higan|bsnes]] v059 with a few modifications.
 
|-
 
|-
Line 34: Line 49:
 
|[[higan|nSide Balanced]]
 
|[[higan|nSide Balanced]]
 
|v106
 
|v106
 +
|{{?}}
 
|[https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Fork] of [[higan]] v106 with additional hardware support. Good for slower computers that cannot run the Accuracy core-only releases from higan v098 onwards with full speed.
 
|[https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Fork] of [[higan]] v106 with additional hardware support. Good for slower computers that cannot run the Accuracy core-only releases from higan v098 onwards with full speed.
 
|-
 
|-
Line 39: Line 55:
 
|[[Snes9x]]
 
|[[Snes9x]]
 
|{{Snes9xVer}}
 
|{{Snes9xVer}}
 +
|{{y}}
 
|Supports libretro in upstream.
 
|Supports libretro in upstream.
 
|-
 
|-
Line 44: Line 61:
 
|[[Snes9x|Snes9x 2002]] (previously PocketSNES)
 
|[[Snes9x|Snes9x 2002]] (previously PocketSNES)
 
|1.39
 
|1.39
 +
|{{n}}
 
|Snapshot of Snes9x for use on very slow platforms
 
|Snapshot of Snes9x for use on very slow platforms
 
|-
 
|-
Line 49: Line 67:
 
|[[Snes9x|Snes9x 2005]]
 
|[[Snes9x|Snes9x 2005]]
 
|1.43
 
|1.43
 +
|{{y}}
 
|Snapshot of Snes9x useful for Mario World hacks that have broken custom music.
 
|Snapshot of Snes9x useful for Mario World hacks that have broken custom music.
 
|-
 
|-
Line 54: Line 73:
 
|[[Snes9x|Snes9x 2005 Plus]]
 
|[[Snes9x|Snes9x 2005 Plus]]
 
|1.43
 
|1.43
 +
|{{n}}
 
|Snapshot of [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Snes9x 1.43 plus BLARRG APU].
 
|Snapshot of [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Snes9x 1.43 plus BLARRG APU].
 
|-
 
|-
Line 59: Line 79:
 
|[[Snes9x|Snes9x 2010]]
 
|[[Snes9x|Snes9x 2010]]
 
|[https://github.com/libretro/snes9x-next 1.52.4]
 
|[https://github.com/libretro/snes9x-next 1.52.4]
 +
|{{y}}
 
|Fork of [[Snes9x]] 1.52 WIP focused on speed.
 
|Fork of [[Snes9x]] 1.52 WIP focused on speed.
 
|-
 
|-
Line 64: Line 85:
 
|[[Mednafen]] [[Cygne]]
 
|[[Mednafen]] [[Cygne]]
 
|?
 
|?
 +
|{{y}}
 
|Modified fork of [[Cygne]].
 
|Modified fork of [[Cygne]].
 
|-
 
|-
 
|[[PlayStation emulators|PlayStation]]
 
|[[PlayStation emulators|PlayStation]]
 
|[[DuckStation]]
 
|[[DuckStation]]
|?
+
|[https://github.com/libretro/swanstation git]
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 74: Line 97:
 
|[[Mednafen]] PSX
 
|[[Mednafen]] PSX
 
|0.9.39.2
 
|0.9.39.2
 +
|{{y}}
 
|Fork has [https://www.libretro.com/index.php/retroarchlibretro-project-status-update/#more-44789 significant modifications] for [https://www.libretro.com/index.php/mednafenbeetle-psx-pgxp-arrives/ enhancements] as well as [https://www.libretro.com/index.php/introducing-vulkan-psx-renderer-for-beetlemednafen-psx/ Vulkan renderer] support. Sometimes referred to as "Beetle PSX."
 
|Fork has [https://www.libretro.com/index.php/retroarchlibretro-project-status-update/#more-44789 significant modifications] for [https://www.libretro.com/index.php/mednafenbeetle-psx-pgxp-arrives/ enhancements] as well as [https://www.libretro.com/index.php/introducing-vulkan-psx-renderer-for-beetlemednafen-psx/ Vulkan renderer] support. Sometimes referred to as "Beetle PSX."
 
|-
 
|-
Line 79: Line 103:
 
|[[Mednafen]] PSX HW
 
|[[Mednafen]] PSX HW
 
|Alpha
 
|Alpha
 +
|{{y}}
 
|Adds an [https://www.libretro.com/index.php/retroarchlibretro-project-status-update/#more-44789 OpenGL renderer] to Mednafen PSX based on the [https://www.libretro.com/index.php/mednafenbeetle-psx-hw-alpha-version/ GPU renderer from Rustation]. Sometimes referred to as "Beetle PSX HW." Still contains the software rendering mode as an option, so this core can effectively replace the "Mednafen PSX" core listed above.
 
|Adds an [https://www.libretro.com/index.php/retroarchlibretro-project-status-update/#more-44789 OpenGL renderer] to Mednafen PSX based on the [https://www.libretro.com/index.php/mednafenbeetle-psx-hw-alpha-version/ GPU renderer from Rustation]. Sometimes referred to as "Beetle PSX HW." Still contains the software rendering mode as an option, so this core can effectively replace the "Mednafen PSX" core listed above.
 
|-
 
|-
Line 84: Line 109:
 
|PCSX-ReARMed
 
|PCSX-ReARMed
 
|[https://github.com/libretro/pcsx_rearmed r22]
 
|[https://github.com/libretro/pcsx_rearmed r22]
 +
|{{y}}
 
|ARM optimized fork of [[PCSX-Reloaded]]. Supports libretro in upstream.
 
|ARM optimized fork of [[PCSX-Reloaded]]. Supports libretro in upstream.
 
|-
 
|-
Line 89: Line 115:
 
|[[Rustation]]
 
|[[Rustation]]
 
|Git
 
|Git
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 94: Line 121:
 
|pockystation
 
|pockystation
 
|Git
 
|Git
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 99: Line 127:
 
|[[Mednafen]] PCE-Fast
 
|[[Mednafen]] PCE-Fast
 
|?
 
|?
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 104: Line 133:
 
|[[Mednafen]] SuperGrafx
 
|[[Mednafen]] SuperGrafx
 
|?
 
|?
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 109: Line 139:
 
|[[Mednafen]] PC-FX
 
|[[Mednafen]] PC-FX
 
|?
 
|?
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 114: Line 145:
 
|[[Mednafen]] [[NeoPop]]
 
|[[Mednafen]] [[NeoPop]]
 
|?
 
|?
 +
|{{?}}
 
|Modified fork of [[NeoPop]].
 
|Modified fork of [[NeoPop]].
 
|-
 
|-
Line 119: Line 151:
 
|[[Mednafen]] VB
 
|[[Mednafen]] VB
 
|?
 
|?
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 124: Line 157:
 
|[[Stella]]
 
|[[Stella]]
 
|3.9.3
 
|3.9.3
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 129: Line 163:
 
|Atari800
 
|Atari800
 
|3.1.0
 
|3.1.0
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 134: Line 169:
 
|[[ProSystem]]
 
|[[ProSystem]]
 
|1.3e
 
|1.3e
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 139: Line 175:
 
|[[Handy]]
 
|[[Handy]]
 
|[https://github.com/libretro/libretro-handy 0.95]
 
|[https://github.com/libretro/libretro-handy 0.95]
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 144: Line 181:
 
|[[Mednafen]] [[Handy]]
 
|[[Mednafen]] [[Handy]]
 
|?
 
|?
 +
|{{?}}
 
|Modified fork of [[Handy]].
 
|Modified fork of [[Handy]].
 
|-
 
|-
Line 149: Line 187:
 
|Virtual Jaguar
 
|Virtual Jaguar
 
|[https://github.com/libretro/virtualjaguar-libretro 2.1.0]
 
|[https://github.com/libretro/virtualjaguar-libretro 2.1.0]
 +
|{{?}}
 
|Very low FPS.
 
|Very low FPS.
 
|-
 
|-
Line 154: Line 193:
 
|[[higan|bnes]]
 
|[[higan|bnes]]
 
|v083
 
|v083
 +
|{{n}}
 
|
 
|
 
|-
 
|-
Line 159: Line 199:
 
|FCEUmm
 
|FCEUmm
 
|98.13mm (SVN)
 
|98.13mm (SVN)
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 164: Line 205:
 
|[[QuickNES]]
 
|[[QuickNES]]
 
|1.0
 
|1.0
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 169: Line 211:
 
|[[Mesen]]
 
|[[Mesen]]
 
|Git
 
|Git
 +
|{{y}}
 
|Supports libretro in upstream.
 
|Supports libretro in upstream.
 
|-
 
|-
Line 174: Line 217:
 
|[[Nestopia]]
 
|[[Nestopia]]
 
|[https://github.com/libretro/nestopia 1.46-WIP]
 
|[https://github.com/libretro/nestopia 1.46-WIP]
 +
|{{y}}
 
|Supports libretro in upstream.
 
|Supports libretro in upstream.
 
|-
 
|-
Line 179: Line 223:
 
|[[Gambatte]]
 
|[[Gambatte]]
 
|0.5.0
 
|0.5.0
 +
|{{y}}
 
|Has an option to disable color correction.
 
|Has an option to disable color correction.
 
|-
 
|-
Line 184: Line 229:
 
|[[Gearboy]]
 
|[[Gearboy]]
 
|Git
 
|Git
 +
|{{y}}
 
|[https://docs.libretro.com/library/gearboy/ Open source, multi-platform, GB (DMG) / GBC (CGB) emulator written in C++].
 
|[https://docs.libretro.com/library/gearboy/ Open source, multi-platform, GB (DMG) / GBC (CGB) emulator written in C++].
 
|-
 
|-
Line 189: Line 235:
 
|[[TGB Dual]]
 
|[[TGB Dual]]
 
|0.8.3
 
|0.8.3
 +
|{{y}}
 
|Has a split-screen mode for game linking.
 
|Has a split-screen mode for game linking.
 
|-
 
|-
Line 194: Line 241:
 
|[[SameBoy]]
 
|[[SameBoy]]
 
|Git
 
|Git
 +
|{{y}}
 
|[https://docs.libretro.com/library/sameboy/ Extremely accurate GB (DMG) & GBC (CGB) emulator written in portable C]. [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Latest core update in 2018].
 
|[https://docs.libretro.com/library/sameboy/ Extremely accurate GB (DMG) & GBC (CGB) emulator written in portable C]. [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Latest core update in 2018].
 
|-
 
|-
Line 199: Line 247:
 
|[[VisualBoy Advance|VBA-Next]]
 
|[[VisualBoy Advance|VBA-Next]]
 
|1.0.2
 
|1.0.2
 +
|{{?}}
 
|Fork of [[VisualBoy Advance#VBA-M|VBA-M]] focused on speed.
 
|Fork of [[VisualBoy Advance#VBA-M|VBA-M]] focused on speed.
 
|-
 
|-
Line 204: Line 253:
 
|[[VisualBoy Advance#VBA-M|VBA-M]]
 
|[[VisualBoy Advance#VBA-M|VBA-M]]
 
|SVN
 
|SVN
 +
|{{y}}
 
|Supports libretro in upstream.
 
|Supports libretro in upstream.
 
|-
 
|-
Line 209: Line 259:
 
|Meteor
 
|Meteor
 
|1.4
 
|1.4
 +
|{{?}}
 
|Supports libretro in upstream.
 
|Supports libretro in upstream.
 
|-
 
|-
Line 214: Line 265:
 
|[[Mednafen]] [[VisualBoy Advance|VBA]]
 
|[[Mednafen]] [[VisualBoy Advance|VBA]]
 
|0.9.33.3
 
|0.9.33.3
 +
|{{?}}
 
|Fork of an old version of [[VisualBoy Advance|VBA]].
 
|Fork of an old version of [[VisualBoy Advance|VBA]].
 
|-
 
|-
Line 219: Line 271:
 
|[[gpSP#TempGBA|TempGBA]]
 
|[[gpSP#TempGBA|TempGBA]]
 
|Git
 
|Git
 +
|{{n}}
 
|PSP-only fork of [[gpSP]].
 
|PSP-only fork of [[gpSP]].
 
|-
 
|-
Line 224: Line 277:
 
|[[gpSP]]
 
|[[gpSP]]
 
|0.91
 
|0.91
 +
|{{y}}
 
|Dynarec available for ARM.
 
|Dynarec available for ARM.
 
|-
 
|-
Line 229: Line 283:
 
|[[Mednafen]] [[VisualBoy Advance|VBA]]
 
|[[Mednafen]] [[VisualBoy Advance|VBA]]
 
|0.9.33.3
 
|0.9.33.3
 +
|{{?}}
 
|Fork of an old version of [[VisualBoy Advance|VBA]].
 
|Fork of an old version of [[VisualBoy Advance|VBA]].
 
|-
 
|-
Line 234: Line 289:
 
|[[mGBA]]
 
|[[mGBA]]
 
|[https://github.com/libretro/mgba 0.9.2]
 
|[https://github.com/libretro/mgba 0.9.2]
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 239: Line 295:
 
|[[Mupen64Plus]]
 
|[[Mupen64Plus]]
 
|2.0-rc2
 
|2.0-rc2
 +
|{{y}}
 
|Fork, has significant modifications.
 
|Fork, has significant modifications.
 
|-
 
|-
Line 244: Line 301:
 
|paraLLEl
 
|paraLLEl
 
|pre-alpha
 
|pre-alpha
 +
|{{?}}
 
|New fork/rewrite of the Mupen64Plus core with a [https://www.libretro.com/index.php/nintendo-64-vulkan-low-level-emulator-parallel-pre-alpha-release/ port] of the Angrylion video plugin ([https://www.libretro.com/index.php/parallel-n64-with-multithreaded-angrylion-released/ Multi-threaded version] also exists) to Vulkan for [https://www.libretro.com/index.php/tag/parallel-n64/ massive speed improvements]. Highly accurate on compatible games, extremely broken on incompatible games.
 
|New fork/rewrite of the Mupen64Plus core with a [https://www.libretro.com/index.php/nintendo-64-vulkan-low-level-emulator-parallel-pre-alpha-release/ port] of the Angrylion video plugin ([https://www.libretro.com/index.php/parallel-n64-with-multithreaded-angrylion-released/ Multi-threaded version] also exists) to Vulkan for [https://www.libretro.com/index.php/tag/parallel-n64/ massive speed improvements]. Highly accurate on compatible games, extremely broken on incompatible games.
 
|-
 
|-
Line 249: Line 307:
 
|[[Genesis Plus GX]]
 
|[[Genesis Plus GX]]
 
|[https://github.com/libretro/Genesis-Plus-GX {{GenPlusGXVerLibretro}}]
 
|[https://github.com/libretro/Genesis-Plus-GX {{GenPlusGXVerLibretro}}]
 +
|{{y}}
 
|Exclusive to libretro on non-GC/Wii platforms. Supports libretro in upstream.
 
|Exclusive to libretro on non-GC/Wii platforms. Supports libretro in upstream.
 
|-
 
|-
Line 254: Line 313:
 
|[[PicoDrive]]
 
|[[PicoDrive]]
 
|1.81
 
|1.81
 +
|{{y}}
 
|Exclusive to libretro on PC platforms. Supports libretro in upstream.
 
|Exclusive to libretro on PC platforms. Supports libretro in upstream.
 
|-
 
|-
Line 259: Line 319:
 
|[[BlastEm]]
 
|[[BlastEm]]
 
|?
 
|?
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 264: Line 325:
 
|[[Mednafen]] Saturn
 
|[[Mednafen]] Saturn
 
|?
 
|?
 +
|{{y}}
 
|Sometimes referred to as "Beetle Saturn"
 
|Sometimes referred to as "Beetle Saturn"
 
|-
 
|-
Line 269: Line 331:
 
|[[Yabause]]
 
|[[Yabause]]
 
|0.9.13
 
|0.9.13
 +
|{{x}}
 
|Lacks dynarec and GL renderer. Heavily outdated.
 
|Lacks dynarec and GL renderer. Heavily outdated.
 
|-
 
|-
Line 274: Line 337:
 
|[[Yabause|Kronos]]
 
|[[Yabause|Kronos]]
 
|{{KronosVer}}
 
|{{KronosVer}}
 +
|{{y}}
 
|2nd-degree Yabause fork. Has [https://www.patreon.com/posts/new-sega-saturn-22300379 OpenGL ES 3.0 (for mobile) / 3.1 rendering & cached interpreter CPU core (Faster than Yabause's core). Supports STV arcade.]
 
|2nd-degree Yabause fork. Has [https://www.patreon.com/posts/new-sega-saturn-22300379 OpenGL ES 3.0 (for mobile) / 3.1 rendering & cached interpreter CPU core (Faster than Yabause's core). Supports STV arcade.]
 
|-
 
|-
Line 279: Line 343:
 
|[[FinalBurn Alpha]]
 
|[[FinalBurn Alpha]]
 
|0.2.97.24
 
|0.2.97.24
 +
|{{?}}
 
|Older version for use on slower platforms.
 
|Older version for use on slower platforms.
 
|-
 
|-
Line 284: Line 349:
 
|[[FinalBurn Alpha]]
 
|[[FinalBurn Alpha]]
 
|0.2.97.38
 
|0.2.97.38
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 289: Line 355:
 
|[[MAME]] 2000
 
|[[MAME]] 2000
 
|0.37b5
 
|0.37b5
 +
|{{n}}
 
|Old version for use on very slow platforms.
 
|Old version for use on very slow platforms.
 
|-
 
|-
Line 294: Line 361:
 
|[[MAME]] 2003
 
|[[MAME]] 2003
 
|0.78
 
|0.78
 +
|{{n}}
 
|Old version for use on slow platforms. [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Core updated in 2018].
 
|Old version for use on slow platforms. [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Core updated in 2018].
 
|-
 
|-
Line 299: Line 367:
 
|[[MAME]] 2003 Plus
 
|[[MAME]] 2003 Plus
 
|0.78
 
|0.78
 +
|{{n}}
 
|[https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Updated 2018 version of MAME (0.78)] for libretro, with added game support and improvements.
 
|[https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Updated 2018 version of MAME (0.78)] for libretro, with added game support and improvements.
 
|-
 
|-
Line 304: Line 373:
 
|[[MAME]] 2010
 
|[[MAME]] 2010
 
|0.139
 
|0.139
 +
|{{n}}
 
|Old but more recent version for mobile devices.
 
|Old but more recent version for mobile devices.
 
|-
 
|-
Line 309: Line 379:
 
|[[MAME]] 2014
 
|[[MAME]] 2014
 
|0.159
 
|0.159
 +
|{{n}}
 
|Very recent version for PC and other fast devices.
 
|Very recent version for PC and other fast devices.
 
|-
 
|-
Line 314: Line 385:
 
|[[DAPHNE]]
 
|[[DAPHNE]]
 
|Git
 
|Git
 +
|{{?}}
 
|WIP. [[Arcade LaserDisc emulators|Arcade LaserDisc emulator]] [https://www.patreon.com/posts/libretro-status-20471393 adapted to a libretro core].
 
|WIP. [[Arcade LaserDisc emulators|Arcade LaserDisc emulator]] [https://www.patreon.com/posts/libretro-status-20471393 adapted to a libretro core].
 
|-
 
|-
Line 319: Line 391:
 
|[[Supermodel]]
 
|[[Supermodel]]
 
|Git
 
|Git
 +
|{{?}}
 
|WIP. Sega Model 3 arcade emulator. [https://www.patreon.com/posts/libretro-status-20471393 OpenGL-only core] for now.
 
|WIP. Sega Model 3 arcade emulator. [https://www.patreon.com/posts/libretro-status-20471393 OpenGL-only core] for now.
 
|-
 
|-
Line 324: Line 397:
 
|[[MAME]]
 
|[[MAME]]
 
|{{MAMEVerLibretro}} (Git)
 
|{{MAMEVerLibretro}} (Git)
 +
|{{?}}
 
|Based on bleeding edge Git. Official merge of MESS into MAME codebase.
 
|Based on bleeding edge Git. Official merge of MESS into MAME codebase.
 
|-
 
|-
Line 329: Line 403:
 
|[[DeSmuME]] 2015
 
|[[DeSmuME]] 2015
 
|SVN
 
|SVN
 +
|{{y}}
 
|[https://docs.libretro.com/library/desmume_2015/ Based on DeSmuME 2015 SVN]. Has options for single-screen fullscreen with swapping.
 
|[https://docs.libretro.com/library/desmume_2015/ Based on DeSmuME 2015 SVN]. Has options for single-screen fullscreen with swapping.
 
|-
 
|-
Line 334: Line 409:
 
|[[DeSmuME]] (New)
 
|[[DeSmuME]] (New)
 
|Git
 
|Git
 +
|{{y}}
 
|Has options for single-screen fullscreen with swapping. [https://docs.libretro.com/library/desmume/ Latest core] [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 update in 2018].
 
|Has options for single-screen fullscreen with swapping. [https://docs.libretro.com/library/desmume/ Latest core] [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 update in 2018].
 
|-
 
|-
Line 339: Line 415:
 
|[[melonDS]]
 
|[[melonDS]]
 
|Git
 
|Git
 +
|{{?}}
 
|[https://docs.libretro.com/library/melonds/ WIP]. Different emulator that aims to be more accurate than DeSmuME.
 
|[https://docs.libretro.com/library/melonds/ WIP]. Different emulator that aims to be more accurate than DeSmuME.
 
|-
 
|-
Line 344: Line 421:
 
|[[Citra]]
 
|[[Citra]]
 
|Git
 
|Git
 +
|{{n}}
 
|Has an [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 updated 2018 core].
 
|Has an [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 updated 2018 core].
 
|-
 
|-
Line 349: Line 427:
 
|[[PPSSPP]]
 
|[[PPSSPP]]
 
|Git
 
|Git
 +
|{{y}}
 
|2018: Now has working [https://www.youtube.com/watch?v=9zCeqRyT_P8 Vulkan, OpenGL] & [https://www.libretro.com/index.php/libretro-api-now-supports-experimental-direct3d11-hardware-rendering/ Direct3D 11] renderers. 1st core to use D3D 11.
 
|2018: Now has working [https://www.youtube.com/watch?v=9zCeqRyT_P8 Vulkan, OpenGL] & [https://www.libretro.com/index.php/libretro-api-now-supports-experimental-direct3d11-hardware-rendering/ Direct3D 11] renderers. 1st core to use D3D 11.
 
|-
 
|-
|[[Intel CPUs|286 and 386]]
+
|[[POS_(Pong_Consoles)_CPUs_and_Other_Chips#Intel_CPU.27s|286 and 386]]
 
|[[DOSBox]]
 
|[[DOSBox]]
 
|SVN
 
|SVN
 +
|{{n}}
 
|
 
|
 
|-
 
|-
Line 359: Line 439:
 
|vice-libretro
 
|vice-libretro
 
|3.0
 
|3.0
 +
|{{y}}
 
|[https://github.com/libretro/vice-libretro WIP].
 
|[https://github.com/libretro/vice-libretro WIP].
 
|-
 
|-
Line 364: Line 445:
 
|PUAE
 
|PUAE
 
|2.8.0
 
|2.8.0
 +
|{{?}}
 
|[https://github.com/libretro/PUAE Very old, shallow fork]; based on [[WinUAE]].
 
|[https://github.com/libretro/PUAE Very old, shallow fork]; based on [[WinUAE]].
 
|-
 
|-
Line 369: Line 451:
 
|libretro-fsuae
 
|libretro-fsuae
 
|Git
 
|Git
 +
|{{?}}
 
|[https://github.com/libretro/libretro-fsuae Cross-platform Amiga emulator]; newer than old PUAE core. Based on FS-UAE 2.8.1u5.
 
|[https://github.com/libretro/libretro-fsuae Cross-platform Amiga emulator]; newer than old PUAE core. Based on FS-UAE 2.8.1u5.
 
|-
 
|-
Line 374: Line 457:
 
|[[Hatari]]
 
|[[Hatari]]
 
|1.7
 
|1.7
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 379: Line 463:
 
|[[blueMSX]]
 
|[[blueMSX]]
 
|2.8.2 (SVN)
 
|2.8.2 (SVN)
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 384: Line 469:
 
|[[fMSX]]
 
|[[fMSX]]
 
|3.9
 
|3.9
 +
|{{n}}
 
|
 
|
 
|-
 
|-
 
|[[3DO emulators|3DO]]
 
|[[3DO emulators|3DO]]
|[[4DO]]
+
|[[Opera]]
 
|1.3.2.4
 
|1.3.2.4
|Also [https://www.libretro.com/index.php/4do-3do-libretro-emulator-now-supports-arcade-games/ runs 3DO Arcade games].
+
|{{~}}
 +
|
 
|-
 
|-
 
|[[Vectrex_emulators|Vectrex]]
 
|[[Vectrex_emulators|Vectrex]]
 
|[[vecx]]
 
|[[vecx]]
 
|SVN
 
|SVN
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 399: Line 487:
 
|[[O2EM]]
 
|[[O2EM]]
 
|1.18
 
|1.18
 +
|{{?}}
 
|
 
|
 
|-
 
|-
Line 404: Line 493:
 
|[[FUSE]]
 
|[[FUSE]]
 
|1.11
 
|1.11
 +
|{{y}}
 
|
 
|
 
|-
 
|-
Line 409: Line 499:
 
|[[Dolphin]]
 
|[[Dolphin]]
 
|Git
 
|Git
 +
|{{n}}
 
|2018: Now has working [https://www.libretro.com/index.php/libretro-status-updates/ Direct3D 11, OpenGL & Vulkan renderers]. 2nd core to use D3D 11 after PPSSPP's core.
 
|2018: Now has working [https://www.libretro.com/index.php/libretro-status-updates/ Direct3D 11, OpenGL & Vulkan renderers]. 2nd core to use D3D 11 after PPSSPP's core.
 
|-
 
|-
 
|[[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii]]
 
|[[GameCube emulators|Nintendo GameCube]] and [[Wii emulators|Wii]]
|[[Dolphin]] (Ishiiruka builds)
+
|[[Dolphin]] (Ishiiruka builds) (いし海豚)
 
|Git
 
|Git
 +
|{{n}}
 
|WIP. Based on a custom build version of Dolphin. [https://www.patreon.com/posts/libretro-status-20471393 OpenGL] renderer works, Direct3D 11 & Vulkan renderers coming soon. Can have better frame pacing/performance than the Dolphin libretro core.
 
|WIP. Based on a custom build version of Dolphin. [https://www.patreon.com/posts/libretro-status-20471393 OpenGL] renderer works, Direct3D 11 & Vulkan renderers coming soon. Can have better frame pacing/performance than the Dolphin libretro core.
 
|-
 
|-
Line 419: Line 511:
 
|gw-libretro
 
|gw-libretro
 
|Git
 
|Git
 +
|{{y}}
 
|This emulator is actually a simulator of Game & Watch systems. This core has code from MADrigal.
 
|This emulator is actually a simulator of Game & Watch systems. This core has code from MADrigal.
 
|-
 
|-
Line 424: Line 517:
 
|[https://github.com/libretro/libretro-cap32 Cap32]
 
|[https://github.com/libretro/libretro-cap32 Cap32]
 
|Git
 
|Git
 +
|{{y}}
 
|WIP
 
|WIP
 
|-
 
|-
Line 429: Line 523:
 
|[[reicast#Libretro_core|Flycast]]
 
|[[reicast#Libretro_core|Flycast]]
 
|Git
 
|Git
|Greatly enhanced core based on reicast. Also runs [[Sega_NAOMI_and_variants|Naomi]] and Atomiswave games.
+
|{{y}}
 +
|Greatly enhanced core based on reicast. Also runs [[Sega_NAOMI_and_variants|NAOMI]] and Atomiswave games.
 
|-
 
|-
 
|[[Sega Dreamcast emulators|Sega Dreamcast]]
 
|[[Sega Dreamcast emulators|Sega Dreamcast]]
 
|[[redream]]
 
|[[redream]]
 
|?
 
|?
 +
|{{n}}
 
|
 
|
 
|-
 
|-
 
|[[Sinclair ZX81 emulators|Sinclair ZX81]] (for now)
 
|[[Sinclair ZX81 emulators|Sinclair ZX81]] (for now)
|[[EightyOne]]
+
|[[EightyOne]] (81)
 
|Git
 
|Git
 +
|{{?}}
 
|WIP
 
|WIP
 
|-
 
|-
Line 444: Line 541:
 
|[[FreeIntv]]
 
|[[FreeIntv]]
 
|Git
 
|Git
 +
|{{y}}
 
|[https://docs.libretro.com/library/freeintv/ WIP]. [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Mattel Intellivision emulator]. Designed for SNES era and later joypads.
 
|[https://docs.libretro.com/library/freeintv/ WIP]. [https://www.patreon.com/posts/lakka-2-1-1-with-20727887 Mattel Intellivision emulator]. Designed for SNES era and later joypads.
 
|-
 
|-
Line 449: Line 547:
 
|px68k-libretro
 
|px68k-libretro
 
|Git
 
|Git
 +
|{{?}}
 
|[https://docs.libretro.com/library/px68k/ Portable Sharp X68000 Emulator for PSP, Android and other platforms].
 
|[https://docs.libretro.com/library/px68k/ Portable Sharp X68000 Emulator for PSP, Android and other platforms].
 
|-
 
|-
Line 454: Line 553:
 
|Theodore
 
|Theodore
 
|Git
 
|Git
 +
|{{y}}
 
|[https://docs.libretro.com/library/theodore/ Libretro core for Thomson TO8/TO8D emulation], based on Daniel Coulom's DCTO8D emulator.
 
|[https://docs.libretro.com/library/theodore/ Libretro core for Thomson TO8/TO8D emulation], based on Daniel Coulom's DCTO8D emulator.
 
|}
 
|}

Revision as of 04:49, 7 March 2024

Libretro
Libretro.png
Developer(s) Anonymous/Unidentified
Latest version
Active Yes
Platform(s) Multi-platform
Type API
Website libretro.com
Twitter
Support ($) GitHub Sponsor
Patreon
Source code GitHub

libretro (formerly libsnes) is an API designed mainly for games and emulators. It allows games and emulators to be compiled as dynamically linked libraries known as "libretro cores", which can be used in a frontend that implements libretro, such as RetroArch. The frontend is responsible for providing all the implementation specific details, such as video/audio/input drivers. This means that a developer does not have to worry about writing different video drivers for Direct3D or OpenGL, or supporting all known joypads or input/sound APIs. All of these details are handled by the front-end.

libretro Frontends

RetroArch is the flagship project for libretro, however there are plenty of other available frontends.

Main article: Frontends#Libretro

Cores

Emulation

System Core Version Steam Notes
SNES higan (火眼) v110 ? Separate cores for each profile.

C++98 version is bsnes v085 Performance profile.

SNES bsnes-mercury v094 Fork of bsnes with modifications for speed. Separate cores for each profile
SNES Mednafen bsnes 0.9.26 ? Fork of bsnes v059 with a few modifications.
SNES nSide Balanced v106 ? Fork of higan v106 with additional hardware support. Good for slower computers that cannot run the Accuracy core-only releases from higan v098 onwards with full speed.
SNES Snes9x 1.62.3 Supports libretro in upstream.
SNES Snes9x 2002 (previously PocketSNES) 1.39 Snapshot of Snes9x for use on very slow platforms
SNES Snes9x 2005 1.43 Snapshot of Snes9x useful for Mario World hacks that have broken custom music.
SNES Snes9x 2005 Plus 1.43 Snapshot of Snes9x 1.43 plus BLARRG APU.
SNES Snes9x 2010 1.52.4 Fork of Snes9x 1.52 WIP focused on speed.
WonderSwan Mednafen Cygne ? Modified fork of Cygne.
PlayStation DuckStation git ?
PlayStation Mednafen PSX 0.9.39.2 Fork has significant modifications for enhancements as well as Vulkan renderer support. Sometimes referred to as "Beetle PSX."
PlayStation Mednafen PSX HW Alpha Adds an OpenGL renderer to Mednafen PSX based on the GPU renderer from Rustation. Sometimes referred to as "Beetle PSX HW." Still contains the software rendering mode as an option, so this core can effectively replace the "Mednafen PSX" core listed above.
PlayStation PCSX-ReARMed r22 ARM optimized fork of PCSX-Reloaded. Supports libretro in upstream.
PlayStation Rustation Git ?
PocketStation pockystation Git ?
PC Engine & PCE-CD Mednafen PCE-Fast ? ?
PC Engine SuperGrafx Mednafen SuperGrafx ? ?
PC-FX Mednafen PC-FX ? ?
Neo-Geo Pocket Mednafen NeoPop ? ? Modified fork of NeoPop.
Virtual Boy Mednafen VB ?
Atari 2600 Stella 3.9.3
Atari 5200 Atari800 3.1.0
Atari 7800 ProSystem 1.3e
Atari Lynx Handy 0.95
Atari Lynx Mednafen Handy ? ? Modified fork of Handy.
Atari Jaguar Virtual Jaguar 2.1.0 ? Very low FPS.
NES bnes v083
NES FCEUmm 98.13mm (SVN)
NES QuickNES 1.0
NES Mesen Git Supports libretro in upstream.
NES Nestopia 1.46-WIP Supports libretro in upstream.
Game Boy/Color Gambatte 0.5.0 Has an option to disable color correction.
Game Boy/Color Gearboy Git Open source, multi-platform, GB (DMG) / GBC (CGB) emulator written in C++.
Game Boy/Color TGB Dual 0.8.3 Has a split-screen mode for game linking.
Game Boy/Color SameBoy Git Extremely accurate GB (DMG) & GBC (CGB) emulator written in portable C. Latest core update in 2018.
Game Boy Advance VBA-Next 1.0.2 ? Fork of VBA-M focused on speed.
Game Boy Advance VBA-M SVN Supports libretro in upstream.
Game Boy Advance Meteor 1.4 ? Supports libretro in upstream.
Game Boy Advance Mednafen VBA 0.9.33.3 ? Fork of an old version of VBA.
Game Boy Advance TempGBA Git PSP-only fork of gpSP.
Game Boy Advance gpSP 0.91 Dynarec available for ARM.
Game Boy Advance Mednafen VBA 0.9.33.3 ? Fork of an old version of VBA.
Game Boy Advance, Game Boy/Color mGBA 0.9.2
Nintendo 64 Mupen64Plus 2.0-rc2 Fork, has significant modifications.
Nintendo 64 paraLLEl pre-alpha ? New fork/rewrite of the Mupen64Plus core with a port of the Angrylion video plugin (Multi-threaded version also exists) to Vulkan for massive speed improvements. Highly accurate on compatible games, extremely broken on incompatible games.
Sega Systems (SG-1000, Master System, Genesis, Sega CD, Game Gear) Genesis Plus GX 1.7.4 Exclusive to libretro on non-GC/Wii platforms. Supports libretro in upstream.
Sega Systems (Master System, Genesis, Sega CD, 32X, Game Gear, Pico) PicoDrive 1.81 Exclusive to libretro on PC platforms. Supports libretro in upstream.
Sega Genesis BlastEm ?
Sega Saturn Mednafen Saturn ? Sometimes referred to as "Beetle Saturn"
Sega Saturn Yabause 0.9.13 Lacks dynarec and GL renderer. Heavily outdated.
Sega Saturn Kronos 2.6.1 2nd-degree Yabause fork. Has OpenGL ES 3.0 (for mobile) / 3.1 rendering & cached interpreter CPU core (Faster than Yabause's core). Supports STV arcade.
Arcade FinalBurn Alpha 0.2.97.24 ? Older version for use on slower platforms.
Arcade FinalBurn Alpha 0.2.97.38 ?
Arcade MAME 2000 0.37b5 Old version for use on very slow platforms.
Arcade MAME 2003 0.78 Old version for use on slow platforms. Core updated in 2018.
Arcade MAME 2003 Plus 0.78 Updated 2018 version of MAME (0.78) for libretro, with added game support and improvements.
Arcade MAME 2010 0.139 Old but more recent version for mobile devices.
Arcade MAME 2014 0.159 Very recent version for PC and other fast devices.
Arcade (LaserDisc) DAPHNE Git ? WIP. Arcade LaserDisc emulator adapted to a libretro core.
Arcade (Sega Model 3) Supermodel Git ? WIP. Sega Model 3 arcade emulator. OpenGL-only core for now.
Everything MAME 0.188 (Git) ? Based on bleeding edge Git. Official merge of MESS into MAME codebase.
Nintendo DS DeSmuME 2015 SVN Based on DeSmuME 2015 SVN. Has options for single-screen fullscreen with swapping.
Nintendo DS DeSmuME (New) Git Has options for single-screen fullscreen with swapping. Latest core update in 2018.
Nintendo DS melonDS Git ? WIP. Different emulator that aims to be more accurate than DeSmuME.
Nintendo 3DS Citra Git Has an updated 2018 core.
PSP PPSSPP Git 2018: Now has working Vulkan, OpenGL & Direct3D 11 renderers. 1st core to use D3D 11.
286 and 386 DOSBox SVN
Commodore 64 vice-libretro 3.0 WIP.
Amiga PUAE 2.8.0 ? Very old, shallow fork; based on WinUAE.
Amiga libretro-fsuae Git ? Cross-platform Amiga emulator; newer than old PUAE core. Based on FS-UAE 2.8.1u5.
Atari ST/STE/TT/Falcon Hatari 1.7 ?
MSX/SVI/ColecoVision/SG-1000 blueMSX 2.8.2 (SVN)
MSX fMSX 3.9
3DO Opera 1.3.2.4 ~
Vectrex vecx SVN
Magnavox Odyssey²/Videopac O2EM 1.18 ?
ZX Spectrum FUSE 1.11
Nintendo GameCube and Wii Dolphin Git 2018: Now has working Direct3D 11, OpenGL & Vulkan renderers. 2nd core to use D3D 11 after PPSSPP's core.
Nintendo GameCube and Wii Dolphin (Ishiiruka builds) (いし海豚) Git WIP. Based on a custom build version of Dolphin. OpenGL renderer works, Direct3D 11 & Vulkan renderers coming soon. Can have better frame pacing/performance than the Dolphin libretro core.
Game & Watch gw-libretro Git This emulator is actually a simulator of Game & Watch systems. This core has code from MADrigal.
Amstrad CPC Cap32 Git WIP
Sega Dreamcast Flycast Git Greatly enhanced core based on reicast. Also runs NAOMI and Atomiswave games.
Sega Dreamcast redream ?
Sinclair ZX81 (for now) EightyOne (81) Git ? WIP
Mattel Intellivision FreeIntv Git WIP. Mattel Intellivision emulator. Designed for SNES era and later joypads.
Sharp X68000 px68k-libretro Git ? Portable Sharp X68000 Emulator for PSP, Android and other platforms.
Thomson TO8/TO8D Theodore Git Libretro core for Thomson TO8/TO8D emulation, based on Daniel Coulom's DCTO8D emulator.

Game Engine

Game Core Version Notes
Cave Story NXEngine 1.0.0.4
ChaiLove libretro-chailove 0.20.0 Open-source framework for making 2D games in C++ with ChaiScript (eg. Floppy Bird).
Doom PrBoom 2.5.0 Does not have the advanced features of GZDoom or can run WADs designed for it. However, it's highly portable, very stable, and is compatible with every officially released patch of Doom up until Final Doom,
Flashback REminiscence Git Port of the game engine recreation of the spiritual successor to Another World/Out of this World.
Lua Engine (Lutro) libretro-lutro v1 WIP. Experimental lua game framework that follows the LÖVE API. Sample games include Snake, Tetris and Pong.
LucasArt Game Engines ScummVM 1.6.0 Requires loading games inside its own GUI, does not load games from RetroArch's Load Content option.
OutRun CannonBall 0.3 Complete rewrite of the Outrun arcade game into portable C++ written in 2014 by Chris White. Has many enhancements. The libretro version has analog axis and triggers support alongside a new 120Hz mode.
Quake TyrQuake 0.61
Quake II vitaQuakeII 2.2
Rick Dangerous xrick-libretro 1.0.0.6 Open-source implementation of the game Rick Dangerous. Core based on BigOrno's work.
RPG Maker 2000/2003 EasyRPG 0.4.1
Tomb Raider #1-5 OpenLara 2017-04-24 WIP. Available for 32bit/64bit Windows & Linux. Has many enhancements over the original games.

Standalone Game

Game Genre
Dinothawr Puzzle

Other

Core Description
FFmpeg Media Player
Modelviewer 3D Tech Demo
SceneWalker 3D Tech Demo
Imageviewer Image Viewer

External Links