Homebrew SNES Mini Aims For Historical Accuracy

While “normies” are out fighting in the aisles of Walmart to snap up one of the official “Classic Mini” consoles that Nintendo lets slip out onto the market every once and awhile, hackers have been perfecting their own miniature versions of these classic gaming systems. The “Classic Mini” line is admittedly a very cool way to capitalize on nostalgic masses who have now found themselves at the age where they have disposable income, but the value proposition is kind of weak. Rather than being stuck with the handful of generation-limited games that Nintendo packed into the official products, these homebrew consoles can play thousands of ROMs from systems that stretch across multiple generations and manufacturers.

But for those old enough to remember playing on one of these systems when they first came out, these modern reincarnations always lack a certain something. It never feels quite right. That vaguely uncomfortable feeling is exactly what [ElBartoME] is aiming to eliminate with his very slick miniature SNES build. His 3D printed case doesn’t just nail the aesthetics of the original (PAL) console, but the system also uses real SNES controllers in addition to NFC “cartridges” to load different ROMs.

The project’s page on Thingiverse has all the wiring diagrams and kernel configuration info to get the internal Raspberry Pi 3 to read an original SNES controller via the GPIO pins. He also gives a full rundown on the hardware and software required to get the NFC-enabled cartridges working with EmulationStation to launch the appropriate game when inserted. Though he does admit this is quite a bit trickier than the controller setup.

[ElBartoME] has put a video up on YouTube that shows him inserting his mock cartridges and navigating the menus with an original SNES controller. If it wasn’t for the fact that the console is the size of a smartphone and the on-screen display is generations beyond what the SNES could pull off, you’d think he was playing on the real thing.

We’ve seen some incredibly impressive emulation boxes based on the Raspberry Pi, and builds which tried to embrace original hardware components, but this particular project may represent the best of both worlds.

Continue reading “Homebrew SNES Mini Aims For Historical Accuracy”

Reverse Engineering The Nintendo Switch Joy-Cons

The Switch is Nintendo’s latest effort in the console world. One of its unique features is the Joy-Cons, a pair of controllers that can either attach directly to the console’s screen or be removed and used individually. But how do they work? [dekuNukem] decided to find out.

The reverse engineering efforts begin with disassembly. Surprisingly, there is no silkscreen present on the board to highlight test points or part numbers. This is likely to conflate intended to stymie community efforts to work with the hardware, as different teams may create their own designations for components. Conversely, the chips inside still have their identifying markings present, which does ease identification somewhat.

There are some interesting choices made – the majority of the buttons are scanned in a matrix configuration by the on-board microcontroller, making it harder to spoof button presses. The controllers communicate over Bluetooth, switching to a physical serial connection when attached directly to the screen. This runs at a blistering 3,125,000 BPS after the initial handshake is completed.

Overall it’s a fairly comprehensive reverse engineering effort, and [dekuNukem] has provided excellent detail in the writeup for anyone else looking to get involved. There’s still some work left to do, like investigating the rumble messages, but it’s an excellent start and very comprehensive.

Perhaps you’re more interested in older Nintendo hardware? Check out this comprehensive effort to figure out NES console-to-cartridge security methods.

Teensy Script Plays Nintendo Switch, Strikes Out

The most recent of the Zelda franchise, Breath of the Wild, is known for its many, many puzzles.  One of the more frustrating ones involved bowling with a giant snowball at the top of a hillside.  [Bertrand] did not like this, so he cheated the system hacked the Nintendo Switch so that he “genuinely earned” a strike every time he played.  He achieved this by writing a script for a Teensy module that got him those sweet rupees.

The Teensy houses an Atmel 90USB1286 microcontroller.  When paired with LUFA software, it can emulate numerous controllers including keyboards, joysticks, etc.  It also handily has a Mini-B USB connector located on its rear, allowing it to communicate to the Switch with ease.  After confirming the hardware was compatible, [Bertrand] looked towards the software side noticing the similarity between what already existed and what he was attempting to accomplish.  He happened upon this in a Splatoon 2 fork that allows players to draw posts. 

In essence, it takes image files as input and emulates the controls and buttons to draw a 1-bit version of the image automatically.  This takes care of syncing the hardware as well as how to simulate the button presses.  But instead of reading an image file, it needed to take a custom script as the input.  This required starting from scratch.  The first logical step — of course — was to create a language similar to Logo, a name that surely brings back memories of the time of big hair and shoulder pads.  He only needed a handful of simple commands to control Link:

typedef enum {
	UP,
	DOWN,
	LEFT,
	RIGHT,
	X,
	Y,
	A,
	B,
	L,
	R,
	THROW,
	NOTHING,
	TRIGGERS
} Buttons_t;

Continue reading “Teensy Script Plays Nintendo Switch, Strikes Out”

DIY Nintendo Switch May Be Better Than Real Thing

Nintendo’s latest Zelda-playing device, the Switch, is having no problems essentially printing money for the Japanese gaming juggernaut. Its novel design that bridges the gap between portable and home console by essentially being both at the same time has clearly struck a chord with the modern gamer, and even 8 months after its release, stores are still reporting issues getting enough of the machines to meet demand.

But for our money, we’d rather have the Raspberry Pi powered version that [Tim Lindquist] slaved over for his summer project. Every part of the finished device (which he refers to as the “NinTIMdo RP”) looks professional, from the incredible job he did designing and printing the case down to the small details like the 5 LED display on the top edge that displays volume and battery level. For those of you wondering, his version even allows you to connect it to a TV; mimicking the handheld to console conversion of the real thing.

