A few years ago, [Mike]’s friend gave him an old Sega Genesis with the very cool and somewhat rare SegaCD drive attached. The SegaCD gave him an idea – while it’s not easy to burn a cartridge and play homebrew games on a real Genesis console, everyone has a CD burner somewhere. [Mike] began writing his demo and then realized adding Java would be easy on the 68000. The result is Java on three billion devices and a Sega Genesis.
This project is built around Java Grinder a Java byte code compiler that will compile classes, factories, and all the horrible Java design.design.pattern.pattern.patterns() into assembly language. Already, there are a lot of platforms supported by Java Grinder, including the Commodore 64, the TI99, and thanks to some work from [Joe Davisson], the Apple IIgs
With a byte code compiler, an assembler, and an API for the Sega-specific hardware, [Mike] set about building his demo. Since this was a Sega, it needed the ‘SEGA’ sound at the start. [Mike] ended up recording his voice saying ‘JAVA!’ This plays through the Z80 on the Genesis.
The complete demo – viewable in its emulated format below – has everything you would expect from a proper demo. Starfields, dancing sprites, and even a Mandelbrot pattern make it into the three-minute long demo.
Continue reading “3 Billion Devices And A Sega Genesis Run Java”
For one reason or another, [Dragao] has an old Sonic The Hedgehog cartridge that throws an illegal instruction somewhere in the Marble Zone stage. While the cause of this illegal instruction is probably cosmic rays, how to repair this cartridge isn’t quite as clear. It can be done, though, using BIOS chips from an old computer.
[Dragao] got the idea of repairing this cartridge from Game Boy flash carts. These cartridges use chips that are a simple parallel interface to the address and data lines of the Game Boy’s CPU, and Sega Genesis / Mega Drive flash cart would work the same way. The problem was finding old DIP flash chips that would work. He eventually found some 8-bit wide chips on the motherboard of an old computer, and by stacking the chips, he had a 16-bit wide Flash chip.
To program the chips, [Dragao] wired everything up to an Arduino Mega, put a ROM on the chip, and wired it up to the old Sega cartridge. Surprisingly or unsurprisingly, everything worked, and now [Dragao] has a fully functioning copy of Sonic The Hedgehog.
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
Here’s a blog post from the lead dev of the Khan CS project.
Golden Axe is great, and the Sonic 3/Sonic and Knuckles combo is one of the highest works of art from the 16-bit era, but for those of us without a working Genesis or Megadrive, we’ve had to make due with the ROMs others provide. [Lee] figured out an easy way to read the data off these old Sega cartridges using easily scavenged parts and an Arduino Mega, paving the way for an Arduino-based ROM dumper.
The connector on the bottom of a Sega Genesis cartridge has a 2×32 pinout, normally requiring 64 connections to actually read the card. These connectors aren’t readily available, but [Lee] did manage to find a few 2×31 pin connectors lying around in the form of old ISA sockets. The outer pins of a Genesis cart are used for grounds and a ‘cartridge insert’ slot, and after filing away the end of an old ISA connector, [Lee] found he could actually read the data on these old game cartridges.
There are 49 data and address pins on these old Sega carts, so an Arduino Mega needed to be brought into the mix to actually read some of the data on the ROM chip. As of now, [Lee] can read data from the cart but has only gotten so far as to read the licensing data stored at 0x80. Still, very cool and the first step towards an Arduinofied Sega cart dumper.
We’ve been watching the development of the snega2usb since it’s debut on Hackaday. Now it’s grown up and is ready to be manufactured. In the low quality video above [Matthias] shows some of the latest high quality additions to the board. It now has a case, shiny new firmware, production made PCB, and game pad ports. The snega2usb is shipping this December for those who preorder now.
When we first posted [Matthias_H]’s USB reader for SNES game carts, it was met with enthusiasm. The snega2usb allows you to play SNES and Sega games on your pc right off the cartridge. The latest revision is even more amazing than the first. [Matthias] has added the ability to read Sega Genesis/Mega Drive cartridges as well as the ability to save games directly to the cartridge. The board has also been updated from the rats nest it used to be to a smart looking dual sided PCB. So far [Matthias] hasn’t had any trouble reading cartridges, even ones with the SuperFX chips. [Matthias] also launched a site for the project where the lastest information on its development can be found. [Matthias] is getting close to a production version which will feature better firmware, console quality connectors and a shiny case.