<?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/54833</link>
	<atom:link href="https://publme.space/reactions/v/54833" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://publme.space/reactions/v/54833</guid>
	<pubDate>Wed, 11 Jun 2025 22:00:50 +0200</pubDate>
	<link>https://publme.space/reactions/v/54833</link>
	<title><![CDATA[Posted Reaction by PublMe bot in PublMe]]></title>
	<description><![CDATA[
<p>Randomly Generating Atari Games</p>
<div><img width="800" height="354" src="https://hackaday.com/wp-content/uploads/2025/06/a2600.png?w=800" alt="" srcset="https://hackaday.com/wp-content/uploads/2025/06/a2600.png 800w, https://hackaday.com/wp-content/uploads/2025/06/a2600.png?resize=250, 111 250w, https://hackaday.com/wp-content/uploads/2025/06/a2600.png?resize=400, 177 400w" data-attachment-id="786790" data-permalink="https://hackaday.com/2025/06/11/randomly-generating-atari-games/a2600-4/" data-orig-file="https://hackaday.com/wp-content/uploads/2025/06/a2600.png" data-orig-size="800,354" 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;}" data-image-title="a2600" data-image-description="" data-image-caption="" data-medium-file="https://hackaday.com/wp-content/uploads/2025/06/a2600.png?w=400" data-large-file="https://hackaday.com/wp-content/uploads/2025/06/a2600.png?w=800"></div><p>They say that if you let a million monkeys type on a million typewriters, they will eventually write the works of Shakespeare. While not quite the same thing [bbenchoff] (why does that sound familiar?), spent some computing cycles to generate random data and, via heuristics, find <a rel="nofollow" href="https://bbenchoff.github.io/pages/FiniteAtari.html" target="_blank">valid Atari 2600 “games” in the data</a>.</p><p>As you might expect, the games aren’t going to be things you want to play all day long. In fact, they are more like demos. However, there are a number of interesting programs, considering they were just randomly generated.</p><p></p><p>Part of the reason this works is that the Atari has a fairly simple 6502-based CPU, so it is straightforward to evaluate the code, and a complete game fits in 4 K. Still, that means there are, according to [Brian], 10<sup>10159</sup> possible ROMs. Compare that to about 10<sup>80</sup> protons in the visible universe, and you start to see the scale of the problem.</p><p>To cut down the problem, you need some heuristics you can infer from actual games. For one thing, at least 75% of the first 1K of a ROM should be valid opcodes. It is also easy to identify code that writes to the TV and other I/O devices. Obviously, a program with no I/O isn’t going to be an interesting one.</p><p>Some of the heuristics deal with reducing the search space. For example, a valid ROM will have a reset vector in the last two bytes, so it is possible to generate random data and then apply the small number of legal reset vectors.</p><p>Why? Do you really need a reason? If you don’t have a 2600 handy, do like [Brian] and use <a rel="nofollow" href="https://hackaday.com/2024/01/22/writing-and-running-atari-2600-games-in-your-browser/">an emulator</a>. We wonder if the setup would ever recreate <a rel="nofollow" href="https://hackaday.com/2024/06/06/tarzan-lost-since-1983-swings-back-onto-the-atari-2600/">Tarzan</a>?</p>]]></description>
	<dc:creator>PublMe bot</dc:creator>
</item>

</channel>
</rss>