Arbitrary Code Execution is in Another Castle!

When one buys a computer, it should be expected that the owner can run any code on it that they want. Often this isn’t the case, though, as most modern devices are sold with locked bootloaders or worse. Older technology is a little bit easier to handle, however, but arbitrary code execution on something like an original Nintendo still involves quite a lot of legwork, as [Retro Game Mechanics Explained] shows with the inner workings of Super Mario Brothers 3.

While this hack doesn’t permanently modify the Nintendo itself, it does allow for arbitrary code execution within the game, which is used mostly by speedrunners to get to the end credits scene as fast as possible. To do this, values are written to memory by carefully manipulating on-screen objects. Once the correct values are entered, a glitch in the game involving a pipe is exploited to execute the manipulated memory as an instruction. The instruction planted is most often used to load the Princess’s chamber and complete the game, with the current record hovering around the three-minute mark.

If you feel like you’ve seen something like this before, you are likely thinking of the Super Mario World exploit for the SNES that allows for the same style of arbitrary code execution. The Mario 3 hack, however, is simpler to execute. It’s also worth checking out the video below, because [Retro Game Mechanics Explained] goes into great depth about which values are written to memory, how they are executed as an instruction, and all of the other inner workings of the game that allows for an exploit of this level.

Continue reading “Arbitrary Code Execution is in Another Castle!”

FPGA Emulates NES Cart; Prototype So Cyberpunk

By now, most of us have had some experience getting ROMs from classic video games to run on new hardware. Whether that’s just on a personal computer with the keyboard as a controller, or if it’s a more refined RetrioPie in a custom-built cabinet, it has become relatively mainstream. What isn’t mainstream, however, is building custom hardware that can run classic video games on the original console (translated). The finished project looks amazing, but the prototype blows us away with it’s beauty and complexity.

[phanick]’s project is a cartridge that is able to run games on the Polish Famicon clone called the Pegasus. The games are stored on an SD card but rather than run in an emulator, an FPGA loads the ROMs and presents the data through the normal edge-connector in the cartridge slot of the console. The game is played from the retro hardware itself. It takes a few seconds to load in each ROM, but after that the Pegasus can’t tell any difference between this and an original cartridge.

The original prototype shown here was built back in 2012. Since then it’s been through a few iterations that have reduced the size. PCBs were designed and built in-house, and the latest revision also includes a 3D-printed case that is closer to the size of the original Famicon cartridges.

Even if you don’t have an interest in classic video games or emulation, the video below is worth checking out. (Be sure to turn on the subtitles if you don’t speak Polish.) [phanick] has put in a huge amount of time getting all of the details exactly right, and the level of polish shows in the final product. In fact, we’ve featured him before for building his own Famicom clone.

Continue reading “FPGA Emulates NES Cart; Prototype So Cyberpunk”

Generator Monitor Gives the Phone Company the Boot

Part of the problem with having an alarm system is its reliance on land line telephone service. Some of them are getting away from this practice, but there are still many legacy systems out there that require a check to be sent in to Ma Bell every month in addition to the alarm system fees. Like these antiquated systems, [jgyates] was having a similar problem with the generator at his home which could only be monitored with a link to a cell network. Now that there’s a Raspberry Pi in every house, however, [jgyates] has a generator monitor that isn’t beholden to the phone company.

The hardware setup is little more than connecting the communications lines from the generator’s controller (in this case, a Generac Evolution controller) to the serial communications pins on a Raspberry Pi 3. [jgyates] did most of the work in Python, and his code is able to monitor almost every aspect of this generator and report it over WiFi or Ethernet, as well as control the generator settings from anywhere that has an Internet connection.

Even if you don’t have a generator with this particular controller, it will be a good guide for converting a monitor of any type into one that doesn’t require a land line or cell network connection. To that end, there have been lots of projects that convert even simple, old, analog household devices to report data over the LAN.

Drinkable Clouds Get You Second-Hand Drunk

While the rise of electronic cigarettes and vaping has led to many aggravated bystanders, an installation in Germany may have found a vapor of a different ilk. Rather than nicotine, this cloud of vapors is full of tequila which precipitates out into glasses (or people) who happen to be nearby.

