“A few weeks ago I got my Pi delivered and started working on what I would describe as ‘universal console’. In this post I describe my initial thoughts about this project and present an adapter that allows you to use SNES controllers as input devices for the Raspberry Pi.” This is what the Pi is all about. Amazing work by Florian (can’t find his last name!), code and instructions are available. So cool.
Using the GPIO pins is neat, but why not just drop 18 bucks on a USB RetroPort?
http://www.retrousb.com/product_info.php?cPath=21&products_id=29
Well, for me it would be the fun of doing it, learning how to use the GPIO pins. Also from a practical standpoint, the Pi only has two USB ports and they share bandwidth with the Ethernet port (it’s an Ethernet-USB bridge). So, given that at least one port would be taken up with a keyboard and mouse, and perhaps the other with a WiFi dongle, it makes sense to use the extra inputs already on the device.
If you don’t want to bother with the elaborate adapter hardware in this article (and you don’t have to), using the GPIO pins to run a SNES controller is absurdly simple. The entire contents of the hardware in a SNES controller is a single shift register; there’s no need to involve USB if that’s all you’ve got.
Could you explain in a little further detail how this would be accomplished please? I just got mine this week and would love to try this out. Thanks!
I wouldn’t mind learning about GPIO-stuff myself, either. I have recently bought a Pandaboard and there are lots of things I’d like to do, but heck, I don’t even know how to add new push-buttons to it via GPIO, let alone do anything fancier than that.
On a Raspberry Pi? Hmm. I did mine on an Arduino, I’m not sure how the pins on the Pi are accessed by software. The Arduino-based project at http://code.google.com/p/nespad/ can get you started, but you’ll have to port the code you find there over to the Pi.
Let me guess, a decade+ ago you’d say something like “using consumer GPUs is fine, but why not just drop dozen thousand on an SGI?”, hm? ;p
Why yes I would thank you very much!
And look where we are now… (actually, we were here already that decade+ ago, really, with consumer GPUs vs. what SGI hardware offered)
BTW, seeing that you’re perhaps “into” all things SGI …do you recall a game for SGI Indy, IIRC made for some coding competition, using a webcam for input and displaying some abstract orange-ish landscape, with leafless trees, one of them controlled? (again, all IIRC)
I stumbled on something like that a decade+ go (probably while casually exploring SGI sites from… BeOS :p ), and searching it now doesn’t do the trick, bringing mostly some casual gaming websites and “commemorative” SGI blogs.
(you’ll probably won’t see it before the topic is closed – but, if you recall anything, feel free to answer to one of my comment in some more recent thread)
Edited 2012-07-14 00:19 UTC
That he got a snes controller working as an input device is not impressive at all. It was a given that would happen. It’s more interesting that the rpi is running Mario Kart at a playable fps rate.
And anyway, many older games often benefit when using more modern controllers …which are generally better, more comfortable (maybe those from SNES aren’t so bad, for the kind of games; ~NES are so-so IMHO; and that’s particularly the case with C64 and such – there’s a reason we retired digital joysticks of the kind popular with home computers)
Plus, the described thing might be more problematic with Famicom and many of its typical clones, with hard-wired controllers ;p
I still prefer a digital joystick with a single fire button over any game pad with loads of confusing buttons.
So just map all those “confusing”(?) joypad buttons to that one fire button of C64 joysticks…
A Zen master would be proud of you!
Emulating the SNES doesn’t require a lot of power as long as you don’t go for cycle-accuracy. With some optimization it should work really well on the RPi.
I remember emulating the SNES full speed on my Pentium II 266. Also, the SNES emulator for my Nintendo DS worked well enough, and that is some seriously weak hardware with a 66 MHz ARM9 CPU.
In my opinion emulating game consoles without accuracy is nearly a waste. There’s a huge difference between making something technically playable, and giving you at least a similar experience as the real console did/does. To emulate all the chips, modes, and sound properly requires some horsepower — there’s just no way around that.
I guess we all have our own ideas about what “good” is.
Who knows how reliably you could differentiate between ZSNES or SNES9x on one side, and bsnes or MESS on the other, with most titles …while in a properly set up blind test ;p
ZSNES was quite accurate for a long time, while not requiring powerful hardware at all (IIRC, some fast 486 could do)
What’s more often missing IMHO is not the console side, but the display: after all, old-school consoles were played on interlaced CRT TVs – that was the norm up until (and mostly including) PS2 generation. And the very nature of those CRT displays applied a filter of sorts, some kind of hardware anti-aliasing, which is largely neglected under emulators (they often do have some filters, but typically without much attention given to them).
Perhaps we need serious project to emulate few standard kinds of TVs, to be used by display layer of gaming emulators
That said, I do value pursuits of low-level emulation, in context of such gaming accuracy, because they partly push aside the drive to “enhance” games.
A drive which doesn’t end up so bad in the case of SNES (with “2D” scaling filters such as 2~A—SaI or hq2x – and indeed, bsnes includes such).
But it IMHO gives quite atrocious results with PS1 for example, where that “CRT anti-aliasing” (coupled with skilful use of dithering, also blended a bit by the TV) …are replaced by simplistic blowing up of resolution & colour palette, and blurring textures into total soap (like in the worst of Voodoo 1 era PC games) – and many people seem to honestly think it’s better like that O_o (me, I prefer an “aesthetic cohesion” of sorts, at which many of the best PS1 games clearly aimed – and not only them of course, Starcraft or Homeworld also display it for example)
Edited 2012-07-14 00:14 UTC
Coincidentally, the CPU in RPi has “Overall real world performance is something like a 300MHz Pentium 2, only with much, much swankier graphics.” ( http://www.raspberrypi.org/faqs )
And I wonder if SNES emu on DS wouldn’t be using some more HLE approach …the hardware capabilities of SNES gfx are quite thoroughly represented in DS, IIRC (maybe they are even architecturally related), probably map nicely.