AmiBlitz2
Blitz Support Suite
Patches/Updates
Tools
Documentation
3rd Party Libraries
OS Libraries
Blitz Mode Source
General Source
MUI Source
Mildred Support
System Source
Games
Utilities
|
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:
- 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.
- 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.
- 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 |
|