• Stars
    star
    109
  • Rank 309,576 (Top 7 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created about 11 years ago
  • Updated 24 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PUAE libretro

PUAE LIBRETRO

Based on WinUAE 5.0.0, git commit 975a167c7636d563db1c8b3292f690b6f30e71d2

Default controls

RetroPad button Action
D-Pad Joystick
Left Analog Mouse
Right Analog Mouse
B Fire button 1 / Red
A Fire button 2 / Blue
X Space
L2 Left mouse button
R2 Right mouse button
Select (Short) Toggle virtual keyboard
Select (Long) Toggle statusbar
Select (Hold) Fast-Forward
Keyboard key Action
F12 Toggle statusbar
RControl Switch between joystick/mouse

Virtual keyboard controls

Button Action
B / Enter Keypress
A Toggle transparency
Y (Short) Toggle CapsLock
Y (Long) Quick map button
Y (Very long) Quick clear button
X Press Space
Start Press Return

Long press for sticky keys. Stickying the third key will replace the second.

Joyport control

Some games use mouse instead of joystick. D-Pad can be switched between joystick and mouse control in several ways:

  • Use the core option: Quick Menu > Core Options > RetroPad Joystick/Mouse
  • Bring up the virtual keyboard with Select button, and press the key labeled J/M
  • Press the default keyboard shortcut Right Control
  • Assign Switch Joystick/Mouse to any RetroPad button under Quick Menu > Core Options

Configuration

The following model presets are provided:

Short Long Kickstart Chipset Memory
A500OG Amiga 500 v1.3 OCS 0.5MB Chip RAM
A500 Amiga 500 v1.3 OCS 0.5MB Chip RAM + 0.5MB Slow RAM
A500+ Amiga 500+ v2.04 ECS 1MB Chip RAM
A600 Amiga 600 v3.1 ECS 2MB Chip RAM + 8MB Fast RAM
A1200OG Amiga 1200 v3.1 AGA 2MB Chip RAM
A1200 Amiga 1200 v3.1 AGA 2MB Chip RAM + 8MB Fast RAM
A2000OG Amiga 2000 v1.3 OCS 0.5MB Chip RAM + 0.5MB Slow RAM
A2000 Amiga 2000 v3.1 ECS 1MB Chip RAM
A4030 Amiga 4000/030 v3.1 AGA 2MB Chip RAM + 8MB Fast RAM
A4040 Amiga 4000/040 v3.1 AGA 2MB Chip RAM + 8MB Fast RAM
CDTV Amiga CDTV v1.3+ext ECS 1MB Chip RAM
CD32 Amiga CD32 v3.1+ext AGA 2MB Chip RAM
CD32FR Amiga CD32 v3.1+ext AGA 2MB Chip RAM + 8MB Fast RAM

Kickstart ROMs

The models require matching Kickstart ROMs in RetroArch system directory.

Amiga Forever and TOSEC filenames are also accepted.

Encrypted Amiga Forever ROMs require rom.key also in system directory.

The core has a somewhat compatible built-in AROS Kickstart, which is used as a fallback when the proper Kickstart is not found.

It is critical to use ROMs with the correct MD5!

System Version Filename Amiga Forever Size MD5
A500-A2000 KS v1.2 rev 33.180 kick33180.A500 amiga-os-120.rom 262 144 85ad74194e87c08904327de1a9443b7a
A500-A2000 KS v1.3 rev 34.005 kick34005.A500 amiga-os-130.rom 262 144 82a21c1890cae844b3df741f2762d48d
A500+ KS v2.04 rev 37.175 kick37175.A500 amiga-os-204.rom 524 288 dc10d7bdd1b6f450773dfb558477c230
A600 KS v2.05 rev 37.350 kick37350.A600 amiga-os-205-a600.rom 524 288 465646c9b6729f77eea5314d1f057951
A600-A2000 KS v3.1 rev 40.063 kick40063.A600 amiga-os-310-a600.rom 524 288 e40a5dfb3d017ba8779faba30cbd1c8e
A1200 KS v3.0 rev 39.106 kick39106.A1200 amiga-os-300-a1200.rom 524 288 b7cc148386aa631136f510cd29e42fc3
A1200 KS v3.1 rev 40.068 kick40068.A1200 amiga-os-310-a1200.rom 524 288 646773759326fbac3b2311fd8c8793ee
A4000 KS v3.0 rev 39.106 kick39106.A4000 amiga-os-300-a4000.rom 524 288 9b8bdd5a3fd32c2a5a6f5b1aefc799a5
A4000 KS v3.1 rev 40.068 kick40068.A4000 amiga-os-310-a4000.rom 524 288 9bdedde6a4f33555b4a270c8ca53297d
CDTV CDTV extended ROM v1.0 kick34005.CDTV amiga-os-130-cdtv-ext.rom 262 144 89da1838a24460e4b93f4f0c5d92d48d

CD32 requires either separate ROMs (Kickstart + extended ROM) or the combined ROM:

System Version Filename Amiga Forever Size MD5
CD32 KS + extended v3.1 rev 40.060 kick40060.CD32 1 048 576 f2f241bf094168cfb9e7805dc2856433
OR
CD32 KS v3.1 rev 40.060 kick40060.CD32 amiga-os-310-cd32.rom 524 288 5f8924d013dd57a89cf349f4cdedc6b1
CD32 Extended ROM rev 40.060 kick40060.CD32.ext amiga-os-310-cd32-ext.rom 524 288 bb72565701b1b6faece07d68ea5da639

Resolution and rendering

These parameters control the output resolution of the core (default bolded):

Name Values
Video Standard PAL 50Hz, NTSC 60Hz
Video Resolution Automatic, Low, High, Super-High
Video Line Mode Automatic, Single Line, Double Line
Aspect Ratio Automatic, PAL, NTSC

With these settings all the standard resolutions are available:

PAL 50Hz Resolution Description
360x288 Lores
720x288 Hires Single Line
720x576 Hires Double Line
1440x288 SuperHires Single Line
1440x576 SuperHires Double Line
NTSC 60Hz Resolution Description
360x240 Lores
720x240 Hires Single Line
720x480 Hires Double Line
1440x240 SuperHires Single Line
1440x480 SuperHires Double Line

When using low resolution mode, rendering will be halved horizontally and forced into "Single Line" mode. Scaling shaders looks great, but high resolution games and Workbench are badly rendered.

When using high resolution "Double Line" mode, rendering will be doubled vertically. It is compatible with high resolution games and Workbench, but scaling shaders will look ugly. "Double Line" shows interlaced fields separately (weave) and is suited for deinterlacing shaders.

When using high resolution "Single Line" mode, rendering is presented as is. It delivers the best of both worlds, and looks great with high resolution games, Workbench and shaders. "Single Line" combines interlaced fields into one field (bob), which will make high resolution images blocky and jittery.

  • Automatic "Resolution" defaults to "Hires" and selects "SuperHires" when needed (practically only in Workbench and Super Skidmarks)
  • Automatic "Line Mode" defaults to "Single Line" and selects "Double Line" on interlaced screens

Model overriding

You can force a specific model if a game needs one (AGA games for instance) either by the "Model" core option or by file path tags.

The "Model" core option at "Automatic" will default to A500 when booting floppy disks, A1200 when booting hard drives, and CD32 when booting compact discs.

The whole path (filename and directory) will be searched for the following tags if the model is "Automatic":

Floppy HD/LHA CD String Result
x x (A500OG), (512K), (512KB) Amiga 500 (0.5MB Chip RAM)
x x (A500), OCS Amiga 500 (0.5MB Chip RAM + 0.5MB Slow RAM)
x x (A500+), (A500PLUS) Amiga 500+ (1MB Chip RAM)
x x (A600), ECS Amiga 600 (2MB Chip RAM + 8MB Fast RAM)
x x (A1200OG), (A1200NF) Amiga 1200 (2MB Chip RAM)
x x (A1200), AGA, CD32, AmigaCD Amiga 1200 (2MB Chip RAM + 8MB Fast RAM)
x x (A4030), (030) Amiga 4000/030 (2MB Chip RAM + 8MB Fast RAM)
x x (A4040), (040) Amiga 4000/040 (2MB Chip RAM + 8MB Fast RAM)
x CDTV Amiga CDTV (1MB Chip RAM)
x (CD32), (CD32NF) Amiga CD32 (2MB Chip RAM)
x (CD32FR), FastRAM Amiga CD32 (2MB Chip RAM + 8MB Fast RAM)
x x x NTSC, (USA) NTSC 60Hz
x x x PAL, (Europe) ! PAL 50Hz
x (MD) !! Insert each disk in different drives
x x x (CE) Force CPU Cycle-exact
  • (!) Additional tags: (Denmark), (Finland), (France), (Germany), (Italy), (Spain), (Sweden)
  • (!!) Maximum 4 disks

Example: When launching "Alien Breed 2 AGA.hdf" or "AGA/Alien Breed 2.hdf" the model will be Amiga 1200.

Note: CD32 and AmigaCD are a bit misleading, since they have nothing to do with actual CDs. They are for automatically selecting the appropriate model with certain WHDLoad slaves and AmigaCD-to-HDF conversions.

Disk images, WHDLoad and M3U support

Supported formats are:

  • ADF, ADZ, IPF, DMS, FDI for floppy disk images
  • ISO, CUE, CCD, NRG, MDS, CHD for compact disc images
  • HDF, HDZ, LHA for hard drive images
  • M3U for multiple image playlist
  • ZIP for various content (FD, HD, CD, WHDLoad)

Floppy drive sounds

The core has embedded internal floppy drive samples. External sound samples have to be copied from https://github.com/libretro/libretro-uae/tree/master/sources/uae_data into a directory named uae_data or uae in RetroArch system directory.

IPF support

Most full-price commercial Amiga games had some form of custom disk format and/or copy protection. For this reason, most commercial Amiga games cannot be stored in ADF files unaltered, but there is an alternative called Interchangeable Preservation Format (IPF) which was specifically designed for this purpose.

IPF support is done through CAPSIMG library. To enable it you have to put the dynamic library called capsimg.dll (Windows) or capsimg.so (Linux, macOS) in RetroArch system or executable directory.

Compatible CAPSIMG libraries for Windows, macOS and Linux can be found at http://www.softpres.org/download and https://fs-uae.net/download#plugins

Compatible CAPSIMG libraries for Android can be found at https://github.com/rsn8887/capsimg/releases/latest

Please be aware that there are 32-bits and 64-bits versions of the library. Choose the one corresponding to your RetroArch executable.

ZIP support

ZIPs are extracted to a temporary directory in saves, bypassing the default frontend extraction. The temporary directory is emptied but not removed on exit. ZIP is not repacked, which means saves and highscores are lost.

This allows:

  • Automatic M3U playlist generation of all files
  • The use of zipped images in M3Us
  • If no compatible images are found, the ZIP will be treated as a directory

M3U support

When you have a multi disk game, you can use a M3U playlist file to be able to change disks via RetroArch Disc Control interface.

A M3U file is a simple text file with one disk per line (Wikipedia).

Example:

Simpsons, The - Bart vs. The Space Mutants.m3u

Simpsons, The - Bart vs. The Space Mutants_Disk1.adf
Simpsons, The - Bart vs. The Space Mutants_Disk2.adf

Path can be absolute or relative to the location of the M3U file.

When the game asks for it, you can change the current disk in the RetroArch "Disc Control" menu:

  • Eject the current disk with "Eject Disc"
  • Select the right disk index with "Current Disc Index"
  • Insert the new disk with "Insert Disc"

By default, RetroArch will display the filename (without extension) of each M3U entry when selecting a disk via the Current Disc Index drop-down menu. Custom display labels may be set for each disk using the syntax: DISK_FILE|DISK_LABEL. For example, the following M3U file:

Valhalla & the Fortress of Eve.m3u

Valhalla & the Fortress of Eve_Disk1.adf|Game Disk
Valhalla & the Fortress of Eve_Disk2.adf|Data Disk
Valhalla & the Fortress of Eve_Disk3.adf|Level 1 Disk
Valhalla & the Fortress of Eve_Disk4.adf|Level 2 Disk
Valhalla & the Fortress of Eve_Disk5.adf|Level 3 Disk
Valhalla & the Fortress of Eve_Disk6.adf|Level 4 Disk

...will be shown in RetroArch's disk selection menu as:

1: Game Disk
2: Data Disk
3: Level 1 Disk
4: Level 2 Disk
5: Level 3 Disk
6: Level 4 Disk

If DISK_LABEL is intentionally left blank (i.e. DISK_FILE|) then only the disk index will be displayed.

For games that require a dedicated save disk, one may be generated automatically by entering the following line in an M3U file: #SAVEDISK:VolumeName. VolumeName is optional and may be omitted. For example, this will create a blank, unlabelled disk image at disk index 5:

Secret of Monkey Island.m3u

Secret of Monkey Island_Disk 1.adf
Secret of Monkey Island_Disk 2.adf
Secret of Monkey Island_Disk 3.adf
Secret of Monkey Island_Disk 4.adf
#SAVEDISK:

Some games require save disks to have a specific label - for example, It Came from the Desert will only save to a disk named DSAVE:

Virtual keyboard has a key labeled SVDS (CapsLock+STBR) which creates and switches to/from the save disk, which makes this step obsolete.

It Came from the Desert.m3u

It Came from the Desert_Disk 1.adf
It Came from the Desert_Disk 2.adf
It Came from the Desert_Disk 3.adf
#SAVEDISK:DSAVE

Although one save disk is normally sufficient, an arbitrary number of #SAVEDISK:VolumeName lines may be included. Save disks are located in the frontend's save directory, with the following name: [M3U_FILE_NAME].save[DISK_INDEX].adf.

Save disks generated by the #SAVEDISK: keyword are automatically assigned the label: Save Disk [SAVE_DISK_INDEX].

For games that support multiple disk drives, append "(MD)" as in "MultiDrive" to the M3U filename to insert each disk in different drives. Only possible with maximum 4 disks!

Extra features

  • #SAVEDISK:<label>
    • Create a save disk in saves
  • <disk>.adf|<label>
    • Set a friendly name (shown in "Disc Control")
  • <disks>.zip#<disk>.adf
    • Specify a disk inside a ZIP with multiple disks (not needed with single file ZIPs)

M3U playlist supports floppy disks, hard drives (all images are mounted at once) and compact discs.

LED interface

Libretro LED interface is presented in the following order:

  1. Power
  2. Floppy drives
  3. HD/CD/MD (NVRAM)
  4. DF0
  5. DF1
  6. DF2
  7. DF3
  8. HD
  9. CD/MD (NVRAM)

WHDLoad

Pre-installed WHDLoad LHA archives can be launched directly without any kind of manual preparing and downloading.

  • WHDLoad helper files (Directory or HDF) will be generated to saves, WHDLoad.prefs will be generated to system
  • WHDLoad.prefs & WHDLoad.key & rom.key will be copied from system to the helper image
  • Kickstarts will be copied automatically to the helper image
  • To update WHDLoad: simply delete the directory or the HDF

Overrides at startup

  • (Red) Hold fire button for launch selector
    • For alternate .info launching
  • (Red+Blue) Hold fire + 2nd fire for ReadMe + MkCustom
    • For creating default CUSTOM parameters

WHDLoad Splash Screen core option overrides

  • (Blue) Hold 2nd fire for WHDLoad Config
    • Waits for user input if the slave supports splash screen configurations
  • (LMB) Hold left mouse button for WHDLoad Splash
    • Briefly shows the splash screen while preloading (default WHDLoad behavior)
  • (RMB) Hold right mouse button for WHDLoad Config+Splash
    • Always waits for user input at the splash screen

New WHDLoad.hdf features for old users

Major changes

  • Slave no longer needs to be renamed to game.slave. The first one is selected.
  • Kickstarts will be copied automatically from system if they do not exist in the helper image.
  • WHDLoad.key will be copied from system if it does not exist in the helper image.
  • WHDLoad.prefs will be copied from system on every run.
  • Supports a file named custom in the root of the game.hdf for passing specific WHDLoad parameters when the slave does not support the config screen or when it should be the default, for example Custom1=1. It always overrides WHDLoad.prefs.
    • The easiest way to create custom is to quit WHDLoad (default Numpad*), type echo custom1=1 >custom, press enter and reboot the Amiga.
    • Script called MkCustom for simplest custom file handling. Launches after quitting WHDLoad.
    • MkCustom will create a slave-based custom_$SLAVE in WHDSaves:. Essential with readonly images.
  • Supports a file named load in the root of the game.hdf which overrides the whole launch command, aimed at non-WHDLoad installs.
  • If .slave is not in the root of the HDF, it will also be searched under the first found directory.
  • Saves will be redirected to a separate WHDSaves.hdf. Repo provides an empty 4MiB HDF.

Minor changes

  • Both HDF-files (WHDLoad.hdf & WHDSaves.hdf) can be located in either RA system or saves.
  • "WHDLoad Support" core option does not need to be disabled when launching a non-WHDLoad HDF which has S/startup-sequence.
  • NTSC parameter can be used with WHDLoad.
  • Included ClickNot for suppressing drive clicking when drive sound emulation is enabled.
  • Included MEmacs for file editing (custom & load).
  • Included xpkmaster.library.
  • New WHDLoad defaults:
    • ButtonWait (Waits for a button press in certain slaves when loading is so fast that you can't enjoy a picture or a tune).
    • ReadDelay=0 & WriteDelay=50 (These speed up OS switching on loadings and savings. Saves tend to corrupt HDFs with WriteDelay below 50).

Latest changes

  • Downgraded WHDLoad to 18.6 due to a save related bug in 18.7
  • Updated WHDLoad to the latest one (18.7 2021-10-23).
  • Support for Retroplay LHA installs.
  • Support for Arcadia installs (requires KS 1.2, kick33180.A500 will be copied automatically).
  • Show ReadMe before running MkCustom after quitting.
  • Changed HDF filesystem from OFS to FFS. Prevents image corruption on unclean shutdowns.
  • Default launch method changed to WBRun.
  • Better support for games with multiple icons.
  • Hold down fire button at boot for .info selector. Selector will be launched always when there is no exact match for .slave.
  • WHDLoad.hdf + WHDSaves.hdf + WHDLoad.prefs baked in the core. No more separate downloads!
  • WHDLoad: and WHDSaves: volumes defaulted to directory mode.

Create a HDF image for a game

Not recommended or required anymore, because:

  • WHDLoad specific LHA archives will work directly as a read-only hard drive image
  • Directories will work as a regular hard drive image
  • ZIP files will be extracted to a temporary directory and can contain any type of supported content

But if you must:

To do this you can use ADF Opus or amitools.

Example, to create a HDF file from a zipped WHDLoad game:

  • Extract files from the ZIP to a directory
  • Pack the directory in a HDF file with:

Note the size of the HDF specified by SIZE_OF_HDF must be greater than size of the directory to store the additional filesystem informations (f.ex a 1.25 ratio).

Using configuration files

You can pass .uae configuration files and they will be appended to the core option configuration.

If puae_libretro_[model].uae exists in RetroArch saves it will be appended to the model preset section.

If puae_libretro_global.uae exists in RetroArch saves it will be appended to the configuration.

The final generated configuration output is available in debug level log.

Note that the use of configuration files is no longer encouraged or necessary. The core has been modified to always use the core options as a base, so that all custom configurations will be appended to the created configuration, effectively overriding the core options. The problem with this is that changing any core option while the core is running will reset all duplicate configurations. Therefore only add configurations which will require a restart or do not exist in the core options, if you must use a custom uae. If there is an option missing that is a must have, please make an issue about it.

Example 1: You want to mount four non-RDB HDF files. You have one bootable 1000 MB file called System.hdf created with surfaces=1, and three non-bootable 2000 MB files called WHDGamesA.hdf, WHDGamesB.hdf, WHDGamesC.hdf created with surfaces=2. Your HDF files are located in the folder with absolute path /emuroms/amiga/hdf/. For that scenario, you should create a .uae text file with the following content:

hardfile=read-write,32,1,2,512,/emuroms/amiga/hdf/System.hdf
hardfile=read-write,32,2,2,512,/emuroms/amiga/hdf/WHDGamesA.hdf
hardfile=read-write,32,2,2,512,/emuroms/amiga/hdf/WHDGamesB.hdf
hardfile=read-write,32,2,2,512,/emuroms/amiga/hdf/WHDGamesC.hdf

Example 2: You want to mount a directory full of extracted data as a hard drive:

filesystem2=rw,DH0:data:/emuroms/amiga/,0

Windows tip:

  • If paths are enclosed with quotes, Windows needs double backslashes: filesystem2=rw,DH0:data:"c:\\emuroms\\amiga",0.

Linux tip:

  • Leave the ending slash to the path to make sure UAE sees it as a directory.

If you are using RDB HDF files, please use 0,0,0,512 instead of geometry numbers like 32,1,2,512. The geometry will then be read from the file. This only works for RDB HDF files.

Latest features

  • Large HDF support (sonninnos)
  • Full framerate double line interlace backport (sonninnos)
  • Core-based ZIP extraction with automatic M3U generation (sonninnos)
  • CDTV support (sonninnos)
  • CD turbo speed backport (sonninnos)
  • Touch control VKBD (sonninnos)
  • File-based WHDLoad.hdf (sonninnos)
  • Memory-based savestates (jdgleaver)
  • Analog Joystick (sonninnos)
  • SuperHires (sonninnos)
  • Retroplay WHDLoad LHA support (sonninnos)
  • CD32 support (sonninnos)
  • WHDLoad.prefs override core option (sonninnos)
  • Internal+external floppy drive sounds (sonninnos)
  • Single line high resolution mode (sonninnos)
  • Savestate support (sonninnos)
  • Parallel port four player joystick adapter is emulated with working two, three and four-player controls (sonninnos and rsn8887)
  • CD32 controller support (sonninnos)
  • Multiple mice support using raw input driver on Windows (sonninnos)
  • Autozoom and autocentering options for large game display without borders or distortion (sonninnos)
  • Mappable hotkeys to bring up statusbar and on-screen keyboard (sonninnos)
  • Analog stick mouse control (sonninnos and rsn8887)
  • On screen keyboard with easy joystick/dpad control (sonninnos and rsn8887)
  • Implement new core options with some small print explanations (sonninnos)
  • Implement hotkeys for status bar and virtual keyboard that can be remapped instead of using hardcoded buttons (sonninnos)
  • Allow starting the emulated Amiga without content (sonninnos)
  • Add many core options, such as a cycle exact option (sonninnos and rsn8887)
  • Allow to load any single, bootable .hdf hard drive file directly via load content (rsn8887)
  • Allow disabling the use of system/WHDLoad.hdf (rsn8887)
  • Fix quickmenu->disk control options for swapping disks on the fly (rsn8887)
  • Change option defaults to more sensible values (sonninnos)
  • Add Switch version of the core (rsn8887)
  • ...

More Repositories

1

RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
C
9,223
star
2

Lakka-LibreELEC

Lakka is a lightweight Linux distribution that transforms a small computer into a full blown game console.
Makefile
1,677
star
3

common-shaders

Collection of commonly used Cg shaders. These shaders are usable by either HLSL and/or Cg runtime compilers. The cg2glsl script will translate most of these into GLSL shaders.
C
1,011
star
4

glsl-shaders

This repo is for glsl shaders converted by hand from libretro's common-shaders repo, since some don't play nicely with the cg2glsl script.
GLSL
824
star
5

libretro-database

Repository containing cheatcode files, content data files, etc.
Python
680
star
6

ludo

A libretro frontend written in golang
Go
573
star
7

libretro-super

Super repo for other libretro projects. Fetches, builds and installs.
Shell
375
star
8

libretro-thumbnails

Boxarts, titlescreen, and in-game screenshots for the no-intro DATs used by RetroArch
311
star
9

beetle-psx-libretro

Standalone port/fork of Mednafen PSX to the Libretro API.
C
295
star
10

parallel-n64

Optimized/rewritten Nintendo 64 emulator made specifically for Libretro. Originally based on Mupen64 Plus.
C++
272
star
11

retroarch-joypad-autoconfig

RetroArch joypad autoconfig files
Ruby
258
star
12

docs

This is a repo of the RetroArch official document page.
TeX
238
star
13

mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
C
175
star
14

mupen64plus-libretro-nx

Improved mupen64plus libretro core reimplementation
C
169
star
15

retroarch-assets

Assets needed for RetroArch - e.g. menu drivers, etc. Also contains the official branding.
Shell
166
star
16

LRPS2

C
156
star
17

libretro-lutro

An experimental lua game framework for libretro following the LÖVE API
C
133
star
18

libretro-common

Reusable coding blocks useful for libretro core and frontend development, written primarily in C. Permissively licensed.
C
122
star
19

libretro-fceumm

FCEUmm libretro port.
C
107
star
20

snes9x2010

Snes9x 2010. Port of Snes9x 1.52+ to Libretro (previously called SNES9x Next). Rewritten in C and several optimizations and speedhacks.
C
95
star
21

common-overlays

Collection of overlay files for use with libretro frontends, such as RetroArch.
Shell
91
star
22

gambatte-libretro

Hard fork of Gambatte to the libretro API.
C
87
star
23

mame2003-libretro

MAME 0.78 for libretro. Compatible with MAME 0.78 sets.
C
86
star
24

nxengine-libretro

Port of NxEngine to the libretro API. NXEngine is a Cave Story game engine clone
C
81
star
25

swanstation

C++
80
star
26

vba-next

Optimized port of VBA-M to Libretro.
C
79
star
27

overlay-borders

A place for collecting decorative/cosmetic overlays for use with RetroArch.
67
star
28

libretro-prboom

Port of prboom to libretro - plays Doom, Doom II, Final Doom and other Doom IWAD mods.
C++
62
star
29

libretro-chailove

❤️ 2D Game Framework with ChaiScript
C++
61
star
30

dosbox-libretro

Port of DOSBox (upstream) to the libretro API.
C++
57
star
31

libretro-samples

A set of samples to illustrate libretro API.
C
57
star
32

libretro-core-info

Mirror of libretro's core info files. Submit changes to libretro-super instead.
Makefile
54
star
33

neocd_libretro

Neo Geo CD emulator for libretro
C++
50
star
34

opera-libretro

Port of 4DO/libfreedo to libretro.
C
48
star
35

blastem

Upstream tracking repo of BlastEm, the fast and accurate Genesis emulator, with libretro specific changes
C
47
star
36

arcade-overlays

Pawn
39
star
37

bsnes-mercury

Fork of bsnes with various performance improvements.
C++
39
star
38

blueMSX-libretro

Port of blueMSX to the libretro API.
C
39
star
39

nestopia

Nestopia emulator with libretro interface
C++
37
star
40

LudOS

Just enough OS for libretro using the Ludo frontend on a LibreELEC 9.2 base
Makefile
37
star
41

tyrquake

Libretro port of Tyrquake (Quake 1 engine)
C
36
star
42

snes9x2002

Snes9x 2002. Port of SNES9x 1.39 for libretro (was previously called PocketSNES). Heavily optimized for ARM.
C
34
star
43

mame2000-libretro

2000 version of MAME (0.37b5) for libretro. Compatible with iMAME4All/MAME4Droid/MAME 0.37b5 sets.
C
34
star
44

fuse-libretro

A port of the Fuse Unix Spectrum Emulator to libretro
C
34
star
45

desmume2015

Port of Desmume to libretro based on Desmume SVN circa 2015.
C++
30
star
46

mame2010-libretro

Late 2010 version of MAME (0.139) for libretro. Compatible with MAME 0.139 sets.
C
30
star
47

libretro.github.com

HTML
29
star
48

fbalpha2012

Final Burn Alpha 2012. Port of Final Burn Alpha to Libretro (0.2.97.24).
C++
29
star
49

gw-libretro

A libretro core for Game & Watch simulators
C
28
star
50

virtualjaguar-libretro

Hard fork of Virtual Jaguar (abandoned project) to Libretro
C
28
star
51

FreeIntv

A libretro emulation core for the Mattel Intellivision designed to be compatible with joypads from the SNES era forward
Assembly
26
star
52

mame2016-libretro

Late 2016 version of MAME (0.174) for libretro. Compatible with MAME 0.174 sets.
C++
26
star
53

fmsx-libretro

Port of fMSX to the libretro API.
C
25
star
54

beetle-pce-fast-libretro

Standalone fork of Mednafen PCE Fast to libretro
C
24
star
55

shader-previews

A repo to store thumbnail previews for RetroArch's many shaders.
24
star
56

tgbdual-libretro

libretro port of TGB Dual
C
23
star
57

hatari

New rebasing of Hatari based on Mercurial upstream. Tries to be a shallow fork for easy upstreaming later on.
C
23
star
58

stella2014-libretro

Port of Stella to libretro.
C++
22
star
59

vbam-libretro

A fork of VBA-M with libretro integration
C++
22
star
60

parallel-rsp

C
21
star
61

PokeMini

Obscure nintendo handheld emulator
C
20
star
62

libretro-cap32

caprice32 4.2.0 libretro
C
19
star
63

beetle-vb-libretro

Standalone hard fork of Mednafen VB to libretro.
C
19
star
64

beetle-supergrafx-libretro

Standalone port of Mednafen PCE Fast to libretro. This one only emulates a SuperGrafx TG-16.
C
18
star
65

81-libretro

A port of the EightyOne ZX81 Emulator to libretro
C
18
star
66

ecwolf

Libretro port of ECWolf
C++
18
star
67

beetle-pce-libretro

Standalone hard fork of Mednafen PCE to libretro
C
18
star
68

beetle-wswan-libretro

Standalone hard fork of Mednafen WonderSwan to libretro, itself a fork of Cygne
C
17
star
69

lutro-platformer

A platform game demo for libretro-lutro
Lua
16
star
70

Genesis-Plus-GX-Wide

Widescreen modification of Genesis Plus GX
C
16
star
71

mame2015-libretro

Late 2014/Early 2015 version of MAME (0.160-ish) for libretro. Compatible with MAME 0.160 sets.
C
16
star
72

libretro-2048

Port of 2048 puzzle game to the libretro API. http://gabrielecirulli.github.io/2048/
C
15
star
73

pcsx_rearmed_switch

PCSX ReARMed specifically for Switch right now. Separate repo might go away later.
C
15
star
74

go-nanoarch

Minimal libretro frontend written in golang
C
14
star
75

retroarch-snap

RetroArch snap package
Shell
14
star
76

libretro-mpv

mpv media player libretro core
C
14
star
77

REminiscence

Flashback engine reimplementation
C++
13
star
78

fceu-next

Port of FCEUmm / FCEUX to Libretro.
C
13
star
79

libretro-content

Content provided through the Content Downloader.
Makefile
12
star
80

prosystem-libretro

Port of ProSystem to the libretro API.
C
12
star
81

daphne

C
11
star
82

netplay-lobby-server-go

Netplay lobby server implemented in GO.
Go
11
star
83

arduous

C
11
star
84

libretro-handy

K. Wilkins' Atari Lynx emulator Handy (http://handy.sourceforge.net/) for libretro
C
11
star
85

libretro-o2em

Port of O2EM to the libretro API, an Odyssey 2 / VideoPac emulator.
C
11
star
86

bsnes-libretro-cplusplus98

libretro implementation of the core emulation in BSNES, a Super Nintendo (SNES) emulator.
C++
11
star
87

pcsx1-libretro

PCSX1 rewritten for libretro only.
C
10
star
88

libretro-gme

Port of blargg's Game_Music_Emu library
C
10
star
89

atv_menu

Android TV menu driver for RetroArch
C++
10
star
90

bsnes2014

Libretro fork of bsnes. As close to upstream as possible.
C++
9
star
91

bnes-libretro

libretro implementation of bNES
C++
9
star
92

desmume2014

Port of Desmume to libretro based on Desmume SVN circa 2015.
C++
9
star
93

fbalpha2012_neogeo

Final Burn Alpha 2012. Port of Final Burn Alpha to Libretro (0.2.97.24). Standalone core for Neo Geo.
C
9
star
94

minibrowser

C
8
star
95

beetle-ngp-libretro

Standalone port of Mednafen NGP to the libretro API, itself a fork of Neopop.
C
8
star
96

netplay-mitm-server

C++
8
star
97

paraLLeXT

Rebased parallel build.
C
8
star
98

smsplus-gx

Improved port of SMSPlus-GX by gameblabla for libretro
C
8
star
99

lutro-status

Compare Lutro's API to the LOVE API, written by @Feufochmar
Lua
8
star
100

libretro-directxbox

C
8
star