Emulator licensing issues

From ParabolaWiki
Jump to: navigation, search

To clarify the issue on emulators in Parabola and hopefully help maintainers of all free distributions come to a more concrete conclusion on the matter, this page includes a list of the emulators in Arch Linux under free licenses (e.g GPL) currently being blacklisted and a summary of how the various problems effect them.

1 The current decision

Parabola GNU/Linux is currently blacklisting many emulators provided by Arch Linux due to a decision made in the thread [GNU-linux-libre] Emulators which concludes that most emulators do not belong in a 'free as in speech' operating system because their exclusive purpose is to run games like ROMs and images, which are assumed to not have a free license.

2 Problems with emulators

There are actually two potential problems with the fully free (libre) emulators in Arch Linux in that respect:

  1. ROMs: when only non-free ROMs appear to be available, meaning that the emulator could be used in a completely free manner if free ROMs did exist or were created.
  2. Images: when only non-free images games appear to be available, meaning that the emulator could be used in a completely free manner if free images did exist or were created, example: Playstation or Sega Saturn images or images burn from a CD o DVD to use on an emulator.
  3. BIOS: when the emulator requires a non-free firmware file to run in the first place, meaning that unless a free firmware was created, free development or use of the emulator would not be possible.
Note: In place of the word "firmware", "BIOS" is sometimes used, since BIOS is more descriptive, and people know what it means. However, it isn't really a BIOS, which is a specific architecture, but a BIOS-like system.

An emulator is considered non-free if it requires a non-free BIOS to use, and free if it does not. Use of a free emulator with non-free ROMs and images may still be considered non-free depending on whether or not ROMs and images are interpreted to be software.

3 Information on blacklisted emulators

Each emulator may be considered Non-Free, Free or Free + Free Use, where the latter means that it's both possible to run and use it freely. An emulator is non-free if either of the first two columns ("Free" and "Free Firmware") are no. It qualifies for free-use if the next two columns ("Free ROMs" and "Free Dev Tools") are both yes. A freely-licensed ROM and image without free dev tools is considered non-free for the same reason we consider FreeDOS to be non-free.

The "Free" column below does not account for firmware; it means the core executable.

N/A in "Free Firmware" means that the emulator does not have or require firmware to run.

To clarify it, if there's other text there than "yes" or "no", green means yes, red means no.

Note: In some cases text is put in yellow boxes. That is equivalent to "technically yes" or "there isn't enough information".

4 List of Native Emulators

