January 31st, 2008 by nkeynes
lxdream 0.8.3 released
Posted in Releases
Last 0.8 point release, I swear. Just for a change, this one actually has some new features too. Specifically, it now runs linux (now some may argue that that’s not actually a _useful_ feature, but it’s a nice milestone)
With that out of the way, I think it’s finally time to rip the renderer apart and fix it all up, don’t you? ^_^
What’s New
- MMU Implementation - As previously noted, linux-dc now runs quite well, albeit slowly.
- Dreamcast mouse and keyboard controllers (also rather essential for running linux-dc)
- Support for real joysticks and gamepads (linux host only)
- Various bug fixes
Other Changes
- Change timer (TMU) interrupts to be precise (within the bounds of a code block anyway)
- Implement SLEEP op properly in translator
- Clamp run speed in the GUI if it’s running too fast
- Run event loop more frequently to avoid missing keyboard events
Posted in Releases | No Comments »
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:

(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…
Posted in Development | 6 Comments »
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 testsh4×86 compilation
- Fix TRAPA in emulation core
- Fix MMU support in emulation core
- Fix ITLB
- Fix delay slot exception translation issues
Posted in Development | No Comments »
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…
Posted in Development | No Comments »