Mildred Support Site semi-mirror (well, we have all the files :)

Blitz Support Suite


3rd Party Libraries
OS Libraries

Blitz Mode Source
General Source
MUI Source
Mildred Support
System Source


Mildred is currently the best chunky graphics library availible for Blitz. It is powerful and yet relatively simple to use. While there are other chunky graphics libraries availible for Blitz (such as the one with NCS and the Acid chunky library), none of them compare to the Mildred library.

For those who are not familiar with the concept of graphics on the Amiga, the Amiga uses what are called 'planar' graphics modes. The difference between planar and chunky graphics modes is the way bitmaps are stored in memory. Planar bitmaps are held as bitplanes in memory. This allows for less chipmem usage over chunky bitmaps when using less than 256 colours. This is achieved by holding more than one pixel colour in each byte of the bitmap held in memory. So when using and handling planar bitmaps with say 64 colours, that bitmap will take up half as much memory than the same bitmap using chunky graphics. However, when using chunky, no special routines have to be used to convert each pixel that you draw to the bitmap as each byte in that bitmap holds 1 colour, and changing the value of that byte in memory would in effect change a single pixel colour on the bitmap. Some reasons chunky is better than planar are:

  1. All bitmaps and shapes/brushes can be held in fastmem instead of chipmem (and we all know how slow chipmem can be) because all drawing of images to your bitmaps is done by the CPU then converted to a planar bitmap after calculations are complete.
  2. Remapping of palettes, other fancy effects and operations working on a per-pixel basis can be created with ease, very quickly due to working with indivitual bytes and not having to access 8 separate bitplanes.
  3. Chunky gfx can be made re-targetable very easily. This way people using graphics cards can use the special functions of their card to reduce the time taken to complete some functions.
Basically when writing a game for the Amiga nowadays it is wise to take a look at chunky graphics before starting and decide who you are aiming your game at. You must remember that chunky games are not recommended for 020/030's as it can be a bit slow having to apply chunky2planar routines to your bitmaps every frame.

Written by Paul West in 1998-2000.
Copyright© 1998-2000 Paul Jonathan West.

Notice from the author: Mildred is designed, written and created by Paul West. Main development occurred from October 1998 until May 1999 mostly full-time. The sourcecode, its copyright and freedom to make alterations, modifications and additions has been reclaimed from Pagan Games, as well as full rights of distribution as I see fit. This has no effect on public use of the compiled library in any of your projects, such as can be downloaded in the archives below. There is no further work planned by the author at this time, but further work is now a possibility. All of the files and information available below for download are free for public use and the author will willingly accept payments for use of Mildred in your commercial products. Please enjoy this great library and good luck with your projects.

Notice from the author 2: You can now download the sourcecode to Mildred. It is free of charges and obligations. Paul Jonathan West, retains copyright ownership of the library as it stands and is presented at this website, but you may freely alter, distribute, modify, enhance, optimise, reform and use the source in any way you see fit in any of your projects, experiments and products. I do not expect a fee for this privelege but would welcome any small donations and can be contacted by email.

 Main archives   Short description   Author 
Mildred The actual Mildred library, the best and most extensive chunky graphics drawing library for Blitz (maybe even for the Amiga?). Latest public release (v1.51). (More) [63k] Paul West
MiniMildred library A smaller, less comprehesive version of the Mildred library. MiniMildred only contains the c2p commands, and none of the drawing commands. Do not use this at the same time as the main Mildred library! (v1.19) [15k] Paul West
 Documentation   Short description   Read 
Command listing A text file containing a list of all the commands in the Mildred library and the parameters for those commands. [20k] Read online
Mildred history The complete history of the development of the Mildred library [20k] Read online
Mildred Internals The internal data used by Mildred (kind of like the data stored in a library base). Useful if you want to work on the library source, or are writing your own library which needs to interface with Mildred. [9k] Read online
Mildred structures The internal formats of the data structures used by Mildred (e.g. c2pWindows, queues, chunky item, etc). [4k] Read online
Mildred Guide The reference manual for Mildred, in AmigaGuide format. [46k] Read online
Mildred HTML The Mildred reference manual in HTML format. [121k] Read online
Old HTML The OLD Mildred documentation in HTML format. [35k] ---
 Examples   Short description   Author 
