Lightweight libretro frontend for Windows with a controller-friendly game library, box art, rewind and CRT shaders
C
0
1 commits
updated Oct 3, 2026
An emulator that runs many consoles from a single .exe. The frontend is written in C: window, OpenGL video, audio, keyboard and controller input, save states and the core downloader. The consoles themselves are emulated by libretro cores, the open-source DLLs that RetroArch also uses. The app can download them for you with one click from its menu.
Requirements: Windows 10 (version 1803 or newer) or Windows 11, 64-bit; a graphics driver with OpenGL 3.3 or newer; an internet connection the first time, to download the emulator cores.
UltimateEmulator-v3.6-windows-x64.zip.UltimateEmulator folder somewhere you can write to, such as Documents or the Desktop. Do not use Program Files. The program keeps its cores, saves and settings next to the exe, so it can also be copied to a USB stick.UltimateEmulator.exe.
buildbot.libretro.com). You can also get all of them at once with Cores > Download missing cores.The download only contains the program. The folders cores\, system\, saves\, states\, config\, screenshots\, thumbnails\ and temp\ are created automatically on the first start, and every user's games, saves and settings stay on their own PC.
No games, ROMs or BIOS files are included. Use your own dumps. PS2 and Sega CD games need BIOS files from your own console (see Systems below).
w64devkit.exe, go to this folder and build:
cd C:/path/to/UltimateEmulator
make
If w64devkit\bin is on your PATH, you can also double-click build.bat.UltimateEmulator.exe. A prebuilt copy is already in this folder. You can move the folder anywhere you like.UltimateEmulator.exe.buildbot.libretro.com into the cores\ folder, using the tar.exe that ships with Windows 10/11.You can open .zip, .7z and .rar files directly, without extracting them first. The archive is extracted into temp\<archive name>\ and the game file inside is picked automatically. For multi-file discs such as CUE/BIN, the .cue is preferred. Opening the same archive again does not extract it a second time, which saves time with large PS2/PSP archives. To delete the extracted files, use File > Clear archive cache. Password-protected archives are not supported.
These folders are created next to the exe:
| Folder | Contents |
|---|---|
cores\ | Emulator cores |
system\ | BIOS files |
saves\ | In-game saves |
states\ | Save states |
config\ | Settings, recently played, favorites, play time |
screenshots\ | Screenshots |
thumbnails\ | Cached box art |
temp\ | Files extracted from archives |
| System | Core | BIOS |
|---|---|---|
| NES / Famicom | fceumm | – (disksys.rom for FDS) |
| SNES | snes9x | – |
| Nintendo 64 | mupen64plus_next (OpenGL) | – |
| Game Boy / Color | gambatte | – |
| Game Boy Advance | mgba | optional gba_bios.bin |
| Nintendo DS | melondsds | optional (built-in fallback BIOS) |
| Master System / Game Gear / Mega Drive | genesis_plus_gx | – |
| Sega CD | genesis_plus_gx | required: bios_CD_U.bin, bios_CD_E.bin, bios_CD_J.bin |
| 32X | picodrive | – |
| PlayStation | pcsx_rearmed | optional scph5501.bin (HLE BIOS otherwise) |
| PlayStation 2 | pcsx2 (LRPS2) | required: PS2 BIOS files in system\pcsx2\bios\ |
| PSP | ppsspp | – (support files are downloaded automatically) |
| Atari 2600 / 5200-800 / 7800 / Lynx / Jaguar / ST | stella / atari800 / prosystem / handy / virtualjaguar / hatari | Lynx: lynxboot.img, ST: tos.img |
BIOS files must come from your own console; they are not included. Cores > Open BIOS (system) folder opens the folder for you.
The start screen has three tabs:
.bin is not listed separately when a .cue with the same name exists.Box art: when the window is wide enough, the cover of the selected game is shown next to the list, together with its system, total play time and favorite status. Covers are downloaded from the libretro thumbnail archive (thumbnails.libretro.com) and cached in thumbnails\. They are matched by file name, so they appear for files named the standard (No-Intro / Redump) way, such as Super Mario World (USA).sfc. A ZIP file's system is only known after you have played it once, so its box art appears after the first play. Downloading can be turned off under File > Download box art from the internet.
Play time: the time you spend playing each game is recorded and shown in the list.
You can navigate the list with the keyboard, the mouse or a controller:
| Key / button | Action |
|---|---|
| Up / Down | Select |
| Enter, Cross or double-click | Play |
| Left / Right, L1 / R1 or Tab | Switch tabs |
| Insert or Triangle / Y | Add or remove a favorite |
| Delete | Remove from the list |
| Letters | Jump to a game by name (e.g. type mar for Mario) |
During a game, press Esc, or tap the PS / Home / Xbox button on a controller. Controllers without such a button can use Start+Select together. The game pauses, and you can:
The whole menu works with a controller: Cross confirms, Circle closes.
states\<game>.auto). The next time you open it, it continues from there. To start over, choose Esc > Restart. You can turn this off in the Emulation menu.| Keyboard | Controller equivalent |
|---|---|
| Arrow keys | D-Pad |
| Z / X | B / A (PS: Cross / Circle) |
| A / S | Y / X (PS: Square / Triangle) |
| Q / W | L / R |
| E / R | L2 / R2 |
| C / V | L3 / R3 |
| Enter / Right Shift | Start / Select |
| I J K L | Left analog stick |
| Numpad 8 4 5 6 | Right analog stick (N64 C buttons) |
| Mouse | DS touch screen |
To change the keyboard bindings, edit config\ultimate.ini (Help > Edit key bindings).
Up to 4 players are supported. Controllers are assigned to players 1, 2, 3 and 4 in order, and the keyboard is always player 1.
Controller hotkeys. Tap the PS / Home / Xbox button to open the in-game menu. While you hold it:
| Button | Action |
|---|---|
| R1 | Save state |
| L1 | Load state |
| Start | Pause |
| Select | Fullscreen |
| R2 (hold) | Fast forward |
| L2 (hold) | Rewind |
| Up / Down | Save slot |
| Triangle / Y | Screenshot |
Keyboard shortcuts:
| Key | Action |
|---|---|
| Esc | In-game menu |
| Ctrl+O | Open game |
| F2 / F4 | Save / load state |
| F6 / F7 | Save slot - / + |
| F8 | Reset |
| F9 | Next video filter |
| F3 | FPS counter |
| P | Pause |
| Tab (hold) | Fast forward |
| Backspace (hold) | Rewind |
| + / - | Volume up / down |
| M | Mute / unmute |
| F12 | PNG screenshot into screenshots\ |
| F11 or Alt+Enter | Fullscreen |
Video filters (shaders). Press F9 to cycle through them.
| Filter | Best for |
|---|---|
| Sharp pixels | 2D games: pixels scale up without blur or shimmering |
| Smooth pixel art (Scale2x) | 2D games: smooths jagged edges |
| CRT TV | Old television look with scanlines and a shadow mask |
| CRT TV (curved screen) | The CRT look plus curved glass and darkened edges |
| LCD grid | Pixel grid of Game Boy, GBA, DS and PSP screens |
| Sharpen + vivid colors | 3D games (PS1/PS2/PSP/N64): crisper textures, livelier colors |
Aspect ratio and scaling. Choose between the core's own aspect ratio, 4:3, 16:9, fill the screen, or square pixels. With integer scaling on, all pixels are the same size.
Core graphics settings. While a game is running, the Quality menu lists that core's own settings, such as internal resolution, texture filtering and FXAA. For example:
43screensize to 1280x960 or higher.Internal resolution to 2x-4x.upscale multiplier.Some settings only take effect after Emulation > Reset or after reopening the game. Every setting is available under Quality > All core settings. They are stored in config\<core>.opt.
| Problem | Solution |
|---|---|
| "Windows protected your PC" | Click More info > Run anyway. The exe is not code-signed. |
| Antivirus blocks or deletes the exe | False positive on an unsigned exe. Restore it and add the folder to the exclusions, or build it yourself. |
| "started directly from inside the ZIP file" | Extract the ZIP first, then run the exe from the extracted folder. |
| "cannot write to its own folder" | Move the folder to Documents or the Desktop (not Program Files). |
| Core download fails | Check your internet connection or firewall. Requires Windows 10 version 1803+ (for the built-in tar.exe). |
| "The game could not be loaded" | Check Help > Open log. PS2 and Sega CD need BIOS files in system\; PS2 BIOS goes in system\pcsx2\bios\. |
| "OpenGL could not be started" / black screen in 3D games | Update your graphics driver. N64, PSP and PS2 need OpenGL 3.3+. |
| PS2 runs slowly | PS2 emulation needs a fast CPU. Lower the upscale multiplier in the Quality menu. |
| Very long folder paths cause errors | Keep the folder in a short location such as C:\Games\UltimateEmulator. |
If something else goes wrong, check ultimate.log (Help > Open log).
src/libretro.h is a minimal re-declaration of the libretro API (MIT). The emulation itself is done by the libretro cores (FCEUmm, Snes9x, Mupen64Plus-Next, Gambatte, mGBA, melonDS DS, Genesis Plus GX, PicoDrive, PCSX-ReARMed, LRPS2, PPSSPP, Stella, Atari800, ProSystem, Handy, Virtual Jaguar, Hatari). These are downloaded from the libretro buildbot at runtime and are not distributed with this project.sharp-bilinear shader), Scale2x / EPX, and contrast-adaptive sharpening (after AMD FidelityFX CAS).This project does not include, link to or help obtain games, ROMs, ISOs or BIOS files. Use only games and BIOS files that you have dumped from hardware you own. PlayStation, Nintendo, Sega, Atari and all related names are trademarks of their respective owners. This project is not affiliated with or endorsed by any of them.
The frontend source and original app resources are licensed under MIT. Libretro cores downloaded by the app are separate projects with their own licenses.
C
99.5%
Lightweight libretro frontend for Windows with a controller-friendly game library, box art, rewind and CRT shaders
C
0
1 commits
updated Oct 3, 2026
An emulator that runs many consoles from a single .exe. The frontend is written in C: window, OpenGL video, audio, keyboard and controller input, save states and the core downloader. The consoles themselves are emulated by libretro cores, the open-source DLLs that RetroArch also uses. The app can download them for you with one click from its menu.
Requirements: Windows 10 (version 1803 or newer) or Windows 11, 64-bit; a graphics driver with OpenGL 3.3 or newer; an internet connection the first time, to download the emulator cores.
UltimateEmulator-v3.6-windows-x64.zip.UltimateEmulator folder somewhere you can write to, such as Documents or the Desktop. Do not use Program Files. The program keeps its cores, saves and settings next to the exe, so it can also be copied to a USB stick.UltimateEmulator.exe.
buildbot.libretro.com). You can also get all of them at once with Cores > Download missing cores.The download only contains the program. The folders cores\, system\, saves\, states\, config\, screenshots\, thumbnails\ and temp\ are created automatically on the first start, and every user's games, saves and settings stay on their own PC.
No games, ROMs or BIOS files are included. Use your own dumps. PS2 and Sega CD games need BIOS files from your own console (see Systems below).
w64devkit.exe, go to this folder and build:
cd C:/path/to/UltimateEmulator
make
If w64devkit\bin is on your PATH, you can also double-click build.bat.UltimateEmulator.exe. A prebuilt copy is already in this folder. You can move the folder anywhere you like.UltimateEmulator.exe.buildbot.libretro.com into the cores\ folder, using the tar.exe that ships with Windows 10/11.You can open .zip, .7z and .rar files directly, without extracting them first. The archive is extracted into temp\<archive name>\ and the game file inside is picked automatically. For multi-file discs such as CUE/BIN, the .cue is preferred. Opening the same archive again does not extract it a second time, which saves time with large PS2/PSP archives. To delete the extracted files, use File > Clear archive cache. Password-protected archives are not supported.
These folders are created next to the exe:
| Folder | Contents |
|---|---|
cores\ | Emulator cores |
system\ | BIOS files |
saves\ | In-game saves |
states\ | Save states |
config\ | Settings, recently played, favorites, play time |
screenshots\ | Screenshots |
thumbnails\ | Cached box art |
temp\ | Files extracted from archives |
| System | Core | BIOS |
|---|---|---|
| NES / Famicom | fceumm | – (disksys.rom for FDS) |
| SNES | snes9x | – |
| Nintendo 64 | mupen64plus_next (OpenGL) | – |
| Game Boy / Color | gambatte | – |
| Game Boy Advance | mgba | optional gba_bios.bin |
| Nintendo DS | melondsds | optional (built-in fallback BIOS) |
| Master System / Game Gear / Mega Drive | genesis_plus_gx | – |
| Sega CD | genesis_plus_gx | required: bios_CD_U.bin, bios_CD_E.bin, bios_CD_J.bin |
| 32X | picodrive | – |
| PlayStation | pcsx_rearmed | optional scph5501.bin (HLE BIOS otherwise) |
| PlayStation 2 | pcsx2 (LRPS2) | required: PS2 BIOS files in system\pcsx2\bios\ |
| PSP | ppsspp | – (support files are downloaded automatically) |
| Atari 2600 / 5200-800 / 7800 / Lynx / Jaguar / ST | stella / atari800 / prosystem / handy / virtualjaguar / hatari | Lynx: lynxboot.img, ST: tos.img |
BIOS files must come from your own console; they are not included. Cores > Open BIOS (system) folder opens the folder for you.
The start screen has three tabs:
.bin is not listed separately when a .cue with the same name exists.Box art: when the window is wide enough, the cover of the selected game is shown next to the list, together with its system, total play time and favorite status. Covers are downloaded from the libretro thumbnail archive (thumbnails.libretro.com) and cached in thumbnails\. They are matched by file name, so they appear for files named the standard (No-Intro / Redump) way, such as Super Mario World (USA).sfc. A ZIP file's system is only known after you have played it once, so its box art appears after the first play. Downloading can be turned off under File > Download box art from the internet.
Play time: the time you spend playing each game is recorded and shown in the list.
You can navigate the list with the keyboard, the mouse or a controller:
| Key / button | Action |
|---|---|
| Up / Down | Select |
| Enter, Cross or double-click | Play |
| Left / Right, L1 / R1 or Tab | Switch tabs |
| Insert or Triangle / Y | Add or remove a favorite |
| Delete | Remove from the list |
| Letters | Jump to a game by name (e.g. type mar for Mario) |
During a game, press Esc, or tap the PS / Home / Xbox button on a controller. Controllers without such a button can use Start+Select together. The game pauses, and you can:
The whole menu works with a controller: Cross confirms, Circle closes.
states\<game>.auto). The next time you open it, it continues from there. To start over, choose Esc > Restart. You can turn this off in the Emulation menu.| Keyboard | Controller equivalent |
|---|---|
| Arrow keys | D-Pad |
| Z / X | B / A (PS: Cross / Circle) |
| A / S | Y / X (PS: Square / Triangle) |
| Q / W | L / R |
| E / R | L2 / R2 |
| C / V | L3 / R3 |
| Enter / Right Shift | Start / Select |
| I J K L | Left analog stick |
| Numpad 8 4 5 6 | Right analog stick (N64 C buttons) |
| Mouse | DS touch screen |
To change the keyboard bindings, edit config\ultimate.ini (Help > Edit key bindings).
Up to 4 players are supported. Controllers are assigned to players 1, 2, 3 and 4 in order, and the keyboard is always player 1.
Controller hotkeys. Tap the PS / Home / Xbox button to open the in-game menu. While you hold it:
| Button | Action |
|---|---|
| R1 | Save state |
| L1 | Load state |
| Start | Pause |
| Select | Fullscreen |
| R2 (hold) | Fast forward |
| L2 (hold) | Rewind |
| Up / Down | Save slot |
| Triangle / Y | Screenshot |
Keyboard shortcuts:
| Key | Action |
|---|---|
| Esc | In-game menu |
| Ctrl+O | Open game |
| F2 / F4 | Save / load state |
| F6 / F7 | Save slot - / + |
| F8 | Reset |
| F9 | Next video filter |
| F3 | FPS counter |
| P | Pause |
| Tab (hold) | Fast forward |
| Backspace (hold) | Rewind |
| + / - | Volume up / down |
| M | Mute / unmute |
| F12 | PNG screenshot into screenshots\ |
| F11 or Alt+Enter | Fullscreen |
Video filters (shaders). Press F9 to cycle through them.
| Filter | Best for |
|---|---|
| Sharp pixels | 2D games: pixels scale up without blur or shimmering |
| Smooth pixel art (Scale2x) | 2D games: smooths jagged edges |
| CRT TV | Old television look with scanlines and a shadow mask |
| CRT TV (curved screen) | The CRT look plus curved glass and darkened edges |
| LCD grid | Pixel grid of Game Boy, GBA, DS and PSP screens |
| Sharpen + vivid colors | 3D games (PS1/PS2/PSP/N64): crisper textures, livelier colors |
Aspect ratio and scaling. Choose between the core's own aspect ratio, 4:3, 16:9, fill the screen, or square pixels. With integer scaling on, all pixels are the same size.
Core graphics settings. While a game is running, the Quality menu lists that core's own settings, such as internal resolution, texture filtering and FXAA. For example:
43screensize to 1280x960 or higher.Internal resolution to 2x-4x.upscale multiplier.Some settings only take effect after Emulation > Reset or after reopening the game. Every setting is available under Quality > All core settings. They are stored in config\<core>.opt.
| Problem | Solution |
|---|---|
| "Windows protected your PC" | Click More info > Run anyway. The exe is not code-signed. |
| Antivirus blocks or deletes the exe | False positive on an unsigned exe. Restore it and add the folder to the exclusions, or build it yourself. |
| "started directly from inside the ZIP file" | Extract the ZIP first, then run the exe from the extracted folder. |
| "cannot write to its own folder" | Move the folder to Documents or the Desktop (not Program Files). |
| Core download fails | Check your internet connection or firewall. Requires Windows 10 version 1803+ (for the built-in tar.exe). |
| "The game could not be loaded" | Check Help > Open log. PS2 and Sega CD need BIOS files in system\; PS2 BIOS goes in system\pcsx2\bios\. |
| "OpenGL could not be started" / black screen in 3D games | Update your graphics driver. N64, PSP and PS2 need OpenGL 3.3+. |
| PS2 runs slowly | PS2 emulation needs a fast CPU. Lower the upscale multiplier in the Quality menu. |
| Very long folder paths cause errors | Keep the folder in a short location such as C:\Games\UltimateEmulator. |
If something else goes wrong, check ultimate.log (Help > Open log).
src/libretro.h is a minimal re-declaration of the libretro API (MIT). The emulation itself is done by the libretro cores (FCEUmm, Snes9x, Mupen64Plus-Next, Gambatte, mGBA, melonDS DS, Genesis Plus GX, PicoDrive, PCSX-ReARMed, LRPS2, PPSSPP, Stella, Atari800, ProSystem, Handy, Virtual Jaguar, Hatari). These are downloaded from the libretro buildbot at runtime and are not distributed with this project.sharp-bilinear shader), Scale2x / EPX, and contrast-adaptive sharpening (after AMD FidelityFX CAS).This project does not include, link to or help obtain games, ROMs, ISOs or BIOS files. Use only games and BIOS files that you have dumped from hardware you own. PlayStation, Nintendo, Sega, Atari and all related names are trademarks of their respective owners. This project is not affiliated with or endorsed by any of them.
The frontend source and original app resources are licensed under MIT. Libretro cores downloaded by the app are separate projects with their own licenses.
C
99.5%