<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.7.6(BH)" -->
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Planet Maemo: category &quot;feed:96cafbff7b5c987c48a8071d34a36135&quot;</title>
        <description>Blog entries from Maemo community</description>
        <link>http://maemo.org/news/planet-maemo/</link>
        <lastBuildDate>Sun, 24 May 2026 08:39:01 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.6(BH)</generator>
        <language>en</language>
        <managingEditor>planet@maemo.org</managingEditor>
        <item>
            <title>Still working on the same</title>
            <link>http://javispedro.com/blog/2012/03/still-working-on-the-same.html</link>
            <description><![CDATA[

        It's funny that, exactly one year after my previous post, my current pet project is exactly the same as it was last year! But both the hardware (N900 vs N950) and the software have been upgraded...<br /><br /><a href="http://javispedro.com/assets_c/2012/03/maebasecamp-65.html" onclick="window.open('http://javispedro.com/assets_c/2012/03/maebasecamp-65.html','popup','width=1000,height=720,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2012/03/maebasecamp-thumb-450x324-65.png" alt="maebasecamp.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" width="450" height="324" /></a><br /> <div><br /></div>
        
    <span class="net_nemein_favourites">4 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=ea69bc047b3711e1bf9a8390976026d926d9&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/ea69bc047b3711e1bf9a8390976026d926d9/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=ea69bc047b3711e1bf9a8390976026d926d9&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/ea69bc047b3711e1bf9a8390976026d926d9/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Sat, 31 Mar 2012 13:38:41 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-ea69bc047b3711e1bf9a8390976026d926d9</guid>
        </item>
        <item>
            <title>grmgpsd</title>
            <link>http://javispedro.com/blog/2011/03/grmgpsd.html</link>
            <description><![CDATA[

        Despite the Twitter crazy, I still feel like talking a bit about some recent project of mine.<br /><br /><i>grmgpsd</i>, an old school Garmin GPS protocol emulator. It was born by merging two of my older projects, nmeagend and garmintalkd. The first one was a NMEA "server" from the N900's liblocation data, while the second one was a Garmin binary PVT (<i>P</i>osition - <i>V</i>elocity - <i>T</i>rack) protocol server. Both allowed you do moving map on a PC using your N900 as GPS.<br /><br />However, after implementing the PVT part of the protocol, I knew it would be extremely easy to implement the rest of the Garmin binary protocol. So I tried to find a use case for such implementation ;). The use case is as follows:<br /><br /><a href="http://javispedro.com/assets_c/2011/03/grmgpsdlog-62.html" onclick="window.open('http://javispedro.com/assets_c/2011/03/grmgpsdlog-62.html','popup','width=911,height=676,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2011/03/grmgpsdlog-thumb-450x333-62.png" alt="grmgpsdlog.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" height="333" width="450" /></a><br /><div>Yes, you can now use whatever software you used to manage your Garmin's GPS tracks, etc, to manage your N900's content. You can even use that software to exchange them! And, if the magic keywords are not uttered by the host PC, it will appear to be a off-the-shelf Bluetooth NMEA GPS.<br /><br /><i>What N900 content?</i> Yes, good question. So far, it's all stored in sqlite database whose format was designed ad-hoc. I also made a very simple track logging application that fills the "Active track log" track in such database.<br /><br />Yet, my plan is to use someone else's program as storage, like, for example, <a href="http://stage.rubyx.co.uk/columbus/index.html">Columbus</a>.<br /><br />The source is, as per usual, available on <a href="http://gitorious.org/grmgpsd">my Gitorious</a>.<br /></div>
        
    <span class="net_nemein_favourites">9 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=74b75b8449cd11e09867e37f1d6d6ab16ab1&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/74b75b8449cd11e09867e37f1d6d6ab16ab1/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=74b75b8449cd11e09867e37f1d6d6ab16ab1&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/74b75b8449cd11e09867e37f1d6d6ab16ab1/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Tue, 08 Mar 2011 20:58:40 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-74b75b8449cd11e09867e37f1d6d6ab16ab1</guid>
        </item>
        <item>
            <title>More MeegoTouch IM Features</title>
            <link>http://javispedro.com/blog/2010/08/more-meegotouch-im-features.html</link>
            <description><![CDATA[

        So the deadline is approaching, and slowly all features start appearing:<br /><br /><a href="http://javispedro.com/assets_c/2010/08/copy-47.html" onclick="window.open('http://javispedro.com/assets_c/2010/08/copy-47.html','popup','width=1275,height=492,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/08/copy-thumb-600x231-47.png" alt="copy.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="600" height="231" /></a><br /> <div><a href="http://javispedro.com/assets_c/2010/08/paste-50.html" onclick="window.open('http://javispedro.com/assets_c/2010/08/paste-50.html','popup','width=1315,height=481,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/08/paste-thumb-600x219-50.png" alt="paste.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="600" height="219" /></a></div><div>Pretty much like the way you could on Maemo, the virtual keyboard allows you to copy/paste from it (see the buttons on the top right corner -- prefixed with !! because of an error with my i18n setup). This now works with Gtk+ apps too, even with a stock/nonHildon Gtk+, as long as your text widgets implement GtkEditable or are subclasses of GtkTextView (gedit is the latter).<br /><br />Even if there's data available on the clipboard, and text selected in a window, only one button appears (so you can't select text and replace it with the clipboard contents). This seems to be an arbitrary UI decision.<br /><br /><a href="http://javispedro.com/assets_c/2010/08/numeric-53.html" onclick="window.open('http://javispedro.com/assets_c/2010/08/numeric-53.html','popup','width=1162,height=491,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/08/numeric-thumb-600x253-53.png" alt="" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="600" height="253" /></a>The MeegoTouch IM framework has different layouts for each "content type" a text field can handle -- something equivalent to hildon's <a href="http://maemo.org/api_refs/5.0/5.0-final/gtk/GtkIMContext.html#HildonGtkInputMode">InputMode</a> property. Since there's no "standard" way that I know of for Gtk+ applications to send "hints" about content type to input contexts, other than setting up different GtkIMContext subclasses for each and every configuration and then setting a widget's "im-module" property, I decided to use <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set-data">g_object_set_data</a> / get_data for hints. For example,<br /><pre>        GtkEntry *entry = gtk_entry_new();
        g_object_set_data (G_OBJECT (entry), "meego-im-content-type",
                           GINT_TO_POINTER (MEEGO_IM_CONTENT_NUMBER));
</pre><br />Hildon used a new property (<a href="http://maemo.org/api_refs/5.0/5.0-final/gtk/GtkEntry.html#GtkEntry--hildon-input-default">"hildon-input-mode"</a>) which was defined in GtkEntry, GtkTextView, etc. Of course, when building with the patched Gtk+ you can still use it.<br /><br /><a href="http://javispedro.com/assets_c/2010/08/phonepreedit-56.html" onclick="window.open('http://javispedro.com/assets_c/2010/08/phonepreedit-56.html','popup','width=1156,height=495,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/08/phonepreedit-thumb-600x256-56.png" alt="phonepreedit.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="600" height="256" /></a>With content type set to "phone number", the layout presented is certainly interesting because one of the buttons does not generate text instantly: the "*+" button cycles between *, +, w... each time you press it (aka "multipress"). Works too :)<br /><br /><a href="http://javispedro.com/assets_c/2010/08/customtool-59.html" onclick="window.open('http://javispedro.com/assets_c/2010/08/customtool-59.html','popup','width=1153,height=481,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/08/customtool-thumb-600x250-59.png" alt="customtool.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="600" height="250" /></a>Custom toolbars! I really overestimated the difficulty of this. Turns out, a custom toolbar is just a plain xml file which looks like this:<br /><pre>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;!DOCTYPE MEEGO_IM_TOOLBAR_WIDGET SYSTEM 'VirtualKeyboardToolbarDTD.dtd'&gt;<br />&lt;toolbar&gt;<br />    &lt;button name="buttonsmile" group="buttonsmile" priority="1" showon="always"<br />      alignment="left" icon="/usr/share/widgetsgallery/imtoolbar/icons/icon-m-messaging-smiley-happy.svg"<br />      size="80%" text="" text_id="" toggle="false" pressed="false"&gt;<br />        &lt;actions&gt;<br />            &lt;sendstring string=":)"&gt; &lt;/sendstring&gt;<br />        &lt;/actions&gt;<br />    &lt;/button&gt;<br /></pre><br />Each widget can be associated to a different toolbar -- for example, the way I decided for now to allow to do this in Gtk+ is:<br /><pre>        GtkEntry *entry = gtk_entry_new();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_object_set_data (G_OBJECT (entry), "meego-im-toolbar",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "/usr/share/widgetsgallery/imtoolbar/exampletoolbar1.xml");</pre><br /><br />When the widget gets focus for the first time, the filename is sent to the input server, which parses it and creates the Qt widgets for you -- afterwards, you can still modify certain attributes of the toolbar, like whether buttons are pressed down or not. Unfortunately, I couldn't find a nice way to design a equivalent API for this in Gtk+, so for now you can only attach toolbars but not modify them. A sane API should implement at least a new class for this and so far I'm don't think defining new classes in a IM Context Plugin is the right way.<br /><br /></div>
        
    <span class="net_nemein_favourites">9 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=90ab9332a2a711df89d7a99ccdead605d605&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/90ab9332a2a711df89d7a99ccdead605d605/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=90ab9332a2a711df89d7a99ccdead605d605&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/90ab9332a2a711df89d7a99ccdead605d605/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Sun, 08 Aug 2010 03:02:54 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-90ab9332a2a711df89d7a99ccdead605d605</guid>
        </item>
        <item>
            <title>Something works!</title>
            <link>http://javispedro.com/blog/2010/06/something-works.html</link>
            <description><![CDATA[

        <p>So the input context skeleton is finally in place, and gedit can start receiving commit signals from the MeegoTouch keyboard:<br /><br /><a href="http://javispedro.com/assets_c/2010/06/initialcommit-18.html" onclick="window.open('http://javispedro.com/assets_c/2010/06/initialcommit-18.html','popup','width=868,height=1023,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/06/initialcommit-thumb-400x471-18.png" alt="initialcommit.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="400" height="471" /></a><br />I can even create new documents and switch tabs while typing on it, and it correctly follows focus. Not much else to try yet! <br /></p><p>Many thanks to murrayc for <a href="http://www.murrayc.com/blog/permalink/2007/01/25/gtk-multipress-input-method/">Multipress Input Method</a>, from which I took many build system related bits and of course to Mohammad Anwari for the original <a href="http://mxr.maemo.org/fremantle-20091116/source/hildon-input-method-framework/src/">Hildon Input Method</a>.<br /><br /></p>
        
    <span class="net_nemein_favourites">3 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=27b7d8e27ece11dfa52e69c86312ac0cac0c&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/27b7d8e27ece11dfa52e69c86312ac0cac0c/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=27b7d8e27ece11dfa52e69c86312ac0cac0c&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/27b7d8e27ece11dfa52e69c86312ac0cac0c/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Tue, 22 Jun 2010 13:02:00 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-27b7d8e27ece11dfa52e69c86312ac0cac0c</guid>
        </item>
        <item>
            <title>GSOC 2010 -- Gtk+ Input Method for MeeGoTouch IM Framework</title>
            <link>http://javispedro.com/blog/2010/05/gsoc2010-gtkim-for-meegoimui.html</link>
            <description><![CDATA[

        Hello everybody, <br /><br />I've been selected, as part of the Google Summer of Code project, to work on what will become a Gtk+ Input Method that communicates with the MeegoTouch (previously, Direct UI) Input Method UI Framework. <br /><br />Basically, input methods either modify or completely replace the flow of characters from your keyboard, keypad,... to whatever applications show in their input fields. They can be either virtual keyboards, thus generating key events on their own, based on mouse input; they can filter some of the key presses on your physical keyboard to allow you access to way more characters -- for example, the "acute" character on some international layouts doesn't produce an acute symbol, but instead <i>combines</i> with the character the next key would produce to form an entirely new character. Of course, you can use both approaches, and have something like the hardware keyboard with symbol palette that the N900 uses, or even way more complex things.<br /><br />So, when I realized that the next version of then-Maemo6 was going to use a new, Qt-specific input method framework, I knew things would look bad for Gtk+ applications on the platform. If you've ever tried any non-Gtk+, not-Qt application (DOSBox, for example) on the N8x0, or N900, you know what I'm talking about. This is something that would kill usability of most existing Maemo Gtk+ applications, and not only for international users. Clearly, fixing this is quite an important TODO item.<br /><br />Also, I had already been experimenting with trying to integrate the Maemo-5 input method framework (known as Hildon Input Method, or H-I-M) with SDL, so when I looked upon the idea, I knew this was going to be interesting. <br />But this is not all -- Harmattan was being slowly cooked in the open, and I was practically ignoring it. MeegoTouch, Qt, etc. is without doubt going to replace most of what I currently know and use, and thus I'm really interesting in getting the hand of it. So I also see this project as an oportunity to get used to the entire stack.<br /><br />So what did I do first? Well of course, try to run everything. <br /><br /><a href="http://javispedro.com/assets_c/2010/05/imframework-12.html" onclick="window.open('http://javispedro.com/assets_c/2010/05/imframework-12.html','popup','width=857,height=964,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/05/imframework-thumb-400x449-12.png" alt="imframework.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="449" width="400" /></a><br /> <div>Above you can see the widgetsgallery you can download on your N900, but a bit more recent and also not Maemo 5 but Debian Squeeze on an amd64 host (so I already had to patch some components :) ). Also running is the MeeGoTouch IM UI Server, with the MeegoKeyboard plugin active. Pressing keys on it does what you expect. Typing keys on the hardware keyboard results in some D-Bus messages from the client application to the IM Server -- again, similar to what you'd expect from an input method!<br /><a href="http://javispedro.com/assets_c/2010/05/customtoolbar-15.html" onclick="window.open('http://javispedro.com/assets_c/2010/05/customtoolbar-15.html','popup','width=854,height=963,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2010/05/customtoolbar-thumb-400x451-15.png" alt="customtoolbar.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="451" width="400" /></a>But hey! The MeeGo IM Framework seems to have some unexpected nifty features, at least when compared to H-I-M. This made me think about Gtk+ widgets in there. Sounds hard -- but definitely worth reading about.<br /></div><div><br />Of course note that this is using the development theme, and also I was not using the MeegoTouch compositor at the moment, so no translucency goodness: the final UI should look much prettier.<br /><br />Well, the official GSoC start date is tomorrow. I plan to use this blog to put in news, development progress (hopefully biweekly) or interesting tidbits I discover from the entire MeeGoTouch stack. See you until then! <br /><br /></div>
        
    <span class="net_nemein_favourites">0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=f631e79c67fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/f631e79c67fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=f631e79c67fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/f631e79c67fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Sun, 23 May 2010 01:05:06 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-f631e79c67fb11df8002bfddbe587a787a78</guid>
        </item>
        <item>
            <title>Maemo Barcelona Long Weekend</title>
            <link>http://javispedro.com/blog/2009/11/maemo-barcelona-long-weekend.html</link>
            <description><![CDATA[

        Want to know what all this fuss about Maemo is about?<br /><br /><a href="http://wiki.maemo.org/Maemo-Barcelona_Long_Weekend">http://wiki.maemo.org/Maemo-Barcelona_Long_Weekend</a><br /><br />December 4-6 at Citilab Cornellà!<br /> 
        
    <span class="net_nemein_favourites">0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=ec72687667fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/ec72687667fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=ec72687667fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/ec72687667fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Wed, 18 Nov 2009 19:55:34 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-ec72687667fb11df8002bfddbe587a787a78</guid>
        </item>
        <item>
            <title>DrNokSnes in N900</title>
            <link>http://javispedro.com/blog/2009/09/drnoksnes-in-n900.html</link>
            <description><![CDATA[

        <p>Truly, a new gaming platform is born!<br /><br /><div align="center"><object width="500" height="405"><param name="movie" value="http://www.youtube.com/v/E0wbLaMXeu4&hl=es&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/E0wbLaMXeu4&hl=es&fs=1&color1=0x3a3a3a&color2=0x999999&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"></embed></object></div><br /><br />The above was DrNokSnes running on a N900 :) Thanks to <a href="http://konttoristhoughts.blogspot.com/2009/09/snes-on-n900.html">Konttori</a> (author of the video also, thanks!), you can use a Wiimote to control it, even in N8x0! And of course, don&#8217;t forget to check the last seconds of the video for TV out <b>and</b> Wiimote control. <br />Very cool!<br />You&#8217;ll have to wait a bit until this version of DrNokSnes enters extras while I polish some of the rough edges ;)</p>

        

    <span class="net_nemein_favourites">0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=e2879ca067fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/e2879ca067fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=e2879ca067fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/e2879ca067fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Tue, 29 Sep 2009 17:20:31 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-e2879ca067fb11df8002bfddbe587a787a78</guid>
        </item>
        <item>
            <title>DrNokSnes</title>
            <link>http://javispedro.com/blog/2009/08/drnoksnes.html</link>
            <description><![CDATA[

        <p><p>I proudly present yet another Maemo <i>port</i>, <b>DrNokSnes</b>, which comes from <a href="http://reesy.gp32x.de/DrPocketSnes.html">DrPocketSnes</a>.&nbsp;</p><p><a href="http://javispedro.com/assets_c/2009/08/shotmain-5.html" onclick="window.open('http://javispedro.com/assets_c/2009/08/shotmain-5.html','popup','width=800,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://javispedro.com/assets_c/2009/08/shotmain-thumb-400x240-5.png" alt="DrNokSnes GUI" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="240" width="400" /></a></p><p>It is capable of emulating Mode7 games like Mario Kart at 20fps with sound in your average N810, which is nowhere near full speed, but much better than original snes9x&#8217;s 2-3 fps (<i>without sound!</i>) and still very playable.</p><p>You can get it from extras-devel, and check development over at <a href="https://garage.maemo.org/projects/drnoksnes/">garage</a>.&nbsp;</p><p>The biggest problem I found while porting opensnes9x ASM core
sources is that it seems that the ABI the N8x0 devices follow mandates
that the upper 16 bits of a register holding a unsigned short parameter
value be set to zero. The ASM code doesn&#8217;t take care of zeroing those
and as such random data was being introduced in the C functions, making
those crash at weird points, or even worse, adding random behavior to
the emulated games (man, seeing all the Mario kart characters keeping
hitting themselves the whole race <i>instead of racing</i> was fun).&nbsp;</p><p>Also,
I was bitten by a gcc bug; thankfully just switching the order of two
statements (in the dsp1emu.c file) made the bug go away.</p><p>The port
uses SDL for its video, audio, input, and timekeeping functions. SDL
uses XShm in Maemo and I believe is the third fastest way to put images
to the N8x0 video hardware (first one being omapfb, second one being
Xv). Audio uses the SDL ESD backend by default; I found it works much
better setting buffer sizes &lt;= 512 samples &#8212; same as what the SDL
ALSA backend &#8220;wants&#8221;.<br /></p><p>I implemented snesadvance.dat
speedhacks support into the emulator, since they&#8217;re becoming very
common these days. Incredibly enough, I couldn&#8217;t find a single opcode
42 implementation for the opensnes9x asm arm core, so I had to write my
own. It&#8217;s still incomplete and doesn&#8217;t handle most branch types, but it
seems to work fine with my test rom set.</p>The GUI uses
osso-games-startup. I don&#8217;t know why I decided to use it (probably
because I like integration with the rest of the system), it&#8217;s a bit
undocumented and has some &#8220;wtf&#8221; features, but I like the result. 
<br /><br />Many thanks to the original authors of DrPocketSnes and all of #maemo, who helped me a lot with the port, and enjoy!<br /><br /></p>

        

    <span class="net_nemein_favourites">0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=d874696e67fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/d874696e67fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=d874696e67fb11df8002bfddbe587a787a78&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/d874696e67fb11df8002bfddbe587a787a78/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Javier S. Pedro &lt;maemo@javispedro.com&gt;</author>
            <category>feed:96cafbff7b5c987c48a8071d34a36135</category>
            <pubDate>Wed, 26 Aug 2009 19:35:05 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-d874696e67fb11df8002bfddbe587a787a78</guid>
        </item>
    </channel>
</rss>
