Plan to dedicate an SD card to glint-nes

@calwan on github pointed out an assumption that I've always had in mind in regards to glint-nes, but perhaps have never explicitly stated until now. The assumption is that users of glint-nes will dedicate an SD card to the project, because it's intended to be a system that dedicates your Raspberry Pi as an emulation box, like something you would put into your entertainment center and leave there permanently. The goal of the project is to replicate a console-like experience, and that includes using the low cost Raspberry Pi as another dedicated box in your entertainment system, just like a real console.

We had a pretty in-depth discussion about it over the last couple of days, and I thought I'd share it as I have a feeling many people will have this question as well.

You must configure your own joystick

The #1 support request in the last 4-5 weeks have been issues related to controllers.

My original thinking on controllers was to have one set of hardware, including an "official" controller, supported by the glint-nes project. The thinking here was that it would be more sustainable to have a single set of hardware in terms of support and providing a great user experience. All the someone would need to do is buy the offical controller, plug it in, and there would be no config necessary.

The reality is more complicated than that:

  • Even the "official controller" has variations in its manufacturing that make it ill suited to be "officially" anything. What I found was that the button mappings, for identical SKUs purchased across a couple of weeks would vary in ways that broke controls in glint-nes if we assumed they would all be identical. They are not identically manufactured, unfortunately.
  • Everyone seems to want to use their own controller or arcade stick of choice anyway, so we should just go with that.

This basically means that I've abandoned the approach of having a single set of hardware, and instead (at least on the controller side) have decided to allow people to use whatever controller they have sitting around, so long as it's compatible with Linux.

I don't want to get myred down in supporting every controller ever built on Linux - so that's not what I'm saying. What I'm saying is that if you have a controller that works with Linux, and you can at least get it to the point where glint can see input from your controller, then I'll meet you half way and allow you map the buttons on that controller to whichever glint actions as you like, allowing you to use your controller to your heart's content.

New release of glint-nes with front end and USB ROM loading!

Happy New Year!

There's a new release of glint-nes available for beta testers. It features two new features that we're especially excited about:

  • A graphical front-end from the get-go! No need to mess with the command line if you don't want to - you can navigate your list of games with a compatible controller.
  • Support for USB drives full of ROMs! Simply connect a USB drive containing your .nes ROM files and glint-nes will automatically find and copy them to the Raspberry Pi, and then refresh your list of games.

I'm working on getting a demo video out later this week to explain the setup process for new people.

Latest development updates

It's about time I provide an update as to what I'm working on since the last beta release in November.

Customized front-end for glint-nes

Glint-nes needs a graphical front-end ASAP. I've been working with the code from EmulationStation to create a customized and custom themed interface for glint-nes. Big thanks to Aloshi who has been a great resource for the code, and has given me several pointers along the way to create the customizations I'm looking for.

In terms of progress things are coming along nicely. I intend to release a new OS image before the end of 2012 with some kind of front end enabled. Though it may not be polished or finished by that time, it should at least be functional.

Better support for controllers

It's come to light that the original plan to have an "official" controller for the glint-nes project is unrealistic. The problem is that early testers have purchased the "official" controllers (same product, same SKU, same manufacturer), yet the inputs on the controller have been different from one shipment to the next. This is slightly problematic since part of the supposed benefit to having one set of supported hardware is that no configuration is going to be required. Unfortunately because I don't control the supply of retro controllers, this just isn't going to work.

The up side, however, is that this means I'm going to go the "support any controller" route, and leverage EmulationStation's auto-config options to prompt the user to configure their controller in the UI rather than via a set of config files.

I think that this is less than ideal, simply because I'd prefer users not to have to configure their controller in the first place (do you have to configure the inputs of a controller you plug into a real-life console, like your Xbox or PS3? - NO!), but it may turn out to be unavoidable.

Getting ROMs onto the system

I've devised a plan for how to get ROMs onto the system more easily. Currently the best ways to do it are to either use curl from the command line, or open up startx and simply use the browser to download the ROMs from whatever internet source you have.

