I have to thank libretro, the developers and designers involved, and the emulation community as a whole. Lakka and RetroArch are amazing accomplishments, a service of due appreciation by fans of retro gaming. I have used emulators since the Pentium III era, and I remember the tricks involved (you might recall the days) in getting certain games to work. Back when ZSNES was the pinnacle of video game emulation, and trying to play Final Fantasy VII - IX using a GeForce graphics card required 3 different versions of ePSXe, running console games on PC was anything but accurate (nevermind using a controller). Times have changed and as the evolution of shaders, plugins, and architecture progress, so do their conversations begin to lose transparency. I recently became acquainted with RetroArch while building an arcade cabinet to run retro games. Apparently it has a reputation for complexity. I disagree, although I ultimately settled on a different frontend for the project. I believe this negative reputation to have an intimidating effect on public perception. As such, Lakka is relatively unknown, it’s audience a niche enthusiastic community. A shame that most of the civilized world knows of emulation, but are unaware of how simple it is to play virtually any game for any console released prior to the millennium.
I have been playing around with Lakka for a couple of weeks, creating a portable game database of sorts. I had to learn a lot on my own, referencing enough tabs in Chrome at once to make my laptop stutter. Lakka’s strength lies in it’s ease of use, but the website and forum seem to cloud this simplicity. The info is there, but it could definitely be more coherent and easier to find/understand. There are a lot of the same questions in the forum. A lot of fundamental knowledge is buried in the news section or release information (i.e. box_snaps), as it should be for developers, but an added barrier for the user. The problem is compounded by the comparisons of Lakka to RetroArch. There can be an overwhelming amount of variables and no clear reference to any control or expectations.
Lakka is a work in progress. Things get changed and fixed daily, and a lot of stuff doesn’t work. Discussions on broken things are for the tinkerers, and they are easy to find. The info here is mostly available elsewhere. This topic is a consolidation of practical tips, tricks, links, and knowledge to aid beginners in conveniently creating the most compatible PC Lakka box that works.
*My experience with Lakka so far has been on PC. I will only make recommendations for what I know to work from my own trial and error. Information may or may not be true for other devices or with RetroArch on another OS.
PART 1: LAKKA INTRO WHAT DOES IT DO AND HOW DOES IT WORK? - Lakka is a software platform that allows various hardware to play retro console and arcade games, intuitively categorizing games into playlists according to system, with an accessible interface similar to the PS3’s XMB. Controllers function via USB and games on many systems are supported. It even has the potential to bring acheivements/trophies to vintage games. Consider Lakka a portable database of video game classics. With very little customization, screen shots can be applied in-menu for each game, and custom backgrounds for each console playlist.
- Lakka runs exclusively, as a standalone package. Lakka is not a Windows program. Lakka is intended to be installed and run separate of an operating system. It can be carried in your pocket on a flash drive, with thousands of games, ready to plug in and play.
- Lakka depends on it’s cores for it’s foundation. Each core represents an emulated game system, with associated game file types and dependencies. The game files are colloquially known as ROMs, and come in multiple formats. For example, Nintendo 64 ROMs are represented by the .n64 file type, Nintendo Entertainment System by .nes, and so on. Lakka even recognizes and associates most ROMs in archived .zip format with a relevant core. Disc based file types are referred to as ISOs. The most common file types associated with disc based games are .iso and .bin/.cue.
- Lakka FAQ: http://www.lakka.tv/doc/FAQ/
- Lakka wiki: https://github.com/libretro/Lakka/wiki
WHAT GAMES CAN I PLAY?
- Virtually any videogame released to any home console prior to and including Nintendo 64, and all portable consoles released prior to and including Sony PSP
WHAT ARE SOME CONSOLES I CAN EMULATE WITHOUT CONFIGURATION OR DOWNLOADING BIOSES?
- MAME
- NEC - PC Engine TurboGrafx 16
- Nintendo - Game Boy/Game Boy Color/ Game Boy Advance
- Nintendo - Nintendo 64
- Nintendo - NES
- Nintendo - SNES
- Nintendo - Virtual Boy
- Sega - Genesis
- Sega - Master System
WHAT DOESN’T IT DO AND WHAT DOESN’T WORK?
- No Windows games. No Steam. No Minecraft. No Netflix. No Hulu. No iTunes. No web browser. No store. LAKKA DOES NOT PROVIDE THE OPPORTUNITY TO PIRATE GAMES.
WHAT ARE SOME AREAS OF INSTABILITY & CONTINUED PROGRESS? - Playlist generation and interface.
WHAT ARE SOME WORKING SYSTEMS WITH ISSUES CONCERNING COMPATIBILITY OR BUILDING PLAYLISTS? - Nintendo 64 (x86), Sega CD, Sega Saturn, NEC TurboGrafx CD, Panasonic 3DO, and Atari 2600.
WHAT ARE SOME SYSTEMS THAT ARE COMMONLY EMULATED, BUT NOT SUPPORTED BY LAKKA YET? - Dreamcast, PlayStation 2, Gamecube, and Atari 5200.
WHAT DO I NEED/RECOMMENDED SYSTEM REQUIREMENTS? - Any x86/x64 PC - For best compatibility, a PC with x64 (64-bit) cpu is recommended. Any retail PC or build with off the shelf parts released in the last 5 years should be satisfactory to run Lakka to it’s capacity. Nintendo 64 is not supported on x86 (32-bit) version of Lakka.
- PS3 Dual Shock 3/SixAxis Controller - It just works. If you have used a PlayStation before, Lakka will feel very familiar. The interface, after installation, does not require a keyboard or a mouse. Apparently, an Xbox 360 controller also works without any setup, which may be convenient for some. Keep in mind that Microsoft’s implementation of A/B/X/Y buttons are historically aligned opposite of Nintendo’s arrangement, which may be somewhat confusing and can do a lot toward ruining authenticity, i.e. using B instead of A to select.
- Linux - Linux is the easiest way to access Lakka’s file system, and most convenient way to utilize terminal commands. It is absolutely essential, even if it is only until you have successfully filled your Lakka storage device with ROMs/ISOs, screenshots and dynamic backgrounds. If you are unfamiliar with Linux, I recommend Ubuntu. It is very stable and aesthetically appealing. Ubuntu has a convenient, friendly interface and almost no barrier to entry. You can run it from a live disk or install it to a partition and dual boot with Windows. No need to thank me when you fall in love. http://www.ubuntu.com/desktop
- 2 USB flash/portable hard drives - Although Lakka provides the opportunity to run from a live disk, the option serves little relevance in daily use as it necessitates the need for a keyboard. The option is there for those who would like the opportunity to try Lakka before they commit. The Lakka installer does not have options to format, manage or install to a specified partition. Lakka cannot share a disk with another operating system. For convenience, it is necessary to have one drive for the Lakka installer, and another, empty drive for the installation, games, and storage.
- Trusted ROM/BIOS source - This is not something you can buy, and I can not tell you where to find it. A trusted source ensures your ROMs/ISOs/BIOSes are legit. Aside from the playlist requirement of ROMs from sets archived in the No-Intro database, Lakka can be picky about the files it chooses to load, certain game-breaking scenarios caused by uppercase letters (.BIN/.bin).
- The internet - Welcome home. You can find anything here.
(NOTE: I currently have the most recent stable build of Lakka installed to an external USB hard drive. The same drive works interchangeably on any x64 PC with little perceivable difference in speed or accuracy. Lakka performs arguably as well on an Acer Aspire 532h netbook with Intel Atom CPU and 1GB RAM as it does on my tower with Sandy Bridge quad core, Radeon and 8GB RAM. It’s not Call of Duty. The same Lakka drive also works on two separate budget laptops with moderate specs purchased for under $200, one with 1.5GHz Celeron, and the other a 1.4 GHz AMD E1. I have tested Lakka on multiple x86/x64 PC’s, with hardware spanning multiple vendors across many generations. I have discovered that Lakka performs well on a vast range of hardware. The biggest discrepancy I find is in scanning the directories and building playlists; Lakka scans faster on faster hardware, that’s it. With admittedly limited knowledge of Lakka’s code, the recommendations I make are from my own experience, and are to be judged accordingly.)
[U]
PART 2: LAKKA SET UP & INTERFACE[/U][B]
HOW DO I INSTALL LAKKA?[/B]
- Assuming you have access to the previously stated recommendations, format your 2 portable drives. If you are using OS X Disk Utility, make sure that MBR, not GUID, is checked in the options menu as the drive partition scheme.
- Follow this link: http://www.lakka.tv/
- Click “Get Lakka”. Read the disclaimer on the following page. Click “Get Lakka”. Navigate the following page according to the OS you are currently using to download the installer. Since you will be installing Lakka to a drive intended for PC compatibility, click the second option, “PC”, when you arrive at the “On which hardware do you want to install Lakka?” page.
- You will eventually come to a page with 2 options for download. The first option is for 32-bit implementation of Lakka, the second option 64-bit. Provided you have a relatively recent PC (i.e Intel Core, AMD Athlon X64 or newer), for compatibility, I recommend the second option, “for 64 bits cpu”.
- Following the instructions for the OS you are using to create the Lakka install disk, restore the Lakka install package to the first empty drive. If you are using Windows OS, 7-zip is recommended to extract the archive (7-zip makes accessing and modifying archived formats simple in so many ways, it can’t be recommended enough). http://www.7-zip.org/
- Boot to bios/select boot device, commonly achieved by pressing F2/F12 when starting your PC.
- Select the appropriate drive containing the Lakka installer as the primary bootable drive.
- TO BE CONTINUED….
- VIDEO COMING SOON
HOW DO I GET LAKKA TO RECOGNIZE MY GAMES SO I CAN PLAY THEM?
- Boot Linux to transfer your ROMs and plug in your Lakka drive. It should contain two partitions. The partition you will access and modify is labeled /storage/ and the default ROM path located @ /storage/roms/. Place your ROMs here.
- Boot Lakka drive. Navigate to the left-most column and select “Load Content”. Select “Load Content and Detect Core”. Navigate to path of desired ROM. Select appropriate core (if applicable).
- Once requisite files have been gathered and playlists have been implemented, playing games is as simple as navigating and selecting them from entries in the XMB interface.
- More information regarding ROMs, BIOSes and playlists can be found here: http://www.lakka.tv/doc/ROMs-and-BIOSes/
HOW DO PLAYLISTS WORK?
- Playlist building in Lakka is automatically performed for ROM sets archived with the No-Intro database. What that means is that ROMs from most trusted sources are verified as legit and Lakka recognizes them, creating a playlist file. To create a playlist, navigate to the left-most column and down to “Add Content”. Scanning a directory or a single file should result in according playlist entries. Games not recognized by Lakka’s database will not be added to a playlist, but the game may still be played by navigating to the left-most column and selecting “Load Content”.
- Playlist files are simple text, ending in .lpl, and can be edited easily. Each entry consists of 6 lines. In the event that scanning in Lakka does not return the expected playlist entry, values can be entered manually. The methods described on Lakka’s site and the libretro forum to build playlist files using terminal and bash were, for me, more methodical than pasting the locations for games that weren’t recognized.
- Lakka does not move the ROM to a location in it’s own file structure when creating the playlist file. Unless the ROMs being located via the playlist are on the Lakka drive, there is a chance that the location provided to Lakka is inaccurate and the games will not work. For example, Lakka is installed to a flash drive with ROMs located on a secondary drive. If the storage drive is switched to another port, the playlist will fail to locate the ROMs, as their actual location has changed. This is not the case when ROMs are placed onto the Lakka drive. The location of the Lakka drive is always /storage/. Default ROM location is /storage/roms/.
- Using Ubuntu, I found the terminal command “gksudo nautilus” to be fundamentally useful. The playlist files, specifically, are locked and require root access to be modified. Root access in Linux is the equivalent of administrator privilege in Windows.
- More information regarding playlists can be found here: https://github.com/libretro/Lakka/wiki/Playlists Keep in mind that playlist entries take 6 lines as demonstrated, not 5. The last line in each playlist entry is the name of the playlist file, i.e. Sony - PlayStation.lpl.
[B]MORE DISCUSSION INCLUDES REQUIRED FILES, SETTINGS CUSTOMIZATION, SHADERS, & CUSTOMIZING LAKKA’S INTERFACE W/ GAME SCREEN SHOTS & DYNAMIC BACKGROUNDS FOR CONSOLE PLAYLISTS.
TO BE CONTINUED…
[/B]