ROM dump

Raiders Of The Lost ROM

Once upon a time, arcades were all the rage. You could head down to your local arcade with a pocket full of quarters and try many different games. These days, video arcades are less popular. As a result, many old arcade games are becoming increasingly difficult to find. They are almost like the artifacts of an ancient age. They are slowly left to rot and are often lost or forgotten with time. Enter, MAME.

MAME (Multiple Arcade Machine Emulator) is a software project, the goal of which is to protect gaming history by preventing these arcade machines from being lost or forgotten. The MAME emulator currently supports over 7000 titles, but there are still more out there that require preservation. The hackers who work on preserving these games are like the digital Indiana Jones of the world. They learn about lost games and seek them out for preservation. In some cases, they must circumvent security measures in order to accurately preserve content. Nothing as scary as giant rolling boulders or poison darts, but security nonetheless.

Many of the arcade cabinets produced by a publisher called NMK used a particular sound processor labeled, “NMK004”. This chip contains both a protected internal code ROM and an unprotected external ROM that controls the sound hardware. The actual music data is stored on a separate unprotected EEPROM and is different for each game. The system reads the music data from the EEPROM and then processes it using the secret data inside the NMK004.

The security in place around the internal ROM has prevented hackers from dumping its contents for all this time. The result is that NMK games using this chip have poorly emulated sound when played using MAME, since no one knows exactly how the original chip processed audio. [trap15] found it ridiculous that after 20 years, no one had attempted to circumvent the security and dump the ROM. He took matters into his own hands.

The full story is a bit long and contains several twists and turns, but its well worth the read. The condensed version is that after a lot of trial and error and after writing many custom tools, [trap15] was able to finally dump the ROM. He was able to accomplish this using a very clever trick, speculated by others but never before attempted on this hardware. [trap15] exploited a vulnerability found in the unprotected external ROM in order to trick the system into playing back the protected internal ROM as though it were the sound data stored on the EEPROM. The system would read through the internal ROM as though it were a song and play it out through the speakers. [trap15] recorded the resulting audio back into his PC as a WAV file. He then had to write a custom tool to decode the WAV file back into usable data.

[trap15] has released all of his tools with documentation so other hackers can use them for their own adventures into hardware hacking. The project was a long time in the making and it’s a great example of reverse engineering and perseverance.

[Thanks Ryan]

Welcome To The Old School: Restoring Antique Radios

Before the second world war Radio was a revolution in mass-communication much like the internet today. Fortunes were made and lost, empires built, epic patent battles ensued, all of which resulted in the world being more connected than ever before, which makes for a really great story (and a great Ken Burns documentary).

Last month we showed you how to modify a vintage radio to play your own audio source through it while re-using the existing electronics and maintaining its functionality. In this post we will show you how to restore any vacuum tube radio. You will learn basic repair/restoration procedures from a different era when it was actually worth repairing consumer electronics. Plug into history and get your hands on the most influential technology of the first-half of the 20th century!

Continue reading “Welcome To The Old School: Restoring Antique Radios”

Upgrading The Battery In A Wrist PDA

No, your eyes do not deceive you. That’s a wrist-mounted PDA. Specifically, a Fossil Wrist PDA, also known as an Abacus, that was sold from 2003 to about 2005. Yep, it’s running PalmOS. [mclien] has had this watch/PDA for a while now, and found the original 180mAh battery wasn’t cutting it anymore. He made a little modification to the watch to get a 650mAh battery in this PDA by molding a new back for it.

The original PDA used a round Lithium cell, but being ten years old, the battery technology in this smart watch is showing its years. [mclien] found two batteries (380mAh and 270mAh) that fit almost perfectly inside the battery.

The new batteries were about 3mm too thick for the existing case back, so [mclien] began by taking the old case, adding a few bits of aluminum and resin, and making a positive for a mold. Two or three layers of glass twill cloth were used to form the mold, resined up, and vacuum bagged.

After many, many attempts, [mclien] just about has the case back for this old smartwatch complete. The project build logs are actually a great read, showing exactly what doesn’t work, and are a great example of using hackaday.io as a build log, instead of just project presentation.

Hackaday Retro Edition: 386 Compaqs

[Antoine] recently learned of a little challenge we have in the hinterlands of the Hackaday webosphere – what’s the oldest, or lowest spec hardware you have that can load this our retro edition? He has a pile of old PCs at his work, and with a lot of idle time at work because of summer, he decided to dig into that pile and get a really old computer up on the Internet.

While the pile of PCs didn’t have anything as old as he was expecting, [Antoine] did find an old Compaq from 1992. It has a 386DX running at 25MHz, 4MB of RAM, a 300 MB hard drive, VGA, and an Ethernet NIC. Gathering the requisite CRT monitor, PS/2 keyboard, and an AUI to a more modern Ethernet connector.

When getting these ancient computer on the Internet, the secret sauce is in the software configuration. [Antoine]’s box is running DOS 6.2, but was previously configured to connect to a Microsoft filesystem server on boot. This server was probably somewhere at the bottom of the same pile the Compaq was salvaged from, so rolling his own modern networking stack was the way to go. A driver for the NIC was downloaded on another computer and transferred via floppy, as was mTCP, the key to getting a lot of old PCs on the Internet. The browser is Arachne, and with the right configurations, everything worked perfectly.

