AROS: Update February 2, 2010 (or: How come Santa has pointed ears and say “meow”?)

Sometimes I would like to be a kid again and believe in Santa (or Baby Jesus, like my generation did) and write a letter with a wish list like ” Dear Baby Jesus, give me this year a new job :P” That is what I want for now , since AROS seems to really grow on its own now about software; rarely i seen so much software being ported or developed in that short amount of time. A good tihng is that some of the software ported comes from the other Amiga systems, confirming my idea about the joint market share: an Amiga OS flavor alone does not counts, but targeting all of them makes more economically viable do some port or new software, taking the new commercial game BOH and the new Cinnamon Writer port as an example of this trend.

And even the new release of Icaros Desktop is out; the version 1.2 packs some of the latest improvements and software together, adding some of its own, starting with some brand new ad-hoc themes made by Damir, also author of the original Ice theme and following with a game-related improvement of Amibridge that now wil load directly the .adf files in E-UAE (considered that janus-uae at the moment is still missing sound).

Here is, straight out from the Icaros Web site, the feature list:

new official Icaros Desktop themes and theme manager
– Updated SDL, MESA and many other libraries
– Grub2 hack to use netbook resolutions on Intel GMA900 GPUs
Poseidon now available as kernel module
Improved 68K apps integration in AmiBridge
. no double pointer anymore using workbench applications
. added more uaegfx resolutions in full integration mode
. Added Amiga games/demos ADF support with sound
– added ZuneARC to manage zip, lha, rar, tgz and other archives
– updated PortablE
– updated development chain with newer include files
– updated wookiechat to latest beta
– added support for audio CDs (PlayCDDA)
– added desktop wallpapers from artist Wilhelm Steiner
– added desktop wallpapers from abraXXious
– added many new games and emulators
– updated DosBox to latest revision
– added BOH demo from Simone Bevilacqua
– updated NoWinED to latest version
– added first Gallium3D demos for GeForce cards
– updated OWB to release 0.9.9
– added SDLBasic 1.0.2
– system files updated to December 2nd, 2009

So, if at the moment the core system development might have slowed down a bit after the big year improvements, especially Poseidon USB, the support of BIOS settings for screens from GRUB, the release as dynamic library of MESA and the actually in progress work of Gallium3d, is nice to see that the actual state of AROS and Icaros brought developers to use the new tools and libraries and to port more programs, for now mostly games but i can see some interesting tool out there.

Despite my efforts, i am sorry to announce that my talk proposal this year was not accepted from the SCALE organizing committee; who follows the Aros-exec portal might already know it, since i talked about that in the SCALE thread, but for all others am going to publish the mail received here:

Dear Speaker,
The SCALE committee has reviewed your proposal(s). Unfortunately, your proposal(s), while excellent, was(were) not accepted. SCALE again had many high quality submissions, so we could only accept a small fraction of those submitted (47 out of 195 submissions).We thank you for your interest in SCALE and we appreciate your submittal(s)! We hope you’ll participate in future SCALE events. The latest updates for the conference are available at http://www.socallinuxexpo.org

And so this year I went to SCALE as a visitor and not a speaker. When you are not a speaker things are different; first of all i found out you pay to enter: either 10 dollars for the expo only, 30 dollars for the talks or the full package for 70[!]dollars (but the talk followers also have occasion to eat lunch in a buffet).

Digital image
The Haiku stand at SCaLE 2010

Since was lacking money i decided to get the simple expo ticket and, once I registered in the automatic booth was able to visit the expo; the expo section was in a big lounge at the ground floor, and was quite packed with expositors and visitors; i was able to see again the former holder of the Kickstart 1 replacement Bounty, Greg Casamento, that was promoting OpenStep, and also, a couple of stands below, the Haiku stand, that drew a good amount of attention. I really am sorry that was unable to organise something for AROS due to my lack of money (and being at the time without a job did not helped either) and contacts, because there is interest towards it; just that people does not know its existence; i talked with some members of loca LUGS and this people sounded interested (i even gave a copy of icaros CD to aguy from the San Fernando local LUG), so in short is my impression that if AROS can show more that it does now, our user base and (hopefully) developers base will increase dramatically: have some plan to try to make AROS attractive for hobbyists and tinkerers, will explain more in the future.

