What's new

lxdream WIP thread

Status
Not open for further replies.

JKKDARK

New member
I just posted this thread for all the WIP news about this Dreamcast emulator for Linux.

Slow Week II: Revenge of Slow Week

Real Life(tm) has been a little bit hectic lately, so there’s isn’t much to report for last week for lxdream. The render split is mostly done now, and will probably be merged back to trunk this week (as soon as I reintegrate the trans poly sorting). Unfortunately I didn’t really get any performance improvements out of it (well, I was probably a little hopeful there), but at least I didn’t lose any performance either, and it was worth doing for other reasons. Once that’s merged I’ve got a few small non-render issues to sort out, and then I’ll get back to the annoying rendering bugs…

In other news, dclinux 010605 is now hosted locally (as long as the bandwidth holds out), including a self-booting NRG image (thanks to The Gypsy), check it out on the wiki. Note that you’ll need the latest svn trunk to boot the nrg image properly.

And finally, I see that MAME now has a mostly complete AICA driver, thanks to ElSemi, kingshriek, dknute & R.Belmont. *jaw drop*. That… will _really_ help ^_^.

Trunk Changes

* Fixed a couple of d’oh-level SH4 bugs (thanks to dknute for pointing them out)
* Quick hack to get the dclinux nrg booting. Full update to follow soon.
 
OP
JKKDARK

JKKDARK

New member
GD-rom and ALSA improvements

Updated the CD-Rom image code to handle the various read modes (Bug #59), including raw reads (using libedc to generate the EDC/ECC data on the fly), as opposed to the old code which really only handled mode 1 and mode 2 form 1 sectors - CD-Roms are much more complicated beasties than one typically imagines. I haven’t validated it yet, but I don’t think I’ve broken any of the cases that previously worked either *crosses fingers*.

In other news bhaal22 has contributed an ALSA sound driver which is now in svn, along with some initial (long overdue) work towards tidying up the audio subsystem.
 
OP
JKKDARK

JKKDARK

New member
A distinct lack of time
I apologise for the lack of updates recently - unfortunately I have not had a lot of time to work on lxdream lately due to real life conspiring against me. I’ll try to update when I can, but for now there probably won’t be a lot to report until at least the end of May.

The good news is that lxdream-render is pretty close to mergeable now (doesn’t seem to break much now), and I’ve spent a bit of time trying to track down the irritating “geometry” bugs I’ve been seeing (It looks like bad geometry on screen, but the same data renders just fine on the DC). The bad news is that thus far, I haven’t really gotten anywhere with said bugs
 
OP
JKKDARK

JKKDARK

New member
Render branch merged back to trunk

There’s some outstanding niggles with the transparency auto-sorting (which will be fixed when I beef up the sorting algorithm), but by and large I think I’ve fixed everything I broke with the render changes. So that’s merged back to trunk now where the rendering work will continue. The big win so far has been fixing perspective correction - by itself that’s fixed something like 95% of the visual problems I was seeing.

Time to do some more rendering features now I think ^_^
Changes

* Fix perspective-correction (shader-only at the moment)
* Change mip-map texture loading to work around bug in ATI drivers
* Add mirrored texture support
* Add configure checks for fbo + shader support (to avoid linking errors on really old GL libraries)
 
OP
JKKDARK

JKKDARK

New member
Fun with OS X 10.5 + GLX

The good news is that I now have regular access to a mac again, and it’s actually fairly up-to-date (ie it’s running 10.5). So as a result, I have to say I’m stunned that other people have managed to get as far as they did - as far as I can see, Apple seems to have broken GLX pretty thoroughly[0] :( .

So I’ve done 3 things:

* Fixed the crashes at least, with glx, and generally fixed up the configure script for 10.5. I’ve probably broken it for 10.4 though. Which raises the question - is anyone actually trying to use lxdream on 10.4?
* Added support for the native GTK port w/ NSGL. This actually works fairly nicely. Unfortunately the only binary I can find for GTK/Quartz is provided by macports, and the font support is broken at the moment (ie completely missing). If anyone actually manages to build it from source… do let me know :)

* Started implementing a (fairly minimal) native cocoa UI. Well I was always going to do this eventually, I just hadn’t been planning to do it _now_. :)

In unrelated news, pulseaudio support is now in, along with spanish and italian translations (thanks to segnini75 and ghost22)
[0] So far I’ve noticed: It’s restricted to 16-bit depth buffers, has various other regressions from 10.4, creating a context with fbconfig crashes the app, glSecondaryColorPointerEXT fails if given a size = 4 (and lead to a crash), not to mention the libGL link cycle issue…
 
OP
JKKDARK

JKKDARK

New member
Ok, break time’s over

So I get back from vacation and discover that my main desktop has decided to commit suicide. On the bright side, its replacement has two important advantages. Firstly, it’s somewhat faster; and secondly it runs 64-bit code natively - in other words you can start to expect x86-64 to work at least as well as i386 does :) . Also it doesn’t overheat under a moderate load like the old one did either, which is nice.

Interestingly enough, on said new machine, the 64-bit version runs about 12% faster than the 32-bit version. That’s… pretty impressive actually.