[Antoine]’s efforts resulted in a computer that can easily handle the stripped down Hackaday retro edition, and can handle light browsing on Wikipedia. The effective download rate is something like a 33k modem; even with a fast (10M!) Ethernet connection, processing all the packets is taxing for this old machine.

Hackaday Retro Edition: Browser Wars On Solaris

sunn After seeing an earlier Hackaday post on old, old Unix systems loading up our retro edition, [Eugenio] decided he would play out the late 90s browser wars on a few machines of his own. Yes, it’s Internet Explorer vs. Netscape in a fight to the death. No <blink> or <marquee> tags were involved, but a Sun Ultra 5 was. We’re looking at the peak of the workstation world circa 1999 here, and only one browser would emerge victorious (it’s neither IE nor Netscape, btw).

The Solaris 9 system [Eugenio] has supports both Internet Explorer 5 and shipped with Netscape 4. Compared to the functionality of modern browsers, both IE5 and Netscape 4 are ancient and terrible. Remember kids, even the scroll wheel on a mouse is a relatively new invention.

Our retro edition doesn’t have any CSS, Javascript, or any of the new Web weirdness, so everything loaded as it should. One interesting problem [Eugenio] encountered was an inverse color desktop when the IE5 window was in focus. Bringing another window into focus returned the desktop to the right color. I guess Netscape wins the Solaris browser war.

[Eugenio] also dug out an old VT320 terminal and connected it to a Vaio x505 (the same approximate vintage as the Sun Ultra 5). This worked beautifully in both 80 and 132 column mode.

We’re always looking for new submissions of old computers loading up our retro site. We haven’t had many minicomputers loading the site, so dig out those Vaxxen and send something in.

Continue reading “Hackaday Retro Edition: Browser Wars On Solaris”

When Worlds Collide: 68008 Bootstrapped By An Arduino Uno

68008-ardu

[Peter Bjornx] brings classic microprocessors and modern microcontrollers together with his Arduino bootstrapped 68008 computer. The Motorola 68008 is the 8-bit external bus version of the well-known 68000 (or 68k) microprocessor. A friend gave [Peter] one of these chips, so he built a simple computer around it.

This isn’t one of those clean retrocomputers with every connection carefully planned out and wire wrapped. [Peter’s] created a true hack – a working 68k system on a breadboard created with whatever he had on hand at the time. The real gem of this system is the ROM. [Peter] replaced an EPROM chip with an Arduino.

In the not-so-good-old-days, microprocessors (and many microcontrollers) ran from an external ROM chip. This often was a UV-erasable EPROM. Carefully compiled code was burned into the EPROM with a device programmer. If the code wasn’t perfect, the EPROM had to be pulled and placed under a UV lamp for 20 minutes or so to erase it before it was time to try again. EPROM emulators were available, but they were way too expensive for the hobbyist.

Thankfully those days are far behind us now with the advent of EEPROM and then Flash. [Peter] didn’t want to revisit the past either, so he wrote a simple Arduino sketch which allowed it to act as an EPROM emulator, including address logging via the serial port.

The design still caused [Peter] some headaches, though. His major problem was a classic 68k issue, /DTACK timing. /DTACK or Data Transfer Acknowledge is one of several bus control signals used by the 68k. When the 68k performs a read from the data bus, it waits for /DTACK before it transfers data. The Arduino was too slow to release /DTACK in this case, which caused the 68k to think every read was immediately completed. There is a much clearer explanation of the 68k bus cycles on this Big Mess O Wires page. [Peter’s] solution was simple – a D flip-flop connected to the address strobe took care of the timing issues.

It took quite a bit of tinkering, but the system eventually worked. Peter was able to run the 68008 from its reset vector into a simple loop using the Arduino. It’s only fitting that the 68k program loaded by the Arduino was an LED blinker, everyone’s favorite hardware Hello World.

Thanks [Robert!]

An FPGA Based 6502 Computer

A diagram of the CHOCHI Board

It’s no secret that people love the 6502 processor. This historic processor powered some of our favorite devices, including the Apple II, the Commodore 64, and the NES. If you want to play with the 6502, but don’t want to bother with obtaining legacy chips, the CHOCHI board is for you.

While many people have built modern homebrew 6502 computers, the CHOCHI will be much easier for those looking to play with the architecture. It’s based on a Xilinx XC3S50 FPGA which comes preconfigured as a 6502 processor.

After powering on the board, you can load a variety of provided binaries onto it. This collection includes a BASIC interpreter and a Forth interpreter. Of course, you’re free to write your own applications in 6502 assembly, or compile C code for the device using the cc65 compiler.

If you get bored with the 6502 core, you can always grab Xilinx’s ISE WebPACK for free and use the board as a generic FPGA development tool. It comes with 128K of SRAM and 31 I/O pins. Not bad for a $30 board.