Storing user data on your FPGA

We’ve seen FPGAs used to recreate everything from classic arcade games to ancient computers, but with each of these builds a common problem arises. Once you’ve got the hardware emulated on an FPGA, you’ve also got to get the ROMs into the project as well. In a very interesting hack, [Mike] figured out that the serial Flash chip that stores the FPGA settings has a lot of space free, so why not store user data there?

[Mike] got the idea from seeing a recreation of the classic BombJack arcade game we featured last month. In that build, [Alex] needed to store 112Kb of game data stored in 16 ROM chips. Unfortunately, [Alex]’s FPGA only had space for 40Kb of data. After realizing his FPGA had a 512Kb SRAM chip, [Alex] decided to put all the sprites, sounds, and levels of BombJack in the SRAM.

Impressed with [Alex]’s build, [Mike] set to work generalizing the hack to work with other projects. [Mike] notes that only a few FPGA boards are capable of storing user data next to the  configuration bitstream; the hack is impossible on the Digilent Basys2 board, but it works wonderfully on a Papilio One 250K.

As a very cool build that makes FPGA-related builds even easier, we’ve got to tip our hat to [Mike] for writing up a great tutorial.

Dumping a C64 kernel

[Blark] picked up a couple of Commodore 64 machines on Craig’s List so that he could play around with the SID chips inside. But there’s some other fun stuff in there and his attention was drawn to the PROM which stores the kernel. He thought it would be a fun adventure to build a ROM dumper capable of storing binary images.

In the video after the break you can see that when powered up the dumper immediately starts streaming hex values to the terminal. The system is set up to feed a Python script which packs the data stream into an image file. The reading is done by a PIC 18F4520, streaming the data in at 9600 baud with a generous delay between each address read to get the cleanest read possible. He had a bit of help from the AVR Freaks to get to this point.

We’d guess he’s going to pull the image off the chip several times and compare results to filter out any possible data corruption. From there we’re not sure what he’ll do with the files but there’s always the possibility of making is own emulator using this kernel image.

Continue reading “Dumping a C64 kernel”

Uncovering easter eggs in old Mac ROMs

The picture you see above is taken from the ROM of a Macintosh SE made in the  late 1980s. This black and white image remained buried inside old Macs until [Adam] and [Trammell] at NYC Resistor reverse engineered these old Mac ROMs and found a few really cool Easter eggs.

[Adam] and [Trammell] have been dumping ROMs from old computers for a while now. Their modus operandi is finding old 27C-series EPROMs on old computers, prying the out of their comfortable home, slapping them in a breadboard, and wiring up an Arduino clone to dump the data to a computer.

Recently, the guys found an old Mac SE lying on the side of a road in Brooklyn and brought it over to NYC Resistor. They had known about images hidden in the SE ROM, but the guys wanted to know how and where these pictures were stored. After carefully inspecting the binary file generated from dumping the ROM, [Adam] was able to recover three images hidden in every Macintosh SE.

The folks at Apple – especially in the heady days of the Apple II and 68k Macs – hid quite a few Easter eggs in the ROMs of their computers. For instance, the Apple IIgs has audio data stored in the ROM, and the Macintosh Classic hid an entire operating system – System 6.0.3 – in the ROM of the machine.

via Make

Hacking a parallel port flash memory programmer

[Pulko Mandy] doesn’t use his flash ROM programmer very often, but he does use it. When he tried to get support for a new chip and the manufacturer suggested he just buy a newer version he decided to hack the programmer and it’s software instead.

This device connects to the parallel port and was intended for use with MS-DOS systems (no wonder there’s no longer support from the company). The board uses logic chips to add read and write function. So the first step was to analyze how they connect together and come up with a set of commands. While at it he also made some changes to the board to bring the voltage more in spec and ensure the logic levels on the parallel port met the correct voltages.

His plan was to use the board with a Linux system so the parallel port interface can stay. He used what he learned from the hardware inspection to write his own interface in C++. It works with a chip he was able to use under the MS-DOS software, but he hasn’t gotten it to work with the chip that sparked this adventure. If you’re familiar with how the AT29C040A works please consider lending a hand.

Drop-in board for NES ROM chip makes cartridge reprogrammable

Here’s the guts from [Dext0rb’s] Super Nintendo cartridge. It’s easy to pick out the dark-colored board which lets him reflash SNES ROMs via USB. We’ve seen this done a number of times, but this is a much cleaner option than hacks that just add a dead-bug-style memory chip.

The board he designed has a double-row of pin headers sized to fit the footprint vacated by the original ROM chip. The board has a mini-USB connector which can be accessed through a hole he cut in the side of the cartridge enclosure. This is in the right place so that you cannot plug it in when it’s being used in the SNES (which would cause damage). The ATmega32u4 chip handles USB connectivity and programs the 32 megabit flash chip which stores the ROM. He’s posted a few articles on the blog portion of his site which you’ll find interesting. We suggest starting with this hardware teaser.

Booting a 1989 Mac with Mario

As a new recruit to the 68k Macintosh Liberation Army, [dougg3] is really showing off his hardware hacking ability. He came up with a replacement ROM SIMM for his Mac IIci and made it play the Mario theme on boot instead of the normal chimes.

Swapping out the ROM in these old macs isn’t an uncommon procedure. On some 68k machines, there’s a SIMM slot to either replace or expand the soldered ROM. In fact, it’s fairly common to take the ROM SIMM out of a IIsi and put it in the king of kings computer to make an SE/30 32-bit clean. We’ve never seen a re-writable ROM SIMM for these old macs, so we’re pretty sure [dougg3] just spared a Mac IIsi from the dumpster.

Now that the entire 68k Liberation Army is clamoring for one of [dougg3]’s re-writable ROMs (we’ve got cash), the question of what to do with it comes up. Of course, SE/30s can now be 32-bit clean without installing MODE32 and new startup chimes can be added. We’d really like to see some hard-core ROM hacking going on, like installing a 68060 in a Quadra 950.

Continue reading “Booting a 1989 Mac with Mario”

NES multi-cartridge

Here’s a mutlicartridge hack for the original NES that [Callan Brown] put together. He spent some time snooping around the signals on the circuit board seen above until he found the trace that maps the reset signal from the game console. This will be used to cycle through the various games stored on the cart’s memory chip. The ROM images that will be stored on this cartridge are concatenated, then burned to the EPROM. Since the donor cartridge (and the ROMs which were chosen) use memory managment, the hardware can be tricked into reading the ROM from a specific point in the EPROM.

The switching itself is handled by a 74HC161 binary counter chip. The reset signal from the on-board security chip acts as a clock trigger for the counter. Some clever wiring allows the output of the counter to select the starting address for the EPROM. Each time you press the reset button it increments the counter, thereby selecting a different ROM to load. See [Callan] demonstrate the finished hack in the video after the break.

Continue reading “NES multi-cartridge”