Sega Master System on a STM32 Development Board

Sega on STM32

Some hackers have managed to convert an STM32 development into a Sega Master System emulator. This means Sonic the Hedgehog running on an ARM Cortex-M4.

This hack has a number of parts. First, [Alessandro Rocchegiani] showed off a video of his Sega Master System emulator running on the STM32F429 Discovery development board. This first version used the on board 2.4″ TFT LCD screen.

[Fabrice] was working with this STM32 Discovery board already. He had developed an expansion board that added a number of features to the development kit, including an R-2R DAC for video output. When [Fabrice] found out about the Sega Master System emulator, he worked with [Alessandro] and his son [Fabrizio] to get VGA output working. They also added support for the Wii controller using [Fabrice]‘s Wii library. The result is a Sega Master System emulator with VGA output at 640 x 480, with 16 bit color and Wii controller support.

You can watch a video of both the LCD and VGA versions of the hack after the break.

[Read more...]

How the Game Genie Works

gene

Those of us old enough to remember blowing into cartridges will probably remember the Game Genie – a device that plugs in to an NES, SNES, Sega Genesis, or Game Boy that gives the player extra lives, items, changes the difficulty, or otherwise modifies the gameplay. To someone who doesn’t yet know where the 1-up is in the first level of Super Mario Bros., the Game Genie seems magical. There is, of course, a rhyme and reason behind the Genie and [The Mighty Mike Master] put together a great walkthrough of how the Game Genie works.

There are two varieties of Game Genie codes – 6-character codes and 8-character codes. Both these types of codes translate into a 15-bit address in the game ROM (from 0×8000 to 0xFFFF for the 6502-based NES) and a data byte. For the 6-character codes, whenever the address referenced by the Game Genie code is accessed, a specific data byte is returned. Thus, infinite lives become a reality with just a 6-character code.

Some games, especially ones made in the late years of their respective systems, use memory mapping to increase the code and data provided on the cartridges. Since areas of data are constantly being taken in and out of the CPU’s address space, merely returning a set value whenever a specific address is accessed would be disastrous. For this bank-switching setup, the Game Genie uses an 8-bit code; it’s just like the 6-bit code, only with the addition of a ‘compare’ byte. Using an 8-bit code, the Game Genie returns a specific byte if the compare bytes are equal. Otherwise, the Genie lets hands off the original data to the CPU.

Of course, all this information could be gleaned from the original patent for the Game Genie. As for the circuitry inside the Game Genie, there’s really not much aside from an un-Googleable GAL (general array logic) and a tiny epoxied microcontroller. It’s an amazingly simple device for all the amazement it imbued in our young impressionable minds.

[Read more...]

Sega controller houses auto-launch emulator

sega-all-in-one-emulator