Bounce9 This is a quick new demo of the 'remap mode' blits that were introduced in Mildred v1.27. Two tables have been precalculated showing 50% and 20% merge. The sourcecode contains the necessary routines to generate further different tables (it takes a while!) now updated for v1.45. [151k] Paul West
Bounce Demo This is a demo for bouncing objects around the screen. It uses MQSBlit to put objects behind the bitmap's stencil and into the queue and also performs an unqueue from a store-bitmap. Updated to work with v1.43. [9k] Paul West
Card Test This is a couple of programs (Comparison and ILBMViewer2) that i was fiddling with when experimenting with graphics-card output. Comparison does a speed-test between using WritePixelArray8() and MBlockScroll for output, and ILBMViewer2 is a reworking of the old ILBMViewer program but with different graphics-card output (using MBlockScroll). The Comparison program is also a combination of ILBMViewer and the bounce demo. Updated to work with v1.45. [23k] Paul West
CNKI format Here is a proposed file format for storing chunky shapes (which could also be applied to chunky bitmaps), designed by Chris Deeney. It is able to store single shapes or `anim shapes', and a converter program is included to convert iff brush and iff animbrush files into CNKI files. Also supplied are some Blitz routines to handle the CNKI files including LoadCNK{} for loading in the CNKI files to your program. The CNKI files can also have some compression. (More) [33k] Chris Deeney
CyberGraphics library This is the cybergraphics.library1 library file which you can/should put into your blitzlibs:amigalibs/ directory (and remake your deflibs) to provide the standard set of tokens for the cybergraphics library. Also included is a .res file which you should put into blitzlibs:, converted by Daniel Allsopp. [2k] Daniel Allsopp
DeRes demo Here are two demos featuring examples of the new de-res effect that has been added to the zoom routines in Mildred v1.48. The first is a simple de-res of an image and the second shows how to use the custom-offsets list to modify the de-res effect on each line. [82k] Paul West
Disp demo A superbitmap scroll demo by Andreas Hakansson, similar to fdexample3, but showing you how to simply implement a split-screen display such as for a two-player game. Updated for v1.43. [72k] Andreas Hakansson
Dissolve demo This is a demonstration of how to use MPictureDissolveIn. Two example effects are included but the possible effects are limited only by your imagination. Updated to work with v1.44. [161k] Paul West
FD's Examples: 1, 2, 3, 4 Four examples by FlameDuck (Mikkel Løkke): Cool sinewave effect on a logo, safely cludge shapes over previously created shapes, superbitmap scroll demo and exploding firework effect. [15k, 3k, 72k, 3k] Mikkel Lokke
Graphics.library1 file This is an updated version of the blitzlibs:amigalibs/graphics.library files for OS3.1, which provides the new function WriteChunkyPixels_() which can be useful for graphics-card output. Note that the more recent Mildred demos are written using this library so if you get tokenisation problems there (ie the wrong tokens come up) then you might like to try this update (or try loading in the ASCII sourcecode), although it will only be fully accessible if you have OS3.1. [6k] Paul West
Gravity example A fun little demo of a Gravity-Force style game written by Sami Nataanen. This shows some simple use of some particle animation routines and output from a superbitmap, as well as a nifty little gravity effect, thrust, and bullets. updated for v1.43. [10k] Sami Nataanen
Horizontal star demo A nice little horizontal starfield with a bendy logo effect. [7k] Bruce Henderson
ILBMViewer This is a demonstration mainly of the C2P system and its interlacing features. It allows you to load in an ILBM picture and to display it in the form of a superbitmap. This also includes some old code for an ILBM-to-chunky loader, and a screenmode-requester routine with a callback hook. Updated to work with v1.45. [19k] Paul West
Joru's Mildred example A screenmode example which goes through ALL the steps you will ever need and is capable of sending output to either an RTG or AGA screen. (More) [129k] Peter Thor
LandTest: 1, 2, 3, 4, 5, 6, 7, Map Landtest is the beginnings of a game engine, intened to be a cross between Defender and Revenge Of The Mutant Camels. Landtest1 has the first parallax experiments with Mildred. By LandTest7 most of the main features are in place. LandTest6 and 7 contain a few executables, and all graphics rendering is done with Mildred and the screen comprises a full graphical backdrop (128 shared colours) and 256-colour objects (using 128 colours probably). The sky was due to get several parallax layers. Control is via the joystick. In some of the versions, deacceleration is switched off - this was due only to my standing back for hours on end admiring my handywork in motion! These files, at least, show a good example using a scroll with a custom offsets table to produce a parallax ground effect in a single blit. Also some particle routines are used for animation, and realtime zoomed bobs for the background map. Note that earlier archives output to AGA only, and none of these files were intended for an audience. If there is any project that Paul might continue with someday it could be this one. Landtest was designed to run at 25fps on an 040/25 and makes strong use of 040 optimisations.

LandMap accompanies the Landtest programs and is used to convert a strip of 'land' graphics into a fake perspective, ready to be used for the parallax ground image in the landtest examples. The operation of the parallax in the landtest programs is dependent upon the output from this program. Some degree of palette remapping may also be involved as, in later versions, sky and land images shared the same 128 colour palette. Note that these programs also were not designed with an audience in mind. [40k, 50k, 96k, 84k, 99k, 272k, 159k, 156k]

Paul West
MScreen: 1, 2 Two examples of opening a screen for Mildred. The second example is a lot more advanced (requires cybergfx.res included, OS3.1, cybergraphics library file) and demonstrates various output methods. [16k, 46k] Paul West
PixelExplosion: 1, 2, 4 Updates to FDExample4, the first is a speedup with about 15000 pixels exploding, the second uses the Mildred particle system for about a 2 times speedup and the last is used to demo the particle system in 'add' mode. [3k, 3k, 33k] Sami Naatanen and Paul West
Rain demo This is similar to the snow demo, except that in this example the particles are clumped together and moved together in unisons of 4 to create the impression of a streak of rain rather than individual pixels. Also the movement variance is adjusted to give a less snow-blowy effect. Note that this example wasn't designed for an audience either, but enjoy. [111k] Paul West
Remap example This is a demonstration of the MRemapUsingShape command in combination with a remapping table. Three precalculated tables are included for 50% merge, add, and subtract or alternatively you can compute your own (see sourcecode). Note that a generated table only works for the palette it was computed with. This demo also has Mildred-based AGA and Gfx-card support. You will need mildred v1.42 for this demo to work free of bugs, although it will work with earlier versions. Now updated for v1.43 and using MQBlit with MRemapMode instead of MRemapUsingShape (which has been deleted from the library). Updated for v1.45. [252k] Paul West
Rotate test This is a little experiment Paul did in rotating a bitmap realtime. There are two versions, the latter being slightly faster due to using Mildred's particle drawing routines instead of individual plots. You can use the mouse buttons to zoom in and out because it zooms at the same time as rotating. This was really my first exploration into rotation and would've liked to have offered various blits with rotation incorporated, but on trying experimenting with the idea in assembler found there was a major shortage of registers spare and therefore any implementation would be less than optimum speed, especially in different blit modes (and it would require the infamous DIVU command which is very slow). This routine outputs to AGA only and the source is not designed for an audience. [40k] Paul West
Scroll demo This is a demonstration of various types of `scroll' commands in Mildred. The featured effect are scroll, blockscroll, motionblur using 50% merge, blacksmoke using subtract, stencil in colour, scroll from same bitmap, 50% transparency, scroll behind stencil including x and y flips, scroll from same bitmap and y-flipped copy of the 50% merge. See the effects for yourself. The two necessary remap tables are included, along with the IFF pic that is needed (the tables are calculated based on its palette). Updated for v1.45. [208k] Paul West
Sine example Here are two demos of using a custom-offsets list to produce the sinewave logo effect as originally written by Mikkel Lokke. Rather than blit each line seperately the lookup table is used to offset each line as the scroll progresses. The overall result is a much smoother effect. Also a second demo is included which attemps to do a quick verticle sinewave simultaneously (although using a seperate call for each column) so produce a liquid sort of effect. [20k] Mikkel Lokke
Slideshow Not sure what this is as I have just found the archive and no description! It looks like a pretty full Mildred example though, with all the trimmings. [302k] ???
Snow demo This is a demo of how you might do a snow effect using particles in Mildred. The particles simply have random positions, a base movement direction is added to them, and then a random variation direction is added to them. When they go off the end of the buffer they're wrapped back to the top. Note that this example wasn't designed for an audience, but enjoy. [118k] Paul West
Split tests Again, I just found this archive with no description. I think it demonstrates how to do split screen modes using Mildred though. [408k] ???
StarField2 This is a modification of the horizontal star demo demonstrating how to use MScroll with a custom-offsets list so that the bendy logo effect can be achieved with only one call to MScroll rather than seperate calls for each line. The sinewave had to be put into a lookup table for this purpose, so overall the effect is faster (without the WaitTOF). [7k] Paul West
Zoom demo Here are two demos featuring examples of the new zoom routines as introduced in Midred v1.47. The first is a simple zoom of an image and the second shows how to use a custom-offsets list to modify the zoom effect on each line (with which much fun can be had!). Updated for v1.48. [82k] Paul West
 Source   Short description   Download format 
This is the main sourcecode to Mildred and MiniMildred. Paul West has kindly released it free of charge and you are free to alter, distribute, modify, enhance, optimise, reform and use the source in any way you see fit in any of your projects, experiments and products. He does not expect a fee for this privelege but would welcome any small donations and can be contacted by email.

Mildred source stats: 863,325 bytes of assembler code spanning 27,176 lines, 219 individual tokens with the functionality of 407 via syntax variations, sourcecode commented on 12,440 lines, full runtime errorchecking routines throughout, 51 version updates comprising bugfixes, additional code and optimisations since the first public release, full amigaguide and html documentation covering every token and variation of syntax, 4 months full time and 3 months part time work, compiles to 138,104 bytes in 115 seconds on Paul's 68040/25.

Mildred The full source for the full Mildred library. [102k] BB2, ASCII
Mini Mildred The full source for the Mini Mildred library (C2P commands only). [10k] BB2, ASCII
Token test Some code for testing that tokens in the libraries worked as expected. [6k] Source

News | Introduction | Search | List/Forum/IRC Webring | Contact
Installation | Troubleshooting | Programming | Archives | Links
Return to archives section
Page last modified: 7th August 2001