John Tsiombikas' personal web site
[ about - software hacks - hardware hacks - articles ]
My name is John Tsiombikas (alternate spelling:
Tsiompikas) and I'm a hacker. Most of the time I'm hacking on computer graphics,
sometimes operating systems and kernel code, and lately a bit of electronics.
If you want to talk to me, drop me an email at firstname.lastname@example.org
(also here's a complete list of all my past and current email
addresses). Send me only proper plain-text emails hard-wrapped at
72 columns, or prepare to meet my bit-bucket.
You may use my GPG key (fingerprint: 7911 86F0 D58B
5487 EB91 82D6 B4AF 109C 4174 CFF2) to send me encrypted
messages. It's also available on public
Other than this web page I've got some
videos on youtube,
a blog which is now hosted here as well,
and a twitter account, mostly for
Support the Free Software Foundation, by becoming an FSF associate member
Once I tried to maintain a list of hacks and projects in this section. Then I
realized the futility of keeping the list up to date, and dropped it.
Nowadays I'm hosting most of
my projects on github,
so just go there for the most useful of the lot.
A few of my old projects are on
sourceforge, along with freeglut,
which is not one of my personal projects; I'm just one of its current maintainers.
I'm also self-hosting a bunch of
git repos for my more
experimental, or less widely useful/interesting hacks. Some of these have been since
moved to github when they became more fleshed out, and I never bothered removing the
original repos, so check on github first if you find something interesting here.
I've been involved in the demoscene. I've been a member of
and Mindlapse under the
alias nuclear, and as a member of the joke group
MLFC under the alias code ninja.
Here's a list of demoscene productions I've released:
- mindflush / mlfc - demo, 2nd at pixelshow 2007 (cross-platform, opengl) [youtube video]
- pixelshow2007 invitro / the lab - invitation for the pixelshow 2007 demoparty (cross-platform, opengl)
- softy / mlfc - demo, 4th at the coder.gr x-mass 2006 compo (cross-platform, software rendering) [youtube video]
- summerhack / the lab - demo, released in 2005 (cross-platform, opengl) [youtube video]
- eternal / the lab - demo, 3rd at react 2004 (gnu/linux, opengl)
- wedtroid / the lab & quadra - wedtro for cybernoid's wedding, released in 2003 (windows, direct3d 8)
- absence / the lab - demo, 3rd at react 2003 (windows direct3d 8) [youtube video]
Finally feel free to browse the software directory of my web
site, for various web pages dedicated to some of my software hacks
I'm very interested in homebrew computers. So far I made
a rudimentary Z80 computer, and a more usable
Motorola 68000 computer.
Recently I acquired an Amiga 500, and I found it very easy and enjoyable
to extend it, in order to facilitate my software hacking. Head over to my
Amiga hardware hacks section for more details.
Most of my hardware hacks don't have a dedicated website. But you can find videos
about them on my youtube
channel. Also something might pop up in the hardware hacks
directory in the future, so feel free to browse there if you're so
Here's a list of articles I've written (apart from whatever is on my blog) in reverse chronological order:
- SNES hacking notes - A collection
of notes I'm keeping as I'm experimenting with hacking on the Super
Nintendo Entertainment System. 7 July 2020 - ?
- Bare Metal PC Hacking - A series of short
posts about low level PC hacking. About writing code that boots
and runs on the bare machine, without the help of an operating
system. ~ 19 April 2018 - ?
- SEGA Mega Drive PAL/NTSC
switching - how to modify a SEGA Megadrive (Genesis) to
switch between PAL and NTSC modes with a toggle switch. ~ 22 March 2017
- Practical Makefiles, by example - A short
tutorial on how to write practical makefiles for your projects. ~ 9 February 2015
- Color Space Linearity and Gamma Correction
- an article explaining the issue of linear vs non-linear (sRGB) color space, and how
to correctly perform lighting calculations in a linear color space with
OpenGL. ~ 26 October 2012
- Kernel programming from scratch - an ongoing
series of articles for the linux inside
magazine about writing a rudimentary operating system kernel from scratch.
Currently in greek only. ~ 1 March 2011 - 1 January 2012
- Fast & easy fractals with a pixel shader
- A tutorial on calculating the mandelbrot and julia fractals directly on the GPU
with the OpenGL shading language. ~ 6 February 2006
- Preparing for GBA development - A
small article guiding you through the process of setting up the necessary tools
for GameBoy Advance development. ~ 29 January 2006
- Pointers explained - A clean
and concise explanation of pointers in C and C++ for beginners, who often have
trouble understanding how to use them. ~ 18 July
- Shadow volumes
tutorial - Tutorial on the shadow volume (stencil shadows)
algorithm. ~ 22 May 2003
- 3D graphics programming series - Unfinished series about 3D graphics
algorithms. Only the first issue was ever completed, about 3D math.
~ 27 August 2002
- Introduction to Direct Draw (in greek) -
Continuing from the previous Win32 tutorial, this article describes how to use
the Direct Draw 7 API for fast access to the framebuffer.
~ 8 August 2001
- The Basics of Win32 Programming (in greek). ~ 8 June
- Huffman Compression (in greek) - Description of the Huffman compression
algorithm. ~ 6 April 2001