Find Your Level – Extracting NES Game Data Using Python

Just this summer, the Nintendo Entertainment System had its 35th release anniversary, and even after years of discontinuation, it is still going strong in the hacker community. Exhibit A: [Matthew Earl]. For one of his upcoming projects, [Matthew] needed to get his hands on the background images of the NES classic Super Mario Bros. Instead of just getting some ready-rendered images and stitching them together, he decided to take care of the rendering himself, once he extracts the raw game data.

Since there is no official source code available for Super Mario Bros, [Matthew] used a disassembled version to get started looking for the image data. To avoid reading through thousands of lines of assembly code, and to also see what actually happens during execution, he wrapped the game’s ROM data into py65emu, a Python library emulating the 6502, the CPU that drives the NES. By adding a simple wrapper around the emulator’s memory handler that tracks reads on uninitialized data, [Matthew] managed to find out which parameters he needs to feed to the parser routine in order to get the image tile data. After an excursion into the Picture Processing Unit (PPU) and its memory arrangements, [Matthew] had everything he needed to create the Python script that will render the game background straight from its ROM data.

Even if extracting NES game data is not your thing, the emulator concept [Matthew] uses might be still worth a read. On the other hand, if you want to dig deeper into the NES, you should definitely have a look at emulating an SNES game on a NES, presented on the NES itself.

Are Patent Claims Coming For Your WS2812?

There are some components which are used within our sphere so often as to become ubiquitous, referred to by their part number without the need for a hasty dig through a data sheet to remind oneself just what we are talking about. You can rattle a few of them off, the 555, the 741, the ESP8266, and so on.

In the world of LEDs, the part that most immediately springs to mind is the Worldsemi WS2812 addressable LED. This part consists of three LEDs in red, green, and blue, all in the same package with a serial interface allowing a chain of individually addressable multicolour lights to be created. We’ve seen them in all sorts of places, and if you don’t recognise the part number then perhaps you will by one of the names they’re sold under: Neopixel.

Yesterday we received an email from our piratical friends at Pimoroni, the British supplier of all forms of electronic goodies. Among their range they have a reasonable number of products containing WS2812s, and it was these products that had formed the subject of an unexpected cease-and-desist letter. APA Electronic are the manufacturer of the APA102 addressable LED (which you may know as the Dotstar), and their cease-and-desist asking for the products to be withdrawn from sale rests on their holding a patent for an addressable multicolour LED. We’d be very interested to hear whether any other suppliers of WS2812-based parts have received similar communications.

US patent number 8094102B2 is indeed a patent for a “Single full-color LED with driving mechanism”, which does look a lot like a WS2812. But as always, such things are not as cut-and-dried as they might first appear. The LED in the patent for example relies upon a clock line for its operation, while the Worldsemi part doesn’t. I am not a lawyer so I’d hesitate to call this a baseless and speculative move, but I suspect that there will be plenty over which the two semiconductor companies can duke it out in the courtroom.

It’s fair to say that a large part of the ethos of our movement shares something with that of the world of open-source, so news of legal manoeuvres such as this are never likely to go down well. We’re small fry in this context and our commercial influence on APA102 or WS2812 sales will be minimal, but inevitably APA’s standing in our eyes will be diminished. Companies such as Pimoroni are not the target but a piece of collateral damage in a battle between manufacturers.

Whether the patent has been violated or not can only be decided by the courts. It is not uncommon for patent holders to go after companies selling the “infringing” products in hopes that rather than risk a costly court battle, they simply adhere to the demands, in this case buying parts from APA and not from Worldsemi.

So, if you rely on addressable LEDs, watch out! There may be trouble ahead.

Header image: Tristan Robitaille [CC BY-SA 4.0].

Kepler Planet Hunter Nears End Of Epic Journey

The Kepler spacecraft is in the final moments of its life. NASA isn’t quite sure when they’ll say their last goodbye to the space telescope which has confirmed the existence of thousands of exoplanets since its launch in 2009, but most estimates give it a few months at best. The prognosis is simple: she’s out of gas. Without propellant for its thrusters, Kepler can’t orient itself, and that means it can’t point its antenna to Earth to communicate.

Now far as spacecraft failures go, propellant depletion isn’t exactly unexpected. After all, it can’t pull into the nearest service station to top off the tanks. What makes the fact that Kepler will finally have to cease operations for such a mundane reason interesting is that the roughly $600 million dollar space telescope has already “died” once before. Back in 2013, NASA announced Kepler was irreparably damaged following a series of critical system failures that had started the previous year.

