Anti-Emulation Tricks On GBA-Ported NES Games

Emulation is a difficult thing to do, particularly when you’re trying to emulate a complex platform like a game console, with little to no public documentation available. Often, you’ll have to figure things out by brute force and dumb luck, and from time to time everything will come unstuck when a random piece of software throws up an edge case that brings everything screeching to a halt.

The Classic NES series was a handful of Nintendo Entertainment System games ported to the Game Boy Advance in the early 2000s. What makes them unique is a series of deliberately obtuse programming decisions that make them operate very differently from other titles. These tricks utilize advanced knowledge of the way the Game Boy Advance hardware operates and appear to have been used to make the games difficult to copy or emulate.

The games use a variety of techniques to confuse and bamboozle — from “mirrored memory” techniques that exploit addressing anomalies, to putting executable code in video RAM and writing to the audio buffers in unusual manners.

Even more confusingly, these techniques only appear to have been used in the Classic NES series of games, and not other Game Boy Advance titles. It’s not obvious why Nintendo went to special effort to protect these ports over other titles; perhaps the techniques used were for other reasons than just an attempt at copy protection. Speculate amongst yourselves in the comments.

This isn’t the first time we’ve discussed emulation of Nintendo systems — check out this effort to reverse engineer the Sony Pocketstation.

[Thanks to [[[Codifies]]] for sending this in!]

Sansa MP3 Player Runs Doom Unplayably

DOOM, is there anything it won’t run on? Yes. Your front lawn cannot currently play DOOM. Pretty much everything else can though. It’s a testament to the game’s impact on society that it gets ported to virtually every platform with buttons and a graphical screen.

This video shows a Sansa Clip playing DOOM, but it’s only just barely recognizable. The Sansa Clip has a single color screen, with yellow pixels at the top and grey for the rest of the screen. The monochrome display makes things hard to see, so a dithering technique is used to try and make things more visible. Unfortunately it’s not particularly effective, and it’s difficult to make out little more than the gun at the bottom of the screen.

Continue reading “Sansa MP3 Player Runs Doom Unplayably”

NES Classic Edition – Controller Mod

The Nintendo Classic Mini took the world by storm this year — finally, an NES in a cute, tiny package that isn’t 3D printed and running off a Raspberry Pi! It’s resoundingly popular and the nostalgic set are loving it. But what do you do when you’re two hours deep into a hardcore Metroid session and you realize you need to reboot and reload. Get off the couch? Never!

[gyromatical] had already bought an Emio Edge gamepad for his NES Mini. A little poking around inside revealed some unused pads on the PCB. Further investigation revealed that one pad can be used to wire up a reset button, and two others can be used to create a home switch. Combine this with the turbo features already present on the Emio Edge, and you’ve got a pretty solid upgrade over the stock NES Mini pad. Oftentimes, there’s extra functionality lurking inside products that manufacturers have left inactive for the sake of saving a few dollars on switches & connectors. It’s always worth taking a look inside.

Now, back in 2006, the coolest hack was running Linux on everything — and somebody’s already trying to get Linux on the NES Mini.

Continue reading “NES Classic Edition – Controller Mod”

How To Nail A Technical Presentation

Whether you’re an engineer, a maker, a hacker or a baker, at some point you’ll want to share your work with other people. Perhaps it’s a meeting at work to discuss process improvements, or a talk at a conference discussing some research you’ve done into hacking a new embedded platform. Or maybe you’ve developed a brand new cooking profile for rye breads that cuts energy usage in half. Whatever it is, there are techniques you can use to help you communicate effectively to a room full of people, and have fun doing it. Unlike some, I actually enjoy getting up in front of a crowd to present my work, so I’ve written this article to share with you some tips that can help you make a technical presentation that everyone will love — including you!

Editor’s Note: We planned the art for this article before the passing of Carrie Fisher. Leia certainly knew how to give a compelling technical presentation. We publish this in memory of a great actress.

Continue reading “How To Nail A Technical Presentation”

Adding MIDI Out To The Casio PX410R

Since the 1980s, MIDI has been a great way to send data between electronic musical instruments. Beginning as a modified serial interface running through optoisolaters and DIN sockets, these days, your hardware is more likely to carry its MIDI data over USB instead. This is great if you want to hook up to a computer without a cumbersome interface, but not so great when you want to connect a bunch of instruments to each other.

The Roland Integra 7 is a rack mount synthesizer with classic MIDI ports. [adriangin] wanted to control the synthesizer over MIDI, but their Casio keyboard only had MIDI over USB available. To get around this, [adriangin] set out to add a standard MIDI Out port to the Casio PX410R.

Continue reading “Adding MIDI Out To The Casio PX410R”

Animated EV Charge Cable Enlightens Us

[ch00f] was searching for an idea to build for his father this Christmas, and cast his gaze across those novelty phone charging cables that have “flowing” LEDs along their length. Not one to stick to the small scale, he set out to create a flowing LED effect for a Tesla EV charger.

ch00f-led-ev-chargerThe basic components behind the build are a current transformer, a NeoPixel LED strip, and an ATtiny44 to run the show. But the quality of the build is where [ch00f]’s project really shines. The writeup is top notch — [ch00f] goes to great lengths showing every detail of the build. The project log covers the challenges of finding appropriate wiring & enclosures for the high power AC build, how to interface the current-sense transformer to the microcontroller, and shares [ch00f]’s techniques for testing the fit of components to ensure the best chance of getting the build right the first time. If you’ve ever gotten a breadboarded prototype humming along sweetly, only to suffer as you try to cram all the pieces into a tiny plastic box, you’ll definitely pick something up here.

Perhaps you’d like to check out this teardown of a Tesla Model S battery. Video after the break.

Continue reading “Animated EV Charge Cable Enlightens Us”

The Tiny SCSI Emulator

For fans of vintage computers of the 80s and 90s, SCSI can be a real thorn in the side. The stock of functioning hard drives is dwindling, and mysterious termination issues are sure to have you cursing the SCSI voodoo before long. Over the years, this has led to various projects that aim to create new SCSI hardware to fill in where the original equipment is too broken to use, or too rare to find.

[David Kuder]’s tiny SCSI emulator is designed for just this purpose. [David] has combined a Teensy 3.5 with a NCR5380 SCSI interface chip to build his device. With a 120MHz clock and 192K of RAM, the Teensy provides plenty of horsepower to keep up with the SCSI signals, and its DMA features don’t hurt either.

Now, many earlier SCSI emulation or conversion projects have purely focused on storage – such as the SCSI2SD, which emulates a SCSI hard drive using a microSD card for storage. [David]’s pulled that off, maxing out the NCR5380’s throughput with plenty to spare on the SD card end of things. Future work looks to gain more speed through a SCSI controller upgrade.

But that’s not all SCSI’s good for. Back in the wild times that were the 80s, many computers, and particularly the early Macintosh line, were short on expansion options. This led to the development of SCSI Ethernet adapters, which [David] is also trying to emulate by adding a W5100 Ethernet shield to his project. So far the Cabletron EA412 driver [David] is using is causing the Macintosh SE test system to crash after initial setup, but debugging continues.

It’s always great to see projects that aim to keep vintage hardware alive — like this mass repair of six Commodore 64s.