[lisaem] LisaEm 1.0.0-RC2 Available for download

Ray Arachelian ray at arachelian.com
Thu Jun 28 13:00:36 CDT 2007


The Lisa Emulator Project, Release Candidate 2 is now ready for 
download: http://lisaem.sunder.net/downloads.html


The biggest change is in the video handling code.   The following 
description on video methods is a bit technical, so skip over it if you 
find your eyes glaze over.

The rawbitmap method:

The video updates are now using a hidden API in wxWidgets called 
rawbmp.h, which allows direct read write access to the pixels.   This 
isn't a secret API by any means, since wxWidgets is open source, 
however, it is undocumented.    To turn this on pass --with-rawbitmap on 
compiling.

This is a lot faster on OS X,  but it crashes win32, and shows a black 
screen on Linux

The SetRGB wxImage display method:

An alternate method is also available for systems where rawbmp.h doesn't 
work, such as on win32.   Compile using --without-rawbitmap to enable 
this slightly slower mode.

While this mode is also much faster than the original version on OS X, 
it's slower than rawbmp.

The SetRGB method builds a wxImage, and access the pixels via the SetRGB 
method, then converts the wxImage into a wxBitmap, and blits the result 
to the display.   (On wxWidgets, you can't blit Images, they must be 
converted to wxBitmaps, and there's no SetRGB method on wxBitmaps.)


The original code which built 4x1 blits has been ripped out.   In terms 
of speed, it worked fine on Linux and Windows, but it failed miserably 
on slower OS X machines.   The new code is also a big hack, but at least 
it's a good hack. :-)


The rest of the display mechanism is based on Brian Foley's code, which 
refreshes only the changed data, and schedules CPU execution via a 
timer.   While Brian's UI code is a lot cleaner, the main LisaEm wx UI 
code has branched off too far for it to be compatible, so I've adapted 
the code to do what his code does.  Future updates will aim for cleaner 
C++ code.

There may be issues refreshing the display on scrolling, however.

Another issue, is that the new code causes a bit of fuzzing in the 
antialiased modes.  This is due to the color levels used by the new 
code.  This will be fixed eventually by trial and error.  I suspect that 
tweaking contrast/brightness levels is what's needed.

The Display refresh rate options have been removed as they're no longer 
needed.


The biggest improvement is for G4 OS X machines - the new display code 
is fast enough to get a 5Mhz on average for a 500Mhz G4 running OS X 
10.3.9.   It uses about 60M of real memory and about 160M of swap (which 
includes things like profile disk images, and other mmap'ed data) on the 
same G4.


Other improvements:


Dual Parallel ROM cheat - if you have this ROM and are using it, the 
power on self test is very painfully slow, especially on older systems, 
the new version bypasses the test routines, so power on time is a lot 
faster.  Should future releases of the emulator support other expansion 
port cards, this method can be used there as well.

NOTE: If you do not enable the ROM cheats when using the Parallel ROM, 
and set the throttle to anything other than 5MHz, the Parallel ROM tests 
will not only take a very long time, but fail since they test CPU vs VIA 
timing.



Unlike most standard open source software, LisaEm doesn't use 
"./configure; make; make install" autoconf/automake method of building.  
However, Linux distro maintainers have scripts that make use of that, so 
I've built a fake configure script file that builds a makefile which 
acts as a wrapper around the build.sh script.


libdc42 updates allow access to both macbinaryII wrapped DART and 
DiskCopy 4.2 images, and detects Disk Copy 6 images.  (Since the 
NDIF/DMG file formats are undocumented, libdc42 cannot support them.)

Floppy code can now deserialize tools/install disks and offers the 
option on disk mounting.

Inserting a blank floppy works again.  Previously, it either attempted 
to install an existing floppy, or when inserting a blank disk whilst 
running Lisa Office System it would cause LOS to hang when initializing.

Added raw buffered keyboard mode to compensate for keyboard repeating 
when throttle >5MHz.

The Lisa's COPS Clock is now decoupled from CPU clock, so that the time 
is accurate regardless of the throttle setting.


Remaining known bugs:

Screen blurriness with new display.   This is a color levels issue. (new)

win32 crashes when built --with-rawbitmap (new)

Linux shows a black screen when built --with-rawbitmap (new)


There's a problem with MacWorks emulation which has existed for a few 
versions of the emulator - when quitting an application MacWorks gets 
stuck in a loop refreshing the desktop and reading from the floppy.  
This prevents the Hard Drive installer from completing as well.  I've 
done a bunch of swap & compile attempts to switch out parts of the 
source code to isolate the code causing this but haven't been able to 
locate the bug.

Scrollbar arrows overlap in LOS.  This has existed since the very first 
versions.



More information about the cctalk mailing list