But thanks to what was perhaps some of the best last-ditch effort hacking NASA has done since they brought the crew of Apollo 13 home safely, a novel way of getting the spacecraft back under control was implemented. While it was never quite the same, Kepler was able to continue on with modified mission parameters and to date has delivered so much raw data that scientists will be analyzing it for years to come. Not bad for a dead bird.

Before Kepler goes dark for good, let’s take a look at how NASA managed to resurrect this planet hunting space telescope and greatly expand our knowledge of the planets in our galaxy.

Continue reading “Kepler Planet Hunter Nears End Of Epic Journey”

Hands-On With New Arduino FPGA Board: MKR Vidor 4000

Hackaday brought you a first look the Arduino MKR Vidor 4000 when it announced. Arduino sent over one of the first boards so now we finally have our hands on one! It’s early and the documentation is still a bit sparse, but we did get it up and running to take the board through some hello world exercises. This article will go over what we’ve been able to figure out about the FPGA system so far to help get you up and running with the new hardware.

Continue reading “Hands-On With New Arduino FPGA Board: MKR Vidor 4000”

Video Review: AND!XOR DEF CON 26 Badge

The AND!XOR team have somehow managed to outdo themselves once again this year. Their newest unofficial hardware badge for DEF CON 26 just arrived. It’s a delightful creation in hardware, software, and the interactive challenges built into both.

They call this the “Wild West of IoT”, a name that draws from the aesthetic as well as the badge-to-badge communications features. Built on the ESP32-WROVER module which brings both WiFi and Bluetooth to the party, the badges are designed to form a wireless botnet at the conference. Anyone with a badge can work to advance their level and take more and more control of the botnet as they do.

Check out the video overview and then join me below for a deeper dive into all this badge has to offer.

Continue reading “Video Review: AND!XOR DEF CON 26 Badge”

The Hot And Cold Of Balanced Audio

A few summers of my misspent youth found me working at an outdoor concert venue on the local crew. The local crew helps the show’s technicians — don’t call them roadies; they hate that — put up the show. You unpack the trucks, put up the lights, fly the sound system, help run the show, and put it all back in the trucks at the end. It was grueling work, but a lot of fun, and I got to meet people with names like “Mister Dog Vomit.”

One of the things I most remember about the load-in process was running the snakes. The snakes are fat bundles of cables, one for audio and one for lighting, that run from the stage to the consoles out in the house. The bigger the snakes, the bigger the show. It always impressed me that the audio snake, something like 50 yards long, was able to carry all those low-level signals without picking up interference from the AC thrumming through the lighting snake running right alongside it, while my stereo at home would pick up hum from the three-foot long RCA cable between the turntable and the preamp.

I asked one of the audio techs about that during one show, and he held up the end of the snake where all the cables break out into separate connectors. The chunky silver plugs clinked together as he gave his two-word answer before going back to patching in the console: “Balanced audio.”

Continue reading “The Hot And Cold Of Balanced Audio”

Dual-Port Memory And Raspberry Pi Team Up For Retro Console Multicart

There’s something powerful about reliving the experience of using a game console from our personal good old days, especially the tactile memories stored up from hundreds of hours handling a chintzy joystick or the sound and feel of inserting a game cartridge. Emulators have their place, but they fall far short of period-correct hardware in the nostalgia department.

That’s not to say that the retro gear can’t use a little help in terms of usability, which is why [Scott M. Baker] built this Raspberry Pi multi-cartridge for his Atari 5200. The idea is to maintain the experience of the cartridge interface without having to keep stacks of cartridges around for all the games he wants to play. [Scott] leveraged the approach he used when he built a virtual floppy drive for a homebrew PC/XT: dual-port memory. The IDT7007 is a 32k chip that lives between the Atari 5200 and a Raspberry Pi Zero and can be addressed by both systems; the Pi to write ROM images to the memory, and the console to read them. He had to deal with some fussy details like chip select logic and dealing with the cartridge interlock signals, not to mention the difference in voltage between the memory chip’s logic levels and that of the Pi. Retro game-play occupies the first part of the video below; skip to 6:45 for build details.

The one quibble we have is trying to jam everything into an old cartridge. It’s critical to replicating the tactile experience, and while we don’t think we’d have gone so far as to injection mold a custom cartridge to house everything without any protrusions, we might have 3D-printed a custom cartridge instead. In the end it doesn’t detract much from the finished project, though, and we appreciate the mix of old and new tech.

Continue reading “Dual-Port Memory And Raspberry Pi Team Up For Retro Console Multicart”