{"id":1687,"date":"2015-11-05T17:45:27","date_gmt":"2015-11-05T17:45:27","guid":{"rendered":"http:\/\/blog.system11.org\/?p=1687"},"modified":"2017-05-21T23:01:06","modified_gmt":"2017-05-21T23:01:06","slug":"repair-atomic-robo-kid-encrypted-cpu-replacement","status":"publish","type":"post","link":"https:\/\/blog.system11.org\/?p=1687","title":{"rendered":"Repair &#8211; Atomic Robo-Kid encrypted CPU replacement"},"content":{"rendered":"<p>I bought an Atomic Robo-Kid PCB a long time ago, in fact my e-mail doesn&#8217;t even go back far enough to find out when it was.\u00a0 Just one problem, it was always unreliable and over the years as I&#8217;ve learned more about repairing games I&#8217;ve come back and taken a look at it, and again drawn a blank.\u00a0 At one point in desperation I even reflowed the RAM but no luck.\u00a0 Same problem every time, it would refuse to boot and after a while it would start to work perfectly, but freeze spray yielded no results regardless of where I tried.<a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1681\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix2.jpg\" alt=\"robokid_fix2\" width=\"800\" height=\"606\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix2.jpg 800w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix2-300x227.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix2-768x582.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a>Recently I picked up another and tried something I hadn&#8217;t really thought of before &#8211; swapped the CPUs over.\u00a0 Instantly the PCB was fixed.\u00a0 It turns out that the old CPU has some kind of thermal related issue, but freeze spray had never exposed this.\u00a0 Normally this would be a one line entry in the repair log and I&#8217;d move along, but there&#8217;s a slight problem&#8230;..\u00a0 It&#8217;s a custom encrypted CPU block.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1680\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix1.jpg\" alt=\"robokid_fix1\" width=\"800\" height=\"551\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix1.jpg 800w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix1-300x207.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix1-768x529.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>So let&#8217;s have a look inside.\u00a0 What we actually have is a tiny PCB with a Z80 mounted on the top side, and a small PROM chip on the bottom side.\u00a0 The block thankfully doesn&#8217;t contain a battery, but it does mean we can&#8217;t just drop a normal Z80 in &#8211; it scrambles some of the address lines depending on which area of memory is being used.\u00a0 Then the whole assembly is placed in a metal box and filled with epoxy compound, the reason freeze spray was having no effect.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1682\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix3.jpg\" alt=\"robokid_fix3\" width=\"800\" height=\"432\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix3.jpg 800w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix3-300x162.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix3-768x415.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Fortunately this game was bootlegged, and the bootleggers managed to pull one of these apart (or since it&#8217;s a direct clone maybe they had access to the details to begin with), and as a result Stefan Lindberg managed to dump the PROM image from one and also trace out the circuit board.\u00a0 Testing with the bootleg module in a real PCB proved that the data was indeed correct for both.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix4.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1689\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix4.gif\" alt=\"robokid_fix4\" width=\"1024\" height=\"579\" \/><\/a><\/p>\n<p>The CPU is a Sharp LH0080E Z80-E CPU which is rated for 8mhz, and the PROM is a 82S129.\u00a0 All that remained was to make a replacement CPU module following the above diagram.\u00a0 Well, it was a mess and very temporary, but I ended up with this extremely ugly creation.\u00a0 Fortunately you can&#8217;t see the worst parts of the project board hack&#8230;<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1684\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix6.jpg\" alt=\"robokid_fix6\" width=\"800\" height=\"495\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix6.jpg 800w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix6-300x186.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix6-768x475.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>I actually got it wrong the first time around, one of the pairs of PROM outputs was flipped.\u00a0 Ten minutes later with a corrected module, and the game was running perfectly.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1685\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix7.jpg\" alt=\"robokid_fix7\" width=\"800\" height=\"604\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix7.jpg 800w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix7-300x227.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix7-768x580.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>The trouble is, while the game was working fine, that solution is incredibly ugly.\u00a0 For a moment, I considered making a tidier hack with the PROM hot glued to the CPU, but I didn&#8217;t really ever want to have to do this again, so it was time to do the work properly.\u00a0 I designed a module PCB in PCB Express, but honestly I wasn&#8217;t feeling too happy about the costs.\u00a0 That was when Charles MacDonald told me about OSH Park (http:\/\/oshpark.com) who specialise in small run project PCBs.\u00a0 Only problem was they require Eagle CAD files, and I didn&#8217;t know Eagle at all.\u00a0 No time like the present I suppose&#8230;<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1695\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix8.png\" alt=\"robokid_fix8\" width=\"682\" height=\"621\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix8.png 682w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_fix8-300x273.png 300w\" sizes=\"(max-width: 682px) 100vw, 682px\" \/><\/a><\/p>\n<p>With that done I uploaded the file to OSH Park and waited until today, and here are the results for a very reasonable price of around $14 posted to the UK!<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix9.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1724\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix9.jpg\" alt=\"robokid_fix9\" width=\"800\" height=\"602\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix9.jpg 800w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix9-300x226.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix9-768x578.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Let&#8217;s stick all that together properly now and fit it to the PCB, there &#8211; much better!<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix10.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1725\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix10.jpg\" alt=\"robokid_fix10\" width=\"800\" height=\"534\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix10.jpg 800w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix10-300x200.jpg 300w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix10-768x513.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Of course, there&#8217;s no point documenting this and doing the work without making the fix easily available.\u00a0 I&#8217;ve got a couple of spare boards if anyone needs one, but you could just make your own.\u00a0 Here&#8217;s the Eagle file and the 82S129 PROM image you&#8217;ll need to construct one:<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/10\/robokid_cpu.zip\">robokid_cpu<\/a><\/p>\n<p>Fantastic game.\u00a0 Underrated.\u00a0 The Robo-Kid approves of this repair.<\/p>\n<p><a href=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1726\" src=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix11.png\" alt=\"robokid_fix11\" width=\"512\" height=\"384\" srcset=\"https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix11.png 512w, https:\/\/blog.system11.org\/wp-content\/uploads\/2015\/11\/robokid_fix11-300x225.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I bought an Atomic Robo-Kid PCB a long time ago, in fact my e-mail doesn&#8217;t even go back far enough to find out when it was.\u00a0 Just one problem, it was always unreliable and over the years as I&#8217;ve learned more about repairing games I&#8217;ve come back and taken a look at it, and again [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":50,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,13],"tags":[],"class_list":["post-1687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arcade","category-tech"],"_links":{"self":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts\/1687"}],"collection":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1687"}],"version-history":[{"count":12,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts\/1687\/revisions"}],"predecessor-version":[{"id":1728,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/posts\/1687\/revisions\/1728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=\/wp\/v2\/media\/50"}],"wp:attachment":[{"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.system11.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}