Bad Apple On A Karaoke Machine

CD+Graphics was a format that never really caught on. It let music discs pack some graphics, maybe liner notes, and mostly song lyrics into the otherwise empty space on a CD. It was never intended for displaying full-motion video, but that didn’t stop [Adam Gashlin] from getting a Bad Apple, with lyrics, running on any device that will play CD+G.

The main challenge is that CD+G gives you 300 screen commands per second, which is plenty for updating text on the 48×16 blocks as the lyrics scroll by. But if you want to send custom blocks and draw images, that’s 2.5 seconds per screen: a lousy framerate.

[Adam]’s first trick is to drop the resolution way down, which gets him into the 8 FPS range. Only update the blocks that change pushes this up to a respectable 17-20 FPS. But you can see the updates, and that’s distracting. It really needed buffering.

If you don’t know Bad Apple, it’s in black and white. And like many old graphics engines of the day, CD+G uses a dynamic palette of colors. [Adam] uses this to pack four frames into one, switching between them using palette swapping. (Absolutely check out his “rainbow” version of the video to see how the palette-swapping trick works.)

In the end, his demo has audio, triple-buffered video, and lyrics at 16.3 FPS. It’s slower than the fastest video-only version, but it looks so good, and [Adam]’s explanation of all of the graphics tricks he uses to get there is the real star of the show.

If you want to see Bad Apple running on yet more minimal hardware, how about a 16×2 LCD? Or a much more ridiculous implementation? How’s regexes in Vim for absurd? Got any Bad Apple hacks of your own? Let us know in the comments or the tips line. You can never have too many.

New Record Resurrects Long-Dead CD Graphics Format

Audio CDs were the ubiquitous audio format of the 1990s. Lesser known were the extensions to the format that packaged all kinds of interesting additional data into a musical release. Now, a new record from [Aizysse Baga] has brought back some of the most quirky and obscure CD features that time and industry long forgot.

[Aizysse Baga] worked with [Adelaide] on the Divacore record, which was to be released on a mini-CD. The original plan was to include additional CD+G data, featuring artwork to go with the music. CD+G, or CD+Graphics, was often used to display synchronized lyrics for karaoke releases, and stored data in formerly-unused subcodes next to the track start, track number, and running time data. This format allowed storing a slideshow of images with a resolution of 288 x 192 with a 16 color palette.

Note the quality difference between the 16-color CD+G and the 256-color CD+EG images.

The duo got handy with art and some smart dithering to get great 16-bit artwork packed in to the audio CD release, with the aid of a custom Python encoder. CD-TEXT metadata was thrown in for good measure. Then, the existence of the more advanced CD+EG became apparent. This was a 256-color extension to the CD+G format that was backwards compatible to boot. It was a format that was barely ever implemented on any commercial releases, and very little hardware could even display it. Naturally, Divacore had to have it. Much work was done to understand the Red Book documentation on the standard and figure out how to implement even higher quality artwork for the record.

After so much work to understand and implement the CD+G and CD+EG data, the question was whether it would survive the CD reproduction process for the final release. Thankfully, the final discs came out perfectly, and the full 256-color CD+EG artwork can be seen in all its glory if you happen to play Divacore on a Sega Saturn or a super-obscure Victor VS-G2 or VS-G3. Throw it in a less-sophisticated karaoke machine or something like an Amiga CD32, and you’ll still get to see the 16-color versions for your trouble.

We love to see ancient formats brought back to life, particularly those that never got their time in the sun. If you’re working hard to resurrect something the mainstream media world has forgotten, let us know on the tipsline.