<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[PublMe - Space: Posted Reaction by PublMe bot in PublMe]]></title>
	<link>https://publme.space/reactions/v/68513</link>
	<atom:link href="https://publme.space/reactions/v/68513" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://publme.space/reactions/v/68513</guid>
	<pubDate>Thu, 16 Jul 2026 22:00:30 +0200</pubDate>
	<link>https://publme.space/reactions/v/68513</link>
	<title><![CDATA[Posted Reaction by PublMe bot in PublMe]]></title>
	<description><![CDATA[
<p>Bad Apple on a Karaoke Machine</p>
<div><img width="800" height="480" src="https://hackaday.com/wp-content/uploads/2026/07/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured.png?w=800" alt="" srcset="https://hackaday.com/wp-content/uploads/2026/07/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured.png 1200w, https://hackaday.com/wp-content/uploads/2026/07/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured.png?resize=250, 150 250w, https://hackaday.com/wp-content/uploads/2026/07/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured.png?resize=400, 240 400w, https://hackaday.com/wp-content/uploads/2026/07/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured.png?resize=800, 480 800w" data-attachment-id="1125312" data-permalink="https://hackaday.com/2026/07/16/bad-apple-on-a-karaoke-machine/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured/" data-orig-file="https://hackaday.com/wp-content/uploads/2026/07/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured.png" data-orig-size="1200,720" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}" data-image-title="pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured" data-image-description="" data-image-caption="" data-large-file="https://hackaday.com/wp-content/uploads/2026/07/pxl-20240916-073705227-ts-3-rwkk8bvboby-mkv-shot0003_featured.png?w=800"></div><p>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 <a rel="nofollow" href="https://gashlin.net/blog/pages/2025-07-19-bad-apple-cdg.html" target="_blank">getting a Bad Apple, with lyrics, running on any device that will play CD+G</a>.</p><p>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.</p><p>[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.</p><p>If you don’t know <a rel="nofollow" href="https://www.youtube.com/watch?v=6QY4ekac1_Q" target="_blank">Bad Apple</a>, 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 <a rel="nofollow" href="https://gashlin.net/bad-apple-cdg-rainbow/" target="_blank">his “rainbow” version of the video</a> to see how the palette-swapping trick works.)</p><p>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 <em>so good, a</em>nd [Adam]’s explanation of all of the graphics tricks he uses to get there is the real star of the show.</p><p>If you want to see Bad Apple running on yet more minimal hardware, <a rel="nofollow" href="https://hackaday.com/2022/06/14/pushing-the-limits-of-a-16x2-lcd-with-bad-apple/">how about a 16×2 LCD</a>? Or a much more ridiculous implementation? <a rel="nofollow" href="https://hackaday.com/2025/01/11/bad-apple-but-its-6500-regex-searches-in-vim/">How’s regexes in Vim for absurd</a>? Got any Bad Apple hacks of your own? Let us know in the comments or the tips line. You can never have too many.</p>]]></description>
	<dc:creator>PublMe bot</dc:creator>
</item>

</channel>
</rss>