Name Free Emulates Requires firmware Free dev tools for firmware Free firmware Free dev tools for games/OS Free games/OS
Uzebox Emulator (Uzem) x86_64 and i686 Uzebox (ATmega644) No N/A N/A GCC/GNU Binutils (avr-unknown-elf) Yes, Uzebox Games and Demos
1964js/CEN64/Mupen64/Mupen64Plus/N64js Yes Nintendo 64 (N64) (NEC VR4300) No N/A N/A GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) technically
Atari++/Atari800/kat5200 Yes Atari 400/800/400XL/600XL/800XL/130XE/5200 (MOS Technology 6502B and MOS Technology 6502C) No N/A N/A cc65, DASM and WLA_DX technically
BlastEm/DGen (SDL)/higan (bsnes - Genesis/Mega Drive)/Mednafen (Genesis/Mega Drive) Yes Sega Genesis/Mega Drive (Motorola 68000 - MC68HC000) No N/A N/A GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically
Boycott Advance/iDeaS No Nintendo Game Boy Advance (GBA) (ARM7TDMI) Optional GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) technically GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) Yes[1]
bsnes-plus/higan (bsnes - SNES/SFC)/Mednafen (SNES/SFC)/SNEeSe Yes Super Nintendo Entertainment System (Super NES/SNES)/Super Family Computer (Super Famicom/SFC)/Super Comboy (65c816 Ricoh 5A22 - based WDC 65C816) No N/A N/A WLA_DX technically
bsnes-plus/higan (bsnes - SGB/BS-X/Sufami) Yes Nintendo Super Game Boy, BS-X Satellaview and Sufami Turbo (65c816 Ricoh 5A22 - based WDC 65C816 and Sharp LR35902 - Custom Zilog Z80) Yes WLA_DX technically WLA_DX technically
Citra/3dmoo Yes Nintendo 3DS/3DS XL/2DS (ARM11 MPCore and ARM9) Yes? GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi and arm-unknown-linux-gnueabi) and devkitPro (devkitARM) Yes, GNU/Linux (ARM32)
Decaf Yes Nintendo Wii U/Wii U Ware (IBM PowerPC "Espresso" PPC32) Optional? GCC/GNU Binutils, Clang/LLVM/lld (powerpc-unknown-elf) and devkitPro (devkitPPC) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (powerpc-unknown-elf and powerpc-unknown-linux-gnu) and devkitPro (devkitPPC) Yes, GNU/Linux (PPC32)
dasShiny/DeSmuME Yes[2] Nintendo DS/DSi/DSi XL (ARM946E-S and ARM7TDMI) Optional GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi and arm-unknown-linux-gnueabi) and devkitPro (devkitARM) Yes, GNU/Linux (ARM32)
Dolphin (emulator - 64bit software support only) Yes Nintendo GameCube (NGC/GCN/GC)/Triforce (arcade) (IBM PowerPC "Gekko" PPC32) and Nintendo Wii/WiiWare (IBM PowerPC "Broadway" PPC32) Optional GCC/GNU Binutils, Clang/LLVM/lld (powerpc-unknown-elf) and devkitPro (devkitPPC) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (powerpc-unknown-elf and powerpc-unknown-linux-gnu) and devkitPro (devkitPPC) Yes, GNU/Linux (PPC32). Homebrew applications exist[3][4][5][6]
ePSXe No Sony PlayStation (PS/PSX/PS1/PSone) (MIPS R3000A-family LSI LR333x0) Optional GCC/GNU Binutils ans Clang/LLVM/lld (mips-unknown-elf) technically GCC/GNU Binutils and Clang/LLVM/lld (mips-unknown-elf) technically
FakeNES (NES/FC)/FakeNES GT (NES/FC)/FCE (NES/FC)/FCE Ultra (NES/FC)/FCEUX (NES/FC)/Fergulator/halfnes/higan (bsnes - NES/FC)/Mednafen (NES/FC)/Nestopia (NES/FC)/Nestopia UE (NES/FC)/puNES (NES/FC)/TuxNES Yes Nintendo Entertainment System (NES)/Family Computer (Famicom/FC)/Hyundai Comboy (Ricoh RP2A03 - NTSC/Ricoh RP2A07 - PAL/Ricoh RP2CO5/MOS Technology 6502) No N/A N/A cc65, DASM and WLA_DX Thwaite
FCE (FDS)/FCE Ultra (FDS)/FCEUX (FDS)/higan (bsnes - FDS)/Mednafen (FDS)/Nestopia (FDS)/Nestopia UE (FDS)/puNES (FDS) Yes Family Computer Disk System (Nintendo) (FDS/FCD) (Ricoh RP2A03 - NTSC/Ricoh RP2A07 - PAL/Ricoh RP2CO5/MOS Technology 6502) Yes cc65, DASM and WLA_DX technically cc65, DASM and WLA_DX technically
Gambatte/Gearboy/GNUboy (GB)/higan (bsnes - GB/GBC)/Mednafen (GB/GBC)/mGBA (GB/GBC)/VBA2 (GB/GBC)/VisualBoyAdvance-M (GB/GBC)/zBoy (GB) Yes Nintendo Game Boy/Game Boy Pocket/Game Boy Light/Game Boy Color (Sharp LR35902 - Custom Zilog Z80) No N/A N/A WLA_DX technically
Gearsystem/SMS Plus Yes Sega Mark III/Master System (SMS)/Game Gear (Zilog Z80) No N/A N/A WLA_DX technically
Gekko Yes Nintendo GameCube (NGC/GCN/GC) (IBM PowerPC "Gekko" PPC32) Optional? GCC/GNU Binutils, Clang/LLVM/lld (powerpc-unknown-elf) and devkitPro (devkitPPC) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (powerpc-unknown-elf and powerpc-unknown-linux-gnu) and devkitPro (devkitPPC) Yes, GNU/Linux (PPC32)
Gens/"Gens/GS" (Genesis/Mega Drive - i686 software support only) Yes Sega Genesis/Mega Drive (Motorola 68000 - MC68HC000) No N/A N/A GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically
Gens/"Gens/GS" (Sega CD - i686 software support only) Yes Sega CD/Mega-CD (Motorola 68000 - MC68HC000) Yes GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically
Gens/"Gens/GS" (Sega 32X - i686 software support only) Yes Sega 32X (SH2) Optional GCC/GNU Binutils (sh-unknown-elf) technically GCC/GNU Binutils (sh-unknown-elf) technically
Handy/Mednafen (Lynx) Yes Atari Lynx (MOS Technology 6502C) Yes cc65, DASM and WLA_DX technically cc65, DASM and WLA_DX technically
Hatari Yes Atari ST/STE/TT/Falcon (Motorola 68000 - MC68HC000) No N/A N/A GCC/GNU Binutils (m68k-unknown-elf and m68k-unknown-linux-gnu) and WLA_DX Yes, GNU/Linux (M68K)
higan (bsnes - GBA)/Mednafen (GBA)/mGBA (GBA)/VBA2 (GBA)/VisualBoyAdvance-M (GBA) Yes Nintendo Game Boy Advance (GBA) (ARM7TDMI) Optional GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) technically GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) Yes[7]
higan (bsnes - SC1k/MS/GG)/Mednafen (SC1k/MS/GG) Yes SG-1000/SG-1000 II/SC-3000/SF-7000/Sega Mark III/Master System (SMS)/Game Gear (Zilog Z80) No N/A N/A WLA_DX technically
higan (bsnes - WonderSwan)/Mednafen (WonderSwan) Yes Bandai WonderSwan/WonderSwan Color/SwanCrystal (NEC V30 - x86_16) Yes NASM technically NASM technically
Hu-Go!/higan (bsnes - PC Engine/SuperGrafx)/Mednafen (PC Engine/SuperGrafx) Yes NEC TurboGrafx-16 Entertainment SuperSystem/SuperGrafx/TurboExpress/PC Engine (Hudson Soft HuC6280) No N/A N/A cc65 and WLA_DX technically
iDeaS (NDS) No Nintendo DS/DSi/DSi XL (ARM946E-S and ARM7TDMI) Optional GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi and arm-unknown-linux-gnueabi) and devkitPro (devkitARM) Yes, GNU/Linux (ARM32)
JAVATARI/Stella/z26 Yes Atari 2600 (MOS Technology 6507) No N/A N/A DASM technically
JPCSP/Yaupspe Yes Sony Playstation Portable (PSP) (MIPS R4000) Yes? GCC/GNU Binutils, Clang/LLVM/lld (mips64-unknown-elf) and devkitPro (devkitPSP) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (mips64-unknown-elf, mips64-unknown-linux-gnu and mips64-unknown-kfreebsd-gnu) and devkitPro (devkitPSP) Yes, GNU/Linux and GNU/kFreeBSD (MIPS64)
Kega Fusion (Sega Genesis - i686 software support only) No Sega Genesis/Mega Drive (Motorola 68000 - MC68HC000) + SVP chip No N/A N/A GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically
Kega Fusion (Sega CD - i686 software support only) No Sega CD/Mega-CD (Motorola 68000 - MC68HC000) Yes GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically
Kega Fusion (Sega 32X - i686 software support only) No Sega 32X (SH2) Optional GCC/GNU Binutils (sh-unknown-elf) technically GCC/GNU Binutils (sh-unknown-elf) technically
Lxdream/redream Yes Sega Dreamcast (DC) (SH4) Yes GCC/GNU Binutils (sh-unknown-elf) Dreamshell[8] (deblobbing needed) or port of fully free KallistiOS-like[9] (or any) version as firmware GCC/GNU Binutils (sh-unknown-elf and sh-unknown-linux-gnu) Yes, GNU/Linux (SH4) and KallistiOS
MAME (and MESS merged) Yes Multiple hardware (arcades, game consoles and computer systems) Yes (most hardware) GCC/GNU Binutils, Clang/LLVM/lld (multiarch), cc65, DASM, devkitPro and WLA_DX Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (multiarch), cc65, DASM, devkitPro and WLA_DX Yes, GNU/Linux and GNU/kFreeBSD (multiarch)
Mednafen (Neo Geo Pocket) Yes SNK Neo Geo Pocket/Neo Geo Pocket Color (Toshiba TLCS900H) Yes tlcs900archc technically tlcs900archc technically
Mednafen (PC Engine CD) Yes NEC TurboGrafx-CD/TurboDuo/PC Engine CD (Hudson Soft HuC6280) Yes cc65 and WLA_DX technically cc65 and WLA_DX technically
Mednafen (PC-FX) Yes NEC PC-FX (NEC V810) Yes GCC/GNU Binutils (v850-unknown-elf) or gccVB (GCC v2.95 + v810 patch) or VBDE (needs ported to free OS) technically GCC/GNU Binutils (v850-unknown-elf) or gccVB (GCC v2.95 + v810 patch) or VBDE (needs ported to free OS) technically
Mednafen (PlayStation) Yes Sony PlayStation (PS/PSX/PS1/PSone) (MIPS R3000A-family LSI LR333x0) Yes GCC/GNU Binutils and Clang/LLVM/lld (mips-unknown-elf) technically GCC/GNU Binutils and Clang/LLVM/lld (mips-unknown-elf) technically
Mednafen (Saturn - 64bit software support only) Yes Sega Saturn (SH2) Yes GCC/GNU Binutils (sh-unknown-elf) technically GCC/GNU Binutils (sh-unknown-elf) technically
Mednafen (Virtual Boy) Yes Nintendo Virtual Boy (NEC V810) No N/A N/A GCC/GNU Binutils (v850-unknown-elf) or gccVB (GCC v2.95 + v810 patch) or VBDE (needs ported to free OS) technically
MEKA No contains License SG-1000/SG-1000 II/SC-3000/SF-7000/Sega Mark III/Master System (SMS)/Game Gear/ColecoVision/Othello Multivision (Zilog Z80) No N/A N/A WLA_DX technically
Nucleus/RPCS3 (PS3) Yes Sony PlayStation 3 (PS3) (Cell Broadband Engine PPC64) Yes? GCC/GNU Binutils, Clang/LLVM/lld (ppc64-unknown-elf and spu-unknown-elf) and devkitPro (devkitPPC) Port of a fully free FreeBSD-like (or any) as firmware GCC/GNU Binutils, Clang/LLVM/lld (ppc64-unknown-elf, ppc64-unknown-linux-gnu and spu-unknown-elf) and devkitPro (devkitPPC) Yes, GNU/Linux (PPC64)
openMSX Yes MSX/MSX2/MSX2+/MSX TurboR (Zilog Z80) Yes WLA_DX C-BIOS WLA_DX technically
PCSX/PCSX-df/PCSX-Reloaded Yes Sony PlayStation (PS/PSX/PS1/PSone) (MIPS R3000A-family LSI LR333x0) Optional GCC/GNU Binutils and Clang/LLVM/lld (mips-unknown-elf) technically GCC/GNU Binutils and Clang/LLVM/lld (mips-unknown-elf) technically
PCSX2 (i686 software support only) Depends OpenGL 3.3 (Mesa 10.0 for i965{Intel video} and Mesa 10.1 for nouveau{nVidia video}), and needs a patch to remove zzogl and zerogs plugins that depends for nonfree nvidia-cg-toolkit support Sony PlayStation 2 (PS2) (Emotion Engine MIPS64) Yes GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) Port of a fully free OS as firmware GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf, mips64-unknown-linux-gnu and mips64-unknowm-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (MIPS64)
Play! Depends OpenGL 3.3 (Mesa 10.0 for i965{Intel video} and Mesa 10.1 for nouveau{nVidia video}) Sony PlayStation 2 (PS2) (Emotion Engine MIPS64) Yes GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) Port of a fully free OS as firmware GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf, mips64-unknown-linux-gnu and mips64-unknowm-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (MIPS64)
PPSSPP Yes[10][11][12] Sony Playstation Portable (PSP) (MIPS R4000) No N/A N/A GCC/GNU Binutils, Clang/LLVM/lld (mips64-unknown-elf, mips64-unknown-linux-gnu and mips64-unknown-kfreebsd-gnu) and devkitPro (devkitPSP) Yes, GNU/Linux and GNU/kFreeBSD (MIPS64)
Raine No Multiple hardware (arcades) Yes (most hardware) GCC/GNU Binutils, Clang/LLVM/lld (multiarch), cc65, DASM, devkitPro and WLA_DX technically GCC/GNU Binutils, Clang/LLVM/lld (multiarch), cc65, DASM, devkitPro and WLA_DX technically
Reicast Yes Sega Dreamcast (DC)/ Sega NAOMI (SH4) Optional GCC/GNU Binutils (sh-unknown-elf) built-in free ReiOS uses as default to run the emulator, Dreamshell[13] (deblobbing needed) or port of fully free KallistiOS-like[14] (or any) version as firmware GCC/GNU Binutils (sh-unknown-elf and sh-unknown-linux-gnu) Yes, GNU/Linux (SH4) and KallistiOS
RPCS3 (PS Vita) Yes Sony PlayStation Vita (ARM Cortex-A9 MPCore) Yes? GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) technically
Snes9x Noncormercial Software Super Nintendo Entertainment System (Super NES/SNES)/Super Family Computer (Super Famicom/SFC)/Super Comboy (65c816 Ricoh 5A22 - based WDC 65C816) No N/A N/A WLA_DX technically
Supermodel 3 Yes Sega Model 3 (arcarde) (IBM PowerPC 603e) No N/A N/A GCC/GNU Binutils, Clang/LLVM/lld (powerpc-unknown-elf) and devkitPro (devkitPPC) technically
UAE Yes Commodore Amiga (MOS Technology 6502) No N/A N/A cc65, DASM and WLA_DX technically
VisualBoyAdvance (GB/GBC) Partially free (2xSaImmx.asm only allows for *non commercial* use). It could be free without it Nintendo Game Boy/Game Boy Pocket/Game Boy Light/Game Boy Color (Sharp LR35902 - Custom Zilog Z80) No N/A N/A WLA_DX technically
VisualBoyAdvance (GBA) Partially free (2xSaImmx.asm only allows for *non commercial* use). It could be free without it Nintendo Game Boy Advance (GBA) (ARM7TDMI) Optional GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) technically GCC/GNU Binutils, Clang/LLVM/lld (arm-unknown-eabi) and devkitPro (devkitARM) Yes[15]
Virtual Jaguar Yes Atari Jaguar (Motorola 68000 - MC68HC000) No N/A N/A GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically
VICE Yes Commodore C64/C64DTV/C128/VIC20/PET/PLUS4/CBM-II (MOS Technology 6502) No N/A N/A cc65, DASM and WLA_DX technically
XQEMU Needs Nonfree MCPX binary blob Microsoft Xbox (Intel Pentium III "Coppermine-based" - i686) Yes GCC/GNU Binutils and Clang/LLVM/lld (i686-unknown-elf) Port of fully free ReactOS-like (or any) version as firmware GCC/GNU Binutils and Clang/LLVM/lld (i686-unknown-elf, i686-unknown-linux-gnu and i686-unknown-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (i686)
Yabause Yes Sega Saturn (SH2) Optional GCC/GNU Binutils (sh-unknown-elf) technically GCC/GNU Binutils (sh-unknown-elf) technically
ZSNES (i686 software support only) Yes Super Nintendo Entertainment System (Super NES/SNES)/Super Family Computer (Super Famicom/SFC)/Super Comboy (65c816 Ricoh 5A22 - based WDC 65C816) No N/A N/A WLA_DX technically

5 List of Emulators which run only on Wine

Name Free Emulates Requires firmware Free dev tools for firmware Free firmware Free dev tools for games/OS Free games/OS
1964 Needs Visual Studio to compile this Software Nintendo 64 (N64) (NEC VR4300) No N/A N/A GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) technically
Altirra Needs Visual Studio to compile this Software Atari 400/800/400XL/600XL/800XL/130XE/5200 (MOS Technology 6502B and MOS Technology 6502C) No N/A N/A cc65, DASM and WLA_DX technically
cxbx Yes Microsoft Xbox (Intel Pentium III "Coppermine-based" - i686) Yes? GCC/GNU Binutils and Clang/LLVM/lld (i686-unknown-elf) Port of fully free ReactOS-like (or any) version as firmware GCC/GNU Binutils and Clang/LLVM/lld (i686-unknown-elf, i686-unknown-linux-gnu and i686-unknown-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (i686)
DaedalusX64 Yes Nintendo 64 (N64) (NEC VR4300) No N/A N/A GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) technically
Dxbx/Xenoborg Needs Visual Studio to compile this Software Microsoft Xbox (Intel Pentium III "Coppermine-based - i686) Yes? GCC/GNU Binutils and Clang/LLVM/lld (i686-unknown-elf) Port of fully free ReactOS-like (or any) version as firmware GCC/GNU Binutils and Clang/LLVM/lld (i686-unknown-elf, i686-unknown-linux-gnu and i686-unknown-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (i686)
EMU7800/ProSystem Emulator Needs Visual Studio to compile this Software Atari 7800 (MOS Technology 6502C) No N/A N/A cc65, DASM and WLA_DX technically
Genesis Plus Yes Sega Genesis/Mega Drive (Motorola 68000 - MC68HC000) No N/A N/A GCC/GNU Binutils (m68k-unknown-elf) and WLA_DX technically
MFZPSP/Sam PSP/Soywiz PSP Emu Yes, Needs Digital Mars D(The backend is nonfree, use GDC or LDC instead) to compile Soywiz PSP Emu Sony Playstation Portable (PSP) (MIPS R4000) Yes? GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) Port of a fully free OS as firmware GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) technically
Nester Needs Visual Studio to compile this Software Nintendo Entertainment System (NES)/Family Computer (Famicom/FC)/Hyundai Comboy (Ricoh RP2A03 - NTSC/Ricoh RP2A07 - PAL/Ricoh RP2CO5/MOS Technology 6502) No N/A N/A cc65, DASM and WLA_DX Thwaite
NeutrinoSX2 Yes Sony PlayStation 2 (PS2) (Emotion Engine MIPS64) Yes GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) Port of a fully free OS as firmware GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf, mips64-unknown-linux-gnu and mips64-unknown-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (MIPS64)
Nintendulator Needs Visual Studio to compile this Software Nintendo Entertainment System (NES)/Family Computer (Famicom/FC)/Hyundai Comboy (Ricoh RP2A03 - NTSC/Ricoh RP2A07 - PAL/Ricoh RP2CO5/MOS Technology 6502) No N/A N/A cc65, DASM and WLA_DX Thwaite
Nintendulator (FDS) Needs Visual Studio to compile this Software Family Computer Disk System (Nintendo) (FDS/FCD) (Ricoh RP2A03 - NTSC/Ricoh RP2A07 - PAL/Ricoh RP2CO5/MOS Technology 6502) Yes cc65, DASM and WLA_DX technically cc65, DASM and WLA_DX technically
nullDC Needs Visual Studio to compile this Software Sega Dreamcast (DC)/ Sega NAOMI (SH4) Yes GCC/GNU Binutils (sh-unknown-elf) Port of fully free Dreamshell[16]/KallistiOS-like[17] (or any) version as firmware GCC/GNU Binutils (sh-unknown-elf and sh-unknown-linux-gnu) Yes, GNU/Linux (SH4) and KallistiOS
Ootake Needs Visual Studio to compile this Software NEC TurboGrafx-16 Entertainment SuperSystem/SuperGrafx/TurboExpress/PC Engine (Hudson Soft HuC6280) No N/A N/A cc65 and WLA_DX technically
Ootake (PC Engine CD) Needs Visual Studio to compile this Software NEC TurboGrafx-CD/TurboDuo/PC Engine CD (Hudson Soft HuC6280) Yes cc65 and WLA_DX technically cc65 and WLA_DX technically
PC Atari Emulator (DOSBox and WINE) Needs Borland to compile this Software Atari 2600 (MOS Technology 6507) No N/A N/A DASM technically
Potemkin/PSP Player Needs Visual Studio to compile this Software Sony Playstation Portable (PSP) (MIPS R4000) Yes? GCC/GNU Binutils, Clang/LLVM/lld (mips64-unknown-elf) and devkitPro (devkitPSP) Port of a fully free OS as firmware GCC/GNU Binutils, Clang/LLVM/lld (mips64-unknown-elf, mips64-unknown-linux-gnu and mips64-unknown-kfreebsd-gnu) and devkitPro (devkitPSP) technically
Project64 Noncormercial and/or Nonfree Software Nintendo 64 (N64) (NEC VR4300) No N/A N/A GCC/GNU Binutils and Clang/LLVM/lld (mips64-unknown-elf) technically
VirtuaNES Needs Borland to compile this Software Nintendo Entertainment System (NES)/Family Computer (Famicom/FC)/Hyundai Comboy (Ricoh RP2A03 - NTSC/Ricoh RP2A07 - PAL/Ricoh RP2CO5/MOS Technology 6502) No N/A N/A cc65, DASM and WLA_DX Thwaite
Xenia Needs Visual Studio to compile this Software Microsoft Xbox 360 (IBM PowerPC "Xenon" PPC64) Yes? GCC/GNU Binutils, Clang/LLVM/lld (powerpc64-unknown-elf and spu-unknown-elf) and devkitPro (devkitPPC) Port of fully free ReactOS-like (or any) version as firmware GCC/GNU Binutils, Clang/LLVM/lld (powerpc64-unknown-elf, powerpc64-unknown-linux-gnu and spu-unknown-elf) and devkitPro (devkitPPC) Yes, GNU/Linux (PPC64)