As glint-nes aims to be an all-inclusive solution, what I'd prefer to do is allow you to simply insert a USB stick containing ROMs, and have glint-nes automatically read/copy any .nes files from the USB stick onto the glint box. Doing this with some kind of progress bar or status screen (something like, "Reading ROMs. Please wait...") would be ideal, I think.

Though I haven't started working on this feature yet, I've done some initial investigation, and it should be possible to achieve via a combination of using autofs and integrating whatever events it will trigger into the customized EmulationStation code. If anyone has heard of other methods in use by the community I'd be happy to hear about what other options are out there.

...more to come...

Why glint?

I get this question a lot. There are other "emulation on Raspberry Pi" projects out there, RetroPie being among the most prominent of them.

The difference is pretty simple: glint aims to be an authentic, dedicated set-top box for emulation, a box you plug into TV and leave there, with a pure "turn on and play" experience including controllers that are as close to the original hardware as possible.

Who is glint for?

In short, everyone, and that's a lot of what makes it different. When I say everyone I mean literally anyone who buys the parts and wants to plug it into their TV.

I've been an emulation hobbyist for years, building my own control panels from real arcade parts, and installing emulators on nearly every system I've owned. The thing that I've noticed, however, is that there's still a large gap within the hobby between people who love the technology and have the requisite skillset to build an emulation box themselves, and the people who want to enjoy the hobby of emulation but don't have the skills or the desire to tweak their emulation box until it's perfect. By collaborating with the community, we can "go the last mile" in emulation and provide an emulation project that makes it so simple that anyone with an afternoon to fiddle around can enjoy the hobby.

How simple does it need to be to be accessible for everyone?

It needs to be dead simple.

I see the potential users of glint in several groups, each with their own needs and motivations.

  • The first group is primarily comprised of technical people who want to build their own boxes, and who love digging into the details of how glint is built and can be customized. For these folks there's the "build your own glint box" insutrctions on the glint-nes project page. There will always be a free and open source option to give you the full experience if you fall into this group.
  • The second group is primarily comprised of people who are either new to the hobby or would like to dig a little deeper. For those folks we're building pre-buit OS images that require little-to-no configuration after they're imaged onto an SD card. From there, people can tweak the image anyway they want, but at least they get to start with a known working OS image instead of having to plod through all the testing, tweaking, and fine tuning to get something working well. These folks might also be interested in doing minor mods, such as custom controlleror support, theming their box with custom art, etc. For people in this group, simply getting an emulation box up and running will sap all their motivation to do much more beyond that.
  • The third group I'll call pure hobbyists. These are people who just want to enjoy the hobby, but have no direct interest in the underlying technology. These folks are primarily the old school gamers who want to experience the old games, but don't care to build their own emulation box. For these folks I plan on selling pre-flashed SD cards and parts kits so that they can just plug everything together and go. No logging into a Linux console, no configuration, and ideally making the enjoyment of glint no more complicated than buying and hooking up a console to your TV.

Doesn't RetroPie already do all this?

RetroPie is pretty close to this easy. The "run a single script and be done" approach is very compelling, but it only really takes care of the tech people and the modders. The pure hobbyists are still left out in the cold unless they have a friend that can get them to this point.

Because I love the hobby of emulation so much, and I know there are plenty of people out there that could enjoy it if only they had something they could get that was ready to go out of the box, for these people most of all I want to build glint.

Hosting is part of the challenge

Part of the challenge of getting everyone together to work on this project, and building it to a point where it's accessible to everyone is all the project and hosting infrastructure that's required to accomplish that aim. That's why I've started hosting direct downloads and torrents for all the OS images that glint is building.

What's the deal with only having NES support?

The NES support is simply a starting point.

There is an important thing about glint, and specifically glint-nes, that makes it different than the other "all-in-one" solutions. One of my goals for glint is that, whatever your favorite console (or consoles) is, you should be able to get as near to an authentic experience as possible. This means using USB controllers that look and feel like the original, so that with every game, you can play it using the controller and hardware that the game was originally designed to use.

This means one console per SD card for the glint project.