After some time of inactivity Pavel “Sonic” Fedin is back to AROS development, and, beside the update and progress of the Winfdows hosted version, he started some more interesting gigs that are going to improve both AROS usability and its “Amiga” feeling: screen beeping, implementing changing pointers and screen dragging.

The first feature was something I used to kick and scream for a while on the early times of my advocacy: Pavel worked on updating some of the intuition compolnents and implementing a sprite machine in AROS graphics.library, and that also brought to review the pointer code. A first glance of the modification was announced on january 15 on the developer mailing list, but a more detailed announcement was made on january 18:

I’ve completed and committed implementation of correct mouse pointerhandling.First thing: now applications may change the pointer.Second thing: now we may get pointer preferences.A new pointer code is verified to work with SDL driver. Also it ishighly expected to work with VESA mode (since it uses the same genericsoftware implementation in fakegfx.hidd).Also it is expected to work with ATI and NVidia drivers.It will not work with VGA driver, it still will display hardcoded redarrow. An overhaul of the driver is needed, i’m going to do it.The default pointer image hardcoded in Intuition really looks likealmost white triangle with a shadow, it’s not a bug.Now some technical details…The whole thing works using graphics.library ExtSprite engine. Itsbehavior is modified according to the following:
1. There is a support for only one sprite in our display HIDD API. Thesame applies to graphics.library. GetExtSprite() always returns -1.This means that we have only sprite #0 and it’s always allocated bythe system. Intuition.library never calls GetExtSprite() or FreeSprite().MoveSprite() on sprite #0 changes mouse pointer position. ChangeExtSprite()on sprite #0 changes its look. Any other sprite number is ignored.Old private pointer handling functions are removed.
2. Colors of the sprite are 17-19 colors of the screen’s palette, thesame as on original Amiga. For truecolor screens these colors aregrabbed in ChangeExtSpriteA() and attached to the internal spritebitmap. This means that setting palette has no effect on actualpointer colors until next ChangeExtSpriteA() (in intuition thishappens at least on every window activation). For LUT screenseverything will work. If the screen has less than 24 colors, it’simpossible to use 17-19 colors. In this case pointer palette entriesare shifted down to be 3 colors before last 4 colors of the screen.For example these will be colors 9-11 on 16-color VGA screen. Yes, thepointer may look not as expected if the application specifies a custompalette for the whole screen, but there’s no way to work around this.
3. In theory the same system can support truecolor sprites. Note thatAllocSpriteDataA() constructs sprite data from the bitmap. This meansthat we could pass any bitmap to it, not only planar 2-plane bitmap.Even truecolor bitmap with alpha channel. Currently this is notsupported because of two restrictions:a) AllocSpriteData() always creates internal sprite bitmap in LUT8format. In order to support another formats AllocSpriteData() just hasto be a little smarter and determine if source bitmap is a truecolorHIDD bitmap.b) Display drivers always expect pointer shape in LUT8 format. Thisis also simple to overcome, but there’s one little problem – it’sproblematic to dislay a truecolor sprite on a LUT screen. Let’sremember that the user may run in VESA or even VGA mode, and theuser should see at least *SOME* pointer image.

The topic generated intersting discussions and ideas: so far the actual pointer is no more the os-3 arrow but a translucent red triangle; Matthias “mazze” Rustler is working in developing the pointer preference panel that should work like the old Amiga pointer preferences, plus the possibility to import os 3 pointer files and .png cursors; I tried the feature in a new build and seems to work fine.

pointer_changes
The scout port is one of those programs that already have a working reactive pointer, and is a good feeling:)

The screen dragging is still under work by Sonic, that also took advantage of the occasion to try to give a clean-up and remodernation to the graphics.library code and add new functions; this work might also bring even more improvements on AROS graphic internals; in this thread on Aros-exec[link] i asked Pavel to explain better what is going on, since the discussion in the mailing list is pretty technical and fragmented: here is the transcription of its explaination:

