<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6078548544149602311</id><updated>2011-12-22T14:09:24.797+01:00</updated><category term='Virtual Machine'/><category term='Joystick'/><category term='Cheap ebay dongle'/><category term='Package release'/><category term='PS/2 Mouse/Keyboard to PS3 controller'/><category term='Kinect'/><category term='bluez'/><category term='usb sniffer'/><category term='Windows'/><category term='Tutorial'/><category term='multiple emulators'/><category term='latency'/><category term='Joystick emulator'/><category term='Custom pairing'/><category term='Français'/><category term='usbmon'/><category term='Sixaxis emulator'/><category term='Handfree'/><category term='Bt dongle'/><category term='Fake sixaxis'/><category term='Mouse translation'/><category term='German'/><category term='Tools'/><category term='Sixaxis control mapping'/><category term='Test package'/><category term='ubuntu'/><category term='Voice Control'/><category term='Macros'/><category term='Video'/><category term='usb connection'/><category term='Live USB'/><title type='text'>GIMX - Game Input MultipleXor</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default?start-index=101&amp;max-results=100'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>102</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1332478299458494028</id><published>2011-08-20T15:20:00.008+02:00</published><updated>2011-08-29T19:14:45.766+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Recommended bluetooth dongle</title><content type='html'>I finally found a compatible, low price, worldwide available bluetooth dongle. The brand name is "Pluscom", it's quite unknown, and the model name is "BT-20". The chip inside this dongle is a CSR Bluecore4-rom, and what's even more surprising is that it's written "CSR BC4" on the product package.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-DMjrbuC_a44/Tk-4p1YcjWI/AAAAAAAAAUg/K2pv4dzlpzY/s1600/Pluscom%2BBT-20.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-H3OO7DqKAMc/Tk_AjET19gI/AAAAAAAAAUo/rhyJ9iiIdgY/s1600/Pluscom%2BBT-20.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 160px;" src="http://3.bp.blogspot.com/-H3OO7DqKAMc/Tk_AjET19gI/AAAAAAAAAUo/rhyJ9iiIdgY/s320/Pluscom%2BBT-20.jpg" alt="" id="BLOGGER_PHOTO_ID_5642940566803445250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This dongle is available on ebay: &lt;a href="http://www.ebay.com/itm/ws/eBayISAPI.dll?ViewItem&amp;amp;item=230591917327&amp;amp;ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1439.l2649"&gt;link&lt;/a&gt;. The price is good and the seller is in the UK, which should provide a faster delivery than China to people living in the EU or the US.&lt;br /&gt;&lt;br /&gt;The shape of this dongle is exactly the same than my &lt;a href="http://www.peabird.com/products/fiche/id/28/name/adaptateur-usb-bluetooth-v2-0-edr"&gt;Peabird PEAB-BT-SM04C-100M (CSR Bluecore4-rom)&lt;/a&gt;. It's not a very common shape for bluetooth dongles, so that I think it's highly possible that these dongles come from the same factory.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1332478299458494028?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1332478299458494028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/08/recommended-bluetooth-dongle.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1332478299458494028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1332478299458494028'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/08/recommended-bluetooth-dongle.html' title='Recommended bluetooth dongle'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-H3OO7DqKAMc/Tk_AjET19gI/AAAAAAAAAUo/rhyJ9iiIdgY/s72-c/Pluscom%2BBT-20.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1933058316757575572</id><published>2011-08-01T11:10:00.002+02:00</published><updated>2011-08-01T11:15:12.734+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>Killzone 3 video by McKack</title><content type='html'>This video was recorded running the windows version of GIMX (0.23), which operates over a &lt;a href="http://diy-machine.blogspot.com/search/label/usb%20connection"&gt;usb connection&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://www.youtube.com/embed/sDM8JKZFQlg" allowfullscreen="" frameborder="0" height="349" width="560"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1933058316757575572?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1933058316757575572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/08/killzone-3-video-by-mckack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1933058316757575572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1933058316757575572'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/08/killzone-3-video-by-mckack.html' title='Killzone 3 video by McKack'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/sDM8JKZFQlg/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1009508058046237972</id><published>2011-07-14T22:39:00.007+02:00</published><updated>2011-07-14T23:00:22.794+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>French review by PgunMan</title><content type='html'>Following video is a French review of the usb controller running in Windows.&lt;br /&gt;&lt;br /&gt;It's made by PgunMan, a gamer who tests a lot of mouse controllers for both the PS3 &amp;amp; 360.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://www.youtube.com/embed/ph5uaJ8GhiI" allowfullscreen="" frameborder="0" height="349" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Online gameplay at 9:00.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1009508058046237972?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1009508058046237972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/07/french-review-by-pgunman.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1009508058046237972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1009508058046237972'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/07/french-review-by-pgunman.html' title='French review by PgunMan'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/ph5uaJ8GhiI/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5681946083159952486</id><published>2011-07-07T21:09:00.004+02:00</published><updated>2011-07-07T21:20:03.355+02:00</updated><title type='text'>Project forum</title><content type='html'>A user nicknamed "DjDean" proposed me to launch a forum that will help to organize the information about the sixaxis emulator, and I thought it was time to do that.&lt;br /&gt;&lt;br /&gt;Hopefully this will make the support easier than with a blog, and this will help to start a community around the sixaxis emulator.&lt;br /&gt;&lt;br /&gt;I chose the domain name "gimx.fr". GIMX stands for "Game Input MultipleXer". I'm intentionally not mentioning the ps3 as I also may target the XBox360 some day...&lt;br /&gt;&lt;br /&gt;Most of the information is already moved to this new forum. The layout/design is not definitive.&lt;br /&gt;&lt;br /&gt;Forum link: &lt;a href="http://gimx.fr/forum/"&gt;http://gimx.fr/forum/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5681946083159952486?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5681946083159952486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/07/new-project-forum.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5681946083159952486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5681946083159952486'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/07/new-project-forum.html' title='Project forum'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6147983676963822117</id><published>2011-07-04T10:41:00.004+02:00</published><updated>2011-07-04T12:04:13.343+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Stats over a year</title><content type='html'>I started blogging about this project in February 2010. Following chart from google analytics shows the fluctuation of visitors.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-GCV03zw1g7k/ThGP0JXrHKI/AAAAAAAAATw/Fd0qjWjoDDw/s1600/stats.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 142px;" src="http://3.bp.blogspot.com/-GCV03zw1g7k/ThGP0JXrHKI/AAAAAAAAATw/Fd0qjWjoDDw/s320/stats.jpg" alt="" id="BLOGGER_PHOTO_ID_5625435535593643170" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-gZTMr_FA__U/ThF-qjSHYcI/AAAAAAAAATo/e90fOnupk50/s1600/stats.jpg"&gt;&lt;br /&gt;&lt;/a&gt;There were a few peaks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2 news on hackaday in April/May 2010&lt;/li&gt;&lt;li&gt;in September 2010, due to the psgroove, many people looking for avr usb dev boards&lt;/li&gt;&lt;li&gt;in December 2010, a thread started on gtrp.de about using macros for GT5/B-spec&lt;/li&gt;&lt;li&gt;in Mars 2011, the Kinect-PS3 was released&lt;/li&gt;&lt;li&gt;in May 2011, news on many websites (hackaday, korben, dashhacks, ps3hax, logic-sunrise, psx-scene, psgroove...)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6147983676963822117?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6147983676963822117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/07/stats-over-year.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6147983676963822117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6147983676963822117'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/07/stats-over-year.html' title='Stats over a year'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-GCV03zw1g7k/ThGP0JXrHKI/AAAAAAAAATw/Fd0qjWjoDDw/s72-c/stats.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8513902317521391837</id><published>2011-07-02T08:54:00.004+02:00</published><updated>2011-07-02T09:15:36.665+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Test package'/><title type='text'>Test package for Duke Nukem Forever</title><content type='html'>Instead of using the left stick state to compute movement (the standard way), DNF is using events.&lt;br /&gt;&lt;br /&gt;As a result, there is no more movement if the left stick is kept in a position. This is due to the fact that the sixaxis emulator doesn't flood the PS3 with useless events like a real sixaxis. If there is nothing to send, an event is only sent after 1s so as to keep the connection alive...&lt;br /&gt;&lt;br /&gt;I built a test package for DNF players: &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23a-1_i386.deb"&gt;link (i386)&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8513902317521391837?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8513902317521391837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/07/test-package-for-duke-nukem-forever.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8513902317521391837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8513902317521391837'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/07/test-package-for-duke-nukem-forever.html' title='Test package for Duke Nukem Forever'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8640196409168234483</id><published>2011-06-28T14:35:00.006+02:00</published><updated>2011-06-28T14:57:30.766+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Some more videos by McKack!</title><content type='html'>Many people might remember the &lt;a href="http://diy-machine.blogspot.com/2011/01/great-youtube-video.html"&gt;first video&lt;/a&gt; showing the sixaxis emulator in action. It was made by McKack with sixemu v0.11 (Linux+bluetooth).&lt;br /&gt;&lt;br /&gt;McKack has made some new videos with the sixemu v0.23 (Linux+bluetooth):&lt;br /&gt;&lt;br /&gt;Infamous, Wii Classic Controller&lt;br /&gt;&lt;iframe src="http://www.youtube.com/embed/72Wv-CM9oE8" allowfullscreen="" frameborder="0" height="349" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Call Of Duty: Black Ops, Keyboard + Mouse&lt;br /&gt;&lt;iframe src="http://www.youtube.com/embed/7fsr4-UKQeY" allowfullscreen="" frameborder="0" height="349" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://www.youtube.com/embed/te94LA7dcS0" allowfullscreen="" frameborder="0" height="349" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Thanks McKack!&lt;br /&gt;&lt;br /&gt;I added these videos to the &lt;a href="http://diy-machine.blogspot.com/p/videos.html"&gt;"Videos" page&lt;/a&gt; of this blog. If you make some videos like that, please give me the links so that I can add them!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8640196409168234483?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8640196409168234483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/06/some-more-videos-by-mckack.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8640196409168234483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8640196409168234483'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/06/some-more-videos-by-mckack.html' title='Some more videos by McKack!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/72Wv-CM9oE8/default.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4685992146755469957</id><published>2011-06-13T23:19:00.014+02:00</published><updated>2011-06-29T11:14:59.338+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>Version 0.23 released</title><content type='html'>Main improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;windows version (&lt;a href="http://diy-machine.blogspot.com/search/label/Joystick%20emulator"&gt;usb connection&lt;/a&gt; only)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"set dongle address" tool of sixemugui is fixed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;"replace mouse dpi" tool of sixemuconf is fixed&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;All corrected issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=80&amp;amp;can=1"&gt;issue 80&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=87&amp;amp;can=1"&gt;issue 87&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=95&amp;amp;can=1"&gt;issue 95&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=12&amp;amp;can=1"&gt;issue 12&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Download links:&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;ubuntu package - &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_i386.deb"&gt;i386&lt;/a&gt; - &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_amd64.deb"&gt;amd64&lt;/a&gt; - &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;updated June 16&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/setup-0.23.exe"&gt;windows setup&lt;/a&gt; (&lt;a href="http://diy-machine.blogspot.com/search/label/Joystick%20emulator"&gt;usb connection&lt;/a&gt; only)&lt;/li&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/firmwares-0.23.zip"&gt;firmwares-0.23.zip&lt;/a&gt; (avr usb firmwares for the usb connection)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/Software/CP210x_VCP_Win_XP_S2K3_Vista_7.exe"&gt;CP2102 windows drivers&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Known issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;[linux] the sixstatus gui generates movement glitches (work-around: use 100Hz or lower for the calibration)&lt;/li&gt;&lt;li&gt;[windows] the COM port is not detected (work-around: check the proper COM port in the device manager)&lt;/li&gt;&lt;li&gt;[usb] the controller state is wrong (work around: unplug/replug the teensy board)&lt;/li&gt;&lt;li&gt;[usb] game compatibility: there are some compatibility issues with games like GT5 and Fallout: New  Vegas. These games seem to have compatibility issues with gamepads  other than the sixaxis/dualshock 3 controllers. Considering game compatibility, it seems the best solution is to emulate  a true wired sixaxis/dualshock 3 controller. My first releases won't do  that, and I will work on that later.&lt;/li&gt;&lt;li&gt;[usb] buttons can't work as pressure-sensitive buttons: it's useless to configure them in the "Axis" tab of Sixemuconf&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[windows] extra mouse buttons are not working&lt;/li&gt;&lt;/ul&gt;About the windows port&lt;br /&gt;&lt;br /&gt;I got a  few issues to solve for the windows port. It turned out the official SDL 1.2 library (cross-platform) isn't  providing raw events from the mouse. No problem, I checked out &lt;a href="http://icculus.org/manymouse/"&gt;the manymouse library&lt;/a&gt; and built a custom SDL library that provides raw mouse events.&lt;br /&gt;&lt;br /&gt;Many  people see the sixaxis emulator only as a mouse+keyboard converter. But  it does a lot more than that. It also allows to use ANY game controller  (gamepad/wheel...) with custom control mappings. It especially allows  to use the XBox 360 controllers that work out-of-the-box (except the X button).  What about  the sixaxis/dualshock 3 controllers? I wrote a post about &lt;a href="http://diy-machine.blogspot.com/2011/03/qtsixa-sixaxis-control-mapping-for-all.html"&gt;QtSixA&lt;/a&gt;  some time ago. This software allows to use the sixaxis/dualshock 3  controllers in Linux, and can be used with the sixaxis emulator as it  emulates a standard game controller. There also is a software that allows  to use sixaxis/dualshock 3 controllers in windows, it's called &lt;a href="http://www.motioninjoy.com/"&gt;Motioninjoy&lt;/a&gt;.  It's not open-source, and there are some ads in the GUI, but it's free,  comes with signed bluetooth drivers, and is very complete: motion  sensing (tested - I managed to control the crosshair in COD:BO...),  rumble, but also macros and rapid fire...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4685992146755469957?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4685992146755469957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/06/version-023-released.html#comment-form' title='85 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4685992146755469957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4685992146755469957'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/06/version-023-released.html' title='Version 0.23 released'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>85</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2259199638896224716</id><published>2011-05-30T23:51:00.013+02:00</published><updated>2011-06-30T09:10:02.768+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>Teensy 2.0 + CP2102 board</title><content type='html'>I received my &lt;a href="http://www.pjrc.com/store/teensy.html"&gt;Teensy 2.0 board.&lt;/a&gt; I ordered it to check that the hardware I am suggesting (for the usb connection) works.&lt;br /&gt;Delivery was very quick, it took a week from the US to my home (France).&lt;br /&gt;The Teensy 2.0 works fine with the CP2102 board I tested in my &lt;a href="http://diy-machine.blogspot.com/2011/05/cp2102-usb-to-serial-ttl-converter.html"&gt;previous post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My PC to PS3 usb controller:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-ubRRtQ_adPc/TeQYXOuoXNI/AAAAAAAAARc/cEKXJKcXBKI/s1600/PC-to-PS3-usb-controller-A.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 91px;" src="http://3.bp.blogspot.com/-ubRRtQ_adPc/TeQYXOuoXNI/AAAAAAAAARc/cEKXJKcXBKI/s320/PC-to-PS3-usb-controller-A.jpg" alt="" id="BLOGGER_PHOTO_ID_5612637822980218066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I directly soldered the Rx and Tx pins of the CP2102 board on the Teensy. I added a small wire for the grounds.&lt;br /&gt;&lt;br /&gt;Note that this assembly requires to be handled with care: if you plug the Teensy, then hold the Teensy, and if you plug the CP2102 board, then hold the CP2102 board. If you don't do that, each board can be damaged (in the long term) near the Rx-Tx pins.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Warning:  this hardware solution doesn't work with sixemu &amp;lt;= v0.22 because the  serial connection doesn't work at the right speed (v0.23  solves this).&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2259199638896224716?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2259199638896224716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/teensy-20-cp2102-board.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2259199638896224716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2259199638896224716'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/teensy-20-cp2102-board.html' title='Teensy 2.0 + CP2102 board'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ubRRtQ_adPc/TeQYXOuoXNI/AAAAAAAAARc/cEKXJKcXBKI/s72-c/PC-to-PS3-usb-controller-A.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6868073745658625277</id><published>2011-05-25T21:38:00.011+02:00</published><updated>2011-06-30T09:53:49.754+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>CP2102 USB to serial TTL converter</title><content type='html'>I received my &lt;a href="http://cgi.ebay.com/USB-2-0-to-TTL-6PIN-Module-Serial-Converter-CP2102-/350462207101"&gt;CP2102 usb to serial TTL converter&lt;/a&gt; bought on ebay from China for 2.8€ (about 4$). The delivery from China to my home (France) usually takes about 3-4 weeks, but this time I was lucky as it arrived in less than 2 weeks :)&lt;br /&gt;&lt;br /&gt;As showed in the following picture, I connected it to my Teensy++:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-3Lf3RIQ4z0M/Td1e5hb0MzI/AAAAAAAAAP0/Trgxw5blwZw/s1600/2011-05-25-205250.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 213px;" src="http://2.bp.blogspot.com/-3Lf3RIQ4z0M/Td1e5hb0MzI/AAAAAAAAAP0/Trgxw5blwZw/s400/2011-05-25-205250.jpg" alt="" id="BLOGGER_PHOTO_ID_5610745053094097714" border="0" /&gt;&lt;/a&gt;Blue outlined, the CP2102 board, and red outlined, the Teensy++.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-lt3ySbf_yp8/Td1d7k4wEoI/AAAAAAAAAPs/hPOcXijp25Y/s1600/2011-05-25-205250.jpg"&gt;&lt;br /&gt;&lt;/a&gt;First tests were not so hopeful, as it doesn't work as-is with the latest sixemu package (v0.12).&lt;br /&gt;&lt;br /&gt;I had to deal with 2 problems:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Rx and Tx pins are for the target device.&lt;/li&gt;&lt;li&gt;The max speed reachable by the Linux driver is 921600 bit/s and not 1 Mbit/s as written in &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBoQFjAA&amp;amp;url=http%3A%2F%2Fwww.silabs.com%2FSupport%2520Documents%2FTechnicalDocs%2Fcp2102.pdf&amp;amp;rct=j&amp;amp;q=cp2102&amp;amp;ei=5lXdTeOrCpGwhQe8w4WlDw&amp;amp;usg=AFQjCNHiXFgxE_TsS5zzcpskrrZXYNeArA&amp;amp;cad=rja"&gt;the datasheet&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;I inverted two wires, and changed  both the emitter (CP2102) and receiver (Teensy++) speed to 500Kbit/s.&lt;br /&gt;&lt;br /&gt;My benchmark program shows  that we can reach about 45bytes/ms only writing and about 40bytes/ms  writing and reading at the same time. This is good enough for the  application. Running at 250Hz, I measured a 6.7ms worst latency, and a 5ms average latency.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion: this cheap CP2102 converter from ebay seems usable! I will test it further playing over a long time to see if it's reliable.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Warning: this hardware solution doesn't work with sixemu v0.22 because the serial connection doesn't work at the right speed (next release will solve this).&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6868073745658625277?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6868073745658625277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/cp2102-usb-to-serial-ttl-converter.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6868073745658625277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6868073745658625277'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/cp2102-usb-to-serial-ttl-converter.html' title='CP2102 USB to serial TTL converter'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-3Lf3RIQ4z0M/Td1e5hb0MzI/AAAAAAAAAP0/Trgxw5blwZw/s72-c/2011-05-25-205250.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6515420873185737558</id><published>2011-05-23T21:43:00.032+02:00</published><updated>2011-07-08T13:58:57.588+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>DIY pc to ps3 usb controller</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;br /&gt;Moved: &lt;a href="http://gimx.fr/forum/viewtopic.php?f=4&amp;amp;t=22"&gt;link&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="spoilertop" onclick="openClose('YOURSPOILERID')"&gt;&lt;br /&gt;&lt;br /&gt;» Outdated content  « &lt;/div&gt;&lt;br /&gt;&lt;div class="spoilermain" id="YOURSPOILERID" style="display: none;"&gt;&lt;br /&gt;This post explains how to build a pc to ps3 usb controller, that can be used with the v0.23+ sixemu packages.&lt;br /&gt;&lt;br /&gt;Warning: I'm not responsible for any wrong hardware you can buy, or anything you can do with this.&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Required hardware:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;a usb to serial TTL converter - 1Mbps recommended - chip examples: FT232R, CP2102&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a usb development board with a chip among the following: at90usb82, at90usb162, at90usb646, at90usb647, at90usb1286, at90usb1287, atmega16u4, atmega32u4&lt;/li&gt;&lt;/ol&gt;Examples:&lt;br /&gt;&lt;br /&gt;USB to serial TTL converter:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://shop.ebay.com/i.html?_trkparms=65%253A12%257C66%253A2%257C39%253A1%257C72%253A4726&amp;amp;rt=nc&amp;amp;_nkw=CP2102&amp;amp;_sticky=1&amp;amp;_trksid=p3286.c0.m14&amp;amp;_sop=15&amp;amp;_sc=1"&gt;CP2102 converters on ebay&lt;/a&gt; (as low as 4$)&lt;/li&gt;&lt;li&gt;&lt;a href="http://shop.ebay.com/i.html?_nkw=FT232*+%28board%2C+module%29&amp;amp;_sacat=0&amp;amp;_sop=15&amp;amp;_odkw=FT232*+-ssop&amp;amp;_osacat=0&amp;amp;_trksid=p3286.c0.m270.l1313"&gt;FT232R converters on ebay&lt;/a&gt; (as low as 15$)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sparkfun.com/products/198"&gt;CP2102 converter at sparkfun&lt;/a&gt; (22$ excl. shipping costs)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sparkfun.com/products/718"&gt;FT232R converter at sparkfun&lt;/a&gt; (15$ excl. shipping costs)&lt;/li&gt;&lt;li&gt;Some devices like the arduino have an on-board usb to serial chip&lt;/li&gt;&lt;li&gt;A second usb development board can also be programmed as a usb to serial converter.&lt;/li&gt;&lt;/ul&gt;USB development board:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.pjrc.com/store/teensy.html"&gt;Teensy board&lt;/a&gt; (atmega32u4, 16$ excl. shipping costs)&lt;/li&gt;&lt;li&gt;Boards used for the psgroove hack (check the on-board chip).&lt;/li&gt;&lt;/ul&gt;The hardware I used for my tests is the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arduino duemilanove (on-board FT232RL) + Bumble-b (discontinued, at90usb162)&lt;/li&gt;&lt;li&gt;Arduino duemilanove (on-board FT232RL) + Teensy++ (at90usb1286)&lt;/li&gt;&lt;li&gt;CP2102 board (from ebay) + Teensy 2.0 (atmega32u4)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I suggest the CP2102 converter from ebay (very low price, but unknown quality and probably low delivery) and the Teensy board (low price, good quality, and standard delivery). I didn't tested this hardware myself, and I will test it as soon as I receive it.&lt;br /&gt;&lt;br /&gt;So, you have a usb to serial TTL converter, and a compatible usb dev board?&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:130%;" &gt;I/ Load the firmware on the usb dev board&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following archive contains all firmwares: &lt;a href="http://diyps3controller.googlecode.com/files/firmwares-0.23.zip"&gt;link&lt;/a&gt;. I only tested the at90usb162, at90usb1286 and atmega32u4 firmwares.&lt;br /&gt;&lt;br /&gt;Load the proper hex file to your board with the &lt;a href="http://www.pjrc.com/teensy/loader.html"&gt;Teensy loader&lt;/a&gt;, the &lt;a href="http://www.atmel.com/dyn/products/tools_card.asp?category_id=154&amp;amp;family_id=690&amp;amp;subfamily_id=1561&amp;amp;tool_id=3886"&gt;Flip utility from Atmel&lt;/a&gt;, or the &lt;a href="http://dfu-programmer.sourceforge.net/"&gt;dfu-programmer command-line tool&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;dfu-programmer example:&lt;br /&gt;&lt;br /&gt;&lt;pre style="BORDER-BOTTOM: 1px inset; TEXT-ALIGN: left; BORDER-LEFT: 1px inset; PADDING-BOTTOM: 6px; MARGIN: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; OVERFLOW: auto; BORDER-TOP: 1px inset; BORDER-RIGHT: 1px inset; PADDING-TOP: 6px" dir="ltr" class="alt2"&gt;sudo dfu-programmer at90usb162 erase ; sudo dfu-programmer at90usb162 flash at90usb162.hex&lt;/pre&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0);font-size:130%;" &gt;&lt;span style="FONT-WEIGHT: bold"&gt;II/ Connect the two devices&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The only thing you have to do is to solder 3 wires between these two devices:&lt;br /&gt;&lt;br /&gt;GND &amp;lt;--&amp;gt; GND&lt;br /&gt;RX &amp;lt;--&amp;gt; TX&lt;br /&gt;TX &amp;lt;--&amp;gt; RX&lt;br /&gt;&lt;br /&gt;The example below shows how to connect a CP2102 converter (left) to a Teensy board (right):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-m6-dwJccQgk/Td_ZmAYE90I/AAAAAAAAAQE/apjv1jPEypk/s1600/PC-to-PS3-USB-controller.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 200px;" src="http://2.bp.blogspot.com/-m6-dwJccQgk/Td_ZmAYE90I/AAAAAAAAAQE/apjv1jPEypk/s400/PC-to-PS3-USB-controller.JPG" alt="" id="BLOGGER_PHOTO_ID_5611442907686172482" border="0" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/-N9J97poXjUo/TdrVtk8Pe1I/AAAAAAAAAPg/a2pv5Mom8RU/s1600/PC-to-PS3-USB-controller.JPG"&gt;&lt;br /&gt;&lt;/a&gt;Warning: Rx and Tx may be inverted on the usb to serial TTL board.&lt;br /&gt;The CP2102 converter in the above example has inverted Rx and Tx.&lt;br /&gt;If you use the arduino on-board USB to serial converter, Rx and Tx are inverted.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:130%;" &gt;III/ Connect it &amp;amp; use Sixemugui-serial&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Connect the USB to serial converter to your PC, and connect the usb dev board to your ps3. Turn the PS3 on (the ps3 button is not working yet). The ps3 should detect a joystick (turn a sixaxis on, it should be detected as controller #2).&lt;br /&gt;&lt;br /&gt;If it's not already done, install the sixemu package (&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_i386.deb"&gt;v0.23&lt;/a&gt; or higher).&lt;br /&gt;&lt;br /&gt;Start Sixemugui-serial:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-6cfKhr69dPI/TfeG_M9vQII/AAAAAAAAASM/i_dru-l1ezA/s1600/Sixemugui-serial.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 309px;" src="http://1.bp.blogspot.com/-6cfKhr69dPI/TfeG_M9vQII/AAAAAAAAASM/i_dru-l1ezA/s320/Sixemugui-serial.png" alt="" id="BLOGGER_PHOTO_ID_5618107480538038402" border="0" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-SQhBxyxtLoA/TdrRzZENzcI/AAAAAAAAAPY/5ddsXettrMI/s1600/Sixemugui-rs232.png"&gt;&lt;br /&gt;&lt;/a&gt;The USB to serial TTL converter should be detected as "ttyUSB0".&lt;br /&gt;&lt;br /&gt;Start emuclient &amp;amp; play!&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:130%;" &gt;Notes:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't set the frequency to a value higher than the mouse frequency (ask google about your mouse frequency, or let the value to 100Hz).&lt;/li&gt;&lt;li&gt;It's not recommended to run at 500Hz or 1000Hz, unless you have a realtime linux kernel (running at 500Hz with a 500Hz mouse may generate some small glitches). &lt;/li&gt;&lt;li&gt;For details about the installation &amp;amp; the configuration of the sixemu software, read &lt;a href="http://diy-machine.blogspot.com/2011/01/new-english-tutorial.html"&gt;the sixaxis emulator tutorial&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Multiple usb connections should work (not tested).&lt;/li&gt;&lt;li&gt;The calibration GUI lags for frequencies higher than 100Hz.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:130%;" &gt;Limitations:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All buttons are "digital" (i.e. value is 0/1, not in 0-255).&lt;/li&gt;&lt;li&gt;No PS3 button yet.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enjoy!!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6515420873185737558?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6515420873185737558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/diy-pc-to-ps3-usb-controller.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6515420873185737558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6515420873185737558'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/diy-pc-to-ps3-usb-controller.html' title='DIY pc to ps3 usb controller'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-m6-dwJccQgk/Td_ZmAYE90I/AAAAAAAAAQE/apjv1jPEypk/s72-c/PC-to-PS3-USB-controller.JPG' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-138117278335481126</id><published>2011-05-22T23:43:00.010+02:00</published><updated>2011-05-26T11:07:52.236+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>Version 0.22 released</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:130%;" &gt;If you are upgrading from v0.15 or lower, read this post first: &lt;a href="http://diy-machine.blogspot.com/2011/04/version-020-released.html"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Warning: this release wasn't tested deeply...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;New configuration example installed in the /etc/emuclient folder:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CallOfDuty:BlackOpsG500i2.xml (1:1 translation attempt)&lt;/li&gt;&lt;/ul&gt;Main improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;usb connection&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;the calibration mode automatically saves the configuration&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;calibration test for the 1:1 translation&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;All corrected issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=77&amp;amp;can=1"&gt;issue 77&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=79&amp;amp;can=1"&gt;issue 79&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=82&amp;amp;can=1"&gt;issue 82&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=83&amp;amp;can=1"&gt;issue 83&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=84&amp;amp;can=1"&gt;issue 84&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Download links:&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.22-1_i386.deb"&gt;sixemu_0.22-1_i386.deb&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Sixemugui-rs232 layout:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-SQhBxyxtLoA/TdrRzZENzcI/AAAAAAAAAPY/5ddsXettrMI/s1600/Sixemugui-rs232.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 218px; height: 257px;" src="http://3.bp.blogspot.com/-SQhBxyxtLoA/TdrRzZENzcI/AAAAAAAAAPY/5ddsXettrMI/s1600/Sixemugui-rs232.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;More details about how to use this coming soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-138117278335481126?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/138117278335481126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/version-022-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/138117278335481126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/138117278335481126'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/version-022-released.html' title='Version 0.22 released'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-SQhBxyxtLoA/TdrRzZENzcI/AAAAAAAAAPY/5ddsXettrMI/s72-c/Sixemugui-rs232.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1450337074620652960</id><published>2011-05-20T23:03:00.020+02:00</published><updated>2011-05-25T14:49:12.333+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mouse translation'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Subposition precision, 1:1 translation</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;This post explains a mechanism for the mouse to stick translation, that allows to reach a better precision and that is required to perform a 1:1 translation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;&lt;br /&gt;If you don't want to read some math, then skip this post :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;All values are considered positive so as to simplify the explanation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Each 10 ms, the sixaxis emulator processes all pending events.&lt;br /&gt;All mouse motion events are merged and as a result, a single mouse event is processed.&lt;br /&gt;This mouse event contains cumulated x and y deltas: (dx1, dy1).&lt;br /&gt;&lt;br /&gt;This motion vector is then translated into a stick position according to the following formula:&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; text-align: left; overflow: auto;"&gt;(1) pos1 = dz1 + mul * pow(mv1, exp)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;pos1 = desired stick position (real)&lt;br /&gt;dz1 = deadzone (real, function of dx1, dy1 and the deadzone shape)&lt;br /&gt;mv1 = mouse value (integer), dx1 or dy1&lt;br /&gt;mul = multiplier (real, constant)&lt;br /&gt;exp = exponent (real, constant)&lt;br /&gt;&lt;br /&gt;The result pos1 is a real. But the final stick position has to be an integer.&lt;br /&gt;What emuclient was doing previously is rounding pos1 to the nearest integer.&lt;br /&gt;This obviously results into a lower or higher speed than the desired one.&lt;br /&gt;A much more precise solution to tackle this real to integer conversion is to truncate pos1, and compute a mouse vector remainder to be added next iteration.&lt;br /&gt;&lt;br /&gt;The mouse event that corresponds to the applied stick position is: (dx2, dy2).&lt;br /&gt;dx2 and dy2 are reals.&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; text-align: left; overflow: auto;"&gt;(2) pos2 = dz1 + mul * pow(mv2, exp)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;pos2 = applied stick position (truncate(pos1), integer)&lt;br /&gt;dz1 = deadzone (same value, the angle is considered to be the same)&lt;br /&gt;mv2 = mouse value (real), dx2 or dy2&lt;br /&gt;mul = multiplier (real, constant)&lt;br /&gt;exp = exponent (real, constant)&lt;br /&gt;&lt;br /&gt;Note: norm(mv1) &amp;gt;= norm(mv2)&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; text-align: left; overflow: auto;"&gt;(3) vrem = mv1 - mv2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;vrem = mouse vector remainder&lt;br /&gt;mv1 is known.&lt;br /&gt;mv2 is computed from (2):&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; text-align: left; overflow: auto;"&gt;(4) mv2 = pow[(pos2 - dz1)/mul, 1/exp]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;mv2 can be replaced in (3):&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; text-align: left; overflow: auto; color: rgb(255, 102, 0);"&gt;&lt;span style="font-weight: bold;"&gt;(5) vrem = mv1 - pow[(pos2 - dz1)/mul, 1/exp]&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Conclusion:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(255, 102, 0);"&gt;&lt;li style="font-weight: bold;"&gt;(5) gives the mouse vector remainder that has to be added the next iteration&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;this emulates a subposition precision&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Notes:&lt;/span&gt;&lt;ul style="color: rgb(255, 102, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;this is useful with 8-bit precision for stick axes as the speed difference between two neighbor stick positions is high&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;this is useless &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span&gt;with 16-bit precision for stick axes&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1450337074620652960?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1450337074620652960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/subposition-precision-11-translation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1450337074620652960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1450337074620652960'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/subposition-precision-11-translation.html' title='Subposition precision, 1:1 translation'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4220598320919437918</id><published>2011-05-16T00:06:00.009+02:00</published><updated>2011-05-20T08:52:12.135+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>USB connection - it works!</title><content type='html'>&lt;span style="font-size:180%;"&gt;Done:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;write a clean joystick interface: 4 axes with 16-bit precision, 12 buttons (no PS3 button yet), and a hat (d-pad). This uses the excellent &lt;a href="http://www.fourwalledcubicle.com/LUFA.php"&gt;LUFA framework&lt;/a&gt; from Dean Camera.&lt;/li&gt;&lt;li&gt;configure an interrupt for the serial reception (&lt;a href="http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=48188"&gt;great tutorial &lt;/a&gt;from Dean Camera)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;write a RS232-capable emu process (&lt;a href="http://www.easysw.com/%7Emike/serial/serial.html"&gt;docs&lt;/a&gt;).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;write a new Sixemugui&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:180%;"&gt;Sixemugui layout:&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-O8jfqcPSq5Y/TdBWLRaQufI/AAAAAAAAAO4/Lu_jIpv0pyk/s1600/Sixemugui-rs232.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 375px; height: 400px;" src="http://4.bp.blogspot.com/-O8jfqcPSq5Y/TdBWLRaQufI/AAAAAAAAAO4/Lu_jIpv0pyk/s400/Sixemugui-rs232.png" alt="" id="BLOGGER_PHOTO_ID_5607076287728368114" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:180%;"&gt;Results:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;2ms update period = 500Hz update frequency (same as my G500 mouse) - not sure the PS3 can drive a usb device at that speed - not sure running as fast is relevant considering the Linux latency&lt;br /&gt;&lt;/li&gt;&lt;li&gt;measured worst latency between a usb packet received by the PC from a peripheral (like a mouse) and the usb packet received by the device the joystick is connected to (for easiness, the PC - should be the PS3) is about 4.7ms, average latency is about 3.6ms&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:180%;"&gt;Notes:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It's probably better to avoid connecting both the mouse and the USB to serial device to the same usb bus.&lt;/li&gt;&lt;li&gt;A kernel with realtime capabilities could probably lower the worst latency.&lt;/li&gt;&lt;li&gt;It's not good to work at a frequency higher than the mouse frequency (no mouse report in the last period =&amp;gt; stick is set to the center =&amp;gt; jerky movements).&lt;/li&gt;&lt;li&gt;The dead zone &lt;s&gt;doesn't seem to be&lt;/s&gt; is proportional to the max absolute axis value.&lt;/li&gt;&lt;li&gt;The report period is probably not constant without a realtime kernel (2ms is probably too low considering the Linux latency).&lt;/li&gt;&lt;li&gt;For performance reasons, emu &amp;amp; emuclient could be merged in a single process.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:180%;"&gt;Next tasks:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;build a package&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4220598320919437918?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4220598320919437918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/usb-connection-it-works.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4220598320919437918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4220598320919437918'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/usb-connection-it-works.html' title='USB connection - it works!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-O8jfqcPSq5Y/TdBWLRaQufI/AAAAAAAAAO4/Lu_jIpv0pyk/s72-c/Sixemugui-rs232.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8778911126278058862</id><published>2011-05-14T13:32:00.001+02:00</published><updated>2011-05-19T13:23:59.858+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>USB connection</title><content type='html'>Some time ago I announced my intention to &lt;a href="http://diy-machine.blogspot.com/2011/04/whats-next.html"&gt;work on a usb connection&lt;/a&gt; that can replace the bluetooth connection (it's well known that the ps3 is compatible with some joysticks that comply with the USB HID specification).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Why do I want a usb connection?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;better precision for sticks (better than 8-bit precision)&lt;/li&gt;&lt;li&gt;higher update frequency (better than 100Hz)&lt;/li&gt;&lt;li&gt;good solution for a native windows controller&lt;/li&gt;&lt;li&gt;challenge ;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:180%;"&gt;What hardware can be used?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This usb connection requires a system with 2 usb ports, one for the PC, and the other for the PS3. My first though was to use a &lt;a href="http://www.ftdichip.com/Products/ICs/VNC2.htm"&gt;VNC2&lt;/a&gt;, which is a programmable device with 2 usb ports. But the development tools are windows only :(&lt;br /&gt;&lt;br /&gt;Widely distributed, available, and cheap devices with usb capabilities are the at90usb* boards (Teensy++, bumble-b, AvrUsbKey...). These only have a single usb port, which is not enough. But it's possible to talk to these boards with other means like a UART (RS232, AKA serial connection).&lt;br /&gt;&lt;br /&gt;USB to RS232 TTL devices are very easy to find and are very cheap (a few $/€). The theoretical maximum baud rate reachable with these devices is 1 Mbit/s = 125 Kbytes/s = 125 bytes/ms, which seems fast enough. As a comparison, the sixaxis sends about 64 bytes to the PS3 each 10ms.&lt;br /&gt;&lt;br /&gt;Another good point for this at90usb + RS232 solution is that I already have all the hardware parts, as you can see in the following picture:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-RS9nf5tfjqA/Tc6Ay6ZCpTI/AAAAAAAAAOo/bFoxJPiawTY/s1600/2011-05-14-141534.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 241px;" src="http://2.bp.blogspot.com/-RS9nf5tfjqA/Tc6Ay6ZCpTI/AAAAAAAAAOo/bFoxJPiawTY/s400/2011-05-14-141534.jpg" alt="" id="BLOGGER_PHOTO_ID_5606560198278948146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Red outlined, the USB to RS232 TTL chip (FT232RL from FTDI). It's on an arduino board, which is not required at all.&lt;/li&gt;&lt;li&gt;Blue outlined, the bumble-b (at90usb162).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Green outlined, the push-buttons required by the bumble-b to enter into dfu mode (other usb boards generally have on board push-buttons).&lt;/li&gt;&lt;/ul&gt;The RS232 connection requires as low as 3 wires (Gnd, Rx and Tx). Rx and Tx wires are crossed.&lt;br /&gt;&lt;br /&gt;The Rx and Tx connectors of the arduino are for the AVR chip (which is absent on my board), and are crossed with the FT232RL. That's why the arduino Rx pin is the FT232RL Tx, and the arduino Tx pin is the FT232RL Rx. I obviously fall into the trap :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;First experiments:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The ps3 seems to handle 16-bit axes.&lt;/li&gt;&lt;li&gt;The at90usb162 can report its joystick state each 1ms (but not sure the ps3 can work as fast).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The practical max baud rate of the RS232 connection is about 85 bytes/ms bidirectional (instead of the 125 bytes/ms theoretical max baud rate).&lt;/li&gt;&lt;li&gt;There seems to be no transmission error for the  RS232 connection (I won't handle errors in a first time).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:180%;"&gt;Next tasks:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;write a clean joystick interface&lt;/li&gt;&lt;li&gt;write a RS232-capable emu process&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8778911126278058862?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8778911126278058862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/usb-connection.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8778911126278058862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8778911126278058862'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/usb-connection.html' title='USB connection'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-RS9nf5tfjqA/Tc6Ay6ZCpTI/AAAAAAAAAOo/bFoxJPiawTY/s72-c/2011-05-14-141534.jpg' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6203242839075685890</id><published>2011-05-07T17:05:00.004+02:00</published><updated>2011-05-19T09:20:53.931+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Version 0.21 released</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:130%;" &gt;Warning: the configuration writer of the mouse calibration mode is not working (&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=82"&gt;issue 82&lt;/a&gt;) :(&lt;br /&gt;&lt;br /&gt;If you are upgrading from v0.15 or lower, read this post first: &lt;a href="http://diy-machine.blogspot.com/2011/04/version-020-released.html"&gt;link&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;New configuration example installed in the /etc/emuclient folder:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CallOfDuty:BlackOpsG500i.xml (with stick intensity control)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Improvements:&lt;br /&gt;&lt;ul&gt;&lt;li style="font-weight: bold; color: rgb(255, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;s&gt;the calibration mode automatically saves the configuration&lt;/s&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold; color: rgb(255, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;stick intensity control for button-to-stick mapping&lt;/span&gt;&lt;/li&gt;&lt;li&gt;macros are fixed&lt;/li&gt;&lt;li&gt;emuclient is started automatically&lt;/li&gt;&lt;li&gt;the last used config file is auto-selected&lt;/li&gt;&lt;li&gt;a (big) memory leak is fixed&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;All corrected issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=70&amp;amp;can=1"&gt;issue 70&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=71&amp;amp;can=1"&gt;issue 71&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=72&amp;amp;can=1"&gt;issue 72&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=73&amp;amp;can=1"&gt;issue 73&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=75&amp;amp;can=1"&gt;issue 75&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=78&amp;amp;can=1"&gt;issue 78&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Download links:&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.21-1_i386.deb"&gt;sixemu_0.21-1_i386.deb&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;New sixemuconf layout:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-7035BmFzKiI/TcVhyRPIfrI/AAAAAAAAAOY/ofDdkfYOyDA/s1600/Stick%2Bintensity.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 218px;" src="http://1.bp.blogspot.com/-7035BmFzKiI/TcVhyRPIfrI/AAAAAAAAAOY/ofDdkfYOyDA/s400/Stick%2Bintensity.png" alt="" id="BLOGGER_PHOTO_ID_5603992827580677810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's now possible to have a better control over a stick with 4 keys or buttons (for ex WASD) and at least 1 modifier key or button (for ex a wheel, which is in fact 2 buttons).&lt;br /&gt;&lt;br /&gt;The original idea was to enable to reach mid-positions. This was proposed by KillerBug (see &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=73"&gt;issue 73&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The solution I coded enables to reach more positions of the 8 directions that can be generated with 4 buttons. Up to 127 positions for each direction = up to 1016 positions!&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/--B--l-cdniI/TcViSV9nsyI/AAAAAAAAAOg/_LACxXmp7Pc/s1600/button-to-stick.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 264px;" src="http://4.bp.blogspot.com/--B--l-cdniI/TcViSV9nsyI/AAAAAAAAAOg/_LACxXmp7Pc/s400/button-to-stick.png" alt="" id="BLOGGER_PHOTO_ID_5603993378605216546" border="0" /&gt;&lt;/a&gt;- dead zone = 31 (null-movement positions = black zone)&lt;br /&gt;- shape = circle&lt;br /&gt;- steps = 3 (number of positions for each direction)&lt;br /&gt;&lt;br /&gt;The circle radiuses are 127, 95, 63.&lt;br /&gt;Each red dot is a position we can reach with 4 direction buttons (ex WASD) + at least 1 modifier button (ex wheel).&lt;br /&gt;With shape = rectangle, the red dots are aligned as squares.&lt;br /&gt;&lt;br /&gt;Enjoy!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6203242839075685890?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6203242839075685890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/version-021-released.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6203242839075685890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6203242839075685890'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/version-021-released.html' title='Version 0.21 released'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-7035BmFzKiI/TcVhyRPIfrI/AAAAAAAAAOY/ofDdkfYOyDA/s72-c/Stick%2Bintensity.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-3039200143667456243</id><published>2011-05-02T22:47:00.000+02:00</published><updated>2011-05-02T23:02:06.634+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='bluez'/><title type='text'>Ubuntu 11.04</title><content type='html'>Ubuntu 11.04 is out! Some important changes for the sixaxis emulator:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the bluez version is now 4.91&lt;/li&gt;&lt;/ul&gt;The Ubuntu 10.10 bluez version (4.69) seems to cause some &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=32"&gt;connection problems&lt;/a&gt; in some undefined cases.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the middle mouse button emulation is now off by default&lt;/li&gt;&lt;/ul&gt;This "feature" can cause a &lt;a href="http://diy-machine.blogspot.com/2011/02/left-and-right-mouse-button-lag.html"&gt;50ms lag&lt;/a&gt; for left and right mouse buttons.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ubuntu.com/download/ubuntu/download"&gt;Download link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-3039200143667456243?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/3039200143667456243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/ubuntu-1104.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3039200143667456243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3039200143667456243'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/ubuntu-1104.html' title='Ubuntu 11.04'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-898576556552867603</id><published>2011-05-02T21:56:00.000+02:00</published><updated>2011-05-03T08:53:35.267+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fake sixaxis'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>And now, fake sixaxis...</title><content type='html'>Bouvrie, a reader of this blog, reported issues getting the sixaxis emulator to work.&lt;br /&gt;&lt;br /&gt;The connection isn't successful, even with a dongle that has a chip know to work (CSR bluecore4).&lt;br /&gt;&lt;br /&gt;The result of our investigation - see &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=74"&gt;issue 74&lt;/a&gt; - is that the sixaxis doesn't give the right ps3 bdaddr (bluetooth device address). It always gives the same wrong bdaddr.&lt;br /&gt;&lt;br /&gt;Obviously, with a wrong ps3 bdaddr, the sixaxis emulator can't connect to the ps3.&lt;br /&gt;&lt;br /&gt;The reason why this sixaxis doesn't give the right baddr is simple: it's a fake one :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-898576556552867603?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/898576556552867603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/05/and-now-fake-sixaxis.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/898576556552867603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/898576556552867603'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/05/and-now-fake-sixaxis.html' title='And now, fake sixaxis...'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2486711953407287684</id><published>2011-04-27T23:32:00.000+02:00</published><updated>2011-04-28T10:34:48.559+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cheap ebay dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><title type='text'>Yet another fake CSR dongle...</title><content type='html'>The whole series of posts about cheap ebay dongles: &lt;a href="http://diy-machine.blogspot.com/search/label/Cheap%20ebay%20dongle"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It seems ebay is really not a good option to find a CSR bluecore4 dongle. As a reminder, these dongles can have their bdaddr (bluetooth device address) changed, and 99% of them work with the sixaxis emulator. As far as I remember, only 1 or 2 users reported a non-working CSR BC4 dongle.&lt;br /&gt;&lt;br /&gt;After having tried 2 sellers and only having received 2 out of 7 non-fake dongles, I decided to try another seller. But this time, I asked before buying, so as to make sure I will get what I am paying for. The answer to my question "Is there really a CSR BC4 chip inside your dongles?" was a clear "YES". Fine, I decided to buy 5.&lt;br /&gt;&lt;br /&gt;After 3 weeks I finally received my order. First test, plug it to my PC, see what kind of bluecore revision it is. No revision, not good at all. Try to change the bdaddr. No error for the command, but the bdaddr is not changed. Finally, unplug it, open it, and look at the chip manufacturer: Conwise. Obviously not CSR...&lt;br /&gt;&lt;br /&gt;Lesson learnt: don't buy these cheap ebay dongles, even if it's advertised as a BC4 (CSR+EDR) dongle!&lt;br /&gt;&lt;br /&gt;A good advice I could give is to borrow every dongle you can borrow, and test it. Last solution: get a dongle from a local store.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2486711953407287684?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2486711953407287684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/04/yet-another-fake-csr-dongle.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2486711953407287684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2486711953407287684'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/04/yet-another-fake-csr-dongle.html' title='Yet another fake CSR dongle...'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7233599580100702898</id><published>2011-04-19T22:02:00.001+02:00</published><updated>2011-05-04T09:06:17.286+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='bluez'/><title type='text'>Connection errors</title><content type='html'>This post is for people getting connection errors.&lt;br /&gt;&lt;br /&gt;Some people reported connection issues that were fixed by upgrading the linux bluetooth stack (default one in Ubuntu 10.10 is version 4.69).&lt;br /&gt;&lt;br /&gt;Instructions if you want to do upgrade to the latest version (4.91):&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; text-align: left; overflow: auto;"&gt;System &amp;gt; Administration &amp;gt; Synaptic Package Manager&lt;br /&gt;Settings &amp;gt; Repositories &amp;gt; Other Software&lt;br /&gt;&lt;br /&gt;Add&lt;br /&gt;Apt Line: ppa:blueman/ppa&lt;br /&gt;Close&lt;br /&gt;&lt;br /&gt;Reload&lt;br /&gt;Mark all upgrades&lt;br /&gt;Apply&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I just upgraded to this version and it seems not to cause any issue on my setup. Do it at your own risk!&lt;br /&gt;&lt;br /&gt;Note: bluez version 4.91 is now in Ubuntu 11.04.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7233599580100702898?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7233599580100702898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/04/connection-errors.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7233599580100702898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7233599580100702898'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/04/connection-errors.html' title='Connection errors'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6809784052308966525</id><published>2011-04-15T08:53:00.001+02:00</published><updated>2011-07-27T14:45:13.339+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Mouse translation'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><title type='text'>What's next?</title><content type='html'>Version 0.20 is bringing many new stuffs and I hope its quality is good. I was thinking to code more things for this release, but it would have even more delayed the release date. Issues &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=66"&gt;66&lt;/a&gt;, &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=70"&gt;68 &lt;/a&gt;and &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=70"&gt;70&lt;/a&gt; (enhancements, not bugs) will probably be fixed in the next release.&lt;br /&gt;&lt;br /&gt;There also are a few things I want to work on.&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;Translation tables&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;I already studied the stick position to rotation speed relation some time ago (&lt;a href="http://diy-machine.blogspot.com/search/label/Mouse%20translation"&gt;link&lt;/a&gt;). Measuring rotation speed for each stick position is quite painful, and I'm thinking to design a tool to automate it. I want this to work with a cheap video capture card (about 10$).&lt;br /&gt;Why do I want to study rotation speed? I want to add some translation tables (there will be one different translation table for each game) so that a 1:1 translation can be achieved. A 1:1 translation means that if you double your mouse speed, your rotation speed will double. This aims to produce a better PC-feel.&lt;br /&gt;&lt;br /&gt;Following chart gives the rotation speed vs stick position measured for COD:MW2:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S8TFjVMAgFI/AAAAAAAAAB4/BLZ8O7R58ys/s1600/Sans+titre.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 321px; height: 226px;" src="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S8TFjVMAgFI/AAAAAAAAAB4/BLZ8O7R58ys/s320/Sans+titre.jpg" alt="" id="BLOGGER_PHOTO_ID_5459705859053486162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's obviously not 1:1, especially for positions lower than 50.&lt;br /&gt;&lt;br /&gt;Following table (values do not correspond to the above chart) shows how to perform a 1:1 translation:&lt;br /&gt;&lt;br /&gt;&lt;table style="width: 318px; height: 148px; text-align: left; margin-left: auto; margin-right: auto;" border="1"&gt;&lt;caption&gt;1:1 translation&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;position&lt;/th&gt;&lt;th&gt;speed&lt;br /&gt;&lt;/th&gt;&lt;th&gt;1:1 speed&lt;/th&gt;&lt;th&gt;1:1 position&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;1&lt;/th&gt;&lt;th&gt;0&lt;/th&gt;&lt;th&gt;8&lt;/th&gt;&lt;th&gt;7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;32&lt;/th&gt;&lt;th&gt;91&lt;/th&gt;&lt;th&gt;140&lt;/th&gt;&lt;th&gt;57&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;64&lt;/th&gt;&lt;th&gt;295&lt;/th&gt;&lt;th&gt;480&lt;/th&gt;&lt;th&gt;85&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;96&lt;/th&gt;&lt;th&gt;589&lt;/th&gt;&lt;th&gt;720&lt;/th&gt;&lt;th&gt;108&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;th&gt;...&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;128&lt;/th&gt;&lt;th&gt;960&lt;/th&gt;&lt;th&gt;960&lt;/th&gt;&lt;th&gt;128&lt;/th&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;All stick positions are required. Speed unit is °/s.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;First column is the stick position.&lt;br /&gt;Second column is the measured rotation speed.&lt;br /&gt;Third column is the speed that we would expect with a 1:1 position to rotation speed translation (position*max speed/max position).&lt;br /&gt;Fourth column is the translation of the position to perform a 1:1 translation. Look for the expected speed in the 2nd column (closest value) and look what position it is in the first column, this gives the 1:1 position.&lt;br /&gt;&lt;br /&gt;The translation looks like this:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-y6v9B9zNoFI/TjAIC4k66CI/AAAAAAAAAUI/bdPEfJyoPYY/s1600/index.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 273px;" src="http://4.bp.blogspot.com/-y6v9B9zNoFI/TjAIC4k66CI/AAAAAAAAAUI/bdPEfJyoPYY/s320/index.png" alt="" id="BLOGGER_PHOTO_ID_5634011979480492066" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;This position to position translation may introduce a loss of precision. It probably would be better to have a direct speed to position translation.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Better precision for the right analog stick&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;8-bit precision allows 256 stick positions. 10-bit precision allows 1024 stick positions. More positions give a finer control. As a comparison, a high-end mouse reports x and y values with a 16 bit precision.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://us.playstation.com/ps3/accessories/sixaxis-wireless-controller-ps3.html"&gt;official sixaxis page&lt;/a&gt; tells that analog sticks and l2/r2 buttons have a 10-bit precision. This is wrong: &lt;a href="http://wiki.ps2dev.org/ps3:hardware:sixaxis"&gt;stick and button positions are reported with a 8-bit only precision&lt;/a&gt;. Only motion sensing controls have a 10-bit precision. This is lame because many people are saying that the Xbox360 pad is technically lower than the Sixaxis (8-bit precision vs 10-bit precision), which is absolutely wrong.&lt;br /&gt;&lt;br /&gt;We can't change the precision of the sixaxis emulator, but it is probably possible to build a usb gamepad interface that has a precision higher than 8-bit for the right stick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6809784052308966525?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6809784052308966525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/04/whats-next.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6809784052308966525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6809784052308966525'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/04/whats-next.html' title='What&apos;s next?'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S8TFjVMAgFI/AAAAAAAAAB4/BLZ8O7R58ys/s72-c/Sans+titre.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5940832666262588554</id><published>2011-04-14T22:19:00.000+02:00</published><updated>2011-04-21T14:36:05.874+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Version 0.20 released</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;WARNING: this release totally breaks the configuration compatibility.&lt;br /&gt;&lt;br /&gt;EDIT 21 April: The macro fonctionnality is broken :(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;New configuration examples are installed to the /etc/emuclient folder:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CallOfDuty:BlackOps.xml (updated)&lt;/li&gt;&lt;li&gt;CallOfDuty:BlackOpsG500+G5.xml (configuration for 2 controllers)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Following items in the edit menu of Sixemuconf will let you convert your old configuration quickly:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Replace mouse: detect and replace mouse name&amp;amp;id in the current controller&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Replace keyboard: detect and replace keyboard name&amp;amp;id in the current controller&lt;/li&gt;&lt;/ul&gt;Due to the correction of issue 60, you also will have to change ALL your mouse multipliers depending on your mouse frequency:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;125Hz : divide by 1.25&lt;/li&gt;&lt;li&gt;250Hz : divide by 2.5&lt;/li&gt;&lt;li&gt;500Hz : divide by 5&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If you don't know what frequency your mouse is running at, just try each value (or ask google for your mouse max frequency, and limit it to a maximum of 500Hz). High-end mice like the Logitech G5 or G500 are running at 500Hz (default frequency).&lt;br /&gt;&lt;br /&gt;I know, this incompatibility sucks, but the new features in this version are worth the price. This probably won't happen another time.&lt;br /&gt;&lt;br /&gt;To prevent beginners to use this version until I'm sure its quality is good, I will not change the version in the tutorial, and the previous version will remain "featured" in the googlecode download page. About 500 people downloaded the previous version :) I'm waiting everyone's feedback! I'm just joking, but I really appreciate a few words and I accept both positive and negative feedbacks.&lt;br /&gt;&lt;br /&gt;Main improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;multiple mice &amp;amp; keyboard (new configuration examples in /etc/emuclient)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;synchronization improved&lt;br /&gt;&lt;/li&gt;&lt;li&gt;mouse translation improved&lt;br /&gt;&lt;/li&gt;&lt;li&gt;up to 8 configurations per controller&lt;/li&gt;&lt;li&gt;new mouse calibration mode&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;All corrected issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=54&amp;amp;can=1"&gt;issue 54&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=56&amp;amp;can=1"&gt;issue 56&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=57&amp;amp;can=1"&gt;issue 57&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=59&amp;amp;can=1"&gt;issue 59&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=60&amp;amp;can=1"&gt;issue 60&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=62&amp;amp;can=1"&gt;issue 62&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=63&amp;amp;can=1"&gt;issue 63&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=64&amp;amp;can=1"&gt;issue 64&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=65&amp;amp;can=1"&gt;issue 65&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=67&amp;amp;can=1"&gt;issue 67&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Download links:&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.20-1_i386.deb"&gt;sixemu_0.20-1_i386.deb&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.20-1_amd64.deb"&gt;sixemu_0.20-1_amd64.deb&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;New items in the edit menu of Sixemuconf:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-BRPUn3QUgpQ/Tadq0k2wdSI/AAAAAAAAAOA/Xsez7oacMhk/s1600/EditMenu.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 195px;" src="http://4.bp.blogspot.com/-BRPUn3QUgpQ/Tadq0k2wdSI/AAAAAAAAAOA/Xsez7oacMhk/s400/EditMenu.png" alt="" id="BLOGGER_PHOTO_ID_5595558513510216994" border="0" /&gt;&lt;/a&gt;The "Replace Mouse DPI"  item lets you adjust your multipliers according to your old and new  mouse dpi values (the higher the better). I recently bought a Logitech G500 (which is excellent by the way), and I run it at its max dpi (5700). My previous mouse is a Logitech G5 (max 2000 dpi). This means I had to multiply my multipliers by: 2000/5700.&lt;br /&gt;&lt;br /&gt;New calibration mode, displayed in Sixstatus:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-tRHyCGgtGXI/TadtiwhPfBI/AAAAAAAAAOQ/_9-_h1xx43A/s1600/Sixstatus.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 275px;" src="http://4.bp.blogspot.com/-tRHyCGgtGXI/TadtiwhPfBI/AAAAAAAAAOQ/_9-_h1xx43A/s400/Sixstatus.png" alt="" id="BLOGGER_PHOTO_ID_5595561505938439186" border="0" /&gt;&lt;/a&gt;This calibration mode lets you calibrate each mouse independently. It reads values from the loaded configuration, but it still doesn't save them (use Sixemuconf to apply changes to the configuration file). To change values, use rctrl+FX key combinations and use the mouse wheel.&lt;br /&gt;&lt;br /&gt;Enjoy!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5940832666262588554?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5940832666262588554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/04/version-020-released.html#comment-form' title='35 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5940832666262588554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5940832666262588554'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/04/version-020-released.html' title='Version 0.20 released'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-BRPUn3QUgpQ/Tadq0k2wdSI/AAAAAAAAAOA/Xsez7oacMhk/s72-c/EditMenu.png' height='72' width='72'/><thr:total>35</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5355547817378811532</id><published>2011-04-04T09:12:00.000+02:00</published><updated>2011-04-04T16:49:01.962+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>A tool to estimate the latency</title><content type='html'>In a &lt;a href="http://diy-machine.blogspot.com/search/label/latency"&gt;series of posts&lt;/a&gt; I am talking about the sixaxis emulator latency.&lt;br /&gt;&lt;br /&gt;What kind of latency am I talking about? Basically, the time between event reception from PC peripherals, and event emission to the PS3. The most critical event to me is a mouse left clic in a FPS game.&lt;br /&gt;&lt;br /&gt;The most accessible estimation is to measure the difference between usb timestamps. See &lt;a href="http://diy-machine.blogspot.com/2011/01/another-post-about-latency.html"&gt;this post&lt;/a&gt; for more details. I created a small utility to make this estimation easier. It has to be launched in a terminal, but I am thinking to add it some day in sixemugui.&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; text-align: left; overflow: auto;"&gt;matlo@matlo-hcpc:~/hack/test$ wget http://diyps3controller.googlecode.com/svn/trunk/tools/sixemulat.c&lt;br /&gt;matlo@matlo-hcpc:~/hack/test$ gcc -lm -o sixemulat sixemulat.c&lt;br /&gt;&lt;br /&gt;matlo@matlo-hcpc:~/hack/test$ lsusb&lt;br /&gt;[...]&lt;br /&gt;Bus 003 Device 008: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)&lt;br /&gt;Bus 003 Device 005: ID 046d:c041 Logitech, Inc. G5 Laser Mouse&lt;br /&gt;&lt;br /&gt;matlo@matlo-hcpc:~/hack/test$ ./sixemulat&lt;br /&gt;usage: ./sixemulat &amp;lt;mouse bus id&amp;gt; &amp;lt;mouse device id&amp;gt; &amp;lt;dongle bus id&amp;gt; &amp;lt;dongle device id&amp;gt;&lt;br /&gt;matlo@matlo-hcpc:~/hack/test$ ./sixemulat 3 5 3 8&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Be sure to use the correct mouse/dongle bus/device ids, specifically if you have several mice and/or several dongles!&lt;br /&gt;&lt;br /&gt;Sixemulat displays:&lt;br /&gt;- the number of caught left clics&lt;br /&gt;- the worst latency&lt;br /&gt;- the average latency&lt;br /&gt;&lt;br /&gt;About a hundred of samples should be enough to get significant values.&lt;br /&gt;&lt;br /&gt;The average latency is an interesting value, but &lt;span style="font-weight: bold;"&gt;the most important value is the worst latency&lt;/span&gt;. Commercial products will tend to give you only the average latency, as it is a lower (generally half) value...&lt;br /&gt;&lt;br /&gt;I only tested this tool with two logitech mice. If it doesn't work for you, please get in touch with me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5355547817378811532?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5355547817378811532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/04/tool-to-estimate-latency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5355547817378811532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5355547817378811532'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/04/tool-to-estimate-latency.html' title='A tool to estimate the latency'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4345431725467041856</id><published>2011-03-29T10:15:00.000+02:00</published><updated>2011-04-03T16:51:00.606+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mouse translation'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Mouse mapping improvement - 2</title><content type='html'>&lt;a href="http://diy-machine.blogspot.com/2011/02/mouse-mapping-improovement.html"&gt;Last mouse mapping improvement&lt;/a&gt; was about tweaking the dead zone shape, and was proposed by a reader of this blog. &lt;a href="http://diy-machine.blogspot.com/2011/03/about-kinect-ps3-project.html?showComment=1300827096519#c7213887242688719178"&gt;Another reader&lt;/a&gt; suggested me to change the way the mouse motion is processed.&lt;br /&gt;&lt;br /&gt;The sixaxis emulator currently approximates the velocity from the mouse report average over 10ms (=the sixaxis report period). For ex, if it receives N mouse reports, it assumes a constant 10/N ms period.&lt;br /&gt;&lt;br /&gt;Example 1:&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; text-align: left; overflow: auto;"&gt;t0-1ms  report x = some value&lt;br /&gt;t0      all mouse report processed, a report is sent to the ps3&lt;br /&gt;t0      report x = +10&lt;br /&gt;t0+1ms  report x = +8&lt;br /&gt;t0+2ms  report x = +6&lt;br /&gt;t0+3ms  report x = +4&lt;br /&gt;t0+4ms  report x = +2&lt;br /&gt;...     no other report&lt;br /&gt;t0+10ms all mouse report processed, a report is sent to the ps3&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; text-align: left; overflow: auto;"&gt;5 reports, report period is approximated to 2ms.&lt;br /&gt;Mouse report average: (10+8+6+4+2)/5 = 6 units/ms&lt;/pre&gt;&lt;br /&gt;Well, this is overestimated.&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; text-align: left; overflow: auto;"&gt;With a simple accumulation + division:&lt;br /&gt;Mouse report average: (10+8+6+4+2)/10 = 3 units/ms&lt;/pre&gt;&lt;br /&gt;For this example, the computed velocity is 2x the real one o_O&lt;br /&gt;&lt;br /&gt;This is not harmful if the computed velocity is always 2x the real one.&lt;br /&gt;But let's take another example.&lt;br /&gt;&lt;br /&gt;Example 2:&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; text-align: left; overflow: auto;"&gt;t0-1ms  report x = some value&lt;br /&gt;t0      all mouse report processed, a report is sent to the ps3&lt;br /&gt;t0      report x = +10&lt;br /&gt;t0+1ms  report x = +8&lt;br /&gt;t0+2ms  report x = +6&lt;br /&gt;...     no other report&lt;br /&gt;t0+10ms all mouse report processed, a report is sent to the ps3&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; text-align: left; overflow: auto;"&gt;3 reports, report period is approximated to 3/10ms.&lt;br /&gt;Mouse report average: (10+8+6)/3 = 8 units/ms&lt;/pre&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; text-align: left; overflow: auto;"&gt;With a simple accumulation + division:&lt;br /&gt;Mouse report average: (10+8+6)/10 = 2.4 units/ms&lt;/pre&gt;&lt;br /&gt;For this example, the computed velocity is 3.33x the real one...&lt;br /&gt;&lt;br /&gt;The previous computation was introducing a non constant multiplier :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4345431725467041856?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4345431725467041856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/03/mouse-mapping-improvement-2.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4345431725467041856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4345431725467041856'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/03/mouse-mapping-improvement-2.html' title='Mouse mapping improvement - 2'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2985705595678806068</id><published>2011-03-29T09:21:00.000+02:00</published><updated>2011-03-29T14:20:28.517+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cheap ebay dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><title type='text'>Beware of CSR counterfeits!</title><content type='html'>It seems some bt dongles out there are CSR counterfeits.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;I suspect most of the cheap CSR-advertised ebay dongles of being CSR counterfeits.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These dongles are advertised as CSR dongles supporting EDR, which means they should contain a CSR bluecore4 chip.&lt;br /&gt;&lt;br /&gt;But in fact they contain an ASC (Accel semiconductor) chip named AS3620QA.&lt;br /&gt;&lt;br /&gt;What makes them counterfeits:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;they all have the same bluetooth address! This means several of these dongles can't be used in the same area. If you and your neighbor are using the same dongle at the same time, it won't work, or it will work with many connection errors.&lt;/li&gt;&lt;li&gt;they are using the CSR usb vendor id &lt;span&gt;&lt;span style="font-family:Verdana;"&gt;(0x0A12)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;What's even worst for us is that these dongles can't have their bdaddr changed!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2985705595678806068?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2985705595678806068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/03/beware-of-csr-counterfeits.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2985705595678806068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2985705595678806068'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/03/beware-of-csr-counterfeits.html' title='Beware of CSR counterfeits!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7563305598057558382</id><published>2011-03-27T00:50:00.000+01:00</published><updated>2011-03-27T01:03:58.769+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom pairing'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><title type='text'>My working dongles</title><content type='html'>A photo of all my working dongles:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-xw1o5aUOmWA/TY58D11sXiI/AAAAAAAAANo/oPpMEzhn5f8/s1600/2011-03-26-105535.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-xw1o5aUOmWA/TY58D11sXiI/AAAAAAAAANo/oPpMEzhn5f8/s400/2011-03-26-105535.jpg" alt="" id="BLOGGER_PHOTO_ID_5588540593047100962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;From left to right: Trust (CSR bluecore4-rom), "cheap ebay dongle" (CSR bluecore4-rom), Fujistsu-Siemens FMWBA-101 (CSR bluecore2-ext es2), Com1 (Broadcom), Peabird (CSR bluecore4-rom), Cellink BTA-3000 (CSR bluecore2-ext), and Linksys USBBT100 (CSR bluecore2-ext).&lt;br /&gt;&lt;br /&gt;All connected to a Belkin usb hub:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-ybPMvM7_WL8/TY57_yY6IGI/AAAAAAAAANg/XJMH9LzaxHk/s1600/2011-03-26-110944_4.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-ybPMvM7_WL8/TY57_yY6IGI/AAAAAAAAANg/XJMH9LzaxHk/s400/2011-03-26-110944_4.jpg" alt="" id="BLOGGER_PHOTO_ID_5588540523401584738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I can get all these dongles working simultaneously with the sixaxis emulator, which means I can emulate 7 sixaxis controllers at the same time ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7563305598057558382?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7563305598057558382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/03/my-working-dongles.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7563305598057558382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7563305598057558382'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/03/my-working-dongles.html' title='My working dongles'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-xw1o5aUOmWA/TY58D11sXiI/AAAAAAAAANo/oPpMEzhn5f8/s72-c/2011-03-26-105535.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8070586866157611928</id><published>2011-03-23T22:19:00.000+01:00</published><updated>2011-03-24T19:21:08.910+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multiple emulators'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Multiple mice and keyboards support</title><content type='html'>I managed to build a custom SDL library (from &lt;a href="http://www.libsdl.org/download-1.2.php"&gt;libSDL 1.2&lt;/a&gt; sources) that exposes the source of mouse &amp;amp; keyboard events. People interested in how I did that will find the patch there: &lt;a href="http://diyps3controller.googlecode.com/svn/trunk/libsdl/patch"&gt;patch&lt;/a&gt;. It uses &lt;a href="http://www.x.org/wiki/XI2"&gt;XI2&lt;/a&gt;/&lt;a href="http://who-t.blogspot.com/2009/07/xi2-recipes-part-4.html"&gt;RawEvents&lt;/a&gt;. It's very hackish and ugly, but it does the job. Note that it probably breaks stuffs useless to the sixaxis emulator.&lt;br /&gt;&lt;br /&gt;This allows to use several mice and keyboards with the sixaxis emulator, which is a nice feature to play split-screen FPS games with friends :)&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Before I release this feature, I want to be sure I didn't broke anything.&lt;br /&gt;That's why &lt;span style="color: rgb(255, 0, 0);"&gt;I'm looking for testers!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you own at least 2 mice, 2 keyboards, 2 working bt dongles, a FPS with split-screen, and 1 friend :p, and if you want to test this stuff, please get in touch with me, I will send you a test package (i386 only). My mail can be found on &lt;a href="http://code.google.com/p/diyps3controller/"&gt;my googlecode page&lt;/a&gt; (you need to log in to see it).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8070586866157611928?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8070586866157611928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/03/multiple-mice-and-keyboards-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8070586866157611928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8070586866157611928'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/03/multiple-mice-and-keyboards-support.html' title='Multiple mice and keyboards support'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6527176351550751571</id><published>2011-03-21T22:51:00.000+01:00</published><updated>2011-03-21T23:30:22.052+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kinect'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>About the "Kinect-PS3" project</title><content type='html'>The &lt;a href="http://tech.shantanugoel.com/2011/03/20/making-kinect-work-with-ps3.html"&gt;Kinect-PS3 project from Shantanu Goel&lt;/a&gt; makes some huge buzz on the web. The Kinect-PS3 uses -among others things- the sixaxis emulator (called "diyps3controller" everywhere because of the name of my googlecode page), and probably wouldn't be there without it. Many websites are talking about the Kinect-PS3, and they only give credits to only  one person... guess who. This is not very fair, and I really would have appreciated getting a few credits  for what I am working on.&lt;br /&gt;&lt;br /&gt;That said, the Kinect-PS3 is a great showcase for the sixaxis emulator, and my googlecode page and blog are currently receiving an unusual amount of visitors.&lt;br /&gt;&lt;br /&gt;I guess Sony will not enjoy this stuff at all, and I hope they won't try to break the compatibility with the sixaxis emulator. But if they try to, be sure I will do my best to fix it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6527176351550751571?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6527176351550751571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/03/about-kinect-ps3-project.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6527176351550751571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6527176351550751571'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/03/about-kinect-ps3-project.html' title='About the &quot;Kinect-PS3&quot; project'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-9026251382038869702</id><published>2011-03-07T08:42:00.000+01:00</published><updated>2011-03-07T08:51:54.256+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Version 0.15 released</title><content type='html'>Main improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;multiple emu (but still single mouse &amp;amp; keyboard)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;configuration switch/switch back&lt;/li&gt;&lt;li&gt;compatibility with QtSixA&lt;/li&gt;&lt;li&gt;buttons to stick mapping improved&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;All corrected issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=15&amp;amp;can=1"&gt;issue 15&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=19&amp;amp;can=1"&gt;issue 19&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=27&amp;amp;can=1"&gt;issue 27&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=45&amp;amp;can=1"&gt;issue 45&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=46&amp;amp;can=1"&gt;issue 46&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=47&amp;amp;can=1"&gt;issue 47&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=50&amp;amp;can=1"&gt;issue 50&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=51&amp;amp;can=1"&gt;issue 51&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=52&amp;amp;can=1"&gt;issue 52&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Download link: &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.15-1_i386.deb"&gt;sixemu_0.15-1_i386.deb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-9026251382038869702?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/9026251382038869702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/03/version-015-released.html#comment-form' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/9026251382038869702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/9026251382038869702'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/03/version-015-released.html' title='Version 0.15 released'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-3106099725992558414</id><published>2011-03-05T10:30:00.000+01:00</published><updated>2011-03-30T15:05:17.135+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis control mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>QtSixA - Sixaxis control mapping for all!</title><content type='html'>The Sixaxis emulator supports standard joysticks thanks to the SDL library.&lt;br /&gt;The sixaxis itself is not a standard joystick. This means some ugly patches have to be done to get it work.&lt;br /&gt;&lt;br /&gt;It already works fine in usb mode, which makes it usable as-is with the sixaxis emulator, BUT bluetooth mode doesn't work out of the box.&lt;br /&gt;&lt;br /&gt;If you want to use your sixaxis in bluetooth mode, there is an excellent tool called &lt;a href="http://qtsixa.sourceforge.net/"&gt;QtSixA&lt;/a&gt;. There is a big thread about it in &lt;a href="http://ubuntuforums.org/showthread.php?t=1190061"&gt;Ubuntu forums&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It turns out that QtSixA (current version is 1.5.0) works fine with the sixaxis emulator :D&lt;br /&gt;&lt;br /&gt;This tool even let you use the motion sensing! This is not supported by the sixaxis emulator... for now :)&lt;br /&gt;&lt;br /&gt;To install it, from a terminal:&lt;br /&gt;&lt;br /&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; text-align: left; overflow: auto;"&gt;sudo add-apt-repository ppa:falk-t-j/qtsixa&lt;br /&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install qtsixa&lt;/pre&gt;&lt;br /&gt;There is a shortcut in menu Applications &amp;gt; Accessories.&lt;br /&gt;&lt;br /&gt;The pairing is currently broken, to fix it, just type in a terminal:&lt;br /&gt;&lt;br /&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;  &lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; height: 34px; text-align: left; overflow: auto;"&gt;sudo mv /usr/bin/sixpair /usr/sbin/sixpair&lt;/pre&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;br /&gt;All buttons and sticks are working with the sixaxis emulator. There is an issue with some 'analog' (pressure sensitive) buttons that are not working as axes: square/triangle/circle/cross.&lt;br /&gt;&lt;br /&gt;There also is a minor compatibility issue regarding the joystick name which is different in bt mode. The joystick name is used to distinguish joystick models, so that this will require a small patch.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Remember: don't use the same bluetooth address at the same time! This requires 2 sixaxis (1 turned off, 1 turned on). Or a usb dev board (such as the teensy++) to pair custom bluetooth addresses.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-3106099725992558414?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/3106099725992558414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/03/qtsixa-sixaxis-control-mapping-for-all.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3106099725992558414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3106099725992558414'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/03/qtsixa-sixaxis-control-mapping-for-all.html' title='QtSixA - Sixaxis control mapping for all!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1869576607595408859</id><published>2011-02-28T10:02:00.000+01:00</published><updated>2011-03-03T14:41:25.065+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Live USB'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Installation video</title><content type='html'>&lt;iframe title="YouTube video player" src="http://www.youtube.com/embed/4XcqTubwvFg" allowfullscreen="" frameborder="0" height="390" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;This video shows how easy and quick  (about 3 minutes!) it is to install the sixaxis emulator once you have Ubuntu running.&lt;br /&gt;&lt;br /&gt;It was made with a Ubuntu 10.10 live usb, using a broadcom dongle (the address change doesn't survive to a hard reset).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1869576607595408859?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1869576607595408859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/installation-video.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1869576607595408859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1869576607595408859'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/installation-video.html' title='Installation video'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/4XcqTubwvFg/default.jpg' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-9209744608211850485</id><published>2011-02-27T15:07:00.000+01:00</published><updated>2011-03-03T14:40:43.970+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Version 0.14 released</title><content type='html'>Main improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Config file permission/ownership problems should be fixed.&lt;/li&gt;&lt;li&gt;Software reset is improved (better compatibility with Broadcom dongles).&lt;/li&gt;&lt;li&gt;It's possible to choose a circle or rectangle dead zone shape.&lt;/li&gt;&lt;li&gt;Sixemuconf allows to modify a mapping.&lt;/li&gt;&lt;li&gt;Sixemugui doesn't hang anymore if connection is not successful.&lt;/li&gt;&lt;/ul&gt; All corrected issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=29&amp;amp;can=1"&gt;issue 29&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=34&amp;amp;can=1"&gt;issue 34&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=37&amp;amp;can=1"&gt;issue 37&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=38&amp;amp;can=1"&gt;issue 38&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=39&amp;amp;can=1"&gt;issue 39&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=40&amp;amp;can=1"&gt;issue 40&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=41&amp;amp;can=1"&gt;issue 41&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=42&amp;amp;can=1"&gt;issue 42&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=43&amp;amp;can=1"&gt;issue 43&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=44&amp;amp;can=1"&gt;issue 44&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Download link: &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.14-1_i386.deb"&gt;sixemu_0.14-1_i386.deb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!!&lt;br /&gt;&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on" style="display: block;" id="formatbar_CreateLink" title="Lien" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-9209744608211850485?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/9209744608211850485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/version-014-released.html#comment-form' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/9209744608211850485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/9209744608211850485'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/version-014-released.html' title='Version 0.14 released'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8691824512609811781</id><published>2011-02-22T08:51:00.000+01:00</published><updated>2011-03-03T14:45:58.978+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>New all-in-one package 0.13</title><content type='html'>I built a new all-in-one package 0.13 that includes everything needed to install, configure and launch the sixaxis emulator.&lt;br /&gt;&lt;br /&gt;It features a new gui called "sixstatus" that is able to display the sixaxis status (&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=35&amp;amp;can=1"&gt;issue 35&lt;/a&gt;), as shown in the following screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-luzrpgXP91I/TWNvwKhMkpI/AAAAAAAAAL8/hMGUpyH2gYo/s1600/Screenshot.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/-luzrpgXP91I/TWNvwKhMkpI/AAAAAAAAAL8/hMGUpyH2gYo/s400/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5576423636862800530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's now possible to save the configuration of sixemugui (Sixaxis and PS3 addresses) so that it is not required (except for the first launch) to have the sixaxis plugged anymore (&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=33&amp;amp;can=1"&gt;issue 33&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Last but not least, the mouse calibration mode is improved (&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=36&amp;amp;can=1"&gt;issue 36&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;If you installed the 9.99 test package, uninstall it before installing this new package!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Package download: &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.13-1_i386.deb"&gt;sixemu_0.13-1_i386.deb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will update the tutorials latter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8691824512609811781?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8691824512609811781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/new-all-in-one-package-013.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8691824512609811781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8691824512609811781'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/new-all-in-one-package-013.html' title='New all-in-one package 0.13'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-luzrpgXP91I/TWNvwKhMkpI/AAAAAAAAAL8/hMGUpyH2gYo/s72-c/Screenshot.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-873085915375558030</id><published>2011-02-18T15:17:00.011+01:00</published><updated>2011-07-07T20:57:41.360+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='German'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Deutsches Tutorial</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;Umgestellt: &lt;a href="http://gimx.fr/forum/viewtopic.php?f=4&amp;amp;t=13"&gt;Link&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div onclick="openClose('YOURSPOILERID')" class="spoilertop"&gt; » Alte Version  « &lt;/div&gt;&lt;br /&gt;&lt;div class="spoilermain" id="YOURSPOILERID" style="display: none;"&gt;&lt;br /&gt;Die erste Übersetzung war von cool&amp;amp;fast geschrieben.&lt;br /&gt;Paddy hat diese Übersetzung geschrieben.&lt;br /&gt;Danke!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Einleitung&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Diese Anleitung beschreibt, wie man die PS3 über eine Tastatur oder Maus, welche an einen PC angeschlossen sind, steuert.&lt;br /&gt;&lt;br /&gt;Die Weiterentwicklung basiert auf der Arbeit von &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;Jim Paris&lt;/a&gt;, vielen Dank dafür!&lt;br /&gt;&lt;br /&gt;Ich habe einige Änderungen am Quellcode gemacht, eine GUI  für eine einfachere Konfiguration erstellt und die Installationsschritte für Debian-basierende Linux Distributionen wie Ubuntu vereinfacht.&lt;br /&gt;&lt;br /&gt;Falls Du sehen möchtest, wie es funktioniert, schau Dir dieses Video von McKack an:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe title="YouTube video player" class="youtube-player" type="text/html" src="http://www.youtube.com/embed/MyxK8Pd1vds" frameborder="0" height="195" width="320"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:180%;" &gt;Vorraussetzungen&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;Ubuntu Live CD&lt;/a&gt; (oder jede andere auf Debian basierende Linux-Distribution)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;ein Sixaxis, der bereits mit der Ziel-PS3 verwendet wird&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;ein Bluetooth Dongle mit einem Chip, bei dem man die bdaddr (bluetooth device address / Bluetooth Geräteadresse) ändern kann. Für einfach das Tutorial aus, um festzustellen, ob dein Bluetooth Dongle geeignet ist.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(255, 0, 0);font-size:100%;" &gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Anmerkungen&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Durchführung auf eigene Gefahr!&lt;br /&gt;Ich bin NICHT verantwortlich für etwaige Schäden, die an Deiner PS3 oder am PC entstehen könnten&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Billige (ein paar €) CSR Bluecore4 Dongles, bei denen gemeldet wurde, dass sie funktionieren, sind auf ebay erhältlich.&lt;br /&gt;Bluecore4 ist der erste CSR bluecore chip, welcher EDR (Enhanced  Data Rate) unterstützt, also sind die Schlagwörter für die Suche CSR and EDR.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Achtung: viele &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;ebay &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;CSR Dongles sind Fälschungen!&lt;/span&gt;&lt;br /&gt;Bitte beachte, dass ich NICHT für nicht-funktionierende Dongles verantwortlich bin, die Du kaufst!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Versuche nicht, den Sixaxis Emulator und den Sixaxis Controller zur selben Zeit zu verwenden und setze die BDADDR zurück, wenn Du den Sixaxis Emulator nicht mehr verwendest.&lt;br /&gt;&lt;br /&gt;Die Anleitung ist für UBUNTU geschrieben, gestartet von der CD, es wird nichts auf der Festplatte gespeichert.&lt;br /&gt;&lt;br /&gt;Du kannst Dir Ubuntu auf deinem PC installieren! Falls Du ein Windoows Betriebssystem hast, dann kannst du in&lt;a href="https://help.ubuntu.com/community/WindowsDualBoot"&gt; diesem Tutorial&lt;/a&gt; nachlesen, wie Du Ubuntu installieren kannst, ohne Windows zu löschen.&lt;br /&gt;&lt;br /&gt;Eine weitere Möglichkeit ist, den Sixaxis Emulator von einem Ubuntu Live USB Persistent Flash Drive zu starten (lies dazu &lt;a href="http://diy-machine.blogspot.com/2010/08/sixaxis-emulator-on-ubuntu-live-usb.html"&gt;diesen Post&lt;/a&gt;).&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;1 Installation&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Füge "universe" zur Paketverwaltung hinzu:&lt;br /&gt;- Klicke auf System&amp;gt;Systemverwaltung&amp;gt;Synaptic Packetverwaltung.&lt;br /&gt;- Klicke&lt;br /&gt;auf Einstellungen&amp;gt;Paketquellen.&lt;br /&gt;- Wähle universe aus, schliesse das Fenster.&lt;br /&gt;- Klicke auf&lt;br /&gt;Neu laden und schliesse den Packetmanager.&lt;br /&gt;&lt;br /&gt;Lade folgende Dateien herunter:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_i386.deb"&gt;sixaxis emulator i386&lt;/a&gt; (oder &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_amd64.deb"&gt;amd64&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Installiere (Doppelklick, dann installieren).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;2 Schnellstart&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Schliesse den Bluetooth Dongle und den Sixaxis an den PC an.&lt;br /&gt;Starte sixemugui (Verknüpfung: Anwendungen&amp;gt;Spiele&amp;gt;Sixemugui).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Od027RVK94s/TeKLX2pTSuI/AAAAAAAAAQM/Bo1HEoZGJHs/s1600/Sixemugui.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 326px;" src="http://3.bp.blogspot.com/-Od027RVK94s/TeKLX2pTSuI/AAAAAAAAAQM/Bo1HEoZGJHs/s400/Sixemugui.png" alt="" id="BLOGGER_PHOTO_ID_5612201327579056866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Wähle den Sixaxis aus&lt;/li&gt;&lt;li&gt;Wähle den Bluetooth Dongle aus&lt;/li&gt;&lt;li&gt;Setze die Dongleaddresse (vergiss nicht, die alte Adresse aufzuschreiben)&lt;/li&gt;&lt;li&gt;Wähle wieder den Sixaxis und den Bluetooth Dongle aus&lt;/li&gt;&lt;li&gt;Zieh den siaxis raus und falls er sich nicht von alleine abschalte, drücke den PS3-Knopf, bis er sich von alleine ausschaltet&lt;/li&gt;&lt;li&gt;Stell die Parameter für den emuclient ein&lt;/li&gt;&lt;li&gt;Wähle das Konfigurationsfile aus, welches verwendet werden soll&lt;/li&gt;&lt;li&gt;Starte emu (emuclient selbst startet, falls die Verbindung erfolgreich ist)&lt;/li&gt;&lt;li&gt;Spiele mit deiner PS3 (Drücke Escape um den Emulator zu beenden)&lt;/li&gt;&lt;li&gt;Stoppe den emu&lt;/li&gt;&lt;/ol&gt;Anmerkung: File&amp;gt;Save speichert deinen Sixaxis- und PS3-Adresse, dann musst Du den Sixaxis danach nicht mehr anschliessen.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;3 Eigene Einstellungen für Maus, Tastatur und Joysticks&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es wird empfohlen, die Tastatur- und Mauseinstellungen für jedes Spiel einzustellen und abzuspeichern.&lt;br /&gt;&lt;br /&gt;Konfigurationsdateien müssen im Verzeichnis ~/.emuclient/config gespeichert werden (~ ist das Home-Verzeichnis).&lt;br /&gt;&lt;br /&gt;Starte sixemuconf (Verknüpfung: Anwendungen&amp;gt;Spiele&amp;gt;Sixemuconf).&lt;br /&gt;&lt;br /&gt;Screenshots meiner Konfiguration für COD: Black Ops:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-GvK6oDRkf9Q/TeKMG5YFHLI/AAAAAAAAAQU/3KS-qE1wIyA/s1600/Sixemuconf-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 268px;" src="http://1.bp.blogspot.com/-GvK6oDRkf9Q/TeKMG5YFHLI/AAAAAAAAAQU/3KS-qE1wIyA/s400/Sixemuconf-2.png" alt="" id="BLOGGER_PHOTO_ID_5612202135765982386" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-UVci_sKLPFI/TeKMOZRmrpI/AAAAAAAAAQc/iQLkkTqCNsA/s1600/Sixemuconf-3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 128px;" src="http://4.bp.blogspot.com/-UVci_sKLPFI/TeKMOZRmrpI/AAAAAAAAAQc/iQLkkTqCNsA/s400/Sixemuconf-3.png" alt="" id="BLOGGER_PHOTO_ID_5612202264587841170" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TSzBOocvVgI/AAAAAAAAALU/lvBA5ryaVpQ/s1600/sixemuconf.png"&gt;&lt;br /&gt;&lt;/a&gt;Es ist möglich, eine Konfiguration fürs Zielen mit der Maus zu definieren: kopiere die Konfiguration #1 zur Konfiguration #2, definiere die rechte Maustaste as Konfigurations #2 Trigger um zurückzuschalten und stelle die Mausmultiplikatoren und -exponenten ein.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-ZIvIlwImVn0/TeKMWz5R58I/AAAAAAAAAQk/sqkn-UtAjt0/s1600/Sixemuconf-4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 62px;" src="http://1.bp.blogspot.com/-ZIvIlwImVn0/TeKMWz5R58I/AAAAAAAAAQk/sqkn-UtAjt0/s400/Sixemuconf-4.png" alt="" id="BLOGGER_PHOTO_ID_5612202409172527042" border="0" /&gt;&lt;/a&gt;Folgenden Auswahlpunkte aus dem Menu "Edit" ermöglichen eine Konvertierung der Konfiguration:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-001ASdstp_A/TeKMq2p69VI/AAAAAAAAAQs/vuEkv-MuYLQ/s1600/Sixemuconf-5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 194px;" src="http://2.bp.blogspot.com/-001ASdstp_A/TeKMq2p69VI/AAAAAAAAAQs/vuEkv-MuYLQ/s400/Sixemuconf-5.png" alt="" id="BLOGGER_PHOTO_ID_5612202753510798674" border="0" /&gt;&lt;/a&gt;Im Menüpunkt "Replace Mouse" kann der Mausname und die ID geändert werden.&lt;br /&gt;Im Menüpunkt "Replace Keyboard" kann der Tastaturname und die ID geändert werden.&lt;br /&gt;Im Menüpunkt "Replace Mouse DPI" kann der Mausmultiplikator in Bezug auf die alten/neuen DPI-Werte (je höher, desto besser) eingestellt werden.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;4 Maus Kalibration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bevor die Maus kalibriert wird, stelle sicher, dass die in-game Sensitivität maximal eingestellt ist und dass die Maus DPI auf den größten Wert gesetzt wird.&lt;br /&gt;Um den emuclient mit Mauskalibrationsmodus zu starten, wähle Mouse&amp;gt;Calibrate in der sixemugui Anwendung aus und starte dann den emuclient.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-oCgfnY6VxVE/TeKPVe6g4II/AAAAAAAAAQ8/VDreFNKNrig/s1600/Sixstatus.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 264px;" src="http://2.bp.blogspot.com/-oCgfnY6VxVE/TeKPVe6g4II/AAAAAAAAAQ8/VDreFNKNrig/s400/Sixstatus.png" alt="" id="BLOGGER_PHOTO_ID_5612205684895572098" border="0" /&gt;&lt;/a&gt;Die aktuellen Mauskalibrationswerte werden im "Mouse calibration"-Teil der GUI angezeigt.&lt;br /&gt;&lt;br /&gt;Diese Kalibrationsmodus erlaubt eine Kalibration für jede Maus unabhängig voneinander. Es liest die Werte der geladenen Konfiguration. Um die Werte zu ändern, drücke rechte Strg (rctrl) + FX-Taste und verwende das Mausrad.&lt;br /&gt;&lt;br /&gt;Der Dead-Zone-Wert muss auf den größtmöglichen, stabilen Wert gesetzt werden.&lt;br /&gt;Verschiedene Dead-Zone-Werte für x und y machen nur Sinne für eine rechteckige Dead-Zonen-Bereich.&lt;br /&gt;Der Dead-Zonen-Bereich sollte auf die stabilsten Werte gesetzt werden.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;5 Tastaturmakros&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es ist möglich, die Tastaturmakros zu konfigurieren.&lt;br /&gt;&lt;br /&gt;Ein Tastendruck generiert eine Reihe von Events mit zeitlichen Abhängigkeiten.&lt;br /&gt;&lt;br /&gt;Die Kommandos sind die folgenden:&lt;br /&gt;- Taste runterdrücken (key down)&lt;br /&gt;- Taste loslassen (key up)&lt;br /&gt;- Taste drücken (= Taste runterdrücken + warten + Taste loslassen) (press key)&lt;br /&gt;- warten (delay) (Einheit = ms)&lt;br /&gt;&lt;br /&gt;Jedes Macro muss in einer Datei gespeichert werden, die im Verzeichnis ~/.emuclient/macros liegt(ist das Home Verzeichnis/Persönlicher Ordner, der Ordner .emuclient ist versteckt).&lt;br /&gt;&lt;br /&gt;Beispiel: macro_example.txt&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Definiert die Aktion/Taste, die das Makro startet&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;MACRO F1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#führt einen Tastendruck aus (Taste runterdrücken + 50ms warten + Taste loslassen)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEY e&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#warte 50ms&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#drücke eine Taste runter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYDOWN SPACE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#warte 50ms (minimale Verzögerung zwischen Taste runterdrücken und wieder loslassen)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Taste loslassen&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYUP SPACE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Zeilen, die mit # beginnen, sind Kommentare.&lt;br /&gt;&lt;br /&gt;Alle Tasten der Tastatur können ein Makro auslösen.&lt;br /&gt;Die vollständige Liste kann in folgender Datei nachgelesen werden: &lt;a href="http://code.google.com/p/diyps3controller/source/browse/trunk/sixaxis-emu/conversion.c?r=171#109"&gt;conversion.c&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;6 Fehlerbehebung / Feedback&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;div class="post-header"&gt;  &lt;/div&gt;  Ich stelle das Projekt &lt;span style="font-weight: bold;"&gt;kostenlos&lt;/span&gt; zur Verfügung, gib mir also ein &lt;span style="font-weight: bold;"&gt;Feedback&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Schreib mir, ob es funktioniert oder nicht, insbesondere folgende Details:&lt;ul&gt;&lt;li&gt;die Linux Distribution&lt;/li&gt;&lt;li&gt;die PS3 Hardware Version (Slim, Fat 40Gb, Fat 60Gb, ...)&lt;/li&gt;&lt;li&gt;die PS3 Firmware Version&lt;br /&gt;&lt;/li&gt;&lt;li&gt; den Bluetooth Dongle (exaktes Model + Revision, falls es eine gibt + die Ausgabe der Kommandos "hciconfig -a hci0" und "sudo hciconfig hci0 revision" in einem Terminal)&lt;/li&gt;&lt;li&gt;Die Hardware deines PCs (zumindest CPU und die Menge an RAM)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Schreibe mir das als Kommentar in diesen Blog.&lt;br /&gt;&lt;br /&gt;Und falls es nicht funkioniert, überprüfe zuerst, ob du die aktuellste Version hast.&lt;br /&gt;Dann schaue in der &lt;a href="http://diy-machine.blogspot.com/p/faq.html"&gt;FAQ&lt;/a&gt; (English) und in der &lt;a href="http://code.google.com/p/diyps3controller/issues/list"&gt;Bug liste&lt;/a&gt; nach, ob das Problem bereits bekannt ist, und falls nicht, &lt;a href="http://code.google.com/p/diyps3controller/issues/entry"&gt;melde sie&lt;/a&gt;.&lt;br /&gt;Paypal Spendenlinks sind rechts oben in der Ecke dieser Seite.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-873085915375558030?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/873085915375558030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/neues-deutsches-tutorial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/873085915375558030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/873085915375558030'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/neues-deutsches-tutorial.html' title='Deutsches Tutorial'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/MyxK8Pd1vds/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-3955005035175437260</id><published>2011-02-17T08:55:00.000+01:00</published><updated>2011-03-29T10:17:41.977+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mouse translation'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Mouse mapping improvement</title><content type='html'>Each polling period (=10ms=sixaxis refresh rate), emuclient processes all queued events.&lt;br /&gt;This means that depending on the mouse refresh rate, emuclient may process one or several mouse motion events.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;(rate=100Hz) =&gt; 1 event max&lt;/li&gt;&lt;li&gt;(rate=500Hz) =&gt; 5 events max&lt;/li&gt;&lt;li&gt;(rate=1000Hz) =&gt; 10 events max&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;In a single polling period, emuclient may receive several events, but only performs a single sixaxis status refresh. Therefore, mouse motion events have to be merged into a single one that is the average mouse motion event. This allows to reach a better precision since no event is ignored.&lt;br /&gt;&lt;br /&gt;The average mouse motion event is translated to a sixaxis axis thanks to the following formula:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;res=sign(val)*mul*pow(abs(val),exp)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I usually use exp=1 so that the simplified formula is:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;res=mul*val&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The dead zone has also to be removed:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;if res&amp;gt;0: res=res+dz&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;if res&amp;lt;0: res=res-dz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Different multipliers, exponent and dead zones may be set for x and y mouse motions.&lt;br /&gt;This calculation supposes the dead zone is rectangular.&lt;br /&gt;&lt;br /&gt;Following to the &lt;a href="http://diy-machine.blogspot.com/2011/02/new-packages-released.html?showComment=1297303994050#c3487473148076545596"&gt;suggestion of a reader&lt;/a&gt;, I decided to test a different dead zone shape.&lt;br /&gt;&lt;br /&gt;With a circular dead zone:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;if x!=0 and y!=0:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;  dz_x=dz*cos(atan(abs(y/x)))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;  dz_y=dz*sin(atan(abs(y/x)))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;else:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;  dz_x=dz&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;  dz_y=dz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I also improved the result precision by storing each intermediate result as a double (and not an integer). Only the final result is converted to an integer.&lt;br /&gt;&lt;br /&gt;I built a &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_9.99-1_i386.deb"&gt;test package&lt;/a&gt; for people that want to try these new things.&lt;br /&gt;Just remember to set the same value for both x and y dead zones.&lt;br /&gt;Let me know the results of your tests!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-3955005035175437260?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/3955005035175437260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/mouse-mapping-improovement.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3955005035175437260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3955005035175437260'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/mouse-mapping-improovement.html' title='Mouse mapping improvement'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8670604206675611495</id><published>2011-02-15T10:36:00.010+01:00</published><updated>2011-07-07T19:53:58.691+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Français'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Tutoriel en français</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:180%;" &gt;Déplacé : &lt;a href="http://gimx.fr/forum/viewtopic.php?f=4&amp;amp;t=10"&gt;lien&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div onclick="openClose('YOURSPOILERID')" class="spoilertop"&gt; » Ancien contenu  « &lt;/div&gt;&lt;br /&gt;&lt;div class="spoilermain" id="YOURSPOILERID" style="display: none;"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;Attention : ce tutoriel est mis à jour fréquemment. Ne le copiez pas. Donnez un lien vers cette page.&lt;br /&gt;&lt;br /&gt;Merci de noter que je n'offre pas de support pour autre chose qu'Ubuntu fonctionnant sur une machine non-virtuelle.&lt;br /&gt;&lt;br /&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ce  tutoriel explique comment contrôler une PS3 avec des périphériques PC (clavier,  souris, joystick) connectés à un PC sous Linux, en utilisant un dongle bluetooth.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Cela est possible grâce au &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;travail préliminaire de Jim Paris&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;J'ai appliqué de nombreuses modifications à son code source, développé des interfaces pour faciliter le lancement et la configuration, et simplifié l'installation pour les distributions Linux à base de debian telles que Ubuntu.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;La vidéo suivante réalisée par &lt;/span&gt;McKack montre le sixaxis emulator en fonctionnement (version 0.11):&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe title="YouTube video player" class="youtube-player" type="text/html" src="http://www.youtube.com/embed/MyxK8Pd1vds" frameborder="0" height="195" width="320"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Pré-requis&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;ubuntu Live CD&lt;/a&gt;  (ou toute autre distribution Linux si vous êtes à l'aise avec Linux)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;une manette sixaxis déjà utilisée avec la PS3 à utiliser&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;un  dongle bluetooth avec une puce dont la bdaddr (bluetooth device  address) peut être changée. Pour découvrir si votre dongle marche,  essayez simplement d'exécuter ce tutoriel.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;Notes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cette  méthode est expérimentale, donc utilisez là à vos risques et périls. Je  ne suis pas responsable des dégâts que vous pourriez causer à votre PC  ou à votre PS3.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Les dongles CSR Bluecore4 trouvables sur ebay pour quelques euros sont rapportés comme utilisables. &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Bluecore4   est la première puce CSR implémentant l'EDR (Enhanced Data Rate), donc   les mots clefs pour trouver ces dongles sont CSR et EDR.&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Attention : la plupart de&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; ces dongles sont des contrefaçons.&lt;/span&gt; Je ne suis pas responsable de l'achat d'un dongle incompatible.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ne  pas essayer d'utiliser le Sixaxis emulator et la manette sixaxis en  même temps. Rétablir la bdaddr du dongle si elle n'est plus utilisée  pour le Sixaxis emulator.&lt;br /&gt;&lt;br /&gt;Ce tutoriel a été écrit en utilisant ubuntu depuis le live cd (rien n'est modifié sur le disque dur).&lt;br /&gt;&lt;br /&gt;Installez ubuntu sur votre PC si vous le souhaitez ! Si vous avez un OS Windows déjà installé, vous pouvez lire &lt;a href="http://doc.ubuntu-fr.org/cohabitation_ubuntu_windows"&gt;ce tutoriel&lt;/a&gt; si vous voulez installer ubuntu sur votre disque dur sans supprimer l'OS Windows.&lt;br /&gt;&lt;br /&gt;L'émulateur peut aussi être exécuté à partir d'un Ubuntu en Live USB persistent (lire &lt;a href="http://diy-machine.blogspot.com/2010/08/sixaxis-emulator-on-ubuntu-live-usb.html"&gt;ce post&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;1 Installation&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ajouter"universe" aux dépôts:&lt;br /&gt;- Cliquer sur Système&amp;gt;Administration&amp;gt;Gestionnaire de paquets Synaptic.&lt;br /&gt;- Cliquer sur Configuration&amp;gt;Dépôts.&lt;br /&gt;- Sélectionner universe, et fermer.&lt;br /&gt;- Cliquer sur recharger, et fermer.&lt;br /&gt;&lt;br /&gt;Télécharger le fichier suivant:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_i386.deb"&gt;sixaxis-emulator i386&lt;/a&gt; (ou &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_amd64.deb"&gt;amd64&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Installer ce fichier (double clic, puis installer).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;2 Démarrage rapide&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Brancher le sixaxis (et le dongle bluetooth, si externe) au PC.&lt;br /&gt;Lancer sixemugui (raccourci: Applications&amp;gt;Jeu&amp;gt;Sixemugui).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Note: il y a un problème depuis Ubuntu 11.04. Au lieu de démarrer Sixemugui depuis le raccourci, démarrer-le depuis un terminal: Applications&amp;gt;Accessoires&amp;gt;Terminal. Puis taper sixemugui dans ce terminal, et presser entrée. Je travaille sur ce problème!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Od027RVK94s/TeKLX2pTSuI/AAAAAAAAAQM/Bo1HEoZGJHs/s1600/Sixemugui.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 326px;" src="http://3.bp.blogspot.com/-Od027RVK94s/TeKLX2pTSuI/AAAAAAAAAQM/Bo1HEoZGJHs/s400/Sixemugui.png" alt="" id="BLOGGER_PHOTO_ID_5612201327579056866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Sélectionner le sixaxis&lt;/li&gt;&lt;li&gt;Sélectionner le dongle bluetooth&lt;/li&gt;&lt;li&gt;Cliquer sur "Set Dongle Address" (ne pas oublier de sauver l'ancienne adresse)&lt;/li&gt;&lt;li&gt;Re-sélectionner le sixaxis et  le dongle bluetooth&lt;/li&gt;&lt;li&gt;Débrancher le sixaxis et s'il ne s'éteint pas de lui-même, appuyer sur le bouton PS3 jusqu'à ce qu'il s'éteigne&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sélectionner les paramètres d'emuclient&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sélectionner le fichier de configuration à utiliser&lt;/li&gt;&lt;li&gt;Démarrer emu (emuclient démarre automatiquement si la connexion est établie)&lt;/li&gt;&lt;li&gt;Jouer (appuyer sur Echap pour quitter emuclient)&lt;/li&gt;&lt;li&gt;Arrêter emu.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Note: File&amp;gt;Save permet de sauver les adresses du sixaxis et de la PS3, ce qui évite d'avoir à connecter le sixaxis avant chaque utilisation.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;3 Configurer les contrôles souris, claviers et joysticks&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il est recommandé de changer les contrôles et de calibrer la souris pour chaque jeu.&lt;br /&gt;&lt;br /&gt;Les fichiers de configuration doivent être sauvegardés dans le  répertoire ~/.emuclient/config directory (~ est le répertoire de  l'utilisateur).&lt;br /&gt;&lt;br /&gt;Lancer sixemuconf (raccourci: Applications&amp;gt;Jeu&amp;gt;Sixemuconf).&lt;br /&gt;&lt;br /&gt;Captures d'écran de ma configuration pour COD: Black Ops:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-GvK6oDRkf9Q/TeKMG5YFHLI/AAAAAAAAAQU/3KS-qE1wIyA/s1600/Sixemuconf-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 268px;" src="http://1.bp.blogspot.com/-GvK6oDRkf9Q/TeKMG5YFHLI/AAAAAAAAAQU/3KS-qE1wIyA/s400/Sixemuconf-2.png" alt="" id="BLOGGER_PHOTO_ID_5612202135765982386" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-UVci_sKLPFI/TeKMOZRmrpI/AAAAAAAAAQc/iQLkkTqCNsA/s1600/Sixemuconf-3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 128px;" src="http://4.bp.blogspot.com/-UVci_sKLPFI/TeKMOZRmrpI/AAAAAAAAAQc/iQLkkTqCNsA/s400/Sixemuconf-3.png" alt="" id="BLOGGER_PHOTO_ID_5612202264587841170" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TSzBWuXj0uI/AAAAAAAAALc/I75BSJ4VwH8/s1600/sixemuconf-2.png"&gt;&lt;br /&gt;&lt;/a&gt;Il est possible de définir une configuration de visée : copier-coller la configuration #1 sur la configuration #2, définir le bouton droit de la souris comme "trigger" avec "switch back" pour la configuration #2, et ajuster les "multipliers" &amp;amp; "exponents".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-ZIvIlwImVn0/TeKMWz5R58I/AAAAAAAAAQk/sqkn-UtAjt0/s1600/Sixemuconf-4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 62px;" src="http://1.bp.blogspot.com/-ZIvIlwImVn0/TeKMWz5R58I/AAAAAAAAAQk/sqkn-UtAjt0/s400/Sixemuconf-4.png" alt="" id="BLOGGER_PHOTO_ID_5612202409172527042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Outils du menu "Edit" permettant de convertir une configuration :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-001ASdstp_A/TeKMq2p69VI/AAAAAAAAAQs/vuEkv-MuYLQ/s1600/Sixemuconf-5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 194px;" src="http://2.bp.blogspot.com/-001ASdstp_A/TeKMq2p69VI/AAAAAAAAAQs/vuEkv-MuYLQ/s400/Sixemuconf-5.png" alt="" id="BLOGGER_PHOTO_ID_5612202753510798674" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-BRPUn3QUgpQ/Tadq0k2wdSI/AAAAAAAAAOA/Xsez7oacMhk/s1600/EditMenu.png"&gt;&lt;br /&gt;&lt;/a&gt;L'outil  "Replace Mouse"  permet de changer le nom et l'id de la souris.&lt;br /&gt;L'outil "Replace Keyboard"  permet de changer le nom et l'id du clavier.&lt;br /&gt;L'outil "Replace Mouse DPI"  permet d'ajuster les multipliers en fonction des ancien/nouveau réglages dpi de la souris (la plus haute valeur est la meilleure).&lt;br /&gt;&lt;br /&gt;Contrôle de l'intensité du stick pour les mappings de button à stick :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-f5rp2O6kcbQ/TeKOCUZCkSI/AAAAAAAAAQ0/0hnf-1o18bU/s1600/Sixemuconf-1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 226px;" src="http://4.bp.blogspot.com/-f5rp2O6kcbQ/TeKOCUZCkSI/AAAAAAAAAQ0/0hnf-1o18bU/s400/Sixemuconf-1.png" alt="" id="BLOGGER_PHOTO_ID_5612204256141676834" border="0" /&gt;&lt;/a&gt;Voir le post suivant pour plus de détails sur cette fonctionnalité : &lt;a href="http://diy-machine.blogspot.com/2011/05/version-021-released.html"&gt;lien&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;4 Calibration de la souris&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Avant de calibrer la souris, s'assurer que la sensibilité est réglée au maximum dans le jeu, et régler la sensibilité de la souris au maximum (max dpi).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pour démarrer emuclient avec le mode de calibration de la souris activé, sélectionner Mouse&amp;gt;Calibrate dans l'application sixemugui. Ensuite, démarrer emuclient.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-oCgfnY6VxVE/TeKPVe6g4II/AAAAAAAAAQ8/VDreFNKNrig/s1600/Sixstatus.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 264px;" src="http://2.bp.blogspot.com/-oCgfnY6VxVE/TeKPVe6g4II/AAAAAAAAAQ8/VDreFNKNrig/s400/Sixstatus.png" alt="" id="BLOGGER_PHOTO_ID_5612205684895572098" border="0" /&gt;&lt;/a&gt;Les valeurs courantes de calibration apparaissent dans la partie "Mouse calibration".&lt;br /&gt;&lt;br /&gt;Ce mode de calibration permet de configurer chaque souris indépendamment. Les valeurs sont lues à partir de la configuration chargée. Pour modifier les valeurs, utiliser les combinaisons ctrl droit + FX, et utiliser la molette de la souris.&lt;br /&gt;&lt;br /&gt;La zone morte doit être fixée à la plus haute position stable.&lt;br /&gt;Des valeurs différentes pour x &amp;amp; y n'ont de sens que pour une dead zone "rectangle".&lt;br /&gt;La "dead zone shape" doit être fixée à celle qui est la plus stable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;5 Macros clavier&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il est possible d'exécuter des macros de clavier.&lt;br /&gt;&lt;br /&gt;Un appui sur une touche peut générer une série d'événements, avec certains délais.&lt;br /&gt;&lt;br /&gt;Les commandes sont les suivantes :&lt;br /&gt;- key down (touche enfoncée)&lt;br /&gt;- key up (touche relâchée)&lt;br /&gt;- key press (key down + délai + key up)&lt;br /&gt;- delay (délai, unité = ms)&lt;br /&gt;&lt;br /&gt;Chaque macro doit être définie dans un fichier.&lt;br /&gt;&lt;br /&gt;Exemple: macro_example.txt&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Defines the action that triggers the macro execution&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;MACRO F1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Performs a keystroke (key down + delay 50ms + key up)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEY e&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key down&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYDOWN SPACE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key up&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYUP SPACE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Les lignes qui commencent par # sont des commentaires.&lt;br /&gt;&lt;br /&gt;Chaque fichier définissant une macro doit être référencé dans le ficher macros.txt.&lt;br /&gt;&lt;br /&gt;Toutes les touches du clavier peuvent générer une macro. La liste complète peut être obtenue dans le fichier &lt;a href="http://code.google.com/p/diyps3controller/source/browse/trunk/sixaxis-emu/conversion.c?r=171#109"&gt;conversion.c&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;6 Résolution des problèmes / Feedbacks&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Je partage mon projet gracieusement, merci de bien vouloir me donner un feedback si vous le testez.&lt;br /&gt;&lt;br /&gt;Dites-moi si cela fonctionne ou non, et ajoutez en particulier les détails suivants :&lt;ul&gt;&lt;li&gt;la  distribution Linux&lt;/li&gt;&lt;li&gt;la version hardware de la PS3 (slim, fat 40Gb, fat 60Gb, ...)&lt;/li&gt;&lt;li&gt;la version software de la PS3&lt;br /&gt;&lt;/li&gt;&lt;li&gt;le  dongle bluetooth (modèle exact + révision s'il y en a une + résultat de    "hciconfig -a hci0" et "sudo hciconfig hci0 revision")&lt;/li&gt;&lt;li&gt;le hardware du PC (au moins le CPU et la quantité de RAM)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Écrivez cela dans un commentaire à ce post.&lt;br /&gt;&lt;br /&gt;Et si cela ne marche pas, vérifiez d'abord que vous disposez des derniers paquets. Ensuite rendez-vous dans la &lt;a href="http://diy-machine.blogspot.com/p/faq.html"&gt;FAQ&lt;/a&gt; (en anglais pour l'instant...) et dans la &lt;a href="http://code.google.com/p/diyps3controller/issues/list"&gt;liste de bugs&lt;/a&gt;, regardez si vos problèmes sont déjà connus, et s'ils ne le sont pas, &lt;a href="http://code.google.com/p/diyps3controller/issues/entry"&gt;rapportez-les&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Pour contribuer à ce projet, voir &lt;a href="http://diy-machine.blogspot.com/p/contribute.html"&gt;cette page&lt;/a&gt;.&lt;br /&gt;Un lien paypal est disponible pour les dons, il est situé en haut de cette page à droite.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8670604206675611495?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8670604206675611495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/nouveau-tutoriel-en-francais.html#comment-form' title='103 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8670604206675611495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8670604206675611495'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/nouveau-tutoriel-en-francais.html' title='Tutoriel en français'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/MyxK8Pd1vds/default.jpg' height='72' width='72'/><thr:total>103</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2807766275410393738</id><published>2011-02-05T11:06:00.000+01:00</published><updated>2011-03-03T14:42:30.964+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Package release'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>New packages released</title><content type='html'>New packages are available there: &lt;a href="http://code.google.com/p/diyps3controller/downloads/list?can=3&amp;amp;q=&amp;amp;colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It fixes issues 24, 25, 31, 19.&lt;br /&gt;&lt;br /&gt;There is a new package (sixemugui_0.1-1_i386.deb) that contains the sixemugui tool.&lt;br /&gt;&lt;br /&gt;Package installation now adds shortcuts for sixemuconf and sixemugui in the Application&gt;Game menu.&lt;br /&gt;&lt;br /&gt;It looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TU0jS_rPoNI/AAAAAAAAAL0/OiEkngsNddw/s1600/Sixemugui.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 278px; height: 400px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TU0jS_rPoNI/AAAAAAAAAL0/OiEkngsNddw/s400/Sixemugui.png" alt="" id="BLOGGER_PHOTO_ID_5570147123364602066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Quick instructions:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Plug you sixaxis and bt dongle&lt;/li&gt;&lt;li&gt;Select the sixaxis&lt;/li&gt;&lt;li&gt;Select the bt dongle&lt;/li&gt;&lt;li&gt;Set the dongle address (don't forget to write the old one down)&lt;/li&gt;&lt;li&gt;Re-select the sixaxis and the bt dongle&lt;/li&gt;&lt;li&gt;Start emu (a popup will tell you if connection is succesful)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Start emuclient&lt;/li&gt;&lt;li&gt;Enjoy!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;As I won't be available next week, I didn't updated the tutorial.&lt;br /&gt;&lt;br /&gt;So if you use them and find some issues, please report them, but don't expect to have a quick answer or a quick fix.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2807766275410393738?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2807766275410393738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/new-packages-released.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2807766275410393738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2807766275410393738'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/new-packages-released.html' title='New packages released'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TU0jS_rPoNI/AAAAAAAAAL0/OiEkngsNddw/s72-c/Sixemugui.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-3468241542156156351</id><published>2011-02-01T09:57:00.000+01:00</published><updated>2011-02-03T00:22:36.684+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Left and right mouse button lag</title><content type='html'>In my previous post I told that I was experiencing about 50ms latency for left and right mouse clics. After some investigations I discovered that the problem was located in &lt;a href="http://www.x.org/wiki/"&gt;xorg&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It appears it's not a bug, it's a functionality called "3rd button emulation" that is useful with a 2 button mouse. Xorg waits up to 50ms to see if both left and right buttons are pressed, and in case it is, it generates a middle button press.&lt;br /&gt;&lt;br /&gt;It's nothing to say that this implementation is lame and should be disabled by default.&lt;br /&gt;&lt;br /&gt;Following bug reports were filled by people complaining about that behavior:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://bugs.freedesktop.org//show_bug.cgi?id=1752"&gt;https://bugs.freedesktop.org//show_bug.cgi?id=1752&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/291694"&gt;https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/291694&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Although a real middle button press is enough to disable the functionality (not persistent), it's possible to disable it by default (works for Ubuntu 10.10):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo gedit /usr/share/X11/xorg.conf.d/20-mouse.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Copy-paste to following lines:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Section "InputClass"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Identifier    "Mouse0"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    MatchIsPointer    "true"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Option        "Emulate3Buttons"    "false"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;EndSection&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Save, and Restart!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-3468241542156156351?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/3468241542156156351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/02/left-and-right-mouse-button-lag.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3468241542156156351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3468241542156156351'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/02/left-and-right-mouse-button-lag.html' title='Left and right mouse button lag'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1459512696316631773</id><published>2011-01-29T18:57:00.000+01:00</published><updated>2011-03-24T08:52:48.021+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='usbmon'/><title type='text'>Another post about latency</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;My previous work on that subject&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I already worked on measuring how much latency the sixaxis emulator is adding compared to a real sixaxis. I did that using a microphone, measuring the overall response time for a gunshot.&lt;br /&gt;&lt;br /&gt;Assuming we have:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;R=C+G&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;R=overall response time&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;C=controller latency&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;G=game latency&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For the real sixaxis:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;R1=C1+G&lt;/span&gt;&lt;br /&gt;For the sixaxis emulator:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;R2=C2+G&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Assuming G is constant:&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;R2-R1=C2-C1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To estimate the controller latency difference, which is C2-C1, I just had to subtract the overall response time.&lt;br /&gt;The result was about 15ms, which is not that bad compared to the overall response time (&gt;100ms) and the human response time (&gt;100ms).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;A way to estimate the latency of the sixaxis emulator&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The basic idea is to measure the time between a usb packet coming from the mouse (or any other usb controller) and a packet sent to the usb bt dongle.&lt;br /&gt;&lt;br /&gt;For ex, the time between the usb packet for a left clic and the usb packet that sends the R1 button press (via the bluetooth dongle).&lt;br /&gt;&lt;br /&gt;A great tool provided with the Linux kernel is usbmon, which allows to sniff the usb traffic. It's possible to use it with wireshark (with root user rights), but it's better to play in a terminal to automate extraction of valuable information.&lt;br /&gt;&lt;br /&gt;The usbmon documentation is available there: &lt;a href="http://www.kernel.org/doc/Documentation/usb/usbmon.txt"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;First of all, what the lsusb output says:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;lsusb&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 004 Device 002: ID 050d:0200 Belkin Components &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 003 Device 009: ID 054c:0268 Sony Corp. Batoh Device&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 003 Device 008: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 003 Device 006: ID 054c:0268 Sony Corp. Batoh Device&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 003 Device 005: ID 046d:c041 Logitech, Inc. G5 Laser Mouse&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 003 Device 003: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 003 Device 002: ID 058f:9254 Alcor Micro Corp. Hub&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 002 Device 003: ID 046d:0809 Logitech, Inc. Webcam Pro 9000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What is useful there is the bus and device ids. The G5 mouse is device 5 on usb bus 3, and the bt dongle is device 8 on usb bus 3.&lt;br /&gt;&lt;br /&gt;To start the capture:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo cat /sys/kernel/debug/usb/usbmon/0u &gt; test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Generate left clics into the sixaxis emulator, and stop the capture (ctrl+c).&lt;br /&gt;&lt;br /&gt;Then, to display the mouse packets:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cat test.txt | grep "3:005"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And for the bt dongle packets:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cat test.txt | grep "3:008"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Both these commands may give a huge amount of data.&lt;br /&gt;&lt;br /&gt;To only display packets that correspond to left clicks:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ cat test.txt | grep "3:005:1 0:1 10 = 01000000 00000000 0000" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f6747a40 967102843 C Ii:3:005:1 0:1 10 = 01000000 00000000 0000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f6747a40 968852805 C Ii:3:005:1 0:1 10 = 01000000 00000000 0000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f6747a40 970341772 C Ii:3:005:1 0:1 10 = 01000000 00000000 0000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f6747a40 971609742 C Ii:3:005:1 0:1 10 = 01000000 00000000 0000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f6747a40 972760716 C Ii:3:005:1 0:1 10 = 01000000 00000000 0000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To only display packets that correspond to R1 button presses:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ cat test.txt | grep "3:008:2 -115 58 = 2b203600 32004300 a1010000 08000080 80808000 00000000 00000000 0000ff00" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f32e2640 967105205 S Bo:3:008:2 -115 58 = 2b203600 32004300 a1010000 08000080 80808000 00000000 00000000 0000ff00&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f32e2640 968861926 S Bo:3:008:2 -115 58 = 2b203600 32004300 a1010000 08000080 80808000 00000000 00000000 0000ff00&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f32e2640 970345964 S Bo:3:008:2 -115 58 = 2b203600 32004300 a1010000 08000080 80808000 00000000 00000000 0000ff00&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f3a904c0 971618231 S Bo:3:008:2 -115 58 = 2b203600 32004300 a1010000 08000080 80808000 00000000 00000000 0000ff00&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;f3a90ac0 972769407 S Bo:3:008:2 -115 58 = 2b203600 32004300 a1010000 08000080 80808000 00000000 00000000 0000ff00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What is to be extracted from this is the timestamp in microseconds, which is the second column.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ cat test.txt | grep "3:005:1 0:1 10 = 01000000 00000000 0000" | awk '{ print $2 }'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;967102843&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;968852805&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;970341772&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;971609742&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;972760716&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;matlo@matlo-hcpc:~/hack/test$ cat test.txt | grep "3:008:2 -115 58 = 2b203600 32004300 a1010000 08000080 80808000 00000000 00000000 0000ff00" | awk '{ print $2}'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;967105205&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;968861926&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;970345964&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;971618231&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;972769407&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then, it's easy to copy-paste this data into a spreadsheet, compute the difference, compute the average, and the standard deviation.&lt;br /&gt;&lt;br /&gt;For this example (with 5 more samples), it gives a 7.6ms average difference, with a 2.9ms standard deviation. The max difference is about 12ms.&lt;br /&gt;&lt;br /&gt;It has to be reminded that the event polling period is 10ms (equal to the  sixaxis report period), so that the maximum latency added by the event polling is 10ms, and the average is 5ms. Thus, the processing time is in average 7.6-5=2.6ms. It has to be noticed that I'm using a Linux kernel with realtime/low latency capabilities.&lt;br /&gt;&lt;br /&gt;It's also possible that there is some more latency added by the usb stack and the bt dongle, but it's probably less than the 7.6ms processing time.&lt;br /&gt;&lt;br /&gt;Conclusion:&lt;br /&gt;&lt;br /&gt;- it's probably not possible to have a lower response time with a sixaxis emulation (bt or usb)&lt;br /&gt;- to lower the controller latency, the only potential way is to use a usb device to usb device controller (a custom usb link between the PC and the PS3), with a report period lower than 10ms&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Thanks to that work I found a latency issue (about 50ms) that only impacts left and right mouse clics. The work-around -I'm not joking!- is to press the middle button after the mouse is plugged to the PC (&lt;a href="http://diy-machine.blogspot.com/2011/02/left-and-right-mouse-button-lag.html"&gt;see next post&lt;/a&gt;).&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1459512696316631773?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1459512696316631773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/another-post-about-latency.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1459512696316631773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1459512696316631773'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/another-post-about-latency.html' title='Another post about latency'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8930899868785870227</id><published>2011-01-25T14:07:00.000+01:00</published><updated>2011-03-03T14:43:51.499+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Great youtube video</title><content type='html'>McKack made a great video and posted it on youtube:&lt;br /&gt;&lt;br /&gt;&lt;iframe title="YouTube video player" class="youtube-player" type="text/html" src="http://www.youtube.com/embed/MyxK8Pd1vds" allowfullscreen="" frameborder="0" height="390" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;It shows the sixaxis emulator working with a keyboard and a mouse, with Call Of Duty: Black Ops.&lt;br /&gt;&lt;br /&gt;Nice showcase, thanks McKack!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8930899868785870227?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8930899868785870227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/great-youtube-video.html#comment-form' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8930899868785870227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8930899868785870227'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/great-youtube-video.html' title='Great youtube video'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/MyxK8Pd1vds/default.jpg' height='72' width='72'/><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2129818732836567264</id><published>2011-01-25T09:38:00.000+01:00</published><updated>2011-01-26T00:28:43.557+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>One GUI to rule them all</title><content type='html'>Last WE I started working on &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=19"&gt;issue 19&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The idea is to make a simple GUI that can help the user in steps 2/3/4 of the (new) tutorial.&lt;br /&gt;That means, no more "scary" commands to type in a terminal, and no more typos issues :D&lt;br /&gt;This also will make my work easier, since it will help people to report their issues.&lt;br /&gt;&lt;br /&gt;Hopefully that will make windows users come to the Linux live USB solution...&lt;br /&gt;&lt;br /&gt;Now, a few words for people that like technical stuffs and C/C++ programming.&lt;br /&gt;To make my work easier and the code lighter, I'm not using the bluetooth and libusb libraries directly into the GUI app. I'm using a GLIB function called &lt;a href="http://www.gtk.org/api/2.6/glib/glib-Spawning-Processes.html#g-spawn-sync"&gt;g_spawn_sync&lt;/a&gt; that allows to launch a command (bdaddr, hciconfig, sixaddr, emu, emuclient...) and to store the output of that command into a buffer (the output that is usually displayed into the terminal). This buffer is parsed so as to read interesting values (bdaddrs, dongle name, chip version, manufacturer...), which are lastly displayed in the GUI. I admit it is "quick and dirty", but it works, and it's time-saving :)&lt;br /&gt;&lt;br /&gt;Updated 26/01&lt;br /&gt;Screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TT9clJCoueI/AAAAAAAAALk/EdpTHjXVgP0/s1600/Sixemugui.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 291px; height: 400px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TT9clJCoueI/AAAAAAAAALk/EdpTHjXVgP0/s400/Sixemugui.png" alt="" id="BLOGGER_PHOTO_ID_5566269457605114338" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2129818732836567264?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2129818732836567264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/one-gui-to-rule-them-all.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2129818732836567264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2129818732836567264'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/one-gui-to-rule-them-all.html' title='One GUI to rule them all'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TT9clJCoueI/AAAAAAAAALk/EdpTHjXVgP0/s72-c/Sixemugui.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8020321776201511711</id><published>2011-01-18T09:43:00.000+01:00</published><updated>2011-01-18T15:21:46.777+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Voice Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Voice control</title><content type='html'>This is my first post about "voice control" for the PS3.&lt;br /&gt;&lt;br /&gt;Voice control is only #4 in my &lt;a href="http://diy-machine.blogspot.com/p/todo-list.html"&gt;todo list&lt;/a&gt;, but as I'm curious, I wanted to know how hard this stuff is, and I decided to begin searching for Linux tools.&lt;br /&gt;&lt;br /&gt;Speech recognition is a wider area than voice control. Considering what I want to do (voice control), it is a hard and &lt;span class="clickable"&gt;&lt;span class="hw"&gt;wasteful thing (cpu consumption, complexity)&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;There are many projects that allow voice control stuffs. I will only focus on projects that are widely used/tested and still developed/maintained.&lt;br /&gt;&lt;br /&gt;Project to watch regularly:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://wiki.ubuntu.com/SpeechControl/"&gt;SpeechControl Ubuntu project&lt;/a&gt;: hopefully providing some easy to install tools in a near future.&lt;/li&gt;&lt;/ul&gt;Some projects that are probably good enough to make a  "hackish" proof-of-concept:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.simon-listens.org/index.php?id=122&amp;amp;L=1"&gt;Simon:&lt;/a&gt; the &lt;a href="http://www.simon-listens.org/wiki/index.php/Installation"&gt;wiki &lt;/a&gt;tells the installation is easy, but this sadly seems to be broken with Ubuntu Maverick. I need to work more on that cross-platform (Linux+Windows) solution.&lt;/li&gt;&lt;li&gt;&lt;a href="http://bloc.eurion.net/archives/2008/writing-a-command-and-control-application-with-voice-recognition/"&gt;Julius+Voxforge&lt;/a&gt;: seems to be very easy to install, but no GUI.&lt;/li&gt;&lt;li&gt;&lt;a href="http://cmusphinx.sourceforge.net/wiki/tuturialpocketsphinx"&gt;Pocketsphinx&lt;/a&gt;: a recognizer library written in C.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;To be continued!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8020321776201511711?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8020321776201511711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/voice-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8020321776201511711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8020321776201511711'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/voice-control.html' title='Voice control'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1950516715432019144</id><published>2011-01-16T23:39:00.000+01:00</published><updated>2011-03-03T14:38:39.807+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Support for Xbox 360 gamepad</title><content type='html'>Thanks to the sixaxis emulator, it's possible to use a Xbox 360 gamepad with the PS3.&lt;br /&gt;&lt;br /&gt;This requires a small patch for the d-pad, which is defined as a "joystick hat".&lt;br /&gt;&lt;br /&gt;The configuration file is available &lt;a href="http://diyps3controller.googlecode.com/svn/trunk/sixaxis-emu/config/X360Pad.xml"&gt;there&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The d-pad support will be included in next packages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1950516715432019144?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1950516715432019144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/support-for-xbox-360-gamepad.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1950516715432019144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1950516715432019144'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/support-for-xbox-360-gamepad.html' title='Support for Xbox 360 gamepad'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6477408544003622768</id><published>2011-01-11T21:03:00.015+01:00</published><updated>2011-07-07T20:03:17.502+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>English tutorial</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;Moved: &lt;a href="http://gimx.fr/forum/viewtopic.php?f=4&amp;amp;t=5"&gt;link&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div onclick="openClose('YOURSPOILERID')" class="spoilertop"&gt; » Outdated content  « &lt;/div&gt;&lt;br /&gt;&lt;div class="spoilermain" id="YOURSPOILERID" style="display: none;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Warning: this tutorial is updated frequently. Don't copy it. Link to it.&lt;br /&gt;&lt;br /&gt;Please note that I don't give support for anything else than Ubuntu running in a non-virtualized machine.&lt;br /&gt;&lt;br /&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;This  tutorial explains how to control a  PS3 with PC peripherals (keyboards, mice, joysticks)  plugged on a PC running Linux and using a  bluetooth dongle.&lt;br /&gt;&lt;br /&gt;This is possible thanks to the &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;early work  of Jim Paris&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I applied many modifications to its source code, developed a GUI to make the launch and the configuration easier, and simplified the installation steps for debian-based Linux distros such as Ubuntu.&lt;br /&gt;&lt;br /&gt;If you want to see how well this works, have a look at this video made by &lt;/span&gt;McKack (version 0.11):&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe title="YouTube video player" class="youtube-player" type="text/html" src="http://www.youtube.com/embed/MyxK8Pd1vds" frameborder="0" height="195" width="320"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;Requirements&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;ubuntu Live CD&lt;/a&gt; (or any other debian-based Linux distro)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;a  sixaxis already used with the target PS3&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;a  bluetooth  dongle with a chip that can have its bdaddr (bluetooth  device address) changed. Just perform the tutorial to discover if your  dongle works.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(255, 0, 0);font-size:100%;" &gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Notes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Do it at your own risk. I'm not  responsible for any damage you can cause to your PS3 or PC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Some cheap  (a few $) CSR Bluecore4  dongles  on ebay are reported to work.  Bluecore4 is the first CSR bluecore chip  that implements EDR (Enhanced  Data Rate), so that the keywords to look  for are CSR and EDR.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Warning: most of these dongle are counterfeits!&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Please note that I'm not responsible for any not working dongle you might buy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don't  try to use the sixaxis emulator and the sixaxis at the  same time, and  restore the bdaddr of the dongle if you don't use it with the sixaxis  emulator anymore.&lt;br /&gt;&lt;br /&gt;This tutorial was written running ubuntu  from a live usb disk  (nothing is saved on the hard drive).&lt;br /&gt;&lt;br /&gt;Feel  free to install ubuntu on your PC! If you have a Windows OS installed,  you can read &lt;a href="https://help.ubuntu.com/community/WindowsDualBoot"&gt;this  tutorial&lt;/a&gt; if you want to install ubuntu on your hard drive without  erasing the Windows OS.&lt;br /&gt;&lt;br /&gt;Another way to use the sixaxis emulator is to run it from a Ubuntu Live USB Persistent Flash Drive (read &lt;a href="http://diy-machine.blogspot.com/2010/08/sixaxis-emulator-on-ubuntu-live-usb.html"&gt;this post&lt;/a&gt;).&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;1 Installation&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Add "universe" to your repositories:&lt;br /&gt;- Clic System&amp;gt;Administration&amp;gt;Synaptic Package Manager.&lt;br /&gt;- Clic Settings&amp;gt;Repositories.&lt;br /&gt;- Select universe, close.&lt;br /&gt;- Clic reload, close.&lt;br /&gt;&lt;br /&gt;Download following file:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_i386.deb"&gt;sixaxis-emulator i386&lt;/a&gt; (or &lt;a href="http://diyps3controller.googlecode.com/files/sixemu_0.23-1_amd64.deb"&gt;amd64&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Install it (double clic, then install).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;2 Quick start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Plug your sixaxis (and the bt dongle, if external) to your PC.&lt;br /&gt;Launch sixemugui (shortcut: Applications&amp;gt;Game&amp;gt;Sixemugui).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Od027RVK94s/TeKLX2pTSuI/AAAAAAAAAQM/Bo1HEoZGJHs/s1600/Sixemugui.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 326px;" src="http://3.bp.blogspot.com/-Od027RVK94s/TeKLX2pTSuI/AAAAAAAAAQM/Bo1HEoZGJHs/s400/Sixemugui.png" alt="" id="BLOGGER_PHOTO_ID_5612201327579056866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Select the sixaxis&lt;/li&gt;&lt;li&gt;Select the bt dongle&lt;/li&gt;&lt;li&gt;Set the dongle address (don't forget to write the old one down)&lt;/li&gt;&lt;li&gt;Re-select the sixaxis and the bt dongle&lt;/li&gt;&lt;li&gt;Unplug your sixaxis and if it doesn't power off by itself, press the PS3 button until it powers off&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select emuclient parameters&lt;/li&gt;&lt;li&gt;Select the configuration file to use&lt;/li&gt;&lt;li&gt;Start emu (emuclient starts automatically if the connection is established)&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Play (press Escape to quit emuclient)&lt;/li&gt;&lt;li&gt;Stop emu&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Note: File&amp;gt;Save lets you save the sixaxis and PS3 addresses so that you don't require to plug the sixaxis anymore after that.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;3 Custom mappings for mouse, keyboard and joysticks&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is recommended to change the mappings and to calibrate the mouse for each game.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TSzBWuXj0uI/AAAAAAAAALc/I75BSJ4VwH8/s1600/sixemuconf-2.png"&gt;&lt;br /&gt;&lt;/a&gt;Configuration files have to be saved into the ~/.emuclient/config directory (~ is the home directory).&lt;br /&gt;&lt;br /&gt;Launch sixemuconf (shortcut: Applications&amp;gt;Game&amp;gt;Sixemuconf).&lt;br /&gt;&lt;br /&gt;Screenshots of my configuration for COD: Black Ops:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-GvK6oDRkf9Q/TeKMG5YFHLI/AAAAAAAAAQU/3KS-qE1wIyA/s1600/Sixemuconf-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 268px;" src="http://1.bp.blogspot.com/-GvK6oDRkf9Q/TeKMG5YFHLI/AAAAAAAAAQU/3KS-qE1wIyA/s400/Sixemuconf-2.png" alt="" id="BLOGGER_PHOTO_ID_5612202135765982386" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-UVci_sKLPFI/TeKMOZRmrpI/AAAAAAAAAQc/iQLkkTqCNsA/s1600/Sixemuconf-3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 128px;" src="http://4.bp.blogspot.com/-UVci_sKLPFI/TeKMOZRmrpI/AAAAAAAAAQc/iQLkkTqCNsA/s400/Sixemuconf-3.png" alt="" id="BLOGGER_PHOTO_ID_5612202264587841170" border="0" /&gt;&lt;/a&gt;It's possible to define a configuration for aiming: copy-paste the configuration #1 to configuration #2, define the right mouse clic as configuration #2 trigger with switch back, and adjust the mouse multipliers &amp;amp; exponents.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-ZIvIlwImVn0/TeKMWz5R58I/AAAAAAAAAQk/sqkn-UtAjt0/s1600/Sixemuconf-4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 62px;" src="http://1.bp.blogspot.com/-ZIvIlwImVn0/TeKMWz5R58I/AAAAAAAAAQk/sqkn-UtAjt0/s400/Sixemuconf-4.png" alt="" id="BLOGGER_PHOTO_ID_5612202409172527042" border="0" /&gt;&lt;/a&gt;Items of the "Edit" menu that allow to convert a configuration:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-001ASdstp_A/TeKMq2p69VI/AAAAAAAAAQs/vuEkv-MuYLQ/s1600/Sixemuconf-5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 194px;" src="http://2.bp.blogspot.com/-001ASdstp_A/TeKMq2p69VI/AAAAAAAAAQs/vuEkv-MuYLQ/s400/Sixemuconf-5.png" alt="" id="BLOGGER_PHOTO_ID_5612202753510798674" border="0" /&gt;&lt;/a&gt;The  "Replace Mouse"  item allows to change the mouse name and id.&lt;br /&gt;The  "Replace Keyboard"  item allows to change the keyboard  name and id.&lt;br /&gt;The  "Replace Mouse DPI"  item allows to adjust the mouse multipliers according to old/new dpi values (the higher the better).&lt;br /&gt;&lt;br /&gt;Stick intensity control for button to stick mappings:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-f5rp2O6kcbQ/TeKOCUZCkSI/AAAAAAAAAQ0/0hnf-1o18bU/s1600/Sixemuconf-1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 226px;" src="http://4.bp.blogspot.com/-f5rp2O6kcbQ/TeKOCUZCkSI/AAAAAAAAAQ0/0hnf-1o18bU/s400/Sixemuconf-1.png" alt="" id="BLOGGER_PHOTO_ID_5612204256141676834" border="0" /&gt;&lt;/a&gt;See this post for more details about this functionnality: &lt;a href="http://diy-machine.blogspot.com/2011/05/version-021-released.html"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;4 Mouse calibration mode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Before calibrating the mouse, be sure to set the in-game sensitivity to the highest, and be sure to set the mouse dpi to the highest value.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To start emuclient with the mouse calibration mode enabled, select Mouse&amp;gt;Calibrate in the sixemugui application. Then start emuclient.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-oCgfnY6VxVE/TeKPVe6g4II/AAAAAAAAAQ8/VDreFNKNrig/s1600/Sixstatus.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 264px;" src="http://2.bp.blogspot.com/-oCgfnY6VxVE/TeKPVe6g4II/AAAAAAAAAQ8/VDreFNKNrig/s400/Sixstatus.png" alt="" id="BLOGGER_PHOTO_ID_5612205684895572098" border="0" /&gt;&lt;/a&gt;Current mouse calibration values appear in the "Mouse calibration" part of the gui.&lt;br /&gt;&lt;br /&gt;This calibration mode lets you calibrate each mouse independently. It  reads values from the loaded configuration. To  change values, use rctrl+FX key combinations and use the mouse wheel.&lt;br /&gt;&lt;br /&gt;The dead zone value has to be set to the highest stable position.&lt;br /&gt;Different dead zones for x &amp;amp; y only makes sense for a "rectangle" dead zone shape.&lt;br /&gt;The dead zone shape has to be set to the most stable one.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;5 Keyboard macros&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's possible to configure keyboard macros.&lt;br /&gt;&lt;br /&gt;A key press will generate a series of events, with timing conditions.&lt;br /&gt;&lt;br /&gt;Commands are the following:&lt;br /&gt;- key down&lt;br /&gt;- key up&lt;br /&gt;- key press (= key down + delay + key up)&lt;br /&gt;- delay (unit = ms)&lt;br /&gt;&lt;br /&gt;Each macro has to be defined in a file saved into the ~/.emuclient/macros directory (~ is the home directory, .emuclient folder is hidden).&lt;br /&gt;&lt;br /&gt;Example: macro_example.txt&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Defines the action that triggers the macro execution&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;MACRO F1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Performs a keystroke (key down + delay 50ms + key up)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEY e&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key down&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYDOWN SPACE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key up&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYUP SPACE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lines beginning with # are comments.&lt;br /&gt;&lt;br /&gt;All keys of the keyboard can trigger a macro. The complete list can be found in &lt;a href="http://code.google.com/p/diyps3controller/source/browse/trunk/sixaxis-emu/conversion.c?r=171#109"&gt;conversion.c&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;6 Troubleshooting / Feedback&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;div class="post-header"&gt;  &lt;/div&gt;  I'm sharing my project &lt;span style="font-weight: bold;"&gt;for free&lt;/span&gt;, so please give me a &lt;span style="font-weight: bold;"&gt;feedback&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Tell me if it works or doesn't work, and especially add the following details:&lt;ul&gt;&lt;li&gt;the Linux distribution&lt;/li&gt;&lt;li&gt;the PS3 hardware version (slim, fat 40Gb, fat 60Gb, ...)&lt;/li&gt;&lt;li&gt;the PS3 firmware version&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the   bluetooth dongle (exact model + revision if there is  one + output of commands   "hciconfig -a hci0" and "sudo hciconfig hci0 revision" in a terminal)&lt;/li&gt;&lt;li&gt;the hardware of the PC (at least the CPU and the amount of RAM)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Report that in commentary to this post.&lt;br /&gt;&lt;br /&gt;And if it doesn't work, first verify if you have the latest packages. Then look at the &lt;a href="http://diy-machine.blogspot.com/p/faq.html"&gt;FAQ&lt;/a&gt; and &lt;a href="http://code.google.com/p/diyps3controller/issues/list"&gt;the bug list&lt;/a&gt;, see if your problems are already known, and if it's not, &lt;a href="http://code.google.com/p/diyps3controller/issues/entry"&gt;report them&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you want to contribute to this project, have a look at &lt;a href="http://diy-machine.blogspot.com/p/contribute.html"&gt;this page&lt;/a&gt;.&lt;br /&gt;Paypal donation links are on the top right corner of this page.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6477408544003622768?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6477408544003622768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/new-english-tutorial.html#comment-form' title='315 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6477408544003622768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6477408544003622768'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/new-english-tutorial.html' title='English tutorial'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/MyxK8Pd1vds/default.jpg' height='72' width='72'/><thr:total>315</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1077455162262292201</id><published>2011-01-10T09:08:00.000+01:00</published><updated>2011-01-10T09:32:48.260+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>New stuffs coming very soon</title><content type='html'>The configuration reader for the emuclient process is finished.&lt;br /&gt;&lt;br /&gt;I tested it (=played!) with my G5 mouse and n52 keyboard,  and it works well for COD: Black Ops :)&lt;br /&gt;&lt;br /&gt;All game controllers are now supported. Great examples of game controllers that are now possible to use: Xbox gamepads, racing wheels (no force feedback yet), joysticks.&lt;br /&gt;&lt;br /&gt;I tested with a sixaxis (wired, but it should work wireless too). You may ask, why would I need to do that? The response is simple: button mapping &amp;amp; dead zone removal.&lt;br /&gt;&lt;br /&gt;I'm now focusing on making .deb packages, so as to make the installation easier.&lt;br /&gt;&lt;br /&gt;There also will be an update for the tutorial.&lt;br /&gt;&lt;br /&gt;For now, the tutorial has been modified to use a specific revision of the code, which is not the head revision.&lt;br /&gt;&lt;br /&gt;Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1077455162262292201?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1077455162262292201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/new-stuffs-coming-very-soon.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1077455162262292201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1077455162262292201'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/new-stuffs-coming-very-soon.html' title='New stuffs coming very soon'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5863095218507895178</id><published>2011-01-04T21:28:00.000+01:00</published><updated>2011-01-07T13:15:59.619+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Tuning mouse movements</title><content type='html'>&lt;span style="font-family:georgia;"&gt;There are now two different multipliers: one for horizontal moves, and one for vertical moves.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;This is in emuclient.c:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:georgia;" &gt;#define DEFAULT_MULTIPLIER_X 4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:georgia;" &gt;#define DEFAULT_MULTIPLIER_Y 9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;These  two values are for Call of Duty: MW2/Black Ops (with in-game sensitivity  set to the highest=10), and have to be adapted depending on the game.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;a href="https://code.google.com/p/diyps3controller/issues/detail?id=18&amp;amp;can=1"&gt;Some new code&lt;/a&gt; allows to trigger a circular mouse movement, that helps to adjust a 1:1 ratio between vertical moves and horizontal moves.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Press Keypad 0 to enable calibration mode, then press 'p' to trigger a circular mouse movement.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the result is an ellipse and not a circle, this means you have to adjust the multipliers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Press Keypad 0 again to disable calibration mode.&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;br /&gt;Note: this post will be deprecated when the configuration tools will be released.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5863095218507895178?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5863095218507895178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/tuning-mouse-movements.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5863095218507895178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5863095218507895178'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/tuning-mouse-movements.html' title='Tuning mouse movements'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8815626267195259565</id><published>2011-01-03T14:32:00.000+01:00</published><updated>2011-01-03T16:52:20.196+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Some news about the project...</title><content type='html'>I am on the way to finish the config reader code in the emuclient process...&lt;br /&gt;It seems I underestimated the time needed for that, and overestimated my time available to it :(&lt;br /&gt;&lt;br /&gt;I will try to release a beta version ASAP. I really hope that will come before the end of the week, but as I wasn't able to make good predictions, I won't promise anything. And I want to make the final code generic, as I hope to reuse it for a XBox360 controller. That makes stuffs to be even more complicated.&lt;br /&gt;&lt;br /&gt;Note that I probably will modify the tutorial so that it will make the reader use a specific revision of the code corresponding to the last stable version (i.e. without my work on the config stuffs).&lt;br /&gt;&lt;br /&gt;I also want to say a few word about &lt;a href="http://events.ccc.de/congress/2010/Fahrplan//events/4087.en.html"&gt;the 27C3 presentation on the 'PS3 Epic Fail'&lt;/a&gt; made by the fail0verflow team. I was very excited to watch the live streaming, and I wasn't disappointed. That really was epic :D&lt;br /&gt;&lt;br /&gt;Now that the PS3 is completely hacked, it seems it will be possible to play with ANY USB device directly connected to ANY PS3 running ANY firmware. ANY is a keyword I was waiting for. Moreover, it will be possible to do it with custom pup files, which makes the crappy dongle stuffs deprecated. Last but not least, it seems everything will be reversible, so that it will avoid the PS3 to be banned by Sony  (reinstalling the official firmware before getting online). This means at least that we will be able to play offline with USB devices directly connected to the PS3. Sony will probably still try to fight against players running custom stuffs and playing online.&lt;br /&gt;&lt;br /&gt;It will also be possible to reverse engineer the remote play/keyboard stuffs only available to Sony devices such as the PSP and viao laptops.&lt;br /&gt;&lt;br /&gt;I don't know yet what I will be working on. Before that, I will try to finish my current work.&lt;br /&gt;&lt;br /&gt;To summarize, I will not stop the sixaxis emulator development since it's the only way to play online safely, but I will more than likely try to find some time to run custom stuffs on the PS3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8815626267195259565?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8815626267195259565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2011/01/some-news-about-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8815626267195259565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8815626267195259565'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2011/01/some-news-about-project.html' title='Some news about the project...'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1939091755593725510</id><published>2010-12-22T10:35:00.000+01:00</published><updated>2011-04-24T22:50:28.185+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>The configuration GUI works in windows...</title><content type='html'>All the libraries I chose are cross-platform (wxWidgets, libxml, libSDL...).&lt;br /&gt;&lt;br /&gt;Thus, it's pretty straightforward to port the configuration GUI to windows.&lt;br /&gt;&lt;br /&gt;For now, it's  not very useful to use it in windows, since the sixaxis emulator  doesn't run natively in this OS (&lt;a href="http://diy-machine.blogspot.com/2010/07/ugly-windows-solution.html"&gt;virtualization works&lt;/a&gt;, but it breaks  down performances).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TRHJXERuJNI/AAAAAAAAAKU/EE7r-uwANPE/s1600/trigger.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 200px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TRHJXERuJNI/AAAAAAAAAKU/EE7r-uwANPE/s400/trigger.JPG" alt="" id="BLOGGER_PHOTO_ID_5553441213646775506" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;Trigger&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TRHJ5aLygKI/AAAAAAAAAKc/vAKniiaUn2Q/s1600/button.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 200px;" src="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TRHJ5aLygKI/AAAAAAAAAKc/vAKniiaUn2Q/s400/button.JPG" alt="" id="BLOGGER_PHOTO_ID_5553441803643027618" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Buttons&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TRHJ9M6AKoI/AAAAAAAAAKk/8zyC4zLDPjI/s1600/axis.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 200px;" src="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TRHJ9M6AKoI/AAAAAAAAAKk/8zyC4zLDPjI/s400/axis.JPG" alt="" id="BLOGGER_PHOTO_ID_5553441868798241410" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Axis&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Above screen shots show the look and feel of the gui in windows.&lt;br /&gt;&lt;br /&gt;I uploaded a binary on &lt;a href="http://code.google.com/p/diyps3controller/downloads/list"&gt;the project google code web page&lt;/a&gt; (&lt;a href="http://diyps3controller.googlecode.com/files/Release.zip"&gt;direct download link&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I'm not sure I included all the required dll, so if it complains about a missing dll at the application startup, please tell me what dll it is.&lt;br /&gt;&lt;br /&gt;Feel free to test it. A basic test is to make a configuration, save it into a file, close/restart the gui, open the file, and see if everything is correct.&lt;br /&gt;&lt;br /&gt;Tell me what you think about it! You can start reporting bugs on &lt;a href="http://code.google.com/p/diyps3controller/issues/list"&gt;the issue list&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1939091755593725510?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1939091755593725510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/12/configuration-gui-works-in-windows.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1939091755593725510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1939091755593725510'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/12/configuration-gui-works-in-windows.html' title='The configuration GUI works in windows...'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TRHJXERuJNI/AAAAAAAAAKU/EE7r-uwANPE/s72-c/trigger.JPG' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5328948008352323633</id><published>2010-12-20T23:24:00.000+01:00</published><updated>2010-12-25T21:52:42.540+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>The sixaxis emulator configuration GUI is finished!</title><content type='html'>This configuration GUI is now able to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;instantiate a new configuration&lt;/li&gt;&lt;li&gt;read a configuration from a file&lt;/li&gt;&lt;li&gt;save a configuration into a selected file&lt;/li&gt;&lt;/ul&gt;Don't get over excited, there is some remaining work to use this tool with the sixaxis emulator.&lt;br /&gt;&lt;br /&gt;The sixaxis emulator has now to read the configuration files produced by the configuration GUI.&lt;br /&gt;&lt;br /&gt;&lt;s&gt;I hope to finish that before Saturday. I guess that would be a good Christmas gift!&lt;/s&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Installation instructions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo apt-get install subversion build-essential libSDL-dev&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;libxml2-dev&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;curl&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;curl http://apt.wxwidgets.org/key.asc | sudo apt-key add -&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo gedit /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Add following 3 lines at the end of the file:&lt;br /&gt;&lt;br /&gt;# wxWidgets/wxPython repository at apt.wxwidgets.org&lt;br /&gt;deb http://apt.wxwidgets.org/ karmic-wx main&lt;br /&gt;deb-src http://apt.wxwidgets.org/ karmic-wx main&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo apt-get install &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;libwxgtk2.8-dev libwxgtk2.8-dbg&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;&lt;br /&gt;&lt;br /&gt;svn checkout http://diyps3controller.googlecode.com/svn/trunk/sixaxis-emu-configurator diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd diyps3controller-read-only/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;make -f sixaxis-emu-gui.cbp.mak release&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd bin/Release/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;./sixaxis-emu-gui&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5328948008352323633?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5328948008352323633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/12/sixaxis-emulator-configuration-gui-is.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5328948008352323633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5328948008352323633'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/12/sixaxis-emulator-configuration-gui-is.html' title='The sixaxis emulator configuration GUI is finished!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8624359434124621625</id><published>2010-12-10T15:50:00.003+01:00</published><updated>2011-07-07T20:07:45.679+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='German'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixaxis Emulator Tutorial (DE)</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Dieses Tutorial ist nicht mehr aktualisiert. Das neue Tutorial ist hier : &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://diy-machine.blogspot.com/2011/02/neues-deutsches-tutorial.html"&gt;Link&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div onclick="openClose('YOURSPOILERID')" class="spoilertop"&gt; » Alte version  « &lt;/div&gt;&lt;br /&gt;&lt;div class="spoilermain" id="YOURSPOILERID" style="display: none;"&gt;&lt;br /&gt;&lt;a href="http://www.gtrp.de/showthread.php?36498-B-Spec-Rennen-mit-PC-Emulator-automatisieren-Gibt-Credit-und-Erfahrung-ohne-Ende"&gt;cool&amp;amp;fast aus www.gtrp.de hat diese Übersetzung geschrieben (danke!).&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Einführung&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Diese Anleitung erklärt, wie man die PS3 über eine Tastatur oder Maus, welche an einen PC angeschlossen sind steuert.&lt;br /&gt;Der PC muss mit Linux laufen und ein Bluetooth Dongle besitzen.&lt;br /&gt;Diese Sixaxis Emulator war zuerst von &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;Jim Paris&lt;/a&gt; geschrieben. Ich habe &lt;a href="http://diy-machine.blogspot.com/2010/05/working-with-code-of-jim-paris.html"&gt;einige Änderungen&lt;/a&gt; gemacht.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Voraussetzung&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* UBUNTU 10.04 oder später (Kann hier gratis &lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;UBUNTU Download&lt;/a&gt; heruntergeladen werden)&lt;br /&gt;* Ein Sixaxis Controller, welcher schon an der (zu steuernden) PS3 benutzt wurde&lt;br /&gt;* Ein Bluetooth Dongle mit einem Chip, auf welchem BDADDR (Bluetooth Geräte Adresse) geändert werden kann. Wenn du die Anleitung durchspielst, merkst du automatisch, ob dein Dongle unterstützt wird.&lt;br /&gt;&lt;br /&gt;Es gibt auf ebay günstige Dongles. Schaue nach einem Dongle mit dem Keyword CSR und EDR.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wichtig&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Du machst diese Änderungen auf eigenes Risiko. Ich bin nicht verantwortlich für Schände, die an deiner PS3 oder deinem PC entstehen.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Vor dem Starten...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Entferne alle USB und/oder Bluetooth Anschlüsse am PC, oder deaktiviere sie.&lt;br /&gt;* Versuche nicht, den Sixaxis Emulator und den Sixaxis Controller zur selben Zeit zu verwenden und setze die BDADDR zurück, wenn Du den Sixaxis Emulator nicht mehr verwendest.&lt;br /&gt;&lt;br /&gt;Die Anleitung ist geschrieben für UBUNTU gestartet von der CD, es wird nichts auf der Festplatte gespeichert.&lt;br /&gt;&lt;br /&gt;Nachdem Schritt 1 und 2 der folgenden Anleitung erfolgreich gemacht wurden, können bei einem Neustart des Sixaxis Emulators von der CD die folgenden Schritte 3 und 4 mit einem Skript ausgeführt werden.&lt;br /&gt;&lt;br /&gt;Brenne das heruntergeladene UBUNTU auf eine CD und starte den PC von der UBUNTU CD...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Schritt 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finde die Bluetooth Adressen der PS3 und des Sixaxis-Controllers heraus:&lt;br /&gt;&lt;br /&gt;Verbinde den Sixaxis Controller mit dem USB Kabel mit dem PC.&lt;br /&gt;&lt;br /&gt;Starte das Terminal-Fenster (Alt+F2), oder via Anwendugen/Zubehör/Terminal und gib die folgenden Befehle genau so ein (am besten via copy/paste):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get install libusb-dev&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;wget  http://diyps3controller.googlecode.com/svn/trunk/sixutils/sixaddr.c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gcc  -o sixaddr sixaddr.c -lusb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./sixaddr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nun wird dir folgendes angezeigt:&lt;br /&gt;Current Bluetooth master: XX:XX:XX:XX:XX:XX&lt;br /&gt;Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY&lt;br /&gt;&lt;br /&gt;"Current Bluetooth master" ist die Bluetooth Adresse der PS3 (Schreibe sie auf, sie wird im Schritt 4 benötigt!)&lt;br /&gt;"Current Bluetooth Device Address:" ist die Bluetooth Adresse des Sixaxis Controllers (Schreibe sie auf, sie wird im Schritt 2 benötigt!)&lt;br /&gt;&lt;br /&gt;Entferne den Sixaxis Controller vom PC. Er sollte ausschalten.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Schritt 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Modifiziere die Bluetooth Adresse des PC Bluetooth Dongels, gib dazu die folgenden Befehle im Terminal-Fenster genau so ein (am besten via copy/paste):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get install libdbus-1-dev libglib2.0-dev&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;wget   http://www.kernel.org/pub/linux/bluetooth/bluez-4.63.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;tar  xzvf bluez-4.63.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd  bluez-4.63&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./configure  --enable-test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wenn gefragt wird, nicht installieren!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./bdaddr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nun wird dir folgendes angezeigt:&lt;br /&gt;Manufacturer: Cambridge Silicon Radio (10)&lt;br /&gt;Device Address: 01:02:03:04:05:06&lt;br /&gt;&lt;br /&gt;Schreibe die rote Zahlenfolge auf, damit du sie zurücksetzen kannst, wenn du den Emulator nicht mehr benötigst.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./bdaddr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ersetze ZZ:ZZ:ZZ:ZZ:ZZ:ZZ mit der der Zahlenkombination aus Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY aus dem ersten Schritt.&lt;br /&gt;&lt;br /&gt;Entferne den Bluetooth Dongel und schliesse ihn wieder an.&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;./bdaddr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Manufacturer: Cambridge Silicon Radio (10)&lt;br /&gt;Device Address: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;br /&gt;&lt;br /&gt;Kontrolliere, dass die ZZ-Zahlenfolge den von dir eingegebenen Wert hat. Sofern da so ist, gehe zu Schritt 3. Andernfalls wiederhole den Schritt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./bdaddr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ersetze ZZ:ZZ:ZZ:ZZ:ZZ:ZZ mit der der Zahlenkombination aus Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY aus dem ersten Schritt.&lt;br /&gt;&lt;br /&gt;Nun, versuche einen Softreset:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo hciconfig hci0 reset&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Damit wird die Bluetooth Adresse NICHT permanet geändert. Änderungen und Softreset müssen jedes Mal wiederholt werdn, wenn der PC neu gestartet wird oder der Dongel entfernt und wieder eingesteckt wird.&lt;br /&gt;&lt;br /&gt;Bis jetzt wissen wir nicht, ob es funktioniert. Um dies festzustellen, führe die folgenden Schritte aus:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Schritt 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Erstelle den Sixaxis Emulator Server und Client, starte ein Terminal-Fenster (Alt+F2), oder via Anwendugen/Zubehör/Terminal und gib die folgenden Befehle genau so ein (am besten via copy/paste):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get install libbluetooth-dev libsdl1.2-dev subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;svn checkout -r 134 http://diyps3controller.googlecode.com/svn/trunk/sixaxis-emu/ diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wichtig: Der Leerschlag vor diyps3controller-read-only muss sein!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Schritt 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Starte den Server und den Client&lt;br /&gt;&lt;br /&gt;Schalte die PS3 in den Standby Mode, die rote Lampe leuchtet&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./emu ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ersetze ZZ:ZZ:ZZ:ZZ:ZZ:ZZ mit der der Zahlenkombination aus Current Bluetooth master: XX:XX:XX:XX:XX:XX aus dem Schritt 1.&lt;br /&gt;&lt;br /&gt;Die PS3 sollte jetzt starten!&lt;br /&gt;&lt;br /&gt;Wenn du eine 'Connected' Meldung sieht, läuft es und du kannst mit der Anleitung fortfahren.&lt;br /&gt;&lt;br /&gt;Lasse das alte Terminal-Fenster laufen und starte ein neues Terminal-Fenster (Alt+F2), oder via Anwendugen/Zubehör/Terminal und gib die folgenden Befehle genau so ein (am besten via copy/paste):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd ~/diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./emuclient&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jetzt kannst du die PS3 via Tastatur steuern!!! Um den Emulator zu schliessen, drücke einfach Escape (ESC).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Schritt 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Definiere, welche Tastatur-Tasten welche PS3-Controller Funktionen haben.&lt;br /&gt;&lt;br /&gt;Ich habe eine azerty Tastatur verwendet, so ist es ratsam, das Mapping zu ändern. Dazu ändert man die Datei emuclient.c.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd ~/diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gedit emuclient.c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ein Editor öffnet sich, jetzt kannst du deine Änderungen machen. Cool&amp;amp;fast empfehlt diese Änderungen:&lt;br /&gt;&lt;br /&gt;void key(int sym, int down)&lt;br /&gt;{&lt;br /&gt;int index = -1;&lt;br /&gt;&lt;br /&gt;switch (sym) {&lt;br /&gt;case SDLK_v: index = sb_ps; break;&lt;br /&gt;&lt;br /&gt;case SDLK_i: index = sb_triangle; break;&lt;br /&gt;case SDLK_m: index = sb_cross; break;&lt;br /&gt;case SDLK_k: index = sb_circle; break;&lt;br /&gt;case SDLK_j: index = sb_square; break;&lt;br /&gt;&lt;br /&gt;case SDLK_c: index = sb_select; break;&lt;br /&gt;case SDLK_b: index = sb_start; break;Ohne diesen Befehl werden die Modifikationen im emuclient.c nicht wirksam!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#ifndef WIN32&lt;br /&gt;case SDLK_a: down?move_x(-127):move_x(0); break;&lt;br /&gt;case SDLK_w: down?move_y(-127):move_y(0); break;&lt;br /&gt;#else&lt;br /&gt;case SDLK_d: down?move_x(-127):move_x(0); break;&lt;br /&gt;case SDLK_r: down?move_y(-127):move_y(0); break;&lt;br /&gt;#endif&lt;br /&gt;case SDLK_y: down?move_y(127):move_y(0); break;&lt;br /&gt;case SDLK_s: down?move_x(127):move_x(0); break;&lt;br /&gt;&lt;br /&gt;Speichere die Datei und führe folgenden Befehl im Terminal aus:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nach diesen Änderungen führen die folgenden Tasten die folgenden PS3 Befehle aus:&lt;br /&gt;&lt;br /&gt;* w = pfeil rauf / a = pfeil links / s = pfeil rechts / y = pfeil runter&lt;br /&gt;* i = dreieck / j = quadrat / m = x / k = kreis&lt;br /&gt;* c = set / v = ps / b = start&lt;br /&gt;* esc = schliesst den Emulator&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Schritt 6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Endlich: Tastatur Makros&lt;br /&gt;&lt;br /&gt;Nun ist es möglich, eigene Makros zu schreiben und laufen zu lassen.&lt;br /&gt;Folgende Befehle stehen zu Auswahl:&lt;br /&gt;&lt;br /&gt;* key down [Taste gedrückt]&lt;br /&gt;* key up [Taste losgelassen]&lt;br /&gt;* key press (= key down + delay + key up) [Taste gedrückt + kurz warten + Taste loslassen]&lt;br /&gt;* delay (unit = ms) [Pause für Anzahl Millisekunden, 1000ms = 1 Sekunde]&lt;br /&gt;&lt;br /&gt;Jedes Makro ist eine Datei. Ein Muster ist in macro_example.txt gespeichert.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gedit macro_example.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Zeigt folgendes Resultat im Editor:&lt;br /&gt;&lt;br /&gt;#Defines the action that triggers the macro execution&lt;br /&gt;MACRO F1&lt;br /&gt;#Performs a keystroke (key down + delay 50ms + key up)&lt;br /&gt;KEY e&lt;br /&gt;#Sleep 50ms&lt;br /&gt;DELAY 50&lt;br /&gt;#Perform a key down&lt;br /&gt;KEYDOWN SPACE&lt;br /&gt;#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)&lt;br /&gt;DELAY 50&lt;br /&gt;#Perform a key up&lt;br /&gt;KEYUP SPACE&lt;br /&gt;&lt;br /&gt;Kommentarzeilen beginnen mit einem #.&lt;br /&gt;&lt;br /&gt;Jedes neue Makro muss in der Datei macros.txt eingetragen werden.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;gedit macros.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Alle Tasten können in einem Makro verwendet werden. Eine komplette Übersicht kann in der Datei macro.c gefunden werden.&lt;br /&gt;&lt;br /&gt;Viel Spaß!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8624359434124621625?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8624359434124621625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/12/sixaxis-emulator-tutorial-de.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8624359434124621625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8624359434124621625'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/12/sixaxis-emulator-tutorial-de.html' title='Sixaxis Emulator Tutorial (DE)'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6058776346609289766</id><published>2010-12-08T09:16:00.000+01:00</published><updated>2011-03-21T10:50:05.879+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='usb sniffer'/><title type='text'>Cheapest usb 2.0 high-speed sniffer?</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TP9DrBlBqRI/AAAAAAAAAKM/_sz3aKkmS8Y/s1600/bbxm.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 268px;" src="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TP9DrBlBqRI/AAAAAAAAAKM/_sz3aKkmS8Y/s400/bbxm.jpg" alt="beagleboard-xm" id="BLOGGER_PHOTO_ID_5548227672380909842" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;The beagleboard-xm&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Some weeks ago I discovered that the &lt;a href="http://beagleboard.org/"&gt;beagleboard&lt;/a&gt; has both usb 2.0 high-speed host and OTG functionalities.&lt;br /&gt;&lt;br /&gt;This board can run Linux, so that it's possible to capture the usb traffic and to visualize it with wireshark.&lt;br /&gt;&lt;br /&gt;The following idea came to my mind: using a usb port as a host, and the usb OTG port as a device, the beagleboard may be used as a usb proxy/sniffer.&lt;br /&gt;&lt;br /&gt;I then started looking for a usb sniffer running on the beagleboard.&lt;br /&gt;&lt;br /&gt;After some researches I found the following project: &lt;a href="http://beagleboard-usbsniffer.blogspot.com/"&gt;blog&lt;/a&gt; /&lt;a href="http://www.elinux.org/BeagleBoard/GSoC/2010_Projects/USBSniffer"&gt;wiki&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It was written by Nicolas Boichat as a Google Summer of Code 2010 Project.&lt;br /&gt;&lt;br /&gt;I bought a &lt;a href="http://beagleboard.org/hardware-xM"&gt;beagleboard-xm&lt;/a&gt;, and I'm on the way to test this great tool...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6058776346609289766?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6058776346609289766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/12/cheapest-usb-20-high-speed-sniffer.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6058776346609289766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6058776346609289766'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/12/cheapest-usb-20-high-speed-sniffer.html' title='Cheapest usb 2.0 high-speed sniffer?'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TP9DrBlBqRI/AAAAAAAAAKM/_sz3aKkmS8Y/s72-c/bbxm.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8686317193617067548</id><published>2010-11-24T09:37:00.000+01:00</published><updated>2010-12-21T11:33:50.773+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Now working on the core of the configuration GUI</title><content type='html'>Yesterday evening, I began to work on the core functionalities of the configuration GUI:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;s&gt;read a configuration from a file&lt;/s&gt; done&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;s&gt;edit a configuration&lt;/s&gt; done&lt;/li&gt;&lt;li&gt;&lt;s&gt;save a configuration into a file&lt;/s&gt; done&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I hope to have this done later this week.&lt;br /&gt;&lt;br /&gt;I decided to postpone the macro edition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8686317193617067548?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8686317193617067548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/11/now-working-on-core-of-configuration.html#comment-form' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8686317193617067548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8686317193617067548'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/11/now-working-on-core-of-configuration.html' title='Now working on the core of the configuration GUI'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6432558364998725289</id><published>2010-11-13T13:25:00.000+01:00</published><updated>2010-11-13T13:40:46.405+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>New skeleton for the configuration GUI</title><content type='html'>New screen-shots:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TN6EKO8XBHI/AAAAAAAAAJ0/tolZORdU_VM/s1600/Configuration%2Btrigger.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 193px;" src="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TN6EKO8XBHI/AAAAAAAAAJ0/tolZORdU_VM/s400/Configuration%2Btrigger.png" alt="" id="BLOGGER_PHOTO_ID_5539009903057110130" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TN6EOLMNXFI/AAAAAAAAAJ8/K1vq6z-Gwpo/s1600/Button%2Bconfiguration.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 193px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TN6EOLMNXFI/AAAAAAAAAJ8/K1vq6z-Gwpo/s400/Button%2Bconfiguration.png" alt="" id="BLOGGER_PHOTO_ID_5539009970769321042" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TN6ERoQLSvI/AAAAAAAAAKE/zubMclTex0Y/s1600/Axis%2BConfiguration.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 193px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TN6ERoQLSvI/AAAAAAAAAKE/zubMclTex0Y/s400/Axis%2BConfiguration.png" alt="" id="BLOGGER_PHOTO_ID_5539010030110198514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see, I divided the main window into panels.&lt;br /&gt;The "Macros" panel is not finished yet.&lt;br /&gt;&lt;br /&gt;There are a few changes:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;the configuration trigger may only be a button&lt;/li&gt;&lt;li&gt;the device type, device name, device id, event type and event id can be auto-detected&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the "button down" and "button up" events will only be available for macros edition&lt;/li&gt;&lt;li&gt;the joystick name is added, so that the joystick identification is easier (for both user and software)&lt;/li&gt;&lt;/ol&gt;Auto-detection does not work if a joystick is not well calibrated.&lt;br /&gt;The auto-detection is not usable with a sixaxis, because each button generate both axis and button events (for pressure-sensitive buttons).&lt;br /&gt;&lt;br /&gt;That's all for this week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6432558364998725289?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6432558364998725289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/11/new-skeleton-for-configuration-gui.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6432558364998725289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6432558364998725289'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/11/new-skeleton-for-configuration-gui.html' title='New skeleton for the configuration GUI'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ENr8Vt3Qkqg/TN6EKO8XBHI/AAAAAAAAAJ0/tolZORdU_VM/s72-c/Configuration%2Btrigger.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7761277459288127161</id><published>2010-11-11T23:44:00.000+01:00</published><updated>2010-11-11T23:59:33.168+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Skeleton of the configuration GUI</title><content type='html'>There it is:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TNxyHN2Al5I/AAAAAAAAAJs/IrEk7i4oEQ0/s1600/Sixaxis%2Bemulator%2Bcustomizer.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 239px;" src="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TNxyHN2Al5I/AAAAAAAAAJs/IrEk7i4oEQ0/s400/Sixaxis%2Bemulator%2Bcustomizer.png" alt="" id="BLOGGER_PHOTO_ID_5538427110059710354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's kind of primitive, but it's a first step!&lt;br /&gt;&lt;br /&gt;Brief description:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The menu bar has a File menu (buttons: new, open, save, save as, quit), a Controller Menu (radio buttons: 1 ... 7), and a Configuration Menu (radio buttons: 1 ... 4).&lt;/li&gt;&lt;li&gt;The main window is composed of 3 parts: Configuration trigger, Button configuration and Axis configuration.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Each controller (up to 7) has up to 4 configurations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7761277459288127161?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7761277459288127161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/11/skeleton-of-configuration-gui.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7761277459288127161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7761277459288127161'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/11/skeleton-of-configuration-gui.html' title='Skeleton of the configuration GUI'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TNxyHN2Al5I/AAAAAAAAAJs/IrEk7i4oEQ0/s72-c/Sixaxis%2Bemulator%2Bcustomizer.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5774080908366853392</id><published>2010-11-10T09:55:00.000+01:00</published><updated>2010-11-10T13:44:28.593+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Working on a cross-platform configuration GUI</title><content type='html'>Since a few weeks I've been thinking about writing a GUI so as to make the configuration of the sixaxis emulator easier.&lt;br /&gt;&lt;br /&gt;Mandatory requirements:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;run on Linux, Windows, and OS X&lt;/li&gt;&lt;li&gt;allow the configuration of multiple sixaxis controllers (&lt;a href="http://manuals.playstation.net/document/en/ps3/current/settings/bdremotecontrol.html"&gt;max=7&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;multiple configurations for a single sixaxis controller&lt;br /&gt;&lt;/li&gt;&lt;li&gt;automatically detect user inputs (keyboard, mouse, joysticks)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;save the configurations in a human-readable format&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Optional requirements:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;detect bt modules and launch the sixaxis emulator (multiple emu + a single emuclient)&lt;/li&gt;&lt;li&gt;detect sixaxis controllers plugged to the usb bus and allow to change bdaddrs of bt modules&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;For 1. and 5. mandatory requirements, I chose to use &lt;a href="http://www.wxwidgets.org/"&gt;wxwidgets&lt;/a&gt;/&lt;a href="http://www.codeblocks.org/"&gt;Codeblocks&lt;/a&gt; and &lt;a href="http://www.w3.org/XML/"&gt;XML&lt;/a&gt;/&lt;a href="http://xmlsoft.org/"&gt;libxml&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I will try to make a GUI skeleton before the end of this week, and publish some screen-shots on this blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5774080908366853392?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5774080908366853392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/11/working-on-cross-platform-configuration.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5774080908366853392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5774080908366853392'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/11/working-on-cross-platform-configuration.html' title='Working on a cross-platform configuration GUI'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5380755892353598214</id><published>2010-10-31T23:12:00.000+01:00</published><updated>2011-02-16T09:52:08.286+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Back to the latency: my audio system sucks</title><content type='html'>In my previous post, I warned that I was experiencing some measure inconsistency.&lt;br /&gt;&lt;br /&gt;The reason is simple: my audio system sucks :(&lt;br /&gt;&lt;br /&gt;For some measures, I recorded the LCD audio output, and for some others, I recorded the audio output of my digital audio system.&lt;br /&gt;&lt;br /&gt;But my digital audio system is adding an audio latency that varies from about 40ms for PCM 2.0 to about 90ms for Dolby Digital! (the PS3 could introduce some of this latency, see EDIT2)&lt;br /&gt;&lt;br /&gt;Speaking of stuffs that may add latency, a good advice I could give is not to use weak usb extension cable.&lt;br /&gt;&lt;br /&gt;I changed the following stuffs so as to take better measures:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;only record the LCD audio output&lt;/li&gt;&lt;li&gt;use a better microphone that makes a lot less noise&lt;/li&gt;&lt;li&gt;increase the LCD audio output level&lt;/li&gt;&lt;li&gt;take all measures within 10cm near the speaker (1m = 3.4ms)&lt;/li&gt;&lt;li&gt; only start the sixaxis emulator, and record the sound with another PC&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;New measures of the &lt;span style="font-weight: bold;"&gt;response time&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Wireless sixaxis: average 112ms, standard deviation 11ms&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Wired sixaxis: average 108ms, standard deviation 10ms&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Sixaxis emulator: average 123ms, standard deviation 8ms&lt;/li&gt;&lt;/ul&gt;Note that this response time probably includes the response time of the LCD audio output, which seems to be quite constant, since the standard deviation is about 10ms in each case.&lt;br /&gt;&lt;br /&gt;The sixaxis emulator is adding 11ms latency compared to the wireless sixaxis, and 15ms compared to the wired sixaxis.&lt;br /&gt;This actually shows the sixaxis emulator is doing quite a good job :)&lt;br /&gt;&lt;br /&gt;EDIT: I took new measures for CSS in Win7 too, it gives a 158ms response time, with a 16ms standard deviation.&lt;br /&gt;&lt;br /&gt;EDIT2: I should measure the response time for CSS with my digital  audio system, so as to see if the PS3 is a source of audio latency for dolby digital...&lt;br /&gt;&lt;br /&gt;EDIT3: &lt;a href="http://diyps3controller.googlecode.com/files/response_time.zip"&gt;all samples in a single archive file&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5380755892353598214?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5380755892353598214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/10/back-to-latency-my-audio-system-sucks.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5380755892353598214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5380755892353598214'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/10/back-to-latency-my-audio-system-sucks.html' title='Back to the latency: my audio system sucks'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2752881936943060908</id><published>2010-10-26T20:03:00.000+02:00</published><updated>2011-01-29T20:08:22.767+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latency'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixaxis emulator: the truth about latency</title><content type='html'>&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Warning: I need to work again on these measures. I took some more measures for the wireless sixaxis. These measures are not consistent with my earlier values :s For these new measures, the average game response time with the wireless sixaxis is about 150ms. All values in this post have to be confirmed. EDIT: See my &lt;a href="http://diy-machine.blogspot.com/2010/10/back-to-latency-my-audio-system-sucks.html"&gt;next post&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No suspense: it's not good.&lt;br /&gt;&lt;br /&gt;I measured the average delay between a gunshot action and its corresponding gunshot sound  (in BF:BC2).&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Real wireless sixaxis: 125ms&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Real wired sixaxis: 139ms&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Sixaxis emulator: 168ms&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note that this isn't the controller latency. This is the overall latency for a gunshot.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The difference between two values gives the controller &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;latency difference.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The sixaxis emulator adds a 43ms latency. That's more than 1 or 2 frames (40ms@25fps, 33ms@30fps, 17ms@60fps). Not good at all.&lt;br /&gt;I should take some measures with a FPS on PC.&lt;br /&gt;125ms seems to be very high for a descent game controller.&lt;br /&gt;The wired sixaxis gives more latency than the wireless one... not as expected.&lt;br /&gt;&lt;br /&gt;Methodology:&lt;br /&gt;&lt;br /&gt;- plug a microphone on the PC&lt;br /&gt;- start audacity&lt;br /&gt;- start a FPS on the PS3&lt;br /&gt;- put the microphone on the device to test (sixaxis or mouse)&lt;br /&gt;- adjust the volume of the game so that gunshot actions/sounds are recorded&lt;br /&gt;- start recording in audacity&lt;br /&gt;- repeat the gunshot action (empty the cartridge of a pistol) with ~2s delays&lt;br /&gt;- stop recording&lt;br /&gt;- get measures between gunshot actions/sounds and compute the average&lt;br /&gt;&lt;br /&gt;I don't know how precise it is to measure the game latency, but it's at least good enough to compute a latency difference.&lt;br /&gt;&lt;br /&gt;Following images are screen-shot examples of the audio wave:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TMhkZwCIkKI/AAAAAAAAAJk/GNBAZwsj2tw/s1600/Capture-emu-bc4.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 252px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TMhkZwCIkKI/AAAAAAAAAJk/GNBAZwsj2tw/s400/Capture-emu-bc4.png" alt="" id="BLOGGER_PHOTO_ID_5532782535778013346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TMcfWUgMzxI/AAAAAAAAAJc/CxdgVf2vpH8/s1600/Capture-Audacity.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 249px;" src="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TMcfWUgMzxI/AAAAAAAAAJc/CxdgVf2vpH8/s400/Capture-Audacity.png" alt="" id="BLOGGER_PHOTO_ID_5532425135569293074" border="0" /&gt;&lt;/a&gt;As you can see in the second screen-shot, there are two events: the gunshot action (mouse clic) and the gunshot sound. It shows a capture recorded with the sixaxis emulator. The delay was about 150ms for this gunshot.&lt;br /&gt;&lt;br /&gt;EDIT:&lt;br /&gt;&lt;br /&gt;I took measures for Counter Strike Source in Win7. I get a 188ms average response time for a gunshot.&lt;br /&gt;&lt;br /&gt;Although all the measured values seem very high, it seems the real sixaxis and the sixaxis emulator are not that bad... compared to CSS results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2752881936943060908?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2752881936943060908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/10/sixaxis-emulator-truth-about-latency.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2752881936943060908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2752881936943060908'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/10/sixaxis-emulator-truth-about-latency.html' title='Sixaxis emulator: the truth about latency'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/TMhkZwCIkKI/AAAAAAAAAJk/GNBAZwsj2tw/s72-c/Capture-emu-bc4.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6032814115368246979</id><published>2010-10-22T22:09:00.001+02:00</published><updated>2011-03-03T14:36:25.718+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multiple emulators'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Multiple sixaxis emulators</title><content type='html'>It's working!&lt;br /&gt;&lt;br /&gt;As you can see in the following screenshot, I am able to launch two emu processes that communicate with my PS3, each one using a different bluetooth adapter. I then can connect an emuclient process to one of them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TMHxiR4aIYI/AAAAAAAAAJU/1DrmgKd2F1M/s1600/Capture.jpeg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TMHxiR4aIYI/AAAAAAAAAJU/1DrmgKd2F1M/s400/Capture.jpeg" alt="" id="BLOGGER_PHOTO_ID_5530967388605522306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The next task is to connect the same emuclient to both emu processes, so that each emu process can send commands to the PS3 at the same time.&lt;br /&gt;&lt;br /&gt;This will need some more work, as the SDL 1.2 library (that is used to get events from input devices) is not supporting multiple mice and multiple keyboards. It supports multiple game devices though (joysticks, wheels, gamepads...).&lt;br /&gt;&lt;br /&gt;EDIT:&lt;br /&gt;&lt;br /&gt;It's not working for the following stuff:&lt;br /&gt;&lt;br /&gt;- connect to a PS3 that already has a real sixaxis connected&lt;br /&gt;- connect a real sixaxis after a sixaxis emulator and change the controller id&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6032814115368246979?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6032814115368246979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/10/multiple-sixaxis-emulators.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6032814115368246979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6032814115368246979'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/10/multiple-sixaxis-emulators.html' title='Multiple sixaxis emulators'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TMHxiR4aIYI/AAAAAAAAAJU/1DrmgKd2F1M/s72-c/Capture.jpeg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2059927556693167516</id><published>2010-10-19T23:06:00.000+02:00</published><updated>2010-10-20T10:17:42.792+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>How to connect to an already started PS3</title><content type='html'>I took some time to analyze the hci dumps I got with the sixaxis proxy.&lt;br /&gt;&lt;br /&gt;I discovered what was preventing the sixaxis emulator to connect to an already started PS3.&lt;br /&gt;&lt;br /&gt;The magic command is:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo hciconfig hci0 class 0x508&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Explanation:&lt;br /&gt;&lt;br /&gt;The following command gives the class of the bluetooth adapter:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;hciconfig hci0 class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For ex my broadcom adapter has the following class:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Class: 0x480100&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Service Classes: Capturing, Telephony&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Device Class: Computer, Uncategorized&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After executing the command, it gets the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Class: 0x000508&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Service Classes: Unspecified&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;    Device Class: Peripheral, Gamepad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's the class of a sixaxis, and for a mysterious reason, it seems that the PS3 only checks it if it's already started!&lt;br /&gt;&lt;br /&gt;Tip: execute this command after each hard/soft reset of the dongle.&lt;br /&gt;&lt;br /&gt;To come: several sixaxis emulator running at the same time!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;EDIT: this already was suggested by Jim Paris on &lt;a href="http://forums.ps2dev.org/viewtopic.php?t=11334"&gt;&lt;span style="font-style: italic;"&gt;forums.ps2dev.org&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt; (seems to be down right now but it's still available in &lt;a href="http://webcache.googleusercontent.com/search?hl=en&amp;amp;client=firefox-a&amp;amp;hs=l05&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;q=cache%3Ahttp%3A%2F%2Fforums.ps2dev.org%2Fviewtopic.php%3Ft%3D11334&amp;amp;btnG=Search"&gt;google cache&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;&lt;span class="postbody"&gt;set bluetooth dongle in slave mode, piscan, class 0x000508&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic;"&gt;I don't know why, but I missed that each time I read this forum thread :\&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2059927556693167516?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2059927556693167516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/10/how-to-connect-to-already-started-ps3.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2059927556693167516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2059927556693167516'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/10/how-to-connect-to-already-started-ps3.html' title='How to connect to an already started PS3'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-32209233216094665</id><published>2010-10-19T00:24:00.000+02:00</published><updated>2010-10-19T15:53:23.850+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Some new stuff coming soon...</title><content type='html'>Since the beginning of my work with the sixaxis emulator (once again, based on the great work of Jim Paris), I have been looking for a way to get a dump of the bluetooth packets that are received and sent by a real sixaxis.&lt;br /&gt;&lt;br /&gt;In May of this year, I was told by a reader of my blog that another French guy called Mikael Bouillot developed a sixaxis proxy. He is sharing his &lt;a href="http://www.corbac.com/page43.html"&gt;work on his website&lt;/a&gt;. I didn't get it work after some early tests and didn't go further until a few days. I asked Mikael some help to get his proxy working on my side, and he gave me the solution on a silver platter!&lt;br /&gt;&lt;br /&gt;I'm now able to get the dump of the connection of any sixaxis.&lt;br /&gt;&lt;br /&gt;Thanks to the analysis of these dumps, I hope to solve the following issues:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;the sixaxis emulator can't be started if the PS3 is already started&lt;/li&gt;&lt;li&gt;another instance of the emu process doesn't work (probably the same issue as 1.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;since the 3.50 firmware version, some more requests are sent by the PS3&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Stay tuned, some great stuff should come very soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-32209233216094665?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/32209233216094665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/10/some-new-stuff-coming-soon.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/32209233216094665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/32209233216094665'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/10/some-new-stuff-coming-soon.html' title='Some new stuff coming soon...'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-794120912463810138</id><published>2010-10-12T23:10:00.000+02:00</published><updated>2010-10-15T10:33:33.259+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Ubuntu &amp; PS3 upgrades</title><content type='html'>I upgraded my PS3 to the 3.50 firmware, and my PC to the 10.10 Ubuntu version.&lt;br /&gt;&lt;br /&gt;It works without any trouble on my side.&lt;br /&gt;&lt;br /&gt;There's a new trace in the emu process traces ("Unknown feature report [...]") but it doesn't seem to cause any issue. It seems the 3.50 firmware sends some more bt requests. Ideally the sixaxis emulator should respond to these new requests. It's added on my task list.&lt;br /&gt;&lt;br /&gt;If you meet problems, please report them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-794120912463810138?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/794120912463810138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/10/ubuntu-ps3-upgrades.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/794120912463810138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/794120912463810138'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/10/ubuntu-ps3-upgrades.html' title='Ubuntu &amp; PS3 upgrades'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7086476859485452926</id><published>2010-09-30T23:38:00.000+02:00</published><updated>2010-10-19T09:40:37.949+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Stuffs we can't do with a mouse</title><content type='html'>As I was playing Battlefield: Bad Company 2, I discovered a limitation due to the mouse to right stick translation.&lt;br /&gt;&lt;br /&gt;A constant rotation speed is easy to apply with a stick. That's hard to do with a mouse!&lt;br /&gt;&lt;br /&gt;In some situations it is required to emulate a &lt;span style="font-style: italic;font-size:100%;" &gt;constant max&lt;/span&gt; rotation speed. That's just impossible with a mouse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7086476859485452926?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7086476859485452926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/09/stuffs-we-cant-do-with-mouse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7086476859485452926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7086476859485452926'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/09/stuffs-we-cant-do-with-mouse.html' title='Stuffs we can&apos;t do with a mouse'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8209427653368258374</id><published>2010-09-15T11:10:00.000+02:00</published><updated>2010-10-12T23:21:20.860+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Next tasks</title><content type='html'>After a 1 month break, I want to continue working on the ps3 control.&lt;br /&gt;&lt;br /&gt;Here is my task list:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;head tracking - test freetrack &amp;amp; estimate portability&lt;/li&gt;&lt;li&gt;"dualshock 3" support - translate rumble to joystick/wheel force feedback (SDL 1.3 required)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;motion sensing commands&lt;/li&gt;&lt;li&gt;cross-platform (windows and mac os)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;multiple emulators + new usb requests of the 3.50 firmware&lt;br /&gt;&lt;/li&gt;&lt;li&gt;make a user manual from the tutorial&lt;/li&gt;&lt;li&gt;other enhancements&lt;/li&gt;&lt;/ol&gt;The tasks are ordered from the highest to the lowest priority.&lt;br /&gt;&lt;br /&gt;Other stuff:&lt;br /&gt;&lt;br /&gt;It is now possible to launch homebrew apps onto the ps3. It could be possible to launch an app onto the ps3 emulating a "local" sixaxis and grabbing events from usb input devices.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8209427653368258374?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8209427653368258374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/09/next-tasks.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8209427653368258374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8209427653368258374'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/09/next-tasks.html' title='Next tasks'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-472174724411141913</id><published>2010-09-06T14:46:00.000+02:00</published><updated>2010-09-06T19:45:24.251+02:00</updated><title type='text'>The PSGroove effect</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TITi2ODmV-I/AAAAAAAAAIo/AvsWBDV5Tt4/s1600/New+Bitmap+Image.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 632px; height: 93px;" src="http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TITi2ODmV-I/AAAAAAAAAIo/AvsWBDV5Tt4/s400/New+Bitmap+Image.JPG" alt="" id="BLOGGER_PHOTO_ID_5513781264922335202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is how I discovered the PSGroove hack was released: on 1. September, an unusual amount of internet users looking for "teensy++" visited my blog - about 4 times more visitors than usual.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-472174724411141913?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/472174724411141913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/09/psgroove-effect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/472174724411141913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/472174724411141913'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/09/psgroove-effect.html' title='The PSGroove effect'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TITi2ODmV-I/AAAAAAAAAIo/AvsWBDV5Tt4/s72-c/New+Bitmap+Image.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7301964649754222995</id><published>2010-08-03T10:56:00.000+02:00</published><updated>2011-03-03T14:29:12.037+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Live USB'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixaxis emulator on a Ubuntu Live USB Persistent Flash Drive</title><content type='html'>As explained in the tutorial &lt;a href="http://diy-machine.blogspot.com/2010/05/sixaxis-emulator-tutorial.html"&gt;there&lt;/a&gt;, the sixaxis emulator runs well with a Ubuntu Live CD. But the bad point of that method is that the installed packages &amp;amp; softwares are not persistent (everything runs from volatile memory, nothing is saved on disk).&lt;br /&gt;&lt;br /&gt;I discovered it is really easy to setup a &lt;span style="font-style: italic;"&gt;Ubuntu Live USB Persistent Flash Drive&lt;/span&gt;. This stuff makes the sixaxis emulator extremely transportable: just take your bluetooth dongle and your usb flash drive, plug them on any PC, boot from USB, and start the sixaxis emulator!&lt;br /&gt;&lt;br /&gt;A quick &amp;amp; easy tutorial to setup a &lt;span style="font-style: italic;"&gt;Ubuntu Live USB Persistent Flash Drive&lt;/span&gt; can be found &lt;a href="http://www.pendrivelinux.com/create-a-ubuntu-9-10-live-usb-from-cd/"&gt;there&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7301964649754222995?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7301964649754222995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/08/sixaxis-emulator-on-ubuntu-live-usb.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7301964649754222995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7301964649754222995'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/08/sixaxis-emulator-on-ubuntu-live-usb.html' title='Sixaxis emulator on a Ubuntu Live USB Persistent Flash Drive'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1075349283934424991</id><published>2010-07-26T10:52:00.000+02:00</published><updated>2010-07-27T22:32:50.400+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Windows support on its way</title><content type='html'>After having tested a quick &amp;amp; ugly solution to get the sixaxis emulator work in windows (see &lt;a href="http://diy-machine.blogspot.com/2010/07/ugly-windows-solution.html"&gt;last post&lt;/a&gt;), I decided to go further.&lt;br /&gt;&lt;br /&gt;I already can run the emuclient process - which grabs events from input devices - as a native windows application.&lt;br /&gt;&lt;br /&gt;I now want to run the emu process - which sends controls to the PS3 over bluetooth - as a native windows application too.&lt;br /&gt;&lt;br /&gt;This task is hard because the windows bluetooth stack doesn't expose its l2cap layer.&lt;br /&gt;&lt;br /&gt;I'm looking for a way to have a l2cap layer access.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.freebt.net/"&gt;freebt &lt;/a&gt;stack could be used (this project seems to be dead).&lt;br /&gt;&lt;br /&gt;There also is the &lt;a href="http://code.google.com/p/btstack/"&gt;btstack &lt;/a&gt;project, which is unfortunately not designed for windows. But it contains a great idea: a &lt;a href="http://code.google.com/p/btstack/wiki/HCI_USB_Transport"&gt;HCI USB Transport using libusb&lt;/a&gt; (not working yet).&lt;br /&gt;&lt;br /&gt;&lt;s&gt;I'm thinking to get this HCI transport working...&lt;/s&gt;&lt;br /&gt;&lt;br /&gt;I'm going to test the freebt driver first. All drivers for all windows versions are available &lt;a href="http://code.google.com/p/bthmsdevemul/downloads/detail?name=FreeBT%20USB%20Driver.zip&amp;can=2&amp;q="&gt;there&lt;/a&gt;. It provides access to the HCI layer, so I have to implement the needed l2cap functionalities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1075349283934424991?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1075349283934424991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/07/windows-support-on-his-way.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1075349283934424991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1075349283934424991'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/07/windows-support-on-his-way.html' title='Windows support on its way'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6732871825055248408</id><published>2010-07-24T03:11:00.000+02:00</published><updated>2011-04-24T22:48:43.318+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Machine'/><title type='text'>Ugly windows solution</title><content type='html'>Running the whole sixaxis emulator in a Linux Virtual Machine (with VirtualBox) was my first try.&lt;br /&gt;&lt;br /&gt;But I discovered the input devices mapping from the host to the guest is not adapted at all: the mouse and the keyboard are emulated by VirtualBox, making the latency of the mouse higher, and breaking the precision of a high-end mouse.&lt;br /&gt;&lt;br /&gt;Then I realized that the client/server architecture allows to run the emu and emuclient processes on different machines.&lt;br /&gt;&lt;br /&gt;As you can see in the below screenshot, I decided to run the emu (which sends data to the PS3) in a Linux Virtual Machine with a command-line only linux (slitaz-base), and the emuclient (which grabs input device events) in the host Windows machine. The emuclient connects and send data to the emu through TCP/IP. The installation of slitaz+sixaxis-emulator librairies takes about 350Mo of disk space.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TEpCOtBwGyI/AAAAAAAAAIY/rJYYouvLDTA/s1600/Nouvelle+image+bitmap.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TEpCOtBwGyI/AAAAAAAAAIY/rJYYouvLDTA/s400/Nouvelle+image+bitmap.jpg" alt="" id="BLOGGER_PHOTO_ID_5497279115531655970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It works (seems to be playable), but not as good as the Linux-only solution: there obviously is more latency.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EDIT: some details if you want to try that.&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;&lt;br /&gt;- Perform the &lt;a href="http://diy-machine.blogspot.com/2010/05/sixaxis-emulator-tutorial.html"&gt;sixaxis emulator tutorial&lt;/a&gt; in a VM first (if step 1 doesn't work, try that step with a livecd).&lt;br /&gt;&lt;br /&gt;- The network interface of the VM has to be configured in "Host-only networking" (that's how it is called in VirtualBox, see &lt;a href="http://www.virtualbox.org/manual/ch06.html#network_hostonly"&gt;there&lt;/a&gt;). If you can ping the VM Guest Linux from the Host Windows and vice versa, it should work!&lt;br /&gt;&lt;br /&gt;- The usb bluetooth dongle has to be added to the VM usb devices.&lt;br /&gt;&lt;br /&gt;1/ [VM/Guest Linux] in emu.c, change that line in tcp_listen function:&lt;br /&gt;&lt;br /&gt;addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); // Listen only on localhost&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;addr.sin_addr.s_addr = htonl(INADDR_ANY); // Listen on any interface&lt;br /&gt;&lt;br /&gt;Recompile emu process (make).&lt;br /&gt;&lt;br /&gt;2/ [Host Windows] Get http://www.libsdl.org/release/SDL-1.2.14-win32.zip&lt;br /&gt;&lt;br /&gt;Extract it. Copy SDL.dll to C:\Windows&lt;br /&gt;&lt;br /&gt;3/ [Host Windows] Get http://diyps3controller.googlecode.com/files/sixaxis-emu.exe&lt;br /&gt;&lt;br /&gt;4/ [VM/Guest Linux] Launch emu process as in the sixaxis emulator tutorial. It should power on the PS3.&lt;br /&gt;&lt;br /&gt;5/ [Host Windows] Launch sixaxis-emu.exe with the ip address of the VM/ Guest Linux as argument. It should connect to the emu process running in the Guest Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6732871825055248408?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6732871825055248408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/07/ugly-windows-solution.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6732871825055248408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6732871825055248408'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/07/ugly-windows-solution.html' title='Ugly windows solution'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ENr8Vt3Qkqg/TEpCOtBwGyI/AAAAAAAAAIY/rJYYouvLDTA/s72-c/Nouvelle+image+bitmap.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8943653716499341914</id><published>2010-07-07T10:08:00.000+02:00</published><updated>2011-03-28T08:43:49.784+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Handfree'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Handfree PS3 controller</title><content type='html'>&lt;a href="http://www.blogger.com/profile/07289723412931631625" rel="nofollow"&gt;OneSwitch.org.uk&lt;/a&gt; asked me yesterday about the feasibility of &lt;a href="http://switchgaming.blogspot.com/2009/09/holy-grail-of-accessible-gaming.html"&gt;a handsfree ps3 controller&lt;/a&gt;. This kind of controller is especially great for people with disabilities, and I'm sure everybody can take the fun out of it.&lt;br /&gt;&lt;br /&gt;The sixaxis emulator receives events from "common" input devices (mouse, keyboard, game devices) and translates them into ps3 controls.&lt;br /&gt;&lt;br /&gt;There's nothing preventing us to use a head tracking system (more generally, a gesture recognition system) and a voice recognition system as "handfree" input devices.&lt;br /&gt;&lt;br /&gt;And a combination of common and handfree input devices is even possible...&lt;br /&gt;&lt;br /&gt;I googled about a Linux head tracking system. Many projects are using the &lt;a href="http://opencv.willowgarage.com/wiki/"&gt;OpenCV library&lt;/a&gt;. I finally found a great project called &lt;a href="http://code.google.com/p/ehci/"&gt;EHCI - Enhanced human computer interface through webcam image processing library&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A demo to get 3d position of the head is available &lt;a href="http://code.google.com/p/ehci/wiki/simple3d"&gt;there&lt;/a&gt;. Head position could be translated into thumbstick movements. For example, this could be used to aim in FPS games (right thumbstick).&lt;br /&gt;&lt;br /&gt;I have plenty of functionalities to add to the sixaxis emulator... but as always, the fun ones come to the top of my list!&lt;br /&gt;&lt;br /&gt;My next task will be to get a demo of head tracking used to aim in a FPS.&lt;br /&gt;&lt;br /&gt;EDIT July 9:&lt;br /&gt;&lt;br /&gt;In the &lt;a href="http://www.youtube.com/watch?v=c34SiWx8rKo&amp;amp;feature=player_embedded"&gt;youtube video&lt;/a&gt; demonstrating a handfree PS3 controller, there is no technical details about how it works, so it could be fake. The only alternative ways to control a PS3 are external emulators, like using a PC+bluetooth or a programmable usb controller. Running a piece of software on the PS3 itself (while gaming) hasn't been performed yet.&lt;br /&gt;&lt;br /&gt;EDIT August 5:&lt;br /&gt;&lt;br /&gt;I tried the EHCI &lt;a href="http://en.wikipedia.org/wiki/Six_degrees_of_freedom"&gt;6DOF&lt;/a&gt; head tracking, but I think it's not and not stable and accurate enough for playing purposes. With my latest work about using the sixaxis emulator in windows, I'll be able to test the &lt;a href="http://www.free-track.net/"&gt;freetrack 6DOF head tracking&lt;/a&gt; (unfortunately not available in Linux), which seems to be approved by many gamers (see &lt;a href="http://www.youtube.com/results?search_query=freetrack&amp;amp;aq=f"&gt;videos on youtube&lt;/a&gt;). This system requires a webcam and a small additional hardware (quite simple = 3 IR diodes, some resistances and a &lt;span onclick="'redirectWR(event," class="clickable"&gt;battery&lt;/span&gt;). It can emulate a standard joystick with 6 axis. Events from this joystick can be easily grabbed by the sixaxis emulator, and mapped to some sixaxis controls (&lt;a href="http://diy-machine.blogspot.com/2010/06/joystick-support.html"&gt;as I already did for a steering wheel&lt;/a&gt;). I probably will test that at the end of August.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8943653716499341914?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8943653716499341914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/07/handfree-ps3-controller.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8943653716499341914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8943653716499341914'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/07/handfree-ps3-controller.html' title='Handfree PS3 controller'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2915559059214429677</id><published>2010-07-04T14:39:00.000+02:00</published><updated>2011-04-24T22:49:26.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Machine'/><title type='text'>Sixaxis emulator in a Virtual Machine</title><content type='html'>I recently was asked about running the sixaxis emulator in a VM (Virtual Machine).&lt;br /&gt;&lt;br /&gt;As the sixaxis emulator is not designed to work in any other OS than Linux (mainly because the bluetooth stack is not as open in other OSes), running the sixaxis emulator in a VM could be a work-around for people that can't (or don't want to) install Linux on their machine.&lt;br /&gt;&lt;br /&gt;With Windows Vista running VirtualBox/Ubuntu, I tried to perform the Sixaxis emulator tutorial.&lt;br /&gt;&lt;br /&gt;Only step 1 doesn't work: it seems the usb connection with the sixaxis doesn't work as expected.&lt;br /&gt;&lt;br /&gt;This is not a big issue since step 1 can be done once and for all with a livecd on any pc.&lt;br /&gt;&lt;br /&gt;The only thing to care about is to disconnect usb devices from the VirtualBox before unplugging them.&lt;br /&gt;&lt;br /&gt;With VirtualBox+Ubuntu, I get too much lag with the mouse, so that it can't be used to play. I'm going to test other VMs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2915559059214429677?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2915559059214429677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/07/sixaxis-emulator-in-virtual-machine.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2915559059214429677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2915559059214429677'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/07/sixaxis-emulator-in-virtual-machine.html' title='Sixaxis emulator in a Virtual Machine'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1404015163571262623</id><published>2010-06-23T21:24:00.000+02:00</published><updated>2011-03-29T14:20:50.293+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cheap ebay dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>About cheap CSR dongles</title><content type='html'>I was thinking the Bluecore4-ROM dongles can't have their bdaddrs (bluetooth device address) changed... I was wrong! Curiously, these dongles seem to have some writable non-volatile memory!&lt;br /&gt;&lt;br /&gt;I bought 4 Bluecore4-ROM dongles on ebay - 3$ each - about a month ago, and thought at the beginning they wouldn't work.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TCJ1OhAGcqI/AAAAAAAAAFg/Mphmr_TLvCM/s1600/BT-USB-2.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 187px; height: 167px;" src="http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TCJ1OhAGcqI/AAAAAAAAAFg/Mphmr_TLvCM/s400/BT-USB-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5486076188328096418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;But some people told me that the bdaddr of their  Bluecore4-ROM bluetooth dongle can be modified permanently...&lt;br /&gt;&lt;br /&gt;I finally received them, and as expected, I got their bdaddr changed permanently :-)&lt;br /&gt;&lt;br /&gt;The only bad thing is that 2 of the 4 dongles I received are not, as advertised, CSR dongles with Bluetooth 2.0+EDR (i.e. Bluecore4 dongles). One seems to be an old bluecore1 dongle (its bdaddr can't be changed), and another one seems to be a counterfeit (it has the CSR product and vendor ids, but it does not contain a CSR chip) and doesn't work at all.&lt;br /&gt;&lt;br /&gt;EDIT August 4: &lt;span style="font-weight: bold;font-size:130%;" &gt;Sellers usually don't tell which CSR chip is inside a bluetooth dongle. &lt;a href="http://www.csr.com/products/bcrange.htm"&gt;The key point is that bluecore4     implements bluetooth 2.0+EDR&lt;/a&gt;. Therefore, a dongle advertised as a CSR dongle with bluetooth 2.0+EDR should contain a bluecore4 chip (or newer). Be careful, it seems some sellers are retailing old bluecore1 dongles as CSR dongles with bluetooth 2.0+EDR. Bluecore1 chips can't have their bdaddr changed!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1404015163571262623?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1404015163571262623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/06/about-cheap-csr-dongles.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1404015163571262623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1404015163571262623'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/06/about-cheap-csr-dongles.html' title='About cheap CSR dongles'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TCJ1OhAGcqI/AAAAAAAAAFg/Mphmr_TLvCM/s72-c/BT-USB-2.jpg' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-3152433793185046433</id><published>2010-06-16T09:09:00.000+02:00</published><updated>2011-03-03T14:31:41.864+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Joystick'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Joystick support</title><content type='html'>Last sunday I went to a &lt;span class="clickable" onclick="'redirectWR(event,"&gt;&lt;span class="hw"&gt;bric-a-brac sale. I was looking for a steering wheel to adapt to my emulator. I &lt;/span&gt;&lt;/span&gt;bought &lt;span class="clickable" onclick="'redirectWR(event,"&gt;&lt;span class="hw"&gt;a &lt;a href="http://www.logitech.com/en-us/486/2973?WT.z_sp=Image"&gt;Wingman Formula Force GP&lt;/a&gt; for 5€:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TBiA0XrtmnI/AAAAAAAAAFY/_PN5G8g7_ig/s1600/logitechwheel.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 300px; height: 233px;" src="http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TBiA0XrtmnI/AAAAAAAAAFY/_PN5G8g7_ig/s400/logitechwheel.jpg" alt="" id="BLOGGER_PHOTO_ID_5483274183522490994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This wheel is quite old - it was released in 2002 - but it still has a force feedback and a usb connector (older steering wheels have a gameport connector). It is probably outdated but I bet I can't find better for that price.&lt;br /&gt;&lt;br /&gt;I committed &lt;a href="http://code.google.com/p/diyps3controller/source/detail?r=81"&gt;some code&lt;/a&gt; that enables the use of this controller with the sixaxis emulator. It uses the &lt;a href="http://www.libsdl.org/cgi/docwiki.cgi/SDL_Joystick"&gt;joystick API&lt;/a&gt; of the SDL library. The code is not well designed and has some limitations (only one joystick plugged to the PC, mappings are hardcoded...), but it is for now a proof of concept. It can be activated by modifying the Makefile: remove the # character from the line "#CFLAGS+=-DJOYSTICK", and perform a make clean and a make.&lt;br /&gt;&lt;br /&gt;Note that your joystick may be wrapped by default to a mouse and/or a keyboard by your linux distro. This is annoying because it generates extra mouse/keyboard events that interfere with real mouse and keyboard events in the emulator. This behavior can be configured/removed with the xinput command line utility. For more info on that command, type "xinput --help".&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-3152433793185046433?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/3152433793185046433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/06/joystick-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3152433793185046433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3152433793185046433'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/06/joystick-support.html' title='Joystick support'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ENr8Vt3Qkqg/TBiA0XrtmnI/AAAAAAAAAFY/_PN5G8g7_ig/s72-c/logitechwheel.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2207727737645933053</id><published>2010-06-09T11:46:00.000+02:00</published><updated>2011-03-03T14:37:56.279+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multiple emulators'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>The ultimate sixaxis emulator</title><content type='html'>Several input devices (keyboards, mice, wheels, joysticks...), several bluetooth dongles...&lt;br /&gt;&lt;br /&gt;Guess what?&lt;br /&gt;&lt;br /&gt;I'm thinking to make the sixaxis emulator capable of emulating several sixaxis at the same time, and reading several input devices at the same time (several mice, several keyboards...).&lt;br /&gt;&lt;br /&gt;The emuclient process (responsible for grabbing input events) will connect to several emu processes (responsible for connecting and sending data to the PS3).&lt;br /&gt;&lt;br /&gt;The bad thing is that the SDL 1.2 is not designed to handle multiple mice/keyboards (unlike joysticks). For mice and keyboards, the origin of an event can't be known.&lt;br /&gt;&lt;br /&gt;With the coming SDL 1.3, it seems that multiple mice can be handled at the same time thanks to the merge of the &lt;a href="http://icculus.org/manymouse/"&gt;ManyMouse library&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I looked closer to the source code, and it seems that multiple keyboard can be handled by the SDL 1.3 too!&lt;br /&gt;&lt;br /&gt;EDIT 12/06: &lt;a href="http://hg.libsdl.org/SDL/rev/3e69e077cb95"&gt;the multi-mouse / multi-keyboard support has been removed from the trunk of the SDL library&lt;/a&gt;. It will be re-added in a near future =&gt; the multiple sixaxis emulator is postponed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2207727737645933053?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2207727737645933053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/06/ultimate-sixaxis-emulator.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2207727737645933053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2207727737645933053'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/06/ultimate-sixaxis-emulator.html' title='The ultimate sixaxis emulator'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2068541448793904366</id><published>2010-06-08T09:43:00.000+02:00</published><updated>2010-07-05T13:49:26.463+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixaxis emulator: coming functionalities</title><content type='html'>Yesterday, I wanted to start playing Battelfield Bad Company 2 with the sixaxis emulator.&lt;br /&gt;&lt;br /&gt;The great thing with this game is that you can control vehicles including helicopters.&lt;br /&gt;&lt;br /&gt;As the sixaxis controls slightly differs from COD MW2, I started to play after doing small changes to the keymap.&lt;br /&gt;&lt;br /&gt;Note that the dead zone is 8 for that game. I had to increase - x2 - the multiplier, but this depends on the mouse - mine is a G5 set to the highest sensitivity.&lt;br /&gt;&lt;br /&gt;But I quickly saw that the keymap for infantry&lt;span class="POS2"&gt; does not fit to vehicles driving very well.&lt;br /&gt;&lt;br /&gt;A great thing to add to the sixaxis emulator is the ability to alter the keymap: a press on a key can change the keymap, so that several keymaps can be used while playing a game. Example: press F9, it emulates a circle button press (=enter into the vehicle) and changes the keymap!&lt;br /&gt;&lt;br /&gt;For helicopter driving, there is nothing better than a joystick. I own an old ST200 usb joystick that I'm going to use with the sixaxis emulator!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2068541448793904366?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2068541448793904366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/06/sixaxis-emulator-more-functionalities.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2068541448793904366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2068541448793904366'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/06/sixaxis-emulator-more-functionalities.html' title='Sixaxis emulator: coming functionalities'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-992624500169707058</id><published>2010-05-26T00:39:00.000+02:00</published><updated>2011-03-03T14:44:14.198+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom pairing'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixpair-emu customizer</title><content type='html'>The final sixpair-emu firmware for the Teensy++ is available &lt;a href="http://code.google.com/p/diyps3controller/downloads/detail?name=sixaxis_pair_emu.hex&amp;amp;can=2&amp;amp;q=#makechanges"&gt;there&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I wrote a small python app that makes the customization of the sixpair-emu easier: nothing to compile, no firmware to download (except the pre-compiled initial one) to the Teensy++!&lt;br /&gt;&lt;br /&gt;It looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S_xSJV6O37I/AAAAAAAAAFI/rvoWdq2nM2Q/s1600/Capture.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 76px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S_xSJV6O37I/AAAAAAAAAFI/rvoWdq2nM2Q/s400/Capture.png" alt="" id="BLOGGER_PHOTO_ID_5475341567429369778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Disclaimer:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;use it at your own risk&lt;/li&gt;&lt;li&gt;the (vendor id, product id) = (0x054c, 0x0268) is the property of Sony&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Instructions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;plug the Teensy++ to the PC&lt;/li&gt;&lt;li&gt;download the firmware to the Teensy++ with the &lt;a href="http://www.pjrc.com/teensy/loader.html"&gt;Teensy loader&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;if the bluetooth device to be used is a dongle, then plug it to the PC (if external)&lt;/li&gt;&lt;li&gt;launch the sixpair-emu customizer&lt;br /&gt;&lt;/li&gt;&lt;li&gt;select the Teensy++&lt;br /&gt;&lt;/li&gt;&lt;li&gt;select the bluetooth device, or select and edit custom bdaddr&lt;/li&gt;&lt;li&gt;select the (vendor id - product id): sixaxis = 0x054c - 0x0268, original firmware = 0x03eb - 0x2042&lt;/li&gt;&lt;li&gt;clic apply (if there is no change, the application tells nothing was modified)&lt;/li&gt;&lt;li&gt;unplug the Teensy++&lt;/li&gt;&lt;li&gt;plug it to the PS3&lt;/li&gt;&lt;/ul&gt;=&gt; the bluetooth device is registered as a Sixaxis by the PS3, so that it can connect to the PS3 as a sixaxis!&lt;br /&gt;&lt;br /&gt;If a Teensy++ or a bluetooth device is plugged after the application is started, the refresh button allows to refresh the gui without restart.&lt;br /&gt;&lt;br /&gt;Python code is available &lt;a href="http://diyps3controller.googlecode.com/svn/trunk/sixpair-emu-customizer/"&gt;there&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ubuntu:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It requires following packages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;python 2.6.5&lt;/li&gt;&lt;li&gt;python-tk&lt;/li&gt;&lt;li&gt;libusb &gt; 1.0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;pyusb &gt; 1.0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;pybluez 0.18&lt;/li&gt;&lt;/ul&gt;It has to be launched in a terminal with the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo python sixp-emu-cust.py&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Windows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(tested in windows vista)&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi"&gt;python 2.6.5&lt;/a&gt; (includes python-tk)&lt;br /&gt;- &lt;a href="http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.1.14.0/libusb-win32-filter-bin-1.1.14.0.exe/download"&gt;libusb filter driver 1.1.14.0&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://sourceforge.net/projects/pyusb/files/PyUSB%201.0/1.0.0-alpha-0/pyusb-1.0.0-a0.zip/download"&gt;pyusb 1.0.0-a0&lt;/a&gt; (to be installed in cmd shell with 'setup.py install')&lt;br /&gt;- &lt;a href="http://pybluez.googlecode.com/files/PyBluez-0.18.win32-py2.6.exe"&gt;pybluez 0.18&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(the bdaddrs are not read, but custom bdaddr can be set)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-992624500169707058?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/992624500169707058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixpair-emu-customizer.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/992624500169707058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/992624500169707058'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixpair-emu-customizer.html' title='Sixpair-emu customizer'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S_xSJV6O37I/AAAAAAAAAFI/rvoWdq2nM2Q/s72-c/Capture.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4299601112850987725</id><published>2010-05-19T09:03:00.000+02:00</published><updated>2010-05-19T09:18:44.587+02:00</updated><title type='text'>The Hackaday effect</title><content type='html'>Thanks a lot to hackaday for the two posts about my diy ps3 controllers (&lt;a href="http://hackaday.com/2010/04/25/custom-controllers-for-playstation-3/"&gt;first&lt;/a&gt; and &lt;a href="http://hackaday.com/2010/05/05/custom-ps3-controller-software-emulation-version/"&gt;second&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;As you can see in the chart below, it made the number of visitors took off. The peaks correspond to the time the posts were in 1st page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S_OQaXGNHmI/AAAAAAAAAE4/UOpHqUhOHOY/s1600/visitors.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 88px;" src="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S_OQaXGNHmI/AAAAAAAAAE4/UOpHqUhOHOY/s400/visitors.JPG" alt="" id="BLOGGER_PHOTO_ID_5472876754736324194" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4299601112850987725?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4299601112850987725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/hackaday-effect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4299601112850987725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4299601112850987725'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/hackaday-effect.html' title='The Hackaday effect'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S_OQaXGNHmI/AAAAAAAAAE4/UOpHqUhOHOY/s72-c/visitors.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4222891187953555556</id><published>2010-05-19T00:17:00.000+02:00</published><updated>2011-03-03T14:44:31.644+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom pairing'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixpair-emu</title><content type='html'>[deprecated - &lt;a href="http://diy-machine.blogspot.com/2010/05/sixpair-emu-customizer.html"&gt;see newer post&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;The code to get a teensy++ pair a bluetooth device with a PS3 is available &lt;a href="http://diyps3controller.googlecode.com/svn/trunk/sixpair-emu/"&gt;there&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Disclaimer:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;use it at your own risk&lt;/li&gt;&lt;li&gt;the vendor id and the product id are the property of Sony&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;To get it working, the following changes have to be done:&lt;br /&gt;&lt;br /&gt;In sixaxis_pair_emu.c, edit the following lines:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;uint8_t EEMEM DeviceBdaddr[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;uint16_t EEMEM VendorId = 0x03EB;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;uint16_t EEMEM ProductId = 0x2042;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your bdaddr is 11:22:33:44:55:66 then replace {0x01, 0x02, 0x03, 0x04, 0x05, 0x06 } with {0x11, 0x22, 0x33, 0x44, 0x55, 0x66 }.&lt;br /&gt;The vendor id of a sixaxis is 0x054c, and the product id is 0x0268.&lt;br /&gt;&lt;br /&gt;For now, you have to compile the firmware yourself.&lt;br /&gt;&lt;br /&gt;Enhancements that I planned to do:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;s&gt;make the PS3 bdaddr be learnt by the device (but not persistent)&lt;/s&gt; done&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;s&gt;write the variables that have to be modified in the eeprom&lt;/s&gt; done&lt;/li&gt;&lt;li&gt;&lt;s&gt;make a specific usb request to modify them&lt;/s&gt; done&lt;/li&gt;&lt;li&gt;&lt;s&gt;make a definitive firmware&lt;/s&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;s&gt;make a linux/windows gui app&lt;/s&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4222891187953555556?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4222891187953555556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixpair-emu.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4222891187953555556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4222891187953555556'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixpair-emu.html' title='Sixpair-emu'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-2119684155348769657</id><published>2010-05-18T13:35:00.000+02:00</published><updated>2011-03-03T14:33:47.011+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom pairing'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixutils</title><content type='html'>During my investigations to &lt;a href="http://diy-machine.blogspot.com/2010/05/pair-any-bluetooth-dongle-with-ps3-as.html"&gt;pair a bluetooth device as a sixaxis with my PS3&lt;/a&gt;, I modified the &lt;a href="http://www.pabr.org/sixlinux/sixlinux.en.html"&gt;original sixpair code&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://diyps3controller.googlecode.com/svn/trunk/sixutils/sixaddr.c"&gt;sixaddr.c&lt;/a&gt; is a tool to get the sixaxis device address and the PS3 device address (not useful for the investigation, but it is great for step 1 of the sixaxis emulator tutorial)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://diyps3controller.googlecode.com/svn/trunk/sixutils/sixdump.c"&gt;sixdump.c&lt;/a&gt; is a tool to get all the usb get requests answered by a sixaxis (used in step 2)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://diyps3controller.googlecode.com/svn/trunk/sixutils/sixmod.c"&gt;sixmod.c&lt;/a&gt; is a tool to see the effect of a particular usb set request on the sixaxis (used in step 3)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I couldn't have made the 'pairing device' work without this code!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-2119684155348769657?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/2119684155348769657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixutils.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2119684155348769657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/2119684155348769657'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixutils.html' title='Sixutils'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5261154243325177458</id><published>2010-05-16T23:21:00.000+02:00</published><updated>2011-03-03T14:44:56.885+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom pairing'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Pair any bluetooth device with a PS3 as a Sixaxis!</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;I have just paired my broadcom dongle with my PS3 as a Sixaxis :-p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I did this &lt;u&gt;without modifying the dongle&lt;/u&gt;: this dongle is built on a broadcom chipset, which does not allow bdaddr modification!&lt;br /&gt;&lt;br /&gt;I lately have been looking for ways to do that:&lt;br /&gt;&lt;a href="http://diy-machine.blogspot.com/2010/05/another-way-to-pair-dongle-with-ps3-as.html"&gt;- I tried to modify the bdaddr of a sixaxis so as to make it pair the bdaddr of a dongle &lt;/a&gt;(you never know, it could have worked - and testing that was very easy)&lt;br /&gt;&lt;a href="http://diy-machine.blogspot.com/2010/05/another-way-to-pair-dongle-with-ps3-as_10.html"&gt;- I tried to emulate a sixaxis with a usb development board&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The development board is a &lt;a href="http://www.pjrc.com/teensy/"&gt;Teensy++&lt;/a&gt;, but the code written for this device can be ported to any other atmel usb development board supported by the &lt;a href="http://www.fourwalledcubicle.com/LUFA.php"&gt;LUFA framework&lt;/a&gt;, such as the &lt;a href="http://fletchtronics.net/bumble-b"&gt;bumble-b&lt;/a&gt; for example.&lt;br /&gt;&lt;br /&gt;Steps of the work:&lt;br /&gt;&lt;br /&gt;1/ I wrote the &lt;a href="http://ps3.jim.sh/sixaxis/usb/"&gt;usb hid layer&lt;/a&gt; and the &lt;a href="http://www.pabr.org/sixlinux/sixlinux.en.html"&gt;"sixpair interface"&lt;/a&gt; (3 host to device requests: set master bdaddr, get master bdaddr, and get device bdaddr), and got the usb exchanges with a Linux host (sniffed with Wireshark/usbmon) be identical&lt;br /&gt;&lt;br /&gt;=&gt;pairing failed&lt;br /&gt;&lt;br /&gt;2/ I bombed a real sixaxis whith "get report" control requests so as to see all the wValue that give responses, and implemented these request responses&lt;br /&gt;&lt;br /&gt;=&gt;failed too&lt;br /&gt;&lt;br /&gt;3/ I connected my jtagice mkii debugger to my teensy++, made the teensy++ write some request logs in memory, and inspected them.&lt;br /&gt;I identified the request that was blocking, did the same request to a real sixaxis, and saw the response it should give.&lt;br /&gt;&lt;br /&gt;=&gt;success!!!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The sixaxis can now be emulated with any bluetooth device!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5261154243325177458?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5261154243325177458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/pair-any-bluetooth-dongle-with-ps3-as.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5261154243325177458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5261154243325177458'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/pair-any-bluetooth-dongle-with-ps3-as.html' title='Pair any bluetooth device with a PS3 as a Sixaxis!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7063022980474057273</id><published>2010-05-14T01:42:00.000+02:00</published><updated>2011-03-03T14:34:17.122+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='Macros'/><title type='text'>Sixaxis emulator: keyboard macros</title><content type='html'>It's now possible to configure &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=9"&gt;keyboard macros&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A key press will generate a series of events, with timing conditions.&lt;br /&gt;&lt;br /&gt;Commands are the following:&lt;br /&gt;- key down&lt;br /&gt;- key up&lt;br /&gt;- key press (= key down + delay + key up)&lt;br /&gt;- delay (unit = ms)&lt;br /&gt;&lt;br /&gt;Each macro has to be defined in a file.&lt;br /&gt;&lt;br /&gt;Example: macro_example.txt&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Defines the action that triggers the macro execution&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;MACRO F1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Performs a keystroke (key down + delay 50ms + key up)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEY e&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key down&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYDOWN SPACE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key up&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYUP SPACE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lines beginning with # are comments.&lt;br /&gt;&lt;br /&gt;Each macro file has to be referenced in the macros.txt file.&lt;br /&gt;&lt;br /&gt;All keys of the keyboard can trigger a macro. The complete list can be found in macro.c.&lt;br /&gt;&lt;br /&gt;Remaining work:&lt;br /&gt;- support for mouse events (buttons + moves)&lt;br /&gt;- record/replay functionnality&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7063022980474057273?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7063022980474057273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/keyboard-macros.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7063022980474057273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7063022980474057273'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/keyboard-macros.html' title='Sixaxis emulator: keyboard macros'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-3861255069808708953</id><published>2010-05-12T09:01:00.000+02:00</published><updated>2010-06-03T00:00:50.206+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Please give me a feedback!</title><content type='html'>I'm sharing my project &lt;span style="font-weight: bold;"&gt;for free&lt;/span&gt;, so please give me a &lt;span style="font-weight: bold;"&gt;feedback &lt;/span&gt;if you test(ed) it.&lt;br /&gt;&lt;br /&gt;Tell me if it works or doesn't work, and especially add the following details:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the tutorial (hidemulator or sixaxis emulator)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the Linux distribution&lt;/li&gt;&lt;li&gt;the libraries (if different from those suggested in the tutorials)&lt;/li&gt;&lt;li&gt;the PS3 hardware version (slim, fat 40Gb, fat 60Gb, ...)&lt;/li&gt;&lt;li&gt;the PS3 firmware version&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the bluetooth dongle (exact model + revision if there is  one + output of "hciconfig -a hci0" and "sudo hciconfig hci0 revision")&lt;/li&gt;&lt;li&gt;the hardware of the PC (at least the CPU and the amount of RAM)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Report that in commentary to this post.&lt;br /&gt;&lt;br /&gt;And if it doesn't work, first verify if you have the latest source code. Then look at &lt;a href="http://code.google.com/p/diyps3controller/issues/list"&gt;the bug list&lt;/a&gt;, see if your problems are already known, and if it's not, &lt;a href="http://code.google.com/p/diyps3controller/issues/entry"&gt;report them&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The project is still in development. &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=7"&gt;A critical issue&lt;/a&gt; remains, and I'm actively working to solve it. The code works actually great on my side, so that it wouldn't be possible for me to be aware of that issue without feedback!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-3861255069808708953?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/3861255069808708953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/please-give-me-feedback.html#comment-form' title='58 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3861255069808708953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/3861255069808708953'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/please-give-me-feedback.html' title='Please give me a feedback!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>58</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4964793027260065303</id><published>2010-05-10T20:13:00.000+02:00</published><updated>2011-03-03T14:45:14.705+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom pairing'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Another way to pair a dongle with the PS3 as a Sixaxis - 2</title><content type='html'>A usb device (such as a teensy++, a bumble-b or an atmel chip+vusb) can talk to the PS3 as an "unpaired" sixaxis.&lt;br /&gt;&lt;br /&gt;I think it has to have the following characteristics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the same vendor id and product id&lt;/li&gt;&lt;li&gt;the same hid descriptor&lt;/li&gt;&lt;li&gt;after a small delay, the device sends a PS3 button press&lt;br /&gt;&lt;/li&gt;&lt;li&gt;when the PS3 requests for the bdaddr, reply with the bdaddr we want to pair&lt;/li&gt;&lt;li&gt;when the PS3 sends its bdaddr, reply "ok"&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4964793027260065303?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4964793027260065303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/another-way-to-pair-dongle-with-ps3-as_10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4964793027260065303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4964793027260065303'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/another-way-to-pair-dongle-with-ps3-as_10.html' title='Another way to pair a dongle with the PS3 as a Sixaxis - 2'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7370760016726813015</id><published>2010-05-10T13:28:00.000+02:00</published><updated>2011-03-03T14:45:32.713+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom pairing'/><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Another way to pair a dongle with a PS3 as a Sixaxis?</title><content type='html'>Another way to pair a dongle with the PS3 as a Sixaxis could be to change the bdaddr of a Sixaxis with the bdaddr of a dongle, and pair that Sixaxis with the PS3.&lt;br /&gt;&lt;br /&gt;It seems that the bluetooth module of the sixaxis is composed of &lt;a href="http://pc.watch.impress.co.jp/docs/2006/1111/ps3_203.jpg"&gt;a CSR chip and an additional chip&lt;/a&gt; (flash memory?), so that there is a little chance that the bdaddr can be changed.&lt;br /&gt;&lt;br /&gt;The bdaddr of the bluetooth master can be get/set with usb commands (as seen with sixpair utility). I'll try to do the same with the bdaddr of the sixaxis (it is already known that there is a get command).&lt;br /&gt;&lt;br /&gt;Pros:&lt;br /&gt;- any bluetooth dongle could be used&lt;br /&gt;- using a widcomm compatible dongle could make possible to port the sixaxis emulator to windows&lt;br /&gt;- the sixaxis bdaddr could be reset to its original value so that the sixaxis and the sixaxis emulator could be used at the same time&lt;br /&gt;&lt;br /&gt;Cons:&lt;br /&gt;- none&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;u&gt;&lt;span style="font-weight: bold;"&gt;This method doesn't work, the command just fails.&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7370760016726813015?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7370760016726813015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/another-way-to-pair-dongle-with-ps3-as.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7370760016726813015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7370760016726813015'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/another-way-to-pair-dongle-with-ps3-as.html' title='Another way to pair a dongle with a PS3 as a Sixaxis?'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4939621358986701035</id><published>2010-05-07T20:10:00.000+02:00</published><updated>2010-05-10T13:18:18.125+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Critical issue corrected! Problème critique corrigé !</title><content type='html'>There was a potential buffer overrun in the stack, sorry about that (&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=6&amp;amp;can=7"&gt;issue 6&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Please perform step 3 again before creating any issue in googlecode.&lt;br /&gt;-----&lt;br /&gt;Il pouvait se produire un dépassement de buffer dans la pile, désolé (&lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=6&amp;amp;can=7"&gt;issue 6&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Merci de répéter de nouveau l'étape 3 avant de créer tout rapport de bug dans googlecode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4939621358986701035?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4939621358986701035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/critical-issue-corrected.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4939621358986701035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4939621358986701035'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/critical-issue-corrected.html' title='Critical issue corrected! Problème critique corrigé !'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4896345960725905012</id><published>2010-05-07T14:58:00.000+02:00</published><updated>2011-03-03T14:35:16.037+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bt dongle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Compatible CSR bluetooth dongles</title><content type='html'>&lt;span style="font-size:130%;"&gt;Edit 24/06: &lt;a href="http://diy-machine.blogspot.com/2010/06/about-cheap-csr-dongles.html"&gt;Bluecore4-ROM dongles may work too&lt;/a&gt;!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is quite difficult to tell if a usb dongle will work or not (even for CSR chips).&lt;br /&gt;&lt;br /&gt;And not to make it easier, dongle manufacturers can change the chip without changing the product name... So be careful about hardware revisions!&lt;br /&gt;&lt;br /&gt;I suggest CSR chips such as BlueCore2-ext and BlueCore4-ext. There is no guaranty it will work.&lt;br /&gt;&lt;br /&gt;Older CSR chips may work (as the dongle I'm using - Cellink BTA-3000).&lt;br /&gt;&lt;br /&gt;There is valuable information about BlueCore2-ext dongles and BlueCore4-ext dongles on &lt;a href="http://www.evilgenius.de/2007/04/10/bluetooth-dongle-with-csr-chipset-and-flash-or-external-memory-using-flash/"&gt;that blog&lt;/a&gt; and &lt;a href="http://forums.remote-exploit.org/tutorials-guides/10103-new-tutorial-bt3-only-one-bluetooth-post-rule-them-all.html"&gt;that forum thread&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A list of dongles with BlueCore2-ext can be found &lt;a href="http://diyps3controller.googlecode.com/files/ELM200309010139088.pdf"&gt;there&lt;/a&gt; (p.98-104).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4896345960725905012?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4896345960725905012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/compatible-bluetooth-dongles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4896345960725905012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4896345960725905012'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/compatible-bluetooth-dongles.html' title='Compatible CSR bluetooth dongles'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1829768254078187752</id><published>2010-05-05T00:33:00.000+02:00</published><updated>2010-05-05T13:14:29.378+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Playing FPS with a G5 on PS3 ;-)</title><content type='html'>I did it! That feels almost like playing a FPS on a PC ^^&lt;br /&gt;&lt;br /&gt;I seriously hope console manufacturers and game developers will think about giving us the right controller for each type of game... But I think they won't, as they actually seem to put all their efforts in those new controllers for casual gamers...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1829768254078187752?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1829768254078187752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/playing-fps-with-g5-on-ps3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1829768254078187752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1829768254078187752'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/playing-fps-with-g5-on-ps3.html' title='Playing FPS with a G5 on PS3 ;-)'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4714530824074304891</id><published>2010-05-04T16:01:00.004+02:00</published><updated>2011-07-07T19:58:55.744+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Français'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Tutoriel : Sixaxis emulator</title><content type='html'>&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Attention: ce tutoriel n'est plus à jour. Nouveau tutoriel : &lt;a href="http://gimx.fr/forum/viewtopic.php?f=4&amp;amp;t=10"&gt;lien&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div onclick="openClose('YOURSPOILERID')" class="spoilertop"&gt; » Ancien contenu  « &lt;/div&gt;&lt;br /&gt;&lt;div class="spoilermain" id="YOURSPOILERID" style="display: none;"&gt;&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Ce tutoriel explique comment contrôler une PS3 avec un clavier et une souris connectés à un PC sous Linux, en utilisant un dongle bluetooth.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Cela est possible grâce au &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;travail de Jim Paris&lt;/a&gt;, dont j'ai repris et &lt;a href="http://diy-machine.blogspot.com/2010/05/working-with-code-of-jim-paris.html"&gt;modifié&lt;/a&gt; le code source.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style=""&gt;Pré-requis&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul style=""&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;ubuntu 10.04 Live CD&lt;/a&gt;  (ou toute autre distribution Linux si vous êtes à l'aise avec Linux)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=""&gt;&lt;li&gt;une manette sixaxis déjà utilisée avec la PS3 à utiliser&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ul style=""&gt;&lt;li&gt;un dongle bluetooth avec une puce dont la bdaddr (bluetooth device address) peut être changée. Pour découvrir si votre dongle marche, essayez simplement d'exécuter ce tutoriel.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Notes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Cette méthode est expérimentale, donc utilisez là à vos risques et périls. Je ne suis pas responsable des dégâts que vous pourriez causer à votre PC ou à votre PS3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Les dongles CSR Bluecore4 trouvables sur ebay pour quelques euros sont rapportés comme utilisables. &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Bluecore4  est la première puce CSR implémentant l'EDR (Enhanced Data Rate), donc  les mots clefs pour trouver ces dongles sont CSR et EDR.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Retirer tout autre dongle du PC (ou les désactiver).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Ne pas essayer d'utiliser le Sixaxis emulator et la manette sixaxis en même temps. Rétablir la bdaddr du dongle si elle n'est plus utilisée pour le Sixaxis emulator.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Ce tutoriel a été écrit en utilisant ubuntu depuis le live cd (rien n'est modifié sur le disque dur).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Ne pas oublier de noter la bdaddr de la PS3 dans l'étape 1, afin de ne plus avoir à répéter cette étape.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Une fois que l'étape 2 est réalisée, il n'y a plus lieu de la répéter puisque la modification de la bdaddr est permanente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Comme les étapes 1 et 2 n'ont à être réalisées qu'une seule fois, une manière simple de démarer le Sixaxis emulator avec un live cd est de réaliser un script pour les étapes 3 et 4.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Installez ubuntu sur votre PC si vous le souhaitez ! Si vous avez un OS Windows déjà installé, vous pouvez lire &lt;/span&gt;&lt;a style="" href="http://doc.ubuntu-fr.org/cohabitation_ubuntu_windows"&gt;ce tutoriel&lt;/a&gt;&lt;span style=""&gt; si vous voulez installer ubuntu sur votre disque dur sans supprimer l'OS Windows.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;L'émulateur peut aussi être exécuté à partir d'un Ubuntu en Live USB persistent (lire &lt;/span&gt;&lt;a style="" href="http://diy-machine.blogspot.com/2010/08/sixaxis-emulator-on-ubuntu-live-usb.html"&gt;ce post&lt;/a&gt;&lt;span style=""&gt;).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;1  Déterminer la bdaddr du sixaxis et la bdaddr de la PS3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Connecter le sixaxis au PC avec un câble usb.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Dans un terminal (alt+F2,  gnome-terminal) :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;sudo apt-get install  libusb-dev&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;wget  http://diyps3controller.googlecode.com/svn/trunk/sixutils/sixaddr.c&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;gcc -o &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;sixaddr &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;sixaddr.c&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt; -lusb&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;sudo ./sixaddr&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;Current Bluetooth master: XX:XX:XX:XX:XX:XX&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;"Current  Bluetooth master" est la bdaddr de la PS3 (la noter).&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;"Current Bluetooth Device Address: " est la bdaddr du sixaxis (la noter).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Déconnecter le câble usb. Le sixaxis devrait s'éteindre.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;2 Modifier la bdaddr du  dongle&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;sudo apt-get install  libdbus-1-dev &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;libglib2.0-dev&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;wget  http://www.kernel.org/pub/linux/bluetooth/bluez-4.63.tar.gz&lt;br /&gt;&lt;br /&gt;tar  xzvf bluez-4.63.tar.gz&lt;br /&gt;&lt;br /&gt;cd bluez-4.63&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;./configure --enable-test&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;(ne pas faire le traditionnel make  install)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;cd test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./bdaddr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Manufacturer:   Cambridge Silicon  Radio (10)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Device  Address: 01:02:03:04:05:06&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;Noter l'adresse (pour pouvoir la rétablir).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./bdaddr  ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;(remplacer ZZ:ZZ:ZZ:ZZ:ZZ:ZZ avec la bdaddr du sixaxis découverte dans l'étape 1).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Déconnecter et reconnecter le dongle.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;./bdaddr&lt;br /&gt;&lt;br /&gt;Manufacturer:    Cambridge Silicon Radio (10)&lt;br /&gt;Device Address: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Vérifier que la bdaddr a changé.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Si l'adresse est bien changée, aller à l'étape 3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sinon&lt;/span&gt;&lt;span style=""&gt;, changer de nouveau la bdaddr:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;sudo ./bdaddr  ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;(remplacer ZZ:ZZ:ZZ:ZZ:ZZ:ZZ avec la bdaddr du sixaxis découverte dans l'étape 1).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Ensuite, essayer un "reset software" à l'aide de la commande suivante:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;sudo hciconfig hci0 reset&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Ceci ne change pas la bdaddr de manière permanente. La modification et le reset software doivent être réexécutés après chaque redémarrage du pc ou chaque rebranchement du dongle.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;A ce moment, il n'y a pas de moyen (connu) de dire si cela va fonctionner ou non. Pour le savoir, continuer simplement le tutoriel.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;3 Compiler le&lt;/span&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style=""&gt; Sixaxis  emulator&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;cd ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get update&lt;br /&gt;&lt;br /&gt;sudo apt-get install  libbluetooth-dev&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; libsdl1.2-dev&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;svn checkout -r 134  http://diyps3controller.googlecode.com/svn/trunk/sixaxis-emu/  diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd  diyps3controller-read-only&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style=""&gt;4 Démarrer le Sixaxis  emulator&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Démarrer le serveur:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./emu &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Si la commande n'est pas lancée avec sudo et que la PS3 est allumée, cela ne fonctionnera pas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Remplacer ZZ:ZZ:ZZ:ZZ:ZZ:ZZ avec la bdaddr de la PS3 (découverte dans l'étape 1).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;La PS3 devrait s'allumer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Si un "reset software" a été réalisé dans l'étape 2, et que le message suivant s'affiche :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;emu: can't connect to control psm: Connection refused&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;alors cela signifie qu'il faut trouver un autre dongle (voir Notes).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Si le message "connected" s'affiche, alors continuer le tutorial.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Dans un autre terminal, démarrer le client:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd ~/diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./emuclient&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Jouer, ou effectuer tout autre action avec la PS3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Appuyer sur Echap pour quitter le client.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;5 Contrôles clavier/souris&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Les contrôles sont faits pour un clavier azerty, cela devrait probablement vous convenir.&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;Il est recommandé de changer les contrôles et de calibrer la souris pour chaque jeu.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Cette section décrit les paramètres qui peuvent être changés dans emuclient.c.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;cd ~/diyps3controller-read-only&lt;br /&gt;&lt;br /&gt;gedit emuclient.c&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;Modifier les contrôles!&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;make&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;N'oubliez pas cette dernière commande après chaque modification de emuclient.c !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Contrôles clavier&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Modifier les contrôles après cette ligne:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;void key(int sym, int down)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Contrôles par défaut:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;right shift = ps&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;e = triangle&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;space = cross&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;left control = circle&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;r = square&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;tab = select&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;backspace = start&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;t = l2&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;k = l1&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;l = r1&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;g = r2&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;left shift = l3&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;f = r3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;&amp;amp; = up&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;é = right&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;" = left&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;' = down&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;q = left stick left&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;z = left stick up&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;s = left stick down&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;d = left stick right&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;esc = quit emuclient&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Quelques touches sont aussi utilisées pour calibrer la souris (voir Contrôles souris).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Contrôles souris&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Les mouvements de la souris sont mappés sur le stick droit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;La zone morte est optimisée pour COD MW2.&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;Elle doit être changée pour chaque jeu (voir DEAD_ZONE au début du fichier).&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;Pour activer le mode de calibration de la zone morte, appuyer sur la touche 0 du pavé numérique (un nouvel appui sur cette même touche pour désactiver le mode).&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;Le mode de calibration applique un mouvement horizontal qui correspond à la valeur courante de la zone morte.&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;Si la position n'est pas stable, diminuer la zone morte en appuyant sur la touche / du pavé numérique jusqu'à ce que la position soit stable.&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;Si la position est stable, augmenter la zone morte en appuyant sur la touche * du pavé numérique jusqu'à la dernière position stable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;La valeur courante de la zone morte est affichée dans le terminal du processus emuclient.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Le multiplicateur par défaut pour les mouvements de la souris est 4 (voir DEFAULT_MULTIPLIER au début du fichier).&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;Les touches +/- du pavé numérique peuvent être utilisées pour augmenter/diminuer le multiplicateur.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;La valeur courante du multiplicateur est affichée dans le terminal du processus emuclient.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Modifier les contrôles après cette ligne:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;void clic(int button, int down)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Contrôles par défaut:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;left button = r1&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;right button  = l1&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;middle button  = triangle&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;wheel up = r2&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;wheel down = l2&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;wheel right button  = square&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;wheel left button  = r3&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;side button  = triangle&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Pour les utilisateurs avancés connaissant la programmation en C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Si vous souhaitez modifier le code pour jouer avec d'autres périphériques d'entrée, vous pourrez trouver de la documentation &lt;/span&gt;&lt;a style="" href="http://www.libsdl.org/cgi/docwiki.cgi/SDL_Event"&gt;ici&lt;/a&gt;&lt;span style=""&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;6 Macros clavier&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Il est possible d'exécuter des &lt;/span&gt;&lt;a style="" href="http://code.google.com/p/diyps3controller/issues/detail?id=9"&gt;macros de clavier&lt;/a&gt;&lt;span style=""&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Un appui sur une touche peut générer une série d'événements, avec certains délais.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Les commandes sont les suivantes :&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;- key down (touche enfoncée)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;- key up (touche relâchée)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;- key press (key down + délai + key up)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;- delay (délai, unité = ms)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Chaque macro doit être définie dans un fichier.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Exemple: macro_example.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Defines the action that triggers the macro execution&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MACRO F1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Performs a keystroke (key down + delay 50ms + key up)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;KEY e&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Sleep 50ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Perform a key down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;KEYDOWN SPACE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Perform a key up&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;KEYUP SPACE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Les lignes qui commencent par # sont des commentaires.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Chaque fichier définissant une macro doit être référencé dans le ficher macros.txt.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Toutes les touches du clavier peuvent générer une macro. La liste complète peut être obtenue dans le fichier macro.c.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;7 Résolution des problèmes / Feedbacks&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;Je partage mon projet gracieusement, merci de bien vouloir me donner un feedback si vous le testez.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Dites-moi si cela fonctionne ou non, et ajoutez en particulier les détails suivants :&lt;/span&gt;&lt;ul style=""&gt;&lt;li&gt;la  distribution Linux&lt;/li&gt;&lt;li&gt;les libraries (si différentes de celles suggérées dans ce tutoriel)&lt;/li&gt;&lt;li&gt;la version hardware de la PS3 (slim, fat 40Gb, fat 60Gb, ...)&lt;/li&gt;&lt;li&gt;la version software de la PS3&lt;br /&gt;&lt;/li&gt;&lt;li&gt;le dongle bluetooth (modèle exact + révision s'il y en a une + résultat de   "hciconfig -a hci0" et "sudo hciconfig hci0 revision")&lt;/li&gt;&lt;li&gt;le hardware du PC (au moins le CPU et la quantité de RAM)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=""&gt;Écrivez cela dans un commentaire à ce post.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;Et si cela ne marche pas, vérifiez d'abord que vous disposez du dernier code source. Ensuite rendez-vous dans la &lt;/span&gt;&lt;a style="" href="http://code.google.com/p/diyps3controller/issues/list"&gt;liste de bugs&lt;/a&gt;&lt;span style=""&gt;, regardez si vos problèmes sont déjà connus, et s'ils ne le sont pas, &lt;/span&gt;&lt;a style="" href="http://code.google.com/p/diyps3controller/issues/entry"&gt;rapportez-les&lt;/a&gt;&lt;span style=""&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4714530824074304891?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4714530824074304891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/tutoriel-sixaxis-emulator.html#comment-form' title='124 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4714530824074304891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4714530824074304891'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/tutoriel-sixaxis-emulator.html' title='Tutoriel : Sixaxis emulator'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>124</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6378962017245195739</id><published>2010-05-04T13:30:00.004+02:00</published><updated>2011-07-07T20:12:38.598+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Sixaxis emulator tutorial</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;This tutorial is deprecated. New tutorial: &lt;/span&gt;&lt;a style="color: rgb(255, 0, 0);" href="http://gimx.fr/forum/viewtopic.php?f=4&amp;amp;t=5"&gt;link&lt;/a&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div onclick="openClose('YOURSPOILERID')" class="spoilertop"&gt; » Oudated content  « &lt;/div&gt;&lt;br /&gt;&lt;div class="spoilermain" id="YOURSPOILERID" style="display: none;"&gt;&lt;br /&gt;&lt;span style=""&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;This tutorial explains how to control a  PS3 with a keyboard and a mouse plugged on a PC running Linux and using a  bluetooth dongle.&lt;br /&gt;&lt;br /&gt;This is possible thanks to the &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;work  of Jim Paris&lt;/a&gt;. I applied &lt;a href="http://diy-machine.blogspot.com/2010/05/working-with-code-of-jim-paris.html"&gt;some modifications&lt;/a&gt; to its source code.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Requirements&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;ubuntu 10.04 Live CD&lt;/a&gt;  (or any other Linux distro if you are enough comfortable with Linux)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;a  sixaxis already used with the target PS3&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;a bluetooth  dongle with a chip that can have its bdaddr (bluetooth device address) changed. Just perform the tutorial to discover if your dongle works.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Notes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Do it at your own risk. I'm not  responsible for any damage you can cause to your PS3 or PC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cheap (a few $) CSR Bluecore4  dongles  on ebay are reported to work. Bluecore4 is the first CSR bluecore chip  that implements EDR (Enhanced Data Rate), so that the keywords to look  for are CSR and EDR.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unplug any other dongle from this PC (or deactivate  them).&lt;br /&gt;&lt;br /&gt;Don't try to use the sixaxis emulator and the sixaxis at the  same time, and restore the bdaddr of the dongle if you don't use it with the sixaxis emulator anymore.&lt;br /&gt;&lt;br /&gt;This tutorial was written running ubuntu  from the live cd (nothing is saved on the hard drive).&lt;br /&gt;&lt;br /&gt;Don't  forget to write down the bdaddr of the PS3 in step 1, so that you won't  need to perform that step again.&lt;br /&gt;&lt;br /&gt;Once step 2 is done, you don't  need to do that step anymore since the bdaddr modification is permanent.&lt;br /&gt;&lt;br /&gt;As  steps 1 &amp;amp; 2 have to be done once, a easy way to launch the sixaxis emulator with a live cd is to write a script for steps 3 &amp;amp; 4.&lt;br /&gt;&lt;br /&gt;Feel  free to install ubuntu on your PC! If you have a Windows OS installed,  you can read &lt;a href="https://help.ubuntu.com/community/WindowsDualBoot"&gt;this  tutorial&lt;/a&gt; if you want to install ubuntu on your hard drive without  erasing the Windows OS.&lt;br /&gt;&lt;br /&gt;Another way to use the sixaxis emulator is to run it from a Ubuntu Live USB Persistent Flash Drive (read &lt;a href="http://diy-machine.blogspot.com/2010/08/sixaxis-emulator-on-ubuntu-live-usb.html"&gt;this post&lt;/a&gt;).&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style=""&gt;1 Discover the bdaddr of the Sixaxis and the bdaddr of  the PS3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Plug the sixaxis to the PC with a usb cable&lt;br /&gt;&lt;br /&gt;In  a terminal (alt+F2, gnome-terminal):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sudo  apt-get install libusb-dev&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;wget  http://diyps3controller.googlecode.com/svn/trunk/sixutils/sixaddr.c&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;gcc -o &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sixaddr &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sixaddr.c&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt; -lusb&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sudo ./sixaddr&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;Current Bluetooth master: XX:XX:XX:XX:XX:XX&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"Current  Bluetooth master" is the bd_addr of the PS3 (write it down).&lt;br /&gt;"Current Bluetooth Device Address: " is the bd_addr of the sixaxis (write it down).&lt;br /&gt;&lt;br /&gt;Unplug  the usb cable. The sixaxis should power off.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;2 Modify the bdaddr of the  dongle&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sudo apt-get install  libdbus-1-dev &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;libglib2.0-dev&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;wget  http://www.kernel.org/pub/linux/bluetooth/bluez-4.63.tar.gz&lt;br /&gt;&lt;br /&gt;tar  xzvf bluez-4.63.tar.gz&lt;br /&gt;&lt;br /&gt;cd bluez-4.63&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:courier new;"&gt;./configure --enable-test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(do not make  install)&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:courier new;"&gt;cd test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./bdaddr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Manufacturer:   Cambridge Silicon  Radio (10)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Device  Address: 01:02:03:04:05:06&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Write it down (so that  it can be restored).&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./bdaddr  ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(replace the ZZ:ZZ:ZZ:ZZ:ZZ:ZZ  with the bdaddr of the Sixaxis dicovered in step 1).&lt;br /&gt;&lt;br /&gt;Unplug and  replug the dongle.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;./bdaddr&lt;br /&gt;&lt;br /&gt;Manufacturer:    Cambridge Silicon Radio (10)&lt;br /&gt;Device Address: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make  sure the bdaddr has been changed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;If it is changed: go to step 3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;If it is not&lt;/span&gt;, change the bdaddr again:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span&gt;sudo ./bdaddr  ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(replace the ZZ:ZZ:ZZ:ZZ:ZZ:ZZ  with the bdaddr of the Sixaxis dicovered in step 1).&lt;br /&gt;&lt;br /&gt;Then, try to perform a "soft reset" with the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span&gt;sudo hciconfig hci0 reset&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This doesn't change the bdaddr permanently. Modification and soft reset have to be done again after each time the pc is restarted or the dongle is replugged.&lt;br /&gt;&lt;br /&gt;At this step, there is no (known) way to tell if it will work. To know that, just try to perform following parts.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style=""&gt;3 Build the sixaxis emulator server and client&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a terminal (alt+F2, gnome-terminal):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo apt-get update&lt;br /&gt;&lt;br /&gt;sudo apt-get install libbluetooth-dev&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt; libsdl1.2-dev&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt; subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;svn checkout -r 134 http://diyps3controller.googlecode.com/svn/trunk/sixaxis-emu/ diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd diyps3controller-read-only&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;&lt;span style=""&gt;4 Launch the sixaxis server &amp;amp; client&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Launch the server:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo ./emu &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the command is executed without sudo and the PS3 is already started, it will not work.&lt;br /&gt;&lt;br /&gt;Replace ZZ:ZZ:ZZ:ZZ:ZZ:ZZ with the bdaddr of the PS3.&lt;br /&gt;&lt;br /&gt;The PS3 should power on.&lt;br /&gt;&lt;br /&gt;If you performed a "soft reset" at step 2, and if you get this error message:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;emu: can't connect to control psm: Connection refused&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;this means you have to try another dongle (see Notes).&lt;br /&gt;&lt;br /&gt;If you get a "connected" message, then continue the tutorial.&lt;br /&gt;&lt;br /&gt;In another terminal:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd ~/diyps3controller-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;./emuclient&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Play or do whatever you want with your PS3.&lt;br /&gt;&lt;br /&gt;Press Escape to quit the client.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;5 Custom mappings for mouse &amp;amp; keyboard&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Most of you probably want to change the mappings, since I'm using an azerty keyboard.&lt;br /&gt;It is recommended to change the mappings and to calibrate the mouse for each game.&lt;br /&gt;&lt;br /&gt;This section describes the parameters that can be changed in emuclient.c.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;cd ~/diyps3controller-read-only&lt;br /&gt;&lt;br /&gt;gedit emuclient.c&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Modify controls!&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don't forget this last command after each modification of emuclient.c!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Keyboard controls&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Modify the controls after this line:&lt;br /&gt;&lt;br /&gt;void key(int sym, int down)&lt;br /&gt;&lt;br /&gt;Default controls:&lt;br /&gt;&lt;br /&gt;right shift = ps&lt;br /&gt;e = triangle&lt;br /&gt;space = cross&lt;br /&gt;left control = circle&lt;br /&gt;r = square&lt;br /&gt;tab = select&lt;br /&gt;backspace = start&lt;br /&gt;t = l2&lt;br /&gt;k = l1&lt;br /&gt;l = r1&lt;br /&gt;g = r2&lt;br /&gt;left shift = l3&lt;br /&gt;f = r3&lt;br /&gt;&lt;br /&gt;&amp;amp; = up&lt;br /&gt;é = right&lt;br /&gt;" = left&lt;br /&gt;' = down&lt;br /&gt;&lt;br /&gt;q = left stick left&lt;br /&gt;z = left stick up&lt;br /&gt;s = left stick down&lt;br /&gt;d = left stick right&lt;br /&gt;&lt;br /&gt;esc = quit emuclient&lt;br /&gt;&lt;br /&gt;Some keys are used to calibrate the mouse movements (see Mouse controls).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Mouse controls&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The mouse movements are mapped to right stick.&lt;br /&gt;&lt;br /&gt;The dead zone is optimized for COD MW2.&lt;br /&gt;This has to be changed depending  on the game (see DEAD_ZONE at the beginning of the file).&lt;br /&gt;To enable calibration mode for the dead zone, press keypad 0 (keypad 0 again to disable).&lt;br /&gt;The calibration mode applies an horizontal move movement that corresponds to the current dead zone value.&lt;br /&gt;If the position is not stable, decrease the dead zone (keypad /) until the position is stable.&lt;br /&gt;If the position is stable, increase the dead zone  (keypad *) until last position that is stable.&lt;br /&gt;&lt;br /&gt;The current value of the dead zone is displayed in the emuclient terminal.&lt;br /&gt;&lt;br /&gt;The default multiplier for mouse movements is 4 (see DEFAULT_MULTIPLIER at the beginning of the file).&lt;br /&gt;Keypad +/- can be used to increase/decrease (+/-0.25) the multiplier.&lt;br /&gt;&lt;br /&gt;The current value of the multiplier is displayed in the emuclient terminal.&lt;br /&gt;&lt;br /&gt;Modify the controls after this line:&lt;br /&gt;&lt;br /&gt;void clic(int button, int down)&lt;br /&gt;&lt;br /&gt;Default controls:&lt;br /&gt;&lt;br /&gt;left button = r1&lt;br /&gt;right button  = l1&lt;br /&gt;middle button  = triangle&lt;br /&gt;wheel up = r2&lt;br /&gt;wheel down = l2&lt;br /&gt;wheel right button  = square&lt;br /&gt;wheel left button  = r3&lt;br /&gt;side button  = triangle&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;For advanced user that know C programming&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to modify the code so as to play with other input devices, you will find documentation &lt;a href="http://www.libsdl.org/cgi/docwiki.cgi/SDL_Event"&gt;there&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;6 Keyboard macros&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's possible to configure &lt;a href="http://code.google.com/p/diyps3controller/issues/detail?id=9"&gt;keyboard macros&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A key press will generate a series of events, with timing conditions.&lt;br /&gt;&lt;br /&gt;Commands are the following:&lt;br /&gt;- key down&lt;br /&gt;- key up&lt;br /&gt;- key press (= key down + delay + key up)&lt;br /&gt;- delay (unit = ms)&lt;br /&gt;&lt;br /&gt;Each macro has to be defined in a file.&lt;br /&gt;&lt;br /&gt;Example: macro_example.txt&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Defines the action that triggers the macro execution&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;MACRO F1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Performs a keystroke (key down + delay 50ms + key up)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEY e&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key down&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYDOWN SPACE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;DELAY 50&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;#Perform a key up&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;KEYUP SPACE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lines beginning with # are comments.&lt;br /&gt;&lt;br /&gt;Each macro file has to be referenced in the macros.txt file.&lt;br /&gt;&lt;br /&gt;All keys of the keyboard can trigger a macro. The complete list can be found in macro.c.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;7 Troubleshooting / Feedback&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;div class="post-header"&gt;  &lt;/div&gt;  I'm sharing my project &lt;span style="font-weight: bold;"&gt;for free&lt;/span&gt;, so please give me a &lt;span style="font-weight: bold;"&gt;feedback &lt;/span&gt;if you test(ed) it.&lt;br /&gt;&lt;br /&gt;Tell me if it works or doesn't work, and especially add the following details:&lt;ul&gt;&lt;li&gt;the Linux distribution&lt;/li&gt;&lt;li&gt;the libraries (if different from those suggested in the tutorials)&lt;/li&gt;&lt;li&gt;the PS3 hardware version (slim, fat 40Gb, fat 60Gb, ...)&lt;/li&gt;&lt;li&gt;the PS3 firmware version&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the  bluetooth dongle (exact model + revision if there is  one + output of  "hciconfig -a hci0" and "sudo hciconfig hci0 revision")&lt;/li&gt;&lt;li&gt;the hardware of the PC (at least the CPU and the amount of RAM)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Report that in commentary to this post.&lt;br /&gt;&lt;br /&gt;And if it doesn't work, first verify if you have the latest source code. Then look at &lt;a href="http://code.google.com/p/diyps3controller/issues/list"&gt;the bug list&lt;/a&gt;, see if your problems are already known, and if it's not, &lt;a href="http://code.google.com/p/diyps3controller/issues/entry"&gt;report them&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6378962017245195739?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6378962017245195739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixaxis-emulator-tutorial.html#comment-form' title='100 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6378962017245195739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6378962017245195739'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/sixaxis-emulator-tutorial.html' title='Sixaxis emulator tutorial'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>100</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-4952357520232130238</id><published>2010-05-04T11:02:00.000+02:00</published><updated>2010-05-05T00:32:19.166+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Working with the C code of Jim Paris</title><content type='html'>After having tested the hidemulator python code, I decided to go further with the C code of Jim Paris.&lt;br /&gt;&lt;br /&gt;This code produces two executable files:&lt;br /&gt;- a server, that interfaces with the PS3, and that maintains the bluetooth connection&lt;br /&gt;- a client, that interfaces with peripherals thanks to the SDL library, and that sends controls to the server&lt;br /&gt;&lt;br /&gt;Pros:&lt;br /&gt;- no need to interrupt the bluetooth connection when exiting the client =&gt; no need to restart the PS3 =&gt; easier to test&lt;br /&gt;- no need to install python libraries&lt;br /&gt;- better performance of C code over python&lt;br /&gt;- client/server architecture allows developing other clients (imagine a mobile phone client!)&lt;br /&gt;&lt;br /&gt;Cons:&lt;br /&gt;- less portable than python code&lt;br /&gt;- I already have strong C code knowledge, so that I'm not learning something new ;-)&lt;br /&gt;&lt;br /&gt;I did the following modifications to the server:&lt;br /&gt;- send a report immediately after receiving a command from a client&lt;br /&gt;- send a report if no command was received during 1 second&lt;br /&gt;&lt;br /&gt;And to the client:&lt;br /&gt;- poll for events each 10ms, and merge all received events (a single command is sent to the PS3)&lt;br /&gt;- grab raw input from the mouse (i.e. relative position), and constrain the mouse into the window&lt;br /&gt;- custom controls for mouse and keyboard (to play fps games)&lt;br /&gt;- on-the-fly modifiable multiplier for mouse movements (to increase/decrease sensibility)&lt;br /&gt;&lt;br /&gt;Remaining work:&lt;br /&gt;- &lt;strike&gt;scroll up/down generates two events (SDL_MOUSEBUTTONDOWN &amp;amp; SDL_MOUSEBUTTONUP) that should not be merged&lt;/strike&gt;&lt;br /&gt;- &lt;strike&gt;write a tutorial&lt;/strike&gt;&lt;br /&gt;- ...&lt;br /&gt;- integration testing = play! ;-)&lt;br /&gt;&lt;br /&gt;Code is available &lt;a href="http://code.google.com/p/diyps3controller/"&gt;there&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-4952357520232130238?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/4952357520232130238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/working-with-code-of-jim-paris.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4952357520232130238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/4952357520232130238'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/working-with-code-of-jim-paris.html' title='Working with the C code of Jim Paris'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-594934119480653628</id><published>2010-05-01T14:41:00.000+02:00</published><updated>2010-07-04T14:18:50.862+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>Hidemulator Tutorial</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;Introduction&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;This tutorial explains how to control a PS3 with a keyboard and a mouse plugged on a PC running Linux and using a bluetooth dongle.&lt;br /&gt;&lt;br /&gt;This is possible thanks to the &lt;a href="http://code.google.com/p/hidemulator/"&gt;hidemulator&lt;/a&gt; (derived from the &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;work of Jim Paris&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;For gaming purposes, I suggest the &lt;/span&gt;&lt;a style="font-weight: bold; color: rgb(255, 0, 0);" href="http://diy-machine.blogspot.com/2010/05/sixaxis-emulator-tutorial.html"&gt;sixaxis emulator tutorial&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt; instead. The hidemulator is not optimized for games.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;br /&gt;Requirements&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;ubuntu 10.04 Live CD&lt;/a&gt; (or any other Linux distro if you are enough comfortable with Linux)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;a sixaxis already used with the target PS3&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;a bluetooth dongle with a chip from one of these manufacturers: Ericsson, &lt;a href="http://diy-machine.blogspot.com/2010/05/compatible-bluetooth-dongles.html"&gt;Cambridge Silicon Radio (CSR)&lt;/a&gt;, Texas  Instruments  (TI), Zeevo or ST Microelectronics (ST)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;There are cheap (a few $) CSR Bluecore4 dongles on ebay. &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;These dongles will probably work.&lt;/u&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;See &lt;a href="http://diy-machine.blogspot.com/2010/06/about-cheap-csr-dongles.html"&gt;that post&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Notes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Do it at your own risk. I'm not responsible for any damage you can cause to your PS3 or PC.&lt;br /&gt;&lt;br /&gt;The PS3 has to be started using the hidemulator (if hidemulator is stopped, the PS3 has to be shut down and restarted with the hidemulator to get it work again).&lt;br /&gt;&lt;br /&gt;Unplug any other dongle from this PC (or deactivate them).&lt;br /&gt;&lt;br /&gt;Don't try to use the hidemulator and the sixaxis at the same time, and restore the bdaddr of the dongle if you don't use it with hidemulator anymore.&lt;br /&gt;&lt;br /&gt;This tutorial was written running ubuntu from the live cd (nothing is saved on the hard drive).&lt;br /&gt;&lt;br /&gt;Don't forget to write down the bdaddr of the PS3 in step 1, so that you won't need to perform that step again.&lt;br /&gt;&lt;br /&gt;Once step 2 is done, you don't need to do that step anymore since the bdaddr modification is permanent.&lt;br /&gt;&lt;br /&gt;As steps 1 &amp;amp; 2 have to be done once, a easy way to launch the hidemulator with a live cd is to write a script for steps 3 &amp;amp; 4.&lt;br /&gt;&lt;br /&gt;Feel free to install ubuntu on your PC! If you have a Windows OS installed, you can read &lt;a href="https://help.ubuntu.com/community/WindowsDualBoot"&gt;this tutorial&lt;/a&gt; if you want to install ubuntu on your hard drive without erasing the Windows OS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;1 Discover the bdaddr of the Sixaxis and the bdaddr of the PS3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Plug the sixaxis to the PC with a usb cable&lt;br /&gt;&lt;br /&gt;In a terminal (alt+F2, gnome-terminal):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sudo apt-get install libusb-dev&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;wget  http://diyps3controller.googlecode.com/svn/trunk/sixutils/sixaddr.c&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;gcc -o &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sixaddr &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sixaddr.c&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt; -lusb&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sudo ./sixaddr&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;Current Bluetooth master: XX:XX:XX:XX:XX:XX&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"Current  Bluetooth master" is the bd_addr of the PS3 (write it down).&lt;br /&gt;"Current Bluetooth Device Address: " is the bd_addr of the sixaxis (write it down).&lt;br /&gt;&lt;br /&gt;Unplug the usb cable. Sixaxis should power off.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;2 Modify the bdaddr of the dongle&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;sudo apt-get install libdbus-1-dev libglib2.0-dev&lt;br /&gt;&lt;br /&gt;wget http://www.kernel.org/pub/linux/bluetooth/bluez-4.63.tar.gz&lt;br /&gt;&lt;br /&gt;tar xzvf bluez-4.63.tar.gz&lt;br /&gt;&lt;br /&gt;cd bluez-4.63&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:courier new;"&gt;./configure --enable-test&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(do not make install)&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:courier new;"&gt;cd test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./bdaddr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Manufacturer:   Cambridge Silicon Radio (10)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Device Address: 01:02:03:04:05:06&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Write it down (so that it can be restored).&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo ./bdaddr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(replace the ZZ:ZZ:ZZ:ZZ:ZZ:ZZ with the bdaddr of the Sixaxis dicovered in step 1).&lt;br /&gt;&lt;br /&gt;Unplug and replug the dongle.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:100%;"  &gt;./bdaddr&lt;br /&gt;&lt;br /&gt;Manufacturer:   Cambridge Silicon Radio (10)&lt;br /&gt;Device Address: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make sure the bdaddr has been changed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;3 Install python libraries&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note for users that don't run ubuntu from the live cd: uninstall older versions of PyBluez and Pygame.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo apt-get install python2.6-dev&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt; libbluetooth-dev &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;libsdl1.2-dev&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;&lt;br /&gt;cd ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;wget http://pybluez.googlecode.com/files/PyBluez-0.18.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;tar xzvf PyBluez-0.18.tar.gz&lt;br /&gt;&lt;br /&gt;cd &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;PyBluez-0.18&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo python setup.py install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;wget http://www.pygame.org/ftp/pygame-1.9.1release.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;tar xzvf pygame-1.9.1release.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd pygame-1.9.1release&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo python setup.py&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;4 Run the hidemulator&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;sudo apt-get install subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;svn checkout http://hidemulator.googlecode.com/svn/trunk/ hidemulator-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;cd hidemulator-read-only&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;chmod +x pair.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;" &gt;gedit pair.py&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Line 28, insert the bd_addr of the PS3 (discovered in step 1) between the quotes.&lt;br /&gt;&lt;br /&gt;Make sure the PS3 is powered off.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:courier new;"&gt;./pair.py&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The PS3 should power on!!!&lt;br /&gt;&lt;br /&gt;To quit the hidemulator, just press Escape.&lt;br /&gt;&lt;br /&gt;Note that the PS3 has to be started using the hidemulator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-594934119480653628?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/594934119480653628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/05/hidemulator-tutorial.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/594934119480653628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/594934119480653628'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/05/hidemulator-tutorial.html' title='Hidemulator Tutorial'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7981524466901001366</id><published>2010-04-30T23:47:00.000+02:00</published><updated>2010-05-03T16:50:03.908+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>I am a Sixaxis, I am a Sixaxis, I am a...</title><content type='html'>I managed to control my PS3 from my PC, with the method described at &lt;a href="http://forums.ps2dev.org/viewtopic.php?t=11334"&gt;forums.ps2dev.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It only works with one of the 3 dongle I tested.&lt;br /&gt;&lt;br /&gt;All are able to power up the PS3, but connection is aborted with the 2 dongles that can't have their bluetooth device address changed permanently.&lt;br /&gt;&lt;br /&gt;From my desktop pc that is located in another room,  I pressed space key (cross button) to select the user, and right and left keys to navigate in the menu :-)&lt;br /&gt;&lt;br /&gt;Next step: install a linux distro on a laptop so as to make intensive tests in front of my PS3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7981524466901001366?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7981524466901001366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/04/i-am-sixaxis-i-am-sixaxis-i-am.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7981524466901001366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7981524466901001366'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/04/i-am-sixaxis-i-am-sixaxis-i-am.html' title='I am a Sixaxis, I am a Sixaxis, I am a...'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-794519149609774219</id><published>2010-04-30T15:25:00.000+02:00</published><updated>2010-05-03T16:50:17.646+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>PC as Sixaxis joystick - tests</title><content type='html'>On a Linux PC, I tried to &lt;a href="http://www.siddharthabbineni.com/tech/hardware/change-bluetooth-device-mac-address.html"&gt;modify the bluetooth device address&lt;/a&gt; of some dongles:&lt;br /&gt;&lt;br /&gt;- COM1 - broadcom chip - modification ok, but not persistent&lt;br /&gt;- Linyx - ISSC chip - modification ok, but not persistent&lt;br /&gt;- Cellink - CSR chip - modification ok &amp;amp; persistent&lt;br /&gt;&lt;br /&gt;"Persistent" means that the modification is permanent, even after unplugging the dongle. These results are consistent with infos given &lt;a href="http://meinews.niuz.biz/bluetooth-t395305.html"&gt;there&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I didn't found out a way to modify this address in Windows (temporarily or permanently).&lt;br /&gt;&lt;br /&gt;I discovered that pybluez requires the widcomm bluetooth stack to work with l2cap in Windows. ISSC and CSR chips are not supported (anymore) by the widcomm stack. Only my COM1 dongle can work with the widcomm bluetooth stack (property of broadcom company).&lt;br /&gt;&lt;br /&gt;As a result I can't use any of these dongles with my hcpc (which runs Windows 7). I could install Linux on it, but I have a TV scheduler installed, so that it would not be possible to control the PS3 and record a TV show at the same time :-(&lt;br /&gt;&lt;br /&gt;I have to find another bluetooth dongle, whose bdaddr can be permanently modified,  and that works with widcomm stack...&lt;br /&gt;&lt;br /&gt;M&lt;span class="clickable" onclick="'redirectWR(event,"&gt;&lt;span class="hw"&gt;eanwhile&lt;/span&gt;&lt;/span&gt;, I will try the hidemulator with another PC running Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-794519149609774219?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/794519149609774219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/04/pc-as-sixaxis-joystick-tests.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/794519149609774219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/794519149609774219'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/04/pc-as-sixaxis-joystick-tests.html' title='PC as Sixaxis joystick - tests'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6483924911709018343</id><published>2010-04-29T10:47:00.000+02:00</published><updated>2010-07-22T11:56:26.314+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sixaxis emulator'/><title type='text'>PC as Sixaxis joystick</title><content type='html'>Asking google about the "sixaxis report frequency", I got the answer on &lt;a href="http://forums.ps2dev.org/viewtopic.php?t=11334"&gt;that forum page&lt;/a&gt; (seems to be down, but it is still in google cache: &lt;a href="http://webcache.googleusercontent.com/search?hl=en&amp;amp;client=firefox-a&amp;amp;hs=l05&amp;amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;amp;q=cache%3Ahttp%3A%2F%2Fforums.ps2dev.org%2Fviewtopic.php%3Ft%3D11334&amp;amp;btnG=Search"&gt;page1&lt;/a&gt; &lt;a href="http://webcache.googleusercontent.com/search?q=cache:jqqJl0LaZm4J:forums.ps2dev.org/viewtopic.php%3Fp%3D84609%26sid%3D1ec3bbb960301e5866834f378b321259+00:23:06:8A:22:7B&amp;amp;cd=1&amp;amp;hl=fr&amp;amp;ct=clnk&amp;amp;gl=fr&amp;amp;client=firefox-a"&gt;page2&lt;/a&gt;) on which it is said that there is about 10ms between reports. That matches the mouse frequency in my project (100Hz), so that if the PS3 does not take more than 100 reports per second (to be tested), there is no need to  increase it (ps/2 mouse maximum frequency is 200Hz).&lt;br /&gt;&lt;br /&gt;This information is less interesting than the forum page itself. It is about using a PC to emulate a sixaxis via &lt;span class="postbody"&gt;Bluetooth! Using a bluetooth dongle, the PC connects to the PS3 using the &lt;/span&gt;&lt;span class="postbody"&gt;sixaxis's bluetooth device address. As I have a hcpc near my PS3, and want to use the same wireless keyboard+mouse to control both, I will definitely give it a try!&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://code.google.com/p/hidemulator/"&gt;hidemulator googlecode from Brandon&lt;/a&gt;&lt;/span&gt;&lt;span class="postbody"&gt; (python code)&lt;br /&gt;- &lt;a href="https://jim.sh/svn/jim/devl/playstation/ps3/sixaxis/bt/emu/"&gt;source code from Jim Paris&lt;/a&gt; (C code)&lt;br /&gt;- &lt;a href="http://www.siddharthabbineni.com/tech/hardware/change-bluetooth-device-mac-address.html"&gt;how to change bluetooth device mac address&lt;/a&gt; (Linux)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="postbody"&gt;hidemulator should work with both Linux &amp;amp; Windows (to be tested).&lt;br /&gt;&lt;br /&gt;Software to install:&lt;br /&gt;- &lt;a href="http://www.python.org/download/"&gt;python 2.6&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="postbody"&gt;- &lt;a href="http://code.google.com/p/pybluez/downloads/list"&gt;pybluez&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="postbody"&gt;- &lt;a href="http://www.pygame.org/download.shtml"&gt;pygame&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;pygame is used to get &lt;a href="http://www.pygame.org/docs/ref/event.html"&gt;input events&lt;/a&gt; from mouse and keyboard. &lt;a href="http://www.pygame.org/docs/ref/joystick.html"&gt;Joysticks&lt;/a&gt; could be used too.&lt;br /&gt;&lt;br /&gt;I think pygame events are get from the OS (mixing all input devices: ps/2, hid...), and therefore may have been modified (accelerated mouse movements). It would probably be better to get raw data from the hid device. This can be done thanks to &lt;a href="http://libhid.alioth.debian.org/"&gt;libhid &lt;/a&gt;that supports python.&lt;br /&gt;&lt;/span&gt;&lt;span class="postbody"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6483924911709018343?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6483924911709018343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/04/pc-as-sixaxis-joystick.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6483924911709018343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6483924911709018343'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/04/pc-as-sixaxis-joystick.html' title='PC as Sixaxis joystick'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1655610124284551023</id><published>2010-04-28T21:10:00.001+02:00</published><updated>2010-05-03T16:51:50.118+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>Small wiki available</title><content type='html'>&lt;a href="http://code.google.com/p/diyps3controller/wiki/GettingStarted"&gt;http://code.google.com/p/diyps3controller/wiki/GettingStarted&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It explains a simple way to install developpement tools for this project.&lt;br /&gt;&lt;br /&gt;Checkout and build are explained too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1655610124284551023?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1655610124284551023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/04/small-wiki-available.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1655610124284551023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1655610124284551023'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/04/small-wiki-available.html' title='Small wiki available'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6550530078711281061</id><published>2010-04-28T20:44:00.000+02:00</published><updated>2010-05-03T16:52:00.063+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>Project now works with bumble-b too!</title><content type='html'>&lt;a href="http://fletchtronics.net/bumble-b"&gt;bumble-b&lt;/a&gt; is a mini usb developpement kit with at90usb162 microcontroller. It has a low price - 15$ - and price is digressive if you buy 5 (14$) or 10 units (13$).&lt;br /&gt;&lt;br /&gt;The project now works on that board thanks to small updates of the code:&lt;br /&gt;- port D is used instead of port E, which does not exist with at90usb162&lt;br /&gt;- the mouse is reset (=initialized) in the main function, as a last initialization step (avoids a deadlock which seems to occur more with at90usb162 than at90usb1286)&lt;br /&gt;&lt;br /&gt;The only modification that remains to build the project for the bumble-b is located in the Makefile: the MCU value has to be set to "at90usb162".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6550530078711281061?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6550530078711281061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/04/project-now-works-with-bumble-b-too.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6550530078711281061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6550530078711281061'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/04/project-now-works-with-bumble-b-too.html' title='Project now works with bumble-b too!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-5411113332696856201</id><published>2010-03-26T09:10:00.000+01:00</published><updated>2010-05-03T16:52:09.427+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>What's next?</title><content type='html'>I managed to convert ps/2 devices (mouse +  keyboard) to a ps3 controller (see older posts, from the oldest one).&lt;br /&gt;&lt;br /&gt;Now, I want to use following devices with my PS3:&lt;br /&gt;&lt;br /&gt;1- wireless usb keyboard + mouse (Logitech EX100)&lt;br /&gt;2- usb mouse (Logitech G5) + ps/2 keyboard&lt;br /&gt;3- usb joystick (Saitek ST200)&lt;br /&gt;&lt;br /&gt;More ideas:&lt;br /&gt;- add a mouse and a keyboard in the same usb hid device (so that mouse and keyboard can be used as mouse and keyboard too)&lt;br /&gt;- control a pc with the same mouse and keyboard&lt;br /&gt;- convert multiple usb devices to a single ps3 controller&lt;br /&gt;&lt;br /&gt;=&gt; I'm now planning to convert usb hid devices to a ps3 controller.&lt;br /&gt;&lt;br /&gt;A first idea is to:&lt;br /&gt;- use the v-usb framework for the usb device (ps3 controller)&lt;br /&gt;- use the LUFA framework for the usb host (to get data from hid devices)&lt;br /&gt;&lt;br /&gt;BUT Teensy++ is based on an AT90USB1286 chip which only supports usb device mode.&lt;br /&gt;&lt;br /&gt;Therefore:&lt;br /&gt;- I have to find an AT90USB647- or AT90USB1287-based board such as AT90USBKEY&lt;br /&gt;OR&lt;br /&gt;- I have to work with a software-implemented usb host stack such as &lt;a href="http://instruct1.cit.cornell.edu/courses/eceprojectsland/STUDENTPROJ/2007to2008/blh36_cdl28_dct23/index.html"&gt;that one.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm not sure that it will work on a single chip (see discussion &lt;a href="http://groups.google.com/group/myusb-support-list/browse_thread/thread/ab7c1ce6701292b9?fwc=1"&gt;there&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-5411113332696856201?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/5411113332696856201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/03/whats-next.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5411113332696856201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/5411113332696856201'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/03/whats-next.html' title='What&apos;s next?'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-7020928193572202067</id><published>2010-03-25T00:57:00.000+01:00</published><updated>2010-05-03T16:52:17.923+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>Source code finally available!</title><content type='html'>I released the source code.&lt;br /&gt;See &lt;a href="http://code.google.com/p/diyps3controller/"&gt;http://code.google.com/p/diyps3controller/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It works great with COD MW2.&lt;br /&gt;&lt;br /&gt;Farcry 2 code is deactivated with preprocessor conditions.&lt;br /&gt;&lt;br /&gt;I probably will not work anymore on this ps/2 keyboard and mouse controller version, as I am planning to build a usb wireless keyboard and mouse controller...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-7020928193572202067?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/7020928193572202067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/03/source-code-finally-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7020928193572202067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/7020928193572202067'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/03/source-code-finally-available.html' title='Source code finally available!'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-8367096313704405758</id><published>2010-03-25T00:51:00.000+01:00</published><updated>2011-04-13T12:18:37.203+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mouse translation'/><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>Mouse to joystick translation - Call Of Duty Modern Warfare 2</title><content type='html'>COD MW2 has a totally different behavior regarding the position to rotation speed relation.&lt;br /&gt;&lt;br /&gt;Following chart gives the rotation speed (degrees per second) given the absolute position of z.&lt;br /&gt;The joystick sensibility is set to the highest position.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S8TFjVMAgFI/AAAAAAAAAB4/BLZ8O7R58ys/s1600/Sans+titre.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 226px;" src="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S8TFjVMAgFI/AAAAAAAAAB4/BLZ8O7R58ys/s320/Sans+titre.jpg" alt="" id="BLOGGER_PHOTO_ID_5459705859053486162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The rotation speed is continuous and goes from low to very high values, so that the mouse to joystick translation is very easy to do: a simple x3 multiplier is sufficient.&lt;br /&gt;&lt;br /&gt;The acceleration looks like the mouse acceleration that is performed under windows xp (described &lt;a href="http://www.microsoft.com/whdc/archive/pointer-bal.mspx?pf=true#point2"&gt;there&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-8367096313704405758?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/8367096313704405758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/03/mouse-to-joystick-translation-cod-mw2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8367096313704405758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/8367096313704405758'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/03/mouse-to-joystick-translation-cod-mw2.html' title='Mouse to joystick translation - Call Of Duty Modern Warfare 2'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S8TFjVMAgFI/AAAAAAAAAB4/BLZ8O7R58ys/s72-c/Sans+titre.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-1710369695206863572</id><published>2010-03-10T09:17:00.000+01:00</published><updated>2011-04-13T12:18:16.065+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mouse translation'/><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>Mouse to joystick translation - FARCRY2 - part 2</title><content type='html'>It was explained in part 1 that absolute positions 1 to 82 give a linear rotation speed (from 0 to about 50°/s), and position 83 a high rotation speed (450°/s for z, 200°/s for rz).&lt;br /&gt;&lt;br /&gt;Following chart gives the rotation speed for a given &lt;span style="font-style: italic;"&gt;virtual position&lt;/span&gt; of z that goes from 0 to 645. That gives a linear speed from 0 to 450°/s. Virtual positions from 83 to 644 have to be created.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/S5djuONd_FI/AAAAAAAAAA8/W2CP-N5nqXU/s1600-h/graph1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 182px;" src="http://3.bp.blogspot.com/_ENr8Vt3Qkqg/S5djuONd_FI/AAAAAAAAAA8/W2CP-N5nqXU/s320/graph1.JPG" alt="" id="BLOGGER_PHOTO_ID_5446931920067624018" border="0" /&gt;&lt;/a&gt;Blue dots are speeds that are achieved by real positions with a standard ps3 controller.&lt;br /&gt;Red line is obtained with a simple linear regression.&lt;br /&gt;&lt;br /&gt;Each mouse packet applies a rotation speed over a time that is the inverse of the mouse frequency (for ex 100Hz =&amp;gt; 10ms).&lt;br /&gt;&lt;br /&gt;A rotation speed for a virtual position between 83 and 644 may be generated "in average".&lt;br /&gt;&lt;br /&gt;For example, if a speed of 450°/s is applied (virtual position 645=real position 83) over 5ms, and 0°/s is applied (real position 0) over 5ms, the average speed that is obtained over 10ms is 225°/s (virtual position 321).&lt;br /&gt;&lt;br /&gt;0+83 makes crappy movements, that technique actually works great with 82+83&lt;br /&gt;&lt;br /&gt;I realized afterward that it is similar to PWM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-1710369695206863572?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/1710369695206863572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/03/mouse-to-joystick-translation-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1710369695206863572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/1710369695206863572'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/03/mouse-to-joystick-translation-part-2.html' title='Mouse to joystick translation - FARCRY2 - part 2'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ENr8Vt3Qkqg/S5djuONd_FI/AAAAAAAAAA8/W2CP-N5nqXU/s72-c/graph1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-555577509468676183</id><published>2010-02-17T23:29:00.000+01:00</published><updated>2011-04-13T12:17:54.925+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mouse translation'/><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>Mouse to joystick translation - FARCRY2 - part 1</title><content type='html'>(x,y) speed of the mouse has to be mapped to a (z,rz) rotation speed.&lt;br /&gt;&lt;br /&gt;z and rz are in the range [0..255] with [83..173] as dead zone (128 is  the center).&lt;br /&gt;&lt;br /&gt;Following chart gives the rotation speed (degrees per second) given the absolute position of z.&lt;br /&gt;&lt;br /&gt;This probably may change with the game (values are for Farcry).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S3xv6UTGfXI/AAAAAAAAAAs/jctvpB3m8YU/s1600-h/Capture.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 209px;" src="http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S3xv6UTGfXI/AAAAAAAAAAs/jctvpB3m8YU/s320/Capture.png" alt="" id="BLOGGER_PHOTO_ID_5439345497628638578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is quite linear except for the max position (83). The max speed that is in the linear area  (position 82, about 50°/s) is not fast enough to only use the linear area. The speed of the max position is so fast (about 450°/s) that it shouldn't be used over a long time.&lt;br /&gt;&lt;br /&gt;There is the same behavior for rz, except that the speed of the max position is about 200°/s).&lt;br /&gt;&lt;br /&gt;A heuristic has to be found to trigger the max position use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-555577509468676183?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/555577509468676183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/02/joystick-calibration-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/555577509468676183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/555577509468676183'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/02/joystick-calibration-part-1.html' title='Mouse to joystick translation - FARCRY2 - part 1'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S3xv6UTGfXI/AAAAAAAAAAs/jctvpB3m8YU/s72-c/Capture.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6078548544149602311.post-6727533028536444572</id><published>2010-02-17T20:55:00.000+01:00</published><updated>2010-05-03T16:52:48.098+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS/2 Mouse/Keyboard to PS3 controller'/><title type='text'>The HID descriptor</title><content type='html'>The HID descriptor defines:&lt;br /&gt;- 4 axis (x, y, z, rz)&lt;br /&gt;- 1 hat switch&lt;br /&gt;- 12 buttons&lt;br /&gt;&lt;br /&gt;There are 13 buttons on a ps3 controller.&lt;br /&gt;PS3 button is not very useful, omitting it allows avoiding padding.&lt;br /&gt;&lt;br /&gt;/* Usage Page (Generic Desktop)*/ 0x05, 0x01,&lt;br /&gt;/*Usage (Joystick)*/ 0x09, 0x04,&lt;br /&gt;/*Collection (Application)*/ 0xA1, 0x01,&lt;br /&gt;   /*Collection (Logical)*/ 0xA1, 0x02,&lt;br /&gt;       /*Logical Minimum (0)*/ 0x15, 0x00,&lt;br /&gt;       /*Logical Maximum (255)*/ 0x26, 0xFF, 0x00,&lt;br /&gt;       /*Physical Minimum (0)*/ 0x35, 0x00,&lt;br /&gt;       /*Physical Maximum (255)*/ 0x46, 0xFF, 0x00,&lt;br /&gt;       /*Report Size (8)*/ 0x75, 0x08,&lt;br /&gt;       /*Report Count (4)*/ 0x95, 0x04,&lt;br /&gt;       /*Usage (X)*/ 0x09, 0x30,&lt;br /&gt;       /*Usage (Y)*/ 0x09, 0x31,&lt;br /&gt;       /*Usage (Z)*/ 0x09, 0x32,&lt;br /&gt;       /*Usage (Rz)*/ 0x09, 0x35,&lt;br /&gt;       /*Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)*/ 0x81, 0x02,&lt;br /&gt;       /*Logical Maximum (7)*/ 0x25, 0x07,&lt;br /&gt;       /*Physical Maximum (315)*/ 0x46, 0x3B, 0x01,&lt;br /&gt;       /*Report Size (4)*/ 0x75, 0x04,&lt;br /&gt;       /*Report Count (1)*/ 0x95, 0x01,&lt;br /&gt;       /*Unit (Eng Rot: Degree)*/ 0x65, 0x14,&lt;br /&gt;       /*Usage (Hat Switch)*/ 0x09, 0x39,&lt;br /&gt;       /*Input (Data,Var,Abs,NWrp,Lin,Pref,Null,Bit)*/ 0x81, 0x42,&lt;br /&gt;       /*Unit (None)*/ 0x65, 0x00,&lt;br /&gt;       /*Logical Maximum (1)*/ 0x25, 0x01,&lt;br /&gt;       /*Physical Maximum (1)*/ 0x45, 0x01,&lt;br /&gt;       /*Report Size (1)*/ 0x75, 0x01,&lt;br /&gt;       /*Report Count (12)*/ 0x95, 0x0C,&lt;br /&gt;       /*Usage Page (Button)*/ 0x05, 0x09,&lt;br /&gt;       /*Usage Minimum (Button 1)*/ 0x19, 0x01,&lt;br /&gt;       /*Usage Maximum (Button 12)*/ 0x29, 0x0C,&lt;br /&gt;   /*Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)*/ 0x81, 0x02,&lt;br /&gt;   /*End Collection*/ 0xC0,&lt;br /&gt;/*End Collection*/ 0xC0&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S3xL0G2pemI/AAAAAAAAAAk/bIwNbb3JfJk/s1600-h/Mouse-Keyboard+to+PS3+Joystick+adapter.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 190px; height: 320px;" src="http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S3xL0G2pemI/AAAAAAAAAAk/bIwNbb3JfJk/s320/Mouse-Keyboard+to+PS3+Joystick+adapter.png" alt="" id="BLOGGER_PHOTO_ID_5439305808521820770" border="0" /&gt;&lt;/a&gt;Above screenshot shows the result of this hid device with jstest-gtk as joystick calibration program (axis 4-5 are not relevant).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6078548544149602311-6727533028536444572?l=diy-machine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diy-machine.blogspot.com/feeds/6727533028536444572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diy-machine.blogspot.com/2010/02/hid-descriptor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6727533028536444572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6078548544149602311/posts/default/6727533028536444572'/><link rel='alternate' type='text/html' href='http://diy-machine.blogspot.com/2010/02/hid-descriptor.html' title='The HID descriptor'/><author><name>matlo</name><uri>http://www.blogger.com/profile/09032294132944232141</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_ENr8Vt3Qkqg/S-_lP62F-3I/AAAAAAAAAEQ/Ab9srozNYRs/S220/280.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ENr8Vt3Qkqg/S3xL0G2pemI/AAAAAAAAAAk/bIwNbb3JfJk/s72-c/Mouse-Keyboard+to+PS3+Joystick+adapter.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
