AmigaOS 4.0 - the fourth pre-release update
It seemed to be that update 3 of June 2005 was the last OS update before final release. However, it was not. On February 8, 2006 the users of Amiga One have been granted access to the next update of AmigaOS. Consequently, we decided to examine it closer.
Motorola 680x0 CPUs emulation
The most important element of this pre-release update seems to be JIT emulator Petunia, originally announced as a part of the final issue of the system. JIT is for "Just In Time" - a special technology of generating native executable code on the basis of code being translated. Motorola 680x0 CPU family is closely tied to Amiga computers since the begining of Amiga itself. AmigaOS 4.0 is the first version of the Operating System for Amiga computers natively compiled for PowerPC processors. However, it does not mean we may forget about 680x0 processors at all. The newest Operating System contains special facilities to emulate old processors in software beacause of compatibility with software created for previous versions of AmigaOS. AmigaOS 4.0 starting from the 4 update is equipped with two independent software emulators of 680x0 CPU family. Operating System identifies emulated processor as 68020 CPU with 68881 math coprocessor but in reality it serves compatibility with the codebase up to 68060. The first interpretive emulator is part of the OS kernel as (emulator.resource). It has it's main advantage in short response time well suited to handle time critical mechanisms as for example interrupts. The second emulator (petunia.library) performs its job on the basis of just-in-time (JIT) recompilation ie. code translation in only just enough parts for the needs of first execution with consequent storing these parts in memory for future executions. Such approach is well known in JAVA Virtual Machine environments. The advantage of such "on-the-fly" translation and store, from the old 680x0 code to the new PPC code is high speed of emulation leading to very good performance of execution the old code. This performance reaches level impossible to achieve by hardware processing units mounted originally on the mainboards of the former Amigas. The main disadvantage is quite a large memory consumption, so AmigaOS 4.0 provides the user with free choice of suitable type of emulating. Default setup causes all programs created for AmigaOS up to version 3.9 to be executed through Petunia's JIT. However, Petunia may be suppressed totally if more important factor is low memory consumption rate than speed of execution. In order to do that the user is allowed to put the line:
he/she may find in the file Kicklayout into the comments. This file constitutes the kind and order of external modules being loaded from hard drive into the kernel during first stage of booting the AmigaOS. Since the advent of the 4 update, Kicklayout offers the user four configuration setups of booting:
- Default Debug
- Default No JIT
- Debug No JIT
The majority of old 68k software performs very well and fast even through conventional interpretive emulation. The huge performance gain from Petunia's JIT is the most distinguished in cases of heavy calculations or frequent small calculations in the short periods of time. The last example most frequently deals with amusement software.
TVPaint test picture loading - 2560 x 1920(in seconds)
Performance tests for 750 GX 800 MHz, in seconds, Cinema4D, scene Delphine
LightWave, scene Truck
There is mechanism of preventing programs from being executed through JIT emulation. This mechanism consists of text file applications.dos in Devs directory and preferences editor with cute name Compatibility. Text file serves as black list which keeps for Petunia information describing what programs have to be excluded from execution through the JIT emulation. Petunia deals with these informations utilizing dos.library. The user is not forced to edit this black list manually. Preferences editor, Compatibility is designed to ease management of information collected in the black list through drag&drop mechanism. The user is allowed to drag icons of programs and drop them into editor's window. One man has to remember that typical software package consists of many different modules, libraries, plugins and executables. All of them may be configured in Compatibility editor separately. There is an option to reenable JIT emulation for a program without removing coresponding entry from the black list. This option is particularly useful during testing new versions of the JIT emulator. There is another reason why Compatibility application performs duties as information window for programs put in the applications.dos file handled by dos.library. In AmigaOS 4 this library has quite big capabilities in the area of resource tracking and alerting the user about strange behaviour of running software (mainly the older one).
The user is allowed to notify the Operating System of his/her need to be informed or not about such behaviour by putting suitable entry in the applications.dos file.
The New Picasso96
There is no need to use noncomfortable Picasso96Mode in order to set up basic screen modes. That old fashion application probably dissapear in final version of the system at all. Now, it is possible to enter proper values (according to monitor specs) to the ToolTypes of the drivers icon:
- VSYNCMIN - vertical minimum synchronization
- VSYNCMAX - vertical maximum synchronization
- HSYNCMIN - horizontal minimum synchronization
- HSYNCMAX - horizontal maximum synchronization
- MODE - screen mode, syntax is as follows:
|MODE=640x480@85||adds the mode 640x480 85 Hz for screens with all colour depths|
|MODE=1024x768@100i||adds the mode 1024x768 100 Hz with interlace for screens with all colour depths|
|MODE=800x600x8@75||adds the mode 800x600 75 Hz, only for screens with 8 bit colour depth|
|MODE=800x600x8,16@75||adds the mode 800x600 75 Hz for screens with 8 or 16 bit colour depth|
Of course, the user is still allowed to define nonstandard screen modes and test it by puting the path to that set up in the ToolTypes of the driver.
We executed speed test of graphics with P96Speed benchmark program ran on micro Amiga One equipped with Radeon 7000. The results (in Polish) were collected in our service on the page Benchmarks. The graphical operations have got quite a large boost, and ScreenToFront() feature was the biggest surprise to us. Previously it had worse outcome on new micro Amiga than on old A1200. Now, it is over 80 times faster! Probably, such increase of the speed is due to the new version of the Intuition, which we have described below.
The new 3D drivers
The 3D acceleration is available in the 4 update for: Voodoo 3/4/5 and ATI Radeon, models 7000, 7200, 7500, 9000, 9200 i 9250. The errors in minigl.library regarding Radeon gfx cards have been fixed and consequently the game Heretic II works well. We have noticed quite a large boost of performance regarding to nonpublic version of the FPSE Sony Playstation emulator with 3D acceleration code.
Quake 1 - timedemo demo1, Heretic II - timerefresh, maximal amount of details, beginning of the training level, Quake 2 - timerefresh, beginning of the first level