lxdream.org :: News
lxdream 0.9.1
released Jun 29
Download Now
Lxdream is an emulator for the Sega Dreamcast system, running on Linux and OS X. While it is still in heavy development (and many features are buggy or unimplemented), it is capable of running most demos and some games.
January 23rd, 2008 by nkeynes
Linux booting
Posted in Development

After fixing some boneheadedness in the ASIC event code (and a whole passel of translator caching and other bugs), I’ve finally gotten to the login prompt:
Linux-dc login prompt
(to clarify, this is the dreamcast-linux-010605 ISO that Takeshi Yaegashi put together several years ago, running a modified 2.4.5 kernel)

Unfortunately (after the happy dance), it was at this point that I realised I haven’t actually implemented the keyboard yet, so it’s impossible to do anything useful with it. It’s also admittedly painfully slow to start, but I was expecting that (TLB lookup is currently near pessimal).

Anyway, working on the keyboard driver now ^_^.

PS: If anyone has a working link to this image, please let me know where it is (I’d like to keep a link to it) – my google-fu has utterly failed to turn up a good version as yet, and my own copy is only on a somewhat scratched CD…
Changes

  • Add VMA support to the SH4 disassembly functions
  • Handle out-of-page delay slot execution with emulation single-step
  • Finish translator breakpoint implementation
  • Fix a pair of long standing ASIC event bugs
  • Fix xltcache forgetting to clear references to blocks before overwriting them
  • Fix recovery + backpatch records not being position independent (big duh!)
  • Fix yet another translate block bounds overrun
  • Fix MAC.L/MAC.W exception handling (broke the stack if the second arg caused an exception)
  • Fix various other minor bugs

Update: Just hacked together a quick keyboard driver, able to login and launch X now. Excellent…

January 16th, 2008 by nkeynes
lxdream-mmu merged
Posted in Development

Now that the mmu branch is running on all three platforms, I’ve merged it back to the trunk. Which is not to say that it’s _finished_ (it still doesn’t fully boot linux-dc), just that it doesn’t break anything that was previously working (to the best of my knowledge).

I’ve also working on some preliminary joystick/gamepad support (linux /dev/input/js*) – the driver itself is nearly trivial (the linux input interfaces are pretty nice), but I need to refactor our input event handling a little (currently it expects all input events to come from the UI).

Changes

  • Add support for breakpoints in translated code (about time)
  • Add MMU store-queue support
  • Handle dreamcast_stop() and dreamcast_reset() properly from translated code
  • Fix MMU build on OSX and x86-64
  • Fix testsh4x86 compilation
  • Fix TRAPA in emulation core
  • Fix MMU support in emulation core
  • Fix ITLB
  • Fix delay slot exception translation issues
January 11th, 2008 by nkeynes
Happy New Year!
Posted in Development

Hope everyone had a good christmas ^_^.

Second iteration of the MMU implementation is nearly done – it’s now slightly faster with MMU off than 0.8.2, which is nice (MMU-on is still rather slow, but I’ll worry about that later). The (old) version of linux-dc I’m using is still not booting yet though (odd IRQ errors now). Hopefully not much further now…

December 20th, 2007 by nkeynes
lxdream 0.8.2 released
Posted in Releases

Change of plans – because svn looks likely to become unstable for a little bit with recent work (mmu changes are fairly invasive, and there’s quite a performance penalty that I haven’t optimized away yet), I’m releasing 0.8.2 as it is now (without TLB) for the benefit of those who need the fixes since 0.8.1.
Note: There are no significant changes to the emulation (ie no change to compatibility) – If 0.8.1 runs properly for you, you don’t need 0.8.2

Changes from 0.8.1

  • x86-64 architecture support
  • Preliminary Mac OS X support
  • Pbuffer support (to support OpenGL drivers without EXT_framebuffer_object)
  • Support for more recent CDI and NRG image file versions
  • Minor bugfixes
December 11th, 2007 by nkeynes
MMU-in-progress
Posted in Development

Currently working slowly through the MMU TLB implementation and testing. If all goes according to plan (as if that ever happens), we should have a running linux-dc sometime this month. Once that’s working I’ll cut a 0.8.2 and then get on to all those lovely rendering issues…

