Archive for March, 2009

I was distracted by Anthony Green’s Moxie blog this last week and a bit, specifically by the bit about qemu gdb support. This seemed like a really good idea, not to mention being fairly simple to implement, so it’s in now for both the SH4 and ARM. The actual debug support just hangs off the existing debugging framework, so the work needed was really just to implement the protocol.

If you want to have a play with it, run lxdream with -g <port> to start an SH4 GDB listener on the given TCP port, or -G <port> to start an ARM GDB listener. Or both for that matter, although gdb is likely to be confused if you actually connect more than one debugger at a time. To note the obvious, you’ll need to build an sh-elf-gdb or arm-elf-gdb (respectively) for this; your system debugger is just going to get confused. Also worth noting is that GDB tends to default to big-endian if there’s no file loaded – you need to explicitly force it to little endian (“set endian little”).

It supports all the usual bells and whistles except watchpoints, which I’m looking into at the moment. They should be reasonably straightforward to implement now, and will have zero cost when they’re not being used. And as a nice side-effect of all this I can finally do a full implementation of the on-board UBC.

I probably should have done this a long time ago – It’s nice to have a full symbolic debugger without having to actually write one from scratch ^_^

There’s not going to be a February release as originally scheduled – there’s just not enough ‘stuff’ ready to make it worthwhile in my opinion, and anyone looking for the latest has probably already pulled it from SVN. At the current (depressingly slow) velocity, there may be something releasable in April. We’ll see – I need to make sure the new SH4 translation core is solid, and make some decent headway on the PVR2 performance problems first.

Update-wise, we have a new SDL audio driver now, thanks to Wahrhaft, but otherwise not much of note to report at the moment. However, this might be a good time to note that there’s lot’s of other work that would be good to see done, but I’m simply not going to have time for any time soon – so if anyone out there is interested in contributing in any way, please let me know. There are some obvious areas that might be a good place to get started with lxdream -

OS X port – The base port is fairly stable, but there’s a number of outstanding issues, and the UI could no doubt be improved.

GTK UI – for that matter, the GTK UI isn’t very pretty either and could use some good UI design attention.

Audio subsystem – Current audio is almost obnoxiously bad, with plenty of bugs and missing features. Fortunately MAME has a fairly complete implementation that could be used for comparison and testing.

Translations – we have partial translations to german, spanish, italian, and portugese so far, which need to be updated for 0.9, and it would be great to support more languages as well. There are still some untranslated strings that need to be fixed as well.

SBI ‘image’ support, not to mention the many other bugs/enhancement requests in the issue tracker.

And of course, anyone interested in working on improving lxdream in any other way would be eagerly welcomed too ^_^.