[AD] My journey to the lost BeOS world

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


A copy of BeOS PE 5 had been sleeping for some time on my hard disk, so I 
decided yesterday to give it a try and installed it on my Win98 partition. 
Results: it booted (Win95 OSR2 and QNX RtP 6.1 don't boot any more after I 
installed a new 40 GB hard disk). The GUI bears much resemblance with the 
Photon MicroGUI of QNX 6.x, but the whole system looks more polished. Minor 
glitch: my legacy SB 16 ISA doesn't work (same thing under QNX).

And of course I played with the current CVS version of Allegro. Good news: the 
library built in normal mode. Little problem: it failed in WARNMODE because 
of an incomplete initializer. Patch attached (beos.diff).

Then I tried the test program: ok in most graphics modes, but a big crash in 
15-bit depth on my 15-bit desktop. The culprit is the non-MMX asm color copy 
routine (%ecx and %edx were swapped). Patch attached (icolconv.diff).

Then I wondered why the non-MMX routine was being used instead of the MMX one. 
It turned out that the MMX support was not compiled at all because of a bug 
in the makefile assembler test: a wrong option was passed to GCC that caused 
the SSE support to be tied to the MMX support. Now the GAS version supplied 
with BeOS doesn't support SSE instructions. Patch attached (mmxtest.diff).

I tried next the demo program: unplayable because the joystick has not been 
calibrated. I chose to disable it by setting joytype = 0 in allegro.cfg, but 
that didn't work (although advertised as working). Patch attached 
(joystick.diff)

Finally I implemented the synchronization routines so as to be able to define 
ALLEGRO_MULTITHREADED for BeOS too. BeOS has no notion of mutexes per se, 
only semaphores (that are of course über-mutexes). As a consequence they 
don't support nested locking, so I ended up defining my_mutex as I already did 
under Unix. Patch attached (beos_sync.diff).

And last but not least... a bogus ASSERT. Patch attached (modesel.diff).

6 patches commited.

-- 
Eric Botcazou

Attachment: be_patches.zip
Description: Zip archive



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/