Color Generation in IBM CGA, EGA and VGA

(September 9, 2018)

It started quite innocently with a few Twitter threads about retro DOS gaming. The question was why no games (or any other software, for that matter) that were designed for EGA graphics cards made use of the additional colors EGA could offer. It’s widely known that EGA cards had a reprogrammable palette and could show any 16 out of 64 available colors on screen; but still, all software of the time just used the 16 default colors that were already possible with CGA graphics. Some explanations to this phenomenon were discussed, but it was mostly centered around what was possible and not why. Falling prey to nerd sniping, I dug deeper and deeper into the topic, including writing test programs in BASIC and Pascal, and now I finally understand everything about color generation in CGA, EGA and VGA cards.

Read more …

Sony Xperia XZ1 Compact review

(April 16, 2018)

I got a new phone for christmas, a Sony Xperia XZ1 Compact, to replace my old (well, not that old actually) Xperia Z3 Compact. After using it for a few months, I’d like to share my experiences with this phone.
Read more …

Tricks and Techniques used in Demoscene Intros

(September 30, 2017)

Following up on my quest to produce small executables, I turned my findings (along with much more information about general techniques used in size-constrained demosccene productions) into a presentation, held at Deadline 2017:


download the PDF file (5 MB)

Writing ultra-small Windows executables

(April 17, 2017)

How small can a valid and useful Win32 executable be? There already are a few tutorials about this topic, but these are either not working on modern Windows versions any longer or only cover the most basic »do nothing but return zero« program. The goal here should be to do something genuinely useful: a console application that outputs the contents of the Windows clipboard on standard output.
Read more …

Linux Graphics Demystified

(May 2, 2014)

It’s already been a few weeks since I held a presentation at Chemnitzer Linuxtage (»Chemnitz Linux Days« – a small Linux congress held at the university I used to attend). As it’s about a topic that might be of general interest, I translated the slides into English and made them available as a download (click on the thumbnail above; PDF, 302 kB). The German version is available for download as well though.

The topic is graphics on Linux. That’s a field that used to be simple a decade ago: There was the X Server that did graphics, and not much else. In the recent years however, dozens of new graphics-related technologies cropped up. Most of them have strange names (»Wayland«) or acronyms (»UXA«), some are outright misleading: most people immediately associate »DRM« with Digital Restriction Management, though another expansion of the same acronym – the Direct Rendering Manager – is the centerpiece of modern graphics on Linux. This presentation is aimed at making some of these things clearer.

Read more …

PhotoJoin, a photo synchronization tool

(November 4, 2012)

In this post, I’ll present a solution to a common problem that occurs quite often nowadays: Merging photos from multiple people into one continuous, consistent stream. It is definitely not the first solution to that problem, but since I couldn’t find a tool that solves this in exactly the way I want, I just did it myself, as usual ;)
Read more …

The most evil feature ever conceived: the Exif Orientation Tag

(May 5, 2012)

There are some advances in technology that are actually steps backwards: features that look nice on paper, but always get in the way when implemented in reality. One of my pet peeves in this category is the Exif Orientation Tag, a little flag present in JPEG files generated by digital cameras that causes all kinds of havoc. It’s one of the places where the old proverb »the road to hell is paved with good intentions« holds true, because the idea behind this flag is a good one, whereas the flag itself is a product of pure evil. But let’s start the story at the beginning …
Read more …

Another new toy: Sony SLT-A77V

(February 6, 2012)

After six years, it was time for my good old Fujifilm FinePix S9500 bridge camera to be replaced by a more recent model. It served me well during all the years and still works perfectly. However, it’s only equipped with a 1/1.7-inch sensor, which limited its usefulness to the range of ISO 80 to 400. Even my second camera, the compact FinePix F200EXR, fares a bit better in this respect, but that’s just because it’s a little bit newer (2009), not because it has a larger sensor.

During the DSLR boom of the recent years, I occasionally felt tempted to upgrade to a APS-C or at least Four-Thirds model, but I was always kept back because of the miserable handling: Not having an electronic viewfinder means that adjusting any parameter except exposure compensation and ISO requires to move the camera away from my head, look at the rear screen and put it back. Somehow most people don’t seem to mind that this is extremely awkward, but I do.

In 2010, however, Sony fixed that problem with its SLT technology that premiered in the A55. I was close to buying that camera, but then I read about its heat issues, so I wanted to wait for the next generation of SLT cameras instead. This has been introduced in fall 2011, but there has been no direct replacement for the A55. So I decided to go »all in« and buy the top-of-the-line model – the SLT-A77V, especially after its very positive reviews. Here’s what I think is particularly good and bad about that camera.
Read more …

Fake screen resolutions in kkapture

(September 27, 2011)

(Disclaimer: This posting is likely of no interest to people outside of the demoscene :)
The small tool kkapture by ryg of Farbrausch is the only sane way to get a video dump of demos, intros and similar stuff. By grabbing all video and audio output directly from their respective APIs (OpenGL/Direct3D and WinMM/DirectSound) and simulating a fixed time base for the client application, it produces perfect-quality smooth video files suitable for Blu-ray Discs, for example. kkapture doesn’t alter the demos in any other way, though – in particular, the screen setup code from the demos is left untouched, with the result that it’s not possible to kkapture most demos in resolutions higher than the display currently attached to the computer. I did a little modification to kkapture’s code that changes this and allows things like 8-megapixel kkaptures.
Read more …

Server move and update

(June 4, 2011)

As you may or may not have noticed, I moved servers today. I have my own small (virtual) server at emphy.de for a few weeks now and I finally came around to moving the blog from s2000.ws/s2000.at to its new location. While I was at it, I updated WordPress from the ancient 2.7 version to a current one – and I updated my old theme to use WordPress’ widget system and freshened the CSS up a bit. Also, thanks to the widespread adoption of web fonts, I can now present the blog in a font that works on all platforms with all modern browsers – Google’s Open Sans is the font of my choice. I hope you enjoy it :)