[Joe's] wife grew up playing Sega games and he wanted to help her unwind by reliving the experience. Since the work computer she uses when travelling isn’t a good place to install emulators he built this plug-and-play emulator inside of a Sega controller.

We’ve seen this type of thing a few times before (even with XBMC in a SNES controller) but there is one thing we hadn’t thought of lately. Newer versions of Windows have auto-launch disabled for USB drives. But [Joe] knew that there were still some USB sticks that manage to auto-launch anyway so he researched how those work. It turns out that they have two partitions, one is formatted as a CDFS which looks like a CD-ROM to Windows and allows auto-launch. He used this method of partitioning a USB stick, storing the ROMs on the mass storage partition and the emulator and the CDFS partition. To finish the hack he cracked open the controller and found room for a USB hub and the PCB from the thumb drive.

If you still have cartridges lying around you can pull the ROMs off of them over USB.

Coin-op Sega Rally used to race RC cars

Head to head video game action can’t even compare to this use of a coin-op Sega Rally game to race actual RC vehicles. Take a close look at those screens and you’ll see there are no computer graphics, just a feed for a camera on each of the toy cars.

The project was conceived for the Sapo Codebits VI conference in Portugal. The arcade cabinets had their controls connected to an Arduino, but getting video up and running wasn’t nearly as easy. After fruitless attempts to get the original CRTs to work the team ended up replacing them with functioning CRT units of the same size. The cars themselves have two camera, one on top of the vehicle’s cab and one mounted on a boom for a perspective that was above and behind the vehicle. The drivers can switch between either view. The cars were set loose in the room serving as the event’s retro gaming area and players were free to race each other wherever they pleased. Don’t miss the video clip after the break which shows off all of the fun. [Read more...]

GD-ROM drive emulated to use SD cards instead

This board is the prototype which [Deunan] has been working on in order to use an SD card in place of a GD-ROM drive. The idea is to fully implement the hardware protocol used by a GD-ROM drive so that it can be completely replaced. The end goal is to do away with the optical drive on a Dreamcast game console.

As these game systems age, the optical drive is the most likely part to fail first as it involves moving parts and a lens that may degrade over time (we’re basing that assumption on our experience with DVD-ROM and RW). This may sound like a way to play pirated games, but [Deunan] makes it clear in his question and answer post that the firmware for his prototype is written to only play proper disc images and will probably not play the rips which are found in the darker recesses of the interwebs.

He’s been at this for quite a while. Here’s an earlier project he did that uses an FPGA board for the hardware.

[Thanks Walt]

Hackaday Links: August 15, 2012

An Octopart for RC equipment

When [Zach] started building a quadcopter he found it very difficult to source the required parts. Thus was born CompareRC, an aggregation of several online RC retailers. There’s over 150,000 parts in the database, all searchable and sortable by lowest price.

Segway iPad Skype teleconferencing robot

It’ll be a while until robots completely eliminate the need for any human interaction, but until then there’s Double. It’s a two-wheeled balancing robot with an iPad dock, controllable via a remote iPad.

Free electronic design

In case you weren’t aware, Fedora has an electronic design distro that includes just about everything needed to build electronic circuits called Fedora Electronic Lab. FEL has PCB designers, circuit simulators, editors for just about everything, and support for PICs, AVRs, and 8051 micros. Thanks for sending this in, [Simon].

Make your own Megadrive ROMs

Last month, [Lee] sent in a build where he connected an Arduino Mega to an old Sega Genesis/Megadrive cartridge. He’s figured out how to read the contents of the cartridge now, allowing you to preserve your 100% complete Sonic & Knuckles / Sonic 3 save for time immemorial.

A surprising amount of graphics tutorials

Khan Academy, every autodidacts best friend, is now teaching computer science. Right now, there is a heavy focus on drawing graphics, and everything is coded in the browser (using Javascript…), but at least it’s a start. The fundamentals of programming are platform and language agnostic, so this looks to be a great way to learn programming.

Here’s a blog post from the lead dev of the Khan CS project.

Genezap improves your video game skills using corporal punishment

genezap

As if getting your ass handed to you while playing video games wasn’t annoying enough, [furrtek] decided that the best way to help improve his skills was by inflicting physical pain each time his on-screen character died.

While perusing the Internet looking for something to break through the doldrums of the day, he came upon a video in which someone decided to try on a dog shock collar just for kicks. This sparked [furrtek’s] imagination, and he started to think that it would be pretty cool to use the same sort of device to make dying in a video game that much more unpleasant.

After ordering a set of collars online, he tore them apart to see how they functioned, and to measure just how big of a jolt they were able to deliver. [furrtek] then modified two Genesis controllers with a pair of ATtiny 25s, which let him send the fire signal to the collars. Unfortunately, stock Genesis games don’t allow you to send signals to the controllers, so [furrtek] had to spend some time hacking ROM images to trigger events when players are injured or lose a life.

We think the project is pretty slick, and if you don’t mind fiddling with your old controllers, you too can have a merciless trainer strapped around your neck. For those slightly more averse to pain, you can watch [furrtek] and his friend [Dyak] suffer the consequences of poor gameplay for your amusement.

[Read more...]