First of all, i’ve changed a way how graphics.library works with displayable bitmap objects. I made a use of ViewPortExtra structure. Now AROS behaves the same as original AmigaOS:
1. You prepare a viewport using MakeVPort(). During this call a bitmap is validated and internal pointer to a bitmap object is set up in ViewPortExtra->DriverData.
2. When you’re done with ViewPorts, you call MrgCop(). Yes, we do not have copperlists, but we have something other to prepare. MrgCop() traverses through the list of ViewPorts in the view, and for all ViewPorts with unset VP_HIDE bit it links together DriverDatas in their ViewPortExtras. So, at the end we get a ‘displaylist’ attached to a first visible ViewPort.
3. When we call LoadView(), i just take this display list and feed it to the driver via new HIDD_Gfx_ShowViewPorts() call. The rest is done by the driver. It keeps track of currently displayed bitmaps internally, so at this point it adds new bitmaps and removes old ones.
This system is future proof in two points:
1. This is compatible with future classic Amiga port. Since OBTAIN_HIDD_BM() is used inside MakeVPort() in order to get a bitmap object, this can perfectly handle classic’s planar bitmaps. A temporary object of planarbm class will be allocated by graphics.library.
2. The same scheme would work in multi-monitor environment. Just MrgCop() will need some more intelligence and build several displaylists for several monitors.Currently i’m busy with intuition’s inputhandler. In general it is already capable of handling multiple screens, but still have some problems with it. This is the most difficult part of the task because inputhandler code is a huge piece of mess, almost with no comments. There are lots of quirks in it.
Also i don’t know how it would work with relative mouse drivers. Mouse input on hosted AROS works in a different way – we just get absolute coordinates for every event, like with a tablet or touchscreen. So more problems can pop up when i go native.When i’m done with the inputhandler, probably i will continue with improving graphics. My current ideas:

1. Rootless mode for hosted. This means – one host window per screen, all screens are simultaneously visible. This would require further reworking of input because different host windows would send events to different screens. Perhaps this task has many things in common with handling multiple monitors.
2. AROS bounty N22 (graphics enhancement). I will be able to rework display drivers handling in order to be able to add them at runtime. Also perhaps i can implement a support for multiple monitors. This will require serious rework of related graphics.library internals. However at the end it will look the same as in other systems: DEVS:Monitors directory with one or more drivers inside. I already have some ideas about future implementation. Some of them were/are already discussed on the ML.

My best wishes for the work of Pavel, considered also that lately he achieved good progress in what he is doing.

Last January a discussion in Aros-exec brought the first draft of a more complete Wireless stack for AROS: the wireless technology is already supported with the prism2 chipset but, as stated in the discussion, its implementation is kinda obsolete, not supporting security protocols as WEP and being tied to the single chipset; the main goal of the bounty is to provide a reliable stack not tied to any chipset in particular, so that separate device drivers can be written to interface with it and its future extensions and improvements; by the way the requirements include at least one driver to be written, and the focus of the submitter (Colani1200) fallen on the netbook’s widely supported Atheron chipset.

The bounty is gone online on power2people on January 18 and is, also thanks to the initiaitve of the aros-exec user Terminills that decided to match every other donation until the bounty reached the $2000 quote, actually the highest active, despite being still far from the $4170 record quote achieved from the Poseidon bounty last year.

The wireless bounty also match efforts in developing drivers for netbooks and other Atom boards as the commercial iMica and Ares one, since most of the hardware is usually similar; it is not a surprise then that new AHI sound drivers were actually developed from a Davy Wentzler, programmer of the Audio Evolution audio recording software on the Amiga platform and now on Windows and OS-X (hoping for support on AROS one day), paid from an initiative of Steve Jones. The provided sound drivers were mainly prepared for the iMica boards,that use the Atom support chips but, according to Steve jones words,most of the HD Audio boards should work; from the news in AROS-exec, those are the supported sound cards:

  • Terratec Aureon Sky
  • Terratec Aureon Space
  • Terratec Phase 22
  • Terratec Phase 28
  • M-Audio Revolution 5.1
  • M-Audio Revolution 7.1
  • ESI Juli@

Davy accepts paypal donations at the mail link provided oin the aros-exec news article.