The cloud generator uses ultrasonic devices to vibrate the tequila molecules until they form a fine mist. The mist is delivered outward towards the sculpture, where a delicious cloud forms. From there, the cloud literally rains tequila out into its original, drinkable tequila form. It appears to take a while to gather enough tequila from the cloud, though, so there is a convenient tap on the side that will dispense it without all the rigmarole.

Basically this is a nebulizer which is using tequila and dispersing the output rather than directing it. You’re unlikely to get a large enough gasp for inebriation, but technically there is an opportunity a risk here of becoming second-hand drunk.

The installing is an effort by the Mexican Tourism Board to encourage Germans to take a break from the rain in favor of visiting sunny Mexico, we’d have to say that the effort seems to be a success. Once there, hopefully any visitors will be able to enjoy a perfect margarita or two as well.

When the Grid Goes Dark

If you lived through the Y2K fiasco, you might remember a lot of hype with almost zero real-world ramifications in the end. As the calendar year flipped from 1999 to 2000 many forecast disastrous software bugs in machines controlling our banking and infrastructure. While this potential disaster didn’t quite live up to its expectations there was another major infrastructure problem, resulting in many blackouts in North America, that reared its head shortly after the new millennium began. While it may have seemed like Y2K was finally coming to fruition based on the amount of chaos that was caused, the actual cause of these blackouts was simply institutional problems with the power grid itself.

Continue reading “When the Grid Goes Dark”

Boost Converter Functionality at Rock-Bottom Prices

Linear voltage regulators are pretty easy to throw into a project if something in it needs a specific voltage that’s lower than the supply. If it needs a higher voltage, it’s almost just as easy to grab a boost converter of some sort to satisfy the power requirements. But if you’re on a mission to save some money for a large production run, or you just like the challenge of building something as simply as possible, there are ways of getting voltages greater than the supply voltage without using anything as non-minimalistic as a boost converter. [Josh] shows us exactly how this can be done using a circuit known as a charge pump to drive a blue LED.

One of the cool things about AVR microcontrollers is that they can run easily on a coin cell battery and source enough current to drive LEDs directly from the output pins. Obviously enough, if the LED voltage is greater than the voltage of the power supply, this won’t work. That is, unless you have a spare diode and capacitor around to build a charge pump.

The negative charge pump works by charging up a capacitor that is connected to an AVR pin, with the other side between the LED and a garden-variety diode to ground. That results in a roughly (VCC – 0.7) volt difference across the capacitor’s plates. When the AVR pin goes low, the other side of the capacitor goes negative by this same amount, and this makes the voltage across the LED high enough to light up. Not only is this simpler than a boost converter, but it doesn’t need any bulky inductors to work properly.

Will this work for any load? Am I going to start any fires by overdriving the LED? Luckily, [josh] answers all of these questions and more on the project page, and goes into some detail on the circuit theory as well. Granted, the charge pump doesn’t have the fine control over the power supply that you can get out of a buck or boost converter (or any switch-mode power supply). But it does have good bang-for-the-buck.

Oscillating Fan Controller Used As Relay

The most brilliant hacks we see aren’t always the thousand-dollar, multi-year projects spanning every facet of engineering. Rather, the most ingenious projects are ones that take an everyday thing and use it in a simple but revolutionary way. By that measure, it’ll be hard to top [Robert]’s latest hack which uses the controller board from an everyday oscillating fan to build a three-way remote-controlled relay board.

Most oscillating fans have a speed selector switch. What that does might be somewhat different between different types of fan, but in general it will select either a smaller portion of the fan’s motor to energize or switch in a resistor which will have the same speed-lowering effect. [Robert]’s fan had little more than a triple-throw switch on the control board, so when he decided the fan wasn’t worth keeping anymore, he was able to re-purpose the control board into a general-use relay. As a bonus, the fan could be controlled by infrared, so he can also remote control whatever he decides to plug into his new piece of equipment.

While this simple hack might not change the world, it may give anyone with an old fan some ideas for other uses for its parts. If you want to do a little more work and get the fan itself running again, though, it is possible to rebuild the whole thing from the ground up as well.