Running mxit in mpowerplayer on Linux (Ubuntu 7.04)

I’m peppering this with enough keywords so that other idiots will be able to find this easily. MXit is a mobile-phone based chat system that’s very popular in South Africa (Rugby World Cup champions 2007, thank you very much; want to wine about Cueto’s “try”, then first click here). It is possible to run the MXit Java midlet on a J2ME emulator (am I saying this right?) such as mpowerplayer or microemulator. Of course this works on Windows, even the average 12 year-old MXit user can successfully follow the many guides available online and then brag about his technical prowess online to his “friends”.

Obviously, I had to get this working on Ubuntu Feisty Fawn (7.04), you really don’t have to ask why. And obviously, it Just Didn’t Work(TM). MXit, both versions 3.0.5 and 5.2.x, hang forever at “Registering” or “Logging in”. After much swearing and trying The Usual Solutions(TM), I dusted off my ethereal / wireshark, and also my trusty old tcpdump and set out analysing TCP packet dumps.

I really hate packet analysis, it’s such a pleb thing to do. Oh well, one does one’s best to forget one’s breeding. Temporarily.

It turns out that if you set the maximum TCP receive buffer to 170K (instead of the default 1M on Feisty), everything starts working again. My current hypothesis is that some of the other auto-tuned TCP parameters than rely on the max receive buffer setting, now better accommodate the small MXit packets. For those of you who still don’t understand what all of this means, run the following as root to get MXit working on Feisty:

echo “4096 87380 174760” > /proc/sys/net/ipv4/tcp_rmem

To make this permanent across boots, check the man page for sysctl.conf or add the line above to your /etc/rc.local.

Let me know in the comments if this is useful. I optimistically estimate that there has to be at least one (1) other person that will run into this problem. Ever.

7 thoughts on “Running mxit in mpowerplayer on Linux (Ubuntu 7.04)”

  1. I’m no longer using mxit, Jabber/GoogleTalk and “fring” does the job for me. However, I find this post useful in inspiring me to try to get J2ME emulation going on my laptop.

    OTOH, right now, I’m more interested in emulating Python for Series60 on my laptop, so that I don’t have to upload scripts and run them on my N70 in order to test them… ;)

  2. With Python on my N70? Not much, just procrastinating, really. ;) At the moment I’m using it to record stuff… the included sound recorder can only record 1 minute (why?!), the other sound recorders I found so far cost money (ah, so that these can be sold?). Why pay for a sound recorder when less than 50 lines of Python code does the job?

    AMR is far from perfect. The silence-detection is the most irritating thing at the moment: when there’s clean silence between just about every word, it just sounds terrible. It is till okay for hand-transcribing things though. Raw wav takes too much space, and I don’t feel like buying an MMC card that I will only ever use in my phone. (OTOH, if I use wav, I *might* be able to get some speech recognition working? Then I could “pay” for an MMC card with the time I save doing completely manual transcriptions?)

    As I’m just hacking together 50-liners, emacs is all I use at the moment. If my pipe-dreams ever come true (uh, finishing my M, as a first step, *sigh*), I might take a look at the S60 emulator in December or next year.

  3. I’ve found an alternate solution.
    Download the mpp-sdk “mpowerplayer sdk for java”
    run the command as spesified “java -jar player.jar” this wil open the mpowerplayer.

    Download a jad file from http://www.mxit.co.za/wap

    open the jad file with mpowerplayer and voila.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.