[Tim] has posted a fascinating time-lapse video of building the NinTIMdo RP on YouTube that covers every step of the process. It starts with a look at the 3D model he created in Autodesk Inventor, and then goes right into the post-printing prep work where he cleans up the printed holes with a Dremel and installs brass threaded inserts for strength. The bulk of the video shows the insane amount of hardware he managed to pack inside the case, a true testament to how much thought was put into the design.

For the software side, the Raspberry Pi is running the ever popular RetroPie along with the very slick EmulationStation front-end. There’s also a Teensy microcontroller on board that handles the low-level functions such as controlling volume, updating the LED display, and mapping the physical buttons to a USB HID device the Raspberry Pi can understand.

The Teensy source code as well as the 3D models of the case have been put up on GitHub, but for a project like this that’s just the tip of the iceberg. [Tim] does mention that he’s currently working on creating a full build tutorial though; so if Santa doesn’t leave a Switch under the tree for you this year, maybe he can at least give you a roll of filament and enough electronics to build your own.

While this isn’t the first time a Raspberry Pi has dressed up as a Nintendo console, it may represent the first time somebody has tried to replicate a current-generation gaming device with one.

Continue reading “DIY Nintendo Switch May Be Better Than Real Thing”

Nintendo Power Glove Achieves Its Promise As Vive Controller

You have to hand it to Nintendo, for blazing the virtual reality trail in consumer products a couple of decades before everyone else, even if the best that can be said for their efforts in that direction is that they weren’t exactly super-successful. Their 1989 Power Glove became little more than a difficult-to-use peripheral for everyday console games, and their 1995 Virtual Boy console was streets ahead of its time but had a 3D effect that induced discomfort in its players.

Many years later though, the Power Glove remains an intriguing product, and one that can be readily found second-hand. The folks at Teague Labs think that perhaps its time has come as the basis of a peripheral for modern VR systems, as a controller for the HTC Vive.

They’ve taken a Power Glove, and through an Arduino Due with a custom shield, interfaced it to the Vive controller mounted where the buttons would have been in its Nintendo days. The Vive provides positional data, while the Nintendo sensors provide hand data. Thus they’ve made an accomplished glove peripheral with a lot less heartache than they would have seen had they done so from scratch.

They show us a couple of environments using the glove, an iPad simulation which we’re having a little difficulty getting our heads round, and a rock/paper/scissors game which looks rather fun. If you are interested in further work, all their code is on GitHub.

We’ve shown you another hugely-upgraded Power Glove in the past, but how about one controlling a quadcopter?

An Old Video Game Controller On Even Older Computer

For those of us not old enough to remember, and also probably living in the States, there was a relatively obscure computer built by Microsoft in the early 80s that had the strong Commodore/Atari vibe of computers that were produced before PCs took over. It was known as the MSX and only saw limited release in the US, although was popular in Japan and elsewhere. If you happen to have one of these and you’d like to play some video games on it, though, there’s now a driver (of sorts) for SNES controllers.

While the usefulness of this hack for others may not help too many people, the simplicity of the project is elegant for such “ancient” technology. The project takes advantage of some quirks in BASIC for reading a touch-pad digitizer connected to the joystick port using the SPI protocol. This is similar enough to the protocol used by NES/SNES controllers that it’s about as plug-and-play as 80s and 90s hardware can get. From there, the old game pad can be used for anything that the MSX joystick could be used for.

We’ve seen a handful of projects involving the MSX, so while it’s not as popular as Apple or Commodore, it’s not entirely forgotten, either. In fact, this isn’t even the first time someone has retrofitted a newer gaming controller to an MSX: the Wii Nunchuck already works for these machines.

Running The SNES Classic Mini Emulator On The Raspberry Pi

Unless you’ve been living under a rock, you’d be familiar with Nintendo’s hugely popular Classic Mini consoles. Starting with the NES, and now followed with the SNES, the consoles ship in a cute, miniature enclosure and emulate Nintendo classics using the horsepower of modern ARM chips. These consoles use an emulator that has been created especially for the purpose by Nintendo, in house – and [Morris] [krom] wanted to see if he could take the emulator on the SNES Classic Mini and run it on the Raspberry Pi.

Yes, there are already SNES emulators on the Raspberry Pi. But anyone interested in the nuts and bolts of emulation can see the clear interest in the tricks and techniques Nintendo are using to achieve the feat. In particular, Nintendo engineers have the benefit of access to internal documentation that can make the job a lot easier, particularly when dealing with edge cases.

[krom] has been kind enough to share the full instructions necessary to recreate this feat. One stumbling block was the difference in hardware between the Raspberry Pi and the SNES Classic Mini – the Pi using a Broadcom GPU instead of the SNES’s Mali hardware. However, a workaround was simple enough – swapping out some libraries was all that was required. It also gives some interesting insight – it looks like the SNES Classic Mini relies on the SDL libraries to run.

While emulation of the SNES has been a largely solved problem for quite some time, it’s great to see more work going on in the field. In particular, the official Nintendo emulation is reported to be particularly adept at running games that rely on the SuperFX chip.

For another take on SNES emulation, try out your old Mario games on the HoloLens.

Thanks [Morris] for the tip!