OS compliance vs. Direct Hardware Access

It would be nice to see more amiga programs getting away from direct hardware banging (direct hardware access), and going to a more OS- friendly style of coding. This would increase the chances that current software would run on future machines as the underlying hardware changes, but the OS API remains the same, or similar enough to avoid a recompilation of the code.

There are situation where direct hardware register access is unavoidable, but this is mostly due to hardware speed limitations of older hardware. Case in point, Chunky To Planar conversion routines needed for AGA and older chipsets where speed is the ultimate goal. In case you'd like some examples of this, please visit Orbis's Programming Page.

The types of programs usually using these direct hardware access routines are games and 'demos', where graphics and sound presentation speed are of the utmost importance. In a world of fast PC and Mac graphics, many Amiga users/programmers feel that anything goes when it comes to keeping up, even with older hardware.

Programs that are meant to be run through Amiga's Workbench windowing environment have little excuse not to use the OS's built-in graphics functions that should remain consistent over different hardware implementations. It is very unlikely that Workbench program will do any direct hardware access, but is still not unheard of.

Of course, device drivers for new hardware are another subject...

Retargetable APIs

With the advent of new Retargetable Graphics and Audio Subsystems, there are a new group of APIs (Application Programming Interfaces) to deal with. The more the better...?

In the Audio arena, things are simple, there is only one retargetable audio system at the time of this writing: AHI (audio hardware interface). This system will support most add-on amiga audio boards, including the built-in Amiga Paula audio circuitry. Hopefully, new amiga's will use this, or a compatible retargetable audio system, since many programs now offer direct AHI support.

On the graphics side, there have been 3 separate retargetable graphics systems: EGS, CyberGraphX, and Picasso96. Each has it's own API. This has caused some fractioning of support.

The EGS system shipped with many older graphics boards, like the Piccolo and Spectrum. However, it hasn't seen any updates in over a year, and has probably been discontinued in favor of supporting newer systems.

CyberGraphX, which was shareware, then commercial, and now freeware, originally was available for download from the Aminet, then shipped with Phase5's CyberVision64 and CV64/3D cards (and the upcoming CyberVisionPPC). It has been recognized as the de-facto standard in retargetable graphics systems and has had widespread support in the form of many software programs, and games.

The newest entry in this field is Picasso96. Not only is this one free for download, it also has seen a fast software and hardware support growth since it's introduction in late 1996. It is also %95-%99 compatible with CyberGraphX-specific programs.

Combining the Graphics APIs

Out of the need for supporting multiple Graphics cards APIs, was born a new API to encompass them all: RTGMaster. This system, freely available on Aminet, provide the graphics card programmer with one API that will then be translated into the graphics subsystem chosen by the user (whether the underlying system is EGS, CyberGraphX, or Picasso96). This library is mostly for game/demo programs, but can conceivably be used for other purposes.

Also included in this package is some rudamentary TCP/IP programming support, direct 3D hardware manipulation (for cards with dedicated 3D hardware), and support for the new WarpUp system for PowerPC accelerator cards. This system really has some great potential and is already being used in commercial games, with more slated to appear soon. The free download includes all documentation and support libraries, sample code, and header/includes for developers. There is also the User's archive which is just for those who wish to run RTGMaster-aware programs.

Next Page.