HDRLab Home

Kia-Ora! Welcome to HDRLab. My name is Hans de Ruiter, and this website is devoted to various software development/engineering projects of mine (mostly Amiga OS 4 related) and anything else that I find interesting (e.g., electronics, mechatronics, or anything engineering related).  If you're into technology, building things, or are just curious, browse through this site using the menu above, or have a look at the recent updates below. Feel free to contact me if you have any suggestions.

Recent Website Updates


RadeonHD Driver Hardware Compatibility

This page lists all hardware that has been tested with the RadeonHD.chip driver. A list of places to buy these cards can be found here.



make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3

I was using GCC on Windows recently for an embedded project, and discovered that I couldn't use "make" to build my projects. It always failed with the cryptic error:



MiniGL

 A gears demo

MiniGL is not actually one of my projects, but I have spent a significant amount of time and effort on MiniGL, so it deserves a mention. MiniGL for Amiga OS was originally developed by Hans-Jörg Frieden and Thomas Frieden for Hyperion-Entertainment's game ports to the Amiga (e.g., Freespace, shogo). As such, it was designed to support the subset of the OpenGL 1.3 API that was used by these games - hence the "mini." The goal was also to make it as fast and efficient as possible, particularly as Motorola's 68K series processors were already lagging behind in processing power. 3D hardware acceleration was performed via the Warp3D library.



Full-Screen GLUT

The same rotating triangle as previous templates, but on its own screen.
The same rotating triangle as in previous templates, but full-screen.

Sometimes it is preferable to run a 3D application in its own screen, particularly for games. The first time that I wanted to do this, it took a surprizingly long time to find the documentation required, particularly considering that obtaining full-screen operation requires only 1-2 lines of code. This template has two different methods of opening a full-screen. These can be found in files GLUT-fullscreen.c, and GLUT-fullscreen2.c. The makefile will build both examples.



Frame-Rate Independent Animation using GLUT

A screenshot of the unaltered GLUT template
 A triangle that rotates at constant speed regardless of CPU load.

You may have experienced old computer games running so blazingly fast that they are unplayable, when run on a newer, faster, machine. This is due to the game relying on the timing of the specific machine for which it was designed. The basic GLUT template has the same problem. Try resizing the window. Make it small; notice how the triangle now spins at a ridiculously fast rate? Now make the window as big as the screen; the triangle slows down? This is because the different window sizes take different amounts of time to draw, resulting in different timing depending on the window size. The template simply uses 100% of the available CPU time to render and animate the triangle, with no regard to timing. This becomes even more annoying when another CPU intensive task is involved; the other task (or tasks) will cause the GLUT application timing to vary, resulting in stuttering animation. Thus, software such as games must be designed to compensate for variable timing. Methods for achieving this using GLUT are given below. 



Silverstripe/PHP Projects

Silverstripe logoThis section is devoted to projects related to Silverstripe, and PHP/web-programming in general. These projects were often started in order to extend this site's functionality. Silverstripe is the Content Management System (CMS) that runs this website; it is written in PHP, a powerful scripting language that is well suited to web-development.



R5xx Compositing is Done

R5xx compositing on Amiga OS 4.xI am pleased to announce that compositing for R5xx based cards (Radeon X1000 series) is now done. This marks a major milestone in the development of the RadeonHD.chip driver. Namely, full 2D graphics acceleration is implemented for an entire series of graphics cards. The screenshot below shows  Workbench with compositing effects enabled being displayed by a Radeon X1550 graphics card. As you can see, the errors that were present in the previous screenshot are now gone (the development log entry containing the previous screenshot is included in the image below for comparison).



RadeonHD Driver

The goal of this project is to write an Amiga OS 4.x graphics driver for R5xx and higher graphics cards. One of the motivations for this is that, my computer vision research extensively uses shaders that are present in modern GPUs. None of the existing supported graphics cards for Amiga OS 4.x support shaders.  Shaders are rapidly becoming an essential component for running newer games. This project, however, focuses on the 2D driver, not 3D. Without a 2D driver, there will be no 3D driver. Hence, this is the first important step toward supporting more modern graphics cards. Once the 2D driver is in place, and a full MESA port is underway, a 3D OpenGL driver can be considered.



Month in Review - January 2009

This month has seen a move to a newer, faster server. Just to give an idea of how much difference this makes, Google's search-bot took an average of 2.2 seconds to download a page on the old server, whereas a page download now takes about 0.5 seconds. That's approximately 4 times faster. 



Month in Review - February 2009

This month has seen further development of the RadeonHD driver, and a few more OpenGL templates. Fewer additions to this website occurred because I have been spending more time working on various projects. Unlike other websites, adding pages to this site requires extra work to develop the software/technology upon which the page is based (except for random musings in this blog). This results in fewer updates, but also less rambling.