On the Mac front, I’ve finally stumbled over the reason I couldn’t get it to work properly (It simply refused to become the active application, take key focus, etc) - apparently Cocoa really, _really_ wants to run inside an application bundle, and gets very unhappy when there isn’t one… At least now that that’s sorted I should be able to get the preliminary cocoa ui in real soon now.

So based on current scheduled items, you can probably expect 0.9 somewhere towards the end of July.

Changes

* Change FR bank handling to swap rather than using an index pointer. Actually slightly faster + simpler this way
* Fully integrate the SH4 instruction counting (enabled with ./configure –enable-sh4stats)
* Cleanup lots of compile warnings (not all yet, but getting there) that have been hanging around for a while
* Fix save states on x86-64 (and also fix compatibility with 32-bit saves)


OS X user interface - first cut

The first version of the cocoa UI is in subversion now, and enabled by default if you’re building on Mac. You’ll need to do ‘make bundle’, which will give you lxdream.app which should (hopefully) launch normally. Currently it’s missing the configuration dialogs and a couple of other things, but it’s mostly there - anyone want to try it out and let me know if it works for them? (Especially curious as to whether or not it runs on 10.4).
To get the GTK interface instead, configure with –with-gtk.
 
OP
JKKDARK

JKKDARK

New member
Small fixes

Mostly just finishing/unbreaking things I’d broken in recent changes, so there’s nothing terribly exciting to report at the moment.

Changes

* Fix launching from the Finder (odd command line arguments and all)
* Move the background into the main scene structure, so it’s actually included in the min/max z (the lack of which was causing missing backgrounds in some situations). Massively simplifies things at the cost of needing colour unclamping support for correct output in all situations.
* Change internal colour format to float from unsigned char - surprisingly doesn’t have much impact on performance, but makes a few things much simpler to implement
* Finish integrating the run-time limiting properly so that it’s no longer a big wart on main.c (and works properly on OS X as well)
* Refactor the GD-Rom selection menu to be a bit more generic and add a cocoa view for it
 
OP
JKKDARK

JKKDARK

New member
Wrapping up the OS X port

I’ve ended up spending a lot longer on the OS X port than I would have liked - the worst culprit lately has been the native CD-Rom support (but that’s a rant for another day). The only major bit outstanding now for OS X is the preferences dialog, which I’ll get back to shortly after I spend some time on other things.

Changes

* Add CoreAudio support (OS X dependencies are now down to glib + gettext)
* Finish making the OS X bundles self-contained (ie distributable)
* Get the OS X native cdrom drive to a ‘mostly working’ state.
* Fix a couple of minor translator buffer issues
 
OP
JKKDARK

JKKDARK

New member
Slipping 0.9 to October

Well, it’s become increasingly clear that I’m not going to have 0.9 ready in the next 2 weeks, or even in month after that. There’s two main reasons for this - I’m unfortunately finding much less time to work on lxdream of late than originally counted on, and the OS X work pretty much took a couple of months out of the schedule by itself. In any case, based on the remaining work and current rate of progress, I’m rescheduling 0.9 for October. We’ll see how that goes ^_^.
However having said that, there’s certainly enough changes to warrant a 0.8.4 interim release, especially for OS X and x86-64 users. I have a fairly short list of things remaining that need to go into that release, so that will be out in about 2 weeks. In the meantime, if anyone’s noticed any regressions relative to 0.8.3 or platform-specific bugs, please let me know as soon as possible so they can be fixed prior to release.
Changes

* Various automake fixes (eg out-of-tree builds and distcheck work now for the first time)
* Tag SVN binaries with the revision for ease of tracking/reporting
* Initial implementation of the sort-dma channel
* Fix alignment of 64-bit FMOVs
* Fix soft-reset from the emulator (lockup)
* Fix off-by-one in the translator recovery data (crash)
* Fix build when no translator is available
* Fix build against OS X 10.4 SDK
* General formatting and warnings cleanup
 

Maturion

Dreamcast-Fan
lxdream 0.8.4 released

Nathan Keynes released version 0.8.4 of lxdream. There's full native Mac OS X support in this version.

As promised, 0.8.4 is now available from the usual place. For the first time, I’ve also put up binaries for Debian(unstable) and OS X (10.4+). Again, this is a minor release with the bulk of the changes under the hood, so don’t expect radical changes to the emulation quality or compatibility.

What’s new
*Fully native OS X support
*Renderer rewrite (fixes perspective correction among other problems)
*ALSA and PulseAudio sound drivers
*Save states now work on x86-64
*New translations: Spanish and Italian
*Lots of miscellaneous bug-fixes and improvements

Last week’s changes
*OS X: Shiny new preferences dialog
*OS X: Fix internationalization support
*OS X: Finish off application bundle (Info.plist, icon)
*OS X: Handle mode-unspecified CD-Rom disc reads
*Linux: Show CD-Rom drive names in gdrom menu
*Linux: Fix mounting empty CD-Rom drives
*Change audio initialization to try all available drivers
 
OP
JKKDARK

JKKDARK

New member
Minor OS X update

I’ve uploaded a new OS X binary package that actually runs on 10.4 now. It also includes a fix for the Intel GMA950, and a new .dst document icon. In any case, you probably only want this if the previous package didn’t work for you.
 
Status
Not open for further replies.

Top