6 List of Hardware Without Emulator

Name Free Emulates Requires firmware Free dev tools for firmware Free firmware Free dev tools for games/OS Free games/OS
N/A N/A Microsoft Xbox One (AMD APU x86_64) N/A GCC/GNU Binutils and Clang/LLVM/lld (x86_64-unknown-elf) Port of fully free ReactOS-like (or any) version as firmware GCC/GNU Binutils and Clang/LLVM/lld (x86_64-unknown-mingw64, x86_64-unknown-elf, x86_64-unknown-linux-gnu and x86_64-unknown-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (x86_64)
N/A N/A Sega VMU (Sanyo LC86K87 - custom Sanyo LC8670 "Potato", similar to LC86104C/108C - 8bit) N/A N/A N/A No No
N/A N/A Sony PlayStation 4 (PS4) (AMD APU x86_64) N/A GCC/GNU Binutils and Clang/LLVM/lld (x86_64-unknown-elf) Port of a fully free FreeBSD-like (or any) as firmware GCC/GNU Binutils and Clang/LLVM/lld (x86_64-unknown-freebsd, x86_64-unknown-elf, x86_64-unknown-linux-gnu and x86_64-unknown-kfreebsd-gnu) Yes, GNU/Linux and GNU/kFreeBSD (x86_64)

7 List of Compatibility Layers

Name Free Emulates/API Free Dev Tools Free Software
libhybris Yes Replicant (multiarch) GCC/GNU Binutils and Clang/LLVM/lld (*-unknown-linux-android*) Yes
DOSBox Yes[18] Fully free FreeDOS-like (x86_16 and x86_32) GCC/GNU Binutils/DJGPP (i386-pc-msdos* and i586-pc-msdosdjgpp) and NASM Yes
DOSEMU needs FreeDOS (it can't be compiled with free software, needs a patch to build with free software compilation) Fully free FreeDOS-like (x86_16) NASM Yes
Wine Yes[19] Fully free FreeDOS-like (x86_16 and x86_32) and fully free ReactOS-like (x86_32, x86_64 and armv7) GCC/GNU Binutils/DJGPP/Mingw-w64 (i386-pc-msdos*, i586-pc-msdosdjgpp, i686-pc-mingw32, x86_64-pc-mingw64 and arm*-unknown-mingw32*) and NASM Yes
Darling Yes Fully free Darwin-like or fully free NextBSD? (powerpc32, powerpc64, x86_32, x86_64, armv7 and aarch64) Clang/LLVM/lld and GCC/GNU Binutils (powerpc-unknown-darwin*, powerpc64-unknown-darwin*, i686-unknown-darwin*, x86_64-unknown-darwin*, armv7-unknown-darwin* and aarch64*-unknown-darwin*) Yes