Think of this from the point of view of the pure hobbyist, and how easy it will be for you as well. If all you had to do in order to get an authentic play experience was turn on the Raspberry Pi, swap out your NES SD card with your Genesis SD card, and plug in an retro Genesis controller, imagine how many more people could be brought into the hobby, and how great the experience could be.

One box. Any console. Authentic hardware.

The reason glint isn't an "all-in-one" solution (meaning every console on a single SD card) is because you can't get the authentic experience that way, and the easiest way to support authentic controllers, in my experience, is to have everything setup and preconfigured on a per-console basis.

Working OS image and first public demo

New, working OS image (with some audio issues):

Over the weekend I was able to build and release the first three pre-built OS images. Unfortunately the first two didn't work, but the third one did, albeit with some sound glitching issues.

A fourth image is set to be released in a few hours that resolves a lot of the audio issues, and takes glint-nes one step close to "turn on and play". Checkout all the latest on the downloads page.

First public demo:

In a couple hours I'm planning on attending the NERP meetup in Chicago, where I hope to demo glint-nes in person.

Problems with current OS images :(

There are problems with the Raspberry Pi not booting, when using the latest OS image, according to some users. :( Don't worry, it's not going to break your Raspberry Pi or anything, it's just that the image itself seems to have some problems. I'm going to work on the imaging process this weekend and hopefully post a fixed image soon.

Also, there's a new, dedicated downloads/releases page for the pre-build OS images (you can also find it under the navigation bar at the top as "glint > downloads").

What will glint-nes be when it's "done"

glint-nes hopes to deliver "turn on and play" functionality when it's "done" (that is, when it's in a state for wide, public distribution). Here are the main features I'd like to acheive for that release, some of which might turn out to be pipe dreams, while others should be relatively easy to do:

  • Good NES emulation experience for the most popular NES games (good emulation speed, no major sound glitches, authentic controller feel and responsiveness)
  • Controller-based game selection (so you don't need a keyboard to start/stop the emulation experience)
  • Boot time that is less than 30 seconds (from power on, to game selection screen). At this point I think this feature may require experimenting with non-Raspbian distros, since the official distro has way more things loaded and running than strictly necessary for a dedicated emulation box.
  • Custom splash screen (instead of the kernel loading you see now with the first OS image release)

If glint-nes can accomplish these goals in the next couple of months (say, by January 2013), I think we'll have something to celebrate. The custom splash screen and boot times might prove to be the easiest, while tweaking the emulation experience and finding a good controller-based game selection app might be a little more difficult. Controller-based navigation via EmulationStation currently works, but could use some polishing.

For release announcements and help building your own glint-nes box, checkout our glint news and glint help groups.

 

glint-nes releases first pre-built OS image

Torrent file:
https://s3-us-west-2.amazonaws.com/glint-images/2012-11-02-glint-nes.torrent

Direct download:
https://s3-us-west-2.amazonaws.com/glint-images/2012-11-02-glint-nes.img

glint is a collection of retro emulation projects built to work on top of Raspberry Pi. The first of those projects is glint-nes - a dedicated NES emulator box. For those interested, you can read more about the goals and philosophy of the project.

Today the first pre-built OS image for the emulator has been released via bittorrent. Just image an SD card with this OS image, and you've got a pre-built NES emulator ready to go.

Default login credentials:

user: pi
pass: raspberry

What you need:

  • Raspberry Pi Rev B. board or newer (the 256 MB RAM model w/ethernet jack)
  • 2 GB SD card (minimum size, as the OS image is 2 GB)
  • Either the "official" glint-supported USB NES controller or, you can edit `/home/pi/.config/retroarch/retroarch.cfg` to use the controller/keyboard layout of your choice

Issues: 

  • I've had some performance issues with this image - it is the first release after all, so if the emulation (specifically the sound) doesn't seem up-to-snuff, please let us know
  • I fully expect this image to just flat out not work for some people, just because it's the initial release, and this is the first time we're trying to do this to a broader audience. So, stick with us. :)
  • The project's official stance is not to require an SD card larger than 4 GB - I'll try, in the future, to keep the OS image down to this size or smaller

I would love feedback and trouble reports via our glint-help group.

For future updates, subscribe to either this blog's RSS feed or the official glint news group.