In unrelated news I’ve had to install an anti-spam filter on the forum, as the spam levels were starting to get out of control. So far it looks to be working well – a little too well, possibly – if anyone is having problems registering or posting, please let me know by email and I’ll sort it out.

November 29th, 2007 by nkeynes
Pbuffer support
Posted in Development

So… I’ve finally bitten the bullet and implemented some basic pbuffer-based rendering support, and even tidied up the glx code a little in the process (which is nice). It seems to work ok, but it would be good if I could get some of the people who were having framebuffer troubles to test out the current subversion trunk, and let me know if it works for them.

Don’t get me started on the current state of GL/GLX support in Linux… 🙁

I’ve also spent some time on native CD and audio drivers for Mac OS X, but I’ll probably have to come back to them later (they’re taking a lot longer than I originally hoped unfortunately).
Next stop: MMU (finally! ^_^)

November 23rd, 2007 by nkeynes
x86-64 and Mac OS X ports
Posted in Development

It must be porting week – both the x86-64 and mac ports should (fingers crossed) work out of the box now. (Note that the mac port is intel only, and still requires X11+GTK 2.0 to build). Real native mac support will probably follow slowly as time permits – I’m getting something of a crash course in mac programming at the moment ^_^.

Changes

  • Added x86-64 support to the translator
  • Initial Mac OS X support (configuration and translator ABI changes)
  • Fix buggy TRAPA instruction (translator only – fixes several homebrew games)
  • Improve error handling of a few situations (can’t connect to display, etc)
  • Esound is now optional (but without it you’re not getting any audio)
  • Re-add the “Load Binary” menu entry that somehow got lost in the GUI revamp.
November 16th, 2007 by nkeynes
This week in lxdream
Posted in Development

The big change this week was the cutover to subversion for source control, otherwise things are fairly quiet at the moment. Also looking into a few homebrew games that are black-screening at the moment (damnit…) which would be nice to fix…
Changes

  • Converted source repository to subversion
  • Handful of minor bugfixes
  • Add support for CDI v4 (I think), and NRG 5.5+ images.
  • Add quick-n-dirty set of debian control files
  • Fix make install to include system rc file and exclude intermediate tools.
  • Start fixing up the unit/system tests to actually run properly
  • Added brazilian portugese and german UI translations (thanks to arthonis and linuxdonald)
November 8th, 2007 by nkeynes
lxdream 0.8.1 released (minor release)
Posted in Releases

I wasn’t originally planning to do a point release, but it’s probably worth fixing a few issues that were reported on the forums (mostly configure / portability related). Plus you get full-screen and GDI image support thrown in for free too!

I’d be interested to know how this fares on x86-based *BSD systems if anyone wants to test it out – hopefully it should be possible to at least build it now.

Changes

  • Fix configure script to abort if it doesn’t find a required library (eg, libGL.so or libz.so)
  • Add checks to the configure script for linux/cdrom.h, and avoid building the CD-Rom driver if it’s not found.
  • Add preliminary support for nulldc-style gdi images
  • Implement gdrom mode select command (mostly stub)
  • Fix some non-64bit-safe code
  • Fix the maple 0x00000700 issue
November 2nd, 2007 by nkeynes
Planning for 0.9
Posted in Development

The current plan for 0.9 looks like this:

1. Fix the renderer
2. Implement MMU address translation.

The big focus for 0.9 obviously has to be the rendering module – we need to speed things up a lot (at least 5-10x faster than it is currently), deal with a bunch of bugs (most of them cases where GL and the PVR2 don’t quite see eye-to-eye), and implement about half a dozen missing features (none of them trivial).

The AT is something I’ve wanted to have working for a while but it just hasn’t been a high enough priority compared to everything else (especially as it’s going to be a pain to get it to run fast enough). I suspect that no one else cares, but personally I’m very keen to see linux-dc running inside the emu…

In any case, everything after that is just gravy, and really depends on how I go for time. Unfortunately November is looking to be very busy IRL, so we’re looking at a January release at this point. But it will _rock_, so there ^_^

I’ve also finally gotten around to putting my “status” list up on the wiki. To be honest it’s a depressing list, as it seems to change at a glacial pace, but… there you are.

Changes  (what, you want changes already?)

  • Implement full-screen mode (scaling based)
.