tag:blogger.com,1999:blog-19814258465460534932024-03-14T09:32:34.060+01:00Arcade HackerPreservation and Reverse Engineering of Arcade Video GamesEduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-1981425846546053493.post-3624423904089343002020-07-07T08:00:00.003+02:002020-07-09T13:23:16.332+02:00UM3481A Series - Multi-Instrument Melody GeneratorThe UM348x family of sound generating devices is currently unemulated mainly due to a lack of understanding of the chip internal rom structure and data.<br />
<br />
The sound of these devices should be familiar to many of you as they have been broadly used in many 80s and 90s low end gadgets, doorbells, etc. Bootleg arcade games have used these chips as a way to integrate music at a minimum cost.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/h-JIn-lJLnk/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/h-JIn-lJLnk?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
Each chip contains a fixed number of melodies hardcoded in the silicon during manufacturing.<br />
<br />
Sean Riddle and ClawGrip have made extensive efforts to document these devices, full decap images, sound recordings, and main mask rom dump available for UM3481A and UM3482A here: <a href="http://www.seanriddle.com/um348x/" target="_blank">http://www.seanriddle.com/um348x/</a><br />
<br />
<br />
The following notes taken during my analysis of the mask ROM array structure:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Jw94TiuehUCxzefJiPVMekZ1N35YYRrBRmn9AV6oO2SMPsiqYFQRsl9QK418IOGEZkB8eSPpuOXpfHT2Gchs4DXf2-BQ2a0evVQYTweNqc0qsNxK4yYuZ0lX0JPN5l2Ey7dujqaeLxpa/s1600/UM348x-9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1125" data-original-width="1177" height="381" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Jw94TiuehUCxzefJiPVMekZ1N35YYRrBRmn9AV6oO2SMPsiqYFQRsl9QK418IOGEZkB8eSPpuOXpfHT2Gchs4DXf2-BQ2a0evVQYTweNqc0qsNxK4yYuZ0lX0JPN5l2Ey7dujqaeLxpa/s400/UM348x-9.png" width="400" /></a></div>
</td></tr>
<tr><td class="tr-caption" style="text-align: center;">Overall view of the UM3481A chips internals with metal removed. Mask ROMs highlighted. </td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkPh20QDjfoESsJwuSSpbPPdNrSOiKJZbVBUF1pzB0F88uIBBx8KySQQFhEXf98qRnF3IocA2XqiAmmlP27oaeBnN2frIQYzFAVznHHVlkwuRoSDIk65YCdWoHCQlxN7mh2f87dX8qfj6f/s1600/UM348x-2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1125" data-original-width="1150" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkPh20QDjfoESsJwuSSpbPPdNrSOiKJZbVBUF1pzB0F88uIBBx8KySQQFhEXf98qRnF3IocA2XqiAmmlP27oaeBnN2frIQYzFAVznHHVlkwuRoSDIk65YCdWoHCQlxN7mh2f87dX8qfj6f/s400/UM348x-2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Zoomed structure view of the main internal mask rom, metal removed.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
To obtain usable data, individual bits from each bank are grouped together to form 7-bit words. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmekGuT59oFPii28OmRPhZ2wk5i167TVICkpzDV4G80L_VFEY5ZmNdBggMLVeBsEah-GM7M3lX9-hHnWwJRx8wLdXzYteTUW-RghHI9AEKwg2svX8sP2Lj2SN4LdZ79D7lTxeZ6RD6_aj0/s1600/UM348x-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="814" data-original-width="1390" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmekGuT59oFPii28OmRPhZ2wk5i167TVICkpzDV4G80L_VFEY5ZmNdBggMLVeBsEah-GM7M3lX9-hHnWwJRx8wLdXzYteTUW-RghHI9AEKwg2svX8sP2Lj2SN4LdZ79D7lTxeZ6RD6_aj0/s400/UM348x-3.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The resulting data consist of 8 banks of 7 bit words containing the melody information. The pattern 100011 marks the beginning of the data space, this pattern is also used at the very end in any unused remaining space. Perhaps it resets the oscillators to not generate sound.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjic5xIbnAl_Q27X9K_tCr4uC8ZezSXzMZ4AriLsDF-YQVa99yP9txTXPGteswh1srcueGsNzmhs6KJijvcwpglUWv6POKkpMQh5Xqaaj9uVmoBOWuiwN3b2t_xNusYaj2QgfKjqbPzGAjT/s1600/UM348x-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1125" data-original-width="641" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjic5xIbnAl_Q27X9K_tCr4uC8ZezSXzMZ4AriLsDF-YQVa99yP9txTXPGteswh1srcueGsNzmhs6KJijvcwpglUWv6POKkpMQh5Xqaaj9uVmoBOWuiwN3b2t_xNusYaj2QgfKjqbPzGAjT/s640/UM348x-4.png" width="364" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The word pattern 000011 signals the end of every melody. The UM3481A chip contains 8 songs, therefore we find 8x 000011 words in the data. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOgNPYo9ICHVRDWfCvgiWCnaku33VeRBlEtmS80hvhOvyDLjQAmAWd3ZC6YcMfnCHhBmYLDoJaZgvhvi8I9pdlXqkGfEc_P4RDoc6Se6TlJ4kF0z6PmiskzCZpYMENo90Ejyh839A9wx14/s1600/UM348x-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1125" data-original-width="641" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOgNPYo9ICHVRDWfCvgiWCnaku33VeRBlEtmS80hvhOvyDLjQAmAWd3ZC6YcMfnCHhBmYLDoJaZgvhvi8I9pdlXqkGfEc_P4RDoc6Se6TlJ4kF0z6PmiskzCZpYMENo90Ejyh839A9wx14/s640/UM348x-5.png" width="363" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The eight melodies occupy the corresponding space according to their length, melody #6 is the shorter of them all by far. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVx3RpkPLBuwP7YqRksk-jn140OPwNrWcMhW69DHcmo4SFUcRz5uQd8Ea0lih0hoS1TdhkIK-ZhFzrvbsIT99F4pIbRWNMxPJnroxsFaQ5jTFIaaAcLOMPdk8oPgerOpyAioplT3ZZWnLC/s1600/UM348x-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1081" data-original-width="589" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVx3RpkPLBuwP7YqRksk-jn140OPwNrWcMhW69DHcmo4SFUcRz5uQd8Ea0lih0hoS1TdhkIK-ZhFzrvbsIT99F4pIbRWNMxPJnroxsFaQ5jTFIaaAcLOMPdk8oPgerOpyAioplT3ZZWnLC/s640/UM348x-6.png" width="348" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
These lengths are also observable in the WAV, the recording matches all observed melodies in the mask rom.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicNg4koGvsnw9OQvpTS7JM98b4peyrSLT0L7wWHEl4EzenPmu7OGUSokTg1sUfofhKAUKgE2hg36qoREEX5NO3WsNrX1TvDO-o0zF1pcPW04Ekb4DyeYVoB_OstNvzZKBl5U9J63TmIOvv/s1600/UM348x-7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="390" data-original-width="1600" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicNg4koGvsnw9OQvpTS7JM98b4peyrSLT0L7wWHEl4EzenPmu7OGUSokTg1sUfofhKAUKgE2hg36qoREEX5NO3WsNrX1TvDO-o0zF1pcPW04Ekb4DyeYVoB_OstNvzZKBl5U9J63TmIOvv/s640/UM348x-7.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Most notes seem to take just one word, here's an example from the first UM3481A melody "Jingle Bells", in the song three notes repeat almost at the very beginning, this is clearly visible in the data itself. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijAA4jVsFlDw7XZ9JbVVJ7ggIxTUcR5EEMSBybBliAfbjK6nFx2dHOoWhc642g7kXd_l_T9j0BTNJ0J8CLnTkmdsWsKBiYniV60tZalWofDtgjA8NZw99RRKGlgq3SHDn3a_MBMR9vZSvQ/s1600/UM348x-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="316" data-original-width="641" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijAA4jVsFlDw7XZ9JbVVJ7ggIxTUcR5EEMSBybBliAfbjK6nFx2dHOoWhc642g7kXd_l_T9j0BTNJ0J8CLnTkmdsWsKBiYniV60tZalWofDtgjA8NZw99RRKGlgq3SHDn3a_MBMR9vZSvQ/s400/UM348x-8.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Longer duration notes seem to take two words, in the following example also from the beginning of "Jingle Bells", two longer duration notes are played after the initial repeating single notes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge2zB1ogurOX0HAy7V54RrVC6sg2AolBTilSS_AxkfKeBCoDNk2OKCB4YyTrGsZ73VeomMSvad-79J0kZLprQ2oX5bSfqCXKkeS-76uW-Mxr9zu6We7f3NDFcNcK-cPlwTGL6VKBU4OCuF/s1600/UM348x-0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="316" data-original-width="641" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge2zB1ogurOX0HAy7V54RrVC6sg2AolBTilSS_AxkfKeBCoDNk2OKCB4YyTrGsZ73VeomMSvad-79J0kZLprQ2oX5bSfqCXKkeS-76uW-Mxr9zu6We7f3NDFcNcK-cPlwTGL6VKBU4OCuF/s400/UM348x-0.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
That's all from my observation notes, I hope the better understanding of the data structure helps the emulation of this family of sound generating devices. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com1tag:blogger.com,1999:blog-1981425846546053493.post-8156062122920840512020-04-13T20:57:00.000+02:002020-04-14T11:50:26.988+02:00Deconstructing Sega's System 16 Security - Part 2<b><br /></b>
<b>Sega's FD1089 security module reverse engineering</b><br />
<br />
The FD1089 module variants from Hitachi / SEGA were fabricated in a plastic case, on the back of the module a epoxy layer is visible together with two rows of pins arranged as DIP64. This arrangement mimics a standard 68000 CPU as intended by SEGA.<br />
<br />
The sample shown below features the SEGA code 317-0013, this indicates the module was used as the CPU in Enduro Racer.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoYPuALd399jtSBu7dk1GW9Zk1zVqlYocWx6b2sxWCa4XXkR4mndCVmGLVffp-1adSkBNe-lqKcOneyFo8MnK4C2EQaeVxoBLjOKJweqGVLaq8oif5UOKEcT8tateuhku-fkFMqwBkXoP9/s1600/fd1089.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1017" data-original-width="1312" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoYPuALd399jtSBu7dk1GW9Zk1zVqlYocWx6b2sxWCa4XXkR4mndCVmGLVffp-1adSkBNe-lqKcOneyFo8MnK4C2EQaeVxoBLjOKJweqGVLaq8oif5UOKEcT8tateuhku-fkFMqwBkXoP9/s320/fd1089.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<br />
<br />
As is, the module measures 8.72cm by 2.85cm, not a small piece for a cpu.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4PqXbavfNtZMEmvueVxlBVvpHOPUUEYvbZB60zVs4wxM51f8NyhNPHiLg5X04V6ELRURO0M8WsUDgwkHp603B4D9kREyRZ6Nne4IJHU89nxLVODoOYkD9MHYgpGwfTnvmjzrW4LO9Jega/s1600/fd1089-dimensions.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1600" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4PqXbavfNtZMEmvueVxlBVvpHOPUUEYvbZB60zVs4wxM51f8NyhNPHiLg5X04V6ELRURO0M8WsUDgwkHp603B4D9kREyRZ6Nne4IJHU89nxLVODoOYkD9MHYgpGwfTnvmjzrW4LO9Jega/s400/fd1089-dimensions.jpg" width="400" /></a></div>
<br />
<br />
The plastic case features a top cover providing access to the battery container, as shown below as many as three batteries could be fitted at once, perhaps allowing for longer data retention configurations. All modules I've seen myself just make use of one battery slot only.<br />
<br />
Hitachi seemed to keep most things home by employing Hitachi Maxell CR-2032 3 volt batteries, this one was dated 1986 week 06, that is long enough!<br />
<br />
For some reason a white looking dust was found inside all over the battery container, perhaps a battery byproduct over the years?<br />
<br />
Lastly, there's a big letter B stamped inside, this corresponds with the specific module type under review: FD1089B. Modules A stamped inside correspond to FD1089A variants.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkcC2ZKisWApCfgQ4l1dwdkgibui_HoLJFFe93l5ugp5C2S23vVNyjs0JH7UwdPj2RW8HU1UDIB2iX3SXo_GX4O31ks8irZ-vGAaI_x9_-mNCdafcgg0zIB6G2JTFkytoeG1ZClpJViLk/s1600/fd1089-battery.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1047" data-original-width="1425" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkcC2ZKisWApCfgQ4l1dwdkgibui_HoLJFFe93l5ugp5C2S23vVNyjs0JH7UwdPj2RW8HU1UDIB2iX3SXo_GX4O31ks8irZ-vGAaI_x9_-mNCdafcgg0zIB6G2JTFkytoeG1ZClpJViLk/s320/fd1089-battery.jpg" width="320" /></a></div>
<br />
<br />
Time to wear our x-ray glasses so we can see what it looks like inside the module, this is usually one of the most fun parts of a project. For the first time you have a look inside and start making sense of the internals, this one is busy inside and is no standard IC on a package. It's time to start planning an attack.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAB18O_GXF2doCRHjiznLcEn2RVK4LqCSrKd9CZIJIZUgWOPCjAv6aGZTNfp8R2AsL2ZbmDpU5OOqSqv1K9Sy78eqnhLOKEzqn2mQpGmBHkg79ZtilvcOEkTZ5eicK-1c6iy0g9_HYUCC5/s1600/fd1089-xray-basic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1316" data-original-width="1127" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAB18O_GXF2doCRHjiznLcEn2RVK4LqCSrKd9CZIJIZUgWOPCjAv6aGZTNfp8R2AsL2ZbmDpU5OOqSqv1K9Sy78eqnhLOKEzqn2mQpGmBHkg79ZtilvcOEkTZ5eicK-1c6iy0g9_HYUCC5/s400/fd1089-xray-basic.jpg" width="341" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Easy options first, in order to try gain clean access inside we test the epoxy with a strong paint remover for a couple of days.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI7Ja8uW_2i9kehFxhMdee7QICsKlaOfcUdgs2G75xwj8wlf2r6C-4BThCPt7pmFoiDSB5-_WifYkf-4Xud2G7dd7r7eoHwgcQzmSU80rp4ZO3QL4TPes00Nl5lVTwybf5bSqeLH45yhVO/s1600/fd1089-paint-remover.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1125" data-original-width="843" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI7Ja8uW_2i9kehFxhMdee7QICsKlaOfcUdgs2G75xwj8wlf2r6C-4BThCPt7pmFoiDSB5-_WifYkf-4Xud2G7dd7r7eoHwgcQzmSU80rp4ZO3QL4TPes00Nl5lVTwybf5bSqeLH45yhVO/s400/fd1089-paint-remover.jpg" width="298" /></a></div>
<br />
<br />
Unfortunately this didn't produce any significant results, the epoxy in the FD1089 seems to be well formulated and is resistant to this type of attack.<br />
<br />
One step forward, by employing a combination of heat and patience it is possible to separate the plastic case from the epoxy block.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6kppmDuJqEwRc-Nj4wHy1dH7-GwazNy94O7xY9tAWIvgSs8jW4m9fVakhM2xqiCDfJIMQ71LOXQu8G0tfn4RdEOyo5ypl-xDDY6A3jXMOT4wLOd9JdleY4wO4kORjE1_x8lDtSpLgXU2p/s1600/fd1089-epoxy-module.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1112" data-original-width="1066" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6kppmDuJqEwRc-Nj4wHy1dH7-GwazNy94O7xY9tAWIvgSs8jW4m9fVakhM2xqiCDfJIMQ71LOXQu8G0tfn4RdEOyo5ypl-xDDY6A3jXMOT4wLOd9JdleY4wO4kORjE1_x8lDtSpLgXU2p/s400/fd1089-epoxy-module.jpg" width="382" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="text-align: start;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="text-align: start;">A weak spot on the epoxy curing caused by trapped air is discovered, this allowed for a unique early view of the shinny internal pcb as shown below. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: start;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiQCC2FB9ctS7Y39lOUJIvxTFoyOyBLpkKyrCBOsqVfi2SN_sYV7yPEVTJ8gplgmDP3HNEZ0GhOolqccloCNQJ-EuX2pfyIA1dOOEyyBY-ciWkmTtG4XLW3RABZb28TnGv_0HVs8dOvDRn/s1600/fd1089-epoxy-airpocket.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="675" data-original-width="843" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiQCC2FB9ctS7Y39lOUJIvxTFoyOyBLpkKyrCBOsqVfi2SN_sYV7yPEVTJ8gplgmDP3HNEZ0GhOolqccloCNQJ-EuX2pfyIA1dOOEyyBY-ciWkmTtG4XLW3RABZb28TnGv_0HVs8dOvDRn/s400/fd1089-epoxy-airpocket.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
Time to keep going deeper and figure out how to attack the epoxy, first we take a few extra measurements to understand dimensions, we will need them later on. The epoxy block on its own does 8.49cm by 2.60cm.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO908eMb1AO8BAyEi6dl6wiMuwt9LE0qjGkS22aBiXwdCAM86fvadUfj46n98Ki5tLoqgqXiN5h1Z1zRBZ3RFiU22GMrxOmS3HMcJiGPCR1mQk6k8JNDuAJ2fs2m9R5KoIszWapXfVSuT8/s1600/fd1089-epoxy-dimensions.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="667" data-original-width="1600" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO908eMb1AO8BAyEi6dl6wiMuwt9LE0qjGkS22aBiXwdCAM86fvadUfj46n98Ki5tLoqgqXiN5h1Z1zRBZ3RFiU22GMrxOmS3HMcJiGPCR1mQk6k8JNDuAJ2fs2m9R5KoIszWapXfVSuT8/s400/fd1089-epoxy-dimensions.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: start;"><br /></span></div>
<div class="separator" style="clear: both;">
With the help of higher resolution x-rays we start to get full control of what's going on in there, eg enumeration and type of devices, guessing the purpose of each device, producing early diagrams, etc...</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
As shown below, the FD1089 uses a total of four different chips in its operation, left to right: A custom IC (this is where the security magic happens), a 68000 CPU, a 6264 SRAM chip, and a MB3771 voltage monitor (when needed, this takes care of switching power from VCC to VBATT and vice-versa). </div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
The first three chips are HITACHI bare dies directly glued onto the top of the pcb, the MB3771 is in full form as a surface mounted device soldered to the back of the pcb. </div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGHuY0ujhlP-4AKyhLgKNEMIbOrx6Fj6b7rA807UHQMxOv3RTuOJWLB3Icsjw7TVOLRf2-GMtQcjkim0-OZMPWMJK36im2_MZRjd1gAsp0NgJ_6a75Ox6x5dV5Riu_l8k3bTcErSaRLC6I/s1600/fd1089-xray-high-ic-highlights.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="497" data-original-width="1600" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGHuY0ujhlP-4AKyhLgKNEMIbOrx6Fj6b7rA807UHQMxOv3RTuOJWLB3Icsjw7TVOLRf2-GMtQcjkim0-OZMPWMJK36im2_MZRjd1gAsp0NgJ_6a75Ox6x5dV5Riu_l8k3bTcErSaRLC6I/s640/fd1089-xray-high-ic-highlights.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Next, we need to have a fully validated understanding of the internal interconnect (aka, how things connect to each other and the outside)<br />
<br />
The tool of preference for this project was a precision CNC, nothing fancy, just a standard 1610 model kit from Aliexpress. The goal here is precise enough milling so we reveal the circuit while avoiding fatal damage to the interconnect and chips, especially the custom IC.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/sTdJSx87rHU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/sTdJSx87rHU?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
Hours later, a significant part of the the copper surface is fully exposed and the custom IC preserved in place, though this didn't come without surprises and a couple of drill bits broken in the process. The reason: just below the IC you can see another unexposed rectangle area, this happened to be a ceramic insert placed there during fabrication to protect access to a sensitive area of the module</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGr4Jr8hYKDGQD3myf8YM-rDUeQ5hFSFdtVIAO8NQnZteCTq_mOM7C-_FzK6D-v2B5hTXdo9990in1Lw6lEFejOiTg9G2GG7v5T2RCpPv4HZ5t917rs_XdAEJ42GcMtxCJ0O_csfPyZtyt/s1600/fd1089-epoxy-cnc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1024" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGr4Jr8hYKDGQD3myf8YM-rDUeQ5hFSFdtVIAO8NQnZteCTq_mOM7C-_FzK6D-v2B5hTXdo9990in1Lw6lEFejOiTg9G2GG7v5T2RCpPv4HZ5t917rs_XdAEJ42GcMtxCJ0O_csfPyZtyt/s400/fd1089-epoxy-cnc.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
At this point a further donor module got dremel down bare in order to understand how many more ceramic inserts were there, in total the FD1089 module has four ceramic inserts, two on the front and two on the back shown below in white, they protect key SRAM signals such as the data bus to prevent extraction of the encryption key through direct drilling.<br />
<br />
By now I was convinced these modules were probably very expensive to produce back in the day.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBLI3KgfRleEaIHFNz8utGXS5rZM5XHFr7V6abD8azYqzTvB7mIv2UhX6e0sETDNgSLDDNvRVFA0wqxnLGNz7PYZKckQhPSLb_kYsIIK64aYuAKTR82jUP8xL3N0fJVW-S6p_vsZezi9DK/s1600/fd1089-dremel.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="868" data-original-width="1025" height="337" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBLI3KgfRleEaIHFNz8utGXS5rZM5XHFr7V6abD8azYqzTvB7mIv2UhX6e0sETDNgSLDDNvRVFA0wqxnLGNz7PYZKckQhPSLb_kYsIIK64aYuAKTR82jUP8xL3N0fJVW-S6p_vsZezi9DK/s400/fd1089-dremel.jpg" width="400" /></a></div>
<br />
For illustration purposes lets take the following example shown below: Four data bit vias from the SRAM are covered with ceramic, both at the origin near the SRAM as well as at the destination close to the custom IC.<br />
<br />
Beyond being cool and almost a hand craft, I'm not sure why this was done, if an attacker could drill from above with the intention of making contact, it could do so at other part of the circuit by exposing the copper, you don't require a via specifically for that.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzvbgyOVLrSg7wgrEt8o1qf9kmphC25ap6LC7p_DmJFG5HXtjaJ_QIcfhsuhzVBzUF1YLB4hFfVlWxDh2Q7IRkujx-YNe-MOiQxd6y2yj9o-ncreja5zoDw7iZYp6VpzoSUNncPWyheEuy/s1600/fd1089-xray-high-ic-ceramic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="497" data-original-width="1600" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzvbgyOVLrSg7wgrEt8o1qf9kmphC25ap6LC7p_DmJFG5HXtjaJ_QIcfhsuhzVBzUF1YLB4hFfVlWxDh2Q7IRkujx-YNe-MOiQxd6y2yj9o-ncreja5zoDw7iZYp6VpzoSUNncPWyheEuy/s640/fd1089-xray-high-ic-ceramic.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
<br class="Apple-interchange-newline" /></div>
More hours of careful drilling allow us to gain access to further key areas of the pcb, when this process is fully completed it will allow us to work on the next part of the reverse engineering.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/OEys5_VAD38/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/OEys5_VAD38?feature=player_embedded" width="320"></iframe><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
<br class="Apple-interchange-newline" /></div>
Diagraming the interconnect and how chips relate to each other is a critical step before we proceed to examine any deep down chip logic.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjGChI0nxYhF_IBsQuLCrphYKPJ7_I4JyD5QsDWL9C3vmhFOqXyDzJ0RxIGdcChgGqdkZ3K9xLoFDCGyvh5HO-JbWrEbJ7KcoUuQE_1cTrQdjE3_yuJfZJ8DfGrVE7En7YlzSuNA5X9imN/s1600/fd1089-xray-custom-pinout.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1064" data-original-width="1039" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjGChI0nxYhF_IBsQuLCrphYKPJ7_I4JyD5QsDWL9C3vmhFOqXyDzJ0RxIGdcChgGqdkZ3K9xLoFDCGyvh5HO-JbWrEbJ7KcoUuQE_1cTrQdjE3_yuJfZJ8DfGrVE7En7YlzSuNA5X9imN/s320/fd1089-xray-custom-pinout.jpg" width="312" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
Once we are ready to explore the custom chip logic, a further donor unit is put under the knife, the goal here is to cut down the minimum possible sample to allow extraction of the custom IC die housed inside.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeIVf-VbVU4HgxZqXVR9IQqvnGTA4ZE3EWstA9_EsTe8810rM600cuH5BzAOzr5upsGKaWJOtuRuUM40NTjJXewcFVorPYMVmM4PzkrVbFLjdDE5cSQu8mo8DKwxLBwAWHRzYGki353gtd/s1600/fd1089-core-cutout.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1024" data-original-width="768" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeIVf-VbVU4HgxZqXVR9IQqvnGTA4ZE3EWstA9_EsTe8810rM600cuH5BzAOzr5upsGKaWJOtuRuUM40NTjJXewcFVorPYMVmM4PzkrVbFLjdDE5cSQu8mo8DKwxLBwAWHRzYGki353gtd/s400/fd1089-core-cutout.jpg" width="300" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
Bonus: a cross section of the pcb reveals its four layers, the inner two are dedicated to VCC / GND distribution only.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOjFPfHFX3FbIjprDEEJx_tjJn-fsORA4eYkE8fzYZABqed3MGoWK9HMBzeVuiGuAwSpH8RsEPq_mmuQpsHCPEpc8gfwReMfPlybkDTq8mfPaupicQpo_FbzgFPenK1ftdrrTSX5Ag_qsj/s1600/fd1089-cross-secction.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="359" data-original-width="445" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOjFPfHFX3FbIjprDEEJx_tjJn-fsORA4eYkE8fzYZABqed3MGoWK9HMBzeVuiGuAwSpH8RsEPq_mmuQpsHCPEpc8gfwReMfPlybkDTq8mfPaupicQpo_FbzgFPenK1ftdrrTSX5Ag_qsj/s400/fd1089-cross-secction.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
<br class="Apple-interchange-newline" /></div>
The smallest possible bite size sandwich is produced, inside not visible is the custom IC, on the left you can see a couple of the white ceramic inserts guarding access.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWHpAwXs1JVJ8E8EyhpzQC6KhbovlfVHDUvQ0iFzfdOsmwpQ-MsDsDbYRdVZCbjUX3y8a_j2pSkLefeZE38XrBoOcQs_tHHOB1xTskTJ0RnwXhwuAcWztLXLiM-XhkbeYUZsNLgcr2u1vm/s1600/fd1089-stack.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="964" data-original-width="1338" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWHpAwXs1JVJ8E8EyhpzQC6KhbovlfVHDUvQ0iFzfdOsmwpQ-MsDsDbYRdVZCbjUX3y8a_j2pSkLefeZE38XrBoOcQs_tHHOB1xTskTJ0RnwXhwuAcWztLXLiM-XhkbeYUZsNLgcr2u1vm/s400/fd1089-stack.png" width="400" /></a><br />
<div class="separator" style="clear: both;">
<br class="Apple-interchange-newline" /></div>
<div class="separator" style="clear: both;">
The sample was then put in a nitric acid beauty spa for several rounds.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvAQOiTauOzi1sBAXxiBSDMIjn2l12GaCim9uJvmHjqrTcgPCF-Cwz2GnnGIesJ7MyFKeWOo7GwI4piTasltQguH6WhkWSKaIvyb9aIciP0r6qZxo-8YntULKpuVBqMRgGGjAkskqdNh1w/s1600/fd1089-acid.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="665" data-original-width="1182" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvAQOiTauOzi1sBAXxiBSDMIjn2l12GaCim9uJvmHjqrTcgPCF-Cwz2GnnGIesJ7MyFKeWOo7GwI4piTasltQguH6WhkWSKaIvyb9aIciP0r6qZxo-8YntULKpuVBqMRgGGjAkskqdNh1w/s400/fd1089-acid.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
At each round the sample was inspected for progress and cleaning. IC dies are very fragile so patience is key, this one waited 30+ years, so it may as well wait another day if necessary. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidUt7nEBc_vuIhs6oHul_3ovRCJ4zBjAYs6R_NTXrGjhkNFCWjrCDlNwCCGvIA7zYTU5Ftmu5H_lDNH9A1NPtJhFt8lur8ov9tMFwDb_74b77-E_YLDBm1gbkrtS4wxzomBzq9m1f7Q3sg/s1600/fd1089-stack2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1386" data-original-width="1580" height="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidUt7nEBc_vuIhs6oHul_3ovRCJ4zBjAYs6R_NTXrGjhkNFCWjrCDlNwCCGvIA7zYTU5Ftmu5H_lDNH9A1NPtJhFt8lur8ov9tMFwDb_74b77-E_YLDBm1gbkrtS4wxzomBzq9m1f7Q3sg/s400/fd1089-stack2.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_5VolU2uhmgYoyswX0nGYUQa1Y2rKK8ZGN3cvgOXbMCpuZxYzu9EvdfBrb_PZeU1z6CHKIos3DkzBhD4SpLqbUrXx6MvNFbVWfGd-6WxtUv2Js3Hq7JXDMRclcG3zIP6xS8qkg0PdGXCC/s1600/fd1089-stack3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1009" data-original-width="1098" height="366" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_5VolU2uhmgYoyswX0nGYUQa1Y2rKK8ZGN3cvgOXbMCpuZxYzu9EvdfBrb_PZeU1z6CHKIos3DkzBhD4SpLqbUrXx6MvNFbVWfGd-6WxtUv2Js3Hq7JXDMRclcG3zIP6xS8qkg0PdGXCC/s400/fd1089-stack3.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both;">
<br class="Apple-interchange-newline" /></div>
Finally getting closer, both ceramic bits are released, we can already see the back of the IC die now exposed.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqfEbrL9mquGvzm2YxOIGlJ3S795xBGocgtHC1WHb27sgGkaDND7VcxZemhzi3xL0JQF9WiFKM5PTyOpKZZeWYEcpm0XvOcDSMicG4GL2z6dmGZdQGtMJ8xSsq9EfhtXMcsEl3LqloMDFh/s1600/fd1089-stack4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1192" data-original-width="1414" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqfEbrL9mquGvzm2YxOIGlJ3S795xBGocgtHC1WHb27sgGkaDND7VcxZemhzi3xL0JQF9WiFKM5PTyOpKZZeWYEcpm0XvOcDSMicG4GL2z6dmGZdQGtMJ8xSsq9EfhtXMcsEl3LqloMDFh/s400/fd1089-stack4.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both;">
<br class="Apple-interchange-newline" /></div>
A final round allowed for the chip die to be fully exposed clean. Pharaonic honors please.<br />
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd6UHCiqYYbauzCXca63sGq47KRvYxAjoUaRKC5MIWpt1YHbMTiUnVdoiVu07LeGfbJ6Qx6tFOe_N_dgcedn6Icx-NAkGlf_xTelEm7GQHzIGlyGdf3NC1ONZ07KpYPBEhSm6nJXRpOLaU/s1600/fd1089-stack5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="866" data-original-width="1252" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd6UHCiqYYbauzCXca63sGq47KRvYxAjoUaRKC5MIWpt1YHbMTiUnVdoiVu07LeGfbJ6Qx6tFOe_N_dgcedn6Icx-NAkGlf_xTelEm7GQHzIGlyGdf3NC1ONZ07KpYPBEhSm6nJXRpOLaU/s400/fd1089-stack5.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
Stay tuned for the next article, we will explore this chip under the microscope. Happy reversing.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com5tag:blogger.com,1999:blog-1981425846546053493.post-83386313587316281102019-10-12T18:33:00.000+02:002019-10-13T10:08:13.450+02:00Deconstructing Sega's System 16 Security - Part 1<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-juQfWYJoVd7olWh06v0JKkPW-4Vod9EYxLkRZAH5Z3ye4siJxusxWHIUFoPeLLR_r7ZPF6xwd3Pi6BHUKODi6so-cCZEhLBpFiL4Dx4SVqzun2jnro54bHHDLLKSq11XxvZXMxHUx5Ie/s1600/segalogo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="436" data-original-width="833" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-juQfWYJoVd7olWh06v0JKkPW-4Vod9EYxLkRZAH5Z3ye4siJxusxWHIUFoPeLLR_r7ZPF6xwd3Pi6BHUKODi6so-cCZEhLBpFiL4Dx4SVqzun2jnro54bHHDLLKSq11XxvZXMxHUx5Ie/s400/segalogo.png" width="400" /></a></div>
<br />
Sega's System 16 was a new arcade platform introduced in 1986 as a successor to the earlier 8 bit Z80 designs Sega System 1 and System 2. The new system brought in many system upgrades including 16 bit Motorola 68000 CPUs and pioneering security.<br />
<br />
Above all System 16 was one of Sega's most successful games platform seeing the release of countless epic games that form part of our collective childhood memories. Among my favorites titles are Shinobi, Golden Axe, Outrun, or Michael Jackson's Moonwalker to name a few, I bet you have yours too.<br />
<br />
The platform got subsequent updates and revisions introducing improvements to base specs and integration of chips. The initial System 16A was released in 1986 followed soon by the more common System 16B in 1987, a later revision known as System 18 was introduced in 1989. Specs for all three revisions are as follows:<br />
<div>
<br /></div>
<br />
<b>System 16A specifications</b><br />
<br />
Main CPU: Motorola 68000 or Hitachi FD1089/FD1094 security modules @ 10 MHz<br />
Memory: 16kB + 2 kB<br />
Sound CPU: NEC uPD780C-1 (Zilog Z80) @ 4 MHz<br />
FM synthesis sound chip: Yamaha YM2151 @ 4 MHz (8 FM synthesis channels)<br />
PCM sound chip: NEC uPD7751@ 6 MHz<br />
ADPCM channels: 3<br />
Audio bit depth: 8-bit<br />
Custom GPU chipset: 315-5011 sprite line comparator, 315-5012 sprite generator, 2× 315-5049 tilemap chips, 315-5107 & 315-5108 display timers, 315-5143 & 315-5144 sprite chips, 315-5149 video mixer<br />
Performance: 12.5874 MHz sprite line buffer render clock, 6.2937 MHz sprite line buffer scan/erase & pixel clock<br />
Display resolution: 320×224 to 342×262 (horizontal), 224×320 to 262×342 (vertical), progressive scan<br />
Color palette: 98,304<br />
Colors on screen: 4096 (unique colors) to 6144 (with shadow & highlight)<br />
Graphical planes and sprite capabilities: 2 tile layers (row & column scrolling, 8×8 tiles), 1 text layer, 1 sprite layer. Dual line buffers, double buffering, 128 on-screen sprites, 800 sprite pixels (800.75 sprite processing ticks) per scanline, 100 sprites per scanline, 16 colors per sprite, 8 to 256 width, 8 to 256 height<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2rOcXRbLBxJTYbuh1JtUFmHNneKpqXAw9uVKduYLzvVmNDAAT-qqlV6o6v5Fr7TRHNT_0IAey502OumCHDBbFl9m1GRv4P-oO9ZVLoMvVMuPp7m9Qv2VdwaGn97qEgi9kqJCTF88TX5Tf/s1600/sega-system16a.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2rOcXRbLBxJTYbuh1JtUFmHNneKpqXAw9uVKduYLzvVmNDAAT-qqlV6o6v5Fr7TRHNT_0IAey502OumCHDBbFl9m1GRv4P-oO9ZVLoMvVMuPp7m9Qv2VdwaGn97qEgi9kqJCTF88TX5Tf/s400/sega-system16a.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;">Fantasy Zone System 16(A) motherboard</td></tr>
</tbody></table>
<br />
<div>
Note: a few of the initial System 16 games were released in what's know as Pre-System 16 hardware, this rare system looks pretty much like modified a System1 / 2 pcb.</div>
<div>
<br /></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIz3ENqJLl-SrgzlJJHA8Z_vdup6Jm1NZDxDtaX8_ZMPLzgEak0m_IUGXLJP6rizAvj_v_A9dgs-9frTfibtz8MWfIgfTW2F166tcrfjuOEWu0GEbRM2hCLRJEMStpcexlAGZnJFCn3NpR/s1600/AlienSyndrome.pcb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="560" data-original-width="780" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIz3ENqJLl-SrgzlJJHA8Z_vdup6Jm1NZDxDtaX8_ZMPLzgEak0m_IUGXLJP6rizAvj_v_A9dgs-9frTfibtz8MWfIgfTW2F166tcrfjuOEWu0GEbRM2hCLRJEMStpcexlAGZnJFCn3NpR/s400/AlienSyndrome.pcb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;">Alien Syndrome. Pre-System 16 motherboard</td></tr>
</tbody></table>
</div>
<div>
<div>
<b><br /></b></div>
<div>
<b>System 16B specifications</b></div>
<div>
<br /></div>
<div>
Sound upgrades</div>
<div>
Sound CPU: Zilog Z80 @ 5 MHz or NEC MC-8123 security module</div>
<div>
PCM sound chip: NEC uPD7759 ADPCM Decoder @ 640 kHz</div>
<div>
ADPCM channels: 8</div>
<div>
Audio bit depth: 9-bit</div>
<div>
Other features: 8 kHz sampling rate, up to 128 KB audio ROM and 256 samples</div>
<div>
<br /></div>
<div>
Video upgrades</div>
<div>
GPU chipset: 315-5196 sprite generator, 315-5197 tilemap generator, 315-5213 sprite chip, 315-5248 & 315-5250 math chips</div>
<div>
Sprite capabilities: Sprite-scaling</div>
</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaa-5pC_nya8I55xiAFXevKEYnR9msQD5TDy8fvYxSMpFS3AoplbAbf9oO9YnDo51HwWgdxf7-4eOe2TLvtAehr6m-2pW7AoGQBOHN1sYXnubKf5Js0GdVwQJGuAlM2Xj2hESH5degCCVS/s1600/DSCN6131.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaa-5pC_nya8I55xiAFXevKEYnR9msQD5TDy8fvYxSMpFS3AoplbAbf9oO9YnDo51HwWgdxf7-4eOe2TLvtAehr6m-2pW7AoGQBOHN1sYXnubKf5Js0GdVwQJGuAlM2Xj2hESH5degCCVS/s400/DSCN6131.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;">Wonder Boy III Monster Lair. System 16(B) motherboard</td></tr>
</tbody></table>
<br />
<b>System 18 specifications</b><br />
<br />
Sound upgrades<br />
Sound CPU: Zilog Z80 @ 8 MHz<br />
Sound chip: 2 × Yamaha YM3438 @ 8 MHz + Ricoh RF5c68 @ 10 MHz (8-channel PCM chip, remarked as Sega Custom 315)<br />
<br />
Video upgrades<br />
Graphics chips: Sega System 16B chipset, Yamaha YM7101 VDP<br />
Colors on screen: 4096 (unique colors) to 8384 (with shadow & highlight)<br />
Graphical planes and sprite capabilities: 4 tile layers, 1 text layer, 1 sprite layer with hardware sprite zooming, translucent shadows, sprites of any height and length.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy3tvPlgfVHxJam_2xr9w8PqHfi57H884Ff_707R6SeseAJ_FiPCfZPU2UP02ZiCnmrrDBTm56RlcegTG_vhD-eCqzzmfPIL9uQAe3Z3Zc3CKaAZYusUfMo-N8U0UeCzbEz_soXswfUMXE/s1600/DSCN3927.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy3tvPlgfVHxJam_2xr9w8PqHfi57H884Ff_707R6SeseAJ_FiPCfZPU2UP02ZiCnmrrDBTm56RlcegTG_vhD-eCqzzmfPIL9uQAe3Z3Zc3CKaAZYusUfMo-N8U0UeCzbEz_soXswfUMXE/s400/DSCN3927.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Michael Jackson's Moonwalker. System 18 motherboard</td></tr>
</tbody></table>
<br />
<br />
<b>Sega meets Hitachi</b><br />
<b><br /></b>
With the introduction of System 16, selected games replaced the main system 68000 CPU with secretive Hitachi branded device modules, these modules were Hitachi FD1089 revisions A and B, and a more commonly found Hitachi FD1094.<br />
<div>
<br /></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitJhz6aznCTCL8n6GSRI_XwF4lCLJf7csQL21ppJ_q1otTisSyX5rx-kFNkS9tYxsYrFPMqYknLi8PZFPJokuJIyqf1smID-c-hsLFq9gWFPR7FUbQAvuUOoCJiXDS-LTKQfmpOYsK3Y1A/s1600/fdchips.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1125" data-original-width="1500" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitJhz6aznCTCL8n6GSRI_XwF4lCLJf7csQL21ppJ_q1otTisSyX5rx-kFNkS9tYxsYrFPMqYknLi8PZFPJokuJIyqf1smID-c-hsLFq9gWFPR7FUbQAvuUOoCJiXDS-LTKQfmpOYsK3Y1A/s400/fdchips.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;">Pictured a couple of HITACHI modules used in Sega System 16 game boards</td></tr>
</tbody></table>
<br />
<br />
Most modules feature a sticker with a seven-digit code unique per game title and region. For arcade operators or collectors trying to replace these modules with a regular 68000 CPU or a different Hitachi module, this would result in a non-working game. A battery inside also plays a fatal role, losing its power renders the module unusable.<br />
<br />
In combination with encrypted roms the modules provided Sega with a way to control piracy and stop unauthorized board conversions (when a game base system is reused for a different game).<br />
<br />
Sega's work with Hitachi was no coincidence, at the time probably no other company in Japan would have the expertise, technology, and rights to be able to produce custom 68000 based modules. Early on Hitachi helped Motorola, the company behind the 68000 CPU, overcome critical manufacturing challenges and achieve repeatable production of the new CPU. In exchange Hitachi was allowed to second source 68000 CPUs under the Hitachi brand.<br />
<br />
Hitachi's work with customer modules was not limited to Sega game systems, different modules for different customers were also produced over the years. Here's a few examples found on the net:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrzpXtYrZtmX8wUBUdzNZWdEeHfOvGF3KrbzQtvhhXd4MIZuYXnPsf3NX4k4yIGvgCZBKJ0-KFe4js4PzaXUHGtaancA8pUvcAqmdsKFe45W_7tceUJxhFrw8PRaYFf-xsRTP37lZE8r9J/s1600/Untitled4.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1458" data-original-width="1043" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrzpXtYrZtmX8wUBUdzNZWdEeHfOvGF3KrbzQtvhhXd4MIZuYXnPsf3NX4k4yIGvgCZBKJ0-KFe4js4PzaXUHGtaancA8pUvcAqmdsKFe45W_7tceUJxhFrw8PRaYFf-xsRTP37lZE8r9J/s400/Untitled4.jpg" width="285" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">FD1095 a custom module close numbered to Sega's FD1094, its purpose or nature is unknown</td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAgsj6gPnChoJX_DPTD5o2-WhR5J8oHlC3w2EVtJqg_XDAEl4p3QmicTbdIchOxZ06QpfbZOEPt_xpQF6dT3808cmqcQcQMys9Ufnqz7hn_y5xzeu_BJzDXCbErxIg3rQ15KYoFJKTSeQn/s1600/Untitled3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1333" data-original-width="1358" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAgsj6gPnChoJX_DPTD5o2-WhR5J8oHlC3w2EVtJqg_XDAEl4p3QmicTbdIchOxZ06QpfbZOEPt_xpQF6dT3808cmqcQcQMys9Ufnqz7hn_y5xzeu_BJzDXCbErxIg3rQ15KYoFJKTSeQn/s400/Untitled3.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Several HITACH FD modules found online</td></tr>
</tbody></table>
<br />
Some of these modules can be bought online at present time, in fact, IC supplier Kynix has an active listing selling Sega's FD1094 <a href="https://www.kynix.com/Detail/978298/FD1094A-12.html" target="_blank">stock</a>, to verify the validity of the listing I purchased a lot which turned to be right. The modules seem to be refurbished as some of them still contain valid game data and are visibly used.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkEyggouJHlUXjj1AUTQ9i244iI52BlIBlSdZ4hZN7QzT3bWNBXDePIQJQcsj0eupKJPRLoXyVvVBVKqjcU4T6vXNHgW5yZ-vAr41EffTigjM_-F7vLnZXJT7rPYm3um-jCZPlPo5Pe_Kj/s1600/IMG_7109.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkEyggouJHlUXjj1AUTQ9i244iI52BlIBlSdZ4hZN7QzT3bWNBXDePIQJQcsj0eupKJPRLoXyVvVBVKqjcU4T6vXNHgW5yZ-vAr41EffTigjM_-F7vLnZXJT7rPYm3um-jCZPlPo5Pe_Kj/s320/IMG_7109.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">FD1094 modules purchased from Kynix</td></tr>
</tbody></table>
<br />
<b>Inside the modules</b><br />
<b><br /></b>
Over the next posts we will discuss the internals of the FD1089 and FD1094 modules, reveal their construction and facts of interest.<br />
<br />
Stay tuned.<br />
<br />
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com8tag:blogger.com,1999:blog-1981425846546053493.post-36101981504439901652019-08-11T16:42:00.002+02:002023-08-06T19:02:15.407+02:00Calling all Sony BVM 14F1 & 20F1 owners: Your CRT could be at risk of software death<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT9fTzPTwMADYl4TEk4yfRlERYpFYfIcgTI66tUqGV8faXZoSFk8-N17E951u55pwqQizRbWxaKdIEzctT1wT0it2D61isFJ9-g_vLphb7xRbHxUi7PZDHnzwZ20rLA8_UZ0juzpDqoHQS/s1600/Untitled.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1415" data-original-width="1600" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT9fTzPTwMADYl4TEk4yfRlERYpFYfIcgTI66tUqGV8faXZoSFk8-N17E951u55pwqQizRbWxaKdIEzctT1wT0it2D61isFJ9-g_vLphb7xRbHxUi7PZDHnzwZ20rLA8_UZ0juzpDqoHQS/s400/Untitled.png" width="400" /></a></div>
<br />
The three chips pictured below found in the BC slot1 board contain key software at risk of preservation unless we act today.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOzMGvrSGDca-CU4zjoSZVaoNnJaOYCHGxJwHT3V6aarItN1TJHMTwArFiQsDkCg0vkxsxstmrSWdWO-OXhAJWdEEPFrRwb2JJ2uyO7iFtaZLs2r7_ZImdmMNRqP9TfAUJCz3OVBNWjlDy/s1600/BVM.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1125" data-original-width="1500" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOzMGvrSGDca-CU4zjoSZVaoNnJaOYCHGxJwHT3V6aarItN1TJHMTwArFiQsDkCg0vkxsxstmrSWdWO-OXhAJWdEEPFrRwb2JJ2uyO7iFtaZLs2r7_ZImdmMNRqP9TfAUJCz3OVBNWjlDy/s400/BVM.jpg" width="400" /></a></div>
<br />
IC3 is a 2mbit flash and contains the cpu code, according to the manufacturer <a href="https://www.dataman.com/media/datasheet/Catalyst_(CSI)/CAT28F020.pdf" target="_blank">datasheet</a> it has a data retention guarantee of 10 years. IC107/108 are 256kbit eproms containing key system signals, their data inside will last 30-40 years depending on conditions.<br />
<br />
If you would like to help preserve these please dump/read these chips and provide me a copy along with your CRT monitor model and year, BC board revision code, and software revision (menu->status). If you don't have a chip reader you can buy the inexpensive TL866II Plus from Ebay, IC3 will dump as AM28F020, and IC107/108 as any 27C256 eprom variant.<br />
<br />
<strike>My monitor is a 20F1E from 2002, BC board rev A-1135-825-B, software rev 1.40. I have uploaded a copy of the content of my chips here: <a href="https://drive.google.com/drive/folders/1RcOjDqqe6G82cl521OmtAqBghIEh3i2x" target="_blank">https://drive.google.com/drive/folders/1RcOjDqqe6G82cl521OmtAqBghIEh3i2x</a></strike><br />
<br />
UPDATE 8/13: Now moved to Github: <a href="https://github.com/ArcadeHacker/Dumps/tree/main/Monitors" target="_blank">https://github.com/ArcadeHacker/Dumps/tree/main/Monitors</a><br />
<br />
Thanks for collaborating in preserving such fantastic monitors.<br />
<br />
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com37tag:blogger.com,1999:blog-1981425846546053493.post-8718823325391151762018-12-11T11:01:00.000+01:002018-12-11T13:18:00.318+01:00Capcom CPS1 B21 chips in the wildDo you own any Capcom CPS1 games with a dead or faulty graphics chip? <a href="https://www.utsource.net/pro/DL-0921-10014.html">UTsource</a> is holding onto a large new original stock of B21 chips aka DL-0921. According to the listing the stock is at least 86000 units, enough supply for several lifetimes I guess.<br />
<br />
To validate the listing I bought a couple of samples and the thing seems definitely real.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBoO43QwtotpBtuvCafXgeQtu4njONi7TxJ7sodpNBiLZG-PNPwvz7urnv3Ogigfk1iV76oyiQFsvDcHHGcZOIqtC3h3beFWO-CChZIsxBnAFM4T2yrSq7kpF62ITgr_6AN7k7ewlMK7Jn/s1600/IMG_2032.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1200" data-original-width="1600" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBoO43QwtotpBtuvCafXgeQtu4njONi7TxJ7sodpNBiLZG-PNPwvz7urnv3Ogigfk1iV76oyiQFsvDcHHGcZOIqtC3h3beFWO-CChZIsxBnAFM4T2yrSq7kpF62ITgr_6AN7k7ewlMK7Jn/s400/IMG_2032.JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">NOS Capcom B21 chips as purchased from UTsource.</td></tr>
</tbody></table>
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com7tag:blogger.com,1999:blog-1981425846546053493.post-61252317496700695712018-12-08T22:36:00.000+01:002018-12-09T08:44:52.223+01:00Sega System 16 / 18 / 24 / X Security Programming GuideDear all, after some lengthy testing we are happy to release full details on the security programing of the Hitachi FD1089 / FD1094 cpus used in Sega's System 16 / 18 / 24 / X motherboards.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAmiCG6zmwKItg8kNdkXr17LnnfOEU4HpXj9wJoG9WNx4TCXHYT-Zlw8k7e-SUI2myZXAiA86B9WQQQCetQtj0O83uG2MwiYiGCIYlQJfSv0tLE7g5b8Ks75ARkqWUgVEutlgJTNfyqTSr/s1600/IMG_9701.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAmiCG6zmwKItg8kNdkXr17LnnfOEU4HpXj9wJoG9WNx4TCXHYT-Zlw8k7e-SUI2myZXAiA86B9WQQQCetQtj0O83uG2MwiYiGCIYlQJfSv0tLE7g5b8Ks75ARkqWUgVEutlgJTNfyqTSr/s400/IMG_9701.jpg" width="400" /></a></div>
<br />
<div>
<div>
This guide is the result of several years of work by a small group of arcade enthusiasts to unravel the secrets of the security implementation found in one of the most loved and popular arcade game platforms. Thanks to this work it is now possible to fully preserve most Sega 16 bit systems enabled with security as fully working unmodified originals.</div>
<div>
<br /></div>
<div>
Unlike previous projects this time we recommend the usage of a dedicated pcb to interface with the chips due to the high pin count involved in the programming.</div>
<div>
<br /></div>
<div>
Additional details of the inner workings of Sega's FD security modules will be published over time in this blog. Work on the earlier MC 8 bit modules used in some System 1 / 2 boards and sound of Sega 16 is still in progress and will be published when completed. </div>
<div>
<br /></div>
<div>
Thanks to everyone who has helped make this a reality including all kind donors and testers.</div>
</div>
<div>
<br /></div>
<div>
<b>Sega Hitachi FD1089 / FD1094 Security Programming Guide</b></div>
<div>
<br /></div>
<div>
<div>
This document will guide you through the basics of preparing your setup and testing the a clean desuicide method on any known Sega 16 / 18 / 24 / X board revisions using Hitachi FD1089 or FD1094 modules. You can find a pdf copy of this guide and code on the following link: https://github.com/ArcadeHacker/ArcadeHacker_Sega_Hitachi</div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
<b>What's needed</b></h2>
<div>
<b><br /></b></div>
<div>
Arduino programmer hardware</div>
<div>
<br /></div>
<div>
<ul>
<li>1x Arduino Mega 2560 rev 3 (with USB cable)</li>
<ul>
<li><a href="https://store.arduino.cc/arduino-mega-2560-rev3">https://store.arduino.cc/arduino-mega-2560-rev3</a></li>
</ul>
</ul>
<div>
<br /></div>
<ul>
<li>3x 40 Pin Male Single Row Pin Header 2.54mm spacing</li>
<ul>
<li><a href="https://www.ebay.com/itm/10PCS-40Pin-2-54mm-Male-PCB-Single-Row-Straight-Header-Strip-Connector-Arduino/371644788140">https://www.ebay.com/itm/10PCS-40Pin-2-54mm-Male-PCB-Single-Row-Straight-Header-Strip-Connector-Arduino/371644788140</a></li>
</ul>
</ul>
<div>
<br /></div>
<ul>
<li>1x 64 pin IC socket 2.54mm spacing, a couple of options:</li>
<ul>
<li>Turned pin socket:</li>
<ul>
<li><a href="https://www.ebay.com/itm/1-X-GOLD-64P-Socket-DIP-PIN-64-22-86mm-gold-plated-polyester-UL94V-0-1A/113372793987">https://www.ebay.com/itm/1-X-GOLD-64P-Socket-DIP-PIN-64-22-86mm-gold-plated-polyester-UL94V-0-1A/113372793987</a></li>
</ul>
<li>ZIF socket:</li>
<ul>
<li><a href="https://www.ebay.com/itm/1pc-64Pin-64-Pin-2-54mm-IC-Test-Universal-ZIF-Socket/163152882218">https://www.ebay.com/itm/1pc-64Pin-64-Pin-2-54mm-IC-Test-Universal-ZIF-Socket/163152882218</a></li>
</ul>
</ul>
</ul>
<div>
<br /></div>
<ul>
<li>1x ArcadeHacker FD1089 / FD1094 arduino mega shield pcb</li>
<ul>
<li>Build / order your own:</li>
<ul>
<li>Pcbway.com 72h on demand fabrication for $5</li>
<li><a href="https://www.pcbway.com/project/shareproject/W38238MSJ9_W38238MSN8_SegaFD_2560v2.html">https://www.pcbway.com/project/shareproject/W38238MSJ9_W38238MSN8_SegaFD_2560v2.html</a></li>
<ul>
</ul>
</ul>
<li>Design / customize your own:</li>
<ul>
<li>PCB design source files</li>
<li>Eagle</li>
<li><a href="https://github.com/ArcadeHacker/ArcadeHacker_Sega_Hitachi/blob/master/Eagle_SegaFD_2560V2.zip">https://github.com/ArcadeHacker/ArcadeHacker_Sega_Hitachi/blob/master/Eagle_SegaFD_2560V2.zip</a></li>
<ul>
<ul>
</ul>
</ul>
<li>Gerbers</li>
<ul>
</ul>
<li><a href="https://github.com/ArcadeHacker/ArcadeHacker_Sega_Hitachi/blob/master/Gerbers_SegaFD_2560v2.zip">https://github.com/ArcadeHacker/ArcadeHacker_Sega_Hitachi/blob/master/Gerbers_SegaFD_2560v2.zip</a></li>
<ul>
<ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<div>
<br /></div>
<ul>
<li>Soldering iron and solder</li>
</ul>
</div>
</div>
<div>
<div>
<div>
</div>
</div>
<div>
<br /></div>
<div>
Sofrware</div>
<div>
<br /></div>
<div>
<ul>
<li>Computer with Arduino IDE Software</li>
<ul>
<li><a href="https://www.arduino.cc/en/Main/Software">https://www.arduino.cc/en/Main/Software</a></li>
</ul>
</ul>
<div>
<br /></div>
<ul>
<li>ArcadeHacker Sega Hitachi FD1089 or FD1094 Arduino programs</li>
<ul>
<li><a href="https://github.com/ArcadeHacker/ArcadeHacker_Sega_Hitachi">https://github.com/ArcadeHacker/ArcadeHacker_Sega_Hitachi</a></li>
</ul>
</ul>
</div>
</div>
<div>
<br /></div>
<div>
<h2>
Assembling and preparing your Arduino programmer</h2>
</div>
<div>
<b><br /></b></div>
<div>
This step is pretty straight forward, solder all the pin headers to your programmer pcb as well as the IC 64pin socket. The fully assembled pcb looks like this:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4jW3RBCLDYvw8fDz9su-NZWslvCHMAqhLVG_JapoW0JaYvIxuYq-kBa6MPSZlAzKT1g_uq6Mt-TJLKmeq57kbpoVytf4gDaFC-jg8F5Pg-OaXtrlj_mg9QnGZP9p8P78yYiODhFlgHKuO/s1600/Sega16Programmer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1268" data-original-width="847" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4jW3RBCLDYvw8fDz9su-NZWslvCHMAqhLVG_JapoW0JaYvIxuYq-kBa6MPSZlAzKT1g_uq6Mt-TJLKmeq57kbpoVytf4gDaFC-jg8F5Pg-OaXtrlj_mg9QnGZP9p8P78yYiODhFlgHKuO/s640/Sega16Programmer.png" width="424" /></a></div>
<div>
<br /></div>
<div>
After the pcb shield is ready just sandwich it together with your Arduino Mega 2650.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlFN6XnXoofHJ59-TULCig10BhZfBLPaMIPiXIcNqJPFgTw5QqyDVrxMi4ykC-LFGaNs8juTS4ezlkSC4vbSndVhovsKrO5DXD3AC5t9OBDuJffS5dwHiYaJFuFgUaTCPpQoZWf0EyBcB2/s1600/IMG_9697.HEIC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlFN6XnXoofHJ59-TULCig10BhZfBLPaMIPiXIcNqJPFgTw5QqyDVrxMi4ykC-LFGaNs8juTS4ezlkSC4vbSndVhovsKrO5DXD3AC5t9OBDuJffS5dwHiYaJFuFgUaTCPpQoZWf0EyBcB2/s400/IMG_9697.HEIC" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
Download and install software for your OS from <a href="https://www.arduino.cc/en/Main/Software">https://www.arduino.cc/en/Main/Software</a></div>
<div>
Select the right arduino board type before connecting your arduino to your computer. Tools -> Board -> Mega 2560.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5sIv9VQFB3vh8hhKKDlFokI_aYgk4xyyKGQX_jRFuD9xB26DEHWzkt1QF2u1gIhu2xdFax5KWg-7794IhQZjheHodpdrOY9eqxAd-Tlc-t8SdYN2ybCOHAEvqcXHB-_hVuMZQ6A9XRx4L/s1600/arduino.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="786" data-original-width="1492" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5sIv9VQFB3vh8hhKKDlFokI_aYgk4xyyKGQX_jRFuD9xB26DEHWzkt1QF2u1gIhu2xdFax5KWg-7794IhQZjheHodpdrOY9eqxAd-Tlc-t8SdYN2ybCOHAEvqcXHB-_hVuMZQ6A9XRx4L/s400/arduino.png" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Connect the Arduino to your computer by plugin the USB cable and choose the correct serial port in Tools -> Port. </div>
<div>
<br /></div>
<div>
Open the ArcadeHacker Sega FD1094 or FD1089 .ino file in the Arduino environment. Compile and Upload the sketch to the Arduino unit.</div>
<div>
<br /></div>
<div>
Open the Arduino IDE serial monitor found in Tools -> Serial Monitor. Configure the two settings found in the lower right part of the serial monitor window as follows: Carriage Return and 115200 bauds. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLDeebD1pb8X399QCWHKHu70ieJvdxMTq2c0z47SQLCii36FwWGrcJK_k3tPmCHREArWFqfXCy3nbnmqD0kliMK2FCYnbY8K8LjnZpftkUdJZISxNuUd2fhsgME8oNdGetlolcadkixOfv/s1600/arduino2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="476" data-original-width="938" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLDeebD1pb8X399QCWHKHu70ieJvdxMTq2c0z47SQLCii36FwWGrcJK_k3tPmCHREArWFqfXCy3nbnmqD0kliMK2FCYnbY8K8LjnZpftkUdJZISxNuUd2fhsgME8oNdGetlolcadkixOfv/s400/arduino2.png" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Close and open the serial monitor, you should now see the following text on screen. If this is the case you have successfully setup and configured your Arduino programmer. </div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1LiEDDWT74EQbOhdC2euZEvA41FvgslA1ViTlpMmIEPPR4r7Y8BlVoRn5c0p1dzw-Ul0PetZLnGW_9oqdc7eqHvS35ZRVQot-9t6jB-u8Tg4mtKKVCju9qG25F62gGTUeTTtNOG5h5ri0/s1600/arduno3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="1600" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1LiEDDWT74EQbOhdC2euZEvA41FvgslA1ViTlpMmIEPPR4r7Y8BlVoRn5c0p1dzw-Ul0PetZLnGW_9oqdc7eqHvS35ZRVQot-9t6jB-u8Tg4mtKKVCju9qG25F62gGTUeTTtNOG5h5ri0/s640/arduno3.png" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<h2>
Programming security keys</h2>
</div>
<div>
<br /></div>
<div>
Look inside the Arduino FD1089 or FD1094 code for the game you intend to program the encryption keys into the FD chip and uncomment the desired line of code. Only one game can be uncommented at any time, don't forget to comment the default blank game setting at the beginning of the list.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAYJA3Bq0ycEKBawoo46b_eUFoTpA1QR-N0_RL-YjAD5K_dupEwSBCPfqvffLQ0K3ZyXsg1ldy2Yvr3b-2XPhrchRKl3xaJ073ujNK9cAWs96eNJl8Xo71rJBrm7fU1iOj-FCOUDAAGlFX/s1600/arduino4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="652" data-original-width="1576" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAYJA3Bq0ycEKBawoo46b_eUFoTpA1QR-N0_RL-YjAD5K_dupEwSBCPfqvffLQ0K3ZyXsg1ldy2Yvr3b-2XPhrchRKl3xaJ073ujNK9cAWs96eNJl8Xo71rJBrm7fU1iOj-FCOUDAAGlFX/s400/arduino4.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
If the above was done correctly you should now compile and upload the program to your Arduino without problems. Once the upload process is finished open the serial monitor found in Tools. The program prompt should display the game you have configured. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-u4kGObA8weQgXvSWht7fw8xLG0v4mTqsZjUYZRSy06CztEb6Uad7UKmyNjTExUIlJFO3wsAl2HhGPLs8Xg-oOwP95f9emJx2IuuGkBDtGxq6BZ8iGSngENCKGwY_Jn1N2R51pTffQIr/s1600/arduino5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="577" data-original-width="1308" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-u4kGObA8weQgXvSWht7fw8xLG0v4mTqsZjUYZRSy06CztEb6Uad7UKmyNjTExUIlJFO3wsAl2HhGPLs8Xg-oOwP95f9emJx2IuuGkBDtGxq6BZ8iGSngENCKGwY_Jn1N2R51pTffQIr/s400/arduino5.png" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
For this example we have selected "eswat" a System 16 game using the Hitachi FD1094 security module "317-0160". FD1094 security modules can be repurposed for any game and it is not required that a label in the cpu module matches the intended game security key to be programmed. This will not be the case with FD1089 modules as two different encryption schemes exist (FD1089A & FD1089B): A variants of the chip are only compatible with games roms for other A variants, and B variants for B games only.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcqgl3-AehOoUF0t42QinJ_WCYgs010BDhIBe1PmjaC8sTmkBMZP-EWfyya3iybW8qdyDMi9t-JazGsk6u4-jcEduPn2vtrDa0YkGTZN0wxE-Z3dF73jzVCwzUmw_i5L0klZmTEVjABTUl/s1600/IMG_9699.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcqgl3-AehOoUF0t42QinJ_WCYgs010BDhIBe1PmjaC8sTmkBMZP-EWfyya3iybW8qdyDMi9t-JazGsk6u4-jcEduPn2vtrDa0YkGTZN0wxE-Z3dF73jzVCwzUmw_i5L0klZmTEVjABTUl/s400/IMG_9699.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Having inserted the module in the socket we can proceed to program the security keys by typing w and pressing enter. Make sure you replace the module battery if necessary before attempting a key load, a new battery will last at least 20-30 years so don't expect to have to repeat this often. Once the process finishes you can disconnect the Arduino module from your computer and remove the cpu module.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLsutNHyPi-mdhsy084ozUMwqKw0ybqqeCUqISGQKHcALJqmjeoSDiAbU_HMzoja2yWtuiSo9agOdMuazQoiNGHgZhy1UY0LrKcbHtb9YEochsDRF3e9wUaoRIUCPihtB5_UWnzY83CxAR/s1600/arduino6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="776" data-original-width="1250" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLsutNHyPi-mdhsy084ozUMwqKw0ybqqeCUqISGQKHcALJqmjeoSDiAbU_HMzoja2yWtuiSo9agOdMuazQoiNGHgZhy1UY0LrKcbHtb9YEochsDRF3e9wUaoRIUCPihtB5_UWnzY83CxAR/s400/arduino6.png" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
If you would like to verify that the contents of the cpu match the intended configuration loaded in your programmer you can perform a verification by typing v and pressing enter. This verification compares a 1 bit parity per byte calculated internally by the security module against the encryption configuration in your Arduino. </div>
<div>
<br /></div>
<div>
WARNING: This verification procedure is 100% safe in FD1094 modules. Unfortunately this is not the case with FD1089 modules as the verification will delete the data inside your module, please do not attempt verification with any valuable FD1089 modules especially if currently undumped or not preserved in Mame. </div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<h2>
Final words</h2>
</div>
<div>
<br /></div>
<div>
This is all there is to preserving your Sega FD1089 / FD1094 modules as working units, we hope this milestone will help you and the rest of the arcade community preserve your loved games as originals and stop the general discarding of Sega Hitachi modules. </div>
<div>
<br /></div>
<div>
As mentioned in the opening of this post, a number of follow up articles in this blog will reveal the inner workings and curiosities of these artfully crafted security modules. </div>
<div>
<br /></div>
<div>
Happy preservation. </div>
<div>
<br /></div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com24tag:blogger.com,1999:blog-1981425846546053493.post-57030721763167973212018-06-05T13:30:00.002+02:002018-06-05T13:30:56.061+02:00Sega System 16 Security Reverse Engineering<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPHSNMKBA54yYTThOnVDfCva6mEWxbSwcbApT_p6GaZTYQHXLQdB334rfvUX2_mvyMyDXsErdXeI__TL61RxQaQk1FudXVcK6E6v2pYWeOhGqEnHe3uABEGOhm9LK3cqw5Ov8u0i4ONk9B/s1600/sega-programmer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="623" data-original-width="971" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPHSNMKBA54yYTThOnVDfCva6mEWxbSwcbApT_p6GaZTYQHXLQdB334rfvUX2_mvyMyDXsErdXeI__TL61RxQaQk1FudXVcK6E6v2pYWeOhGqEnHe3uABEGOhm9LK3cqw5Ov8u0i4ONk9B/s320/sega-programmer.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Dear all,<br />
<br />
I'm glad to announce the successful reverse engineering of Sega's System 16 cpu security modules. This development will enable collectors worldwide preserving hardware unmodified, and stop the general discarding of Hitachi FD modules.<br />
<br />
The project is right now involving external testers so expect further details and full disclosure over the coming weeks.<br />
<br />
Eduardo.<br />
<br />
Project credits: Eduardo Cruz, Rockman (Pere Vicién), Digshadow, with support from Shinichiro Baba, Ricardo Fernandez-Vega, Andrew Welburn and other kind donators.<br />
<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/OEys5_VAD38" width="480"></iframe></div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com13tag:blogger.com,1999:blog-1981425846546053493.post-45020474953820662472018-05-30T23:05:00.000+02:002018-06-01T08:31:40.570+02:00A Journey Into Capcom's CPS2 Silicon - Part 3<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Welcome to the third and last post in the Capcom CPS-2 reverse engineering series, if you missed any of the previous post you can find them here:</span><br />
<br />
<ul>
<li><a href="http://arcadehacker.blogspot.com/2017/03/a-journey-into-capcoms-cps2-silicon.html">Part 1</a></li>
<li><a href="http://arcadehacker.blogspot.com/2018/01/a-journey-into-capcoms-cps2-silicon.html">Part 2</a></li>
</ul>
<div>
<b><br /></b></div>
<div>
<b>Hunting Capcom's Secrets</b></div>
<div>
<br /></div>
<div>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;">For many years, finding how and where did Capcom hid away its security implementation has been a pending critical task for the arcade community. CPS2 systems running out of battery were rendered useless forcing collectors worldwide to perform board conversions or let go of their favorite games. </span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUhd2ID2R-jnOwsI1DWMeV8OKAwgvFzX2PDC2N1KTM8Rh8aM5vVi07m5E5UCNjPeDTvqV_UshWqQ5BpsRO5216zjODQD6gkzUU4Qi3YIFx10Ma_MQdHcHHE9hiogggSk4r1rVVI270Ipn8/s1600/cps2-battery.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="347" data-original-width="587" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUhd2ID2R-jnOwsI1DWMeV8OKAwgvFzX2PDC2N1KTM8Rh8aM5vVi07m5E5UCNjPeDTvqV_UshWqQ5BpsRO5216zjODQD6gkzUU4Qi3YIFx10Ma_MQdHcHHE9hiogggSk4r1rVVI270Ipn8/s320/cps2-battery.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Typical CPS2 3.6 volts battery made by Hitachi Maxell Ltd in Japan</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">The battery featured in CPS2 systems is found on the top B board, and it powers a grid that reaches all of the B board customs chips while the board is at rest. During normal operation battery drain is stopped and regular voltage is supplied.</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Thanks to Capcom's friendly implementation, battery replacing is a relative safe operation as one is able to switch such battery without fearing instant game death. A capacitor found next to the battery is able to keep things running for a good few minutes until a fresh replacement is soldered. </span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitCeHaYcaDtaw0HA_Y3QOqlkt6RoNHNaM-Ex_jFKiYRHLKZLdHgvfx32uw_HKSKIdIJbrS94iVy26cPDMG_XDlBxH4pST3NQTb1BJBahVmCzuuETeTSaa5iCSSFrbNg-obOHIkDQWmtXWN/s1600/IMG_7841.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitCeHaYcaDtaw0HA_Y3QOqlkt6RoNHNaM-Ex_jFKiYRHLKZLdHgvfx32uw_HKSKIdIJbrS94iVy26cPDMG_XDlBxH4pST3NQTb1BJBahVmCzuuETeTSaa5iCSSFrbNg-obOHIkDQWmtXWN/s400/IMG_7841.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Battery voltage measured before distribution to one of the CPS2 custom chips</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">This grid and the fact Capcom pushes battery power to all custom chips in the board is a deliberate smoke and mirrors exercise in an attempt to deter any curious parties by multiplying the number of possible target chips. </span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Earlier security implementations by Capcom such as Kabuki or CPS1 lack this grid scheme and just feature a direct correspondence between the battery and security chip target using it. </span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<br />
<div>
<b>Pulling the string</b><br />
<b><br /></b>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">A clue as to where </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">CPS2 systems hid security came with the introduction of B board revision 5 (93646B-5), from this revision on a little JST NH 6 pin connector was added featuring a number of known and unknown pcb signals. </span></span><br />
<br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Previous to board revision 5 these signals have been found to exist at one of the large base connectors, more specifically base connector CN2.</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFbpyrcbgJcDBEeVoaojMmb046rVQ4BFpZMiRoD3SYuDnQN90wglL30geE9o7uvR1SVsHlH_ztEavEGDyeh3W1d__jNLt-TQvTbP7M84aezvbsH71ft68eealfdDg4lW-ejXBLbcXyao2-/s1600/CN9.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="465" data-original-width="733" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFbpyrcbgJcDBEeVoaojMmb046rVQ4BFpZMiRoD3SYuDnQN90wglL30geE9o7uvR1SVsHlH_ztEavEGDyeh3W1d__jNLt-TQvTbP7M84aezvbsH71ft68eealfdDg4lW-ejXBLbcXyao2-/s320/CN9.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CN9 as found in CPS2 B board revisions 5 and up</td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9rfJ7WHa8XIBTTWZdGlEJZ3yXWIWgsi-9Gk3UVtHQ0M9msv21KGivV0H2358CVCVmqEluq-ptu8BUz954I-puA5hnwCpsgvabMDsrtYUJipeEVK_KughXRlNruPBZ2V1gtTbomJ_5N-df/s1600/cn2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="373" data-original-width="1600" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9rfJ7WHa8XIBTTWZdGlEJZ3yXWIWgsi-9Gk3UVtHQ0M9msv21KGivV0H2358CVCVmqEluq-ptu8BUz954I-puA5hnwCpsgvabMDsrtYUJipeEVK_KughXRlNruPBZ2V1gtTbomJ_5N-df/s400/cn2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CN2 base connector at a CPS2 B board revion 4</td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Why would Capcom move these signals into an simpler and more readily accesible connector? If you think in terms of producing, distributing and maintaining tens of thousands of game boards, the move speaks loud of operational and logistics convenience. </span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Ever scalable, simpler and less expensive processes is a top of mind item for past and present organizations worldwide.</span></div>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Still a relevant question remained over time: What was behind connector CN9? No game or board feature was known to make any use of it, even worst, any adventurous individuals messing around would quickly find out that playing with this connector ended up </span><span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">mysteriously </span><span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">killing the game. A </span><span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">clear indication about this connector being somehow related to the security implementation of the CPS2 system.</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<b>Behind CN9</b><br />
<b><br /></b>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;">A quick analysis of CN9 revealed the following findings:</span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzEJMwIyz_QY7UrykjfIMmP0M-eFrMdXYvJk0gGIxyhZiD7HZSylJUuRG1LQl1ypHguUmKRtQAbiCIpead_6Q5yzw4vWw4eCX710LmwUGhJQq6_KWBNAcQByDLhzo3WTSzNcMoDL5zsnfF/s1600/CN9+analysis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="204" data-original-width="335" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzEJMwIyz_QY7UrykjfIMmP0M-eFrMdXYvJk0gGIxyhZiD7HZSylJUuRG1LQl1ypHguUmKRtQAbiCIpead_6Q5yzw4vWw4eCX710LmwUGhJQq6_KWBNAcQByDLhzo3WTSzNcMoDL5zsnfF/s320/CN9+analysis.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Looking at the list above, pins 1, 5 & 6 carry well known signals involved in the most basic life elements of a game pcb: VCC & GND (Power), and /Reset. Without these it is materially impossible for a game to operate, therefore very relevant signals. </span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;"><br /></span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-size: 13.2px;">The remaining pins 2, 3 & 4 don't seem to be driven as no signal is present during operation, most likely inputs with their purpose being unknown. Following the traces for these pins we quickly find them leading onto the adjacent custom chip DL-1827, and no where else. </span></span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-size: 13.2px;"><br /></span></span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-size: 13.2px;">Eureka? Time to find out what's behind this IC.</span></span></span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjKuej6Q3kdO0Q_ASyw9E6MoYR0fd1PSF2GzoP1uvtKdo0lDbaqpjAqclsctNsd3hlDvePikD5y0ydDIaT7a6_Ru5vIcW07De1887V3Ust74ulT_QgdIOW5PKQTWdvIGqeoA_QLw13iAr0/s1600/CN9-DL1827.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="137" data-original-width="406" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjKuej6Q3kdO0Q_ASyw9E6MoYR0fd1PSF2GzoP1uvtKdo0lDbaqpjAqclsctNsd3hlDvePikD5y0ydDIaT7a6_Ru5vIcW07De1887V3Ust74ulT_QgdIOW5PKQTWdvIGqeoA_QLw13iAr0/s400/CN9-DL1827.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CN9 pins 2, 3, & 4 interface with DL-1827 pins 131, 132 and 69</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b><br /></b>
<b>Inside Capcom's DL-1827</b><br />
<b><br /></b><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;">Microscope inspection of DL-1827 revealed a made to order gate array chip manufactured by Fujitsu, more specifically a CG24 series gate array model 692 built on a 0.8 micron CMOS process technology. More information on these chips and gate array technology available on the <a href="http://arcadehacker.blogspot.com/2018/01/a-journey-into-capcoms-cps2-silicon.html" target="_blank">previous</a> series post. </span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEP8c3E2rU17n7TIqdw7IYn1mtpAQ0JgyHdq1UsL6T1av0zTlXtyuUdSj8IqqEWumoEqddtgrikHhrXbyk2oR2SCao5txzi7jaz_DRKtvEdnP2qy3zFHJf_LoJ09wvadeSdCk9_eUbAGK2/s1600/Capcom+DL-1827.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="522" data-original-width="894" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEP8c3E2rU17n7TIqdw7IYn1mtpAQ0JgyHdq1UsL6T1av0zTlXtyuUdSj8IqqEWumoEqddtgrikHhrXbyk2oR2SCao5txzi7jaz_DRKtvEdnP2qy3zFHJf_LoJ09wvadeSdCk9_eUbAGK2/s320/Capcom+DL-1827.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Manufacturer marks inside Capcom DL-1827 </td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-size: 13.2px;"><br /></span></span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white;"><span style="font-size: 13.2px;">Further inspection of the chip logic revealed a shocking finding: DL-1827 is a mere middle-man making no use of such signals. In essence the chip verifies that the board is powered up and drives a passthrough for connector CN9 signals #2, #3 & #4 among several other. The target of such signals entering and exiting DL-1827 is revealed to be the adjacent chip DL-1525.</span></span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;"><br /></span></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmi9bDOuzBV1hAbdPBjn4jOgbNe8DiXLWu7Tkt6namZlYXFY4YovPkmpLop-f3rI94NviOgvrryonIldg-wc9Pw0x9ioTWnj6XVvTbgLUF20ovyYv_CWiLaKAwnuablwtjL6lrX_ghD3Lg/s1600/capcom-proxy.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1131" data-original-width="1335" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmi9bDOuzBV1hAbdPBjn4jOgbNe8DiXLWu7Tkt6namZlYXFY4YovPkmpLop-f3rI94NviOgvrryonIldg-wc9Pw0x9ioTWnj6XVvTbgLUF20ovyYv_CWiLaKAwnuablwtjL6lrX_ghD3Lg/s400/capcom-proxy.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">DL-1827 acts as a passthrough of CN9 signals onto chip DL-1525</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">The following chart below summarizes how CN9 signals travel until reaching out its destination at chip DL-1525. The analysis discovered that Capcom intentionally used chip DL-1827 to hide away the real security target in CPS2 systems.</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzmPolFfXhrQYzIPYbjAN7_veG7tJnzEIlpJiKHUrDVQs-a1xPuisDWxFTXCu2rtJwgtMfoPEe_3gxeHu7m1QZ5YAMok8Jni27A7bzICYFdqcWucSaoMBxuYRPTXFb3BpwnGCq56ygEa4I/s1600/pinout2.png" imageanchor="1" style="font-family: times; font-size: medium; margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="297" data-original-width="656" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzmPolFfXhrQYzIPYbjAN7_veG7tJnzEIlpJiKHUrDVQs-a1xPuisDWxFTXCu2rtJwgtMfoPEe_3gxeHu7m1QZ5YAMok8Jni27A7bzICYFdqcWucSaoMBxuYRPTXFb3BpwnGCq56ygEa4I/s400/pinout2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CN9 signal journey summary</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span><b>Inside Capcom's DL-1525</b><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">As discussed in the previous post, DL-1525 hosts inside a massive die measuring around 7x7mm in size featuring a majestic Motorola 68000 megacell core surrounded by a vast 3-layer gate array. Inside of this sea of gates one area in particular hosts a large section of memory registers used to store some configuration settings and the game encryption keys. </span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">A total of 158 bits (1 bit per memory register) are chained together in a serial train to compose the memory block used as part of these settings found in CPS2 security.</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQaofQmtG5z9TQiQrHyWWnH-PHbAYbn1WPRa4kNB7eEt9BsRmBek-C-7oAxD9qdXwESLft82Aen15twoqRlV21u1OW0Fa7jtH6ydSakggzLzup8YUX5BIHaG4h9kjDRN9iWuxsUMRPPjh3/s1600/1525.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1116" data-original-width="1127" height="395" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQaofQmtG5z9TQiQrHyWWnH-PHbAYbn1WPRa4kNB7eEt9BsRmBek-C-7oAxD9qdXwESLft82Aen15twoqRlV21u1OW0Fa7jtH6ydSakggzLzup8YUX5BIHaG4h9kjDRN9iWuxsUMRPPjh3/s400/1525.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">DL-1525 Motorola H4C057 class gate array, memory dedicated array area highlighted.</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>A closer look of the area shows the structures identified as memory registers.<br />
<br /></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYhIteYJitbBXHvziKf2jUa5wvio3feZQHGY-WXeD3INnMc5nwUFcoxuhwPKVIwXB8cnjrRZC6khK7ie2CdAcmp_O8HlY76ZKiQP1x7Afy2v5RMD2P2ljqFavXxPsFETISK3qYD0zOzD9R/s1600/deepdive.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="975" data-original-width="1500" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYhIteYJitbBXHvziKf2jUa5wvio3feZQHGY-WXeD3INnMc5nwUFcoxuhwPKVIwXB8cnjrRZC6khK7ie2CdAcmp_O8HlY76ZKiQP1x7Afy2v5RMD2P2ljqFavXxPsFETISK3qYD0zOzD9R/s400/deepdive.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Group of gate array memory registers highlighted in purple and green.</td></tr>
</tbody></table>
<br />
Below, verification of such structures in the simulator reveals the memory registers as D type flip-flops. Top right of the image: 20x chip gate array area capture of a flip-flop memory register.<br />
Top left and bottom images: logic simulation for verification purposes.<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkVRFH7DC9rbvFBx-4phXSPzPldKDYXDkChC_iZYK9wfwjGhlG4H-AL05cjhCHZj_OfM4HGlmmgE50Vl5gjc8tTw8cUtg44hr4ewCOejYGnjNo_MFNANogAAdzw-wSzR8EOmwo3uZwFZ1u/s1600/registrer.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1127" data-original-width="1504" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkVRFH7DC9rbvFBx-4phXSPzPldKDYXDkChC_iZYK9wfwjGhlG4H-AL05cjhCHZj_OfM4HGlmmgE50Vl5gjc8tTw8cUtg44hr4ewCOejYGnjNo_MFNANogAAdzw-wSzR8EOmwo3uZwFZ1u/s400/registrer.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS2 DL-1525 gate array D type flip flop overview and simulation</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>Example of how one of the CN9 signals enters the DL-1525 chip: Bottom left in yellow CN9 #3 enters DL-1525 through pin 9 and is driven through a buffer for signal amplification purposes. After that the signal goes straight into the first memory register enable input, then connected to the rest of registers as a series of chains.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrpxzLAG3mNWDe9r7_g51nH7H3KsbeXiZx9dFyPPXePGdWl6UAHTKkEBS3Vdls2md2dH0jxvcb9wUryCgrEYACoCuStV2XWcUl2wFAUjQOOvvUKlKMbbZnNoNV4VsLCxJgR8FydBSKvlHW/s1600/pin9.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="758" data-original-width="1500" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrpxzLAG3mNWDe9r7_g51nH7H3KsbeXiZx9dFyPPXePGdWl6UAHTKkEBS3Vdls2md2dH0jxvcb9wUryCgrEYACoCuStV2XWcUl2wFAUjQOOvvUKlKMbbZnNoNV4VsLCxJgR8FydBSKvlHW/s400/pin9.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Overview of CN9 #3 signal entering DL-1525 through pin 9</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;"><b>Structure of the memory</b></span></span><br />
<br />
The 158 bits used in CPS2 security configurations are structured in 4 differentiated blocks. One of them is dedicated to configuration settings while another three contain specific encryption information such as the pair of encryption keys.<br />
<br />
From the outside configurations are stored in the chip via serial a protocol in bit reverse order, while the system inside access the information in full parallel mode (all bits at once).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1mNjSQmNCljYxmlrAIxe6iTDgT70T-LkJP9rZ132av5iw6Pd5XdvjsZh2zKsyaWtG6P0lMoBe140kummYe0fpTLMSTpeiZnML9YQvXsZzFvRx-vaH3qs9JYVytlxNBcNTPJ3WtaGRhdm0/s1600/cps2+configuration.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="752" data-original-width="639" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1mNjSQmNCljYxmlrAIxe6iTDgT70T-LkJP9rZ132av5iw6Pd5XdvjsZh2zKsyaWtG6P0lMoBe140kummYe0fpTLMSTpeiZnML9YQvXsZzFvRx-vaH3qs9JYVytlxNBcNTPJ3WtaGRhdm0/s400/cps2+configuration.png" width="338" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Example CPS2 internal configuration for the game sfz2alh </td></tr>
</tbody></table>
<br />
As displayed above a number of bits in the first block are of unknown purpose, from here i'd like to invite any brave readers to venture in finding their exact use and functionality.<br />
<br />
All information regarding how to write CPS2 security configurations can be found <a href="http://arcadehacker.blogspot.com/2016/09/capcom-cps2-security-programming-guide.html" target="_blank">here</a>.<br />
<br />
<br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="background-color: white; font-size: 13.2px;"><b>Closing words</b></span></span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
Working on unraveling the mysteries behind the CPS2 security implementation has been an amazing challenge and journey for me. I'd like to thank every person that has participated, helped or backed the project in any way, specially to those deeply involved: Artemio Urbina, Ian Court and Digshadow.<br />
<br />
The arcade legacy still has a great number of preservation challenges waiting to be addressed that will keep us entertained for while. I look forward to share new and exciting projects with you in the near future.<br />
<br />
Eduardo.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</div>
<style>
<!--table
{mso-displayed-decimal-separator:"\.";
mso-displayed-thousand-separator:"\,";}
@page
{margin:1.0in .75in 1.0in .75in;
mso-header-margin:.5in;
mso-footer-margin:.5in;}
td
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:12.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:Calibri, sans-serif;
mso-font-charset:0;
mso-number-format:General;
text-align:general;
vertical-align:bottom;
border:none;
mso-background-source:auto;
mso-pattern:auto;
mso-protection:locked visible;
white-space:nowrap;
mso-rotate:0;}
.xl63
{color:black;
font-family:Calibri;
mso-generic-font-family:auto;
mso-font-charset:0;
text-align:left;
vertical-align:middle;}
-->
</style>Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com12tag:blogger.com,1999:blog-1981425846546053493.post-26960490857883888052018-03-04T17:54:00.000+01:002018-03-05T00:45:57.349+01:00Is Your Gaming CRT Exposing You to X-Rays? Motivated by <a href="http://www.ukvac.com/forum/crt-and-xray-radiation_topic362289.html" target="_blank">this</a> discussion at UKVAC I decided to run a little experiment to find out if your typical gaming CRT leaks any measurable X-rays. Tan while having fun? Let's find out.<br />
<br />
<b>Test Setup </b><br />
<br />
My setup involved testing three tubes in my collection used from time to time for testing arcade pcbs, retro consoles, as well as micro computers. I believe these models are also commonly found among the gaming community and they should be somehow representative.<br />
<br />
In front of each tube an X-ray sensor is placed at different distances: 3cm, 30cm, 60cm. X-ray activity is sampled during 180 seconds during each run, then compared against ambient readings (tube turned off).<br />
<br />
Initially the X-ray sensor is left to warm up for a good 10 minutes to obtain constant ambient reads.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2wpVnfV76lxtipQpFY6p0W-YOJ93AAb_4g0LL7T0-8HhVX5w0XdLsSDc7vuo7O_tzYSV9JJzSlAWecpxutkHDU6cEQXQ433Ied2g9spcFnWSMYIrED-7YCoNsRycAUigvGWkh-bI3W74W/s1600/IMG_7464.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="640" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2wpVnfV76lxtipQpFY6p0W-YOJ93AAb_4g0LL7T0-8HhVX5w0XdLsSDc7vuo7O_tzYSV9JJzSlAWecpxutkHDU6cEQXQ433Ied2g9spcFnWSMYIrED-7YCoNsRycAUigvGWkh-bI3W74W/s320/IMG_7464.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">NEC XM29</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU5zotICXS7LOcnJ9nkpKYu5XwNxpjJE1_pcS8OwS1Nxy2TBrtqVT0FIWEbcW4EKY8pMC32WXqww_OjWlliftr6-5iBE3lG4p2lZDB9buPFKrxVQ57ZXW8g2cUZGmVNkYUGGMnbA0Fl3Lw/s1600/IMG_7466.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="480" data-original-width="640" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU5zotICXS7LOcnJ9nkpKYu5XwNxpjJE1_pcS8OwS1Nxy2TBrtqVT0FIWEbcW4EKY8pMC32WXqww_OjWlliftr6-5iBE3lG4p2lZDB9buPFKrxVQ57ZXW8g2cUZGmVNkYUGGMnbA0Fl3Lw/s320/IMG_7466.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sony BVM-20F1E</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_cTE-jbkUKo_cANhYwoOjcayYXATiL2tZirjokOlG6Jkrh2ds0FNb22YDJOmwebmU6oWMXv53r-TgY8vjhCzsodp0bV_9WiCZyrHiYW9cNsULEgNIoJjyKSKsj-AOCfRraGOT0OBaU12/s1600/IMG_7468.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="640" data-original-width="480" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz_cTE-jbkUKo_cANhYwoOjcayYXATiL2tZirjokOlG6Jkrh2ds0FNb22YDJOmwebmU6oWMXv53r-TgY8vjhCzsodp0bV_9WiCZyrHiYW9cNsULEgNIoJjyKSKsj-AOCfRraGOT0OBaU12/s320/IMG_7468.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Toshiba A68 CRT (NANAO MS9) on a New Astro City cab</td></tr>
</tbody></table>
<b><br /></b>
<b>The Results</b><br />
<b><br /></b>
I'm afraid to break the news but... there's no such thing as a free tan while retro gaming. At no time any of the tubes tested presented any abnormal sensor reads indicating the presence of X-rays. To put things into perspective I have included a table below comparing the different scenarios together with reads of the sensor exposed to radiation from a controlled x-ray source.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtD0wajUIrWRSn3n4430XLvOYPRH2ldUOaRG6iHU6eP5-UWjEQ3mWTsp4MuGIAUPumRRiV499nUwxkVRy6onju6jGmy-A7-YnipDKk4nG40MYJW76Iq2eBNIg0WCCuTcd1u7gWhbzxjjQ3/s1600/xray+crt+results.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="435" data-original-width="710" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtD0wajUIrWRSn3n4430XLvOYPRH2ldUOaRG6iHU6eP5-UWjEQ3mWTsp4MuGIAUPumRRiV499nUwxkVRy6onju6jGmy-A7-YnipDKk4nG40MYJW76Iq2eBNIg0WCCuTcd1u7gWhbzxjjQ3/s400/xray+crt+results.png" width="400" /></a></div>
<br />
I'm no expert on this matter, but even if the energies inside the tube are high enough to produce X-rays, the glass in your CRT has lead in it to block those from reaching you. Perhaps someone with enough expertise could confirm these assumptions.<br />
<br />
Happy safe gaming.<br />
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com3tag:blogger.com,1999:blog-1981425846546053493.post-67048390637017354422018-01-02T02:58:00.001+01:002018-05-30T23:07:13.480+02:00A Journey Into Capcom's CPS2 Silicon - Part 2<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Welcome to the second post in the Capcom CPS-2 reverse engineering series, if you missed the previous post you can find it here:</span><br />
<br />
<ul>
<li><a href="http://arcadehacker.blogspot.com/2017/03/a-journey-into-capcoms-cps2-silicon.html">Part 1</a></li>
</ul>
<br />
<b>Inside the custom chips of CPS2</b><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXgh2JMkUSw5V_JmSOxF_a9Q9RHlft6W9AZsj_9bU9tAwYsFTdjAurWz9YaXzyeY76nEIEAkgk-aLfQwQF-66-zMfBIQEysrPc5jZ56dmB4rKxswaZa_Q9Z8AaaBeM9wczT74px-LsvLGa/s1600/capcom_dl1727.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="403" data-original-width="505" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXgh2JMkUSw5V_JmSOxF_a9Q9RHlft6W9AZsj_9bU9tAwYsFTdjAurWz9YaXzyeY76nEIEAkgk-aLfQwQF-66-zMfBIQEysrPc5jZ56dmB4rKxswaZa_Q9Z8AaaBeM9wczT74px-LsvLGa/s320/capcom_dl1727.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Capcom's Play System 2, also known as CPS2, was a new arcade platform introduced in 1993 and a firm call on bootlegging. Featuring similar but improved specs to its predecessor CPS1, the system introduced a new security architecture that gave Capcom for the first time a piracy-free platform. A fact that remained true for its main commercial lifespan and that even prevented projects like Mame from gaining proper emulation of the system for years.</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white;"><b>Chip Makers</b></span><br />
<span style="background-color: white;"><b><br /></b></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Capcom's extensive use of customs in CPS2 spreads over a total 11 QFP type chips, as part of this project each of the chips were decapped and identified as follows:</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><b>A board (Base board)</b></span><br />
<span style="font-size: x-small;"><br /></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;"><b>DL-0311: Ricoh A5C series, standard cells. (Also found in CPS1) <a href="https://ia800904.us.archive.org/35/items/bitsavers_ricohdataBonicDevicesDataBook_15960854/1988_Ricoh_Electronic_Devices_Data_Book.pdf" target="_blank">Datasheet</a></b></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;"><b>DL-0921: Ricoh A5C series, standard cells. (Also found in CPS1) <a href="https://ia800904.us.archive.org/35/items/bitsavers_ricohdataBonicDevicesDataBook_15960854/1988_Ricoh_Electronic_Devices_Data_Book.pdf" target="_blank">Datasheet</a></b></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;"><b>DL-1123: Hitachi HG62F series model 22, gate array. <a href="http://datasheet.datasheetarchive.com/originals/scans/Scans-100/DSAIHSC000138566.pdf" target="_blank">Datasheet</a></b></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;"><b>DL-1425: AT&T Digital Signal Processor WEDSP16A-M14. (Also found in CPS1.5) <a href="https://www.elektronik.ropla.eu/pdf/stock/att/wedsp16a.pdf" target="_blank">Datasheet</a></b></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;"><b>DL-1625: VLSI Technology (VTI) VGT300 series model 022, gate array. <a href="http://datasheet.datasheetarchive.com/originals/scans/Scans-001/Scans-0036211.pdf" target="_blank">Datasheet</a></b></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;"><b>DL-2227: Hitachi HG62E series model 08, gate array. <a href="http://www.alldatasheet.com/datasheet-pdf/pdf/122366/HITACHI/HG62E08.html?" target="_blank">Datasheet</a></b></span><br />
<div>
<div>
</div>
</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPclSL5S2Ez_X5XK4QELySufyB3P8iOhf57mIXugo4TP8duxiOkl-w4kZ8aU9eIiJG8ThkoxqQSLGNh14uai973K76yvcy-9RvRdT5un5PcLq4LkQMdJOfOGvEFmlgOnZaocqtWCCk_FNN/s1600/cps2-a-board-chipmakers.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="638" data-original-width="762" height="333" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPclSL5S2Ez_X5XK4QELySufyB3P8iOhf57mIXugo4TP8duxiOkl-w4kZ8aU9eIiJG8ThkoxqQSLGNh14uai973K76yvcy-9RvRdT5un5PcLq4LkQMdJOfOGvEFmlgOnZaocqtWCCk_FNN/s400/cps2-a-board-chipmakers.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS2 A Board 93646A-3 Custom chips highlighted</td></tr>
</tbody></table>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><b>B board (Top board)</b></span><br />
<br />
<span style="font-size: x-small;">DL-1525: Motorola H4C series model 057, gate array in combination with a 68000 cpu megacell (CPM68K REV7-89). <a href="http://www.icpdf.com/icpdf_datasheet_2_datasheet/H4C057-DIE_pdf_1816483/H4C057-DIE_1.html" target="_blank">Datasheet</a></span><br />
<span style="font-size: x-small;">DL-1727: Fujitsu CG24 series model 692, gate array. *</span><br />
<span style="font-size: x-small;">DL-1827: Fujitsu CG24 series model 692, gate array. *</span><br />
<span style="font-size: x-small;">DL-1927: Fujitsu CG24 series model 512, gate array. *</span><br />
<span style="font-size: x-small;">DL-2027: Fujitsu CG24 series model 512, gate array. *</span><br />
<div>
<div>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;"><br /></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: x-small;">* No datasheet available for the Fujitsu CG24 series, please share any.</span></div>
</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcQYtoLuH5O_xaRiOhjDF6To9TnnIeo-qQxvE4KrDWlUCwIMG4Cp_if-iFA2HiKhm6NtSyR3F-4Qg6T8b_-RWuDzBPEhhfH_ybzkYZvvnGsIxB6Rjpo1QUwwSdXjAoyFFwKKmvwhQskGgX/s1600/cps2-b-board-chipmakers.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="681" data-original-width="799" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcQYtoLuH5O_xaRiOhjDF6To9TnnIeo-qQxvE4KrDWlUCwIMG4Cp_if-iFA2HiKhm6NtSyR3F-4Qg6T8b_-RWuDzBPEhhfH_ybzkYZvvnGsIxB6Rjpo1QUwwSdXjAoyFFwKKmvwhQskGgX/s400/cps2-b-board-chipmakers.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS2 B Board 93646B-6 Custom chips highlighted</td></tr>
</tbody></table>
<span style="background-color: white;"><b><br /></b></span>
<span style="background-color: white;"><b><br /></b></span>
<span style="background-color: white;"><b>Gate Array technology</b></span><br />
<span style="background-color: white;"><b><br /></b></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Used in most CPS2 custom chips, a gate array circuit is a prefabricated silicon chip circuit with no defined functionality, in which transistors, standard NAND or NOR logic gates, are placed following a regular pattern and manufactured on a wafer, this half baked wafer is known as master slice.</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Common advantages of Gate Arrays designs over Full-Customs according to TU Delft:</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Minimization of the fabrication time: Because the chips are prefabricated (the transistors are already on the master image), the silicon foundry only processes the masks related to metal wires. As compared to full custom layout, the number of masks processed by the silicon foundry is often reduced by more than 60%.</span></span><br />
<br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Minimization of the design time: The time involved in designing a cell layout is reduced dramatically (as compared to full-custom) because the transistors are pre placed on the image. Typically, it takes only a few minutes to layout a flipflop or a combinatorial gate, and the designer does not need to know much about the process design rules.</span></span><br />
<br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Minimization of the chip cost: The layout design starts with a prefabricated master image. This is a semi-manufactured article that can be produced in large quantities. Consequently, it can be cheap.</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPmorpIztLmVKjRaueGZxABJctA0CmINsK6xqTVBcIwDfe2OrflaVaBqhqQqapl9a8AibMhLhRjjmSZJ8slkQx8LcxrXnKg-N7DeiNAH8JjMlJJl1rY84X6cqytLCD-HQH6SxVlLtpIVk2/s1600/compare.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="452" data-original-width="545" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPmorpIztLmVKjRaueGZxABJctA0CmINsK6xqTVBcIwDfe2OrflaVaBqhqQqapl9a8AibMhLhRjjmSZJ8slkQx8LcxrXnKg-N7DeiNAH8JjMlJJl1rY84X6cqytLCD-HQH6SxVlLtpIVk2/s320/compare.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Gate Array die size and development time compassion versus other chip design technologies</td></tr>
</tbody></table>
<br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"></span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">The Fujitsu gate array chips featured in CPS2's B board belong to the CG24 series and use a </span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">0.8 micron CMOS process. </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Fujitsu uses a block-level placement and routing scheme commonly known as "fishbone".</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrxKBNA0vKBsRgjUB86K_90gv6X6VZggYgKUDAaMQMwyEygTr6ECzN4pBZhqcTJqOoaIvyfGshyDNJG1PR7cj0cDXogIPdFY58LW5-TOP9J2mH4qEXTWz3TH4fLqL6xipUZ10_KW6wN9TV/s1600/fujitsu-cg24.png" imageanchor="1"><img border="0" data-original-height="312" data-original-width="589" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrxKBNA0vKBsRgjUB86K_90gv6X6VZggYgKUDAaMQMwyEygTr6ECzN4pBZhqcTJqOoaIvyfGshyDNJG1PR7cj0cDXogIPdFY58LW5-TOP9J2mH4qEXTWz3TH4fLqL6xipUZ10_KW6wN9TV/s400/fujitsu-cg24.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;">Markings inside CPS2 Gate Array chip DL-2027</td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"></span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmXO-_MwhMWhI5fbOFo9olYcceP07lYCPnJzxXLFc_BybKqzFqjwPOeyplOC7UEUpbClgnVS2r2cQI_DIonGdrtOn7uF3-JKSARV3qCAop_mDHHQRWt_AQPkjjon7OABz0bEv1R2a_hDgO/s1600/nand-gate-unwired.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="668" data-original-width="437" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmXO-_MwhMWhI5fbOFo9olYcceP07lYCPnJzxXLFc_BybKqzFqjwPOeyplOC7UEUpbClgnVS2r2cQI_DIonGdrtOn7uF3-JKSARV3qCAop_mDHHQRWt_AQPkjjon7OABz0bEv1R2a_hDgO/s320/nand-gate-unwired.png" width="209" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div style="font-size: 12.8px;">
Unwired section of NAND sea-of-gates inside a Fujitsu CG24 chip</div>
</td></tr>
</tbody></table>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwyRPPsRez1UiEkA6lJh85k8cNtv5P7I45DzrxF3m13_WHUnAOdkKTTwFdd5pcw1zZVDtjFyPN4Eptp-um03IB8SCgZsSmJExKP_Su15GPgpltG8FfBEHUjaURvXcbPyHsVlyTdJrOFfcv/s1600/inverter.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="527" data-original-width="508" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwyRPPsRez1UiEkA6lJh85k8cNtv5P7I45DzrxF3m13_WHUnAOdkKTTwFdd5pcw1zZVDtjFyPN4Eptp-um03IB8SCgZsSmJExKP_Su15GPgpltG8FfBEHUjaURvXcbPyHsVlyTdJrOFfcv/s200/inverter.png" width="192" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Logic inverter (NOT) implemented in Fujitsu's NAND sea-of-gates</td></tr>
</tbody></table>
<br /></div>
<div>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Fujitsu's gate array technology is discussed in more detail in 1978 USPTO patent </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">4,412,237: <a href="https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US4412237.pdf">https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US4412237.pdf</a></span></span><br />
<br />
<br />
<b>Capcom's deep pockets</b><br />
<br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Interestingly enough, several of the B board's chips used by Capcom show a very low utilization of resources being the worst offender chip DL-2027. In IC density terms its contents could be classified as mostly empty space. </span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">G</span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">iven the expensive nature of the end to end design and fabrication</span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"> of these devices one must think that perhaps Capcom's market successes enabled the company not to spare in resources.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYS3zL7B-20rZViEX9TfPU2a11bsuV8Jik4oTZDEguw0fT0jFTEk8Ezk54Zo5PEOf93wBRbflYvga_C0QM0s5wN7xx2dAdRUO8gbLfwWLPRpezth_A4efDgcIpcaD4skkBbMTtXyBl5mv2/s1600/dl2027-die-utilization.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="400" data-original-width="399" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYS3zL7B-20rZViEX9TfPU2a11bsuV8Jik4oTZDEguw0fT0jFTEk8Ezk54Zo5PEOf93wBRbflYvga_C0QM0s5wN7xx2dAdRUO8gbLfwWLPRpezth_A4efDgcIpcaD4skkBbMTtXyBl5mv2/s320/dl2027-die-utilization.png" width="318" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td class="tr-caption" style="font-size: 12.8px;">Highlighted in yellow: total die area utilization inside DL-2027 </td></tr>
</tbody></table>
</td></tr>
</tbody></table>
<span style="background-color: white;"><b><br /></b></span>
<span style="background-color: white;"><b><br />The Mysterious CPU</b></span><br />
<br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Contrary to popular belief, Capcom's CPS-2 cpu does not reside on the A bottom board of the system, instead the cpu is found on the B board and inside the big 208 pin QFP chip labeled as DL-1525. MAME's own <a href="https://github.com/mamedev/mame/blob/master/src/mame/drivers/cps2.cpp" target="_blank">documentation</a> on CPS-2 does not help this belief either as it also states the system cpu is DL-1625, an A board chip.</span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7b55ORZD0J0RqpSo35-tDkUs8hVjz0XtI65IT9tF9kGSME4ES2wReYOq9MR8NRTg_ADATG2qcmcJ_3U-q1lu_LlmeaIkiJ15a9VbdkZzAPJIIZ8IoHqbzKKNkIkW_Sr0r1Z0IRRUCvnjL/s1600/1525chip.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="494" data-original-width="586" height="269" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7b55ORZD0J0RqpSo35-tDkUs8hVjz0XtI65IT9tF9kGSME4ES2wReYOq9MR8NRTg_ADATG2qcmcJ_3U-q1lu_LlmeaIkiJ15a9VbdkZzAPJIIZ8IoHqbzKKNkIkW_Sr0r1Z0IRRUCvnjL/s320/1525chip.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Capcom DL-1525 dated 1993 week 51 source id JSX02RJ524AU03</td></tr>
</tbody></table>
<div>
<br /></div>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">DL-1525 hosts inside a massive die measuring around </span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">7x7mm in size featuring a majestic Motorola 68000 megacell core surrounded by a vast 3-layer gate array. This monster IC is based on the Motorola H4C gate array series and uses a gate length of 0.7 microns (700 nanometers). To date it is the smallest feature sized chip I have worked on since I began reverse engineering ICs.</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjOwltlwGHpqE_ddEP8mIwWrsG3nJVp8m_WPNJQajG-fPgeQ2hv60_mkW4y7x7Txkll-GWWyOA6YbvTMpoEoEDMLqeYfg7b6OjNNHpImh94cLlo1EXYKnOruhGhSYQsh3KJbEN8zKjxzh5/s1600/cps2-cpu.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="639" data-original-width="636" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjOwltlwGHpqE_ddEP8mIwWrsG3nJVp8m_WPNJQajG-fPgeQ2hv60_mkW4y7x7Txkll-GWWyOA6YbvTMpoEoEDMLqeYfg7b6OjNNHpImh94cLlo1EXYKnOruhGhSYQsh3KJbEN8zKjxzh5/s400/cps2-cpu.png" width="397" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">DL-1525 is a Motorola H4C057 class gate array in combination with a 68k cpu core (top right)</td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik1wFShQeda6NE1qGxSQK_3t2AA5wojnTplNdmOUf1uMXiHnENIdPt9K0nyY8AUmED2Dbh4gDq4PDDKTxLtSSkJbpuHExSzZ8lmbNJ2kKiL3fg39J2YM5a86LXpbXTt3S9UwkD_hmpPWCL/s1600/dl1525-section.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="363" data-original-width="388" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik1wFShQeda6NE1qGxSQK_3t2AA5wojnTplNdmOUf1uMXiHnENIdPt9K0nyY8AUmED2Dbh4gDq4PDDKTxLtSSkJbpuHExSzZ8lmbNJ2kKiL3fg39J2YM5a86LXpbXTt3S9UwkD_hmpPWCL/s200/dl1525-section.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Small section of DL-1525 captured at 50x magnification. Three routing metal layers are visible.</td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg11vd6ritAg1YaXWQnARkv89fNec8bYhUK04G9oNaVProqngHzQ_zQyl77j9ibuAMRf1bL5mu21QnCfdTMchKIYe3o0bXHQUP5EbZKAQOdH3sDdGJupHL21npzUJPDll9PfFCm-dR4-mdn/s1600/h4c-cross-section.png" imageanchor="1" style="font-family: Times; font-size: medium; margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="344" data-original-width="639" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg11vd6ritAg1YaXWQnARkv89fNec8bYhUK04G9oNaVProqngHzQ_zQyl77j9ibuAMRf1bL5mu21QnCfdTMchKIYe3o0bXHQUP5EbZKAQOdH3sDdGJupHL21npzUJPDll9PfFCm-dR4-mdn/s400/h4c-cross-section.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Cross-section view of a Motorola H4C gate array describing its composition</td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"></span></span><br />
<div style="text-align: center;">
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><b style="color: black; font-family: Times; font-size: medium;"><br /></b></span></span></div>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><b style="color: black; font-family: Times; font-size: medium;">DL-1525 Ancestry</b></span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">A newsletter from Dataquest from May 1988 traces back the origins of Motorola's blending of 68000 cores with gate arrays to the world of laser printers. An extract of such IC industry <a href="http://archive.computerhistory.org/resources/access/text/2013/04/102723402-05-01-acc.pdf">newsletter</a> reads as follows: </span></span><br />
<blockquote class="tr_bq" style="text-align: center;">
<span style="font-size: xx-small;"><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;">Motorola is designing gate-array-based interface chips for use in laser </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;">printers. The chips will contain a core of the 68000 microprocessor and the </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;">dedicated laser printer functions. The LPC-1 will have 5,000 gates and will be fabricated with a 2-micron CMOS technology, while the ALPC-1 will have </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;">16,000 gates and will be the first commercial application of Motorola's HDC </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;">series of 1-micron CMOS channelless architecture gate arrays. The LPC-1 is </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;">currently available in sample quantities; samples of the ALPC-1 will be </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;">available in December, with volume production scheduled for February 1989.</span></span></blockquote>
<div style="text-align: center;">
<br /></div>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">In fact, additional research shows chips with similar source identification marks to Capcom's DL-1525 have been in use in commercial laser printers such as models A258/A259/A260 made by Ricoh. The following <a href="https://www.distrivisa.com.br/blog/downloads/PartsCatalogs3006-4006.pdf" target="_blank">parts catalog</a> mentions at least two relevant ICs listed as follows:</span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-size: x-small;"> JSC05RR519AU15 208QFP // RICOH IPU BOARD A259 5146 / A260 5146</span><br />
<span style="font-size: x-small;"> JSC05SV519AY17 240QFP // Ricoh main control board A258 5090</span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Another close brother to DL-1525 is Motorola's own MC68302 "</span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Integrated Multiprotocol Processor" chip. This IC employs a similar gate array and embedding of a 68k cpu core inside. More details about it can be found in the following <a href="https://books.google.es/books?id=yEJBDwAAQBAJ&pg=PA170" target="_blank">document</a> and product <a href="https://www.nxp.com/docs/en/reference-manual/MC68302UM.pdf" target="_blank">manual</a>.</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP-2uO-TE1XdaDgi895lfNccPnUoLI7NOl8Lsbi1s5SZIOHgwlVpkNoSZc4H61HrlwYIgPHUJ32RzUmsrhlNxcPgy8f7nMIZ0FM8y5ym29eTZoHtFAPpnHiRNPcSh5M3sEaNxZlrb5-fnX/s1600/MC68302.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="265" data-original-width="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP-2uO-TE1XdaDgi895lfNccPnUoLI7NOl8Lsbi1s5SZIOHgwlVpkNoSZc4H61HrlwYIgPHUJ32RzUmsrhlNxcPgy8f7nMIZ0FM8y5ym29eTZoHtFAPpnHiRNPcSh5M3sEaNxZlrb5-fnX/s1600/MC68302.png" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8px;">MC68302 internals description found in "Image Processing For Future High Energy Physics Detectors"</td></tr>
</tbody></table>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Other chips from Motorola are known to exist with even closer source id numbers to Capcom's DL-1525, their purpose or end product usage are unknown: </span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="font-size: x-small;"> JSX02RJ514AU17 208QFP // H4C057-68K </span><br />
<b><span style="font-size: x-small;"> JSX02RJ524AU03 208QFP // Capcom CPS2 DL-1525</span></b><br />
<span style="font-size: x-small;"> JSX05PR511AW26 144QFP</span><br />
<span style="font-size: x-small;"> JSX05PR511AW27 No info</span><br />
<span style="font-size: x-small;"> JSX38PG511AJ03 No info</span><br />
<br />
<br />
<b>DL-1525 in the wild</b><br />
<b><br /></b>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">Another interesting finding regarding DL-1525 was the availability of chip stock in </span></span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">Alibaba.com </span><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">marketplace, during March of 2017 and to test the listing veracity I was able to successfully purchase brand new stock of JSX02RJ524AU03 from a Chinese reseller. At the time of writing of this blog post such stock seems to be still </span></span><a href="https://www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&CatId=&SearchText=JSX02RJ524AU03" style="color: #666666; font-family: "trebuchet ms", trebuchet, verdana, sans-serif; font-size: 13.2px;" target="_blank">listed</a><span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"> on sale online. This chip doesn't seem to be the only Capcom device being sold in the wild, other chip codes are available to purchase online. </span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;">I guess this is of no commercial relevance to Capcom anymore, but overall it doesn't show great asset control practices.</span></span><br />
<span style="color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif;"><span style="font-size: 13.2px;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie1SnhU__km5BSt9sO5s2a7b_Zz0pC_1aVLctPJjvAh8HIIg6YJoPDJ2e-lSxtogQJ92XAxsopjtn6GJtDHV467QgZVm6DXkmkMqxj6ZbBBL-HXPq6gnM-WYCwjwgs3Vo4i3YFYmydGKOZ/s1600/capcomc+cps2+dl-1525+cpu.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="367" data-original-width="713" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie1SnhU__km5BSt9sO5s2a7b_Zz0pC_1aVLctPJjvAh8HIIg6YJoPDJ2e-lSxtogQJ92XAxsopjtn6GJtDHV467QgZVm6DXkmkMqxj6ZbBBL-HXPq6gnM-WYCwjwgs3Vo4i3YFYmydGKOZ/s400/capcomc+cps2+dl-1525+cpu.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Two NOS units of Capcom's DL-1525 chip sourced from China, chips dated 1998 week 24</td></tr>
</tbody></table>
</div>
<div>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;">This is all for now, I hope you have enjoyed Part 2 of the CPS2 reverse engineering series. On the next post we will explore how and where Capcom hided its CPS2 security implementation. Stay tuned.</span><br />
<span style="background-color: white; color: #666666; font-family: "trebuchet ms" , "trebuchet" , "verdana" , sans-serif; font-size: 13.2px;"><br /></span>
<span style="color: #666666; font-family: trebuchet ms, trebuchet, verdana, sans-serif;"><span style="background-color: white; font-size: 13.2px;"><a href="http://arcadehacker.blogspot.com/2018/05/a-journey-into-capcoms-cps2-silicon-part3.html" target="_blank">Part 3</a></span></span></div>
<span style="background-color: white;"><span style="color: #222222; font-family: "arial" , sans-serif;"><br /></span></span>Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com17tag:blogger.com,1999:blog-1981425846546053493.post-35967930238462222242017-03-20T22:08:00.000+01:002018-05-30T23:08:09.712+02:00A Journey Into Capcom's CPS2 Silicon - Part 1<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRl-JBjwxmiK-9d1WLdJ9sRIT8rYB6hyphenhyphenJPN9ahk_RQjNrVv5kze1YRQsgm7Ljt1e-25LUYvWpeBe4H9P394BoIqlMUeDshOHPGUIG-K4Jzm9w_GDT8VSI_PzAOZeGxiWcDSMMLulzIeoEe/s1600/cps2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="capcom cps2" border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRl-JBjwxmiK-9d1WLdJ9sRIT8rYB6hyphenhyphenJPN9ahk_RQjNrVv5kze1YRQsgm7Ljt1e-25LUYvWpeBe4H9P394BoIqlMUeDshOHPGUIG-K4Jzm9w_GDT8VSI_PzAOZeGxiWcDSMMLulzIeoEe/s320/cps2.jpg" title="capcom cps2" width="320" /></a></div>
<br />
Capcom's Play System 2, also known as CPS2, was a new arcade platform introduced in 1993 and the company call on bootlegging. Featuring similar but improved specs to its predecesor CPS1, the system introduced a new security architecture that gave Capcom for the first time a piracy-free platform. A fact that remained true for its entire commercial lifespan and that later on it even prevented projects like Mame from gaining proper emulation of the system for years.<br />
<br />
Whereas CPS1 philosophy on protection had to do mainly with providing a mechanism to control game pcb conversions, CPS2 instead brought back the focus to cpu code encryption just like its old ancestor Kabuki and Capcom's first go on security. Using a similar approach to Kabuki, CPS2 employs battery backed ram hidden away from user access, once this battery runs out the information needed to run the game is lost with it rendering the game unusable for life.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8-bNOq3wr7W4jZYFBgCYGOqzll1HfAktKgo8YVQnhV183zlHr9AfqsdFkkR2d1JiElDNs5RcWKH7Nn1UTNMYvKvekR7FoObnySzm8cZurM63SKDn1HcH-nXIhIUmSJ5Nd3qCIpVRNHRKK/s1600/arccapcomcps2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8-bNOq3wr7W4jZYFBgCYGOqzll1HfAktKgo8YVQnhV183zlHr9AfqsdFkkR2d1JiElDNs5RcWKH7Nn1UTNMYvKvekR7FoObnySzm8cZurM63SKDn1HcH-nXIhIUmSJ5Nd3qCIpVRNHRKK/s320/arccapcomcps2.jpg" width="320" /></a></div>
<br />
Enclosed in a plastic shell, CPS2 retains CPS1's characteristic 2-layer pcb assembly style consisting on a base board known as A board, and a game board known as B board. Some later games added additional boards featuring expanded memory and cross-game communication capabilities. The two most important differences of this new generation system are: 1) the A board no longer features the system main cpu, this is now moved to the top B board, and 2) the amount of custom chips has grown considerably as seen in the images below.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2O5v5kjcUIy0SMJpAwrh_rQopIQ10pH71-5J4DX03ZFQn4a_Nkp4bmNKtkLBnOccj7LE97aTb-bcLJbPNrLnfTiu1uT8KY8VdApmexep8p0vAoHIPnW5LGTlJ7YyEdo6zfS0UmL2Dyjmw/s1600/aboard.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2O5v5kjcUIy0SMJpAwrh_rQopIQ10pH71-5J4DX03ZFQn4a_Nkp4bmNKtkLBnOccj7LE97aTb-bcLJbPNrLnfTiu1uT8KY8VdApmexep8p0vAoHIPnW5LGTlJ7YyEdo6zfS0UmL2Dyjmw/s400/aboard.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS2 A base board outside of its plastic shell</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4bV0zn9jFvlqD5OpCR1lkP-rYZizXNYcB1FCVG1douIjRFn_-76eb6eUrMEN9l3WM64dpq14GmAhIxCN1Ip-HEcrT8aM49BW6NldCOk4U551GvlJ2mD2ifkvs3JkcabUltVcJ7dUzzsVR/s1600/bboard.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4bV0zn9jFvlqD5OpCR1lkP-rYZizXNYcB1FCVG1douIjRFn_-76eb6eUrMEN9l3WM64dpq14GmAhIxCN1Ip-HEcrT8aM49BW6NldCOk4U551GvlJ2mD2ifkvs3JkcabUltVcJ7dUzzsVR/s400/bboard.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS2 B top board removed from its plastic shell</td></tr>
</tbody></table>
<br />
A later cost down revision of CPS2 shrank the pcb stack to just one pcb enclosed in a metal black case. Most roms also replaced by a single flash memory module, a technology introduced first in Capcom's CPS3 system in 1996.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/BDdOxEYsmqrqszRT_oOJnX8dnK3JVOePiQDF3GEnpRM95FV0flwlr5Klntx9MCWWM8laPqVpMOAjtYrTXDaWOk-v-lU65Qv2tPhgo5lgZsloIahJmCTEezzTT3xHPjM_BVxWn4Ag" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://1.bp.blogspot.com/BDdOxEYsmqrqszRT_oOJnX8dnK3JVOePiQDF3GEnpRM95FV0flwlr5Klntx9MCWWM8laPqVpMOAjtYrTXDaWOk-v-lU65Qv2tPhgo5lgZsloIahJmCTEezzTT3xHPjM_BVxWn4Ag" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"All-in-one" CPS2 cost down revision removed from its case</td></tr>
</tbody></table>
<b><br /></b>
<b><br /></b>
<b>Encryption meets conservation</b><br />
<br />
First attempts to take control of the platform started circa 1999 by the CPS-2 Shock team, with early emulation following soon in the year 2001 right at the end of its commercial lifecycle. The platform saw one last commemorative game title release from Capcom in December of 2003: Hyper Street Fighter II: The Anniversary Edition, so technically speaking emulation did happen during its commercial life.<br />
<br />
A bug found in Capcom's security implementation allowed unencrypted memory dumping on the fly, this discovery enabled the CPS-2 Shock team to retrieve clear program code dumps that led to the production of non-encrypted game rom sets for emulation and dead board "phoenixing", a term used by the arcade community referring to game boards altered to run unencrypted game code.<br />
<br />
Thanks to these efforts emulation became possible and countless CPS2 dead boards were converted to run unencrypted versions of games thus saved from hitting the bin.<br />
<br />
Capcom's encryption mystery remained a secret for six more years until in 2007 a team composed by Charles McDonald, Andreas Naive and Nicola Salmoria (Mame founder) managed to crack the algorithm via custom hardware and mathematical analysis. Their work revealed CPS2 used two four-round feistel ciphers with a 64 bit key and at this point original code emulation became possible.<br />
<br />
From there on the picture for CPS2 hardware owners remained pretty much the same: run out of battery and lose your original game forever, phoenixing your board was the only way out of the situation, but at least it was an option.<br />
<b><br /></b>
<b><br /></b><b>Capcom's Customfest</b><br />
<b><br /></b>
CPS2's use of customs was extensive featuring as many as 11 custom made QFP chips, all of them stamped with Capcom logos. For years the maker, exact nature and purpose of many of these chips has also been a mystery, something especially true for the ones located on the top B board as many of the A board customs are just a continuation of the ones found in CPS1.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4u1QPHOa4vs7JiEdIHnEb6JARcyXRdkTOMj6iNDgGnbD_MHowrHVZVyAdx0wx1_WZ357mxOz43JPYp4HbXE6WAMUUok9ok1rPgqqP4JOKjQDSPXFbKk9tX-hbqR-YXph-Wa0iV42dbjel/s1600/qfp-capcom.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4u1QPHOa4vs7JiEdIHnEb6JARcyXRdkTOMj6iNDgGnbD_MHowrHVZVyAdx0wx1_WZ357mxOz43JPYp4HbXE6WAMUUok9ok1rPgqqP4JOKjQDSPXFbKk9tX-hbqR-YXph-Wa0iV42dbjel/s320/qfp-capcom.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Capcom QFP 160 pin custom chip dated Week 47 1993 </td></tr>
</tbody></table>
<br />
The level of custom integration in CPS2 even touched its main cpu, previously featured in CPS1 as a single Motorola 68000 chip, the arrival of CPS2 saw the 68000 cpu fading away somewhere inside one of the new custom chips, nobody exactly knew which. Another interesting thing about the customs found on the top B board is the fact that they all receive battery power while the board is at rest, an obvious exercise to hide away its security implementation and possible targets.<br />
<br />
<b><br /></b>
<b>The widow maker</b><br />
<br />
Present in CPS2 systems since B board revision 5 (93646B-5), this little JST NH 6 pin type connector became over time an item of interest and research by the curious. Its purpose unknown but contained a nasty surprise for whoever was brave enough to mess with it: it killed your board.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSlgI4ueiIXbEnfxm62cpIXaI7ySZPwkPAJSB_TFJ7Vw_hhUfc9lV5eSNyBirGYUeWtFs6J315prawWdbQam_BINhm14htJ4Ub4t01Q564T4BRWeEc03EVKEPbf9afnlEv24j3Xel_H0Ui/s1600/cn9.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSlgI4ueiIXbEnfxm62cpIXaI7ySZPwkPAJSB_TFJ7Vw_hhUfc9lV5eSNyBirGYUeWtFs6J315prawWdbQam_BINhm14htJ4Ub4t01Q564T4BRWeEc03EVKEPbf9afnlEv24j3Xel_H0Ui/s400/cn9.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS2 CN9 connector</td></tr>
</tbody></table>
<br />
This connector brought many questions without answer and one clear result: messing with CN9 suicided your board exactly as running out of battery would do. Why Capcom would include such feature? How was it related to the system encryption? Was it of any real use? or could it just be a distraction?<br />
<br />
Over the next series of articles we will explore the inner workings of Capcom's CPS2 security implementation, these findings and discoveries are part of the efforts that led to successful reverse engineering of the system security programming methods late last year: <a href="http://arcadehacker.blogspot.com/2016/09/capcom-cps2-security-programming-guide.html">Capcom CPS2 Security Programming Guide</a>.<br />
<br />
Stay tuned for more.<br />
<br />
<a href="http://arcadehacker.blogspot.com/2018/01/a-journey-into-capcoms-cps2-silicon.html" target="_blank">Part 2</a><br />
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com14tag:blogger.com,1999:blog-1981425846546053493.post-69419323717288692322016-09-13T07:52:00.000+02:002017-09-30T11:19:29.782+02:00Capcom CPS2 Security Programming Guide<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;">Dear all, after a few months of testing we are extremely happy to release the new clean desuicide / security programing method for Capcom's CPS2 hardware. </span><br />
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOFnamHmJ_gpSxEFuE-ANHIFccIw5TPHUU2eOGjyzpl2SC-s9AEKGhYQUTf5YI15GnBOTV-zeCdSpftGJvIMFYsk1lD9WcKAtASCPo-AKguP7ygvVLImhf1jbHwerjb7GzwOOKQeZjQyeB/s1600/1525chip.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="269" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOFnamHmJ_gpSxEFuE-ANHIFccIw5TPHUU2eOGjyzpl2SC-s9AEKGhYQUTf5YI15GnBOTV-zeCdSpftGJvIMFYsk1lD9WcKAtASCPo-AKguP7ygvVLImhf1jbHwerjb7GzwOOKQeZjQyeB/s320/1525chip.png" width="320" /></a></div>
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;"> </span><br />
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;">This guide is the result of almost two years of work by an small group of arcade enthusiasts to unravel the secrets of the security implementation found in one of the largest and most popular arcade platform systems. Thanks for this work it is now possible to fully preserve any CPS2 systems as original hardware.</span></span><br />
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></span>
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;">Over the coming weeks additional details about the CPS2 hardware internals will be released providing unseen insights into how Capcom implemented security.</span></span><br />
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></span>
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;">Thanks to everyone who has helped test and validate this release throughout the summer, special thanks to Bill DeLeo, </span><span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;">Jeremy Walski, Leonard Oliveira and rtw. </span></span><br />
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;"><br /></span><span id="docs-internal-guid-95e06e58-220d-05ec-aca3-a89cb78a0a19"><span style="color: #666666; font-family: "arial"; font-size: 20px; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">Capcom CPS2 Security Programming Guide</span></span><br />
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;"><br /></span>
<span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;">This document will guide you through the basics of preparing your setup and testing the new clean desuicide method on any of the known CPS2 board revisions. You can find a pdf copy of this guide and code on the following link: </span><span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><a href="https://github.com/ArcadeHacker/ArcadeHacker_CPS2">https://github.com/ArcadeHacker/ArcadeHacker_CPS2</a></span></span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What's needed</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino programmer hardware </span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino Uno (with USB cable)</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.arduino.cc/en/main/arduinoBoardUno">https://www.arduino.cc/en/main/arduinoBoardUno</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">LCD Keypad Shield</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.sainsmart.com/sainsmart-1602-lcd-keypad-shield-for-arduino-duemilanove-uno-mega2560-mega1280.html">http://www.sainsmart.com/sainsmart-1602-lcd-keypad-shield-for-arduino-duemilanove-uno-mega2560-mega1280.html</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pin strip (at least 7 pins)</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.maplin.co.uk/p/254mm-pin-strip-jw59p">http://www.maplin.co.uk/p/254mm-pin-strip-jw59p</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dupont cables (at least 8 x female-female, and 8 x male-male)</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ebay.com/itm/40PCS-Dupont-Wire-Female-to-Female-Connector-Cable-2-54mm-1P-1P-For-Arduino-/130682956953?hash=item1e6d4fac99:g:Q1sAAOSwubRXKXE6">http://www.ebay.com/itm/40PCS-Dupont-Wire-Female-to-Female-Connector-Cable-2-54mm-1P-1P-For-Arduino-/130682956953?hash=item1e6d4fac99:g:Q1sAAOSwubRXKXE6</a></span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ebay.com/itm/Arduino-Shield-40pin-20cm-male-to-male-2-54MM-1P-1P-Dupont-cables-/131750611609?hash=item1eacf2ca99:g:bJQAAOSwLs5XKxAE">http://www.ebay.com/itm/Arduino-Shield-40pin-20cm-male-to-male-2-54MM-1P-1P-Dupont-cables-/131750611609?hash=item1eacf2ca99:g:bJQAAOSwLs5XKxAE</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Grabbers / Clips (at least 6 pieces), or you can also use a JST NH 6 pin connector instead of grabbers, pins are part number SHF-001T-0.8BS or SHF-002T-0.8BS.</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ebay.com/itm/Lot-20-Tektronix-SMT-KlipChip-Mini-Grabbers-206-0364-01-Adapter-Test-Clips-/272157129893?hash=item3f5dd43ca5:g:5fAAAOSwmmxW2lNQ">http://www.ebay.com/itm/Lot-20-Tektronix-SMT-KlipChip-Mini-Grabbers-206-0364-01-Adapter-Test-Clips-/272157129893?hash=item3f5dd43ca5:g:5fAAAOSwmmxW2lNQ</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Power supply capable of 5 volts @ 1.5 amps or more, eg: arcade or ATX PC power supply.</span></div>
</li>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Female power supply molex with cables</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ebay.com/itm/Monoprice-8-4pin-MOLEX-Male-to-Two-15pin-SATA-II-Female-90-degree-Power-Cable-/231406723440?hash=item35e0ea6170:g:t7gAAOSwgQ9Vyogf">http://www.ebay.com/itm/Monoprice-8-4pin-MOLEX-Male-to-Two-15pin-SATA-II-Female-90-degree-Power-Cable-/231406723440?hash=item35e0ea6170:g:t7gAAOSwgQ9Vyogf</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Soldering iron and solder</span></div>
</li>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CPS2 motherboard tools and supplies</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Torx security screwdriver set including at least size T20</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ebay.com/itm/Security-Tamper-Proof-Bit-Set-33pc-Torq-Torx-Hex-Star-Spanner-Tri-Wing-Screwdriv-/191348606804?hash=item2c8d440754:g:944AAOSwrklU7yJV">http://www.ebay.com/itm/Security-Tamper-Proof-Bit-Set-33pc-Torq-Torx-Hex-Star-Spanner-Tri-Wing-Screwdriv-/191348606804?hash=item2c8d440754:g:944AAOSwrklU7yJV</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.6v batteries ½ AA type</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ebay.es/sch/sis.html?_nkw=5%20Stuck%20Lithium%20Batterie%201%202%20AA%203%206V%20Volt%20Saft%20LS14250%201200mAh&_itemId=201036522792">http://www.ebay.es/sch/sis.html?_nkw=5%20Stuck%20Lithium%20Batterie%201%202%20AA%203%206V%20Volt%20Saft%20LS14250%201200mAh&_itemId=201036522792</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Battery case holder axial</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.ebay.com/itm/5x-1-2-AA-1-2AA-14250-Battery-Storage-Box-Case-Holder-3-6V-PCB-Pin-Solder-Lead-/291105178166?ssPageName=ADME:L:OC:ES:3160">http://www.ebay.com/itm/5x-1-2-AA-1-2AA-14250-Battery-Storage-Box-Case-Holder-3-6V-PCB-Pin-Solder-Lead-/291105178166?ssPageName=ADME:L:OC:ES:3160</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Software</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Computer with Arduino Software</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.arduino.cc/en/Main/Software">https://www.arduino.cc/en/Main/Software</a></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ArcadeHacker_CPS2.ino Arduino program file</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; list-style-type: circle; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: #1155cc; font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><u><a href="https://github.com/ArcadeHacker/ArcadeHacker_CPS2">https://github.com/ArcadeHacker/ArcadeHacker_CPS2</a></u></span></span></div>
</li>
</ul>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Assembling and preparing your Arduino programmer</span></div>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Solder the 7 pin strip to the top right most socket of the LCD Keypad Shield</span></div>
</li>
</ol>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="236" src="https://lh4.googleusercontent.com/9Z5hmB7foCGUTdFqNGKp75Gh3HYYTQa6k3JITFQhNvWAy-PrNg_o727xlp86wybRa0D1D2eVEv2VMsZ9WgU0d-9y-37dmcVIzvZEBTKDftTrOv4-jiwcXJVG38dsDAPWpecMlygx" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="495" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="2" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Assemble the Arduino Uno and LCD Keypad Shield together</span></div>
</li>
</ol>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="233" src="https://lh6.googleusercontent.com/3OonsYnjKGbO0D-9f8uepnxJ_t4zVuDQO7sSJe0pI0dTGnEgp0qTYLH3jFEkPeeK7xuxCsfpB4tTAngW0PYssbBkmivS6nQXsCOt9bqa00r6TQR1CZeVBRTBxC-BfU63aF8Y3Jad" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="337" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="3" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Download and install software for your OS from </span><a href="https://www.arduino.cc/en/Main/Software" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://www.arduino.cc/en/Main/Software</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect your arduino to your PC via USB</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Open the ArcadeHacker_CPS2.ino file in the Arduino environment.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Compile and Upload the sketch to the Arduino, next boot sequence should display what's shown below. If you can't see anything you may want to double check the screen contrast setting.</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="273" src="https://lh5.googleusercontent.com/w5JZQYC3blaQ14_wgFhrpI_PPWIV-KoNb0U0Q-jJm1kZmOIKrT3gLF3UUufbp7ZyMn8pJ9CRJP1VEsZ9Tyd1n2MPQpCK2ZyDgmmqZgoIlcs--8l0mFcuG5ljJK7YlAc-6XHNV-4x" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="364" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="7" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Locate digital pins 2, 3, 11, 12 (top right) and GND (top left icsp connector) on your LCD Keypad Shield. Label them if possible.</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="241" src="https://lh4.googleusercontent.com/kSObuUY3FU3-Qzd-hxB_20bk7N3xECCzVmek6uue_ijY-bJs-JsCAeMEi48qx6kXpV5Q8BX4d4U-CWPNG95mFVuQY_EXIGPrCQlC7evd7Gsm9axiPb_d_NAXfK2hec6ddqDc_WBa" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="494" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="8" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect the dupont cables to the pinout as shown above. Label them if possible.</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="342" src="https://lh3.googleusercontent.com/r9kf8ISWYO5zhvoga6zSIVxCNSg4v1TXkpAgZl8E7oQia9-tNISrHs12rXgJ3U-CfACZXcjr9L-amHyZs-agv5zLQojax-84N9M9MwuEtuv-wL50ZK7SxAD-93F4uYQyp7QGJa7v" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="457" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Assembling the CPS2 target power cable</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Attach two female dupont ends to the female molex power plug.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="167" src="https://lh3.googleusercontent.com/MEPogawqElj7WDMdeeLFNv_9Ty19nA3atOIy2ee49KFGHFYX-FS8VF35NAmX-XYZOoHuSQtBYtoEnY_jp_fOKZk2owSYs849yfMKJdNfRGN9OrmrQ_62TZcVcN-oYU2YHNw9CrAt" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="461" /></span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Identifying your CPS2 B board type</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">There are several revisions of PCB. These are the relevant ones:</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">93646B-3:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="93646B-3-FRONT.jpg" height="409" src="https://lh5.googleusercontent.com/Vs1hIGvjyHzUQ4f8tjauouz9AgXKSwqmRrhZx88ikcUWu2oBzL6uugKS2n7J_AhYHWGKUk8iyKjwF9D-_nV_YOIdLNCTKvfWhrphAJDXOxeQ-xJhRBpfy3e9sR1R2BfsbJJdYG7_" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="530" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">93646B-4:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="19xx_pcb_1.jpg" height="357" src="https://lh6.googleusercontent.com/ukPXtzROXl0dUfDLc-6TlGdiiXwh_uzu4-QGF59hr1YDzalKUh9MfC2HVsRARt6DE9EUbcmrCcmKajbYJ292bb71CDaWFzCXJ7-hwDmVfEn34zw0TPImrcdv3ef50U9yN4JithDX" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="514" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">93646B-5:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="341" src="https://lh5.googleusercontent.com/5VY8ZiLav0xse-R3F1K_0vM2Mc-9qRgLdgXe2T465PlINKkKkmuYSkSFyaleQpuE1X-QR3RgahsROGn733gpwyrUPJJlMdohihfsBc1NNEfA-ch-NpuJvIxoMZjbPmFVj_pzrH3o" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="514" /></span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">93646B-6 and 93646B-7:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="93646B-6-FRONT.jpg" height="413" src="https://lh5.googleusercontent.com/GkCAfrfgFnjGjUBcK4wqvvHgMwTM__aORRPA5cUf4cWn7jkeLi_daiMK3REEKS0Z8uWo8i3IuYK-iLNZuBcagd1T7LCa_1jR3xyDk0NyIzyRdL_lG9FXdQs4L54_Z6Lj8hm1eypX" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="489" /></span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">97691A-3 and 97691A-4 (Black case, single board):</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="351" src="https://lh3.googleusercontent.com/BDdOxEYsmqrqszRT_oOJnX8dnK3JVOePiQDF3GEnpRM95FV0flwlr5Klntx9MCWWM8laPqVpMOAjtYrTXDaWOk-v-lU65Qv2tPhgo5lgZsloIahJmCTEezzTT3xHPjM_BVxWn4Ag" style="border: none; transform: rotate(0rad);" width="624" /></span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pinout for board revisions 93646B-3 and 93646B-4 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CN2 interface pins:</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DATA</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A32</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP1</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #3</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A30</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CLOCK</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #11</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A31</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #12</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A29</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CN7 power pins:</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">+5V</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Power supply </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN7 A25</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Power supply & Arduino GND → CN7 A23</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Power supply & Arduino GND → CN7 B23</span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pinout for board revisions 93646B-5</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CN9 interface pins:</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DATA</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #2 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP1</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #3</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #3 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CLOCK</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #11</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #4</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino #12</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #5</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CN7 power pins:</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">+5V</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Power supply </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN7 A25</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Power supply & Arduino GND → CN7 A23</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Power supply & Arduino GND → CN7 B23</span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pinout for board revision 93646B-6, 93646B-7 and 97691A-3</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CN9 pins:</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">+5V</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">----------------</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #1</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DATA</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #2 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP1</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 3</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #3 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CLOCK</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 11</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #4</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 12</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #5</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #6</span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Preparing your CPS2 B board</span></div>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Open the CPS2 B Board plastic case using the Torx Security T20 screwdriver head (the photo below does not apply to revision 97961A-3 "all in one black")</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="262" src="https://lh3.googleusercontent.com/-X19RFvgq-PbGZb-qu00fY97f34m9rK_u2UdJZnuOzoHmY8cJegyWpBR28MVqhmrcW1TnJ4OQ6H3vllIVBpYSWY1jaipmoP5_qbz6AITdBuDkF6W75q2Ut1OWPeETGVUakD5Lf5D" style="border: none; transform: rotate(0rad);" width="397" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<ol start="2" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Identify your PCB revision and check the battery voltage</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="243" src="https://lh3.googleusercontent.com/pxT-aB5W6w8x8OYtKXhO0Rwcqh5yEp0CKEWZskwCCItgmjUoTEcjHoR4-1J1bi3oLRl9IcBIODnS-kjXB9qLE2UQcIbednQm3Dhc7rgGGUSIUgV3Vx5dO72XW5WrYoOS0gVioTGT" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="484" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="3" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If needed replace the battery with a fresh spare, fit a battery holder when possible</span></div>
</li>
</ol>
<div>
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="220" src="https://lh3.googleusercontent.com/VqDH2aGKUjSrSWtFx8XRzyMeyFmtrGKfDOszi-hRMZ46rbRT57bR8K2m576bJN0hWOUClnbZ9IbCdYRIRjyMGaBECrtuYLHvLf_R0abXwCzs8rviOFnnUeLTabMGhd3Y-25PsREy" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="438" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Desuiciding revisions 93646B-3 and 93646B-4 </span></div>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect your hooking cables to the corresponding outputs of the arduino programmer (2, 3, 11, 12 & GND)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="359" src="https://lh3.googleusercontent.com/47KE0nZ2Qc5dMnV_q4drqmbLz4lLFSSr7NKExPnTo2guZh1y2z6Eoi99ackPe4_bEZA2Sz9nyDSibfqYRCAlX3-Y0UTwIWuTUpXf2YfqZX399B75cHMEabEvpTWsP5t4alm0cr_I" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="480" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="2" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect all pins to CN2 following the order described below.</span></div>
</li>
</ol>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DATA</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A32</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP1</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 3</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A30 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CLOCK</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 11</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A31</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 12</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN2 A29</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">GROUND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # GND → CN2 C32</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="212" src="https://lh6.googleusercontent.com/UdfZCIY7QSrFFhV441zWU6TssG_43lcczR47oVNydK2tk9NlXnbLCoL3ac287MLnRx1AIUiSBjnpkk1hrUSOJ6d68y99XJr_2DOnx528urPW5E8UYBwRlJmeKfhtBQA2N_7V-xNo" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="509" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="327" src="https://lh5.googleusercontent.com/o_zQSSmltjlqrK-bwkvyoi7w-SDmyAMQEojwJyYsutGDni0yDHHDQG0P0gxBNihSvQc3kf-KXypNVMdntd_oz0ABP-5OklVbszqZGq1763AQhv7Av74vO0SX_wOQnC439qmiBCCj" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="437" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="3" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect power cables to CN7 A23 & B23 (GND) and A25 (+5)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="cps2img.png" height="215" src="https://lh4.googleusercontent.com/3mi-0t90p0bY2x2-bR9RtPn0H1xEd7IKND831yQgfv9NBjBsA_8yCfN_S3wOapGg24IHtu1nvGlmGXV8FLRqqlqQpmsKH-4QiUiDE6ifEWP4U8T01FxiLBAPklFvOz7utpRsp9ac" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="424" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="4" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect the molex connector to the power supply (power supply off!)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="213" src="https://lh5.googleusercontent.com/U2F0JIGVJk3n3atiMUf37SWTRfLkfAqDKefzS4vYNT5W26zvABzWPZzly1ty0WlVWoHEsSMxTX9ykNnHxJ6MX7ty9q_QK6_XEqRBO28CxAPcjkfa_4tmT92EjQy8VSqLG0skJpXY" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="364" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<ol start="5" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Make sure the CPS2 A board and B board are disconnected from each other</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="240" src="https://lh5.googleusercontent.com/mXTSdqQRFazEFpJKiKdF0mlvBnjfvarvHP8KFSP4oKFUAaNPtqZZC2eyr-NOYawMgflp-yLH_5endY670GbPpCsukJqu2quyocIpDESXZwAx_OQf02Goff9zMdvjMz-nPG7-eSpB" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="504" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="6" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Turn on the power supply connected to your CPS2 B board, then power up your Arduino programmer (plug the USB cable to a USB power source, eg: your computer)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="375" src="https://lh4.googleusercontent.com/xFW93jKSj4H1M6f1bsUh1t1rC_YsbzHE0YUrFoiPk06BHeDnS9x1dEQcRt1h0z_97s5AAWemb4lI0c10WzH4SknXWeBiA5fHzfYCEBIRvdpCoyg9hE8_gd8QWJFMAnP6R1TmNnCO" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="501" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="7" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Follow the on-screen instructions and program the game configuration you wish to upload. Use the up/down/right/left buttons to advance through the game options.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Once programmed, disconnect power to the Arduino programmer followed by switching off the main power supply to your CPS2 B board</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Disconnect all arduino and power supply wires connected to the PCB </span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Assemble the CPS2 A and B boards together and test for results. If unsuccessful take your time to review your setup before attempting a new keyload. </span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #666666; font-family: "arial"; font-size: 20px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Desuiciding revisions 93646B-5, 93646B-6, 93646B-7, 97691A-3, </span><span style="color: #666666; font-family: arial; font-size: 20px; font-weight: bold; white-space: pre-wrap;">97691A-4</span></div>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect the ic clips to the corresponding outputs of the arduino programmer (2, 3, 11, 12 & GND)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="329" src="https://lh3.googleusercontent.com/ELHpiTEFe6d_4dIYIV9bcgIiLh1MnJTMvDjPnvpIbPgvVwLpf4h-ui3niQULP879vQNPkeVF2mUQaGk1Aa9S8wMGA29rtdvhI_4fbUjIJiqU89ywdcl6LEaIxh8Vi6sHOVFufNlj" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="437" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="2" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect all grabbers to CN9 following this order. You can also use a JST NH 6pin connector, pins are part number SHF-001T-0.8BS or SHF-002T-0.8BS depending on your wire gauge.</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DATA</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #2 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP1</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 3</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #3 </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CLOCK</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 11</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #4</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SETUP2</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino # 12</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #5</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino GND</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">→ CN9 #6</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="capcom.png" height="381" src="https://lh3.googleusercontent.com/UrHRmdDlYkNBp9ONLEZX5frX_ytrKIpuKOrQjlckig7j_3IT2R6JFOXhktg2aFkVZYGMttP63tbQV0WgMJn9FtToYavy5kyhAPuGjU3EwS8m9eLoT5sQDZFxwYGh8bCmEbwJxvTb" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="511" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="3" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[Revisions 93646B-6, 93646B-7, 97691A-3 only]</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Attach the power cable as shown below. GND connects to the existing arduino grabber.</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="325" src="https://lh4.googleusercontent.com/U-eUiMF-gVMBiS4uaaeoInNSShQc_vsH9dWN87TMXOCliFVBfwD0szhzLqz8PH6r_b4vzlPtoofwhyjYyQxbHipt2MC_NZg09Y037SZi3lgN_81qERRaPTsdNA_XmpPLveW1yfXx" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="434" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="4" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[Revision 93646B-5 only]</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Connect power cables to CN7 A23, B23 (GND) and A25 (+5)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="358" src="https://lh5.googleusercontent.com/xKOIR_Gzbsbbn6o3bezHmTvVvX73nBtctW_uSITuJ1CjgCjbnQbME6QPcNiDJL5Hl0YSvUdQ6dQRdUXVHbu_UIlFko7cme_AWVKhrf59NyxZJ6osPLIhwPqBBm9YrmEsCB4wFeUa" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="478" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="5" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connect the molex connector to the power supply (power supply off!)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="259" src="https://lh5.googleusercontent.com/U2F0JIGVJk3n3atiMUf37SWTRfLkfAqDKefzS4vYNT5W26zvABzWPZzly1ty0WlVWoHEsSMxTX9ykNnHxJ6MX7ty9q_QK6_XEqRBO28CxAPcjkfa_4tmT92EjQy8VSqLG0skJpXY" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="441" /></span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="6" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Make sure the CPS2 A board and B board are disconnected from each other</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="240" src="https://lh5.googleusercontent.com/mXTSdqQRFazEFpJKiKdF0mlvBnjfvarvHP8KFSP4oKFUAaNPtqZZC2eyr-NOYawMgflp-yLH_5endY670GbPpCsukJqu2quyocIpDESXZwAx_OQf02Goff9zMdvjMz-nPG7-eSpB" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="504" /></span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="7" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Turn on the power supply connected to your CPS2 B board, then power up your Arduino programmer (plug the USB cable to a USB power source, eg: your computer)</span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="375" src="https://lh4.googleusercontent.com/xFW93jKSj4H1M6f1bsUh1t1rC_YsbzHE0YUrFoiPk06BHeDnS9x1dEQcRt1h0z_97s5AAWemb4lI0c10WzH4SknXWeBiA5fHzfYCEBIRvdpCoyg9hE8_gd8QWJFMAnP6R1TmNnCO" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="501" /></span></div>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<br />
<ol start="8" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Follow the on-screen instructions and program the game configuration you wish to upload. Use the up/down/right/left buttons to advance through the game options.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Once programmed, disconnect power to the Arduino programmer followed by switching off the main power supply</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Disconnect all arduino and power supply wires connected to the PCB </span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Assemble the CPS2 A and B boards together and test for results. If unsuccessful take your time to review your setup before attempting a new keyload. </span></div>
</li>
</ol>
<b style="font-weight: normal;"><br /></b>
<b style="font-weight: normal;"><br /></b>
<span style="color: #666666; font-family: "arial"; font-size: 20px; font-weight: bold; white-space: pre-wrap;">Hands-on video tutorial by Artemio</span><br />
<b style="font-weight: normal;"><br /></b>
<span style="font-weight: normal;">https://www.youtube.com/watch?v=ulIi9B74HMs</span><br />
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/ulIi9B74HMs" width="480"></iframe>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 16pt; margin-top: 0pt;">
<br /></div>
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com99tag:blogger.com,1999:blog-1981425846546053493.post-26465655164785524162016-05-06T08:36:00.001+02:002016-05-06T08:44:13.098+02:00[Mention] Crazy Climber PCB hackMaking your own hardware to expand a game's functionality is a fine skill that deserves plenty of recognition. But doing so while taking the luxury to add artistic elements to your work is a thing only left to the gifted ones. <br />
<br />
This is what UKVAC forum member "ajhippel" has done with a Crazy Climber highscore save mod kit, made it memorable by adding demo-scene like music and effects to his work.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/GwhaD05KJO4" width="480"></iframe><br />
<br />
More info over here:<br />
<a href="http://www.ukvac.com/forum/topic351563_post950717.html#950717">http://www.ukvac.com/forum/topic351563_post950717.html#950717</a><br />
<br />
Sample music routine:<br />
<a href="https://gist.github.com/ArcadeHacker/44cdf7dc03638c2f271ca8b5b6a77fef">https://gist.github.com/ArcadeHacker/44cdf7dc03638c2f271ca8b5b6a77fef</a>Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com0tag:blogger.com,1999:blog-1981425846546053493.post-55121182157339613612016-05-02T08:47:00.002+02:002016-05-02T11:20:23.347+02:00Arcade Vintage Video Tour #ArcadeCon2016 Over the weekend I had the pleasure to be a speaker at ArcadeCon2016 and spend a couple of days at Arcade Vintage in Petrer. I was pretty much speechless at what those guys have built, plenty of hard work and passion in there.<br />
<div>
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/K5vItfpJ6Sc" width="480"></iframe>
<br />
<div>
<br /></div>
<div>
More info about this arcade shrine over here:<br />
<a href="http://arcadevintageshop.blogspot.com.es/p/visitanos.html">http://arcadevintageshop.blogspot.com.es/p/visitanos.html</a></div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com4tag:blogger.com,1999:blog-1981425846546053493.post-29893975782510508852016-04-30T15:00:00.000+02:002016-04-30T15:00:08.845+02:00Important Capcom CPS2 Announcement<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dear colleagues, </span></div>
<b id="docs-internal-guid-2843c8ae-6630-a36d-f561-ecd85411c6cd" style="font-weight: normal;"><br /></b>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">It is our pleasure to announce a very important milestone in arcade conservation, the successful reverse engineering of Capcom's CPS2 security programming. A major development giving full hardware control of this popular platform over to the community, and helping preservation by enabling the clean desuicide and restoration of any dead games without hardware modifications.</span></div>
<b style="font-weight: normal;"><br /></b>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This achievement has been made possible thanks to the help, support and collaboration of many dedicated individuals who just like you have an altruistic passion about arcade games, their hardware, history and legacy. All the discoveries and results generated by this project will be soon shared publicly, free of charge. </span></div>
<b style="font-weight: normal;"><br /></b>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Over the coming days the project will see a limited release to selected testers to help ensure maturity before the public disclosure happens. </span></div>
<b style="font-weight: normal;"><br /></b>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Stay tuned to further details. </span></div>
<b style="font-weight: normal;"><br /></b>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The ArcadeHacker project</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">http://arcadehacker.blogspot.com</span></div>
<br /><br /><span style="background-color: white; color: #222222; font-family: Arial; font-size: 12.6667px; vertical-align: baseline; white-space: pre-wrap;"><b>CPS2 project credit goes to:</b> Artemio Urbina, Ian Court and Eduardo Cruz, with the key collaboration of Digshadow, Ougun, Brizzo, Rockman, Tayoken, and the valuable donations by Juan Felix, Alberto Fuentes, Alex Cmaylo, Bill de Leo, Alexander Schütz, François Lefebvre, Tormod Tjaberg, Felix Vazquez and Pau Oliva.</span>Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com32tag:blogger.com,1999:blog-1981425846546053493.post-19117728612648075442016-04-09T22:19:00.000+02:002016-04-10T12:19:30.991+02:00My visit to A.R.C.A.D.E.Today I had the pleasure to spend a few hours at this fantastic arcade near Barcelona. As you can see in the video below the selection of machines is fantastic and so was everyone in there. If you are interested in visiting them you can find more information on their website: <a href="http://www.arcade.cat">http://www.arcade.cat</a><br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/QW5uTv9tly4" width="480"></iframe>Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com1tag:blogger.com,1999:blog-1981425846546053493.post-72247043667196567482016-03-01T14:48:00.000+01:002016-05-01T09:09:58.279+02:00CPS2 ProjectThe ArcadeHacker project is now officially working to unravel the security mysteries of one of the most popular arcade systems ever: Capcom's CPS2.<br />
<br />
As already delivered with Kabuki and CPS1, the ArcadeHacker project aims to understand the internal workings of the security features inside these systems. Our ultimate goal is help the arcade community preserve games as working originals: No more phoenixes, hardware hacks, or rom replacements.<br />
<br />
<b>Project status</b><br />
Some of the CPS2 chip internals are already documented and we are currently dealing with the system main cpu. This gigantic 3 layer IC is taking significant time and resources from us, and is requiring the usage of new lab tools in order to finish the reverse engineering.<br />
<br />
Your support is now needed to help secure and accelerate the project goals.<br />
<br />
<b>How can you help?</b><br />
<b><br /></b>
<b>CPS2 samples</b><br />
We need CPS2 B board donations in any condition: dead, damaged, phoenixed, no case... it does't matter. Any condition is valid as long as the capcom square chips are in there.<br />
<br />
Please email/contact me for further details if you are willing you send in B board donations.<br />
<br />
<b><strike>Funding</strike></b><br />
<strike>Attacking the CPS2 chips is a lab time consuming and tool expensive process. If you are willing to donate (any amount helps), please do so by paypal at edcross@gmail.com</strike><br />
<strike><br /></strike>
<strike>In exchange for your support you will join our list of supporters and receive internal updates about the project status, as well as early access to any desuicide tools generated by the project.</strike><br />
<br />
<b>[UPDATE]</b> Donations no longer necessary, the project came to a successful end on April 30th 2016.<br />
<br />
Thank you all for your support.<br />
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com0tag:blogger.com,1999:blog-1981425846546053493.post-159254416391628892016-01-13T19:34:00.003+01:002016-01-13T19:34:44.315+01:00CPS1 Project update #2I have just updated the programmer code on github (link below) adding support the remaining games. You should now be able to program Cadillac & Dinosaurs, King of Dragons, Captain Comando, and Quiz and Dragons without any issues. Thanks to Marcel, Bill D. and Joaquin for their support testing.<br />
<div>
<br /></div>
<div>
You can download the latest code from the follow site: <a href="https://github.com/ArcadeHacker">https://github.com/ArcadeHacker</a></div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com13tag:blogger.com,1999:blog-1981425846546053493.post-6621299233556040002015-09-19T12:02:00.000+02:002018-01-03T20:46:34.049+01:00CPS1 Project Update<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<b style="font-size: 12.8px;">Programmer code</b></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
The code needed by the programmer has been made available on the following github account: <a href="https://github.com/ArcadeHacker" style="color: #1155cc;" target="_blank">https://github.com/<wbr></wbr><span class="il">ArcadeHacker</span></a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
Each folder contains the base code for the systems supported by the programmer. Before using your programmer make sure you run the right code for the target system to desuicide. </div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<div style="font-size: 12.8px;">
<b>Supported systems*</b></div>
<div style="font-size: 12.8px;">
Pre-CPS Kabuki Z80 CPU based boards (Capcom and Mitchell)</div>
<div style="font-size: 12.8px;">
Game list: <a href="https://github.com/mamedev/mame/blob/master/src/mame/machine/kabuki.c" style="color: #1155cc;" target="_blank">https://github.com/mamedev/<wbr></wbr>mame/blob/master/src/mame/<wbr></wbr>machine/kabuki.c</a></div>
<div style="font-size: 12.8px;">
<br /></div>
<div style="font-size: 12.8px;">
CPS1 & 1.5 QSound titles </div>
<div style="font-size: 12.8px;">
Game list: <a href="https://github.com/mamedev/mame/blob/master/src/mame/video/cps1.c" style="color: #1155cc;" target="_blank">https://github.com/mamedev/<wbr></wbr>mame/blob/master/src/mame/<wbr></wbr>video/cps1.c</a></div>
<div style="font-size: 12.8px;">
<br /></div>
<div style="font-size: 12.8px;">
*Important: make sure you read the known issues block further below.</div>
<div style="font-size: 12.8px;">
<br /></div>
</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<b><br /></b></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<b>Building your own programmer</b></div>
<div style="background-color: white;">
<span style="color: #222222; font-family: "arial" , sans-serif;"><span style="font-size: 12.8px;">The base of the programmer consists of two Arduino pieces:</span></span></div>
<div style="background-color: white;">
<span style="color: #222222; font-family: "arial" , sans-serif;"><span style="font-size: 12.8px;"><br /></span></span></div>
<div style="background-color: white;">
<span style="color: #222222; font-family: "arial" , sans-serif;"><span style="font-size: 12.8px;">Main board: <a href="https://www.arduino.cc/en/Main/arduinoBoardUno">https://www.arduino.cc/en/Main/arduinoBoardUno</a></span></span></div>
<div style="background-color: white;">
<span style="color: #222222; font-family: "arial" , sans-serif;"><span style="font-size: 12.8px;">LCD shield w/keys: </span></span><span style="background-color: transparent; font-size: 12.8px;"><span style="color: #222222; font-family: "arial" , sans-serif;"><a href="http://www.dfrobot.com/wiki/index.php/Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)">http://www.dfrobot.com/wiki/index.php/Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)</a></span></span></div>
<div style="background-color: white;">
<span style="background-color: transparent; font-size: 12.8px;"><span style="color: #222222; font-family: "arial" , sans-serif;"><br /></span></span></div>
<div style="background-color: white;">
<span style="background-color: transparent;"><span style="color: #222222; font-family: "arial" , sans-serif;"><span style="font-size: 12.8px;">I/O with the target arcade pcb happens via the 7 pins found just above of the lcd shield right side, look at the Kabuki pdf instructions for further visual reference, tap g</span></span></span><span style="color: #222222; font-family: "arial" , sans-serif; font-size: 12.8px;">round feed from the ICSP connector</span><span style="background-color: transparent;"><span style="color: #222222; font-family: "arial" , sans-serif;"><span style="font-size: 12.8px;">: </span></span></span><span style="background-color: transparent; font-size: 12.8px;"><span style="color: #222222; font-family: "arial" , sans-serif;"><a href="https://github.com/ArcadeHacker/ArcadeHacker_Kabuki/blob/master/kabuki-instructions.pdf">https://github.com/ArcadeHacker/ArcadeHacker_Kabuki/blob/master/kabuki-instructions.pdf</a></span></span></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<b>Updating your programmer</b></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<div>
In order to update your programmer or switch target systems you need to download the code using the Github mentioned above, look for the .ino files. Once you have downloaded the code just plug your programmer via USB to your computer and upload the right .ino code file using the Arduino IDE. If you don't have the Arduino IDE please download it from the following link:<a href="https://www.arduino.cc/en/Main/Software" style="color: #1155cc;" target="_blank">https://www.arduino.cc/en/<wbr></wbr>Main/Software</a></div>
<div>
<br /></div>
<div>
Once updated just follow the programmer on-screen instructions.</div>
</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<b>Programming instructions</b></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
Pre-CPS Kabuki guide: <a href="https://github.com/ArcadeHacker/ArcadeHacker_Kabuki/blob/master/kabuki-instructions.pdf" style="color: #1155cc;" target="_blank">https://github.com/<wbr></wbr><span class="il">ArcadeHacker</span>/ArcadeHacker_<wbr></wbr>Kabuki/blob/master/kabuki-<wbr></wbr>instructions.pdf</a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
Example video: <a href="https://www.youtube.com/watch?v=G2LEcuGLvr4" style="color: #1155cc;" target="_blank">https://www.youtube.<wbr></wbr>com/watch?v=G2LEcuGLvr4</a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
CPS1 & CPS1.5:</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
There's no documented guide yet (pending task), please follow these steps:</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<div>
CPS 1 C board pinout as follows:</div>
<div>
<div>
Connect programmer pin 3 to CNB pin 61</div>
<div>
Connect programmer pin 4 to CNB pin 62</div>
<div>
Connect programmer pin 5 to CNA pin 19</div>
<div>
Connect programmer pin 6 to CNA pin 20</div>
</div>
<div>
<br /></div>
<div>
Please watch this video to see the whole process in action:</div>
<div>
<a href="https://www.youtube.com/watch?v=w19r6jgTja8" style="color: #1155cc;" target="_blank">https://www.youtube.com/watch?<wbr></wbr>v=w19r6jgTja8</a></div>
<div>
<br /></div>
<div>
IMPORTANT: The programmer does not have enough power to drive the C</div>
<div>
board. Watch the video to learn how to piggyback power from the game</div>
<div>
motherboard.</div>
</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<strike><b>Known issues</b></strike> [March 7th 2016 all issues fixed]</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<strike>The following Pre-CPS titles have been reported not to work or have issues with the desuicider: Super Pang, Poker Ladies</strike></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<strike>Current behavior: Games start but freeze.</strike></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<strike>The following CPS1/1.5 titles have been reported not to work or have issues with the desuicider: Cadillacs & Dinosaurs, Captain Commando, King of Dragons, Quiz & Dragons</strike></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<strike>Current behavior: Some graphic layers are missing.</strike></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
Note: Thanks to Corrado, Tormod, Sylvain, and Bill D. for their patience and assistance.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<b><strike>Next steps</strike></b></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<strike>I'm currently converting one of my CPS1.5 titles into Cadillacs & Dinosaurs to be able to research the issue common to all four CPS1/1.5 games listed above. ETA before I start the research is 2 weeks from now.</strike></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<b>Project pending tasks</b></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<strike>Research and fix all known issues</strike></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
Create a project wiki</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
Properly document CPS1/1.5 desuicide process</div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com28tag:blogger.com,1999:blog-1981425846546053493.post-31985881191873491032015-06-16T01:27:00.000+02:002015-06-16T02:12:52.195+02:00Capcom CPS1 - Part 3Welcome to the third and last post in the Capcom CPS-1 reverse engineering series, if you missed any of the previous readings you can find them here:<br />
<br />
<ul>
<li><a href="http://arcadehacker.blogspot.com/2015/04/capcom-cps1-part-1.html" target="_blank">Part 1</a></li>
<li><a href="http://arcadehacker.blogspot.com/2015/05/capcom-cps1-part-2.html" target="_blank">Part 2</a></li>
</ul>
<br />
<b>Security inside</b><br />
<br />
As explored during the previous two articles, with the introduction of CPS-1 Capcom developed a couple of graphic custom chips known as CPS-A and CPS-B. These chips unified many graphic functions and allowed Capcom to push its game capabilities further while reducing system design complexity.<br />
<br />
One specific mission of custom CPS-B was security, a characteristic that prevented operators from reusing CPS-1 hardware by simply burning new roms, this was accomplished by featuring a unique internal chip configuration in almost every new game title.<br />
<br />
While early CPS-B chips are truly unique items, with their internal configuration set at the silicon level, the final CPS-B revision known as B-21 was capable of holding any factory configuration by using internal memory backed by an external battery. This helped Capcom simplify its operation by not having to manufacture new CPS-B chips with every new release.<br />
<br />
At production one specific configuration was defined by Capcom for the accompanying game title, and losing power supplied by the external battery means you lose your game, a typical problem faced by today's game collector in preserving working original games.<br />
<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/IBZc__9sM28" width="459"></iframe>
<b><br /></b>
</div>
<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/w19r6jgTja8" width="459"></iframe>
</div>
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com31tag:blogger.com,1999:blog-1981425846546053493.post-47589325797479421442015-05-10T20:01:00.005+02:002024-02-18T15:20:13.688+01:00Capcpom CPS1 - Part 2Welcome to the second post in the Capcom CPS1 reverse engineering series, you can find Part 1 right <a href="http://arcadehacker.blogspot.com/2015/04/capcom-cps1-part-1.html" target="_blank">here</a>.<br />
<b><br /></b>
<b>The roots of CPS1</b><br />
<br />
Everything we know has an origin and predecessors, Capcom's arcade platform CP System 1 is no exception to the rule.<br />
<div>
<br />
For many years arcade manufacturers battled for market share in release cycles that saw games burning out of distribution in just a few months. This intense competition demanded manufacturers faster releases and better games in a never ending market race.<br />
<br /></div>
<div>
According to an <a href="https://web.archive.org/web/20130608061754/http://www.lscmainframe.net/features/kyotsui.html" target="_blank">interview</a> by LCSM to Kouichi "Isuke" Yotsui, father of Capcom's hit title "Strider", the Capcom Play System (CPS1) was originally developed with the need to bring better and bigger graphics into new games.<br />
<br />
<blockquote class="tr_bq">
<b>Isuke: "PCBs back then did not hold an abundant amount of data for graphics. The CPS was developed to free ourselves from that."</b></blockquote>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI5ywqc2107foOW9_uFLOvpAuFwa5PA0AllXY1_bfXCVJrlw_NcX1Y_eC0KuACQdlY09h1UNe__n6i_ztByFpYQ0kkQFV9w-q52gjxTDWlIL1e8QrfHk-rfGua3dQaEEnSeYkCnGGLLYh-/s1600/KouichiYotsui.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI5ywqc2107foOW9_uFLOvpAuFwa5PA0AllXY1_bfXCVJrlw_NcX1Y_eC0KuACQdlY09h1UNe__n6i_ztByFpYQ0kkQFV9w-q52gjxTDWlIL1e8QrfHk-rfGua3dQaEEnSeYkCnGGLLYh-/s1600/KouichiYotsui.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Isuke circa 2011. Source: Striderpedia</td></tr>
</tbody></table>
<b><br /></b>
With full 16 bits capabilities, plenty of hardware sprites, tiles and graphic layers, CPS1 extended game asset and code storage capacity beyond its lifetime needs. The largest CPS1 B board known allowed for 8.39 megabytes of graphics, 3.15 megabytes of cpu code, and 0.39 megabytes of audio code and samples. No game ever released on CPS1 used the full rom capacity found in the system, although CPS 1.5 systems expanded the audio storage capabilities via a new dedicated q sound board.<br />
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq-Ui6hj-ZY2Q7gv3nMZXyIifLNFZNv5wjeQHhf2emHmmrxemMrnf4_hRGYPnWtiG5gnvuq5D4_eEkumI9iGqyJf5InXKnihpsg4qce7cvXl5IUmwcJd8_r73qnnghW0UTkCs21s2616jthXm3HRW0nv44dxo3zv5rGptZPmNcPFpaimRLQfA2dR3aX5x8/s970/cps1-b-board-rom-sections.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img alt="CPS1 B Board rom sections" border="0" data-original-height="798" data-original-width="970" height="329" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq-Ui6hj-ZY2Q7gv3nMZXyIifLNFZNv5wjeQHhf2emHmmrxemMrnf4_hRGYPnWtiG5gnvuq5D4_eEkumI9iGqyJf5InXKnihpsg4qce7cvXl5IUmwcJd8_r73qnnghW0UTkCs21s2616jthXm3HRW0nv44dxo3zv5rGptZPmNcPFpaimRLQfA2dR3aX5x8/w400-h329/cps1-b-board-rom-sections.jpg" title="CPS1 B Board rom sections" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">CPS1 B Board rom sections</td></tr></tbody></table><div style="text-align: justify;"></div><br />
The availability of the new system sparked the production at Capcom of a new generation of games developed almost in parallel. The three initial titles under development consisted in Daimakaimura (Ghouls'n Ghosts), Forgotten Worlds, and Strider, in that order respectively. In the end Forgotten Worlds made it first to market and got to be the first official CPS1 release title.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKnQwE2ib6exxlFwSnbmpxALvSCm6oh57Cxi2LW1chwwiG7Tn60lxTfzv8P3X9Me-kjPI09jXSK1CUR7HpAwrnPyAULuMENmRRk5Emss67haQk8yR7EC2GlOnHM05TiDxgvy3IQ72JYTgP/s1600/Capcom+pcb+production+line.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKnQwE2ib6exxlFwSnbmpxALvSCm6oh57Cxi2LW1chwwiG7Tn60lxTfzv8P3X9Me-kjPI09jXSK1CUR7HpAwrnPyAULuMENmRRk5Emss67haQk8yR7EC2GlOnHM05TiDxgvy3IQ72JYTgP/s400/Capcom+pcb+production+line.png" width="460" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Chocolate Factory. Capcom's production line, circa 1992. credit: Super Power magazine</td></tr>
</tbody></table>
<br />
<br />
But how did CPS1 and its specs came to be? An early 1990s interview extract from the french magazine "Super Power" seems to confirm the prevalent expert arcade community opinion: CPS1 base specs came straight from a computer commercially unknown to the western world: Sharp's X68000 a.k.a. the god computer.<br />
<br />
<blockquote class="tr_bq">
<b>Isuke: “I have participated to the development of the CP system and yes absolutely, the X68000 </b><b>is the base of the CP system." </b>(Thanks to Denis Lechevalier for the interview extract and photos)</blockquote>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTzOb2hVUue7QBSv0odIe_apE-nKIQ7Knc4n5Xc9dvYzonmESTxpOUZ73X8FCX4a5sl7DPm1cglaK1LJHxQSD7MbmO4vjIb8VonWrRMIftiz5R2LCiid_1bGmlWxSVpGqO46NTzE77Wc-W/s1600/Capcom+R%2526D+room+where+Street+Fighter+2+coin-op+was+created.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="313" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTzOb2hVUue7QBSv0odIe_apE-nKIQ7Knc4n5Xc9dvYzonmESTxpOUZ73X8FCX4a5sl7DPm1cglaK1LJHxQSD7MbmO4vjIb8VonWrRMIftiz5R2LCiid_1bGmlWxSVpGqO46NTzE77Wc-W/s400/Capcom+R%2526D+room+where+Street+Fighter+2+coin-op+was+created.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Capcom offices. C<span style="font-size: 12.8px;">irca 1992. credit: Super Power magazine</span></td></tr>
</tbody></table>
<br />
<b><br /></b>
<b>X68000: The God Computer</b><br />
<br />
In March of 1987 Sharp released the X68000 home computer to the Japanese market, a multimedia computer so strong and powerful it had no immediate rivals. The new system wasn't even matched by the highly awarded Commodore Amiga 500 released six months later.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlHW4dWQ0QWP1_6E1RvA-fK84h-uRVjQsWpxmMc7O_pYSsLFtGvnnj1O1AnYVXWqS2GMqb-e77n3VUrMUD8S-nyRiciovjGjijr1DQLGv-RRR1rBMrCt3rTPiPxB1wI6NDXHMCm2IXLQ6G/s1600/x68000.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlHW4dWQ0QWP1_6E1RvA-fK84h-uRVjQsWpxmMc7O_pYSsLFtGvnnj1O1AnYVXWqS2GMqb-e77n3VUrMUD8S-nyRiciovjGjijr1DQLGv-RRR1rBMrCt3rTPiPxB1wI6NDXHMCm2IXLQ6G/s1600/x68000.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sharp X68000</td></tr>
</tbody></table>
<br />
The X68000 featured full 16 bits capabilities thanks to its Motorola 68k cpu running at 10Mhz, came with 1 megabyte of memory upgradable to 12 megabytes, advanced sound and high resolution hardware graphics with a 65k color palette, a device better than any arcade game platform at the time. <a href="http://museum.ipsj.or.jp/en/computer/personal/0038.html" target="_blank">Full specs</a>.<br />
<br />
Personally whenever I try compare the X68000 with the humble specs of my first computer back then, the Amstrad CPC 6128, I really feel the X68000 earned its "god computer" nickname well. Indeed a device sent from the future.<br />
<br />
With the introduction of the X68000 Sharp leapfrogged the market in such a way it remained the most capable gaming platform until the early 1990s. Even today the X68000 with its distinct double tower design is still undeniably appealing in terms of aesthetics. PS4 anyone?<br />
<br />
With a whopping price tag of 369,000 Japanese Yens, $2,434 USD in 1987 money or more than $5000 USD in today's money, Sharp sold millions of units in the Japanese market until its final update in 1993. The reasons as to why Sharp didn't release this system outside of Japan are unknown to me, please contribute any information by commenting below.<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/hlgEY7ZX30I" width="459"></iframe><br /></div>
<br />
<br />
According to what is known, Capcom used the X68000 as a benchmark for its CPS1 hardware design and also as game development workstation. Capcom wasn't the only arcade game design company known to have used the X68000 for the production of videogames, for example Toaplan used it to develop games like Outzone, Truxton, and all of their 68000 based releases.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEish5tPPFgamJ3l9292YM_ikn-5ZCNVw7QfYJcaEumk18NqLcq9PdOKbcxTlgPKLETEtXXov3ehw_2xRxi0eAp2vIi5sC7U3qruAKEGDvgSn4MdQspHqw-n6SsLa34vogezEYTF7xhbO-5z/s1600/Capcom+arcade+sound+department.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEish5tPPFgamJ3l9292YM_ikn-5ZCNVw7QfYJcaEumk18NqLcq9PdOKbcxTlgPKLETEtXXov3ehw_2xRxi0eAp2vIi5sC7U3qruAKEGDvgSn4MdQspHqw-n6SsLa34vogezEYTF7xhbO-5z/s400/Capcom+arcade+sound+department.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Capcom's sound and music design team at work. X68000 compact workstation. <span style="font-size: 12.8px;">Super Power magazine.</span></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Thanks to its involvement in content and game creation and its strong market share, the X68000 enjoyed plenty of pixel perfect arcade ports. Titles such as Final Fight or Daimakaimura (Ghouls'n Ghosts) were released on the X68000 and are still in high demand by todays collectors. Ironically, putting your hands today on a copy of Final Fight for the X68000 will cost you twice as much as the original arcade game board.<br />
<br />
Although commonly referred as a pixel perfect port, ports like Final Fight aren't exactly perfect. For example Final Fight for the X68000 will only display a maximum of four concurrent enemies on screen where as the arcade version will do as many as nine. This is due to CPS1 being more capable in terms of hardware sprites: 256 vs 128.<br />
<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/9ALSGIj4odU" width="459"></iframe>
</div>
<br />
<br />
<b>The Chocolate Factory Suppliers</b><br />
<br />
Now we know how Capcom got its base specs for the development of CPS1. How about hardware suppliers?<br />
<br />
Many companies contributed to the making and supply of CPS1 parts, although one particular company contributed the most significant number of them. Hitachi, the Japanese multinational, was the most notable supplier with multiple parts including TTL chips, memories, and the main system CPU.<br />
<br />
Capcom's CPS1 featured the CMOS version of the Motorola 68000 CPU running at 10Mhz (later upgraded to 12Mhz). The CPU introduced in 1985 was a joint development of Motorola and Hitachi after a long term relationship between the companies.<br />
<br />
This special relationship was recently discussed in an <a href="http://archive.computerhistory.org/resources/text/Oral_History/Motorola_68000/102658164.05.01.acc.pdf" target="_blank">interview</a> with Bill Walker, a now retired SVP at Motorola:<br />
<blockquote class="tr_bq">
<b>"Our manufacturing practices were pretty bad back then, low yields, long cycle times and poor productivity. In 1978, Motorola and Hitachi entered into a technology exchange venture. We brought a lot back and injected it into our manufacturing and it helped greatly, especially when we built our newest factory in the early eighties. That became the factory that built most of the 68K products – a new 5 inch factory, MOS-8."</b></blockquote>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJGFdn-5A6__5J25zsNxHTTXEurFR0vcIejIoUD8nMDVpp_3ZepKwYzDHVCXI_YlmJ_LZa0-hGworIqXe76WUa5wbvSyBYtAnIebo7eavHNIoaUT0tqBdqaRXnXZ01foAXPH-e9v1whT0T/s1600/Capcom+CPS1+Motorola+68000.png" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJGFdn-5A6__5J25zsNxHTTXEurFR0vcIejIoUD8nMDVpp_3ZepKwYzDHVCXI_YlmJ_LZa0-hGworIqXe76WUa5wbvSyBYtAnIebo7eavHNIoaUT0tqBdqaRXnXZ01foAXPH-e9v1whT0T/s1600/Capcom+CPS1+Motorola+68000.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The original CPS1 main cpu: Hitachi Motorola 68000 2-micron CMOS process</td></tr>
</tbody></table>
<br />
Other significant parts found inside CPS1 boards are the secondary cpu dedicated to running the sound program, a standard Z80 type cpu by Zilog running at a speed of 3.5Mhz, or multiple rom chips sourced from a variety of vendors such as Intel, AMD, Hitachi or Sharp.<br />
<br />
<br />
<b>The Graphic Customs</b><br />
<br />
One of the most intriguing questions we had at the time of starting the reverse engineering effort on CPS1 was identifying who developed the two mysterious customs found on the A and C boards. None of them showed any identifiable manufacturer marks or logos besides the CAPCOM mark and production id numbers.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOy1pl20zUwGRDNg8Peqf_lKbthUePPoZgBJDM6o5mtip3ayE_-4dERUnVjzP21ETeyno1ajfvw4oRDFnCcTvS1NdKvt9Js5rg5SvK0CvMxddeD1vCd4vbQOHArDu_rFixdti-kQwMmPag/s1600/cpsa-b.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOy1pl20zUwGRDNg8Peqf_lKbthUePPoZgBJDM6o5mtip3ayE_-4dERUnVjzP21ETeyno1ajfvw4oRDFnCcTvS1NdKvt9Js5rg5SvK0CvMxddeD1vCd4vbQOHArDu_rFixdti-kQwMmPag/s400/cpsa-b.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS1 custom chips, B custom on the left, A on the right.</td></tr>
</tbody></table>
<br />
In our mind the most probable vendor responsible for these customs could had been Hitachi, not only we knew it to be a high contributor to CPS1 parts, but also at the time of the making of CPS1 Hitachi had a good number of popular custom ASIC products in the market. <br />
<br />
Uncovering the custom secrets and helping the arcade community overcome the popular CPS1 security issues led us to begin the reverse engineering efforts on these customs. Once digshadow got his hands on the CPS1 parts I sent him the wait to understand who was behind the customs came to an end. At his lab and with the aid of a powerful metallurgical microscope the truth got revealed: the vendor of choosing for the CPS1 custom parts was Ricoh.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT3xq0wQuR7m_lvbQkfEoylF-rHx6aAKxSPL7k_ZVt1bmBzvzamU8EEaHRcB_p1YQP7FtszrXTOBS6gQVrneMgp8J_hD__m68-Dy9DsUYguLL9X36Obqhoa2yKhQo9bYjTQtMYcemjkPeW/s1600/CPS1+Ricoh+custom+chip.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT3xq0wQuR7m_lvbQkfEoylF-rHx6aAKxSPL7k_ZVt1bmBzvzamU8EEaHRcB_p1YQP7FtszrXTOBS6gQVrneMgp8J_hD__m68-Dy9DsUYguLL9X36Obqhoa2yKhQo9bYjTQtMYcemjkPeW/s400/CPS1+Ricoh+custom+chip.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Partial photo of CPS-1 custom B-21 under the microscope, credit: digshadow</td></tr>
</tbody></table>
<br />
This finding went against all our bets, but research revealed Ricoh was in the business of producing a range of CMOS based products including memory products and gate array or standard cell based custom chips. According to specifications found in Ricoh's 1988 product <a href="http://bitsavers.trailing-edge.com/pdf/ricoh/_dataBooks/1988_Ricoh_Electronic_Devices_Data_Book.pdf" target="_blank">databook</a>, both custom chips found in CPS1 belong to the RSC-15 CMOS standard cell series made with a 1.5 micron process.<br />
<br />
[Update May/13th 2015] Thanks to everyone who pointed out Ricoh is the company behind the original Nintendo NES cpu, a variant of the popular 6502 cpu. More on this <a href="http://www.glitterberri.com/developer-interviews/how-the-famicom-was-born/deciding-on-the-specs/" target="">here</a>.<br />
<br />
Thanks to this integration effort Capcom introduced plenty of new graphic hardware functions packaged inside these customs, and managed to substantially reduce overall pcb complexity by eliminating legacy parts used in previous designs.<br />
<br />
With them also came a number of security measures that have been a nightmare to today's arcade collectors and a barrier to fully preserve a good number of arcade titles in the CPS1 series.<br />
<br />
This is all for now, I hope you have enjoyed Part 2 of the CPS1 reverse engineering series. On the next post we will explore custom B-21 in detail and discuss how the custom chip got dissected and analyzed. Stay tuned.<br />
<br />
Update: <a href="http://arcadehacker.blogspot.com/2015/06/capcom-cps1-part-3.html" target="_blank">Part 3 now available</a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><br />
Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com7tag:blogger.com,1999:blog-1981425846546053493.post-1293090402464381242015-04-16T22:23:00.001+02:002015-05-24T17:10:25.306+02:00Capcom CPS1 - Part 1For most of the 80's, arcade titles were the product of intense hardware and software custom design work. With every new game title came a new board design and the full dedication of multiple specialized teams including experts in hardware, electronics, software, game design, graphics, sound... the list goes on and on.<br />
<br />
Competition, faster release cycles, and the need for continued improved financial results, drove arcade manufacturers into operational optimization and standardization efforts with the ultimate goal of focusing into their true core business: producing successful video games, not hardware.<br />
<br />
With the introduction in 1988 of the Capcom Play System 1 (CPS-1) by Capcom, the company signaled a new era in game design quality and hardware platform maturity.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRCPpGniZasSjcDcZOS6au9sPtFa6II9ioenU264I6-5-czWWzWO-7Iove6hIoTdURA1Swhk4txILsSnfNuqd-yLMSGr-8Q_lcKTLPbThYbtinAEB8C8j85lbR0Qe24dfu-_juWQhlI9IZ/s1600/photo+1+(16).JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRCPpGniZasSjcDcZOS6au9sPtFa6II9ioenU264I6-5-czWWzWO-7Iove6hIoTdURA1Swhk4txILsSnfNuqd-yLMSGr-8Q_lcKTLPbThYbtinAEB8C8j85lbR0Qe24dfu-_juWQhlI9IZ/s1600/photo+1+(16).JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">An original CPS-1 Street Fighter II CE kit from my personal collection</td></tr>
</tbody></table>
<br />
The CPS-1 system was Capcom's bet in standardizing its own game release cycle, and the new system gave birth to <a href="http://www.arcade-history.com/index.php?page=articles&num=2" target="_blank">32 new game titles</a>, about 137 if we count in game revisions and market specific localized versions. Its 16 bits and extended capabilities served as publishing vehicle for successful franchises such as Capcom's worldwide hit: Street Fighter II.<br />
<br />
According to one release flyer from the UK distributor Electrocoin, the new system took 2 years to develop and a total investment of $5,000,000 USD ($10 million in 2015 money). But take this information just as a reference, the flyer happens to be full of marketing driven inaccuracies such as the claim about the system containing three 68000 cpu cores... (Thanks Haze for the finding).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3O4E7NKqt4zv9oFzdPvqlsNB7TtzVdCoMZKCR3ygFwlcOLBvuPhIqanO7tZ84LI0SoZAr3AubeDxRokV_pFBoHDBrm16-mYElSPiliXRTBqCwFICwp_Id5alrsxGqw2b3hoMXQUApmfNH/s1600/222004001.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3O4E7NKqt4zv9oFzdPvqlsNB7TtzVdCoMZKCR3ygFwlcOLBvuPhIqanO7tZ84LI0SoZAr3AubeDxRokV_pFBoHDBrm16-mYElSPiliXRTBqCwFICwp_Id5alrsxGqw2b3hoMXQUApmfNH/s1600/222004001.jpg" width="297" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8000001907349px;">Electrocoin UK CPS-1 advertisement. Source: arcade-museum.com</td></tr>
</tbody></table>
<br />
In production for a total of 12 years (1988-2000) and 6 known revisions, CPS-1 is probably one of the most successful hardware platforms in the history of the arcade industry and Capcom's first truly modular/reusable system. The reach of CPS-1 even includes a failed attempt to penetrate the home video game market.<br />
<br />
<b>CPS-1 the detail</b><br />
<b><br /></b>
The design consist of a number of interconnected pcbs known as A, B and the later added C board and Q-sound board. Here's a description of each layer:<br />
<br />
<ul>
<li>A: the base board containing most of the system hardware. eg: cpu, memory, sound, etc...</li>
<li>B: the game rom board containing a combined number of mask roms and/or eproms.</li>
<li>C (later added): an small satellite board containing a video logic custom chip, and sometimes additional IO.</li>
<li>QSound (later added): a full size intermediate board providing new sound capabilities, the board is sandwiched in between A and B.</li>
</ul>
<br />
Note: C board was introduced right after the two initial game releases: Forgotten Worlds & Ghosts and Ghouls, and wasn't part of the original CPS-1 design. Instead, its contents were an integral part of the B board.<br />
<br />
CPS-1 Technical specs: (source: Wikipedia)<br />
<br />
<ul class="ul1">
<li class="li1">CPU</li>
<ul class="ul1">
<li class="li2">Primary: Motorola 68000 @ 10 MHz (some later boards 12 MHz)</li>
<li class="li2">Secondary: Zilog Z-80 @ 3.579 MHz</li>
</ul>
</ul>
<ul class="ul1">
<li class="li3">Sound Chips:</li>
<ul class="ul1">
<li class="li2">Yama<span class="s1">ha YM2151 @</span> 3.579 MHz</li>
<li class="li2">Oki OKI6295 @ 7.576 MHz, Stereo</li>
</ul>
</ul>
<ul class="ul1">
<li class="li3">Display</li>
<ul class="ul1">
<li class="li2">Resolution: Raster, 384x224 @ 59.6294 Hz</li>
<li class="li2">Color Depth: 12 bit RGB with a 4 bit brightness value</li>
<li class="li2">Colors available: 4096</li>
<li class="li2">Onscreen colors: 3072 (192 global palettes with 16 colors each)</li>
</ul>
</ul>
<ul class="ul1">
<li class="li3">Sprites:</li>
<ul class="ul1">
<li class="li2">Simultaneously displayable: 256 (per scanlines)</li>
<li class="li2">Sizes: 16x16, max. 16 colors (15 unique + 1 transparent)</li>
<li class="li2">Vertical and Horizontal Flipping capability</li>
</ul>
</ul>
<ul class="ul1">
<li class="li3">Tiles: Sizes 8x8, 16x16, 32x32 with 16 colors (15 unique + 1 transparent)</li>
<li class="li3">Tile Maps: 3 Maps, 512x512, 1024x1024, 2048x2048 pixel</li>
</ul>
<ul class="ul1">
<li class="li3">68K RAM: 64 KB WORK RAM + 192 KB VRAM (Shadow)</li>
<li class="li3">PPU: 192 KB VRAM + 16 KB CACHE RAM</li>
<li class="li3">Z80 RAM: 2 KB WORK RAM</li>
</ul>
<b><br /></b>
<b>CPS-1 evolution</b><br />
<b><br /></b>
The CPS-1 platform went through five clear differentiated evolutionary phases. The first release of the platform consisted only of a two layer design which missed what we know today as the C board.<br />
<br />
<b>1988 </b><b>Forgotten Worlds </b><br />
A two layer design with QFP soldered mask roms.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiHFlkhXmGiYvqfmcEFGuDsBBvYaqQ8bHmnsyBMtSG42LCVwHKpjvDNjgp0Y5VDga3wy7ocvKZPbBknvuOh6lKoCf_MEgB47dLVgbrVoS0aZXazuxH0pZgnkqe1O5tNc1nHm4o2MXGBG7o/s1600/forgottenworlds.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiHFlkhXmGiYvqfmcEFGuDsBBvYaqQ8bHmnsyBMtSG42LCVwHKpjvDNjgp0Y5VDga3wy7ocvKZPbBknvuOh6lKoCf_MEgB47dLVgbrVoS0aZXazuxH0pZgnkqe1O5tNc1nHm4o2MXGBG7o/s1600/forgottenworlds.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS-1 launch title Forgotten Worlds. Photo by James Greenhalgh.</td></tr>
</tbody></table>
<b><br /></b>
<b>1989 Strider</b><b> </b><br />
A three layer design introducing the top C satellite board. QFP mask roms are gone, uses standard DIP roms instead. This modern layout stays for most of the CPS-1 lifetime.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmTBwAjzMTAPCfTycEXyurYcFoTZxf5WRKFWGwmm44zF3XUzbwZq3ZxqfuU1s3TK6UETEbRHDf_7JW0Lqqm816Jx5_fyVVtoDDhr816mWQFKp0ImCaKGuJ3hNYgschNqPZOSVaXHuislKe/s1600/striked.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmTBwAjzMTAPCfTycEXyurYcFoTZxf5WRKFWGwmm44zF3XUzbwZq3ZxqfuU1s3TK6UETEbRHDf_7JW0Lqqm816Jx5_fyVVtoDDhr816mWQFKp0ImCaKGuJ3hNYgschNqPZOSVaXHuislKe/s1600/striked.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS-1 Strider. Photo taken from arcade-system.com</td></tr>
</tbody></table>
<b><br /></b>
<b>1991/92 Street Fighter II Champion Edition</b><b> </b><br />
The system gains a 20% speed bump by increasing the system frequency from 10Mhz to 12Mhz. With SF II the C board features additional IO for the extended game controls (6 buttons per player).<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVWEALMOzrCVaobayEBvXy__S4Ke_XG1Im8WB4R-6mOHnGPo3_TeJjCKlbd9PltVBtYIcD8vpC6cnW5yDj4safvNKUMCSvsWe9Rl__Of7e05MOAoWWaBRuHOG9EI8kWLHgeFFgvTyAfNmZ/s1600/sf2ceea.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVWEALMOzrCVaobayEBvXy__S4Ke_XG1Im8WB4R-6mOHnGPo3_TeJjCKlbd9PltVBtYIcD8vpC6cnW5yDj4safvNKUMCSvsWe9Rl__Of7e05MOAoWWaBRuHOG9EI8kWLHgeFFgvTyAfNmZ/s1600/sf2ceea.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Street Fighter II Champion Edition board</td></tr>
</tbody></table>
<br />
<br />
<br />
<b>1992 Capcom World 2</b><br />
Some CPS-1 releases are enclosed inside a partial soft case including a title marketing sticker. The system features the same three layer design.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYHOASLZe6wDS2H8szaUYl-GMJz5nYjXIrSCZpo3Ssohq-pl5ln-aJcRa_q-SCKUfY_ktmHpgqXmPW9-sa4PQcRu7Exshyphenhyphen0T-59r9Ja5ysoCGgXi-JFGh_0gKlZ6qO_osesVhpUjbYij5/s1600/photo+2+(15).JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYHOASLZe6wDS2H8szaUYl-GMJz5nYjXIrSCZpo3Ssohq-pl5ln-aJcRa_q-SCKUfY_ktmHpgqXmPW9-sa4PQcRu7Exshyphenhyphen0T-59r9Ja5ysoCGgXi-JFGh_0gKlZ6qO_osesVhpUjbYij5/s1600/photo+2+(15).JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Capcom World 2 enclosed in a soft case</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b>1993 Warriors of Fate</b><br />
Updated CPS-1 design known as CPS Dash (or CPS 1.5). Four layer design featuring a new intermediate QSound board. All enclosed inside a hard case that includes an internal fan. This is the final update to the CPS-1 platform.<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidCFh_r2hsw1-q6ZHmC7rrgr4dhak5ehJp1IfIZmfYXDFWnnBdZbw5TWDFi32DR3aX_RagY3sv2fNeykaqGVcxi7S0owUkyF-c4CgmlH-oSW3-ic9cEEcfQw2NwC2JuYrYqUYj6nAKLFM6/s1600/photo+1+(17).JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidCFh_r2hsw1-q6ZHmC7rrgr4dhak5ehJp1IfIZmfYXDFWnnBdZbw5TWDFi32DR3aX_RagY3sv2fNeykaqGVcxi7S0owUkyF-c4CgmlH-oSW3-ic9cEEcfQw2NwC2JuYrYqUYj6nAKLFM6/s1600/photo+1+(17).JPG" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS (1.5) Dash hard case with <span style="font-size: 12.8000001907349px;">QSound for the game </span><span style="font-size: 12.8000001907349px;">Warriors of Fate.</span></td></tr>
</tbody></table>
<div>
<br /></div>
<div>
This last update also saw a failed attempt of marketing CPS Dash as a home videogame system. The system was known as Capcom Power System Changer. Below is an original mailer about the system and its accessories:</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYDn5ykEIpoZNzNG-50oBsk_IgK-2ohQCD0kI5SVPOUGoize69ZbVCgad_0_o7dHS9_cCkTjoNtqyqxpw82QdeocYmjMf8UAyTtpdd46deI8Rm_WopHulrC5ua5RNRODYsDEGlSExYMo4p/s1600/CPS_CHANGER_MAILER.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYDn5ykEIpoZNzNG-50oBsk_IgK-2ohQCD0kI5SVPOUGoize69ZbVCgad_0_o7dHS9_cCkTjoNtqyqxpw82QdeocYmjMf8UAyTtpdd46deI8Rm_WopHulrC5ua5RNRODYsDEGlSExYMo4p/s1600/CPS_CHANGER_MAILER.JPG" width="273" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Capcom Power System Changer. Photo taken from therealundamned.blogspot.com</td></tr>
</tbody></table>
<div>
<br /></div>
<b>CPS-1 the customs</b><br />
<br />
One of the many milestones of CPS-1 is probably the reduction in the dependency of TTL chips, a family of logic chips widely used in the arcade video game industry since its very beginnings. With the introduction of CPS-1, Capcom also introduced a number of custom ASIC chips bringing new system capabilities, as well as a significant reduction in board density and complexity.<br />
<br />
An ASIC is basically a custom chip built on request to meet a certain specification. In basic terms think of it as a relative easy way (if you have the required upfront investment capital) of integrating many off the shelf logic parts into just one.<br />
<br />
A couple of these custom chips found in CPS-1 are the video logic ASICs known as A-XX and B-XX.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO0blWIcSebyDQutnpjamTG_2OBzZaBpkUxziNaq9NfJXLq81ED3HBP-Ghs7_ROX1QOQHFtq0gklRAHuSSZeWloxO6RqObkCov8gWqmNBuU5yNFpHPgA1Gu8b4vKiNk2G8EnsdAm6TdH02/s1600/cpsa-b.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO0blWIcSebyDQutnpjamTG_2OBzZaBpkUxziNaq9NfJXLq81ED3HBP-Ghs7_ROX1QOQHFtq0gklRAHuSSZeWloxO6RqObkCov8gWqmNBuU5yNFpHPgA1Gu8b4vKiNk2G8EnsdAm6TdH02/s1600/cpsa-b.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Left: CPS custom B. Right: CPS custom A</td></tr>
</tbody></table>
<br />
<br />
Rather than being mission specific, these chips do combine several video functions (scrolling, layer controls, palettes, memory transfers, etc... ) and as you can see in the photos above both came in high IO density QFP chip packages.<br />
<br />
<br />
<b>The strange case of COMCO</b><br />
<br />
One good story about these customs is the apparent existence of a full A-01 custom clone under the comical brand "COMCO". Did anyone back then leak, sold, or steal the designs of this chip from Capcom? Or perhaps someone in the 90s embarked into fully reversing it? Whichever the case, who did it was resourceful enough and had the investment capacity to successfully reproduce and manufacture working clone parts.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqayB_UbDpVjnZ1B0Kmb2rkNQg5Me4AWDeLGhuiuQGXK0CK5CKbI03fuKjEEztnvKB-KCV8LedqD5B1gzVCb1CeyihCxNfoACooGOIXG55NJDpBuBcp6s3r122rgsAIeZ3oxh-9aZOXWYh/s1600/comco.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqayB_UbDpVjnZ1B0Kmb2rkNQg5Me4AWDeLGhuiuQGXK0CK5CKbI03fuKjEEztnvKB-KCV8LedqD5B1gzVCb1CeyihCxNfoACooGOIXG55NJDpBuBcp6s3r122rgsAIeZ3oxh-9aZOXWYh/s1600/comco.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Left: COMCO A-01 clone. Right: CAPCOM A-01 original part. </td></tr>
</tbody></table>
<br />
I find this particular story amusing and believe it deserves a future investigation. Thanks to Fabrizio (Caius) for exposing the existence of the clone.<br />
<br />
<b>CPS-1 security</b><br />
<b><br /></b>
The overall reason for the existence of the C board is copy protection. The B-XX custom was manufactured with a different unique internal configuration in almost every new game, preventing operators from simply changing roms from title to title. Eg: converting old dated games into new releases without the right.<br />
<br />
With the release of the game "Three Wonders", custom B-XX underwent its last known revision (B-21) which saw the introduction of an on-chip internal memory backed by an external battery.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpA13AKCZv0thP18KhmrlkZzhAjSmNia1cijk_lKxKFeAzpNRnoJYndjcg6VONtf8esOi3JbX74R3bT8XIXbHjQBYNvS0r_d-Ljup9PxrYssf5V-gVe34n8prKTVqQLdTlw__N2grluknG/s1600/b21.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpA13AKCZv0thP18KhmrlkZzhAjSmNia1cijk_lKxKFeAzpNRnoJYndjcg6VONtf8esOi3JbX74R3bT8XIXbHjQBYNvS0r_d-Ljup9PxrYssf5V-gVe34n8prKTVqQLdTlw__N2grluknG/s1600/b21.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS-1 C board with custom revision B-21. Battery shown on the left.</td></tr>
</tbody></table>
<br />
This custom component gave Capcom the ability of having a dynamic internal configuration without the need to update and build new B-XX custom chips with every release, an operational optimization that most probably simplified Capcom's life and introduced long term savings on production cost.<br />
<br />
The long term consequences of this practice? Lose the battery, lose the game. As discussed earlier this practice probably helped Capcom with stopping plain and simple piracy attempts. But did this stop professional bootleggers? Clearly not as we know today CPS-1 and its army of hit games have been cloned to infinity.<br />
<br />
On the positive side the perceived survivability of the B-21 battery is strong. The custom is known to hold for an impressive number of years on its original battery, most have survived 20+ years and many even still go on today. In any case, for us collectors in the post arcade industry era, this battery backed chip represents a problem to overcome in order to keep working unmodified originals of our CPS-1 titles.<br />
<br />
<br />
<b>CPS-1 the challenge</b><br />
<br />
With the idea of uncovering the CPS-1 B-XX custom secrets and providing the arcade community with complete control over their hardware, I teamed with the almighty Digshadow and went ahead on a quest to reverse engineer this mysterious chip.<br />
<br />
What's inside CPS-1 B-21? Who manufactured it? Can it be desuicided and reprogramed? To our satisfaction all of these questions (and more) already have an answer. During the next coming days a series of articles will provide you the insights and full disclosure on all of the B-21 custom secrets. Ready to discover what Capcom didn't want you know?<br />
<br />
Stay tuned.<br />
<br />
Update: <a href="http://arcadehacker.blogspot.com/2015/05/capcom-cps1-part-2.html" target="_blank">Part 2 now available</a><br />
<br />Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com25tag:blogger.com,1999:blog-1981425846546053493.post-49916795725417396912015-04-13T13:36:00.001+02:002015-04-13T17:54:55.871+02:00Capcom CPS1 AnnouncementDear all, i'm very happy to announce the successful reverse engineering of the CPS1 security enabled custom PPU, also known as CPS B-21.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi84QVJUKHxPMvzFI5U4_mUNNa2Aq6HaxfP8PYX07WhWKhbRgrBI-8IABWUbh0w0BhpSgx27noE1-_5TGp2unaFFi6PmUHdFibbCldYWQLbLIKRr0foocNP6T06vfn7LG0w-LN6IUw-F11/s1600/cps1cboard.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi84QVJUKHxPMvzFI5U4_mUNNa2Aq6HaxfP8PYX07WhWKhbRgrBI-8IABWUbh0w0BhpSgx27noE1-_5TGp2unaFFi6PmUHdFibbCldYWQLbLIKRr0foocNP6T06vfn7LG0w-LN6IUw-F11/s1600/cps1cboard.png" height="232" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">CPS1-C board with battery backed B-21 custom IC</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
What this announcement means for the arcade community is full preservation of CPS1 systems enabled with security, without the need to modify hardware or rom code.<br />
<br />
Details about the reverse engineering process, milestones, and full disclosure of the custom IC programing method to follow during the coming days.<br />
<br />
Thanks all for reading and supporting this project.Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com10tag:blogger.com,1999:blog-1981425846546053493.post-50010747246884710152015-01-18T01:32:00.001+01:002022-06-27T15:02:04.879+02:00Kabuki Presentation PDFSome of you have requested a copy of the pdf presentation I used during the final Kabuki video, here it is: <a href="https://github.com/ArcadeHacker/ArcadeHacker_Kabuki/blob/master/Other/kabuki-reprograming.pdf" target="_blank">kabuki-reprograming.pdf</a>Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com3tag:blogger.com,1999:blog-1981425846546053493.post-404590182583668172015-01-17T01:51:00.000+01:002015-01-18T01:34:33.613+01:00Announcing Sega's FD1094 Reverse Engineering<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLMQa1h4TMbIgmgdIAlGzthFRS2BZIpUessmXlYRen2_ncytWyE3MZmz1pL1Kw8Nypehj55SYAjzc00bufkI9o5BDsqbLkO8LA_Kaw0k3nJNycK8k2sj5-WdzS_MumQHD2I5jD9CgC66-W/s1600/fd-0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLMQa1h4TMbIgmgdIAlGzthFRS2BZIpUessmXlYRen2_ncytWyE3MZmz1pL1Kw8Nypehj55SYAjzc00bufkI9o5BDsqbLkO8LA_Kaw0k3nJNycK8k2sj5-WdzS_MumQHD2I5jD9CgC66-W/s1600/fd-0.jpg" height="123" width="320" /></a></div>
<br />
Dear all, it is my pleasure to announce the beginning of Sega's FD1094 reverse engineering effort. As it was with Kabuki, the main goal is to understand the programing secrets of this security processor featured in plenty of arcade games developed by Sega.<br />
<br />
After having spent some time studying it, I firmly believe Sega's FD is probably one of the more complex and beautiful chips ever designed.<br />
<br />
Stay tuned.<br />
<br />
ps: If you hold a stash of FD1904 & FD1089 cpu's please consider donating any spare units to the cause, contributions welcome.Eduardo Cruzhttp://www.blogger.com/profile/18379284498583161191noreply@blogger.com10