_ main _ coding _


Welcome to my coding section. A place of fun and joy for everyone with a computer, would be wrong to call it, but it has at least one game, with more planned for the future, as usual. It now also features two (semi-complete) libraries and a header file! (Weeeee)

ALL SOFTWARE HERE IS PROVIDED 'AS-IS'. THEY ALL COME WITH ABSOLUTELY NO WARRANTY!
Any and all use of any software provided here is at your own risk, I can in no way what-
so-ever be held responsible for any damage done by the use or disuse of any software
provided here, no matter how it happened.
If anything strange should happen, please notify me of it with as much information as
possible and I will do what I can to correct it.


Games:
- Black-Hole (a four-way block puzzle game)

Libraries:
- GMLib (a GUI and Sound etc. library for use with SDL)
- DFF (a compressed file format library.)

Other:
- Mingw32 Fake Portability (a header-file to ease the use of Mingw32)



Black-Hole


Black-Hole is a block puzzle game set way out in space, with blocks coming from four different directions. It was originally made for a make-a-tetris-variant-competition (where it finished 4th).

Information:
Black-Hole is built upon the Simple Direct-media Layer (SDL), with GMLib inbetween, and is availible for both Linux and Windows 9x. The Linux version is dynamically linked to all the libraries it uses. This means that you need to have those libraries installed to use it.

You can now, however, get Black-Hole as source code, which of course means that you'll need all these libraries for all versions. (source-code, that is). This will hopefully help sorting out a few problems that have appeared when trying to play this game at (almost) anyting else but my own computer. Source-code for the patching tool will appear, uhm, soon. It isn't really needed now, so it will probably happen somewhere around the next version. If you do use the source code you will need both GMLib, DFF and the Mingw32 Fake Portability header.

I have also decided to remove the full version zips since they take up too much space and getting two different files isn't really that hard, especially since one of them is very small.

The required libraries are SDL 1.1.3+, MikMod 3.1.9+ and LZO 1.06+.

The Windows version, on the other hand, is completely static, and doesn't require any separate libraries, which on the other hand makes the binary bigger.

Screenshots:

v1.00:

Download:

Latest version is: 1.01 (see Changes [eng, swe])

- v1.01 executable for Linux [tar.gz]
- v1.01 executable for Windows [zip]
- v1.01 source code for all platforms [tar.gz, zip]
- v1.01 data-file for all platforms [zip]
- v1.01 readme file in english [txt]
- v1.01 readme file in swedish [txt]
- v1.01 patch package for datafile in both Linux and Windows [zip]

- v1.00 executable for Linux [tar.gz]
- v1.00 executable for Windows [zip]
- v1.00 data-file for all platforms [zip]
- v1.00 readme file in english [txt]
- v1.00 readme file in swedish [txt]
NOTE: Readme files are included with all executables and the data-file

Known bugs:

- In the Highscore menu: The cursor will not restore the correct background at times.
- The Windows version has trouble starting at times. Running it through the Command prompt seems to fix it.

-- NOTE: --
This piece of software, in it's current version may be copied for personal use
and for sharing with others, as long as it is provided free of charge of any
kind, that the distribution has not been altered and that no one, except the
actual creator (Oscar Sundbom) claims this piece of software to be his or her
own. Any changes made to the code of the software will have to be sent to me
in the form of patches, or, whole new source files. These changes can then,
if approved, be added to the game in the next version.

BTW: If the patching rules sound hard, I can tell you they are not.




GMLib - The General Management Library

GMLib is a library developed for use with SDL. It's old, outdated and only provided here in case you wish to compile Black-Hole (above) yourself. I would not advise anyone to base any software on this library.

This library is currently only distributed in source-code form, which shouldn't be too big a problem, since it's statically linked to the software that uses it.

Download:

Latest version is: 0.1.1

- v0.1.1 source code [tar.gz, zip]

Known bugs:

- Nothing I can put my finger on. Just a general feeling of shakyness.

-- NOTE: --
This library is provided under the Gnu Library General Public License (LGPL). For more information, read the file COPYING in the distribution.




DFF - Data File Format library

DFF is a ... well ... Data File Format library. Its main area of use is games and other types of software which needs one or a few data files to store its information in. These files are compressed with the brilliant LZO library that allows good compression and very fast decompression.

Unlike GMLib above, DFF could very well be quite useful for smaller projects. It's very easy to use in apps and provides pretty good compression at good speeds. It does have some drawbacks, though. The most obvious one is that each file is compressed as a single block of data. This could improve compression ratios but could require quite a lot of memory if used on larger files. You've been warned.

Download:

Latest version is: 0.1.0

- v0.1.0 source code [tar.gz, zip]

Known bugs:

- None. Probably a heap of unknown ones though.

-- NOTE: --
This library is provided under the Gnu Library General Public License (LGPL). For more information, read the file COPYING in the distribution.




Mingw32 Fake Portability - A pleasant header file

Minimalist GNU for widows (or Mingw32) is a very nice way to be able to cross-compile onto the Windows platforms, which most people unfortunately use today. When working with Mingw32 I stumbled across an evil bit of Windows guck that makes it believe that files are opened in "text-mode", which includes some converting with CR/LF. This is, as you can guess, terrible for binary files. The other thing missing was a few permissions lacking, which could lead to endless defines in the source code. To prevent all this, this header file simply fakes it all.

It can be improved and will be, as soon as I find anything else that needs fixing.

Actually, this file isn't specific for Mingw32, but can probably be used with any Windows compiler. I've used it sucessfully with MSVC++ 6. In my project DJWrap, where it smooths over some differences between *nix and Windows (such as strcasecmp/strcmpi).

Download:

Latest version is: 1.2

- v1.2 header [.h.txt] (rename to .h)

Known bugs:

- None that I can think of.

-- NOTE: --
This file is provided 'as-is'. It's been released into the public domain. Do with it as you wish. See the header file for more information.