Chiptunes are cool, but when you get into it, you realize you’re mostly dealing with Commodore SID tunes, Atari POKEY tracks for the cool kids, bleeps and bloops from a Game Boy, and maybe some NES tracks thrown in for good measure. There’s another option out there – the sound chip in the Sega Genesis. This thing could do drums, man, and [Aidan Lawrence] built the perfect player for the tuneful silicon tucked inside the classic 16-bit console.
[Aidan] had previously built a tiny little music player based on the YM3812 chip, the Yamaha chip found in SoundBlaster and Adlib sound cards. The chip inside the Sega Genesis, the Yamaha YM2612, is a bit different. The killer feature of this chip, PCM waveforms, aren’t stored as simple, small bits of code. These are massive blobs of binary data sent to the chip’s DAC. The SEGGGGAAAA intro of Sonic the Hedgehog, for example, used an eighth of the the cartridge space. You’re not going to build a Sega chiptune player with a tiny little microcontroller and 20kB of RAM.
The solution came in the form of an external SPI RAM device. The 23LC1024 is a full 1 Megabit in size, and since it’s SPI, it’s more than fast enough to keep up with the sample speed. The rest of the circuit including the mixer, preamp and power amp are based on the Genesis’ actual schematics, with an SD card and OLED thrown in for good measure. How does it sound? There’s a great video below the break and yes, the soundtrack from Sonic 3 sounds just as good as it did twenty years ago.
Continue reading “We Got Your Sega Chiptunes Right Here”
The Sega Genesis, or Mega Drive if you’re not from North America, isn’t exactly this summer’s hottest new console, but it still has a huge following 29 years after launch. Fans range from retro Sonic enthusiasts to hardcore chiptune composers, and this year, Catskull Electronics is releasing a Genesis compilation album on a cartridge with a rather special feature.
The cartridge sports an 8×8 LED matrix, which acts as a visualiser for the audio coming out of the console. They’re controlled with a combination of data and address lines with some buffers and 74-series glue logic to make it all work together. Special attention was paid to make sure the LED matrix doesn’t just respond to all activity on the bus, though it would perhaps be cool to see some blinkenlights on a 90s console one day.
Each row of LEDs is attached to an address line, and each column to a data line. It’s a fairly basic multiplexing setup which sees each LED only actually lit for a fraction of a second, but sweeping the display at speed creates a lasting display. The image data is stored as an 8×8 sprite in the system RAM, and updated with the sound level of each channel from the Genesis’s audio subsystem.
The team are looking to release the ROM code in future to inspire copycat designs, which has the potential to spawn even more Genesis cart releases in future. We look forward to seeing what else the community comes up with. And if you’re a die-hard Genesis fan, there are other ways to listen to those classic tunes too.
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”