August 20th, 2008 by nkeynes
Small Bug Fixes
Posted in Development
I’ve been taking some time to tidy up a few lingering issues with the emulation, mostly small fixes but it does tend to take some time to find the bugs. As part of this, I’ve also started putting together a test harness for the ARM processor, but it’s not quite working on the actual hardware yet (In other news, the G2 bus hates me with a rather astounding passion).
I’ll probably keep going through these for another couple of weeks at this stage - it would be nice to get through the remaining known black-screen/hang type of bugs before I get back to mangling the renderer.
Changes
- SH4: Fix 64-bit bugs that broke the OS X 64-bit builds
- SH4: Fix ASID usage in ITLB lookups
- SH4: Fix core-exit on a translation-cache flush when it occurs in a branch delay slot
- SH4: Add the 1Cxx..1Fxx mapping for the P4 region when accessed through the TLB
- SH4: Add version register 0xFF000030 (read-only).
- SH4: Add undocumented performance counters (just stubbed for now) . Removes the 0xFF100008 warnings, but breaks save-state compatibility.
- ARM: Fix STM {R15} offset (should be +12, was +8)
- ARM: Add missing half-word load/store instructions
- ARM: Add test harness work-in-progress
- Other: Cleanup all the -Wall compile-time warnings
No Comments »
August 4th, 2008 by nkeynes
Minor OS X update
Posted in Development
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.
1 Comment »
July 30th, 2008 by nkeynes
lxdream 0.8.4 released
Posted in Releases
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
No Comments »
July 21st, 2008 by nkeynes
Slipping 0.9 to October
Posted in Development
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
2 Comments »
July 6th, 2008 by nkeynes
Wrapping up the OS X port
Posted in Development
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
1 Comment »
June 20th, 2008 by nkeynes
Small fixes
Posted in Development
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
No Comments »
Posted in Development
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.
3 Comments »
May 27th, 2008 by nkeynes
Ok, break time’s over
Posted in Development
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)
No Comments »
April 20th, 2008 by nkeynes
Fun with OS X 10.5 + GLX
Posted in Development
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…
1 Comment »
Posted in Development
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)
No Comments »