home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD1.img
/
d2xx
/
d243
/
simgen
/
simgen.doc
< prev
next >
Wrap
Text File
|
1989-09-04
|
19KB
|
470 lines
SimGen
by Gregg Tavares
© 1989 Echidna
BIX: echidna
PLINK: GreggT
CIS: 72411,2772
-=> Try this <=-
CD to the directory where you unZOOed these files and
type.
run SimGen MCastle.200x4
Now run some other programs that use the WorkBench for
their displays. Pretty neat, ay?
-=> SimGen, What does it do? <=-
Well, SimGen displays a 2 or 4 color IFF picture "behind"
your WorkBench. If the IFF picture is a digitized picture
it looks much like a GenLocked Display; hence the name
SIMGEN for 'SIMulated GENlock'.
-=> How does SimGen work? <=-
SimGen Adds 1 or 2 bitplanes to your WorkBench Screen and
loads the specified picture into these bitplanes. Then it
sets the colors for the desired effect.
Example SimGen color registers for a 4 color picture:
Color 0 = Color 0 from PICTURE.
Color 1 = Color 1 from WorkBench.
Color 2 = Color 2 from WorkBench.
Color 3 = Color 3 from WorkBench.
Color 4 = Color 1 from PICTURE.
Color 5 = Color 1 from WorkBench.
Color 6 = Color 2 from WorkBench.
Color 7 = Color 3 from WorkBench.
Color 8 = Color 2 from PICTURE.
Color 9 = Color 1 from WorkBench.
Color 10 = Color 2 from WorkBench.
Color 11 = Color 3 from WorkBench.
Color 12 = Color 3 from PICTURE.
Color 13 = Color 1 from WorkBench.
Color 14 = Color 2 from WorkBench.
Color 15 = Color 3 from WorkBench.
To those that don't care how it works, just suffice it to
say that it looks real neat!
-=> Are there any negative side effects? <=-
Yes.
1) SimGen takes about 25K to run and another 16K to 64K
for the picture it loads. If you load a 2 color
picture on a 640x200 WorkBench the picture will take
16K.
WorkBench Size | Colors In Picture | Memory
---------------+-------------------+-----------
640x200 | 2 | 16K
640x200 | 4 | 32K
640x400 | 2 | 32K
640x400 | 4 | 64K
708x480 | 4 | 85K
-=> What will SimGen Work With? <=-
SimGen should work with any size WorkBench Screen. It most
likely will not work with other WorkBench Hacks like
DropCloth or DropShadow nor will it work with 8 and 16
color WorkBenchs. It will work with Interlaced,
Non-Interlaced and Overscan WorkBenchs (MoreRows).
Adding more colors to your WorkBench also slows it down.
This is because the electronics in your Amiga that display
graphics and your Amiga's CPU or 68000 microprocessor can't
both read your computers memory at the same time. Much of
the time this is not a problem. The memory in your Amiga
can only be read about 14 million times a second (I Think).
The 68000 can normally only use the memory every other one
of those times or 7 million times a second. The creators
of the Amiga designed it so that the display electronics
(and other electronics for sound and disk support) read the
memory the rest of the time and so everything runs smooth,
but, when you have a screen that is HIRES (640 or more
pixels across) and more than 4 colors, the display
electronic have to read lots of memory to display your
graphics, more memory than they can read with their 7
million opportunities each second and so they use some of
the 68000's opportunities which means your 68000 can't use
the memory as often as usual which in turn means your Amiga
will run a little slower. (Other modes like
Hold-And-Modify "HAM" and Extra-Halfbrite have the same
effect.)
I haven't noticed SimGen slowing my Amiga down to much.
Certainly not as much as DropCloth, DropShadow, or an 8 or
16 color WorkBench. This is because all of those programs
either actually draw on your WorkBench screen everytime you
move a Window or they tell the WorkBench it has more colors
and therefore the WorkBench must draw all its windows and
graphics in 8 or 16 colors instead of 4 which requires more
work and takes more time.
SimGen adds colors to the WorkBench's display but it
doesn't need to tell WorkBench about it so WorkBench still
thinks it is only using 4 colors and therefore performs
better.
-=> How do I run it? <=-
SimGen may be run from the CLI or the WorkBench.
From the WorkBench, just single-click on any IFF Picture
Icon, hold the shift button and double-click on the SimGen
Icon. (See picture requirements and suggestions below.)
You may also edit your Pictures' icons to run SimGen
directly. To do this, single-click on your chosen IFF
Picture Icon and then choose "Info" from the "WorkBench"
menu. When the "Info" Window appears, click in the
"Default Tool" box and change it from whatever it is to
the path where you keep SimGen. If you put SimGen in
your C: directory then you would set the "Default Tool"
to 'C:SimGen'. If you keep SimGen in on a Disk named
"Hacks" you might set the "Default Tool" to
'Hacks:SimGen'.
To "Remove" SimGen, from the WorkBench, Double-Click on the
SimGen Icon. A Small Help window should appear with the
option to "Remove". Click on it and SimGen will remove
itself from your System.
From the CLI you would type SimGen [picture] where
[picture] is the path and name of the picture you want to
load. If the picture you want to load is called
'RayTrace' and is on a disk in drive DF1: you would type
SimGen DF1:RayTrace.
The problem with this is that you won't get your CLI
back. To get your CLI back make sure your CLI window is
the active window and press CTRL-C. (That's both the key
labeled 'CTRL' on the left side of your keyboard and the
'C' key at the same time) It is more likely you do not
wish to tie up your CLI so you would usually type
something like.
run SimGen DF1:RayTrace
or
runback SimGen DF1:RayTrace
When you do this you will not be able to use CTRL-C to
remove SimGen. To remove SimGen you may type
SimGen -r
'-r' is for Remove. Or you may send a CTRL-C to SimGen.
To do this type
Status
You will see something like this.
Process 1: Loaded as command: status
Process 2: Loaded as command: SimGen
Notice that it says Process 2 is SimGen. Now to send a
CTRL-C to process 2 type
Break 2
SimGen should exit Immediatly.
You don't need to "Remove" SimGen before you re-run it
with another picture. SimGen will remove the any
previously loaded picture automatically.
-=> How does SimGen handle IFF Pictures? <=-
SimGen will load any IFF picture but it will only use at
most the first 2 bitplanes (although it will load all the
bitplanes of the picture.) This means you would probably
only want to use 2 or 4 color pictures. SimGen will also
only use as much of the picture as it can fit on the
WorkBench Screen. If the picture you load is bigger than
the current WorkBench screen it will be centered and the
edges chopped off. If the picture you load is smaller, by
default it will be centered in the middle of the screen.
There is an option to 'Tile' a small picture. This
option uses a small picture or brush as a 'pattern'. If
the brush you are using is called 'rods' and is in the
current directory and you want to 'Tile' it you would
type something like.
run SimGen -t rods
This will start the 'Tiling' from the Top, Left corner of
the screen. Sometimes this is not desirable so you may
give the picture an offset. Typing
run SimGen -t10,20 rods
will start the 'Tiling' 10 pixels from the left of the
screen and 20 pixels from the top.
From the WorkBench you make select 'Tiling' by adding the
line 'TILE' in your picture's 'Tool Types'. (See Below
for how to edit 'Tool Types'.) You may set the tiling
offset by specifing it after the word 'TILE' as in
'TILE=10,20' (Note: TILE must be all capital letters, the
equal sign '=' is NOT optional, and you shouldn't have any
spaces around the numbers.)
-=> What other options does SimGen have? <=-
From the CLI '-w'
From the WorkBench 'WORKBENCH'
This option is supposed to keep SimGen around even after
some other program has closed the WorkBench and the
Re-Opened it. I wasn't sure of a safe way to do this yet
so it is NOT IMPLEMENTED.
From the CLI '-k'
From the WorkBench 'KEEPCOLORS'
This option is supposed to keep the colors correct even
after some other program has changed them (like
Preferences). The colors are currently only set once when
you first run the program as I couldn't think of a way to
do this safely (yet.). If you change your WorkBench colors
while SimGen is running it would probably be best to re-run
SimGen.
From the CLI '-p<PickFile>'
Not Available from the WorkBench
This option allows you to create a text file that lists all
the pictures you might like to use with SimGen. SimGen
will the look at that file and pick one picture at random.
The first line of the file should contain the number of
choices SimGen has to pick from. The rest of the lines
should contain the choices in the form of Double-Quoted
filenames. An Example PickFile might look like this.
3
"Pictures:Bozo"
"Pictures:RayTrace"
"Pictures:Rods"t10,20
Notice the last line contains the 'Tiling option'. If you
want picture tiled you must put a 't' immediatly after
the closing double-quote followed by optional offset
information. If you save this PickFile as 'PictureList'
in the current directory you would use it by typing
run SimGen -pPictureList
You would most likely use this option in your
startup-sequence if you are lucky enough to have a Hard
Drive and you want SimGen to pick a picture at random
everytime you turn on/reboot your Amiga.
If the list of pictures is short you may specify them
on the command line as in
run SimGen Pictures:Bozo Picture:RayTrace.
Note: You can't specify separate Tiling options for each
picture from the command line.
-=> How to Set Tool Types. <=-
Setting 'Tool Types' of a picture is much like setting the
'Default Tool' of a picture. First, single-click on your
chosen picture. Then choose "Info" from the "WorkBench"
menu. When the "Info" Window appears, click on the "ADD"
button in the 'Tool Types' area. This will add another
'Tool Type'. Type the option you wish to add and press
RETURN. Now click 'SAVE' on the lower left area of the
"Info" Window. (For more information on Editing 'Tool
Types' see your Amiga User's Guide). Note: The Info
Window's 'Tool Types' edit options are buggy and will
sometime mess up your 'Tool Types.' If you set your 'Tool
Types' and then Click on the Picture Icon and the option
you set doesn't work. Check to see (by bringing up the
"Info" window again) that the "Info" window correctly saved
your 'Tool Types.'
-=> Requirements and Suggestions for Pictures <=-
Most of the picture included with SimGen were pictures
found on local BBSes and from Users Group that we ran
through the Digi-View 3.0 software. You can by this
software for as little as $15 at your local Amiga
Dealer/Mail Order House. This software is an invaluable
tool for image processing (without buying the actual
Digi-View Digitizer that the software was written for). It
will allow you to choose a display mode and a number of
colors and then will load any IFF picture and 'massage' the
picture into the requested mode with dithering and all.
This is much more than Pixmate or Butcher will do in this
particular area.
We chose HIRES (YES) / INTERLACE (NO) when entering
Digi-View 3.0. If you are making SimGen pictures for an
Interlaced WorkBench then Choose INTERLACE (YES). Now,
click " OK " after getting the "No Video Signal Present"
message. Go to the menus and from the "Controls" menu
choose "Palette". Now set the colors to 4 then chose "OK".
Now Load any IFF Picture. It will take a while to load
because Digi-View is expanding the picture into it's own
internal format so that it can munipulate it better. Once
it is done loading, it will draw the picture in 4 colors.
There are many options in Digi-View that will help you
get the best results. Here are a few of tips.
1) Since we told Digi-View it could only use 4 colors
it has to pick 4 colors to use. Usually it picks the 4
most common colors in the picture. If you have a picture
of a brown tree with green leaves but most of the picture
is dithered shades of blue sky, Digi-View might pick four
shades of blue which means the tree and its leaves will be
drawn in dithered shades of blue. This is not always what
you want. Fortunately Digi-View will let you choose the
colors it should use. Bring up the Palette Requester by
choosing "Palette" from the "Controls" menu. Now set one
of the blues, in the first four colors (the ones against
the left side of the screen.) to a shade of green similar
to the green of the leaves. Set another one of the blues
to a shade of brown similar to the shade of the tree. Then
choose "Freeze Palette". This will force Digi-View to use
those colors. Click on "Display" and Digi-View will
re-draw your picture with the new colors. (NOTE 1:
Whenever you want Digi-View to re-draw the picture you must
choose "Display" either from a button or from the Menus.
Choosing "OK" will not work. NOTE 2: If you load another
picture, you should first choose "Make New Palette" from
the "Palette Requester" or Digi-View will be forced to draw
the new picture with the old pictures colors.)
2) Once you have a good looking picture it is best to
dim the colors. You can use Digi-View's "Palette
Requester" for this, or some other program. (Programs like
Colors (From Deluxe PhotoLab), PixMate and Butcher are
great for dimming all the colors.) The Standard white
letters of the WorkBench show up well against dim/dark
colors. Also note that alot of black in your SimGen
pictures is usually not a good choice because black is
often a standard WorkBench color and so black objects on
the WorkBench won't show up well against a largely black
SimGen picture.
3) For Digitized pictures it is very easy to get decent
results by first telling Digi-View to draw the picture in
black and white and then changing the black and white
colors to other hues using Digi-View or some other program.
-=> Notes for Other programmers. <=-
SimGen adds bitplanes to the WorkBench by first getting
the Address of the WorkBench Screen though the SimGen
Credits Window. Then, from the WorkBench Screen it makes
a copy of its ViewPort's RasInfo's BitMap. It adds the
new bitplanes to this copy, points the RasInfo to the copy
bitmap and then calls RemakeDisplay (). When exiting it
points the RasInfo back to it's original bitmap and again
calls RemakeDisplay (). If there is any reason you know
this won't work AND you know a fix for it I would like to
hear of it.
The reason the WORKBENCH and KEEPCOLOR options are not
implemented is that I could not think of any reasonable way
to do it. I thought I could SetFunction, LoadRGB4, SetRGB4
and OpenWorkBench, but when the WorkBench re-opens I don't
know how to get its address except to open a window on it
(which I obviously can't do inside these patches.) If you
have any ideas, I'd be happy to hear them.
-=> Where did I get the idea for SimGen <=-
Well, I was at one of my local computer stores and I
noticed one of the Amigas there had what I thought was a
DropCloth Picture. As I used the machine I noticed that
is was more than a DropCloth. The picture showed through
all the windows including the TxEd window I was using to
edit a script. It looked pretty cool so I looked at their
startup-sequence, found out what it ran to add the picture
to the WorkBench and made a copy of it along with some of
the pictures they used with it. The program was called
"Tapestry" written by Joe Hitchens. I took it home and
decided to show it to my roommates, but the pictures I had
copied were all 640x400x1 or bigger (used on an Interlaced
WorkBench.) I don't use an Interlaced WorkBench so I set
out to make some 640x200x1 pictures for my WorkBench to
show off this new program. Well, as I was creating
pictures in Digi-View I accidently made a 4 color picture
instead of a 2 color. I looked at it and thought "WOW!
That's really good for 2 colors." Then I noticed it was 4
colors. I thought about it for a moment and knew it
should be trivial to support 4 colors instead of 2 and I
thought maybe "Tapestry" might already support 4 colors so
I tried the 4 color picture. Nope, "Tapestry" only
displayed 1 bitplane of my picture. So, I thought, maybe
there's a newer version on the 'boards'. I called
Compuserve. Nothing. I called PeopleLink and found
"Tapestry" and "Tapestry Version 2." The small online
description said it supported 4 colors. So, I downloaded
it and tried it out. No luck! The documentation said
that 4 colors as well as tiling/pattern were to be added
to a future version. The doumentation was dated March 18,
1989. It shouldn't take more than 38 seconds to add 4
color support I thought, so I decided that since it was
now June 4, 1989, 38 seconds had long passed since the
last version of "Tapestry", and, given this, the author
must have died or something. So, instead of waiting for
who knows how many more months for a 4 color version I
decided to write my own.
"Tapestry" version 2 was only 11.3K big. SimGen is
22.8. Sorry about the size increase. It is mostly
because my IFF routines are the Electronic Arts/Commodore
Amiga IFF routines heavily modified for extra
functionality but not code size.
The IFF routines will load any type of IFF ILBM file
including color cycling info, and ViewMode. They will
read any part of a picture to any part of a bitmap or
rastport and will create the bitmap and rastport if
necessary. They will also clip to a bitmap/rastport that
is smaller then the picture. When is Commodore Amiga
going to supply OS level IFF support since 50% or more of
all Amiga programs could benefit from it! I've been
thinking about turning my IFF routines into a sharable
library, they would be large but they would work and they
do an awful lot of work. As a sharable library they could
also be updated with smaller and faster versions.
The other things that added size to SimGen are,
WorkBench Support , Tiling and WorkBench Help. The Help
routines I've had for a while. I wish Commodore Amiga
would add similar routines to the Amiga OS so I wouldn't
have to add them to every program I write.
(AutoRequesters are too ugly and not as functional IMHO.)
-=> Distrubution <=-
This program may be distrubuted as long as it is done so
free of charge and all the files in the ZOO are kept
together. It may be placed on BBSes and in PD Disk
Collections. It is in other words, copywritten but Freely
ReDistribuatable.
Have fun with it. I wasted two nights writing it. :-)