Yannick “Yannickescu” Erb is another guy that, like Fishy_fis, started do porting of programs and games for AROS; we talked about its efforts int he past when he released the WHDMenu tool; he did not stop, though. Let’s a couple of its remarkable works:

The first utility is ZuneArc: it is a graphical front-end for archivers such as zip, lha, tar and others and was a long-awaited in AROS world, since so far the almost only way to handle archives (beside some lucky guy that was able to go around dopus limitations) was to use the shell command line.

zunearc_ok
The ZuneARC user interface

The program is written in C and its GUI reminds me a bit the first versions of winzip as user interface. The use is pretty easy: clicking “open” a requester will appear: just select your archive to unpack and confirm: the content of the archive is displayed in the list below the buttons. At this point is possible to add/remove files from the archive or to extract either the selected files/directories in the list or the full archive content. Thanks to a text config file, ZuneARC can be extended and customised to handle more archive formats (having, of course, packer and unpacker programs ported on AROS).

Another program ported by Yannickescu on AROS is a VNC Client that will allow to pilot a remote computer from AROS. Yannickescu worked also on porting the server part but for now he is stuck with some unsupported functions.

vnc_capture_ok
ArosVNC showing my old laptop windows screen on the other room

The port of Yannickescu has a starting GUI written in amilua/zulu and the performance are quite good, considered that I tested form my qemu machine, therefore in native might be even better, even though i haven’t tried yet.

Yannickescu is also working on a Windows Remote Server client that is actually under beta testing by several AROS developers including Paolo Besser.

The home page of Yannick “Yannickescu” Erb, form where is possible download all those software and much more, is here.

A new text editor comes to AROS and bring a much wanted feature with him: syntax highlighting.
Annotate is a lightweight text editor, previously released by the original author, Doug Bakewell, under GPL, has been ported to Amiga OS4 and lately to AROS by Daniel Westerberg.

Annotate is distributed in an unique lha file containing the executables for all Amiga systems; unique requirement is to copy the AnnotateSyntax.xml file in ENVARC: in order to make the changes persistent.
Annotate has also a macro system and a full AREXX port so that whoever (not me, pity) has the skills can program it for macros and to test files.

By the way, having finally a syntax highlighing editor on AROS (beside Vim, that i have been unable to run in the last version), inspired me to enhance the experience.
So I gave a look at the file AnnotateSyntax.xml and found that every new language has its own XML base tag plus a group of subtags that can make the language syntax react appropriately; starting form this I made a first draft for a LUA syntax highlighting taking as reference the Notepad++ LUA syntax file.

annotate-lua_ok
Annotate showing a LUA file using my syntax rules

It reacts quite nicely to the base LUA syntax but haven’t found a proper way to make it react to the zulu syntax yet; i based my implementation of the zulu syntax from an HTML guide for MUI

Interesting news even on the Kickstart replacement Bounty phase 1: the bounty changed hands and now the new holder is Gary “Gaz” Pearman, a programmer and web developer with a background on linux and Amiga programming in C and E; he set up a blog where is possible to track down (once again) the development; the fact that the blog has already some articles, not only one, is a good sign that Gary is involved in the project. So what did he do so far?
At first he tried to follow the same route of Greg “bheron” Casamento, trying to get Aranym to work (Aranym is an Atari ST-oriented 68k virtual machine that can be used as a generic 68k machine) in a 68k port of Debian but, after several misadventures including an incorrect disk image, he seen that aranym on 68k was pretty slow and without network support so he decided to work on real hardware and try to compile the kernel first; since seems there are no supported GCC symbols on the compiler he is using, but seems he found a solution taking some needed assembly implementated functions from the mac port of GCC. This bounty has been around for a long time so it is obvious that people is eager to see results; so far things are proceeding in the right way…

[AROS alive]
Roman Berle made come out the third part of its promotional video on AROS, called AROS alive. It took several time for Roman to come out with this one but we can see, from the way he used tripod for camera placements, the attention to detail put in the captures and the sound mixing, that he improved its skills and the end product looks really well done and professional. I personally would have liked to bring AROS alive last year as community promotion example at SCaLE, but my set up at the time was uinable to show it with sound.

In case the above video embed does not work, the AROS Alive video can be seen in youtube at this link.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s