User Tools

Site Tools

Translations of this page:



This article is an introduction to the philosophy behind the MIDRES library. This library was born, initially, as a set of functions that treated MIDRES graphics on C=64 (hence the name). Then, with time and like all things, it became a different thing also because, being written in pure C, it is easy to make a porting. So today it has become a library that allows you to program games on different heterogeneous platforms, providing an efficient engine for tiling.

In the transition from experimental project to library, I chose the isomorphic approach instead of providing an abstraction, and therefore the MIDRES library is an ISOMORPHIC LIBRARY.

  • IT IS A “LIBRARY” because it is “a collection of functions”;
  • IT IS “ISOMORPHIC” because it guarantees that the translation into machine code is done in the way closest to the execution target, REGARDLESS OF WHICH IT IS.

Usually the second point can be obtained in two alternative ways, both valid and widespread:

  • creating abstractions with a specific implementation, target by target (low efficiency and low development times [if the target has been implemented]);
  • creating a different software version for each target (high efficiency and high development times).

I chose an even different approach, because the computer is never “abstract” and the software is written to be identical for each target. It is a middle ground that tries to take the best of both aspects, so it is with high efficiency together with low development times: I called this middle ground isomorphism.